@skewedaspect/sleekspace-ui 0.2.0-beta.1 → 0.2.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/dist/components/Accordion/SkAccordion.vue.d.ts +65 -0
  2. package/dist/components/Accordion/SkAccordionItem.vue.d.ts +52 -0
  3. package/dist/components/Accordion/index.d.ts +3 -0
  4. package/dist/components/Accordion/types.d.ts +3 -0
  5. package/dist/components/Alert/SkAlert.vue.d.ts +39 -0
  6. package/dist/components/Alert/types.d.ts +4 -0
  7. package/dist/components/Avatar/SkAvatar.vue.d.ts +75 -0
  8. package/dist/components/Avatar/index.d.ts +2 -0
  9. package/dist/components/Avatar/types.d.ts +20 -0
  10. package/dist/components/Breadcrumbs/SkBreadcrumbItem.vue.d.ts +51 -0
  11. package/dist/components/Breadcrumbs/SkBreadcrumbSeparator.vue.d.ts +13 -0
  12. package/dist/components/Breadcrumbs/SkBreadcrumbs.vue.d.ts +24 -0
  13. package/dist/components/Breadcrumbs/index.d.ts +4 -0
  14. package/dist/components/Breadcrumbs/types.d.ts +18 -0
  15. package/dist/components/Button/SkButton.vue.d.ts +97 -0
  16. package/dist/components/Button/types.d.ts +5 -0
  17. package/dist/components/Card/SkCard.vue.d.ts +88 -0
  18. package/dist/components/Card/types.d.ts +2 -0
  19. package/dist/components/Checkbox/SkCheckbox.vue.d.ts +71 -0
  20. package/dist/components/Checkbox/index.d.ts +2 -0
  21. package/dist/components/Checkbox/types.d.ts +3 -0
  22. package/dist/components/Collapsible/SkCollapsible.vue.d.ts +70 -0
  23. package/dist/components/Collapsible/index.d.ts +2 -0
  24. package/dist/components/Collapsible/types.d.ts +2 -0
  25. package/dist/components/Divider/SkDivider.vue.d.ts +39 -0
  26. package/dist/components/Divider/types.d.ts +8 -0
  27. package/dist/components/Dropdown/SkDropdown.vue.d.ts +63 -0
  28. package/dist/components/Dropdown/SkDropdownMenuItem.vue.d.ts +32 -0
  29. package/dist/components/Dropdown/SkDropdownMenuSeparator.vue.d.ts +2 -0
  30. package/dist/components/Dropdown/SkDropdownSubmenu.vue.d.ts +34 -0
  31. package/dist/components/Dropdown/index.d.ts +5 -0
  32. package/dist/components/Dropdown/types.d.ts +4 -0
  33. package/dist/components/Field/SkField.vue.d.ts +99 -0
  34. package/dist/components/Field/index.d.ts +2 -0
  35. package/dist/components/Field/types.d.ts +1 -0
  36. package/dist/components/Group/SkGroup.vue.d.ts +29 -0
  37. package/dist/components/Group/types.d.ts +4 -0
  38. package/dist/components/Input/SkInput.vue.d.ts +84 -0
  39. package/dist/components/Input/index.d.ts +2 -0
  40. package/dist/components/Input/types.d.ts +4 -0
  41. package/dist/components/Listbox/SkListbox.vue.d.ts +62 -0
  42. package/dist/components/Listbox/SkListboxItem.vue.d.ts +34 -0
  43. package/dist/components/Listbox/SkListboxSeparator.vue.d.ts +2 -0
  44. package/dist/components/Listbox/index.d.ts +4 -0
  45. package/dist/components/Listbox/types.d.ts +3 -0
  46. package/dist/components/Modal/SkModal.vue.d.ts +108 -0
  47. package/dist/components/Modal/index.d.ts +2 -0
  48. package/dist/components/Modal/types.d.ts +3 -0
  49. package/dist/components/NavBar/SkNavBar.vue.d.ts +40 -0
  50. package/dist/components/NavBar/index.d.ts +2 -0
  51. package/dist/components/NavBar/types.d.ts +6 -0
  52. package/dist/components/NumberInput/SkNumberInput.vue.d.ts +93 -0
  53. package/dist/components/NumberInput/index.d.ts +2 -0
  54. package/dist/components/NumberInput/types.d.ts +3 -0
  55. package/dist/components/Page/SkPage.vue.d.ts +55 -0
  56. package/dist/components/Page/index.d.ts +2 -0
  57. package/dist/components/Page/types.d.ts +13 -0
  58. package/dist/components/Pagination/SkPagination.vue.d.ts +79 -0
  59. package/dist/components/Pagination/SkPaginationItem.vue.d.ts +44 -0
  60. package/dist/components/Pagination/index.d.ts +3 -0
  61. package/dist/components/Pagination/types.d.ts +24 -0
  62. package/dist/components/Panel/SkPanel.vue.d.ts +55 -0
  63. package/dist/components/Panel/types.d.ts +3 -0
  64. package/dist/components/Popover/SkPopover.vue.d.ts +94 -0
  65. package/dist/components/Popover/index.d.ts +2 -0
  66. package/dist/components/Popover/types.d.ts +4 -0
  67. package/dist/components/Progress/SkProgress.vue.d.ts +66 -0
  68. package/dist/components/Progress/index.d.ts +2 -0
  69. package/dist/components/Progress/types.d.ts +22 -0
  70. package/dist/components/Radio/SkRadio.vue.d.ts +59 -0
  71. package/dist/components/Radio/SkRadioGroup.vue.d.ts +85 -0
  72. package/dist/components/Radio/index.d.ts +3 -0
  73. package/dist/components/Radio/types.d.ts +4 -0
  74. package/dist/components/Sidebar/SkSidebar.vue.d.ts +38 -0
  75. package/dist/components/Sidebar/SkSidebarItem.vue.d.ts +37 -0
  76. package/dist/components/Sidebar/SkSidebarSection.vue.d.ts +44 -0
  77. package/dist/components/Sidebar/types.d.ts +2 -0
  78. package/dist/components/Skeleton/SkSkeleton.vue.d.ts +55 -0
  79. package/dist/components/Skeleton/index.d.ts +2 -0
  80. package/dist/components/Skeleton/types.d.ts +21 -0
  81. package/dist/components/Slider/SkSlider.vue.d.ts +100 -0
  82. package/dist/components/Slider/index.d.ts +2 -0
  83. package/dist/components/Slider/types.d.ts +32 -0
  84. package/dist/components/Spinner/SkSpinner.vue.d.ts +39 -0
  85. package/dist/components/Spinner/index.d.ts +2 -0
  86. package/dist/components/Spinner/types.d.ts +16 -0
  87. package/dist/components/Switch/SkSwitch.vue.d.ts +120 -0
  88. package/dist/components/Switch/index.d.ts +2 -0
  89. package/dist/components/Switch/types.d.ts +3 -0
  90. package/dist/components/Table/SkTable.vue.d.ts +86 -0
  91. package/dist/components/Table/index.d.ts +2 -0
  92. package/dist/components/Table/types.d.ts +3 -0
  93. package/dist/components/Tabs/SkTab.vue.d.ts +49 -0
  94. package/dist/components/Tabs/SkTabList.vue.d.ts +28 -0
  95. package/dist/components/Tabs/SkTabPanel.vue.d.ts +33 -0
  96. package/dist/components/Tabs/SkTabPanels.vue.d.ts +17 -0
  97. package/dist/components/Tabs/SkTabs.vue.d.ts +60 -0
  98. package/dist/components/Tabs/types.d.ts +5 -0
  99. package/dist/components/Tag/SkTag.vue.d.ts +58 -0
  100. package/dist/components/Tag/types.d.ts +8 -0
  101. package/dist/components/TagsInput/SkTagsInput.vue.d.ts +77 -0
  102. package/dist/components/TagsInput/index.d.ts +2 -0
  103. package/dist/components/TagsInput/types.d.ts +3 -0
  104. package/dist/components/Textarea/SkTextarea.vue.d.ts +85 -0
  105. package/dist/components/Textarea/index.d.ts +2 -0
  106. package/dist/components/Textarea/types.d.ts +3 -0
  107. package/dist/components/Theme/SkTheme.vue.d.ts +20 -0
  108. package/dist/components/Theme/types.d.ts +16 -0
  109. package/dist/components/Theme/useTheme.d.ts +84 -0
  110. package/dist/components/Toast/SkToast.vue.d.ts +42 -0
  111. package/dist/components/Toast/SkToastProvider.vue.d.ts +62 -0
  112. package/dist/components/Toast/index.d.ts +3 -0
  113. package/dist/components/Toast/types.d.ts +35 -0
  114. package/dist/components/Toast/useToast.d.ts +33 -0
  115. package/dist/components/Tooltip/SkTooltip.vue.d.ts +81 -0
  116. package/dist/components/Tooltip/SkTooltipProvider.vue.d.ts +70 -0
  117. package/dist/components/Tooltip/index.d.ts +3 -0
  118. package/dist/components/Tooltip/types.d.ts +4 -0
  119. package/dist/composables/useCustomColors.d.ts +74 -0
  120. package/dist/composables/useCustomColors.test.d.ts +1 -0
  121. package/dist/composables/usePortalContext.d.ts +75 -0
  122. package/dist/composables/usePortalContext.test.d.ts +1 -0
  123. package/dist/index.d.ts +149 -0
  124. package/dist/sleekspace-ui.css +2 -16
  125. package/dist/sleekspace-ui.es.js +43 -42
  126. package/dist/sleekspace-ui.umd.js +43 -42
  127. package/dist/tokens.css +968 -0
  128. package/dist/types.d.ts +29 -0
  129. package/docs/components/accordion/_meta.yaml +9 -0
  130. package/docs/components/accordion/custom-colors.md +20 -0
  131. package/docs/components/accordion/intro.md +8 -0
  132. package/docs/components/accordion/kinds.md +30 -0
  133. package/docs/components/accordion/multiple.md +28 -0
  134. package/docs/components/accordion/real-world.md +31 -0
  135. package/docs/components/accordion/usage.md +28 -0
  136. package/docs/components/alert/_meta.yaml +10 -0
  137. package/docs/components/alert/custom-colors.md +30 -0
  138. package/docs/components/alert/custom-icons.md +17 -0
  139. package/docs/components/alert/intro.md +8 -0
  140. package/docs/components/alert/kinds.md +24 -0
  141. package/docs/components/alert/prominent.md +16 -0
  142. package/docs/components/alert/rich-content.md +19 -0
  143. package/docs/components/alert/usage.md +12 -0
  144. package/docs/components/avatar/_meta.yaml +10 -0
  145. package/docs/components/avatar/custom-colors.md +14 -0
  146. package/docs/components/avatar/images.md +12 -0
  147. package/docs/components/avatar/intro.md +8 -0
  148. package/docs/components/avatar/kinds.md +16 -0
  149. package/docs/components/avatar/real-world.md +25 -0
  150. package/docs/components/avatar/sizes.md +14 -0
  151. package/docs/components/avatar/usage.md +15 -0
  152. package/docs/components/breadcrumbs/_meta.yaml +9 -0
  153. package/docs/components/breadcrumbs/custom-colors.md +14 -0
  154. package/docs/components/breadcrumbs/intro.md +8 -0
  155. package/docs/components/breadcrumbs/kinds.md +16 -0
  156. package/docs/components/breadcrumbs/real-world.md +33 -0
  157. package/docs/components/breadcrumbs/separators.md +13 -0
  158. package/docs/components/breadcrumbs/usage.md +15 -0
  159. package/docs/components/card/_meta.yaml +10 -0
  160. package/docs/components/card/intro.md +8 -0
  161. package/docs/components/card/kinds.md +24 -0
  162. package/docs/components/card/media.md +25 -0
  163. package/docs/components/card/neon-kinds.md +24 -0
  164. package/docs/components/card/no-decoration.md +15 -0
  165. package/docs/components/card/scrollable.md +23 -0
  166. package/docs/components/card/usage.md +12 -0
  167. package/docs/components/checkbox/_meta.yaml +11 -0
  168. package/docs/components/checkbox/color-kinds.md +17 -0
  169. package/docs/components/checkbox/custom-colors.md +21 -0
  170. package/docs/components/checkbox/form-example.md +24 -0
  171. package/docs/components/checkbox/intro.md +8 -0
  172. package/docs/components/checkbox/kinds.md +16 -0
  173. package/docs/components/checkbox/sizes.md +13 -0
  174. package/docs/components/checkbox/states.md +14 -0
  175. package/docs/components/checkbox/usage.md +17 -0
  176. package/docs/components/collapsible/_meta.yaml +9 -0
  177. package/docs/components/collapsible/accessibility.md +6 -0
  178. package/docs/components/collapsible/custom-colors.md +16 -0
  179. package/docs/components/collapsible/custom-trigger.md +35 -0
  180. package/docs/components/collapsible/intro.md +8 -0
  181. package/docs/components/collapsible/kinds.md +16 -0
  182. package/docs/components/collapsible/usage.md +22 -0
  183. package/docs/components/divider/_meta.yaml +10 -0
  184. package/docs/components/divider/accessibility.md +6 -0
  185. package/docs/components/divider/intro.md +8 -0
  186. package/docs/components/divider/kinds.md +16 -0
  187. package/docs/components/divider/orientation.md +18 -0
  188. package/docs/components/divider/sizes.md +24 -0
  189. package/docs/components/divider/usage.md +14 -0
  190. package/docs/components/divider/variants.md +14 -0
  191. package/docs/components/dropdown/_meta.yaml +11 -0
  192. package/docs/components/dropdown/accessibility.md +6 -0
  193. package/docs/components/dropdown/custom-colors.md +17 -0
  194. package/docs/components/dropdown/custom-trigger.md +18 -0
  195. package/docs/components/dropdown/intro.md +8 -0
  196. package/docs/components/dropdown/kinds.md +23 -0
  197. package/docs/components/dropdown/positioning.md +23 -0
  198. package/docs/components/dropdown/submenus.md +28 -0
  199. package/docs/components/dropdown/usage.md +24 -0
  200. package/docs/components/field/_meta.yaml +10 -0
  201. package/docs/components/field/accessibility.md +6 -0
  202. package/docs/components/field/description.md +15 -0
  203. package/docs/components/field/intro.md +8 -0
  204. package/docs/components/field/label-position.md +16 -0
  205. package/docs/components/field/required.md +12 -0
  206. package/docs/components/field/usage.md +19 -0
  207. package/docs/components/field/validation.md +32 -0
  208. package/docs/components/group/_meta.yaml +7 -0
  209. package/docs/components/group/accessibility.md +6 -0
  210. package/docs/components/group/intro.md +8 -0
  211. package/docs/components/group/orientation.md +22 -0
  212. package/docs/components/group/usage.md +14 -0
  213. package/docs/components/input/_meta.yaml +11 -0
  214. package/docs/components/input/accessibility.md +6 -0
  215. package/docs/components/input/custom-colors.md +21 -0
  216. package/docs/components/input/intro.md +8 -0
  217. package/docs/components/input/kinds.md +16 -0
  218. package/docs/components/input/sizes.md +13 -0
  219. package/docs/components/input/states.md +12 -0
  220. package/docs/components/input/types.md +15 -0
  221. package/docs/components/input/usage.md +17 -0
  222. package/docs/components/listbox/_meta.yaml +12 -0
  223. package/docs/components/listbox/color-kinds.md +27 -0
  224. package/docs/components/listbox/custom-colors.md +18 -0
  225. package/docs/components/listbox/form-example.md +36 -0
  226. package/docs/components/listbox/intro.md +8 -0
  227. package/docs/components/listbox/kinds.md +30 -0
  228. package/docs/components/listbox/separators.md +19 -0
  229. package/docs/components/listbox/sizes.md +24 -0
  230. package/docs/components/listbox/states.md +19 -0
  231. package/docs/components/listbox/usage.md +23 -0
  232. package/docs/components/modal/_meta.yaml +13 -0
  233. package/docs/components/modal/close-behaviors.md +49 -0
  234. package/docs/components/modal/confirmation.md +19 -0
  235. package/docs/components/modal/controlled-state.md +29 -0
  236. package/docs/components/modal/custom-colors.md +25 -0
  237. package/docs/components/modal/custom-trigger.md +28 -0
  238. package/docs/components/modal/form-modal.md +23 -0
  239. package/docs/components/modal/intro.md +8 -0
  240. package/docs/components/modal/kinds.md +30 -0
  241. package/docs/components/modal/sizes.md +21 -0
  242. package/docs/components/modal/usage.md +15 -0
  243. package/docs/components/navbar/_meta.yaml +11 -0
  244. package/docs/components/navbar/complex-layouts.md +34 -0
  245. package/docs/components/navbar/custom-colors.md +24 -0
  246. package/docs/components/navbar/icons.md +33 -0
  247. package/docs/components/navbar/intro.md +8 -0
  248. package/docs/components/navbar/kinds.md +24 -0
  249. package/docs/components/navbar/neon-colors.md +24 -0
  250. package/docs/components/navbar/sticky.md +22 -0
  251. package/docs/components/navbar/usage.md +25 -0
  252. package/docs/components/number-input/_meta.yaml +12 -0
  253. package/docs/components/number-input/color-kinds.md +17 -0
  254. package/docs/components/number-input/custom-colors.md +21 -0
  255. package/docs/components/number-input/form-example.md +55 -0
  256. package/docs/components/number-input/intro.md +8 -0
  257. package/docs/components/number-input/kinds.md +16 -0
  258. package/docs/components/number-input/min-max-step.md +11 -0
  259. package/docs/components/number-input/sizes.md +13 -0
  260. package/docs/components/number-input/states.md +12 -0
  261. package/docs/components/number-input/usage.md +18 -0
  262. package/docs/components/page/_meta.yaml +9 -0
  263. package/docs/components/page/custom-width.md +17 -0
  264. package/docs/components/page/fixed-header.md +17 -0
  265. package/docs/components/page/intro.md +8 -0
  266. package/docs/components/page/real-world.md +37 -0
  267. package/docs/components/page/sidebar-position.md +18 -0
  268. package/docs/components/page/usage.md +33 -0
  269. package/docs/components/pagination/_meta.yaml +12 -0
  270. package/docs/components/pagination/config-options.md +17 -0
  271. package/docs/components/pagination/custom-colors.md +15 -0
  272. package/docs/components/pagination/intro.md +8 -0
  273. package/docs/components/pagination/kinds.md +13 -0
  274. package/docs/components/pagination/sizes.md +14 -0
  275. package/docs/components/pagination/states.md +10 -0
  276. package/docs/components/pagination/table-example.md +28 -0
  277. package/docs/components/pagination/usage.md +10 -0
  278. package/docs/components/pagination/variants.md +13 -0
  279. package/docs/components/panel/_meta.yaml +10 -0
  280. package/docs/components/panel/custom-colors.md +18 -0
  281. package/docs/components/panel/decoration.md +20 -0
  282. package/docs/components/panel/intro.md +8 -0
  283. package/docs/components/panel/kinds.md +23 -0
  284. package/docs/components/panel/scrollable.md +18 -0
  285. package/docs/components/panel/sizes.md +20 -0
  286. package/docs/components/panel/usage.md +13 -0
  287. package/docs/components/popover/_meta.yaml +9 -0
  288. package/docs/components/popover/arrow.md +15 -0
  289. package/docs/components/popover/custom-colors.md +19 -0
  290. package/docs/components/popover/intro.md +8 -0
  291. package/docs/components/popover/kinds.md +24 -0
  292. package/docs/components/popover/positioning.md +36 -0
  293. package/docs/components/popover/usage.md +15 -0
  294. package/docs/components/progress/_meta.yaml +10 -0
  295. package/docs/components/progress/custom-colors.md +14 -0
  296. package/docs/components/progress/indeterminate.md +11 -0
  297. package/docs/components/progress/intro.md +8 -0
  298. package/docs/components/progress/kinds.md +16 -0
  299. package/docs/components/progress/sizes.md +14 -0
  300. package/docs/components/progress/usage.md +13 -0
  301. package/docs/components/progress/value-label.md +12 -0
  302. package/docs/components/radio/_meta.yaml +10 -0
  303. package/docs/components/radio/custom-colors.md +24 -0
  304. package/docs/components/radio/intro.md +8 -0
  305. package/docs/components/radio/kinds.md +23 -0
  306. package/docs/components/radio/orientation.md +22 -0
  307. package/docs/components/radio/sizes.md +23 -0
  308. package/docs/components/radio/states.md +21 -0
  309. package/docs/components/radio/usage.md +21 -0
  310. package/docs/components/sidebar/_meta.yaml +10 -0
  311. package/docs/components/sidebar/active-state.md +35 -0
  312. package/docs/components/sidebar/custom-colors.md +20 -0
  313. package/docs/components/sidebar/intro.md +8 -0
  314. package/docs/components/sidebar/kinds.md +22 -0
  315. package/docs/components/sidebar/router.md +24 -0
  316. package/docs/components/sidebar/sections.md +24 -0
  317. package/docs/components/sidebar/usage.md +25 -0
  318. package/docs/components/skeleton/_meta.yaml +8 -0
  319. package/docs/components/skeleton/animations.md +17 -0
  320. package/docs/components/skeleton/composition.md +22 -0
  321. package/docs/components/skeleton/intro.md +8 -0
  322. package/docs/components/skeleton/usage.md +12 -0
  323. package/docs/components/skeleton/variants.md +17 -0
  324. package/docs/components/slider/_meta.yaml +12 -0
  325. package/docs/components/slider/accessibility.md +6 -0
  326. package/docs/components/slider/custom-colors.md +14 -0
  327. package/docs/components/slider/intro.md +8 -0
  328. package/docs/components/slider/kinds.md +16 -0
  329. package/docs/components/slider/range.md +16 -0
  330. package/docs/components/slider/sizes.md +14 -0
  331. package/docs/components/slider/step.md +13 -0
  332. package/docs/components/slider/usage.md +16 -0
  333. package/docs/components/slider/vertical.md +14 -0
  334. package/docs/components/spinner/_meta.yaml +10 -0
  335. package/docs/components/spinner/accessibility.md +6 -0
  336. package/docs/components/spinner/custom-colors.md +13 -0
  337. package/docs/components/spinner/intro.md +8 -0
  338. package/docs/components/spinner/kinds.md +16 -0
  339. package/docs/components/spinner/sizes.md +14 -0
  340. package/docs/components/spinner/usage.md +10 -0
  341. package/docs/components/spinner/variants.md +12 -0
  342. package/docs/components/switch/_meta.yaml +12 -0
  343. package/docs/components/switch/accessibility.md +6 -0
  344. package/docs/components/switch/custom-colors.md +29 -0
  345. package/docs/components/switch/disabled.md +11 -0
  346. package/docs/components/switch/dynamic-labels.md +12 -0
  347. package/docs/components/switch/intro.md +8 -0
  348. package/docs/components/switch/kinds.md +16 -0
  349. package/docs/components/switch/sizes.md +14 -0
  350. package/docs/components/switch/thumb-color.md +16 -0
  351. package/docs/components/switch/usage.md +18 -0
  352. package/docs/components/table/_meta.yaml +12 -0
  353. package/docs/components/table/accessibility.md +6 -0
  354. package/docs/components/table/borders.md +17 -0
  355. package/docs/components/table/hoverable.md +26 -0
  356. package/docs/components/table/intro.md +8 -0
  357. package/docs/components/table/kinds.md +18 -0
  358. package/docs/components/table/striped.md +28 -0
  359. package/docs/components/table/subtle.md +26 -0
  360. package/docs/components/table/usage.md +30 -0
  361. package/docs/components/table/variants.md +23 -0
  362. package/docs/components/tabs/_meta.yaml +10 -0
  363. package/docs/components/tabs/accessibility.md +6 -0
  364. package/docs/components/tabs/custom-colors.md +23 -0
  365. package/docs/components/tabs/icons.md +23 -0
  366. package/docs/components/tabs/intro.md +8 -0
  367. package/docs/components/tabs/kinds.md +30 -0
  368. package/docs/components/tabs/usage.md +38 -0
  369. package/docs/components/tabs/vertical.md +23 -0
  370. package/docs/components/tag/_meta.yaml +11 -0
  371. package/docs/components/tag/accessibility.md +6 -0
  372. package/docs/components/tag/custom-colors.md +32 -0
  373. package/docs/components/tag/intro.md +8 -0
  374. package/docs/components/tag/kinds.md +16 -0
  375. package/docs/components/tag/removable.md +33 -0
  376. package/docs/components/tag/sizes.md +13 -0
  377. package/docs/components/tag/usage.md +13 -0
  378. package/docs/components/tag/variants.md +13 -0
  379. package/docs/components/tags-input/_meta.yaml +13 -0
  380. package/docs/components/tags-input/color-kinds.md +17 -0
  381. package/docs/components/tags-input/custom-colors.md +21 -0
  382. package/docs/components/tags-input/form-example.md +30 -0
  383. package/docs/components/tags-input/intro.md +8 -0
  384. package/docs/components/tags-input/kinds.md +16 -0
  385. package/docs/components/tags-input/max-tags.md +10 -0
  386. package/docs/components/tags-input/sizes.md +13 -0
  387. package/docs/components/tags-input/states.md +10 -0
  388. package/docs/components/tags-input/tag-customization.md +17 -0
  389. package/docs/components/tags-input/usage.md +17 -0
  390. package/docs/components/textarea/_meta.yaml +12 -0
  391. package/docs/components/textarea/color-kinds.md +17 -0
  392. package/docs/components/textarea/custom-colors.md +21 -0
  393. package/docs/components/textarea/form-example.md +37 -0
  394. package/docs/components/textarea/intro.md +8 -0
  395. package/docs/components/textarea/kinds.md +16 -0
  396. package/docs/components/textarea/rows.md +12 -0
  397. package/docs/components/textarea/sizes.md +13 -0
  398. package/docs/components/textarea/states.md +12 -0
  399. package/docs/components/textarea/usage.md +17 -0
  400. package/docs/components/theme/_meta.yaml +9 -0
  401. package/docs/components/theme/available-themes.md +16 -0
  402. package/docs/components/theme/intro.md +8 -0
  403. package/docs/components/theme/nested-themes.md +16 -0
  404. package/docs/components/theme/portal-components.md +19 -0
  405. package/docs/components/theme/programmatic-switching.md +19 -0
  406. package/docs/components/theme/usage.md +16 -0
  407. package/docs/components/toast/_meta.yaml +11 -0
  408. package/docs/components/toast/dismiss.md +15 -0
  409. package/docs/components/toast/duration.md +23 -0
  410. package/docs/components/toast/intro.md +8 -0
  411. package/docs/components/toast/kinds.md +13 -0
  412. package/docs/components/toast/real-world.md +23 -0
  413. package/docs/components/toast/setup.md +16 -0
  414. package/docs/components/toast/usage.md +18 -0
  415. package/docs/components/toast/with-title.md +14 -0
  416. package/docs/components/tooltip/_meta.yaml +14 -0
  417. package/docs/components/tooltip/alignment.md +24 -0
  418. package/docs/components/tooltip/app-level-provider.md +21 -0
  419. package/docs/components/tooltip/arrow.md +21 -0
  420. package/docs/components/tooltip/custom-colors.md +24 -0
  421. package/docs/components/tooltip/delay.md +27 -0
  422. package/docs/components/tooltip/intro.md +8 -0
  423. package/docs/components/tooltip/kinds.md +27 -0
  424. package/docs/components/tooltip/positioning.md +24 -0
  425. package/docs/components/tooltip/provider.md +26 -0
  426. package/docs/components/tooltip/real-world.md +32 -0
  427. package/docs/components/tooltip/usage.md +15 -0
  428. package/docs/guides/ai-llms.md +63 -0
  429. package/docs/guides/design-tokens/_meta.yaml +14 -0
  430. package/docs/guides/design-tokens/advanced.md +60 -0
  431. package/docs/guides/design-tokens/architecture.md +11 -0
  432. package/docs/guides/design-tokens/best-practices.md +21 -0
  433. package/docs/guides/design-tokens/component-tokens.md +37 -0
  434. package/docs/guides/design-tokens/foundation-colors.md +13 -0
  435. package/docs/guides/design-tokens/foundation-other.md +41 -0
  436. package/docs/guides/design-tokens/intro.md +19 -0
  437. package/docs/guides/design-tokens/semantic-kinds.md +33 -0
  438. package/docs/guides/design-tokens/semantic-states.md +55 -0
  439. package/docs/guides/design-tokens/themes.md +38 -0
  440. package/docs/guides/design-tokens/usage.md +55 -0
  441. package/package.json +3 -5
  442. package/src/components/Accordion/SkAccordion.vue +51 -37
  443. package/src/components/Accordion/SkAccordionItem.vue +40 -20
  444. package/src/components/Alert/SkAlert.vue +37 -27
  445. package/src/components/Avatar/SkAvatar.vue +69 -10
  446. package/src/components/Breadcrumbs/SkBreadcrumbItem.vue +63 -1
  447. package/src/components/Breadcrumbs/SkBreadcrumbSeparator.vue +32 -3
  448. package/src/components/Breadcrumbs/SkBreadcrumbs.vue +36 -0
  449. package/src/components/Button/SkButton.vue +83 -17
  450. package/src/components/Card/SkCard.vue +84 -17
  451. package/src/components/Checkbox/SkCheckbox.vue +52 -12
  452. package/src/components/Collapsible/SkCollapsible.vue +65 -27
  453. package/src/components/Divider/SkDivider.vue +51 -11
  454. package/src/components/Dropdown/SkDropdown.vue +54 -11
  455. package/src/components/Dropdown/SkDropdownMenuItem.vue +25 -6
  456. package/src/components/Dropdown/SkDropdownMenuSeparator.vue +16 -2
  457. package/src/components/Dropdown/SkDropdownSubmenu.vue +30 -8
  458. package/src/components/Field/SkField.vue +83 -15
  459. package/src/components/Group/SkGroup.vue +24 -9
  460. package/src/components/Input/SkInput.vue +77 -15
  461. package/src/components/Listbox/SkListbox.vue +48 -10
  462. package/src/components/Listbox/SkListboxItem.vue +28 -7
  463. package/src/components/Listbox/SkListboxSeparator.vue +16 -2
  464. package/src/components/Modal/SkModal.vue +85 -36
  465. package/src/components/NavBar/SkNavBar.vue +39 -9
  466. package/src/components/NumberInput/SkNumberInput.vue +85 -16
  467. package/src/components/Page/SkPage.vue +55 -6
  468. package/src/components/Pagination/SkPagination.vue +88 -0
  469. package/src/components/Pagination/SkPaginationItem.vue +51 -1
  470. package/src/components/Panel/SkPanel.vue +46 -12
  471. package/src/components/Popover/SkPopover.vue +91 -36
  472. package/src/components/Progress/SkProgress.vue +74 -10
  473. package/src/components/Radio/SkRadio.vue +48 -12
  474. package/src/components/Radio/SkRadioGroup.vue +69 -13
  475. package/src/components/Sidebar/SkSidebar.vue +36 -29
  476. package/src/components/Sidebar/SkSidebarItem.vue +34 -9
  477. package/src/components/Sidebar/SkSidebarSection.vue +22 -8
  478. package/src/components/Skeleton/SkSkeleton.vue +75 -8
  479. package/src/components/Slider/SkSlider.vue +91 -15
  480. package/src/components/Spinner/SkSpinner.vue +50 -6
  481. package/src/components/Switch/SkSwitch.vue +98 -35
  482. package/src/components/Table/SkTable.vue +79 -15
  483. package/src/components/Tabs/SkTab.vue +41 -11
  484. package/src/components/Tabs/SkTabList.vue +24 -8
  485. package/src/components/Tabs/SkTabPanel.vue +31 -9
  486. package/src/components/Tabs/SkTabPanels.vue +21 -4
  487. package/src/components/Tabs/SkTabs.vue +49 -37
  488. package/src/components/Tag/SkTag.vue +57 -32
  489. package/src/components/TagsInput/SkTagsInput.vue +75 -14
  490. package/src/components/Textarea/SkTextarea.vue +78 -15
  491. package/src/components/Theme/SkTheme.vue +27 -3
  492. package/src/components/Theme/types.ts +14 -5
  493. package/src/components/Toast/SkToast.vue +56 -9
  494. package/src/components/Toast/SkToastProvider.vue +43 -17
  495. package/src/components/Tooltip/SkTooltip.vue +66 -35
  496. package/src/components/Tooltip/SkTooltipProvider.vue +36 -36
  497. package/src/composables/usePortalContext.test.ts +2 -0
  498. package/src/styles/components/_alert.scss +0 -22
  499. package/web-types.json +302 -282
  500. package/docs/components/accordion.md +0 -92
  501. package/docs/components/alert.md +0 -72
  502. package/docs/components/avatar.md +0 -69
  503. package/docs/components/breadcrumbs.md +0 -65
  504. package/docs/components/button.md +0 -110
  505. package/docs/components/card.md +0 -87
  506. package/docs/components/checkbox.md +0 -77
  507. package/docs/components/collapsible.md +0 -71
  508. package/docs/components/divider.md +0 -62
  509. package/docs/components/dropdown.md +0 -88
  510. package/docs/components/field.md +0 -80
  511. package/docs/components/group.md +0 -41
  512. package/docs/components/input.md +0 -84
  513. package/docs/components/listbox.md +0 -82
  514. package/docs/components/modal.md +0 -101
  515. package/docs/components/navbar.md +0 -64
  516. package/docs/components/number-input.md +0 -78
  517. package/docs/components/page.md +0 -77
  518. package/docs/components/pagination.md +0 -88
  519. package/docs/components/panel.md +0 -74
  520. package/docs/components/popover.md +0 -93
  521. package/docs/components/progress.md +0 -76
  522. package/docs/components/radio.md +0 -86
  523. package/docs/components/sidebar.md +0 -74
  524. package/docs/components/skeleton.md +0 -76
  525. package/docs/components/slider.md +0 -94
  526. package/docs/components/spinner.md +0 -59
  527. package/docs/components/switch.md +0 -97
  528. package/docs/components/table.md +0 -91
  529. package/docs/components/tabs.md +0 -108
  530. package/docs/components/tag.md +0 -75
  531. package/docs/components/tags-input.md +0 -88
  532. package/docs/components/textarea.md +0 -80
  533. package/docs/components/theme.md +0 -65
  534. package/docs/components/toast.md +0 -95
  535. package/docs/components/tooltip.md +0 -90
  536. package/docs/guides/design-tokens.md +0 -105
@@ -0,0 +1,3 @@
1
+ import { ComponentKind, ComponentSize } from '../../types';
2
+ export type SkTextareaKind = ComponentKind;
3
+ export type SkTextareaSize = ComponentSize;
@@ -0,0 +1,20 @@
1
+ import { SkThemeComponentProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {}): any;
6
+ };
7
+ refs: {};
8
+ rootEl: HTMLDivElement;
9
+ };
10
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
+ declare const __VLS_component: import('vue').DefineComponent<SkThemeComponentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkThemeComponentProps> & Readonly<{}>, {
12
+ theme: import('./types').SkThemeName;
13
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
14
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
15
+ export default _default;
16
+ type __VLS_WithTemplateSlots<T, S> = T & {
17
+ new (): {
18
+ $slots: S;
19
+ };
20
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Available theme names that control the overall color scheme of the application.
3
+ * - 'greyscale': A monochromatic theme with neutral grays and subtle accents
4
+ * - 'colorful': A vibrant theme with saturated colors and stronger contrasts
5
+ */
6
+ export type SkThemeName = 'greyscale' | 'colorful';
7
+ export interface SkThemeComponentProps {
8
+ /**
9
+ * The active theme name that controls the color scheme for all child components.
10
+ * Changing this prop reactively updates the theme across the entire subtree.
11
+ * Portal components (dropdowns, modals, tooltips) automatically inherit this
12
+ * theme even though they render outside the DOM hierarchy.
13
+ * @default 'greyscale'
14
+ */
15
+ theme?: SkThemeName;
16
+ }
@@ -0,0 +1,84 @@
1
+ import { Ref } from 'vue';
2
+ import { SkThemeName } from './types';
3
+ /**
4
+ * Context object for theme management.
5
+ * Provides reactive theme state and methods to change the theme.
6
+ */
7
+ export interface ThemeContext {
8
+ /** Reactive reference to the currently active theme */
9
+ currentTheme: Ref<SkThemeName>;
10
+ /** Function to change the active theme */
11
+ setTheme: (theme: SkThemeName) => void;
12
+ }
13
+ /**
14
+ * Provides theme context to child components.
15
+ * Call this function at the root of your component tree (typically in SkTheme component).
16
+ *
17
+ * @param initialTheme - The initial theme to use. Defaults to 'greyscale'
18
+ * @returns ThemeContext object containing currentTheme ref and setTheme function
19
+ *
20
+ * @example Basic usage
21
+ * ```ts
22
+ * const theme = provideTheme('blue');
23
+ * ```
24
+ *
25
+ * @example Changing theme
26
+ * ```ts
27
+ * const theme = provideTheme();
28
+ * theme.setTheme('blue'); // Switch to blue theme
29
+ * ```
30
+ */
31
+ export declare function provideTheme(initialTheme?: SkThemeName): ThemeContext;
32
+ /**
33
+ * Accesses the theme context in a child component.
34
+ * Must be called within a component that has an SkTheme ancestor.
35
+ *
36
+ * @returns ThemeContext object containing currentTheme ref and setTheme function
37
+ * @throws Error if called outside of an SkTheme component tree
38
+ *
39
+ * @example Get current theme
40
+ * ```vue
41
+ * <script setup>
42
+ * import { useTheme } from '@skewedaspect/sleekspace-ui';
43
+ *
44
+ * const { currentTheme } = useTheme();
45
+ * console.log(currentTheme.value); // 'greyscale', 'blue', etc.
46
+ * </script>
47
+ * ```
48
+ *
49
+ * @example Change theme
50
+ * ```vue
51
+ * <script setup>
52
+ * import { useTheme } from '@skewedaspect/sleekspace-ui';
53
+ *
54
+ * const { setTheme } = useTheme();
55
+ *
56
+ * function switchToDarkTheme() {
57
+ * setTheme('blue');
58
+ * }
59
+ * </script>
60
+ *
61
+ * <template>
62
+ * <button @click="switchToDarkTheme">Switch to Blue Theme</button>
63
+ * </template>
64
+ * ```
65
+ *
66
+ * @example Reactive theme usage
67
+ * ```vue
68
+ * <script setup>
69
+ * import { computed } from 'vue';
70
+ * import { useTheme } from '@skewedaspect/sleekspace-ui';
71
+ *
72
+ * const { currentTheme } = useTheme();
73
+ * const isDarkTheme = computed(() => currentTheme.value === 'blue');
74
+ * </script>
75
+ *
76
+ * <template>
77
+ * <div>
78
+ * Current theme: {{ currentTheme }}
79
+ * <span v-if="isDarkTheme">Dark mode active</span>
80
+ * </div>
81
+ * </template>
82
+ * ```
83
+ */
84
+ export declare function useTheme(): ThemeContext;
@@ -0,0 +1,42 @@
1
+ import { SkToastKind } from './types';
2
+ interface SkToastProps {
3
+ /**
4
+ * Unique identifier for this toast instance. Used internally for tracking and dismissing
5
+ * specific toasts. Generated automatically by SkToastProvider when using useToast().
6
+ */
7
+ id: string;
8
+ /**
9
+ * Semantic color kind that determines the toast's visual appearance and icon. Each kind
10
+ * displays a contextually appropriate icon: info (circle-i), success (checkmark),
11
+ * warning (triangle), danger (x-circle). The kind also sets the background and text colors.
12
+ */
13
+ kind: SkToastKind;
14
+ /**
15
+ * Optional bold title text displayed above the message. Use for brief headings like
16
+ * "Success!", "Error", or "Warning". When omitted, only the message is displayed.
17
+ */
18
+ title?: string;
19
+ /**
20
+ * The main toast message content. This is the primary text users will read, describing
21
+ * what happened or what action was taken. Keep messages concise and actionable.
22
+ */
23
+ message: string;
24
+ /**
25
+ * Time in milliseconds before the toast automatically dismisses. Set to 0 or undefined
26
+ * to disable auto-dismiss and require manual closure. When set, a progress indicator
27
+ * may show remaining time. Overrides the provider's default duration.
28
+ */
29
+ duration?: number;
30
+ /**
31
+ * When true, displays an X button allowing users to manually dismiss the toast before
32
+ * the duration expires. Essential for toasts with important information users may need
33
+ * more time to read, or when auto-dismiss is disabled.
34
+ */
35
+ closable: boolean;
36
+ }
37
+ declare const _default: import('vue').DefineComponent<SkToastProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
38
+ dismiss: (id: string) => any;
39
+ }, string, import('vue').PublicProps, Readonly<SkToastProps> & Readonly<{
40
+ onDismiss?: ((id: string) => any) | undefined;
41
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
42
+ export default _default;
@@ -0,0 +1,62 @@
1
+ import { SkToastPosition, SkToastSwipeDirection } from './types';
2
+ export interface SkToastProviderComponentProps {
3
+ /**
4
+ * Preset position for the toast viewport on the screen. Controls where toasts appear
5
+ * and stack. Choose a position that doesn't obstruct important UI elements. Common
6
+ * choices are 'bottom-right' for desktop apps and 'top-center' for mobile-first designs.
7
+ * When omitted, you can position the viewport via custom CSS instead.
8
+ * @default undefined
9
+ */
10
+ position?: SkToastPosition;
11
+ /**
12
+ * Default duration in milliseconds before toasts automatically dismiss. Individual
13
+ * toasts can override this value. Set to 0 to disable auto-dismiss by default,
14
+ * requiring users to manually close each toast. Recommended range: 3000-7000ms.
15
+ * @default 5000
16
+ */
17
+ duration?: number;
18
+ /**
19
+ * Direction users can swipe to dismiss toasts on touch devices. The natural direction
20
+ * often matches the toast position - 'right' for right-positioned toasts, 'up' for
21
+ * top-positioned, etc. Set to the direction that feels like "dismissing" the toast.
22
+ * @default 'right'
23
+ */
24
+ swipeDirection?: SkToastSwipeDirection;
25
+ /**
26
+ * Minimum distance in pixels a user must swipe before the toast dismisses. Lower values
27
+ * make dismissal easier but may cause accidental dismissals. Higher values require more
28
+ * intentional swipes. Balance based on your target devices and user needs.
29
+ * @default 50
30
+ */
31
+ swipeThreshold?: number;
32
+ /**
33
+ * Keyboard shortcut(s) to focus the toast region for screen reader users and keyboard
34
+ * navigation. When pressed, focus moves to the toast viewport. Use an array to define
35
+ * multiple shortcuts. Keys use standard keyboard event key names.
36
+ * @default ['F8']
37
+ */
38
+ hotkey?: string[];
39
+ }
40
+ declare function __VLS_template(): {
41
+ attrs: Partial<{}>;
42
+ slots: {
43
+ default?(_: {}): any;
44
+ };
45
+ refs: {};
46
+ rootEl: any;
47
+ };
48
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
49
+ declare const __VLS_component: import('vue').DefineComponent<SkToastProviderComponentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkToastProviderComponentProps> & Readonly<{}>, {
50
+ position: SkToastPosition;
51
+ duration: number;
52
+ swipeDirection: SkToastSwipeDirection;
53
+ swipeThreshold: number;
54
+ hotkey: string[];
55
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
56
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
57
+ export default _default;
58
+ type __VLS_WithTemplateSlots<T, S> = T & {
59
+ new (): {
60
+ $slots: S;
61
+ };
62
+ };
@@ -0,0 +1,3 @@
1
+ export { default as SkToastProvider } from './SkToastProvider.vue';
2
+ export { useToast } from './useToast';
3
+ export type { SkToastKind, SkToastPosition, SkToastSwipeDirection, ToastAPI, ToastOptions, } from './types';
@@ -0,0 +1,35 @@
1
+ /** Toast semantic kinds (subset of ComponentKind for notifications) */
2
+ export type SkToastKind = 'info' | 'success' | 'warning' | 'danger';
3
+ /** Toast viewport position presets */
4
+ export type SkToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
5
+ /** Swipe direction for dismissing toasts */
6
+ export type SkToastSwipeDirection = 'right' | 'left' | 'up' | 'down';
7
+ /** Options for creating a toast */
8
+ export interface ToastOptions {
9
+ /** Unique ID for the toast. Auto-generated if not provided */
10
+ id?: string;
11
+ /** Semantic kind (default: 'info') */
12
+ kind?: SkToastKind;
13
+ /** Optional heading text */
14
+ title?: string;
15
+ /** Toast message content (required) */
16
+ message: string;
17
+ /** Duration in ms before auto-dismiss. Use 0 for no auto-dismiss */
18
+ duration?: number;
19
+ /** Whether to show close button (default: true) */
20
+ closable?: boolean;
21
+ }
22
+ /** Internal toast state */
23
+ export interface ToastState extends Required<Omit<ToastOptions, 'duration'>> {
24
+ /** Duration can be undefined to use provider default */
25
+ duration?: number;
26
+ }
27
+ /** Toast management API */
28
+ export interface ToastAPI {
29
+ /** Add a new toast and return its ID */
30
+ add: (options: ToastOptions) => string;
31
+ /** Dismiss a specific toast by ID */
32
+ dismiss: (id: string) => void;
33
+ /** Dismiss all active toasts */
34
+ dismissAll: () => void;
35
+ }
@@ -0,0 +1,33 @@
1
+ import { ToastAPI } from './types';
2
+ export declare const TOAST_INJECTION_KEY: unique symbol;
3
+ /**
4
+ * Get the toast API for showing notifications.
5
+ *
6
+ * Must be used within a component tree that contains SkToastProvider.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { useToast } from '@skewedaspect/sleekspace-ui';
11
+ *
12
+ * const toast = useToast();
13
+ *
14
+ * // Show a success toast
15
+ * toast.add({
16
+ * kind: 'success',
17
+ * title: 'Saved!',
18
+ * message: 'Your changes have been saved.'
19
+ * });
20
+ *
21
+ * // Show an error toast that doesn't auto-dismiss
22
+ * toast.add({
23
+ * kind: 'danger',
24
+ * title: 'Error',
25
+ * message: 'Something went wrong.',
26
+ * duration: 0
27
+ * });
28
+ *
29
+ * // Dismiss all toasts
30
+ * toast.dismissAll();
31
+ * ```
32
+ */
33
+ export declare function useToast(): ToastAPI;
@@ -0,0 +1,81 @@
1
+ import { ComponentCustomColors, ComponentKind } from '../../types';
2
+ import { SkTooltipSide } from './types';
3
+ export interface SkTooltipComponentProps extends ComponentCustomColors {
4
+ /**
5
+ * Semantic color kind that controls the tooltip's background and text colors. Semantic kinds
6
+ * (neutral, primary, accent, info, success, warning, danger) adapt to your theme. Use 'neutral'
7
+ * for general hints, or match the kind to contextual meaning (e.g., 'warning' for caution tips).
8
+ * @default 'neutral'
9
+ */
10
+ kind?: ComponentKind;
11
+ /**
12
+ * Visual variant that controls the tooltip's appearance. 'solid' shows a filled background
13
+ * with the kind color, ideal for high-contrast visibility. 'outline' shows a bordered style
14
+ * with transparent background, useful for subtle hints that don't distract from content.
15
+ * @default 'solid'
16
+ */
17
+ variant?: 'solid' | 'outline';
18
+ /**
19
+ * Which side of the trigger element to display the tooltip. The tooltip automatically
20
+ * flips to the opposite side if there isn't enough space. Common choices: 'top' for
21
+ * buttons, 'right' for inline help icons, 'bottom' for navigation items.
22
+ * @default 'top'
23
+ */
24
+ side?: SkTooltipSide;
25
+ /**
26
+ * Alignment of the tooltip along its side. 'center' centers the tooltip on the trigger,
27
+ * 'start' aligns to the left/top edge, 'end' aligns to the right/bottom edge. Use 'start'
28
+ * or 'end' when the trigger is near a screen edge to prevent clipping.
29
+ * @default 'center'
30
+ */
31
+ align?: 'start' | 'center' | 'end';
32
+ /**
33
+ * Distance in pixels between the tooltip and its trigger element. Increase for more
34
+ * breathing room, decrease for tighter coupling. The arrow (if shown) extends from
35
+ * this offset toward the trigger.
36
+ * @default 5
37
+ */
38
+ sideOffset?: number;
39
+ /**
40
+ * Delay in milliseconds before the tooltip appears after hovering the trigger. Only used
41
+ * in standalone mode - when inside SkTooltipProvider, the provider's delayDuration takes
42
+ * precedence. Set to 0 for instant tooltips, or higher values to avoid accidental triggers.
43
+ * @default 400
44
+ */
45
+ delayDuration?: number;
46
+ /**
47
+ * Whether to display a small arrow pointing from the tooltip toward its trigger element.
48
+ * Arrows help visually connect the tooltip to its trigger, especially useful when multiple
49
+ * interactive elements are close together. Disable for a cleaner, more minimal appearance.
50
+ * @default true
51
+ */
52
+ showArrow?: boolean;
53
+ }
54
+ declare function __VLS_template(): {
55
+ attrs: Partial<{}>;
56
+ slots: {
57
+ trigger?(_: {}): any;
58
+ trigger?(_: {}): any;
59
+ default?(_: {}): any;
60
+ default?(_: {}): any;
61
+ };
62
+ refs: {};
63
+ rootEl: any;
64
+ };
65
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
66
+ declare const __VLS_component: import('vue').DefineComponent<SkTooltipComponentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkTooltipComponentProps> & Readonly<{}>, {
67
+ kind: ComponentKind;
68
+ variant: "solid" | "outline";
69
+ side: SkTooltipSide;
70
+ align: "start" | "center" | "end";
71
+ sideOffset: number;
72
+ showArrow: boolean;
73
+ delayDuration: number;
74
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
75
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
76
+ export default _default;
77
+ type __VLS_WithTemplateSlots<T, S> = T & {
78
+ new (): {
79
+ $slots: S;
80
+ };
81
+ };
@@ -0,0 +1,70 @@
1
+ export interface SkTooltipProviderProps {
2
+ /**
3
+ * Delay in milliseconds from when the pointer enters a tooltip trigger until the tooltip
4
+ * opens. Applies to all SkTooltip components within this provider. A short delay (200-400ms)
5
+ * prevents tooltips from flashing when users move the mouse across the UI. Set to 0 for
6
+ * instant tooltips, though this may feel jarring.
7
+ * @default 400
8
+ */
9
+ delayDuration?: number;
10
+ /**
11
+ * Time window in milliseconds during which moving to another tooltip skips the delay entirely.
12
+ * After showing one tooltip, if the user hovers another trigger within this window, it appears
13
+ * instantly. This creates smooth "scanning" behavior when exploring a toolbar or menu. Set to
14
+ * 0 to disable skip delay behavior.
15
+ * @default 300
16
+ */
17
+ skipDelayDuration?: number;
18
+ /**
19
+ * When true, moving the pointer from the trigger onto the tooltip content closes the tooltip.
20
+ * By default, users can hover over tooltip content (useful for links or selectable text).
21
+ * Enable this for simpler tooltips where you want strict trigger-only behavior.
22
+ * @default false
23
+ */
24
+ disableHoverableContent?: boolean;
25
+ /**
26
+ * When true, clicking the trigger element does not close an open tooltip. By default,
27
+ * clicking the trigger dismisses the tooltip. Enable this if your trigger performs an
28
+ * action where the tooltip should remain visible for confirmation feedback.
29
+ * @default false
30
+ */
31
+ disableClosingTrigger?: boolean;
32
+ /**
33
+ * When true, tooltips only appear on keyboard focus (Tab navigation), not on mouse focus.
34
+ * Uses the `:focus-visible` heuristic to distinguish intentional keyboard focus from
35
+ * programmatic or mouse-triggered focus. Enable for reduced visual noise on mouse-heavy UIs.
36
+ * @default false
37
+ */
38
+ ignoreNonKeyboardFocus?: boolean;
39
+ /**
40
+ * When true, completely disables all tooltips within this provider. Useful for temporarily
41
+ * suppressing tooltips during certain UI states (like drag operations or touch interactions)
42
+ * or for user preference settings. Tooltips remain in the DOM but won't open.
43
+ * @default false
44
+ */
45
+ disabled?: boolean;
46
+ }
47
+ declare function __VLS_template(): {
48
+ attrs: Partial<{}>;
49
+ slots: {
50
+ default?(_: {}): any;
51
+ };
52
+ refs: {};
53
+ rootEl: any;
54
+ };
55
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
56
+ declare const __VLS_component: import('vue').DefineComponent<SkTooltipProviderProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkTooltipProviderProps> & Readonly<{}>, {
57
+ disabled: boolean;
58
+ delayDuration: number;
59
+ skipDelayDuration: number;
60
+ disableHoverableContent: boolean;
61
+ disableClosingTrigger: boolean;
62
+ ignoreNonKeyboardFocus: boolean;
63
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
64
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
65
+ export default _default;
66
+ type __VLS_WithTemplateSlots<T, S> = T & {
67
+ new (): {
68
+ $slots: S;
69
+ };
70
+ };
@@ -0,0 +1,3 @@
1
+ export { default as SkTooltip } from './SkTooltip.vue';
2
+ export { default as SkTooltipProvider } from './SkTooltipProvider.vue';
3
+ export type { SkTooltipKind, SkTooltipSide } from './types';
@@ -0,0 +1,4 @@
1
+ import { ComponentKind, ComponentVariant } from '../../types';
2
+ export type SkTooltipKind = ComponentKind;
3
+ export type SkTooltipVariant = ComponentVariant;
4
+ export type SkTooltipSide = 'top' | 'right' | 'bottom' | 'left';
@@ -0,0 +1,74 @@
1
+ import { Ref } from 'vue';
2
+ /**
3
+ * Composable for handling custom color props in components.
4
+ *
5
+ * This composable provides a consistent way to apply custom colors to components by generating
6
+ * CSS variables that override the component's default color tokens. It supports any CSS color
7
+ * format including hex, rgb, hsl, oklch, named colors, and CSS variables.
8
+ *
9
+ * Works with any component that follows the CSS variable naming convention:
10
+ * - `--sk-{componentName}-color-base` for the base/background color
11
+ * - `--sk-{componentName}-fg` for the foreground/text color
12
+ *
13
+ * @param componentName - The component name used in CSS variable naming
14
+ * (e.g., 'button', 'panel', 'my-custom-component')
15
+ * @param baseColor - The base/background color (any CSS color value, including CSS variables)
16
+ * @param textColor - Optional foreground/text color. If not provided, falls back to `--sk-neutral-text`
17
+ *
18
+ * @returns Computed style object with CSS variables ready to bind to a component's style attribute
19
+ *
20
+ * @example Basic usage with base color only
21
+ * ```vue
22
+ * <script setup>
23
+ * import { useCustomColors } from '@/composables/useCustomColors';
24
+ *
25
+ * const props = defineProps<{ baseColor?: string }>();
26
+ * const customColors = useCustomColors('button', toRef(() => props.baseColor), undefined);
27
+ * </script>
28
+ *
29
+ * <template>
30
+ * <button :style="customColors">Click me</button>
31
+ * </template>
32
+ * ```
33
+ *
34
+ * @example With both base and text colors
35
+ * ```vue
36
+ * <SkButton base-color="oklch(0.7 0.25 300)" text-color="white">
37
+ * Custom Purple Button
38
+ * </SkButton>
39
+ * ```
40
+ *
41
+ * @example Using CSS variables
42
+ * ```vue
43
+ * <SkPanel base-color="var(--my-custom-color)" text-color="var(--my-text-color)">
44
+ * Content
45
+ * </SkPanel>
46
+ * ```
47
+ *
48
+ * @example Custom component
49
+ * ```vue
50
+ * <script setup>
51
+ * import { useCustomColors } from '@/composables/useCustomColors';
52
+ *
53
+ * const props = defineProps<{ baseColor?: string; textColor?: string }>();
54
+ * const customColors = useCustomColors('my-widget', toRef(() => props.baseColor), toRef(() => props.textColor));
55
+ * </script>
56
+ *
57
+ * <template>
58
+ * <div class="my-widget" :style="customColors">
59
+ * <!-- Will generate: --sk-my-widget-color-base and --sk-my-widget-fg -->
60
+ * </div>
61
+ * </template>
62
+ * ```
63
+ *
64
+ * Generated CSS variables:
65
+ * - `--sk-{componentName}-color-base` - The base color for backgrounds and accents
66
+ * - `--sk-{componentName}-fg` - The foreground/text color
67
+ *
68
+ * @remarks
69
+ * - If `textColor` is not provided, components will use `--sk-neutral-text` from the active theme
70
+ * - For best contrast, always provide `textColor` when using custom `baseColor`
71
+ * - The generated CSS variables integrate with the component's existing token system
72
+ * - Works with any component name - no need to register components beforehand
73
+ */
74
+ export declare function useCustomColors(componentName: string, baseColor: Ref<string | undefined> | string | undefined, textColor: Ref<string | undefined> | string | undefined): Ref<Record<string, string>>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,75 @@
1
+ import { Ref } from 'vue';
2
+ /**
3
+ * Composable for handling context propagation through portals.
4
+ *
5
+ * **The Portal Problem:**
6
+ * When components use portals (Modal, Dropdown, Tooltip, Listbox, Popover), the portaled content
7
+ * is teleported to `<body>`, breaking two critical things:
8
+ *
9
+ * 1. **CSS Cascade** - CSS custom properties defined on parent elements don't inherit to portaled
10
+ * content because it's no longer a DOM descendant.
11
+ *
12
+ * 2. **Vue's provide/inject** - The Vue component tree is preserved, but nested portal components
13
+ * (e.g., Listbox inside Modal) need the theme re-provided to reach their own portaled content.
14
+ *
15
+ * **This composable solves both problems by:**
16
+ * - Injecting the current theme (with a safe default)
17
+ * - Re-providing it for any nested portal components
18
+ * - Returning the theme ref for binding to `data-scheme` on portaled elements
19
+ *
20
+ * **IMPORTANT:** All portal components MUST:
21
+ * 1. Use this composable
22
+ * 2. Apply `:data-scheme="theme"` to their portaled content root element(s)
23
+ * 3. Apply kind classes directly on portaled content (CSS can't cascade from parent)
24
+ *
25
+ * @returns Object containing:
26
+ * - `theme`: Readonly ref of current theme name for `:data-scheme` binding
27
+ *
28
+ * @example Basic usage in a portal component
29
+ * ```vue
30
+ * <script setup lang="ts">
31
+ * import { usePortalContext } from '@/composables/usePortalContext';
32
+ *
33
+ * const { theme } = usePortalContext();
34
+ * </script>
35
+ *
36
+ * <template>
37
+ * <SomePortal>
38
+ * <SomeContent :data-scheme="theme" :class="contentClasses">
39
+ * <slot />
40
+ * </SomeContent>
41
+ * </SomePortal>
42
+ * </template>
43
+ * ```
44
+ *
45
+ * @example With multiple portaled elements (Modal with overlay)
46
+ * ```vue
47
+ * <template>
48
+ * <DialogPortal>
49
+ * <DialogOverlay :data-scheme="theme" />
50
+ * <DialogContent :data-scheme="theme" :class="contentClasses">
51
+ * <slot />
52
+ * </DialogContent>
53
+ * </DialogPortal>
54
+ * </template>
55
+ * ```
56
+ *
57
+ * @remarks
58
+ * - The default theme is 'greyscale' if no SkTheme wrapper is present
59
+ * - This composable automatically handles provide/inject - you don't need to do it manually
60
+ * - The returned `theme` ref is readonly to prevent accidental mutation
61
+ * - Nested portals (e.g., Dropdown inside Modal) work automatically because each portal
62
+ * component re-provides the theme
63
+ *
64
+ * **Portal components in this library:**
65
+ * - SkModal (DialogPortal)
66
+ * - SkDropdown (DropdownMenuPortal)
67
+ * - SkDropdownSubmenu (DropdownMenuPortal)
68
+ * - SkListbox (ComboboxPortal)
69
+ * - SkTooltip (TooltipPortal)
70
+ * - SkPopover (PopoverPortal) - future
71
+ * - SkToast (ToastPortal) - future
72
+ */
73
+ export declare function usePortalContext(): {
74
+ theme: Ref<string>;
75
+ };
@@ -0,0 +1 @@
1
+ export {};