@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
|
@@ -16,8 +16,22 @@
|
|
|
16
16
|
|
|
17
17
|
<script setup lang="ts">
|
|
18
18
|
/**
|
|
19
|
-
* @component
|
|
20
|
-
* A
|
|
19
|
+
* @component SkListboxSeparator
|
|
20
|
+
* @description A visual divider for organizing options within an SkListbox dropdown. Use to create
|
|
21
|
+
* logical groups of related options without affecting selection behavior. Renders as a horizontal
|
|
22
|
+
* line between items with appropriate spacing.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```vue
|
|
26
|
+
* <SkListbox v-model="selected">
|
|
27
|
+
* <SkListboxItem value="recent1">Recent Document 1</SkListboxItem>
|
|
28
|
+
* <SkListboxItem value="recent2">Recent Document 2</SkListboxItem>
|
|
29
|
+
* <SkListboxSeparator />
|
|
30
|
+
* <SkListboxItem value="all">Browse All Documents...</SkListboxItem>
|
|
31
|
+
* </SkListbox>
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @slot - Not applicable. This component does not accept slot content.
|
|
21
35
|
*/
|
|
22
36
|
|
|
23
37
|
import { ComboboxSeparator } from 'reka-ui';
|
|
@@ -58,8 +58,34 @@
|
|
|
58
58
|
|
|
59
59
|
<script setup lang="ts">
|
|
60
60
|
/**
|
|
61
|
-
* @component
|
|
62
|
-
*
|
|
61
|
+
* @component SkModal
|
|
62
|
+
* @description A modal dialog component for displaying focused content in an overlay. Built on RekaUI's Dialog
|
|
63
|
+
* primitive with full accessibility support including focus trapping and ARIA attributes. Modals interrupt the
|
|
64
|
+
* user workflow to capture attention for important information, confirmations, or forms.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```vue
|
|
68
|
+
* <SkModal v-model:open="showModal" title="Confirm Action">
|
|
69
|
+
* <p>Are you sure you want to proceed?</p>
|
|
70
|
+
* <template #footer="{ close }">
|
|
71
|
+
* <SkButton @click="close">Cancel</SkButton>
|
|
72
|
+
* <SkButton kind="primary" @click="confirm(); close()">Confirm</SkButton>
|
|
73
|
+
* </template>
|
|
74
|
+
* </SkModal>
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @example With trigger button
|
|
78
|
+
* ```vue
|
|
79
|
+
* <SkModal title="Settings" trigger-text="Open Settings" kind="primary">
|
|
80
|
+
* <SettingsForm />
|
|
81
|
+
* </SkModal>
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @slot trigger - Custom trigger element to open the modal. Receives no slot props. If not provided, uses
|
|
85
|
+
* a default SkButton with `triggerText`.
|
|
86
|
+
* @slot title - Custom title content. Receives `{ close }` slot prop for programmatic closing.
|
|
87
|
+
* @slot default - The main modal body content. Receives `{ close }` slot prop for programmatic closing.
|
|
88
|
+
* @slot footer - Footer content, typically containing action buttons. Receives `{ close }` slot prop.
|
|
63
89
|
*/
|
|
64
90
|
|
|
65
91
|
import { computed, ref, toRef, watch } from 'vue';
|
|
@@ -85,50 +111,73 @@
|
|
|
85
111
|
|
|
86
112
|
//------------------------------------------------------------------------------------------------------------------
|
|
87
113
|
|
|
88
|
-
/**
|
|
89
|
-
* Modal dialog component for displaying content in an overlay
|
|
90
|
-
*
|
|
91
|
-
* @example Basic usage with footer close button
|
|
92
|
-
* ```vue
|
|
93
|
-
* <SkModal title="Confirm Action" trigger-text="Open">
|
|
94
|
-
* <p>Are you sure?</p>
|
|
95
|
-
* <template #footer="{ close }">
|
|
96
|
-
* <SkButton @click="close">Cancel</SkButton>
|
|
97
|
-
* <SkButton kind="primary" @click="doAction(); close()">Confirm</SkButton>
|
|
98
|
-
* </template>
|
|
99
|
-
* </SkModal>
|
|
100
|
-
* ```
|
|
101
|
-
*
|
|
102
|
-
* @example Prevent escape/overlay dismissal
|
|
103
|
-
* ```vue
|
|
104
|
-
* <SkModal
|
|
105
|
-
* title="Important Form"
|
|
106
|
-
* no-close-on-escape
|
|
107
|
-
* no-close-on-overlay
|
|
108
|
-
* >
|
|
109
|
-
* <!-- User must use buttons to close -->
|
|
110
|
-
* </SkModal>
|
|
111
|
-
* ```
|
|
112
|
-
*/
|
|
113
114
|
export interface SkModalComponentProps extends ComponentCustomColors
|
|
114
115
|
{
|
|
115
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* Semantic color kind that controls the modal's accent colors, including the header,
|
|
118
|
+
* close button, and any kind-styled elements within the modal. Semantic kinds
|
|
119
|
+
* (neutral, primary, accent, etc.) adapt to your theme.
|
|
120
|
+
* @default 'neutral'
|
|
121
|
+
*/
|
|
116
122
|
kind ?: ComponentKind;
|
|
117
|
-
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Size of the modal dialog, controlling its maximum width. Use 'sm' for simple
|
|
126
|
+
* confirmations, 'md' for standard forms, 'lg' for complex content, and 'xl' for
|
|
127
|
+
* dashboards or data-heavy dialogs.
|
|
128
|
+
* @default 'md'
|
|
129
|
+
*/
|
|
118
130
|
size ?: ComponentSize;
|
|
119
|
-
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Title text displayed in the modal header. When provided, a header section with
|
|
134
|
+
* the title and close button is automatically rendered. Can be overridden with
|
|
135
|
+
* the title slot for custom header content.
|
|
136
|
+
*/
|
|
120
137
|
title ?: string;
|
|
121
|
-
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Text label for the default trigger button. When provided (and no trigger slot is
|
|
141
|
+
* used), renders an SkButton that opens the modal when clicked. Omit both this and
|
|
142
|
+
* the trigger slot to control the modal programmatically via v-model:open.
|
|
143
|
+
*/
|
|
122
144
|
triggerText ?: string;
|
|
123
|
-
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Controls whether the modal is open. Use with `v-model:open` for two-way binding.
|
|
148
|
+
* Set to true to open the modal programmatically, false to close it. The modal
|
|
149
|
+
* can also be closed via the close button, Escape key, or overlay click.
|
|
150
|
+
* @default false
|
|
151
|
+
*/
|
|
124
152
|
open ?: boolean;
|
|
125
|
-
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Whether pressing the Escape key closes the modal. Set to false for important
|
|
156
|
+
* dialogs where accidental dismissal should be prevented, such as unsaved form
|
|
157
|
+
* data or critical confirmations.
|
|
158
|
+
* @default true
|
|
159
|
+
*/
|
|
126
160
|
closeOnEscape ?: boolean;
|
|
127
|
-
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Whether clicking the overlay (dark backdrop) closes the modal. Set to false to
|
|
164
|
+
* require users to interact with modal buttons rather than dismissing accidentally.
|
|
165
|
+
* @default true
|
|
166
|
+
*/
|
|
128
167
|
closeOnOverlay ?: boolean;
|
|
129
|
-
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Boolean shorthand to prevent closing on Escape key. Equivalent to
|
|
171
|
+
* `:close-on-escape="false"`. Use when you prefer attribute syntax over bound values.
|
|
172
|
+
* @default false
|
|
173
|
+
*/
|
|
130
174
|
noCloseOnEscape ?: boolean;
|
|
131
|
-
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Boolean shorthand to prevent closing on overlay click. Equivalent to
|
|
178
|
+
* `:close-on-overlay="false"`. Use when you prefer attribute syntax over bound values.
|
|
179
|
+
* @default false
|
|
180
|
+
*/
|
|
132
181
|
noCloseOnOverlay ?: boolean;
|
|
133
182
|
}
|
|
134
183
|
|
|
@@ -24,9 +24,32 @@
|
|
|
24
24
|
|
|
25
25
|
<script setup lang="ts">
|
|
26
26
|
/**
|
|
27
|
-
* @component
|
|
28
|
-
* A navigation bar component for site-wide navigation
|
|
29
|
-
*
|
|
27
|
+
* @component SkNavBar
|
|
28
|
+
* @description A horizontal navigation bar component for site-wide header navigation. Provides a structured
|
|
29
|
+
* layout with three distinct zones: brand/logo area (left), main navigation links (center), and action
|
|
30
|
+
* buttons (right). Supports sticky positioning to remain visible while scrolling and adapts to your
|
|
31
|
+
* theme's semantic colors.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```vue
|
|
35
|
+
* <SkNavBar kind="primary">
|
|
36
|
+
* <template #brand>
|
|
37
|
+
* <img src="/logo.svg" alt="Logo" />
|
|
38
|
+
* </template>
|
|
39
|
+
* <SkButton as="a" href="/features">Features</SkButton>
|
|
40
|
+
* <SkButton as="a" href="/pricing">Pricing</SkButton>
|
|
41
|
+
* <template #actions>
|
|
42
|
+
* <SkButton kind="accent">Sign Up</SkButton>
|
|
43
|
+
* </template>
|
|
44
|
+
* </SkNavBar>
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @slot brand - Left-aligned area for your logo, site name, or brand identity. Typically contains an
|
|
48
|
+
* image or text link to the homepage.
|
|
49
|
+
* @slot default - Center area for main navigation items. Place navigation buttons, links, or menu
|
|
50
|
+
* triggers here. Items are displayed in a horizontal row.
|
|
51
|
+
* @slot actions - Right-aligned area for call-to-action buttons, user menus, or utility controls.
|
|
52
|
+
* Ideal for login buttons, shopping carts, or profile dropdowns.
|
|
30
53
|
*/
|
|
31
54
|
|
|
32
55
|
import { computed, toRef, useSlots } from 'vue';
|
|
@@ -36,15 +59,22 @@
|
|
|
36
59
|
|
|
37
60
|
//------------------------------------------------------------------------------------------------------------------
|
|
38
61
|
|
|
39
|
-
/**
|
|
40
|
-
* A navigation bar component for site-wide navigation with brand, nav items, and action slots.
|
|
41
|
-
* Supports sticky positioning and semantic color theming.
|
|
42
|
-
*/
|
|
43
62
|
export interface SkNavBarComponentProps extends ComponentCustomColors
|
|
44
63
|
{
|
|
45
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Semantic color kind that controls the navbar's background and text colors. Use semantic kinds
|
|
66
|
+
* like 'primary' or 'accent' to match your theme, or color kinds like 'neon-blue' for fixed
|
|
67
|
+
* branding colors. The kind affects the entire navbar including all three slot areas.
|
|
68
|
+
* @default 'neutral'
|
|
69
|
+
*/
|
|
46
70
|
kind ?: SkNavBarKind;
|
|
47
|
-
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* When true, the navbar uses CSS `position: sticky` to remain fixed at the top of the viewport
|
|
74
|
+
* as the user scrolls down the page. The navbar will overlay page content below it. Set to false
|
|
75
|
+
* for a navbar that scrolls with the page content.
|
|
76
|
+
* @default true
|
|
77
|
+
*/
|
|
48
78
|
sticky ?: boolean;
|
|
49
79
|
}
|
|
50
80
|
|
|
@@ -59,9 +59,19 @@
|
|
|
59
59
|
|
|
60
60
|
<script setup lang="ts">
|
|
61
61
|
/**
|
|
62
|
-
* @component
|
|
63
|
-
* A numeric input component with stepper buttons
|
|
64
|
-
*
|
|
62
|
+
* @component SkNumberInput
|
|
63
|
+
* @description A numeric input component with built-in increment/decrement stepper buttons. Built on RekaUI's
|
|
64
|
+
* NumberField primitive with full keyboard accessibility (arrow keys, page up/down, home/end). Supports
|
|
65
|
+
* min/max constraints and configurable step values. Use with `v-model` for two-way binding of the numeric value.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```vue
|
|
69
|
+
* <SkNumberInput v-model="quantity" :min="1" :max="100" />
|
|
70
|
+
* <SkNumberInput v-model="price" :step="0.01" :min="0" placeholder="0.00" />
|
|
71
|
+
* <SkField label="Age" :error="errors.age">
|
|
72
|
+
* <SkNumberInput v-model="age" name="age" :min="0" :max="150" />
|
|
73
|
+
* </SkField>
|
|
74
|
+
* ```
|
|
65
75
|
*/
|
|
66
76
|
|
|
67
77
|
import { type ComputedRef, computed, inject, toRef } from 'vue';
|
|
@@ -81,30 +91,84 @@
|
|
|
81
91
|
|
|
82
92
|
//------------------------------------------------------------------------------------------------------------------
|
|
83
93
|
|
|
84
|
-
/**
|
|
85
|
-
* A numeric input component with stepper buttons powered by RekaUI.
|
|
86
|
-
*/
|
|
87
94
|
export interface SkNumberInputComponentProps extends ComponentCustomColors
|
|
88
95
|
{
|
|
89
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Semantic color kind for the input border and focus ring. Use semantic kinds like
|
|
98
|
+
* 'success' or 'danger' to indicate validation states. When used inside an SkField
|
|
99
|
+
* with a `state` prop, the field's kind automatically overrides this value.
|
|
100
|
+
* @default 'neutral'
|
|
101
|
+
*/
|
|
90
102
|
kind ?: SkNumberInputKind;
|
|
91
|
-
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Input size controlling height, padding, font size, and stepper button dimensions.
|
|
106
|
+
* Available sizes: 'sm' (small, compact forms), 'md' (medium, default), 'lg' (large),
|
|
107
|
+
* 'xl' (extra large).
|
|
108
|
+
* @default 'md'
|
|
109
|
+
*/
|
|
92
110
|
size ?: SkNumberInputSize;
|
|
93
|
-
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Placeholder text displayed when the input is empty or has no value. Use to indicate
|
|
114
|
+
* expected format (e.g., "0.00" for currency) or provide a hint about the field's purpose.
|
|
115
|
+
* @default undefined
|
|
116
|
+
*/
|
|
94
117
|
placeholder ?: string;
|
|
95
|
-
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* When true, disables the input and stepper buttons preventing all user interaction.
|
|
121
|
+
* The component appears with reduced opacity and the cursor changes to not-allowed.
|
|
122
|
+
* Disabled inputs are excluded from form submission.
|
|
123
|
+
* @default false
|
|
124
|
+
*/
|
|
96
125
|
disabled ?: boolean;
|
|
97
|
-
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* When true, makes the input read-only. The user can select and copy the value but
|
|
129
|
+
* cannot modify it via typing or stepper buttons. Unlike disabled, read-only inputs
|
|
130
|
+
* are still included in form submission.
|
|
131
|
+
* @default false
|
|
132
|
+
*/
|
|
98
133
|
readonly ?: boolean;
|
|
99
|
-
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* When true, marks the input as required for form validation. The browser will prevent
|
|
137
|
+
* form submission if the input is empty. For visual required indicators, wrap the input
|
|
138
|
+
* in an SkField component with `required` prop.
|
|
139
|
+
* @default false
|
|
140
|
+
*/
|
|
100
141
|
required ?: boolean;
|
|
101
|
-
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The form field name used when submitting the input value. Required for native form
|
|
145
|
+
* submission and useful for form libraries that track fields by name.
|
|
146
|
+
* @default undefined
|
|
147
|
+
*/
|
|
102
148
|
name ?: string;
|
|
103
|
-
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Minimum allowed value. The stepper buttons will not decrement below this value, and
|
|
152
|
+
* manual input will be constrained on blur. Use to enforce business rules like positive
|
|
153
|
+
* quantities or minimum prices.
|
|
154
|
+
* @default undefined
|
|
155
|
+
*/
|
|
104
156
|
min ?: number;
|
|
105
|
-
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Maximum allowed value. The stepper buttons will not increment above this value, and
|
|
160
|
+
* manual input will be constrained on blur. Use to enforce limits like maximum quantity
|
|
161
|
+
* or inventory caps.
|
|
162
|
+
* @default undefined
|
|
163
|
+
*/
|
|
106
164
|
max ?: number;
|
|
107
|
-
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* The increment/decrement step amount when using stepper buttons or arrow keys. Use
|
|
168
|
+
* fractional values like 0.01 for currency or 0.1 for percentages. Pressing Shift while
|
|
169
|
+
* stepping may multiply the step for faster navigation.
|
|
170
|
+
* @default 1
|
|
171
|
+
*/
|
|
108
172
|
step ?: number;
|
|
109
173
|
}
|
|
110
174
|
|
|
@@ -125,6 +189,11 @@
|
|
|
125
189
|
|
|
126
190
|
//------------------------------------------------------------------------------------------------------------------
|
|
127
191
|
|
|
192
|
+
/**
|
|
193
|
+
* The numeric value of the input. Use with `v-model` for two-way binding. The value is
|
|
194
|
+
* constrained by `min` and `max` props when set. Returns a number type.
|
|
195
|
+
* @default 0
|
|
196
|
+
*/
|
|
128
197
|
const modelValue = defineModel<number>({ default: 0 });
|
|
129
198
|
|
|
130
199
|
//------------------------------------------------------------------------------------------------------------------
|
|
@@ -31,8 +31,35 @@
|
|
|
31
31
|
<script setup lang="ts">
|
|
32
32
|
/**
|
|
33
33
|
* @component SkPage
|
|
34
|
-
* A full-page layout component with header, sidebar,
|
|
35
|
-
*
|
|
34
|
+
* @description A full-page layout component that provides a structured application shell with header, sidebar,
|
|
35
|
+
* main content, and footer regions. Designed for building complete application pages with optional fixed
|
|
36
|
+
* positioning for header/footer and flexible sidebar placement. The layout automatically handles scrolling
|
|
37
|
+
* behavior and responsive spacing.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```vue
|
|
41
|
+
* <SkPage fixed-header sidebar-position="left" sidebar-width="280px">
|
|
42
|
+
* <template #header>
|
|
43
|
+
* <AppNavbar />
|
|
44
|
+
* </template>
|
|
45
|
+
* <template #sidebar>
|
|
46
|
+
* <AppMenu />
|
|
47
|
+
* </template>
|
|
48
|
+
* <MainContent />
|
|
49
|
+
* <template #footer>
|
|
50
|
+
* <AppFooter />
|
|
51
|
+
* </template>
|
|
52
|
+
* </SkPage>
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @slot default - The main content area of the page. This is where your primary page content goes. Automatically
|
|
56
|
+
* handles scrolling when header/footer are fixed.
|
|
57
|
+
* @slot header - The page header region, typically used for navigation bars, branding, or page titles. Spans the
|
|
58
|
+
* full width above the sidebar and content areas.
|
|
59
|
+
* @slot sidebar - Optional sidebar region for navigation menus, filters, or secondary content. Position is
|
|
60
|
+
* controlled by the `sidebarPosition` prop.
|
|
61
|
+
* @slot footer - The page footer region for copyright notices, links, or secondary navigation. Spans the full
|
|
62
|
+
* width below the sidebar and content areas.
|
|
36
63
|
*/
|
|
37
64
|
|
|
38
65
|
import { computed } from 'vue';
|
|
@@ -44,13 +71,35 @@
|
|
|
44
71
|
|
|
45
72
|
export interface SkPageComponentProps
|
|
46
73
|
{
|
|
47
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* Controls which side of the page the sidebar appears on. The sidebar slot content
|
|
76
|
+
* will be positioned on the specified side, with the main content area filling the
|
|
77
|
+
* remaining space. Has no effect if the sidebar slot is not provided.
|
|
78
|
+
* @default 'left'
|
|
79
|
+
*/
|
|
48
80
|
sidebarPosition ?: SkPageSidebarPosition;
|
|
49
|
-
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* When true, the header remains fixed at the top of the viewport while the main
|
|
84
|
+
* content scrolls beneath it. Useful for keeping navigation always accessible.
|
|
85
|
+
* The content area adjusts its top padding to prevent overlap with the fixed header.
|
|
86
|
+
* @default false
|
|
87
|
+
*/
|
|
50
88
|
fixedHeader ?: boolean;
|
|
51
|
-
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* When true, the footer remains fixed at the bottom of the viewport while the main
|
|
92
|
+
* content scrolls above it. Useful for persistent action bars or important links.
|
|
93
|
+
* The content area adjusts its bottom padding to prevent overlap with the fixed footer.
|
|
94
|
+
* @default false
|
|
95
|
+
*/
|
|
52
96
|
fixedFooter ?: boolean;
|
|
53
|
-
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Custom width for the sidebar region. Accepts any valid CSS width value (px, rem, %, etc.).
|
|
100
|
+
* When not specified, the sidebar uses the default width defined in the design tokens.
|
|
101
|
+
* Only applies when the sidebar slot is provided.
|
|
102
|
+
*/
|
|
54
103
|
sidebarWidth ?: string;
|
|
55
104
|
}
|
|
56
105
|
|
|
@@ -53,6 +53,28 @@
|
|
|
53
53
|
<!--------------------------------------------------------------------------------------------------------------------->
|
|
54
54
|
|
|
55
55
|
<script setup lang="ts">
|
|
56
|
+
/**
|
|
57
|
+
* @component SkPagination
|
|
58
|
+
* @description A pagination navigation component for splitting content across multiple pages. Automatically
|
|
59
|
+
* calculates page ranges with ellipsis for large page counts and provides first/last and previous/next navigation
|
|
60
|
+
* buttons. Use with `v-model` for two-way binding of the current page number.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```vue
|
|
64
|
+
* <SkPagination v-model="currentPage" :total="50" kind="primary" />
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @example Minimal pagination (no first/last buttons)
|
|
68
|
+
* ```vue
|
|
69
|
+
* <SkPagination
|
|
70
|
+
* v-model="page"
|
|
71
|
+
* :total="10"
|
|
72
|
+
* :show-first-last="false"
|
|
73
|
+
* variant="outline"
|
|
74
|
+
* />
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
|
|
56
78
|
import { computed, provide, toRef } from 'vue';
|
|
57
79
|
|
|
58
80
|
// Types
|
|
@@ -63,6 +85,72 @@
|
|
|
63
85
|
|
|
64
86
|
export interface SkPaginationComponentProps extends SkPaginationProps, ComponentCustomColors
|
|
65
87
|
{
|
|
88
|
+
/**
|
|
89
|
+
* The total number of pages available. This is a required prop that determines
|
|
90
|
+
* how many page numbers to display and when to show ellipsis indicators.
|
|
91
|
+
*/
|
|
92
|
+
total : number;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The current active page number. Use with `v-model` for two-way binding. Page
|
|
96
|
+
* numbers are 1-indexed, so the first page is 1, not 0.
|
|
97
|
+
* @default 1
|
|
98
|
+
*/
|
|
99
|
+
modelValue ?: number;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* The number of sibling pages to show on each side of the current page. For example,
|
|
103
|
+
* if the current page is 5 and siblingCount is 1, pages 4 and 6 will be shown.
|
|
104
|
+
* Higher values show more page numbers but take up more space.
|
|
105
|
+
* @default 1
|
|
106
|
+
*/
|
|
107
|
+
siblingCount ?: number;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Whether to show the "first page" and "last page" navigation buttons. These
|
|
111
|
+
* buttons allow users to jump directly to page 1 or the final page. Set to false
|
|
112
|
+
* for a more compact pagination layout.
|
|
113
|
+
* @default true
|
|
114
|
+
*/
|
|
115
|
+
showFirstLast ?: boolean;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Whether to show the "previous" and "next" navigation buttons. These buttons
|
|
119
|
+
* allow single-page navigation forward or backward. Typically left enabled for
|
|
120
|
+
* standard pagination behavior.
|
|
121
|
+
* @default true
|
|
122
|
+
*/
|
|
123
|
+
showPrevNext ?: boolean;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Semantic color kind that controls the pagination appearance. Affects the active
|
|
127
|
+
* page indicator and navigation button colors. Semantic kinds (neutral, primary,
|
|
128
|
+
* accent, etc.) adapt to your theme.
|
|
129
|
+
* @default 'neutral'
|
|
130
|
+
*/
|
|
131
|
+
kind ?: SkPaginationProps['kind'];
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Size of the pagination buttons. Controls both the button dimensions and text size.
|
|
135
|
+
* Available sizes: 'xs' (extra small), 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
|
|
136
|
+
* @default 'md'
|
|
137
|
+
*/
|
|
138
|
+
size ?: SkPaginationProps['size'];
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Visual style variant for the pagination buttons. Choose 'solid' for filled buttons,
|
|
142
|
+
* 'outline' for bordered buttons, 'subtle' for lightly tinted backgrounds, or 'ghost'
|
|
143
|
+
* for transparent buttons that only show color on hover.
|
|
144
|
+
* @default 'solid'
|
|
145
|
+
*/
|
|
146
|
+
variant ?: SkPaginationProps['variant'];
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* When true, the entire pagination component is disabled. All buttons become
|
|
150
|
+
* non-interactive and appear with reduced opacity. The cursor changes to not-allowed.
|
|
151
|
+
* @default false
|
|
152
|
+
*/
|
|
153
|
+
disabled ?: boolean;
|
|
66
154
|
}
|
|
67
155
|
|
|
68
156
|
//------------------------------------------------------------------------------------------------------------------
|
|
@@ -24,6 +24,21 @@
|
|
|
24
24
|
<!--------------------------------------------------------------------------------------------------------------------->
|
|
25
25
|
|
|
26
26
|
<script setup lang="ts">
|
|
27
|
+
/**
|
|
28
|
+
* @component SkPaginationItem
|
|
29
|
+
* @description An individual pagination button used internally by SkPagination. Renders different content based
|
|
30
|
+
* on its type: page numbers, navigation arrows, or ellipsis indicators. Inherits styling from the parent
|
|
31
|
+
* SkPagination component via Vue's provide/inject. Not typically used directly—use SkPagination instead.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```vue
|
|
35
|
+
* <!-- Used internally by SkPagination -->
|
|
36
|
+
* <SkPaginationItem type="page" :page="5" :active="true" />
|
|
37
|
+
* <SkPaginationItem type="prev" :page="4" />
|
|
38
|
+
* <SkPaginationItem type="ellipsis" />
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
|
|
27
42
|
import { type Ref, computed, inject } from 'vue';
|
|
28
43
|
|
|
29
44
|
// Types
|
|
@@ -31,7 +46,42 @@
|
|
|
31
46
|
|
|
32
47
|
//------------------------------------------------------------------------------------------------------------------
|
|
33
48
|
|
|
34
|
-
export
|
|
49
|
+
export interface SkPaginationItemComponentProps
|
|
50
|
+
{
|
|
51
|
+
/**
|
|
52
|
+
* The page number this item represents. Required for 'page', 'prev', 'next', 'first',
|
|
53
|
+
* and 'last' types. When clicked, this value is emitted to navigate to that page.
|
|
54
|
+
* Not needed for 'ellipsis' type items.
|
|
55
|
+
*/
|
|
56
|
+
page ?: number;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Whether this item is the currently active page. Only applicable to 'page' type items.
|
|
60
|
+
* Active items receive distinct styling and include aria-current="page" for accessibility.
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
active ?: boolean;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* When true, the item is disabled and cannot be clicked. The item appears with
|
|
67
|
+
* reduced opacity and the cursor changes to not-allowed. Commonly used on
|
|
68
|
+
* prev/first buttons when on page 1, or next/last buttons when on the final page.
|
|
69
|
+
* @default false
|
|
70
|
+
*/
|
|
71
|
+
disabled ?: boolean;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The type of pagination item to render. Determines both the visual content and behavior:
|
|
75
|
+
* - 'page': Shows a page number button
|
|
76
|
+
* - 'prev': Shows a previous arrow (‹)
|
|
77
|
+
* - 'next': Shows a next arrow (›)
|
|
78
|
+
* - 'first': Shows a first-page arrow (‹‹)
|
|
79
|
+
* - 'last': Shows a last-page arrow (››)
|
|
80
|
+
* - 'ellipsis': Shows non-interactive dots (...)
|
|
81
|
+
* @default 'page'
|
|
82
|
+
*/
|
|
83
|
+
type ?: SkPaginationItemProps['type'];
|
|
84
|
+
}
|
|
35
85
|
|
|
36
86
|
//------------------------------------------------------------------------------------------------------------------
|
|
37
87
|
|