kumo-svelte 0.9.1 → 0.13.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 (692) hide show
  1. package/README.md +4 -0
  2. package/ai/component-registry.json +271 -18
  3. package/ai/component-registry.md +4 -4
  4. package/dist/components/autocomplete/Autocomplete.svelte +87 -2
  5. package/dist/components/autocomplete/Autocomplete.svelte.d.ts +1 -0
  6. package/dist/components/autocomplete/AutocompleteContent.svelte +21 -41
  7. package/dist/components/autocomplete/AutocompleteFixture.svelte +28 -0
  8. package/dist/components/autocomplete/AutocompleteFixture.svelte.d.ts +12 -0
  9. package/dist/components/autocomplete/AutocompleteInputGroup.svelte +3 -3
  10. package/dist/components/autocomplete/AutocompleteItem.svelte +14 -10
  11. package/dist/components/autocomplete/AutocompleteList.svelte +4 -2
  12. package/dist/components/autocomplete/AutocompleteTest.svelte +26 -0
  13. package/dist/components/autocomplete/AutocompleteTest.svelte.d.ts +8 -0
  14. package/dist/components/autocomplete/autocomplete-variants.d.ts +4 -0
  15. package/dist/components/autocomplete/autocomplete-variants.js +5 -0
  16. package/dist/components/autocomplete/autocomplete.test.js +28 -0
  17. package/dist/components/autocomplete/context.d.ts +3 -2
  18. package/dist/components/autocomplete/context.js +10 -10
  19. package/dist/components/autocomplete/index.d.ts +12 -12
  20. package/dist/components/autocomplete/index.js +12 -12
  21. package/dist/components/badge/Badge.svelte +13 -3
  22. package/dist/components/badge/Badge.svelte.d.ts +6 -4
  23. package/dist/components/badge/BadgeTestHost.svelte +14 -0
  24. package/dist/components/badge/BadgeTestHost.svelte.d.ts +10 -0
  25. package/dist/components/badge/badge.test.js +95 -0
  26. package/dist/components/banner/Banner.svelte +15 -22
  27. package/dist/components/banner/banner.test.js +14 -1
  28. package/dist/components/breadcrumbs/Breadcrumbs.svelte +13 -5
  29. package/dist/components/breadcrumbs/BreadcrumbsSeparator.svelte +6 -1
  30. package/dist/components/breadcrumbs/BreadcrumbsSeparator.svelte.d.ts +6 -25
  31. package/dist/components/breadcrumbs/breadcrumbs.test.js +88 -0
  32. package/dist/components/button/ButtonTitleTestHost.svelte +10 -0
  33. package/dist/components/button/ButtonTitleTestHost.svelte.d.ts +6 -0
  34. package/dist/components/button/LinkButton.svelte +2 -1
  35. package/dist/components/button/button.test.js +8 -0
  36. package/dist/components/chart/TimeseriesChart.svelte +1 -1
  37. package/dist/components/chart/chart.test.js +111 -0
  38. package/dist/components/chart/timeseries-annotations.test.js +42 -0
  39. package/dist/components/checkbox/Checkbox.svelte +1 -1
  40. package/dist/components/checkbox/Checkbox.svelte.d.ts +1 -1
  41. package/dist/components/checkbox/checkbox.test.js +87 -0
  42. package/dist/components/clipboard-text/ClipboardText.svelte +30 -42
  43. package/dist/components/clipboard-text/ClipboardText.svelte.d.ts +34 -31
  44. package/dist/components/clipboard-text/clipboard-text.test.js +73 -0
  45. package/dist/components/cloudflare-logo/cloudflare-logo.test.js +59 -0
  46. package/dist/components/code/CodeHighlighted.svelte +71 -35
  47. package/dist/components/code/CodeHighlighted.svelte.d.ts +2 -3
  48. package/dist/components/code/code-highlighted.test.js +33 -0
  49. package/dist/components/code/code.test.js +101 -0
  50. package/dist/components/collapsible/CollapsibleDefaultTrigger.svelte +4 -2
  51. package/dist/components/collapsible/CollapsibleTestHost.svelte +19 -0
  52. package/dist/components/collapsible/CollapsibleTestHost.svelte.d.ts +7 -0
  53. package/dist/components/collapsible/collapsible.test.js +67 -0
  54. package/dist/components/combobox/Combobox.svelte +79 -2
  55. package/dist/components/combobox/ComboboxContent.svelte +31 -41
  56. package/dist/components/combobox/ComboboxContent.svelte.d.ts +10 -0
  57. package/dist/components/combobox/ComboboxInput.svelte +1 -1
  58. package/dist/components/combobox/ComboboxItem.svelte +13 -10
  59. package/dist/components/combobox/ComboboxList.svelte +4 -2
  60. package/dist/components/combobox/ComboboxTest.svelte +36 -0
  61. package/dist/components/combobox/ComboboxTest.svelte.d.ts +8 -0
  62. package/dist/components/combobox/ComboboxTrigger.svelte +3 -4
  63. package/dist/components/combobox/ComboboxTriggerInput.svelte +13 -15
  64. package/dist/components/combobox/ComboboxTriggerInput.svelte.d.ts +4 -0
  65. package/dist/components/combobox/ComboboxTriggerInputFixture.svelte +31 -0
  66. package/dist/components/combobox/ComboboxTriggerInputFixture.svelte.d.ts +10 -0
  67. package/dist/components/combobox/ComboboxTriggerMultipleWithInput.svelte +3 -16
  68. package/dist/components/combobox/ComboboxTriggerValue.svelte +11 -5
  69. package/dist/components/combobox/ComboboxTriggerValue.svelte.d.ts +5 -0
  70. package/dist/components/combobox/ComboboxTriggerValueFixture.svelte +22 -0
  71. package/dist/components/combobox/ComboboxTriggerValueFixture.svelte.d.ts +8 -0
  72. package/dist/components/combobox/combobox-variants.d.ts +6 -0
  73. package/dist/components/combobox/combobox-variants.js +7 -0
  74. package/dist/components/combobox/combobox.test.js +36 -0
  75. package/dist/components/combobox/context.d.ts +4 -3
  76. package/dist/components/combobox/context.js +15 -15
  77. package/dist/components/combobox/index.d.ts +19 -19
  78. package/dist/components/combobox/index.js +19 -19
  79. package/dist/components/command-palette/CommandPalette.svelte +1 -1
  80. package/dist/components/command-palette/CommandPaletteInput.svelte +1 -1
  81. package/dist/components/command-palette/CommandPaletteTestHost.svelte +76 -0
  82. package/dist/components/command-palette/CommandPaletteTestHost.svelte.d.ts +3 -0
  83. package/dist/components/command-palette/command-palette.test.js +82 -0
  84. package/dist/components/date-picker/DatePicker.svelte.d.ts +1 -1
  85. package/dist/components/date-picker/date-picker.test.js +53 -0
  86. package/dist/components/date-range-picker/DateRangePicker.svelte +49 -1
  87. package/dist/components/date-range-picker/DateRangePicker.svelte.d.ts +40 -0
  88. package/dist/components/date-range-picker/date-range-picker.test.js +78 -0
  89. package/dist/components/dialog/Dialog.svelte +3 -7
  90. package/dist/components/dialog/Dialog.svelte.d.ts +1 -1
  91. package/dist/components/dialog/Dialog.variants.d.ts +4 -0
  92. package/dist/components/dialog/Dialog.variants.js +4 -0
  93. package/dist/components/dialog/DialogTestHost.svelte +24 -0
  94. package/dist/components/dialog/DialogTestHost.svelte.d.ts +6 -0
  95. package/dist/components/dialog/dialog.test.js +69 -9
  96. package/dist/components/dialog/index.d.ts +2 -1
  97. package/dist/components/dialog/index.js +1 -1
  98. package/dist/components/dropdown-menu/DropdownMenuItem.svelte +10 -3
  99. package/dist/components/dropdown-menu/DropdownMenuItem.svelte.d.ts +4 -1
  100. package/dist/components/dropdown-menu/DropdownMenuRadioItem.svelte +1 -1
  101. package/dist/components/dropdown-menu/DropdownMenuRadioItemIndicator.svelte +1 -1
  102. package/dist/components/dropdown-menu/DropdownMenuTestHost.svelte +39 -0
  103. package/dist/components/dropdown-menu/DropdownMenuTestHost.svelte.d.ts +3 -0
  104. package/dist/components/dropdown-menu/dropdown-menu.test.js +105 -0
  105. package/dist/components/dropdown-menu/index.d.ts +1 -1
  106. package/dist/components/dropdown-menu/index.js +1 -1
  107. package/dist/components/empty/Empty.svelte +1 -1
  108. package/dist/components/empty/empty.test.js +90 -0
  109. package/dist/components/field/Field.svelte +9 -5
  110. package/dist/components/field/Field.svelte.d.ts +14 -12
  111. package/dist/components/field/FieldTestHost.svelte +40 -0
  112. package/dist/components/field/FieldTestHost.svelte.d.ts +18 -0
  113. package/dist/components/field/field.test.js +80 -0
  114. package/dist/components/field/index.d.ts +2 -1
  115. package/dist/components/field/index.js +1 -0
  116. package/dist/components/grid/GridTestHost.svelte +17 -0
  117. package/dist/components/grid/GridTestHost.svelte.d.ts +9 -0
  118. package/dist/components/grid/grid.test.js +47 -0
  119. package/dist/components/input/Input.svelte +5 -3
  120. package/dist/components/input/Textarea.svelte +6 -3
  121. package/dist/components/input/input-variants.d.ts +104 -0
  122. package/dist/components/input/input-variants.js +81 -0
  123. package/dist/components/input/input.test.js +78 -0
  124. package/dist/components/input/textarea.test.js +37 -0
  125. package/dist/components/input-area/InputArea.svelte +6 -3
  126. package/dist/components/input-area/input-area.test.js +57 -0
  127. package/dist/components/input-group/InputGroup.svelte +12 -2
  128. package/dist/components/input-group/InputGroupInput.svelte +3 -3
  129. package/dist/components/input-group/InputGroupTestHost.svelte +44 -0
  130. package/dist/components/input-group/InputGroupTestHost.svelte.d.ts +13 -0
  131. package/dist/components/input-group/context.js +1 -1
  132. package/dist/components/input-group/input-group.test.js +69 -0
  133. package/dist/components/label/Label.svelte +8 -5
  134. package/dist/components/label/Label.svelte.d.ts +6 -7
  135. package/dist/components/label/LabelTestHost.svelte +30 -0
  136. package/dist/components/label/LabelTestHost.svelte.d.ts +12 -0
  137. package/dist/components/label/label.test.js +84 -0
  138. package/dist/components/layer-card/LayerCard.svelte +1 -19
  139. package/dist/components/layer-card/LayerCardPrimary.svelte +1 -13
  140. package/dist/components/layer-card/LayerCardSecondary.svelte +1 -13
  141. package/dist/components/layer-card/LayerCardTestHost.svelte +23 -0
  142. package/dist/components/layer-card/LayerCardTestHost.svelte.d.ts +7 -0
  143. package/dist/components/layer-card/layer-card.test.js +50 -0
  144. package/dist/components/link/link.test.js +100 -0
  145. package/dist/components/loader/SkeletonLine.svelte +30 -29
  146. package/dist/components/loader/loader.test.js +62 -0
  147. package/dist/components/menu-bar/MenuBar.svelte +2 -0
  148. package/dist/components/menu-bar/MenuBar.svelte.d.ts +1 -0
  149. package/dist/components/menu-bar/index.d.ts +1 -0
  150. package/dist/components/menu-bar/index.js +1 -0
  151. package/dist/components/menu-bar/menu-bar.test.js +97 -0
  152. package/dist/components/meter/meter.test.js +62 -0
  153. package/dist/components/pagination/Pagination.svelte +6 -0
  154. package/dist/components/pagination/Pagination.svelte.d.ts +2 -0
  155. package/dist/components/pagination/PaginationControls.svelte +13 -5
  156. package/dist/components/pagination/PaginationPageSizeTest.svelte +10 -0
  157. package/dist/components/pagination/PaginationPageSizeTest.svelte.d.ts +3 -0
  158. package/dist/components/pagination/PaginationSeparatorTest.svelte +8 -0
  159. package/dist/components/pagination/PaginationSeparatorTest.svelte.d.ts +18 -0
  160. package/dist/components/pagination/context.d.ts +1 -0
  161. package/dist/components/pagination/pagination.test.js +83 -0
  162. package/dist/components/popover/PopoverContent.svelte +3 -3
  163. package/dist/components/popover/PopoverTestHost.svelte +15 -0
  164. package/dist/components/popover/PopoverTestHost.svelte.d.ts +18 -0
  165. package/dist/components/popover/popover.test.js +51 -0
  166. package/dist/components/radio/Radio.svelte +1 -1
  167. package/dist/components/radio/Radio.svelte.d.ts +1 -1
  168. package/dist/components/radio/RadioItem.svelte +2 -2
  169. package/dist/components/radio/radio.test.js +151 -2
  170. package/dist/components/select/Select.svelte +47 -3
  171. package/dist/components/select/Select.svelte.d.ts +19 -0
  172. package/dist/components/select/select-variants.d.ts +81 -0
  173. package/dist/components/select/select-variants.js +74 -0
  174. package/dist/components/select/select.test.js +161 -11
  175. package/dist/components/sensitive-input/SensitiveInput.svelte +2 -1
  176. package/dist/components/sensitive-input/sensitive-input.test.js +92 -0
  177. package/dist/components/sidebar/Sidebar.svelte +25 -3
  178. package/dist/components/sidebar/SidebarCollapsible.svelte +2 -1
  179. package/dist/components/sidebar/SidebarContent.svelte +13 -7
  180. package/dist/components/sidebar/SidebarMenuButton.svelte +16 -2
  181. package/dist/components/sidebar/SidebarMenuButton.svelte.d.ts +1 -0
  182. package/dist/components/sidebar/SidebarMenuButton.test.js +8 -0
  183. package/dist/components/sidebar/SidebarMenuItem.svelte +12 -4
  184. package/dist/components/sidebar/SidebarMenuItem.svelte.d.ts +1 -0
  185. package/dist/components/sidebar/SidebarProvider.svelte +41 -1
  186. package/dist/components/sidebar/SidebarScrollTestHost.svelte +8 -0
  187. package/dist/components/sidebar/SidebarScrollTestHost.svelte.d.ts +18 -0
  188. package/dist/components/sidebar/SidebarScrollTestView.svelte +16 -0
  189. package/dist/components/sidebar/SidebarScrollTestView.svelte.d.ts +18 -0
  190. package/dist/components/sidebar/SidebarTestHost.svelte +4 -3
  191. package/dist/components/sidebar/SidebarTestHost.svelte.d.ts +1 -0
  192. package/dist/components/sidebar/context.d.ts +9 -0
  193. package/dist/components/sidebar/context.js +4 -0
  194. package/dist/components/sidebar/index.d.ts +2 -1
  195. package/dist/components/sidebar/index.js +1 -0
  196. package/dist/components/sidebar/sidebar.test.js +37 -0
  197. package/dist/components/surface/SurfaceTestHost.svelte +14 -0
  198. package/dist/components/surface/SurfaceTestHost.svelte.d.ts +9 -0
  199. package/dist/components/surface/surface.test.js +46 -0
  200. package/dist/components/switch/Switch.svelte +23 -1
  201. package/dist/components/switch/Switch.svelte.d.ts +34 -0
  202. package/dist/components/switch/switch.test.js +102 -0
  203. package/dist/components/table/Table.svelte +6 -6
  204. package/dist/components/table/Table.svelte.d.ts +2 -2
  205. package/dist/components/table/TableTestHost.svelte +83 -0
  206. package/dist/components/table/TableTestHost.svelte.d.ts +7 -0
  207. package/dist/components/table/table.test.js +72 -0
  208. package/dist/components/table-of-contents/TableOfContentsTestHost.svelte +34 -0
  209. package/dist/components/table-of-contents/TableOfContentsTestHost.svelte.d.ts +9 -0
  210. package/dist/components/table-of-contents/table-of-contents.test.js +74 -0
  211. package/dist/components/tabs/Tabs.svelte +56 -38
  212. package/dist/components/tabs/Tabs.test.js +117 -3
  213. package/dist/components/tabs/TabsTestHost.svelte +23 -0
  214. package/dist/components/tabs/TabsTestHost.svelte.d.ts +8 -0
  215. package/dist/components/tabs/tabs.test.js +132 -0
  216. package/dist/components/text/Text.svelte +63 -37
  217. package/dist/components/text/Text.svelte.d.ts +47 -23
  218. package/dist/components/text/TextTestHost.svelte +32 -0
  219. package/dist/components/text/TextTestHost.svelte.d.ts +13 -0
  220. package/dist/components/text/text.test.js +36 -0
  221. package/dist/components/toasty/KumoToastContent.svelte +1 -1
  222. package/dist/components/toasty/ToastPreview.svelte +35 -0
  223. package/dist/components/toasty/ToastPreview.svelte.d.ts +11 -0
  224. package/dist/components/toasty/index.d.ts +1 -0
  225. package/dist/components/toasty/index.js +1 -0
  226. package/dist/components/toasty/toasty.test.js +101 -0
  227. package/dist/components/toolbar/Toolbar.svelte +16 -2
  228. package/dist/components/toolbar/Toolbar.svelte.d.ts +1 -0
  229. package/dist/components/toolbar/ToolbarButton.svelte +1 -0
  230. package/dist/components/toolbar/ToolbarInput.svelte +8 -1
  231. package/dist/components/toolbar/ToolbarInputGroup.svelte +7 -1
  232. package/dist/components/toolbar/ToolbarLink.svelte +48 -0
  233. package/dist/components/toolbar/ToolbarLink.svelte.d.ts +20 -0
  234. package/dist/components/toolbar/ToolbarTestHost.svelte +36 -0
  235. package/dist/components/toolbar/context.d.ts +3 -0
  236. package/dist/components/toolbar/context.js +3 -1
  237. package/dist/components/toolbar/index.d.ts +4 -1
  238. package/dist/components/toolbar/index.js +3 -1
  239. package/dist/components/toolbar/toolbar.test.js +36 -1
  240. package/dist/components/tooltip/Tooltip.svelte +5 -5
  241. package/dist/components/tooltip/TooltipTestHost.svelte +17 -0
  242. package/dist/components/tooltip/TooltipTestHost.svelte.d.ts +18 -0
  243. package/dist/components/tooltip/tooltip.test.js +52 -0
  244. package/dist/docs/ComponentExample.svelte +10 -6
  245. package/dist/docs/ComponentExample.svelte.d.ts +3 -2
  246. package/dist/docs/HomeGrid.svelte +35 -60
  247. package/dist/docs/SearchDialog.svelte +10 -3
  248. package/dist/docs/TableOfContents.svelte +3 -60
  249. package/dist/docs/TailwindColorTokens.svelte +2 -2
  250. package/dist/docs/ThemeToggle.svelte +72 -24
  251. package/dist/docs/ThemeToggle.svelte.d.ts +2 -1
  252. package/dist/docs/ThemeToggle.test.js +53 -0
  253. package/dist/docs/canonicalDocs.d.ts +7 -0
  254. package/dist/docs/canonicalDocs.js +11 -0
  255. package/dist/docs/canonicalDocs.test.js +9 -0
  256. package/dist/docs/demo-snippets/BadgeIconDemo.svelte +6 -0
  257. package/dist/docs/demo-snippets/BadgeIconDemo.svelte.d.ts +18 -0
  258. package/dist/docs/demo-snippets/BadgeLinkDemo.svelte +8 -0
  259. package/dist/docs/demo-snippets/BadgeLinkDemo.svelte.d.ts +18 -0
  260. package/dist/docs/demo-snippets/PaginationUnknownTotalDemo.svelte +12 -0
  261. package/dist/docs/demo-snippets/PaginationUnknownTotalDemo.svelte.d.ts +3 -0
  262. package/dist/docs/demo-snippets/SelectPlacementDemo.svelte +20 -0
  263. package/dist/docs/demo-snippets/SelectPlacementDemo.svelte.d.ts +18 -0
  264. package/dist/docs/demo-snippets/TabsDefaultDemo.svelte +1 -1
  265. package/dist/docs/demo-snippets/TabsDynamicCountDemo.svelte +32 -0
  266. package/dist/docs/demo-snippets/TabsDynamicCountDemo.svelte.d.ts +3 -0
  267. package/dist/docs/demo-snippets/TabsSmDemo.svelte +1 -1
  268. package/dist/docs/demo-snippets/TextVariantsDemo.svelte +4 -8
  269. package/dist/docs/demo-snippets/ToolbarComboboxDemo.svelte +26 -0
  270. package/dist/docs/demo-snippets/ToolbarComboboxDemo.svelte.d.ts +18 -0
  271. package/dist/docs/demo-snippets/ToolbarLinksDemo.svelte +10 -0
  272. package/dist/docs/demo-snippets/ToolbarLinksDemo.svelte.d.ts +18 -0
  273. package/dist/docs/demo-snippets/ToolbarSelectDemo.svelte +20 -0
  274. package/dist/docs/demo-snippets/ToolbarSelectDemo.svelte.d.ts +18 -0
  275. package/dist/docs/nav.js +4 -3
  276. package/dist/docs/props-data/Autocomplete.d.ts +1 -1
  277. package/dist/docs/props-data/Autocomplete.js +74 -54
  278. package/dist/docs/props-data/Badge.js +6 -0
  279. package/dist/docs/props-data/Combobox.d.ts +1 -1
  280. package/dist/docs/props-data/Combobox.js +80 -55
  281. package/dist/docs/props-data/Combobox__Content.js +57 -0
  282. package/dist/docs/props-data/Pagination.js +6 -0
  283. package/dist/docs/props-data/Select.js +52 -0
  284. package/dist/docs/props-data/Sidebar__MenuButton.js +1 -0
  285. package/dist/docs/props-data/Sidebar__MenuItem.d.ts +3 -0
  286. package/dist/docs/props-data/Sidebar__MenuItem.js +6 -0
  287. package/dist/docs/props-data/Text.js +3 -3
  288. package/dist/docs/props-data/Toolbar.js +1 -1
  289. package/dist/docs/props-data/Toolbar__Link.d.ts +6 -0
  290. package/dist/docs/props-data/Toolbar__Link.js +32 -0
  291. package/dist/docs/svelteDemoSnippets.d.ts +1 -0
  292. package/dist/docs/svelteDemoSnippets.js +10 -12
  293. package/dist/index.d.ts +6 -3
  294. package/dist/index.js +4 -2
  295. package/dist/styles.css +2 -2
  296. package/dist/test-fixtures/BannerActionTest.svelte +11 -0
  297. package/dist/test-fixtures/BannerActionTest.svelte.d.ts +18 -0
  298. package/dist/utils/random.d.ts +8 -0
  299. package/dist/utils/random.js +37 -0
  300. package/dist/utils/random.test.js +29 -0
  301. package/dist/vrt/Scenario.svelte +73 -0
  302. package/dist/vrt/Scenario.svelte.d.ts +32 -0
  303. package/dist/vrt/galleries/autocomplete.svelte +93 -0
  304. package/dist/vrt/galleries/autocomplete.svelte.d.ts +4 -0
  305. package/dist/vrt/galleries/badge.svelte +42 -0
  306. package/dist/vrt/galleries/badge.svelte.d.ts +19 -0
  307. package/dist/vrt/galleries/banner.svelte +60 -0
  308. package/dist/vrt/galleries/banner.svelte.d.ts +19 -0
  309. package/dist/vrt/galleries/breadcrumbs.svelte +70 -0
  310. package/dist/vrt/galleries/breadcrumbs.svelte.d.ts +19 -0
  311. package/dist/vrt/galleries/button.svelte +79 -0
  312. package/dist/vrt/galleries/button.svelte.d.ts +19 -0
  313. package/dist/vrt/galleries/chart.svelte +66 -0
  314. package/dist/vrt/galleries/chart.svelte.d.ts +19 -0
  315. package/dist/vrt/galleries/checkbox.svelte +65 -0
  316. package/dist/vrt/galleries/checkbox.svelte.d.ts +19 -0
  317. package/dist/vrt/galleries/clipboard-text.svelte +34 -0
  318. package/dist/vrt/galleries/clipboard-text.svelte.d.ts +19 -0
  319. package/dist/vrt/galleries/cloudflare-logo.svelte +29 -0
  320. package/dist/vrt/galleries/cloudflare-logo.svelte.d.ts +19 -0
  321. package/dist/vrt/galleries/code.svelte +54 -0
  322. package/dist/vrt/galleries/code.svelte.d.ts +19 -0
  323. package/dist/vrt/galleries/collapsible.svelte +22 -0
  324. package/dist/vrt/galleries/collapsible.svelte.d.ts +19 -0
  325. package/dist/vrt/galleries/combobox.svelte +136 -0
  326. package/dist/vrt/galleries/combobox.svelte.d.ts +4 -0
  327. package/dist/vrt/galleries/command-palette.svelte +158 -0
  328. package/dist/vrt/galleries/command-palette.svelte.d.ts +4 -0
  329. package/dist/vrt/galleries/date-picker.svelte +52 -0
  330. package/dist/vrt/galleries/date-picker.svelte.d.ts +19 -0
  331. package/dist/vrt/galleries/date-range-picker.svelte +26 -0
  332. package/dist/vrt/galleries/date-range-picker.svelte.d.ts +19 -0
  333. package/dist/vrt/galleries/dialog.svelte +67 -0
  334. package/dist/vrt/galleries/dialog.svelte.d.ts +19 -0
  335. package/dist/vrt/galleries/dropdown-menu.svelte +51 -0
  336. package/dist/vrt/galleries/dropdown-menu.svelte.d.ts +4 -0
  337. package/dist/vrt/galleries/empty.svelte +60 -0
  338. package/dist/vrt/galleries/empty.svelte.d.ts +19 -0
  339. package/dist/vrt/galleries/field.svelte +67 -0
  340. package/dist/vrt/galleries/field.svelte.d.ts +19 -0
  341. package/dist/vrt/galleries/flow.svelte +49 -0
  342. package/dist/vrt/galleries/flow.svelte.d.ts +19 -0
  343. package/dist/vrt/galleries/grid.svelte +48 -0
  344. package/dist/vrt/galleries/grid.svelte.d.ts +19 -0
  345. package/dist/vrt/galleries/input-group.svelte +135 -0
  346. package/dist/vrt/galleries/input-group.svelte.d.ts +19 -0
  347. package/dist/vrt/galleries/input.svelte +88 -0
  348. package/dist/vrt/galleries/input.svelte.d.ts +19 -0
  349. package/dist/vrt/galleries/label.svelte +32 -0
  350. package/dist/vrt/galleries/label.svelte.d.ts +19 -0
  351. package/dist/vrt/galleries/layer-card.svelte +35 -0
  352. package/dist/vrt/galleries/layer-card.svelte.d.ts +19 -0
  353. package/dist/vrt/galleries/link.svelte +51 -0
  354. package/dist/vrt/galleries/link.svelte.d.ts +19 -0
  355. package/dist/vrt/galleries/loader.svelte +24 -0
  356. package/dist/vrt/galleries/loader.svelte.d.ts +19 -0
  357. package/dist/vrt/galleries/menu-bar.svelte +22 -0
  358. package/dist/vrt/galleries/menu-bar.svelte.d.ts +19 -0
  359. package/dist/vrt/galleries/meter.svelte +28 -0
  360. package/dist/vrt/galleries/meter.svelte.d.ts +19 -0
  361. package/dist/vrt/galleries/pagination.svelte +47 -0
  362. package/dist/vrt/galleries/pagination.svelte.d.ts +4 -0
  363. package/dist/vrt/galleries/popover.svelte +56 -0
  364. package/dist/vrt/galleries/popover.svelte.d.ts +19 -0
  365. package/dist/vrt/galleries/radio.svelte +105 -0
  366. package/dist/vrt/galleries/radio.svelte.d.ts +19 -0
  367. package/dist/vrt/galleries/select.svelte +87 -0
  368. package/dist/vrt/galleries/select.svelte.d.ts +19 -0
  369. package/dist/vrt/galleries/sensitive-input.svelte +50 -0
  370. package/dist/vrt/galleries/sensitive-input.svelte.d.ts +19 -0
  371. package/dist/vrt/galleries/sidebar.svelte +105 -0
  372. package/dist/vrt/galleries/sidebar.svelte.d.ts +19 -0
  373. package/dist/vrt/galleries/surface.svelte +16 -0
  374. package/dist/vrt/galleries/surface.svelte.d.ts +19 -0
  375. package/dist/vrt/galleries/switch.svelte +82 -0
  376. package/dist/vrt/galleries/switch.svelte.d.ts +19 -0
  377. package/dist/vrt/galleries/table-of-contents.svelte +72 -0
  378. package/dist/vrt/galleries/table-of-contents.svelte.d.ts +19 -0
  379. package/dist/vrt/galleries/table.svelte +170 -0
  380. package/dist/vrt/galleries/table.svelte.d.ts +19 -0
  381. package/dist/vrt/galleries/tabs.svelte +57 -0
  382. package/dist/vrt/galleries/tabs.svelte.d.ts +4 -0
  383. package/dist/vrt/galleries/text.svelte +61 -0
  384. package/dist/vrt/galleries/text.svelte.d.ts +19 -0
  385. package/dist/vrt/galleries/toasty.svelte +33 -0
  386. package/dist/vrt/galleries/toasty.svelte.d.ts +18 -0
  387. package/dist/vrt/galleries/tooltip.svelte +72 -0
  388. package/dist/vrt/galleries/tooltip.svelte.d.ts +19 -0
  389. package/dist/vrt/registry.d.ts +10 -0
  390. package/dist/vrt/registry.js +13 -0
  391. package/dist/vrt/types.d.ts +19 -0
  392. package/dist/vrt/types.js +12 -0
  393. package/package.json +26 -23
  394. package/src/app.d.ts +2 -0
  395. package/src/lib/components/autocomplete/Autocomplete.svelte +87 -2
  396. package/src/lib/components/autocomplete/AutocompleteContent.svelte +21 -41
  397. package/src/lib/components/autocomplete/AutocompleteFixture.svelte +28 -0
  398. package/src/lib/components/autocomplete/AutocompleteInputGroup.svelte +3 -3
  399. package/src/lib/components/autocomplete/AutocompleteItem.svelte +14 -10
  400. package/src/lib/components/autocomplete/AutocompleteList.svelte +4 -2
  401. package/src/lib/components/autocomplete/AutocompleteTest.svelte +26 -0
  402. package/src/lib/components/autocomplete/autocomplete-variants.ts +10 -0
  403. package/src/lib/components/autocomplete/autocomplete.test.ts +37 -0
  404. package/src/lib/components/autocomplete/context.ts +26 -16
  405. package/src/lib/components/autocomplete/index.ts +16 -13
  406. package/src/lib/components/badge/Badge.svelte +13 -3
  407. package/src/lib/components/badge/BadgeTestHost.svelte +14 -0
  408. package/src/lib/components/badge/badge.test.ts +110 -0
  409. package/src/lib/components/banner/Banner.svelte +15 -22
  410. package/src/lib/components/banner/banner.test.ts +20 -1
  411. package/src/lib/components/breadcrumbs/Breadcrumbs.svelte +13 -5
  412. package/src/lib/components/breadcrumbs/BreadcrumbsSeparator.svelte +6 -1
  413. package/src/lib/components/breadcrumbs/breadcrumbs.test.ts +112 -0
  414. package/src/lib/components/button/ButtonTitleTestHost.svelte +10 -0
  415. package/src/lib/components/button/LinkButton.svelte +2 -1
  416. package/src/lib/components/button/button.test.ts +12 -0
  417. package/src/lib/components/chart/TimeseriesChart.svelte +1 -1
  418. package/src/lib/components/chart/chart.test.ts +129 -0
  419. package/src/lib/components/chart/timeseries-annotations.test.ts +62 -0
  420. package/src/lib/components/checkbox/Checkbox.svelte +1 -1
  421. package/src/lib/components/checkbox/checkbox.test.ts +106 -0
  422. package/src/lib/components/clipboard-text/ClipboardText.svelte +30 -42
  423. package/src/lib/components/clipboard-text/clipboard-text.test.ts +83 -0
  424. package/src/lib/components/cloudflare-logo/cloudflare-logo.test.ts +70 -0
  425. package/src/lib/components/code/CodeHighlighted.svelte +71 -35
  426. package/src/lib/components/code/code-highlighted.test.ts +39 -0
  427. package/src/lib/components/code/code.test.ts +119 -0
  428. package/src/lib/components/collapsible/CollapsibleDefaultTrigger.svelte +4 -2
  429. package/src/lib/components/collapsible/CollapsibleTestHost.svelte +19 -0
  430. package/src/lib/components/collapsible/collapsible.test.ts +87 -0
  431. package/src/lib/components/combobox/Combobox.svelte +79 -2
  432. package/src/lib/components/combobox/ComboboxContent.svelte +31 -41
  433. package/src/lib/components/combobox/ComboboxInput.svelte +1 -1
  434. package/src/lib/components/combobox/ComboboxItem.svelte +13 -10
  435. package/src/lib/components/combobox/ComboboxList.svelte +4 -2
  436. package/src/lib/components/combobox/ComboboxTest.svelte +36 -0
  437. package/src/lib/components/combobox/ComboboxTrigger.svelte +3 -4
  438. package/src/lib/components/combobox/ComboboxTriggerInput.svelte +13 -15
  439. package/src/lib/components/combobox/ComboboxTriggerInputFixture.svelte +31 -0
  440. package/src/lib/components/combobox/ComboboxTriggerMultipleWithInput.svelte +3 -16
  441. package/src/lib/components/combobox/ComboboxTriggerValue.svelte +11 -5
  442. package/src/lib/components/combobox/ComboboxTriggerValueFixture.svelte +22 -0
  443. package/src/lib/components/combobox/combobox-variants.ts +21 -0
  444. package/src/lib/components/combobox/combobox.test.ts +47 -0
  445. package/src/lib/components/combobox/context.ts +30 -25
  446. package/src/lib/components/combobox/index.ts +24 -20
  447. package/src/lib/components/command-palette/CommandPalette.svelte +1 -1
  448. package/src/lib/components/command-palette/CommandPaletteInput.svelte +1 -1
  449. package/src/lib/components/command-palette/CommandPaletteTestHost.svelte +76 -0
  450. package/src/lib/components/command-palette/command-palette.test.ts +101 -0
  451. package/src/lib/components/date-picker/date-picker.test.ts +67 -0
  452. package/src/lib/components/date-range-picker/DateRangePicker.svelte +49 -1
  453. package/src/lib/components/date-range-picker/date-range-picker.test.ts +100 -0
  454. package/src/lib/components/dialog/Dialog.svelte +3 -7
  455. package/src/lib/components/dialog/Dialog.variants.ts +12 -0
  456. package/src/lib/components/dialog/DialogTestHost.svelte +24 -0
  457. package/src/lib/components/dialog/dialog.test.ts +86 -9
  458. package/src/lib/components/dialog/index.ts +2 -1
  459. package/src/lib/components/dropdown-menu/DropdownMenuItem.svelte +10 -3
  460. package/src/lib/components/dropdown-menu/DropdownMenuRadioItem.svelte +1 -1
  461. package/src/lib/components/dropdown-menu/DropdownMenuRadioItemIndicator.svelte +1 -1
  462. package/src/lib/components/dropdown-menu/DropdownMenuTestHost.svelte +39 -0
  463. package/src/lib/components/dropdown-menu/dropdown-menu.test.ts +127 -0
  464. package/src/lib/components/dropdown-menu/index.ts +1 -0
  465. package/src/lib/components/empty/Empty.svelte +1 -1
  466. package/src/lib/components/empty/empty.test.ts +105 -0
  467. package/src/lib/components/field/Field.svelte +9 -5
  468. package/src/lib/components/field/FieldTestHost.svelte +40 -0
  469. package/src/lib/components/field/field.test.ts +93 -0
  470. package/src/lib/components/field/index.ts +7 -1
  471. package/src/lib/components/grid/GridTestHost.svelte +17 -0
  472. package/src/lib/components/grid/grid.test.ts +59 -0
  473. package/src/lib/components/input/Input.svelte +5 -3
  474. package/src/lib/components/input/Textarea.svelte +6 -3
  475. package/src/lib/components/input/input-variants.ts +112 -0
  476. package/src/lib/components/input/input.test.ts +89 -0
  477. package/src/lib/components/input/textarea.test.ts +42 -0
  478. package/src/lib/components/input-area/InputArea.svelte +6 -3
  479. package/src/lib/components/input-area/input-area.test.ts +65 -0
  480. package/src/lib/components/input-group/InputGroup.svelte +12 -2
  481. package/src/lib/components/input-group/InputGroupInput.svelte +3 -3
  482. package/src/lib/components/input-group/InputGroupTestHost.svelte +44 -0
  483. package/src/lib/components/input-group/context.ts +1 -1
  484. package/src/lib/components/input-group/input-group.test.ts +79 -0
  485. package/src/lib/components/label/Label.svelte +8 -5
  486. package/src/lib/components/label/LabelTestHost.svelte +30 -0
  487. package/src/lib/components/label/label.test.ts +100 -0
  488. package/src/lib/components/layer-card/LayerCard.svelte +1 -19
  489. package/src/lib/components/layer-card/LayerCardPrimary.svelte +1 -13
  490. package/src/lib/components/layer-card/LayerCardSecondary.svelte +1 -13
  491. package/src/lib/components/layer-card/LayerCardTestHost.svelte +23 -0
  492. package/src/lib/components/layer-card/layer-card.test.ts +59 -0
  493. package/src/lib/components/link/link.test.ts +113 -0
  494. package/src/lib/components/loader/SkeletonLine.svelte +30 -29
  495. package/src/lib/components/loader/loader.test.ts +73 -0
  496. package/src/lib/components/menu-bar/MenuBar.svelte +2 -0
  497. package/src/lib/components/menu-bar/index.ts +1 -0
  498. package/src/lib/components/menu-bar/menu-bar.test.ts +118 -0
  499. package/src/lib/components/meter/meter.test.ts +72 -0
  500. package/src/lib/components/pagination/Pagination.svelte +6 -0
  501. package/src/lib/components/pagination/PaginationControls.svelte +13 -5
  502. package/src/lib/components/pagination/PaginationPageSizeTest.svelte +10 -0
  503. package/src/lib/components/pagination/PaginationSeparatorTest.svelte +8 -0
  504. package/src/lib/components/pagination/context.ts +1 -0
  505. package/src/lib/components/pagination/pagination.test.ts +99 -0
  506. package/src/lib/components/popover/PopoverContent.svelte +3 -3
  507. package/src/lib/components/popover/PopoverTestHost.svelte +15 -0
  508. package/src/lib/components/popover/popover.test.ts +65 -0
  509. package/src/lib/components/radio/Radio.svelte +1 -1
  510. package/src/lib/components/radio/RadioItem.svelte +2 -2
  511. package/src/lib/components/radio/radio.test.ts +171 -2
  512. package/src/lib/components/select/Select.svelte +47 -3
  513. package/src/lib/components/select/select-variants.ts +110 -0
  514. package/src/lib/components/select/select.test.ts +193 -11
  515. package/src/lib/components/sensitive-input/SensitiveInput.svelte +2 -1
  516. package/src/lib/components/sensitive-input/sensitive-input.test.ts +110 -0
  517. package/src/lib/components/sidebar/Sidebar.svelte +25 -3
  518. package/src/lib/components/sidebar/SidebarCollapsible.svelte +2 -1
  519. package/src/lib/components/sidebar/SidebarContent.svelte +13 -7
  520. package/src/lib/components/sidebar/SidebarMenuButton.svelte +16 -2
  521. package/src/lib/components/sidebar/SidebarMenuButton.test.ts +10 -0
  522. package/src/lib/components/sidebar/SidebarMenuItem.svelte +12 -4
  523. package/src/lib/components/sidebar/SidebarProvider.svelte +41 -1
  524. package/src/lib/components/sidebar/SidebarScrollTestHost.svelte +8 -0
  525. package/src/lib/components/sidebar/SidebarScrollTestView.svelte +16 -0
  526. package/src/lib/components/sidebar/SidebarTestHost.svelte +4 -3
  527. package/src/lib/components/sidebar/context.ts +13 -0
  528. package/src/lib/components/sidebar/index.ts +4 -0
  529. package/src/lib/components/sidebar/sidebar.test.ts +51 -0
  530. package/src/lib/components/surface/SurfaceTestHost.svelte +14 -0
  531. package/src/lib/components/surface/surface.test.ts +53 -0
  532. package/src/lib/components/switch/Switch.svelte +23 -1
  533. package/src/lib/components/switch/switch.test.ts +123 -0
  534. package/src/lib/components/table/Table.svelte +6 -6
  535. package/src/lib/components/table/TableTestHost.svelte +83 -0
  536. package/src/lib/components/table/table.test.ts +90 -0
  537. package/src/lib/components/table-of-contents/TableOfContentsTestHost.svelte +34 -0
  538. package/src/lib/components/table-of-contents/table-of-contents.test.ts +84 -0
  539. package/src/lib/components/tabs/Tabs.svelte +56 -38
  540. package/src/lib/components/tabs/Tabs.test.ts +142 -3
  541. package/src/lib/components/tabs/TabsTestHost.svelte +23 -0
  542. package/src/lib/components/tabs/tabs.test.ts +159 -0
  543. package/src/lib/components/text/Text.svelte +63 -37
  544. package/src/lib/components/text/TextTestHost.svelte +32 -0
  545. package/src/lib/components/text/text.test.ts +45 -0
  546. package/src/lib/components/toasty/KumoToastContent.svelte +1 -1
  547. package/src/lib/components/toasty/ToastPreview.svelte +35 -0
  548. package/src/lib/components/toasty/index.ts +1 -0
  549. package/src/lib/components/toasty/toasty.test.ts +131 -0
  550. package/src/lib/components/toolbar/Toolbar.svelte +16 -2
  551. package/src/lib/components/toolbar/ToolbarButton.svelte +1 -0
  552. package/src/lib/components/toolbar/ToolbarInput.svelte +8 -1
  553. package/src/lib/components/toolbar/ToolbarInputGroup.svelte +7 -1
  554. package/src/lib/components/toolbar/ToolbarLink.svelte +48 -0
  555. package/src/lib/components/toolbar/ToolbarTestHost.svelte +36 -0
  556. package/src/lib/components/toolbar/context.ts +5 -2
  557. package/src/lib/components/toolbar/index.ts +5 -0
  558. package/src/lib/components/toolbar/toolbar.test.ts +45 -0
  559. package/src/lib/components/tooltip/Tooltip.svelte +5 -5
  560. package/src/lib/components/tooltip/TooltipTestHost.svelte +17 -0
  561. package/src/lib/components/tooltip/tooltip.test.ts +65 -0
  562. package/src/lib/docs/ComponentExample.svelte +10 -6
  563. package/src/lib/docs/HomeGrid.svelte +35 -60
  564. package/src/lib/docs/SearchDialog.svelte +10 -3
  565. package/src/lib/docs/TableOfContents.svelte +3 -60
  566. package/src/lib/docs/TailwindColorTokens.svelte +2 -2
  567. package/src/lib/docs/ThemeToggle.svelte +72 -24
  568. package/src/lib/docs/ThemeToggle.test.ts +64 -0
  569. package/src/lib/docs/canonicalDocs.test.ts +11 -0
  570. package/src/lib/docs/canonicalDocs.ts +14 -0
  571. package/src/lib/docs/demo-snippets/BadgeIconDemo.svelte +6 -0
  572. package/src/lib/docs/demo-snippets/BadgeLinkDemo.svelte +8 -0
  573. package/src/lib/docs/demo-snippets/PaginationUnknownTotalDemo.svelte +12 -0
  574. package/src/lib/docs/demo-snippets/SelectPlacementDemo.svelte +20 -0
  575. package/src/lib/docs/demo-snippets/TabsDefaultDemo.svelte +1 -1
  576. package/src/lib/docs/demo-snippets/TabsDynamicCountDemo.svelte +32 -0
  577. package/src/lib/docs/demo-snippets/TabsSmDemo.svelte +1 -1
  578. package/src/lib/docs/demo-snippets/TextVariantsDemo.svelte +4 -8
  579. package/src/lib/docs/demo-snippets/ToolbarComboboxDemo.svelte +26 -0
  580. package/src/lib/docs/demo-snippets/ToolbarLinksDemo.svelte +10 -0
  581. package/src/lib/docs/demo-snippets/ToolbarSelectDemo.svelte +20 -0
  582. package/src/lib/docs/nav.ts +5 -3
  583. package/src/lib/docs/props-data/Autocomplete.ts +75 -55
  584. package/src/lib/docs/props-data/Badge.ts +6 -0
  585. package/src/lib/docs/props-data/Combobox.ts +81 -56
  586. package/src/lib/docs/props-data/Combobox__Content.ts +57 -0
  587. package/src/lib/docs/props-data/Pagination.ts +6 -0
  588. package/src/lib/docs/props-data/Select.ts +52 -0
  589. package/src/lib/docs/props-data/Sidebar__MenuButton.ts +1 -0
  590. package/src/lib/docs/props-data/Sidebar__MenuItem.ts +9 -0
  591. package/src/lib/docs/props-data/Text.ts +3 -3
  592. package/src/lib/docs/props-data/Toolbar.ts +1 -1
  593. package/src/lib/docs/props-data/Toolbar__Link.ts +32 -0
  594. package/src/lib/docs/svelteDemoSnippets.ts +11 -12
  595. package/src/lib/index.ts +10 -1
  596. package/src/lib/styles.css +39 -60
  597. package/src/lib/test-fixtures/BannerActionTest.svelte +11 -0
  598. package/src/lib/utils/random.test.ts +36 -0
  599. package/src/lib/utils/random.ts +56 -0
  600. package/src/lib/vrt/Scenario.svelte +73 -0
  601. package/src/lib/vrt/galleries/autocomplete.svelte +93 -0
  602. package/src/lib/vrt/galleries/badge.svelte +42 -0
  603. package/src/lib/vrt/galleries/banner.svelte +60 -0
  604. package/src/lib/vrt/galleries/breadcrumbs.svelte +70 -0
  605. package/src/lib/vrt/galleries/button.svelte +79 -0
  606. package/src/lib/vrt/galleries/chart.svelte +66 -0
  607. package/src/lib/vrt/galleries/checkbox.svelte +65 -0
  608. package/src/lib/vrt/galleries/clipboard-text.svelte +34 -0
  609. package/src/lib/vrt/galleries/cloudflare-logo.svelte +29 -0
  610. package/src/lib/vrt/galleries/code.svelte +54 -0
  611. package/src/lib/vrt/galleries/collapsible.svelte +22 -0
  612. package/src/lib/vrt/galleries/combobox.svelte +136 -0
  613. package/src/lib/vrt/galleries/command-palette.svelte +158 -0
  614. package/src/lib/vrt/galleries/date-picker.svelte +52 -0
  615. package/src/lib/vrt/galleries/date-range-picker.svelte +26 -0
  616. package/src/lib/vrt/galleries/dialog.svelte +67 -0
  617. package/src/lib/vrt/galleries/dropdown-menu.svelte +51 -0
  618. package/src/lib/vrt/galleries/empty.svelte +60 -0
  619. package/src/lib/vrt/galleries/field.svelte +67 -0
  620. package/src/lib/vrt/galleries/flow.svelte +49 -0
  621. package/src/lib/vrt/galleries/grid.svelte +48 -0
  622. package/src/lib/vrt/galleries/input-group.svelte +135 -0
  623. package/src/lib/vrt/galleries/input.svelte +88 -0
  624. package/src/lib/vrt/galleries/label.svelte +32 -0
  625. package/src/lib/vrt/galleries/layer-card.svelte +35 -0
  626. package/src/lib/vrt/galleries/link.svelte +51 -0
  627. package/src/lib/vrt/galleries/loader.svelte +24 -0
  628. package/src/lib/vrt/galleries/menu-bar.svelte +22 -0
  629. package/src/lib/vrt/galleries/meter.svelte +28 -0
  630. package/src/lib/vrt/galleries/pagination.svelte +47 -0
  631. package/src/lib/vrt/galleries/popover.svelte +56 -0
  632. package/src/lib/vrt/galleries/radio.svelte +105 -0
  633. package/src/lib/vrt/galleries/select.svelte +87 -0
  634. package/src/lib/vrt/galleries/sensitive-input.svelte +50 -0
  635. package/src/lib/vrt/galleries/sidebar.svelte +105 -0
  636. package/src/lib/vrt/galleries/surface.svelte +16 -0
  637. package/src/lib/vrt/galleries/switch.svelte +82 -0
  638. package/src/lib/vrt/galleries/table-of-contents.svelte +72 -0
  639. package/src/lib/vrt/galleries/table.svelte +170 -0
  640. package/src/lib/vrt/galleries/tabs.svelte +57 -0
  641. package/src/lib/vrt/galleries/text.svelte +61 -0
  642. package/src/lib/vrt/galleries/toasty.svelte +33 -0
  643. package/src/lib/vrt/galleries/tooltip.svelte +72 -0
  644. package/src/lib/vrt/registry.ts +21 -0
  645. package/src/lib/vrt/types.ts +21 -0
  646. package/src/routes/+error.svelte +104 -0
  647. package/src/routes/+layout.svelte +65 -12
  648. package/src/routes/changelog/+page.svelte +1 -1
  649. package/src/routes/colors/+server.ts +6 -0
  650. package/src/routes/components/autocomplete/+page.md +7 -20
  651. package/src/routes/components/badge/+page.md +12 -0
  652. package/src/routes/components/combobox/+page.md +7 -22
  653. package/src/routes/components/pagination/+page.md +17 -0
  654. package/src/routes/components/select/+page.md +41 -63
  655. package/src/routes/components/sidebar/+page.md +3 -1
  656. package/src/routes/components/skeleton-line/+page.md +5 -0
  657. package/src/routes/components/tabs/+page.md +14 -0
  658. package/src/routes/components/text/+page.md +8 -12
  659. package/src/routes/components/toolbar/+page.md +42 -6
  660. package/src/routes/figma/+server.ts +6 -0
  661. package/src/routes/installation/+page.md +30 -0
  662. package/src/routes/llms.txt/+server.ts +14 -7
  663. package/src/routes/skill/+server.ts +6 -0
  664. package/src/routes/vrt/+layout.svelte +52 -0
  665. package/src/routes/vrt/+layout.ts +4 -0
  666. package/src/routes/vrt/+page.svelte +22 -0
  667. package/src/routes/vrt/[component]/+page.svelte +50 -0
  668. package/dist/components/banner/banner.test.d.ts +0 -1
  669. package/dist/components/button/button.test.d.ts +0 -1
  670. package/dist/components/chart/BubbleMap.test.d.ts +0 -1
  671. package/dist/components/date-picker/date-picker.test.d.ts +0 -1
  672. package/dist/components/dialog/dialog.test.d.ts +0 -1
  673. package/dist/components/flow/flow.test.d.ts +0 -1
  674. package/dist/components/pagination/pagination.test.d.ts +0 -1
  675. package/dist/components/radio/radio.test.d.ts +0 -1
  676. package/dist/components/select/select.test.d.ts +0 -1
  677. package/dist/components/sidebar/SidebarMenuButton.test.d.ts +0 -1
  678. package/dist/components/sidebar/sidebar.test.d.ts +0 -1
  679. package/dist/components/tabs/Tabs.test.d.ts +0 -1
  680. package/dist/components/toolbar/toolbar.test.d.ts +0 -1
  681. package/dist/docs/demo-snippets/MenuBarBasicDemo.svelte +0 -26
  682. package/dist/docs/demo-snippets/MenuBarBasicDemo.svelte.d.ts +0 -3
  683. package/dist/docs/demo-snippets/MenuBarNoActiveDemo.svelte +0 -26
  684. package/dist/docs/demo-snippets/MenuBarNoActiveDemo.svelte.d.ts +0 -3
  685. package/dist/docs/demo-snippets/MenuBarTextFormattingDemo.svelte +0 -26
  686. package/dist/docs/demo-snippets/MenuBarTextFormattingDemo.svelte.d.ts +0 -3
  687. package/src/lib/docs/demo-snippets/MenuBarBasicDemo.svelte +0 -26
  688. package/src/lib/docs/demo-snippets/MenuBarNoActiveDemo.svelte +0 -26
  689. package/src/lib/docs/demo-snippets/MenuBarTextFormattingDemo.svelte +0 -26
  690. package/src/routes/colors/+page.md +0 -339
  691. package/src/routes/components/menu-bar/+page.md +0 -87
  692. package/src/routes/figma/+page.md +0 -207
package/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Cloudflare's component library for building modern web applications, ported to Svelte.
4
4
 
5
+ > This is an independent community package and is not affiliated with, sponsored by, or endorsed by Cloudflare.
6
+
7
+ The expanded fidelity test coverage was contributed by [axel-rock](https://github.com/axel-rock/kumo-svelte).
8
+
5
9
  Kumo Svelte provides accessible, design-system-compliant UI components built on [Bits UI](https://bits-ui.com/). It handles keyboard navigation, focus management, and ARIA attributes so you can build accessible applications without thinking through every detail.
6
10
 
7
11
  <img width="2560" height="1456" alt="Kumo UI preview" src="https://github.com/user-attachments/assets/032f5a0e-b686-4440-b1ca-6182379479aa" />
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.9.1",
2
+ "version": "0.13.0",
3
3
  "components": {
4
4
  "Autocomplete": {
5
5
  "name": "Autocomplete",
@@ -75,6 +75,29 @@
75
75
  "type": "(open: boolean) => void",
76
76
  "optional": true,
77
77
  "description": "Called when open state changes."
78
+ },
79
+ "disabled": {
80
+ "type": "boolean",
81
+ "optional": true,
82
+ "default": "false",
83
+ "description": "Prevents interaction with the field."
84
+ },
85
+ "size": {
86
+ "type": "enum",
87
+ "optional": true,
88
+ "values": [
89
+ "xs",
90
+ "sm",
91
+ "base",
92
+ "lg"
93
+ ],
94
+ "default": "base",
95
+ "description": "Size preset."
96
+ },
97
+ "filter": {
98
+ "type": "((item: AutocompleteItem, query: string) => boolean) | null",
99
+ "optional": true,
100
+ "description": "Custom filter function. Set to null to disable filtering."
78
101
  }
79
102
  },
80
103
  "colors": [
@@ -320,6 +343,11 @@
320
343
  "optional": true,
321
344
  "description": "Additional classes merged onto the root element."
322
345
  },
346
+ "icon": {
347
+ "type": "Component",
348
+ "optional": true,
349
+ "description": "Icon rendered before the content on filled badges."
350
+ },
323
351
  "children": {
324
352
  "type": "Snippet",
325
353
  "optional": false,
@@ -337,6 +365,7 @@
337
365
  "bg-kumo-badge-red",
338
366
  "bg-kumo-badge-teal",
339
367
  "bg-kumo-badge-teal-subtle",
368
+ "bg-kumo-base",
340
369
  "bg-kumo-danger-tint",
341
370
  "bg-kumo-fill",
342
371
  "bg-kumo-info-tint",
@@ -1691,7 +1720,7 @@
1691
1720
  },
1692
1721
  "colors": [
1693
1722
  "border-kumo-fill",
1694
- "text-kumo-link"
1723
+ "text-kumo-default"
1695
1724
  ],
1696
1725
  "subComponents": {
1697
1726
  "DefaultPanel": {
@@ -1938,6 +1967,27 @@
1938
1967
  "type": "(open: boolean) => void",
1939
1968
  "optional": true,
1940
1969
  "description": "Called when open state changes."
1970
+ },
1971
+ "disabled": {
1972
+ "type": "boolean",
1973
+ "optional": true,
1974
+ "default": "false",
1975
+ "description": "Prevents interaction with the field."
1976
+ },
1977
+ "defaultValue": {
1978
+ "type": "unknown",
1979
+ "optional": true,
1980
+ "description": "Initial value."
1981
+ },
1982
+ "filter": {
1983
+ "type": "((item: ComboboxItem, query: string) => boolean) | null",
1984
+ "optional": true,
1985
+ "description": "Custom filter function. Set to null to disable filtering."
1986
+ },
1987
+ "isItemEqualToValue": {
1988
+ "type": "(item: unknown, value: unknown) => boolean",
1989
+ "optional": true,
1990
+ "description": "Custom value equality matcher function."
1941
1991
  }
1942
1992
  },
1943
1993
  "colors": [
@@ -2005,6 +2055,66 @@
2005
2055
  "optional": true,
2006
2056
  "default": "4",
2007
2057
  "description": "Offset between the popup and the trigger."
2058
+ },
2059
+ "customAnchor": {
2060
+ "type": "string | HTMLElement | Measurable | null",
2061
+ "optional": true,
2062
+ "description": "Custom element or virtual anchor used to position the popup."
2063
+ },
2064
+ "strategy": {
2065
+ "type": "enum",
2066
+ "optional": true,
2067
+ "values": [
2068
+ "absolute",
2069
+ "fixed"
2070
+ ],
2071
+ "description": "CSS positioning strategy used by the floating content."
2072
+ },
2073
+ "avoidCollisions": {
2074
+ "type": "boolean",
2075
+ "optional": true,
2076
+ "default": "true",
2077
+ "description": "Adjust placement to avoid crossing collision boundaries."
2078
+ },
2079
+ "collisionBoundary": {
2080
+ "type": "Boundary | Boundary[]",
2081
+ "optional": true,
2082
+ "description": "Boundary elements used for collision detection."
2083
+ },
2084
+ "collisionPadding": {
2085
+ "type": "number | Partial<Record<Side, number>>",
2086
+ "optional": true,
2087
+ "default": "8",
2088
+ "description": "Padding kept between the popup and collision boundaries."
2089
+ },
2090
+ "sticky": {
2091
+ "type": "enum",
2092
+ "optional": true,
2093
+ "values": [
2094
+ "partial",
2095
+ "always"
2096
+ ],
2097
+ "description": "How the popup remains attached when its anchor approaches a boundary."
2098
+ },
2099
+ "hideWhenDetached": {
2100
+ "type": "boolean",
2101
+ "optional": true,
2102
+ "description": "Hide the popup when its anchor is fully clipped."
2103
+ },
2104
+ "updatePositionStrategy": {
2105
+ "type": "enum",
2106
+ "optional": true,
2107
+ "values": [
2108
+ "optimized",
2109
+ "always"
2110
+ ],
2111
+ "default": "'optimized'",
2112
+ "description": "How frequently floating position updates are calculated."
2113
+ },
2114
+ "container": {
2115
+ "type": "HTMLElement | string",
2116
+ "optional": true,
2117
+ "description": "Portal target for the popup content."
2008
2118
  }
2009
2119
  }
2010
2120
  },
@@ -2111,11 +2221,9 @@
2111
2221
  "bg-kumo-elevated",
2112
2222
  "bg-kumo-overlay",
2113
2223
  "bg-kumo-warning",
2114
- "border-kumo-line",
2115
2224
  "ring-kumo-brand",
2116
2225
  "ring-kumo-hairline",
2117
2226
  "text-kumo-default",
2118
- "text-kumo-placeholder",
2119
2227
  "text-kumo-subtle"
2120
2228
  ],
2121
2229
  "subComponents": {
@@ -3611,8 +3719,6 @@
3611
3719
  "bg-kumo-base",
3612
3720
  "bg-kumo-elevated",
3613
3721
  "ring-kumo-fill",
3614
- "ring-kumo-hairline",
3615
- "ring-kumo-line",
3616
3722
  "text-kumo-subtle"
3617
3723
  ]
3618
3724
  },
@@ -3697,9 +3803,9 @@
3697
3803
  "name": "MenuBar",
3698
3804
  "type": "component",
3699
3805
  "category": "Navigation",
3700
- "description": "A horizontal menu bar with icon buttons, commonly used for text editors or toolbars.",
3701
- "importPath": "kumo-svelte/components/menubar",
3702
- "sourceFile": "components/menubar",
3806
+ "description": "Deprecated horizontal menu bar. Use segmented Tabs for new work.",
3807
+ "importPath": "kumo-svelte/components/menu-bar",
3808
+ "sourceFile": "components/menu-bar",
3703
3809
  "props": {
3704
3810
  "class": {
3705
3811
  "type": "string",
@@ -3725,7 +3831,14 @@
3725
3831
  "description": "When true, each option's id is used for active matching instead of its array index."
3726
3832
  }
3727
3833
  },
3728
- "colors": []
3834
+ "colors": [
3835
+ "bg-kumo-base",
3836
+ "bg-kumo-recessed",
3837
+ "border-kumo-recessed",
3838
+ "ring-kumo-brand",
3839
+ "ring-kumo-focus",
3840
+ "ring-kumo-line"
3841
+ ]
3729
3842
  },
3730
3843
  "Meter": {
3731
3844
  "name": "Meter",
@@ -3821,6 +3934,11 @@
3821
3934
  "optional": true,
3822
3935
  "description": "Total number of items across all pages."
3823
3936
  },
3937
+ "hasNextPage": {
3938
+ "type": "boolean",
3939
+ "optional": true,
3940
+ "description": "Whether another page exists when the total count is unknown."
3941
+ },
3824
3942
  "class": {
3825
3943
  "type": "string",
3826
3944
  "optional": true,
@@ -3981,9 +4099,10 @@
3981
4099
  },
3982
4100
  "colors": [
3983
4101
  "bg-kumo-base",
4102
+ "fill-kumo-arrow-edge",
4103
+ "fill-kumo-arrow-stroke",
3984
4104
  "fill-kumo-base",
3985
- "fill-kumo-tip-shadow",
3986
- "fill-kumo-tip-stroke",
4105
+ "ring-kumo-line",
3987
4106
  "text-kumo-default",
3988
4107
  "text-kumo-subtle"
3989
4108
  ]
@@ -4525,14 +4644,83 @@
4525
4644
  "type": "HTMLElement | string",
4526
4645
  "optional": true,
4527
4646
  "description": "Container element for the portal."
4647
+ },
4648
+ "side": {
4649
+ "type": "enum",
4650
+ "optional": true,
4651
+ "values": [
4652
+ "top",
4653
+ "right",
4654
+ "bottom",
4655
+ "left"
4656
+ ],
4657
+ "default": "bottom",
4658
+ "description": "Preferred popup side; collision handling may flip it."
4659
+ },
4660
+ "sideOffset": {
4661
+ "type": "number",
4662
+ "optional": true,
4663
+ "default": "4",
4664
+ "description": "Distance between the trigger and popup."
4665
+ },
4666
+ "align": {
4667
+ "type": "enum",
4668
+ "optional": true,
4669
+ "values": [
4670
+ "start",
4671
+ "center",
4672
+ "end"
4673
+ ],
4674
+ "default": "start",
4675
+ "description": "Popup alignment along the trigger edge."
4676
+ },
4677
+ "alignOffset": {
4678
+ "type": "number",
4679
+ "optional": true,
4680
+ "default": "0",
4681
+ "description": "Additional offset along the alignment axis."
4682
+ },
4683
+ "customAnchor": {
4684
+ "type": "HTMLElement | string",
4685
+ "optional": true,
4686
+ "description": "Custom floating-position anchor."
4687
+ },
4688
+ "strategy": {
4689
+ "type": "enum",
4690
+ "optional": true,
4691
+ "values": [
4692
+ "absolute",
4693
+ "fixed"
4694
+ ],
4695
+ "description": "CSS positioning strategy for the popup."
4696
+ },
4697
+ "avoidCollisions": {
4698
+ "type": "boolean",
4699
+ "optional": true,
4700
+ "description": "Whether the popup should adjust to avoid viewport collisions."
4701
+ },
4702
+ "collisionPadding": {
4703
+ "type": "enum",
4704
+ "optional": true,
4705
+ "values": [
4706
+ "top",
4707
+ "right",
4708
+ "bottom",
4709
+ "left"
4710
+ ],
4711
+ "description": "Padding between the popup and its collision boundary."
4528
4712
  }
4529
4713
  },
4530
4714
  "colors": [
4531
4715
  "bg-kumo-base",
4716
+ "bg-kumo-control",
4717
+ "bg-kumo-hairline",
4532
4718
  "bg-kumo-tint",
4719
+ "border-kumo-line",
4533
4720
  "ring-kumo-brand",
4534
4721
  "ring-kumo-danger",
4535
4722
  "ring-kumo-focus",
4723
+ "ring-kumo-hairline",
4536
4724
  "ring-kumo-line",
4537
4725
  "text-kumo-default",
4538
4726
  "text-kumo-placeholder",
@@ -4816,6 +5004,11 @@
4816
5004
  "optional": true,
4817
5005
  "description": "Tooltip label shown when the sidebar is collapsed."
4818
5006
  },
5007
+ "itemId": {
5008
+ "type": "string",
5009
+ "optional": true,
5010
+ "description": "Anchor id used by useSidebar().scrollToItem()."
5011
+ },
4819
5012
  "children": {
4820
5013
  "type": "Snippet",
4821
5014
  "optional": true,
@@ -4828,6 +5021,26 @@
4828
5021
  }
4829
5022
  }
4830
5023
  },
5024
+ "MenuItem": {
5025
+ "description": "Sidebar.MenuItem",
5026
+ "props": {
5027
+ "itemId": {
5028
+ "type": "string",
5029
+ "optional": true,
5030
+ "description": "Anchor id used by useSidebar().scrollToItem()."
5031
+ },
5032
+ "children": {
5033
+ "type": "Snippet",
5034
+ "optional": true,
5035
+ "description": "Menu item content."
5036
+ },
5037
+ "class": {
5038
+ "type": "string",
5039
+ "optional": true,
5040
+ "description": "Additional classes."
5041
+ }
5042
+ }
5043
+ },
4831
5044
  "MenuSubButton": {
4832
5045
  "description": "Sidebar.MenuSubButton",
4833
5046
  "props": {
@@ -5740,7 +5953,6 @@
5740
5953
  "colors": [
5741
5954
  "bg-kumo-base",
5742
5955
  "bg-kumo-brand",
5743
- "bg-kumo-elevated",
5744
5956
  "bg-kumo-recessed",
5745
5957
  "bg-kumo-tint",
5746
5958
  "border-kumo-hairline",
@@ -5764,6 +5976,7 @@
5764
5976
  "type": "enum",
5765
5977
  "optional": true,
5766
5978
  "values": [
5979
+ "heading",
5767
5980
  "heading1",
5768
5981
  "heading2",
5769
5982
  "heading3",
@@ -5775,7 +5988,7 @@
5775
5988
  "error"
5776
5989
  ],
5777
5990
  "default": "body",
5778
- "description": "Visual variant."
5991
+ "description": "Visual variant. Numbered heading variants are deprecated; use heading with size and as."
5779
5992
  },
5780
5993
  "size": {
5781
5994
  "type": "enum",
@@ -5787,7 +6000,7 @@
5787
6000
  "lg"
5788
6001
  ],
5789
6002
  "default": "base",
5790
- "description": "Size preset."
6003
+ "description": "Size preset. Heading accepts lg for a 20px heading; its default is 16px."
5791
6004
  },
5792
6005
  "bold": {
5793
6006
  "type": "boolean",
@@ -6030,7 +6243,7 @@
6030
6243
  "lg"
6031
6244
  ],
6032
6245
  "default": "base",
6033
- "description": "Locks every toolbar item to this size."
6246
+ "description": "Deprecated. Sets every toolbar item to this size; omit it for the base size."
6034
6247
  },
6035
6248
  "class": {
6036
6249
  "type": "string",
@@ -6115,6 +6328,46 @@
6115
6328
  "description": "Additional classes merged onto the toolbar input group."
6116
6329
  }
6117
6330
  }
6331
+ },
6332
+ "Link": {
6333
+ "description": "Toolbar.Link",
6334
+ "props": {
6335
+ "children": {
6336
+ "type": "Snippet",
6337
+ "optional": true,
6338
+ "description": "Optional visible link label."
6339
+ },
6340
+ "href": {
6341
+ "type": "string",
6342
+ "optional": true,
6343
+ "description": "Navigation destination."
6344
+ },
6345
+ "icon": {
6346
+ "type": "Component",
6347
+ "optional": true,
6348
+ "description": "Optional icon component rendered before the label."
6349
+ },
6350
+ "shape": {
6351
+ "type": "enum",
6352
+ "optional": true,
6353
+ "values": [
6354
+ "base",
6355
+ "square",
6356
+ "circle"
6357
+ ],
6358
+ "description": "Link shape. Icon-only toolbar links default to square."
6359
+ },
6360
+ "external": {
6361
+ "type": "boolean",
6362
+ "optional": true,
6363
+ "description": "Opens the link in a new tab with safe rel attributes."
6364
+ },
6365
+ "disabled": {
6366
+ "type": "boolean",
6367
+ "optional": true,
6368
+ "description": "Disables navigation and exposes disabled semantics."
6369
+ }
6370
+ }
6118
6371
  }
6119
6372
  }
6120
6373
  },
@@ -6199,9 +6452,9 @@
6199
6452
  },
6200
6453
  "colors": [
6201
6454
  "bg-kumo-base",
6455
+ "fill-kumo-arrow-edge",
6456
+ "fill-kumo-arrow-stroke",
6202
6457
  "fill-kumo-base",
6203
- "fill-kumo-tip-shadow",
6204
- "fill-kumo-tip-stroke",
6205
6458
  "text-kumo-default"
6206
6459
  ]
6207
6460
  }
@@ -1,6 +1,6 @@
1
1
  # Kumo Svelte Component Registry
2
2
 
3
- Version: 0.9.1
3
+ Version: 0.13.0
4
4
 
5
5
  ## Autocomplete
6
6
 
@@ -236,11 +236,11 @@ A loading spinner to indicate loading state.
236
236
 
237
237
  ## MenuBar
238
238
 
239
- A horizontal menu bar with icon buttons, commonly used for text editors or toolbars.
239
+ Deprecated horizontal menu bar. Use segmented Tabs for new work.
240
240
 
241
241
  - Category: Navigation
242
- - Import: `import { MenuBar } from "kumo-svelte/components/menubar";`
243
- - Source: `components/menubar`
242
+ - Import: `import { MenuBar } from "kumo-svelte/components/menu-bar";`
243
+ - Source: `components/menu-bar`
244
244
 
245
245
  ## Meter
246
246
 
@@ -12,6 +12,7 @@
12
12
  type NormalizedAutocompleteItem
13
13
  } from './context';
14
14
  import { createKumoFilter } from '../filter';
15
+ import { Combobox as ComboboxPrimitive } from 'bits-ui';
15
16
 
16
17
  type FieldError = string | { message?: string; match?: boolean };
17
18
 
@@ -22,6 +23,7 @@
22
23
  value?: AutocompleteValue;
23
24
  defaultValue?: AutocompleteValue;
24
25
  open?: boolean;
26
+ disabled?: boolean;
25
27
  size?: AutocompleteSize;
26
28
  label?: string | Snippet;
27
29
  labelTooltip?: string | Snippet;
@@ -41,6 +43,7 @@
41
43
  defaultValue,
42
44
  value = $bindable(defaultValue ?? ''),
43
45
  open = $bindable(false),
46
+ disabled = false,
44
47
  size = 'base',
45
48
  label,
46
49
  labelTooltip,
@@ -73,6 +76,62 @@
73
76
  });
74
77
  });
75
78
 
79
+ const serializedOptions = $derived(
80
+ normalizedItems.map((item, index) => ({
81
+ ...item,
82
+ serializedValue: `kumo-autocomplete:${index}`
83
+ }))
84
+ );
85
+
86
+ function serializeSelectedValue(selectionValue: unknown) {
87
+ const option = serializedOptions.find((entry) => valuesEqual(entry.value, selectionValue as AutocompleteValue));
88
+ if (option) return option.serializedValue;
89
+ return typeof selectionValue === 'string' || typeof selectionValue === 'number' ? String(selectionValue) : undefined;
90
+ }
91
+
92
+ function deserializePrimitiveValue(primitiveValue: string) {
93
+ const option = serializedOptions.find((entry) => entry.serializedValue === primitiveValue);
94
+ return option ? option.value : primitiveValue;
95
+ }
96
+
97
+ const primitiveValue = $derived.by(() => {
98
+ if (Array.isArray(value)) {
99
+ return value.map(serializeSelectedValue).filter((v): v is string => v !== undefined);
100
+ }
101
+ const val = serializeSelectedValue(value);
102
+ return val !== undefined ? val : '';
103
+ });
104
+
105
+ function handleSingleValueChange(nextValue: string | undefined) {
106
+ if (nextValue === undefined) return;
107
+ const deserialized = deserializePrimitiveValue(nextValue);
108
+ value = deserialized;
109
+ const option = serializedOptions.find((entry) => entry.serializedValue === nextValue);
110
+ if (option) {
111
+ query = option.label;
112
+ }
113
+ open = false;
114
+ onValueChange?.(deserialized);
115
+ onOpenChange?.(false);
116
+ }
117
+
118
+ function handleMultipleValueChange(nextValue: string[]) {
119
+ const deserialized = nextValue.map(deserializePrimitiveValue).map(String);
120
+ value = deserialized;
121
+ onValueChange?.(deserialized);
122
+ }
123
+
124
+ $effect(() => {
125
+ if (!open) {
126
+ if (Array.isArray(value)) {
127
+ query = value.join(', ');
128
+ } else {
129
+ const option = serializedOptions.find((entry) => entry.value === value);
130
+ query = option ? option.label : String(value ?? '');
131
+ }
132
+ }
133
+ });
134
+
76
135
  function valuesEqual(itemValue: string | number, selectedValue: AutocompleteValue) {
77
136
  if (Array.isArray(selectedValue)) return selectedValue.some((selected) => itemValue === selected);
78
137
  return itemValue === selectedValue;
@@ -151,13 +210,39 @@
151
210
  onOpenChange?.(false);
152
211
  },
153
212
  isSelected,
154
- select
213
+ select,
214
+ serializeValue(itemValue: unknown): string {
215
+ const option = serializedOptions.find((entry) => entry.value === itemValue);
216
+ return option?.serializedValue ?? String(itemValue ?? '');
217
+ }
155
218
  });
156
219
  </script>
157
220
 
158
221
  {#snippet control()}
159
222
  <div bind:this={rootElement} class={cn('relative w-full', className)} {...rest}>
160
- {@render children?.()}
223
+ {#if Array.isArray(value)}
224
+ <ComboboxPrimitive.Root
225
+ type="multiple"
226
+ value={Array.isArray(primitiveValue) ? primitiveValue : []}
227
+ onValueChange={handleMultipleValueChange}
228
+ bind:open={open}
229
+ disabled={disabled}
230
+ inputValue={query}
231
+ >
232
+ {@render children?.()}
233
+ </ComboboxPrimitive.Root>
234
+ {:else}
235
+ <ComboboxPrimitive.Root
236
+ type="single"
237
+ value={Array.isArray(primitiveValue) ? (primitiveValue[0] ?? '') : primitiveValue}
238
+ onValueChange={handleSingleValueChange}
239
+ bind:open={open}
240
+ disabled={disabled}
241
+ inputValue={query}
242
+ >
243
+ {@render children?.()}
244
+ </ComboboxPrimitive.Root>
245
+ {/if}
161
246
  </div>
162
247
  {/snippet}
163
248
 
@@ -11,6 +11,7 @@ export interface Props {
11
11
  value?: AutocompleteValue;
12
12
  defaultValue?: AutocompleteValue;
13
13
  open?: boolean;
14
+ disabled?: boolean;
14
15
  size?: AutocompleteSize;
15
16
  label?: string | Snippet;
16
17
  labelTooltip?: string | Snippet;