@skewedaspect/sleekspace-ui 0.2.0-beta.1 → 0.2.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Accordion/SkAccordion.vue.d.ts +65 -0
- package/dist/components/Accordion/SkAccordionItem.vue.d.ts +52 -0
- package/dist/components/Accordion/index.d.ts +3 -0
- package/dist/components/Accordion/types.d.ts +3 -0
- package/dist/components/Alert/SkAlert.vue.d.ts +39 -0
- package/dist/components/Alert/types.d.ts +4 -0
- package/dist/components/Avatar/SkAvatar.vue.d.ts +75 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/types.d.ts +20 -0
- package/dist/components/Breadcrumbs/SkBreadcrumbItem.vue.d.ts +51 -0
- package/dist/components/Breadcrumbs/SkBreadcrumbSeparator.vue.d.ts +13 -0
- package/dist/components/Breadcrumbs/SkBreadcrumbs.vue.d.ts +24 -0
- package/dist/components/Breadcrumbs/index.d.ts +4 -0
- package/dist/components/Breadcrumbs/types.d.ts +18 -0
- package/dist/components/Button/SkButton.vue.d.ts +97 -0
- package/dist/components/Button/types.d.ts +5 -0
- package/dist/components/Card/SkCard.vue.d.ts +88 -0
- package/dist/components/Card/types.d.ts +2 -0
- package/dist/components/Checkbox/SkCheckbox.vue.d.ts +71 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/types.d.ts +3 -0
- package/dist/components/Collapsible/SkCollapsible.vue.d.ts +70 -0
- package/dist/components/Collapsible/index.d.ts +2 -0
- package/dist/components/Collapsible/types.d.ts +2 -0
- package/dist/components/Divider/SkDivider.vue.d.ts +39 -0
- package/dist/components/Divider/types.d.ts +8 -0
- package/dist/components/Dropdown/SkDropdown.vue.d.ts +63 -0
- package/dist/components/Dropdown/SkDropdownMenuItem.vue.d.ts +32 -0
- package/dist/components/Dropdown/SkDropdownMenuSeparator.vue.d.ts +2 -0
- package/dist/components/Dropdown/SkDropdownSubmenu.vue.d.ts +34 -0
- package/dist/components/Dropdown/index.d.ts +5 -0
- package/dist/components/Dropdown/types.d.ts +4 -0
- package/dist/components/Field/SkField.vue.d.ts +99 -0
- package/dist/components/Field/index.d.ts +2 -0
- package/dist/components/Field/types.d.ts +1 -0
- package/dist/components/Group/SkGroup.vue.d.ts +29 -0
- package/dist/components/Group/types.d.ts +4 -0
- package/dist/components/Input/SkInput.vue.d.ts +84 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/types.d.ts +4 -0
- package/dist/components/Listbox/SkListbox.vue.d.ts +62 -0
- package/dist/components/Listbox/SkListboxItem.vue.d.ts +34 -0
- package/dist/components/Listbox/SkListboxSeparator.vue.d.ts +2 -0
- package/dist/components/Listbox/index.d.ts +4 -0
- package/dist/components/Listbox/types.d.ts +3 -0
- package/dist/components/Modal/SkModal.vue.d.ts +108 -0
- package/dist/components/Modal/index.d.ts +2 -0
- package/dist/components/Modal/types.d.ts +3 -0
- package/dist/components/NavBar/SkNavBar.vue.d.ts +40 -0
- package/dist/components/NavBar/index.d.ts +2 -0
- package/dist/components/NavBar/types.d.ts +6 -0
- package/dist/components/NumberInput/SkNumberInput.vue.d.ts +93 -0
- package/dist/components/NumberInput/index.d.ts +2 -0
- package/dist/components/NumberInput/types.d.ts +3 -0
- package/dist/components/Page/SkPage.vue.d.ts +55 -0
- package/dist/components/Page/index.d.ts +2 -0
- package/dist/components/Page/types.d.ts +13 -0
- package/dist/components/Pagination/SkPagination.vue.d.ts +79 -0
- package/dist/components/Pagination/SkPaginationItem.vue.d.ts +44 -0
- package/dist/components/Pagination/index.d.ts +3 -0
- package/dist/components/Pagination/types.d.ts +24 -0
- package/dist/components/Panel/SkPanel.vue.d.ts +55 -0
- package/dist/components/Panel/types.d.ts +3 -0
- package/dist/components/Popover/SkPopover.vue.d.ts +94 -0
- package/dist/components/Popover/index.d.ts +2 -0
- package/dist/components/Popover/types.d.ts +4 -0
- package/dist/components/Progress/SkProgress.vue.d.ts +66 -0
- package/dist/components/Progress/index.d.ts +2 -0
- package/dist/components/Progress/types.d.ts +22 -0
- package/dist/components/Radio/SkRadio.vue.d.ts +59 -0
- package/dist/components/Radio/SkRadioGroup.vue.d.ts +85 -0
- package/dist/components/Radio/index.d.ts +3 -0
- package/dist/components/Radio/types.d.ts +4 -0
- package/dist/components/Sidebar/SkSidebar.vue.d.ts +38 -0
- package/dist/components/Sidebar/SkSidebarItem.vue.d.ts +37 -0
- package/dist/components/Sidebar/SkSidebarSection.vue.d.ts +44 -0
- package/dist/components/Sidebar/types.d.ts +2 -0
- package/dist/components/Skeleton/SkSkeleton.vue.d.ts +55 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Skeleton/types.d.ts +21 -0
- package/dist/components/Slider/SkSlider.vue.d.ts +100 -0
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/types.d.ts +32 -0
- package/dist/components/Spinner/SkSpinner.vue.d.ts +39 -0
- package/dist/components/Spinner/index.d.ts +2 -0
- package/dist/components/Spinner/types.d.ts +16 -0
- package/dist/components/Switch/SkSwitch.vue.d.ts +120 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/types.d.ts +3 -0
- package/dist/components/Table/SkTable.vue.d.ts +86 -0
- package/dist/components/Table/index.d.ts +2 -0
- package/dist/components/Table/types.d.ts +3 -0
- package/dist/components/Tabs/SkTab.vue.d.ts +49 -0
- package/dist/components/Tabs/SkTabList.vue.d.ts +28 -0
- package/dist/components/Tabs/SkTabPanel.vue.d.ts +33 -0
- package/dist/components/Tabs/SkTabPanels.vue.d.ts +17 -0
- package/dist/components/Tabs/SkTabs.vue.d.ts +60 -0
- package/dist/components/Tabs/types.d.ts +5 -0
- package/dist/components/Tag/SkTag.vue.d.ts +58 -0
- package/dist/components/Tag/types.d.ts +8 -0
- package/dist/components/TagsInput/SkTagsInput.vue.d.ts +77 -0
- package/dist/components/TagsInput/index.d.ts +2 -0
- package/dist/components/TagsInput/types.d.ts +3 -0
- package/dist/components/Textarea/SkTextarea.vue.d.ts +85 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Textarea/types.d.ts +3 -0
- package/dist/components/Theme/SkTheme.vue.d.ts +20 -0
- package/dist/components/Theme/types.d.ts +16 -0
- package/dist/components/Theme/useTheme.d.ts +84 -0
- package/dist/components/Toast/SkToast.vue.d.ts +42 -0
- package/dist/components/Toast/SkToastProvider.vue.d.ts +62 -0
- package/dist/components/Toast/index.d.ts +3 -0
- package/dist/components/Toast/types.d.ts +35 -0
- package/dist/components/Toast/useToast.d.ts +33 -0
- package/dist/components/Tooltip/SkTooltip.vue.d.ts +81 -0
- package/dist/components/Tooltip/SkTooltipProvider.vue.d.ts +70 -0
- package/dist/components/Tooltip/index.d.ts +3 -0
- package/dist/components/Tooltip/types.d.ts +4 -0
- package/dist/composables/useCustomColors.d.ts +74 -0
- package/dist/composables/useCustomColors.test.d.ts +1 -0
- package/dist/composables/usePortalContext.d.ts +75 -0
- package/dist/composables/usePortalContext.test.d.ts +1 -0
- package/dist/index.d.ts +149 -0
- package/dist/sleekspace-ui.css +2 -16
- package/dist/sleekspace-ui.es.js +43 -42
- package/dist/sleekspace-ui.umd.js +43 -42
- package/dist/tokens.css +968 -0
- package/dist/types.d.ts +29 -0
- package/docs/components/accordion/_meta.yaml +9 -0
- package/docs/components/accordion/custom-colors.md +20 -0
- package/docs/components/accordion/intro.md +8 -0
- package/docs/components/accordion/kinds.md +30 -0
- package/docs/components/accordion/multiple.md +28 -0
- package/docs/components/accordion/real-world.md +31 -0
- package/docs/components/accordion/usage.md +28 -0
- package/docs/components/alert/_meta.yaml +10 -0
- package/docs/components/alert/custom-colors.md +30 -0
- package/docs/components/alert/custom-icons.md +17 -0
- package/docs/components/alert/intro.md +8 -0
- package/docs/components/alert/kinds.md +24 -0
- package/docs/components/alert/prominent.md +16 -0
- package/docs/components/alert/rich-content.md +19 -0
- package/docs/components/alert/usage.md +12 -0
- package/docs/components/avatar/_meta.yaml +10 -0
- package/docs/components/avatar/custom-colors.md +14 -0
- package/docs/components/avatar/images.md +12 -0
- package/docs/components/avatar/intro.md +8 -0
- package/docs/components/avatar/kinds.md +16 -0
- package/docs/components/avatar/real-world.md +25 -0
- package/docs/components/avatar/sizes.md +14 -0
- package/docs/components/avatar/usage.md +15 -0
- package/docs/components/breadcrumbs/_meta.yaml +9 -0
- package/docs/components/breadcrumbs/custom-colors.md +14 -0
- package/docs/components/breadcrumbs/intro.md +8 -0
- package/docs/components/breadcrumbs/kinds.md +16 -0
- package/docs/components/breadcrumbs/real-world.md +33 -0
- package/docs/components/breadcrumbs/separators.md +13 -0
- package/docs/components/breadcrumbs/usage.md +15 -0
- package/docs/components/card/_meta.yaml +10 -0
- package/docs/components/card/intro.md +8 -0
- package/docs/components/card/kinds.md +24 -0
- package/docs/components/card/media.md +25 -0
- package/docs/components/card/neon-kinds.md +24 -0
- package/docs/components/card/no-decoration.md +15 -0
- package/docs/components/card/scrollable.md +23 -0
- package/docs/components/card/usage.md +12 -0
- package/docs/components/checkbox/_meta.yaml +11 -0
- package/docs/components/checkbox/color-kinds.md +17 -0
- package/docs/components/checkbox/custom-colors.md +21 -0
- package/docs/components/checkbox/form-example.md +24 -0
- package/docs/components/checkbox/intro.md +8 -0
- package/docs/components/checkbox/kinds.md +16 -0
- package/docs/components/checkbox/sizes.md +13 -0
- package/docs/components/checkbox/states.md +14 -0
- package/docs/components/checkbox/usage.md +17 -0
- package/docs/components/collapsible/_meta.yaml +9 -0
- package/docs/components/collapsible/accessibility.md +6 -0
- package/docs/components/collapsible/custom-colors.md +16 -0
- package/docs/components/collapsible/custom-trigger.md +35 -0
- package/docs/components/collapsible/intro.md +8 -0
- package/docs/components/collapsible/kinds.md +16 -0
- package/docs/components/collapsible/usage.md +22 -0
- package/docs/components/divider/_meta.yaml +10 -0
- package/docs/components/divider/accessibility.md +6 -0
- package/docs/components/divider/intro.md +8 -0
- package/docs/components/divider/kinds.md +16 -0
- package/docs/components/divider/orientation.md +18 -0
- package/docs/components/divider/sizes.md +24 -0
- package/docs/components/divider/usage.md +14 -0
- package/docs/components/divider/variants.md +14 -0
- package/docs/components/dropdown/_meta.yaml +11 -0
- package/docs/components/dropdown/accessibility.md +6 -0
- package/docs/components/dropdown/custom-colors.md +17 -0
- package/docs/components/dropdown/custom-trigger.md +18 -0
- package/docs/components/dropdown/intro.md +8 -0
- package/docs/components/dropdown/kinds.md +23 -0
- package/docs/components/dropdown/positioning.md +23 -0
- package/docs/components/dropdown/submenus.md +28 -0
- package/docs/components/dropdown/usage.md +24 -0
- package/docs/components/field/_meta.yaml +10 -0
- package/docs/components/field/accessibility.md +6 -0
- package/docs/components/field/description.md +15 -0
- package/docs/components/field/intro.md +8 -0
- package/docs/components/field/label-position.md +16 -0
- package/docs/components/field/required.md +12 -0
- package/docs/components/field/usage.md +19 -0
- package/docs/components/field/validation.md +32 -0
- package/docs/components/group/_meta.yaml +7 -0
- package/docs/components/group/accessibility.md +6 -0
- package/docs/components/group/intro.md +8 -0
- package/docs/components/group/orientation.md +22 -0
- package/docs/components/group/usage.md +14 -0
- package/docs/components/input/_meta.yaml +11 -0
- package/docs/components/input/accessibility.md +6 -0
- package/docs/components/input/custom-colors.md +21 -0
- package/docs/components/input/intro.md +8 -0
- package/docs/components/input/kinds.md +16 -0
- package/docs/components/input/sizes.md +13 -0
- package/docs/components/input/states.md +12 -0
- package/docs/components/input/types.md +15 -0
- package/docs/components/input/usage.md +17 -0
- package/docs/components/listbox/_meta.yaml +12 -0
- package/docs/components/listbox/color-kinds.md +27 -0
- package/docs/components/listbox/custom-colors.md +18 -0
- package/docs/components/listbox/form-example.md +36 -0
- package/docs/components/listbox/intro.md +8 -0
- package/docs/components/listbox/kinds.md +30 -0
- package/docs/components/listbox/separators.md +19 -0
- package/docs/components/listbox/sizes.md +24 -0
- package/docs/components/listbox/states.md +19 -0
- package/docs/components/listbox/usage.md +23 -0
- package/docs/components/modal/_meta.yaml +13 -0
- package/docs/components/modal/close-behaviors.md +49 -0
- package/docs/components/modal/confirmation.md +19 -0
- package/docs/components/modal/controlled-state.md +29 -0
- package/docs/components/modal/custom-colors.md +25 -0
- package/docs/components/modal/custom-trigger.md +28 -0
- package/docs/components/modal/form-modal.md +23 -0
- package/docs/components/modal/intro.md +8 -0
- package/docs/components/modal/kinds.md +30 -0
- package/docs/components/modal/sizes.md +21 -0
- package/docs/components/modal/usage.md +15 -0
- package/docs/components/navbar/_meta.yaml +11 -0
- package/docs/components/navbar/complex-layouts.md +34 -0
- package/docs/components/navbar/custom-colors.md +24 -0
- package/docs/components/navbar/icons.md +33 -0
- package/docs/components/navbar/intro.md +8 -0
- package/docs/components/navbar/kinds.md +24 -0
- package/docs/components/navbar/neon-colors.md +24 -0
- package/docs/components/navbar/sticky.md +22 -0
- package/docs/components/navbar/usage.md +25 -0
- package/docs/components/number-input/_meta.yaml +12 -0
- package/docs/components/number-input/color-kinds.md +17 -0
- package/docs/components/number-input/custom-colors.md +21 -0
- package/docs/components/number-input/form-example.md +55 -0
- package/docs/components/number-input/intro.md +8 -0
- package/docs/components/number-input/kinds.md +16 -0
- package/docs/components/number-input/min-max-step.md +11 -0
- package/docs/components/number-input/sizes.md +13 -0
- package/docs/components/number-input/states.md +12 -0
- package/docs/components/number-input/usage.md +18 -0
- package/docs/components/page/_meta.yaml +9 -0
- package/docs/components/page/custom-width.md +17 -0
- package/docs/components/page/fixed-header.md +17 -0
- package/docs/components/page/intro.md +8 -0
- package/docs/components/page/real-world.md +37 -0
- package/docs/components/page/sidebar-position.md +18 -0
- package/docs/components/page/usage.md +33 -0
- package/docs/components/pagination/_meta.yaml +12 -0
- package/docs/components/pagination/config-options.md +17 -0
- package/docs/components/pagination/custom-colors.md +15 -0
- package/docs/components/pagination/intro.md +8 -0
- package/docs/components/pagination/kinds.md +13 -0
- package/docs/components/pagination/sizes.md +14 -0
- package/docs/components/pagination/states.md +10 -0
- package/docs/components/pagination/table-example.md +28 -0
- package/docs/components/pagination/usage.md +10 -0
- package/docs/components/pagination/variants.md +13 -0
- package/docs/components/panel/_meta.yaml +10 -0
- package/docs/components/panel/custom-colors.md +18 -0
- package/docs/components/panel/decoration.md +20 -0
- package/docs/components/panel/intro.md +8 -0
- package/docs/components/panel/kinds.md +23 -0
- package/docs/components/panel/scrollable.md +18 -0
- package/docs/components/panel/sizes.md +20 -0
- package/docs/components/panel/usage.md +13 -0
- package/docs/components/popover/_meta.yaml +9 -0
- package/docs/components/popover/arrow.md +15 -0
- package/docs/components/popover/custom-colors.md +19 -0
- package/docs/components/popover/intro.md +8 -0
- package/docs/components/popover/kinds.md +24 -0
- package/docs/components/popover/positioning.md +36 -0
- package/docs/components/popover/usage.md +15 -0
- package/docs/components/progress/_meta.yaml +10 -0
- package/docs/components/progress/custom-colors.md +14 -0
- package/docs/components/progress/indeterminate.md +11 -0
- package/docs/components/progress/intro.md +8 -0
- package/docs/components/progress/kinds.md +16 -0
- package/docs/components/progress/sizes.md +14 -0
- package/docs/components/progress/usage.md +13 -0
- package/docs/components/progress/value-label.md +12 -0
- package/docs/components/radio/_meta.yaml +10 -0
- package/docs/components/radio/custom-colors.md +24 -0
- package/docs/components/radio/intro.md +8 -0
- package/docs/components/radio/kinds.md +23 -0
- package/docs/components/radio/orientation.md +22 -0
- package/docs/components/radio/sizes.md +23 -0
- package/docs/components/radio/states.md +21 -0
- package/docs/components/radio/usage.md +21 -0
- package/docs/components/sidebar/_meta.yaml +10 -0
- package/docs/components/sidebar/active-state.md +35 -0
- package/docs/components/sidebar/custom-colors.md +20 -0
- package/docs/components/sidebar/intro.md +8 -0
- package/docs/components/sidebar/kinds.md +22 -0
- package/docs/components/sidebar/router.md +24 -0
- package/docs/components/sidebar/sections.md +24 -0
- package/docs/components/sidebar/usage.md +25 -0
- package/docs/components/skeleton/_meta.yaml +8 -0
- package/docs/components/skeleton/animations.md +17 -0
- package/docs/components/skeleton/composition.md +22 -0
- package/docs/components/skeleton/intro.md +8 -0
- package/docs/components/skeleton/usage.md +12 -0
- package/docs/components/skeleton/variants.md +17 -0
- package/docs/components/slider/_meta.yaml +12 -0
- package/docs/components/slider/accessibility.md +6 -0
- package/docs/components/slider/custom-colors.md +14 -0
- package/docs/components/slider/intro.md +8 -0
- package/docs/components/slider/kinds.md +16 -0
- package/docs/components/slider/range.md +16 -0
- package/docs/components/slider/sizes.md +14 -0
- package/docs/components/slider/step.md +13 -0
- package/docs/components/slider/usage.md +16 -0
- package/docs/components/slider/vertical.md +14 -0
- package/docs/components/spinner/_meta.yaml +10 -0
- package/docs/components/spinner/accessibility.md +6 -0
- package/docs/components/spinner/custom-colors.md +13 -0
- package/docs/components/spinner/intro.md +8 -0
- package/docs/components/spinner/kinds.md +16 -0
- package/docs/components/spinner/sizes.md +14 -0
- package/docs/components/spinner/usage.md +10 -0
- package/docs/components/spinner/variants.md +12 -0
- package/docs/components/switch/_meta.yaml +12 -0
- package/docs/components/switch/accessibility.md +6 -0
- package/docs/components/switch/custom-colors.md +29 -0
- package/docs/components/switch/disabled.md +11 -0
- package/docs/components/switch/dynamic-labels.md +12 -0
- package/docs/components/switch/intro.md +8 -0
- package/docs/components/switch/kinds.md +16 -0
- package/docs/components/switch/sizes.md +14 -0
- package/docs/components/switch/thumb-color.md +16 -0
- package/docs/components/switch/usage.md +18 -0
- package/docs/components/table/_meta.yaml +12 -0
- package/docs/components/table/accessibility.md +6 -0
- package/docs/components/table/borders.md +17 -0
- package/docs/components/table/hoverable.md +26 -0
- package/docs/components/table/intro.md +8 -0
- package/docs/components/table/kinds.md +18 -0
- package/docs/components/table/striped.md +28 -0
- package/docs/components/table/subtle.md +26 -0
- package/docs/components/table/usage.md +30 -0
- package/docs/components/table/variants.md +23 -0
- package/docs/components/tabs/_meta.yaml +10 -0
- package/docs/components/tabs/accessibility.md +6 -0
- package/docs/components/tabs/custom-colors.md +23 -0
- package/docs/components/tabs/icons.md +23 -0
- package/docs/components/tabs/intro.md +8 -0
- package/docs/components/tabs/kinds.md +30 -0
- package/docs/components/tabs/usage.md +38 -0
- package/docs/components/tabs/vertical.md +23 -0
- package/docs/components/tag/_meta.yaml +11 -0
- package/docs/components/tag/accessibility.md +6 -0
- package/docs/components/tag/custom-colors.md +32 -0
- package/docs/components/tag/intro.md +8 -0
- package/docs/components/tag/kinds.md +16 -0
- package/docs/components/tag/removable.md +33 -0
- package/docs/components/tag/sizes.md +13 -0
- package/docs/components/tag/usage.md +13 -0
- package/docs/components/tag/variants.md +13 -0
- package/docs/components/tags-input/_meta.yaml +13 -0
- package/docs/components/tags-input/color-kinds.md +17 -0
- package/docs/components/tags-input/custom-colors.md +21 -0
- package/docs/components/tags-input/form-example.md +30 -0
- package/docs/components/tags-input/intro.md +8 -0
- package/docs/components/tags-input/kinds.md +16 -0
- package/docs/components/tags-input/max-tags.md +10 -0
- package/docs/components/tags-input/sizes.md +13 -0
- package/docs/components/tags-input/states.md +10 -0
- package/docs/components/tags-input/tag-customization.md +17 -0
- package/docs/components/tags-input/usage.md +17 -0
- package/docs/components/textarea/_meta.yaml +12 -0
- package/docs/components/textarea/color-kinds.md +17 -0
- package/docs/components/textarea/custom-colors.md +21 -0
- package/docs/components/textarea/form-example.md +37 -0
- package/docs/components/textarea/intro.md +8 -0
- package/docs/components/textarea/kinds.md +16 -0
- package/docs/components/textarea/rows.md +12 -0
- package/docs/components/textarea/sizes.md +13 -0
- package/docs/components/textarea/states.md +12 -0
- package/docs/components/textarea/usage.md +17 -0
- package/docs/components/theme/_meta.yaml +9 -0
- package/docs/components/theme/available-themes.md +16 -0
- package/docs/components/theme/intro.md +8 -0
- package/docs/components/theme/nested-themes.md +16 -0
- package/docs/components/theme/portal-components.md +19 -0
- package/docs/components/theme/programmatic-switching.md +19 -0
- package/docs/components/theme/usage.md +16 -0
- package/docs/components/toast/_meta.yaml +11 -0
- package/docs/components/toast/dismiss.md +15 -0
- package/docs/components/toast/duration.md +23 -0
- package/docs/components/toast/intro.md +8 -0
- package/docs/components/toast/kinds.md +13 -0
- package/docs/components/toast/real-world.md +23 -0
- package/docs/components/toast/setup.md +16 -0
- package/docs/components/toast/usage.md +18 -0
- package/docs/components/toast/with-title.md +14 -0
- package/docs/components/tooltip/_meta.yaml +14 -0
- package/docs/components/tooltip/alignment.md +24 -0
- package/docs/components/tooltip/app-level-provider.md +21 -0
- package/docs/components/tooltip/arrow.md +21 -0
- package/docs/components/tooltip/custom-colors.md +24 -0
- package/docs/components/tooltip/delay.md +27 -0
- package/docs/components/tooltip/intro.md +8 -0
- package/docs/components/tooltip/kinds.md +27 -0
- package/docs/components/tooltip/positioning.md +24 -0
- package/docs/components/tooltip/provider.md +26 -0
- package/docs/components/tooltip/real-world.md +32 -0
- package/docs/components/tooltip/usage.md +15 -0
- package/docs/guides/ai-llms.md +63 -0
- package/docs/guides/design-tokens/_meta.yaml +14 -0
- package/docs/guides/design-tokens/advanced.md +60 -0
- package/docs/guides/design-tokens/architecture.md +11 -0
- package/docs/guides/design-tokens/best-practices.md +21 -0
- package/docs/guides/design-tokens/component-tokens.md +37 -0
- package/docs/guides/design-tokens/foundation-colors.md +13 -0
- package/docs/guides/design-tokens/foundation-other.md +41 -0
- package/docs/guides/design-tokens/intro.md +19 -0
- package/docs/guides/design-tokens/semantic-kinds.md +33 -0
- package/docs/guides/design-tokens/semantic-states.md +55 -0
- package/docs/guides/design-tokens/themes.md +38 -0
- package/docs/guides/design-tokens/usage.md +55 -0
- package/package.json +3 -5
- package/src/components/Accordion/SkAccordion.vue +51 -37
- package/src/components/Accordion/SkAccordionItem.vue +40 -20
- package/src/components/Alert/SkAlert.vue +37 -27
- package/src/components/Avatar/SkAvatar.vue +69 -10
- package/src/components/Breadcrumbs/SkBreadcrumbItem.vue +63 -1
- package/src/components/Breadcrumbs/SkBreadcrumbSeparator.vue +32 -3
- package/src/components/Breadcrumbs/SkBreadcrumbs.vue +36 -0
- package/src/components/Button/SkButton.vue +83 -17
- package/src/components/Card/SkCard.vue +84 -17
- package/src/components/Checkbox/SkCheckbox.vue +52 -12
- package/src/components/Collapsible/SkCollapsible.vue +65 -27
- package/src/components/Divider/SkDivider.vue +51 -11
- package/src/components/Dropdown/SkDropdown.vue +54 -11
- package/src/components/Dropdown/SkDropdownMenuItem.vue +25 -6
- package/src/components/Dropdown/SkDropdownMenuSeparator.vue +16 -2
- package/src/components/Dropdown/SkDropdownSubmenu.vue +30 -8
- package/src/components/Field/SkField.vue +83 -15
- package/src/components/Group/SkGroup.vue +24 -9
- package/src/components/Input/SkInput.vue +77 -15
- package/src/components/Listbox/SkListbox.vue +48 -10
- package/src/components/Listbox/SkListboxItem.vue +28 -7
- package/src/components/Listbox/SkListboxSeparator.vue +16 -2
- package/src/components/Modal/SkModal.vue +85 -36
- package/src/components/NavBar/SkNavBar.vue +39 -9
- package/src/components/NumberInput/SkNumberInput.vue +85 -16
- package/src/components/Page/SkPage.vue +55 -6
- package/src/components/Pagination/SkPagination.vue +88 -0
- package/src/components/Pagination/SkPaginationItem.vue +51 -1
- package/src/components/Panel/SkPanel.vue +46 -12
- package/src/components/Popover/SkPopover.vue +91 -36
- package/src/components/Progress/SkProgress.vue +74 -10
- package/src/components/Radio/SkRadio.vue +48 -12
- package/src/components/Radio/SkRadioGroup.vue +69 -13
- package/src/components/Sidebar/SkSidebar.vue +36 -29
- package/src/components/Sidebar/SkSidebarItem.vue +34 -9
- package/src/components/Sidebar/SkSidebarSection.vue +22 -8
- package/src/components/Skeleton/SkSkeleton.vue +75 -8
- package/src/components/Slider/SkSlider.vue +91 -15
- package/src/components/Spinner/SkSpinner.vue +50 -6
- package/src/components/Switch/SkSwitch.vue +98 -35
- package/src/components/Table/SkTable.vue +79 -15
- package/src/components/Tabs/SkTab.vue +41 -11
- package/src/components/Tabs/SkTabList.vue +24 -8
- package/src/components/Tabs/SkTabPanel.vue +31 -9
- package/src/components/Tabs/SkTabPanels.vue +21 -4
- package/src/components/Tabs/SkTabs.vue +49 -37
- package/src/components/Tag/SkTag.vue +57 -32
- package/src/components/TagsInput/SkTagsInput.vue +75 -14
- package/src/components/Textarea/SkTextarea.vue +78 -15
- package/src/components/Theme/SkTheme.vue +27 -3
- package/src/components/Theme/types.ts +14 -5
- package/src/components/Toast/SkToast.vue +56 -9
- package/src/components/Toast/SkToastProvider.vue +43 -17
- package/src/components/Tooltip/SkTooltip.vue +66 -35
- package/src/components/Tooltip/SkTooltipProvider.vue +36 -36
- package/src/composables/usePortalContext.test.ts +2 -0
- package/src/styles/components/_alert.scss +0 -22
- package/web-types.json +302 -282
- package/docs/components/accordion.md +0 -92
- package/docs/components/alert.md +0 -72
- package/docs/components/avatar.md +0 -69
- package/docs/components/breadcrumbs.md +0 -65
- package/docs/components/button.md +0 -110
- package/docs/components/card.md +0 -87
- package/docs/components/checkbox.md +0 -77
- package/docs/components/collapsible.md +0 -71
- package/docs/components/divider.md +0 -62
- package/docs/components/dropdown.md +0 -88
- package/docs/components/field.md +0 -80
- package/docs/components/group.md +0 -41
- package/docs/components/input.md +0 -84
- package/docs/components/listbox.md +0 -82
- package/docs/components/modal.md +0 -101
- package/docs/components/navbar.md +0 -64
- package/docs/components/number-input.md +0 -78
- package/docs/components/page.md +0 -77
- package/docs/components/pagination.md +0 -88
- package/docs/components/panel.md +0 -74
- package/docs/components/popover.md +0 -93
- package/docs/components/progress.md +0 -76
- package/docs/components/radio.md +0 -86
- package/docs/components/sidebar.md +0 -74
- package/docs/components/skeleton.md +0 -76
- package/docs/components/slider.md +0 -94
- package/docs/components/spinner.md +0 -59
- package/docs/components/switch.md +0 -97
- package/docs/components/table.md +0 -91
- package/docs/components/tabs.md +0 -108
- package/docs/components/tag.md +0 -75
- package/docs/components/tags-input.md +0 -88
- package/docs/components/textarea.md +0 -80
- package/docs/components/theme.md +0 -65
- package/docs/components/toast.md +0 -95
- package/docs/components/tooltip.md +0 -90
- package/docs/guides/design-tokens.md +0 -105
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<!----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
- Breadcrumbs Component
|
|
3
|
+
--------------------------------------------------------------------------------------------------------------------->
|
|
4
|
+
|
|
1
5
|
<template>
|
|
2
6
|
<nav :class="classes" :style="customColorStyles" aria-label="Breadcrumb">
|
|
3
7
|
<ol class="sk-breadcrumbs-list">
|
|
@@ -18,6 +22,24 @@
|
|
|
18
22
|
<!--------------------------------------------------------------------------------------------------------------------->
|
|
19
23
|
|
|
20
24
|
<script setup lang="ts">
|
|
25
|
+
/**
|
|
26
|
+
* @component SkBreadcrumbs
|
|
27
|
+
* @description A navigation component that displays a hierarchical trail of links showing the user's current
|
|
28
|
+
* location within an application. Automatically inserts separators between breadcrumb items and provides
|
|
29
|
+
* ARIA-compliant navigation landmarks for screen readers.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```vue
|
|
33
|
+
* <SkBreadcrumbs kind="primary">
|
|
34
|
+
* <SkBreadcrumbItem to="/">Home</SkBreadcrumbItem>
|
|
35
|
+
* <SkBreadcrumbItem to="/products">Products</SkBreadcrumbItem>
|
|
36
|
+
* <SkBreadcrumbItem current>Widget Pro</SkBreadcrumbItem>
|
|
37
|
+
* </SkBreadcrumbs>
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @slot default - Contains `SkBreadcrumbItem` components representing each level in the navigation hierarchy.
|
|
41
|
+
*/
|
|
42
|
+
|
|
21
43
|
import { type Slots, type VNode, computed, provide, toRef, useSlots } from 'vue';
|
|
22
44
|
|
|
23
45
|
// Types
|
|
@@ -28,6 +50,20 @@
|
|
|
28
50
|
|
|
29
51
|
export interface SkBreadcrumbsComponentProps extends SkBreadcrumbsProps, ComponentCustomColors
|
|
30
52
|
{
|
|
53
|
+
/**
|
|
54
|
+
* Semantic color kind that controls the appearance of breadcrumb links. The kind affects link colors
|
|
55
|
+
* for normal, hover, and active states. All child `SkBreadcrumbItem` components inherit this kind.
|
|
56
|
+
* @default 'neutral'
|
|
57
|
+
*/
|
|
58
|
+
kind ?: SkBreadcrumbsProps['kind'];
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Character or string displayed between breadcrumb items. Common separators include '/', '>', and
|
|
62
|
+
* unicode characters like '\u203A' (single right-pointing angle quotation mark). Can be overridden
|
|
63
|
+
* on individual `SkBreadcrumbSeparator` components for custom patterns.
|
|
64
|
+
* @default '/'
|
|
65
|
+
*/
|
|
66
|
+
separator ?: string;
|
|
31
67
|
}
|
|
32
68
|
|
|
33
69
|
//------------------------------------------------------------------------------------------------------------------
|
|
@@ -43,41 +43,107 @@
|
|
|
43
43
|
|
|
44
44
|
<script setup lang="ts">
|
|
45
45
|
/**
|
|
46
|
-
* @component
|
|
47
|
-
* A versatile button component
|
|
48
|
-
*
|
|
46
|
+
* @component SkButton
|
|
47
|
+
* @description A versatile button component supporting multiple visual variants, sizes, and interactive states.
|
|
48
|
+
* Automatically renders as a `<button>`, `<a>`, or `<router-link>` based on the props provided. Use for
|
|
49
|
+
* primary actions, navigation, form submissions, and toggleable controls with full keyboard accessibility.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```vue
|
|
53
|
+
* <SkButton kind="primary" @click="save">Save Changes</SkButton>
|
|
54
|
+
* <SkButton variant="outline" href="/docs">Documentation</SkButton>
|
|
55
|
+
* <SkButton :loading="isSaving" kind="accent">Submit</SkButton>
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @slot default - Button label text or content. Supports text, icons, or any inline elements.
|
|
59
|
+
* @slot leading - Icon or element displayed before the button text. Ideal for action icons.
|
|
60
|
+
* @slot trailing - Icon or element displayed after the button text. Useful for arrows or indicators.
|
|
61
|
+
* @slot icon - Icon for icon-only buttons. When used without the default slot, creates a square icon button.
|
|
49
62
|
*/
|
|
50
63
|
|
|
51
64
|
import { type Slots, computed, toRef, useSlots } from 'vue';
|
|
52
|
-
|
|
65
|
+
|
|
66
|
+
// Types
|
|
53
67
|
import type { ComponentCustomColors } from '@/types';
|
|
68
|
+
import type { SkButtonKind, SkButtonSize, SkButtonType, SkButtonVariant } from './types';
|
|
69
|
+
|
|
70
|
+
// Composables
|
|
54
71
|
import { useCustomColors } from '@/composables/useCustomColors';
|
|
55
72
|
|
|
56
73
|
//------------------------------------------------------------------------------------------------------------------
|
|
57
74
|
|
|
58
|
-
/**
|
|
59
|
-
* A versatile button component with multiple variants, sizes, and states.
|
|
60
|
-
* Supports rendering as button, link (a), or router-link.
|
|
61
|
-
*/
|
|
62
75
|
export interface SkButtonComponentProps extends ComponentCustomColors
|
|
63
76
|
{
|
|
64
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* The HTML `type` attribute for the button element. Only applies when rendering as a `<button>`
|
|
79
|
+
* (i.e., when neither `href` nor `to` props are provided). Use 'submit' for form submission
|
|
80
|
+
* buttons and 'reset' for form reset buttons.
|
|
81
|
+
* @default 'button'
|
|
82
|
+
*/
|
|
65
83
|
type ?: SkButtonType;
|
|
66
|
-
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Semantic color kind that controls the button's color scheme. Semantic kinds (neutral, primary,
|
|
87
|
+
* accent, etc.) adapt to your theme colors, while color kinds (neon-blue, neon-purple, etc.)
|
|
88
|
+
* provide fixed branding colors that remain consistent across themes.
|
|
89
|
+
* @default 'neutral'
|
|
90
|
+
*/
|
|
67
91
|
kind ?: SkButtonKind;
|
|
68
|
-
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Visual variant that determines the button's styling approach. 'solid' provides a filled
|
|
95
|
+
* background, 'outline' shows a bordered button with transparent background, and 'ghost'
|
|
96
|
+
* renders a minimal button with no background or border until hovered.
|
|
97
|
+
* @default 'solid'
|
|
98
|
+
*/
|
|
69
99
|
variant ?: SkButtonVariant;
|
|
70
|
-
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Button size controlling padding, font size, and overall dimensions. Available sizes:
|
|
103
|
+
* 'sm' (small, compact), 'md' (medium, default), 'lg' (large), 'xl' (extra large).
|
|
104
|
+
* Icon-only buttons automatically adjust to square proportions at each size.
|
|
105
|
+
* @default 'md'
|
|
106
|
+
*/
|
|
71
107
|
size ?: SkButtonSize;
|
|
72
|
-
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* When true, disables the button preventing all user interaction. The button appears with
|
|
111
|
+
* reduced opacity and the cursor changes to not-allowed. Also disables any navigation
|
|
112
|
+
* for link-style buttons.
|
|
113
|
+
* @default false
|
|
114
|
+
*/
|
|
73
115
|
disabled ?: boolean;
|
|
74
|
-
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* When true, displays a loading spinner and disables the button. The button content remains
|
|
119
|
+
* visible but dimmed while the spinner overlays it. Use this to indicate async operations
|
|
120
|
+
* like form submissions or data fetching.
|
|
121
|
+
* @default false
|
|
122
|
+
*/
|
|
75
123
|
loading ?: boolean;
|
|
76
|
-
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Toggle state for buttons used as toggle controls. When true, applies the pressed visual
|
|
127
|
+
* state and sets `aria-pressed="true"` for accessibility. Use with `@click` to toggle
|
|
128
|
+
* the value for toolbar buttons or toggle switches.
|
|
129
|
+
* @default false
|
|
130
|
+
*/
|
|
77
131
|
pressed ?: boolean;
|
|
78
|
-
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* URL for the button to navigate to. When provided, the button renders as an `<a>` element
|
|
135
|
+
* instead of a `<button>`. Use for external links or simple navigation that doesn't require
|
|
136
|
+
* Vue Router.
|
|
137
|
+
* @default undefined
|
|
138
|
+
*/
|
|
79
139
|
href ?: string;
|
|
80
|
-
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Vue Router route for the button to navigate to. When provided, the button renders as a
|
|
143
|
+
* `<router-link>` component. Accepts either a string path or a route location object with
|
|
144
|
+
* name, params, and query properties.
|
|
145
|
+
* @default undefined
|
|
146
|
+
*/
|
|
81
147
|
to ?: string | Record<string, any>;
|
|
82
148
|
}
|
|
83
149
|
|
|
@@ -34,40 +34,107 @@
|
|
|
34
34
|
|
|
35
35
|
<script setup lang="ts">
|
|
36
36
|
/**
|
|
37
|
-
* @component
|
|
38
|
-
* A structured card component with
|
|
39
|
-
*
|
|
37
|
+
* @component SkCard
|
|
38
|
+
* @description A structured card component with distinct header, media, content, and footer sections. Built on top
|
|
39
|
+
* of SkPanel, cards are ideal for displaying grouped information like product listings, user profiles, or article
|
|
40
|
+
* previews. Supports scrollable content areas for fixed-height layouts.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```vue
|
|
44
|
+
* <SkCard title="Product Details" kind="primary">
|
|
45
|
+
* <template #media>
|
|
46
|
+
* <img src="/product.jpg" alt="Product" />
|
|
47
|
+
* </template>
|
|
48
|
+
* <p>Product description goes here.</p>
|
|
49
|
+
* <template #footer>
|
|
50
|
+
* <SkButton>Add to Cart</SkButton>
|
|
51
|
+
* </template>
|
|
52
|
+
* </SkCard>
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @slot default - The main content area of the card. Displays below the header and media sections.
|
|
56
|
+
* @slot header - Custom header content. Renders alongside or instead of the `title` prop. Use for action buttons,
|
|
57
|
+
* badges, or complex header layouts.
|
|
58
|
+
* @slot media - Media content area (images, videos, etc.) that spans the full width without padding. Displays
|
|
59
|
+
* between the header and content sections.
|
|
60
|
+
* @slot footer - Footer content area for actions, links, or metadata. Displays at the bottom of the card with
|
|
61
|
+
* appropriate spacing.
|
|
40
62
|
*/
|
|
41
63
|
|
|
42
64
|
import { computed } from 'vue';
|
|
43
|
-
|
|
65
|
+
|
|
66
|
+
// Types
|
|
67
|
+
import type { ComponentCustomColors } from '@/types';
|
|
44
68
|
import type { SkCardKind } from './types';
|
|
45
69
|
import type { SkPanelSize } from '../Panel/types';
|
|
46
|
-
|
|
70
|
+
|
|
71
|
+
// Components
|
|
72
|
+
import SkPanel from '../Panel/SkPanel.vue';
|
|
47
73
|
|
|
48
74
|
//------------------------------------------------------------------------------------------------------------------
|
|
49
75
|
|
|
50
|
-
/**
|
|
51
|
-
* A structured card component with optional header, media, content, and footer sections.
|
|
52
|
-
* Built on top of SkPanel with additional styling and layout features.
|
|
53
|
-
*/
|
|
54
76
|
export interface SkCardComponentProps extends ComponentCustomColors
|
|
55
77
|
{
|
|
56
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* Semantic color kind that controls the card's border color and decorative accent stripe.
|
|
80
|
+
* Semantic kinds (neutral, primary, accent, etc.) automatically adapt to your current theme,
|
|
81
|
+
* while color kinds (neon-blue, neon-purple, etc.) provide fixed branding colors.
|
|
82
|
+
* @default 'neutral'
|
|
83
|
+
*/
|
|
57
84
|
kind ?: SkCardKind;
|
|
58
|
-
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Controls the internal padding of the card's content areas. Larger sizes provide more
|
|
88
|
+
* breathing room, while smaller sizes create compact layouts. The header, content, and
|
|
89
|
+
* footer sections all respect this sizing. Available: 'sm', 'md', 'lg', 'xl'.
|
|
90
|
+
* @default 'md'
|
|
91
|
+
*/
|
|
59
92
|
size ?: SkPanelSize;
|
|
60
|
-
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* When true, displays a colored accent stripe along the top edge of the card.
|
|
96
|
+
* Can be explicitly set to override the default behavior. Takes precedence over
|
|
97
|
+
* `noDecoration` when explicitly set to true.
|
|
98
|
+
* @default undefined (defaults to true unless noDecoration is set)
|
|
99
|
+
*/
|
|
61
100
|
showDecoration ?: boolean;
|
|
62
|
-
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* When true, explicitly disables the decorative accent stripe. Use this for cleaner
|
|
104
|
+
* card appearances where the color accent is not needed. This is overridden if
|
|
105
|
+
* `showDecoration` is explicitly set to true.
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
63
108
|
noDecoration ?: boolean;
|
|
64
|
-
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* When true, removes the border entirely from the card. Useful for flat card designs
|
|
112
|
+
* or when cards are displayed on contrasting backgrounds. Note: This automatically
|
|
113
|
+
* disables the decoration stripe since it's part of the border styling.
|
|
114
|
+
* @default false
|
|
115
|
+
*/
|
|
65
116
|
noBorder ?: boolean;
|
|
66
|
-
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Title text displayed prominently in the card header section. The title is rendered
|
|
120
|
+
* as an h3 element for proper document semantics. For more complex headers, use the
|
|
121
|
+
* `header` slot instead of or alongside this prop.
|
|
122
|
+
*/
|
|
67
123
|
title ?: string;
|
|
68
|
-
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Custom CSS background color for the header section only. Accepts any valid CSS color
|
|
127
|
+
* value (hex, rgb, oklch, etc.). Use this to create visual distinction between the
|
|
128
|
+
* header and content areas, or to match brand colors.
|
|
129
|
+
*/
|
|
69
130
|
headerColor ?: string;
|
|
70
|
-
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* When true, makes the content area scrollable with a fixed maximum height. The card
|
|
134
|
+
* itself must have a constrained height (via CSS or parent container) for scrolling
|
|
135
|
+
* to take effect. Header and footer remain fixed while content scrolls.
|
|
136
|
+
* @default false
|
|
137
|
+
*/
|
|
71
138
|
scrollable ?: boolean;
|
|
72
139
|
}
|
|
73
140
|
|
|
@@ -58,9 +58,17 @@
|
|
|
58
58
|
|
|
59
59
|
<script setup lang="ts">
|
|
60
60
|
/**
|
|
61
|
-
* @component
|
|
62
|
-
* A checkbox component
|
|
63
|
-
*
|
|
61
|
+
* @component SkCheckbox
|
|
62
|
+
* @description A checkbox input component supporting boolean and indeterminate states. Built on RekaUI's
|
|
63
|
+
* Checkbox primitive with beveled corner styling and full keyboard accessibility. Use with `v-model` for
|
|
64
|
+
* two-way binding of the checked state.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```vue
|
|
68
|
+
* <SkCheckbox v-model="accepted" label="Accept terms" kind="primary" />
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @slot default - Custom label content. Overrides the `label` prop when provided.
|
|
64
72
|
*/
|
|
65
73
|
|
|
66
74
|
import { computed, toRef } from 'vue';
|
|
@@ -75,22 +83,47 @@
|
|
|
75
83
|
|
|
76
84
|
//------------------------------------------------------------------------------------------------------------------
|
|
77
85
|
|
|
78
|
-
/**
|
|
79
|
-
* A checkbox component for boolean or indeterminate states powered by RekaUI.
|
|
80
|
-
*/
|
|
81
86
|
export interface SkCheckboxComponentProps extends ComponentCustomColors
|
|
82
87
|
{
|
|
83
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Semantic color kind that controls the checkbox appearance when checked. Semantic kinds
|
|
90
|
+
* (neutral, primary, accent, etc.) adapt to your theme, while color kinds (neon-blue,
|
|
91
|
+
* neon-purple, etc.) provide fixed branding colors.
|
|
92
|
+
* @default 'neutral'
|
|
93
|
+
*/
|
|
84
94
|
kind ?: SkCheckboxKind;
|
|
85
|
-
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Checkbox size. Controls both the checkbox box dimensions and the label text size.
|
|
98
|
+
* Available sizes: 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
|
|
99
|
+
* @default 'md'
|
|
100
|
+
*/
|
|
86
101
|
size ?: SkCheckboxSize;
|
|
87
|
-
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* When true, the checkbox is disabled and cannot be interacted with. The checkbox
|
|
105
|
+
* appears with reduced opacity and the cursor changes to not-allowed.
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
88
108
|
disabled ?: boolean;
|
|
89
|
-
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* When true, marks the checkbox as required for form validation. This does not
|
|
112
|
+
* add visual indication—use a SkField wrapper for required field styling.
|
|
113
|
+
* @default false
|
|
114
|
+
*/
|
|
90
115
|
required ?: boolean;
|
|
91
|
-
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* The form field name used when submitting the checkbox value in a form.
|
|
119
|
+
* Required for native form submission.
|
|
120
|
+
*/
|
|
92
121
|
name ?: string;
|
|
93
|
-
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Label text displayed next to the checkbox. Can be overridden by the default slot
|
|
125
|
+
* for custom label content (icons, formatted text, etc.).
|
|
126
|
+
*/
|
|
94
127
|
label ?: string;
|
|
95
128
|
}
|
|
96
129
|
|
|
@@ -107,6 +140,13 @@
|
|
|
107
140
|
|
|
108
141
|
//------------------------------------------------------------------------------------------------------------------
|
|
109
142
|
|
|
143
|
+
/**
|
|
144
|
+
* The checkbox state. Use with `v-model` for two-way binding.
|
|
145
|
+
* - `true` — checked (displays checkmark)
|
|
146
|
+
* - `false` — unchecked (empty box)
|
|
147
|
+
* - `'indeterminate'` — indeterminate state (displays horizontal line)
|
|
148
|
+
* @default false
|
|
149
|
+
*/
|
|
110
150
|
const checked = defineModel<boolean | 'indeterminate'>({ default: false });
|
|
111
151
|
|
|
112
152
|
//------------------------------------------------------------------------------------------------------------------
|
|
@@ -54,8 +54,36 @@
|
|
|
54
54
|
|
|
55
55
|
<script setup lang="ts">
|
|
56
56
|
/**
|
|
57
|
-
* @component
|
|
58
|
-
*
|
|
57
|
+
* @component SkCollapsible
|
|
58
|
+
* @description An expandable/collapsible container that reveals or hides content with smooth height animations.
|
|
59
|
+
* Built on RekaUI's Collapsible primitive for robust accessibility and keyboard support. Use for FAQ sections,
|
|
60
|
+
* expandable details, or any content that should be hidden by default to reduce visual clutter.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```vue
|
|
64
|
+
* <SkCollapsible v-model:open="showDetails" trigger-text="Show Details" kind="primary">
|
|
65
|
+
* <p>This content is hidden until the user clicks the trigger.</p>
|
|
66
|
+
* </SkCollapsible>
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @example Custom trigger with slot
|
|
70
|
+
* ```vue
|
|
71
|
+
* <SkCollapsible v-model:open="isExpanded">
|
|
72
|
+
* <template #trigger="{ open }">
|
|
73
|
+
* <SkButton variant="outline">
|
|
74
|
+
* {{ open ? 'Hide' : 'Show' }} Advanced Options
|
|
75
|
+
* </SkButton>
|
|
76
|
+
* </template>
|
|
77
|
+
* <div class="options-panel">
|
|
78
|
+
* <!-- Advanced options content -->
|
|
79
|
+
* </div>
|
|
80
|
+
* </SkCollapsible>
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @slot default - The collapsible content that is shown/hidden. This content animates smoothly when the
|
|
84
|
+
* collapsed state changes.
|
|
85
|
+
* @slot trigger - Custom trigger element. Receives `{ open: boolean }` slot props to allow the trigger to
|
|
86
|
+
* reflect the current state. When not provided, a default SkButton with chevron icon is rendered.
|
|
59
87
|
*/
|
|
60
88
|
|
|
61
89
|
import { computed, toRef } from 'vue';
|
|
@@ -77,37 +105,47 @@
|
|
|
77
105
|
|
|
78
106
|
//------------------------------------------------------------------------------------------------------------------
|
|
79
107
|
|
|
80
|
-
/**
|
|
81
|
-
* Collapsible component for showing/hiding content with smooth animations.
|
|
82
|
-
*
|
|
83
|
-
* @example Basic usage
|
|
84
|
-
* ```vue
|
|
85
|
-
* <SkCollapsible v-model:open="isOpen" trigger-text="Show more">
|
|
86
|
-
* <p>Hidden content here</p>
|
|
87
|
-
* </SkCollapsible>
|
|
88
|
-
* ```
|
|
89
|
-
*
|
|
90
|
-
* @example Custom trigger
|
|
91
|
-
* ```vue
|
|
92
|
-
* <SkCollapsible v-model:open="isOpen">
|
|
93
|
-
* <template #trigger="{ open }">
|
|
94
|
-
* <SkButton>{{ open ? 'Hide' : 'Show' }} Details</SkButton>
|
|
95
|
-
* </template>
|
|
96
|
-
* <p>Collapsible content here</p>
|
|
97
|
-
* </SkCollapsible>
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
108
|
export interface SkCollapsibleComponentProps extends ComponentCustomColors
|
|
101
109
|
{
|
|
102
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* Controls the expanded/collapsed state of the component. Use with `v-model:open` for
|
|
112
|
+
* two-way binding. When true, the content is visible; when false, it's hidden. If not
|
|
113
|
+
* provided, the component manages its own state internally starting with `defaultOpen`.
|
|
114
|
+
* @default undefined (uncontrolled mode)
|
|
115
|
+
*/
|
|
103
116
|
open ?: boolean;
|
|
104
|
-
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* The initial expanded state when the component is first rendered in uncontrolled mode.
|
|
120
|
+
* Only applies when the `open` prop is not provided. After initial render, the component
|
|
121
|
+
* manages its own state.
|
|
122
|
+
* @default false
|
|
123
|
+
*/
|
|
105
124
|
defaultOpen ?: boolean;
|
|
106
|
-
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* When true, disables the trigger and prevents state changes. The current expanded/collapsed
|
|
128
|
+
* state is preserved but cannot be changed by user interaction. The trigger element appears
|
|
129
|
+
* with reduced opacity and cursor changes to not-allowed.
|
|
130
|
+
* @default false
|
|
131
|
+
*/
|
|
107
132
|
disabled ?: boolean;
|
|
108
|
-
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Semantic color kind that controls the default trigger button appearance. Semantic kinds
|
|
136
|
+
* (neutral, primary, accent, etc.) adapt to your theme, while color kinds provide fixed
|
|
137
|
+
* branding colors. Only applies when using the default trigger; ignored when using the
|
|
138
|
+
* trigger slot.
|
|
139
|
+
* @default 'neutral'
|
|
140
|
+
*/
|
|
109
141
|
kind ?: SkCollapsibleKind;
|
|
110
|
-
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Label text for the default trigger button. Displayed alongside the animated chevron
|
|
145
|
+
* icon. Only applies when the trigger slot is not provided. For more control over the
|
|
146
|
+
* trigger appearance, use the trigger slot instead.
|
|
147
|
+
* @default 'Toggle'
|
|
148
|
+
*/
|
|
111
149
|
triggerText ?: string;
|
|
112
150
|
}
|
|
113
151
|
|
|
@@ -10,30 +10,70 @@
|
|
|
10
10
|
|
|
11
11
|
<script setup lang="ts">
|
|
12
12
|
/**
|
|
13
|
-
* @component
|
|
14
|
-
* A visual separator component
|
|
15
|
-
*
|
|
13
|
+
* @component SkDivider
|
|
14
|
+
* @description A visual separator component used to divide content into distinct sections. Renders as a semantic
|
|
15
|
+
* `<hr>` element with proper ARIA attributes for accessibility. Use horizontal dividers to separate stacked
|
|
16
|
+
* content, or vertical dividers to separate inline elements like toolbar buttons.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```vue
|
|
20
|
+
* <div>
|
|
21
|
+
* <p>First section content</p>
|
|
22
|
+
* <SkDivider kind="primary" />
|
|
23
|
+
* <p>Second section content</p>
|
|
24
|
+
* </div>
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example Vertical divider in a toolbar
|
|
28
|
+
* ```vue
|
|
29
|
+
* <SkGroup orientation="horizontal">
|
|
30
|
+
* <SkButton>Edit</SkButton>
|
|
31
|
+
* <SkDivider orientation="vertical" variant="subtle" />
|
|
32
|
+
* <SkButton>Delete</SkButton>
|
|
33
|
+
* </SkGroup>
|
|
34
|
+
* ```
|
|
16
35
|
*/
|
|
17
36
|
|
|
18
37
|
import { computed } from 'vue';
|
|
38
|
+
|
|
39
|
+
// Types
|
|
19
40
|
import type { ComponentKind, ComponentSize } from '@/types';
|
|
20
41
|
import type { SkDividerOrientation, SkDividerVariant } from './types';
|
|
21
42
|
|
|
22
43
|
//------------------------------------------------------------------------------------------------------------------
|
|
23
44
|
|
|
24
|
-
/**
|
|
25
|
-
* A visual separator component for dividing content.
|
|
26
|
-
* Supports horizontal and vertical orientations with subtle or default styling.
|
|
27
|
-
*/
|
|
28
45
|
export interface SkDividerComponentProps
|
|
29
46
|
{
|
|
30
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Controls the direction of the divider line. Use 'horizontal' for separating
|
|
49
|
+
* vertically stacked content (the divider spans width), or 'vertical' for
|
|
50
|
+
* separating horizontally arranged elements (the divider spans height).
|
|
51
|
+
* @default 'horizontal'
|
|
52
|
+
*/
|
|
31
53
|
orientation ?: SkDividerOrientation;
|
|
32
|
-
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Semantic color kind that controls the divider's line color. Semantic kinds
|
|
57
|
+
* (neutral, primary, accent, etc.) adapt to your theme. Use colored dividers
|
|
58
|
+
* sparingly to draw attention to important content boundaries.
|
|
59
|
+
* @default 'neutral'
|
|
60
|
+
*/
|
|
33
61
|
kind ?: ComponentKind;
|
|
34
|
-
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Visual intensity variant for the divider. The default variant provides a
|
|
65
|
+
* clearly visible line, while 'subtle' reduces opacity for a softer, less
|
|
66
|
+
* prominent separation that doesn't compete with content for attention.
|
|
67
|
+
* @default undefined (uses default styling)
|
|
68
|
+
*/
|
|
35
69
|
variant ?: SkDividerVariant;
|
|
36
|
-
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Controls the thickness of the divider line and the spacing (margin) around it.
|
|
73
|
+
* Larger sizes create bolder visual breaks between content sections, while smaller
|
|
74
|
+
* sizes provide minimal separation. Available: 'sm', 'md', 'lg', 'xl'.
|
|
75
|
+
* @default 'md'
|
|
76
|
+
*/
|
|
37
77
|
size ?: ComponentSize;
|
|
38
78
|
}
|
|
39
79
|
|