@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
@@ -2,30 +2,17 @@
2
2
  // Progress Component Styles
3
3
  //----------------------------------------------------------------------------------------------------------------------
4
4
 
5
- @use '@/styles/mixins/cut-border' as *;
6
- @use '@/styles/mixins/responsive' as *;
5
+ @use '../theme/variables' as *;
6
+ @use '../mixins/cut-border' as *;
7
+ @use '../mixins/dual-selector' as *;
8
+ @use '../mixins/responsive' as *;
7
9
 
8
10
  //----------------------------------------------------------------------------------------------------------------------
9
-
10
- $kinds: (neutral, primary, accent, info, success, warning, danger);
11
-
12
- //----------------------------------------------------------------------------------------------------------------------
13
- // Kind Mixin
11
+ // Progress Design Tokens
14
12
  //----------------------------------------------------------------------------------------------------------------------
15
13
 
16
- @mixin progress-kind($kind)
17
- {
18
- &.sk-#{ '' + $kind }
19
- {
20
- --sk-progress-color-base: var(--sk-#{ $kind }-base);
21
- }
22
- }
23
-
24
- //----------------------------------------------------------------------------------------------------------------------
25
- // Progress Root (Track)
26
- //----------------------------------------------------------------------------------------------------------------------
27
-
28
- .sk-progress
14
+ .sk-progress,
15
+ sk-progress
29
16
  {
30
17
  // CSS Variables
31
18
  --sk-progress-color-base: var(--sk-primary-base);
@@ -33,7 +20,15 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
33
20
  --sk-progress-height: 1rem;
34
21
  --sk-progress-bevel: calc(var(--sk-progress-height) * 0.6);
35
22
  --sk-progress-slant: calc(var(--sk-progress-height) * 1.5);
23
+ }
24
+
25
+ //----------------------------------------------------------------------------------------------------------------------
26
+ // Progress Root (Track)
27
+ //----------------------------------------------------------------------------------------------------------------------
36
28
 
29
+ .sk-progress,
30
+ sk-progress
31
+ {
37
32
  position: relative;
38
33
  display: flex;
39
34
  align-items: center;
@@ -51,65 +46,70 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
51
46
  oklch(from var(--sk-progress-color-base) l c h / 0.3),
52
47
  (top-left bottom-right)
53
48
  );
49
+ }
54
50
 
55
- //------------------------------------------------------------------------------------------------------------------
56
- // Size Variants
57
- //------------------------------------------------------------------------------------------------------------------
51
+ //----------------------------------------------------------------------------------------------------------------------
52
+ // Kind Variants
53
+ //----------------------------------------------------------------------------------------------------------------------
58
54
 
59
- // Extra small: full parallelogram slant
60
- &.sk-xs
55
+ @each $kind in $kinds
56
+ {
57
+ @include kind-variant('progress', $kind)
61
58
  {
62
- --sk-progress-height: 0.5rem;
63
-
64
- // Override cut-border with full slant parallelogram
65
- border: none;
66
- clip-path: polygon(
67
- var(--sk-progress-slant) 0,
68
- 100% 0,
69
- calc(100% - var(--sk-progress-slant)) 100%,
70
- 0 100%
71
- );
72
-
73
- &::before
74
- {
75
- display: none;
76
- }
59
+ --sk-progress-color-base: var(--sk-#{ $kind }-base);
77
60
  }
61
+ }
78
62
 
79
- &.sk-sm
80
- {
81
- --sk-progress-height: 0.75rem;
82
- }
63
+ //----------------------------------------------------------------------------------------------------------------------
64
+ // Size Variants
65
+ //----------------------------------------------------------------------------------------------------------------------
83
66
 
84
- &.sk-md
85
- {
86
- --sk-progress-height: 1rem;
87
- }
67
+ @include size-variant('progress', 'xs')
68
+ {
69
+ --sk-progress-height: 0.5rem;
70
+
71
+ // Override cut-border with full slant parallelogram
72
+ border: none;
73
+ clip-path: polygon(
74
+ var(--sk-progress-slant) 0,
75
+ 100% 0,
76
+ calc(100% - var(--sk-progress-slant)) 100%,
77
+ 0 100%
78
+ );
88
79
 
89
- &.sk-lg
80
+ &::before
90
81
  {
91
- --sk-progress-height: 1.25rem;
82
+ display: none;
92
83
  }
84
+ }
93
85
 
94
- &.sk-xl
95
- {
96
- --sk-progress-height: 1.5rem;
97
- }
86
+ @include size-variant('progress', 'sm')
87
+ {
88
+ --sk-progress-height: 0.75rem;
89
+ }
98
90
 
99
- //------------------------------------------------------------------------------------------------------------------
100
- // Kind Variants
101
- //------------------------------------------------------------------------------------------------------------------
91
+ @include size-variant('progress', 'md')
92
+ {
93
+ --sk-progress-height: 1rem;
94
+ }
102
95
 
103
- @each $kind in $kinds
104
- {
105
- @include progress-kind($kind);
106
- }
96
+ @include size-variant('progress', 'lg')
97
+ {
98
+ --sk-progress-height: 1.25rem;
99
+ }
100
+
101
+ @include size-variant('progress', 'xl')
102
+ {
103
+ --sk-progress-height: 1.5rem;
104
+ }
107
105
 
108
- //------------------------------------------------------------------------------------------------------------------
109
- // Indeterminate State
110
- //------------------------------------------------------------------------------------------------------------------
106
+ //----------------------------------------------------------------------------------------------------------------------
107
+ // Indeterminate State
108
+ //----------------------------------------------------------------------------------------------------------------------
111
109
 
112
- &.sk-indeterminate .sk-progress-indicator
110
+ @include bool-modifier('progress', 'indeterminate')
111
+ {
112
+ .sk-progress-indicator
113
113
  {
114
114
  width: 25%;
115
115
  animation: sk-progress-indeterminate 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
@@ -187,7 +187,9 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
187
187
  }
188
188
 
189
189
  // Extra small size: slanted right edge to match parallelogram
190
- .sk-xs &
190
+ .sk-xs &,
191
+ .sk-size-xs &,
192
+ sk-progress[size="xs"] &
191
193
  {
192
194
  clip-path: polygon(
193
195
  0 0,
@@ -239,23 +241,33 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
239
241
 
240
242
  // Hide on extra small and small sizes (too small for readable text)
241
243
  .sk-xs &,
242
- .sk-sm &
244
+ .sk-size-xs &,
245
+ sk-progress[size="xs"] &,
246
+ .sk-sm &,
247
+ .sk-size-sm &,
248
+ sk-progress[size="sm"] &
243
249
  {
244
250
  display: none;
245
251
  }
246
252
 
247
253
  // Scale font size with progress bar size
248
- .sk-md &
254
+ .sk-md &,
255
+ .sk-size-md &,
256
+ sk-progress[size="md"] &
249
257
  {
250
258
  font-size: 0.75rem;
251
259
  }
252
260
 
253
- .sk-lg &
261
+ .sk-lg &,
262
+ .sk-size-lg &,
263
+ sk-progress[size="lg"] &
254
264
  {
255
265
  font-size: 0.875rem;
256
266
  }
257
267
 
258
- .sk-xl &
268
+ .sk-xl &,
269
+ .sk-size-xl &,
270
+ sk-progress[size="xl"] &
259
271
  {
260
272
  font-size: 1rem;
261
273
  }
@@ -292,3 +304,41 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
292
304
  }
293
305
 
294
306
  //----------------------------------------------------------------------------------------------------------------------
307
+ // Defaults When Absent
308
+ //----------------------------------------------------------------------------------------------------------------------
309
+
310
+ // Default size: md — fires when no sk-size-* class is present.
311
+ @include defaults-when-absent('progress', 'sk-size-')
312
+ {
313
+ --sk-progress-height: 1rem;
314
+ }
315
+
316
+ // Default kind: primary — explicit :not() chain for zero-specificity default.
317
+ $_progress-kind-not: '';
318
+ @each $kind in $kinds
319
+ {
320
+ $_progress-kind-not: $_progress-kind-not + ':not(.sk-' + $kind + ')';
321
+ }
322
+
323
+ .sk-progress:where(#{ $_progress-kind-not })
324
+ {
325
+ --sk-progress-color-base: var(--sk-primary-base);
326
+ }
327
+
328
+ //----------------------------------------------------------------------------------------------------------------------
329
+ // Custom-Element API Defaults (attribute-absence path)
330
+ //----------------------------------------------------------------------------------------------------------------------
331
+
332
+ // Default kind: primary — fires when <sk-progress> has no kind attribute.
333
+ @include defaults-when-no-attr('progress', 'kind')
334
+ {
335
+ --sk-progress-color-base: var(--sk-primary-base);
336
+ }
337
+
338
+ // Default size: md — fires when <sk-progress> has no size attribute.
339
+ @include defaults-when-no-attr('progress', 'size')
340
+ {
341
+ --sk-progress-height: 1rem;
342
+ }
343
+
344
+ //----------------------------------------------------------------------------------------------------------------------
@@ -1,4 +1,5 @@
1
- @use '@/styles/mixins' as *;
1
+ @use '../mixins' as *;
2
+ @use '../theme/variables' as *;
2
3
 
3
4
  //----------------------------------------------------------------------------------------------------------------------
4
5
  // Radio Component Styles
@@ -87,28 +88,41 @@
87
88
  transition-duration: var(--sk-transition-duration-base);
88
89
 
89
90
  // Size variants
90
- &.sk-sm
91
+
92
+ // Default: md when no sk-size-* class is present (zero-specificity, explicit class wins)
93
+ &:where(:not([class*="sk-size-"]))
94
+ {
95
+ width: 1.25rem;
96
+ height: 1.25rem;
97
+ --sk-radio-cut: 0.3rem;
98
+ }
99
+
100
+ &.sk-sm,
101
+ &.sk-size-sm
91
102
  {
92
103
  width: 1rem;
93
104
  height: 1rem;
94
105
  --sk-radio-cut: 0.24rem;
95
106
  }
96
107
 
97
- &.sk-md
108
+ &.sk-md,
109
+ &.sk-size-md
98
110
  {
99
111
  width: 1.25rem;
100
112
  height: 1.25rem;
101
113
  --sk-radio-cut: 0.3rem;
102
114
  }
103
115
 
104
- &.sk-lg
116
+ &.sk-lg,
117
+ &.sk-size-lg
105
118
  {
106
119
  width: 1.5rem;
107
120
  height: 1.5rem;
108
121
  --sk-radio-cut: 0.36rem;
109
122
  }
110
123
 
111
- &.sk-xl
124
+ &.sk-xl,
125
+ &.sk-size-xl
112
126
  {
113
127
  width: 1.75rem;
114
128
  height: 1.75rem;
@@ -260,3 +274,19 @@
260
274
  }
261
275
 
262
276
  //----------------------------------------------------------------------------------------------------------------------
277
+ // Defaults-when-absent: kind — neutral when no explicit kind class is present.
278
+ //----------------------------------------------------------------------------------------------------------------------
279
+
280
+ $_radio-kind-not: '';
281
+ @each $kind in $kinds
282
+ {
283
+ $_radio-kind-not: $_radio-kind-not + ':not(.sk-' + $kind + ')';
284
+ }
285
+
286
+ .sk-radio:where(#{ $_radio-kind-not })
287
+ {
288
+ --sk-radio-color-base: var(--sk-neutral-base);
289
+ --sk-radio-fg: var(--sk-neutral-text);
290
+ }
291
+
292
+ //----------------------------------------------------------------------------------------------------------------------
@@ -26,7 +26,7 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
26
26
  --sk-scroll-area-thumb-color: var(--sk-scroll-area-color-base);
27
27
  --sk-scroll-area-track-color: oklch(from var(--sk-neutral-base) l c h / 0.08);
28
28
  --sk-scroll-area-size: 0.5rem;
29
- --sk-scroll-area-fade: 1.5rem;
29
+ --sk-scroll-area-fade: 1rem;
30
30
 
31
31
  position: relative;
32
32
  overflow: hidden;
@@ -40,21 +40,33 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
40
40
  //----------------------------------------------------------------------------------------------------------------------
41
41
  // Edge fade
42
42
  //
43
- // Applied to the viewport via CSS mask-image so the content visibly tapers at the edges where
44
- // scrolling is possible. Always-on (not scroll-position aware) -- keeps the pattern pure-CSS
45
- // and avoids layout shift. Width is tunable via `--sk-scroll-area-fade`.
43
+ // Applied to the viewport via CSS mask-image so content visibly tapers at the edges where more
44
+ // scrolling is possible. The component sets `--sk-scroll-fade-{top|bottom|left|right}` (0 or 1)
45
+ // based on scroll position, collapsing the fade zone at edges you can't scroll past. Gradient
46
+ // uses smoothstep-ish stops for a gentler fall-off. Distance is tunable via `--sk-scroll-area-fade`.
46
47
  //----------------------------------------------------------------------------------------------------------------------
47
48
 
48
49
  .sk-scroll-area.sk-fade
49
50
  {
51
+ --sk-scroll-fade-top: 0;
52
+ --sk-scroll-fade-bottom: 0;
53
+ --sk-scroll-fade-left: 0;
54
+ --sk-scroll-fade-right: 0;
55
+
50
56
  &.sk-vertical .sk-scroll-area-viewport
51
57
  {
52
58
  mask-image: linear-gradient(
53
59
  to bottom,
54
- transparent 0,
55
- black var(--sk-scroll-area-fade),
56
- black calc(100% - var(--sk-scroll-area-fade)),
57
- transparent 100%
60
+ rgb(0 0 0 / 0) 0,
61
+ rgb(0 0 0 / 0.15) calc(var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-top)),
62
+ rgb(0 0 0 / 0.5) calc(var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-top)),
63
+ rgb(0 0 0 / 0.85) calc(var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-top)),
64
+ rgb(0 0 0 / 1) calc(var(--sk-scroll-area-fade) * var(--sk-scroll-fade-top)),
65
+ rgb(0 0 0 / 1) calc(100% - var(--sk-scroll-area-fade) * var(--sk-scroll-fade-bottom)),
66
+ rgb(0 0 0 / 0.85) calc(100% - var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-bottom)),
67
+ rgb(0 0 0 / 0.5) calc(100% - var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-bottom)),
68
+ rgb(0 0 0 / 0.15) calc(100% - var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-bottom)),
69
+ rgb(0 0 0 / 0) 100%
58
70
  );
59
71
  }
60
72
 
@@ -62,31 +74,47 @@ $kinds: (neutral, primary, accent, info, success, warning, danger);
62
74
  {
63
75
  mask-image: linear-gradient(
64
76
  to right,
65
- transparent 0,
66
- black var(--sk-scroll-area-fade),
67
- black calc(100% - var(--sk-scroll-area-fade)),
68
- transparent 100%
77
+ rgb(0 0 0 / 0) 0,
78
+ rgb(0 0 0 / 0.15) calc(var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-left)),
79
+ rgb(0 0 0 / 0.5) calc(var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-left)),
80
+ rgb(0 0 0 / 0.85) calc(var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-left)),
81
+ rgb(0 0 0 / 1) calc(var(--sk-scroll-area-fade) * var(--sk-scroll-fade-left)),
82
+ rgb(0 0 0 / 1) calc(100% - var(--sk-scroll-area-fade) * var(--sk-scroll-fade-right)),
83
+ rgb(0 0 0 / 0.85) calc(100% - var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-right)),
84
+ rgb(0 0 0 / 0.5) calc(100% - var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-right)),
85
+ rgb(0 0 0 / 0.15) calc(100% - var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-right)),
86
+ rgb(0 0 0 / 0) 100%
69
87
  );
70
88
  }
71
89
 
72
90
  &.sk-both .sk-scroll-area-viewport
73
91
  {
74
- // Two masks composited with `intersect` so only the center (opaque on both axes) is
75
- // fully opaque; the remaining three edges fade.
76
92
  mask-image:
77
93
  linear-gradient(
78
94
  to bottom,
79
- transparent 0,
80
- black var(--sk-scroll-area-fade),
81
- black calc(100% - var(--sk-scroll-area-fade)),
82
- transparent 100%
95
+ rgb(0 0 0 / 0) 0,
96
+ rgb(0 0 0 / 0.15) calc(var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-top)),
97
+ rgb(0 0 0 / 0.5) calc(var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-top)),
98
+ rgb(0 0 0 / 0.85) calc(var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-top)),
99
+ rgb(0 0 0 / 1) calc(var(--sk-scroll-area-fade) * var(--sk-scroll-fade-top)),
100
+ rgb(0 0 0 / 1) calc(100% - var(--sk-scroll-area-fade) * var(--sk-scroll-fade-bottom)),
101
+ rgb(0 0 0 / 0.85) calc(100% - var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-bottom)),
102
+ rgb(0 0 0 / 0.5) calc(100% - var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-bottom)),
103
+ rgb(0 0 0 / 0.15) calc(100% - var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-bottom)),
104
+ rgb(0 0 0 / 0) 100%
83
105
  ),
84
106
  linear-gradient(
85
107
  to right,
86
- transparent 0,
87
- black var(--sk-scroll-area-fade),
88
- black calc(100% - var(--sk-scroll-area-fade)),
89
- transparent 100%
108
+ rgb(0 0 0 / 0) 0,
109
+ rgb(0 0 0 / 0.15) calc(var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-left)),
110
+ rgb(0 0 0 / 0.5) calc(var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-left)),
111
+ rgb(0 0 0 / 0.85) calc(var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-left)),
112
+ rgb(0 0 0 / 1) calc(var(--sk-scroll-area-fade) * var(--sk-scroll-fade-left)),
113
+ rgb(0 0 0 / 1) calc(100% - var(--sk-scroll-area-fade) * var(--sk-scroll-fade-right)),
114
+ rgb(0 0 0 / 0.85) calc(100% - var(--sk-scroll-area-fade) * 0.75 * var(--sk-scroll-fade-right)),
115
+ rgb(0 0 0 / 0.5) calc(100% - var(--sk-scroll-area-fade) * 0.5 * var(--sk-scroll-fade-right)),
116
+ rgb(0 0 0 / 0.15) calc(100% - var(--sk-scroll-area-fade) * 0.25 * var(--sk-scroll-fade-right)),
117
+ rgb(0 0 0 / 0) 100%
90
118
  );
91
119
  mask-composite: intersect;
92
120
  }
@@ -1,4 +1,5 @@
1
- @use '@/styles/mixins/cut-border' as *;
1
+ @use '../mixins/cut-border' as *;
2
+ @use '../theme/variables' as *;
2
3
 
3
4
  //----------------------------------------------------------------------------------------------------------------------
4
5
  // Select Component Styles
@@ -14,23 +15,33 @@
14
15
  display: inline-flex;
15
16
  width: 100%;
16
17
 
18
+ // Default: md when no sk-size-* class is present (zero-specificity, explicit class wins)
19
+ &:where(:not([class*="sk-size-"]))
20
+ {
21
+ --sk-select-cut: 0.5rem;
22
+ }
23
+
17
24
  // Size variants
18
- &.sk-sm
25
+ &.sk-sm,
26
+ &.sk-size-sm
19
27
  {
20
28
  --sk-select-cut: 0.4rem;
21
29
  }
22
30
 
23
- &.sk-md
31
+ &.sk-md,
32
+ &.sk-size-md
24
33
  {
25
34
  --sk-select-cut: 0.5rem;
26
35
  }
27
36
 
28
- &.sk-lg
37
+ &.sk-lg,
38
+ &.sk-size-lg
29
39
  {
30
40
  --sk-select-cut: 0.6rem;
31
41
  }
32
42
 
33
- &.sk-xl
43
+ &.sk-xl,
44
+ &.sk-size-xl
34
45
  {
35
46
  --sk-select-cut: 0.7rem;
36
47
  }
@@ -165,28 +176,32 @@
165
176
  transition-duration: var(--sk-transition-duration-base);
166
177
 
167
178
  // Size variants
168
- .sk-select.sk-sm &
179
+ .sk-select.sk-sm &,
180
+ .sk-select.sk-size-sm &
169
181
  {
170
182
  height: 2rem;
171
183
  padding: 0 var(--sk-space-sm);
172
184
  font-size: 0.875rem;
173
185
  }
174
186
 
175
- .sk-select.sk-md &
187
+ .sk-select.sk-md &,
188
+ .sk-select.sk-size-md &
176
189
  {
177
190
  height: 2.5rem;
178
191
  padding: 0 var(--sk-space-md);
179
192
  font-size: 1rem;
180
193
  }
181
194
 
182
- .sk-select.sk-lg &
195
+ .sk-select.sk-lg &,
196
+ .sk-select.sk-size-lg &
183
197
  {
184
198
  height: 3rem;
185
199
  padding: 0 var(--sk-space-md);
186
200
  font-size: 1.125rem;
187
201
  }
188
202
 
189
- .sk-select.sk-xl &
203
+ .sk-select.sk-xl &,
204
+ .sk-select.sk-size-xl &
190
205
  {
191
206
  height: 3.5rem;
192
207
  padding: 0 var(--sk-space-md);
@@ -439,3 +454,19 @@
439
454
  }
440
455
 
441
456
  //----------------------------------------------------------------------------------------------------------------------
457
+ // Defaults-when-absent: kind — neutral when no explicit kind class is present.
458
+ //----------------------------------------------------------------------------------------------------------------------
459
+
460
+ $_select-kind-not: '';
461
+ @each $kind in $kinds
462
+ {
463
+ $_select-kind-not: $_select-kind-not + ':not(.sk-' + $kind + ')';
464
+ }
465
+
466
+ .sk-select:where(#{ $_select-kind-not })
467
+ {
468
+ --sk-select-color-base: var(--sk-neutral-base);
469
+ --sk-select-fg: var(--sk-neutral-text);
470
+ }
471
+
472
+ //----------------------------------------------------------------------------------------------------------------------
@@ -1,4 +1,3 @@
1
-
2
1
  //----------------------------------------------------------------------------------------------------------------------
3
2
  // Sidebar Component Styles
4
3
  //----------------------------------------------------------------------------------------------------------------------
@@ -10,7 +9,8 @@
10
9
  // Sidebar Container
11
10
  //----------------------------------------------------------------------------------------------------------------------
12
11
 
13
- .sk-sidebar
12
+ .sk-sidebar,
13
+ sk-sidebar
14
14
  {
15
15
  width: var(--sk-sidebar-width, 180px);
16
16
  flex-shrink: 0;
@@ -42,37 +42,6 @@
42
42
  --sk-sidebar-item-active-text: var(--sk-neutral-text);
43
43
  --sk-sidebar-item-active-bg: color-mix(in oklch, var(--sk-sidebar-item-bg) 92%, white 8%);
44
44
 
45
- &.sk-primary
46
- {
47
- --sk-sidebar-color-base: var(--sk-primary-base);
48
- --sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
49
- }
50
- &.sk-accent
51
- {
52
- --sk-sidebar-color-base: var(--sk-accent-base);
53
- --sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
54
- }
55
- &.sk-info
56
- {
57
- --sk-sidebar-color-base: var(--sk-info-base);
58
- --sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
59
- }
60
- &.sk-success
61
- {
62
- --sk-sidebar-color-base: var(--sk-success-base);
63
- --sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
64
- }
65
- &.sk-warning
66
- {
67
- --sk-sidebar-color-base: var(--sk-warning-base);
68
- --sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
69
- }
70
- &.sk-danger
71
- {
72
- --sk-sidebar-color-base: var(--sk-danger-base);
73
- --sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
74
- }
75
-
76
45
  .sk-sidebar-nav
77
46
  {
78
47
  display: flex;
@@ -81,6 +50,61 @@
81
50
  }
82
51
  }
83
52
 
53
+ //----------------------------------------------------------------------------------------------------------------------
54
+ // Kind Variants
55
+ //----------------------------------------------------------------------------------------------------------------------
56
+
57
+ @each $kind in $kinds
58
+ {
59
+ @include kind-variant('sidebar', $kind)
60
+ {
61
+ --sk-sidebar-color-base: var(--sk-#{ $kind }-base);
62
+
63
+ @if $kind != neutral
64
+ {
65
+ --sk-sidebar-item-active-text: var(--sk-sidebar-color-base);
66
+ }
67
+ }
68
+ }
69
+
70
+ //----------------------------------------------------------------------------------------------------------------------
71
+ // Dense Modifier
72
+ //----------------------------------------------------------------------------------------------------------------------
73
+
74
+ @include bool-modifier('sidebar', 'dense')
75
+ {
76
+ // Opts out of the coarse-pointer touch-target floor on sidebar items.
77
+ --sk-sidebar-dense: 1;
78
+ }
79
+
80
+ //----------------------------------------------------------------------------------------------------------------------
81
+ // Defaults When Absent
82
+ //----------------------------------------------------------------------------------------------------------------------
83
+
84
+ // Default kind: neutral — explicit :not() chain for zero-specificity default.
85
+ $_sidebar-kind-not: '';
86
+ @each $kind in $kinds
87
+ {
88
+ $_sidebar-kind-not: $_sidebar-kind-not + ':not(.sk-' + $kind + ')';
89
+ }
90
+
91
+ .sk-sidebar:where(#{ $_sidebar-kind-not })
92
+ {
93
+ --sk-sidebar-color-base: var(--sk-neutral-base);
94
+ --sk-sidebar-item-active-text: var(--sk-neutral-text);
95
+ }
96
+
97
+ //----------------------------------------------------------------------------------------------------------------------
98
+ // Custom-Element API Defaults (attribute-absence path)
99
+ //----------------------------------------------------------------------------------------------------------------------
100
+
101
+ // Default kind: neutral — fires when <sk-sidebar> has no kind attribute.
102
+ @include defaults-when-no-attr('sidebar', 'kind')
103
+ {
104
+ --sk-sidebar-color-base: var(--sk-neutral-base);
105
+ --sk-sidebar-item-active-text: var(--sk-neutral-text);
106
+ }
107
+
84
108
  //----------------------------------------------------------------------------------------------------------------------
85
109
  // Sidebar Section
86
110
  //----------------------------------------------------------------------------------------------------------------------
@@ -118,7 +142,8 @@
118
142
  display: block;
119
143
 
120
144
  // Coarse-pointer touch-target floor. Parent .sk-sidebar.sk-dense opts out.
121
- .sk-sidebar:not(.sk-dense) &
145
+ .sk-sidebar:not(.sk-dense) &,
146
+ sk-sidebar:not([dense]) &
122
147
  {
123
148
  @include touch
124
149
  {