@skewedaspect/sleekspace-ui 0.8.1 → 0.9.1

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 (191) hide show
  1. package/dist/components/Dropdown/SkDropdown.vue.d.ts +9 -1
  2. package/dist/components/Dropdown/types.d.ts +2 -1
  3. package/dist/components/NavBar/SkNavBar.vue.d.ts +9 -1
  4. package/dist/components/NavBar/context.d.ts +2 -0
  5. package/dist/components/NavBar/types.d.ts +5 -1
  6. package/dist/components/NumberInput/SkNumberInput.vue.d.ts +8 -0
  7. package/dist/components/Page/SkPage.vue.d.ts +9 -0
  8. package/dist/components/ScrollArea/SkScrollArea.vue.d.ts +105 -4
  9. package/dist/composables/useCustomColors.d.ts +18 -56
  10. package/{src → dist}/global.d.ts +6 -2
  11. package/dist/sleekspace-ui.css +4257 -1253
  12. package/dist/sleekspace-ui.es.js +300 -170
  13. package/dist/sleekspace-ui.umd.js +299 -169
  14. package/dist/static/classes.d.ts +18 -0
  15. package/dist/static/components/alert.d.ts +12 -0
  16. package/dist/static/components/avatar.d.ts +9 -0
  17. package/dist/static/components/breadcrumbs.d.ts +6 -0
  18. package/dist/static/components/button.d.ts +13 -0
  19. package/dist/static/components/card.d.ts +5 -0
  20. package/dist/static/components/checkbox.d.ts +10 -0
  21. package/dist/static/components/colorPicker.d.ts +8 -0
  22. package/dist/static/components/divider.d.ts +8 -0
  23. package/dist/static/components/dropdown.d.ts +8 -0
  24. package/dist/static/components/field.d.ts +15 -0
  25. package/dist/static/components/group.d.ts +5 -0
  26. package/dist/static/components/input.d.ts +14 -0
  27. package/dist/static/components/navBar.d.ts +16 -0
  28. package/dist/static/components/numberInput.d.ts +15 -0
  29. package/dist/static/components/page.d.ts +9 -0
  30. package/dist/static/components/pagination.d.ts +5 -0
  31. package/dist/static/components/panel.d.ts +11 -0
  32. package/dist/static/components/progress.d.ts +9 -0
  33. package/dist/static/components/radio.d.ts +11 -0
  34. package/dist/static/components/select.d.ts +10 -0
  35. package/dist/static/components/sidebar.d.ts +9 -0
  36. package/dist/static/components/skeleton.d.ts +11 -0
  37. package/dist/static/components/slider.d.ts +12 -0
  38. package/dist/static/components/spinner.d.ts +12 -0
  39. package/dist/static/components/switchInput.d.ts +10 -0
  40. package/dist/static/components/table.d.ts +12 -0
  41. package/dist/static/components/tag.d.ts +8 -0
  42. package/dist/static/components/tagsInput.d.ts +7 -0
  43. package/dist/static/components/textarea.d.ts +12 -0
  44. package/dist/static/components/toolbar.d.ts +12 -0
  45. package/dist/static/components/tooltip.d.ts +7 -0
  46. package/dist/static/escape.d.ts +2 -0
  47. package/dist/static/index.cjs.js +1 -0
  48. package/dist/static/index.d.ts +68 -0
  49. package/dist/static/index.es.js +732 -0
  50. package/dist/static/render.d.ts +12 -0
  51. package/dist/static/specs.d.ts +2 -0
  52. package/dist/static/types.d.ts +43 -0
  53. package/dist/tokens.css +322 -0
  54. package/dist/types/index.d.ts +36 -0
  55. package/dist/utils/slots.d.ts +6 -0
  56. package/docs/guides/installation.md +8 -2
  57. package/docs/guides/pure-css/_meta.yaml +8 -0
  58. package/docs/guides/pure-css/class-api.md +1070 -0
  59. package/docs/guides/pure-css/custom-elements.md +574 -0
  60. package/docs/guides/pure-css/index.md +86 -0
  61. package/docs/guides/pure-css/limitations.md +152 -0
  62. package/docs/guides/pure-css/static-helpers.md +1203 -0
  63. package/llms-full.txt +3739 -261
  64. package/package.json +19 -5
  65. package/src/components/Alert/SkAlert.vue +4 -2
  66. package/src/components/Breadcrumbs/SkBreadcrumbs.vue +6 -12
  67. package/src/components/Button/SkButton.vue +8 -5
  68. package/src/components/Card/SkCard.vue +13 -5
  69. package/src/components/Checkbox/SkCheckbox.vue +9 -2
  70. package/src/components/ContextMenu/SkContextMenuRadioGroup.vue +4 -1
  71. package/src/components/Dropdown/SkDropdown.vue +20 -3
  72. package/src/components/Dropdown/SkDropdownRadioGroup.vue +4 -1
  73. package/src/components/Dropdown/types.ts +2 -1
  74. package/src/components/Modal/SkModal.vue +11 -4
  75. package/src/components/NavBar/SkNavBar.vue +19 -8
  76. package/src/components/NavBar/context.ts +4 -2
  77. package/src/components/NavBar/types.ts +6 -1
  78. package/src/components/NumberInput/SkNumberInput.vue +10 -1
  79. package/src/components/Page/SkPage.vue +29 -15
  80. package/src/components/Panel/SkPanel.vue +2 -1
  81. package/src/components/Popover/SkPopover.vue +11 -4
  82. package/src/components/Radio/SkRadio.vue +9 -2
  83. package/src/components/ScrollArea/SkScrollArea.vue +78 -5
  84. package/src/components/Switch/SkSwitch.vue +14 -13
  85. package/src/components/Tabs/SkTab.vue +7 -2
  86. package/src/components/TreeView/SkTreeItem.vue +10 -2
  87. package/src/components/TreeView/SkTreeView.vue +7 -2
  88. package/src/composables/useCustomColors.ts +86 -77
  89. package/src/composables/usePortalContext.test.ts +0 -2
  90. package/src/shims.d.ts +10 -0
  91. package/src/static/__tests__/parity.test.ts +717 -0
  92. package/src/static/__tests__/parityHarness.test.ts +98 -0
  93. package/src/static/__tests__/parityHarness.ts +260 -0
  94. package/src/static/classes.test.ts +82 -0
  95. package/src/static/classes.ts +111 -0
  96. package/src/static/components/__tests__/helpers.test.ts +837 -0
  97. package/src/static/components/alert.ts +117 -0
  98. package/src/static/components/avatar.ts +86 -0
  99. package/src/static/components/breadcrumbs.ts +28 -0
  100. package/src/static/components/button.ts +75 -0
  101. package/src/static/components/card.ts +27 -0
  102. package/src/static/components/checkbox.ts +48 -0
  103. package/src/static/components/colorPicker.ts +45 -0
  104. package/src/static/components/divider.ts +39 -0
  105. package/src/static/components/dropdown.ts +36 -0
  106. package/src/static/components/field.ts +86 -0
  107. package/src/static/components/group.ts +27 -0
  108. package/src/static/components/input.ts +55 -0
  109. package/src/static/components/navBar.ts +94 -0
  110. package/src/static/components/numberInput.ts +64 -0
  111. package/src/static/components/page.ts +31 -0
  112. package/src/static/components/pagination.ts +27 -0
  113. package/src/static/components/panel.ts +33 -0
  114. package/src/static/components/progress.ts +31 -0
  115. package/src/static/components/radio.ts +53 -0
  116. package/src/static/components/select.ts +51 -0
  117. package/src/static/components/sidebar.ts +85 -0
  118. package/src/static/components/skeleton.ts +66 -0
  119. package/src/static/components/slider.ts +50 -0
  120. package/src/static/components/spinner.ts +94 -0
  121. package/src/static/components/switchInput.ts +49 -0
  122. package/src/static/components/table.ts +88 -0
  123. package/src/static/components/tag.ts +76 -0
  124. package/src/static/components/tagsInput.ts +35 -0
  125. package/src/static/components/textarea.ts +53 -0
  126. package/src/static/components/toolbar.ts +74 -0
  127. package/src/static/components/tooltip.ts +29 -0
  128. package/src/static/escape.test.ts +53 -0
  129. package/src/static/escape.ts +28 -0
  130. package/src/static/generated/defaults.ts +379 -0
  131. package/src/static/generated/propTypes.ts +426 -0
  132. package/src/static/index.ts +116 -0
  133. package/src/static/render.test.ts +83 -0
  134. package/src/static/render.ts +76 -0
  135. package/src/static/specs.test.ts +58 -0
  136. package/src/static/specs.ts +230 -0
  137. package/src/static/types.ts +176 -0
  138. package/src/styles/__tests__/testHelpers.ts +97 -0
  139. package/src/styles/base/_custom-elements.scss +51 -0
  140. package/src/styles/base/_index.scss +4 -0
  141. package/src/styles/components/__tests__/componentSelectors.test.ts +2575 -0
  142. package/src/styles/components/_alert.scss +82 -39
  143. package/src/styles/components/_avatar.scss +102 -47
  144. package/src/styles/components/_breadcrumbs.scss +39 -37
  145. package/src/styles/components/_button.scss +58 -5
  146. package/src/styles/components/_card.scss +64 -2
  147. package/src/styles/components/_checkbox.scss +35 -5
  148. package/src/styles/components/_color-picker.scss +48 -13
  149. package/src/styles/components/_divider.scss +86 -52
  150. package/src/styles/components/_dropdown.scss +214 -0
  151. package/src/styles/components/_field.scss +76 -23
  152. package/src/styles/components/_group.scss +190 -79
  153. package/src/styles/components/_index.scss +1 -0
  154. package/src/styles/components/_input.scss +81 -5
  155. package/src/styles/components/_menu.scss +1 -1
  156. package/src/styles/components/_navbar.scss +76 -45
  157. package/src/styles/components/_number-input.scss +98 -85
  158. package/src/styles/components/_page.scss +82 -23
  159. package/src/styles/components/_pagination.scss +240 -212
  160. package/src/styles/components/_panel.scss +268 -122
  161. package/src/styles/components/_progress.scss +120 -70
  162. package/src/styles/components/_radio.scss +35 -5
  163. package/src/styles/components/_scroll-area.scss +50 -22
  164. package/src/styles/components/_select.scss +40 -9
  165. package/src/styles/components/_sidebar.scss +59 -34
  166. package/src/styles/components/_skeleton.scss +111 -65
  167. package/src/styles/components/_slider.scss +34 -10
  168. package/src/styles/components/_spinner.scss +107 -56
  169. package/src/styles/components/_switch.scss +36 -5
  170. package/src/styles/components/_table.scss +150 -166
  171. package/src/styles/components/_tag.scss +244 -154
  172. package/src/styles/components/_tags-input.scss +46 -12
  173. package/src/styles/components/_textarea.scss +36 -5
  174. package/src/styles/components/_toolbar.scss +85 -31
  175. package/src/styles/components/_tooltip.scss +172 -3
  176. package/src/styles/mixins/_cut-border.scss +18 -4
  177. package/src/styles/mixins/_dual-selector.scss +192 -0
  178. package/src/styles/mixins/_index.scss +1 -0
  179. package/src/styles/mixins/dualSelector.test.ts +151 -0
  180. package/src/styles/themes/_colorful.scss +25 -0
  181. package/src/styles/themes/_greyscale.scss +25 -0
  182. package/src/styles/themes/_shade-scale.scss +39 -0
  183. package/src/styles/tokens/_semantic-color-kinds.scss +66 -0
  184. package/src/{types.ts → types/index.ts} +19 -11
  185. package/src/utils/slots.ts +75 -0
  186. package/web-types.json +980 -137
  187. package/dist/composables/useCustomColors.test.d.ts +0 -1
  188. package/dist/composables/useFocusTrap.test.d.ts +0 -1
  189. package/dist/composables/usePortalContext.test.d.ts +0 -1
  190. package/dist/styles/mixins/fluidSize.test.d.ts +0 -1
  191. package/dist/types.d.ts +0 -29
package/web-types.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
+ "$schema": "http://json.schemastore.org/web-types",
2
3
  "framework": "vue",
3
4
  "name": "@skewedaspect/sleekspace-ui",
4
- "version": "0.8.1",
5
+ "version": "0.9.1",
5
6
  "contributions": {
6
7
  "html": {
7
8
  "description-markup": "markdown",
@@ -9,8 +10,35 @@
9
10
  "tags": [
10
11
  {
11
12
  "name": "SkAccordion",
12
- "description": "",
13
+ "description": "A collapsible content container that organizes information into expandable sections. Built on\nRekaUI's Accordion primitive with smooth height animations and full keyboard accessibility. Supports two\nmodes: single (only one item open at a time) or multiple (any number of items can be open simultaneously).\n\n**Example:**\n\n```vue\n<SkAccordion v-model=\"openItem\" kind=\"primary\">\n <SkAccordionItem value=\"faq-1\" title=\"What is SleekSpace?\">\n A Vue 3 component library with cyberpunk aesthetic.\n </SkAccordionItem>\n <SkAccordionItem value=\"faq-2\" title=\"How do I get started?\">\n Install via npm and import the components you need.\n </SkAccordionItem>\n</SkAccordion>\n```",
13
14
  "attributes": [
15
+ {
16
+ "name": "borderColor",
17
+ "required": false,
18
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
19
+ "value": {
20
+ "kind": "expression",
21
+ "type": "string"
22
+ }
23
+ },
24
+ {
25
+ "name": "textColor",
26
+ "required": false,
27
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
28
+ "value": {
29
+ "kind": "expression",
30
+ "type": "string"
31
+ }
32
+ },
33
+ {
34
+ "name": "baseColor",
35
+ "required": false,
36
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
37
+ "value": {
38
+ "kind": "expression",
39
+ "type": "string"
40
+ }
41
+ },
14
42
  {
15
43
  "name": "type",
16
44
  "required": false,
@@ -69,7 +97,8 @@
69
97
  ],
70
98
  "slots": [
71
99
  {
72
- "name": "default"
100
+ "name": "default",
101
+ "description": "Container for SkAccordionItem components. Each item becomes a collapsible section."
73
102
  }
74
103
  ],
75
104
  "source": {
@@ -79,7 +108,7 @@
79
108
  },
80
109
  {
81
110
  "name": "SkAccordionItem",
82
- "description": "",
111
+ "description": "An individual collapsible section within an SkAccordion container. Each item consists of a\nclickable header that toggles the visibility of its content panel. Features smooth height animations,\nan animated chevron indicator, and full keyboard navigation support (Enter/Space to toggle, arrow keys\nto navigate between items).\n\n**Example:**\n\n```vue\n<SkAccordionItem value=\"shipping\" title=\"Shipping Information\">\n <p>We ship worldwide with tracking included.</p>\n</SkAccordionItem>\n```",
83
112
  "attributes": [
84
113
  {
85
114
  "name": "value",
@@ -123,10 +152,12 @@
123
152
  ],
124
153
  "slots": [
125
154
  {
126
- "name": "title"
155
+ "name": "title",
156
+ "description": "Custom header content. Receives `{ open: boolean }` indicating the current expanded state.\n Use this for complex headers with icons, badges, or conditional styling."
127
157
  },
128
158
  {
129
- "name": "default"
159
+ "name": "default",
160
+ "description": "The collapsible content displayed when the item is expanded. Can contain any content."
130
161
  }
131
162
  ],
132
163
  "source": {
@@ -136,8 +167,35 @@
136
167
  },
137
168
  {
138
169
  "name": "SkAlert",
139
- "description": "",
170
+ "description": "A contextual feedback component for displaying informational, success, warning, or error messages.\nFeatures automatic icon selection based on alert kind and supports prominent (default) and subtle visual styles.\nUse alerts to communicate important status updates, validation results, or system messages to users.\n\n**Example:**\n\n```vue\n<SkAlert kind=\"success\">Your changes have been saved!</SkAlert>\n```\n\n**Example:**\n\nSubtle info alert\n```vue\n<SkAlert kind=\"info\" subtle>\n A helpful tip for the user.\n</SkAlert>\n```",
140
171
  "attributes": [
172
+ {
173
+ "name": "borderColor",
174
+ "required": false,
175
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
176
+ "value": {
177
+ "kind": "expression",
178
+ "type": "string"
179
+ }
180
+ },
181
+ {
182
+ "name": "textColor",
183
+ "required": false,
184
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
185
+ "value": {
186
+ "kind": "expression",
187
+ "type": "string"
188
+ }
189
+ },
190
+ {
191
+ "name": "baseColor",
192
+ "required": false,
193
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
194
+ "value": {
195
+ "kind": "expression",
196
+ "type": "string"
197
+ }
198
+ },
141
199
  {
142
200
  "name": "kind",
143
201
  "required": false,
@@ -171,10 +229,12 @@
171
229
  ],
172
230
  "slots": [
173
231
  {
174
- "name": "icon"
232
+ "name": "icon",
233
+ "description": "Custom icon to override the default kind-based icon. Receives no slot props."
175
234
  },
176
235
  {
177
- "name": "default"
236
+ "name": "default",
237
+ "description": "The alert message content. Can include text, links, or any HTML content."
178
238
  }
179
239
  ],
180
240
  "source": {
@@ -184,7 +244,7 @@
184
244
  },
185
245
  {
186
246
  "name": "SkAvatar",
187
- "description": "",
247
+ "description": "A user profile avatar component displaying an image, initials, or placeholder icon. Features a\ndistinctive square shape with beveled top-left and bottom-right corners matching the SleekSpace design system.\nImplements graceful degradation: shows image if provided and loads successfully, falls back to initials if\nspecified, otherwise displays a generic user icon. Supports all semantic color kinds and custom colors.\n\n**Example:**\n\n```vue\n<!-- With image -->\n<SkAvatar src=\"/avatars/user.jpg\" alt=\"Jane Doe\" size=\"lg\" />\n\n<!-- With initials fallback -->\n<SkAvatar src=\"/avatars/user.jpg\" initials=\"JD\" kind=\"primary\" />\n\n<!-- Initials only -->\n<SkAvatar initials=\"AB\" kind=\"accent\" size=\"xl\" />\n\n<!-- Custom icon fallback -->\n<SkAvatar kind=\"info\">\n <template #icon><RobotIcon /></template>\n</SkAvatar>\n```",
188
248
  "attributes": [
189
249
  {
190
250
  "name": "src",
@@ -259,7 +319,8 @@
259
319
  ],
260
320
  "slots": [
261
321
  {
262
- "name": "icon"
322
+ "name": "icon",
323
+ "description": "Custom fallback icon displayed when no image or initials are provided. Defaults to a generic\n user silhouette icon. Use for bots, system users, or other non-person entities."
263
324
  }
264
325
  ],
265
326
  "source": {
@@ -269,7 +330,7 @@
269
330
  },
270
331
  {
271
332
  "name": "SkBreadcrumbItem",
272
- "description": "",
333
+ "description": "A single item within a breadcrumb navigation trail representing one level in the hierarchy.\nAutomatically renders as the appropriate element type based on props: `RouterLink` for Vue Router\nnavigation, `<a>` for external links, `<span>` for current/disabled items, or `<button>` for click handlers.\n\n**Example:**\n\n```vue\n<!-- Vue Router link -->\n<SkBreadcrumbItem to=\"/dashboard\">Dashboard</SkBreadcrumbItem>\n\n<!-- External link -->\n<SkBreadcrumbItem href=\"https://docs.example.com\">Docs</SkBreadcrumbItem>\n\n<!-- Current page (non-interactive) -->\n<SkBreadcrumbItem current>Settings</SkBreadcrumbItem>\n\n<!-- With icon -->\n<SkBreadcrumbItem to=\"/\">\n <template #icon><HomeIcon /></template>\n Home\n</SkBreadcrumbItem>\n```",
273
334
  "attributes": [
274
335
  {
275
336
  "name": "to",
@@ -314,10 +375,12 @@
314
375
  ],
315
376
  "slots": [
316
377
  {
317
- "name": "icon"
378
+ "name": "icon",
379
+ "description": "Optional icon displayed before the label. Useful for home icons or category indicators."
318
380
  },
319
381
  {
320
- "name": "default"
382
+ "name": "default",
383
+ "description": "The breadcrumb label text or custom content."
321
384
  }
322
385
  ],
323
386
  "source": {
@@ -327,7 +390,7 @@
327
390
  },
328
391
  {
329
392
  "name": "SkBreadcrumbSeparator",
330
- "description": "",
393
+ "description": "A visual separator displayed between breadcrumb items. Typically used internally by\n`SkBreadcrumbs`, but can be used directly when you need custom separator patterns or want to\nplace separators manually. The separator is hidden from screen readers via `aria-hidden`.\n\n**Example:**\n\n```vue\n<!-- Manual separator usage -->\n<SkBreadcrumbItem to=\"/\">Home</SkBreadcrumbItem>\n<SkBreadcrumbSeparator separator=\">\" />\n<SkBreadcrumbItem current>Settings</SkBreadcrumbItem>\n```",
331
394
  "attributes": [
332
395
  {
333
396
  "name": "separator",
@@ -347,8 +410,17 @@
347
410
  },
348
411
  {
349
412
  "name": "SkBreadcrumbs",
350
- "description": "",
413
+ "description": "A navigation component that displays a hierarchical trail of links showing the user's current\nlocation within an application. Automatically inserts separators between breadcrumb items and provides\nARIA-compliant navigation landmarks for screen readers.\n\n**Example:**\n\n```vue\n<SkBreadcrumbs kind=\"primary\">\n <SkBreadcrumbItem to=\"/\">Home</SkBreadcrumbItem>\n <SkBreadcrumbItem to=\"/products\">Products</SkBreadcrumbItem>\n <SkBreadcrumbItem current>Widget Pro</SkBreadcrumbItem>\n</SkBreadcrumbs>\n```",
351
414
  "attributes": [
415
+ {
416
+ "name": "borderColor",
417
+ "required": false,
418
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
419
+ "value": {
420
+ "kind": "expression",
421
+ "type": "string"
422
+ }
423
+ },
352
424
  {
353
425
  "name": "textColor",
354
426
  "required": false,
@@ -388,6 +460,12 @@
388
460
  "default": "'/'"
389
461
  }
390
462
  ],
463
+ "slots": [
464
+ {
465
+ "name": "default",
466
+ "description": "Contains `SkBreadcrumbItem` components representing each level in the navigation hierarchy."
467
+ }
468
+ ],
391
469
  "source": {
392
470
  "module": "./src/components/Breadcrumbs/SkBreadcrumbs.vue",
393
471
  "symbol": "default"
@@ -395,8 +473,35 @@
395
473
  },
396
474
  {
397
475
  "name": "SkButton",
398
- "description": "",
476
+ "description": "A versatile button component supporting multiple visual variants, sizes, and interactive states.\nAutomatically renders as a `<button>`, `<a>`, or `<router-link>` based on the props provided. Use for\nprimary actions, navigation, form submissions, and toggleable controls with full keyboard accessibility.\n\n**Example:**\n\n```vue\n<SkButton kind=\"primary\" @click=\"save\">Save Changes</SkButton>\n<SkButton variant=\"outline\" href=\"/docs\">Documentation</SkButton>\n<SkButton :loading=\"isSaving\" kind=\"accent\">Submit</SkButton>\n```",
399
477
  "attributes": [
478
+ {
479
+ "name": "borderColor",
480
+ "required": false,
481
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
482
+ "value": {
483
+ "kind": "expression",
484
+ "type": "string"
485
+ }
486
+ },
487
+ {
488
+ "name": "textColor",
489
+ "required": false,
490
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
491
+ "value": {
492
+ "kind": "expression",
493
+ "type": "string"
494
+ }
495
+ },
496
+ {
497
+ "name": "baseColor",
498
+ "required": false,
499
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
500
+ "value": {
501
+ "kind": "expression",
502
+ "type": "string"
503
+ }
504
+ },
400
505
  {
401
506
  "name": "type",
402
507
  "required": false,
@@ -500,16 +605,20 @@
500
605
  ],
501
606
  "slots": [
502
607
  {
503
- "name": "leading"
608
+ "name": "leading",
609
+ "description": "Icon or element displayed before the button text. Ideal for action icons."
504
610
  },
505
611
  {
506
- "name": "icon"
612
+ "name": "icon",
613
+ "description": "Icon for icon-only buttons. When used without the default slot, creates a square icon button."
507
614
  },
508
615
  {
509
- "name": "default"
616
+ "name": "default",
617
+ "description": "Button label text or content. Supports text, icons, or any inline elements."
510
618
  },
511
619
  {
512
- "name": "trailing"
620
+ "name": "trailing",
621
+ "description": "Icon or element displayed after the button text. Useful for arrows or indicators."
513
622
  }
514
623
  ],
515
624
  "source": {
@@ -519,8 +628,35 @@
519
628
  },
520
629
  {
521
630
  "name": "SkCard",
522
- "description": "",
631
+ "description": "A structured card component with distinct header, media, content, and footer sections. Built on top\nof SkPanel, cards are ideal for displaying grouped information like product listings, user profiles, or article\npreviews. Supports scrollable content areas for fixed-height layouts.\n\n**Example:**\n\n```vue\n<SkCard title=\"Product Details\" kind=\"primary\">\n <template #media>\n <img src=\"/product.jpg\" alt=\"Product\" />\n </template>\n <p>Product description goes here.</p>\n <template #footer>\n <SkButton>Add to Cart</SkButton>\n </template>\n</SkCard>\n```",
523
632
  "attributes": [
633
+ {
634
+ "name": "borderColor",
635
+ "required": false,
636
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
637
+ "value": {
638
+ "kind": "expression",
639
+ "type": "string"
640
+ }
641
+ },
642
+ {
643
+ "name": "textColor",
644
+ "required": false,
645
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
646
+ "value": {
647
+ "kind": "expression",
648
+ "type": "string"
649
+ }
650
+ },
651
+ {
652
+ "name": "baseColor",
653
+ "required": false,
654
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
655
+ "value": {
656
+ "kind": "expression",
657
+ "type": "string"
658
+ }
659
+ },
524
660
  {
525
661
  "name": "kind",
526
662
  "required": false,
@@ -624,16 +760,20 @@
624
760
  ],
625
761
  "slots": [
626
762
  {
627
- "name": "header"
763
+ "name": "header",
764
+ "description": "Custom header content. Renders alongside or instead of the `title` prop. Use for action buttons,\n badges, or complex header layouts."
628
765
  },
629
766
  {
630
- "name": "media"
767
+ "name": "media",
768
+ "description": "Media content area (images, videos, etc.) that spans the full width without padding. Displays\n between the header and content sections."
631
769
  },
632
770
  {
633
- "name": "default"
771
+ "name": "default",
772
+ "description": "The main content area of the card. Displays below the header and media sections."
634
773
  },
635
774
  {
636
- "name": "footer"
775
+ "name": "footer",
776
+ "description": "Footer content area for actions, links, or metadata. Displays at the bottom of the card with\n appropriate spacing."
637
777
  }
638
778
  ],
639
779
  "source": {
@@ -643,8 +783,35 @@
643
783
  },
644
784
  {
645
785
  "name": "SkCheckbox",
646
- "description": "",
786
+ "description": "A checkbox input component supporting boolean and indeterminate states. Built on RekaUI's\nCheckbox primitive with beveled corner styling and full keyboard accessibility. Use with `v-model` for\ntwo-way binding of the checked state.\n\n**Example:**\n\n```vue\n<SkCheckbox v-model=\"accepted\" label=\"Accept terms\" kind=\"primary\" />\n```",
647
787
  "attributes": [
788
+ {
789
+ "name": "borderColor",
790
+ "required": false,
791
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
792
+ "value": {
793
+ "kind": "expression",
794
+ "type": "string"
795
+ }
796
+ },
797
+ {
798
+ "name": "textColor",
799
+ "required": false,
800
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
801
+ "value": {
802
+ "kind": "expression",
803
+ "type": "string"
804
+ }
805
+ },
806
+ {
807
+ "name": "baseColor",
808
+ "required": false,
809
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
810
+ "value": {
811
+ "kind": "expression",
812
+ "type": "string"
813
+ }
814
+ },
648
815
  {
649
816
  "name": "kind",
650
817
  "required": false,
@@ -708,7 +875,8 @@
708
875
  ],
709
876
  "slots": [
710
877
  {
711
- "name": "default"
878
+ "name": "default",
879
+ "description": "Custom label content. Overrides the `label` prop when provided."
712
880
  }
713
881
  ],
714
882
  "source": {
@@ -718,8 +886,35 @@
718
886
  },
719
887
  {
720
888
  "name": "SkCollapsible",
721
- "description": "",
889
+ "description": "An expandable/collapsible container that reveals or hides content with smooth height animations.\nBuilt on RekaUI's Collapsible primitive for robust accessibility and keyboard support. Use for FAQ sections,\nexpandable details, or any content that should be hidden by default to reduce visual clutter.\n\n**Example:**\n\n```vue\n<SkCollapsible v-model:open=\"showDetails\" trigger-text=\"Show Details\" kind=\"primary\">\n <p>This content is hidden until the user clicks the trigger.</p>\n</SkCollapsible>\n```\n\n**Example:**\n\nCustom trigger with slot\n```vue\n<SkCollapsible v-model:open=\"isExpanded\">\n <template #trigger=\"{ open }\">\n <SkButton variant=\"outline\">\n {{ open ? 'Hide' : 'Show' }} Advanced Options\n </SkButton>\n </template>\n <div class=\"options-panel\">\n <!-- Advanced options content -->\n </div>\n</SkCollapsible>\n```",
722
890
  "attributes": [
891
+ {
892
+ "name": "borderColor",
893
+ "required": false,
894
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
895
+ "value": {
896
+ "kind": "expression",
897
+ "type": "string"
898
+ }
899
+ },
900
+ {
901
+ "name": "textColor",
902
+ "required": false,
903
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
904
+ "value": {
905
+ "kind": "expression",
906
+ "type": "string"
907
+ }
908
+ },
909
+ {
910
+ "name": "baseColor",
911
+ "required": false,
912
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
913
+ "value": {
914
+ "kind": "expression",
915
+ "type": "string"
916
+ }
917
+ },
723
918
  {
724
919
  "name": "open",
725
920
  "required": false,
@@ -778,10 +973,12 @@
778
973
  ],
779
974
  "slots": [
780
975
  {
781
- "name": "trigger"
976
+ "name": "trigger",
977
+ "description": "Custom trigger element. Receives `{ open: boolean }` slot props to allow the trigger to\n reflect the current state. When not provided, a default SkButton with chevron icon is rendered."
782
978
  },
783
979
  {
784
- "name": "default"
980
+ "name": "default",
981
+ "description": "The collapsible content that is shown/hidden. This content animates smoothly when the\n collapsed state changes."
785
982
  }
786
983
  ],
787
984
  "source": {
@@ -793,6 +990,33 @@
793
990
  "name": "SkColorPicker",
794
991
  "description": "",
795
992
  "attributes": [
993
+ {
994
+ "name": "borderColor",
995
+ "required": false,
996
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
997
+ "value": {
998
+ "kind": "expression",
999
+ "type": "string"
1000
+ }
1001
+ },
1002
+ {
1003
+ "name": "textColor",
1004
+ "required": false,
1005
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
1006
+ "value": {
1007
+ "kind": "expression",
1008
+ "type": "string"
1009
+ }
1010
+ },
1011
+ {
1012
+ "name": "baseColor",
1013
+ "required": false,
1014
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
1015
+ "value": {
1016
+ "kind": "expression",
1017
+ "type": "string"
1018
+ }
1019
+ },
796
1020
  {
797
1021
  "name": "kind",
798
1022
  "required": false,
@@ -866,6 +1090,33 @@
866
1090
  "name": "SkContextMenu",
867
1091
  "description": "",
868
1092
  "attributes": [
1093
+ {
1094
+ "name": "borderColor",
1095
+ "required": false,
1096
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
1097
+ "value": {
1098
+ "kind": "expression",
1099
+ "type": "string"
1100
+ }
1101
+ },
1102
+ {
1103
+ "name": "textColor",
1104
+ "required": false,
1105
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
1106
+ "value": {
1107
+ "kind": "expression",
1108
+ "type": "string"
1109
+ }
1110
+ },
1111
+ {
1112
+ "name": "baseColor",
1113
+ "required": false,
1114
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
1115
+ "value": {
1116
+ "kind": "expression",
1117
+ "type": "string"
1118
+ }
1119
+ },
869
1120
  {
870
1121
  "name": "kind",
871
1122
  "required": false,
@@ -1072,7 +1323,7 @@
1072
1323
  },
1073
1324
  {
1074
1325
  "name": "SkDivider",
1075
- "description": "",
1326
+ "description": "A visual separator component used to divide content into distinct sections. Renders as a semantic\n`<hr>` element with proper ARIA attributes for accessibility. Use horizontal dividers to separate stacked\ncontent, or vertical dividers to separate inline elements like toolbar buttons.\n\n**Example:**\n\n```vue\n<div>\n <p>First section content</p>\n <SkDivider kind=\"primary\" />\n <p>Second section content</p>\n</div>\n```\n\n**Example:**\n\nVertical divider in a toolbar\n```vue\n<SkGroup orientation=\"horizontal\">\n <SkButton>Edit</SkButton>\n <SkDivider orientation=\"vertical\" variant=\"subtle\" />\n <SkButton>Delete</SkButton>\n</SkGroup>\n```",
1076
1327
  "attributes": [
1077
1328
  {
1078
1329
  "name": "orientation",
@@ -1122,8 +1373,35 @@
1122
1373
  },
1123
1374
  {
1124
1375
  "name": "SkDropdown",
1125
- "description": "",
1376
+ "description": "A dropdown menu component that displays a list of actions or options when triggered. Built on\nRekaUI's dropdown primitives with full keyboard navigation, focus management, and accessibility. The menu\ncontent is portaled to the document body to prevent overflow issues. Supports nested submenus via\nSkDropdownSubmenu.\n\n**Example:**\n\n```vue\n<SkDropdown trigger-text=\"Actions\" kind=\"primary\">\n <SkDropdownMenuItem @click=\"handleEdit\">Edit</SkDropdownMenuItem>\n <SkDropdownMenuItem @click=\"handleDuplicate\">Duplicate</SkDropdownMenuItem>\n <SkDropdownMenuSeparator />\n <SkDropdownMenuItem @click=\"handleDelete\">Delete</SkDropdownMenuItem>\n</SkDropdown>\n```",
1126
1377
  "attributes": [
1378
+ {
1379
+ "name": "borderColor",
1380
+ "required": false,
1381
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
1382
+ "value": {
1383
+ "kind": "expression",
1384
+ "type": "string"
1385
+ }
1386
+ },
1387
+ {
1388
+ "name": "textColor",
1389
+ "required": false,
1390
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
1391
+ "value": {
1392
+ "kind": "expression",
1393
+ "type": "string"
1394
+ }
1395
+ },
1396
+ {
1397
+ "name": "baseColor",
1398
+ "required": false,
1399
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
1400
+ "value": {
1401
+ "kind": "expression",
1402
+ "type": "string"
1403
+ }
1404
+ },
1127
1405
  {
1128
1406
  "name": "kind",
1129
1407
  "required": false,
@@ -1173,14 +1451,26 @@
1173
1451
  "type": "number"
1174
1452
  },
1175
1453
  "default": "4"
1454
+ },
1455
+ {
1456
+ "name": "size",
1457
+ "required": false,
1458
+ "description": "Size of the default trigger button. When omitted and the dropdown is rendered inside\nan SkNavBar, falls back to the navbar's `size` prop so the trigger naturally matches\nsurrounding nav controls. Ignored when the `trigger` slot is used.",
1459
+ "value": {
1460
+ "kind": "expression",
1461
+ "type": "SkDropdownSize"
1462
+ },
1463
+ "default": "undefined"
1176
1464
  }
1177
1465
  ],
1178
1466
  "slots": [
1179
1467
  {
1180
- "name": "trigger"
1468
+ "name": "trigger",
1469
+ "description": "Custom trigger element. When provided, replaces the default SkButton trigger.\n The slot content should be an interactive element (button, link, etc.)."
1181
1470
  },
1182
1471
  {
1183
- "name": "default"
1472
+ "name": "default",
1473
+ "description": "Menu content containing SkDropdownMenuItem, SkDropdownMenuSeparator, and/or\n SkDropdownSubmenu components."
1184
1474
  }
1185
1475
  ],
1186
1476
  "source": {
@@ -1228,7 +1518,7 @@
1228
1518
  },
1229
1519
  {
1230
1520
  "name": "SkDropdownMenuItem",
1231
- "description": "",
1521
+ "description": "An individual menu item for use inside SkDropdown or SkDropdownSubmenu. Provides keyboard\nnavigation support (arrow keys, Enter/Space to select) and proper focus management. Menu items automatically\nclose the dropdown when clicked unless the event is prevented.\n\n**Example:**\n\n```vue\n<SkDropdown trigger-text=\"File\">\n <SkDropdownMenuItem @click=\"handleNew\">New Document</SkDropdownMenuItem>\n <SkDropdownMenuItem @click=\"handleOpen\">Open...</SkDropdownMenuItem>\n <SkDropdownMenuItem disabled>Save (disabled)</SkDropdownMenuItem>\n</SkDropdown>\n```",
1232
1522
  "attributes": [
1233
1523
  {
1234
1524
  "name": "disabled",
@@ -1248,7 +1538,8 @@
1248
1538
  ],
1249
1539
  "slots": [
1250
1540
  {
1251
- "name": "default"
1541
+ "name": "default",
1542
+ "description": "The menu item label content. Can include text, icons, keyboard shortcuts, or any inline elements."
1252
1543
  }
1253
1544
  ],
1254
1545
  "source": {
@@ -1271,7 +1562,7 @@
1271
1562
  },
1272
1563
  {
1273
1564
  "name": "SkDropdownMenuSeparator",
1274
- "description": "",
1565
+ "description": "A visual divider line for grouping related menu items within SkDropdown or SkDropdownSubmenu.\nUse separators to create logical sections in longer menus, improving scannability and organization.\nThis is a purely visual component with no interactive behavior.\n\n**Example:**\n\n```vue\n<SkDropdown trigger-text=\"Edit\">\n <SkDropdownMenuItem>Undo</SkDropdownMenuItem>\n <SkDropdownMenuItem>Redo</SkDropdownMenuItem>\n <SkDropdownMenuSeparator />\n <SkDropdownMenuItem>Cut</SkDropdownMenuItem>\n <SkDropdownMenuItem>Copy</SkDropdownMenuItem>\n <SkDropdownMenuItem>Paste</SkDropdownMenuItem>\n</SkDropdown>\n```",
1275
1566
  "source": {
1276
1567
  "module": "./src/components/Dropdown/SkDropdownMenuSeparator.vue",
1277
1568
  "symbol": "default"
@@ -1340,7 +1631,7 @@
1340
1631
  },
1341
1632
  {
1342
1633
  "name": "SkDropdownSubmenu",
1343
- "description": "",
1634
+ "description": "A nested submenu component that expands from a parent SkDropdown or another SkDropdownSubmenu.\nThe submenu opens to the side when the trigger item is hovered or focused, with full keyboard navigation\nsupport (arrow keys to navigate, Enter/Space or Right arrow to open, Left arrow or Escape to close).\nContent is portaled to prevent overflow clipping.\n\n**Example:**\n\n```vue\n<SkDropdown trigger-text=\"Options\">\n <SkDropdownMenuItem>Simple Action</SkDropdownMenuItem>\n <SkDropdownSubmenu trigger-text=\"More Actions\">\n <SkDropdownMenuItem>Nested Item 1</SkDropdownMenuItem>\n <SkDropdownMenuItem>Nested Item 2</SkDropdownMenuItem>\n </SkDropdownSubmenu>\n</SkDropdown>\n```",
1344
1635
  "attributes": [
1345
1636
  {
1346
1637
  "name": "triggerText",
@@ -1364,7 +1655,8 @@
1364
1655
  ],
1365
1656
  "slots": [
1366
1657
  {
1367
- "name": "default"
1658
+ "name": "default",
1659
+ "description": "Menu content containing SkDropdownMenuItem, SkDropdownMenuSeparator, or further\n nested SkDropdownSubmenu components."
1368
1660
  }
1369
1661
  ],
1370
1662
  "source": {
@@ -1374,7 +1666,7 @@
1374
1666
  },
1375
1667
  {
1376
1668
  "name": "SkField",
1377
- "description": "",
1669
+ "description": "A form field wrapper that provides consistent label, description, and error message layout.\nAutomatically generates unique IDs and wires up ARIA attributes (aria-describedby, aria-invalid) for\naccessibility. Child input components (SkInput, SkTextarea, etc.) automatically inherit the validation\nkind based on the `state` prop.\n\n**Example:**\n\n```vue\n<SkField label=\"Email\" description=\"We'll never share your email\" :error=\"errors.email\">\n <SkInput v-model=\"email\" type=\"email\" />\n</SkField>\n\n<SkField label=\"Username\" required :state=\"isValid\" label-position=\"left\">\n <SkInput v-model=\"username\" />\n</SkField>\n```",
1378
1670
  "attributes": [
1379
1671
  {
1380
1672
  "name": "label",
@@ -1469,7 +1761,8 @@
1469
1761
  ],
1470
1762
  "slots": [
1471
1763
  {
1472
- "name": "default"
1764
+ "name": "default",
1765
+ "description": "The form input component (SkInput, SkTextarea, SkNumberInput, etc.). Receives slot props:\n `id` (string) - unique ID for the input, `aria-describedby` (string) - ID of description/error element,\n `aria-invalid` (string) - \"true\" when error present, `kind` (string) - semantic kind based on state."
1473
1766
  }
1474
1767
  ],
1475
1768
  "source": {
@@ -1479,7 +1772,7 @@
1479
1772
  },
1480
1773
  {
1481
1774
  "name": "SkGroup",
1482
- "description": "",
1775
+ "description": "A flexbox-based layout container that groups child elements with consistent spacing and alignment.\nUse SkGroup to arrange buttons, form controls, or any elements that should be visually grouped together.\nThe component uses CSS gap for reliable spacing that works correctly regardless of conditional rendering.\n\n**Example:**\n\n```vue\n<SkGroup orientation=\"horizontal\">\n <SkButton>Save</SkButton>\n <SkButton variant=\"outline\">Cancel</SkButton>\n</SkGroup>\n```",
1483
1776
  "attributes": [
1484
1777
  {
1485
1778
  "name": "orientation",
@@ -1494,7 +1787,8 @@
1494
1787
  ],
1495
1788
  "slots": [
1496
1789
  {
1497
- "name": "default"
1790
+ "name": "default",
1791
+ "description": "The child elements to be grouped. All direct children will be arranged according to the\n orientation prop with consistent spacing between them."
1498
1792
  }
1499
1793
  ],
1500
1794
  "source": {
@@ -1504,8 +1798,35 @@
1504
1798
  },
1505
1799
  {
1506
1800
  "name": "SkInput",
1507
- "description": "",
1801
+ "description": "A single-line text input component with semantic color theming and validation state support.\nSupports various HTML input types (text, email, password, etc.) and integrates with SkField for labels\nand error messages. Use with `v-model` for two-way data binding of the input value.\n\n**Example:**\n\n```vue\n<SkInput v-model=\"email\" type=\"email\" placeholder=\"Enter your email\" />\n<SkInput v-model=\"search\" kind=\"primary\" size=\"lg\" />\n<SkField label=\"Username\" :error=\"errors.username\">\n <SkInput v-model=\"username\" name=\"username\" required />\n</SkField>\n```",
1508
1802
  "attributes": [
1803
+ {
1804
+ "name": "borderColor",
1805
+ "required": false,
1806
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
1807
+ "value": {
1808
+ "kind": "expression",
1809
+ "type": "string"
1810
+ }
1811
+ },
1812
+ {
1813
+ "name": "textColor",
1814
+ "required": false,
1815
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
1816
+ "value": {
1817
+ "kind": "expression",
1818
+ "type": "string"
1819
+ }
1820
+ },
1821
+ {
1822
+ "name": "baseColor",
1823
+ "required": false,
1824
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
1825
+ "value": {
1826
+ "kind": "expression",
1827
+ "type": "string"
1828
+ }
1829
+ },
1509
1830
  {
1510
1831
  "name": "type",
1511
1832
  "required": false,
@@ -1604,8 +1925,35 @@
1604
1925
  },
1605
1926
  {
1606
1927
  "name": "SkListbox",
1607
- "description": "",
1928
+ "description": "A searchable dropdown listbox for selecting from predefined options. Features a text input\nfor filtering options and a dropdown panel displaying matching items. Built on RekaUI's Combobox\nprimitive with full keyboard navigation, type-ahead search, and portal rendering for proper z-index.\n\n**Example:**\n\n```vue\n<SkListbox v-model=\"selectedCountry\" kind=\"primary\" placeholder=\"Select a country...\">\n <SkListboxItem value=\"us\">United States</SkListboxItem>\n <SkListboxItem value=\"uk\">United Kingdom</SkListboxItem>\n <SkListboxItem value=\"ca\">Canada</SkListboxItem>\n</SkListbox>\n```",
1608
1929
  "attributes": [
1930
+ {
1931
+ "name": "borderColor",
1932
+ "required": false,
1933
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
1934
+ "value": {
1935
+ "kind": "expression",
1936
+ "type": "string"
1937
+ }
1938
+ },
1939
+ {
1940
+ "name": "textColor",
1941
+ "required": false,
1942
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
1943
+ "value": {
1944
+ "kind": "expression",
1945
+ "type": "string"
1946
+ }
1947
+ },
1948
+ {
1949
+ "name": "baseColor",
1950
+ "required": false,
1951
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
1952
+ "value": {
1953
+ "kind": "expression",
1954
+ "type": "string"
1955
+ }
1956
+ },
1609
1957
  {
1610
1958
  "name": "kind",
1611
1959
  "required": false,
@@ -1649,7 +1997,8 @@
1649
1997
  ],
1650
1998
  "slots": [
1651
1999
  {
1652
- "name": "default"
2000
+ "name": "default",
2001
+ "description": "SkListboxItem components representing the available options. Use SkListboxSeparator\n to create visual dividers between groups of options."
1653
2002
  }
1654
2003
  ],
1655
2004
  "source": {
@@ -1659,7 +2008,7 @@
1659
2008
  },
1660
2009
  {
1661
2010
  "name": "SkListboxItem",
1662
- "description": "",
2011
+ "description": "A selectable option within an SkListbox dropdown. When selected, the item displays a\ncheckmark indicator and its value is set as the listbox's v-model. Built on RekaUI's ComboboxItem\nwith keyboard navigation and type-ahead search support.\n\n**Example:**\n\n```vue\n<SkListbox v-model=\"selected\">\n <SkListboxItem value=\"option1\">First Option</SkListboxItem>\n <SkListboxItem value=\"option2\">Second Option</SkListboxItem>\n <SkListboxItem value=\"option3\" disabled>Unavailable Option</SkListboxItem>\n</SkListbox>\n```",
1663
2012
  "attributes": [
1664
2013
  {
1665
2014
  "name": "value",
@@ -1683,7 +2032,8 @@
1683
2032
  ],
1684
2033
  "slots": [
1685
2034
  {
1686
- "name": "default"
2035
+ "name": "default",
2036
+ "description": "The display content for this option. Can be plain text or rich content including\n icons, formatted text, or custom layouts. This is what users see in the dropdown."
1687
2037
  }
1688
2038
  ],
1689
2039
  "source": {
@@ -1693,7 +2043,7 @@
1693
2043
  },
1694
2044
  {
1695
2045
  "name": "SkListboxSeparator",
1696
- "description": "",
2046
+ "description": "A visual divider for organizing options within an SkListbox dropdown. Use to create\nlogical groups of related options without affecting selection behavior. Renders as a horizontal\nline between items with appropriate spacing.\n\n**Example:**\n\n```vue\n<SkListbox v-model=\"selected\">\n <SkListboxItem value=\"recent1\">Recent Document 1</SkListboxItem>\n <SkListboxItem value=\"recent2\">Recent Document 2</SkListboxItem>\n <SkListboxSeparator />\n <SkListboxItem value=\"all\">Browse All Documents...</SkListboxItem>\n</SkListbox>\n```",
1697
2047
  "source": {
1698
2048
  "module": "./src/components/Listbox/SkListboxSeparator.vue",
1699
2049
  "symbol": "default"
@@ -1701,8 +2051,35 @@
1701
2051
  },
1702
2052
  {
1703
2053
  "name": "SkModal",
1704
- "description": "",
2054
+ "description": "A modal dialog component for displaying focused content in an overlay. Built on RekaUI's Dialog\nprimitive with full accessibility support including focus trapping and ARIA attributes. Modals interrupt the\nuser workflow to capture attention for important information, confirmations, or forms.\n\n**Example:**\n\n```vue\n<SkModal v-model:open=\"showModal\" title=\"Confirm Action\">\n <p>Are you sure you want to proceed?</p>\n <template #footer=\"{ close }\">\n <SkButton @click=\"close\">Cancel</SkButton>\n <SkButton kind=\"primary\" @click=\"confirm(); close()\">Confirm</SkButton>\n </template>\n</SkModal>\n```\n\n**Example:**\n\nWith trigger button\n```vue\n<SkModal title=\"Settings\" trigger-text=\"Open Settings\" kind=\"primary\">\n <SettingsForm />\n</SkModal>\n```",
1705
2055
  "attributes": [
2056
+ {
2057
+ "name": "borderColor",
2058
+ "required": false,
2059
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
2060
+ "value": {
2061
+ "kind": "expression",
2062
+ "type": "string"
2063
+ }
2064
+ },
2065
+ {
2066
+ "name": "textColor",
2067
+ "required": false,
2068
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
2069
+ "value": {
2070
+ "kind": "expression",
2071
+ "type": "string"
2072
+ }
2073
+ },
2074
+ {
2075
+ "name": "baseColor",
2076
+ "required": false,
2077
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
2078
+ "value": {
2079
+ "kind": "expression",
2080
+ "type": "string"
2081
+ }
2082
+ },
1706
2083
  {
1707
2084
  "name": "kind",
1708
2085
  "required": false,
@@ -1801,16 +2178,20 @@
1801
2178
  ],
1802
2179
  "slots": [
1803
2180
  {
1804
- "name": "trigger"
2181
+ "name": "trigger",
2182
+ "description": "Custom trigger element to open the modal. Receives no slot props. If not provided, uses\n a default SkButton with `triggerText`."
1805
2183
  },
1806
2184
  {
1807
- "name": "title"
2185
+ "name": "title",
2186
+ "description": "Custom title content. Receives `{ close }` slot prop for programmatic closing."
1808
2187
  },
1809
2188
  {
1810
- "name": "default"
2189
+ "name": "default",
2190
+ "description": "The main modal body content. Receives `{ close }` slot prop for programmatic closing."
1811
2191
  },
1812
2192
  {
1813
- "name": "footer"
2193
+ "name": "footer",
2194
+ "description": "Footer content, typically containing action buttons. Receives `{ close }` slot prop."
1814
2195
  }
1815
2196
  ],
1816
2197
  "source": {
@@ -1820,8 +2201,35 @@
1820
2201
  },
1821
2202
  {
1822
2203
  "name": "SkNavBar",
1823
- "description": "",
2204
+ "description": "A horizontal navigation bar component for site-wide header navigation. Provides a structured\nlayout with three distinct zones: brand/logo area (left), main navigation links (center), and action\nbuttons (right). Supports sticky positioning to remain visible while scrolling and adapts to your\ntheme's semantic colors.\n\n**Example:**\n\n```vue\n<SkNavBar kind=\"primary\">\n <template #brand>\n <img src=\"/logo.svg\" alt=\"Logo\" />\n </template>\n <SkButton as=\"a\" href=\"/features\">Features</SkButton>\n <SkButton as=\"a\" href=\"/pricing\">Pricing</SkButton>\n <template #actions>\n <SkButton kind=\"accent\">Sign Up</SkButton>\n </template>\n</SkNavBar>\n```",
1824
2205
  "attributes": [
2206
+ {
2207
+ "name": "borderColor",
2208
+ "required": false,
2209
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
2210
+ "value": {
2211
+ "kind": "expression",
2212
+ "type": "string"
2213
+ }
2214
+ },
2215
+ {
2216
+ "name": "textColor",
2217
+ "required": false,
2218
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
2219
+ "value": {
2220
+ "kind": "expression",
2221
+ "type": "string"
2222
+ }
2223
+ },
2224
+ {
2225
+ "name": "baseColor",
2226
+ "required": false,
2227
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
2228
+ "value": {
2229
+ "kind": "expression",
2230
+ "type": "string"
2231
+ }
2232
+ },
1825
2233
  {
1826
2234
  "name": "kind",
1827
2235
  "required": false,
@@ -1841,20 +2249,34 @@
1841
2249
  "type": "boolean"
1842
2250
  },
1843
2251
  "default": "true"
2252
+ },
2253
+ {
2254
+ "name": "size",
2255
+ "required": false,
2256
+ "description": "Default size for descendant components (buttons, dropdowns, sidebar toggles, etc.) that\nread the navbar context. Picks a size that fits the navbar's 4rem height without\noverflowing. Descendants can still override with their own `size` prop.",
2257
+ "value": {
2258
+ "kind": "expression",
2259
+ "type": "SkNavBarSize"
2260
+ },
2261
+ "default": "'md'"
1844
2262
  }
1845
2263
  ],
1846
2264
  "slots": [
1847
2265
  {
1848
- "name": "leading"
2266
+ "name": "leading",
2267
+ "description": "Far-left area, rendered before the brand. Canonical placement for a\n sidebar-drawer toggle (SkPageSidebarToggle). Empty by default."
1849
2268
  },
1850
2269
  {
1851
- "name": "brand"
2270
+ "name": "brand",
2271
+ "description": "Left-aligned area for your logo, site name, or brand identity. Typically contains an\n image or text link to the homepage."
1852
2272
  },
1853
2273
  {
1854
- "name": "default"
2274
+ "name": "default",
2275
+ "description": "Center area for main navigation items. Place navigation buttons, links, or menu\n triggers here. Items are displayed in a horizontal row."
1855
2276
  },
1856
2277
  {
1857
- "name": "actions"
2278
+ "name": "actions",
2279
+ "description": "Right-aligned area for call-to-action buttons, user menus, or utility controls.\n Ideal for login buttons, shopping carts, or profile dropdowns."
1858
2280
  }
1859
2281
  ],
1860
2282
  "source": {
@@ -1864,8 +2286,35 @@
1864
2286
  },
1865
2287
  {
1866
2288
  "name": "SkNumberInput",
1867
- "description": "",
2289
+ "description": "A numeric input component with built-in increment/decrement stepper buttons. Built on RekaUI's\nNumberField primitive with full keyboard accessibility (arrow keys, page up/down, home/end). Supports\nmin/max constraints and configurable step values. Use with `v-model` for two-way binding of the numeric value.\n\n**Example:**\n\n```vue\n<SkNumberInput v-model=\"quantity\" :min=\"1\" :max=\"100\" />\n<SkNumberInput v-model=\"price\" :step=\"0.01\" :min=\"0\" placeholder=\"0.00\" />\n<SkField label=\"Age\" :error=\"errors.age\">\n <SkNumberInput v-model=\"age\" name=\"age\" :min=\"0\" :max=\"150\" />\n</SkField>\n```",
1868
2290
  "attributes": [
2291
+ {
2292
+ "name": "borderColor",
2293
+ "required": false,
2294
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
2295
+ "value": {
2296
+ "kind": "expression",
2297
+ "type": "string"
2298
+ }
2299
+ },
2300
+ {
2301
+ "name": "textColor",
2302
+ "required": false,
2303
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
2304
+ "value": {
2305
+ "kind": "expression",
2306
+ "type": "string"
2307
+ }
2308
+ },
2309
+ {
2310
+ "name": "baseColor",
2311
+ "required": false,
2312
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
2313
+ "value": {
2314
+ "kind": "expression",
2315
+ "type": "string"
2316
+ }
2317
+ },
1869
2318
  {
1870
2319
  "name": "kind",
1871
2320
  "required": false,
@@ -1965,6 +2414,16 @@
1965
2414
  "type": "number"
1966
2415
  },
1967
2416
  "default": "1"
2417
+ },
2418
+ {
2419
+ "name": "showSteppers",
2420
+ "required": false,
2421
+ "description": "When true, renders the increment/decrement stepper buttons on the right side of the\ninput. Set to false for a plain numeric text field (users can still use arrow keys\nand type values directly).",
2422
+ "value": {
2423
+ "kind": "expression",
2424
+ "type": "boolean"
2425
+ },
2426
+ "default": "true"
1968
2427
  }
1969
2428
  ],
1970
2429
  "source": {
@@ -1974,7 +2433,7 @@
1974
2433
  },
1975
2434
  {
1976
2435
  "name": "SkPage",
1977
- "description": "",
2436
+ "description": "Full-page layout shell with symmetric panels: a left sidebar and a right aside, each with\nits own header/body/footer slot trio, and each independently persistent, drawer-based, or responsive.\nWraps header / subheader / main content (with optional `main-header` and `main-footer` strips) / footer.\nSidebar slides in from the left; aside slides in from the right, with backdrop, focus trap, and\nESC-to-close. Drop `<SkPageSidebarToggle />` into the navbar's `#leading` for the sidebar and\n`<SkPageSidebarToggle side=\"aside\" />` into `#actions` for the aside.\n\n**Example:**\n\nApp shell with both panels\n```vue\n<SkPage fixed-header>\n <template #header>\n <SkNavBar>\n <template #leading><SkPageSidebarToggle /></template>\n <template #brand>AppName</template>\n <template #actions><SkPageSidebarToggle side=\"aside\" /></template>\n </SkNavBar>\n </template>\n <template #sidebar><SkSidebar>...</SkSidebar></template>\n <template #aside>...</template>\n <MainContent />\n</SkPage>\n```",
1978
2437
  "attributes": [
1979
2438
  {
1980
2439
  "name": "fixedHeader",
@@ -2095,6 +2554,16 @@
2095
2554
  "type": "boolean"
2096
2555
  },
2097
2556
  "default": "false"
2557
+ },
2558
+ {
2559
+ "name": "noBounce",
2560
+ "required": false,
2561
+ "description": "When true, disables the bouncy overscroll / rubber-band effect on the page's scroll\ncontainers (main content, sidebar body, aside body). Applies `overscroll-behavior: none`\nto every scrollable region owned by SkPage. Note: the document-level bounce from scrolling\nthe page itself (outside SkPage's containers) can only be killed on `html`/`body`.",
2562
+ "value": {
2563
+ "kind": "expression",
2564
+ "type": "boolean"
2565
+ },
2566
+ "default": "false"
2098
2567
  }
2099
2568
  ],
2100
2569
  "events": [
@@ -2107,40 +2576,52 @@
2107
2576
  ],
2108
2577
  "slots": [
2109
2578
  {
2110
- "name": "header"
2579
+ "name": "header",
2580
+ "description": "Top-of-page header. Typically a SkNavBar."
2111
2581
  },
2112
2582
  {
2113
- "name": "subheader"
2583
+ "name": "subheader",
2584
+ "description": "Full-width strip between the header and the main row. Good for breadcrumbs or sub-tabs."
2114
2585
  },
2115
2586
  {
2116
- "name": "sidebar-header"
2587
+ "name": "sidebar-header",
2588
+ "description": "Pinned top of the sidebar (e.g. logo, search). Renders in the drawer too.\n Slot props: `{ isDrawer: boolean }`."
2117
2589
  },
2118
2590
  {
2119
- "name": "sidebar"
2591
+ "name": "sidebar",
2592
+ "description": "Left sidebar body. Renders inline when persistent, inside a drawer when in drawer mode.\n Slot props: `{ isDrawer: boolean }` — true when this invocation is the off-canvas drawer."
2120
2593
  },
2121
2594
  {
2122
- "name": "sidebar-footer"
2595
+ "name": "sidebar-footer",
2596
+ "description": "Pinned bottom of the sidebar (e.g. user menu). Renders in the drawer too.\n Slot props: `{ isDrawer: boolean }`."
2123
2597
  },
2124
2598
  {
2125
- "name": "main-header"
2599
+ "name": "main-header",
2600
+ "description": "Pinned top of the center column (e.g. breadcrumbs, sub-tabs). Does not scroll."
2126
2601
  },
2127
2602
  {
2128
- "name": "default"
2603
+ "name": "default",
2604
+ "description": "Main content. Scrolls inside the content area and receives the default content padding."
2129
2605
  },
2130
2606
  {
2131
- "name": "main-footer"
2607
+ "name": "main-footer",
2608
+ "description": "Pinned bottom of the center column (e.g. status bar). Does not scroll."
2132
2609
  },
2133
2610
  {
2134
- "name": "aside-header"
2611
+ "name": "aside-header",
2612
+ "description": "Pinned top of the aside (e.g. panel title). Renders in the drawer too.\n Slot props: `{ isDrawer: boolean }`."
2135
2613
  },
2136
2614
  {
2137
- "name": "aside"
2615
+ "name": "aside",
2616
+ "description": "Right aside body. Persistent or drawer, mirror of the sidebar on the opposite side.\n Slot props: `{ isDrawer: boolean }` — use to add chrome only when rendering in the drawer."
2138
2617
  },
2139
2618
  {
2140
- "name": "aside-footer"
2619
+ "name": "aside-footer",
2620
+ "description": "Pinned bottom of the aside (e.g. action buttons). Renders in the drawer too.\n Slot props: `{ isDrawer: boolean }`."
2141
2621
  },
2142
2622
  {
2143
- "name": "footer"
2623
+ "name": "footer",
2624
+ "description": "Bottom-of-page footer."
2144
2625
  }
2145
2626
  ],
2146
2627
  "source": {
@@ -2150,7 +2631,7 @@
2150
2631
  },
2151
2632
  {
2152
2633
  "name": "SkPageSidebarToggle",
2153
- "description": "",
2634
+ "description": "Button that toggles one of SkPage's drawers. Thin wrapper around SkButton -- inherits the\ndesign system's chrome and ghost-variant hover/pressed behavior. Auto-connects to the nearest SkPage\nvia provide/inject, so no wiring is required; hides itself when the targeted panel is persistent.\nUse `side=\"sidebar\"` (default) for the left drawer and `side=\"aside\"` for the right. Default glyph is\na hamburger for the sidebar and a vertical kebab for the aside so both toggles can live in the same\nnavbar without visual collision; override via the default slot if you want something else.\n\n**Example:**\n\nTwin toggles in a navbar\n```vue\n<SkNavBar>\n <template #leading><SkPageSidebarToggle /></template>\n <template #brand>MyApp</template>\n <template #actions><SkPageSidebarToggle side=\"aside\" /></template>\n</SkNavBar>\n```",
2154
2635
  "attributes": [
2155
2636
  {
2156
2637
  "name": "side",
@@ -2185,7 +2666,8 @@
2185
2666
  ],
2186
2667
  "slots": [
2187
2668
  {
2188
- "name": "default"
2669
+ "name": "default",
2670
+ "description": "Custom glyph. Replaces the built-in SVG. Should be inline-sized and inherit\n `currentColor`."
2189
2671
  }
2190
2672
  ],
2191
2673
  "source": {
@@ -2195,8 +2677,17 @@
2195
2677
  },
2196
2678
  {
2197
2679
  "name": "SkPagination",
2198
- "description": "",
2680
+ "description": "A pagination navigation component for splitting content across multiple pages. Automatically\ncalculates page ranges with ellipsis for large page counts and provides first/last and previous/next navigation\nbuttons. Use with `v-model` for two-way binding of the current page number.\n\n**Example:**\n\n```vue\n<SkPagination v-model=\"currentPage\" :total=\"50\" kind=\"primary\" />\n```\n\n**Example:**\n\nMinimal pagination (no first/last buttons)\n```vue\n<SkPagination\n v-model=\"page\"\n :total=\"10\"\n :show-first-last=\"false\"\n variant=\"outline\"\n/>\n```",
2199
2681
  "attributes": [
2682
+ {
2683
+ "name": "borderColor",
2684
+ "required": false,
2685
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
2686
+ "value": {
2687
+ "kind": "expression",
2688
+ "type": "string"
2689
+ }
2690
+ },
2200
2691
  {
2201
2692
  "name": "textColor",
2202
2693
  "required": false,
@@ -2317,7 +2808,7 @@
2317
2808
  },
2318
2809
  {
2319
2810
  "name": "SkPaginationItem",
2320
- "description": "",
2811
+ "description": "An individual pagination button used internally by SkPagination. Renders different content based\non its type: page numbers, navigation arrows, or ellipsis indicators. Inherits styling from the parent\nSkPagination component via Vue's provide/inject. Not typically used directly—use SkPagination instead.\n\n**Example:**\n\n```vue\n<!-- Used internally by SkPagination -->\n<SkPaginationItem type=\"page\" :page=\"5\" :active=\"true\" />\n<SkPaginationItem type=\"prev\" :page=\"4\" />\n<SkPaginationItem type=\"ellipsis\" />\n```",
2321
2812
  "attributes": [
2322
2813
  {
2323
2814
  "name": "page",
@@ -2372,8 +2863,35 @@
2372
2863
  },
2373
2864
  {
2374
2865
  "name": "SkPanel",
2375
- "description": "",
2866
+ "description": "A foundational container component with beveled corners, borders, background colors, and an optional\ndecorative accent stripe. Panels serve as the base building block for higher-level components like SkCard and\nSkSidebar, providing consistent styling and theming across the design system.\n\n**Example:**\n\n```vue\n<SkPanel kind=\"primary\" size=\"lg\">\n <p>Panel content goes here</p>\n</SkPanel>\n```",
2376
2867
  "attributes": [
2868
+ {
2869
+ "name": "borderColor",
2870
+ "required": false,
2871
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
2872
+ "value": {
2873
+ "kind": "expression",
2874
+ "type": "string"
2875
+ }
2876
+ },
2877
+ {
2878
+ "name": "textColor",
2879
+ "required": false,
2880
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
2881
+ "value": {
2882
+ "kind": "expression",
2883
+ "type": "string"
2884
+ }
2885
+ },
2886
+ {
2887
+ "name": "baseColor",
2888
+ "required": false,
2889
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
2890
+ "value": {
2891
+ "kind": "expression",
2892
+ "type": "string"
2893
+ }
2894
+ },
2377
2895
  {
2378
2896
  "name": "kind",
2379
2897
  "required": false,
@@ -2437,7 +2955,8 @@
2437
2955
  ],
2438
2956
  "slots": [
2439
2957
  {
2440
- "name": "default"
2958
+ "name": "default",
2959
+ "description": "The main content of the panel. Accepts any valid Vue content including text, components, or HTML."
2441
2960
  }
2442
2961
  ],
2443
2962
  "source": {
@@ -2447,8 +2966,35 @@
2447
2966
  },
2448
2967
  {
2449
2968
  "name": "SkPopover",
2450
- "description": "",
2969
+ "description": "A floating panel component for displaying rich interactive content anchored to a trigger element.\nCombines tooltip-like positioning with a card-like structure including optional header, body, and footer\nsections. Built on RekaUI's Popover primitive with full accessibility support, smart collision detection,\nand keyboard navigation. Use for contextual menus, confirmations, mini-forms, or any content that benefits\nfrom staying connected to its trigger.\n\n**Example:**\n\n```vue\n<SkPopover title=\"Quick Settings\" kind=\"primary\">\n <template #trigger>\n <SkButton icon><GearIcon /></SkButton>\n </template>\n <SkSwitch v-model=\"darkMode\" label=\"Dark mode\" />\n <SkSwitch v-model=\"notifications\" label=\"Notifications\" />\n <template #footer>\n <SkButton variant=\"ghost\" size=\"sm\">Reset</SkButton>\n <SkButton kind=\"primary\" size=\"sm\">Apply</SkButton>\n </template>\n</SkPopover>\n```",
2451
2970
  "attributes": [
2971
+ {
2972
+ "name": "borderColor",
2973
+ "required": false,
2974
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
2975
+ "value": {
2976
+ "kind": "expression",
2977
+ "type": "string"
2978
+ }
2979
+ },
2980
+ {
2981
+ "name": "textColor",
2982
+ "required": false,
2983
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
2984
+ "value": {
2985
+ "kind": "expression",
2986
+ "type": "string"
2987
+ }
2988
+ },
2989
+ {
2990
+ "name": "baseColor",
2991
+ "required": false,
2992
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
2993
+ "value": {
2994
+ "kind": "expression",
2995
+ "type": "string"
2996
+ }
2997
+ },
2452
2998
  {
2453
2999
  "name": "kind",
2454
3000
  "required": false,
@@ -2537,16 +3083,20 @@
2537
3083
  ],
2538
3084
  "slots": [
2539
3085
  {
2540
- "name": "trigger"
3086
+ "name": "trigger",
3087
+ "description": "The element that opens the popover when clicked. Uses `as-child` behavior so your\n trigger element becomes the actual clickable trigger. Required slot."
2541
3088
  },
2542
3089
  {
2543
- "name": "header"
3090
+ "name": "header",
3091
+ "description": "Optional header content displayed after the title. Use for additional header elements\n like badges, status indicators, or secondary actions."
2544
3092
  },
2545
3093
  {
2546
- "name": "default"
3094
+ "name": "default",
3095
+ "description": "Main body content of the popover. Can include any components, forms, or interactive content.\n Scrolls if content exceeds available space."
2547
3096
  },
2548
3097
  {
2549
- "name": "footer"
3098
+ "name": "footer",
3099
+ "description": "Optional footer content, typically for action buttons. Commonly contains Cancel/Confirm\n button pairs or other closing actions."
2550
3100
  }
2551
3101
  ],
2552
3102
  "source": {
@@ -2556,7 +3106,7 @@
2556
3106
  },
2557
3107
  {
2558
3108
  "name": "SkProgress",
2559
- "description": "",
3109
+ "description": "A progress bar component for displaying completion status or loading states. Supports both\ndeterminate mode (showing specific progress percentage) and indeterminate mode (animated loading indicator\nwhen progress is unknown). Built on RekaUI's Progress primitive with beveled corner styling.\n\n**Example:**\n\n```vue\n<SkProgress :value=\"75\" kind=\"primary\" show-value />\n```\n\n**Example:**\n\nIndeterminate loading state\n```vue\n<SkProgress :value=\"null\" kind=\"accent\" />\n```\n\n**Example:**\n\nCustom colors with file upload\n```vue\n<SkProgress\n :value=\"uploadProgress\"\n base-color=\"oklch(0.7 0.2 145)\"\n track-color=\"oklch(0.3 0.05 145)\"\n show-value\n value-position=\"right\"\n/>\n```",
2560
3110
  "attributes": [
2561
3111
  {
2562
3112
  "name": "value",
@@ -2646,8 +3196,35 @@
2646
3196
  },
2647
3197
  {
2648
3198
  "name": "SkRadio",
2649
- "description": "",
3199
+ "description": "An individual radio button for mutually exclusive selection within a group. Must be used as\na child of SkRadioGroup, which manages the selection state and keyboard navigation. Built on RekaUI's\nRadioGroup primitive with beveled corner styling and full accessibility support.\n\n**Example:**\n\n```vue\n<SkRadioGroup v-model=\"selectedSize\" kind=\"primary\">\n <SkRadio value=\"sm\" label=\"Small\" />\n <SkRadio value=\"md\" label=\"Medium\" />\n <SkRadio value=\"lg\" label=\"Large\" />\n</SkRadioGroup>\n```",
2650
3200
  "attributes": [
3201
+ {
3202
+ "name": "borderColor",
3203
+ "required": false,
3204
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
3205
+ "value": {
3206
+ "kind": "expression",
3207
+ "type": "string"
3208
+ }
3209
+ },
3210
+ {
3211
+ "name": "textColor",
3212
+ "required": false,
3213
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
3214
+ "value": {
3215
+ "kind": "expression",
3216
+ "type": "string"
3217
+ }
3218
+ },
3219
+ {
3220
+ "name": "baseColor",
3221
+ "required": false,
3222
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
3223
+ "value": {
3224
+ "kind": "expression",
3225
+ "type": "string"
3226
+ }
3227
+ },
2651
3228
  {
2652
3229
  "name": "value",
2653
3230
  "required": true,
@@ -2700,7 +3277,8 @@
2700
3277
  ],
2701
3278
  "slots": [
2702
3279
  {
2703
- "name": "default"
3280
+ "name": "default",
3281
+ "description": "Custom label content. Overrides the `label` prop when provided, allowing for rich\n formatting, icons, or complex layouts alongside the radio button."
2704
3282
  }
2705
3283
  ],
2706
3284
  "source": {
@@ -2710,7 +3288,7 @@
2710
3288
  },
2711
3289
  {
2712
3290
  "name": "SkRadioGroup",
2713
- "description": "",
3291
+ "description": "A container for SkRadio components that manages exclusive selection state and keyboard\nnavigation. Only one radio option can be selected at a time within a group. Built on RekaUI's\nRadioGroup primitive with full accessibility support including arrow key navigation and focus management.\n\n**Example:**\n\n```vue\n<SkRadioGroup v-model=\"paymentMethod\" kind=\"primary\" orientation=\"vertical\">\n <SkRadio value=\"credit\" label=\"Credit Card\" />\n <SkRadio value=\"debit\" label=\"Debit Card\" />\n <SkRadio value=\"paypal\" label=\"PayPal\" />\n</SkRadioGroup>\n```",
2714
3292
  "attributes": [
2715
3293
  {
2716
3294
  "name": "orientation",
@@ -2785,7 +3363,8 @@
2785
3363
  ],
2786
3364
  "slots": [
2787
3365
  {
2788
- "name": "default"
3366
+ "name": "default",
3367
+ "description": "The SkRadio components that make up the group. Each radio should have a unique\n `value` prop. Other content like labels or descriptions can also be included."
2789
3368
  }
2790
3369
  ],
2791
3370
  "source": {
@@ -2845,7 +3424,7 @@
2845
3424
  {
2846
3425
  "name": "fade",
2847
3426
  "required": false,
2848
- "description": "When true, fade the scrollable edges with a CSS mask so content visibly tapers\ninto/out of the viewport. Applies to whichever axis (or both) is scrollable.\nOverride the fade distance via the `--sk-scroll-area-fade` custom property\n(default 1.5rem).",
3427
+ "description": "When true, fade the scrollable edges with a CSS mask so content visibly tapers\ninto/out of the viewport. Only edges with more content to scroll toward get the\nfade -- the top fade disappears at scrollTop=0, bottom fade at scroll end, etc.\nOverride the fade distance via the `--sk-scroll-area-fade` custom property\n(default 1rem).",
2849
3428
  "value": {
2850
3429
  "kind": "expression",
2851
3430
  "type": "boolean"
@@ -2865,8 +3444,35 @@
2865
3444
  },
2866
3445
  {
2867
3446
  "name": "SkSelect",
2868
- "description": "",
3447
+ "description": "A simple dropdown select for picking from predefined options. Unlike SkListbox which includes\na search input for filtering, SkSelect provides a clean trigger button that opens a dropdown panel.\nBuilt on RekaUI's Select primitive with full keyboard navigation and portal rendering.\n\n**Example:**\n\n```vue\n<SkSelect v-model=\"selectedCountry\" kind=\"primary\" placeholder=\"Select a country...\">\n <SkSelectItem value=\"us\">United States</SkSelectItem>\n <SkSelectItem value=\"uk\">United Kingdom</SkSelectItem>\n <SkSelectItem value=\"ca\">Canada</SkSelectItem>\n</SkSelect>\n```",
2869
3448
  "attributes": [
3449
+ {
3450
+ "name": "borderColor",
3451
+ "required": false,
3452
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
3453
+ "value": {
3454
+ "kind": "expression",
3455
+ "type": "string"
3456
+ }
3457
+ },
3458
+ {
3459
+ "name": "textColor",
3460
+ "required": false,
3461
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
3462
+ "value": {
3463
+ "kind": "expression",
3464
+ "type": "string"
3465
+ }
3466
+ },
3467
+ {
3468
+ "name": "baseColor",
3469
+ "required": false,
3470
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
3471
+ "value": {
3472
+ "kind": "expression",
3473
+ "type": "string"
3474
+ }
3475
+ },
2870
3476
  {
2871
3477
  "name": "kind",
2872
3478
  "required": false,
@@ -2910,7 +3516,8 @@
2910
3516
  ],
2911
3517
  "slots": [
2912
3518
  {
2913
- "name": "default"
3519
+ "name": "default",
3520
+ "description": "SkSelectItem components representing the available options. Use SkSelectSeparator\n to create visual dividers between groups of options."
2914
3521
  }
2915
3522
  ],
2916
3523
  "source": {
@@ -2920,7 +3527,7 @@
2920
3527
  },
2921
3528
  {
2922
3529
  "name": "SkSelectItem",
2923
- "description": "",
3530
+ "description": "A selectable option within an SkSelect dropdown. When selected, the item displays a\ncheckmark indicator and its value is set as the select's v-model. Built on RekaUI's SelectItem\nwith keyboard navigation support.\n\n**Example:**\n\n```vue\n<SkSelect v-model=\"selected\">\n <SkSelectItem value=\"option1\">First Option</SkSelectItem>\n <SkSelectItem value=\"option2\">Second Option</SkSelectItem>\n <SkSelectItem value=\"option3\" disabled>Unavailable Option</SkSelectItem>\n</SkSelect>\n```",
2924
3531
  "attributes": [
2925
3532
  {
2926
3533
  "name": "value",
@@ -2944,7 +3551,8 @@
2944
3551
  ],
2945
3552
  "slots": [
2946
3553
  {
2947
- "name": "default"
3554
+ "name": "default",
3555
+ "description": "The display content for this option. Can be plain text or rich content including\n icons, formatted text, or custom layouts. This is what users see in the dropdown."
2948
3556
  }
2949
3557
  ],
2950
3558
  "source": {
@@ -2954,7 +3562,7 @@
2954
3562
  },
2955
3563
  {
2956
3564
  "name": "SkSelectSeparator",
2957
- "description": "",
3565
+ "description": "A visual divider for organizing options within an SkSelect dropdown. Use to create\nlogical groups of related options without affecting selection behavior. Renders as a horizontal\nline between items with appropriate spacing.\n\n**Example:**\n\n```vue\n<SkSelect v-model=\"selected\">\n <SkSelectItem value=\"recent1\">Recent Document 1</SkSelectItem>\n <SkSelectItem value=\"recent2\">Recent Document 2</SkSelectItem>\n <SkSelectSeparator />\n <SkSelectItem value=\"all\">Browse All Documents...</SkSelectItem>\n</SkSelect>\n```",
2958
3566
  "source": {
2959
3567
  "module": "./src/components/Select/SkSelectSeparator.vue",
2960
3568
  "symbol": "default"
@@ -2962,8 +3570,35 @@
2962
3570
  },
2963
3571
  {
2964
3572
  "name": "SkSidebar",
2965
- "description": "",
3573
+ "description": "A vertical navigation container designed for persistent page-level navigation. Built on\nSkPanel, it provides a scrollable area with a sticky position that remains visible as users scroll\nthe main content. Organize navigation links using SkSidebarSection for grouped items and SkSidebarItem\nfor individual navigation links.\n\n**Example:**\n\n```vue\n<SkSidebar kind=\"primary\" width=\"200px\">\n <SkSidebarSection title=\"Getting Started\">\n <SkSidebarItem as=\"RouterLink\" to=\"/docs/install\">Installation</SkSidebarItem>\n <SkSidebarItem as=\"RouterLink\" to=\"/docs/usage\">Basic Usage</SkSidebarItem>\n </SkSidebarSection>\n <SkSidebarSection title=\"Components\">\n <SkSidebarItem as=\"RouterLink\" to=\"/docs/button\">Button</SkSidebarItem>\n <SkSidebarItem as=\"RouterLink\" to=\"/docs/input\">Input</SkSidebarItem>\n </SkSidebarSection>\n</SkSidebar>\n```",
2966
3574
  "attributes": [
3575
+ {
3576
+ "name": "borderColor",
3577
+ "required": false,
3578
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
3579
+ "value": {
3580
+ "kind": "expression",
3581
+ "type": "string"
3582
+ }
3583
+ },
3584
+ {
3585
+ "name": "textColor",
3586
+ "required": false,
3587
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
3588
+ "value": {
3589
+ "kind": "expression",
3590
+ "type": "string"
3591
+ }
3592
+ },
3593
+ {
3594
+ "name": "baseColor",
3595
+ "required": false,
3596
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
3597
+ "value": {
3598
+ "kind": "expression",
3599
+ "type": "string"
3600
+ }
3601
+ },
2967
3602
  {
2968
3603
  "name": "kind",
2969
3604
  "required": false,
@@ -3007,7 +3642,8 @@
3007
3642
  ],
3008
3643
  "slots": [
3009
3644
  {
3010
- "name": "default"
3645
+ "name": "default",
3646
+ "description": "Container for SkSidebarSection and/or SkSidebarItem components. Content is wrapped\n in a scrollable nav element, allowing long navigation lists to scroll independently\n of the main page content."
3011
3647
  }
3012
3648
  ],
3013
3649
  "source": {
@@ -3017,7 +3653,7 @@
3017
3653
  },
3018
3654
  {
3019
3655
  "name": "SkSidebarItem",
3020
- "description": "",
3656
+ "description": "A navigation link item for use within SkSidebar. Renders as a polymorphic component that\ncan be an anchor tag, Vue Router's RouterLink, a button, or any other element/component. Provides\nconsistent styling with hover and active states that match the parent sidebar's theme.\n\n**Example:**\n\n```vue\n<!-- As a regular anchor -->\n<SkSidebarItem as=\"a\" href=\"/about\">About Us</SkSidebarItem>\n\n<!-- As Vue Router link -->\n<SkSidebarItem as=\"RouterLink\" to=\"/dashboard\" :active=\"route.path === '/dashboard'\">\n Dashboard\n</SkSidebarItem>\n\n<!-- As a button for actions -->\n<SkSidebarItem as=\"button\" @click=\"openSettings\">Settings</SkSidebarItem>\n```",
3021
3657
  "attributes": [
3022
3658
  {
3023
3659
  "name": "as",
@@ -3042,7 +3678,8 @@
3042
3678
  ],
3043
3679
  "slots": [
3044
3680
  {
3045
- "name": "default"
3681
+ "name": "default",
3682
+ "description": "The navigation item's label content. Can be plain text or include icons and badges."
3046
3683
  }
3047
3684
  ],
3048
3685
  "source": {
@@ -3052,7 +3689,7 @@
3052
3689
  },
3053
3690
  {
3054
3691
  "name": "SkSidebarSection",
3055
- "description": "",
3692
+ "description": "A grouping container for organizing related sidebar items under a common heading. Use\nsections to create logical categories in your navigation, such as \"Getting Started\", \"Components\",\nor \"Settings\". The section title appears as a small, muted heading above its items.\n\n**Example:**\n\n```vue\n<SkSidebarSection title=\"Documentation\">\n <SkSidebarItem as=\"RouterLink\" to=\"/docs/intro\">Introduction</SkSidebarItem>\n <SkSidebarItem as=\"RouterLink\" to=\"/docs/install\">Installation</SkSidebarItem>\n <SkSidebarItem as=\"RouterLink\" to=\"/docs/config\">Configuration</SkSidebarItem>\n</SkSidebarSection>\n```",
3056
3693
  "attributes": [
3057
3694
  {
3058
3695
  "name": "title",
@@ -3066,7 +3703,8 @@
3066
3703
  ],
3067
3704
  "slots": [
3068
3705
  {
3069
- "name": "default"
3706
+ "name": "default",
3707
+ "description": "Container for SkSidebarItem components. Items are rendered as a vertical list\n below the section title (if provided)."
3070
3708
  }
3071
3709
  ],
3072
3710
  "source": {
@@ -3076,7 +3714,7 @@
3076
3714
  },
3077
3715
  {
3078
3716
  "name": "SkSkeleton",
3079
- "description": "",
3717
+ "description": "A loading placeholder component that displays animated shapes to indicate content is being fetched.\nSkeletons improve perceived performance by showing users the expected layout before data arrives. Supports\nmultiple shape variants (text, rectangular, circular, square) with customizable dimensions and beveled corners\nto match the design system aesthetic.\n\n**Example:**\n\n```vue\n<!-- Text placeholder -->\n<SkSkeleton variant=\"text\" width=\"200px\" />\n\n<!-- Avatar placeholder -->\n<SkSkeleton variant=\"circular\" width=\"48px\" />\n\n<!-- Card image placeholder with beveled corners -->\n<SkSkeleton\n variant=\"rectangular\"\n width=\"100%\"\n height=\"200px\"\n :corners=\"['top-left', 'top-right']\"\n/>\n```\n\n**Example:**\n\nLoading card skeleton\n```vue\n<SkCard>\n <template #media>\n <SkSkeleton variant=\"rectangular\" height=\"180px\" />\n </template>\n <SkSkeleton variant=\"text\" width=\"70%\" />\n <SkSkeleton variant=\"text\" width=\"100%\" />\n <SkSkeleton variant=\"text\" width=\"40%\" />\n</SkCard>\n```",
3080
3718
  "attributes": [
3081
3719
  {
3082
3720
  "name": "variant",
@@ -3146,7 +3784,7 @@
3146
3784
  },
3147
3785
  {
3148
3786
  "name": "SkSlider",
3149
- "description": "",
3787
+ "description": "A range slider component for selecting numeric values within a defined range. Supports both\nsingle-value selection and multi-thumb range selection modes. Built on RekaUI's Slider primitive with\nfull keyboard accessibility, beveled styling, and horizontal or vertical orientation.\n\n**Example:**\n\n```vue\n<!-- Single value slider -->\n<SkSlider v-model=\"volume\" :min=\"0\" :max=\"100\" kind=\"primary\" />\n\n<!-- Range slider with two thumbs -->\n<SkSlider v-model=\"priceRange\" :min=\"0\" :max=\"1000\" :step=\"10\" />\n```",
3150
3788
  "attributes": [
3151
3789
  {
3152
3790
  "name": "modelValue",
@@ -3280,7 +3918,7 @@
3280
3918
  },
3281
3919
  {
3282
3920
  "name": "SkSpinner",
3283
- "description": "",
3921
+ "description": "An animated loading indicator component with multiple visual variants. Use spinners to indicate\nthat content is loading or an action is in progress. The component includes appropriate ARIA attributes\n(role=\"status\", aria-live=\"polite\") for screen reader accessibility.\n\n**Example:**\n\n```vue\n<SkSpinner kind=\"primary\" />\n```\n\n**Example:**\n\nDifferent variants\n```vue\n<SkSpinner variant=\"circular\" />\n<SkSpinner variant=\"dots\" />\n<SkSpinner variant=\"crosshair\" />\n```\n\n**Example:**\n\nLoading button state\n```vue\n<SkButton :disabled=\"loading\">\n <SkSpinner v-if=\"loading\" size=\"sm\" color=\"currentColor\" />\n <span v-else>Submit</span>\n</SkButton>\n```",
3284
3922
  "attributes": [
3285
3923
  {
3286
3924
  "name": "kind",
@@ -3460,8 +4098,35 @@
3460
4098
  },
3461
4099
  {
3462
4100
  "name": "SkSwitch",
3463
- "description": "",
4101
+ "description": "A toggle switch component for binary on/off choices. Built on RekaUI's Switch primitive with\nfull keyboard accessibility (Space/Enter to toggle). Supports dynamic labels that animate when the state\nchanges and separate theming for the track and thumb. Use with `v-model` for two-way binding.\n\n**Example:**\n\n```vue\n<SkSwitch v-model=\"enabled\" label=\"Enable notifications\" />\n<SkSwitch v-model=\"darkMode\" label-on=\"Dark\" label-off=\"Light\" kind=\"primary\" />\n<SkSwitch v-model=\"premium\" base-color=\"oklch(0.7 0.25 45)\" label=\"Premium\" />\n```",
3464
4102
  "attributes": [
4103
+ {
4104
+ "name": "borderColor",
4105
+ "required": false,
4106
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
4107
+ "value": {
4108
+ "kind": "expression",
4109
+ "type": "string"
4110
+ }
4111
+ },
4112
+ {
4113
+ "name": "textColor",
4114
+ "required": false,
4115
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
4116
+ "value": {
4117
+ "kind": "expression",
4118
+ "type": "string"
4119
+ }
4120
+ },
4121
+ {
4122
+ "name": "baseColor",
4123
+ "required": false,
4124
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
4125
+ "value": {
4126
+ "kind": "expression",
4127
+ "type": "string"
4128
+ }
4129
+ },
3465
4130
  {
3466
4131
  "name": "modelValue",
3467
4132
  "required": true,
@@ -3589,13 +4254,16 @@
3589
4254
  ],
3590
4255
  "slots": [
3591
4256
  {
3592
- "name": "default"
4257
+ "name": "default",
4258
+ "description": "Custom label content that overrides all label props. Use for complex labels with icons."
3593
4259
  },
3594
4260
  {
3595
- "name": "label-on"
4261
+ "name": "label-on",
4262
+ "description": "Custom content for the \"on\" state label. Overrides `labelOn` prop when provided."
3596
4263
  },
3597
4264
  {
3598
- "name": "label-off"
4265
+ "name": "label-off",
4266
+ "description": "Custom content for the \"off\" state label. Overrides `labelOff` prop when provided."
3599
4267
  }
3600
4268
  ],
3601
4269
  "source": {
@@ -3605,7 +4273,7 @@
3605
4273
  },
3606
4274
  {
3607
4275
  "name": "SkTab",
3608
- "description": "",
4276
+ "description": "An individual tab trigger button used within `SkTabList` to switch between tab panels.\nClicking a tab activates the corresponding `SkTabPanel` with a matching `name`. Supports keyboard\nnavigation (arrow keys), focus management, and disabled states.\n\n**Example:**\n\n```vue\n<SkTabList>\n <SkTab name=\"files\" label=\"Files\" />\n <SkTab name=\"settings\" kind=\"accent\">\n <template #icon><GearIcon /></template>\n Settings\n </SkTab>\n <SkTab name=\"help\" disabled>Help</SkTab>\n</SkTabList>\n```",
3609
4277
  "attributes": [
3610
4278
  {
3611
4279
  "name": "name",
@@ -3649,10 +4317,12 @@
3649
4317
  ],
3650
4318
  "slots": [
3651
4319
  {
3652
- "name": "icon"
4320
+ "name": "icon",
4321
+ "description": "Optional icon displayed before the tab label. Useful for visual indicators."
3653
4322
  },
3654
4323
  {
3655
- "name": "default"
4324
+ "name": "default",
4325
+ "description": "Custom tab label content. Overrides the `label` prop when provided."
3656
4326
  }
3657
4327
  ],
3658
4328
  "source": {
@@ -3662,7 +4332,7 @@
3662
4332
  },
3663
4333
  {
3664
4334
  "name": "SkTabList",
3665
- "description": "",
4335
+ "description": "A container component that holds and arranges `SkTab` trigger buttons. Provides the visual\ntab bar with appropriate ARIA `tablist` role. The orientation determines whether tabs are arranged\nhorizontally (row) or vertically (column) and affects keyboard navigation direction.\n\n**Example:**\n\n```vue\n<SkTabs v-model=\"activeTab\">\n <SkTabList>\n <SkTab name=\"tab1\">First Tab</SkTab>\n <SkTab name=\"tab2\">Second Tab</SkTab>\n </SkTabList>\n <SkTabPanels>\n <!-- Panels here -->\n </SkTabPanels>\n</SkTabs>\n```",
3666
4336
  "attributes": [
3667
4337
  {
3668
4338
  "name": "orientation",
@@ -3677,7 +4347,8 @@
3677
4347
  ],
3678
4348
  "slots": [
3679
4349
  {
3680
- "name": "default"
4350
+ "name": "default",
4351
+ "description": "Contains `SkTab` components that make up the tab triggers."
3681
4352
  }
3682
4353
  ],
3683
4354
  "source": {
@@ -3687,7 +4358,7 @@
3687
4358
  },
3688
4359
  {
3689
4360
  "name": "SkTabPanel",
3690
- "description": "",
4361
+ "description": "A content container that displays when its corresponding `SkTab` is active. The panel is\nautomatically shown or hidden based on the active tab state in the parent `SkTabs`. By default, inactive\npanels are unmounted from the DOM to improve performance; use `keepAlive` to preserve state.\n\n**Example:**\n\n```vue\n<SkTabPanels>\n <SkTabPanel name=\"overview\">\n <h2>Overview</h2>\n <p>Welcome to the overview section.</p>\n </SkTabPanel>\n <SkTabPanel name=\"form\" keep-alive>\n <!-- Form state preserved when switching tabs -->\n <FormComponent />\n </SkTabPanel>\n</SkTabPanels>\n```",
3691
4362
  "attributes": [
3692
4363
  {
3693
4364
  "name": "name",
@@ -3711,7 +4382,8 @@
3711
4382
  ],
3712
4383
  "slots": [
3713
4384
  {
3714
- "name": "default"
4385
+ "name": "default",
4386
+ "description": "The content to display when this panel's tab is active."
3715
4387
  }
3716
4388
  ],
3717
4389
  "source": {
@@ -3721,10 +4393,11 @@
3721
4393
  },
3722
4394
  {
3723
4395
  "name": "SkTabPanels",
3724
- "description": "",
4396
+ "description": "A container component that groups `SkTabPanel` components together. Provides semantic structure\nand consistent styling for the content area of a tabbed interface. While technically optional, using this\nwrapper ensures proper layout and spacing between the tab list and content panels.\n\n**Example:**\n\n```vue\n<SkTabs v-model=\"activeTab\">\n <SkTabList>\n <SkTab name=\"a\">Tab A</SkTab>\n <SkTab name=\"b\">Tab B</SkTab>\n </SkTabList>\n <SkTabPanels>\n <SkTabPanel name=\"a\">Content for Tab A</SkTabPanel>\n <SkTabPanel name=\"b\">Content for Tab B</SkTabPanel>\n </SkTabPanels>\n</SkTabs>\n```",
3725
4397
  "slots": [
3726
4398
  {
3727
- "name": "default"
4399
+ "name": "default",
4400
+ "description": "Contains `SkTabPanel` components, one for each tab in the interface."
3728
4401
  }
3729
4402
  ],
3730
4403
  "source": {
@@ -3734,8 +4407,35 @@
3734
4407
  },
3735
4408
  {
3736
4409
  "name": "SkTable",
3737
- "description": "",
4410
+ "description": "A flexible data table component with beveled corner styling and extensive visual customization.\nUse SkTable as a wrapper around standard HTML table elements (`<thead>`, `<tbody>`, `<tr>`, `<th>`, `<td>`).\nSupports row striping, hover highlighting, configurable borders, and adapts to both light and dark backgrounds.\n\n**Example:**\n\n```vue\n<SkTable striped hoverable>\n <thead>\n <tr><th>Name</th><th>Status</th></tr>\n </thead>\n <tbody>\n <tr><td>Item 1</td><td>Active</td></tr>\n <tr><td>Item 2</td><td>Pending</td></tr>\n </tbody>\n</SkTable>\n```",
3738
4411
  "attributes": [
4412
+ {
4413
+ "name": "borderColor",
4414
+ "required": false,
4415
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
4416
+ "value": {
4417
+ "kind": "expression",
4418
+ "type": "string"
4419
+ }
4420
+ },
4421
+ {
4422
+ "name": "textColor",
4423
+ "required": false,
4424
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
4425
+ "value": {
4426
+ "kind": "expression",
4427
+ "type": "string"
4428
+ }
4429
+ },
4430
+ {
4431
+ "name": "baseColor",
4432
+ "required": false,
4433
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
4434
+ "value": {
4435
+ "kind": "expression",
4436
+ "type": "string"
4437
+ }
4438
+ },
3739
4439
  {
3740
4440
  "name": "kind",
3741
4441
  "required": false,
@@ -3819,7 +4519,8 @@
3819
4519
  ],
3820
4520
  "slots": [
3821
4521
  {
3822
- "name": "default"
4522
+ "name": "default",
4523
+ "description": "Standard HTML table content including `<thead>`, `<tbody>`, `<tfoot>`, `<tr>`, `<th>`,\n and `<td>` elements."
3823
4524
  }
3824
4525
  ],
3825
4526
  "source": {
@@ -3829,8 +4530,35 @@
3829
4530
  },
3830
4531
  {
3831
4532
  "name": "SkTabs",
3832
- "description": "",
4533
+ "description": "A tabbed interface component for organizing content into switchable panels. Built on RekaUI's\nTabs primitive with full keyboard navigation (arrow keys, Home, End) and ARIA tab pattern compliance.\nUse with `v-model` to control the active tab programmatically.\n\n**Example:**\n\n```vue\n<SkTabs v-model=\"activeTab\" kind=\"primary\">\n <SkTabList>\n <SkTab name=\"overview\">Overview</SkTab>\n <SkTab name=\"details\">Details</SkTab>\n </SkTabList>\n <SkTabPanels>\n <SkTabPanel name=\"overview\">Overview content here</SkTabPanel>\n <SkTabPanel name=\"details\">Details content here</SkTabPanel>\n </SkTabPanels>\n</SkTabs>\n```",
3833
4534
  "attributes": [
4535
+ {
4536
+ "name": "borderColor",
4537
+ "required": false,
4538
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
4539
+ "value": {
4540
+ "kind": "expression",
4541
+ "type": "string"
4542
+ }
4543
+ },
4544
+ {
4545
+ "name": "textColor",
4546
+ "required": false,
4547
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
4548
+ "value": {
4549
+ "kind": "expression",
4550
+ "type": "string"
4551
+ }
4552
+ },
4553
+ {
4554
+ "name": "baseColor",
4555
+ "required": false,
4556
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
4557
+ "value": {
4558
+ "kind": "expression",
4559
+ "type": "string"
4560
+ }
4561
+ },
3834
4562
  {
3835
4563
  "name": "modelValue",
3836
4564
  "required": true,
@@ -3888,7 +4616,8 @@
3888
4616
  ],
3889
4617
  "slots": [
3890
4618
  {
3891
- "name": "default"
4619
+ "name": "default",
4620
+ "description": "Contains `SkTabList` and `SkTabPanels` components that make up the tabbed interface."
3892
4621
  }
3893
4622
  ],
3894
4623
  "source": {
@@ -3898,8 +4627,35 @@
3898
4627
  },
3899
4628
  {
3900
4629
  "name": "SkTag",
3901
- "description": "",
4630
+ "description": "A compact label component for displaying metadata, categories, or status information. Tags are\nideal for showing keywords, filter chips, selected items in multi-selects, or status indicators. Supports\nfour visual variants (solid, outline, subtle, ghost) and optional removable functionality with a dismiss button.\n\n**Example:**\n\n```vue\n<SkTag kind=\"primary\">Featured</SkTag>\n<SkTag kind=\"success\" removable @remove=\"handleRemove\">Active</SkTag>\n```",
3902
4631
  "attributes": [
4632
+ {
4633
+ "name": "borderColor",
4634
+ "required": false,
4635
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
4636
+ "value": {
4637
+ "kind": "expression",
4638
+ "type": "string"
4639
+ }
4640
+ },
4641
+ {
4642
+ "name": "textColor",
4643
+ "required": false,
4644
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
4645
+ "value": {
4646
+ "kind": "expression",
4647
+ "type": "string"
4648
+ }
4649
+ },
4650
+ {
4651
+ "name": "baseColor",
4652
+ "required": false,
4653
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
4654
+ "value": {
4655
+ "kind": "expression",
4656
+ "type": "string"
4657
+ }
4658
+ },
3903
4659
  {
3904
4660
  "name": "kind",
3905
4661
  "required": false,
@@ -3948,7 +4704,8 @@
3948
4704
  ],
3949
4705
  "slots": [
3950
4706
  {
3951
- "name": "default"
4707
+ "name": "default",
4708
+ "description": "The tag label content. Can include text, icons, or any inline elements."
3952
4709
  }
3953
4710
  ],
3954
4711
  "source": {
@@ -3958,8 +4715,35 @@
3958
4715
  },
3959
4716
  {
3960
4717
  "name": "SkTagsInput",
3961
- "description": "",
4718
+ "description": "A multi-value tag input for collecting lists of string values. Users add tags by typing\nand pressing Enter (or pasting multiple values), and remove them by clicking the delete button or\npressing Backspace. Built on RekaUI's TagsInput primitive with full keyboard accessibility.\n\n**Example:**\n\n```vue\n<SkTagsInput\n v-model=\"skills\"\n kind=\"primary\"\n placeholder=\"Add a skill...\"\n :max=\"10\"\n/>\n```",
3962
4719
  "attributes": [
4720
+ {
4721
+ "name": "borderColor",
4722
+ "required": false,
4723
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
4724
+ "value": {
4725
+ "kind": "expression",
4726
+ "type": "string"
4727
+ }
4728
+ },
4729
+ {
4730
+ "name": "textColor",
4731
+ "required": false,
4732
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
4733
+ "value": {
4734
+ "kind": "expression",
4735
+ "type": "string"
4736
+ }
4737
+ },
4738
+ {
4739
+ "name": "baseColor",
4740
+ "required": false,
4741
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
4742
+ "value": {
4743
+ "kind": "expression",
4744
+ "type": "string"
4745
+ }
4746
+ },
3963
4747
  {
3964
4748
  "name": "kind",
3965
4749
  "required": false,
@@ -4048,8 +4832,35 @@
4048
4832
  },
4049
4833
  {
4050
4834
  "name": "SkTextarea",
4051
- "description": "",
4835
+ "description": "A multiline text input component for longer form content like descriptions, comments, or messages.\nFeatures semantic color theming, validation state support, and configurable height via the rows prop.\nIntegrates with SkField for labels and error messages. Use with `v-model` for two-way data binding.\n\n**Example:**\n\n```vue\n<SkTextarea v-model=\"description\" placeholder=\"Enter a description...\" :rows=\"6\" />\n<SkTextarea v-model=\"notes\" kind=\"primary\" size=\"lg\" />\n<SkField label=\"Bio\" :error=\"errors.bio\">\n <SkTextarea v-model=\"bio\" name=\"bio\" :rows=\"4\" />\n</SkField>\n```",
4052
4836
  "attributes": [
4837
+ {
4838
+ "name": "borderColor",
4839
+ "required": false,
4840
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
4841
+ "value": {
4842
+ "kind": "expression",
4843
+ "type": "string"
4844
+ }
4845
+ },
4846
+ {
4847
+ "name": "textColor",
4848
+ "required": false,
4849
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
4850
+ "value": {
4851
+ "kind": "expression",
4852
+ "type": "string"
4853
+ }
4854
+ },
4855
+ {
4856
+ "name": "baseColor",
4857
+ "required": false,
4858
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
4859
+ "value": {
4860
+ "kind": "expression",
4861
+ "type": "string"
4862
+ }
4863
+ },
4053
4864
  {
4054
4865
  "name": "kind",
4055
4866
  "required": false,
@@ -4148,7 +4959,7 @@
4148
4959
  },
4149
4960
  {
4150
4961
  "name": "SkTheme",
4151
- "description": "",
4962
+ "description": "A theme provider component that establishes the color scheme context for all child components.\nPlace SkTheme at the root of your application or wrap specific sections to apply different themes.\nThe component sets the `data-scheme` attribute and provides theme context to portal components\n(SkDropdown, SkModal, SkTooltip, etc.) so they render with correct colors even when portaled to the body.\n\n**Example:**\n\n```vue\n<SkTheme theme=\"colorful\">\n <SkButton kind=\"primary\">Themed Button</SkButton>\n <SkDropdown trigger-text=\"Menu\">\n <SkDropdownMenuItem>Item 1</SkDropdownMenuItem>\n </SkDropdown>\n</SkTheme>\n```",
4152
4963
  "attributes": [
4153
4964
  {
4154
4965
  "name": "theme",
@@ -4163,7 +4974,8 @@
4163
4974
  ],
4164
4975
  "slots": [
4165
4976
  {
4166
- "name": "default"
4977
+ "name": "default",
4978
+ "description": "All application content that should inherit this theme context. Nested SkTheme components\n can override the theme for subsections of the UI."
4167
4979
  }
4168
4980
  ],
4169
4981
  "source": {
@@ -4173,7 +4985,7 @@
4173
4985
  },
4174
4986
  {
4175
4987
  "name": "SkToast",
4176
- "description": "",
4988
+ "description": "Internal toast notification component used by SkToastProvider. This component renders individual\ntoast messages with an icon, title, message, and optional close button. Built on RekaUI's Toast primitive\nwith semantic color variants and auto-dismiss functionality. Not exported directly - use the `useToast()`\ncomposable to create toasts programmatically.\n\n**Example:**\n\n```vue\n<!-- Used internally by SkToastProvider - do not use directly -->\n<SkToast\n id=\"toast-1\"\n kind=\"success\"\n title=\"Success!\"\n message=\"Your changes have been saved.\"\n :duration=\"5000\"\n :closable=\"true\"\n @dismiss=\"handleDismiss\"\n/>\n```",
4177
4989
  "attributes": [
4178
4990
  {
4179
4991
  "name": "id",
@@ -4242,7 +5054,7 @@
4242
5054
  },
4243
5055
  {
4244
5056
  "name": "SkToastProvider",
4245
- "description": "",
5057
+ "description": "Toast notification system provider that manages and displays toast messages. Wrap your application\n(or a section of it) with this component to enable toast notifications. Use the `useToast()` composable from\nanywhere within the provider tree to show notifications programmatically. Supports swipe-to-dismiss, keyboard\nnavigation, and configurable positioning.\n\n**Example:**\n\n```vue\n<!-- In your App.vue or layout component -->\n<SkTheme>\n <SkToastProvider position=\"bottom-right\" :duration=\"5000\">\n <RouterView />\n </SkToastProvider>\n</SkTheme>\n```\n\n**Example:**\n\nUsing the toast API in any child component\n```ts\nimport { useToast } from 'sleekspace-ui';\n\nconst toast = useToast();\ntoast.add({ kind: 'success', message: 'Settings saved!' });\n```",
4246
5058
  "attributes": [
4247
5059
  {
4248
5060
  "name": "position",
@@ -4297,7 +5109,8 @@
4297
5109
  ],
4298
5110
  "slots": [
4299
5111
  {
4300
- "name": "default"
5112
+ "name": "default",
5113
+ "description": "Your application content. All child components can access the toast API via useToast()."
4301
5114
  }
4302
5115
  ],
4303
5116
  "source": {
@@ -4478,8 +5291,35 @@
4478
5291
  },
4479
5292
  {
4480
5293
  "name": "SkTooltip",
4481
- "description": "",
5294
+ "description": "A tooltip component for displaying contextual hints on hover or focus. Built on RekaUI's Tooltip\nprimitive with beveled corner styling and full accessibility support. Works standalone with its own timing,\nor wrap multiple tooltips in SkTooltipProvider for coordinated \"skip delay\" behavior where moving quickly\nbetween tooltips shows them instantly.\n\n**Example:**\n\n```vue\n<SkTooltip side=\"right\" kind=\"primary\">\n <template #trigger>\n <SkButton icon>?</SkButton>\n </template>\n Click here to learn more about this feature.\n</SkTooltip>\n```",
4482
5295
  "attributes": [
5296
+ {
5297
+ "name": "borderColor",
5298
+ "required": false,
5299
+ "description": "Border color for the component. Accepts the same kind names and CSS color values as\n`baseColor`. Only honoured by components that render a visible border (panels, cards,\ninputs, etc.); ignored elsewhere.",
5300
+ "value": {
5301
+ "kind": "expression",
5302
+ "type": "string"
5303
+ }
5304
+ },
5305
+ {
5306
+ "name": "textColor",
5307
+ "required": false,
5308
+ "description": "Text/foreground color for the component. Accepts the same kind names and CSS color values\nas `baseColor`. If not provided, falls back to the theme's neutral text color for legibility\non arbitrary custom backgrounds.",
5309
+ "value": {
5310
+ "kind": "expression",
5311
+ "type": "string"
5312
+ }
5313
+ },
5314
+ {
5315
+ "name": "baseColor",
5316
+ "required": false,
5317
+ "description": "Base color for the component. Accepts either:\n- A SleekSpace kind name: `\"neutral\"`, `\"primary\"`, `\"accent\"`, `\"info\"`, `\"success\"`,\n `\"warning\"`, `\"danger\"`, `\"neon-blue\"`, `\"light-blue\"`, `\"neon-orange\"`,\n `\"neon-purple\"`, `\"neon-green\"`, `\"neon-mint\"`, `\"neon-pink\"`, `\"yellow\"`, `\"red\"`,\n `\"boulder\"` — resolves to the matching `--sk-<kind>-base` token.\n- Any CSS color value: hex (`\"#8B5CF6\"`), oklch (`\"oklch(0.7 0.25 300)\"`),\n rgb/hsl (`\"rgb(139, 92, 246)\"`), a CSS variable (`\"var(--my-color)\"`), or a\n named color (`\"rebeccapurple\"`).\n\nWhen provided, this overrides the color from the `kind` prop.",
5318
+ "value": {
5319
+ "kind": "expression",
5320
+ "type": "string"
5321
+ }
5322
+ },
4483
5323
  {
4484
5324
  "name": "kind",
4485
5325
  "required": false,
@@ -4553,10 +5393,12 @@
4553
5393
  ],
4554
5394
  "slots": [
4555
5395
  {
4556
- "name": "trigger"
5396
+ "name": "trigger",
5397
+ "description": "The element that triggers the tooltip on hover/focus. Use `as-child` behavior - the trigger\n slot content becomes the actual trigger element. Required slot."
4557
5398
  },
4558
5399
  {
4559
- "name": "default"
5400
+ "name": "default",
5401
+ "description": "The tooltip content to display. Can include text, formatted content, or simple components.\n Keep content brief for tooltips; use SkPopover for richer interactions."
4560
5402
  }
4561
5403
  ],
4562
5404
  "source": {
@@ -4566,7 +5408,7 @@
4566
5408
  },
4567
5409
  {
4568
5410
  "name": "SkTooltipProvider",
4569
- "description": "",
5411
+ "description": "Provider component that enables coordinated tooltip behavior across all child SkTooltip instances.\nWhen tooltips share a provider, they gain \"skip delay\" functionality - users can quickly move between tooltips\nwithout waiting for the delay each time. Also centralizes configuration like delay duration and accessibility\noptions. Optional but recommended for apps with multiple tooltips.\n\n**Example:**\n\n```vue\n<template>\n <SkTheme theme=\"colorful\">\n <SkTooltipProvider :delay-duration=\"300\" :skip-delay-duration=\"100\">\n <RouterView />\n </SkTooltipProvider>\n </SkTheme>\n</template>\n```",
4570
5412
  "attributes": [
4571
5413
  {
4572
5414
  "name": "delayDuration",
@@ -4631,7 +5473,8 @@
4631
5473
  ],
4632
5474
  "slots": [
4633
5475
  {
4634
- "name": "default"
5476
+ "name": "default",
5477
+ "description": "Your application content containing SkTooltip components. All descendant tooltips\n will share the provider's timing and behavior configuration."
4635
5478
  }
4636
5479
  ],
4637
5480
  "source": {
@@ -4788,4 +5631,4 @@
4788
5631
  ]
4789
5632
  }
4790
5633
  }
4791
- }
5634
+ }