@skewedaspect/sleekspace-ui 0.2.0-beta.1 → 0.2.0-beta.2
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 -2
- 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 +2 -4
- 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/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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
section: themes
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Themes
|
|
6
|
+
|
|
7
|
+
Themes map foundation colors to semantic kinds. Each theme is defined as a CSS attribute selector that overrides semantic tokens.
|
|
8
|
+
|
|
9
|
+
### Available Themes
|
|
10
|
+
|
|
11
|
+
**Greyscale (Default):** Neutral is gray, primary is blue, accent is orange.
|
|
12
|
+
|
|
13
|
+
**Colorful:** Neutral is blue, primary is orange, accent is blue.
|
|
14
|
+
|
|
15
|
+
### Theme Files
|
|
16
|
+
|
|
17
|
+
Themes are defined in `src/styles/themes/`. Each theme file exports a `[data-scheme="name"]` selector:
|
|
18
|
+
|
|
19
|
+
```scss
|
|
20
|
+
/* src/styles/themes/_mytheme.scss */
|
|
21
|
+
[data-scheme='mytheme']
|
|
22
|
+
{
|
|
23
|
+
--sk-neutral-base: var(--sk-color-purple-50);
|
|
24
|
+
--sk-primary-base: var(--sk-color-mint-50);
|
|
25
|
+
--sk-accent-base: var(--sk-color-orange-50);
|
|
26
|
+
/* ... define all 7 semantic kinds */
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Using Themes
|
|
31
|
+
|
|
32
|
+
Wrap your app in the `SkTheme` component:
|
|
33
|
+
|
|
34
|
+
```vue
|
|
35
|
+
<SkTheme theme="greyscale">
|
|
36
|
+
<YourApp />
|
|
37
|
+
</SkTheme>
|
|
38
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
section: usage
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Usage Guide
|
|
6
|
+
|
|
7
|
+
### When to Use Each Tier
|
|
8
|
+
|
|
9
|
+
**Use Foundation Tokens when:**
|
|
10
|
+
- You need a specific color shade that won't change with themes
|
|
11
|
+
- Building one-off custom components outside the design system
|
|
12
|
+
- Creating gradients or complex color manipulations
|
|
13
|
+
|
|
14
|
+
```css
|
|
15
|
+
background: var(--sk-color-blue-30);
|
|
16
|
+
border: 1px solid var(--sk-color-gray-70);
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Use Semantic Tokens when (preferred):**
|
|
20
|
+
- Building theme-aware components
|
|
21
|
+
- Using semantic meaning (success, danger, etc.)
|
|
22
|
+
- You want colors to change with theme switching
|
|
23
|
+
|
|
24
|
+
```css
|
|
25
|
+
background: var(--sk-primary-base);
|
|
26
|
+
color: var(--sk-primary-text);
|
|
27
|
+
border: 1px solid var(--sk-danger-base);
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Use Component Tokens when:**
|
|
31
|
+
- Working within a component's SCSS file
|
|
32
|
+
- Customizing existing components
|
|
33
|
+
- Building component variations
|
|
34
|
+
|
|
35
|
+
```css
|
|
36
|
+
background: var(--sk-button-bg);
|
|
37
|
+
color: var(--sk-button-text);
|
|
38
|
+
padding: var(--sk-button-padding-base);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Color Kind vs Semantic Kind
|
|
42
|
+
|
|
43
|
+
Use **Semantic Kinds** (preferred) for most components:
|
|
44
|
+
|
|
45
|
+
```vue
|
|
46
|
+
<SkButton kind="primary">Save</SkButton>
|
|
47
|
+
<SkAlert kind="danger">Error occurred</SkAlert>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Use **Color Kinds** when you need a specific color:
|
|
51
|
+
|
|
52
|
+
```vue
|
|
53
|
+
<SkButton kind="neon-purple">Special</SkButton>
|
|
54
|
+
<SkPanel kind="neon-mint">Custom panel</SkPanel>
|
|
55
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skewedaspect/sleekspace-ui",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.2",
|
|
4
4
|
"description": "A Vue 3 component library with a cyberpunk aesthetic, featuring OKLCH colors, beveled corners, and a powerful design token system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/sleekspace-ui.umd.js",
|
|
@@ -27,8 +27,7 @@
|
|
|
27
27
|
],
|
|
28
28
|
"scripts": {
|
|
29
29
|
"dev": "vite build --watch",
|
|
30
|
-
"build": "npm run generate:types && vue-docgen-web-types &&
|
|
31
|
-
"generate:api-docs": "tsx scripts/generate-api-docs.ts",
|
|
30
|
+
"build": "npm run generate:types && vue-docgen-web-types && vite build && npm run build:tokens && npm run copy:docs",
|
|
32
31
|
"build:tokens": "sass src/styles/tokens.scss dist/tokens.css --no-source-map",
|
|
33
32
|
"copy:docs": "cp ../../Readme.md README.md && cp ../../LICENSE LICENSE",
|
|
34
33
|
"generate:types": "tsx scripts/generate-global-types.ts",
|
|
@@ -62,7 +61,6 @@
|
|
|
62
61
|
"@types/node": "^24.8.1",
|
|
63
62
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
64
63
|
"sass": "^1.83.2",
|
|
65
|
-
"ts-morph": "^27.0.2",
|
|
66
64
|
"typescript": "^5.8.3",
|
|
67
65
|
"vite": "^7.1.10",
|
|
68
66
|
"vite-plugin-dts": "^4.5.3",
|
|
@@ -25,9 +25,24 @@
|
|
|
25
25
|
|
|
26
26
|
<script setup lang="ts">
|
|
27
27
|
/**
|
|
28
|
-
* @component
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* @component SkAccordion
|
|
29
|
+
* @description A collapsible content container that organizes information into expandable sections. Built on
|
|
30
|
+
* RekaUI's Accordion primitive with smooth height animations and full keyboard accessibility. Supports two
|
|
31
|
+
* modes: single (only one item open at a time) or multiple (any number of items can be open simultaneously).
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```vue
|
|
35
|
+
* <SkAccordion v-model="openItem" kind="primary">
|
|
36
|
+
* <SkAccordionItem value="faq-1" title="What is SleekSpace?">
|
|
37
|
+
* A Vue 3 component library with cyberpunk aesthetic.
|
|
38
|
+
* </SkAccordionItem>
|
|
39
|
+
* <SkAccordionItem value="faq-2" title="How do I get started?">
|
|
40
|
+
* Install via npm and import the components you need.
|
|
41
|
+
* </SkAccordionItem>
|
|
42
|
+
* </SkAccordion>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @slot default - Container for SkAccordionItem components. Each item becomes a collapsible section.
|
|
31
46
|
*/
|
|
32
47
|
|
|
33
48
|
import { computed, provide, toRef } from 'vue';
|
|
@@ -42,46 +57,45 @@
|
|
|
42
57
|
|
|
43
58
|
//------------------------------------------------------------------------------------------------------------------
|
|
44
59
|
|
|
45
|
-
/**
|
|
46
|
-
* Accordion root container for collapsible sections.
|
|
47
|
-
*
|
|
48
|
-
* Supports single or multiple open items with smooth animations.
|
|
49
|
-
*
|
|
50
|
-
* @example Single mode (default)
|
|
51
|
-
* ```vue
|
|
52
|
-
* <SkAccordion v-model="openItem">
|
|
53
|
-
* <SkAccordionItem value="item-1" title="Section 1">
|
|
54
|
-
* Content 1
|
|
55
|
-
* </SkAccordionItem>
|
|
56
|
-
* <SkAccordionItem value="item-2" title="Section 2">
|
|
57
|
-
* Content 2
|
|
58
|
-
* </SkAccordionItem>
|
|
59
|
-
* </SkAccordion>
|
|
60
|
-
* ```
|
|
61
|
-
*
|
|
62
|
-
* @example Multiple mode
|
|
63
|
-
* ```vue
|
|
64
|
-
* <SkAccordion type="multiple" v-model="openItems">
|
|
65
|
-
* <SkAccordionItem value="item-1" title="Section 1">
|
|
66
|
-
* Content 1
|
|
67
|
-
* </SkAccordionItem>
|
|
68
|
-
* <SkAccordionItem value="item-2" title="Section 2">
|
|
69
|
-
* Content 2
|
|
70
|
-
* </SkAccordionItem>
|
|
71
|
-
* </SkAccordion>
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
60
|
export interface SkAccordionComponentProps extends ComponentCustomColors
|
|
75
61
|
{
|
|
76
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* Controls whether one or multiple accordion items can be open simultaneously.
|
|
64
|
+
* In 'single' mode, opening a new item automatically closes the previously open item.
|
|
65
|
+
* In 'multiple' mode, users can expand any number of items independently.
|
|
66
|
+
* @default 'single'
|
|
67
|
+
*/
|
|
77
68
|
type ?: SkAccordionType;
|
|
78
|
-
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* The value(s) of currently open accordion item(s). Use with `v-model` for two-way binding.
|
|
72
|
+
* In 'single' mode, this is a string matching one item's `value` prop.
|
|
73
|
+
* In 'multiple' mode, this is an array of strings matching multiple items' `value` props.
|
|
74
|
+
*/
|
|
79
75
|
modelValue ?: string | string[];
|
|
80
|
-
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* When true and in 'single' mode, allows all items to be collapsed by clicking the open item again.
|
|
79
|
+
* When false, one item must always remain open (the first click selects, subsequent clicks don't collapse).
|
|
80
|
+
* This prop has no effect in 'multiple' mode where items are always independently collapsible.
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
81
83
|
collapsible ?: boolean;
|
|
82
|
-
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Semantic color kind that controls the accordion's header and border colors. The kind is automatically
|
|
87
|
+
* inherited by all child SkAccordionItem components unless they specify their own kind.
|
|
88
|
+
* Semantic kinds (neutral, primary, accent, etc.) adapt to your theme.
|
|
89
|
+
* @default 'neutral'
|
|
90
|
+
*/
|
|
83
91
|
kind ?: SkAccordionKind;
|
|
84
|
-
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* When true, disables all accordion items. Items cannot be expanded or collapsed, and
|
|
95
|
+
* the accordion appears with reduced opacity. Individual items can also be disabled
|
|
96
|
+
* independently via their own `disabled` prop.
|
|
97
|
+
* @default false
|
|
98
|
+
*/
|
|
85
99
|
disabled ?: boolean;
|
|
86
100
|
}
|
|
87
101
|
|
|
@@ -45,8 +45,22 @@
|
|
|
45
45
|
|
|
46
46
|
<script setup lang="ts">
|
|
47
47
|
/**
|
|
48
|
-
* @component
|
|
49
|
-
*
|
|
48
|
+
* @component SkAccordionItem
|
|
49
|
+
* @description An individual collapsible section within an SkAccordion container. Each item consists of a
|
|
50
|
+
* clickable header that toggles the visibility of its content panel. Features smooth height animations,
|
|
51
|
+
* an animated chevron indicator, and full keyboard navigation support (Enter/Space to toggle, arrow keys
|
|
52
|
+
* to navigate between items).
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```vue
|
|
56
|
+
* <SkAccordionItem value="shipping" title="Shipping Information">
|
|
57
|
+
* <p>We ship worldwide with tracking included.</p>
|
|
58
|
+
* </SkAccordionItem>
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* @slot default - The collapsible content displayed when the item is expanded. Can contain any content.
|
|
62
|
+
* @slot title - Custom header content. Receives `{ open: boolean }` indicating the current expanded state.
|
|
63
|
+
* Use this for complex headers with icons, badges, or conditional styling.
|
|
50
64
|
*/
|
|
51
65
|
|
|
52
66
|
import { type ComputedRef, type Ref, computed, inject, ref } from 'vue';
|
|
@@ -62,29 +76,35 @@
|
|
|
62
76
|
|
|
63
77
|
//------------------------------------------------------------------------------------------------------------------
|
|
64
78
|
|
|
65
|
-
/**
|
|
66
|
-
* Individual accordion item with collapsible content.
|
|
67
|
-
*
|
|
68
|
-
* @example With custom title slot
|
|
69
|
-
* ```vue
|
|
70
|
-
* <SkAccordionItem value="item-1">
|
|
71
|
-
* <template #title="{ open }">
|
|
72
|
-
* <span>Custom Title</span>
|
|
73
|
-
* <SkBadge v-if="open" kind="primary">Open</SkBadge>
|
|
74
|
-
* </template>
|
|
75
|
-
* Content here
|
|
76
|
-
* </SkAccordionItem>
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
79
|
export interface SkAccordionItemComponentProps
|
|
80
80
|
{
|
|
81
|
-
/**
|
|
81
|
+
/**
|
|
82
|
+
* A unique identifier for this accordion item. This value is used by the parent SkAccordion
|
|
83
|
+
* to track which item(s) are currently open. Must be unique among siblings within the same
|
|
84
|
+
* accordion. The value is exposed in v-model bindings on the parent accordion.
|
|
85
|
+
*/
|
|
82
86
|
value : string;
|
|
83
|
-
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Text displayed in the accordion item's header/trigger button. This is the clickable
|
|
90
|
+
* area that expands or collapses the content. Can be overridden with the `title` slot
|
|
91
|
+
* for custom header content including icons, badges, or formatted text.
|
|
92
|
+
*/
|
|
84
93
|
title ?: string;
|
|
85
|
-
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* When true, this specific accordion item cannot be expanded or collapsed. The item
|
|
97
|
+
* appears with reduced opacity and the cursor changes to not-allowed. If the item
|
|
98
|
+
* was already open when disabled, it remains in its current state.
|
|
99
|
+
* @default false
|
|
100
|
+
*/
|
|
86
101
|
disabled ?: boolean;
|
|
87
|
-
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Overrides the semantic color kind inherited from the parent SkAccordion. Use this
|
|
105
|
+
* to highlight specific items differently, such as marking one section as 'warning'
|
|
106
|
+
* or 'danger'. When not specified, the item uses the parent accordion's kind.
|
|
107
|
+
*/
|
|
88
108
|
kind ?: SkAccordionKind;
|
|
89
109
|
}
|
|
90
110
|
|
|
@@ -64,45 +64,55 @@
|
|
|
64
64
|
|
|
65
65
|
<script setup lang="ts">
|
|
66
66
|
/**
|
|
67
|
-
* @component
|
|
68
|
-
* A
|
|
69
|
-
*
|
|
67
|
+
* @component SkAlert
|
|
68
|
+
* @description A contextual feedback component for displaying informational, success, warning, or error messages.
|
|
69
|
+
* Features automatic icon selection based on alert kind and supports both subtle and prominent visual styles.
|
|
70
|
+
* Use alerts to communicate important status updates, validation results, or system messages to users.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```vue
|
|
74
|
+
* <SkAlert kind="success">Your changes have been saved!</SkAlert>
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @example Prominent warning with custom icon
|
|
78
|
+
* ```vue
|
|
79
|
+
* <SkAlert kind="warning" prominent>
|
|
80
|
+
* <template #icon><CustomIcon /></template>
|
|
81
|
+
* This action cannot be undone.
|
|
82
|
+
* </SkAlert>
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* @slot default - The alert message content. Can include text, links, or any HTML content.
|
|
86
|
+
* @slot icon - Custom icon to override the default kind-based icon. Receives no slot props.
|
|
70
87
|
*/
|
|
71
88
|
|
|
72
89
|
import { computed, toRef } from 'vue';
|
|
90
|
+
|
|
91
|
+
// Types
|
|
73
92
|
import type { SkAlertKind } from './types';
|
|
74
93
|
import type { ComponentCustomColors } from '@/types';
|
|
94
|
+
|
|
95
|
+
// Composables
|
|
75
96
|
import { useCustomColors } from '@/composables/useCustomColors';
|
|
76
97
|
|
|
77
98
|
//------------------------------------------------------------------------------------------------------------------
|
|
78
99
|
|
|
79
|
-
/**
|
|
80
|
-
* A flexible alert component for displaying informational messages.
|
|
81
|
-
* Supports multiple semantic kinds (info, success, warning, danger) with optional prominent styling.
|
|
82
|
-
*
|
|
83
|
-
* @example Basic alert
|
|
84
|
-
* ```vue
|
|
85
|
-
* <SkAlert kind="success">
|
|
86
|
-
* Your changes have been saved!
|
|
87
|
-
* </SkAlert>
|
|
88
|
-
* ```
|
|
89
|
-
*
|
|
90
|
-
* @example Custom colors
|
|
91
|
-
* ```vue
|
|
92
|
-
* <SkAlert
|
|
93
|
-
* base-color="oklch(0.65 0.25 280)"
|
|
94
|
-
* text-color="white"
|
|
95
|
-
* prominent
|
|
96
|
-
* >
|
|
97
|
-
* Custom purple alert with custom colors
|
|
98
|
-
* </SkAlert>
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
100
|
export interface SkAlertComponentProps extends ComponentCustomColors
|
|
102
101
|
{
|
|
103
|
-
/**
|
|
102
|
+
/**
|
|
103
|
+
* Semantic kind that determines the alert's color scheme and default icon. Each kind
|
|
104
|
+
* conveys a different meaning: 'info' for general information, 'success' for positive
|
|
105
|
+
* confirmations, 'warning' for cautionary messages, and 'danger' for errors or critical issues.
|
|
106
|
+
* @default 'info'
|
|
107
|
+
*/
|
|
104
108
|
kind ?: SkAlertKind;
|
|
105
|
-
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* When true, applies prominent styling with a more vivid background color and stronger
|
|
112
|
+
* visual presence. Use prominent alerts for critical messages that require immediate
|
|
113
|
+
* user attention, such as errors or important warnings.
|
|
114
|
+
* @default false
|
|
115
|
+
*/
|
|
106
116
|
prominent ?: boolean;
|
|
107
117
|
}
|
|
108
118
|
|
|
@@ -39,9 +39,30 @@
|
|
|
39
39
|
<script setup lang="ts">
|
|
40
40
|
/**
|
|
41
41
|
* @component SkAvatar
|
|
42
|
-
* A user profile avatar component
|
|
43
|
-
*
|
|
44
|
-
*
|
|
42
|
+
* @description A user profile avatar component displaying an image, initials, or placeholder icon. Features a
|
|
43
|
+
* distinctive square shape with beveled top-left and bottom-right corners matching the SleekSpace design system.
|
|
44
|
+
* Implements graceful degradation: shows image if provided and loads successfully, falls back to initials if
|
|
45
|
+
* specified, otherwise displays a generic user icon. Supports all semantic color kinds and custom colors.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```vue
|
|
49
|
+
* <!-- With image -->
|
|
50
|
+
* <SkAvatar src="/avatars/user.jpg" alt="Jane Doe" size="lg" />
|
|
51
|
+
*
|
|
52
|
+
* <!-- With initials fallback -->
|
|
53
|
+
* <SkAvatar src="/avatars/user.jpg" initials="JD" kind="primary" />
|
|
54
|
+
*
|
|
55
|
+
* <!-- Initials only -->
|
|
56
|
+
* <SkAvatar initials="AB" kind="accent" size="xl" />
|
|
57
|
+
*
|
|
58
|
+
* <!-- Custom icon fallback -->
|
|
59
|
+
* <SkAvatar kind="info">
|
|
60
|
+
* <template #icon><RobotIcon /></template>
|
|
61
|
+
* </SkAvatar>
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @slot icon - Custom fallback icon displayed when no image or initials are provided. Defaults to a generic
|
|
65
|
+
* user silhouette icon. Use for bots, system users, or other non-person entities.
|
|
45
66
|
*/
|
|
46
67
|
|
|
47
68
|
import { computed, ref } from 'vue';
|
|
@@ -54,19 +75,57 @@
|
|
|
54
75
|
|
|
55
76
|
export interface SkAvatarComponentProps
|
|
56
77
|
{
|
|
57
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* URL of the avatar image to display. When provided, the component attempts to load and display
|
|
80
|
+
* this image. If the image fails to load (404, network error, etc.), the component automatically
|
|
81
|
+
* falls back to initials or the default icon. Supports any valid image URL including data URIs.
|
|
82
|
+
*/
|
|
58
83
|
src ?: string;
|
|
59
|
-
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Alternative text for the avatar image, used for accessibility. Screen readers announce this
|
|
87
|
+
* text, so provide meaningful descriptions like "Jane Doe's profile photo" rather than generic
|
|
88
|
+
* text like "avatar". Only applies when displaying an image.
|
|
89
|
+
* @default ''
|
|
90
|
+
*/
|
|
60
91
|
alt ?: string;
|
|
61
|
-
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Fallback text to display when no image is provided or the image fails to load. Typically
|
|
95
|
+
* a user's initials (first and last name letters). Automatically truncated to 2 characters
|
|
96
|
+
* and uppercased. If neither src nor initials are provided, displays the default user icon.
|
|
97
|
+
*/
|
|
62
98
|
initials ?: string;
|
|
63
|
-
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Semantic color kind that controls the avatar's background and text colors when displaying
|
|
102
|
+
* initials or the fallback icon. Has no visible effect when displaying an image. Semantic kinds
|
|
103
|
+
* (neutral, primary, accent, info, success, warning, danger) adapt to your theme.
|
|
104
|
+
* @default 'neutral'
|
|
105
|
+
*/
|
|
64
106
|
kind ?: ComponentKind;
|
|
65
|
-
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Avatar size controlling both dimensions and text/icon scaling. Available sizes: 'xs' (extra
|
|
110
|
+
* small, 24px), 'sm' (small, 32px), 'md' (medium, 40px), 'lg' (large, 48px), 'xl' (extra large,
|
|
111
|
+
* 64px), '2xl' (double extra large, 80px). Choose based on context: 'sm' for lists, 'lg' for
|
|
112
|
+
* profile headers, 'xl' for profile pages.
|
|
113
|
+
* @default 'md'
|
|
114
|
+
*/
|
|
66
115
|
size ?: SkAvatarSize;
|
|
67
|
-
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Custom background color that overrides the kind's default. Use for brand colors, user-selected
|
|
119
|
+
* colors, or dynamically generated colors based on user ID. Accepts any valid CSS color value.
|
|
120
|
+
* Only visible when displaying initials or the fallback icon.
|
|
121
|
+
*/
|
|
68
122
|
baseColor ?: string;
|
|
69
|
-
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Custom text/icon color that overrides the kind's default. Should provide sufficient contrast
|
|
126
|
+
* against baseColor for accessibility. Accepts any valid CSS color value. Only visible when
|
|
127
|
+
* displaying initials or the fallback icon.
|
|
128
|
+
*/
|
|
70
129
|
textColor ?: string;
|
|
71
130
|
}
|
|
72
131
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<!----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
- Breadcrumb Item Component
|
|
3
|
+
--------------------------------------------------------------------------------------------------------------------->
|
|
4
|
+
|
|
1
5
|
<template>
|
|
2
6
|
<li class="sk-breadcrumb-item">
|
|
3
7
|
<component
|
|
@@ -23,6 +27,34 @@
|
|
|
23
27
|
<!--------------------------------------------------------------------------------------------------------------------->
|
|
24
28
|
|
|
25
29
|
<script setup lang="ts">
|
|
30
|
+
/**
|
|
31
|
+
* @component SkBreadcrumbItem
|
|
32
|
+
* @description A single item within a breadcrumb navigation trail representing one level in the hierarchy.
|
|
33
|
+
* Automatically renders as the appropriate element type based on props: `RouterLink` for Vue Router
|
|
34
|
+
* navigation, `<a>` for external links, `<span>` for current/disabled items, or `<button>` for click handlers.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```vue
|
|
38
|
+
* <!-- Vue Router link -->
|
|
39
|
+
* <SkBreadcrumbItem to="/dashboard">Dashboard</SkBreadcrumbItem>
|
|
40
|
+
*
|
|
41
|
+
* <!-- External link -->
|
|
42
|
+
* <SkBreadcrumbItem href="https://docs.example.com">Docs</SkBreadcrumbItem>
|
|
43
|
+
*
|
|
44
|
+
* <!-- Current page (non-interactive) -->
|
|
45
|
+
* <SkBreadcrumbItem current>Settings</SkBreadcrumbItem>
|
|
46
|
+
*
|
|
47
|
+
* <!-- With icon -->
|
|
48
|
+
* <SkBreadcrumbItem to="/">
|
|
49
|
+
* <template #icon><HomeIcon /></template>
|
|
50
|
+
* Home
|
|
51
|
+
* </SkBreadcrumbItem>
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @slot default - The breadcrumb label text or custom content.
|
|
55
|
+
* @slot icon - Optional icon displayed before the label. Useful for home icons or category indicators.
|
|
56
|
+
*/
|
|
57
|
+
|
|
26
58
|
import { computed, inject } from 'vue';
|
|
27
59
|
import { RouterLink } from 'vue-router';
|
|
28
60
|
|
|
@@ -31,7 +63,37 @@
|
|
|
31
63
|
|
|
32
64
|
//------------------------------------------------------------------------------------------------------------------
|
|
33
65
|
|
|
34
|
-
export
|
|
66
|
+
export interface SkBreadcrumbItemComponentProps
|
|
67
|
+
{
|
|
68
|
+
/**
|
|
69
|
+
* Vue Router destination for client-side navigation. When provided, the item renders as a
|
|
70
|
+
* `RouterLink` component. Accepts any valid `RouteLocationRaw` value including path strings,
|
|
71
|
+
* named routes, and route objects with params.
|
|
72
|
+
*/
|
|
73
|
+
to ?: SkBreadcrumbItemProps['to'];
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* URL for standard anchor link navigation. When provided (and `to` is not set), the item
|
|
77
|
+
* renders as an `<a>` element. Use this for external links or non-Vue-Router navigation.
|
|
78
|
+
*/
|
|
79
|
+
href ?: string;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* When true, marks this item as the current page in the breadcrumb trail. The item renders
|
|
83
|
+
* as a non-interactive `<span>` and receives `aria-current="page"` for accessibility.
|
|
84
|
+
* Typically used on the last item in the breadcrumb list.
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
87
|
+
current ?: boolean;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* When true, the item is disabled and cannot be interacted with. The item renders as a
|
|
91
|
+
* non-interactive `<span>` with reduced opacity. Use for items that represent inaccessible
|
|
92
|
+
* or locked sections of the application.
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
disabled ?: boolean;
|
|
96
|
+
}
|
|
35
97
|
|
|
36
98
|
//------------------------------------------------------------------------------------------------------------------
|
|
37
99
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<!----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
- Breadcrumb Separator Component
|
|
3
|
+
--------------------------------------------------------------------------------------------------------------------->
|
|
4
|
+
|
|
1
5
|
<template>
|
|
2
6
|
<span class="sk-breadcrumb-separator" aria-hidden="true">
|
|
3
7
|
{{ displaySeparator }}
|
|
@@ -13,14 +17,39 @@
|
|
|
13
17
|
<!--------------------------------------------------------------------------------------------------------------------->
|
|
14
18
|
|
|
15
19
|
<script setup lang="ts">
|
|
20
|
+
/**
|
|
21
|
+
* @component SkBreadcrumbSeparator
|
|
22
|
+
* @description A visual separator displayed between breadcrumb items. Typically used internally by
|
|
23
|
+
* `SkBreadcrumbs`, but can be used directly when you need custom separator patterns or want to
|
|
24
|
+
* place separators manually. The separator is hidden from screen readers via `aria-hidden`.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```vue
|
|
28
|
+
* <!-- Manual separator usage -->
|
|
29
|
+
* <SkBreadcrumbItem to="/">Home</SkBreadcrumbItem>
|
|
30
|
+
* <SkBreadcrumbSeparator separator=">" />
|
|
31
|
+
* <SkBreadcrumbItem current>Settings</SkBreadcrumbItem>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
|
|
16
35
|
import { computed, inject } from 'vue';
|
|
17
36
|
|
|
18
|
-
|
|
19
|
-
|
|
37
|
+
//------------------------------------------------------------------------------------------------------------------
|
|
38
|
+
|
|
39
|
+
export interface SkBreadcrumbSeparatorComponentProps
|
|
40
|
+
{
|
|
41
|
+
/**
|
|
42
|
+
* Custom separator character or string to display. When not provided, inherits the separator
|
|
43
|
+
* from the parent `SkBreadcrumbs` component. Use this to override specific separators while
|
|
44
|
+
* keeping others consistent with the parent setting.
|
|
45
|
+
* @default '/' (inherited from parent)
|
|
46
|
+
*/
|
|
47
|
+
separator ?: string;
|
|
48
|
+
}
|
|
20
49
|
|
|
21
50
|
//------------------------------------------------------------------------------------------------------------------
|
|
22
51
|
|
|
23
|
-
const props = withDefaults(defineProps<
|
|
52
|
+
const props = withDefaults(defineProps<SkBreadcrumbSeparatorComponentProps>(), {
|
|
24
53
|
separator: undefined,
|
|
25
54
|
});
|
|
26
55
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<!----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
- Breadcrumbs Component
|
|
3
|
+
--------------------------------------------------------------------------------------------------------------------->
|
|
4
|
+
|
|
1
5
|
<template>
|
|
2
6
|
<nav :class="classes" :style="customColorStyles" aria-label="Breadcrumb">
|
|
3
7
|
<ol class="sk-breadcrumbs-list">
|
|
@@ -18,6 +22,24 @@
|
|
|
18
22
|
<!--------------------------------------------------------------------------------------------------------------------->
|
|
19
23
|
|
|
20
24
|
<script setup lang="ts">
|
|
25
|
+
/**
|
|
26
|
+
* @component SkBreadcrumbs
|
|
27
|
+
* @description A navigation component that displays a hierarchical trail of links showing the user's current
|
|
28
|
+
* location within an application. Automatically inserts separators between breadcrumb items and provides
|
|
29
|
+
* ARIA-compliant navigation landmarks for screen readers.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```vue
|
|
33
|
+
* <SkBreadcrumbs kind="primary">
|
|
34
|
+
* <SkBreadcrumbItem to="/">Home</SkBreadcrumbItem>
|
|
35
|
+
* <SkBreadcrumbItem to="/products">Products</SkBreadcrumbItem>
|
|
36
|
+
* <SkBreadcrumbItem current>Widget Pro</SkBreadcrumbItem>
|
|
37
|
+
* </SkBreadcrumbs>
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @slot default - Contains `SkBreadcrumbItem` components representing each level in the navigation hierarchy.
|
|
41
|
+
*/
|
|
42
|
+
|
|
21
43
|
import { type Slots, type VNode, computed, provide, toRef, useSlots } from 'vue';
|
|
22
44
|
|
|
23
45
|
// Types
|
|
@@ -28,6 +50,20 @@
|
|
|
28
50
|
|
|
29
51
|
export interface SkBreadcrumbsComponentProps extends SkBreadcrumbsProps, ComponentCustomColors
|
|
30
52
|
{
|
|
53
|
+
/**
|
|
54
|
+
* Semantic color kind that controls the appearance of breadcrumb links. The kind affects link colors
|
|
55
|
+
* for normal, hover, and active states. All child `SkBreadcrumbItem` components inherit this kind.
|
|
56
|
+
* @default 'neutral'
|
|
57
|
+
*/
|
|
58
|
+
kind ?: SkBreadcrumbsProps['kind'];
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Character or string displayed between breadcrumb items. Common separators include '/', '>', and
|
|
62
|
+
* unicode characters like '\u203A' (single right-pointing angle quotation mark). Can be overridden
|
|
63
|
+
* on individual `SkBreadcrumbSeparator` components for custom patterns.
|
|
64
|
+
* @default '/'
|
|
65
|
+
*/
|
|
66
|
+
separator ?: string;
|
|
31
67
|
}
|
|
32
68
|
|
|
33
69
|
//------------------------------------------------------------------------------------------------------------------
|