@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
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SkThemeComponentProps } from './types';
|
|
2
|
+
declare function __VLS_template(): {
|
|
3
|
+
attrs: Partial<{}>;
|
|
4
|
+
slots: {
|
|
5
|
+
default?(_: {}): any;
|
|
6
|
+
};
|
|
7
|
+
refs: {};
|
|
8
|
+
rootEl: HTMLDivElement;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
11
|
+
declare const __VLS_component: import('vue').DefineComponent<SkThemeComponentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkThemeComponentProps> & Readonly<{}>, {
|
|
12
|
+
theme: import('./types').SkThemeName;
|
|
13
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
14
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Available theme names that control the overall color scheme of the application.
|
|
3
|
+
* - 'greyscale': A monochromatic theme with neutral grays and subtle accents
|
|
4
|
+
* - 'colorful': A vibrant theme with saturated colors and stronger contrasts
|
|
5
|
+
*/
|
|
6
|
+
export type SkThemeName = 'greyscale' | 'colorful';
|
|
7
|
+
export interface SkThemeComponentProps {
|
|
8
|
+
/**
|
|
9
|
+
* The active theme name that controls the color scheme for all child components.
|
|
10
|
+
* Changing this prop reactively updates the theme across the entire subtree.
|
|
11
|
+
* Portal components (dropdowns, modals, tooltips) automatically inherit this
|
|
12
|
+
* theme even though they render outside the DOM hierarchy.
|
|
13
|
+
* @default 'greyscale'
|
|
14
|
+
*/
|
|
15
|
+
theme?: SkThemeName;
|
|
16
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { SkThemeName } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Context object for theme management.
|
|
5
|
+
* Provides reactive theme state and methods to change the theme.
|
|
6
|
+
*/
|
|
7
|
+
export interface ThemeContext {
|
|
8
|
+
/** Reactive reference to the currently active theme */
|
|
9
|
+
currentTheme: Ref<SkThemeName>;
|
|
10
|
+
/** Function to change the active theme */
|
|
11
|
+
setTheme: (theme: SkThemeName) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Provides theme context to child components.
|
|
15
|
+
* Call this function at the root of your component tree (typically in SkTheme component).
|
|
16
|
+
*
|
|
17
|
+
* @param initialTheme - The initial theme to use. Defaults to 'greyscale'
|
|
18
|
+
* @returns ThemeContext object containing currentTheme ref and setTheme function
|
|
19
|
+
*
|
|
20
|
+
* @example Basic usage
|
|
21
|
+
* ```ts
|
|
22
|
+
* const theme = provideTheme('blue');
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example Changing theme
|
|
26
|
+
* ```ts
|
|
27
|
+
* const theme = provideTheme();
|
|
28
|
+
* theme.setTheme('blue'); // Switch to blue theme
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function provideTheme(initialTheme?: SkThemeName): ThemeContext;
|
|
32
|
+
/**
|
|
33
|
+
* Accesses the theme context in a child component.
|
|
34
|
+
* Must be called within a component that has an SkTheme ancestor.
|
|
35
|
+
*
|
|
36
|
+
* @returns ThemeContext object containing currentTheme ref and setTheme function
|
|
37
|
+
* @throws Error if called outside of an SkTheme component tree
|
|
38
|
+
*
|
|
39
|
+
* @example Get current theme
|
|
40
|
+
* ```vue
|
|
41
|
+
* <script setup>
|
|
42
|
+
* import { useTheme } from '@skewedaspect/sleekspace-ui';
|
|
43
|
+
*
|
|
44
|
+
* const { currentTheme } = useTheme();
|
|
45
|
+
* console.log(currentTheme.value); // 'greyscale', 'blue', etc.
|
|
46
|
+
* </script>
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example Change theme
|
|
50
|
+
* ```vue
|
|
51
|
+
* <script setup>
|
|
52
|
+
* import { useTheme } from '@skewedaspect/sleekspace-ui';
|
|
53
|
+
*
|
|
54
|
+
* const { setTheme } = useTheme();
|
|
55
|
+
*
|
|
56
|
+
* function switchToDarkTheme() {
|
|
57
|
+
* setTheme('blue');
|
|
58
|
+
* }
|
|
59
|
+
* </script>
|
|
60
|
+
*
|
|
61
|
+
* <template>
|
|
62
|
+
* <button @click="switchToDarkTheme">Switch to Blue Theme</button>
|
|
63
|
+
* </template>
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @example Reactive theme usage
|
|
67
|
+
* ```vue
|
|
68
|
+
* <script setup>
|
|
69
|
+
* import { computed } from 'vue';
|
|
70
|
+
* import { useTheme } from '@skewedaspect/sleekspace-ui';
|
|
71
|
+
*
|
|
72
|
+
* const { currentTheme } = useTheme();
|
|
73
|
+
* const isDarkTheme = computed(() => currentTheme.value === 'blue');
|
|
74
|
+
* </script>
|
|
75
|
+
*
|
|
76
|
+
* <template>
|
|
77
|
+
* <div>
|
|
78
|
+
* Current theme: {{ currentTheme }}
|
|
79
|
+
* <span v-if="isDarkTheme">Dark mode active</span>
|
|
80
|
+
* </div>
|
|
81
|
+
* </template>
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export declare function useTheme(): ThemeContext;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SkToastKind } from './types';
|
|
2
|
+
interface SkToastProps {
|
|
3
|
+
/**
|
|
4
|
+
* Unique identifier for this toast instance. Used internally for tracking and dismissing
|
|
5
|
+
* specific toasts. Generated automatically by SkToastProvider when using useToast().
|
|
6
|
+
*/
|
|
7
|
+
id: string;
|
|
8
|
+
/**
|
|
9
|
+
* Semantic color kind that determines the toast's visual appearance and icon. Each kind
|
|
10
|
+
* displays a contextually appropriate icon: info (circle-i), success (checkmark),
|
|
11
|
+
* warning (triangle), danger (x-circle). The kind also sets the background and text colors.
|
|
12
|
+
*/
|
|
13
|
+
kind: SkToastKind;
|
|
14
|
+
/**
|
|
15
|
+
* Optional bold title text displayed above the message. Use for brief headings like
|
|
16
|
+
* "Success!", "Error", or "Warning". When omitted, only the message is displayed.
|
|
17
|
+
*/
|
|
18
|
+
title?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The main toast message content. This is the primary text users will read, describing
|
|
21
|
+
* what happened or what action was taken. Keep messages concise and actionable.
|
|
22
|
+
*/
|
|
23
|
+
message: string;
|
|
24
|
+
/**
|
|
25
|
+
* Time in milliseconds before the toast automatically dismisses. Set to 0 or undefined
|
|
26
|
+
* to disable auto-dismiss and require manual closure. When set, a progress indicator
|
|
27
|
+
* may show remaining time. Overrides the provider's default duration.
|
|
28
|
+
*/
|
|
29
|
+
duration?: number;
|
|
30
|
+
/**
|
|
31
|
+
* When true, displays an X button allowing users to manually dismiss the toast before
|
|
32
|
+
* the duration expires. Essential for toasts with important information users may need
|
|
33
|
+
* more time to read, or when auto-dismiss is disabled.
|
|
34
|
+
*/
|
|
35
|
+
closable: boolean;
|
|
36
|
+
}
|
|
37
|
+
declare const _default: import('vue').DefineComponent<SkToastProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
38
|
+
dismiss: (id: string) => any;
|
|
39
|
+
}, string, import('vue').PublicProps, Readonly<SkToastProps> & Readonly<{
|
|
40
|
+
onDismiss?: ((id: string) => any) | undefined;
|
|
41
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
42
|
+
export default _default;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { SkToastPosition, SkToastSwipeDirection } from './types';
|
|
2
|
+
export interface SkToastProviderComponentProps {
|
|
3
|
+
/**
|
|
4
|
+
* Preset position for the toast viewport on the screen. Controls where toasts appear
|
|
5
|
+
* and stack. Choose a position that doesn't obstruct important UI elements. Common
|
|
6
|
+
* choices are 'bottom-right' for desktop apps and 'top-center' for mobile-first designs.
|
|
7
|
+
* When omitted, you can position the viewport via custom CSS instead.
|
|
8
|
+
* @default undefined
|
|
9
|
+
*/
|
|
10
|
+
position?: SkToastPosition;
|
|
11
|
+
/**
|
|
12
|
+
* Default duration in milliseconds before toasts automatically dismiss. Individual
|
|
13
|
+
* toasts can override this value. Set to 0 to disable auto-dismiss by default,
|
|
14
|
+
* requiring users to manually close each toast. Recommended range: 3000-7000ms.
|
|
15
|
+
* @default 5000
|
|
16
|
+
*/
|
|
17
|
+
duration?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Direction users can swipe to dismiss toasts on touch devices. The natural direction
|
|
20
|
+
* often matches the toast position - 'right' for right-positioned toasts, 'up' for
|
|
21
|
+
* top-positioned, etc. Set to the direction that feels like "dismissing" the toast.
|
|
22
|
+
* @default 'right'
|
|
23
|
+
*/
|
|
24
|
+
swipeDirection?: SkToastSwipeDirection;
|
|
25
|
+
/**
|
|
26
|
+
* Minimum distance in pixels a user must swipe before the toast dismisses. Lower values
|
|
27
|
+
* make dismissal easier but may cause accidental dismissals. Higher values require more
|
|
28
|
+
* intentional swipes. Balance based on your target devices and user needs.
|
|
29
|
+
* @default 50
|
|
30
|
+
*/
|
|
31
|
+
swipeThreshold?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Keyboard shortcut(s) to focus the toast region for screen reader users and keyboard
|
|
34
|
+
* navigation. When pressed, focus moves to the toast viewport. Use an array to define
|
|
35
|
+
* multiple shortcuts. Keys use standard keyboard event key names.
|
|
36
|
+
* @default ['F8']
|
|
37
|
+
*/
|
|
38
|
+
hotkey?: string[];
|
|
39
|
+
}
|
|
40
|
+
declare function __VLS_template(): {
|
|
41
|
+
attrs: Partial<{}>;
|
|
42
|
+
slots: {
|
|
43
|
+
default?(_: {}): any;
|
|
44
|
+
};
|
|
45
|
+
refs: {};
|
|
46
|
+
rootEl: any;
|
|
47
|
+
};
|
|
48
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
49
|
+
declare const __VLS_component: import('vue').DefineComponent<SkToastProviderComponentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkToastProviderComponentProps> & Readonly<{}>, {
|
|
50
|
+
position: SkToastPosition;
|
|
51
|
+
duration: number;
|
|
52
|
+
swipeDirection: SkToastSwipeDirection;
|
|
53
|
+
swipeThreshold: number;
|
|
54
|
+
hotkey: string[];
|
|
55
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
56
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
57
|
+
export default _default;
|
|
58
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
59
|
+
new (): {
|
|
60
|
+
$slots: S;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Toast semantic kinds (subset of ComponentKind for notifications) */
|
|
2
|
+
export type SkToastKind = 'info' | 'success' | 'warning' | 'danger';
|
|
3
|
+
/** Toast viewport position presets */
|
|
4
|
+
export type SkToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
5
|
+
/** Swipe direction for dismissing toasts */
|
|
6
|
+
export type SkToastSwipeDirection = 'right' | 'left' | 'up' | 'down';
|
|
7
|
+
/** Options for creating a toast */
|
|
8
|
+
export interface ToastOptions {
|
|
9
|
+
/** Unique ID for the toast. Auto-generated if not provided */
|
|
10
|
+
id?: string;
|
|
11
|
+
/** Semantic kind (default: 'info') */
|
|
12
|
+
kind?: SkToastKind;
|
|
13
|
+
/** Optional heading text */
|
|
14
|
+
title?: string;
|
|
15
|
+
/** Toast message content (required) */
|
|
16
|
+
message: string;
|
|
17
|
+
/** Duration in ms before auto-dismiss. Use 0 for no auto-dismiss */
|
|
18
|
+
duration?: number;
|
|
19
|
+
/** Whether to show close button (default: true) */
|
|
20
|
+
closable?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** Internal toast state */
|
|
23
|
+
export interface ToastState extends Required<Omit<ToastOptions, 'duration'>> {
|
|
24
|
+
/** Duration can be undefined to use provider default */
|
|
25
|
+
duration?: number;
|
|
26
|
+
}
|
|
27
|
+
/** Toast management API */
|
|
28
|
+
export interface ToastAPI {
|
|
29
|
+
/** Add a new toast and return its ID */
|
|
30
|
+
add: (options: ToastOptions) => string;
|
|
31
|
+
/** Dismiss a specific toast by ID */
|
|
32
|
+
dismiss: (id: string) => void;
|
|
33
|
+
/** Dismiss all active toasts */
|
|
34
|
+
dismissAll: () => void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ToastAPI } from './types';
|
|
2
|
+
export declare const TOAST_INJECTION_KEY: unique symbol;
|
|
3
|
+
/**
|
|
4
|
+
* Get the toast API for showing notifications.
|
|
5
|
+
*
|
|
6
|
+
* Must be used within a component tree that contains SkToastProvider.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { useToast } from '@skewedaspect/sleekspace-ui';
|
|
11
|
+
*
|
|
12
|
+
* const toast = useToast();
|
|
13
|
+
*
|
|
14
|
+
* // Show a success toast
|
|
15
|
+
* toast.add({
|
|
16
|
+
* kind: 'success',
|
|
17
|
+
* title: 'Saved!',
|
|
18
|
+
* message: 'Your changes have been saved.'
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Show an error toast that doesn't auto-dismiss
|
|
22
|
+
* toast.add({
|
|
23
|
+
* kind: 'danger',
|
|
24
|
+
* title: 'Error',
|
|
25
|
+
* message: 'Something went wrong.',
|
|
26
|
+
* duration: 0
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* // Dismiss all toasts
|
|
30
|
+
* toast.dismissAll();
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function useToast(): ToastAPI;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ComponentCustomColors, ComponentKind } from '../../types';
|
|
2
|
+
import { SkTooltipSide } from './types';
|
|
3
|
+
export interface SkTooltipComponentProps extends ComponentCustomColors {
|
|
4
|
+
/**
|
|
5
|
+
* Semantic color kind that controls the tooltip's background and text colors. Semantic kinds
|
|
6
|
+
* (neutral, primary, accent, info, success, warning, danger) adapt to your theme. Use 'neutral'
|
|
7
|
+
* for general hints, or match the kind to contextual meaning (e.g., 'warning' for caution tips).
|
|
8
|
+
* @default 'neutral'
|
|
9
|
+
*/
|
|
10
|
+
kind?: ComponentKind;
|
|
11
|
+
/**
|
|
12
|
+
* Visual variant that controls the tooltip's appearance. 'solid' shows a filled background
|
|
13
|
+
* with the kind color, ideal for high-contrast visibility. 'outline' shows a bordered style
|
|
14
|
+
* with transparent background, useful for subtle hints that don't distract from content.
|
|
15
|
+
* @default 'solid'
|
|
16
|
+
*/
|
|
17
|
+
variant?: 'solid' | 'outline';
|
|
18
|
+
/**
|
|
19
|
+
* Which side of the trigger element to display the tooltip. The tooltip automatically
|
|
20
|
+
* flips to the opposite side if there isn't enough space. Common choices: 'top' for
|
|
21
|
+
* buttons, 'right' for inline help icons, 'bottom' for navigation items.
|
|
22
|
+
* @default 'top'
|
|
23
|
+
*/
|
|
24
|
+
side?: SkTooltipSide;
|
|
25
|
+
/**
|
|
26
|
+
* Alignment of the tooltip along its side. 'center' centers the tooltip on the trigger,
|
|
27
|
+
* 'start' aligns to the left/top edge, 'end' aligns to the right/bottom edge. Use 'start'
|
|
28
|
+
* or 'end' when the trigger is near a screen edge to prevent clipping.
|
|
29
|
+
* @default 'center'
|
|
30
|
+
*/
|
|
31
|
+
align?: 'start' | 'center' | 'end';
|
|
32
|
+
/**
|
|
33
|
+
* Distance in pixels between the tooltip and its trigger element. Increase for more
|
|
34
|
+
* breathing room, decrease for tighter coupling. The arrow (if shown) extends from
|
|
35
|
+
* this offset toward the trigger.
|
|
36
|
+
* @default 5
|
|
37
|
+
*/
|
|
38
|
+
sideOffset?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Delay in milliseconds before the tooltip appears after hovering the trigger. Only used
|
|
41
|
+
* in standalone mode - when inside SkTooltipProvider, the provider's delayDuration takes
|
|
42
|
+
* precedence. Set to 0 for instant tooltips, or higher values to avoid accidental triggers.
|
|
43
|
+
* @default 400
|
|
44
|
+
*/
|
|
45
|
+
delayDuration?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to display a small arrow pointing from the tooltip toward its trigger element.
|
|
48
|
+
* Arrows help visually connect the tooltip to its trigger, especially useful when multiple
|
|
49
|
+
* interactive elements are close together. Disable for a cleaner, more minimal appearance.
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
showArrow?: boolean;
|
|
53
|
+
}
|
|
54
|
+
declare function __VLS_template(): {
|
|
55
|
+
attrs: Partial<{}>;
|
|
56
|
+
slots: {
|
|
57
|
+
trigger?(_: {}): any;
|
|
58
|
+
trigger?(_: {}): any;
|
|
59
|
+
default?(_: {}): any;
|
|
60
|
+
default?(_: {}): any;
|
|
61
|
+
};
|
|
62
|
+
refs: {};
|
|
63
|
+
rootEl: any;
|
|
64
|
+
};
|
|
65
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
66
|
+
declare const __VLS_component: import('vue').DefineComponent<SkTooltipComponentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkTooltipComponentProps> & Readonly<{}>, {
|
|
67
|
+
kind: ComponentKind;
|
|
68
|
+
variant: "solid" | "outline";
|
|
69
|
+
side: SkTooltipSide;
|
|
70
|
+
align: "start" | "center" | "end";
|
|
71
|
+
sideOffset: number;
|
|
72
|
+
showArrow: boolean;
|
|
73
|
+
delayDuration: number;
|
|
74
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
75
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
76
|
+
export default _default;
|
|
77
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
78
|
+
new (): {
|
|
79
|
+
$slots: S;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export interface SkTooltipProviderProps {
|
|
2
|
+
/**
|
|
3
|
+
* Delay in milliseconds from when the pointer enters a tooltip trigger until the tooltip
|
|
4
|
+
* opens. Applies to all SkTooltip components within this provider. A short delay (200-400ms)
|
|
5
|
+
* prevents tooltips from flashing when users move the mouse across the UI. Set to 0 for
|
|
6
|
+
* instant tooltips, though this may feel jarring.
|
|
7
|
+
* @default 400
|
|
8
|
+
*/
|
|
9
|
+
delayDuration?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Time window in milliseconds during which moving to another tooltip skips the delay entirely.
|
|
12
|
+
* After showing one tooltip, if the user hovers another trigger within this window, it appears
|
|
13
|
+
* instantly. This creates smooth "scanning" behavior when exploring a toolbar or menu. Set to
|
|
14
|
+
* 0 to disable skip delay behavior.
|
|
15
|
+
* @default 300
|
|
16
|
+
*/
|
|
17
|
+
skipDelayDuration?: number;
|
|
18
|
+
/**
|
|
19
|
+
* When true, moving the pointer from the trigger onto the tooltip content closes the tooltip.
|
|
20
|
+
* By default, users can hover over tooltip content (useful for links or selectable text).
|
|
21
|
+
* Enable this for simpler tooltips where you want strict trigger-only behavior.
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
disableHoverableContent?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* When true, clicking the trigger element does not close an open tooltip. By default,
|
|
27
|
+
* clicking the trigger dismisses the tooltip. Enable this if your trigger performs an
|
|
28
|
+
* action where the tooltip should remain visible for confirmation feedback.
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
disableClosingTrigger?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* When true, tooltips only appear on keyboard focus (Tab navigation), not on mouse focus.
|
|
34
|
+
* Uses the `:focus-visible` heuristic to distinguish intentional keyboard focus from
|
|
35
|
+
* programmatic or mouse-triggered focus. Enable for reduced visual noise on mouse-heavy UIs.
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
ignoreNonKeyboardFocus?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* When true, completely disables all tooltips within this provider. Useful for temporarily
|
|
41
|
+
* suppressing tooltips during certain UI states (like drag operations or touch interactions)
|
|
42
|
+
* or for user preference settings. Tooltips remain in the DOM but won't open.
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
disabled?: boolean;
|
|
46
|
+
}
|
|
47
|
+
declare function __VLS_template(): {
|
|
48
|
+
attrs: Partial<{}>;
|
|
49
|
+
slots: {
|
|
50
|
+
default?(_: {}): any;
|
|
51
|
+
};
|
|
52
|
+
refs: {};
|
|
53
|
+
rootEl: any;
|
|
54
|
+
};
|
|
55
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
56
|
+
declare const __VLS_component: import('vue').DefineComponent<SkTooltipProviderProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkTooltipProviderProps> & Readonly<{}>, {
|
|
57
|
+
disabled: boolean;
|
|
58
|
+
delayDuration: number;
|
|
59
|
+
skipDelayDuration: number;
|
|
60
|
+
disableHoverableContent: boolean;
|
|
61
|
+
disableClosingTrigger: boolean;
|
|
62
|
+
ignoreNonKeyboardFocus: boolean;
|
|
63
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
64
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
65
|
+
export default _default;
|
|
66
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
67
|
+
new (): {
|
|
68
|
+
$slots: S;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Composable for handling custom color props in components.
|
|
4
|
+
*
|
|
5
|
+
* This composable provides a consistent way to apply custom colors to components by generating
|
|
6
|
+
* CSS variables that override the component's default color tokens. It supports any CSS color
|
|
7
|
+
* format including hex, rgb, hsl, oklch, named colors, and CSS variables.
|
|
8
|
+
*
|
|
9
|
+
* Works with any component that follows the CSS variable naming convention:
|
|
10
|
+
* - `--sk-{componentName}-color-base` for the base/background color
|
|
11
|
+
* - `--sk-{componentName}-fg` for the foreground/text color
|
|
12
|
+
*
|
|
13
|
+
* @param componentName - The component name used in CSS variable naming
|
|
14
|
+
* (e.g., 'button', 'panel', 'my-custom-component')
|
|
15
|
+
* @param baseColor - The base/background color (any CSS color value, including CSS variables)
|
|
16
|
+
* @param textColor - Optional foreground/text color. If not provided, falls back to `--sk-neutral-text`
|
|
17
|
+
*
|
|
18
|
+
* @returns Computed style object with CSS variables ready to bind to a component's style attribute
|
|
19
|
+
*
|
|
20
|
+
* @example Basic usage with base color only
|
|
21
|
+
* ```vue
|
|
22
|
+
* <script setup>
|
|
23
|
+
* import { useCustomColors } from '@/composables/useCustomColors';
|
|
24
|
+
*
|
|
25
|
+
* const props = defineProps<{ baseColor?: string }>();
|
|
26
|
+
* const customColors = useCustomColors('button', toRef(() => props.baseColor), undefined);
|
|
27
|
+
* </script>
|
|
28
|
+
*
|
|
29
|
+
* <template>
|
|
30
|
+
* <button :style="customColors">Click me</button>
|
|
31
|
+
* </template>
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example With both base and text colors
|
|
35
|
+
* ```vue
|
|
36
|
+
* <SkButton base-color="oklch(0.7 0.25 300)" text-color="white">
|
|
37
|
+
* Custom Purple Button
|
|
38
|
+
* </SkButton>
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example Using CSS variables
|
|
42
|
+
* ```vue
|
|
43
|
+
* <SkPanel base-color="var(--my-custom-color)" text-color="var(--my-text-color)">
|
|
44
|
+
* Content
|
|
45
|
+
* </SkPanel>
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @example Custom component
|
|
49
|
+
* ```vue
|
|
50
|
+
* <script setup>
|
|
51
|
+
* import { useCustomColors } from '@/composables/useCustomColors';
|
|
52
|
+
*
|
|
53
|
+
* const props = defineProps<{ baseColor?: string; textColor?: string }>();
|
|
54
|
+
* const customColors = useCustomColors('my-widget', toRef(() => props.baseColor), toRef(() => props.textColor));
|
|
55
|
+
* </script>
|
|
56
|
+
*
|
|
57
|
+
* <template>
|
|
58
|
+
* <div class="my-widget" :style="customColors">
|
|
59
|
+
* <!-- Will generate: --sk-my-widget-color-base and --sk-my-widget-fg -->
|
|
60
|
+
* </div>
|
|
61
|
+
* </template>
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* Generated CSS variables:
|
|
65
|
+
* - `--sk-{componentName}-color-base` - The base color for backgrounds and accents
|
|
66
|
+
* - `--sk-{componentName}-fg` - The foreground/text color
|
|
67
|
+
*
|
|
68
|
+
* @remarks
|
|
69
|
+
* - If `textColor` is not provided, components will use `--sk-neutral-text` from the active theme
|
|
70
|
+
* - For best contrast, always provide `textColor` when using custom `baseColor`
|
|
71
|
+
* - The generated CSS variables integrate with the component's existing token system
|
|
72
|
+
* - Works with any component name - no need to register components beforehand
|
|
73
|
+
*/
|
|
74
|
+
export declare function useCustomColors(componentName: string, baseColor: Ref<string | undefined> | string | undefined, textColor: Ref<string | undefined> | string | undefined): Ref<Record<string, string>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Composable for handling context propagation through portals.
|
|
4
|
+
*
|
|
5
|
+
* **The Portal Problem:**
|
|
6
|
+
* When components use portals (Modal, Dropdown, Tooltip, Listbox, Popover), the portaled content
|
|
7
|
+
* is teleported to `<body>`, breaking two critical things:
|
|
8
|
+
*
|
|
9
|
+
* 1. **CSS Cascade** - CSS custom properties defined on parent elements don't inherit to portaled
|
|
10
|
+
* content because it's no longer a DOM descendant.
|
|
11
|
+
*
|
|
12
|
+
* 2. **Vue's provide/inject** - The Vue component tree is preserved, but nested portal components
|
|
13
|
+
* (e.g., Listbox inside Modal) need the theme re-provided to reach their own portaled content.
|
|
14
|
+
*
|
|
15
|
+
* **This composable solves both problems by:**
|
|
16
|
+
* - Injecting the current theme (with a safe default)
|
|
17
|
+
* - Re-providing it for any nested portal components
|
|
18
|
+
* - Returning the theme ref for binding to `data-scheme` on portaled elements
|
|
19
|
+
*
|
|
20
|
+
* **IMPORTANT:** All portal components MUST:
|
|
21
|
+
* 1. Use this composable
|
|
22
|
+
* 2. Apply `:data-scheme="theme"` to their portaled content root element(s)
|
|
23
|
+
* 3. Apply kind classes directly on portaled content (CSS can't cascade from parent)
|
|
24
|
+
*
|
|
25
|
+
* @returns Object containing:
|
|
26
|
+
* - `theme`: Readonly ref of current theme name for `:data-scheme` binding
|
|
27
|
+
*
|
|
28
|
+
* @example Basic usage in a portal component
|
|
29
|
+
* ```vue
|
|
30
|
+
* <script setup lang="ts">
|
|
31
|
+
* import { usePortalContext } from '@/composables/usePortalContext';
|
|
32
|
+
*
|
|
33
|
+
* const { theme } = usePortalContext();
|
|
34
|
+
* </script>
|
|
35
|
+
*
|
|
36
|
+
* <template>
|
|
37
|
+
* <SomePortal>
|
|
38
|
+
* <SomeContent :data-scheme="theme" :class="contentClasses">
|
|
39
|
+
* <slot />
|
|
40
|
+
* </SomeContent>
|
|
41
|
+
* </SomePortal>
|
|
42
|
+
* </template>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example With multiple portaled elements (Modal with overlay)
|
|
46
|
+
* ```vue
|
|
47
|
+
* <template>
|
|
48
|
+
* <DialogPortal>
|
|
49
|
+
* <DialogOverlay :data-scheme="theme" />
|
|
50
|
+
* <DialogContent :data-scheme="theme" :class="contentClasses">
|
|
51
|
+
* <slot />
|
|
52
|
+
* </DialogContent>
|
|
53
|
+
* </DialogPortal>
|
|
54
|
+
* </template>
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @remarks
|
|
58
|
+
* - The default theme is 'greyscale' if no SkTheme wrapper is present
|
|
59
|
+
* - This composable automatically handles provide/inject - you don't need to do it manually
|
|
60
|
+
* - The returned `theme` ref is readonly to prevent accidental mutation
|
|
61
|
+
* - Nested portals (e.g., Dropdown inside Modal) work automatically because each portal
|
|
62
|
+
* component re-provides the theme
|
|
63
|
+
*
|
|
64
|
+
* **Portal components in this library:**
|
|
65
|
+
* - SkModal (DialogPortal)
|
|
66
|
+
* - SkDropdown (DropdownMenuPortal)
|
|
67
|
+
* - SkDropdownSubmenu (DropdownMenuPortal)
|
|
68
|
+
* - SkListbox (ComboboxPortal)
|
|
69
|
+
* - SkTooltip (TooltipPortal)
|
|
70
|
+
* - SkPopover (PopoverPortal) - future
|
|
71
|
+
* - SkToast (ToastPortal) - future
|
|
72
|
+
*/
|
|
73
|
+
export declare function usePortalContext(): {
|
|
74
|
+
theme: Ref<string>;
|
|
75
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|