@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
@@ -21,31 +21,65 @@
21
21
 
22
22
  <script setup lang="ts">
23
23
  /**
24
- * @component
25
- * A foundational container component with borders, background colors, and optional decorative accents.
26
- * Serves as the base for other components like SkCard and SkSidebar.
24
+ * @component SkPanel
25
+ * @description A foundational container component with beveled corners, borders, background colors, and an optional
26
+ * decorative accent stripe. Panels serve as the base building block for higher-level components like SkCard and
27
+ * SkSidebar, providing consistent styling and theming across the design system.
28
+ *
29
+ * @example
30
+ * ```vue
31
+ * <SkPanel kind="primary" size="lg">
32
+ * <p>Panel content goes here</p>
33
+ * </SkPanel>
34
+ * ```
35
+ *
36
+ * @slot default - The main content of the panel. Accepts any valid Vue content including text, components, or HTML.
27
37
  */
28
38
 
29
39
  import { computed, toRef } from 'vue';
30
- import type { SkPanelKind, SkPanelSize } from './types';
40
+
41
+ // Types
31
42
  import type { ComponentCustomColors } from '@/types';
43
+ import type { SkPanelKind, SkPanelSize } from './types';
44
+
45
+ // Composables
32
46
  import { useCustomColors } from '@/composables/useCustomColors';
33
47
 
34
48
  //------------------------------------------------------------------------------------------------------------------
35
49
 
36
- /**
37
- * A foundational container component with borders, background colors, and optional decorative accents.
38
- * Serves as the base for other components like SkCard and SkSidebar.
39
- */
40
50
  export interface SkPanelComponentProps extends ComponentCustomColors
41
51
  {
42
- /** Semantic color kind for the panel */
52
+ /**
53
+ * Semantic color kind that controls the panel's border color and decorative accent stripe.
54
+ * Semantic kinds (neutral, primary, accent, etc.) automatically adapt to your current theme,
55
+ * while color kinds (neon-blue, neon-purple, etc.) provide fixed branding colors that remain
56
+ * consistent across themes.
57
+ * @default 'neutral'
58
+ */
43
59
  kind ?: SkPanelKind;
44
- /** Size affecting padding and spacing inside the panel */
60
+
61
+ /**
62
+ * Controls the internal padding of the panel. Larger sizes provide more breathing room
63
+ * for content, while smaller sizes create compact, dense layouts. Available sizes:
64
+ * 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
65
+ * @default 'md'
66
+ */
45
67
  size ?: SkPanelSize;
46
- /** Whether to display the decorative accent border */
68
+
69
+ /**
70
+ * When true, displays a colored accent stripe along the top edge of the panel.
71
+ * The stripe color matches the selected `kind`. This decoration is automatically
72
+ * disabled when `noBorder` is true since the decoration is part of the border styling.
73
+ * @default true
74
+ */
47
75
  showDecoration ?: boolean;
48
- /** Whether to remove the border entirely */
76
+
77
+ /**
78
+ * When true, removes the border entirely from the panel, creating a borderless container.
79
+ * Useful for nested panels or when you want the panel background without visual boundaries.
80
+ * Note: Setting this to true automatically disables the decoration stripe.
81
+ * @default false
82
+ */
49
83
  noBorder ?: boolean;
50
84
  }
51
85
 
@@ -68,9 +68,36 @@
68
68
 
69
69
  <script setup lang="ts">
70
70
  /**
71
- * @component
72
- * Popover component for floating panels positioned relative to a trigger.
73
- * Combines tooltip-like positioning with card-like structure.
71
+ * @component SkPopover
72
+ * @description A floating panel component for displaying rich interactive content anchored to a trigger element.
73
+ * Combines tooltip-like positioning with a card-like structure including optional header, body, and footer
74
+ * sections. Built on RekaUI's Popover primitive with full accessibility support, smart collision detection,
75
+ * and keyboard navigation. Use for contextual menus, confirmations, mini-forms, or any content that benefits
76
+ * from staying connected to its trigger.
77
+ *
78
+ * @example
79
+ * ```vue
80
+ * <SkPopover title="Quick Settings" kind="primary">
81
+ * <template #trigger>
82
+ * <SkButton icon><GearIcon /></SkButton>
83
+ * </template>
84
+ * <SkSwitch v-model="darkMode" label="Dark mode" />
85
+ * <SkSwitch v-model="notifications" label="Notifications" />
86
+ * <template #footer>
87
+ * <SkButton variant="ghost" size="sm">Reset</SkButton>
88
+ * <SkButton kind="primary" size="sm">Apply</SkButton>
89
+ * </template>
90
+ * </SkPopover>
91
+ * ```
92
+ *
93
+ * @slot trigger - The element that opens the popover when clicked. Uses `as-child` behavior so your
94
+ * trigger element becomes the actual clickable trigger. Required slot.
95
+ * @slot header - Optional header content displayed after the title. Use for additional header elements
96
+ * like badges, status indicators, or secondary actions.
97
+ * @slot default - Main body content of the popover. Can include any components, forms, or interactive content.
98
+ * Scrolls if content exceeds available space.
99
+ * @slot footer - Optional footer content, typically for action buttons. Commonly contains Cancel/Confirm
100
+ * button pairs or other closing actions.
74
101
  */
75
102
 
76
103
  import { computed, toRef } from 'vue';
@@ -93,48 +120,71 @@
93
120
 
94
121
  //------------------------------------------------------------------------------------------------------------------
95
122
 
96
- /**
97
- * Popover component for floating panels positioned relative to a trigger.
98
- *
99
- * Combines tooltip-like positioning with card-like structure for rich content.
100
- *
101
- * @example Basic usage with title
102
- * ```vue
103
- * <SkPopover title="Settings">
104
- * <template #trigger><SkButton>Open</SkButton></template>
105
- * <p>Popover content here</p>
106
- * </SkPopover>
107
- * ```
108
- *
109
- * @example With footer actions
110
- * ```vue
111
- * <SkPopover title="Confirm Action" kind="danger">
112
- * <template #trigger><SkButton kind="danger">Delete</SkButton></template>
113
- * <p>Are you sure you want to delete this item?</p>
114
- * <template #footer>
115
- * <SkButton variant="ghost" size="sm">Cancel</SkButton>
116
- * <SkButton kind="danger" size="sm">Delete</SkButton>
117
- * </template>
118
- * </SkPopover>
119
- * ```
120
- */
121
123
  export interface SkPopoverComponentProps extends ComponentCustomColors
122
124
  {
123
- /** Semantic color kind */
125
+ /**
126
+ * Semantic color kind that controls the popover's header accent and overall color scheme.
127
+ * Semantic kinds (neutral, primary, accent, info, success, warning, danger) adapt to your
128
+ * theme. Use 'neutral' for general popovers, or match the kind to contextual meaning
129
+ * (e.g., 'danger' for delete confirmations, 'success' for completion messages).
130
+ * @default 'neutral'
131
+ */
124
132
  kind ?: ComponentKind;
125
- /** Which side of the trigger to show the popover */
133
+
134
+ /**
135
+ * Which side of the trigger element to display the popover. The popover automatically
136
+ * repositions if there isn't enough space on the preferred side. 'bottom' works well
137
+ * for toolbars, 'right' for sidebar items, 'top' for footer elements.
138
+ * @default 'bottom'
139
+ */
126
140
  side ?: SkPopoverSide;
127
- /** Alignment along the side */
141
+
142
+ /**
143
+ * Alignment of the popover along its side. 'center' centers the popover on the trigger,
144
+ * 'start' aligns to the left/top edge, 'end' aligns to the right/bottom edge. Useful
145
+ * when triggers are near screen edges or when you want the arrow to point at a specific
146
+ * part of the trigger.
147
+ * @default 'center'
148
+ */
128
149
  align ?: SkPopoverAlign;
129
- /** Offset from the trigger in pixels */
150
+
151
+ /**
152
+ * Distance in pixels between the popover and its trigger element. Increase for more
153
+ * visual separation, decrease for tighter coupling. The arrow (if shown) bridges
154
+ * this gap to maintain visual connection.
155
+ * @default 8
156
+ */
130
157
  sideOffset ?: number;
131
- /** Whether to show the arrow pointing to the trigger */
158
+
159
+ /**
160
+ * Whether to display a small arrow pointing from the popover toward its trigger element.
161
+ * Arrows help visually anchor the popover to its trigger, especially important when
162
+ * multiple triggers are close together. Disable for a cleaner, card-like appearance.
163
+ * @default true
164
+ */
132
165
  showArrow ?: boolean;
133
- /** Optional title displayed in the header */
166
+
167
+ /**
168
+ * Optional title text displayed in the popover header. Creates a header section with
169
+ * the title and close button (if closable). When omitted and no header slot is provided,
170
+ * no header is rendered, creating a content-only popover.
171
+ */
134
172
  title ?: string;
135
- /** Whether to show a close button in the header */
173
+
174
+ /**
175
+ * Whether to show an X close button in the header. Provides an obvious way for users
176
+ * to dismiss the popover beyond clicking outside. Automatically creates a header section
177
+ * if title is also set. Users can always close by clicking outside or pressing Escape.
178
+ * @default true
179
+ */
136
180
  closable ?: boolean;
137
- /** Control the open state (v-model) */
181
+
182
+ /**
183
+ * Controls the popover's open state for two-way binding with `v-model:open`. When provided,
184
+ * you control when the popover opens and closes. When omitted, the popover manages its own
185
+ * state internally (opens on trigger click, closes on outside click or Escape).
186
+ * @default undefined
187
+ */
138
188
  open ?: boolean;
139
189
  }
140
190
 
@@ -151,6 +201,11 @@
151
201
  open: undefined,
152
202
  });
153
203
 
204
+ /**
205
+ * @event update:open - Emitted when the popover's open state changes. Use with `v-model:open` for
206
+ * two-way binding. Receives `true` when the popover opens (trigger clicked) and `false` when it
207
+ * closes (outside click, Escape key, or close button).
208
+ */
154
209
  const emit = defineEmits<{
155
210
  'update:open' : [ value : boolean ];
156
211
  }>();
@@ -29,8 +29,30 @@
29
29
  <script setup lang="ts">
30
30
  /**
31
31
  * @component SkProgress
32
- * A progress bar component with determinate and indeterminate modes.
33
- * Supports all 7 semantic kinds and custom colors.
32
+ * @description A progress bar component for displaying completion status or loading states. Supports both
33
+ * determinate mode (showing specific progress percentage) and indeterminate mode (animated loading indicator
34
+ * when progress is unknown). Built on RekaUI's Progress primitive with beveled corner styling.
35
+ *
36
+ * @example
37
+ * ```vue
38
+ * <SkProgress :value="75" kind="primary" show-value />
39
+ * ```
40
+ *
41
+ * @example Indeterminate loading state
42
+ * ```vue
43
+ * <SkProgress :value="null" kind="accent" />
44
+ * ```
45
+ *
46
+ * @example Custom colors with file upload
47
+ * ```vue
48
+ * <SkProgress
49
+ * :value="uploadProgress"
50
+ * base-color="oklch(0.7 0.2 145)"
51
+ * track-color="oklch(0.3 0.05 145)"
52
+ * show-value
53
+ * value-position="right"
54
+ * />
55
+ * ```
34
56
  */
35
57
 
36
58
  import { computed } from 'vue';
@@ -44,21 +66,63 @@
44
66
 
45
67
  export interface SkProgressComponentProps
46
68
  {
47
- /** Progress value (0 to max). Use null or undefined for indeterminate state */
69
+ /**
70
+ * The current progress value between 0 and `max`. Pass `null` or `undefined` to enable
71
+ * indeterminate mode, which displays an animated loading indicator instead of a specific
72
+ * percentage. Use indeterminate mode when the operation duration is unknown.
73
+ * @default null
74
+ */
48
75
  value ?: number | null;
49
- /** Maximum value */
76
+
77
+ /**
78
+ * The maximum value representing 100% completion. Adjust this when your progress is
79
+ * measured in units other than percentages (e.g., bytes downloaded, steps completed).
80
+ * The percentage is calculated as `(value / max) * 100`.
81
+ * @default 100
82
+ */
50
83
  max ?: number;
51
- /** Semantic color kind */
84
+
85
+ /**
86
+ * Semantic color kind that controls the progress bar fill color. Semantic kinds
87
+ * (neutral, primary, accent, etc.) adapt to your theme, making it easy to indicate
88
+ * success (primary/success), warning states, or danger levels.
89
+ * @default 'primary'
90
+ */
52
91
  kind ?: ComponentKind;
53
- /** Bar height size */
92
+
93
+ /**
94
+ * Height size of the progress bar. Use 'sm' for inline or compact layouts, 'md' for
95
+ * standard forms, and 'lg' or 'xl' for prominent progress displays.
96
+ * @default 'md'
97
+ */
54
98
  size ?: SkProgressSize;
55
- /** Show percentage label */
99
+
100
+ /**
101
+ * When true, displays the current percentage value as a text label on the progress bar.
102
+ * The label is automatically hidden in indeterminate mode since no percentage is available.
103
+ * @default false
104
+ */
56
105
  showValue ?: boolean;
57
- /** Position of the value label */
106
+
107
+ /**
108
+ * Position of the percentage label when `showValue` is true. Choose 'left' for
109
+ * left-aligned, 'center' for centered over the bar, or 'right' for right-aligned.
110
+ * @default 'center'
111
+ */
58
112
  valuePosition ?: SkProgressValuePosition;
59
- /** Custom bar color (overrides kind) */
113
+
114
+ /**
115
+ * Custom color for the progress bar fill, overriding the `kind` color. Accepts any
116
+ * valid CSS color value. Use OKLCH colors for consistency with the design system
117
+ * (e.g., "oklch(0.7 0.2 145)").
118
+ */
60
119
  baseColor ?: string;
61
- /** Custom track/background color */
120
+
121
+ /**
122
+ * Custom color for the progress bar track (background), overriding the default track
123
+ * color. Accepts any valid CSS color value. Useful for creating custom color schemes
124
+ * or matching specific brand colors.
125
+ */
62
126
  trackColor ?: string;
63
127
  }
64
128
 
@@ -28,9 +28,22 @@
28
28
 
29
29
  <script setup lang="ts">
30
30
  /**
31
- * @component
32
- * An individual radio button component powered by RekaUI.
33
- * Must be used within SkRadioGroup.
31
+ * @component SkRadio
32
+ * @description An individual radio button for mutually exclusive selection within a group. Must be used as
33
+ * a child of SkRadioGroup, which manages the selection state and keyboard navigation. Built on RekaUI's
34
+ * RadioGroup primitive with beveled corner styling and full accessibility support.
35
+ *
36
+ * @example
37
+ * ```vue
38
+ * <SkRadioGroup v-model="selectedSize" kind="primary">
39
+ * <SkRadio value="sm" label="Small" />
40
+ * <SkRadio value="md" label="Medium" />
41
+ * <SkRadio value="lg" label="Large" />
42
+ * </SkRadioGroup>
43
+ * ```
44
+ *
45
+ * @slot default - Custom label content. Overrides the `label` prop when provided, allowing for rich
46
+ * formatting, icons, or complex layouts alongside the radio button.
34
47
  */
35
48
 
36
49
  import { type ComputedRef, computed, inject, toRef } from 'vue';
@@ -45,21 +58,44 @@
45
58
 
46
59
  //------------------------------------------------------------------------------------------------------------------
47
60
 
48
- /**
49
- * An individual radio button component powered by RekaUI.
50
- * Must be used within SkRadioGroup.
51
- */
52
61
  export interface SkRadioComponentProps extends ComponentCustomColors
53
62
  {
54
- /** Value for this radio option */
63
+ /**
64
+ * The value this radio option represents. When selected, the parent SkRadioGroup's
65
+ * v-model will be set to this value. Must be unique within the radio group to ensure
66
+ * proper selection behavior.
67
+ */
55
68
  value : string | number;
56
- /** Label text (can be overridden by default slot) */
69
+
70
+ /**
71
+ * Label text displayed next to the radio button. Can be overridden by the default
72
+ * slot for custom label content (icons, formatted text, etc.). If neither label
73
+ * nor slot content is provided, only the radio circle is rendered.
74
+ */
57
75
  label ?: string;
58
- /** Disabled state */
76
+
77
+ /**
78
+ * When true, this radio option is disabled and cannot be selected. The radio
79
+ * button appears with reduced opacity and the cursor changes to not-allowed.
80
+ * Does not affect other radio options in the same group.
81
+ * @default false
82
+ */
59
83
  disabled ?: boolean;
60
- /** Semantic color kind (inherits from parent if not set) */
84
+
85
+ /**
86
+ * Semantic color kind that controls the radio button appearance when selected.
87
+ * If not set, inherits from the parent SkRadioGroup's kind prop. Use to style
88
+ * individual radio options differently from the group default.
89
+ * @default Inherited from SkRadioGroup, or 'neutral' if not set
90
+ */
61
91
  kind ?: SkRadioKind;
62
- /** Size (inherits from parent if not set) */
92
+
93
+ /**
94
+ * Radio button size. Controls both the radio circle dimensions and the label text
95
+ * size. If not set, inherits from the parent SkRadioGroup's size prop.
96
+ * Available sizes: 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
97
+ * @default Inherited from SkRadioGroup, or 'md' if not set
98
+ */
63
99
  size ?: SkRadioSize;
64
100
  }
65
101
 
@@ -25,9 +25,22 @@
25
25
 
26
26
  <script setup lang="ts">
27
27
  /**
28
- * @component
29
- * A radio group container for exclusive selection powered by RekaUI.
30
- * Manages state and keyboard navigation for child SkRadio components.
28
+ * @component SkRadioGroup
29
+ * @description A container for SkRadio components that manages exclusive selection state and keyboard
30
+ * navigation. Only one radio option can be selected at a time within a group. Built on RekaUI's
31
+ * RadioGroup primitive with full accessibility support including arrow key navigation and focus management.
32
+ *
33
+ * @example
34
+ * ```vue
35
+ * <SkRadioGroup v-model="paymentMethod" kind="primary" orientation="vertical">
36
+ * <SkRadio value="credit" label="Credit Card" />
37
+ * <SkRadio value="debit" label="Debit Card" />
38
+ * <SkRadio value="paypal" label="PayPal" />
39
+ * </SkRadioGroup>
40
+ * ```
41
+ *
42
+ * @slot default - The SkRadio components that make up the group. Each radio should have a unique
43
+ * `value` prop. Other content like labels or descriptions can also be included.
31
44
  */
32
45
 
33
46
  import { computed, provide } from 'vue';
@@ -38,24 +51,62 @@
38
51
 
39
52
  //------------------------------------------------------------------------------------------------------------------
40
53
 
41
- /**
42
- * A radio group container for exclusive selection powered by RekaUI.
43
- */
44
54
  export interface SkRadioGroupComponentProps
45
55
  {
46
- /** Orientation for layout */
56
+ /**
57
+ * Layout orientation of the radio options. Controls how child SkRadio components
58
+ * are arranged. 'vertical' stacks options top to bottom, 'horizontal' arranges
59
+ * them left to right. Keyboard arrow navigation adapts to match the orientation.
60
+ * @default 'vertical'
61
+ */
47
62
  orientation ?: SkRadioGroupOrientation;
48
- /** Semantic color kind for all radios */
63
+
64
+ /**
65
+ * Semantic color kind applied to all child SkRadio components. Sets the default
66
+ * appearance for the entire group. Individual radios can override this by setting
67
+ * their own `kind` prop.
68
+ * @default 'neutral'
69
+ */
49
70
  kind ?: SkRadioKind;
50
- /** Size for all radios */
71
+
72
+ /**
73
+ * Size applied to all child SkRadio components. Controls the radio circle
74
+ * dimensions and label text size for the entire group. Individual radios can
75
+ * override this by setting their own `size` prop.
76
+ * Available sizes: 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
77
+ * @default 'md'
78
+ */
51
79
  size ?: SkRadioSize;
52
- /** Disabled state for entire group */
80
+
81
+ /**
82
+ * When true, the entire radio group is disabled and no options can be selected.
83
+ * All child radios appear with reduced opacity. Use for temporarily unavailable
84
+ * form fields or read-only states.
85
+ * @default false
86
+ */
53
87
  disabled ?: boolean;
54
- /** Required for form validation */
88
+
89
+ /**
90
+ * When true, marks the radio group as required for form validation. At least one
91
+ * option must be selected before the form can be submitted. This does not add
92
+ * visual indication—use a SkField wrapper for required field styling.
93
+ * @default false
94
+ */
55
95
  required ?: boolean;
56
- /** Form field name */
96
+
97
+ /**
98
+ * The form field name used when submitting the selected value in a form.
99
+ * Required for native form submission. The selected radio's value is submitted
100
+ * under this name.
101
+ */
57
102
  name ?: string;
58
- /** Enable circular keyboard navigation */
103
+
104
+ /**
105
+ * Enables circular keyboard navigation within the group. When true, pressing
106
+ * arrow down/right on the last option moves focus to the first option, and
107
+ * vice versa. When false, navigation stops at the boundaries.
108
+ * @default true
109
+ */
59
110
  loop ?: boolean;
60
111
  }
61
112
 
@@ -73,6 +124,11 @@
73
124
 
74
125
  //------------------------------------------------------------------------------------------------------------------
75
126
 
127
+ /**
128
+ * The currently selected radio value. Use with `v-model` for two-way binding.
129
+ * The value corresponds to the `value` prop of the selected SkRadio child.
130
+ * Initially undefined until the user makes a selection or a default is provided.
131
+ */
76
132
  const modelValue = defineModel<string | number>();
77
133
 
78
134
  //------------------------------------------------------------------------------------------------------------------
@@ -23,9 +23,29 @@
23
23
 
24
24
  <script setup lang="ts">
25
25
  /**
26
- * @component
27
- * A sticky navigation sidebar container with semantic color theming.
28
- * Wrap SkSidebarSection and SkSidebarItem components inside.
26
+ * @component SkSidebar
27
+ * @description A vertical navigation container designed for persistent page-level navigation. Built on
28
+ * SkPanel, it provides a scrollable area with a sticky position that remains visible as users scroll
29
+ * the main content. Organize navigation links using SkSidebarSection for grouped items and SkSidebarItem
30
+ * for individual navigation links.
31
+ *
32
+ * @example
33
+ * ```vue
34
+ * <SkSidebar kind="primary" width="200px">
35
+ * <SkSidebarSection title="Getting Started">
36
+ * <SkSidebarItem as="RouterLink" to="/docs/install">Installation</SkSidebarItem>
37
+ * <SkSidebarItem as="RouterLink" to="/docs/usage">Basic Usage</SkSidebarItem>
38
+ * </SkSidebarSection>
39
+ * <SkSidebarSection title="Components">
40
+ * <SkSidebarItem as="RouterLink" to="/docs/button">Button</SkSidebarItem>
41
+ * <SkSidebarItem as="RouterLink" to="/docs/input">Input</SkSidebarItem>
42
+ * </SkSidebarSection>
43
+ * </SkSidebar>
44
+ * ```
45
+ *
46
+ * @slot default - Container for SkSidebarSection and/or SkSidebarItem components. Content is wrapped
47
+ * in a scrollable nav element, allowing long navigation lists to scroll independently
48
+ * of the main page content.
29
49
  */
30
50
 
31
51
  import { computed } from 'vue';
@@ -35,35 +55,22 @@
35
55
 
36
56
  //------------------------------------------------------------------------------------------------------------------
37
57
 
38
- /**
39
- * A sticky navigation sidebar container with semantic color theming.
40
- * Wrap SkSidebarSection and SkSidebarItem components inside.
41
- *
42
- * @example Basic sidebar
43
- * ```vue
44
- * <SkSidebar>
45
- * <SkSidebarSection title="Navigation">
46
- * <SkSidebarItem to="/home">Home</SkSidebarItem>
47
- * <SkSidebarItem to="/about">About</SkSidebarItem>
48
- * </SkSidebarSection>
49
- * </SkSidebar>
50
- * ```
51
- *
52
- * @example Custom colors
53
- * ```vue
54
- * <SkSidebar
55
- * base-color="oklch(0.3 0.15 260)"
56
- * text-color="oklch(0.85 0.05 260)"
57
- * >
58
- * <!-- Sidebar content -->
59
- * </SkSidebar>
60
- * ```
61
- */
62
58
  export interface SkSidebarComponentProps extends ComponentCustomColors
63
59
  {
64
- /** Semantic color kind for the sidebar */
60
+ /**
61
+ * Semantic color kind that controls the sidebar panel's background, border, and text colors.
62
+ * The kind is passed to the underlying SkPanel component. Use semantic kinds like 'neutral'
63
+ * or 'primary' to match your theme, or use `baseColor`/`textColor` props for custom colors.
64
+ * @default 'neutral'
65
+ */
65
66
  kind ?: SkSidebarKind;
66
- /** CSS width value for the sidebar */
67
+
68
+ /**
69
+ * CSS width value for the sidebar. Accepts any valid CSS width including pixels, rems,
70
+ * percentages, or viewport units. The sidebar maintains this fixed width while the main
71
+ * content area fills the remaining space in a typical sidebar layout.
72
+ * @default '180px'
73
+ */
67
74
  width ?: string;
68
75
  }
69
76
 
@@ -16,24 +16,49 @@
16
16
 
17
17
  <script setup lang="ts">
18
18
  /**
19
- * @component
20
- * An individual navigation item in the sidebar.
21
- * Can render as any element (a, RouterLink, button, etc).
19
+ * @component SkSidebarItem
20
+ * @description A navigation link item for use within SkSidebar. Renders as a polymorphic component that
21
+ * can be an anchor tag, Vue Router's RouterLink, a button, or any other element/component. Provides
22
+ * consistent styling with hover and active states that match the parent sidebar's theme.
23
+ *
24
+ * @example
25
+ * ```vue
26
+ * <!-- As a regular anchor -->
27
+ * <SkSidebarItem as="a" href="/about">About Us</SkSidebarItem>
28
+ *
29
+ * <!-- As Vue Router link -->
30
+ * <SkSidebarItem as="RouterLink" to="/dashboard" :active="route.path === '/dashboard'">
31
+ * Dashboard
32
+ * </SkSidebarItem>
33
+ *
34
+ * <!-- As a button for actions -->
35
+ * <SkSidebarItem as="button" @click="openSettings">Settings</SkSidebarItem>
36
+ * ```
37
+ *
38
+ * @slot default - The navigation item's label content. Can be plain text or include icons and badges.
22
39
  */
23
40
 
24
41
  import { computed } from 'vue';
25
42
 
26
43
  //------------------------------------------------------------------------------------------------------------------
27
44
 
28
- /**
29
- * An individual navigation item in the sidebar.
30
- * Can render as any element (a, RouterLink, button, etc).
31
- */
32
45
  export interface SkSidebarItemComponentProps
33
46
  {
34
- /** HTML tag or component name to render as */
47
+ /**
48
+ * The HTML element or Vue component to render as. Use 'a' for standard links, 'RouterLink'
49
+ * for Vue Router navigation, 'button' for click actions, or any custom component. All
50
+ * additional attributes (href, to, @click, etc.) are passed through via v-bind="$attrs".
51
+ * @default 'a'
52
+ */
35
53
  as ?: string;
36
- /** Whether this item is currently active */
54
+
55
+ /**
56
+ * When true, applies active/selected styling to indicate this is the current page or
57
+ * selected item. The active state uses a distinct background color and may include
58
+ * additional visual indicators. You must manage this prop yourself based on your
59
+ * routing logic (e.g., comparing against the current route path).
60
+ * @default false
61
+ */
37
62
  active ?: boolean;
38
63
  }
39
64