@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
|
@@ -21,31 +21,65 @@
|
|
|
21
21
|
|
|
22
22
|
<script setup lang="ts">
|
|
23
23
|
/**
|
|
24
|
-
* @component
|
|
25
|
-
* A foundational container component with borders, background colors, and optional
|
|
26
|
-
*
|
|
24
|
+
* @component SkPanel
|
|
25
|
+
* @description A foundational container component with beveled corners, borders, background colors, and an optional
|
|
26
|
+
* decorative accent stripe. Panels serve as the base building block for higher-level components like SkCard and
|
|
27
|
+
* SkSidebar, providing consistent styling and theming across the design system.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```vue
|
|
31
|
+
* <SkPanel kind="primary" size="lg">
|
|
32
|
+
* <p>Panel content goes here</p>
|
|
33
|
+
* </SkPanel>
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @slot default - The main content of the panel. Accepts any valid Vue content including text, components, or HTML.
|
|
27
37
|
*/
|
|
28
38
|
|
|
29
39
|
import { computed, toRef } from 'vue';
|
|
30
|
-
|
|
40
|
+
|
|
41
|
+
// Types
|
|
31
42
|
import type { ComponentCustomColors } from '@/types';
|
|
43
|
+
import type { SkPanelKind, SkPanelSize } from './types';
|
|
44
|
+
|
|
45
|
+
// Composables
|
|
32
46
|
import { useCustomColors } from '@/composables/useCustomColors';
|
|
33
47
|
|
|
34
48
|
//------------------------------------------------------------------------------------------------------------------
|
|
35
49
|
|
|
36
|
-
/**
|
|
37
|
-
* A foundational container component with borders, background colors, and optional decorative accents.
|
|
38
|
-
* Serves as the base for other components like SkCard and SkSidebar.
|
|
39
|
-
*/
|
|
40
50
|
export interface SkPanelComponentProps extends ComponentCustomColors
|
|
41
51
|
{
|
|
42
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Semantic color kind that controls the panel's border color and decorative accent stripe.
|
|
54
|
+
* Semantic kinds (neutral, primary, accent, etc.) automatically adapt to your current theme,
|
|
55
|
+
* while color kinds (neon-blue, neon-purple, etc.) provide fixed branding colors that remain
|
|
56
|
+
* consistent across themes.
|
|
57
|
+
* @default 'neutral'
|
|
58
|
+
*/
|
|
43
59
|
kind ?: SkPanelKind;
|
|
44
|
-
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Controls the internal padding of the panel. Larger sizes provide more breathing room
|
|
63
|
+
* for content, while smaller sizes create compact, dense layouts. Available sizes:
|
|
64
|
+
* 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
|
|
65
|
+
* @default 'md'
|
|
66
|
+
*/
|
|
45
67
|
size ?: SkPanelSize;
|
|
46
|
-
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* When true, displays a colored accent stripe along the top edge of the panel.
|
|
71
|
+
* The stripe color matches the selected `kind`. This decoration is automatically
|
|
72
|
+
* disabled when `noBorder` is true since the decoration is part of the border styling.
|
|
73
|
+
* @default true
|
|
74
|
+
*/
|
|
47
75
|
showDecoration ?: boolean;
|
|
48
|
-
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* When true, removes the border entirely from the panel, creating a borderless container.
|
|
79
|
+
* Useful for nested panels or when you want the panel background without visual boundaries.
|
|
80
|
+
* Note: Setting this to true automatically disables the decoration stripe.
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
49
83
|
noBorder ?: boolean;
|
|
50
84
|
}
|
|
51
85
|
|
|
@@ -68,9 +68,36 @@
|
|
|
68
68
|
|
|
69
69
|
<script setup lang="ts">
|
|
70
70
|
/**
|
|
71
|
-
* @component
|
|
72
|
-
*
|
|
73
|
-
* Combines tooltip-like positioning with card-like structure
|
|
71
|
+
* @component SkPopover
|
|
72
|
+
* @description A floating panel component for displaying rich interactive content anchored to a trigger element.
|
|
73
|
+
* Combines tooltip-like positioning with a card-like structure including optional header, body, and footer
|
|
74
|
+
* sections. Built on RekaUI's Popover primitive with full accessibility support, smart collision detection,
|
|
75
|
+
* and keyboard navigation. Use for contextual menus, confirmations, mini-forms, or any content that benefits
|
|
76
|
+
* from staying connected to its trigger.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```vue
|
|
80
|
+
* <SkPopover title="Quick Settings" kind="primary">
|
|
81
|
+
* <template #trigger>
|
|
82
|
+
* <SkButton icon><GearIcon /></SkButton>
|
|
83
|
+
* </template>
|
|
84
|
+
* <SkSwitch v-model="darkMode" label="Dark mode" />
|
|
85
|
+
* <SkSwitch v-model="notifications" label="Notifications" />
|
|
86
|
+
* <template #footer>
|
|
87
|
+
* <SkButton variant="ghost" size="sm">Reset</SkButton>
|
|
88
|
+
* <SkButton kind="primary" size="sm">Apply</SkButton>
|
|
89
|
+
* </template>
|
|
90
|
+
* </SkPopover>
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @slot trigger - The element that opens the popover when clicked. Uses `as-child` behavior so your
|
|
94
|
+
* trigger element becomes the actual clickable trigger. Required slot.
|
|
95
|
+
* @slot header - Optional header content displayed after the title. Use for additional header elements
|
|
96
|
+
* like badges, status indicators, or secondary actions.
|
|
97
|
+
* @slot default - Main body content of the popover. Can include any components, forms, or interactive content.
|
|
98
|
+
* Scrolls if content exceeds available space.
|
|
99
|
+
* @slot footer - Optional footer content, typically for action buttons. Commonly contains Cancel/Confirm
|
|
100
|
+
* button pairs or other closing actions.
|
|
74
101
|
*/
|
|
75
102
|
|
|
76
103
|
import { computed, toRef } from 'vue';
|
|
@@ -93,48 +120,71 @@
|
|
|
93
120
|
|
|
94
121
|
//------------------------------------------------------------------------------------------------------------------
|
|
95
122
|
|
|
96
|
-
/**
|
|
97
|
-
* Popover component for floating panels positioned relative to a trigger.
|
|
98
|
-
*
|
|
99
|
-
* Combines tooltip-like positioning with card-like structure for rich content.
|
|
100
|
-
*
|
|
101
|
-
* @example Basic usage with title
|
|
102
|
-
* ```vue
|
|
103
|
-
* <SkPopover title="Settings">
|
|
104
|
-
* <template #trigger><SkButton>Open</SkButton></template>
|
|
105
|
-
* <p>Popover content here</p>
|
|
106
|
-
* </SkPopover>
|
|
107
|
-
* ```
|
|
108
|
-
*
|
|
109
|
-
* @example With footer actions
|
|
110
|
-
* ```vue
|
|
111
|
-
* <SkPopover title="Confirm Action" kind="danger">
|
|
112
|
-
* <template #trigger><SkButton kind="danger">Delete</SkButton></template>
|
|
113
|
-
* <p>Are you sure you want to delete this item?</p>
|
|
114
|
-
* <template #footer>
|
|
115
|
-
* <SkButton variant="ghost" size="sm">Cancel</SkButton>
|
|
116
|
-
* <SkButton kind="danger" size="sm">Delete</SkButton>
|
|
117
|
-
* </template>
|
|
118
|
-
* </SkPopover>
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
123
|
export interface SkPopoverComponentProps extends ComponentCustomColors
|
|
122
124
|
{
|
|
123
|
-
/**
|
|
125
|
+
/**
|
|
126
|
+
* Semantic color kind that controls the popover's header accent and overall color scheme.
|
|
127
|
+
* Semantic kinds (neutral, primary, accent, info, success, warning, danger) adapt to your
|
|
128
|
+
* theme. Use 'neutral' for general popovers, or match the kind to contextual meaning
|
|
129
|
+
* (e.g., 'danger' for delete confirmations, 'success' for completion messages).
|
|
130
|
+
* @default 'neutral'
|
|
131
|
+
*/
|
|
124
132
|
kind ?: ComponentKind;
|
|
125
|
-
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Which side of the trigger element to display the popover. The popover automatically
|
|
136
|
+
* repositions if there isn't enough space on the preferred side. 'bottom' works well
|
|
137
|
+
* for toolbars, 'right' for sidebar items, 'top' for footer elements.
|
|
138
|
+
* @default 'bottom'
|
|
139
|
+
*/
|
|
126
140
|
side ?: SkPopoverSide;
|
|
127
|
-
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Alignment of the popover along its side. 'center' centers the popover on the trigger,
|
|
144
|
+
* 'start' aligns to the left/top edge, 'end' aligns to the right/bottom edge. Useful
|
|
145
|
+
* when triggers are near screen edges or when you want the arrow to point at a specific
|
|
146
|
+
* part of the trigger.
|
|
147
|
+
* @default 'center'
|
|
148
|
+
*/
|
|
128
149
|
align ?: SkPopoverAlign;
|
|
129
|
-
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Distance in pixels between the popover and its trigger element. Increase for more
|
|
153
|
+
* visual separation, decrease for tighter coupling. The arrow (if shown) bridges
|
|
154
|
+
* this gap to maintain visual connection.
|
|
155
|
+
* @default 8
|
|
156
|
+
*/
|
|
130
157
|
sideOffset ?: number;
|
|
131
|
-
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Whether to display a small arrow pointing from the popover toward its trigger element.
|
|
161
|
+
* Arrows help visually anchor the popover to its trigger, especially important when
|
|
162
|
+
* multiple triggers are close together. Disable for a cleaner, card-like appearance.
|
|
163
|
+
* @default true
|
|
164
|
+
*/
|
|
132
165
|
showArrow ?: boolean;
|
|
133
|
-
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Optional title text displayed in the popover header. Creates a header section with
|
|
169
|
+
* the title and close button (if closable). When omitted and no header slot is provided,
|
|
170
|
+
* no header is rendered, creating a content-only popover.
|
|
171
|
+
*/
|
|
134
172
|
title ?: string;
|
|
135
|
-
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Whether to show an X close button in the header. Provides an obvious way for users
|
|
176
|
+
* to dismiss the popover beyond clicking outside. Automatically creates a header section
|
|
177
|
+
* if title is also set. Users can always close by clicking outside or pressing Escape.
|
|
178
|
+
* @default true
|
|
179
|
+
*/
|
|
136
180
|
closable ?: boolean;
|
|
137
|
-
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Controls the popover's open state for two-way binding with `v-model:open`. When provided,
|
|
184
|
+
* you control when the popover opens and closes. When omitted, the popover manages its own
|
|
185
|
+
* state internally (opens on trigger click, closes on outside click or Escape).
|
|
186
|
+
* @default undefined
|
|
187
|
+
*/
|
|
138
188
|
open ?: boolean;
|
|
139
189
|
}
|
|
140
190
|
|
|
@@ -151,6 +201,11 @@
|
|
|
151
201
|
open: undefined,
|
|
152
202
|
});
|
|
153
203
|
|
|
204
|
+
/**
|
|
205
|
+
* @event update:open - Emitted when the popover's open state changes. Use with `v-model:open` for
|
|
206
|
+
* two-way binding. Receives `true` when the popover opens (trigger clicked) and `false` when it
|
|
207
|
+
* closes (outside click, Escape key, or close button).
|
|
208
|
+
*/
|
|
154
209
|
const emit = defineEmits<{
|
|
155
210
|
'update:open' : [ value : boolean ];
|
|
156
211
|
}>();
|
|
@@ -29,8 +29,30 @@
|
|
|
29
29
|
<script setup lang="ts">
|
|
30
30
|
/**
|
|
31
31
|
* @component SkProgress
|
|
32
|
-
* A progress bar component
|
|
33
|
-
*
|
|
32
|
+
* @description A progress bar component for displaying completion status or loading states. Supports both
|
|
33
|
+
* determinate mode (showing specific progress percentage) and indeterminate mode (animated loading indicator
|
|
34
|
+
* when progress is unknown). Built on RekaUI's Progress primitive with beveled corner styling.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```vue
|
|
38
|
+
* <SkProgress :value="75" kind="primary" show-value />
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example Indeterminate loading state
|
|
42
|
+
* ```vue
|
|
43
|
+
* <SkProgress :value="null" kind="accent" />
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @example Custom colors with file upload
|
|
47
|
+
* ```vue
|
|
48
|
+
* <SkProgress
|
|
49
|
+
* :value="uploadProgress"
|
|
50
|
+
* base-color="oklch(0.7 0.2 145)"
|
|
51
|
+
* track-color="oklch(0.3 0.05 145)"
|
|
52
|
+
* show-value
|
|
53
|
+
* value-position="right"
|
|
54
|
+
* />
|
|
55
|
+
* ```
|
|
34
56
|
*/
|
|
35
57
|
|
|
36
58
|
import { computed } from 'vue';
|
|
@@ -44,21 +66,63 @@
|
|
|
44
66
|
|
|
45
67
|
export interface SkProgressComponentProps
|
|
46
68
|
{
|
|
47
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* The current progress value between 0 and `max`. Pass `null` or `undefined` to enable
|
|
71
|
+
* indeterminate mode, which displays an animated loading indicator instead of a specific
|
|
72
|
+
* percentage. Use indeterminate mode when the operation duration is unknown.
|
|
73
|
+
* @default null
|
|
74
|
+
*/
|
|
48
75
|
value ?: number | null;
|
|
49
|
-
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The maximum value representing 100% completion. Adjust this when your progress is
|
|
79
|
+
* measured in units other than percentages (e.g., bytes downloaded, steps completed).
|
|
80
|
+
* The percentage is calculated as `(value / max) * 100`.
|
|
81
|
+
* @default 100
|
|
82
|
+
*/
|
|
50
83
|
max ?: number;
|
|
51
|
-
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Semantic color kind that controls the progress bar fill color. Semantic kinds
|
|
87
|
+
* (neutral, primary, accent, etc.) adapt to your theme, making it easy to indicate
|
|
88
|
+
* success (primary/success), warning states, or danger levels.
|
|
89
|
+
* @default 'primary'
|
|
90
|
+
*/
|
|
52
91
|
kind ?: ComponentKind;
|
|
53
|
-
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Height size of the progress bar. Use 'sm' for inline or compact layouts, 'md' for
|
|
95
|
+
* standard forms, and 'lg' or 'xl' for prominent progress displays.
|
|
96
|
+
* @default 'md'
|
|
97
|
+
*/
|
|
54
98
|
size ?: SkProgressSize;
|
|
55
|
-
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* When true, displays the current percentage value as a text label on the progress bar.
|
|
102
|
+
* The label is automatically hidden in indeterminate mode since no percentage is available.
|
|
103
|
+
* @default false
|
|
104
|
+
*/
|
|
56
105
|
showValue ?: boolean;
|
|
57
|
-
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Position of the percentage label when `showValue` is true. Choose 'left' for
|
|
109
|
+
* left-aligned, 'center' for centered over the bar, or 'right' for right-aligned.
|
|
110
|
+
* @default 'center'
|
|
111
|
+
*/
|
|
58
112
|
valuePosition ?: SkProgressValuePosition;
|
|
59
|
-
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Custom color for the progress bar fill, overriding the `kind` color. Accepts any
|
|
116
|
+
* valid CSS color value. Use OKLCH colors for consistency with the design system
|
|
117
|
+
* (e.g., "oklch(0.7 0.2 145)").
|
|
118
|
+
*/
|
|
60
119
|
baseColor ?: string;
|
|
61
|
-
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Custom color for the progress bar track (background), overriding the default track
|
|
123
|
+
* color. Accepts any valid CSS color value. Useful for creating custom color schemes
|
|
124
|
+
* or matching specific brand colors.
|
|
125
|
+
*/
|
|
62
126
|
trackColor ?: string;
|
|
63
127
|
}
|
|
64
128
|
|
|
@@ -28,9 +28,22 @@
|
|
|
28
28
|
|
|
29
29
|
<script setup lang="ts">
|
|
30
30
|
/**
|
|
31
|
-
* @component
|
|
32
|
-
* An individual radio button
|
|
33
|
-
*
|
|
31
|
+
* @component SkRadio
|
|
32
|
+
* @description An individual radio button for mutually exclusive selection within a group. Must be used as
|
|
33
|
+
* a child of SkRadioGroup, which manages the selection state and keyboard navigation. Built on RekaUI's
|
|
34
|
+
* RadioGroup primitive with beveled corner styling and full accessibility support.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```vue
|
|
38
|
+
* <SkRadioGroup v-model="selectedSize" kind="primary">
|
|
39
|
+
* <SkRadio value="sm" label="Small" />
|
|
40
|
+
* <SkRadio value="md" label="Medium" />
|
|
41
|
+
* <SkRadio value="lg" label="Large" />
|
|
42
|
+
* </SkRadioGroup>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @slot default - Custom label content. Overrides the `label` prop when provided, allowing for rich
|
|
46
|
+
* formatting, icons, or complex layouts alongside the radio button.
|
|
34
47
|
*/
|
|
35
48
|
|
|
36
49
|
import { type ComputedRef, computed, inject, toRef } from 'vue';
|
|
@@ -45,21 +58,44 @@
|
|
|
45
58
|
|
|
46
59
|
//------------------------------------------------------------------------------------------------------------------
|
|
47
60
|
|
|
48
|
-
/**
|
|
49
|
-
* An individual radio button component powered by RekaUI.
|
|
50
|
-
* Must be used within SkRadioGroup.
|
|
51
|
-
*/
|
|
52
61
|
export interface SkRadioComponentProps extends ComponentCustomColors
|
|
53
62
|
{
|
|
54
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* The value this radio option represents. When selected, the parent SkRadioGroup's
|
|
65
|
+
* v-model will be set to this value. Must be unique within the radio group to ensure
|
|
66
|
+
* proper selection behavior.
|
|
67
|
+
*/
|
|
55
68
|
value : string | number;
|
|
56
|
-
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Label text displayed next to the radio button. Can be overridden by the default
|
|
72
|
+
* slot for custom label content (icons, formatted text, etc.). If neither label
|
|
73
|
+
* nor slot content is provided, only the radio circle is rendered.
|
|
74
|
+
*/
|
|
57
75
|
label ?: string;
|
|
58
|
-
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* When true, this radio option is disabled and cannot be selected. The radio
|
|
79
|
+
* button appears with reduced opacity and the cursor changes to not-allowed.
|
|
80
|
+
* Does not affect other radio options in the same group.
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
59
83
|
disabled ?: boolean;
|
|
60
|
-
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Semantic color kind that controls the radio button appearance when selected.
|
|
87
|
+
* If not set, inherits from the parent SkRadioGroup's kind prop. Use to style
|
|
88
|
+
* individual radio options differently from the group default.
|
|
89
|
+
* @default Inherited from SkRadioGroup, or 'neutral' if not set
|
|
90
|
+
*/
|
|
61
91
|
kind ?: SkRadioKind;
|
|
62
|
-
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Radio button size. Controls both the radio circle dimensions and the label text
|
|
95
|
+
* size. If not set, inherits from the parent SkRadioGroup's size prop.
|
|
96
|
+
* Available sizes: 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
|
|
97
|
+
* @default Inherited from SkRadioGroup, or 'md' if not set
|
|
98
|
+
*/
|
|
63
99
|
size ?: SkRadioSize;
|
|
64
100
|
}
|
|
65
101
|
|
|
@@ -25,9 +25,22 @@
|
|
|
25
25
|
|
|
26
26
|
<script setup lang="ts">
|
|
27
27
|
/**
|
|
28
|
-
* @component
|
|
29
|
-
* A
|
|
30
|
-
*
|
|
28
|
+
* @component SkRadioGroup
|
|
29
|
+
* @description A container for SkRadio components that manages exclusive selection state and keyboard
|
|
30
|
+
* navigation. Only one radio option can be selected at a time within a group. Built on RekaUI's
|
|
31
|
+
* RadioGroup primitive with full accessibility support including arrow key navigation and focus management.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```vue
|
|
35
|
+
* <SkRadioGroup v-model="paymentMethod" kind="primary" orientation="vertical">
|
|
36
|
+
* <SkRadio value="credit" label="Credit Card" />
|
|
37
|
+
* <SkRadio value="debit" label="Debit Card" />
|
|
38
|
+
* <SkRadio value="paypal" label="PayPal" />
|
|
39
|
+
* </SkRadioGroup>
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @slot default - The SkRadio components that make up the group. Each radio should have a unique
|
|
43
|
+
* `value` prop. Other content like labels or descriptions can also be included.
|
|
31
44
|
*/
|
|
32
45
|
|
|
33
46
|
import { computed, provide } from 'vue';
|
|
@@ -38,24 +51,62 @@
|
|
|
38
51
|
|
|
39
52
|
//------------------------------------------------------------------------------------------------------------------
|
|
40
53
|
|
|
41
|
-
/**
|
|
42
|
-
* A radio group container for exclusive selection powered by RekaUI.
|
|
43
|
-
*/
|
|
44
54
|
export interface SkRadioGroupComponentProps
|
|
45
55
|
{
|
|
46
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Layout orientation of the radio options. Controls how child SkRadio components
|
|
58
|
+
* are arranged. 'vertical' stacks options top to bottom, 'horizontal' arranges
|
|
59
|
+
* them left to right. Keyboard arrow navigation adapts to match the orientation.
|
|
60
|
+
* @default 'vertical'
|
|
61
|
+
*/
|
|
47
62
|
orientation ?: SkRadioGroupOrientation;
|
|
48
|
-
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Semantic color kind applied to all child SkRadio components. Sets the default
|
|
66
|
+
* appearance for the entire group. Individual radios can override this by setting
|
|
67
|
+
* their own `kind` prop.
|
|
68
|
+
* @default 'neutral'
|
|
69
|
+
*/
|
|
49
70
|
kind ?: SkRadioKind;
|
|
50
|
-
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Size applied to all child SkRadio components. Controls the radio circle
|
|
74
|
+
* dimensions and label text size for the entire group. Individual radios can
|
|
75
|
+
* override this by setting their own `size` prop.
|
|
76
|
+
* Available sizes: 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
|
|
77
|
+
* @default 'md'
|
|
78
|
+
*/
|
|
51
79
|
size ?: SkRadioSize;
|
|
52
|
-
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* When true, the entire radio group is disabled and no options can be selected.
|
|
83
|
+
* All child radios appear with reduced opacity. Use for temporarily unavailable
|
|
84
|
+
* form fields or read-only states.
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
53
87
|
disabled ?: boolean;
|
|
54
|
-
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* When true, marks the radio group as required for form validation. At least one
|
|
91
|
+
* option must be selected before the form can be submitted. This does not add
|
|
92
|
+
* visual indication—use a SkField wrapper for required field styling.
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
55
95
|
required ?: boolean;
|
|
56
|
-
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* The form field name used when submitting the selected value in a form.
|
|
99
|
+
* Required for native form submission. The selected radio's value is submitted
|
|
100
|
+
* under this name.
|
|
101
|
+
*/
|
|
57
102
|
name ?: string;
|
|
58
|
-
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Enables circular keyboard navigation within the group. When true, pressing
|
|
106
|
+
* arrow down/right on the last option moves focus to the first option, and
|
|
107
|
+
* vice versa. When false, navigation stops at the boundaries.
|
|
108
|
+
* @default true
|
|
109
|
+
*/
|
|
59
110
|
loop ?: boolean;
|
|
60
111
|
}
|
|
61
112
|
|
|
@@ -73,6 +124,11 @@
|
|
|
73
124
|
|
|
74
125
|
//------------------------------------------------------------------------------------------------------------------
|
|
75
126
|
|
|
127
|
+
/**
|
|
128
|
+
* The currently selected radio value. Use with `v-model` for two-way binding.
|
|
129
|
+
* The value corresponds to the `value` prop of the selected SkRadio child.
|
|
130
|
+
* Initially undefined until the user makes a selection or a default is provided.
|
|
131
|
+
*/
|
|
76
132
|
const modelValue = defineModel<string | number>();
|
|
77
133
|
|
|
78
134
|
//------------------------------------------------------------------------------------------------------------------
|
|
@@ -23,9 +23,29 @@
|
|
|
23
23
|
|
|
24
24
|
<script setup lang="ts">
|
|
25
25
|
/**
|
|
26
|
-
* @component
|
|
27
|
-
* A
|
|
28
|
-
*
|
|
26
|
+
* @component SkSidebar
|
|
27
|
+
* @description A vertical navigation container designed for persistent page-level navigation. Built on
|
|
28
|
+
* SkPanel, it provides a scrollable area with a sticky position that remains visible as users scroll
|
|
29
|
+
* the main content. Organize navigation links using SkSidebarSection for grouped items and SkSidebarItem
|
|
30
|
+
* for individual navigation links.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```vue
|
|
34
|
+
* <SkSidebar kind="primary" width="200px">
|
|
35
|
+
* <SkSidebarSection title="Getting Started">
|
|
36
|
+
* <SkSidebarItem as="RouterLink" to="/docs/install">Installation</SkSidebarItem>
|
|
37
|
+
* <SkSidebarItem as="RouterLink" to="/docs/usage">Basic Usage</SkSidebarItem>
|
|
38
|
+
* </SkSidebarSection>
|
|
39
|
+
* <SkSidebarSection title="Components">
|
|
40
|
+
* <SkSidebarItem as="RouterLink" to="/docs/button">Button</SkSidebarItem>
|
|
41
|
+
* <SkSidebarItem as="RouterLink" to="/docs/input">Input</SkSidebarItem>
|
|
42
|
+
* </SkSidebarSection>
|
|
43
|
+
* </SkSidebar>
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @slot default - Container for SkSidebarSection and/or SkSidebarItem components. Content is wrapped
|
|
47
|
+
* in a scrollable nav element, allowing long navigation lists to scroll independently
|
|
48
|
+
* of the main page content.
|
|
29
49
|
*/
|
|
30
50
|
|
|
31
51
|
import { computed } from 'vue';
|
|
@@ -35,35 +55,22 @@
|
|
|
35
55
|
|
|
36
56
|
//------------------------------------------------------------------------------------------------------------------
|
|
37
57
|
|
|
38
|
-
/**
|
|
39
|
-
* A sticky navigation sidebar container with semantic color theming.
|
|
40
|
-
* Wrap SkSidebarSection and SkSidebarItem components inside.
|
|
41
|
-
*
|
|
42
|
-
* @example Basic sidebar
|
|
43
|
-
* ```vue
|
|
44
|
-
* <SkSidebar>
|
|
45
|
-
* <SkSidebarSection title="Navigation">
|
|
46
|
-
* <SkSidebarItem to="/home">Home</SkSidebarItem>
|
|
47
|
-
* <SkSidebarItem to="/about">About</SkSidebarItem>
|
|
48
|
-
* </SkSidebarSection>
|
|
49
|
-
* </SkSidebar>
|
|
50
|
-
* ```
|
|
51
|
-
*
|
|
52
|
-
* @example Custom colors
|
|
53
|
-
* ```vue
|
|
54
|
-
* <SkSidebar
|
|
55
|
-
* base-color="oklch(0.3 0.15 260)"
|
|
56
|
-
* text-color="oklch(0.85 0.05 260)"
|
|
57
|
-
* >
|
|
58
|
-
* <!-- Sidebar content -->
|
|
59
|
-
* </SkSidebar>
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
58
|
export interface SkSidebarComponentProps extends ComponentCustomColors
|
|
63
59
|
{
|
|
64
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Semantic color kind that controls the sidebar panel's background, border, and text colors.
|
|
62
|
+
* The kind is passed to the underlying SkPanel component. Use semantic kinds like 'neutral'
|
|
63
|
+
* or 'primary' to match your theme, or use `baseColor`/`textColor` props for custom colors.
|
|
64
|
+
* @default 'neutral'
|
|
65
|
+
*/
|
|
65
66
|
kind ?: SkSidebarKind;
|
|
66
|
-
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* CSS width value for the sidebar. Accepts any valid CSS width including pixels, rems,
|
|
70
|
+
* percentages, or viewport units. The sidebar maintains this fixed width while the main
|
|
71
|
+
* content area fills the remaining space in a typical sidebar layout.
|
|
72
|
+
* @default '180px'
|
|
73
|
+
*/
|
|
67
74
|
width ?: string;
|
|
68
75
|
}
|
|
69
76
|
|
|
@@ -16,24 +16,49 @@
|
|
|
16
16
|
|
|
17
17
|
<script setup lang="ts">
|
|
18
18
|
/**
|
|
19
|
-
* @component
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* @component SkSidebarItem
|
|
20
|
+
* @description A navigation link item for use within SkSidebar. Renders as a polymorphic component that
|
|
21
|
+
* can be an anchor tag, Vue Router's RouterLink, a button, or any other element/component. Provides
|
|
22
|
+
* consistent styling with hover and active states that match the parent sidebar's theme.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```vue
|
|
26
|
+
* <!-- As a regular anchor -->
|
|
27
|
+
* <SkSidebarItem as="a" href="/about">About Us</SkSidebarItem>
|
|
28
|
+
*
|
|
29
|
+
* <!-- As Vue Router link -->
|
|
30
|
+
* <SkSidebarItem as="RouterLink" to="/dashboard" :active="route.path === '/dashboard'">
|
|
31
|
+
* Dashboard
|
|
32
|
+
* </SkSidebarItem>
|
|
33
|
+
*
|
|
34
|
+
* <!-- As a button for actions -->
|
|
35
|
+
* <SkSidebarItem as="button" @click="openSettings">Settings</SkSidebarItem>
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @slot default - The navigation item's label content. Can be plain text or include icons and badges.
|
|
22
39
|
*/
|
|
23
40
|
|
|
24
41
|
import { computed } from 'vue';
|
|
25
42
|
|
|
26
43
|
//------------------------------------------------------------------------------------------------------------------
|
|
27
44
|
|
|
28
|
-
/**
|
|
29
|
-
* An individual navigation item in the sidebar.
|
|
30
|
-
* Can render as any element (a, RouterLink, button, etc).
|
|
31
|
-
*/
|
|
32
45
|
export interface SkSidebarItemComponentProps
|
|
33
46
|
{
|
|
34
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* The HTML element or Vue component to render as. Use 'a' for standard links, 'RouterLink'
|
|
49
|
+
* for Vue Router navigation, 'button' for click actions, or any custom component. All
|
|
50
|
+
* additional attributes (href, to, @click, etc.) are passed through via v-bind="$attrs".
|
|
51
|
+
* @default 'a'
|
|
52
|
+
*/
|
|
35
53
|
as ?: string;
|
|
36
|
-
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* When true, applies active/selected styling to indicate this is the current page or
|
|
57
|
+
* selected item. The active state uses a distinct background color and may include
|
|
58
|
+
* additional visual indicators. You must manage this prop yourself based on your
|
|
59
|
+
* routing logic (e.g., comparing against the current route path).
|
|
60
|
+
* @default false
|
|
61
|
+
*/
|
|
37
62
|
active ?: boolean;
|
|
38
63
|
}
|
|
39
64
|
|