kumo-svelte 0.9.0 → 0.12.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 (646) hide show
  1. package/README.md +4 -0
  2. package/ai/component-registry.json +161 -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/CollapsibleDefaultPanel.svelte +7 -2
  51. package/dist/components/collapsible/CollapsibleDefaultTrigger.svelte +4 -2
  52. package/dist/components/collapsible/CollapsibleTestHost.svelte +19 -0
  53. package/dist/components/collapsible/CollapsibleTestHost.svelte.d.ts +7 -0
  54. package/dist/components/collapsible/collapsible.test.js +67 -0
  55. package/dist/components/combobox/Combobox.svelte +79 -2
  56. package/dist/components/combobox/ComboboxContent.svelte +31 -41
  57. package/dist/components/combobox/ComboboxContent.svelte.d.ts +10 -0
  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 +34 -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 +27 -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/DialogTestHost.svelte +24 -0
  90. package/dist/components/dialog/DialogTestHost.svelte.d.ts +6 -0
  91. package/dist/components/dialog/dialog.test.js +62 -9
  92. package/dist/components/dropdown-menu/DropdownMenuItem.svelte +10 -3
  93. package/dist/components/dropdown-menu/DropdownMenuItem.svelte.d.ts +4 -1
  94. package/dist/components/dropdown-menu/DropdownMenuRadioItem.svelte +1 -1
  95. package/dist/components/dropdown-menu/DropdownMenuRadioItemIndicator.svelte +1 -1
  96. package/dist/components/dropdown-menu/DropdownMenuTestHost.svelte +39 -0
  97. package/dist/components/dropdown-menu/DropdownMenuTestHost.svelte.d.ts +3 -0
  98. package/dist/components/dropdown-menu/dropdown-menu.test.js +105 -0
  99. package/dist/components/dropdown-menu/index.d.ts +1 -1
  100. package/dist/components/dropdown-menu/index.js +1 -1
  101. package/dist/components/empty/Empty.svelte +1 -1
  102. package/dist/components/empty/empty.test.js +90 -0
  103. package/dist/components/field/Field.svelte +9 -5
  104. package/dist/components/field/Field.svelte.d.ts +14 -12
  105. package/dist/components/field/FieldTestHost.svelte +40 -0
  106. package/dist/components/field/FieldTestHost.svelte.d.ts +18 -0
  107. package/dist/components/field/field.test.js +80 -0
  108. package/dist/components/field/index.d.ts +2 -1
  109. package/dist/components/field/index.js +1 -0
  110. package/dist/components/grid/GridTestHost.svelte +17 -0
  111. package/dist/components/grid/GridTestHost.svelte.d.ts +9 -0
  112. package/dist/components/grid/grid.test.js +47 -0
  113. package/dist/components/input/Input.svelte +5 -3
  114. package/dist/components/input/Textarea.svelte +6 -3
  115. package/dist/components/input/input-variants.d.ts +104 -0
  116. package/dist/components/input/input-variants.js +81 -0
  117. package/dist/components/input/input.test.js +78 -0
  118. package/dist/components/input/textarea.test.js +37 -0
  119. package/dist/components/input-area/InputArea.svelte +6 -3
  120. package/dist/components/input-area/input-area.test.js +57 -0
  121. package/dist/components/input-group/InputGroup.svelte +12 -2
  122. package/dist/components/input-group/InputGroupInput.svelte +3 -3
  123. package/dist/components/input-group/InputGroupTestHost.svelte +44 -0
  124. package/dist/components/input-group/InputGroupTestHost.svelte.d.ts +13 -0
  125. package/dist/components/input-group/input-group.test.js +65 -0
  126. package/dist/components/label/Label.svelte +8 -5
  127. package/dist/components/label/Label.svelte.d.ts +6 -7
  128. package/dist/components/label/LabelTestHost.svelte +30 -0
  129. package/dist/components/label/LabelTestHost.svelte.d.ts +12 -0
  130. package/dist/components/label/label.test.js +84 -0
  131. package/dist/components/layer-card/LayerCard.svelte +1 -19
  132. package/dist/components/layer-card/LayerCardPrimary.svelte +1 -13
  133. package/dist/components/layer-card/LayerCardSecondary.svelte +1 -13
  134. package/dist/components/layer-card/LayerCardTestHost.svelte +23 -0
  135. package/dist/components/layer-card/LayerCardTestHost.svelte.d.ts +7 -0
  136. package/dist/components/layer-card/layer-card.test.js +50 -0
  137. package/dist/components/link/link.test.js +100 -0
  138. package/dist/components/loader/SkeletonLine.svelte +30 -29
  139. package/dist/components/loader/loader.test.js +62 -0
  140. package/dist/components/menu-bar/MenuBar.svelte +2 -0
  141. package/dist/components/menu-bar/MenuBar.svelte.d.ts +1 -0
  142. package/dist/components/menu-bar/index.d.ts +1 -0
  143. package/dist/components/menu-bar/index.js +1 -0
  144. package/dist/components/menu-bar/menu-bar.test.js +97 -0
  145. package/dist/components/meter/meter.test.js +62 -0
  146. package/dist/components/pagination/PaginationPageSizeTest.svelte +10 -0
  147. package/dist/components/pagination/PaginationPageSizeTest.svelte.d.ts +3 -0
  148. package/dist/components/pagination/PaginationSeparatorTest.svelte +8 -0
  149. package/dist/components/pagination/PaginationSeparatorTest.svelte.d.ts +18 -0
  150. package/dist/components/pagination/pagination.test.js +64 -0
  151. package/dist/components/popover/PopoverContent.svelte +3 -3
  152. package/dist/components/popover/PopoverTestHost.svelte +15 -0
  153. package/dist/components/popover/PopoverTestHost.svelte.d.ts +18 -0
  154. package/dist/components/popover/popover.test.js +51 -0
  155. package/dist/components/radio/Radio.svelte +1 -1
  156. package/dist/components/radio/Radio.svelte.d.ts +1 -1
  157. package/dist/components/radio/RadioItem.svelte +2 -2
  158. package/dist/components/radio/radio.test.js +151 -2
  159. package/dist/components/select/Select.svelte +7 -0
  160. package/dist/components/select/Select.svelte.d.ts +4 -0
  161. package/dist/components/select/select-variants.d.ts +81 -0
  162. package/dist/components/select/select-variants.js +74 -0
  163. package/dist/components/select/select.test.js +129 -1
  164. package/dist/components/sensitive-input/SensitiveInput.svelte +2 -1
  165. package/dist/components/sensitive-input/sensitive-input.test.js +92 -0
  166. package/dist/components/sidebar/Sidebar.svelte +25 -3
  167. package/dist/components/sidebar/SidebarCollapsible.svelte +2 -1
  168. package/dist/components/sidebar/SidebarContent.svelte +13 -7
  169. package/dist/components/sidebar/SidebarMenuButton.svelte +16 -2
  170. package/dist/components/sidebar/SidebarMenuButton.svelte.d.ts +1 -0
  171. package/dist/components/sidebar/SidebarMenuButton.test.js +8 -0
  172. package/dist/components/sidebar/SidebarMenuItem.svelte +12 -4
  173. package/dist/components/sidebar/SidebarMenuItem.svelte.d.ts +1 -0
  174. package/dist/components/sidebar/SidebarProvider.svelte +41 -1
  175. package/dist/components/sidebar/SidebarScrollTestHost.svelte +8 -0
  176. package/dist/components/sidebar/SidebarScrollTestHost.svelte.d.ts +18 -0
  177. package/dist/components/sidebar/SidebarScrollTestView.svelte +16 -0
  178. package/dist/components/sidebar/SidebarScrollTestView.svelte.d.ts +18 -0
  179. package/dist/components/sidebar/SidebarTestHost.svelte +4 -3
  180. package/dist/components/sidebar/SidebarTestHost.svelte.d.ts +1 -0
  181. package/dist/components/sidebar/context.d.ts +9 -0
  182. package/dist/components/sidebar/context.js +4 -0
  183. package/dist/components/sidebar/index.d.ts +2 -1
  184. package/dist/components/sidebar/index.js +1 -0
  185. package/dist/components/sidebar/sidebar.test.js +37 -0
  186. package/dist/components/surface/SurfaceTestHost.svelte +14 -0
  187. package/dist/components/surface/SurfaceTestHost.svelte.d.ts +9 -0
  188. package/dist/components/surface/surface.test.js +46 -0
  189. package/dist/components/switch/Switch.svelte +23 -1
  190. package/dist/components/switch/Switch.svelte.d.ts +34 -0
  191. package/dist/components/switch/switch.test.js +102 -0
  192. package/dist/components/table/Table.svelte +6 -6
  193. package/dist/components/table/Table.svelte.d.ts +2 -2
  194. package/dist/components/table/TableTestHost.svelte +83 -0
  195. package/dist/components/table/TableTestHost.svelte.d.ts +7 -0
  196. package/dist/components/table/table.test.js +67 -0
  197. package/dist/components/table-of-contents/TableOfContentsTestHost.svelte +34 -0
  198. package/dist/components/table-of-contents/TableOfContentsTestHost.svelte.d.ts +9 -0
  199. package/dist/components/table-of-contents/table-of-contents.test.js +74 -0
  200. package/dist/components/tabs/Tabs.svelte +56 -35
  201. package/dist/components/tabs/Tabs.test.js +117 -3
  202. package/dist/components/tabs/TabsTestHost.svelte +23 -0
  203. package/dist/components/tabs/TabsTestHost.svelte.d.ts +8 -0
  204. package/dist/components/tabs/tabs.test.js +132 -0
  205. package/dist/components/text/Text.svelte +59 -33
  206. package/dist/components/text/Text.svelte.d.ts +43 -19
  207. package/dist/components/text/TextTestHost.svelte +32 -0
  208. package/dist/components/text/TextTestHost.svelte.d.ts +13 -0
  209. package/dist/components/text/text.test.js +25 -0
  210. package/dist/components/toasty/KumoToastContent.svelte +1 -1
  211. package/dist/components/toasty/ToastPreview.svelte +35 -0
  212. package/dist/components/toasty/ToastPreview.svelte.d.ts +11 -0
  213. package/dist/components/toasty/index.d.ts +1 -0
  214. package/dist/components/toasty/index.js +1 -0
  215. package/dist/components/toasty/toasty.test.js +101 -0
  216. package/dist/components/toolbar/Toolbar.svelte +16 -2
  217. package/dist/components/toolbar/Toolbar.svelte.d.ts +1 -0
  218. package/dist/components/toolbar/ToolbarButton.svelte +1 -0
  219. package/dist/components/toolbar/ToolbarInput.svelte +8 -1
  220. package/dist/components/toolbar/ToolbarInputGroup.svelte +7 -1
  221. package/dist/components/toolbar/ToolbarTestHost.svelte +30 -0
  222. package/dist/components/toolbar/context.d.ts +3 -0
  223. package/dist/components/toolbar/context.js +3 -1
  224. package/dist/components/toolbar/toolbar.test.js +21 -0
  225. package/dist/components/tooltip/Tooltip.svelte +4 -4
  226. package/dist/components/tooltip/TooltipTestHost.svelte +13 -0
  227. package/dist/components/tooltip/TooltipTestHost.svelte.d.ts +18 -0
  228. package/dist/components/tooltip/tooltip.test.js +46 -0
  229. package/dist/docs/ComponentExample.svelte +10 -6
  230. package/dist/docs/ComponentExample.svelte.d.ts +3 -2
  231. package/dist/docs/HomeGrid.svelte +35 -60
  232. package/dist/docs/SearchDialog.svelte +10 -3
  233. package/dist/docs/TableOfContents.svelte +3 -60
  234. package/dist/docs/TailwindColorTokens.svelte +2 -2
  235. package/dist/docs/ThemeToggle.svelte +72 -24
  236. package/dist/docs/ThemeToggle.svelte.d.ts +2 -1
  237. package/dist/docs/ThemeToggle.test.js +53 -0
  238. package/dist/docs/canonicalDocs.d.ts +7 -0
  239. package/dist/docs/canonicalDocs.js +11 -0
  240. package/dist/docs/canonicalDocs.test.js +9 -0
  241. package/dist/docs/demo-snippets/BadgeIconDemo.svelte +6 -0
  242. package/dist/docs/demo-snippets/BadgeIconDemo.svelte.d.ts +18 -0
  243. package/dist/docs/demo-snippets/BadgeLinkDemo.svelte +8 -0
  244. package/dist/docs/demo-snippets/BadgeLinkDemo.svelte.d.ts +18 -0
  245. package/dist/docs/demo-snippets/TabsDynamicCountDemo.svelte +32 -0
  246. package/dist/docs/demo-snippets/TabsDynamicCountDemo.svelte.d.ts +3 -0
  247. package/dist/docs/demo-snippets/TextVariantsDemo.svelte +4 -8
  248. package/dist/docs/demo-snippets/ToolbarComboboxDemo.svelte +26 -0
  249. package/dist/docs/demo-snippets/ToolbarComboboxDemo.svelte.d.ts +18 -0
  250. package/dist/docs/demo-snippets/ToolbarSelectDemo.svelte +20 -0
  251. package/dist/docs/demo-snippets/ToolbarSelectDemo.svelte.d.ts +18 -0
  252. package/dist/docs/nav.js +4 -3
  253. package/dist/docs/props-data/Autocomplete.d.ts +1 -1
  254. package/dist/docs/props-data/Autocomplete.js +74 -54
  255. package/dist/docs/props-data/Badge.js +6 -0
  256. package/dist/docs/props-data/Combobox.d.ts +1 -1
  257. package/dist/docs/props-data/Combobox.js +80 -55
  258. package/dist/docs/props-data/Combobox__Content.js +57 -0
  259. package/dist/docs/props-data/Sidebar__MenuButton.js +1 -0
  260. package/dist/docs/props-data/Sidebar__MenuItem.d.ts +3 -0
  261. package/dist/docs/props-data/Sidebar__MenuItem.js +6 -0
  262. package/dist/docs/props-data/Text.js +3 -3
  263. package/dist/docs/props-data/Toolbar.js +1 -1
  264. package/dist/docs/svelteDemoSnippets.d.ts +1 -0
  265. package/dist/docs/svelteDemoSnippets.js +10 -12
  266. package/dist/index.d.ts +4 -1
  267. package/dist/index.js +3 -1
  268. package/dist/styles.css +2 -2
  269. package/dist/test-fixtures/BannerActionTest.svelte +11 -0
  270. package/dist/test-fixtures/BannerActionTest.svelte.d.ts +18 -0
  271. package/dist/utils/random.d.ts +8 -0
  272. package/dist/utils/random.js +37 -0
  273. package/dist/utils/random.test.js +29 -0
  274. package/dist/vrt/Scenario.svelte +73 -0
  275. package/dist/vrt/Scenario.svelte.d.ts +32 -0
  276. package/dist/vrt/galleries/autocomplete.svelte +93 -0
  277. package/dist/vrt/galleries/autocomplete.svelte.d.ts +4 -0
  278. package/dist/vrt/galleries/badge.svelte +42 -0
  279. package/dist/vrt/galleries/badge.svelte.d.ts +19 -0
  280. package/dist/vrt/galleries/banner.svelte +60 -0
  281. package/dist/vrt/galleries/banner.svelte.d.ts +19 -0
  282. package/dist/vrt/galleries/breadcrumbs.svelte +70 -0
  283. package/dist/vrt/galleries/breadcrumbs.svelte.d.ts +19 -0
  284. package/dist/vrt/galleries/button.svelte +79 -0
  285. package/dist/vrt/galleries/button.svelte.d.ts +19 -0
  286. package/dist/vrt/galleries/chart.svelte +66 -0
  287. package/dist/vrt/galleries/chart.svelte.d.ts +19 -0
  288. package/dist/vrt/galleries/checkbox.svelte +65 -0
  289. package/dist/vrt/galleries/checkbox.svelte.d.ts +19 -0
  290. package/dist/vrt/galleries/clipboard-text.svelte +34 -0
  291. package/dist/vrt/galleries/clipboard-text.svelte.d.ts +19 -0
  292. package/dist/vrt/galleries/cloudflare-logo.svelte +29 -0
  293. package/dist/vrt/galleries/cloudflare-logo.svelte.d.ts +19 -0
  294. package/dist/vrt/galleries/code.svelte +54 -0
  295. package/dist/vrt/galleries/code.svelte.d.ts +19 -0
  296. package/dist/vrt/galleries/collapsible.svelte +22 -0
  297. package/dist/vrt/galleries/collapsible.svelte.d.ts +19 -0
  298. package/dist/vrt/galleries/combobox.svelte +136 -0
  299. package/dist/vrt/galleries/combobox.svelte.d.ts +4 -0
  300. package/dist/vrt/galleries/command-palette.svelte +158 -0
  301. package/dist/vrt/galleries/command-palette.svelte.d.ts +4 -0
  302. package/dist/vrt/galleries/date-picker.svelte +52 -0
  303. package/dist/vrt/galleries/date-picker.svelte.d.ts +19 -0
  304. package/dist/vrt/galleries/date-range-picker.svelte +26 -0
  305. package/dist/vrt/galleries/date-range-picker.svelte.d.ts +19 -0
  306. package/dist/vrt/galleries/dialog.svelte +67 -0
  307. package/dist/vrt/galleries/dialog.svelte.d.ts +19 -0
  308. package/dist/vrt/galleries/dropdown-menu.svelte +51 -0
  309. package/dist/vrt/galleries/dropdown-menu.svelte.d.ts +4 -0
  310. package/dist/vrt/galleries/empty.svelte +60 -0
  311. package/dist/vrt/galleries/empty.svelte.d.ts +19 -0
  312. package/dist/vrt/galleries/field.svelte +67 -0
  313. package/dist/vrt/galleries/field.svelte.d.ts +19 -0
  314. package/dist/vrt/galleries/flow.svelte +49 -0
  315. package/dist/vrt/galleries/flow.svelte.d.ts +19 -0
  316. package/dist/vrt/galleries/grid.svelte +48 -0
  317. package/dist/vrt/galleries/grid.svelte.d.ts +19 -0
  318. package/dist/vrt/galleries/input-group.svelte +135 -0
  319. package/dist/vrt/galleries/input-group.svelte.d.ts +19 -0
  320. package/dist/vrt/galleries/input.svelte +88 -0
  321. package/dist/vrt/galleries/input.svelte.d.ts +19 -0
  322. package/dist/vrt/galleries/label.svelte +32 -0
  323. package/dist/vrt/galleries/label.svelte.d.ts +19 -0
  324. package/dist/vrt/galleries/layer-card.svelte +35 -0
  325. package/dist/vrt/galleries/layer-card.svelte.d.ts +19 -0
  326. package/dist/vrt/galleries/link.svelte +51 -0
  327. package/dist/vrt/galleries/link.svelte.d.ts +19 -0
  328. package/dist/vrt/galleries/loader.svelte +24 -0
  329. package/dist/vrt/galleries/loader.svelte.d.ts +19 -0
  330. package/dist/vrt/galleries/menu-bar.svelte +22 -0
  331. package/dist/vrt/galleries/menu-bar.svelte.d.ts +19 -0
  332. package/dist/vrt/galleries/meter.svelte +28 -0
  333. package/dist/vrt/galleries/meter.svelte.d.ts +19 -0
  334. package/dist/vrt/galleries/pagination.svelte +47 -0
  335. package/dist/vrt/galleries/pagination.svelte.d.ts +4 -0
  336. package/dist/vrt/galleries/popover.svelte +56 -0
  337. package/dist/vrt/galleries/popover.svelte.d.ts +19 -0
  338. package/dist/vrt/galleries/radio.svelte +105 -0
  339. package/dist/vrt/galleries/radio.svelte.d.ts +19 -0
  340. package/dist/vrt/galleries/select.svelte +87 -0
  341. package/dist/vrt/galleries/select.svelte.d.ts +19 -0
  342. package/dist/vrt/galleries/sensitive-input.svelte +50 -0
  343. package/dist/vrt/galleries/sensitive-input.svelte.d.ts +19 -0
  344. package/dist/vrt/galleries/sidebar.svelte +105 -0
  345. package/dist/vrt/galleries/sidebar.svelte.d.ts +19 -0
  346. package/dist/vrt/galleries/surface.svelte +16 -0
  347. package/dist/vrt/galleries/surface.svelte.d.ts +19 -0
  348. package/dist/vrt/galleries/switch.svelte +82 -0
  349. package/dist/vrt/galleries/switch.svelte.d.ts +19 -0
  350. package/dist/vrt/galleries/table-of-contents.svelte +72 -0
  351. package/dist/vrt/galleries/table-of-contents.svelte.d.ts +19 -0
  352. package/dist/vrt/galleries/table.svelte +170 -0
  353. package/dist/vrt/galleries/table.svelte.d.ts +19 -0
  354. package/dist/vrt/galleries/tabs.svelte +57 -0
  355. package/dist/vrt/galleries/tabs.svelte.d.ts +4 -0
  356. package/dist/vrt/galleries/text.svelte +61 -0
  357. package/dist/vrt/galleries/text.svelte.d.ts +19 -0
  358. package/dist/vrt/galleries/toasty.svelte +33 -0
  359. package/dist/vrt/galleries/toasty.svelte.d.ts +18 -0
  360. package/dist/vrt/galleries/tooltip.svelte +72 -0
  361. package/dist/vrt/galleries/tooltip.svelte.d.ts +19 -0
  362. package/dist/vrt/registry.d.ts +10 -0
  363. package/dist/vrt/registry.js +13 -0
  364. package/dist/vrt/types.d.ts +19 -0
  365. package/dist/vrt/types.js +12 -0
  366. package/package.json +26 -23
  367. package/src/app.d.ts +2 -0
  368. package/src/lib/components/autocomplete/Autocomplete.svelte +87 -2
  369. package/src/lib/components/autocomplete/AutocompleteContent.svelte +21 -41
  370. package/src/lib/components/autocomplete/AutocompleteFixture.svelte +28 -0
  371. package/src/lib/components/autocomplete/AutocompleteInputGroup.svelte +3 -3
  372. package/src/lib/components/autocomplete/AutocompleteItem.svelte +14 -10
  373. package/src/lib/components/autocomplete/AutocompleteList.svelte +4 -2
  374. package/src/lib/components/autocomplete/AutocompleteTest.svelte +26 -0
  375. package/src/lib/components/autocomplete/autocomplete-variants.ts +10 -0
  376. package/src/lib/components/autocomplete/autocomplete.test.ts +37 -0
  377. package/src/lib/components/autocomplete/context.ts +26 -16
  378. package/src/lib/components/autocomplete/index.ts +16 -13
  379. package/src/lib/components/badge/Badge.svelte +13 -3
  380. package/src/lib/components/badge/BadgeTestHost.svelte +14 -0
  381. package/src/lib/components/badge/badge.test.ts +110 -0
  382. package/src/lib/components/banner/Banner.svelte +15 -22
  383. package/src/lib/components/banner/banner.test.ts +20 -1
  384. package/src/lib/components/breadcrumbs/Breadcrumbs.svelte +13 -5
  385. package/src/lib/components/breadcrumbs/BreadcrumbsSeparator.svelte +6 -1
  386. package/src/lib/components/breadcrumbs/breadcrumbs.test.ts +112 -0
  387. package/src/lib/components/button/ButtonTitleTestHost.svelte +10 -0
  388. package/src/lib/components/button/LinkButton.svelte +2 -1
  389. package/src/lib/components/button/button.test.ts +12 -0
  390. package/src/lib/components/chart/TimeseriesChart.svelte +1 -1
  391. package/src/lib/components/chart/chart.test.ts +129 -0
  392. package/src/lib/components/chart/timeseries-annotations.test.ts +62 -0
  393. package/src/lib/components/checkbox/Checkbox.svelte +1 -1
  394. package/src/lib/components/checkbox/checkbox.test.ts +106 -0
  395. package/src/lib/components/clipboard-text/ClipboardText.svelte +30 -42
  396. package/src/lib/components/clipboard-text/clipboard-text.test.ts +83 -0
  397. package/src/lib/components/cloudflare-logo/cloudflare-logo.test.ts +70 -0
  398. package/src/lib/components/code/CodeHighlighted.svelte +71 -35
  399. package/src/lib/components/code/code-highlighted.test.ts +39 -0
  400. package/src/lib/components/code/code.test.ts +119 -0
  401. package/src/lib/components/collapsible/CollapsibleDefaultPanel.svelte +7 -2
  402. package/src/lib/components/collapsible/CollapsibleDefaultTrigger.svelte +4 -2
  403. package/src/lib/components/collapsible/CollapsibleTestHost.svelte +19 -0
  404. package/src/lib/components/collapsible/collapsible.test.ts +87 -0
  405. package/src/lib/components/combobox/Combobox.svelte +79 -2
  406. package/src/lib/components/combobox/ComboboxContent.svelte +31 -41
  407. package/src/lib/components/combobox/ComboboxItem.svelte +13 -10
  408. package/src/lib/components/combobox/ComboboxList.svelte +4 -2
  409. package/src/lib/components/combobox/ComboboxTest.svelte +34 -0
  410. package/src/lib/components/combobox/ComboboxTrigger.svelte +3 -4
  411. package/src/lib/components/combobox/ComboboxTriggerInput.svelte +13 -15
  412. package/src/lib/components/combobox/ComboboxTriggerInputFixture.svelte +31 -0
  413. package/src/lib/components/combobox/ComboboxTriggerMultipleWithInput.svelte +3 -16
  414. package/src/lib/components/combobox/ComboboxTriggerValue.svelte +11 -5
  415. package/src/lib/components/combobox/ComboboxTriggerValueFixture.svelte +22 -0
  416. package/src/lib/components/combobox/combobox-variants.ts +21 -0
  417. package/src/lib/components/combobox/combobox.test.ts +36 -0
  418. package/src/lib/components/combobox/context.ts +30 -25
  419. package/src/lib/components/combobox/index.ts +24 -20
  420. package/src/lib/components/command-palette/CommandPalette.svelte +1 -1
  421. package/src/lib/components/command-palette/CommandPaletteInput.svelte +1 -1
  422. package/src/lib/components/command-palette/CommandPaletteTestHost.svelte +76 -0
  423. package/src/lib/components/command-palette/command-palette.test.ts +101 -0
  424. package/src/lib/components/date-picker/date-picker.test.ts +67 -0
  425. package/src/lib/components/date-range-picker/DateRangePicker.svelte +49 -1
  426. package/src/lib/components/date-range-picker/date-range-picker.test.ts +100 -0
  427. package/src/lib/components/dialog/DialogTestHost.svelte +24 -0
  428. package/src/lib/components/dialog/dialog.test.ts +78 -9
  429. package/src/lib/components/dropdown-menu/DropdownMenuItem.svelte +10 -3
  430. package/src/lib/components/dropdown-menu/DropdownMenuRadioItem.svelte +1 -1
  431. package/src/lib/components/dropdown-menu/DropdownMenuRadioItemIndicator.svelte +1 -1
  432. package/src/lib/components/dropdown-menu/DropdownMenuTestHost.svelte +39 -0
  433. package/src/lib/components/dropdown-menu/dropdown-menu.test.ts +127 -0
  434. package/src/lib/components/dropdown-menu/index.ts +1 -0
  435. package/src/lib/components/empty/Empty.svelte +1 -1
  436. package/src/lib/components/empty/empty.test.ts +105 -0
  437. package/src/lib/components/field/Field.svelte +9 -5
  438. package/src/lib/components/field/FieldTestHost.svelte +40 -0
  439. package/src/lib/components/field/field.test.ts +93 -0
  440. package/src/lib/components/field/index.ts +7 -1
  441. package/src/lib/components/grid/GridTestHost.svelte +17 -0
  442. package/src/lib/components/grid/grid.test.ts +59 -0
  443. package/src/lib/components/input/Input.svelte +5 -3
  444. package/src/lib/components/input/Textarea.svelte +6 -3
  445. package/src/lib/components/input/input-variants.ts +112 -0
  446. package/src/lib/components/input/input.test.ts +89 -0
  447. package/src/lib/components/input/textarea.test.ts +42 -0
  448. package/src/lib/components/input-area/InputArea.svelte +6 -3
  449. package/src/lib/components/input-area/input-area.test.ts +65 -0
  450. package/src/lib/components/input-group/InputGroup.svelte +12 -2
  451. package/src/lib/components/input-group/InputGroupInput.svelte +3 -3
  452. package/src/lib/components/input-group/InputGroupTestHost.svelte +44 -0
  453. package/src/lib/components/input-group/input-group.test.ts +74 -0
  454. package/src/lib/components/label/Label.svelte +8 -5
  455. package/src/lib/components/label/LabelTestHost.svelte +30 -0
  456. package/src/lib/components/label/label.test.ts +100 -0
  457. package/src/lib/components/layer-card/LayerCard.svelte +1 -19
  458. package/src/lib/components/layer-card/LayerCardPrimary.svelte +1 -13
  459. package/src/lib/components/layer-card/LayerCardSecondary.svelte +1 -13
  460. package/src/lib/components/layer-card/LayerCardTestHost.svelte +23 -0
  461. package/src/lib/components/layer-card/layer-card.test.ts +59 -0
  462. package/src/lib/components/link/link.test.ts +113 -0
  463. package/src/lib/components/loader/SkeletonLine.svelte +30 -29
  464. package/src/lib/components/loader/loader.test.ts +73 -0
  465. package/src/lib/components/menu-bar/MenuBar.svelte +2 -0
  466. package/src/lib/components/menu-bar/index.ts +1 -0
  467. package/src/lib/components/menu-bar/menu-bar.test.ts +118 -0
  468. package/src/lib/components/meter/meter.test.ts +72 -0
  469. package/src/lib/components/pagination/PaginationPageSizeTest.svelte +10 -0
  470. package/src/lib/components/pagination/PaginationSeparatorTest.svelte +8 -0
  471. package/src/lib/components/pagination/pagination.test.ts +76 -0
  472. package/src/lib/components/popover/PopoverContent.svelte +3 -3
  473. package/src/lib/components/popover/PopoverTestHost.svelte +15 -0
  474. package/src/lib/components/popover/popover.test.ts +65 -0
  475. package/src/lib/components/radio/Radio.svelte +1 -1
  476. package/src/lib/components/radio/RadioItem.svelte +2 -2
  477. package/src/lib/components/radio/radio.test.ts +171 -2
  478. package/src/lib/components/select/Select.svelte +7 -0
  479. package/src/lib/components/select/select-variants.ts +110 -0
  480. package/src/lib/components/select/select.test.ts +153 -1
  481. package/src/lib/components/sensitive-input/SensitiveInput.svelte +2 -1
  482. package/src/lib/components/sensitive-input/sensitive-input.test.ts +110 -0
  483. package/src/lib/components/sidebar/Sidebar.svelte +25 -3
  484. package/src/lib/components/sidebar/SidebarCollapsible.svelte +2 -1
  485. package/src/lib/components/sidebar/SidebarContent.svelte +13 -7
  486. package/src/lib/components/sidebar/SidebarMenuButton.svelte +16 -2
  487. package/src/lib/components/sidebar/SidebarMenuButton.test.ts +10 -0
  488. package/src/lib/components/sidebar/SidebarMenuItem.svelte +12 -4
  489. package/src/lib/components/sidebar/SidebarProvider.svelte +41 -1
  490. package/src/lib/components/sidebar/SidebarScrollTestHost.svelte +8 -0
  491. package/src/lib/components/sidebar/SidebarScrollTestView.svelte +16 -0
  492. package/src/lib/components/sidebar/SidebarTestHost.svelte +4 -3
  493. package/src/lib/components/sidebar/context.ts +13 -0
  494. package/src/lib/components/sidebar/index.ts +4 -0
  495. package/src/lib/components/sidebar/sidebar.test.ts +51 -0
  496. package/src/lib/components/surface/SurfaceTestHost.svelte +14 -0
  497. package/src/lib/components/surface/surface.test.ts +53 -0
  498. package/src/lib/components/switch/Switch.svelte +23 -1
  499. package/src/lib/components/switch/switch.test.ts +123 -0
  500. package/src/lib/components/table/Table.svelte +6 -6
  501. package/src/lib/components/table/TableTestHost.svelte +83 -0
  502. package/src/lib/components/table/table.test.ts +78 -0
  503. package/src/lib/components/table-of-contents/TableOfContentsTestHost.svelte +34 -0
  504. package/src/lib/components/table-of-contents/table-of-contents.test.ts +84 -0
  505. package/src/lib/components/tabs/Tabs.svelte +56 -35
  506. package/src/lib/components/tabs/Tabs.test.ts +142 -3
  507. package/src/lib/components/tabs/TabsTestHost.svelte +23 -0
  508. package/src/lib/components/tabs/tabs.test.ts +159 -0
  509. package/src/lib/components/text/Text.svelte +59 -33
  510. package/src/lib/components/text/TextTestHost.svelte +32 -0
  511. package/src/lib/components/text/text.test.ts +33 -0
  512. package/src/lib/components/toasty/KumoToastContent.svelte +1 -1
  513. package/src/lib/components/toasty/ToastPreview.svelte +35 -0
  514. package/src/lib/components/toasty/index.ts +1 -0
  515. package/src/lib/components/toasty/toasty.test.ts +131 -0
  516. package/src/lib/components/toolbar/Toolbar.svelte +16 -2
  517. package/src/lib/components/toolbar/ToolbarButton.svelte +1 -0
  518. package/src/lib/components/toolbar/ToolbarInput.svelte +8 -1
  519. package/src/lib/components/toolbar/ToolbarInputGroup.svelte +7 -1
  520. package/src/lib/components/toolbar/ToolbarTestHost.svelte +30 -0
  521. package/src/lib/components/toolbar/context.ts +5 -2
  522. package/src/lib/components/toolbar/toolbar.test.ts +28 -0
  523. package/src/lib/components/tooltip/Tooltip.svelte +4 -4
  524. package/src/lib/components/tooltip/TooltipTestHost.svelte +13 -0
  525. package/src/lib/components/tooltip/tooltip.test.ts +58 -0
  526. package/src/lib/docs/ComponentExample.svelte +10 -6
  527. package/src/lib/docs/HomeGrid.svelte +35 -60
  528. package/src/lib/docs/SearchDialog.svelte +10 -3
  529. package/src/lib/docs/TableOfContents.svelte +3 -60
  530. package/src/lib/docs/TailwindColorTokens.svelte +2 -2
  531. package/src/lib/docs/ThemeToggle.svelte +72 -24
  532. package/src/lib/docs/ThemeToggle.test.ts +64 -0
  533. package/src/lib/docs/canonicalDocs.test.ts +11 -0
  534. package/src/lib/docs/canonicalDocs.ts +14 -0
  535. package/src/lib/docs/demo-snippets/BadgeIconDemo.svelte +6 -0
  536. package/src/lib/docs/demo-snippets/BadgeLinkDemo.svelte +8 -0
  537. package/src/lib/docs/demo-snippets/TabsDynamicCountDemo.svelte +32 -0
  538. package/src/lib/docs/demo-snippets/TextVariantsDemo.svelte +4 -8
  539. package/src/lib/docs/demo-snippets/ToolbarComboboxDemo.svelte +26 -0
  540. package/src/lib/docs/demo-snippets/ToolbarSelectDemo.svelte +20 -0
  541. package/src/lib/docs/nav.ts +5 -3
  542. package/src/lib/docs/props-data/Autocomplete.ts +75 -55
  543. package/src/lib/docs/props-data/Badge.ts +6 -0
  544. package/src/lib/docs/props-data/Combobox.ts +81 -56
  545. package/src/lib/docs/props-data/Combobox__Content.ts +57 -0
  546. package/src/lib/docs/props-data/Sidebar__MenuButton.ts +1 -0
  547. package/src/lib/docs/props-data/Sidebar__MenuItem.ts +9 -0
  548. package/src/lib/docs/props-data/Text.ts +3 -3
  549. package/src/lib/docs/props-data/Toolbar.ts +1 -1
  550. package/src/lib/docs/svelteDemoSnippets.ts +11 -12
  551. package/src/lib/index.ts +8 -1
  552. package/src/lib/styles.css +39 -60
  553. package/src/lib/test-fixtures/BannerActionTest.svelte +11 -0
  554. package/src/lib/utils/random.test.ts +36 -0
  555. package/src/lib/utils/random.ts +56 -0
  556. package/src/lib/vrt/Scenario.svelte +73 -0
  557. package/src/lib/vrt/galleries/autocomplete.svelte +93 -0
  558. package/src/lib/vrt/galleries/badge.svelte +42 -0
  559. package/src/lib/vrt/galleries/banner.svelte +60 -0
  560. package/src/lib/vrt/galleries/breadcrumbs.svelte +70 -0
  561. package/src/lib/vrt/galleries/button.svelte +79 -0
  562. package/src/lib/vrt/galleries/chart.svelte +66 -0
  563. package/src/lib/vrt/galleries/checkbox.svelte +65 -0
  564. package/src/lib/vrt/galleries/clipboard-text.svelte +34 -0
  565. package/src/lib/vrt/galleries/cloudflare-logo.svelte +29 -0
  566. package/src/lib/vrt/galleries/code.svelte +54 -0
  567. package/src/lib/vrt/galleries/collapsible.svelte +22 -0
  568. package/src/lib/vrt/galleries/combobox.svelte +136 -0
  569. package/src/lib/vrt/galleries/command-palette.svelte +158 -0
  570. package/src/lib/vrt/galleries/date-picker.svelte +52 -0
  571. package/src/lib/vrt/galleries/date-range-picker.svelte +26 -0
  572. package/src/lib/vrt/galleries/dialog.svelte +67 -0
  573. package/src/lib/vrt/galleries/dropdown-menu.svelte +51 -0
  574. package/src/lib/vrt/galleries/empty.svelte +60 -0
  575. package/src/lib/vrt/galleries/field.svelte +67 -0
  576. package/src/lib/vrt/galleries/flow.svelte +49 -0
  577. package/src/lib/vrt/galleries/grid.svelte +48 -0
  578. package/src/lib/vrt/galleries/input-group.svelte +135 -0
  579. package/src/lib/vrt/galleries/input.svelte +88 -0
  580. package/src/lib/vrt/galleries/label.svelte +32 -0
  581. package/src/lib/vrt/galleries/layer-card.svelte +35 -0
  582. package/src/lib/vrt/galleries/link.svelte +51 -0
  583. package/src/lib/vrt/galleries/loader.svelte +24 -0
  584. package/src/lib/vrt/galleries/menu-bar.svelte +22 -0
  585. package/src/lib/vrt/galleries/meter.svelte +28 -0
  586. package/src/lib/vrt/galleries/pagination.svelte +47 -0
  587. package/src/lib/vrt/galleries/popover.svelte +56 -0
  588. package/src/lib/vrt/galleries/radio.svelte +105 -0
  589. package/src/lib/vrt/galleries/select.svelte +87 -0
  590. package/src/lib/vrt/galleries/sensitive-input.svelte +50 -0
  591. package/src/lib/vrt/galleries/sidebar.svelte +105 -0
  592. package/src/lib/vrt/galleries/surface.svelte +16 -0
  593. package/src/lib/vrt/galleries/switch.svelte +82 -0
  594. package/src/lib/vrt/galleries/table-of-contents.svelte +72 -0
  595. package/src/lib/vrt/galleries/table.svelte +170 -0
  596. package/src/lib/vrt/galleries/tabs.svelte +57 -0
  597. package/src/lib/vrt/galleries/text.svelte +61 -0
  598. package/src/lib/vrt/galleries/toasty.svelte +33 -0
  599. package/src/lib/vrt/galleries/tooltip.svelte +72 -0
  600. package/src/lib/vrt/registry.ts +21 -0
  601. package/src/lib/vrt/types.ts +21 -0
  602. package/src/routes/+error.svelte +104 -0
  603. package/src/routes/+layout.svelte +65 -12
  604. package/src/routes/changelog/+page.svelte +1 -1
  605. package/src/routes/colors/+server.ts +6 -0
  606. package/src/routes/components/autocomplete/+page.md +7 -20
  607. package/src/routes/components/badge/+page.md +12 -0
  608. package/src/routes/components/combobox/+page.md +7 -22
  609. package/src/routes/components/sidebar/+page.md +3 -1
  610. package/src/routes/components/skeleton-line/+page.md +5 -0
  611. package/src/routes/components/tabs/+page.md +14 -0
  612. package/src/routes/components/text/+page.md +8 -12
  613. package/src/routes/components/toolbar/+page.md +29 -5
  614. package/src/routes/figma/+server.ts +6 -0
  615. package/src/routes/installation/+page.md +30 -0
  616. package/src/routes/llms.txt/+server.ts +14 -7
  617. package/src/routes/skill/+server.ts +6 -0
  618. package/src/routes/vrt/+layout.svelte +52 -0
  619. package/src/routes/vrt/+layout.ts +4 -0
  620. package/src/routes/vrt/+page.svelte +22 -0
  621. package/src/routes/vrt/[component]/+page.svelte +50 -0
  622. package/dist/components/banner/banner.test.d.ts +0 -1
  623. package/dist/components/button/button.test.d.ts +0 -1
  624. package/dist/components/chart/BubbleMap.test.d.ts +0 -1
  625. package/dist/components/date-picker/date-picker.test.d.ts +0 -1
  626. package/dist/components/dialog/dialog.test.d.ts +0 -1
  627. package/dist/components/flow/flow.test.d.ts +0 -1
  628. package/dist/components/pagination/pagination.test.d.ts +0 -1
  629. package/dist/components/radio/radio.test.d.ts +0 -1
  630. package/dist/components/select/select.test.d.ts +0 -1
  631. package/dist/components/sidebar/SidebarMenuButton.test.d.ts +0 -1
  632. package/dist/components/sidebar/sidebar.test.d.ts +0 -1
  633. package/dist/components/tabs/Tabs.test.d.ts +0 -1
  634. package/dist/components/toolbar/toolbar.test.d.ts +0 -1
  635. package/dist/docs/demo-snippets/MenuBarBasicDemo.svelte +0 -26
  636. package/dist/docs/demo-snippets/MenuBarBasicDemo.svelte.d.ts +0 -3
  637. package/dist/docs/demo-snippets/MenuBarNoActiveDemo.svelte +0 -26
  638. package/dist/docs/demo-snippets/MenuBarNoActiveDemo.svelte.d.ts +0 -3
  639. package/dist/docs/demo-snippets/MenuBarTextFormattingDemo.svelte +0 -26
  640. package/dist/docs/demo-snippets/MenuBarTextFormattingDemo.svelte.d.ts +0 -3
  641. package/src/lib/docs/demo-snippets/MenuBarBasicDemo.svelte +0 -26
  642. package/src/lib/docs/demo-snippets/MenuBarNoActiveDemo.svelte +0 -26
  643. package/src/lib/docs/demo-snippets/MenuBarTextFormattingDemo.svelte +0 -26
  644. package/src/routes/colors/+page.md +0 -339
  645. package/src/routes/components/menu-bar/+page.md +0 -87
  646. 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.0",
2
+ "version": "0.12.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",
@@ -3981,9 +4094,10 @@
3981
4094
  },
3982
4095
  "colors": [
3983
4096
  "bg-kumo-base",
4097
+ "fill-kumo-arrow-edge",
4098
+ "fill-kumo-arrow-stroke",
3984
4099
  "fill-kumo-base",
3985
- "fill-kumo-tip-shadow",
3986
- "fill-kumo-tip-stroke",
4100
+ "ring-kumo-line",
3987
4101
  "text-kumo-default",
3988
4102
  "text-kumo-subtle"
3989
4103
  ]
@@ -4529,10 +4643,14 @@
4529
4643
  },
4530
4644
  "colors": [
4531
4645
  "bg-kumo-base",
4646
+ "bg-kumo-elevated",
4647
+ "bg-kumo-hairline",
4532
4648
  "bg-kumo-tint",
4649
+ "border-kumo-line",
4533
4650
  "ring-kumo-brand",
4534
4651
  "ring-kumo-danger",
4535
4652
  "ring-kumo-focus",
4653
+ "ring-kumo-hairline",
4536
4654
  "ring-kumo-line",
4537
4655
  "text-kumo-default",
4538
4656
  "text-kumo-placeholder",
@@ -4816,6 +4934,11 @@
4816
4934
  "optional": true,
4817
4935
  "description": "Tooltip label shown when the sidebar is collapsed."
4818
4936
  },
4937
+ "itemId": {
4938
+ "type": "string",
4939
+ "optional": true,
4940
+ "description": "Anchor id used by useSidebar().scrollToItem()."
4941
+ },
4819
4942
  "children": {
4820
4943
  "type": "Snippet",
4821
4944
  "optional": true,
@@ -4828,6 +4951,26 @@
4828
4951
  }
4829
4952
  }
4830
4953
  },
4954
+ "MenuItem": {
4955
+ "description": "Sidebar.MenuItem",
4956
+ "props": {
4957
+ "itemId": {
4958
+ "type": "string",
4959
+ "optional": true,
4960
+ "description": "Anchor id used by useSidebar().scrollToItem()."
4961
+ },
4962
+ "children": {
4963
+ "type": "Snippet",
4964
+ "optional": true,
4965
+ "description": "Menu item content."
4966
+ },
4967
+ "class": {
4968
+ "type": "string",
4969
+ "optional": true,
4970
+ "description": "Additional classes."
4971
+ }
4972
+ }
4973
+ },
4831
4974
  "MenuSubButton": {
4832
4975
  "description": "Sidebar.MenuSubButton",
4833
4976
  "props": {
@@ -5740,7 +5883,6 @@
5740
5883
  "colors": [
5741
5884
  "bg-kumo-base",
5742
5885
  "bg-kumo-brand",
5743
- "bg-kumo-elevated",
5744
5886
  "bg-kumo-recessed",
5745
5887
  "bg-kumo-tint",
5746
5888
  "border-kumo-hairline",
@@ -5764,6 +5906,7 @@
5764
5906
  "type": "enum",
5765
5907
  "optional": true,
5766
5908
  "values": [
5909
+ "heading",
5767
5910
  "heading1",
5768
5911
  "heading2",
5769
5912
  "heading3",
@@ -5775,7 +5918,7 @@
5775
5918
  "error"
5776
5919
  ],
5777
5920
  "default": "body",
5778
- "description": "Visual variant."
5921
+ "description": "Visual variant. Numbered heading variants are deprecated; use heading with size and as."
5779
5922
  },
5780
5923
  "size": {
5781
5924
  "type": "enum",
@@ -5787,7 +5930,7 @@
5787
5930
  "lg"
5788
5931
  ],
5789
5932
  "default": "base",
5790
- "description": "Size preset."
5933
+ "description": "Size preset. Heading accepts lg for a 20px heading; its default is 16px."
5791
5934
  },
5792
5935
  "bold": {
5793
5936
  "type": "boolean",
@@ -6030,7 +6173,7 @@
6030
6173
  "lg"
6031
6174
  ],
6032
6175
  "default": "base",
6033
- "description": "Locks every toolbar item to this size."
6176
+ "description": "Deprecated. Sets every toolbar item to this size; omit it for the base size."
6034
6177
  },
6035
6178
  "class": {
6036
6179
  "type": "string",
@@ -6199,9 +6342,9 @@
6199
6342
  },
6200
6343
  "colors": [
6201
6344
  "bg-kumo-base",
6345
+ "fill-kumo-arrow-edge",
6346
+ "fill-kumo-arrow-stroke",
6202
6347
  "fill-kumo-base",
6203
- "fill-kumo-tip-shadow",
6204
- "fill-kumo-tip-stroke",
6205
6348
  "text-kumo-default"
6206
6349
  ]
6207
6350
  }
@@ -1,6 +1,6 @@
1
1
  # Kumo Svelte Component Registry
2
2
 
3
- Version: 0.9.0
3
+ Version: 0.12.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;
@@ -2,6 +2,7 @@
2
2
  import type { Snippet } from 'svelte';
3
3
  import { getAutocompleteContext } from './context';
4
4
  import { cn } from '../../utils/cn';
5
+ import { Combobox as ComboboxPrimitive } from 'bits-ui';
5
6
 
6
7
  type AutocompleteContentAlign = 'start' | 'center' | 'end';
7
8
  type AutocompleteContentSide = 'top' | 'right' | 'bottom' | 'left';
@@ -30,49 +31,28 @@
30
31
  }: Props = $props();
31
32
  const context = getAutocompleteContext('Autocomplete.Content');
32
33
 
33
- const horizontalAlignClasses: Record<AutocompleteContentAlign, string> = {
34
- start: 'left-[var(--autocomplete-align-offset)]',
35
- center: 'left-1/2 -translate-x-1/2',
36
- end: 'right-[var(--autocomplete-align-offset)]'
37
- };
38
-
39
- const verticalAlignClasses: Record<AutocompleteContentAlign, string> = {
40
- start: 'top-[var(--autocomplete-align-offset)]',
41
- center: 'top-1/2 -translate-y-1/2',
42
- end: 'bottom-[var(--autocomplete-align-offset)]'
43
- };
44
-
45
- const sideClasses: Record<AutocompleteContentSide, string> = {
46
- top: 'bottom-full mb-[var(--autocomplete-side-offset)]',
47
- right: 'left-full ml-[var(--autocomplete-side-offset)]',
48
- bottom: 'top-full mt-[var(--autocomplete-side-offset)]',
49
- left: 'right-full mr-[var(--autocomplete-side-offset)]'
50
- };
51
-
52
- function toCssUnit(value: Offset) {
53
- return typeof value === 'number' ? `${value}px` : value;
34
+ function toNumberOffset(val: Offset): number {
35
+ if (typeof val === 'number') return val;
36
+ const parsed = parseFloat(val);
37
+ return isNaN(parsed) ? 0 : parsed;
54
38
  }
55
-
56
- const positionStyle = $derived(
57
- `--autocomplete-align-offset: ${toCssUnit(alignOffset)}; --autocomplete-side-offset: ${toCssUnit(sideOffset)};${style ? ` ${style}` : ''}`
58
- );
59
- const positionClass = $derived.by(() =>
60
- side === 'top' || side === 'bottom'
61
- ? cn(sideClasses[side], horizontalAlignClasses[align])
62
- : cn(sideClasses[side], verticalAlignClasses[align])
63
- );
64
39
  </script>
65
40
 
66
41
  {#if context.open && context.hasTypedSinceFocus && context.filteredItems.length}
67
- <div
68
- class={cn(
69
- 'absolute z-50 flex max-h-[min(24rem,calc(100vh-8rem))] min-w-full flex-col overflow-hidden rounded-lg bg-kumo-control py-1.5 text-kumo-default shadow-lg ring ring-kumo-line',
70
- positionClass,
71
- className
72
- )}
73
- style={positionStyle}
74
- {...rest}
75
- >
76
- {@render children?.()}
77
- </div>
42
+ <ComboboxPrimitive.Portal>
43
+ <ComboboxPrimitive.Content
44
+ class={cn(
45
+ 'z-50 flex max-h-[min(24rem,calc(100vh-8rem))] min-w-[calc(var(--bits-select-anchor-width)+3px)] flex-col overflow-hidden rounded-lg bg-kumo-control py-1.5 text-kumo-default shadow-lg ring ring-kumo-line outline-none',
46
+ className
47
+ )}
48
+ side={side}
49
+ sideOffset={toNumberOffset(sideOffset)}
50
+ align={align}
51
+ alignOffset={toNumberOffset(alignOffset)}
52
+ style={style}
53
+ {...rest}
54
+ >
55
+ {@render children?.()}
56
+ </ComboboxPrimitive.Content>
57
+ </ComboboxPrimitive.Portal>
78
58
  {/if}
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { Autocomplete } from './index';
3
+
4
+ interface Props {
5
+ items?: { label: string; value: string }[];
6
+ value?: string;
7
+ error?: string;
8
+ onValueChange?: (value: unknown) => void;
9
+ }
10
+
11
+ let {
12
+ items = [],
13
+ value = $bindable(''),
14
+ error,
15
+ onValueChange
16
+ }: Props = $props();
17
+ </script>
18
+
19
+ <Autocomplete bind:value {items} {error} {onValueChange} class="w-[220px]">
20
+ <Autocomplete.InputGroup placeholder="Search countries…" />
21
+ <Autocomplete.Content>
22
+ <Autocomplete.List>
23
+ {#snippet children(item)}
24
+ <Autocomplete.Item value={item}>{item.label}</Autocomplete.Item>
25
+ {/snippet}
26
+ </Autocomplete.List>
27
+ </Autocomplete.Content>
28
+ </Autocomplete>
@@ -0,0 +1,12 @@
1
+ interface Props {
2
+ items?: {
3
+ label: string;
4
+ value: string;
5
+ }[];
6
+ value?: string;
7
+ error?: string;
8
+ onValueChange?: (value: unknown) => void;
9
+ }
10
+ declare const AutocompleteFixture: import("svelte").Component<Props, {}, "value">;
11
+ type AutocompleteFixture = ReturnType<typeof AutocompleteFixture>;
12
+ export default AutocompleteFixture;
@@ -1,6 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { getAutocompleteContext, type AutocompleteSize } from './context';
3
3
  import { cn } from '../../utils/cn';
4
+ import { Combobox as ComboboxPrimitive } from 'bits-ui';
4
5
 
5
6
  export interface Props {
6
7
  class?: string;
@@ -28,17 +29,16 @@
28
29
  }
29
30
  </script>
30
31
 
31
- <input
32
+ <ComboboxPrimitive.Input
32
33
  class={cn(
33
34
  'w-full border-0 bg-kumo-control text-kumo-default shadow-xs ring ring-kumo-line outline-none focus:outline-none',
34
35
  'placeholder:text-kumo-placeholder disabled:text-kumo-disabled',
35
36
  context.invalid
36
- ? '!ring-kumo-danger focus:ring-kumo-danger/50 focus:ring-[1.5px]'
37
+ ? 'ring-kumo-danger! focus:ring-kumo-danger/50 focus:ring-[1.5px]'
37
38
  : 'focus:ring-kumo-focus/50 focus:ring-[1.5px]',
38
39
  sizes[size ?? context.size],
39
40
  className
40
41
  )}
41
- value={context.query}
42
42
  {placeholder}
43
43
  aria-invalid={context.invalid || undefined}
44
44
  onbeforeinput={(event) => {