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

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 (534) 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 -2
  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 +2 -4
  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/web-types.json +302 -282
  498. package/docs/components/accordion.md +0 -92
  499. package/docs/components/alert.md +0 -72
  500. package/docs/components/avatar.md +0 -69
  501. package/docs/components/breadcrumbs.md +0 -65
  502. package/docs/components/button.md +0 -110
  503. package/docs/components/card.md +0 -87
  504. package/docs/components/checkbox.md +0 -77
  505. package/docs/components/collapsible.md +0 -71
  506. package/docs/components/divider.md +0 -62
  507. package/docs/components/dropdown.md +0 -88
  508. package/docs/components/field.md +0 -80
  509. package/docs/components/group.md +0 -41
  510. package/docs/components/input.md +0 -84
  511. package/docs/components/listbox.md +0 -82
  512. package/docs/components/modal.md +0 -101
  513. package/docs/components/navbar.md +0 -64
  514. package/docs/components/number-input.md +0 -78
  515. package/docs/components/page.md +0 -77
  516. package/docs/components/pagination.md +0 -88
  517. package/docs/components/panel.md +0 -74
  518. package/docs/components/popover.md +0 -93
  519. package/docs/components/progress.md +0 -76
  520. package/docs/components/radio.md +0 -86
  521. package/docs/components/sidebar.md +0 -74
  522. package/docs/components/skeleton.md +0 -76
  523. package/docs/components/slider.md +0 -94
  524. package/docs/components/spinner.md +0 -59
  525. package/docs/components/switch.md +0 -97
  526. package/docs/components/table.md +0 -91
  527. package/docs/components/tabs.md +0 -108
  528. package/docs/components/tag.md +0 -75
  529. package/docs/components/tags-input.md +0 -88
  530. package/docs/components/textarea.md +0 -80
  531. package/docs/components/theme.md +0 -65
  532. package/docs/components/toast.md +0 -95
  533. package/docs/components/tooltip.md +0 -90
  534. package/docs/guides/design-tokens.md +0 -105
@@ -58,8 +58,34 @@
58
58
 
59
59
  <script setup lang="ts">
60
60
  /**
61
- * @component
62
- * Modal dialog component for displaying content in an overlay
61
+ * @component SkModal
62
+ * @description A modal dialog component for displaying focused content in an overlay. Built on RekaUI's Dialog
63
+ * primitive with full accessibility support including focus trapping and ARIA attributes. Modals interrupt the
64
+ * user workflow to capture attention for important information, confirmations, or forms.
65
+ *
66
+ * @example
67
+ * ```vue
68
+ * <SkModal v-model:open="showModal" title="Confirm Action">
69
+ * <p>Are you sure you want to proceed?</p>
70
+ * <template #footer="{ close }">
71
+ * <SkButton @click="close">Cancel</SkButton>
72
+ * <SkButton kind="primary" @click="confirm(); close()">Confirm</SkButton>
73
+ * </template>
74
+ * </SkModal>
75
+ * ```
76
+ *
77
+ * @example With trigger button
78
+ * ```vue
79
+ * <SkModal title="Settings" trigger-text="Open Settings" kind="primary">
80
+ * <SettingsForm />
81
+ * </SkModal>
82
+ * ```
83
+ *
84
+ * @slot trigger - Custom trigger element to open the modal. Receives no slot props. If not provided, uses
85
+ * a default SkButton with `triggerText`.
86
+ * @slot title - Custom title content. Receives `{ close }` slot prop for programmatic closing.
87
+ * @slot default - The main modal body content. Receives `{ close }` slot prop for programmatic closing.
88
+ * @slot footer - Footer content, typically containing action buttons. Receives `{ close }` slot prop.
63
89
  */
64
90
 
65
91
  import { computed, ref, toRef, watch } from 'vue';
@@ -85,50 +111,73 @@
85
111
 
86
112
  //------------------------------------------------------------------------------------------------------------------
87
113
 
88
- /**
89
- * Modal dialog component for displaying content in an overlay
90
- *
91
- * @example Basic usage with footer close button
92
- * ```vue
93
- * <SkModal title="Confirm Action" trigger-text="Open">
94
- * <p>Are you sure?</p>
95
- * <template #footer="{ close }">
96
- * <SkButton @click="close">Cancel</SkButton>
97
- * <SkButton kind="primary" @click="doAction(); close()">Confirm</SkButton>
98
- * </template>
99
- * </SkModal>
100
- * ```
101
- *
102
- * @example Prevent escape/overlay dismissal
103
- * ```vue
104
- * <SkModal
105
- * title="Important Form"
106
- * no-close-on-escape
107
- * no-close-on-overlay
108
- * >
109
- * <!-- User must use buttons to close -->
110
- * </SkModal>
111
- * ```
112
- */
113
114
  export interface SkModalComponentProps extends ComponentCustomColors
114
115
  {
115
- /** Semantic color kind for the modal */
116
+ /**
117
+ * Semantic color kind that controls the modal's accent colors, including the header,
118
+ * close button, and any kind-styled elements within the modal. Semantic kinds
119
+ * (neutral, primary, accent, etc.) adapt to your theme.
120
+ * @default 'neutral'
121
+ */
116
122
  kind ?: ComponentKind;
117
- /** Size of the modal (width) */
123
+
124
+ /**
125
+ * Size of the modal dialog, controlling its maximum width. Use 'sm' for simple
126
+ * confirmations, 'md' for standard forms, 'lg' for complex content, and 'xl' for
127
+ * dashboards or data-heavy dialogs.
128
+ * @default 'md'
129
+ */
118
130
  size ?: ComponentSize;
119
- /** Title text displayed in the header */
131
+
132
+ /**
133
+ * Title text displayed in the modal header. When provided, a header section with
134
+ * the title and close button is automatically rendered. Can be overridden with
135
+ * the title slot for custom header content.
136
+ */
120
137
  title ?: string;
121
- /** Text for the default trigger button */
138
+
139
+ /**
140
+ * Text label for the default trigger button. When provided (and no trigger slot is
141
+ * used), renders an SkButton that opens the modal when clicked. Omit both this and
142
+ * the trigger slot to control the modal programmatically via v-model:open.
143
+ */
122
144
  triggerText ?: string;
123
- /** Whether the modal is open (v-model:open) */
145
+
146
+ /**
147
+ * Controls whether the modal is open. Use with `v-model:open` for two-way binding.
148
+ * Set to true to open the modal programmatically, false to close it. The modal
149
+ * can also be closed via the close button, Escape key, or overlay click.
150
+ * @default false
151
+ */
124
152
  open ?: boolean;
125
- /** Whether pressing Escape closes the modal (default: true) */
153
+
154
+ /**
155
+ * Whether pressing the Escape key closes the modal. Set to false for important
156
+ * dialogs where accidental dismissal should be prevented, such as unsaved form
157
+ * data or critical confirmations.
158
+ * @default true
159
+ */
126
160
  closeOnEscape ?: boolean;
127
- /** Whether clicking the overlay closes the modal (default: true) */
161
+
162
+ /**
163
+ * Whether clicking the overlay (dark backdrop) closes the modal. Set to false to
164
+ * require users to interact with modal buttons rather than dismissing accidentally.
165
+ * @default true
166
+ */
128
167
  closeOnOverlay ?: boolean;
129
- /** Prevent closing on Escape key (alternative to :close-on-escape="false") */
168
+
169
+ /**
170
+ * Boolean shorthand to prevent closing on Escape key. Equivalent to
171
+ * `:close-on-escape="false"`. Use when you prefer attribute syntax over bound values.
172
+ * @default false
173
+ */
130
174
  noCloseOnEscape ?: boolean;
131
- /** Prevent closing on overlay click (alternative to :close-on-overlay="false") */
175
+
176
+ /**
177
+ * Boolean shorthand to prevent closing on overlay click. Equivalent to
178
+ * `:close-on-overlay="false"`. Use when you prefer attribute syntax over bound values.
179
+ * @default false
180
+ */
132
181
  noCloseOnOverlay ?: boolean;
133
182
  }
134
183
 
@@ -24,9 +24,32 @@
24
24
 
25
25
  <script setup lang="ts">
26
26
  /**
27
- * @component
28
- * A navigation bar component for site-wide navigation with brand, nav items, and action slots.
29
- * Supports sticky positioning and semantic color theming.
27
+ * @component SkNavBar
28
+ * @description A horizontal navigation bar component for site-wide header navigation. Provides a structured
29
+ * layout with three distinct zones: brand/logo area (left), main navigation links (center), and action
30
+ * buttons (right). Supports sticky positioning to remain visible while scrolling and adapts to your
31
+ * theme's semantic colors.
32
+ *
33
+ * @example
34
+ * ```vue
35
+ * <SkNavBar kind="primary">
36
+ * <template #brand>
37
+ * <img src="/logo.svg" alt="Logo" />
38
+ * </template>
39
+ * <SkButton as="a" href="/features">Features</SkButton>
40
+ * <SkButton as="a" href="/pricing">Pricing</SkButton>
41
+ * <template #actions>
42
+ * <SkButton kind="accent">Sign Up</SkButton>
43
+ * </template>
44
+ * </SkNavBar>
45
+ * ```
46
+ *
47
+ * @slot brand - Left-aligned area for your logo, site name, or brand identity. Typically contains an
48
+ * image or text link to the homepage.
49
+ * @slot default - Center area for main navigation items. Place navigation buttons, links, or menu
50
+ * triggers here. Items are displayed in a horizontal row.
51
+ * @slot actions - Right-aligned area for call-to-action buttons, user menus, or utility controls.
52
+ * Ideal for login buttons, shopping carts, or profile dropdowns.
30
53
  */
31
54
 
32
55
  import { computed, toRef, useSlots } from 'vue';
@@ -36,15 +59,22 @@
36
59
 
37
60
  //------------------------------------------------------------------------------------------------------------------
38
61
 
39
- /**
40
- * A navigation bar component for site-wide navigation with brand, nav items, and action slots.
41
- * Supports sticky positioning and semantic color theming.
42
- */
43
62
  export interface SkNavBarComponentProps extends ComponentCustomColors
44
63
  {
45
- /** Semantic color kind for the navbar */
64
+ /**
65
+ * Semantic color kind that controls the navbar's background and text colors. Use semantic kinds
66
+ * like 'primary' or 'accent' to match your theme, or color kinds like 'neon-blue' for fixed
67
+ * branding colors. The kind affects the entire navbar including all three slot areas.
68
+ * @default 'neutral'
69
+ */
46
70
  kind ?: SkNavBarKind;
47
- /** Whether the navbar sticks to the top of the viewport when scrolling */
71
+
72
+ /**
73
+ * When true, the navbar uses CSS `position: sticky` to remain fixed at the top of the viewport
74
+ * as the user scrolls down the page. The navbar will overlay page content below it. Set to false
75
+ * for a navbar that scrolls with the page content.
76
+ * @default true
77
+ */
48
78
  sticky ?: boolean;
49
79
  }
50
80
 
@@ -59,9 +59,19 @@
59
59
 
60
60
  <script setup lang="ts">
61
61
  /**
62
- * @component
63
- * A numeric input component with stepper buttons powered by RekaUI.
64
- * Supports keyboard navigation, min/max values, and step increments.
62
+ * @component SkNumberInput
63
+ * @description A numeric input component with built-in increment/decrement stepper buttons. Built on RekaUI's
64
+ * NumberField primitive with full keyboard accessibility (arrow keys, page up/down, home/end). Supports
65
+ * min/max constraints and configurable step values. Use with `v-model` for two-way binding of the numeric value.
66
+ *
67
+ * @example
68
+ * ```vue
69
+ * <SkNumberInput v-model="quantity" :min="1" :max="100" />
70
+ * <SkNumberInput v-model="price" :step="0.01" :min="0" placeholder="0.00" />
71
+ * <SkField label="Age" :error="errors.age">
72
+ * <SkNumberInput v-model="age" name="age" :min="0" :max="150" />
73
+ * </SkField>
74
+ * ```
65
75
  */
66
76
 
67
77
  import { type ComputedRef, computed, inject, toRef } from 'vue';
@@ -81,30 +91,84 @@
81
91
 
82
92
  //------------------------------------------------------------------------------------------------------------------
83
93
 
84
- /**
85
- * A numeric input component with stepper buttons powered by RekaUI.
86
- */
87
94
  export interface SkNumberInputComponentProps extends ComponentCustomColors
88
95
  {
89
- /** Semantic color kind (useful for validation states) */
96
+ /**
97
+ * Semantic color kind for the input border and focus ring. Use semantic kinds like
98
+ * 'success' or 'danger' to indicate validation states. When used inside an SkField
99
+ * with a `state` prop, the field's kind automatically overrides this value.
100
+ * @default 'neutral'
101
+ */
90
102
  kind ?: SkNumberInputKind;
91
- /** Input size */
103
+
104
+ /**
105
+ * Input size controlling height, padding, font size, and stepper button dimensions.
106
+ * Available sizes: 'sm' (small, compact forms), 'md' (medium, default), 'lg' (large),
107
+ * 'xl' (extra large).
108
+ * @default 'md'
109
+ */
92
110
  size ?: SkNumberInputSize;
93
- /** Placeholder text */
111
+
112
+ /**
113
+ * Placeholder text displayed when the input is empty or has no value. Use to indicate
114
+ * expected format (e.g., "0.00" for currency) or provide a hint about the field's purpose.
115
+ * @default undefined
116
+ */
94
117
  placeholder ?: string;
95
- /** Disabled state */
118
+
119
+ /**
120
+ * When true, disables the input and stepper buttons preventing all user interaction.
121
+ * The component appears with reduced opacity and the cursor changes to not-allowed.
122
+ * Disabled inputs are excluded from form submission.
123
+ * @default false
124
+ */
96
125
  disabled ?: boolean;
97
- /** Read-only state */
126
+
127
+ /**
128
+ * When true, makes the input read-only. The user can select and copy the value but
129
+ * cannot modify it via typing or stepper buttons. Unlike disabled, read-only inputs
130
+ * are still included in form submission.
131
+ * @default false
132
+ */
98
133
  readonly ?: boolean;
99
- /** Required for form validation */
134
+
135
+ /**
136
+ * When true, marks the input as required for form validation. The browser will prevent
137
+ * form submission if the input is empty. For visual required indicators, wrap the input
138
+ * in an SkField component with `required` prop.
139
+ * @default false
140
+ */
100
141
  required ?: boolean;
101
- /** Form field name */
142
+
143
+ /**
144
+ * The form field name used when submitting the input value. Required for native form
145
+ * submission and useful for form libraries that track fields by name.
146
+ * @default undefined
147
+ */
102
148
  name ?: string;
103
- /** Minimum value */
149
+
150
+ /**
151
+ * Minimum allowed value. The stepper buttons will not decrement below this value, and
152
+ * manual input will be constrained on blur. Use to enforce business rules like positive
153
+ * quantities or minimum prices.
154
+ * @default undefined
155
+ */
104
156
  min ?: number;
105
- /** Maximum value */
157
+
158
+ /**
159
+ * Maximum allowed value. The stepper buttons will not increment above this value, and
160
+ * manual input will be constrained on blur. Use to enforce limits like maximum quantity
161
+ * or inventory caps.
162
+ * @default undefined
163
+ */
106
164
  max ?: number;
107
- /** Step increment/decrement amount */
165
+
166
+ /**
167
+ * The increment/decrement step amount when using stepper buttons or arrow keys. Use
168
+ * fractional values like 0.01 for currency or 0.1 for percentages. Pressing Shift while
169
+ * stepping may multiply the step for faster navigation.
170
+ * @default 1
171
+ */
108
172
  step ?: number;
109
173
  }
110
174
 
@@ -125,6 +189,11 @@
125
189
 
126
190
  //------------------------------------------------------------------------------------------------------------------
127
191
 
192
+ /**
193
+ * The numeric value of the input. Use with `v-model` for two-way binding. The value is
194
+ * constrained by `min` and `max` props when set. Returns a number type.
195
+ * @default 0
196
+ */
128
197
  const modelValue = defineModel<number>({ default: 0 });
129
198
 
130
199
  //------------------------------------------------------------------------------------------------------------------
@@ -31,8 +31,35 @@
31
31
  <script setup lang="ts">
32
32
  /**
33
33
  * @component SkPage
34
- * A full-page layout component with header, sidebar, content, and footer slots.
35
- * Provides a standard page structure with optional fixed header/footer and configurable sidebar.
34
+ * @description A full-page layout component that provides a structured application shell with header, sidebar,
35
+ * main content, and footer regions. Designed for building complete application pages with optional fixed
36
+ * positioning for header/footer and flexible sidebar placement. The layout automatically handles scrolling
37
+ * behavior and responsive spacing.
38
+ *
39
+ * @example
40
+ * ```vue
41
+ * <SkPage fixed-header sidebar-position="left" sidebar-width="280px">
42
+ * <template #header>
43
+ * <AppNavbar />
44
+ * </template>
45
+ * <template #sidebar>
46
+ * <AppMenu />
47
+ * </template>
48
+ * <MainContent />
49
+ * <template #footer>
50
+ * <AppFooter />
51
+ * </template>
52
+ * </SkPage>
53
+ * ```
54
+ *
55
+ * @slot default - The main content area of the page. This is where your primary page content goes. Automatically
56
+ * handles scrolling when header/footer are fixed.
57
+ * @slot header - The page header region, typically used for navigation bars, branding, or page titles. Spans the
58
+ * full width above the sidebar and content areas.
59
+ * @slot sidebar - Optional sidebar region for navigation menus, filters, or secondary content. Position is
60
+ * controlled by the `sidebarPosition` prop.
61
+ * @slot footer - The page footer region for copyright notices, links, or secondary navigation. Spans the full
62
+ * width below the sidebar and content areas.
36
63
  */
37
64
 
38
65
  import { computed } from 'vue';
@@ -44,13 +71,35 @@
44
71
 
45
72
  export interface SkPageComponentProps
46
73
  {
47
- /** Sidebar position */
74
+ /**
75
+ * Controls which side of the page the sidebar appears on. The sidebar slot content
76
+ * will be positioned on the specified side, with the main content area filling the
77
+ * remaining space. Has no effect if the sidebar slot is not provided.
78
+ * @default 'left'
79
+ */
48
80
  sidebarPosition ?: SkPageSidebarPosition;
49
- /** Fixed header (stays at top when scrolling) */
81
+
82
+ /**
83
+ * When true, the header remains fixed at the top of the viewport while the main
84
+ * content scrolls beneath it. Useful for keeping navigation always accessible.
85
+ * The content area adjusts its top padding to prevent overlap with the fixed header.
86
+ * @default false
87
+ */
50
88
  fixedHeader ?: boolean;
51
- /** Fixed footer (stays at bottom when scrolling) */
89
+
90
+ /**
91
+ * When true, the footer remains fixed at the bottom of the viewport while the main
92
+ * content scrolls above it. Useful for persistent action bars or important links.
93
+ * The content area adjusts its bottom padding to prevent overlap with the fixed footer.
94
+ * @default false
95
+ */
52
96
  fixedFooter ?: boolean;
53
- /** Custom sidebar width */
97
+
98
+ /**
99
+ * Custom width for the sidebar region. Accepts any valid CSS width value (px, rem, %, etc.).
100
+ * When not specified, the sidebar uses the default width defined in the design tokens.
101
+ * Only applies when the sidebar slot is provided.
102
+ */
54
103
  sidebarWidth ?: string;
55
104
  }
56
105
 
@@ -53,6 +53,28 @@
53
53
  <!--------------------------------------------------------------------------------------------------------------------->
54
54
 
55
55
  <script setup lang="ts">
56
+ /**
57
+ * @component SkPagination
58
+ * @description A pagination navigation component for splitting content across multiple pages. Automatically
59
+ * calculates page ranges with ellipsis for large page counts and provides first/last and previous/next navigation
60
+ * buttons. Use with `v-model` for two-way binding of the current page number.
61
+ *
62
+ * @example
63
+ * ```vue
64
+ * <SkPagination v-model="currentPage" :total="50" kind="primary" />
65
+ * ```
66
+ *
67
+ * @example Minimal pagination (no first/last buttons)
68
+ * ```vue
69
+ * <SkPagination
70
+ * v-model="page"
71
+ * :total="10"
72
+ * :show-first-last="false"
73
+ * variant="outline"
74
+ * />
75
+ * ```
76
+ */
77
+
56
78
  import { computed, provide, toRef } from 'vue';
57
79
 
58
80
  // Types
@@ -63,6 +85,72 @@
63
85
 
64
86
  export interface SkPaginationComponentProps extends SkPaginationProps, ComponentCustomColors
65
87
  {
88
+ /**
89
+ * The total number of pages available. This is a required prop that determines
90
+ * how many page numbers to display and when to show ellipsis indicators.
91
+ */
92
+ total : number;
93
+
94
+ /**
95
+ * The current active page number. Use with `v-model` for two-way binding. Page
96
+ * numbers are 1-indexed, so the first page is 1, not 0.
97
+ * @default 1
98
+ */
99
+ modelValue ?: number;
100
+
101
+ /**
102
+ * The number of sibling pages to show on each side of the current page. For example,
103
+ * if the current page is 5 and siblingCount is 1, pages 4 and 6 will be shown.
104
+ * Higher values show more page numbers but take up more space.
105
+ * @default 1
106
+ */
107
+ siblingCount ?: number;
108
+
109
+ /**
110
+ * Whether to show the "first page" and "last page" navigation buttons. These
111
+ * buttons allow users to jump directly to page 1 or the final page. Set to false
112
+ * for a more compact pagination layout.
113
+ * @default true
114
+ */
115
+ showFirstLast ?: boolean;
116
+
117
+ /**
118
+ * Whether to show the "previous" and "next" navigation buttons. These buttons
119
+ * allow single-page navigation forward or backward. Typically left enabled for
120
+ * standard pagination behavior.
121
+ * @default true
122
+ */
123
+ showPrevNext ?: boolean;
124
+
125
+ /**
126
+ * Semantic color kind that controls the pagination appearance. Affects the active
127
+ * page indicator and navigation button colors. Semantic kinds (neutral, primary,
128
+ * accent, etc.) adapt to your theme.
129
+ * @default 'neutral'
130
+ */
131
+ kind ?: SkPaginationProps['kind'];
132
+
133
+ /**
134
+ * Size of the pagination buttons. Controls both the button dimensions and text size.
135
+ * Available sizes: 'xs' (extra small), 'sm' (small), 'md' (medium), 'lg' (large), 'xl' (extra large).
136
+ * @default 'md'
137
+ */
138
+ size ?: SkPaginationProps['size'];
139
+
140
+ /**
141
+ * Visual style variant for the pagination buttons. Choose 'solid' for filled buttons,
142
+ * 'outline' for bordered buttons, 'subtle' for lightly tinted backgrounds, or 'ghost'
143
+ * for transparent buttons that only show color on hover.
144
+ * @default 'solid'
145
+ */
146
+ variant ?: SkPaginationProps['variant'];
147
+
148
+ /**
149
+ * When true, the entire pagination component is disabled. All buttons become
150
+ * non-interactive and appear with reduced opacity. The cursor changes to not-allowed.
151
+ * @default false
152
+ */
153
+ disabled ?: boolean;
66
154
  }
67
155
 
68
156
  //------------------------------------------------------------------------------------------------------------------
@@ -24,6 +24,21 @@
24
24
  <!--------------------------------------------------------------------------------------------------------------------->
25
25
 
26
26
  <script setup lang="ts">
27
+ /**
28
+ * @component SkPaginationItem
29
+ * @description An individual pagination button used internally by SkPagination. Renders different content based
30
+ * on its type: page numbers, navigation arrows, or ellipsis indicators. Inherits styling from the parent
31
+ * SkPagination component via Vue's provide/inject. Not typically used directly—use SkPagination instead.
32
+ *
33
+ * @example
34
+ * ```vue
35
+ * <!-- Used internally by SkPagination -->
36
+ * <SkPaginationItem type="page" :page="5" :active="true" />
37
+ * <SkPaginationItem type="prev" :page="4" />
38
+ * <SkPaginationItem type="ellipsis" />
39
+ * ```
40
+ */
41
+
27
42
  import { type Ref, computed, inject } from 'vue';
28
43
 
29
44
  // Types
@@ -31,7 +46,42 @@
31
46
 
32
47
  //------------------------------------------------------------------------------------------------------------------
33
48
 
34
- export type SkPaginationItemComponentProps = SkPaginationItemProps;
49
+ export interface SkPaginationItemComponentProps
50
+ {
51
+ /**
52
+ * The page number this item represents. Required for 'page', 'prev', 'next', 'first',
53
+ * and 'last' types. When clicked, this value is emitted to navigate to that page.
54
+ * Not needed for 'ellipsis' type items.
55
+ */
56
+ page ?: number;
57
+
58
+ /**
59
+ * Whether this item is the currently active page. Only applicable to 'page' type items.
60
+ * Active items receive distinct styling and include aria-current="page" for accessibility.
61
+ * @default false
62
+ */
63
+ active ?: boolean;
64
+
65
+ /**
66
+ * When true, the item is disabled and cannot be clicked. The item appears with
67
+ * reduced opacity and the cursor changes to not-allowed. Commonly used on
68
+ * prev/first buttons when on page 1, or next/last buttons when on the final page.
69
+ * @default false
70
+ */
71
+ disabled ?: boolean;
72
+
73
+ /**
74
+ * The type of pagination item to render. Determines both the visual content and behavior:
75
+ * - 'page': Shows a page number button
76
+ * - 'prev': Shows a previous arrow (‹)
77
+ * - 'next': Shows a next arrow (›)
78
+ * - 'first': Shows a first-page arrow (‹‹)
79
+ * - 'last': Shows a last-page arrow (››)
80
+ * - 'ellipsis': Shows non-interactive dots (...)
81
+ * @default 'page'
82
+ */
83
+ type ?: SkPaginationItemProps['type'];
84
+ }
35
85
 
36
86
  //------------------------------------------------------------------------------------------------------------------
37
87
 
@@ -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