@skewedaspect/sleekspace-ui 0.7.0 → 0.8.0
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/sleekspace-ui.css +1000 -307
- package/dist/sleekspace-ui.es.js +31559 -29868
- package/dist/sleekspace-ui.umd.js +32210 -30438
- package/dist/{components → src/components}/Accordion/SkAccordion.vue.d.ts +1 -1
- package/dist/{components → src/components}/Accordion/types.d.ts +1 -1
- package/dist/{components → src/components}/Alert/SkAlert.vue.d.ts +1 -1
- package/dist/{components → src/components}/Alert/types.d.ts +1 -1
- package/dist/{components → src/components}/Avatar/SkAvatar.vue.d.ts +1 -1
- package/dist/{components → src/components}/Avatar/types.d.ts +1 -1
- package/dist/{components → src/components}/Breadcrumbs/SkBreadcrumbs.vue.d.ts +2 -2
- package/dist/{components → src/components}/Breadcrumbs/types.d.ts +1 -1
- package/dist/{components → src/components}/Button/SkButton.vue.d.ts +9 -1
- package/dist/{components → src/components}/Button/types.d.ts +1 -1
- package/dist/{components → src/components}/Card/SkCard.vue.d.ts +1 -1
- package/dist/src/components/Card/types.d.ts +2 -0
- package/dist/{components → src/components}/Checkbox/SkCheckbox.vue.d.ts +1 -1
- package/dist/{components → src/components}/Checkbox/types.d.ts +1 -1
- package/dist/{components → src/components}/Collapsible/SkCollapsible.vue.d.ts +1 -1
- package/dist/src/components/Collapsible/types.d.ts +2 -0
- package/dist/{components → src/components}/ColorPicker/SkColorPicker.vue.d.ts +1 -1
- package/dist/{components → src/components}/ColorPicker/types.d.ts +1 -1
- package/dist/{components → src/components}/ContextMenu/SkContextMenu.vue.d.ts +1 -1
- package/dist/src/components/ContextMenu/types.d.ts +2 -0
- package/dist/{components → src/components}/Divider/SkDivider.vue.d.ts +1 -1
- package/dist/{components → src/components}/Dropdown/SkDropdown.vue.d.ts +1 -1
- package/dist/{components → src/components}/Dropdown/types.d.ts +1 -1
- package/dist/{components → src/components}/Input/SkInput.vue.d.ts +1 -1
- package/dist/{components → src/components}/Input/types.d.ts +1 -1
- package/dist/{components → src/components}/Listbox/SkListbox.vue.d.ts +1 -1
- package/dist/{components → src/components}/Listbox/types.d.ts +1 -1
- package/dist/{components → src/components}/Modal/SkModal.vue.d.ts +1 -1
- package/dist/{components → src/components}/Modal/types.d.ts +1 -1
- package/dist/{components → src/components}/NavBar/SkNavBar.vue.d.ts +2 -1
- package/dist/src/components/NavBar/context.d.ts +3 -0
- package/dist/{components → src/components}/NavBar/types.d.ts +1 -1
- package/dist/{components → src/components}/NumberInput/SkNumberInput.vue.d.ts +1 -1
- package/dist/{components → src/components}/NumberInput/types.d.ts +1 -1
- package/dist/src/components/Page/SkPage.vue.d.ts +161 -0
- package/dist/src/components/Page/SkPageSidebarToggle.vue.d.ts +41 -0
- package/dist/src/components/Page/index.d.ts +3 -0
- package/dist/src/components/Page/types.d.ts +39 -0
- package/dist/{components → src/components}/Pagination/SkPagination.vue.d.ts +3 -3
- package/dist/{components → src/components}/Pagination/types.d.ts +1 -1
- package/dist/{components → src/components}/Panel/SkPanel.vue.d.ts +1 -1
- package/dist/{components → src/components}/Panel/types.d.ts +1 -1
- package/dist/{components → src/components}/Popover/SkPopover.vue.d.ts +1 -1
- package/dist/{components → src/components}/Progress/SkProgress.vue.d.ts +1 -1
- package/dist/{components → src/components}/Progress/types.d.ts +1 -1
- package/dist/{components → src/components}/Radio/SkRadio.vue.d.ts +1 -1
- package/dist/{components → src/components}/Radio/types.d.ts +1 -1
- package/dist/{components → src/components}/ScrollArea/SkScrollArea.vue.d.ts +9 -0
- package/dist/{components → src/components}/ScrollArea/types.d.ts +1 -1
- package/dist/{components → src/components}/Select/SkSelect.vue.d.ts +1 -1
- package/dist/{components → src/components}/Select/SkSelectItem.vue.d.ts +6 -18
- package/dist/{components → src/components}/Select/types.d.ts +1 -1
- package/dist/{components → src/components}/Sidebar/SkSidebar.vue.d.ts +10 -2
- package/dist/{components → src/components}/Sidebar/types.d.ts +1 -1
- package/dist/{components → src/components}/Slider/SkSlider.vue.d.ts +1 -1
- package/dist/{components → src/components}/Slider/types.d.ts +1 -1
- package/dist/{components → src/components}/Spinner/SkSpinner.vue.d.ts +1 -1
- package/dist/{components → src/components}/Spinner/types.d.ts +1 -1
- package/dist/{components → src/components}/Splitter/types.d.ts +1 -1
- package/dist/{components → src/components}/Switch/SkSwitch.vue.d.ts +1 -1
- package/dist/{components → src/components}/Switch/types.d.ts +1 -1
- package/dist/{components → src/components}/Table/SkTable.vue.d.ts +1 -1
- package/dist/{components → src/components}/Table/types.d.ts +1 -1
- package/dist/{components → src/components}/Tabs/SkTab.vue.d.ts +1 -1
- package/dist/{components → src/components}/Tabs/SkTabs.vue.d.ts +2 -2
- package/dist/{components → src/components}/Tag/SkTag.vue.d.ts +1 -1
- package/dist/{components → src/components}/TagsInput/SkTagsInput.vue.d.ts +1 -1
- package/dist/{components → src/components}/TagsInput/types.d.ts +1 -1
- package/dist/{components → src/components}/Textarea/SkTextarea.vue.d.ts +1 -1
- package/dist/{components → src/components}/Textarea/types.d.ts +1 -1
- package/dist/{components → src/components}/Toolbar/types.d.ts +1 -1
- package/dist/{components → src/components}/Tooltip/SkTooltip.vue.d.ts +1 -1
- package/dist/{components → src/components}/Tooltip/types.d.ts +1 -1
- package/dist/{components → src/components}/TreeView/SkTreeView.vue.d.ts +5 -5
- package/dist/{components → src/components}/TreeView/types.d.ts +1 -1
- package/dist/src/composables/useFocusTrap.d.ts +17 -0
- package/dist/src/composables/usePageDrawer.d.ts +35 -0
- package/dist/src/composables/usePortalContext.test.d.ts +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +2 -0
- package/dist/src/styles/mixins/fluidSize.test.d.ts +1 -0
- package/dist/tokens.css +60 -0
- package/llms-full.txt +6349 -0
- package/llms.txt +46 -0
- package/package.json +16 -11
- package/src/components/Button/SkButton.vue +25 -13
- package/src/components/NavBar/SkNavBar.vue +12 -1
- package/src/components/NavBar/context.ts +16 -0
- package/src/components/Page/SkPage.vue +460 -72
- package/src/components/Page/SkPageSidebarToggle.vue +148 -0
- package/src/components/Page/index.ts +1 -0
- package/src/components/Page/types.ts +30 -5
- package/src/components/ScrollArea/SkScrollArea.vue +12 -0
- package/src/components/Select/SkSelectItem.vue +2 -2
- package/src/components/Sidebar/SkSidebar.vue +10 -0
- package/src/components/TreeView/SkTreeView.vue +6 -6
- package/src/composables/useFocusTrap.test.ts +184 -0
- package/src/composables/useFocusTrap.ts +141 -0
- package/src/composables/usePageDrawer.ts +96 -0
- package/src/global.d.ts +1 -0
- package/src/index.ts +5 -0
- package/src/styles/components/_accordion.scss +15 -0
- package/src/styles/components/_alert.scss +1 -0
- package/src/styles/components/_avatar.scss +1 -0
- package/src/styles/components/_breadcrumbs.scss +7 -0
- package/src/styles/components/_button.scss +291 -214
- package/src/styles/components/_checkbox.scss +9 -1
- package/src/styles/components/_collapsible.scss +15 -0
- package/src/styles/components/_color-picker.scss +4 -1
- package/src/styles/components/_input.scss +1 -0
- package/src/styles/components/_listbox.scss +8 -2
- package/src/styles/components/_menu.scss +9 -2
- package/src/styles/components/_modal.scss +18 -2
- package/src/styles/components/_navbar.scss +22 -6
- package/src/styles/components/_number-input.scss +1 -0
- package/src/styles/components/_page.scss +220 -12
- package/src/styles/components/_pagination.scss +10 -1
- package/src/styles/components/_panel.scss +8 -3
- package/src/styles/components/_popover.scss +15 -2
- package/src/styles/components/_progress.scss +14 -0
- package/src/styles/components/_radio.scss +8 -1
- package/src/styles/components/_scroll-area.scss +56 -0
- package/src/styles/components/_select.scss +3 -1
- package/src/styles/components/_sidebar.scss +78 -38
- package/src/styles/components/_skeleton.scss +18 -0
- package/src/styles/components/_slider.scss +5 -4
- package/src/styles/components/_spinner.scss +15 -0
- package/src/styles/components/_switch.scss +5 -0
- package/src/styles/components/_table.scss +1 -0
- package/src/styles/components/_tabs.scss +6 -0
- package/src/styles/components/_tag.scss +2 -0
- package/src/styles/components/_tags-input.scss +1 -0
- package/src/styles/components/_textarea.scss +1 -0
- package/src/styles/components/_toast.scss +16 -1
- package/src/styles/components/_toolbar.scss +2 -0
- package/src/styles/components/_tooltip.scss +14 -1
- package/src/styles/components/_tree-view.scss +6 -1
- package/src/styles/mixins/_index.scss +1 -0
- package/src/styles/mixins/_responsive.scss +184 -0
- package/src/styles/mixins/fluidSize.test.ts +149 -0
- package/src/styles/tokens/_foundation-breakpoints.scss +26 -0
- package/src/styles/tokens/_foundation-z-index.scss +38 -0
- package/src/styles/tokens/index.scss +2 -0
- package/web-types.json +194 -14
- package/dist/components/Card/types.d.ts +0 -2
- package/dist/components/Collapsible/types.d.ts +0 -2
- package/dist/components/ContextMenu/types.d.ts +0 -2
- package/dist/components/Page/SkPage.vue.d.ts +0 -64
- package/dist/components/Page/index.d.ts +0 -2
- package/dist/components/Page/types.d.ts +0 -16
- package/dist/{components → src/components}/Accordion/SkAccordionItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Accordion/index.d.ts +0 -0
- package/dist/{components → src/components}/Avatar/index.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/SkBreadcrumbItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/SkBreadcrumbSeparator.vue.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/index.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/index.d.ts +0 -0
- package/dist/{components → src/components}/Collapsible/index.d.ts +0 -0
- package/dist/{components → src/components}/ColorPicker/index.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/SkContextMenuCheckboxItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/SkContextMenuItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/SkContextMenuLabel.vue.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/SkContextMenuRadioGroup.vue.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/SkContextMenuRadioItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/SkContextMenuSeparator.vue.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/SkContextMenuSubmenu.vue.d.ts +0 -0
- package/dist/{components → src/components}/ContextMenu/index.d.ts +0 -0
- package/dist/{components → src/components}/Divider/types.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/SkDropdownCheckboxItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/SkDropdownMenuItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/SkDropdownMenuLabel.vue.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/SkDropdownMenuSeparator.vue.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/SkDropdownRadioGroup.vue.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/SkDropdownRadioItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/SkDropdownSubmenu.vue.d.ts +0 -0
- package/dist/{components → src/components}/Dropdown/index.d.ts +0 -0
- package/dist/{components → src/components}/Field/SkField.vue.d.ts +0 -0
- package/dist/{components → src/components}/Field/index.d.ts +0 -0
- package/dist/{components → src/components}/Field/types.d.ts +0 -0
- package/dist/{components → src/components}/Group/SkGroup.vue.d.ts +0 -0
- package/dist/{components → src/components}/Group/types.d.ts +0 -0
- package/dist/{components → src/components}/Input/index.d.ts +0 -0
- package/dist/{components → src/components}/Listbox/SkListboxItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Listbox/SkListboxSeparator.vue.d.ts +0 -0
- package/dist/{components → src/components}/Listbox/index.d.ts +0 -0
- package/dist/{components → src/components}/Modal/index.d.ts +0 -0
- package/dist/{components → src/components}/NavBar/index.d.ts +0 -0
- package/dist/{components → src/components}/NumberInput/index.d.ts +0 -0
- package/dist/{components → src/components}/Pagination/SkPaginationItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Pagination/index.d.ts +0 -0
- package/dist/{components → src/components}/Popover/index.d.ts +0 -0
- package/dist/{components → src/components}/Popover/types.d.ts +0 -0
- package/dist/{components → src/components}/Progress/index.d.ts +0 -0
- package/dist/{components → src/components}/Radio/SkRadioGroup.vue.d.ts +0 -0
- package/dist/{components → src/components}/Radio/index.d.ts +0 -0
- package/dist/{components → src/components}/ScrollArea/index.d.ts +0 -0
- package/dist/{components → src/components}/Select/SkSelectSeparator.vue.d.ts +0 -0
- package/dist/{components → src/components}/Select/index.d.ts +0 -0
- package/dist/{components → src/components}/Sidebar/SkSidebarItem.vue.d.ts +0 -0
- package/dist/{components → src/components}/Sidebar/SkSidebarSection.vue.d.ts +0 -0
- package/dist/{components → src/components}/Skeleton/SkSkeleton.vue.d.ts +2 -2
- /package/dist/{components → src/components}/Skeleton/index.d.ts +0 -0
- /package/dist/{components → src/components}/Skeleton/types.d.ts +0 -0
- /package/dist/{components → src/components}/Slider/index.d.ts +0 -0
- /package/dist/{components → src/components}/Spinner/index.d.ts +0 -0
- /package/dist/{components → src/components}/Splitter/SkSplitter.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Splitter/SkSplitterHandle.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Splitter/SkSplitterPanel.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Splitter/index.d.ts +0 -0
- /package/dist/{components → src/components}/Switch/index.d.ts +0 -0
- /package/dist/{components → src/components}/Table/index.d.ts +0 -0
- /package/dist/{components → src/components}/Tabs/SkTabList.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Tabs/SkTabPanel.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Tabs/SkTabPanels.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Tabs/types.d.ts +0 -0
- /package/dist/{components → src/components}/Tag/types.d.ts +0 -0
- /package/dist/{components → src/components}/TagsInput/index.d.ts +0 -0
- /package/dist/{components → src/components}/Textarea/index.d.ts +0 -0
- /package/dist/{components → src/components}/Theme/SkTheme.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Theme/types.d.ts +0 -0
- /package/dist/{components → src/components}/Theme/useTheme.d.ts +0 -0
- /package/dist/{components → src/components}/Toast/SkToast.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Toast/SkToastProvider.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Toast/index.d.ts +0 -0
- /package/dist/{components → src/components}/Toast/types.d.ts +0 -0
- /package/dist/{components → src/components}/Toast/useToast.d.ts +0 -0
- /package/dist/{components → src/components}/Toolbar/SkToolbar.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Toolbar/SkToolbarButton.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Toolbar/SkToolbarSeparator.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Toolbar/SkToolbarToggleGroup.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Toolbar/SkToolbarToggleItem.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Toolbar/index.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/SkTooltipProvider.vue.d.ts +0 -0
- /package/dist/{components → src/components}/Tooltip/index.d.ts +0 -0
- /package/dist/{components → src/components}/TreeView/SkTreeItem.vue.d.ts +0 -0
- /package/dist/{components → src/components}/TreeView/index.d.ts +0 -0
- /package/dist/{composables → src/composables}/useCustomColors.d.ts +0 -0
- /package/dist/{composables → src/composables}/useCustomColors.test.d.ts +0 -0
- /package/dist/{composables/usePortalContext.test.d.ts → src/composables/useFocusTrap.test.d.ts} +0 -0
- /package/dist/{composables → src/composables}/usePortalContext.d.ts +0 -0
- /package/dist/{types.d.ts → src/types.d.ts} +0 -0
package/llms.txt
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# SleekSpace UI
|
|
2
|
+
> Vue 3 component library with cyberpunk aesthetic
|
|
3
|
+
|
|
4
|
+
- Docs: https://sleekspace.skewedaspect.com
|
|
5
|
+
- Full reference: https://sleekspace.skewedaspect.com/llms-full.txt
|
|
6
|
+
- Repository: https://gitlab.com/skewedaspect/sleekspace-ui
|
|
7
|
+
- npm: @skewedaspect/sleekspace-ui
|
|
8
|
+
|
|
9
|
+
## Components
|
|
10
|
+
|
|
11
|
+
- **SkAccordion** (Layout): A collapsible sections container for organizing content into expandable panels. Supports single or multiple open items with smooth animations. Built on RekaUI's Accordion primitive with full WAI-ARIA support.
|
|
12
|
+
- **SkAlert** (Feedback): A feedback component for displaying informational messages. Each kind renders a corresponding icon (info circle, checkmark, warning triangle, or error cross) alongside the message content. Renders with `role="alert"` for screen reader announcements.
|
|
13
|
+
- **SkAvatar** (Feedback): A user profile avatar component with three fallback levels: image, initials, and a default person icon. Renders as a square with beveled top-left and bottom-right corners.
|
|
14
|
+
- **SkBreadcrumbs** (Navigation): A navigation breadcrumb trail showing the current page location within a hierarchy. Automatically inserts separator characters between items. Renders inside a `<nav>` element with `aria-label="Breadcrumb"` for accessibility.
|
|
15
|
+
- **SkButton** (Forms): A versatile button component with multiple visual variants, sizes, and interactive states. Renders as a `<button>`, `<a>`, or `<router-link>` depending on the props provided.
|
|
16
|
+
- **SkCard** (Layout): A structured content container with optional header, media, content, and footer sections. Built on top of SkPanel, it inherits beveled corners and decorative accents.
|
|
17
|
+
- **SkCheckbox** (Forms): A checkbox component supporting boolean and indeterminate states. Built on RekaUI's Checkbox primitive with beveled corner styling and full keyboard accessibility.
|
|
18
|
+
- **SkCollapsible** (Layout): A single-section disclosure component for showing and hiding content with smooth height animations. Built on RekaUI's Collapsible primitive.
|
|
19
|
+
- **SkDivider** (Layout): A visual separator component for dividing content sections. Renders as an `<hr>` element with support for both horizontal and vertical orientations.
|
|
20
|
+
- **SkDropdown** (Forms): A dropdown menu component with a trigger button and floating menu content. Supports submenus, menu items, and separators. Built on RekaUI's DropdownMenu primitive and uses a portal for rendering.
|
|
21
|
+
- **SkField** (Forms): A form field wrapper that provides label, description, error message, and validation state management. Automatically wires up accessibility attributes between the label, input, and messages.
|
|
22
|
+
- **SkGroup** (Layout): A layout container that arranges child elements with consistent spacing in a horizontal or vertical direction.
|
|
23
|
+
- **SkInput** (Forms): A text input component with validation states, semantic color support, and multiple input types. Automatically inherits kind from a parent SkField when used together.
|
|
24
|
+
- **SkListbox** (Forms): A searchable select component for choosing from a list of predefined options. Features a combobox-style input with a dropdown list of items. Built on RekaUI's Combobox primitive and uses a portal for the dropdown.
|
|
25
|
+
- **SkModal** (Feedback): A dialog overlay component for presenting focused content that requires user attention or interaction. Includes a backdrop, close button, and optional trigger. Built on RekaUI's Dialog primitive and uses a portal.
|
|
26
|
+
- **SkNavBar** (Navigation): A top navigation bar component with three content zones: brand, navigation, and actions. Sticky by default so it stays visible during scroll.
|
|
27
|
+
- **SkNumberInput** (Forms): A numeric input component with increment/decrement stepper buttons. Supports keyboard navigation, min/max bounds, and step increments. Built on RekaUI's NumberField primitive.
|
|
28
|
+
- **SkPage** (Layout): A full-page layout component that provides a structured page skeleton with header, sidebar, content, and footer regions. Designed for application-level layouts with semantic HTML elements.
|
|
29
|
+
- **SkPagination** (Navigation): A pagination control for navigating through pages of content. Automatically calculates page ranges with ellipsis for large page counts.
|
|
30
|
+
- **SkPanel** (Layout): The foundational container component of SleekSpace UI. Provides borders, background colors, beveled corners, and an optional decorative accent line. Serves as the base for SkCard and other container components.
|
|
31
|
+
- **SkPopover** (Feedback): A floating panel positioned relative to a trigger element. Combines tooltip-like positioning with card-like structure, supporting a header with title, body content, footer, and a connecting arrow. Built on RekaUI's Popover primitive and uses a portal.
|
|
32
|
+
- **SkProgress** (Feedback): A progress bar component with both determinate and indeterminate modes. Supports percentage labels and custom colors. Built on RekaUI's Progress primitive.
|
|
33
|
+
- **SkRadio** (Forms): A radio button component for exclusive selection within a group. SkRadio must be used inside SkRadioGroup. Built on RekaUI's RadioGroup primitive.
|
|
34
|
+
- **SkSidebar** (Navigation): A sticky navigation sidebar container with semantic color theming. Composed of SkSidebarSection and SkSidebarItem for structured navigation.
|
|
35
|
+
- **SkSkeleton** (Feedback): A loading placeholder component with animated shimmer or pulse effects. Use to indicate content is being fetched and provide a visual preview of the expected layout.
|
|
36
|
+
- **SkSlider** (Forms): A range slider component for selecting numeric values. Supports single-thumb and multi-thumb (range) modes with horizontal and vertical orientations. Built on RekaUI's Slider primitive.
|
|
37
|
+
- **SkSpinner** (Feedback): An animated loading indicator with three cyberpunk-themed animation variants. Use to communicate ongoing processing or loading.
|
|
38
|
+
- **SkSwitch** (Forms): A toggle switch component for binary on/off choices. Supports dynamic labels that change with state and flexible thumb styling. Built on RekaUI's Switch primitive.
|
|
39
|
+
- **SkTable** (Feedback): A styled HTML table component with striped rows, hover effects, and configurable borders. Wraps standard `<table>` markup with consistent theming.
|
|
40
|
+
- **SkTabs** (Navigation): A tabbed interface for organizing content into switchable panels. Composed of SkTabs, SkTabList, SkTab, SkTabPanels, and SkTabPanel. Built on RekaUI's Tabs primitive.
|
|
41
|
+
- **SkTag** (Feedback): A compact label component for metadata, categories, status indicators, or keywords. Supports removable tags with a close button.
|
|
42
|
+
- **SkTagsInput** (Forms): A multi-value tag input component for entering a list of string values. Type text and press Enter to add tags; use Backspace or the delete button to remove them. Built on RekaUI's TagsInput primitive.
|
|
43
|
+
- **SkTextarea** (Forms): A multiline text input component with validation states and semantic color support. Automatically inherits kind from a parent SkField.
|
|
44
|
+
- **SkTheme** (Theming): A theme provider component that controls the color scheme for all child components. Sets a `data-scheme` attribute that CSS rules use to apply different semantic token values.
|
|
45
|
+
- **SkToast** (Feedback): A notification toast system for showing brief messages that appear and auto-dismiss. Composed of SkToastProvider (wraps your app) and the `useToast` composable (shows toasts from anywhere). Built on RekaUI's Toast primitive.
|
|
46
|
+
- **SkTooltip** (Feedback): A hover-triggered tooltip for displaying brief supplementary information next to a trigger element. Supports standalone and provider modes for coordinated tooltip behavior. Built on RekaUI's Tooltip primitive and uses a portal.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skewedaspect/sleekspace-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
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",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"./style": "./dist/sleekspace-ui.css",
|
|
17
17
|
"./styles/source": "./src/styles/index.scss",
|
|
18
|
+
"./styles/mixins/responsive": "./src/styles/mixins/_responsive.scss",
|
|
18
19
|
"./tokens.css": "./dist/tokens.css"
|
|
19
20
|
},
|
|
20
21
|
"files": [
|
|
@@ -22,16 +23,20 @@
|
|
|
22
23
|
"src",
|
|
23
24
|
"docs",
|
|
24
25
|
"web-types.json",
|
|
26
|
+
"llms.txt",
|
|
27
|
+
"llms-full.txt",
|
|
25
28
|
"README.md",
|
|
26
29
|
"LICENSE"
|
|
27
30
|
],
|
|
28
31
|
"scripts": {
|
|
29
32
|
"dev": "vite build --watch",
|
|
30
|
-
"build": "npm run generate:types && vue-docgen-web-types && vite build && npm run build:tokens && npm run copy:docs",
|
|
33
|
+
"build": "npm run generate:types && vue-docgen-web-types && vite build && npm run build:tokens && npm run copy:docs && npm run generate:llms",
|
|
31
34
|
"build:tokens": "sass src/styles/tokens.scss dist/tokens.css --no-source-map",
|
|
32
35
|
"copy:docs": "cp ../../Readme.md README.md && cp ../../LICENSE LICENSE",
|
|
33
36
|
"generate:types": "tsx scripts/generate-global-types.ts",
|
|
34
37
|
"generate:web-types": "vue-docgen-web-types",
|
|
38
|
+
"generate:api-docs": "node ../docs-site/scripts/generate-api-docs.ts",
|
|
39
|
+
"generate:llms": "npm run generate:api-docs && node ../docs-site/scripts/generate-llms-txt.ts --output-dir=.",
|
|
35
40
|
"lint": "eslint src"
|
|
36
41
|
},
|
|
37
42
|
"keywords": [
|
|
@@ -58,18 +63,18 @@
|
|
|
58
63
|
"vue": "^3.3.0"
|
|
59
64
|
},
|
|
60
65
|
"devDependencies": {
|
|
61
|
-
"@types/node": "^
|
|
62
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
63
|
-
"sass": "^1.
|
|
64
|
-
"typescript": "^
|
|
65
|
-
"vite": "^
|
|
66
|
-
"vite-plugin-dts": "^4.5.
|
|
67
|
-
"vue": "^3.5.
|
|
66
|
+
"@types/node": "^25.6.0",
|
|
67
|
+
"@vitejs/plugin-vue": "^6.0.6",
|
|
68
|
+
"sass": "^1.99.0",
|
|
69
|
+
"typescript": "^6.0.3",
|
|
70
|
+
"vite": "^8.0.8",
|
|
71
|
+
"vite-plugin-dts": "^4.5.4",
|
|
72
|
+
"vue": "^3.5.32",
|
|
68
73
|
"vue-docgen-web-types": "^0.1.8"
|
|
69
74
|
},
|
|
70
75
|
"dependencies": {
|
|
71
|
-
"@vuelor/picker": "^0.
|
|
76
|
+
"@vuelor/picker": "^1.0.1",
|
|
72
77
|
"modern-normalize": "^3.0.1",
|
|
73
|
-
"reka-ui": "^2.6
|
|
78
|
+
"reka-ui": "^2.9.6"
|
|
74
79
|
}
|
|
75
80
|
}
|
|
@@ -15,19 +15,21 @@
|
|
|
15
15
|
:aria-busy="loading ? 'true' : undefined"
|
|
16
16
|
role="button"
|
|
17
17
|
>
|
|
18
|
-
<span
|
|
19
|
-
|
|
20
|
-
<span
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<
|
|
18
|
+
<span class="sk-button-chrome">
|
|
19
|
+
<span v-if="loading" class="sk-button-loader" aria-hidden="true" />
|
|
20
|
+
<span :class="{ 'sk-button-content': true, 'loading': loading }">
|
|
21
|
+
<span v-if="$slots.leading" class="sk-button-icon sk-button-icon-leading">
|
|
22
|
+
<slot name="leading" />
|
|
23
|
+
</span>
|
|
24
|
+
<span v-if="$slots.icon" class="sk-button-icon sk-button-icon-only">
|
|
25
|
+
<slot name="icon" />
|
|
26
|
+
</span>
|
|
27
|
+
<span v-if="$slots.default" class="sk-button-text">
|
|
28
|
+
<slot />
|
|
29
|
+
</span>
|
|
30
|
+
<span v-if="$slots.trailing" class="sk-button-icon sk-button-icon-trailing">
|
|
31
|
+
<slot name="trailing" />
|
|
32
|
+
</span>
|
|
31
33
|
</span>
|
|
32
34
|
</span>
|
|
33
35
|
</component>
|
|
@@ -130,6 +132,14 @@
|
|
|
130
132
|
*/
|
|
131
133
|
pressed ?: boolean;
|
|
132
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Opts out of the coarse-pointer touch-target floor (44px minimum on touch devices).
|
|
137
|
+
* Use for tight toolbars, data tables, or other contexts where a compact size is preferable
|
|
138
|
+
* to the default touch-friendly floor. On fine-pointer devices (mouse) this has no effect.
|
|
139
|
+
* @default false
|
|
140
|
+
*/
|
|
141
|
+
dense ?: boolean;
|
|
142
|
+
|
|
133
143
|
/**
|
|
134
144
|
* URL for the button to navigate to. When provided, the button renders as an `<a>` element
|
|
135
145
|
* instead of a `<button>`. Use for external links or simple navigation that doesn't require
|
|
@@ -157,6 +167,7 @@
|
|
|
157
167
|
disabled: false,
|
|
158
168
|
loading: false,
|
|
159
169
|
pressed: false,
|
|
170
|
+
dense: false,
|
|
160
171
|
href: undefined,
|
|
161
172
|
to: undefined,
|
|
162
173
|
});
|
|
@@ -197,6 +208,7 @@
|
|
|
197
208
|
[`sk-${ props.size }`]: true,
|
|
198
209
|
'sk-loading': props.loading,
|
|
199
210
|
'sk-pressed': props.pressed,
|
|
211
|
+
'sk-dense': props.dense,
|
|
200
212
|
'sk-icon-only': isIconOnly,
|
|
201
213
|
};
|
|
202
214
|
});
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
<template>
|
|
6
6
|
<nav :class="classes" :style="customColorStyles">
|
|
7
7
|
<div class="sk-navbar-content">
|
|
8
|
+
<div v-if="slots.leading" class="sk-navbar-leading">
|
|
9
|
+
<slot name="leading" />
|
|
10
|
+
</div>
|
|
11
|
+
|
|
8
12
|
<div v-if="slots.brand" class="sk-navbar-brand">
|
|
9
13
|
<slot name="brand" />
|
|
10
14
|
</div>
|
|
@@ -44,6 +48,8 @@
|
|
|
44
48
|
* </SkNavBar>
|
|
45
49
|
* ```
|
|
46
50
|
*
|
|
51
|
+
* @slot leading - Far-left area, rendered before the brand. Canonical placement for a
|
|
52
|
+
* sidebar-drawer toggle (SkPageSidebarToggle). Empty by default.
|
|
47
53
|
* @slot brand - Left-aligned area for your logo, site name, or brand identity. Typically contains an
|
|
48
54
|
* image or text link to the homepage.
|
|
49
55
|
* @slot default - Center area for main navigation items. Place navigation buttons, links, or menu
|
|
@@ -52,10 +58,11 @@
|
|
|
52
58
|
* Ideal for login buttons, shopping carts, or profile dropdowns.
|
|
53
59
|
*/
|
|
54
60
|
|
|
55
|
-
import { computed, toRef, useSlots } from 'vue';
|
|
61
|
+
import { computed, provide, toRef, useSlots } from 'vue';
|
|
56
62
|
import type { SkNavBarKind } from './types';
|
|
57
63
|
import type { ComponentCustomColors } from '@/types';
|
|
58
64
|
import { useCustomColors } from '@/composables/useCustomColors';
|
|
65
|
+
import { NAVBAR_KIND_KEY } from './context';
|
|
59
66
|
|
|
60
67
|
//------------------------------------------------------------------------------------------------------------------
|
|
61
68
|
|
|
@@ -85,6 +92,10 @@
|
|
|
85
92
|
sticky: true,
|
|
86
93
|
});
|
|
87
94
|
|
|
95
|
+
// Expose the navbar's kind to descendants so components like SkPageSidebarToggle can default
|
|
96
|
+
// to the surrounding navbar's color scheme without the user wiring it manually.
|
|
97
|
+
provide(NAVBAR_KIND_KEY, toRef(() => props.kind));
|
|
98
|
+
|
|
88
99
|
//------------------------------------------------------------------------------------------------------------------
|
|
89
100
|
|
|
90
101
|
const slots = useSlots();
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
// NavBar Context
|
|
3
|
+
//
|
|
4
|
+
// Injection key for descendants (e.g. SkPageSidebarToggle) that want to inherit the surrounding
|
|
5
|
+
// navbar's kind without the user wiring it manually.
|
|
6
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
7
|
+
|
|
8
|
+
import type { InjectionKey, Ref } from 'vue';
|
|
9
|
+
|
|
10
|
+
import type { SkNavBarKind } from './types';
|
|
11
|
+
|
|
12
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
export const NAVBAR_KIND_KEY : InjectionKey<Ref<SkNavBarKind>> = Symbol('sk-navbar-kind');
|
|
15
|
+
|
|
16
|
+
//----------------------------------------------------------------------------------------------------------------------
|