@skewedaspect/sleekspace-ui 0.8.0 → 0.9.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.
Files changed (341) hide show
  1. package/dist/{src/components → components}/Accordion/SkAccordion.vue.d.ts +1 -1
  2. package/dist/{src/components → components}/Accordion/types.d.ts +1 -1
  3. package/dist/{src/components → components}/Alert/SkAlert.vue.d.ts +1 -1
  4. package/dist/{src/components → components}/Alert/types.d.ts +1 -1
  5. package/dist/{src/components → components}/Avatar/SkAvatar.vue.d.ts +1 -1
  6. package/dist/{src/components → components}/Avatar/types.d.ts +1 -1
  7. package/dist/{src/components → components}/Breadcrumbs/SkBreadcrumbs.vue.d.ts +2 -2
  8. package/dist/{src/components → components}/Breadcrumbs/types.d.ts +1 -1
  9. package/dist/{src/components → components}/Button/SkButton.vue.d.ts +1 -1
  10. package/dist/{src/components → components}/Button/types.d.ts +1 -1
  11. package/dist/{src/components → components}/Card/SkCard.vue.d.ts +1 -1
  12. package/dist/components/Card/types.d.ts +2 -0
  13. package/dist/{src/components → components}/Checkbox/SkCheckbox.vue.d.ts +1 -1
  14. package/dist/{src/components → components}/Checkbox/types.d.ts +1 -1
  15. package/dist/{src/components → components}/Collapsible/SkCollapsible.vue.d.ts +1 -1
  16. package/dist/components/Collapsible/types.d.ts +2 -0
  17. package/dist/{src/components → components}/ColorPicker/SkColorPicker.vue.d.ts +1 -1
  18. package/dist/{src/components → components}/ColorPicker/types.d.ts +1 -1
  19. package/dist/{src/components → components}/ContextMenu/SkContextMenu.vue.d.ts +1 -1
  20. package/dist/components/ContextMenu/types.d.ts +2 -0
  21. package/dist/{src/components → components}/Divider/SkDivider.vue.d.ts +1 -1
  22. package/dist/{src/components → components}/Dropdown/SkDropdown.vue.d.ts +10 -2
  23. package/dist/{src/components → components}/Dropdown/types.d.ts +2 -1
  24. package/dist/{src/components → components}/Input/SkInput.vue.d.ts +1 -1
  25. package/dist/{src/components → components}/Input/types.d.ts +1 -1
  26. package/dist/{src/components → components}/Listbox/SkListbox.vue.d.ts +1 -1
  27. package/dist/{src/components → components}/Listbox/types.d.ts +1 -1
  28. package/dist/{src/components → components}/Modal/SkModal.vue.d.ts +1 -1
  29. package/dist/{src/components → components}/Modal/types.d.ts +1 -1
  30. package/dist/{src/components → components}/NavBar/SkNavBar.vue.d.ts +10 -2
  31. package/dist/{src/components → components}/NavBar/context.d.ts +2 -0
  32. package/dist/components/NavBar/types.d.ts +10 -0
  33. package/dist/{src/components → components}/NumberInput/SkNumberInput.vue.d.ts +1 -1
  34. package/dist/{src/components → components}/NumberInput/types.d.ts +1 -1
  35. package/dist/{src/components → components}/Page/SkPage.vue.d.ts +9 -0
  36. package/dist/{src/components → components}/Pagination/SkPagination.vue.d.ts +3 -3
  37. package/dist/{src/components → components}/Pagination/types.d.ts +1 -1
  38. package/dist/{src/components → components}/Panel/SkPanel.vue.d.ts +1 -1
  39. package/dist/{src/components → components}/Panel/types.d.ts +1 -1
  40. package/dist/{src/components → components}/Popover/SkPopover.vue.d.ts +1 -1
  41. package/dist/{src/components → components}/Progress/SkProgress.vue.d.ts +1 -1
  42. package/dist/{src/components → components}/Progress/types.d.ts +1 -1
  43. package/dist/{src/components → components}/Radio/SkRadio.vue.d.ts +1 -1
  44. package/dist/{src/components → components}/Radio/types.d.ts +1 -1
  45. package/dist/components/ScrollArea/SkScrollArea.vue.d.ts +141 -0
  46. package/dist/{src/components → components}/ScrollArea/types.d.ts +1 -1
  47. package/dist/{src/components → components}/Select/SkSelect.vue.d.ts +1 -1
  48. package/dist/{src/components → components}/Select/types.d.ts +1 -1
  49. package/dist/{src/components → components}/Sidebar/SkSidebar.vue.d.ts +1 -1
  50. package/dist/{src/components → components}/Sidebar/types.d.ts +1 -1
  51. package/dist/{src/components → components}/Slider/SkSlider.vue.d.ts +1 -1
  52. package/dist/{src/components → components}/Slider/types.d.ts +1 -1
  53. package/dist/{src/components → components}/Spinner/SkSpinner.vue.d.ts +1 -1
  54. package/dist/{src/components → components}/Spinner/types.d.ts +1 -1
  55. package/dist/{src/components → components}/Splitter/types.d.ts +1 -1
  56. package/dist/{src/components → components}/Switch/SkSwitch.vue.d.ts +1 -1
  57. package/dist/{src/components → components}/Switch/types.d.ts +1 -1
  58. package/dist/{src/components → components}/Table/SkTable.vue.d.ts +1 -1
  59. package/dist/{src/components → components}/Table/types.d.ts +1 -1
  60. package/dist/{src/components → components}/Tabs/SkTab.vue.d.ts +1 -1
  61. package/dist/{src/components → components}/Tabs/SkTabs.vue.d.ts +1 -1
  62. package/dist/{src/components → components}/Tag/SkTag.vue.d.ts +1 -1
  63. package/dist/{src/components → components}/TagsInput/SkTagsInput.vue.d.ts +1 -1
  64. package/dist/{src/components → components}/TagsInput/types.d.ts +1 -1
  65. package/dist/{src/components → components}/Textarea/SkTextarea.vue.d.ts +1 -1
  66. package/dist/{src/components → components}/Textarea/types.d.ts +1 -1
  67. package/dist/{src/components → components}/Toolbar/types.d.ts +1 -1
  68. package/dist/{src/components → components}/Tooltip/SkTooltip.vue.d.ts +1 -1
  69. package/dist/{src/components → components}/Tooltip/types.d.ts +1 -1
  70. package/dist/{src/components → components}/TreeView/types.d.ts +1 -1
  71. package/dist/composables/useCustomColors.d.ts +36 -0
  72. package/{src → dist}/global.d.ts +6 -2
  73. package/dist/sleekspace-ui.css +4253 -1251
  74. package/dist/sleekspace-ui.es.js +204 -109
  75. package/dist/sleekspace-ui.umd.js +204 -109
  76. package/dist/static/classes.d.ts +18 -0
  77. package/dist/static/components/alert.d.ts +12 -0
  78. package/dist/static/components/avatar.d.ts +9 -0
  79. package/dist/static/components/breadcrumbs.d.ts +6 -0
  80. package/dist/static/components/button.d.ts +13 -0
  81. package/dist/static/components/card.d.ts +5 -0
  82. package/dist/static/components/checkbox.d.ts +10 -0
  83. package/dist/static/components/colorPicker.d.ts +8 -0
  84. package/dist/static/components/divider.d.ts +8 -0
  85. package/dist/static/components/dropdown.d.ts +8 -0
  86. package/dist/static/components/field.d.ts +15 -0
  87. package/dist/static/components/group.d.ts +5 -0
  88. package/dist/static/components/input.d.ts +14 -0
  89. package/dist/static/components/navBar.d.ts +16 -0
  90. package/dist/static/components/numberInput.d.ts +15 -0
  91. package/dist/static/components/page.d.ts +9 -0
  92. package/dist/static/components/pagination.d.ts +5 -0
  93. package/dist/static/components/panel.d.ts +11 -0
  94. package/dist/static/components/progress.d.ts +9 -0
  95. package/dist/static/components/radio.d.ts +11 -0
  96. package/dist/static/components/select.d.ts +10 -0
  97. package/dist/static/components/sidebar.d.ts +9 -0
  98. package/dist/static/components/skeleton.d.ts +11 -0
  99. package/dist/static/components/slider.d.ts +12 -0
  100. package/dist/static/components/spinner.d.ts +12 -0
  101. package/dist/static/components/switchInput.d.ts +10 -0
  102. package/dist/static/components/table.d.ts +12 -0
  103. package/dist/static/components/tag.d.ts +8 -0
  104. package/dist/static/components/tagsInput.d.ts +7 -0
  105. package/dist/static/components/textarea.d.ts +12 -0
  106. package/dist/static/components/toolbar.d.ts +12 -0
  107. package/dist/static/components/tooltip.d.ts +7 -0
  108. package/dist/static/escape.d.ts +2 -0
  109. package/dist/static/index.cjs.js +1 -0
  110. package/dist/static/index.d.ts +68 -0
  111. package/dist/static/index.es.js +732 -0
  112. package/dist/static/render.d.ts +12 -0
  113. package/dist/static/specs.d.ts +2 -0
  114. package/dist/static/types.d.ts +43 -0
  115. package/dist/tokens.css +322 -0
  116. package/dist/types/index.d.ts +36 -0
  117. package/docs/guides/installation.md +8 -2
  118. package/docs/guides/pure-css/_meta.yaml +8 -0
  119. package/docs/guides/pure-css/class-api.md +1070 -0
  120. package/docs/guides/pure-css/custom-elements.md +574 -0
  121. package/docs/guides/pure-css/index.md +86 -0
  122. package/docs/guides/pure-css/limitations.md +152 -0
  123. package/docs/guides/pure-css/static-helpers.md +1203 -0
  124. package/llms-full.txt +3736 -261
  125. package/package.json +16 -5
  126. package/src/components/Card/SkCard.vue +1 -0
  127. package/src/components/ContextMenu/SkContextMenuRadioGroup.vue +4 -1
  128. package/src/components/Dropdown/SkDropdown.vue +20 -3
  129. package/src/components/Dropdown/SkDropdownRadioGroup.vue +4 -1
  130. package/src/components/Dropdown/types.ts +2 -1
  131. package/src/components/NavBar/SkNavBar.vue +14 -4
  132. package/src/components/NavBar/context.ts +4 -2
  133. package/src/components/NavBar/types.ts +6 -1
  134. package/src/components/Page/SkPage.vue +11 -0
  135. package/src/components/Panel/SkPanel.vue +2 -1
  136. package/src/components/ScrollArea/SkScrollArea.vue +78 -5
  137. package/src/components/TreeView/SkTreeView.vue +7 -2
  138. package/src/composables/useCustomColors.ts +86 -77
  139. package/src/composables/usePortalContext.test.ts +0 -2
  140. package/src/shims.d.ts +10 -0
  141. package/src/static/__tests__/parity.test.ts +717 -0
  142. package/src/static/__tests__/parityHarness.test.ts +98 -0
  143. package/src/static/__tests__/parityHarness.ts +260 -0
  144. package/src/static/classes.test.ts +82 -0
  145. package/src/static/classes.ts +111 -0
  146. package/src/static/components/__tests__/helpers.test.ts +837 -0
  147. package/src/static/components/alert.ts +117 -0
  148. package/src/static/components/avatar.ts +86 -0
  149. package/src/static/components/breadcrumbs.ts +28 -0
  150. package/src/static/components/button.ts +75 -0
  151. package/src/static/components/card.ts +27 -0
  152. package/src/static/components/checkbox.ts +48 -0
  153. package/src/static/components/colorPicker.ts +45 -0
  154. package/src/static/components/divider.ts +39 -0
  155. package/src/static/components/dropdown.ts +36 -0
  156. package/src/static/components/field.ts +86 -0
  157. package/src/static/components/group.ts +27 -0
  158. package/src/static/components/input.ts +55 -0
  159. package/src/static/components/navBar.ts +94 -0
  160. package/src/static/components/numberInput.ts +64 -0
  161. package/src/static/components/page.ts +31 -0
  162. package/src/static/components/pagination.ts +27 -0
  163. package/src/static/components/panel.ts +33 -0
  164. package/src/static/components/progress.ts +31 -0
  165. package/src/static/components/radio.ts +53 -0
  166. package/src/static/components/select.ts +51 -0
  167. package/src/static/components/sidebar.ts +85 -0
  168. package/src/static/components/skeleton.ts +66 -0
  169. package/src/static/components/slider.ts +50 -0
  170. package/src/static/components/spinner.ts +94 -0
  171. package/src/static/components/switchInput.ts +49 -0
  172. package/src/static/components/table.ts +88 -0
  173. package/src/static/components/tag.ts +76 -0
  174. package/src/static/components/tagsInput.ts +35 -0
  175. package/src/static/components/textarea.ts +53 -0
  176. package/src/static/components/toolbar.ts +74 -0
  177. package/src/static/components/tooltip.ts +29 -0
  178. package/src/static/escape.test.ts +53 -0
  179. package/src/static/escape.ts +28 -0
  180. package/src/static/generated/defaults.ts +378 -0
  181. package/src/static/generated/propTypes.ts +425 -0
  182. package/src/static/index.ts +116 -0
  183. package/src/static/render.test.ts +83 -0
  184. package/src/static/render.ts +76 -0
  185. package/src/static/specs.test.ts +58 -0
  186. package/src/static/specs.ts +230 -0
  187. package/src/static/types.ts +176 -0
  188. package/src/styles/__tests__/testHelpers.ts +97 -0
  189. package/src/styles/base/_custom-elements.scss +51 -0
  190. package/src/styles/base/_index.scss +4 -0
  191. package/src/styles/components/__tests__/componentSelectors.test.ts +2575 -0
  192. package/src/styles/components/_alert.scss +82 -39
  193. package/src/styles/components/_avatar.scss +102 -47
  194. package/src/styles/components/_breadcrumbs.scss +39 -37
  195. package/src/styles/components/_button.scss +58 -5
  196. package/src/styles/components/_card.scss +64 -2
  197. package/src/styles/components/_checkbox.scss +35 -5
  198. package/src/styles/components/_color-picker.scss +48 -13
  199. package/src/styles/components/_divider.scss +86 -52
  200. package/src/styles/components/_dropdown.scss +214 -0
  201. package/src/styles/components/_field.scss +76 -23
  202. package/src/styles/components/_group.scss +190 -79
  203. package/src/styles/components/_index.scss +1 -0
  204. package/src/styles/components/_input.scss +81 -5
  205. package/src/styles/components/_menu.scss +1 -1
  206. package/src/styles/components/_navbar.scss +76 -45
  207. package/src/styles/components/_number-input.scss +88 -83
  208. package/src/styles/components/_page.scss +82 -23
  209. package/src/styles/components/_pagination.scss +240 -212
  210. package/src/styles/components/_panel.scss +268 -122
  211. package/src/styles/components/_progress.scss +120 -70
  212. package/src/styles/components/_radio.scss +35 -5
  213. package/src/styles/components/_scroll-area.scss +50 -22
  214. package/src/styles/components/_select.scss +40 -9
  215. package/src/styles/components/_sidebar.scss +59 -34
  216. package/src/styles/components/_skeleton.scss +111 -65
  217. package/src/styles/components/_slider.scss +34 -10
  218. package/src/styles/components/_spinner.scss +107 -56
  219. package/src/styles/components/_switch.scss +36 -5
  220. package/src/styles/components/_table.scss +150 -166
  221. package/src/styles/components/_tag.scss +244 -154
  222. package/src/styles/components/_tags-input.scss +46 -12
  223. package/src/styles/components/_textarea.scss +36 -5
  224. package/src/styles/components/_toolbar.scss +85 -31
  225. package/src/styles/components/_tooltip.scss +172 -3
  226. package/src/styles/mixins/_cut-border.scss +18 -4
  227. package/src/styles/mixins/_dual-selector.scss +192 -0
  228. package/src/styles/mixins/_index.scss +1 -0
  229. package/src/styles/mixins/dualSelector.test.ts +151 -0
  230. package/src/styles/themes/_colorful.scss +25 -0
  231. package/src/styles/themes/_greyscale.scss +25 -0
  232. package/src/styles/themes/_shade-scale.scss +39 -0
  233. package/src/styles/tokens/_semantic-color-kinds.scss +66 -0
  234. package/src/{types.ts → types/index.ts} +19 -11
  235. package/web-types.json +970 -137
  236. package/dist/src/components/Card/types.d.ts +0 -2
  237. package/dist/src/components/Collapsible/types.d.ts +0 -2
  238. package/dist/src/components/ContextMenu/types.d.ts +0 -2
  239. package/dist/src/components/NavBar/types.d.ts +0 -6
  240. package/dist/src/components/ScrollArea/SkScrollArea.vue.d.ts +0 -40
  241. package/dist/src/composables/useCustomColors.d.ts +0 -74
  242. package/dist/src/composables/useCustomColors.test.d.ts +0 -1
  243. package/dist/src/composables/useFocusTrap.test.d.ts +0 -1
  244. package/dist/src/composables/usePortalContext.test.d.ts +0 -1
  245. package/dist/src/styles/mixins/fluidSize.test.d.ts +0 -1
  246. package/dist/src/types.d.ts +0 -29
  247. /package/dist/{src/components → components}/Accordion/SkAccordionItem.vue.d.ts +0 -0
  248. /package/dist/{src/components → components}/Accordion/index.d.ts +0 -0
  249. /package/dist/{src/components → components}/Avatar/index.d.ts +0 -0
  250. /package/dist/{src/components → components}/Breadcrumbs/SkBreadcrumbItem.vue.d.ts +0 -0
  251. /package/dist/{src/components → components}/Breadcrumbs/SkBreadcrumbSeparator.vue.d.ts +0 -0
  252. /package/dist/{src/components → components}/Breadcrumbs/index.d.ts +0 -0
  253. /package/dist/{src/components → components}/Checkbox/index.d.ts +0 -0
  254. /package/dist/{src/components → components}/Collapsible/index.d.ts +0 -0
  255. /package/dist/{src/components → components}/ColorPicker/index.d.ts +0 -0
  256. /package/dist/{src/components → components}/ContextMenu/SkContextMenuCheckboxItem.vue.d.ts +0 -0
  257. /package/dist/{src/components → components}/ContextMenu/SkContextMenuItem.vue.d.ts +0 -0
  258. /package/dist/{src/components → components}/ContextMenu/SkContextMenuLabel.vue.d.ts +0 -0
  259. /package/dist/{src/components → components}/ContextMenu/SkContextMenuRadioGroup.vue.d.ts +0 -0
  260. /package/dist/{src/components → components}/ContextMenu/SkContextMenuRadioItem.vue.d.ts +0 -0
  261. /package/dist/{src/components → components}/ContextMenu/SkContextMenuSeparator.vue.d.ts +0 -0
  262. /package/dist/{src/components → components}/ContextMenu/SkContextMenuSubmenu.vue.d.ts +0 -0
  263. /package/dist/{src/components → components}/ContextMenu/index.d.ts +0 -0
  264. /package/dist/{src/components → components}/Divider/types.d.ts +0 -0
  265. /package/dist/{src/components → components}/Dropdown/SkDropdownCheckboxItem.vue.d.ts +0 -0
  266. /package/dist/{src/components → components}/Dropdown/SkDropdownMenuItem.vue.d.ts +0 -0
  267. /package/dist/{src/components → components}/Dropdown/SkDropdownMenuLabel.vue.d.ts +0 -0
  268. /package/dist/{src/components → components}/Dropdown/SkDropdownMenuSeparator.vue.d.ts +0 -0
  269. /package/dist/{src/components → components}/Dropdown/SkDropdownRadioGroup.vue.d.ts +0 -0
  270. /package/dist/{src/components → components}/Dropdown/SkDropdownRadioItem.vue.d.ts +0 -0
  271. /package/dist/{src/components → components}/Dropdown/SkDropdownSubmenu.vue.d.ts +0 -0
  272. /package/dist/{src/components → components}/Dropdown/index.d.ts +0 -0
  273. /package/dist/{src/components → components}/Field/SkField.vue.d.ts +0 -0
  274. /package/dist/{src/components → components}/Field/index.d.ts +0 -0
  275. /package/dist/{src/components → components}/Field/types.d.ts +0 -0
  276. /package/dist/{src/components → components}/Group/SkGroup.vue.d.ts +0 -0
  277. /package/dist/{src/components → components}/Group/types.d.ts +0 -0
  278. /package/dist/{src/components → components}/Input/index.d.ts +0 -0
  279. /package/dist/{src/components → components}/Listbox/SkListboxItem.vue.d.ts +0 -0
  280. /package/dist/{src/components → components}/Listbox/SkListboxSeparator.vue.d.ts +0 -0
  281. /package/dist/{src/components → components}/Listbox/index.d.ts +0 -0
  282. /package/dist/{src/components → components}/Modal/index.d.ts +0 -0
  283. /package/dist/{src/components → components}/NavBar/index.d.ts +0 -0
  284. /package/dist/{src/components → components}/NumberInput/index.d.ts +0 -0
  285. /package/dist/{src/components → components}/Page/SkPageSidebarToggle.vue.d.ts +0 -0
  286. /package/dist/{src/components → components}/Page/index.d.ts +0 -0
  287. /package/dist/{src/components → components}/Page/types.d.ts +0 -0
  288. /package/dist/{src/components → components}/Pagination/SkPaginationItem.vue.d.ts +0 -0
  289. /package/dist/{src/components → components}/Pagination/index.d.ts +0 -0
  290. /package/dist/{src/components → components}/Popover/index.d.ts +0 -0
  291. /package/dist/{src/components → components}/Popover/types.d.ts +0 -0
  292. /package/dist/{src/components → components}/Progress/index.d.ts +0 -0
  293. /package/dist/{src/components → components}/Radio/SkRadioGroup.vue.d.ts +0 -0
  294. /package/dist/{src/components → components}/Radio/index.d.ts +0 -0
  295. /package/dist/{src/components → components}/ScrollArea/index.d.ts +0 -0
  296. /package/dist/{src/components → components}/Select/SkSelectItem.vue.d.ts +0 -0
  297. /package/dist/{src/components → components}/Select/SkSelectSeparator.vue.d.ts +0 -0
  298. /package/dist/{src/components → components}/Select/index.d.ts +0 -0
  299. /package/dist/{src/components → components}/Sidebar/SkSidebarItem.vue.d.ts +0 -0
  300. /package/dist/{src/components → components}/Sidebar/SkSidebarSection.vue.d.ts +0 -0
  301. /package/dist/{src/components → components}/Skeleton/SkSkeleton.vue.d.ts +0 -0
  302. /package/dist/{src/components → components}/Skeleton/index.d.ts +0 -0
  303. /package/dist/{src/components → components}/Skeleton/types.d.ts +0 -0
  304. /package/dist/{src/components → components}/Slider/index.d.ts +0 -0
  305. /package/dist/{src/components → components}/Spinner/index.d.ts +0 -0
  306. /package/dist/{src/components → components}/Splitter/SkSplitter.vue.d.ts +0 -0
  307. /package/dist/{src/components → components}/Splitter/SkSplitterHandle.vue.d.ts +0 -0
  308. /package/dist/{src/components → components}/Splitter/SkSplitterPanel.vue.d.ts +0 -0
  309. /package/dist/{src/components → components}/Splitter/index.d.ts +0 -0
  310. /package/dist/{src/components → components}/Switch/index.d.ts +0 -0
  311. /package/dist/{src/components → components}/Table/index.d.ts +0 -0
  312. /package/dist/{src/components → components}/Tabs/SkTabList.vue.d.ts +0 -0
  313. /package/dist/{src/components → components}/Tabs/SkTabPanel.vue.d.ts +0 -0
  314. /package/dist/{src/components → components}/Tabs/SkTabPanels.vue.d.ts +0 -0
  315. /package/dist/{src/components → components}/Tabs/types.d.ts +0 -0
  316. /package/dist/{src/components → components}/Tag/types.d.ts +0 -0
  317. /package/dist/{src/components → components}/TagsInput/index.d.ts +0 -0
  318. /package/dist/{src/components → components}/Textarea/index.d.ts +0 -0
  319. /package/dist/{src/components → components}/Theme/SkTheme.vue.d.ts +0 -0
  320. /package/dist/{src/components → components}/Theme/types.d.ts +0 -0
  321. /package/dist/{src/components → components}/Theme/useTheme.d.ts +0 -0
  322. /package/dist/{src/components → components}/Toast/SkToast.vue.d.ts +0 -0
  323. /package/dist/{src/components → components}/Toast/SkToastProvider.vue.d.ts +0 -0
  324. /package/dist/{src/components → components}/Toast/index.d.ts +0 -0
  325. /package/dist/{src/components → components}/Toast/types.d.ts +0 -0
  326. /package/dist/{src/components → components}/Toast/useToast.d.ts +0 -0
  327. /package/dist/{src/components → components}/Toolbar/SkToolbar.vue.d.ts +0 -0
  328. /package/dist/{src/components → components}/Toolbar/SkToolbarButton.vue.d.ts +0 -0
  329. /package/dist/{src/components → components}/Toolbar/SkToolbarSeparator.vue.d.ts +0 -0
  330. /package/dist/{src/components → components}/Toolbar/SkToolbarToggleGroup.vue.d.ts +0 -0
  331. /package/dist/{src/components → components}/Toolbar/SkToolbarToggleItem.vue.d.ts +0 -0
  332. /package/dist/{src/components → components}/Toolbar/index.d.ts +0 -0
  333. /package/dist/{src/components → components}/Tooltip/SkTooltipProvider.vue.d.ts +0 -0
  334. /package/dist/{src/components → components}/Tooltip/index.d.ts +0 -0
  335. /package/dist/{src/components → components}/TreeView/SkTreeItem.vue.d.ts +0 -0
  336. /package/dist/{src/components → components}/TreeView/SkTreeView.vue.d.ts +0 -0
  337. /package/dist/{src/components → components}/TreeView/index.d.ts +0 -0
  338. /package/dist/{src/composables → composables}/useFocusTrap.d.ts +0 -0
  339. /package/dist/{src/composables → composables}/usePageDrawer.d.ts +0 -0
  340. /package/dist/{src/composables → composables}/usePortalContext.d.ts +0 -0
  341. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,151 @@
1
+ //----------------------------------------------------------------------------------------------------------------------
2
+ // Dual-Selector Mixin Tests
3
+ //
4
+ // Compiles small SCSS snippets against the `dual-selector` mixins and asserts the emitted
5
+ // selectors contain both class and attribute forms.
6
+ //----------------------------------------------------------------------------------------------------------------------
7
+
8
+ import { describe, expect, it } from 'vitest';
9
+ import { compileString } from 'sass';
10
+ import { dirname } from 'node:path';
11
+ import { fileURLToPath, pathToFileURL } from 'node:url';
12
+
13
+ // Utils
14
+ import { attrValueRe, dualSelectorRe } from '../__tests__/testHelpers';
15
+
16
+ //----------------------------------------------------------------------------------------------------------------------
17
+
18
+ const here = dirname(fileURLToPath(import.meta.url));
19
+
20
+ function emit(snippet : string) : string
21
+ {
22
+ const source = `@use 'dual-selector' as *;\n\n${ snippet }`;
23
+ const { css } = compileString(source, {
24
+ loadPaths: [ here ],
25
+ url: pathToFileURL(`${ here }/dualSelector.test.scss`),
26
+ });
27
+ return css;
28
+ }
29
+
30
+ //----------------------------------------------------------------------------------------------------------------------
31
+
32
+ // Sass strips quotes from attribute-selector values that don't need them for CSS validity,
33
+ // so `[kind="primary"]` is emitted as `[kind=primary]`. `attrValueRe` and `dualSelectorRe`
34
+ // (imported from testHelpers) build regex fragments that accept both forms.
35
+
36
+ describe('dual-selector mixins (SCSS)', () =>
37
+ {
38
+ describe('kind-variant', () =>
39
+ {
40
+ it('emits both .sk-foo.sk-primary and sk-foo[kind=primary]', () =>
41
+ {
42
+ const css = emit(`@include kind-variant('foo', 'primary') { color: red; }`);
43
+ expect(css).toMatch(new RegExp(dualSelectorRe('foo', 'primary', 'kind', 'primary')));
44
+ expect(css).toMatch(/color:\s*red/);
45
+ });
46
+ });
47
+
48
+ describe('size-variant', () =>
49
+ {
50
+ it('emits .sk-foo.sk-lg, .sk-foo.sk-size-lg, and sk-foo[size=lg]', () =>
51
+ {
52
+ const css = emit(`@include size-variant('foo', 'lg') { padding: 2rem; }`);
53
+ expect(css).toMatch(/\.sk-foo\.sk-lg,/);
54
+ expect(css).toMatch(/\.sk-foo\.sk-size-lg,/);
55
+ expect(css).toMatch(new RegExp(`sk-foo\\[size=${ attrValueRe('lg') }\\]`));
56
+ });
57
+ });
58
+
59
+ describe('variant-variant', () =>
60
+ {
61
+ it('emits both .sk-foo.sk-solid and sk-foo[variant=solid]', () =>
62
+ {
63
+ const css = emit(`@include variant-variant('foo', 'solid') { background: blue; }`);
64
+ expect(css).toMatch(new RegExp(dualSelectorRe('foo', 'solid', 'variant', 'solid')));
65
+ });
66
+ });
67
+
68
+ describe('bool-modifier', () =>
69
+ {
70
+ it('emits both .sk-foo.sk-no-border and sk-foo[no-border]', () =>
71
+ {
72
+ const css = emit(`@include bool-modifier('foo', 'no-border') { border: 0; }`);
73
+ expect(css).toMatch(/\.sk-foo\.sk-no-border,\s*sk-foo\[no-border\]/);
74
+ });
75
+ });
76
+
77
+ describe('list-modifier', () =>
78
+ {
79
+ it('emits class + ~= attribute selector for a single list value (explicit $attr)', () =>
80
+ {
81
+ const css = emit(
82
+ `@include list-modifier('foo', 'cut', 'top-left', 'corners') { --cut-tl: 8px; }`
83
+ );
84
+ expect(css).toMatch(new RegExp(
85
+ dualSelectorRe('foo', 'cut-top-left', 'corners', 'top-left', { attrOp: '~=' })
86
+ ));
87
+ });
88
+
89
+ it('uses family as attribute name when $attr is omitted', () =>
90
+ {
91
+ const css = emit(`@include list-modifier('foo', 'item', 'alpha') { color: red; }`);
92
+ expect(css).toMatch(new RegExp(
93
+ dualSelectorRe('foo', 'item-alpha', 'item', 'alpha', { attrOp: '~=' })
94
+ ));
95
+ });
96
+ });
97
+
98
+ describe('single-choice-modifier', () =>
99
+ {
100
+ it('emits class + exact-match attribute selector (explicit $attr)', () =>
101
+ {
102
+ const css = emit(
103
+ `@include single-choice-modifier('foo', 'orient', 'vertical', 'orientation') { height: 100%; }`
104
+ );
105
+ expect(css).toMatch(new RegExp(
106
+ dualSelectorRe('foo', 'orient-vertical', 'orientation', 'vertical')
107
+ ));
108
+ });
109
+
110
+ it('uses family as attribute name when $attr is omitted', () =>
111
+ {
112
+ const css = emit(
113
+ `@include single-choice-modifier('foo', 'mode', 'compact') { padding: 0.5rem; }`
114
+ );
115
+ expect(css).toMatch(new RegExp(dualSelectorRe('foo', 'mode-compact', 'mode', 'compact')));
116
+ });
117
+ });
118
+
119
+ describe('defaults-when-absent', () =>
120
+ {
121
+ it('emits :where(:not([class*=sk-cut-])) selector with zero specificity', () =>
122
+ {
123
+ const css = emit(`@include defaults-when-absent('foo', 'sk-cut-') { --default: 1; }`);
124
+ // Sass may or may not quote the [class*=] value; match both forms.
125
+ expect(css).toMatch(new RegExp(
126
+ `\\.sk-foo:where\\(:not\\(\\[class\\*=${ attrValueRe('sk-cut-') }\\]\\)\\)`
127
+ ));
128
+ expect(css).toMatch(/--default:\s*1/);
129
+ });
130
+ });
131
+
132
+ describe('defaults-when-no-attr', () =>
133
+ {
134
+ it('emits sk-<component>:where(:not([<attr>])) selector with zero specificity', () =>
135
+ {
136
+ const css = emit(`@include defaults-when-no-attr('foo', 'kind') { --default: 2; }`);
137
+ expect(css).toMatch(/sk-foo:where\(:not\(\[kind\]\)\)/);
138
+ expect(css).toMatch(/--default:\s*2/);
139
+ });
140
+
141
+ it('works with hyphenated attribute names', () =>
142
+ {
143
+ const css = emit(
144
+ `@include defaults-when-no-attr('panel', 'decoration-corner') { color: red; }`
145
+ );
146
+ expect(css).toMatch(/sk-panel:where\(:not\(\[decoration-corner\]\)\)/);
147
+ });
148
+ });
149
+ });
150
+
151
+ //----------------------------------------------------------------------------------------------------------------------
@@ -5,6 +5,18 @@
5
5
  * This swaps the primary/neutral colors from greyscale for a bolder look.
6
6
  */
7
7
 
8
+ @use 'shade-scale' as *;
9
+
10
+ $colorful-semantic-map: (
11
+ 'neutral': 'blue',
12
+ 'primary': 'orange',
13
+ 'accent': 'blue',
14
+ 'info': 'cyan',
15
+ 'success': 'green',
16
+ 'warning': 'yellow',
17
+ 'danger': 'red',
18
+ );
19
+
8
20
  [data-scheme="colorful"]
9
21
  {
10
22
  /* Neutral Kind */
@@ -55,4 +67,17 @@
55
67
  --sk-info-active: color-mix(in oklch, var(--sk-info-base), var(--sk-color-gray-10) var(--sk-mix-amount-strong));
56
68
  --sk-info-text: oklch(1 0 0);
57
69
  --sk-info-text-contrast: var(--sk-color-gray-95);
70
+
71
+ /* Short aliases for the semantic kinds defined above. Must live inside the theme block so
72
+ * that `var(--sk-<kind>-base)` resolves on this element's cascade. */
73
+ --sk-neutral: var(--sk-neutral-base);
74
+ --sk-primary: var(--sk-primary-base);
75
+ --sk-accent: var(--sk-accent-base);
76
+ --sk-info: var(--sk-info-base);
77
+ --sk-success: var(--sk-success-base);
78
+ --sk-warning: var(--sk-warning-base);
79
+ --sk-danger: var(--sk-danger-base);
80
+
81
+ /* Tailwind-style shade scale (`--sk-primary-50`..`--sk-primary-950`, and so on). */
82
+ @include semantic-shades($colorful-semantic-map);
58
83
  }
@@ -5,6 +5,18 @@
5
5
  * This is the default, more subdued theme.
6
6
  */
7
7
 
8
+ @use 'shade-scale' as *;
9
+
10
+ $greyscale-semantic-map: (
11
+ 'neutral': 'gray',
12
+ 'primary': 'blue',
13
+ 'accent': 'orange',
14
+ 'info': 'cyan',
15
+ 'success': 'green',
16
+ 'warning': 'yellow',
17
+ 'danger': 'red',
18
+ );
19
+
8
20
  [data-scheme="greyscale"]
9
21
  {
10
22
  /* Neutral Kind */
@@ -55,4 +67,17 @@
55
67
  --sk-info-active: color-mix(in oklch, var(--sk-info-base), var(--sk-color-gray-10) var(--sk-mix-amount-strong));
56
68
  --sk-info-text: oklch(1 0 0);
57
69
  --sk-info-text-contrast: var(--sk-color-gray-95);
70
+
71
+ /* Short aliases for the semantic kinds defined above. Must live inside the theme block so
72
+ * that `var(--sk-<kind>-base)` resolves on this element's cascade. */
73
+ --sk-neutral: var(--sk-neutral-base);
74
+ --sk-primary: var(--sk-primary-base);
75
+ --sk-accent: var(--sk-accent-base);
76
+ --sk-info: var(--sk-info-base);
77
+ --sk-success: var(--sk-success-base);
78
+ --sk-warning: var(--sk-warning-base);
79
+ --sk-danger: var(--sk-danger-base);
80
+
81
+ /* Tailwind-style shade scale (`--sk-primary-50`..`--sk-primary-950`, and so on). */
82
+ @include semantic-shades($greyscale-semantic-map);
58
83
  }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Theme shade-scale helper
3
+ *
4
+ * Shared map + mixin that each theme uses to emit Tailwind-style shade aliases
5
+ * (`--sk-primary-50`, `--sk-primary-200`, ..., `--sk-primary-950`) for the semantic kinds.
6
+ * The aliases point at foundation primitives (`--sk-color-<family>-05..95`) so they always
7
+ * follow the theme's chosen color family.
8
+ */
9
+
10
+ @use 'sass:map';
11
+
12
+ // Tailwind-style shade names mapped to the SleekSpace primitive scale (05 / 10 / ... / 95).
13
+ $shade-map: (
14
+ 50: '05',
15
+ 100: '10',
16
+ 200: '20',
17
+ 300: '30',
18
+ 400: '40',
19
+ 500: '50',
20
+ 600: '60',
21
+ 700: '70',
22
+ 800: '80',
23
+ 900: '90',
24
+ 950: '95',
25
+ );
26
+
27
+ /// Emit `--sk-<kind>-{50..950}` aliases for every (kind -> primitive-family) pair in $map.
28
+ /// Call from inside a theme's `[data-scheme="..."]` block so the aliases land on the same
29
+ /// element as the semantic `-base` tokens they pair with.
30
+ @mixin semantic-shades($map)
31
+ {
32
+ @each $kind, $primitive-family in $map
33
+ {
34
+ @each $shade, $primitive-step in $shade-map
35
+ {
36
+ --sk-#{ $kind }-#{ $shade }: var(--sk-color-#{ $primitive-family }-#{ $primitive-step });
37
+ }
38
+ }
39
+ }
@@ -8,6 +8,37 @@
8
8
  * color kinds always reference the same foundation color.
9
9
  */
10
10
 
11
+ @use 'sass:map';
12
+
13
+ // Tailwind-style shade names mapped to the SleekSpace primitive scale (05 / 10 / ... / 95).
14
+ $sk-shade-map: (
15
+ 50: '05',
16
+ 100: '10',
17
+ 200: '20',
18
+ 300: '30',
19
+ 400: '40',
20
+ 500: '50',
21
+ 600: '60',
22
+ 700: '70',
23
+ 800: '80',
24
+ 900: '90',
25
+ 950: '95',
26
+ );
27
+
28
+ // Each color kind's alias name paired with the foundation primitive family it draws from.
29
+ $sk-color-kinds: (
30
+ 'boulder': 'gray',
31
+ 'neon-blue': 'blue',
32
+ 'light-blue': 'cyan',
33
+ 'neon-orange': 'orange',
34
+ 'neon-purple': 'purple',
35
+ 'neon-green': 'green',
36
+ 'neon-mint': 'mint',
37
+ 'neon-pink': 'pink',
38
+ 'yellow': 'yellow',
39
+ 'red': 'red',
40
+ );
41
+
11
42
  :root
12
43
  {
13
44
  /* ===================================================================
@@ -109,4 +140,39 @@
109
140
  --sk-red-active: color-mix(in oklch, var(--sk-red-base), var(--sk-color-gray-10) var(--sk-mix-amount-strong));
110
141
  --sk-red-text: oklch(1 0 0);
111
142
  --sk-red-text-contrast: var(--sk-color-gray-95);
143
+
144
+ /* ===================================================================
145
+ * Short Aliases
146
+ *
147
+ * Shorthand names so consumers can write `var(--sk-neon-pink)` directly
148
+ * instead of `var(--sk-neon-pink-base)`. Semantic kinds (primary, accent,
149
+ * etc.) are aliased inside each theme block so `var(--sk-<kind>-base)`
150
+ * resolves against the theme's actual values.
151
+ * =================================================================== */
152
+
153
+ --sk-boulder: var(--sk-boulder-base);
154
+ --sk-neon-blue: var(--sk-neon-blue-base);
155
+ --sk-light-blue: var(--sk-light-blue-base);
156
+ --sk-neon-orange: var(--sk-neon-orange-base);
157
+ --sk-neon-purple: var(--sk-neon-purple-base);
158
+ --sk-neon-green: var(--sk-neon-green-base);
159
+ --sk-neon-mint: var(--sk-neon-mint-base);
160
+ --sk-neon-pink: var(--sk-neon-pink-base);
161
+ --sk-yellow: var(--sk-yellow-base);
162
+ --sk-red: var(--sk-red-base);
163
+
164
+ /* ===================================================================
165
+ * Tailwind-style shade scale for color kinds
166
+ *
167
+ * `--sk-neon-pink-500` = palette 50 (= base); `--sk-neon-pink-200` is two steps lighter,
168
+ * `--sk-neon-pink-800` is much darker, etc. Full scale: 50, 100..900, 950.
169
+ * =================================================================== */
170
+
171
+ @each $kind, $primitive-family in $sk-color-kinds
172
+ {
173
+ @each $shade, $primitive-step in $sk-shade-map
174
+ {
175
+ --sk-#{ $kind }-#{ $shade }: var(--sk-color-#{ $primitive-family }-#{ $primitive-step });
176
+ }
177
+ }
112
178
  }
@@ -22,29 +22,37 @@ export type ComponentVariant = 'solid' | 'outline' | 'subtle' | 'ghost' | 'link'
22
22
 
23
23
  /**
24
24
  * Custom color props interface for components.
25
- * Allows overriding component colors with any valid CSS color value.
25
+ * Allows overriding component colors with either a SleekSpace kind name or any CSS color value.
26
26
  */
27
27
  export interface ComponentCustomColors
28
28
  {
29
29
  /**
30
- * Base color for the component.
31
- * Accepts any valid CSS color value including:
32
- * - Hex colors: "#8B5CF6"
33
- * - OKLCH colors: "oklch(0.7 0.25 300)"
34
- * - RGB/HSL: "rgb(139, 92, 246)", "hsl(258, 90%, 66%)"
35
- * - CSS variables: "var(--color-neon-green-200)"
36
- * - Named colors: "rebeccapurple"
30
+ * Base color for the component. Accepts either:
31
+ * - A SleekSpace kind name: `"neutral"`, `"primary"`, `"accent"`, `"info"`, `"success"`,
32
+ * `"warning"`, `"danger"`, `"neon-blue"`, `"light-blue"`, `"neon-orange"`,
33
+ * `"neon-purple"`, `"neon-green"`, `"neon-mint"`, `"neon-pink"`, `"yellow"`, `"red"`,
34
+ * `"boulder"` resolves to the matching `--sk-<kind>-base` token.
35
+ * - Any CSS color value: hex (`"#8B5CF6"`), oklch (`"oklch(0.7 0.25 300)"`),
36
+ * rgb/hsl (`"rgb(139, 92, 246)"`), a CSS variable (`"var(--my-color)"`), or a
37
+ * named color (`"rebeccapurple"`).
37
38
  *
38
39
  * When provided, this overrides the color from the `kind` prop.
39
40
  */
40
41
  baseColor ?: string;
41
42
 
42
43
  /**
43
- * Text/foreground color for the component.
44
- * If not provided, automatically calculated for optimal contrast with the base color.
45
- * Accepts the same CSS color formats as baseColor.
44
+ * Text/foreground color for the component. Accepts the same kind names and CSS color values
45
+ * as `baseColor`. If not provided, falls back to the theme's neutral text color for legibility
46
+ * on arbitrary custom backgrounds.
46
47
  */
47
48
  textColor ?: string;
49
+
50
+ /**
51
+ * Border color for the component. Accepts the same kind names and CSS color values as
52
+ * `baseColor`. Only honoured by components that render a visible border (panels, cards,
53
+ * inputs, etc.); ignored elsewhere.
54
+ */
55
+ borderColor ?: string;
48
56
  }
49
57
 
50
58
  //----------------------------------------------------------------------------------------------------------------------