@cloudflare/kumo 1.19.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/CHANGELOG.md +248 -0
  2. package/ai/component-registry.json +764 -131
  3. package/ai/component-registry.md +1161 -163
  4. package/ai/schemas.ts +42 -14
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +153 -21
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/ai/schemas.js +1994 -1956
  9. package/dist/ai/schemas.js.map +1 -1
  10. package/dist/blocks-source/resource-list/resource-list.tsx +1 -1
  11. package/dist/chunks/Legend-ibjxhfm9pn2vrb6f.js +430 -0
  12. package/dist/chunks/Legend-ibjxhfm9pn2vrb6f.js.map +1 -0
  13. package/dist/chunks/autocomplete-48aq0d244bs2e8zv.js +174 -0
  14. package/dist/chunks/autocomplete-48aq0d244bs2e8zv.js.map +1 -0
  15. package/dist/chunks/{breadcrumbs-ge20hcb3o5spswrk.js → breadcrumbs-cxcwf2l1ki3ffg5d.js} +2 -2
  16. package/dist/chunks/{breadcrumbs-ge20hcb3o5spswrk.js.map → breadcrumbs-cxcwf2l1ki3ffg5d.js.map} +1 -1
  17. package/dist/chunks/{button-oaqi7ykdisyskoos.js → button-6by9ntsa3nj553mq.js} +23 -24
  18. package/dist/chunks/button-6by9ntsa3nj553mq.js.map +1 -0
  19. package/dist/chunks/checkbox-hvxfvhtx1qjo2mww.js +210 -0
  20. package/dist/chunks/checkbox-hvxfvhtx1qjo2mww.js.map +1 -0
  21. package/dist/chunks/{clipboard-text-dxczqon3d27xp6f0.js → clipboard-text-hswydzx3iql369sd.js} +45 -41
  22. package/dist/chunks/{clipboard-text-dxczqon3d27xp6f0.js.map → clipboard-text-hswydzx3iql369sd.js.map} +1 -1
  23. package/dist/chunks/{code-cz0w1y5z4h29a9eg.js → code-f9v1ikwhekqw274q.js} +4 -4
  24. package/dist/chunks/{code-cz0w1y5z4h29a9eg.js.map → code-f9v1ikwhekqw274q.js.map} +1 -1
  25. package/dist/chunks/collapsible-k8urhi16pg90jvxa.js +71 -0
  26. package/dist/chunks/collapsible-k8urhi16pg90jvxa.js.map +1 -0
  27. package/dist/chunks/{combobox-eaowwt1xr4d23gsn.js → combobox-fq36ye0hstote16x.js} +90 -78
  28. package/dist/chunks/combobox-fq36ye0hstote16x.js.map +1 -0
  29. package/dist/chunks/{command-palette-maqtbmpfev9mysqd.js → command-palette-md65owxt5hv4rt9r.js} +68 -68
  30. package/dist/chunks/command-palette-md65owxt5hv4rt9r.js.map +1 -0
  31. package/dist/chunks/{date-range-picker-j318zxjyqz4o3dak.js → date-range-picker-o8uyril1kogvhoei.js} +11 -11
  32. package/dist/chunks/{date-range-picker-j318zxjyqz4o3dak.js.map → date-range-picker-o8uyril1kogvhoei.js.map} +1 -1
  33. package/dist/chunks/{dialog-e3m5bhs7fds26p9y.js → dialog-k3f1fbam6nt96k8x.js} +3 -3
  34. package/dist/chunks/{dialog-e3m5bhs7fds26p9y.js.map → dialog-k3f1fbam6nt96k8x.js.map} +1 -1
  35. package/dist/chunks/{dropdown-ewte287db3vyt8t5.js → dropdown-zbax0zowy6m9zhmt.js} +87 -87
  36. package/dist/chunks/dropdown-zbax0zowy6m9zhmt.js.map +1 -0
  37. package/dist/chunks/{empty-dr1eckm2z40euns6.js → empty-b82oer7npkhtkx7k.js} +14 -14
  38. package/dist/chunks/{empty-dr1eckm2z40euns6.js.map → empty-b82oer7npkhtkx7k.js.map} +1 -1
  39. package/dist/chunks/{field-bo5gmna16odrrb1q.js → field-c0wf94plit2gci59.js} +7 -7
  40. package/dist/chunks/{field-bo5gmna16odrrb1q.js.map → field-c0wf94plit2gci59.js.map} +1 -1
  41. package/dist/chunks/{input-area-jkkkjej6luumrqpa.js → input-area-bkyzu6f7gsck479h.js} +4 -4
  42. package/dist/chunks/{input-area-jkkkjej6luumrqpa.js.map → input-area-bkyzu6f7gsck479h.js.map} +1 -1
  43. package/dist/chunks/input-group-bidweffa0zyg8gt0.js +505 -0
  44. package/dist/chunks/input-group-bidweffa0zyg8gt0.js.map +1 -0
  45. package/dist/chunks/{input-cw05pbqdburghkus.js → input-ncfowphv81yq7fyy.js} +44 -44
  46. package/dist/chunks/input-ncfowphv81yq7fyy.js.map +1 -0
  47. package/dist/chunks/{label-cvyvbqmt4mt757ff.js → label-c3h9i3y4wiccelt7.js} +22 -22
  48. package/dist/chunks/{label-cvyvbqmt4mt757ff.js.map → label-c3h9i3y4wiccelt7.js.map} +1 -1
  49. package/dist/chunks/{layer-card-ljqth3yxgnk04v2o.js → layer-card-ikm31xemd70w3lru.js} +5 -5
  50. package/dist/chunks/{layer-card-ljqth3yxgnk04v2o.js.map → layer-card-ikm31xemd70w3lru.js.map} +1 -1
  51. package/dist/chunks/{link-fjnhtxvfe5ieamjf.js → link-kt74pxkud4olmcer.js} +4 -4
  52. package/dist/chunks/{link-fjnhtxvfe5ieamjf.js.map → link-kt74pxkud4olmcer.js.map} +1 -1
  53. package/dist/chunks/menubar-hwev159bm4rw9ixk.js +96 -0
  54. package/dist/chunks/menubar-hwev159bm4rw9ixk.js.map +1 -0
  55. package/dist/chunks/{meter-duj3micor1lqj3y2.js → meter-n34a7yb8c3rim26i.js} +3 -3
  56. package/dist/chunks/{meter-duj3micor1lqj3y2.js.map → meter-n34a7yb8c3rim26i.js.map} +1 -1
  57. package/dist/chunks/{pagination-olaypvwr8swsmn8m.js → pagination-jb3mncivbwsoi1se.js} +56 -56
  58. package/dist/chunks/pagination-jb3mncivbwsoi1se.js.map +1 -0
  59. package/dist/chunks/{popover-nv9cmzbo7mf6bky0.js → popover-iayd9ya5yhujz6ve.js} +5 -5
  60. package/dist/chunks/{popover-nv9cmzbo7mf6bky0.js.map → popover-iayd9ya5yhujz6ve.js.map} +1 -1
  61. package/dist/chunks/{radio-ihxbe37us2jnqtzf.js → radio-datzh3pilz8ojak1.js} +86 -74
  62. package/dist/chunks/radio-datzh3pilz8ojak1.js.map +1 -0
  63. package/dist/chunks/{select-nx6ded5swra74iar.js → select-g261chvosodu22i8.js} +64 -62
  64. package/dist/chunks/select-g261chvosodu22i8.js.map +1 -0
  65. package/dist/chunks/{sensitive-input-00fujb510rrn61v9.js → sensitive-input-cijagk551mesdtk4.js} +42 -42
  66. package/dist/chunks/sensitive-input-cijagk551mesdtk4.js.map +1 -0
  67. package/dist/chunks/{sidebar-ltbfius1eolkl8tb.js → sidebar-kb9kykqfgy5yzqwr.js} +132 -129
  68. package/dist/chunks/sidebar-kb9kykqfgy5yzqwr.js.map +1 -0
  69. package/dist/chunks/{surface-dfgurg5eu3et4vw1.js → surface-k0e8mq1x00b7i8r6.js} +2 -2
  70. package/dist/chunks/{surface-dfgurg5eu3et4vw1.js.map → surface-k0e8mq1x00b7i8r6.js.map} +1 -1
  71. package/dist/chunks/{switch-fbv3iawqo3o3jgap.js → switch-jdfsr3j3oa1qxegw.js} +86 -78
  72. package/dist/chunks/switch-jdfsr3j3oa1qxegw.js.map +1 -0
  73. package/dist/chunks/{table-olwwulga2l3hdwlx.js → table-iudje0lva0z68jto.js} +89 -71
  74. package/dist/chunks/table-iudje0lva0z68jto.js.map +1 -0
  75. package/dist/chunks/table-of-contents-fzyv7uhnnyr13dqu.js +102 -0
  76. package/dist/chunks/table-of-contents-fzyv7uhnnyr13dqu.js.map +1 -0
  77. package/dist/chunks/{tabs-lohcglgppp6gj0hp.js → tabs-mkhf1uemgr3ij0ps.js} +20 -20
  78. package/dist/chunks/{tabs-lohcglgppp6gj0hp.js.map → tabs-mkhf1uemgr3ij0ps.js.map} +1 -1
  79. package/dist/chunks/{text-nmyi1rkwdj37f30f.js → text-f7t467waymhb30sx.js} +8 -8
  80. package/dist/chunks/text-f7t467waymhb30sx.js.map +1 -0
  81. package/dist/chunks/{toast-dg52x89yd231mxhe.js → toast-h573o0tc7tefivk2.js} +11 -11
  82. package/dist/chunks/toast-h573o0tc7tefivk2.js.map +1 -0
  83. package/dist/chunks/{tooltip-hikjvdbg3xghnq1x.js → tooltip-odudhkxe282wxinq.js} +5 -5
  84. package/dist/chunks/{tooltip-hikjvdbg3xghnq1x.js.map → tooltip-odudhkxe282wxinq.js.map} +1 -1
  85. package/dist/chunks/vendor-base-ui-ie71jahf0czyf58j.js +24638 -0
  86. package/dist/chunks/vendor-base-ui-ie71jahf0czyf58j.js.map +1 -0
  87. package/dist/chunks/vendor-floating-ui-dwag5e88viikh2zs.js +1311 -0
  88. package/dist/chunks/vendor-floating-ui-dwag5e88viikh2zs.js.map +1 -0
  89. package/dist/chunks/vendor-utils-ixnhxmehwihk5tr7.js +534 -0
  90. package/dist/chunks/vendor-utils-ixnhxmehwihk5tr7.js.map +1 -0
  91. package/dist/code.js +31 -31
  92. package/dist/code.js.map +1 -1
  93. package/dist/components/autocomplete.js +9 -0
  94. package/dist/components/autocomplete.js.map +1 -0
  95. package/dist/components/breadcrumbs.js +1 -1
  96. package/dist/components/button.js +1 -1
  97. package/dist/components/chart.js +1 -1
  98. package/dist/components/checkbox.js +1 -1
  99. package/dist/components/clipboard-text.js +1 -1
  100. package/dist/components/code.js +1 -1
  101. package/dist/components/collapsible.js +1 -1
  102. package/dist/components/combobox.js +1 -1
  103. package/dist/components/command-palette.js +1 -1
  104. package/dist/components/date-range-picker.js +1 -1
  105. package/dist/components/dialog.js +1 -1
  106. package/dist/components/dropdown.js +1 -1
  107. package/dist/components/empty.js +1 -1
  108. package/dist/components/field.js +1 -1
  109. package/dist/components/input-group.js +8 -0
  110. package/dist/components/input-group.js.map +1 -0
  111. package/dist/components/input.js +9 -7
  112. package/dist/components/label.js +1 -1
  113. package/dist/components/layer-card.js +1 -1
  114. package/dist/components/link.js +1 -1
  115. package/dist/components/menubar.js +1 -1
  116. package/dist/components/meter.js +1 -1
  117. package/dist/components/pagination.js +1 -1
  118. package/dist/components/popover.js +1 -1
  119. package/dist/components/radio.js +1 -1
  120. package/dist/components/select.js +1 -1
  121. package/dist/components/sensitive-input.js +1 -1
  122. package/dist/components/sidebar.js +1 -1
  123. package/dist/components/surface.js +1 -1
  124. package/dist/components/switch.js +1 -1
  125. package/dist/components/table-of-contents.js +1 -1
  126. package/dist/components/table.js +1 -1
  127. package/dist/components/tabs.js +1 -1
  128. package/dist/components/text.js +1 -1
  129. package/dist/components/toast.js +2 -2
  130. package/dist/components/tooltip.js +1 -1
  131. package/dist/index.js +149 -144
  132. package/dist/index.js.map +1 -1
  133. package/dist/primitives/accordion.js +1 -1
  134. package/dist/primitives/alert-dialog.js +1 -1
  135. package/dist/primitives/autocomplete.js +1 -1
  136. package/dist/primitives/avatar.js +1 -1
  137. package/dist/primitives/button.js +1 -1
  138. package/dist/primitives/checkbox-group.js +1 -1
  139. package/dist/primitives/checkbox.js +1 -1
  140. package/dist/primitives/collapsible.js +1 -1
  141. package/dist/primitives/combobox.js +1 -1
  142. package/dist/primitives/context-menu.js +1 -1
  143. package/dist/primitives/csp-provider.js +1 -1
  144. package/dist/primitives/dialog.js +1 -1
  145. package/dist/primitives/direction-provider.js +1 -1
  146. package/dist/primitives/drawer.js +2 -2
  147. package/dist/primitives/field.js +1 -1
  148. package/dist/primitives/fieldset.js +1 -1
  149. package/dist/primitives/form.js +1 -1
  150. package/dist/primitives/input.js +1 -1
  151. package/dist/primitives/menu.js +1 -1
  152. package/dist/primitives/menubar.js +1 -1
  153. package/dist/primitives/meter.js +1 -1
  154. package/dist/primitives/navigation-menu.js +1 -1
  155. package/dist/primitives/number-field.js +1 -1
  156. package/dist/primitives/otp-field.js +6 -0
  157. package/dist/primitives/otp-field.js.map +1 -0
  158. package/dist/primitives/popover.js +1 -1
  159. package/dist/primitives/preview-card.js +2 -2
  160. package/dist/primitives/progress.js +1 -1
  161. package/dist/primitives/radio-group.js +1 -1
  162. package/dist/primitives/radio.js +1 -1
  163. package/dist/primitives/scroll-area.js +1 -1
  164. package/dist/primitives/select.js +1 -1
  165. package/dist/primitives/separator.js +1 -1
  166. package/dist/primitives/slider.js +1 -1
  167. package/dist/primitives/switch.js +1 -1
  168. package/dist/primitives/tabs.js +1 -1
  169. package/dist/primitives/toast.js +1 -1
  170. package/dist/primitives/toggle-group.js +1 -1
  171. package/dist/primitives/toggle.js +1 -1
  172. package/dist/primitives/toolbar.js +1 -1
  173. package/dist/primitives/tooltip.js +1 -1
  174. package/dist/primitives.js +22 -21
  175. package/dist/scripts/theme-generator/config.d.ts.map +1 -1
  176. package/dist/scripts/theme-generator/config.js +21 -4
  177. package/dist/scripts/theme-generator/config.js.map +1 -1
  178. package/dist/src/components/autocomplete/autocomplete.d.ts +180 -0
  179. package/dist/src/components/autocomplete/autocomplete.d.ts.map +1 -0
  180. package/dist/src/components/autocomplete/index.d.ts +2 -0
  181. package/dist/src/components/autocomplete/index.d.ts.map +1 -0
  182. package/dist/src/components/button/button.d.ts +3 -3
  183. package/dist/src/components/button/button.d.ts.map +1 -1
  184. package/dist/src/components/chart/Color.d.ts +36 -52
  185. package/dist/src/components/chart/Color.d.ts.map +1 -1
  186. package/dist/src/components/checkbox/checkbox.d.ts +37 -14
  187. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  188. package/dist/src/components/checkbox/index.d.ts +1 -1
  189. package/dist/src/components/checkbox/index.d.ts.map +1 -1
  190. package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
  191. package/dist/src/components/code/code.d.ts +2 -2
  192. package/dist/src/components/collapsible/collapsible.d.ts +77 -40
  193. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
  194. package/dist/src/components/collapsible/index.d.ts +1 -1
  195. package/dist/src/components/collapsible/index.d.ts.map +1 -1
  196. package/dist/src/components/combobox/combobox.d.ts +3 -1
  197. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  198. package/dist/src/components/command-palette/command-palette.d.ts +2 -11
  199. package/dist/src/components/command-palette/command-palette.d.ts.map +1 -1
  200. package/dist/src/components/command-palette/index.d.ts +1 -1
  201. package/dist/src/components/command-palette/index.d.ts.map +1 -1
  202. package/dist/src/components/command-palette/types.d.ts +13 -1
  203. package/dist/src/components/command-palette/types.d.ts.map +1 -1
  204. package/dist/src/components/input/index.d.ts +16 -1
  205. package/dist/src/components/input/index.d.ts.map +1 -1
  206. package/dist/src/components/input/input.d.ts +2 -2
  207. package/dist/src/components/input/input.d.ts.map +1 -1
  208. package/dist/src/components/input-group/context.d.ts +96 -0
  209. package/dist/src/components/input-group/context.d.ts.map +1 -0
  210. package/dist/src/components/input-group/index.d.ts +2 -0
  211. package/dist/src/components/input-group/index.d.ts.map +1 -0
  212. package/dist/src/components/input-group/input-group-addon.d.ts +15 -0
  213. package/dist/src/components/input-group/input-group-addon.d.ts.map +1 -0
  214. package/dist/src/components/input-group/input-group-button.d.ts +36 -0
  215. package/dist/src/components/input-group/input-group-button.d.ts.map +1 -0
  216. package/dist/src/components/input-group/input-group-input.d.ts +9 -0
  217. package/dist/src/components/input-group/input-group-input.d.ts.map +1 -0
  218. package/dist/src/components/input-group/input-group-suffix.d.ts +13 -0
  219. package/dist/src/components/input-group/input-group-suffix.d.ts.map +1 -0
  220. package/dist/src/components/input-group/input-group.d.ts +43 -0
  221. package/dist/src/components/input-group/input-group.d.ts.map +1 -0
  222. package/dist/src/components/menubar/menubar.d.ts.map +1 -1
  223. package/dist/src/components/radio/index.d.ts +1 -1
  224. package/dist/src/components/radio/index.d.ts.map +1 -1
  225. package/dist/src/components/radio/radio.d.ts +43 -7
  226. package/dist/src/components/radio/radio.d.ts.map +1 -1
  227. package/dist/src/components/select/select.d.ts +3 -3
  228. package/dist/src/components/select/select.d.ts.map +1 -1
  229. package/dist/src/components/sensitive-input/sensitive-input.d.ts +2 -2
  230. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -1
  231. package/dist/src/components/switch/index.d.ts +1 -1
  232. package/dist/src/components/switch/index.d.ts.map +1 -1
  233. package/dist/src/components/switch/switch.d.ts +31 -3
  234. package/dist/src/components/switch/switch.d.ts.map +1 -1
  235. package/dist/src/components/table/table.d.ts +17 -2
  236. package/dist/src/components/table/table.d.ts.map +1 -1
  237. package/dist/src/components/table-of-contents/table-of-contents.d.ts +9 -7
  238. package/dist/src/components/table-of-contents/table-of-contents.d.ts.map +1 -1
  239. package/dist/src/components/text/text.d.ts +34 -6
  240. package/dist/src/components/text/text.d.ts.map +1 -1
  241. package/dist/src/components/text/text.type-spec.d.ts +44 -0
  242. package/dist/src/components/text/text.type-spec.d.ts.map +1 -0
  243. package/dist/src/components/toast/toast.d.ts +2 -2
  244. package/dist/src/components/toast/toast.d.ts.map +1 -1
  245. package/dist/src/index.d.ts +8 -6
  246. package/dist/src/index.d.ts.map +1 -1
  247. package/dist/src/primitives/index.d.ts +1 -0
  248. package/dist/src/primitives/index.d.ts.map +1 -1
  249. package/dist/src/primitives/otp-field.d.ts +13 -0
  250. package/dist/src/primitives/otp-field.d.ts.map +1 -0
  251. package/dist/styles/kumo-binding.css +18 -0
  252. package/dist/styles/kumo-standalone.css +1 -1
  253. package/dist/styles/kumo.css +2 -2
  254. package/dist/styles/theme-kumo.css +15 -8
  255. package/package.json +14 -2
  256. package/scripts/component-registry/discovery.ts +1 -0
  257. package/scripts/component-registry/index.test.ts +265 -0
  258. package/scripts/component-registry/index.ts +14 -0
  259. package/scripts/component-registry/metadata.ts +56 -8
  260. package/scripts/component-registry/sub-components.ts +81 -50
  261. package/scripts/component-registry/types.ts +2 -0
  262. package/scripts/theme-generator/config.ts +19 -9
  263. package/dist/chunks/Legend-ks7se6149vsa3tze.js +0 -430
  264. package/dist/chunks/Legend-ks7se6149vsa3tze.js.map +0 -1
  265. package/dist/chunks/button-oaqi7ykdisyskoos.js.map +0 -1
  266. package/dist/chunks/checkbox-mwgmohffm22ut13s.js +0 -211
  267. package/dist/chunks/checkbox-mwgmohffm22ut13s.js.map +0 -1
  268. package/dist/chunks/collapsible-jhzee3ks51d3xowb.js +0 -58
  269. package/dist/chunks/collapsible-jhzee3ks51d3xowb.js.map +0 -1
  270. package/dist/chunks/combobox-eaowwt1xr4d23gsn.js.map +0 -1
  271. package/dist/chunks/command-palette-maqtbmpfev9mysqd.js.map +0 -1
  272. package/dist/chunks/dropdown-ewte287db3vyt8t5.js.map +0 -1
  273. package/dist/chunks/input-cw05pbqdburghkus.js.map +0 -1
  274. package/dist/chunks/input-group-lfugneuz71g42n0w.js +0 -111
  275. package/dist/chunks/input-group-lfugneuz71g42n0w.js.map +0 -1
  276. package/dist/chunks/menubar-e5e4zwfagr0wx023.js +0 -96
  277. package/dist/chunks/menubar-e5e4zwfagr0wx023.js.map +0 -1
  278. package/dist/chunks/pagination-olaypvwr8swsmn8m.js.map +0 -1
  279. package/dist/chunks/radio-ihxbe37us2jnqtzf.js.map +0 -1
  280. package/dist/chunks/select-nx6ded5swra74iar.js.map +0 -1
  281. package/dist/chunks/sensitive-input-00fujb510rrn61v9.js.map +0 -1
  282. package/dist/chunks/sidebar-ltbfius1eolkl8tb.js.map +0 -1
  283. package/dist/chunks/switch-fbv3iawqo3o3jgap.js.map +0 -1
  284. package/dist/chunks/table-of-contents-f813ivi7ta23vqdm.js +0 -88
  285. package/dist/chunks/table-of-contents-f813ivi7ta23vqdm.js.map +0 -1
  286. package/dist/chunks/table-olwwulga2l3hdwlx.js.map +0 -1
  287. package/dist/chunks/text-nmyi1rkwdj37f30f.js.map +0 -1
  288. package/dist/chunks/toast-dg52x89yd231mxhe.js.map +0 -1
  289. package/dist/chunks/vendor-base-ui-m5pz3e8c4grg5qmj.js +0 -22813
  290. package/dist/chunks/vendor-base-ui-m5pz3e8c4grg5qmj.js.map +0 -1
  291. package/dist/chunks/vendor-floating-ui-gr9m6tsa1cpqwn99.js +0 -1286
  292. package/dist/chunks/vendor-floating-ui-gr9m6tsa1cpqwn99.js.map +0 -1
  293. package/dist/chunks/vendor-utils-fxk97j6xi1g42z2v.js +0 -740
  294. package/dist/chunks/vendor-utils-fxk97j6xi1g42z2v.js.map +0 -1
  295. package/dist/src/components/input/input-group.d.ts +0 -39
  296. package/dist/src/components/input/input-group.d.ts.map +0 -1
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { jsx as o, jsxs as f } from "react/jsx-runtime";
3
+ import { CaretDownIcon as g } from "@phosphor-icons/react";
4
+ import { forwardRef as r } from "react";
5
+ import { c as t } from "./cn-ct4n7r74mh8y0f48.js";
6
+ import { aO as u, aP as i, aQ as n } from "./vendor-base-ui-ie71jahf0czyf58j.js";
7
+ function s({ className: e, ...l }) {
8
+ return /* @__PURE__ */ o(u, { className: e, ...l });
9
+ }
10
+ s.displayName = "Collapsible.Root";
11
+ const p = r(
12
+ ({ className: e, ...l }, a) => /* @__PURE__ */ o(
13
+ n,
14
+ {
15
+ ref: a,
16
+ className: t("cursor-pointer", e),
17
+ ...l
18
+ }
19
+ )
20
+ );
21
+ p.displayName = "Collapsible.Trigger";
22
+ const m = r(
23
+ ({ className: e, ...l }, a) => /* @__PURE__ */ o(
24
+ i,
25
+ {
26
+ ref: a,
27
+ className: e,
28
+ ...l
29
+ }
30
+ )
31
+ );
32
+ m.displayName = "Collapsible.Panel";
33
+ const c = r(({ children: e, className: l }, a) => /* @__PURE__ */ f(
34
+ n,
35
+ {
36
+ ref: a,
37
+ className: t(
38
+ // Defensive resets to prevent global button styles from polluting the trigger
39
+ "bg-transparent border-none shadow-none p-0 m-0",
40
+ // Base styles for the trigger
41
+ "flex cursor-pointer items-center gap-1 text-sm text-kumo-link select-none",
42
+ l
43
+ ),
44
+ children: [
45
+ e,
46
+ " ",
47
+ /* @__PURE__ */ o(g, { className: "h-4 w-4 transition-transform [[data-panel-open]_&]:rotate-180" })
48
+ ]
49
+ }
50
+ ));
51
+ c.displayName = "Collapsible.DefaultTrigger";
52
+ const b = r(({ children: e, className: l }, a) => /* @__PURE__ */ o(
53
+ i,
54
+ {
55
+ ref: a,
56
+ className: t("my-2 space-y-4 border-l-2 border-kumo-fill pl-4", l),
57
+ children: e
58
+ }
59
+ ));
60
+ b.displayName = "Collapsible.DefaultPanel";
61
+ const D = Object.assign(s, {
62
+ Root: s,
63
+ Trigger: p,
64
+ Panel: m,
65
+ DefaultTrigger: c,
66
+ DefaultPanel: b
67
+ });
68
+ export {
69
+ D as C
70
+ };
71
+ //# sourceMappingURL=collapsible-k8urhi16pg90jvxa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible-k8urhi16pg90jvxa.js","sources":["../../src/components/collapsible/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsibleBase } from \"@base-ui/react/collapsible\";\nimport { CaretDownIcon } from \"@phosphor-icons/react\";\nimport {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n// =============================================================================\n// Variants\n// =============================================================================\n\nexport const KUMO_COLLAPSIBLE_VARIANTS = {} as const;\n\nexport const KUMO_COLLAPSIBLE_DEFAULT_VARIANTS = {} as const;\n\nexport interface KumoCollapsibleVariantsProps {}\n\nexport function collapsibleVariants(_props: KumoCollapsibleVariantsProps = {}) {\n return cn();\n}\n\n// =============================================================================\n// Collapsible Root\n// =============================================================================\n\ntype BaseRootProps = ComponentPropsWithoutRef<typeof CollapsibleBase.Root>;\n\nexport interface CollapsibleRootProps extends BaseRootProps {\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Root component that manages collapsible state.\n *\n * @example\n * ```tsx\n * <Collapsible.Root open={open} onOpenChange={setOpen}>\n * <Collapsible.Trigger>Toggle</Collapsible.Trigger>\n * <Collapsible.Panel>Content</Collapsible.Panel>\n * </Collapsible.Root>\n * ```\n */\nfunction CollapsibleRoot({ className, ...props }: CollapsibleRootProps) {\n return <CollapsibleBase.Root className={className} {...props} />;\n}\n\nCollapsibleRoot.displayName = \"Collapsible.Root\";\n\n// =============================================================================\n// Collapsible Trigger\n// =============================================================================\n\ntype BaseTriggerProps = ComponentPropsWithoutRef<\n typeof CollapsibleBase.Trigger\n>;\n\nexport interface CollapsibleTriggerProps extends BaseTriggerProps {\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Button that toggles the collapsible panel visibility.\n * Use the `render` prop to customize the trigger element.\n *\n * @example\n * ```tsx\n * // Default button\n * <Collapsible.Trigger>Show more</Collapsible.Trigger>\n *\n * // Custom trigger element\n * <Collapsible.Trigger render={<Button variant=\"ghost\" />}>\n * Toggle details\n * </Collapsible.Trigger>\n * ```\n */\nconst CollapsibleTrigger = forwardRef<HTMLButtonElement, CollapsibleTriggerProps>(\n ({ className, ...props }, ref) => {\n return (\n <CollapsibleBase.Trigger\n ref={ref}\n className={cn(\"cursor-pointer\", className)}\n {...props}\n />\n );\n },\n);\n\nCollapsibleTrigger.displayName = \"Collapsible.Trigger\";\n\n// =============================================================================\n// Collapsible Panel\n// =============================================================================\n\ntype BasePanelProps = ComponentPropsWithoutRef<typeof CollapsibleBase.Panel>;\n\nexport interface CollapsiblePanelProps extends BasePanelProps {\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Container for collapsible content. Renders when the collapsible is open.\n *\n * @example\n * ```tsx\n * <Collapsible.Panel className=\"mt-2 space-y-4\">\n * <Text>Revealed content here</Text>\n * </Collapsible.Panel>\n * ```\n */\nconst CollapsiblePanel = forwardRef<HTMLDivElement, CollapsiblePanelProps>(\n ({ className, ...props }, ref) => {\n return (\n <CollapsibleBase.Panel\n ref={ref}\n className={className}\n {...props}\n />\n );\n },\n);\n\nCollapsiblePanel.displayName = \"Collapsible.Panel\";\n\n// =============================================================================\n// Default Trigger (Migration Affordance)\n// =============================================================================\n\nexport interface CollapsibleDefaultTriggerProps {\n /** Label text displayed in the trigger */\n children: ReactNode;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Pre-styled trigger with text label and animated caret icon.\n * Provides the same visual style as the previous Collapsible API.\n *\n * Use this for quick migration or when you want the default Kumo style.\n *\n * @example\n * ```tsx\n * <Collapsible.Root>\n * <Collapsible.DefaultTrigger>Show details</Collapsible.DefaultTrigger>\n * <Collapsible.Panel>Content</Collapsible.Panel>\n * </Collapsible.Root>\n * ```\n */\nconst CollapsibleDefaultTrigger = forwardRef<\n HTMLButtonElement,\n CollapsibleDefaultTriggerProps\n>(({ children, className }, ref) => {\n return (\n <CollapsibleBase.Trigger\n ref={ref}\n className={cn(\n // Defensive resets to prevent global button styles from polluting the trigger\n \"bg-transparent border-none shadow-none p-0 m-0\",\n // Base styles for the trigger\n \"flex cursor-pointer items-center gap-1 text-sm text-kumo-link select-none\",\n className,\n )}\n >\n {children}{\" \"}\n <CaretDownIcon className=\"h-4 w-4 transition-transform [[data-panel-open]_&]:rotate-180\" />\n </CollapsibleBase.Trigger>\n );\n});\n\nCollapsibleDefaultTrigger.displayName = \"Collapsible.DefaultTrigger\";\n\n// =============================================================================\n// Default Panel (Migration Affordance)\n// =============================================================================\n\nexport interface CollapsibleDefaultPanelProps {\n /** Panel content */\n children: ReactNode;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Pre-styled panel with left border accent and standard spacing.\n * Provides the same visual style as the previous Collapsible API.\n *\n * @example\n * ```tsx\n * <Collapsible.Root>\n * <Collapsible.DefaultTrigger>Show details</Collapsible.DefaultTrigger>\n * <Collapsible.DefaultPanel>\n * <Text>Content with default styling</Text>\n * </Collapsible.DefaultPanel>\n * </Collapsible.Root>\n * ```\n */\nconst CollapsibleDefaultPanel = forwardRef<\n HTMLDivElement,\n CollapsibleDefaultPanelProps\n>(({ children, className }, ref) => {\n return (\n <CollapsibleBase.Panel\n ref={ref}\n className={cn(\"my-2 space-y-4 border-l-2 border-kumo-fill pl-4\", className)}\n >\n {children}\n </CollapsibleBase.Panel>\n );\n});\n\nCollapsibleDefaultPanel.displayName = \"Collapsible.DefaultPanel\";\n\n// =============================================================================\n// Compound Component Export\n// =============================================================================\n\n/**\n * Collapsible — a composable disclosure component for showing/hiding content.\n *\n * Built on Base UI's Collapsible with full composition support.\n *\n * ## Basic Usage\n *\n * ```tsx\n * const [open, setOpen] = useState(false);\n *\n * <Collapsible.Root open={open} onOpenChange={setOpen}>\n * <Collapsible.Trigger render={<Button variant=\"ghost\" />}>\n * Show details\n * </Collapsible.Trigger>\n * <Collapsible.Panel className=\"mt-2\">\n * <Text>Hidden content revealed when expanded.</Text>\n * </Collapsible.Panel>\n * </Collapsible.Root>\n * ```\n *\n * ## With Default Styling\n *\n * Use `DefaultTrigger` and `DefaultPanel` for the classic Kumo style:\n *\n * ```tsx\n * <Collapsible.Root>\n * <Collapsible.DefaultTrigger>Show details</Collapsible.DefaultTrigger>\n * <Collapsible.DefaultPanel>\n * <Text>Content with border-left accent</Text>\n * </Collapsible.DefaultPanel>\n * </Collapsible.Root>\n * ```\n *\n * ## Controlled Accordion Pattern\n *\n * ```tsx\n * const [activeIndex, setActiveIndex] = useState<number | null>(null);\n *\n * {items.map((item, i) => (\n * <Collapsible.Root\n * key={i}\n * open={activeIndex === i}\n * onOpenChange={(open) => setActiveIndex(open ? i : null)}\n * >\n * <Collapsible.DefaultTrigger>{item.title}</Collapsible.DefaultTrigger>\n * <Collapsible.DefaultPanel>{item.content}</Collapsible.DefaultPanel>\n * </Collapsible.Root>\n * ))}\n * ```\n */\nexport const Collapsible = Object.assign(CollapsibleRoot, {\n Root: CollapsibleRoot,\n Trigger: CollapsibleTrigger,\n Panel: CollapsiblePanel,\n DefaultTrigger: CollapsibleDefaultTrigger,\n DefaultPanel: CollapsibleDefaultPanel,\n});\n\n// =============================================================================\n// Type Exports\n// =============================================================================\n\nexport type CollapsibleProps = CollapsibleRootProps;\n"],"names":["CollapsibleRoot","className","props","CollapsibleBase.Root","CollapsibleTrigger","forwardRef","ref","jsx","CollapsibleBase.Trigger","cn","CollapsiblePanel","CollapsibleBase.Panel","CollapsibleDefaultTrigger","children","jsxs","CaretDownIcon","CollapsibleDefaultPanel","Collapsible"],"mappings":";;;;;;AA6CA,SAASA,EAAgB,EAAE,WAAAC,GAAW,GAAGC,KAA+B;AACtE,2BAAQC,GAAA,EAAqB,WAAAF,GAAuB,GAAGC,EAAA,CAAO;AAChE;AAEAF,EAAgB,cAAc;AA8B9B,MAAMI,IAAqBC;AAAA,EACzB,CAAC,EAAE,WAAAJ,GAAW,GAAGC,EAAA,GAASI,MAEtB,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,WAAWG,EAAG,kBAAkBR,CAAS;AAAA,MACxC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAIZ;AAEAE,EAAmB,cAAc;AAuBjC,MAAMM,IAAmBL;AAAA,EACvB,CAAC,EAAE,WAAAJ,GAAW,GAAGC,EAAA,GAASI,MAEtB,gBAAAC;AAAA,IAACI;AAAAA,IAAA;AAAA,MACC,KAAAL;AAAA,MACA,WAAAL;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAIZ;AAEAQ,EAAiB,cAAc;AA2B/B,MAAME,IAA4BP,EAGhC,CAAC,EAAE,UAAAQ,GAAU,WAAAZ,EAAA,GAAaK,MAExB,gBAAAQ;AAAA,EAACN;AAAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA;AAAA,MAET;AAAA;AAAA,MAEA;AAAA,MACAR;AAAA,IAAA;AAAA,IAGD,UAAA;AAAA,MAAAY;AAAA,MAAU;AAAA,MACX,gBAAAN,EAACQ,GAAA,EAAc,WAAU,gEAAA,CAAgE;AAAA,IAAA;AAAA,EAAA;AAAA,CAG9F;AAEDH,EAA0B,cAAc;AA2BxC,MAAMI,IAA0BX,EAG9B,CAAC,EAAE,UAAAQ,GAAU,WAAAZ,EAAA,GAAaK,MAExB,gBAAAC;AAAA,EAACI;AAAAA,EAAA;AAAA,IACC,KAAAL;AAAA,IACA,WAAWG,EAAG,mDAAmDR,CAAS;AAAA,IAEzE,UAAAY;AAAA,EAAA;AAAA,CAGN;AAEDG,EAAwB,cAAc;AAwD/B,MAAMC,IAAc,OAAO,OAAOjB,GAAiB;AAAA,EACxD,MAAMA;AAAA,EACN,SAASI;AAAA,EACT,OAAOM;AAAA,EACP,gBAAgBE;AAAA,EAChB,cAAcI;AAChB,CAAC;"}
@@ -1,43 +1,43 @@
1
1
  "use client";
2
2
  import { jsx as e, jsxs as m } from "react/jsx-runtime";
3
3
  import { CheckIcon as S, XIcon as h, CaretDownIcon as x } from "@phosphor-icons/react";
4
- import { createContext as T, useContext as u, Fragment as P } from "react";
5
- import { i as p, K as V } from "./input-cw05pbqdburghkus.js";
6
- import { c as i } from "./cn-ct4n7r74mh8y0f48.js";
7
- import { F as j } from "./field-bo5gmna16odrrb1q.js";
4
+ import { createContext as T, useContext as g, Fragment as P } from "react";
5
+ import { i as p, K as V } from "./input-ncfowphv81yq7fyy.js";
6
+ import { c as t } from "./cn-ct4n7r74mh8y0f48.js";
7
+ import { F as j } from "./field-c0wf94plit2gci59.js";
8
8
  import { u as G } from "./portal-provider-hwmkdmkpvct0cb76.js";
9
- import { a5 as L, a6 as M, a7 as F, a8 as _, a9 as A, aa as E, ab as b, ac as K, ad as O, ae as U, af as W, ag as D, ah as f, ai as H, aj as C, ak as N, al as X, am as q, an as B } from "./vendor-base-ui-m5pz3e8c4grg5qmj.js";
9
+ import { a6 as L, a7 as M, a8 as F, a9 as _, aa as A, ab as E, ac as b, ad as K, ae as O, af as U, ag as W, ah as D, ai as f, aj as H, ak as C, al as N, am as X, an as q, ao as B } from "./vendor-base-ui-ie71jahf0czyf58j.js";
10
10
  V.size;
11
- const g = T("base");
11
+ const u = T("base");
12
12
  function y({
13
13
  label: o,
14
- required: t,
15
- labelTooltip: n,
16
- description: r,
17
- error: a,
14
+ required: a,
15
+ labelTooltip: r,
16
+ description: n,
17
+ error: i,
18
18
  children: c,
19
19
  size: s = "base",
20
20
  ...l
21
21
  }) {
22
- const d = /* @__PURE__ */ e(g.Provider, { value: s, children: /* @__PURE__ */ e(M, { ...l, children: c }) });
22
+ const d = /* @__PURE__ */ e(u.Provider, { value: s, children: /* @__PURE__ */ e(M, { ...l, children: c }) });
23
23
  return o ? /* @__PURE__ */ e(
24
24
  j,
25
25
  {
26
26
  label: o,
27
- required: t,
28
- labelTooltip: n,
29
- description: r,
30
- error: a ? typeof a == "string" ? { message: a, match: !0 } : a : void 0,
27
+ required: a,
28
+ labelTooltip: r,
29
+ description: n,
30
+ error: i ? typeof i == "string" ? { message: i, match: !0 } : i : void 0,
31
31
  children: d
32
32
  }
33
33
  ) : d;
34
34
  }
35
35
  function v({
36
36
  children: o,
37
- className: t,
38
- align: n = "start",
39
- sideOffset: r = 4,
40
- alignOffset: a,
37
+ className: a,
38
+ align: r = "start",
39
+ sideOffset: n = 4,
40
+ alignOffset: i,
41
41
  side: c,
42
42
  container: s
43
43
  }) {
@@ -46,14 +46,14 @@ function v({
46
46
  q,
47
47
  {
48
48
  className: "",
49
- align: n,
50
- sideOffset: r,
51
- alignOffset: a,
49
+ align: r,
50
+ sideOffset: n,
51
+ alignOffset: i,
52
52
  side: c,
53
53
  children: /* @__PURE__ */ e(
54
54
  B,
55
55
  {
56
- className: i(
56
+ className: t(
57
57
  "flex flex-col",
58
58
  // flexbox layout for sticky input + scrollable list
59
59
  "max-h-[min(var(--available-height),24rem)] max-w-(--available-width) min-w-(--anchor-width) py-1.5",
@@ -61,7 +61,7 @@ function v({
61
61
  // background
62
62
  "rounded-lg shadow-lg ring ring-kumo-line",
63
63
  // border part
64
- t
64
+ a
65
65
  ),
66
66
  children: o
67
67
  }
@@ -77,29 +77,29 @@ const J = {
77
77
  };
78
78
  function z({
79
79
  className: o,
80
- ...t
80
+ ...a
81
81
  }) {
82
- const n = u(g), r = J[n];
82
+ const r = g(u), n = J[r];
83
83
  return /* @__PURE__ */ m(
84
84
  C,
85
85
  {
86
- className: i(
87
- p({ size: n }),
86
+ className: t(
87
+ p({ size: r }),
88
88
  "relative flex items-center",
89
89
  "data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed",
90
- r.padding,
90
+ n.padding,
91
91
  o
92
92
  ),
93
93
  children: [
94
- /* @__PURE__ */ e(f, { children: t.children }),
94
+ /* @__PURE__ */ e(f, { children: a.children }),
95
95
  /* @__PURE__ */ e(
96
96
  N,
97
97
  {
98
- className: i(
98
+ className: t(
99
99
  "absolute top-1/2 -translate-y-1/2 flex items-center text-kumo-subtle",
100
- r.iconRight
100
+ n.iconRight
101
101
  ),
102
- children: /* @__PURE__ */ e(x, { size: r.iconSize, className: "fill-current" })
102
+ children: /* @__PURE__ */ e(x, { size: n.iconSize, className: "fill-current" })
103
103
  }
104
104
  )
105
105
  ]
@@ -134,27 +134,27 @@ const Q = {
134
134
  };
135
135
  function R({
136
136
  clearLabel: o = "Clear selection",
137
- showOptionsLabel: t = "Show options",
138
- ...n
137
+ showOptionsLabel: a = "Show options",
138
+ ...r
139
139
  }) {
140
- const r = u(g), a = Q[r];
140
+ const n = g(u), i = Q[n];
141
141
  return /* @__PURE__ */ m(
142
142
  "div",
143
143
  {
144
- className: i(
144
+ className: t(
145
145
  "relative inline-block w-full max-w-xs",
146
146
  "has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed",
147
- n.className
147
+ r.className
148
148
  ),
149
149
  children: [
150
150
  /* @__PURE__ */ e(
151
151
  b,
152
152
  {
153
- ...n,
154
- className: i(
155
- p({ size: r }),
153
+ ...r,
154
+ className: t(
155
+ p({ size: n }),
156
156
  "w-full",
157
- a.padding,
157
+ i.padding,
158
158
  "disabled:cursor-not-allowed"
159
159
  )
160
160
  }
@@ -163,37 +163,49 @@ function R({
163
163
  H,
164
164
  {
165
165
  "aria-label": o,
166
- className: i(
166
+ className: t(
167
167
  "absolute top-1/2 flex -translate-y-1/2 cursor-pointer bg-transparent p-0",
168
168
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-0",
169
- a.clearRight
169
+ i.clearRight
170
170
  ),
171
- children: /* @__PURE__ */ e(h, { size: a.iconSize })
171
+ children: /* @__PURE__ */ e(h, { size: i.iconSize })
172
172
  }
173
173
  ),
174
174
  /* @__PURE__ */ e(
175
175
  C,
176
176
  {
177
- "aria-label": t,
178
- className: i(
177
+ "aria-label": a,
178
+ className: t(
179
179
  "absolute top-1/2 -translate-y-1/2 flex items-center justify-center cursor-pointer text-kumo-subtle",
180
180
  "m-0 bg-transparent p-0",
181
181
  // Reset Stratus global button styles
182
- a.caretRight
182
+ i.caretRight
183
183
  ),
184
- children: /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(x, { size: a.iconSize, className: "fill-current" }) })
184
+ children: /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(x, { size: i.iconSize, className: "fill-current" }) })
185
185
  }
186
186
  )
187
187
  ]
188
188
  }
189
189
  );
190
190
  }
191
- function w({ children: o, ...t }) {
191
+ function w({
192
+ children: o,
193
+ className: a,
194
+ ...r
195
+ }) {
192
196
  return /* @__PURE__ */ m(
193
197
  K,
194
198
  {
195
- ...t,
196
- className: "group mx-1.5 grid cursor-pointer grid-cols-[1fr_16px] gap-2 rounded px-2 py-1.5 text-base data-highlighted:bg-kumo-tint",
199
+ ...r,
200
+ className: t(
201
+ "group mx-1.5 grid grid-cols-[1fr_16px] gap-2 rounded px-2 py-1.5 text-base",
202
+ "cursor-pointer data-highlighted:bg-kumo-tint",
203
+ // Disabled rows: muted text, no pointer, suppress highlight bg even
204
+ // when keyboard nav lands on them. Base UI sets `data-disabled` on
205
+ // the element when the `disabled` prop is true.
206
+ "data-[disabled]:cursor-not-allowed data-[disabled]:text-kumo-subtle data-[disabled]:opacity-60 data-[disabled]:data-highlighted:bg-transparent",
207
+ a
208
+ ),
197
209
  children: [
198
210
  /* @__PURE__ */ e("div", { className: "col-start-1", children: o }),
199
211
  /* @__PURE__ */ e(O, { className: "col-start-2 flex items-center", children: /* @__PURE__ */ e(S, {}) })
@@ -206,7 +218,7 @@ function Y(o) {
206
218
  E,
207
219
  {
208
220
  ...o,
209
- className: i(
221
+ className: t(
210
222
  "mx-1.5 shrink-0 px-4 py-2 text-[0.925rem] leading-4 text-kumo-subtle empty:m-0 empty:p-0"
211
223
  ),
212
224
  children: o.children ?? "No labels found."
@@ -218,7 +230,7 @@ function Z(o) {
218
230
  b,
219
231
  {
220
232
  ...o,
221
- className: i(
233
+ className: t(
222
234
  p(),
223
235
  "mx-1.5 w-[calc(100%-0.75rem)] shrink-0 first:mb-2",
224
236
  o.className
@@ -228,13 +240,13 @@ function Z(o) {
228
240
  }
229
241
  function $({
230
242
  className: o,
231
- ...t
243
+ ...a
232
244
  }) {
233
245
  return /* @__PURE__ */ e(
234
246
  F,
235
247
  {
236
- ...t,
237
- className: i(
248
+ ...a,
249
+ className: t(
238
250
  "min-h-0 flex-1 overflow-y-auto overscroll-contain scroll-pt-2 scroll-pb-2",
239
251
  o
240
252
  )
@@ -246,8 +258,8 @@ function ee(o) {
246
258
  A,
247
259
  {
248
260
  ...o,
249
- className: i(
250
- "mx-1.5 px-2 py-1.5 text-sm text-kumo-strong",
261
+ className: t(
262
+ "mx-1.5 px-2 py-1.5 text-sm text-kumo-subtle",
251
263
  o.className
252
264
  )
253
265
  }
@@ -264,13 +276,13 @@ function oe(o) {
264
276
  }
265
277
  function I({
266
278
  removeLabel: o = "Remove",
267
- ...t
279
+ ...a
268
280
  }) {
269
281
  return /* @__PURE__ */ m(
270
282
  U,
271
283
  {
272
- ...t,
273
- className: i(
284
+ ...a,
285
+ className: t(
274
286
  "flex items-center gap-2.5",
275
287
  // Layout
276
288
  "h-6 pl-2 pr-[3px]",
@@ -283,12 +295,12 @@ function I({
283
295
  // Typography
284
296
  ),
285
297
  children: [
286
- t.children,
298
+ a.children,
287
299
  /* @__PURE__ */ e(
288
300
  W,
289
301
  {
290
302
  "aria-label": o,
291
- className: i(
303
+ className: t(
292
304
  "cursor-pointer rounded-md p-1 hover:bg-kumo-fill-hover",
293
305
  "bg-transparent flex"
294
306
  ),
@@ -299,7 +311,7 @@ function I({
299
311
  }
300
312
  );
301
313
  }
302
- const te = {
314
+ const ae = {
303
315
  xs: "min-h-5",
304
316
  sm: "min-h-6.5",
305
317
  base: "min-h-9",
@@ -307,26 +319,26 @@ const te = {
307
319
  };
308
320
  function k({
309
321
  placeholder: o,
310
- renderItem: t,
311
- className: n,
312
- inputSide: r = "right",
313
- value: a
322
+ renderItem: a,
323
+ className: r,
324
+ inputSide: n = "right",
325
+ value: i
314
326
  }) {
315
- const c = u(g), s = a;
327
+ const c = g(u), s = i;
316
328
  return /* @__PURE__ */ m(
317
329
  D,
318
330
  {
319
- className: i(
331
+ className: t(
320
332
  p({ size: c }),
321
333
  "flex flex-col",
322
334
  "gap-1 py-1 px-1.5",
323
- te[c],
335
+ ae[c],
324
336
  "h-auto",
325
337
  "data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed",
326
- n
338
+ r
327
339
  ),
328
340
  children: [
329
- r === "top" && /* @__PURE__ */ e(
341
+ n === "top" && /* @__PURE__ */ e(
330
342
  b,
331
343
  {
332
344
  placeholder: o,
@@ -334,9 +346,9 @@ function k({
334
346
  }
335
347
  ),
336
348
  /* @__PURE__ */ m("div", { className: "flex items-center flex-wrap gap-1.5 flex-1", children: [
337
- s !== void 0 && s.length > 0 && s.map((l) => t(l)),
338
- /* @__PURE__ */ e(f, { children: (l) => s !== void 0 ? null : /* @__PURE__ */ e(P, { children: l.map((d) => t(d)) }) }),
339
- r === "right" && /* @__PURE__ */ e(
349
+ s !== void 0 && s.length > 0 && s.map((l) => a(l)),
350
+ /* @__PURE__ */ e(f, { children: (l) => s !== void 0 ? null : /* @__PURE__ */ e(P, { children: l.map((d) => a(d)) }) }),
351
+ n === "right" && /* @__PURE__ */ e(
340
352
  b,
341
353
  {
342
354
  placeholder: o,
@@ -377,4 +389,4 @@ const de = Object.assign(y, {
377
389
  export {
378
390
  de as C
379
391
  };
380
- //# sourceMappingURL=combobox-eaowwt1xr4d23gsn.js.map
392
+ //# sourceMappingURL=combobox-fq36ye0hstote16x.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-fq36ye0hstote16x.js","sources":["../../src/components/combobox/combobox.tsx"],"sourcesContent":["import { Combobox as ComboboxBase } from \"@base-ui/react/combobox\";\nimport { CaretDownIcon, CheckIcon, XIcon } from \"@phosphor-icons/react\";\nimport {\n Fragment,\n createContext,\n useContext,\n type PropsWithChildren,\n type ReactNode,\n} from \"react\";\nimport {\n inputVariants,\n KUMO_INPUT_VARIANTS,\n type KumoInputSize,\n} from \"../input/input\";\nimport { cn } from \"../../utils/cn\";\nimport { Field, type FieldErrorMatch } from \"../field/field\";\nimport {\n usePortalContainer,\n type PortalContainer,\n} from \"../../utils/portal-provider\";\n\n/** Combobox variant definitions. */\nexport const KUMO_COMBOBOX_VARIANTS = {\n size: KUMO_INPUT_VARIANTS.size,\n inputSide: {\n right: {\n classes: \"\",\n description: \"Input positioned inline to the right of chips\",\n },\n top: {\n classes: \"\",\n description: \"Input positioned above chips\",\n },\n },\n} as const;\n\nexport const KUMO_COMBOBOX_DEFAULT_VARIANTS = {\n size: \"base\",\n inputSide: \"right\",\n} as const;\n\n// Context to pass size down to sub-components\nconst ComboboxSizeContext = createContext<KumoInputSize>(\"base\");\n\n// Derived types from KUMO_COMBOBOX_VARIANTS\nexport type KumoComboboxSize = keyof typeof KUMO_COMBOBOX_VARIANTS.size;\nexport type KumoComboboxInputSide =\n keyof typeof KUMO_COMBOBOX_VARIANTS.inputSide;\n\nexport interface KumoComboboxVariantsProps {\n /**\n * Size of the combobox trigger. Matches Input component sizes.\n * - `\"xs\"` — Extra small for compact UIs (h-5 / 20px)\n * - `\"sm\"` — Small for secondary fields (h-6.5 / 26px)\n * - `\"base\"` — Default size (h-9 / 36px)\n * - `\"lg\"` — Large for prominent fields (h-10 / 40px)\n * @default \"base\"\n */\n size?: KumoComboboxSize;\n /**\n * Position of the text input relative to chips in multi-select mode.\n * - `\"right\"` — Input inline to the right of chips\n * - `\"top\"` — Input above chips\n * @default \"right\"\n */\n inputSide?: KumoComboboxInputSide;\n}\n\nexport function comboboxVariants({\n inputSide = KUMO_COMBOBOX_DEFAULT_VARIANTS.inputSide,\n}: KumoComboboxVariantsProps = {}) {\n return cn(KUMO_COMBOBOX_VARIANTS.inputSide[inputSide].classes);\n}\n\n// Legacy type alias for backwards compatibility\nexport type ComboboxInputSide = KumoComboboxInputSide;\nexport type ComboboxSize = KumoComboboxSize;\n\nexport type ComboboxRootProps<\n Value = unknown,\n Multiple extends boolean | undefined = false,\n> = ComboboxBase.Root.Props<Value, Multiple>;\n\n/**\n * Combobox component props (simplified for documentation; the actual Root is generic).\n *\n * Combobox provides an autocomplete/typeahead input with a filterable dropdown.\n * Supports single-select, multi-select with chips, grouped items, and Field wrapper integration.\n *\n * @example\n * ```tsx\n * // Single-select with search input\n * <Combobox value={value} onValueChange={setValue} items={options}>\n * <Combobox.TriggerInput placeholder=\"Search…\" />\n * <Combobox.Content>\n * <Combobox.List>\n * {(item) => <Combobox.Item value={item}>{item.label}</Combobox.Item>}\n * </Combobox.List>\n * <Combobox.Empty>No results</Combobox.Empty>\n * </Combobox.Content>\n * </Combobox>\n *\n * // Multi-select with chips\n * <Combobox multiple items={options} label=\"Tags\">\n * <Combobox.TriggerMultipleWithInput\n * placeholder=\"Add tag…\"\n * renderItem={(item) => <Combobox.Chip value={item}>{item.label}</Combobox.Chip>}\n * />\n * <Combobox.Content>\n * <Combobox.List>\n * {(item) => <Combobox.Item value={item}>{item.label}</Combobox.Item>}\n * </Combobox.List>\n * </Combobox.Content>\n * </Combobox>\n * ```\n */\nexport interface ComboboxProps extends KumoComboboxVariantsProps {\n /** Array of items to display in the dropdown */\n items: unknown[];\n /** Currently selected value(s) */\n value?: unknown;\n /** Callback when selection changes */\n onValueChange?: (value: unknown) => void;\n /** Enable multi-select mode */\n multiple?: boolean;\n /** Combobox content (trigger, content, items) */\n children: ReactNode;\n /** Additional CSS classes */\n className?: string;\n /** Label content for the combobox (enables Field wrapper) - can be a string or any React node */\n label?: ReactNode;\n /** Whether the combobox is required */\n required?: boolean;\n /** Tooltip content to display next to the label via an info icon */\n labelTooltip?: ReactNode;\n /** Helper text displayed below the combobox */\n description?: ReactNode;\n /** Error message or validation error object */\n error?: string | { message: ReactNode; match: FieldErrorMatch };\n}\n\nfunction Root<Value, Multiple extends boolean | undefined = false>({\n label,\n required,\n labelTooltip,\n description,\n error,\n children,\n size = \"base\",\n ...props\n}: ComboboxBase.Root.Props<Value, Multiple> & {\n label?: ReactNode;\n required?: boolean;\n labelTooltip?: ReactNode;\n description?: ReactNode;\n error?: string | { message: ReactNode; match: FieldErrorMatch };\n size?: KumoComboboxSize;\n}) {\n const comboboxControl = (\n <ComboboxSizeContext.Provider value={size}>\n <ComboboxBase.Root {...props}>{children}</ComboboxBase.Root>\n </ComboboxSizeContext.Provider>\n );\n\n // Render with Field wrapper if label, description, or error are provided\n if (label) {\n return (\n <Field\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n description={description}\n error={\n error\n ? typeof error === \"string\"\n ? { message: error, match: true }\n : error\n : undefined\n }\n >\n {comboboxControl}\n </Field>\n );\n }\n\n // Render bare combobox without Field wrapper\n return comboboxControl;\n}\n\nfunction Content({\n children,\n className,\n align = \"start\",\n sideOffset = 4,\n alignOffset,\n side,\n container: containerProp,\n}: PropsWithChildren<{\n className?: string;\n align?: ComboboxBase.Positioner.Props[\"align\"];\n alignOffset?: ComboboxBase.Positioner.Props[\"alignOffset\"];\n side?: ComboboxBase.Positioner.Props[\"side\"];\n sideOffset?: ComboboxBase.Positioner.Props[\"sideOffset\"];\n /**\n * Container element for the portal. Use this to render the combobox inside\n * a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.\n * @default document.body (or KumoPortalProvider container if set)\n */\n container?: PortalContainer;\n}>) {\n const contextContainer = usePortalContainer();\n const container = containerProp ?? contextContainer ?? undefined;\n\n return (\n <ComboboxBase.Portal container={container}>\n <ComboboxBase.Positioner\n className=\"\"\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n side={side}\n >\n <ComboboxBase.Popup\n className={cn(\n \"flex flex-col\", // flexbox layout for sticky input + scrollable list\n \"max-h-[min(var(--available-height),24rem)] max-w-(--available-width) min-w-(--anchor-width) py-1.5\",\n \"bg-kumo-base text-kumo-default\", // background\n \"rounded-lg shadow-lg ring ring-kumo-line\", // border part\n className,\n )}\n >\n {children}\n </ComboboxBase.Popup>\n </ComboboxBase.Positioner>\n </ComboboxBase.Portal>\n );\n}\n\n// Size-dependent styles for TriggerValue icon\nconst triggerValueIconStyles: Record<\n KumoComboboxSize,\n { padding: string; iconSize: number; iconRight: string }\n> = {\n xs: { padding: \"pr-5\", iconSize: 12, iconRight: \"right-1\" },\n sm: { padding: \"pr-6\", iconSize: 14, iconRight: \"right-1.5\" },\n base: { padding: \"pr-8\", iconSize: 16, iconRight: \"right-2\" },\n lg: { padding: \"pr-10\", iconSize: 18, iconRight: \"right-3\" },\n};\n\nfunction TriggerValue({\n className,\n ...props\n}: ComboboxBase.Value.Props & { className?: string }) {\n const size = useContext(ComboboxSizeContext);\n const iconStyles = triggerValueIconStyles[size];\n\n return (\n <ComboboxBase.Trigger\n className={cn(\n inputVariants({ size }),\n \"relative flex items-center\",\n \"data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed\",\n iconStyles.padding,\n className,\n )}\n >\n <ComboboxBase.Value>{props.children}</ComboboxBase.Value>\n <ComboboxBase.Icon\n className={cn(\n \"absolute top-1/2 -translate-y-1/2 flex items-center text-kumo-subtle\",\n iconStyles.iconRight,\n )}\n >\n <CaretDownIcon size={iconStyles.iconSize} className=\"fill-current\" />\n </ComboboxBase.Icon>\n </ComboboxBase.Trigger>\n );\n}\n\n// Size-dependent styles for TriggerInput icons\nconst triggerInputIconStyles: Record<\n KumoComboboxSize,\n { padding: string; iconSize: number; clearRight: string; caretRight: string }\n> = {\n xs: {\n padding: \"pr-7\",\n iconSize: 12,\n clearRight: \"right-5\",\n caretRight: \"right-1\",\n },\n sm: {\n padding: \"pr-9\",\n iconSize: 14,\n clearRight: \"right-6\",\n caretRight: \"right-1.5\",\n },\n base: {\n padding: \"pr-12\",\n iconSize: 16,\n clearRight: \"right-8\",\n caretRight: \"right-2\",\n },\n lg: {\n padding: \"pr-14\",\n iconSize: 18,\n clearRight: \"right-9\",\n caretRight: \"right-3\",\n },\n};\n\nfunction TriggerInput({\n clearLabel = \"Clear selection\",\n showOptionsLabel = \"Show options\",\n ...props\n}: ComboboxBase.Input.Props & {\n /** Accessible label for the clear button. Pass a translated string for i18n.\n * @default \"Clear selection\"\n */\n clearLabel?: string;\n /** Accessible label for the dropdown trigger. Pass a translated string for i18n.\n * @default \"Show options\"\n */\n showOptionsLabel?: string;\n}) {\n const size = useContext(ComboboxSizeContext);\n const iconStyles = triggerInputIconStyles[size];\n\n return (\n <div\n className={cn(\n \"relative inline-block w-full max-w-xs\",\n \"has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed\",\n props.className,\n )}\n >\n <ComboboxBase.Input\n {...props}\n className={cn(\n inputVariants({ size }),\n \"w-full\",\n iconStyles.padding,\n \"disabled:cursor-not-allowed\",\n )}\n />\n\n <ComboboxBase.Clear\n aria-label={clearLabel}\n className={cn(\n \"absolute top-1/2 flex -translate-y-1/2 cursor-pointer bg-transparent p-0\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-0\",\n iconStyles.clearRight,\n )}\n >\n <XIcon size={iconStyles.iconSize} />\n </ComboboxBase.Clear>\n\n <ComboboxBase.Trigger\n aria-label={showOptionsLabel}\n className={cn(\n \"absolute top-1/2 -translate-y-1/2 flex items-center justify-center cursor-pointer text-kumo-subtle\",\n \"m-0 bg-transparent p-0\", // Reset Stratus global button styles\n iconStyles.caretRight,\n )}\n >\n <ComboboxBase.Icon>\n <CaretDownIcon size={iconStyles.iconSize} className=\"fill-current\" />\n </ComboboxBase.Icon>\n </ComboboxBase.Trigger>\n </div>\n );\n}\n\nfunction Item({\n children,\n className,\n ...props\n}: ComboboxBase.Item.Props & { className?: string }) {\n return (\n <ComboboxBase.Item\n {...props}\n className={cn(\n \"group mx-1.5 grid grid-cols-[1fr_16px] gap-2 rounded px-2 py-1.5 text-base\",\n \"cursor-pointer data-highlighted:bg-kumo-tint\",\n // Disabled rows: muted text, no pointer, suppress highlight bg even\n // when keyboard nav lands on them. Base UI sets `data-disabled` on\n // the element when the `disabled` prop is true.\n \"data-[disabled]:cursor-not-allowed data-[disabled]:text-kumo-subtle data-[disabled]:opacity-60 data-[disabled]:data-highlighted:bg-transparent\",\n className,\n )}\n >\n <div className=\"col-start-1\">{children}</div>\n <ComboboxBase.ItemIndicator className=\"col-start-2 flex items-center\">\n <CheckIcon />\n </ComboboxBase.ItemIndicator>\n </ComboboxBase.Item>\n );\n}\n\nfunction Empty(props: ComboboxBase.Empty.Props) {\n return (\n <ComboboxBase.Empty\n {...props}\n className={cn(\n \"mx-1.5 shrink-0 px-4 py-2 text-[0.925rem] leading-4 text-kumo-subtle empty:m-0 empty:p-0\",\n )}\n children={props.children ?? \"No labels found.\"}\n />\n );\n}\n\nfunction Input(props: ComboboxBase.Input.Props) {\n return (\n <ComboboxBase.Input\n {...props}\n className={cn(\n inputVariants(),\n \"mx-1.5 w-[calc(100%-0.75rem)] shrink-0 first:mb-2\",\n props.className,\n )}\n />\n );\n}\n\nfunction List({\n className,\n ...props\n}: ComboboxBase.List.Props & { className?: string }) {\n return (\n <ComboboxBase.List\n {...props}\n className={cn(\n \"min-h-0 flex-1 overflow-y-auto overscroll-contain scroll-pt-2 scroll-pb-2\",\n className,\n )}\n />\n );\n}\n\nfunction GroupLabel(props: ComboboxBase.GroupLabel.Props) {\n return (\n <ComboboxBase.GroupLabel\n {...props}\n className={cn(\n \"mx-1.5 px-2 py-1.5 text-sm text-kumo-subtle\",\n props.className,\n )}\n />\n );\n}\n\nfunction Group(props: ComboboxBase.Group.Props) {\n return (\n <ComboboxBase.Group\n {...props}\n className=\"border-t border-kumo-hairline mt-2 pt-2 first:border-t-0 first:mt-0 first:pt-0\"\n />\n );\n}\n\nfunction Chip({\n removeLabel = \"Remove\",\n ...props\n}: ComboboxBase.Chip.Props & {\n /** Accessible label for the chip remove button. Pass a translated string for i18n.\n * @default \"Remove\"\n */\n removeLabel?: string;\n}) {\n return (\n <ComboboxBase.Chip\n {...props}\n className={cn(\n \"flex items-center gap-2.5\", // Layout\n \"h-6 pl-2 pr-[3px]\", // Dimensions\n \"rounded-sm ring-1 ring-kumo-hairline\", // Border\n \"bg-kumo-overlay\", // Background\n \"text-sm\", // Typography\n )}\n >\n {props.children}\n <ComboboxBase.ChipRemove\n aria-label={removeLabel}\n className={cn(\n \"cursor-pointer rounded-md p-1 hover:bg-kumo-fill-hover\",\n \"bg-transparent flex\",\n )}\n >\n <XIcon size={10} />\n </ComboboxBase.ChipRemove>\n </ComboboxBase.Chip>\n );\n}\n\n// Map size to min-height class for TriggerMultipleWithInput\nconst sizeToMinHeight: Record<KumoComboboxSize, string> = {\n xs: \"min-h-5\",\n sm: \"min-h-6.5\",\n base: \"min-h-9\",\n lg: \"min-h-10\",\n};\n\nfunction TriggerMultipleWithInput<ValueType>({\n placeholder,\n renderItem,\n className,\n inputSide = \"right\",\n value: controlledValue,\n}: {\n placeholder?: string;\n renderItem: (value: ValueType) => React.ReactNode;\n className?: string;\n inputSide?: \"right\" | \"top\";\n /** Optional controlled value for rendering chips (use when pre-selecting values) */\n value?: ValueType[];\n}) {\n const size = useContext(ComboboxSizeContext);\n // Determine which value to use for rendering chips\n const chipsToRender = controlledValue;\n\n return (\n <ComboboxBase.Chips\n className={cn(\n inputVariants({ size }),\n \"flex flex-col\",\n \"gap-1 py-1 px-1.5\",\n sizeToMinHeight[size],\n \"h-auto\",\n \"data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed\",\n className,\n )}\n >\n {inputSide === \"top\" && (\n <ComboboxBase.Input\n placeholder={placeholder}\n className=\"w-full px-2 py-1 border-0 bg-inherit\"\n />\n )}\n {/* Chips container */}\n <div className=\"flex items-center flex-wrap gap-1.5 flex-1\">\n {/* Render chips from controlled value if provided */}\n {chipsToRender !== undefined &&\n chipsToRender.length > 0 &&\n chipsToRender.map((item) => renderItem(item))}\n {/* Also render from BaseUI's internal value for user selections */}\n <ComboboxBase.Value>\n {(internalValue: ValueType[]) => {\n // Skip rendering if using controlled value (to avoid duplicates)\n if (chipsToRender !== undefined) return null;\n return (\n <Fragment>\n {internalValue.map((item) => renderItem(item))}\n </Fragment>\n );\n }}\n </ComboboxBase.Value>\n {inputSide === \"right\" && (\n <ComboboxBase.Input\n placeholder={placeholder}\n className=\"min-w-[100px] flex-1 px-2 py-1 border-0 bg-inherit\"\n />\n )}\n </div>\n </ComboboxBase.Chips>\n );\n}\n\nRoot.displayName = \"Combobox.Root\";\nContent.displayName = \"Combobox.Content\";\nTriggerValue.displayName = \"Combobox.TriggerValue\";\nTriggerInput.displayName = \"Combobox.TriggerInput\";\nItem.displayName = \"Combobox.Item\";\nChip.displayName = \"Combobox.Chip\";\nTriggerMultipleWithInput.displayName = \"Combobox.TriggerMultipleWithInput\";\n\n/**\n * Combobox — autocomplete input with filterable dropdown list.\n *\n * Compound component: `Combobox` (Root), `.TriggerInput`, `.TriggerValue`,\n * `.TriggerMultipleWithInput`, `.Content`, `.Item`, `.Chip`, `.Input`,\n * `.Empty`, `.GroupLabel`, `.Group`, `.List`, `.Collection`.\n *\n * @example\n * ```tsx\n * <Combobox items={fruits} label=\"Fruit\">\n * <Combobox.TriggerInput placeholder=\"Pick a fruit…\" />\n * <Combobox.Content>\n * <Combobox.List>\n * {(item) => <Combobox.Item value={item}>{item}</Combobox.Item>}\n * </Combobox.List>\n * </Combobox.Content>\n * </Combobox>\n * ```\n *\n * @see https://base-ui.com/react/components/combobox\n */\nexport const Combobox = Object.assign(Root, {\n // Helper components\n Content,\n TriggerValue,\n TriggerInput,\n TriggerMultipleWithInput,\n\n // Slightly modified BaseUI\n Chip,\n Item,\n\n // Styled BaseUI\n Input,\n Empty,\n GroupLabel,\n Group,\n\n // Styled BaseUI\n List,\n\n // BaseUI\n Collection: ComboboxBase.Collection,\n});\n"],"names":["KUMO_INPUT_VARIANTS","ComboboxSizeContext","createContext","Root","label","required","labelTooltip","description","error","children","size","props","comboboxControl","jsx","ComboboxBase.Root","Field","Content","className","align","sideOffset","alignOffset","side","containerProp","contextContainer","usePortalContainer","ComboboxBase.Portal","ComboboxBase.Positioner","ComboboxBase.Popup","cn","triggerValueIconStyles","TriggerValue","useContext","iconStyles","jsxs","ComboboxBase.Trigger","inputVariants","ComboboxBase.Value","ComboboxBase.Icon","CaretDownIcon","triggerInputIconStyles","TriggerInput","clearLabel","showOptionsLabel","ComboboxBase.Input","ComboboxBase.Clear","XIcon","Item","ComboboxBase.Item","ComboboxBase.ItemIndicator","CheckIcon","Empty","ComboboxBase.Empty","Input","List","ComboboxBase.List","GroupLabel","ComboboxBase.GroupLabel","Group","ComboboxBase.Group","Chip","removeLabel","ComboboxBase.Chip","ComboboxBase.ChipRemove","sizeToMinHeight","TriggerMultipleWithInput","placeholder","renderItem","inputSide","controlledValue","chipsToRender","ComboboxBase.Chips","item","internalValue","Fragment","Combobox","ComboboxBase.Collection"],"mappings":"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"}