diff --git a/packages/chakra-ui-core/package.json b/packages/chakra-ui-core/package.json index 4ee578e0..d495bdb8 100644 --- a/packages/chakra-ui-core/package.json +++ b/packages/chakra-ui-core/package.json @@ -4,6 +4,7 @@ "description": "Build Accessible and Responsive Vue.js websites and applications with speed ⚡️", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "types/index.d.ts", "sideEffects": false, "maintainers": [ "Jonathan Bakebwa " @@ -27,7 +28,8 @@ }, "files": [ "dist", - "src" + "src", + "types" ], "bundle-phobia": { "max-size": "85KB", diff --git a/packages/chakra-ui-core/src/Chakra/index.js b/packages/chakra-ui-core/src/Chakra/index.js index 207687de..e1920b17 100644 --- a/packages/chakra-ui-core/src/Chakra/index.js +++ b/packages/chakra-ui-core/src/Chakra/index.js @@ -6,39 +6,9 @@ import { createClientDirective } from '../directives' import defaultTheme from '../../../chakra-ui-theme/src' import useToast from '../CToast' -/** - * @typedef {Object} Theme Chakra UI Theme object - * @property {Object} breakpoints - * @property {Object} zIndices - * @property {Object} radii - * @property {Object} opacity - * @property {Object} borders - * @property {Object} colors - * @property {Object} borderWidths - * @property {Object} sizes - * @property {Object} shadows - * @property {Object} space - * @property {Object} fontSizes - * @property {Object} fonts - * @property {Object} fontWeights - * @property {Object} lineHeights - * @property {Object} letterSpacings - */ - -/** - * @typedef {Object} Options - * @property {Theme} theme - * @property {Theme} extendTheme - * @property {Object} icons - * @property {Object} icons.extend - * @property {String} icons.iconPack - * @property {Object} icons.iconSet - * - */ - /** * Chakra-ui Component library plugin - * @type {Chakra} + * @type {import("../../types").default} */ const Chakra = { /** diff --git a/packages/chakra-ui-core/types/chakra.d.ts b/packages/chakra-ui-core/types/chakra.d.ts new file mode 100644 index 00000000..681fe134 --- /dev/null +++ b/packages/chakra-ui-core/types/chakra.d.ts @@ -0,0 +1,34 @@ +import { PluginObject } from "vue" + +export type Theme = { + breakpoints: any + zIndices: any + radii: any + opacity: any + borders: any + colors: any + borderWidths: any + sizes: any + shadows: any + space: any + fontSizes: any + fonts: any + fontWeights: any + lineHeights: any + letterSpacings: any +} + +export type Options = { + theme: Theme + extendTheme: Theme + icons: { + extend: any + iconPack: string + iconSet: any + } +} + +export type Chakra = PluginObject + +declare let chakra: Chakra +export default chakra \ No newline at end of file diff --git a/packages/chakra-ui-core/types/component.d.ts b/packages/chakra-ui-core/types/component.d.ts new file mode 100644 index 00000000..e5707b6b --- /dev/null +++ b/packages/chakra-ui-core/types/component.d.ts @@ -0,0 +1,148 @@ +import Vue from 'vue' + +export class CAccordion extends Vue {} +export class CAccordionHeader extends Vue {} +export class CAccordionIcon extends Vue {} +export class CAccordionItem extends Vue {} +export class CAccordionPanel extends Vue {} +export class CAlert extends Vue {} +export class CAlertDescription extends Vue {} +export class CAlertDialog extends Vue {} +export class CAlertDialogBody extends Vue {} +export class CAlertDialogCloseButton extends Vue {} +export class CAlertDialogContent extends Vue {} +export class CAlertDialogFooter extends Vue {} +export class CAlertDialogHeader extends Vue {} +export class CAlertDialogOverlay extends Vue {} +export class CAlertIcon extends Vue {} +export class CAlertTitle extends Vue {} +export class CAnimateHeight extends Vue {} +export class CAspectRatioBox extends Vue {} +export class CAvatar extends Vue {} +export class CAvatarBadge extends Vue {} +export class CAvatarGroup extends Vue {} +export class CBadge extends Vue {} +export class CBox extends Vue {} +export class CBreadcrumb extends Vue {} +export class CBreadcrumbItem extends Vue {} +export class CBreadcrumbLink extends Vue {} +export class CBreadcrumbSeparator extends Vue {} +export class CButton extends Vue {} +export class CButtonGroup extends Vue {} +export class CCheckbox extends Vue {} +export class CCheckboxGroup extends Vue {} +export class CCircularProgress extends Vue {} +export class CCircularProgressLabel extends Vue {} +export class CCloseButton extends Vue {} +export class CCode extends Vue {} +export class CCollapse extends Vue {} +export class CColorModeProvider extends Vue {} +export class CControlBox extends Vue {} +export class CDarkMode extends Vue {} +export class CDivider extends Vue {} +export class CDrawer extends Vue {} +export class CDrawerBody extends Vue {} +export class CDrawerCloseButton extends Vue {} +export class CDrawerContent extends Vue {} +export class CDrawerFooter extends Vue {} +export class CDrawerHeader extends Vue {} +export class CDrawerOverlay extends Vue {} +export class CEditable extends Vue {} +export class CEditableInput extends Vue {} +export class CEditablePreview extends Vue {} +export class CFade extends Vue {} +export class CFlex extends Vue {} +export class CFormControl extends Vue {} +export class CFormErrorMessage extends Vue {} +export class CFormHelperText extends Vue {} +export class CFormLabel extends Vue {} +export class CFragment extends Vue {} +export class CGrid extends Vue {} +export class CHeading extends Vue {} +export class CIcon extends Vue {} +export class CIconButton extends Vue {} +export class CImage extends Vue {} +export class CInput extends Vue {} +export class CInputAddon extends Vue {} +export class CInputElement extends Vue {} +export class CInputGroup extends Vue {} +export class CInputLeftAddon extends Vue {} +export class CInputLeftElement extends Vue {} +export class CInputRightAddon extends Vue {} +export class CInputRightElement extends Vue {} +export class CLightMode extends Vue {} +export class CLink extends Vue {} +export class CList extends Vue {} +export class CListIcon extends Vue {} +export class CListItem extends Vue {} +export class CMenu extends Vue {} +export class CMenuButton extends Vue {} +export class CMenuDivider extends Vue {} +export class CMenuGroup extends Vue {} +export class CMenuItem extends Vue {} +export class CMenuItemOption extends Vue {} +export class CMenuList extends Vue {} +export class CMenuOptionGroup extends Vue {} +export class CModal extends Vue {} +export class CModalBody extends Vue {} +export class CModalCloseButton extends Vue {} +export class CModalContent extends Vue {} +export class CModalFooter extends Vue {} +export class CModalHeader extends Vue {} +export class CModalOverlay extends Vue {} +export class CNumberDecrementStepper extends Vue {} +export class CNumberIncrementStepper extends Vue {} +export class CNumberInput extends Vue {} +export class CNumberInputField extends Vue {} +export class CNumberInputStepper extends Vue {} +export class CPopover extends Vue {} +export class CPopoverArrow extends Vue {} +export class CPopoverBody extends Vue {} +export class CPopoverCloseButton extends Vue {} +export class CPopoverContent extends Vue {} +export class CPopoverFooter extends Vue {} +export class CPopoverHeader extends Vue {} +export class CPopoverTrigger extends Vue {} +export class CPopper extends Vue {} +export class CPopperArrow extends Vue {} +export class CPortal extends Vue {} +export class CProgress extends Vue {} +export class CProgressLabel extends Vue {} +export class CPseudoBox extends Vue {} +export class CRadio extends Vue {} +export class CRadioButtonGroup extends Vue {} +export class CRadioGroup extends Vue {} +export class CReset extends Vue {} +export class CRevealHeight extends Vue {} +export class CScale extends Vue {} +export class CSelect extends Vue {} +export class CSimpleGrid extends Vue {} +export class CSlide extends Vue {} +export class CSlideIn extends Vue {} +export class CSlider extends Vue {} +export class CSliderFilledTrack extends Vue {} +export class CSliderThumb extends Vue {} +export class CSliderTrack extends Vue {} +export class CSpinner extends Vue {} +export class CStack extends Vue {} +export class CStat extends Vue {} +export class CStatArrow extends Vue {} +export class CStatGroup extends Vue {} +export class CStatHelperText extends Vue {} +export class CStatLabel extends Vue {} +export class CStatNumber extends Vue {} +export class CSwitch extends Vue {} +export class CTab extends Vue {} +export class CTabList extends Vue {} +export class CTabPanel extends Vue {} +export class CTabPanels extends Vue {} +export class CTabs extends Vue {} +export class CTag extends Vue {} +export class CTagCloseButton extends Vue {} +export class CTagIcon extends Vue {} +export class CTagLabel extends Vue {} +export class CText extends Vue {} +export class CTextarea extends Vue {} +export class CThemeProvider extends Vue {} +export class CTooltip extends Vue {} +export class CVisuallyHidden extends Vue {} diff --git a/packages/chakra-ui-core/types/index.d.ts b/packages/chakra-ui-core/types/index.d.ts new file mode 100644 index 00000000..95e86dc0 --- /dev/null +++ b/packages/chakra-ui-core/types/index.d.ts @@ -0,0 +1,4 @@ +import Chakra from "./chakra" + +export * from './component' +export default Chakra \ No newline at end of file