@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
@@ -1,23 +1,23 @@
1
1
  "use client";
2
2
  import { jsx as e, jsxs as g, Fragment as E } from "react/jsx-runtime";
3
- import { forwardRef as K, useContext as N, createContext as v, useCallback as b, useRef as T } from "react";
3
+ import { forwardRef as K, useContext as N, createContext as w, useCallback as b, useRef as T } from "react";
4
4
  import { CaretRightIcon as M, ArrowSquareOutIcon as H, ArrowRightIcon as _, MagnifyingGlassIcon as F } from "@phosphor-icons/react";
5
- import { L as G } from "./layer-card-ljqth3yxgnk04v2o.js";
5
+ import { L as G } from "./layer-card-ikm31xemd70w3lru.js";
6
6
  import { L as j } from "./loader-hr2w7cpqeev3p3vl.js";
7
7
  import { c as m } from "./cn-ct4n7r74mh8y0f48.js";
8
8
  import { u as U } from "./portal-provider-hwmkdmkpvct0cb76.js";
9
- import { a5 as O, a7 as V, aa as $, ac as w, a9 as q, a8 as z, ab as B, bp as J, ap as Q, au as W, av as X, aw as Y } from "./vendor-base-ui-m5pz3e8c4grg5qmj.js";
10
- const C = v({});
9
+ import { a6 as q, a8 as O, ab as V, bt as v, aa as $, a9 as z, ac as B, bu as J, aq as Q, av as W, aw as X, ax as Y } from "./vendor-base-ui-ie71jahf0czyf58j.js";
10
+ const C = w({});
11
11
  function I({
12
12
  open: t,
13
13
  onOpenChange: n,
14
- onBackdropClick: o,
14
+ onBackdropClick: a,
15
15
  children: i,
16
16
  container: s
17
17
  }) {
18
18
  const u = U(), d = s ?? u ?? void 0, r = (c) => {
19
- o ? o(c) : n(!1);
20
- }, a = b(() => {
19
+ a ? a(c) : n(!1);
20
+ }, o = b(() => {
21
21
  n(!1);
22
22
  }, [n]);
23
23
  return /* @__PURE__ */ e(Q, { open: t, onOpenChange: n, modal: !0, children: /* @__PURE__ */ g(W, { container: d, children: [
@@ -41,7 +41,7 @@ function I({
41
41
  transitionProperty: "scale, opacity",
42
42
  transitionTimingFunction: "var(--default-transition-timing-function)"
43
43
  },
44
- children: /* @__PURE__ */ e(C.Provider, { value: { onClose: a }, children: i })
44
+ children: /* @__PURE__ */ e(C.Provider, { value: { onClose: o }, children: i })
45
45
  }
46
46
  )
47
47
  ] }) });
@@ -49,13 +49,13 @@ function I({
49
49
  function Z({
50
50
  open: t,
51
51
  onOpenChange: n,
52
- onBackdropClick: o,
52
+ onBackdropClick: a,
53
53
  children: i,
54
54
  items: s,
55
55
  value: u,
56
56
  onValueChange: d,
57
57
  onItemHighlighted: r,
58
- itemToStringValue: a,
58
+ itemToStringValue: o,
59
59
  filter: c,
60
60
  onSelect: l,
61
61
  getSelectableItems: f,
@@ -66,16 +66,16 @@ function Z({
66
66
  {
67
67
  open: t,
68
68
  onOpenChange: n,
69
- onBackdropClick: o,
69
+ onBackdropClick: a,
70
70
  container: h,
71
71
  children: /* @__PURE__ */ e(
72
- P,
72
+ A,
73
73
  {
74
74
  items: s,
75
75
  value: u,
76
76
  onValueChange: d,
77
77
  onItemHighlighted: r,
78
- itemToStringValue: a,
78
+ itemToStringValue: o,
79
79
  filter: c,
80
80
  open: t,
81
81
  onSelect: l,
@@ -89,9 +89,9 @@ function Z({
89
89
  function S({
90
90
  children: t,
91
91
  leading: n,
92
- trailing: o
92
+ trailing: a
93
93
  }) {
94
- return /* @__PURE__ */ g("div", { className: "flex items-center gap-3 bg-kumo-base px-4 py-3", children: [
94
+ return /* @__PURE__ */ g("div", { className: "flex items-center gap-3 bg-kumo-base px-4 py-3 focus-within:ring-2 focus-within:ring-kumo-brand", children: [
95
95
  n ?? /* @__PURE__ */ e(
96
96
  F,
97
97
  {
@@ -100,17 +100,17 @@ function S({
100
100
  }
101
101
  ),
102
102
  t,
103
- o
103
+ a
104
104
  ] });
105
105
  }
106
- const D = K(function({ children: n, className: o }, i) {
106
+ const D = K(function({ children: n, className: a }, i) {
107
107
  return /* @__PURE__ */ e(
108
108
  "div",
109
109
  {
110
110
  ref: i,
111
111
  className: m(
112
112
  "min-h-0 flex-1 overflow-y-auto rounded-b-lg bg-kumo-base px-2 py-2 ring-1 ring-kumo-hairline",
113
- o
113
+ a
114
114
  ),
115
115
  children: n
116
116
  }
@@ -120,19 +120,19 @@ D.displayName = "CommandPalette.List";
120
120
  function ee({
121
121
  children: t,
122
122
  className: n,
123
- ...o
123
+ ...a
124
124
  }) {
125
- return /* @__PURE__ */ e(z, { className: m("space-y-0.5", n), ...o, children: t });
125
+ return /* @__PURE__ */ e(z, { className: m("space-y-0.5", n), ...a, children: t });
126
126
  }
127
127
  function te({
128
128
  children: t,
129
129
  className: n
130
130
  }) {
131
131
  return /* @__PURE__ */ e(
132
- q,
132
+ $,
133
133
  {
134
134
  className: m(
135
- "mb-2 px-2 pt-1 text-xs font-semibold text-kumo-strong",
135
+ "mb-2 px-2 pt-1 text-xs font-semibold text-kumo-subtle",
136
136
  n
137
137
  ),
138
138
  children: t
@@ -142,12 +142,12 @@ function te({
142
142
  function ne({
143
143
  value: t,
144
144
  disabled: n,
145
- children: o,
145
+ children: a,
146
146
  className: i,
147
147
  onClick: s
148
148
  }) {
149
149
  return /* @__PURE__ */ e(
150
- w,
150
+ v,
151
151
  {
152
152
  value: t,
153
153
  disabled: n,
@@ -159,62 +159,62 @@ function ne({
159
159
  n && "cursor-default opacity-50",
160
160
  i
161
161
  ),
162
- children: o
162
+ children: a
163
163
  }
164
164
  );
165
165
  }
166
- function oe({ children: t }) {
167
- return /* @__PURE__ */ e($, { children: /* @__PURE__ */ e("div", { className: "p-8 text-center", children: /* @__PURE__ */ e("p", { className: "text-kumo-strong", children: t ?? "No results found" }) }) });
168
- }
169
166
  function ae({ children: t }) {
167
+ return /* @__PURE__ */ e(V, { children: /* @__PURE__ */ e("div", { className: "p-8 text-center", children: /* @__PURE__ */ e("p", { className: "text-kumo-subtle", children: t ?? "No results found" }) }) });
168
+ }
169
+ function oe({ children: t }) {
170
170
  return /* @__PURE__ */ e("div", { className: "flex items-center justify-center p-8", children: t ?? /* @__PURE__ */ e(j, { size: 24 }) });
171
171
  }
172
172
  function se({ children: t }) {
173
- return /* @__PURE__ */ e("div", { className: "flex items-center justify-between rounded-b-lg bg-kumo-elevated px-4 py-3 text-xs text-kumo-strong", children: t });
173
+ return /* @__PURE__ */ e("div", { className: "flex items-center justify-between rounded-b-lg bg-kumo-elevated px-4 py-3 text-xs text-kumo-subtle", children: t });
174
174
  }
175
175
  function y({
176
176
  text: t,
177
177
  highlights: n,
178
- className: o
178
+ className: a
179
179
  }) {
180
180
  if (!n || n.length === 0)
181
- return /* @__PURE__ */ e("span", { className: o, children: t });
182
- const i = [...n].sort((r, a) => r[0] - a[0]), s = [];
181
+ return /* @__PURE__ */ e("span", { className: a, children: t });
182
+ const i = [...n].sort((r, o) => r[0] - o[0]), s = [];
183
183
  for (const r of i) {
184
- const a = s[s.length - 1];
185
- a && r[0] <= a[1] + 1 ? a[1] = Math.max(a[1], r[1]) : s.push([...r]);
184
+ const o = s[s.length - 1];
185
+ o && r[0] <= o[1] + 1 ? o[1] = Math.max(o[1], r[1]) : s.push([...r]);
186
186
  }
187
187
  const u = [];
188
188
  let d = 0;
189
- return s.forEach((r, a) => {
189
+ return s.forEach((r, o) => {
190
190
  const [c, l] = r;
191
- c > d && u.push(/* @__PURE__ */ e("span", { children: t.slice(d, c) }, `text-${a}`)), u.push(
191
+ c > d && u.push(/* @__PURE__ */ e("span", { children: t.slice(d, c) }, `text-${o}`)), u.push(
192
192
  /* @__PURE__ */ e(
193
193
  "mark",
194
194
  {
195
195
  className: "rounded-sm bg-kumo-warning/50 text-kumo-default",
196
196
  children: t.slice(c, l + 1)
197
197
  },
198
- `highlight-${a}`
198
+ `highlight-${o}`
199
199
  )
200
200
  ), d = l + 1;
201
- }), d < t.length && u.push(/* @__PURE__ */ e("span", { children: t.slice(d) }, "text-end")), /* @__PURE__ */ e("span", { className: o, children: u });
201
+ }), d < t.length && u.push(/* @__PURE__ */ e("span", { children: t.slice(d) }, "text-end")), /* @__PURE__ */ e("span", { className: a, children: u });
202
202
  }
203
203
  function re({
204
204
  title: t,
205
205
  breadcrumbs: n,
206
- titleHighlights: o,
206
+ titleHighlights: a,
207
207
  breadcrumbHighlights: i,
208
208
  description: s,
209
209
  icon: u,
210
210
  value: d,
211
211
  onClick: r,
212
- showArrow: a = !0,
212
+ showArrow: o = !0,
213
213
  external: c = !1,
214
214
  nonInteractive: l = !1
215
215
  }) {
216
216
  return /* @__PURE__ */ g(
217
- w,
217
+ v,
218
218
  {
219
219
  value: d,
220
220
  onClick: l ? void 0 : (f) => r(f),
@@ -246,17 +246,17 @@ function re({
246
246
  y,
247
247
  {
248
248
  text: t,
249
- highlights: o,
249
+ highlights: a,
250
250
  className: "text-base text-kumo-default"
251
251
  }
252
252
  ),
253
253
  c && /* @__PURE__ */ e(H, { className: "h-3.5 w-3.5 flex-shrink-0 text-kumo-subtle" }),
254
254
  s && /* @__PURE__ */ g(E, { children: [
255
- /* @__PURE__ */ e("span", { className: "text-kumo-strong", children: "—" }),
256
- /* @__PURE__ */ e("span", { className: "truncate text-sm text-kumo-strong", children: s })
255
+ /* @__PURE__ */ e("span", { className: "text-kumo-subtle", children: "—" }),
256
+ /* @__PURE__ */ e("span", { className: "truncate text-sm text-kumo-subtle", children: s })
257
257
  ] })
258
258
  ] }) }),
259
- a && !c && !l && /* @__PURE__ */ e(_, { className: "h-4 w-4 flex-shrink-0 text-kumo-subtle opacity-0 transition-opacity group-data-[highlighted]:opacity-100" })
259
+ o && !c && !l && /* @__PURE__ */ e(_, { className: "h-4 w-4 flex-shrink-0 text-kumo-subtle opacity-0 transition-opacity group-data-[highlighted]:opacity-100" })
260
260
  ]
261
261
  }
262
262
  );
@@ -276,17 +276,17 @@ function le({
276
276
  }
277
277
  );
278
278
  }
279
- const L = v({}), ie = () => !0;
280
- function P({
279
+ const L = w({}), ie = () => !0;
280
+ function A({
281
281
  children: t,
282
282
  items: n,
283
- value: o,
283
+ value: a,
284
284
  onValueChange: i,
285
285
  onItemHighlighted: s,
286
286
  itemToStringValue: u,
287
287
  filter: d = ie,
288
288
  open: r = !0,
289
- className: a,
289
+ className: o,
290
290
  onSelect: c,
291
291
  getSelectableItems: l
292
292
  }) {
@@ -295,7 +295,7 @@ function P({
295
295
  f.current = x.index, s?.(p, x);
296
296
  },
297
297
  [s]
298
- ), A = b(
298
+ ), P = b(
299
299
  (p) => {
300
300
  const x = p.key === "Enter", R = p.metaKey || p.ctrlKey;
301
301
  if (x && R && c && l) {
@@ -305,11 +305,11 @@ function P({
305
305
  },
306
306
  [n, c, l]
307
307
  );
308
- return /* @__PURE__ */ e(le, { className: a, children: /* @__PURE__ */ e(
308
+ return /* @__PURE__ */ e(le, { className: o, children: /* @__PURE__ */ e(
309
309
  J,
310
310
  {
311
311
  items: n,
312
- value: o,
312
+ value: a,
313
313
  onValueChange: i,
314
314
  onItemHighlighted: h,
315
315
  itemToStringValue: u,
@@ -317,30 +317,30 @@ function P({
317
317
  autoHighlight: "always",
318
318
  keepHighlight: !0,
319
319
  open: r,
320
- children: /* @__PURE__ */ e(L.Provider, { value: { onInputKeyDown: A }, children: t })
320
+ children: /* @__PURE__ */ e(L.Provider, { value: { onInputKeyDown: P }, children: t })
321
321
  }
322
322
  ) });
323
323
  }
324
324
  function ce({
325
325
  autoFocus: t = !0,
326
326
  placeholder: n,
327
- className: o,
327
+ className: a,
328
328
  onKeyDown: i,
329
329
  leading: s,
330
330
  trailing: u,
331
331
  ...d
332
332
  }) {
333
- const { onInputKeyDown: r } = N(L), { onClose: a } = N(C), c = b(
333
+ const { onInputKeyDown: r } = N(L), { onClose: o } = N(C), c = b(
334
334
  (l) => {
335
335
  if (i?.(l), !l.defaultPrevented) {
336
- if (l.key === "Escape" && a) {
337
- l.preventDefault(), a();
336
+ if (l.key === "Escape" && o) {
337
+ l.preventDefault(), o();
338
338
  return;
339
339
  }
340
340
  r?.(l);
341
341
  }
342
342
  },
343
- [r, i, a]
343
+ [r, i, o]
344
344
  );
345
345
  return /* @__PURE__ */ e(S, { leading: s, trailing: u, children: /* @__PURE__ */ e(
346
346
  B,
@@ -348,8 +348,8 @@ function ce({
348
348
  placeholder: n,
349
349
  className: m(
350
350
  "flex-1 border-none bg-transparent text-base kumo-input-placeholder",
351
- "outline-none focus-visible:outline-none",
352
- o
351
+ "outline-none",
352
+ a
353
353
  ),
354
354
  onKeyDown: c,
355
355
  autoFocus: t,
@@ -361,15 +361,15 @@ function ue({
361
361
  children: t,
362
362
  className: n
363
363
  }) {
364
- return /* @__PURE__ */ e(V, { className: m("space-y-3", n), children: t });
364
+ return /* @__PURE__ */ e(O, { className: m("space-y-3", n), children: t });
365
365
  }
366
- const de = O, Ne = {}, ve = {}, we = {
366
+ const de = q, Ne = {}, we = {}, ve = {
367
367
  /** Modal dialog wrapper - use with Panel for content that can swap */
368
368
  Dialog: I,
369
369
  /** Dialog + Panel combined - for simple single-view command palettes */
370
370
  Root: Z,
371
371
  /** Autocomplete panel without dialog - use inside Dialog for swappable content */
372
- Panel: P,
372
+ Panel: A,
373
373
  /** Input for use inside Panel */
374
374
  Input: ce,
375
375
  /** Scrollable results container */
@@ -385,9 +385,9 @@ const de = O, Ne = {}, ve = {}, we = {
385
385
  /** Text with highlighted portions */
386
386
  HighlightedText: y,
387
387
  /** Empty state */
388
- Empty: oe,
388
+ Empty: ae,
389
389
  /** Loading state */
390
- Loading: ae,
390
+ Loading: oe,
391
391
  /** Footer for keyboard hints */
392
392
  Footer: se,
393
393
  /** Render prop iterator for groups */
@@ -396,8 +396,8 @@ const de = O, Ne = {}, ve = {}, we = {
396
396
  Items: de
397
397
  };
398
398
  export {
399
- we as C,
399
+ ve as C,
400
400
  Ne as K,
401
- ve as a
401
+ we as a
402
402
  };
403
- //# sourceMappingURL=command-palette-maqtbmpfev9mysqd.js.map
403
+ //# sourceMappingURL=command-palette-md65owxt5hv4rt9r.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette-md65owxt5hv4rt9r.js","sources":["../../src/components/command-palette/command-palette.tsx"],"sourcesContent":["import {\n useRef,\n useCallback,\n createContext,\n useContext,\n forwardRef,\n type CSSProperties,\n} from \"react\";\nimport { Autocomplete } from \"@base-ui/react/autocomplete\";\nimport { Dialog as DialogBase } from \"@base-ui/react/dialog\";\nimport {\n MagnifyingGlassIcon,\n ArrowRightIcon,\n ArrowSquareOutIcon,\n CaretRightIcon,\n} from \"@phosphor-icons/react\";\n\nimport { LayerCard } from \"../layer-card\";\nimport { Loader } from \"../loader\";\nimport { cn } from \"../../utils\";\nimport {\n usePortalContainer,\n type PortalContainer,\n} from \"../../utils/portal-provider\";\nimport type {\n HighlightRange,\n CommandPaletteRootProps,\n CommandPaletteInputProps,\n CommandPaletteListProps,\n CommandPaletteGroupProps,\n CommandPaletteGroupLabelProps,\n CommandPaletteItemProps,\n CommandPaletteEmptyProps,\n CommandPaletteLoadingProps,\n CommandPaletteFooterProps,\n CommandPaletteResultItemProps,\n} from \"./types\";\n\n/**\n * CommandPalette - A composable command palette component for Kumo\n *\n * Uses @base-ui/react/autocomplete primitives for accessible command palette functionality.\n *\n * Keyboard navigation is built-in:\n * - Arrow keys (up/down) move highlight between items\n * - Enter selects the highlighted item (calls onSelect with newTab: false)\n * - Cmd+Enter (Mac) / Ctrl+Enter (Windows/Linux) selects with newTab: true\n * - First item is auto-highlighted when results change\n * - Escape closes the dialog\n *\n * Usage:\n * ```tsx\n * <CommandPalette.Root\n * open={open}\n * onOpenChange={setOpen}\n * items={results}\n * value={searchTerm}\n * onValueChange={setSearchTerm}\n * itemToStringValue={(group) => group.label}\n * onSelect={(item, { newTab }) => handleSelect(item, newTab)}\n * getSelectableItems={(groups) => groups.flatMap(g => g.items)}\n * >\n * <CommandPalette.Input placeholder=\"Search...\" />\n * <CommandPalette.List>\n * <Autocomplete.List>\n * {(group) => (\n * <CommandPalette.Group items={group.items}>\n * <CommandPalette.GroupLabel>{group.label}</CommandPalette.GroupLabel>\n * <Autocomplete.Collection>\n * {(item) => (\n * <CommandPalette.Item value={item} onClick={(e) => handleSelect(item, e.metaKey || e.ctrlKey)}>\n * {item.title}\n * </CommandPalette.Item>\n * )}\n * </Autocomplete.Collection>\n * </CommandPalette.Group>\n * )}\n * </Autocomplete.List>\n * <CommandPalette.Empty>No results found</CommandPalette.Empty>\n * </CommandPalette.List>\n * <CommandPalette.Footer />\n * </CommandPalette.Root>\n * ```\n */\n\n/**\n * Dialog context for passing close handler to children\n */\ninterface DialogContextValue {\n onClose?: () => void;\n}\n\nconst DialogContext = createContext<DialogContextValue>({});\n\n/**\n * Props for the Dialog component\n */\ninterface DialogProps {\n /** Whether the dialog is open */\n open: boolean;\n /** Callback when the open state changes */\n onOpenChange: (open: boolean) => void;\n /**\n * Optional callback when backdrop is clicked.\n * Receives the mouse event for position tracking (e.g., for ripple effects).\n * If not provided, backdrop click calls onOpenChange(false).\n */\n onBackdropClick?: (e: React.MouseEvent) => void;\n /** Child content - typically one or more Panel components */\n children: React.ReactNode;\n /**\n * Container element for the portal. Use this to render the command palette 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\n/**\n * Dialog component - Modal wrapper for command palette content.\n *\n * Use this when you need a dialog that can swap between different Panel contents\n * without re-mounting (e.g., drill-down navigation).\n *\n * @example\n * ```tsx\n * <CommandPalette.Dialog open={open} onOpenChange={setOpen}>\n * {showDrillDown ? (\n * <ZonePicker />\n * ) : (\n * <CommandPalette.Panel items={results} ...>\n * ...\n * </CommandPalette.Panel>\n * )}\n * </CommandPalette.Dialog>\n * ```\n */\nfunction Dialog({\n open,\n onOpenChange,\n onBackdropClick,\n children,\n container: containerProp,\n}: DialogProps) {\n const contextContainer = usePortalContainer();\n const container = containerProp ?? contextContainer ?? undefined;\n\n const handleBackdropClick = (e: React.MouseEvent) => {\n if (onBackdropClick) {\n onBackdropClick(e);\n } else {\n onOpenChange(false);\n }\n };\n\n const handleClose = useCallback(() => {\n onOpenChange(false);\n }, [onOpenChange]);\n\n return (\n <DialogBase.Root open={open} onOpenChange={onOpenChange} modal>\n <DialogBase.Portal container={container}>\n <DialogBase.Backdrop\n className=\"fixed inset-0 bg-kumo-overlay opacity-80 transition-all duration-150 data-[ending-style]:opacity-0 data-[starting-style]:opacity-0\"\n onClick={handleBackdropClick}\n />\n <LayerCard\n render={<DialogBase.Popup />}\n className={cn(\n \"fixed top-[10vh] left-1/2 w-full max-w-2xl -translate-x-1/2\",\n \"overflow-hidden rounded-lg\",\n \"duration-150 data-[ending-style]:scale-90 data-[ending-style]:opacity-0 data-[starting-style]:scale-90 data-[starting-style]:opacity-0\",\n )}\n style={\n {\n transitionProperty: \"scale, opacity\",\n transitionTimingFunction:\n \"var(--default-transition-timing-function)\",\n } as CSSProperties\n }\n >\n <DialogContext.Provider value={{ onClose: handleClose }}>\n {children}\n </DialogContext.Provider>\n </LayerCard>\n </DialogBase.Portal>\n </DialogBase.Root>\n );\n}\n\n/**\n * Root component - Dialog + Panel combined for simple use cases.\n *\n * For cases where you need to swap content inside the dialog without\n * re-mounting (e.g., drill-down navigation), use Dialog + Panel separately.\n *\n * Keyboard navigation is always enabled:\n * - Arrow keys (up/down) move highlight\n * - Enter selects highlighted item\n * - Cmd/Ctrl+Enter selects with newTab: true\n * - First item is auto-highlighted when results change\n */\nfunction Root<TGroup, TItem = TGroup>({\n open,\n onOpenChange,\n onBackdropClick,\n children,\n items,\n value,\n onValueChange,\n onItemHighlighted,\n itemToStringValue,\n filter,\n onSelect,\n getSelectableItems,\n container,\n}: CommandPaletteRootProps<TGroup, TItem>) {\n return (\n <Dialog\n open={open}\n onOpenChange={onOpenChange}\n onBackdropClick={onBackdropClick}\n container={container}\n >\n <Panel\n items={items}\n value={value}\n onValueChange={onValueChange}\n onItemHighlighted={onItemHighlighted}\n itemToStringValue={itemToStringValue}\n filter={filter}\n open={open}\n onSelect={onSelect}\n getSelectableItems={getSelectableItems}\n >\n {children}\n </Panel>\n </Dialog>\n );\n}\n\n/**\n * InputHeader component - Internal styled container for search input.\n */\nfunction InputHeader({\n children,\n leading,\n trailing,\n}: {\n children: React.ReactNode;\n leading?: React.ReactNode;\n trailing?: React.ReactNode;\n}) {\n return (\n <div className=\"flex items-center gap-3 bg-kumo-base px-4 py-3 focus-within:ring-2 focus-within:ring-kumo-brand\">\n {leading ?? (\n <MagnifyingGlassIcon\n className=\"h-4 w-4 text-kumo-subtle\"\n weight=\"bold\"\n />\n )}\n {children}\n {trailing}\n </div>\n );\n}\n\n/**\n * List component - Scrollable results container\n *\n * Wrapper div with proper styling, contains Autocomplete.List internally.\n * Supports ref forwarding for scroll control.\n */\nconst List = forwardRef<\n HTMLDivElement,\n CommandPaletteListProps & { className?: string }\n>(function List({ children, className }, ref) {\n return (\n <div\n ref={ref}\n className={cn(\n \"min-h-0 flex-1 overflow-y-auto rounded-b-lg bg-kumo-base px-2 py-2 ring-1 ring-kumo-hairline\",\n className,\n )}\n >\n {children}\n </div>\n );\n});\n\nList.displayName = \"CommandPalette.List\";\n\n/**\n * Group component - Category grouping\n *\n * Re-export of Autocomplete.Group with default styling.\n */\nfunction Group({\n children,\n className,\n ...props\n}: CommandPaletteGroupProps & {\n className?: string;\n items?: unknown[];\n}) {\n return (\n <Autocomplete.Group className={cn(\"space-y-0.5\", className)} {...props}>\n {children}\n </Autocomplete.Group>\n );\n}\n\n/**\n * GroupLabel component - Section header text\n *\n * Re-export of Autocomplete.GroupLabel with styling matching SectionHeader.\n */\nfunction GroupLabel({\n children,\n className,\n}: CommandPaletteGroupLabelProps & { className?: string }) {\n return (\n <Autocomplete.GroupLabel\n className={cn(\n \"mb-2 px-2 pt-1 text-xs font-semibold text-kumo-subtle\",\n className,\n )}\n >\n {children}\n </Autocomplete.GroupLabel>\n );\n}\n\n/**\n * Item component - Individual result item\n *\n * Re-export of Autocomplete.Item with styling matching SearchResultItem.\n * Note: Use onClick for selection handling, matching the existing CommandPalette pattern.\n */\nfunction Item<T>({\n value,\n disabled,\n children,\n className,\n onClick,\n}: CommandPaletteItemProps<T> & {\n className?: string;\n}) {\n return (\n <Autocomplete.Item\n value={value}\n disabled={disabled}\n onClick={onClick}\n className={cn(\n \"group flex w-full items-center gap-3 px-2 py-1.5 text-left text-base transition-colors\",\n \"cursor-pointer data-[highlighted]:bg-kumo-overlay\",\n \"rounded-lg\",\n disabled && \"cursor-default opacity-50\",\n className,\n )}\n >\n {children}\n </Autocomplete.Item>\n );\n}\n\n/**\n * Empty component - Empty state when no results\n *\n * Re-export of Autocomplete.Empty with default styling.\n */\nfunction Empty({ children }: CommandPaletteEmptyProps) {\n return (\n <Autocomplete.Empty>\n <div className=\"p-8 text-center\">\n <p className=\"text-kumo-subtle\">{children ?? \"No results found\"}</p>\n </div>\n </Autocomplete.Empty>\n );\n}\n\n/**\n * Loading component - Loading spinner state\n *\n * Centered loading spinner using Kumo Loader.\n */\nfunction Loading({ children }: CommandPaletteLoadingProps) {\n return (\n <div className=\"flex items-center justify-center p-8\">\n {children ?? <Loader size={24} />}\n </div>\n );\n}\n\n/**\n * Footer component - Styled container for keyboard hints or other footer content.\n *\n * Children are required - this is just a styled container.\n * Consumers should provide their own keyboard hints with proper i18n.\n */\nfunction Footer({ children }: CommandPaletteFooterProps) {\n return (\n <div className=\"flex items-center justify-between rounded-b-lg bg-kumo-elevated px-4 py-3 text-xs text-kumo-subtle\">\n {children}\n </div>\n );\n}\n\n/**\n * HighlightedText - Renders text with highlighted portions based on match indices.\n * Highlighted text is shown with a background color to indicate matches.\n */\nfunction HighlightedText({\n text,\n highlights,\n className,\n}: {\n text: string;\n highlights?: HighlightRange[];\n className?: string;\n}) {\n if (!highlights || highlights.length === 0) {\n return <span className={className}>{text}</span>;\n }\n\n // Sort highlights by start index and merge overlapping ranges\n const sortedHighlights = [...highlights].sort((a, b) => a[0] - b[0]);\n const mergedHighlights: HighlightRange[] = [];\n\n for (const range of sortedHighlights) {\n const last = mergedHighlights[mergedHighlights.length - 1];\n if (last && range[0] <= last[1] + 1) {\n // Merge overlapping or adjacent ranges\n last[1] = Math.max(last[1], range[1]);\n } else {\n mergedHighlights.push([...range]);\n }\n }\n\n const parts: React.ReactNode[] = [];\n let lastIndex = 0;\n\n mergedHighlights.forEach((range, i) => {\n const [start, end] = range;\n\n // Add non-highlighted text before this match\n if (start > lastIndex) {\n parts.push(<span key={`text-${i}`}>{text.slice(lastIndex, start)}</span>);\n }\n\n // Add highlighted text (end index is inclusive)\n parts.push(\n <mark\n key={`highlight-${i}`}\n className=\"rounded-sm bg-kumo-warning/50 text-kumo-default\"\n >\n {text.slice(start, end + 1)}\n </mark>,\n );\n\n lastIndex = end + 1;\n });\n\n // Add remaining non-highlighted text\n if (lastIndex < text.length) {\n parts.push(<span key=\"text-end\">{text.slice(lastIndex)}</span>);\n }\n\n return <span className={className}>{parts}</span>;\n}\n\n/**\n * ResultItem - Rich item component with breadcrumbs, highlights, icons, and external indicators.\n *\n * Use this for search result items that need breadcrumb navigation, text highlighting,\n * or external link indicators. For simple items, use Item instead.\n */\nfunction ResultItem<T>({\n title,\n breadcrumbs,\n titleHighlights,\n breadcrumbHighlights,\n description,\n icon,\n value,\n onClick,\n showArrow = true,\n external = false,\n nonInteractive = false,\n}: CommandPaletteResultItemProps<T>) {\n return (\n <Autocomplete.Item\n value={value}\n onClick={nonInteractive ? undefined : (e: React.MouseEvent) => onClick(e)}\n className={cn(\n \"group flex w-full items-center gap-3 rounded-lg px-2 py-1.5 text-left transition-colors\",\n nonInteractive\n ? \"cursor-default\"\n : \"cursor-pointer data-[highlighted]:bg-kumo-overlay\",\n )}\n >\n {icon && (\n <div className=\"flex flex-shrink-0 items-center text-kumo-subtle\">\n {icon}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2 truncate\">\n {breadcrumbs?.map((crumb, index) => (\n <span key={index} className=\"flex items-center gap-2\">\n <HighlightedText\n text={crumb}\n highlights={breadcrumbHighlights?.[index]}\n className=\"text-base text-kumo-default\"\n />\n <CaretRightIcon\n className=\"h-3 w-3 flex-shrink-0 text-kumo-subtle\"\n weight=\"bold\"\n />\n </span>\n ))}\n <HighlightedText\n text={title}\n highlights={titleHighlights}\n className=\"text-base text-kumo-default\"\n />\n {external && (\n <ArrowSquareOutIcon className=\"h-3.5 w-3.5 flex-shrink-0 text-kumo-subtle\" />\n )}\n {description && (\n <>\n <span className=\"text-kumo-subtle\">—</span>\n <span className=\"truncate text-sm text-kumo-subtle\">\n {description}\n </span>\n </>\n )}\n </div>\n </div>\n {showArrow && !external && !nonInteractive && (\n <ArrowRightIcon className=\"h-4 w-4 flex-shrink-0 text-kumo-subtle opacity-0 transition-opacity group-data-[highlighted]:opacity-100\" />\n )}\n </Autocomplete.Item>\n );\n}\n\n/**\n * Container component - Internal styled wrapper.\n */\nfunction Container({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n \"flex max-h-[60vh] flex-col overflow-hidden rounded-lg bg-kumo-elevated\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\n/**\n * Panel context for passing handlers from Panel to children\n */\ninterface PanelContextValue {\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\nconst PanelContext = createContext<PanelContextValue>({});\n\n/**\n * Props for the Panel component\n */\ninterface PanelProps<TGroup, TItem = TGroup> {\n /** Child components (Input, List, Footer, etc.) */\n children: React.ReactNode;\n /** Items for the autocomplete */\n items: TGroup[];\n /** Controlled input value */\n value?: string;\n /** Callback when input value changes */\n onValueChange?: (value: string) => void;\n /** Callback when an item is highlighted */\n onItemHighlighted?: (\n item: TGroup | undefined,\n details: { reason: string; event: Event; index: number },\n ) => void;\n /** Convert item to string for accessibility */\n itemToStringValue?: (item: TGroup) => string;\n /** Custom filter function */\n filter?: (item: TGroup, query: string) => boolean;\n /** Whether the panel is active/open (for autocomplete state) */\n open?: boolean;\n /** Optional className for the container */\n className?: string;\n /**\n * Callback when an item is selected via Cmd/Ctrl+Enter.\n * Requires getSelectableItems to be provided.\n */\n onSelect?: (item: TItem, options: { newTab: boolean }) => void;\n /**\n * Function to get flat list of selectable items from groups.\n * Required when items are grouped and onSelect is used.\n */\n getSelectableItems?: (items: TGroup[]) => TItem[];\n}\n\n/**\n * Panel component - Command palette without dialog wrapper.\n *\n * Use this when you need to render command palette content inside an existing dialog\n * (e.g., for drill-down navigation where the dialog stays open but content changes).\n *\n * Combines Container + Autocomplete functionality with a clean API.\n *\n * @example\n * ```tsx\n * <DialogRoot open={open} onOpenChange={setOpen}>\n * <Dialog>\n * <CommandPalette.Panel\n * items={results}\n * value={searchTerm}\n * onValueChange={setSearchTerm}\n * itemToStringValue={(group) => group.label}\n * >\n * <CommandPalette.Input placeholder=\"Search...\" />\n * <CommandPalette.List>\n * <CommandPalette.Results>\n * {(group) => (\n * <CommandPalette.Group items={group.items}>\n * <CommandPalette.GroupLabel>{group.label}</CommandPalette.GroupLabel>\n * <CommandPalette.Items>\n * {(item) => <CommandPalette.ResultItem ... />}\n * </CommandPalette.Items>\n * </CommandPalette.Group>\n * )}\n * </CommandPalette.Results>\n * <CommandPalette.Empty>No results</CommandPalette.Empty>\n * </CommandPalette.List>\n * <CommandPalette.Footer>...</CommandPalette.Footer>\n * </CommandPalette.Panel>\n * </Dialog>\n * </DialogRoot>\n * ```\n */\nconst defaultFilter = () => true;\n\nfunction Panel<TGroup, TItem = TGroup>({\n children,\n items,\n value,\n onValueChange,\n onItemHighlighted,\n itemToStringValue,\n filter = defaultFilter,\n open = true,\n className,\n onSelect,\n getSelectableItems,\n}: PanelProps<TGroup, TItem>) {\n const highlightedIndexRef = useRef<number>(-1);\n\n const handleItemHighlighted = useCallback(\n (\n item: TGroup | undefined,\n details: { reason: string; event: Event; index: number },\n ) => {\n highlightedIndexRef.current = details.index;\n onItemHighlighted?.(item, details);\n },\n [onItemHighlighted],\n );\n\n // Handle Cmd/Ctrl+Enter for new tab selection\n const handleInputKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const isEnter = e.key === \"Enter\";\n const withModifier = e.metaKey || e.ctrlKey;\n\n if (isEnter && withModifier && onSelect && getSelectableItems) {\n const selectableItems = getSelectableItems(items);\n const highlightedItem = selectableItems[highlightedIndexRef.current];\n\n if (highlightedItem !== undefined) {\n e.preventDefault();\n onSelect(highlightedItem, { newTab: true });\n }\n }\n },\n [items, onSelect, getSelectableItems],\n );\n\n return (\n <Container className={className}>\n <Autocomplete.Root\n items={items}\n value={value}\n onValueChange={onValueChange}\n onItemHighlighted={handleItemHighlighted}\n itemToStringValue={itemToStringValue}\n filter={filter}\n autoHighlight=\"always\"\n keepHighlight\n open={open}\n >\n <PanelContext.Provider value={{ onInputKeyDown: handleInputKeyDown }}>\n {children}\n </PanelContext.Provider>\n </Autocomplete.Root>\n </Container>\n );\n}\n\n/**\n * PanelInput component - Input that works inside Panel.\n *\n * Similar to Input but designed for use with Panel instead of Root.\n * Automatically wires up Cmd/Ctrl+Enter handling from Panel.\n */\nfunction PanelInput({\n autoFocus = true,\n placeholder,\n className,\n onKeyDown: onKeyDownProp,\n leading,\n trailing,\n ...props\n}: CommandPaletteInputProps) {\n const { onInputKeyDown } = useContext(PanelContext);\n const { onClose } = useContext(DialogContext);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n // Let consumer handle first (e.g., for custom Escape/Backspace behavior)\n onKeyDownProp?.(e);\n if (e.defaultPrevented) return;\n\n // Handle Escape to close the dialog\n if (e.key === \"Escape\" && onClose) {\n e.preventDefault();\n onClose();\n return;\n }\n onInputKeyDown?.(e);\n },\n [onInputKeyDown, onKeyDownProp, onClose],\n );\n\n return (\n <InputHeader leading={leading} trailing={trailing}>\n <Autocomplete.Input\n placeholder={placeholder}\n className={cn(\n \"flex-1 border-none bg-transparent text-base kumo-input-placeholder\",\n \"outline-none\",\n className,\n )}\n onKeyDown={handleKeyDown}\n // oxlint-disable-next-line no-autofocus -- Command palette input should autofocus for keyboard-driven UX\n autoFocus={autoFocus}\n {...props}\n />\n </InputHeader>\n );\n}\n\n/**\n * Render prop iterators - wrap base-ui primitives with cleaner names.\n */\n\n/**\n * Results component - Render prop iterator for groups.\n *\n * Wraps Autocomplete.List with default spacing between groups.\n */\nfunction Results({\n children,\n className,\n}: React.ComponentProps<typeof Autocomplete.List> & { className?: string }) {\n return (\n <Autocomplete.List className={cn(\"space-y-3\", className)}>\n {children}\n </Autocomplete.List>\n );\n}\n\nconst Items = Autocomplete.Collection;\n\n/** CommandPalette variant definitions (no user-facing variants; structure reserved for future use). */\nexport const KUMO_COMMAND_PALETTE_VARIANTS = {} as const;\n\nexport const KUMO_COMMAND_PALETTE_DEFAULT_VARIANTS = {} as const;\n\n/**\n * CommandPalette — accessible command palette / spotlight search overlay.\n *\n * Compound component: `CommandPalette.Root` (or `.Dialog` + `.Panel`),\n * `.Input`, `.List`, `.Results`, `.Items`, `.Group`, `.GroupLabel`,\n * `.Item`, `.ResultItem`, `.HighlightedText`, `.Empty`, `.Loading`, `.Footer`.\n *\n * Built on `@base-ui/react/autocomplete` + `@base-ui/react/dialog`.\n *\n * @example\n * ```tsx\n * <CommandPalette.Root\n * open={open}\n * onOpenChange={setOpen}\n * items={results}\n * value={query}\n * onValueChange={setQuery}\n * itemToStringValue={(g) => g.label}\n * onSelect={(item, { newTab }) => navigate(item, newTab)}\n * getSelectableItems={(groups) => groups.flatMap((g) => g.items)}\n * >\n * <CommandPalette.Input placeholder=\"Search…\" />\n * <CommandPalette.List>\n * <CommandPalette.Results>\n * {(group) => (\n * <CommandPalette.Group items={group.items}>\n * <CommandPalette.GroupLabel>{group.label}</CommandPalette.GroupLabel>\n * <CommandPalette.Items>\n * {(item) => (\n * <CommandPalette.ResultItem title={item.title} value={item} onClick={…} />\n * )}\n * </CommandPalette.Items>\n * </CommandPalette.Group>\n * )}\n * </CommandPalette.Results>\n * <CommandPalette.Empty>No results found</CommandPalette.Empty>\n * </CommandPalette.List>\n * <CommandPalette.Footer>…keyboard hints…</CommandPalette.Footer>\n * </CommandPalette.Root>\n * ```\n */\nexport const CommandPalette = {\n /** Modal dialog wrapper - use with Panel for content that can swap */\n Dialog,\n /** Dialog + Panel combined - for simple single-view command palettes */\n Root,\n /** Autocomplete panel without dialog - use inside Dialog for swappable content */\n Panel,\n /** Input for use inside Panel */\n Input: PanelInput,\n /** Scrollable results container */\n List,\n /** Category grouping */\n Group,\n /** Section header text */\n GroupLabel,\n /** Basic item */\n Item,\n /** Rich item with breadcrumbs, highlights, icons */\n ResultItem,\n /** Text with highlighted portions */\n HighlightedText,\n /** Empty state */\n Empty,\n /** Loading state */\n Loading,\n /** Footer for keyboard hints */\n Footer,\n /** Render prop iterator for groups */\n Results,\n /** Render prop iterator for items within a group */\n Items,\n};\n"],"names":["DialogContext","createContext","Dialog","open","onOpenChange","onBackdropClick","children","containerProp","contextContainer","usePortalContainer","container","handleBackdropClick","e","handleClose","useCallback","jsx","DialogBase.Root","jsxs","DialogBase.Portal","DialogBase.Backdrop","LayerCard","DialogBase.Popup","cn","Root","items","value","onValueChange","onItemHighlighted","itemToStringValue","filter","onSelect","getSelectableItems","Panel","InputHeader","leading","trailing","MagnifyingGlassIcon","List","forwardRef","className","ref","Group","props","Autocomplete.Group","GroupLabel","Autocomplete.GroupLabel","Item","disabled","onClick","Autocomplete.Item","Empty","Autocomplete.Empty","Loading","Loader","Footer","HighlightedText","text","highlights","sortedHighlights","a","b","mergedHighlights","range","last","parts","lastIndex","i","start","end","ResultItem","title","breadcrumbs","titleHighlights","breadcrumbHighlights","description","icon","showArrow","external","nonInteractive","crumb","index","CaretRightIcon","ArrowSquareOutIcon","Fragment","ArrowRightIcon","Container","PanelContext","defaultFilter","highlightedIndexRef","useRef","handleItemHighlighted","item","details","handleInputKeyDown","isEnter","withModifier","highlightedItem","Autocomplete.Root","PanelInput","autoFocus","placeholder","onKeyDownProp","onInputKeyDown","useContext","onClose","handleKeyDown","Autocomplete.Input","Results","Autocomplete.List","Items","Autocomplete.Collection","KUMO_COMMAND_PALETTE_VARIANTS","KUMO_COMMAND_PALETTE_DEFAULT_VARIANTS","CommandPalette"],"mappings":"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"}
@@ -71,10 +71,10 @@ function J({
71
71
  timezone: d = "New York, NY, USA (GMT-4)",
72
72
  className: h
73
73
  }) {
74
- const [r, A] = C(null), [s, x] = C(null), [n, E] = C(/* @__PURE__ */ new Date()), [v, w] = C(null), z = y(g), R = (a) => {
75
- A(a), c(a);
74
+ const [r, x] = C(null), [s, A] = C(null), [n, E] = C(/* @__PURE__ */ new Date()), [v, w] = C(null), z = y(g), R = (a) => {
75
+ x(a), c(a);
76
76
  }, W = (a) => {
77
- x(a), u(a);
77
+ A(a), u(a);
78
78
  }, T = p((a, e) => {
79
79
  const t = new Date(a);
80
80
  return t.setMonth(t.getMonth() + (e || 0)), t.toLocaleString("default", { month: "long" });
@@ -269,7 +269,7 @@ function F({
269
269
  onClick: D,
270
270
  isHoveringDate: d
271
271
  }) {
272
- const h = y(g), r = p((n) => n.getDate(), []), A = p(() => {
272
+ const h = y(g), r = p((n) => n.getDate(), []), x = p(() => {
273
273
  switch (u) {
274
274
  case 0:
275
275
  return "bg-transparent";
@@ -288,14 +288,14 @@ function F({
288
288
  switch (u) {
289
289
  case 0:
290
290
  case 5:
291
- return "!text-kumo-strong";
291
+ return "!text-kumo-subtle";
292
292
  case 2:
293
293
  case 3:
294
294
  return "!text-kumo-inverse";
295
295
  default:
296
296
  return "text-kumo-default";
297
297
  }
298
- }, [u]), x = p(() => {
298
+ }, [u]), A = p(() => {
299
299
  const n = c.toLocaleDateString("en-US", {
300
300
  weekday: "long",
301
301
  month: "long",
@@ -317,7 +317,7 @@ function F({
317
317
  "button",
318
318
  {
319
319
  type: "button",
320
- "aria-label": x(),
320
+ "aria-label": A(),
321
321
  id: c.toDateString(),
322
322
  className: b(
323
323
  h.cellHeight,
@@ -326,7 +326,7 @@ function F({
326
326
  "cursor-pointer text-center text-kumo-default transition-all duration-[50]",
327
327
  `leading-[${h.cellHeight.replace("h-[", "").replace("]", "")}]`,
328
328
  u !== 0 && u !== 5 ? "hover:bg-kumo-interact" : "",
329
- A(),
329
+ x(),
330
330
  s()
331
331
  ),
332
332
  onClick: () => D?.(c),
@@ -350,7 +350,7 @@ function $({
350
350
  "aria-label": "Edit month and year",
351
351
  defaultValue: `${c} ${u}`,
352
352
  className: b(
353
- "w-full rounded-md border-none bg-transparent py-1.5 text-center font-semibold text-kumo-default transition-all duration-200 focus:outline-none",
353
+ "w-full rounded-md border-none bg-transparent py-1.5 text-center font-semibold text-kumo-default transition-all duration-200 focus:outline-none focus:ring-kumo-focus/50 focus:ring-[1.5px]",
354
354
  d.textSize
355
355
  ),
356
356
  onBlur: (h) => {
@@ -382,7 +382,7 @@ function Y({
382
382
  return /* @__PURE__ */ M(
383
383
  "div",
384
384
  {
385
- className: b("flex items-center gap-2 text-kumo-strong", D.textSize),
385
+ className: b("flex items-center gap-2 text-kumo-subtle", D.textSize),
386
386
  children: [
387
387
  /* @__PURE__ */ i(P, { size: D.iconSize }),
388
388
  /* @__PURE__ */ M("span", { className: "flex-1", children: [
@@ -405,4 +405,4 @@ function Y({
405
405
  export {
406
406
  J as D
407
407
  };
408
- //# sourceMappingURL=date-range-picker-j318zxjyqz4o3dak.js.map
408
+ //# sourceMappingURL=date-range-picker-o8uyril1kogvhoei.js.map