@skewedaspect/sleekspace-ui 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/dist/components/Accordion/context.d.ts +4 -0
  2. package/dist/components/Autocomplete/SkAutocomplete.vue.d.ts +87 -0
  3. package/dist/components/Autocomplete/SkAutocompleteEmpty.vue.d.ts +17 -0
  4. package/dist/components/Autocomplete/SkAutocompleteGroup.vue.d.ts +17 -0
  5. package/dist/components/Autocomplete/SkAutocompleteGroupLabel.vue.d.ts +17 -0
  6. package/dist/components/Autocomplete/SkAutocompleteItem.vue.d.ts +39 -0
  7. package/dist/components/Autocomplete/SkAutocompleteSeparator.vue.d.ts +2 -0
  8. package/dist/components/Autocomplete/index.d.ts +7 -0
  9. package/dist/components/Autocomplete/types.d.ts +3 -0
  10. package/dist/components/Breadcrumbs/context.d.ts +4 -0
  11. package/dist/components/Button/SkButton.vue.d.ts +8 -1
  12. package/dist/components/Button/types.d.ts +2 -0
  13. package/dist/components/Card/SkCard.vue.d.ts +1 -1
  14. package/dist/components/ContextMenu/context.d.ts +3 -0
  15. package/dist/components/Dropdown/SkDropdown.vue.d.ts +1 -1
  16. package/dist/components/Dropdown/context.d.ts +3 -0
  17. package/dist/components/Field/SkField.vue.d.ts +7 -6
  18. package/dist/components/Input/SkInput.vue.d.ts +9 -2
  19. package/dist/components/Input/types.d.ts +2 -0
  20. package/dist/components/InputGroup/SkInputGroup.vue.d.ts +23 -0
  21. package/dist/components/InputGroup/SkInputGroupAddon.vue.d.ts +33 -0
  22. package/dist/components/InputGroup/types.d.ts +13 -0
  23. package/dist/components/NumberInput/SkNumberInput.vue.d.ts +7 -1
  24. package/dist/components/NumberInput/types.d.ts +2 -0
  25. package/dist/components/Pagination/context.d.ts +5 -0
  26. package/dist/components/Panel/SkPanel.vue.d.ts +1 -1
  27. package/dist/components/Panel/types.d.ts +2 -1
  28. package/dist/components/Radio/context.d.ts +4 -0
  29. package/dist/components/Select/SkSelect.vue.d.ts +7 -1
  30. package/dist/components/Select/types.d.ts +2 -0
  31. package/dist/components/Sidebar/SkSidebar.vue.d.ts +1 -1
  32. package/dist/components/Tabs/context.d.ts +6 -0
  33. package/dist/components/Textarea/SkTextarea.vue.d.ts +1 -1
  34. package/dist/components/Tooltip/SkTooltip.vue.d.ts +1 -1
  35. package/dist/composables/injectionKeys.d.ts +9 -0
  36. package/dist/global.d.ts +4 -0
  37. package/dist/index.d.ts +18 -0
  38. package/dist/sleekspace-ui.css +831 -277
  39. package/dist/sleekspace-ui.es.js +3693 -2514
  40. package/dist/sleekspace-ui.umd.js +3700 -2513
  41. package/dist/static/components/alert.d.ts +2 -1
  42. package/dist/static/components/avatar.d.ts +2 -1
  43. package/dist/static/components/breadcrumbs.d.ts +2 -1
  44. package/dist/static/components/button.d.ts +4 -2
  45. package/dist/static/components/card.d.ts +2 -1
  46. package/dist/static/components/checkbox.d.ts +2 -1
  47. package/dist/static/components/colorPicker.d.ts +2 -1
  48. package/dist/static/components/divider.d.ts +2 -1
  49. package/dist/static/components/dropdown.d.ts +2 -1
  50. package/dist/static/components/field.d.ts +2 -1
  51. package/dist/static/components/group.d.ts +2 -1
  52. package/dist/static/components/input.d.ts +4 -2
  53. package/dist/static/components/inputGroup.d.ts +8 -0
  54. package/dist/static/components/inputGroupAddon.d.ts +7 -0
  55. package/dist/static/components/navBar.d.ts +2 -1
  56. package/dist/static/components/numberInput.d.ts +4 -2
  57. package/dist/static/components/page.d.ts +2 -1
  58. package/dist/static/components/pagination.d.ts +2 -1
  59. package/dist/static/components/panel.d.ts +2 -1
  60. package/dist/static/components/progress.d.ts +2 -1
  61. package/dist/static/components/radio.d.ts +2 -1
  62. package/dist/static/components/select.d.ts +4 -2
  63. package/dist/static/components/sidebar.d.ts +2 -1
  64. package/dist/static/components/skeleton.d.ts +2 -1
  65. package/dist/static/components/slider.d.ts +2 -1
  66. package/dist/static/components/spinner.d.ts +2 -1
  67. package/dist/static/components/switchInput.d.ts +2 -1
  68. package/dist/static/components/table.d.ts +2 -1
  69. package/dist/static/components/tag.d.ts +2 -1
  70. package/dist/static/components/tagsInput.d.ts +2 -1
  71. package/dist/static/components/textarea.d.ts +2 -1
  72. package/dist/static/components/toolbar.d.ts +2 -1
  73. package/dist/static/components/tooltip.d.ts +2 -1
  74. package/dist/static/h.d.ts +2 -0
  75. package/dist/static/index.cjs.js +1 -1
  76. package/dist/static/index.d.ts +6 -0
  77. package/dist/static/index.es.js +366 -216
  78. package/dist/static/render.d.ts +2 -1
  79. package/dist/static/stringH.d.ts +2 -0
  80. package/dist/static/types.d.ts +5 -0
  81. package/dist/tailwind.css +222 -0
  82. package/dist/tokens.css +0 -223
  83. package/dist/types/corners.d.ts +1 -0
  84. package/llms-full.txt +14 -9
  85. package/package.json +6 -3
  86. package/src/components/Accordion/SkAccordion.vue +5 -2
  87. package/src/components/Accordion/SkAccordionItem.vue +7 -4
  88. package/src/components/Accordion/context.ts +23 -0
  89. package/src/components/Autocomplete/SkAutocomplete.test.ts +83 -0
  90. package/src/components/Autocomplete/SkAutocomplete.vue +305 -0
  91. package/src/components/Autocomplete/SkAutocompleteEmpty.vue +39 -0
  92. package/src/components/Autocomplete/SkAutocompleteGroup.vue +46 -0
  93. package/src/components/Autocomplete/SkAutocompleteGroupLabel.vue +39 -0
  94. package/src/components/Autocomplete/SkAutocompleteItem.vue +85 -0
  95. package/src/components/Autocomplete/SkAutocompleteSeparator.vue +39 -0
  96. package/src/components/Autocomplete/index.ts +13 -0
  97. package/src/components/Autocomplete/types.ts +10 -0
  98. package/src/components/Breadcrumbs/SkBreadcrumbItem.vue +8 -3
  99. package/src/components/Breadcrumbs/SkBreadcrumbSeparator.vue +8 -2
  100. package/src/components/Breadcrumbs/SkBreadcrumbs.vue +5 -2
  101. package/src/components/Breadcrumbs/context.ts +20 -0
  102. package/src/components/Button/SkButton.vue +46 -6
  103. package/src/components/Button/types.ts +6 -0
  104. package/src/components/ColorPicker/SkColorPicker.vue +27 -5
  105. package/src/components/ContextMenu/SkContextMenu.vue +4 -1
  106. package/src/components/ContextMenu/SkContextMenuSubmenu.vue +5 -2
  107. package/src/components/ContextMenu/context.ts +17 -0
  108. package/src/components/Dropdown/SkDropdown.vue +2 -1
  109. package/src/components/Dropdown/SkDropdownSubmenu.vue +4 -3
  110. package/src/components/Dropdown/context.ts +16 -0
  111. package/src/components/Field/SkField.test.ts +88 -0
  112. package/src/components/Field/SkField.vue +15 -7
  113. package/src/components/Input/SkInput.test.ts +61 -0
  114. package/src/components/Input/SkInput.vue +42 -7
  115. package/src/components/Input/types.ts +2 -0
  116. package/src/components/InputGroup/SkInputGroup.test.ts +171 -0
  117. package/src/components/InputGroup/SkInputGroup.vue +131 -0
  118. package/src/components/InputGroup/SkInputGroupAddon.test.ts +104 -0
  119. package/src/components/InputGroup/SkInputGroupAddon.vue +107 -0
  120. package/src/components/InputGroup/types.ts +27 -0
  121. package/src/components/Listbox/SkListbox.vue +27 -6
  122. package/src/components/NumberInput/SkNumberInput.vue +39 -7
  123. package/src/components/NumberInput/types.ts +2 -0
  124. package/src/components/Pagination/SkPagination.vue +6 -3
  125. package/src/components/Pagination/SkPaginationItem.vue +8 -5
  126. package/src/components/Pagination/context.ts +19 -0
  127. package/src/components/Panel/types.ts +3 -2
  128. package/src/components/Radio/SkRadio.vue +6 -3
  129. package/src/components/Radio/SkRadioGroup.vue +4 -2
  130. package/src/components/Radio/context.ts +17 -0
  131. package/src/components/Select/SkSelect.vue +39 -7
  132. package/src/components/Select/types.ts +2 -0
  133. package/src/components/Tabs/SkTab.vue +4 -2
  134. package/src/components/Tabs/SkTabList.vue +4 -2
  135. package/src/components/Tabs/SkTabs.vue +5 -3
  136. package/src/components/Tabs/context.ts +19 -0
  137. package/src/components/TagsInput/SkTagsInput.vue +28 -7
  138. package/src/components/Textarea/SkTextarea.vue +27 -6
  139. package/src/composables/injectionKeys.ts +52 -0
  140. package/src/index.ts +28 -0
  141. package/src/static/__tests__/parity.test.ts +2 -1
  142. package/src/static/__tests__/parityHarness.ts +5 -2
  143. package/src/static/components/__tests__/helpers.test.ts +191 -99
  144. package/src/static/components/alert.ts +12 -11
  145. package/src/static/components/avatar.ts +15 -16
  146. package/src/static/components/breadcrumbs.ts +3 -2
  147. package/src/static/components/button.ts +23 -27
  148. package/src/static/components/card.ts +3 -2
  149. package/src/static/components/checkbox.ts +11 -14
  150. package/src/static/components/colorPicker.ts +7 -9
  151. package/src/static/components/divider.ts +4 -3
  152. package/src/static/components/dropdown.ts +15 -6
  153. package/src/static/components/field.ts +32 -15
  154. package/src/static/components/group.ts +3 -2
  155. package/src/static/components/input.ts +20 -15
  156. package/src/static/components/inputGroup.ts +30 -0
  157. package/src/static/components/inputGroupAddon.ts +29 -0
  158. package/src/static/components/navBar.ts +30 -17
  159. package/src/static/components/numberInput.ts +17 -17
  160. package/src/static/components/page.ts +3 -2
  161. package/src/static/components/pagination.ts +3 -2
  162. package/src/static/components/panel.ts +3 -2
  163. package/src/static/components/progress.ts +3 -2
  164. package/src/static/components/radio.ts +14 -20
  165. package/src/static/components/select.ts +18 -15
  166. package/src/static/components/sidebar.ts +9 -13
  167. package/src/static/components/skeleton.ts +7 -10
  168. package/src/static/components/slider.ts +7 -9
  169. package/src/static/components/spinner.ts +22 -22
  170. package/src/static/components/switchInput.ts +12 -14
  171. package/src/static/components/table.ts +8 -10
  172. package/src/static/components/tag.ts +17 -11
  173. package/src/static/components/tagsInput.ts +3 -3
  174. package/src/static/components/textarea.ts +8 -13
  175. package/src/static/components/toolbar.ts +7 -10
  176. package/src/static/components/tooltip.ts +3 -2
  177. package/src/static/generated/defaults.ts +24 -9
  178. package/src/static/generated/propTypes.ts +18 -2
  179. package/src/static/h.ts +16 -0
  180. package/src/static/index.ts +8 -0
  181. package/src/static/render.test.ts +14 -10
  182. package/src/static/render.ts +33 -18
  183. package/src/static/specs.test.ts +1 -0
  184. package/src/static/specs.ts +22 -2
  185. package/src/static/stringH.ts +104 -0
  186. package/src/static/types.ts +25 -0
  187. package/src/styles/components/_autocomplete.scss +498 -0
  188. package/src/styles/components/_button.scss +55 -6
  189. package/src/styles/components/_index.scss +2 -0
  190. package/src/styles/components/_input-group.scss +292 -0
  191. package/src/styles/components/_input.scss +57 -9
  192. package/src/styles/components/_number-input.scss +84 -18
  193. package/src/styles/components/_select.scss +56 -9
  194. package/src/styles/mixins/_cut-border.scss +83 -0
  195. package/src/styles/tailwind.scss +262 -0
  196. package/src/styles/tokens.scss +8 -255
  197. package/src/types/corners.ts +10 -0
  198. package/src/utils/slots.test.ts +89 -0
  199. package/src/utils/slots.ts +6 -1
  200. package/web-types.json +382 -12
package/web-types.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json.schemastore.org/web-types",
3
3
  "framework": "vue",
4
4
  "name": "@skewedaspect/sleekspace-ui",
5
- "version": "0.9.1",
5
+ "version": "0.10.0",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "description-markup": "markdown",
@@ -242,6 +242,230 @@
242
242
  "symbol": "default"
243
243
  }
244
244
  },
245
+ {
246
+ "name": "SkAutocomplete",
247
+ "description": "A text input with advisory suggestions. Unlike SkListbox (which restricts the user to a\npredefined list), SkAutocomplete accepts free-form text and surfaces matching suggestions as the user\ntypes. Built on RekaUI's Autocomplete primitive with full keyboard navigation, client-side filtering,\nand portal rendering.\n\nUse SkAutocomplete for search bars, free-form fields with helpful suggestions, and any case where the\nuser may type a value that isn't in the suggestion list. Use SkListbox when the user must pick from\nthe list. Use SkSelect for short, fixed lists.\n\n**Example:**\n\n```vue\n<SkAutocomplete v-model=\"query\" kind=\"primary\" placeholder=\"Search...\">\n <SkAutocompleteItem value=\"apple\">Apple</SkAutocompleteItem>\n <SkAutocompleteItem value=\"banana\">Banana</SkAutocompleteItem>\n <SkAutocompleteEmpty>No matches</SkAutocompleteEmpty>\n</SkAutocomplete>\n```\n\n**Example:**\n\nAsync suggestions\n```vue\n<SkAutocomplete v-model=\"query\" :ignore-filter=\"true\" @update:search=\"loadSuggestions\">\n <SkAutocompleteItem v-for=\"item in results\" :key=\"item.id\" :value=\"item.label\">\n {{ item.label }}\n </SkAutocompleteItem>\n</SkAutocomplete>\n```",
248
+ "attributes": [
249
+ {
250
+ "name": "borderColor",
251
+ "required": false,
252
+ "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.",
253
+ "value": {
254
+ "kind": "expression",
255
+ "type": "string"
256
+ }
257
+ },
258
+ {
259
+ "name": "textColor",
260
+ "required": false,
261
+ "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.",
262
+ "value": {
263
+ "kind": "expression",
264
+ "type": "string"
265
+ }
266
+ },
267
+ {
268
+ "name": "baseColor",
269
+ "required": false,
270
+ "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.",
271
+ "value": {
272
+ "kind": "expression",
273
+ "type": "string"
274
+ }
275
+ },
276
+ {
277
+ "name": "kind",
278
+ "required": false,
279
+ "description": "Semantic color kind that controls the input border, focus ring, and highlighted\nsuggestion appearance. When used inside SkField, inherits the field's kind if not\nexplicitly set.",
280
+ "value": {
281
+ "kind": "expression",
282
+ "type": "SkAutocompleteKind"
283
+ },
284
+ "default": "undefined"
285
+ },
286
+ {
287
+ "name": "size",
288
+ "required": false,
289
+ "description": "Size of the input field and dropdown content. Controls input height, text size,\nand option dimensions. Available sizes: 'sm', 'md', 'lg'.",
290
+ "value": {
291
+ "kind": "expression",
292
+ "type": "SkAutocompleteSize"
293
+ },
294
+ "default": "undefined"
295
+ },
296
+ {
297
+ "name": "placeholder",
298
+ "required": false,
299
+ "description": "Placeholder text displayed in the input field when empty.",
300
+ "value": {
301
+ "kind": "expression",
302
+ "type": "string"
303
+ },
304
+ "default": "'Search...'"
305
+ },
306
+ {
307
+ "name": "disabled",
308
+ "required": false,
309
+ "description": "When true, the autocomplete is disabled and cannot be interacted with.",
310
+ "value": {
311
+ "kind": "expression",
312
+ "type": "boolean"
313
+ },
314
+ "default": "false"
315
+ },
316
+ {
317
+ "name": "openOnFocus",
318
+ "required": false,
319
+ "description": "When true, opens the suggestion menu as soon as the input gains focus.\nSet to false to require typing before suggestions appear.",
320
+ "value": {
321
+ "kind": "expression",
322
+ "type": "boolean"
323
+ },
324
+ "default": "true"
325
+ },
326
+ {
327
+ "name": "openOnClick",
328
+ "required": false,
329
+ "description": "When true, opens the suggestion menu on click. RekaUI's default is false; opt in\nif you want a click-to-open UX in addition to focus-based opening.",
330
+ "value": {
331
+ "kind": "expression",
332
+ "type": "boolean"
333
+ },
334
+ "default": "false"
335
+ },
336
+ {
337
+ "name": "clearable",
338
+ "required": false,
339
+ "description": "When true, displays a clear button inside the input that resets the typed value.",
340
+ "value": {
341
+ "kind": "expression",
342
+ "type": "boolean"
343
+ },
344
+ "default": "false"
345
+ },
346
+ {
347
+ "name": "ignoreFilter",
348
+ "required": false,
349
+ "description": "When true, disables the built-in client-side filtering. Use this for async or\nserver-driven suggestions, where you'll listen to `@update:search` and provide\npre-filtered items.",
350
+ "value": {
351
+ "kind": "expression",
352
+ "type": "boolean"
353
+ },
354
+ "default": "false"
355
+ }
356
+ ],
357
+ "events": [
358
+ {
359
+ "name": "update:search",
360
+ "description": "Fires whenever the input text changes. Useful for async suggestion loading\n(combine with `:ignore-filter=\"true\"`)."
361
+ }
362
+ ],
363
+ "slots": [
364
+ {
365
+ "name": "default",
366
+ "description": "SkAutocompleteItem, SkAutocompleteSeparator, SkAutocompleteGroup, and\n SkAutocompleteEmpty components representing the available suggestions."
367
+ }
368
+ ],
369
+ "source": {
370
+ "module": "./src/components/Autocomplete/SkAutocomplete.vue",
371
+ "symbol": "default"
372
+ }
373
+ },
374
+ {
375
+ "name": "SkAutocompleteEmpty",
376
+ "description": "Content displayed inside an SkAutocomplete dropdown when no suggestions match the\ncurrent input. RekaUI handles the show/hide logic automatically based on the filter result.\n\n**Example:**\n\n```vue\n<SkAutocomplete v-model=\"query\">\n <SkAutocompleteItem value=\"apple\">Apple</SkAutocompleteItem>\n <SkAutocompleteEmpty>No matches found</SkAutocompleteEmpty>\n</SkAutocomplete>\n```",
377
+ "slots": [
378
+ {
379
+ "name": "default",
380
+ "description": "The empty-state message. Can be plain text or rich content."
381
+ }
382
+ ],
383
+ "source": {
384
+ "module": "./src/components/Autocomplete/SkAutocompleteEmpty.vue",
385
+ "symbol": "default"
386
+ }
387
+ },
388
+ {
389
+ "name": "SkAutocompleteGroup",
390
+ "description": "Semantic grouping wrapper for related suggestions within an SkAutocomplete dropdown.\nPair with SkAutocompleteGroupLabel to give the group a heading.\n\n**Example:**\n\n```vue\n<SkAutocomplete v-model=\"query\">\n <SkAutocompleteGroup>\n <SkAutocompleteGroupLabel>Fruits</SkAutocompleteGroupLabel>\n <SkAutocompleteItem value=\"apple\">Apple</SkAutocompleteItem>\n <SkAutocompleteItem value=\"banana\">Banana</SkAutocompleteItem>\n </SkAutocompleteGroup>\n <SkAutocompleteGroup>\n <SkAutocompleteGroupLabel>Vegetables</SkAutocompleteGroupLabel>\n <SkAutocompleteItem value=\"carrot\">Carrot</SkAutocompleteItem>\n </SkAutocompleteGroup>\n</SkAutocomplete>\n```",
391
+ "slots": [
392
+ {
393
+ "name": "default",
394
+ "description": "SkAutocompleteGroupLabel and SkAutocompleteItem children."
395
+ }
396
+ ],
397
+ "source": {
398
+ "module": "./src/components/Autocomplete/SkAutocompleteGroup.vue",
399
+ "symbol": "default"
400
+ }
401
+ },
402
+ {
403
+ "name": "SkAutocompleteGroupLabel",
404
+ "description": "A non-selectable heading for a group of related suggestions inside an\nSkAutocompleteGroup. Use to label groups like \"Fruits\" or \"Recent searches\".\n\n**Example:**\n\n```vue\n<SkAutocompleteGroup>\n <SkAutocompleteGroupLabel>Recent</SkAutocompleteGroupLabel>\n <SkAutocompleteItem value=\"recent1\">Recent search 1</SkAutocompleteItem>\n</SkAutocompleteGroup>\n```",
405
+ "slots": [
406
+ {
407
+ "name": "default",
408
+ "description": "The heading text."
409
+ }
410
+ ],
411
+ "source": {
412
+ "module": "./src/components/Autocomplete/SkAutocompleteGroupLabel.vue",
413
+ "symbol": "default"
414
+ }
415
+ },
416
+ {
417
+ "name": "SkAutocompleteItem",
418
+ "description": "A selectable suggestion within an SkAutocomplete dropdown. When chosen, the item's\n`value` is written into the input. Built on RekaUI's AutocompleteItem with keyboard navigation\nand type-ahead support.\n\n**Example:**\n\n```vue\n<SkAutocomplete v-model=\"query\">\n <SkAutocompleteItem value=\"apple\">Apple</SkAutocompleteItem>\n <SkAutocompleteItem value=\"banana\">Banana</SkAutocompleteItem>\n <SkAutocompleteItem value=\"cherry\" disabled>Cherry (out of stock)</SkAutocompleteItem>\n</SkAutocomplete>\n```",
419
+ "attributes": [
420
+ {
421
+ "name": "value",
422
+ "required": true,
423
+ "description": "The string written into the input when this item is selected. Must be unique\nwithin the autocomplete to ensure proper highlight/match behavior.",
424
+ "value": {
425
+ "kind": "expression",
426
+ "type": "string"
427
+ }
428
+ },
429
+ {
430
+ "name": "disabled",
431
+ "required": false,
432
+ "description": "When true, this suggestion is disabled and cannot be selected. Skipped during\nkeyboard navigation.",
433
+ "value": {
434
+ "kind": "expression",
435
+ "type": "boolean"
436
+ },
437
+ "default": "false"
438
+ },
439
+ {
440
+ "name": "textValue",
441
+ "required": false,
442
+ "description": "Optional override for filter/typeahead matching. Use when the slot content is\nnon-textual (icons, custom layouts) and you need to specify what text the\nclient-side filter should match against.",
443
+ "value": {
444
+ "kind": "expression",
445
+ "type": "string"
446
+ },
447
+ "default": "undefined"
448
+ }
449
+ ],
450
+ "slots": [
451
+ {
452
+ "name": "default",
453
+ "description": "The display content for this suggestion. Can be plain text or rich content."
454
+ }
455
+ ],
456
+ "source": {
457
+ "module": "./src/components/Autocomplete/SkAutocompleteItem.vue",
458
+ "symbol": "default"
459
+ }
460
+ },
461
+ {
462
+ "name": "SkAutocompleteSeparator",
463
+ "description": "A visual divider for organizing suggestions within an SkAutocomplete dropdown. Renders\nas a horizontal line between items with appropriate spacing.\n\n**Example:**\n\n```vue\n<SkAutocomplete v-model=\"query\">\n <SkAutocompleteItem value=\"recent1\">Recent search 1</SkAutocompleteItem>\n <SkAutocompleteItem value=\"recent2\">Recent search 2</SkAutocompleteItem>\n <SkAutocompleteSeparator />\n <SkAutocompleteItem value=\"popular\">Popular searches...</SkAutocompleteItem>\n</SkAutocomplete>\n```",
464
+ "source": {
465
+ "module": "./src/components/Autocomplete/SkAutocompleteSeparator.vue",
466
+ "symbol": "default"
467
+ }
468
+ },
245
469
  {
246
470
  "name": "SkAvatar",
247
471
  "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```",
@@ -520,7 +744,7 @@
520
744
  "kind": "expression",
521
745
  "type": "SkButtonKind"
522
746
  },
523
- "default": "'neutral'"
747
+ "default": "undefined"
524
748
  },
525
749
  {
526
750
  "name": "variant",
@@ -540,7 +764,7 @@
540
764
  "kind": "expression",
541
765
  "type": "SkButtonSize"
542
766
  },
543
- "default": "'md'"
767
+ "default": "undefined"
544
768
  },
545
769
  {
546
770
  "name": "disabled",
@@ -582,6 +806,16 @@
582
806
  },
583
807
  "default": "false"
584
808
  },
809
+ {
810
+ "name": "corners",
811
+ "required": false,
812
+ "description": "Which corners receive the beveled cut. Pass an empty array for square corners.\nWhen omitted, defaults to the button's standalone visual (`top-left` + `bottom-right`).",
813
+ "value": {
814
+ "kind": "expression",
815
+ "type": "Array"
816
+ },
817
+ "default": "undefined"
818
+ },
585
819
  {
586
820
  "name": "href",
587
821
  "required": false,
@@ -1033,7 +1267,7 @@
1033
1267
  "kind": "expression",
1034
1268
  "type": "SkColorPickerSize"
1035
1269
  },
1036
- "default": "'md'"
1270
+ "default": "undefined"
1037
1271
  },
1038
1272
  {
1039
1273
  "name": "format",
@@ -1744,7 +1978,7 @@
1744
1978
  "description": "Semantic kind to apply to the child input when `state` is `true` (valid). Typically\n'success' for green styling indicating valid input. The kind is provided to child\ninputs via Vue's provide/inject system.",
1745
1979
  "value": {
1746
1980
  "kind": "expression",
1747
- "type": "string"
1981
+ "type": "ComponentKind"
1748
1982
  },
1749
1983
  "default": "'success'"
1750
1984
  },
@@ -1754,7 +1988,7 @@
1754
1988
  "description": "Semantic kind to apply to the child input when `state` is `false` (invalid). Typically\n'danger' for red styling indicating validation errors. The kind is provided to child\ninputs via Vue's provide/inject system.",
1755
1989
  "value": {
1756
1990
  "kind": "expression",
1757
- "type": "string"
1991
+ "type": "ComponentKind"
1758
1992
  },
1759
1993
  "default": "'danger'"
1760
1994
  }
@@ -1855,7 +2089,17 @@
1855
2089
  "kind": "expression",
1856
2090
  "type": "SkInputSize"
1857
2091
  },
1858
- "default": "'md'"
2092
+ "default": "undefined"
2093
+ },
2094
+ {
2095
+ "name": "corners",
2096
+ "required": false,
2097
+ "description": "Which corners receive the beveled cut. Pass an empty array for square corners.\nWhen omitted, defaults to the input's standalone visual (`top-right` only).",
2098
+ "value": {
2099
+ "kind": "expression",
2100
+ "type": "Array"
2101
+ },
2102
+ "default": "undefined"
1859
2103
  },
1860
2104
  {
1861
2105
  "name": "placeholder",
@@ -1923,6 +2167,112 @@
1923
2167
  "symbol": "default"
1924
2168
  }
1925
2169
  },
2170
+ {
2171
+ "name": "SkInputGroup",
2172
+ "description": "Wraps form inputs, buttons, selects, and SkInputGroupAddon children into a\nsingle visually unified control. Bevels appear only on the group's outer corners; interior\njoins are clean. Cascades kind and size to Vue children via provide/inject — size on the\n`input-group-size` channel, kind on the `inherited-kind` ambient-default channel. A\nparent SkField's validation override (the `validation-kind` channel) takes precedence over\nboth the group's own kind and the descendants' kinds.\n\n**Example:**\n\n```vue\n<SkInputGroup :corners=\"['top-left', 'bottom-right']\" size=\"md\" kind=\"primary\">\n <SkInputGroupAddon>$</SkInputGroupAddon>\n <SkInput v-model=\"amount\" />\n <SkButton>Submit</SkButton>\n</SkInputGroup>\n```",
2173
+ "attributes": [
2174
+ {
2175
+ "name": "borderColor",
2176
+ "required": false,
2177
+ "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.",
2178
+ "value": {
2179
+ "kind": "expression",
2180
+ "type": "string"
2181
+ }
2182
+ },
2183
+ {
2184
+ "name": "textColor",
2185
+ "required": false,
2186
+ "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.",
2187
+ "value": {
2188
+ "kind": "expression",
2189
+ "type": "string"
2190
+ }
2191
+ },
2192
+ {
2193
+ "name": "baseColor",
2194
+ "required": false,
2195
+ "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.",
2196
+ "value": {
2197
+ "kind": "expression",
2198
+ "type": "string"
2199
+ }
2200
+ },
2201
+ {
2202
+ "name": "kind",
2203
+ "required": false,
2204
+ "value": {
2205
+ "kind": "expression",
2206
+ "type": "SkInputGroupKind"
2207
+ },
2208
+ "default": "undefined"
2209
+ },
2210
+ {
2211
+ "name": "size",
2212
+ "required": false,
2213
+ "value": {
2214
+ "kind": "expression",
2215
+ "type": "SkInputGroupSize"
2216
+ },
2217
+ "default": "'md'"
2218
+ },
2219
+ {
2220
+ "name": "corners",
2221
+ "required": false,
2222
+ "value": {
2223
+ "kind": "expression",
2224
+ "type": "Array"
2225
+ },
2226
+ "default": "() => [ 'top-left', 'bottom-right' ]"
2227
+ }
2228
+ ],
2229
+ "slots": [
2230
+ {
2231
+ "name": "default",
2232
+ "description": "Form components, SkButton, and SkInputGroupAddon children in left-to-right order."
2233
+ }
2234
+ ],
2235
+ "source": {
2236
+ "module": "./src/components/InputGroup/SkInputGroup.vue",
2237
+ "symbol": "default"
2238
+ }
2239
+ },
2240
+ {
2241
+ "name": "SkInputGroupAddon",
2242
+ "description": "Styled wrapper for non-component content (text, icons, plain HTML) inside an\nSkInputGroup. Renders as a span with the addon background, border, and font sizing matching\nthe surrounding group. Inherits size and kind from the parent SkInputGroup via inject.\n\n**Example:**\n\n```vue\n<SkInputGroup>\n <SkInputGroupAddon>$</SkInputGroupAddon>\n <SkInput v-model=\"amount\" />\n</SkInputGroup>\n```",
2243
+ "attributes": [
2244
+ {
2245
+ "name": "kind",
2246
+ "required": false,
2247
+ "description": "Semantic color kind. Inherits from a parent SkInputGroup or SkField when not set.",
2248
+ "value": {
2249
+ "kind": "expression",
2250
+ "type": "SkInputGroupAddonKind"
2251
+ },
2252
+ "default": "undefined"
2253
+ },
2254
+ {
2255
+ "name": "size",
2256
+ "required": false,
2257
+ "description": "Size of the addon. Inherits from a parent SkInputGroup when not set.",
2258
+ "value": {
2259
+ "kind": "expression",
2260
+ "type": "SkInputGroupAddonSize"
2261
+ },
2262
+ "default": "undefined"
2263
+ }
2264
+ ],
2265
+ "slots": [
2266
+ {
2267
+ "name": "default",
2268
+ "description": "Addon content. Text, icons, or any inline element."
2269
+ }
2270
+ ],
2271
+ "source": {
2272
+ "module": "./src/components/InputGroup/SkInputGroupAddon.vue",
2273
+ "symbol": "default"
2274
+ }
2275
+ },
1926
2276
  {
1927
2277
  "name": "SkListbox",
1928
2278
  "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```",
@@ -1972,7 +2322,7 @@
1972
2322
  "kind": "expression",
1973
2323
  "type": "SkListboxSize"
1974
2324
  },
1975
- "default": "'md'"
2325
+ "default": "undefined"
1976
2326
  },
1977
2327
  {
1978
2328
  "name": "placeholder",
@@ -2333,7 +2683,7 @@
2333
2683
  "kind": "expression",
2334
2684
  "type": "SkNumberInputSize"
2335
2685
  },
2336
- "default": "'md'"
2686
+ "default": "undefined"
2337
2687
  },
2338
2688
  {
2339
2689
  "name": "placeholder",
@@ -2424,6 +2774,16 @@
2424
2774
  "type": "boolean"
2425
2775
  },
2426
2776
  "default": "true"
2777
+ },
2778
+ {
2779
+ "name": "corners",
2780
+ "required": false,
2781
+ "description": "Which corners receive the beveled cut. Pass an empty array for square corners.",
2782
+ "value": {
2783
+ "kind": "expression",
2784
+ "type": "Array"
2785
+ },
2786
+ "default": "undefined"
2427
2787
  }
2428
2788
  ],
2429
2789
  "source": {
@@ -3491,7 +3851,7 @@
3491
3851
  "kind": "expression",
3492
3852
  "type": "SkSelectSize"
3493
3853
  },
3494
- "default": "'md'"
3854
+ "default": "undefined"
3495
3855
  },
3496
3856
  {
3497
3857
  "name": "placeholder",
@@ -3512,6 +3872,16 @@
3512
3872
  "type": "boolean"
3513
3873
  },
3514
3874
  "default": "false"
3875
+ },
3876
+ {
3877
+ "name": "corners",
3878
+ "required": false,
3879
+ "description": "Which corners receive the beveled cut. Pass an empty array for square corners.",
3880
+ "value": {
3881
+ "kind": "expression",
3882
+ "type": "Array"
3883
+ },
3884
+ "default": "undefined"
3515
3885
  }
3516
3886
  ],
3517
3887
  "slots": [
@@ -4762,7 +5132,7 @@
4762
5132
  "kind": "expression",
4763
5133
  "type": "SkTagsInputSize"
4764
5134
  },
4765
- "default": "'md'"
5135
+ "default": "undefined"
4766
5136
  },
4767
5137
  {
4768
5138
  "name": "placeholder",
@@ -4879,7 +5249,7 @@
4879
5249
  "kind": "expression",
4880
5250
  "type": "SkTextareaSize"
4881
5251
  },
4882
- "default": "'md'"
5252
+ "default": "undefined"
4883
5253
  },
4884
5254
  {
4885
5255
  "name": "placeholder",