@skewedaspect/sleekspace-ui 0.8.1 → 0.9.1

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.
Files changed (191) hide show
  1. package/dist/components/Dropdown/SkDropdown.vue.d.ts +9 -1
  2. package/dist/components/Dropdown/types.d.ts +2 -1
  3. package/dist/components/NavBar/SkNavBar.vue.d.ts +9 -1
  4. package/dist/components/NavBar/context.d.ts +2 -0
  5. package/dist/components/NavBar/types.d.ts +5 -1
  6. package/dist/components/NumberInput/SkNumberInput.vue.d.ts +8 -0
  7. package/dist/components/Page/SkPage.vue.d.ts +9 -0
  8. package/dist/components/ScrollArea/SkScrollArea.vue.d.ts +105 -4
  9. package/dist/composables/useCustomColors.d.ts +18 -56
  10. package/{src → dist}/global.d.ts +6 -2
  11. package/dist/sleekspace-ui.css +4257 -1253
  12. package/dist/sleekspace-ui.es.js +300 -170
  13. package/dist/sleekspace-ui.umd.js +299 -169
  14. package/dist/static/classes.d.ts +18 -0
  15. package/dist/static/components/alert.d.ts +12 -0
  16. package/dist/static/components/avatar.d.ts +9 -0
  17. package/dist/static/components/breadcrumbs.d.ts +6 -0
  18. package/dist/static/components/button.d.ts +13 -0
  19. package/dist/static/components/card.d.ts +5 -0
  20. package/dist/static/components/checkbox.d.ts +10 -0
  21. package/dist/static/components/colorPicker.d.ts +8 -0
  22. package/dist/static/components/divider.d.ts +8 -0
  23. package/dist/static/components/dropdown.d.ts +8 -0
  24. package/dist/static/components/field.d.ts +15 -0
  25. package/dist/static/components/group.d.ts +5 -0
  26. package/dist/static/components/input.d.ts +14 -0
  27. package/dist/static/components/navBar.d.ts +16 -0
  28. package/dist/static/components/numberInput.d.ts +15 -0
  29. package/dist/static/components/page.d.ts +9 -0
  30. package/dist/static/components/pagination.d.ts +5 -0
  31. package/dist/static/components/panel.d.ts +11 -0
  32. package/dist/static/components/progress.d.ts +9 -0
  33. package/dist/static/components/radio.d.ts +11 -0
  34. package/dist/static/components/select.d.ts +10 -0
  35. package/dist/static/components/sidebar.d.ts +9 -0
  36. package/dist/static/components/skeleton.d.ts +11 -0
  37. package/dist/static/components/slider.d.ts +12 -0
  38. package/dist/static/components/spinner.d.ts +12 -0
  39. package/dist/static/components/switchInput.d.ts +10 -0
  40. package/dist/static/components/table.d.ts +12 -0
  41. package/dist/static/components/tag.d.ts +8 -0
  42. package/dist/static/components/tagsInput.d.ts +7 -0
  43. package/dist/static/components/textarea.d.ts +12 -0
  44. package/dist/static/components/toolbar.d.ts +12 -0
  45. package/dist/static/components/tooltip.d.ts +7 -0
  46. package/dist/static/escape.d.ts +2 -0
  47. package/dist/static/index.cjs.js +1 -0
  48. package/dist/static/index.d.ts +68 -0
  49. package/dist/static/index.es.js +732 -0
  50. package/dist/static/render.d.ts +12 -0
  51. package/dist/static/specs.d.ts +2 -0
  52. package/dist/static/types.d.ts +43 -0
  53. package/dist/tokens.css +322 -0
  54. package/dist/types/index.d.ts +36 -0
  55. package/dist/utils/slots.d.ts +6 -0
  56. package/docs/guides/installation.md +8 -2
  57. package/docs/guides/pure-css/_meta.yaml +8 -0
  58. package/docs/guides/pure-css/class-api.md +1070 -0
  59. package/docs/guides/pure-css/custom-elements.md +574 -0
  60. package/docs/guides/pure-css/index.md +86 -0
  61. package/docs/guides/pure-css/limitations.md +152 -0
  62. package/docs/guides/pure-css/static-helpers.md +1203 -0
  63. package/llms-full.txt +3739 -261
  64. package/package.json +19 -5
  65. package/src/components/Alert/SkAlert.vue +4 -2
  66. package/src/components/Breadcrumbs/SkBreadcrumbs.vue +6 -12
  67. package/src/components/Button/SkButton.vue +8 -5
  68. package/src/components/Card/SkCard.vue +13 -5
  69. package/src/components/Checkbox/SkCheckbox.vue +9 -2
  70. package/src/components/ContextMenu/SkContextMenuRadioGroup.vue +4 -1
  71. package/src/components/Dropdown/SkDropdown.vue +20 -3
  72. package/src/components/Dropdown/SkDropdownRadioGroup.vue +4 -1
  73. package/src/components/Dropdown/types.ts +2 -1
  74. package/src/components/Modal/SkModal.vue +11 -4
  75. package/src/components/NavBar/SkNavBar.vue +19 -8
  76. package/src/components/NavBar/context.ts +4 -2
  77. package/src/components/NavBar/types.ts +6 -1
  78. package/src/components/NumberInput/SkNumberInput.vue +10 -1
  79. package/src/components/Page/SkPage.vue +29 -15
  80. package/src/components/Panel/SkPanel.vue +2 -1
  81. package/src/components/Popover/SkPopover.vue +11 -4
  82. package/src/components/Radio/SkRadio.vue +9 -2
  83. package/src/components/ScrollArea/SkScrollArea.vue +78 -5
  84. package/src/components/Switch/SkSwitch.vue +14 -13
  85. package/src/components/Tabs/SkTab.vue +7 -2
  86. package/src/components/TreeView/SkTreeItem.vue +10 -2
  87. package/src/components/TreeView/SkTreeView.vue +7 -2
  88. package/src/composables/useCustomColors.ts +86 -77
  89. package/src/composables/usePortalContext.test.ts +0 -2
  90. package/src/shims.d.ts +10 -0
  91. package/src/static/__tests__/parity.test.ts +717 -0
  92. package/src/static/__tests__/parityHarness.test.ts +98 -0
  93. package/src/static/__tests__/parityHarness.ts +260 -0
  94. package/src/static/classes.test.ts +82 -0
  95. package/src/static/classes.ts +111 -0
  96. package/src/static/components/__tests__/helpers.test.ts +837 -0
  97. package/src/static/components/alert.ts +117 -0
  98. package/src/static/components/avatar.ts +86 -0
  99. package/src/static/components/breadcrumbs.ts +28 -0
  100. package/src/static/components/button.ts +75 -0
  101. package/src/static/components/card.ts +27 -0
  102. package/src/static/components/checkbox.ts +48 -0
  103. package/src/static/components/colorPicker.ts +45 -0
  104. package/src/static/components/divider.ts +39 -0
  105. package/src/static/components/dropdown.ts +36 -0
  106. package/src/static/components/field.ts +86 -0
  107. package/src/static/components/group.ts +27 -0
  108. package/src/static/components/input.ts +55 -0
  109. package/src/static/components/navBar.ts +94 -0
  110. package/src/static/components/numberInput.ts +64 -0
  111. package/src/static/components/page.ts +31 -0
  112. package/src/static/components/pagination.ts +27 -0
  113. package/src/static/components/panel.ts +33 -0
  114. package/src/static/components/progress.ts +31 -0
  115. package/src/static/components/radio.ts +53 -0
  116. package/src/static/components/select.ts +51 -0
  117. package/src/static/components/sidebar.ts +85 -0
  118. package/src/static/components/skeleton.ts +66 -0
  119. package/src/static/components/slider.ts +50 -0
  120. package/src/static/components/spinner.ts +94 -0
  121. package/src/static/components/switchInput.ts +49 -0
  122. package/src/static/components/table.ts +88 -0
  123. package/src/static/components/tag.ts +76 -0
  124. package/src/static/components/tagsInput.ts +35 -0
  125. package/src/static/components/textarea.ts +53 -0
  126. package/src/static/components/toolbar.ts +74 -0
  127. package/src/static/components/tooltip.ts +29 -0
  128. package/src/static/escape.test.ts +53 -0
  129. package/src/static/escape.ts +28 -0
  130. package/src/static/generated/defaults.ts +379 -0
  131. package/src/static/generated/propTypes.ts +426 -0
  132. package/src/static/index.ts +116 -0
  133. package/src/static/render.test.ts +83 -0
  134. package/src/static/render.ts +76 -0
  135. package/src/static/specs.test.ts +58 -0
  136. package/src/static/specs.ts +230 -0
  137. package/src/static/types.ts +176 -0
  138. package/src/styles/__tests__/testHelpers.ts +97 -0
  139. package/src/styles/base/_custom-elements.scss +51 -0
  140. package/src/styles/base/_index.scss +4 -0
  141. package/src/styles/components/__tests__/componentSelectors.test.ts +2575 -0
  142. package/src/styles/components/_alert.scss +82 -39
  143. package/src/styles/components/_avatar.scss +102 -47
  144. package/src/styles/components/_breadcrumbs.scss +39 -37
  145. package/src/styles/components/_button.scss +58 -5
  146. package/src/styles/components/_card.scss +64 -2
  147. package/src/styles/components/_checkbox.scss +35 -5
  148. package/src/styles/components/_color-picker.scss +48 -13
  149. package/src/styles/components/_divider.scss +86 -52
  150. package/src/styles/components/_dropdown.scss +214 -0
  151. package/src/styles/components/_field.scss +76 -23
  152. package/src/styles/components/_group.scss +190 -79
  153. package/src/styles/components/_index.scss +1 -0
  154. package/src/styles/components/_input.scss +81 -5
  155. package/src/styles/components/_menu.scss +1 -1
  156. package/src/styles/components/_navbar.scss +76 -45
  157. package/src/styles/components/_number-input.scss +98 -85
  158. package/src/styles/components/_page.scss +82 -23
  159. package/src/styles/components/_pagination.scss +240 -212
  160. package/src/styles/components/_panel.scss +268 -122
  161. package/src/styles/components/_progress.scss +120 -70
  162. package/src/styles/components/_radio.scss +35 -5
  163. package/src/styles/components/_scroll-area.scss +50 -22
  164. package/src/styles/components/_select.scss +40 -9
  165. package/src/styles/components/_sidebar.scss +59 -34
  166. package/src/styles/components/_skeleton.scss +111 -65
  167. package/src/styles/components/_slider.scss +34 -10
  168. package/src/styles/components/_spinner.scss +107 -56
  169. package/src/styles/components/_switch.scss +36 -5
  170. package/src/styles/components/_table.scss +150 -166
  171. package/src/styles/components/_tag.scss +244 -154
  172. package/src/styles/components/_tags-input.scss +46 -12
  173. package/src/styles/components/_textarea.scss +36 -5
  174. package/src/styles/components/_toolbar.scss +85 -31
  175. package/src/styles/components/_tooltip.scss +172 -3
  176. package/src/styles/mixins/_cut-border.scss +18 -4
  177. package/src/styles/mixins/_dual-selector.scss +192 -0
  178. package/src/styles/mixins/_index.scss +1 -0
  179. package/src/styles/mixins/dualSelector.test.ts +151 -0
  180. package/src/styles/themes/_colorful.scss +25 -0
  181. package/src/styles/themes/_greyscale.scss +25 -0
  182. package/src/styles/themes/_shade-scale.scss +39 -0
  183. package/src/styles/tokens/_semantic-color-kinds.scss +66 -0
  184. package/src/{types.ts → types/index.ts} +19 -11
  185. package/src/utils/slots.ts +75 -0
  186. package/web-types.json +980 -137
  187. package/dist/composables/useCustomColors.test.d.ts +0 -1
  188. package/dist/composables/useFocusTrap.test.d.ts +0 -1
  189. package/dist/composables/usePortalContext.test.d.ts +0 -1
  190. package/dist/styles/mixins/fluidSize.test.d.ts +0 -1
  191. package/dist/types.d.ts +0 -29
@@ -0,0 +1,12 @@
1
+ import { ClassSpec } from './classes';
2
+ export interface RenderSpec {
3
+ tag: string;
4
+ classSpec: ClassSpec;
5
+ extraAttrs?: Record<string, string>;
6
+ void?: boolean;
7
+ customColorVars?: {
8
+ base?: string;
9
+ text?: string;
10
+ };
11
+ }
12
+ export declare function render(spec: RenderSpec, props: Record<string, unknown>, children: string): string;
@@ -0,0 +1,2 @@
1
+ import { RenderSpec } from './render';
2
+ export declare const SPECS: Record<string, RenderSpec>;
@@ -0,0 +1,43 @@
1
+ export type SemanticKind = 'neutral' | 'primary' | 'accent' | 'danger' | 'info' | 'success' | 'warning';
2
+ export type ColorKind = 'boulder' | 'neon-blue' | 'light-blue' | 'neon-orange' | 'neon-purple' | 'neon-green' | 'neon-mint' | 'neon-pink' | 'yellow' | 'red';
3
+ export type ComponentKind = SemanticKind | ColorKind;
4
+ export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
+ export type ComponentVariant = 'solid' | 'outline' | 'subtle' | 'ghost' | 'link';
6
+ export interface StaticCustomColors {
7
+ baseColor?: string;
8
+ textColor?: string;
9
+ }
10
+ export type HtmlString = string;
11
+ export type AlertKind = ComponentKind;
12
+ export type AvatarSize = ComponentSize;
13
+ export type BreadcrumbsKind = ComponentKind;
14
+ export type ButtonKind = ComponentKind;
15
+ export type ButtonSize = ComponentSize;
16
+ export type ButtonVariant = ComponentVariant;
17
+ export type ButtonType = 'button' | 'submit' | 'reset';
18
+ export type CardKind = ComponentKind;
19
+ export type DividerOrientation = 'horizontal' | 'vertical';
20
+ export type DividerVariant = 'subtle';
21
+ export type FieldLabelPosition = 'top' | 'left';
22
+ export type GroupOrientation = 'horizontal' | 'vertical';
23
+ export type NavBarKind = ComponentKind;
24
+ export type PagePanelMode = 'auto' | 'persistent' | 'drawer';
25
+ export type PaginationKind = ComponentKind;
26
+ export type PanelKind = ComponentKind;
27
+ export type PanelSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
28
+ export type PanelCorner = 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left';
29
+ export type ProgressSize = ComponentSize;
30
+ export type SidebarKind = ComponentKind;
31
+ export type SidebarSide = 'left' | 'right';
32
+ export type SpinnerSize = ComponentSize;
33
+ export type SpinnerVariant = 'circular' | 'dots' | 'crosshair';
34
+ export type TableKind = ComponentKind;
35
+ export type TableVariant = 'default' | 'compact' | 'comfortable';
36
+ export type TagVariant = 'solid' | 'outline' | 'subtle' | 'ghost';
37
+ export type TagSize = 'sm' | 'md' | 'lg' | 'xl';
38
+ export type ToolbarKind = ComponentKind;
39
+ export type ToolbarOrientation = 'horizontal' | 'vertical';
40
+ export type ToolbarCorner = 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left';
41
+ export type TooltipKind = ComponentKind;
42
+ export type TooltipVariant = ComponentVariant;
43
+ export type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
package/dist/tokens.css CHANGED
@@ -528,6 +528,14 @@
528
528
  * Reference theme with gray neutral colors and blue primary.
529
529
  * This is the default, more subdued theme.
530
530
  */
531
+ /**
532
+ * Theme shade-scale helper
533
+ *
534
+ * Shared map + mixin that each theme uses to emit Tailwind-style shade aliases
535
+ * (`--sk-primary-50`, `--sk-primary-200`, ..., `--sk-primary-950`) for the semantic kinds.
536
+ * The aliases point at foundation primitives (`--sk-color-<family>-05..95`) so they always
537
+ * follow the theme's chosen color family.
538
+ */
531
539
  [data-scheme=greyscale] {
532
540
  /* Neutral Kind */
533
541
  --sk-neutral-base: var(--sk-color-gray-50);
@@ -571,8 +579,101 @@
571
579
  --sk-info-active: color-mix(in oklch, var(--sk-info-base), var(--sk-color-gray-10) var(--sk-mix-amount-strong));
572
580
  --sk-info-text: oklch(1 0 0);
573
581
  --sk-info-text-contrast: var(--sk-color-gray-95);
582
+ /* Short aliases for the semantic kinds defined above. Must live inside the theme block so
583
+ * that `var(--sk-<kind>-base)` resolves on this element's cascade. */
584
+ --sk-neutral: var(--sk-neutral-base);
585
+ --sk-primary: var(--sk-primary-base);
586
+ --sk-accent: var(--sk-accent-base);
587
+ --sk-info: var(--sk-info-base);
588
+ --sk-success: var(--sk-success-base);
589
+ --sk-warning: var(--sk-warning-base);
590
+ --sk-danger: var(--sk-danger-base);
591
+ /* Tailwind-style shade scale (`--sk-primary-50`..`--sk-primary-950`, and so on). */
592
+ --sk-neutral-50: var(--sk-color-gray-05);
593
+ --sk-neutral-100: var(--sk-color-gray-10);
594
+ --sk-neutral-200: var(--sk-color-gray-20);
595
+ --sk-neutral-300: var(--sk-color-gray-30);
596
+ --sk-neutral-400: var(--sk-color-gray-40);
597
+ --sk-neutral-500: var(--sk-color-gray-50);
598
+ --sk-neutral-600: var(--sk-color-gray-60);
599
+ --sk-neutral-700: var(--sk-color-gray-70);
600
+ --sk-neutral-800: var(--sk-color-gray-80);
601
+ --sk-neutral-900: var(--sk-color-gray-90);
602
+ --sk-neutral-950: var(--sk-color-gray-95);
603
+ --sk-primary-50: var(--sk-color-blue-05);
604
+ --sk-primary-100: var(--sk-color-blue-10);
605
+ --sk-primary-200: var(--sk-color-blue-20);
606
+ --sk-primary-300: var(--sk-color-blue-30);
607
+ --sk-primary-400: var(--sk-color-blue-40);
608
+ --sk-primary-500: var(--sk-color-blue-50);
609
+ --sk-primary-600: var(--sk-color-blue-60);
610
+ --sk-primary-700: var(--sk-color-blue-70);
611
+ --sk-primary-800: var(--sk-color-blue-80);
612
+ --sk-primary-900: var(--sk-color-blue-90);
613
+ --sk-primary-950: var(--sk-color-blue-95);
614
+ --sk-accent-50: var(--sk-color-orange-05);
615
+ --sk-accent-100: var(--sk-color-orange-10);
616
+ --sk-accent-200: var(--sk-color-orange-20);
617
+ --sk-accent-300: var(--sk-color-orange-30);
618
+ --sk-accent-400: var(--sk-color-orange-40);
619
+ --sk-accent-500: var(--sk-color-orange-50);
620
+ --sk-accent-600: var(--sk-color-orange-60);
621
+ --sk-accent-700: var(--sk-color-orange-70);
622
+ --sk-accent-800: var(--sk-color-orange-80);
623
+ --sk-accent-900: var(--sk-color-orange-90);
624
+ --sk-accent-950: var(--sk-color-orange-95);
625
+ --sk-info-50: var(--sk-color-cyan-05);
626
+ --sk-info-100: var(--sk-color-cyan-10);
627
+ --sk-info-200: var(--sk-color-cyan-20);
628
+ --sk-info-300: var(--sk-color-cyan-30);
629
+ --sk-info-400: var(--sk-color-cyan-40);
630
+ --sk-info-500: var(--sk-color-cyan-50);
631
+ --sk-info-600: var(--sk-color-cyan-60);
632
+ --sk-info-700: var(--sk-color-cyan-70);
633
+ --sk-info-800: var(--sk-color-cyan-80);
634
+ --sk-info-900: var(--sk-color-cyan-90);
635
+ --sk-info-950: var(--sk-color-cyan-95);
636
+ --sk-success-50: var(--sk-color-green-05);
637
+ --sk-success-100: var(--sk-color-green-10);
638
+ --sk-success-200: var(--sk-color-green-20);
639
+ --sk-success-300: var(--sk-color-green-30);
640
+ --sk-success-400: var(--sk-color-green-40);
641
+ --sk-success-500: var(--sk-color-green-50);
642
+ --sk-success-600: var(--sk-color-green-60);
643
+ --sk-success-700: var(--sk-color-green-70);
644
+ --sk-success-800: var(--sk-color-green-80);
645
+ --sk-success-900: var(--sk-color-green-90);
646
+ --sk-success-950: var(--sk-color-green-95);
647
+ --sk-warning-50: var(--sk-color-yellow-05);
648
+ --sk-warning-100: var(--sk-color-yellow-10);
649
+ --sk-warning-200: var(--sk-color-yellow-20);
650
+ --sk-warning-300: var(--sk-color-yellow-30);
651
+ --sk-warning-400: var(--sk-color-yellow-40);
652
+ --sk-warning-500: var(--sk-color-yellow-50);
653
+ --sk-warning-600: var(--sk-color-yellow-60);
654
+ --sk-warning-700: var(--sk-color-yellow-70);
655
+ --sk-warning-800: var(--sk-color-yellow-80);
656
+ --sk-warning-900: var(--sk-color-yellow-90);
657
+ --sk-warning-950: var(--sk-color-yellow-95);
658
+ --sk-danger-50: var(--sk-color-red-05);
659
+ --sk-danger-100: var(--sk-color-red-10);
660
+ --sk-danger-200: var(--sk-color-red-20);
661
+ --sk-danger-300: var(--sk-color-red-30);
662
+ --sk-danger-400: var(--sk-color-red-40);
663
+ --sk-danger-500: var(--sk-color-red-50);
664
+ --sk-danger-600: var(--sk-color-red-60);
665
+ --sk-danger-700: var(--sk-color-red-70);
666
+ --sk-danger-800: var(--sk-color-red-80);
667
+ --sk-danger-900: var(--sk-color-red-90);
668
+ --sk-danger-950: var(--sk-color-red-95);
574
669
  }
575
670
 
671
+ /**
672
+ * Greyscale Theme
673
+ *
674
+ * Reference theme with gray neutral colors and blue primary.
675
+ * This is the default, more subdued theme.
676
+ */
576
677
  /**
577
678
  * Colorful Theme
578
679
  *
@@ -622,6 +723,93 @@
622
723
  --sk-info-active: color-mix(in oklch, var(--sk-info-base), var(--sk-color-gray-10) var(--sk-mix-amount-strong));
623
724
  --sk-info-text: oklch(1 0 0);
624
725
  --sk-info-text-contrast: var(--sk-color-gray-95);
726
+ /* Short aliases for the semantic kinds defined above. Must live inside the theme block so
727
+ * that `var(--sk-<kind>-base)` resolves on this element's cascade. */
728
+ --sk-neutral: var(--sk-neutral-base);
729
+ --sk-primary: var(--sk-primary-base);
730
+ --sk-accent: var(--sk-accent-base);
731
+ --sk-info: var(--sk-info-base);
732
+ --sk-success: var(--sk-success-base);
733
+ --sk-warning: var(--sk-warning-base);
734
+ --sk-danger: var(--sk-danger-base);
735
+ /* Tailwind-style shade scale (`--sk-primary-50`..`--sk-primary-950`, and so on). */
736
+ --sk-neutral-50: var(--sk-color-blue-05);
737
+ --sk-neutral-100: var(--sk-color-blue-10);
738
+ --sk-neutral-200: var(--sk-color-blue-20);
739
+ --sk-neutral-300: var(--sk-color-blue-30);
740
+ --sk-neutral-400: var(--sk-color-blue-40);
741
+ --sk-neutral-500: var(--sk-color-blue-50);
742
+ --sk-neutral-600: var(--sk-color-blue-60);
743
+ --sk-neutral-700: var(--sk-color-blue-70);
744
+ --sk-neutral-800: var(--sk-color-blue-80);
745
+ --sk-neutral-900: var(--sk-color-blue-90);
746
+ --sk-neutral-950: var(--sk-color-blue-95);
747
+ --sk-primary-50: var(--sk-color-orange-05);
748
+ --sk-primary-100: var(--sk-color-orange-10);
749
+ --sk-primary-200: var(--sk-color-orange-20);
750
+ --sk-primary-300: var(--sk-color-orange-30);
751
+ --sk-primary-400: var(--sk-color-orange-40);
752
+ --sk-primary-500: var(--sk-color-orange-50);
753
+ --sk-primary-600: var(--sk-color-orange-60);
754
+ --sk-primary-700: var(--sk-color-orange-70);
755
+ --sk-primary-800: var(--sk-color-orange-80);
756
+ --sk-primary-900: var(--sk-color-orange-90);
757
+ --sk-primary-950: var(--sk-color-orange-95);
758
+ --sk-accent-50: var(--sk-color-blue-05);
759
+ --sk-accent-100: var(--sk-color-blue-10);
760
+ --sk-accent-200: var(--sk-color-blue-20);
761
+ --sk-accent-300: var(--sk-color-blue-30);
762
+ --sk-accent-400: var(--sk-color-blue-40);
763
+ --sk-accent-500: var(--sk-color-blue-50);
764
+ --sk-accent-600: var(--sk-color-blue-60);
765
+ --sk-accent-700: var(--sk-color-blue-70);
766
+ --sk-accent-800: var(--sk-color-blue-80);
767
+ --sk-accent-900: var(--sk-color-blue-90);
768
+ --sk-accent-950: var(--sk-color-blue-95);
769
+ --sk-info-50: var(--sk-color-cyan-05);
770
+ --sk-info-100: var(--sk-color-cyan-10);
771
+ --sk-info-200: var(--sk-color-cyan-20);
772
+ --sk-info-300: var(--sk-color-cyan-30);
773
+ --sk-info-400: var(--sk-color-cyan-40);
774
+ --sk-info-500: var(--sk-color-cyan-50);
775
+ --sk-info-600: var(--sk-color-cyan-60);
776
+ --sk-info-700: var(--sk-color-cyan-70);
777
+ --sk-info-800: var(--sk-color-cyan-80);
778
+ --sk-info-900: var(--sk-color-cyan-90);
779
+ --sk-info-950: var(--sk-color-cyan-95);
780
+ --sk-success-50: var(--sk-color-green-05);
781
+ --sk-success-100: var(--sk-color-green-10);
782
+ --sk-success-200: var(--sk-color-green-20);
783
+ --sk-success-300: var(--sk-color-green-30);
784
+ --sk-success-400: var(--sk-color-green-40);
785
+ --sk-success-500: var(--sk-color-green-50);
786
+ --sk-success-600: var(--sk-color-green-60);
787
+ --sk-success-700: var(--sk-color-green-70);
788
+ --sk-success-800: var(--sk-color-green-80);
789
+ --sk-success-900: var(--sk-color-green-90);
790
+ --sk-success-950: var(--sk-color-green-95);
791
+ --sk-warning-50: var(--sk-color-yellow-05);
792
+ --sk-warning-100: var(--sk-color-yellow-10);
793
+ --sk-warning-200: var(--sk-color-yellow-20);
794
+ --sk-warning-300: var(--sk-color-yellow-30);
795
+ --sk-warning-400: var(--sk-color-yellow-40);
796
+ --sk-warning-500: var(--sk-color-yellow-50);
797
+ --sk-warning-600: var(--sk-color-yellow-60);
798
+ --sk-warning-700: var(--sk-color-yellow-70);
799
+ --sk-warning-800: var(--sk-color-yellow-80);
800
+ --sk-warning-900: var(--sk-color-yellow-90);
801
+ --sk-warning-950: var(--sk-color-yellow-95);
802
+ --sk-danger-50: var(--sk-color-red-05);
803
+ --sk-danger-100: var(--sk-color-red-10);
804
+ --sk-danger-200: var(--sk-color-red-20);
805
+ --sk-danger-300: var(--sk-color-red-30);
806
+ --sk-danger-400: var(--sk-color-red-40);
807
+ --sk-danger-500: var(--sk-color-red-50);
808
+ --sk-danger-600: var(--sk-color-red-60);
809
+ --sk-danger-700: var(--sk-color-red-70);
810
+ --sk-danger-800: var(--sk-color-red-80);
811
+ --sk-danger-900: var(--sk-color-red-90);
812
+ --sk-danger-950: var(--sk-color-red-95);
625
813
  }
626
814
 
627
815
  /**
@@ -714,6 +902,140 @@
714
902
  --sk-red-active: color-mix(in oklch, var(--sk-red-base), var(--sk-color-gray-10) var(--sk-mix-amount-strong));
715
903
  --sk-red-text: oklch(1 0 0);
716
904
  --sk-red-text-contrast: var(--sk-color-gray-95);
905
+ /* ===================================================================
906
+ * Short Aliases
907
+ *
908
+ * Shorthand names so consumers can write `var(--sk-neon-pink)` directly
909
+ * instead of `var(--sk-neon-pink-base)`. Semantic kinds (primary, accent,
910
+ * etc.) are aliased inside each theme block so `var(--sk-<kind>-base)`
911
+ * resolves against the theme's actual values.
912
+ * =================================================================== */
913
+ --sk-boulder: var(--sk-boulder-base);
914
+ --sk-neon-blue: var(--sk-neon-blue-base);
915
+ --sk-light-blue: var(--sk-light-blue-base);
916
+ --sk-neon-orange: var(--sk-neon-orange-base);
917
+ --sk-neon-purple: var(--sk-neon-purple-base);
918
+ --sk-neon-green: var(--sk-neon-green-base);
919
+ --sk-neon-mint: var(--sk-neon-mint-base);
920
+ --sk-neon-pink: var(--sk-neon-pink-base);
921
+ --sk-yellow: var(--sk-yellow-base);
922
+ --sk-red: var(--sk-red-base);
923
+ /* ===================================================================
924
+ * Tailwind-style shade scale for color kinds
925
+ *
926
+ * `--sk-neon-pink-500` = palette 50 (= base); `--sk-neon-pink-200` is two steps lighter,
927
+ * `--sk-neon-pink-800` is much darker, etc. Full scale: 50, 100..900, 950.
928
+ * =================================================================== */
929
+ --sk-boulder-50: var(--sk-color-gray-05);
930
+ --sk-boulder-100: var(--sk-color-gray-10);
931
+ --sk-boulder-200: var(--sk-color-gray-20);
932
+ --sk-boulder-300: var(--sk-color-gray-30);
933
+ --sk-boulder-400: var(--sk-color-gray-40);
934
+ --sk-boulder-500: var(--sk-color-gray-50);
935
+ --sk-boulder-600: var(--sk-color-gray-60);
936
+ --sk-boulder-700: var(--sk-color-gray-70);
937
+ --sk-boulder-800: var(--sk-color-gray-80);
938
+ --sk-boulder-900: var(--sk-color-gray-90);
939
+ --sk-boulder-950: var(--sk-color-gray-95);
940
+ --sk-neon-blue-50: var(--sk-color-blue-05);
941
+ --sk-neon-blue-100: var(--sk-color-blue-10);
942
+ --sk-neon-blue-200: var(--sk-color-blue-20);
943
+ --sk-neon-blue-300: var(--sk-color-blue-30);
944
+ --sk-neon-blue-400: var(--sk-color-blue-40);
945
+ --sk-neon-blue-500: var(--sk-color-blue-50);
946
+ --sk-neon-blue-600: var(--sk-color-blue-60);
947
+ --sk-neon-blue-700: var(--sk-color-blue-70);
948
+ --sk-neon-blue-800: var(--sk-color-blue-80);
949
+ --sk-neon-blue-900: var(--sk-color-blue-90);
950
+ --sk-neon-blue-950: var(--sk-color-blue-95);
951
+ --sk-light-blue-50: var(--sk-color-cyan-05);
952
+ --sk-light-blue-100: var(--sk-color-cyan-10);
953
+ --sk-light-blue-200: var(--sk-color-cyan-20);
954
+ --sk-light-blue-300: var(--sk-color-cyan-30);
955
+ --sk-light-blue-400: var(--sk-color-cyan-40);
956
+ --sk-light-blue-500: var(--sk-color-cyan-50);
957
+ --sk-light-blue-600: var(--sk-color-cyan-60);
958
+ --sk-light-blue-700: var(--sk-color-cyan-70);
959
+ --sk-light-blue-800: var(--sk-color-cyan-80);
960
+ --sk-light-blue-900: var(--sk-color-cyan-90);
961
+ --sk-light-blue-950: var(--sk-color-cyan-95);
962
+ --sk-neon-orange-50: var(--sk-color-orange-05);
963
+ --sk-neon-orange-100: var(--sk-color-orange-10);
964
+ --sk-neon-orange-200: var(--sk-color-orange-20);
965
+ --sk-neon-orange-300: var(--sk-color-orange-30);
966
+ --sk-neon-orange-400: var(--sk-color-orange-40);
967
+ --sk-neon-orange-500: var(--sk-color-orange-50);
968
+ --sk-neon-orange-600: var(--sk-color-orange-60);
969
+ --sk-neon-orange-700: var(--sk-color-orange-70);
970
+ --sk-neon-orange-800: var(--sk-color-orange-80);
971
+ --sk-neon-orange-900: var(--sk-color-orange-90);
972
+ --sk-neon-orange-950: var(--sk-color-orange-95);
973
+ --sk-neon-purple-50: var(--sk-color-purple-05);
974
+ --sk-neon-purple-100: var(--sk-color-purple-10);
975
+ --sk-neon-purple-200: var(--sk-color-purple-20);
976
+ --sk-neon-purple-300: var(--sk-color-purple-30);
977
+ --sk-neon-purple-400: var(--sk-color-purple-40);
978
+ --sk-neon-purple-500: var(--sk-color-purple-50);
979
+ --sk-neon-purple-600: var(--sk-color-purple-60);
980
+ --sk-neon-purple-700: var(--sk-color-purple-70);
981
+ --sk-neon-purple-800: var(--sk-color-purple-80);
982
+ --sk-neon-purple-900: var(--sk-color-purple-90);
983
+ --sk-neon-purple-950: var(--sk-color-purple-95);
984
+ --sk-neon-green-50: var(--sk-color-green-05);
985
+ --sk-neon-green-100: var(--sk-color-green-10);
986
+ --sk-neon-green-200: var(--sk-color-green-20);
987
+ --sk-neon-green-300: var(--sk-color-green-30);
988
+ --sk-neon-green-400: var(--sk-color-green-40);
989
+ --sk-neon-green-500: var(--sk-color-green-50);
990
+ --sk-neon-green-600: var(--sk-color-green-60);
991
+ --sk-neon-green-700: var(--sk-color-green-70);
992
+ --sk-neon-green-800: var(--sk-color-green-80);
993
+ --sk-neon-green-900: var(--sk-color-green-90);
994
+ --sk-neon-green-950: var(--sk-color-green-95);
995
+ --sk-neon-mint-50: var(--sk-color-mint-05);
996
+ --sk-neon-mint-100: var(--sk-color-mint-10);
997
+ --sk-neon-mint-200: var(--sk-color-mint-20);
998
+ --sk-neon-mint-300: var(--sk-color-mint-30);
999
+ --sk-neon-mint-400: var(--sk-color-mint-40);
1000
+ --sk-neon-mint-500: var(--sk-color-mint-50);
1001
+ --sk-neon-mint-600: var(--sk-color-mint-60);
1002
+ --sk-neon-mint-700: var(--sk-color-mint-70);
1003
+ --sk-neon-mint-800: var(--sk-color-mint-80);
1004
+ --sk-neon-mint-900: var(--sk-color-mint-90);
1005
+ --sk-neon-mint-950: var(--sk-color-mint-95);
1006
+ --sk-neon-pink-50: var(--sk-color-pink-05);
1007
+ --sk-neon-pink-100: var(--sk-color-pink-10);
1008
+ --sk-neon-pink-200: var(--sk-color-pink-20);
1009
+ --sk-neon-pink-300: var(--sk-color-pink-30);
1010
+ --sk-neon-pink-400: var(--sk-color-pink-40);
1011
+ --sk-neon-pink-500: var(--sk-color-pink-50);
1012
+ --sk-neon-pink-600: var(--sk-color-pink-60);
1013
+ --sk-neon-pink-700: var(--sk-color-pink-70);
1014
+ --sk-neon-pink-800: var(--sk-color-pink-80);
1015
+ --sk-neon-pink-900: var(--sk-color-pink-90);
1016
+ --sk-neon-pink-950: var(--sk-color-pink-95);
1017
+ --sk-yellow-50: var(--sk-color-yellow-05);
1018
+ --sk-yellow-100: var(--sk-color-yellow-10);
1019
+ --sk-yellow-200: var(--sk-color-yellow-20);
1020
+ --sk-yellow-300: var(--sk-color-yellow-30);
1021
+ --sk-yellow-400: var(--sk-color-yellow-40);
1022
+ --sk-yellow-500: var(--sk-color-yellow-50);
1023
+ --sk-yellow-600: var(--sk-color-yellow-60);
1024
+ --sk-yellow-700: var(--sk-color-yellow-70);
1025
+ --sk-yellow-800: var(--sk-color-yellow-80);
1026
+ --sk-yellow-900: var(--sk-color-yellow-90);
1027
+ --sk-yellow-950: var(--sk-color-yellow-95);
1028
+ --sk-red-50: var(--sk-color-red-05);
1029
+ --sk-red-100: var(--sk-color-red-10);
1030
+ --sk-red-200: var(--sk-color-red-20);
1031
+ --sk-red-300: var(--sk-color-red-30);
1032
+ --sk-red-400: var(--sk-color-red-40);
1033
+ --sk-red-500: var(--sk-color-red-50);
1034
+ --sk-red-600: var(--sk-color-red-60);
1035
+ --sk-red-700: var(--sk-color-red-70);
1036
+ --sk-red-800: var(--sk-color-red-80);
1037
+ --sk-red-900: var(--sk-color-red-90);
1038
+ --sk-red-950: var(--sk-color-red-95);
717
1039
  }
718
1040
 
719
1041
  /**
@@ -0,0 +1,36 @@
1
+ export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
+ export type SemanticKind = 'neutral' | 'primary' | 'accent' | 'danger' | 'info' | 'success' | 'warning';
3
+ export type ColorKind = 'boulder' | 'neon-blue' | 'light-blue' | 'neon-orange' | 'neon-purple' | 'neon-green' | 'neon-mint' | 'neon-pink' | 'yellow' | 'red';
4
+ export type ComponentKind = SemanticKind | ColorKind;
5
+ export type ComponentVariant = 'solid' | 'outline' | 'subtle' | 'ghost' | 'link';
6
+ /**
7
+ * Custom color props interface for components.
8
+ * Allows overriding component colors with either a SleekSpace kind name or any CSS color value.
9
+ */
10
+ export interface ComponentCustomColors {
11
+ /**
12
+ * Base color for the component. Accepts either:
13
+ * - A SleekSpace kind name: `"neutral"`, `"primary"`, `"accent"`, `"info"`, `"success"`,
14
+ * `"warning"`, `"danger"`, `"neon-blue"`, `"light-blue"`, `"neon-orange"`,
15
+ * `"neon-purple"`, `"neon-green"`, `"neon-mint"`, `"neon-pink"`, `"yellow"`, `"red"`,
16
+ * `"boulder"` — resolves to the matching `--sk-<kind>-base` token.
17
+ * - Any CSS color value: hex (`"#8B5CF6"`), oklch (`"oklch(0.7 0.25 300)"`),
18
+ * rgb/hsl (`"rgb(139, 92, 246)"`), a CSS variable (`"var(--my-color)"`), or a
19
+ * named color (`"rebeccapurple"`).
20
+ *
21
+ * When provided, this overrides the color from the `kind` prop.
22
+ */
23
+ baseColor?: string;
24
+ /**
25
+ * Text/foreground color for the component. Accepts the same kind names and CSS color values
26
+ * as `baseColor`. If not provided, falls back to the theme's neutral text color for legibility
27
+ * on arbitrary custom backgrounds.
28
+ */
29
+ textColor?: string;
30
+ /**
31
+ * Border color for the component. Accepts the same kind names and CSS color values as
32
+ * `baseColor`. Only honoured by components that render a visible border (panels, cards,
33
+ * inputs, etc.); ignored elsewhere.
34
+ */
35
+ borderColor?: string;
36
+ }
@@ -0,0 +1,6 @@
1
+ import { VNode } from 'vue';
2
+ type SlotLike = (...args: any[]) => unknown;
3
+ export declare function hasRenderableContent(vnodes: VNode[]): boolean;
4
+ export declare function hasSlotContent(slot: SlotLike | undefined, props?: Record<string, unknown>): boolean;
5
+ export declare function filterRenderableVNodes(vnodes: VNode[]): VNode[];
6
+ export {};
@@ -48,13 +48,19 @@ This registers all SleekSpace CSS custom properties with Tailwind's `@theme` sys
48
48
 
49
49
  ## TypeScript Support
50
50
 
51
- For VS Code with Volar, add the global types to your `tsconfig.json`:
51
+ For VS Code with Volar, wire up the global component type augmentation. The recommended approach is a one-line triple-slash reference in one of your own `.d.ts` files (for example `src/shims.d.ts` or `env.d.ts`):
52
+
53
+ ```typescript
54
+ /// <reference types="@skewedaspect/sleekspace-ui/global" />
55
+ ```
56
+
57
+ Alternatively, include the declaration file directly in your `tsconfig.json`:
52
58
 
53
59
  ```json
54
60
  {
55
61
  "include": [
56
62
  "src/**/*",
57
- "node_modules/@skewedaspect/sleekspace-ui/src/global.d.ts"
63
+ "node_modules/@skewedaspect/sleekspace-ui/dist/global.d.ts"
58
64
  ]
59
65
  }
60
66
  ```
@@ -0,0 +1,8 @@
1
+ guide: pure-css
2
+ title: Sleekspace Without Vue
3
+ sections:
4
+ - index
5
+ - class-api
6
+ - custom-elements
7
+ - static-helpers
8
+ - limitations