@cloudflare/kumo 2.3.1 → 2.4.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 (228) hide show
  1. package/CHANGELOG.md +82 -2
  2. package/ai/component-registry.json +166 -123
  3. package/ai/component-registry.md +349 -215
  4. package/ai/schemas.ts +7 -2
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +46 -34
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/ai/schemas.js +12 -4
  9. package/dist/ai/schemas.js.map +1 -1
  10. package/dist/chunks/SankeyChart-npoyr1j06svoxsfe.js +770 -0
  11. package/dist/chunks/SankeyChart-npoyr1j06svoxsfe.js.map +1 -0
  12. package/dist/chunks/{autocomplete-bdjo7k4zep86bwh8.js → autocomplete-d0w42h1frdu03df6.js} +29 -25
  13. package/dist/chunks/{autocomplete-bdjo7k4zep86bwh8.js.map → autocomplete-d0w42h1frdu03df6.js.map} +1 -1
  14. package/dist/chunks/{badge-e9w8qrjmeu9nocf6.js → badge-c1th6h6ahz7eu49q.js} +2 -2
  15. package/dist/chunks/badge-c1th6h6ahz7eu49q.js.map +1 -0
  16. package/dist/chunks/banner-es5iwuk4pf25e29e.js +120 -0
  17. package/dist/chunks/banner-es5iwuk4pf25e29e.js.map +1 -0
  18. package/dist/chunks/{breadcrumbs-g4pyoikibpoxsgw4.js → breadcrumbs-j214mimk5zj4ffp4.js} +8 -6
  19. package/dist/chunks/breadcrumbs-j214mimk5zj4ffp4.js.map +1 -0
  20. package/dist/chunks/{button-fxdpoacmq5rv1adk.js → button-mnrxu6dud2x5js5b.js} +19 -17
  21. package/dist/chunks/{button-fxdpoacmq5rv1adk.js.map → button-mnrxu6dud2x5js5b.js.map} +1 -1
  22. package/dist/chunks/{checkbox-dtoq56ieijj9m6vr.js → checkbox-dqih8tzzt3vhp870.js} +25 -19
  23. package/dist/chunks/checkbox-dqih8tzzt3vhp870.js.map +1 -0
  24. package/dist/chunks/{clipboard-text-nvdsloomefwgcxat.js → clipboard-text-mrut8z3dt1w0efxz.js} +4 -4
  25. package/dist/chunks/{clipboard-text-nvdsloomefwgcxat.js.map → clipboard-text-mrut8z3dt1w0efxz.js.map} +1 -1
  26. package/dist/chunks/{collapsible-cnsxmp7dko87pgx0.js → collapsible-nzqcf9zwnjkxqzr6.js} +21 -17
  27. package/dist/chunks/collapsible-nzqcf9zwnjkxqzr6.js.map +1 -0
  28. package/dist/chunks/{combobox-kjmt3aoy4sia7g0o.js → combobox-msvukodjsqzlvpqc.js} +142 -130
  29. package/dist/chunks/combobox-msvukodjsqzlvpqc.js.map +1 -0
  30. package/dist/chunks/{command-palette-jrq7p16tff6n46nj.js → command-palette-fqhyacp33fhyf696.js} +5 -5
  31. package/dist/chunks/{command-palette-jrq7p16tff6n46nj.js.map → command-palette-fqhyacp33fhyf696.js.map} +1 -1
  32. package/dist/chunks/{dialog-gndju3sqg1lmpb3f.js → dialog-my9fioafdstq50mi.js} +49 -33
  33. package/dist/chunks/{dialog-gndju3sqg1lmpb3f.js.map → dialog-my9fioafdstq50mi.js.map} +1 -1
  34. package/dist/chunks/{dropdown-k6orz4j043xybf54.js → dropdown-g4sb4cw9ffqaw5gx.js} +54 -44
  35. package/dist/chunks/dropdown-g4sb4cw9ffqaw5gx.js.map +1 -0
  36. package/dist/chunks/{empty-ni12ufom1kkakbuc.js → empty-n17inn1z67bpohkw.js} +2 -2
  37. package/dist/chunks/{empty-ni12ufom1kkakbuc.js.map → empty-n17inn1z67bpohkw.js.map} +1 -1
  38. package/dist/chunks/{field-n16udu32tpyq5udz.js → field-c8o7h3rlam4c9pcx.js} +3 -3
  39. package/dist/chunks/{field-n16udu32tpyq5udz.js.map → field-c8o7h3rlam4c9pcx.js.map} +1 -1
  40. package/dist/chunks/{input-area-hhhpgg0ev8bowtrk.js → input-area-eurk3seud30ricwn.js} +4 -4
  41. package/dist/chunks/{input-area-hhhpgg0ev8bowtrk.js.map → input-area-eurk3seud30ricwn.js.map} +1 -1
  42. package/dist/chunks/{input-mv7giprcc6hfkpq3.js → input-en8hhb14mmt3tfwn.js} +3 -3
  43. package/dist/chunks/{input-mv7giprcc6hfkpq3.js.map → input-en8hhb14mmt3tfwn.js.map} +1 -1
  44. package/dist/chunks/{input-group-kkw5j7rwzhj66h10.js → input-group-d09ocmjcbdai0gze.js} +5 -5
  45. package/dist/chunks/{input-group-kkw5j7rwzhj66h10.js.map → input-group-d09ocmjcbdai0gze.js.map} +1 -1
  46. package/dist/chunks/{label-f6yvqca8qhbpvkq8.js → label-c8rz453pti66slki.js} +3 -3
  47. package/dist/chunks/{label-f6yvqca8qhbpvkq8.js.map → label-c8rz453pti66slki.js.map} +1 -1
  48. package/dist/chunks/{layer-card-gegkqhkjy65l1ueo.js → layer-card-er4flkcxmzfug8jw.js} +2 -2
  49. package/dist/chunks/{layer-card-gegkqhkjy65l1ueo.js.map → layer-card-er4flkcxmzfug8jw.js.map} +1 -1
  50. package/dist/chunks/{link-jjk7qolyol7s1jkk.js → link-i6vnwyjcwvjz5btm.js} +20 -19
  51. package/dist/chunks/{link-jjk7qolyol7s1jkk.js.map → link-i6vnwyjcwvjz5btm.js.map} +1 -1
  52. package/dist/chunks/menubar-ng5if56amh1tto4j.js +98 -0
  53. package/dist/chunks/menubar-ng5if56amh1tto4j.js.map +1 -0
  54. package/dist/chunks/{meter-kxn34sy6l2mz5dwq.js → meter-d5igshkjqttl1fdj.js} +2 -2
  55. package/dist/chunks/{meter-kxn34sy6l2mz5dwq.js.map → meter-d5igshkjqttl1fdj.js.map} +1 -1
  56. package/dist/chunks/{pagination-ixbq8ssuuo0jxaa4.js → pagination-bw7vwca4wrfjm8vb.js} +3 -3
  57. package/dist/chunks/{pagination-ixbq8ssuuo0jxaa4.js.map → pagination-bw7vwca4wrfjm8vb.js.map} +1 -1
  58. package/dist/chunks/{popover-js5ds3szd43kspja.js → popover-ozf1j7oi7pxiudyz.js} +4 -2
  59. package/dist/chunks/popover-ozf1j7oi7pxiudyz.js.map +1 -0
  60. package/dist/chunks/{radio-nyw89v4eafptepmz.js → radio-gpg6kmzonr2cayq1.js} +54 -46
  61. package/dist/chunks/radio-gpg6kmzonr2cayq1.js.map +1 -0
  62. package/dist/chunks/{select-o2i7aovnu8v1zv8t.js → select-dw9iw35ug7yer3o3.js} +101 -91
  63. package/dist/chunks/select-dw9iw35ug7yer3o3.js.map +1 -0
  64. package/dist/chunks/{sensitive-input-bjg6m791yz7g6bn3.js → sensitive-input-dgoxjtoxl4zqa51v.js} +50 -44
  65. package/dist/chunks/{sensitive-input-bjg6m791yz7g6bn3.js.map → sensitive-input-dgoxjtoxl4zqa51v.js.map} +1 -1
  66. package/dist/chunks/sidebar-hzio700cg85f7f31.js +1014 -0
  67. package/dist/chunks/sidebar-hzio700cg85f7f31.js.map +1 -0
  68. package/dist/chunks/{surface-lzwbh3f5t0gxc83t.js → surface-iyejjbqogjbo7ise.js} +2 -2
  69. package/dist/chunks/{surface-lzwbh3f5t0gxc83t.js.map → surface-iyejjbqogjbo7ise.js.map} +1 -1
  70. package/dist/chunks/{switch-d9cs31oj4rjtg717.js → switch-g8f77h69h34xld06.js} +50 -45
  71. package/dist/chunks/switch-g8f77h69h34xld06.js.map +1 -0
  72. package/dist/chunks/{table-c6qemc2jmv22cv3p.js → table-e1te1im2tt2ez05y.js} +2 -2
  73. package/dist/chunks/{table-c6qemc2jmv22cv3p.js.map → table-e1te1im2tt2ez05y.js.map} +1 -1
  74. package/dist/chunks/{table-of-contents-fzyv7uhnnyr13dqu.js → table-of-contents-jco9kvt48d34dwsw.js} +34 -30
  75. package/dist/chunks/table-of-contents-jco9kvt48d34dwsw.js.map +1 -0
  76. package/dist/chunks/{tabs-f0ztlooi91ko9g04.js → tabs-hice1yy5q2t889z8.js} +6 -4
  77. package/dist/chunks/tabs-hice1yy5q2t889z8.js.map +1 -0
  78. package/dist/chunks/{toast-ejfm5cbt9yulqhol.js → toast-kvbgct0jvfmn4mas.js} +29 -27
  79. package/dist/chunks/{toast-ejfm5cbt9yulqhol.js.map → toast-kvbgct0jvfmn4mas.js.map} +1 -1
  80. package/dist/chunks/{tooltip-o6xfw9jjclv9pxaj.js → tooltip-ken77ixya0qpidie.js} +6 -6
  81. package/dist/chunks/{tooltip-o6xfw9jjclv9pxaj.js.map → tooltip-ken77ixya0qpidie.js.map} +1 -1
  82. package/dist/chunks/{vendor-base-ui-mzjqwv5teijixz8h.js → vendor-base-ui-knphx7dts1vm1x37.js} +1726 -1719
  83. package/dist/chunks/{vendor-base-ui-mzjqwv5teijixz8h.js.map → vendor-base-ui-knphx7dts1vm1x37.js.map} +1 -1
  84. package/dist/code.js +1 -1
  85. package/dist/components/autocomplete.js +1 -1
  86. package/dist/components/badge.js +1 -1
  87. package/dist/components/banner.js +1 -1
  88. package/dist/components/breadcrumbs.js +1 -1
  89. package/dist/components/button.js +1 -1
  90. package/dist/components/chart.js +1 -1
  91. package/dist/components/checkbox.js +1 -1
  92. package/dist/components/clipboard-text.js +1 -1
  93. package/dist/components/collapsible.js +1 -1
  94. package/dist/components/combobox.js +1 -1
  95. package/dist/components/command-palette.js +1 -1
  96. package/dist/components/dialog.js +1 -1
  97. package/dist/components/dropdown.js +1 -1
  98. package/dist/components/empty.js +1 -1
  99. package/dist/components/field.js +1 -1
  100. package/dist/components/input-group.js +1 -1
  101. package/dist/components/input.js +3 -3
  102. package/dist/components/label.js +1 -1
  103. package/dist/components/layer-card.js +1 -1
  104. package/dist/components/link.js +1 -1
  105. package/dist/components/menubar.js +1 -1
  106. package/dist/components/meter.js +1 -1
  107. package/dist/components/pagination.js +1 -1
  108. package/dist/components/popover.js +1 -1
  109. package/dist/components/radio.js +1 -1
  110. package/dist/components/select.js +1 -1
  111. package/dist/components/sensitive-input.js +1 -1
  112. package/dist/components/sidebar.js +22 -23
  113. package/dist/components/surface.js +1 -1
  114. package/dist/components/switch.js +1 -1
  115. package/dist/components/table-of-contents.js +1 -1
  116. package/dist/components/table.js +1 -1
  117. package/dist/components/tabs.js +1 -1
  118. package/dist/components/toast.js +2 -2
  119. package/dist/components/tooltip.js +1 -1
  120. package/dist/index.js +122 -123
  121. package/dist/primitives/accordion.js +1 -1
  122. package/dist/primitives/alert-dialog.js +1 -1
  123. package/dist/primitives/autocomplete.js +1 -1
  124. package/dist/primitives/avatar.js +1 -1
  125. package/dist/primitives/button.js +1 -1
  126. package/dist/primitives/checkbox-group.js +1 -1
  127. package/dist/primitives/checkbox.js +1 -1
  128. package/dist/primitives/collapsible.js +1 -1
  129. package/dist/primitives/combobox.js +1 -1
  130. package/dist/primitives/context-menu.js +1 -1
  131. package/dist/primitives/csp-provider.js +1 -1
  132. package/dist/primitives/dialog.js +1 -1
  133. package/dist/primitives/direction-provider.js +1 -1
  134. package/dist/primitives/drawer.js +1 -1
  135. package/dist/primitives/field.js +1 -1
  136. package/dist/primitives/fieldset.js +1 -1
  137. package/dist/primitives/form.js +1 -1
  138. package/dist/primitives/input.js +1 -1
  139. package/dist/primitives/menu.js +1 -1
  140. package/dist/primitives/menubar.js +1 -1
  141. package/dist/primitives/meter.js +1 -1
  142. package/dist/primitives/navigation-menu.js +1 -1
  143. package/dist/primitives/number-field.js +1 -1
  144. package/dist/primitives/otp-field.js +1 -1
  145. package/dist/primitives/popover.js +1 -1
  146. package/dist/primitives/preview-card.js +1 -1
  147. package/dist/primitives/progress.js +1 -1
  148. package/dist/primitives/radio-group.js +1 -1
  149. package/dist/primitives/radio.js +1 -1
  150. package/dist/primitives/scroll-area.js +1 -1
  151. package/dist/primitives/select.js +1 -1
  152. package/dist/primitives/separator.js +1 -1
  153. package/dist/primitives/slider.js +1 -1
  154. package/dist/primitives/switch.js +1 -1
  155. package/dist/primitives/tabs.js +1 -1
  156. package/dist/primitives/toast.js +1 -1
  157. package/dist/primitives/toggle-group.js +1 -1
  158. package/dist/primitives/toggle.js +1 -1
  159. package/dist/primitives/toolbar.js +1 -1
  160. package/dist/primitives/tooltip.js +1 -1
  161. package/dist/primitives.js +1 -1
  162. package/dist/scripts/theme-generator/config.d.ts.map +1 -1
  163. package/dist/scripts/theme-generator/config.js +36 -38
  164. package/dist/scripts/theme-generator/config.js.map +1 -1
  165. package/dist/scripts/theme-generator/generate-css.d.ts.map +1 -1
  166. package/dist/scripts/theme-generator/types.d.ts +8 -2
  167. package/dist/scripts/theme-generator/types.d.ts.map +1 -1
  168. package/dist/src/components/autocomplete/autocomplete.d.ts +1 -0
  169. package/dist/src/components/autocomplete/autocomplete.d.ts.map +1 -1
  170. package/dist/src/components/autocomplete/index.d.ts +1 -0
  171. package/dist/src/components/autocomplete/index.d.ts.map +1 -1
  172. package/dist/src/components/badge/badge.d.ts +1 -1
  173. package/dist/src/components/banner/banner.d.ts +14 -7
  174. package/dist/src/components/banner/banner.d.ts.map +1 -1
  175. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  176. package/dist/src/components/button/button.d.ts.map +1 -1
  177. package/dist/src/components/chart/TimeseriesChart.d.ts +43 -1
  178. package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -1
  179. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  180. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
  181. package/dist/src/components/combobox/combobox.d.ts +1 -0
  182. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  183. package/dist/src/components/combobox/index.d.ts +1 -0
  184. package/dist/src/components/combobox/index.d.ts.map +1 -1
  185. package/dist/src/components/dialog/dialog.d.ts.map +1 -1
  186. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
  187. package/dist/src/components/link/link.d.ts.map +1 -1
  188. package/dist/src/components/menubar/menubar.d.ts.map +1 -1
  189. package/dist/src/components/popover/popover.d.ts.map +1 -1
  190. package/dist/src/components/radio/radio.d.ts.map +1 -1
  191. package/dist/src/components/select/select.d.ts.map +1 -1
  192. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
  193. package/dist/src/components/sidebar/index.d.ts +1 -1
  194. package/dist/src/components/sidebar/index.d.ts.map +1 -1
  195. package/dist/src/components/sidebar/sidebar.d.ts +159 -146
  196. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -1
  197. package/dist/src/components/switch/switch.d.ts.map +1 -1
  198. package/dist/src/components/table-of-contents/table-of-contents.d.ts.map +1 -1
  199. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  200. package/dist/src/index.d.ts +1 -1
  201. package/dist/src/index.d.ts.map +1 -1
  202. package/dist/styles/kumo-standalone.css +1 -1
  203. package/dist/styles/kumo.css +37 -0
  204. package/dist/styles/theme-kumo.css +28 -35
  205. package/package.json +4 -1
  206. package/scripts/theme-generator/config.ts +37 -39
  207. package/scripts/theme-generator/generate-css.ts +4 -1
  208. package/scripts/theme-generator/types.ts +8 -2
  209. package/dist/chunks/SankeyChart-krkvltewpn3bbupw.js +0 -651
  210. package/dist/chunks/SankeyChart-krkvltewpn3bbupw.js.map +0 -1
  211. package/dist/chunks/badge-e9w8qrjmeu9nocf6.js.map +0 -1
  212. package/dist/chunks/banner-ip2lm8r87hich557.js +0 -88
  213. package/dist/chunks/banner-ip2lm8r87hich557.js.map +0 -1
  214. package/dist/chunks/breadcrumbs-g4pyoikibpoxsgw4.js.map +0 -1
  215. package/dist/chunks/checkbox-dtoq56ieijj9m6vr.js.map +0 -1
  216. package/dist/chunks/collapsible-cnsxmp7dko87pgx0.js.map +0 -1
  217. package/dist/chunks/combobox-kjmt3aoy4sia7g0o.js.map +0 -1
  218. package/dist/chunks/dropdown-k6orz4j043xybf54.js.map +0 -1
  219. package/dist/chunks/menubar-d5s6h96nw8ggy04a.js +0 -96
  220. package/dist/chunks/menubar-d5s6h96nw8ggy04a.js.map +0 -1
  221. package/dist/chunks/popover-js5ds3szd43kspja.js.map +0 -1
  222. package/dist/chunks/radio-nyw89v4eafptepmz.js.map +0 -1
  223. package/dist/chunks/select-o2i7aovnu8v1zv8t.js.map +0 -1
  224. package/dist/chunks/sidebar-izcfqkrzt4vqn8ez.js +0 -875
  225. package/dist/chunks/sidebar-izcfqkrzt4vqn8ez.js.map +0 -1
  226. package/dist/chunks/switch-d9cs31oj4rjtg717.js.map +0 -1
  227. package/dist/chunks/table-of-contents-fzyv7uhnnyr13dqu.js.map +0 -1
  228. package/dist/chunks/tabs-f0ztlooi91ko9g04.js.map +0 -1
@@ -197,8 +197,8 @@
197
197
  );
198
198
 
199
199
  --color-kumo-info: light-dark(
200
- var(--color-blue-300, oklch(80.9% 0.105 251.813)),
201
- var(--color-blue-900, oklch(37.9% 0.146 265.522))
200
+ var(--color-blue-500, oklch(68.5% 0.169 237.323)),
201
+ var(--color-blue-400, oklch(70.7% 0.165 254.624))
202
202
  );
203
203
 
204
204
  --color-kumo-warning-tint: light-dark(
@@ -207,8 +207,8 @@
207
207
  );
208
208
 
209
209
  --color-kumo-warning: light-dark(
210
- var(--color-yellow-300, oklch(90.5% 0.182 98.111)),
211
- var(--color-yellow-900, oklch(42.1% 0.095 57.708))
210
+ var(--color-yellow-500, oklch(79.5% 0.184 86.047)),
211
+ var(--color-yellow-400, oklch(85.2% 0.199 91.936))
212
212
  );
213
213
 
214
214
  --color-kumo-danger-tint: light-dark(
@@ -218,7 +218,7 @@
218
218
 
219
219
  --color-kumo-danger: light-dark(
220
220
  var(--color-red-500, oklch(63.7% 0.237 25.331)),
221
- var(--color-red-900, oklch(39.6% 0.141 25.723))
221
+ var(--color-red-400, oklch(70.4% 0.191 22.216))
222
222
  );
223
223
 
224
224
  --color-kumo-success-tint: light-dark(
@@ -227,8 +227,18 @@
227
227
  );
228
228
 
229
229
  --color-kumo-success: light-dark(
230
- var(--color-green-300, oklch(87.1% 0.15 154.449)),
231
- var(--color-green-900, oklch(39.3% 0.095 152.535))
230
+ var(--color-emerald-600, oklch(59.6% 0.145 163.225)),
231
+ var(--color-emerald-400, oklch(76.5% 0.177 163.223))
232
+ );
233
+
234
+ --color-kumo-banner-info: light-dark(
235
+ oklch(93.2% 0.032 255.585 / 0.7),
236
+ oklch(37.9% 0.146 265.522 / 0.5)
237
+ );
238
+
239
+ --color-kumo-banner-warning: light-dark(
240
+ var(--color-yellow-100, oklch(97.3% 0.071 103.193)),
241
+ oklch(55.4% 0.135 66.442 / 0.5)
232
242
  );
233
243
 
234
244
  --color-kumo-badge-red: light-dark(
@@ -241,31 +251,16 @@
241
251
  var(--color-orange-650, oklch(81.5% 0.197 76))
242
252
  );
243
253
 
244
- --color-kumo-badge-orange-subtle: light-dark(
245
- var(--color-orange-100, oklch(95.4% 0.038 75.164)),
246
- var(--color-orange-900, oklch(40.8% 0.123 38.172))
247
- );
248
-
249
254
  --color-kumo-badge-purple: light-dark(
250
255
  var(--color-purple-600, oklch(60% 0.118 184.704)),
251
256
  var(--color-purple-700, oklch(50.8% 0.118 165.612))
252
257
  );
253
258
 
254
- --color-kumo-badge-green: light-dark(
255
- var(--color-emerald-500, oklch(69.6% 0.17 162.48)),
256
- var(--color-emerald-400, oklch(76.5% 0.177 163.223))
257
- );
258
-
259
259
  --color-kumo-badge-teal: light-dark(
260
260
  var(--color-teal-650, oklch(54.9% 0.096 184.565)),
261
261
  var(--color-teal-700, oklch(51.1% 0.096 186.391))
262
262
  );
263
263
 
264
- --color-kumo-badge-teal-subtle: light-dark(
265
- var(--color-teal-100, oklch(95.3% 0.051 180.801)),
266
- var(--color-teal-900, oklch(38.6% 0.063 188.416))
267
- );
268
-
269
264
  --color-kumo-badge-blue: light-dark(
270
265
  var(--color-blue-600, oklch(54.6% 0.245 262.881)),
271
266
  var(--color-blue-700, oklch(48.8% 0.243 264.376))
@@ -334,20 +329,19 @@
334
329
  --color-kumo-tip-shadow: var(--color-gray-200, oklch(92.8% 0.006 264.531));
335
330
  --color-kumo-tip-stroke: transparent;
336
331
  --color-kumo-info-tint: var(--color-blue-100, oklch(93.2% 0.032 255.585));
337
- --color-kumo-info: var(--color-blue-300, oklch(80.9% 0.105 251.813));
332
+ --color-kumo-info: var(--color-blue-500, oklch(68.5% 0.169 237.323));
338
333
  --color-kumo-warning-tint: var(--color-yellow-100, oklch(97.3% 0.071 103.193));
339
- --color-kumo-warning: var(--color-yellow-300, oklch(90.5% 0.182 98.111));
334
+ --color-kumo-warning: var(--color-yellow-500, oklch(79.5% 0.184 86.047));
340
335
  --color-kumo-danger-tint: var(--color-red-100, oklch(93.6% 0.032 17.717));
341
336
  --color-kumo-danger: var(--color-red-500, oklch(63.7% 0.237 25.331));
342
337
  --color-kumo-success-tint: var(--color-emerald-100, oklch(95% 0.052 163.051));
343
- --color-kumo-success: var(--color-green-300, oklch(87.1% 0.15 154.449));
338
+ --color-kumo-success: var(--color-emerald-600, oklch(59.6% 0.145 163.225));
339
+ --color-kumo-banner-info: oklch(93.2% 0.032 255.585 / 0.7);
340
+ --color-kumo-banner-warning: var(--color-yellow-100, oklch(97.3% 0.071 103.193));
344
341
  --color-kumo-badge-red: var(--color-red-600, oklch(57.7% 0.245 27.325));
345
342
  --color-kumo-badge-orange: var(--color-orange-650, oklch(81.5% 0.197 76));
346
- --color-kumo-badge-orange-subtle: var(--color-orange-100, oklch(95.4% 0.038 75.164));
347
343
  --color-kumo-badge-purple: var(--color-purple-600, oklch(60% 0.118 184.704));
348
- --color-kumo-badge-green: var(--color-emerald-500, oklch(69.6% 0.17 162.48));
349
344
  --color-kumo-badge-teal: var(--color-teal-650, oklch(54.9% 0.096 184.565));
350
- --color-kumo-badge-teal-subtle: var(--color-teal-100, oklch(95.3% 0.051 180.801));
351
345
  --color-kumo-badge-blue: var(--color-blue-600, oklch(54.6% 0.245 262.881));
352
346
  --color-kumo-badge-neutral: var(--color-neutral-500, oklch(55.6% 0 0));
353
347
  --color-kumo-badge-inverted: var(--color-neutral-950, oklch(14.5% 0 0));
@@ -391,20 +385,19 @@
391
385
  --color-kumo-tip-shadow: transparent;
392
386
  --color-kumo-tip-stroke: var(--color-neutral-800, oklch(26.9% 0 0));
393
387
  --color-kumo-info-tint: var(--color-blue-900, oklch(37.9% 0.146 265.522));
394
- --color-kumo-info: var(--color-blue-900, oklch(37.9% 0.146 265.522));
388
+ --color-kumo-info: var(--color-blue-400, oklch(70.7% 0.165 254.624));
395
389
  --color-kumo-warning-tint: var(--color-yellow-700, oklch(55.4% 0.135 66.442));
396
- --color-kumo-warning: var(--color-yellow-900, oklch(42.1% 0.095 57.708));
390
+ --color-kumo-warning: var(--color-yellow-400, oklch(85.2% 0.199 91.936));
397
391
  --color-kumo-danger-tint: var(--color-red-900, oklch(39.6% 0.141 25.723));
398
- --color-kumo-danger: var(--color-red-900, oklch(39.6% 0.141 25.723));
392
+ --color-kumo-danger: var(--color-red-400, oklch(70.4% 0.191 22.216));
399
393
  --color-kumo-success-tint: var(--color-emerald-900, oklch(37.8% 0.077 168.94));
400
- --color-kumo-success: var(--color-green-900, oklch(39.3% 0.095 152.535));
394
+ --color-kumo-success: var(--color-emerald-400, oklch(76.5% 0.177 163.223));
395
+ --color-kumo-banner-info: oklch(37.9% 0.146 265.522 / 0.5);
396
+ --color-kumo-banner-warning: oklch(55.4% 0.135 66.442 / 0.5);
401
397
  --color-kumo-badge-red: var(--color-red-700, oklch(50.5% 0.213 27.518));
402
398
  --color-kumo-badge-orange: var(--color-orange-650, oklch(81.5% 0.197 76));
403
- --color-kumo-badge-orange-subtle: var(--color-orange-900, oklch(40.8% 0.123 38.172));
404
399
  --color-kumo-badge-purple: var(--color-purple-700, oklch(50.8% 0.118 165.612));
405
- --color-kumo-badge-green: var(--color-emerald-400, oklch(76.5% 0.177 163.223));
406
400
  --color-kumo-badge-teal: var(--color-teal-700, oklch(51.1% 0.096 186.391));
407
- --color-kumo-badge-teal-subtle: var(--color-teal-900, oklch(38.6% 0.063 188.416));
408
401
  --color-kumo-badge-blue: var(--color-blue-700, oklch(48.8% 0.243 264.376));
409
402
  --color-kumo-badge-neutral: var(--color-neutral-600, oklch(43.9% 0 0));
410
403
  --color-kumo-badge-inverted: var(--color-white, #fff);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudflare/kumo",
3
- "version": "2.3.1",
3
+ "version": "2.4.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Kumo - Cloudflare's component library for building modern web applications",
@@ -434,6 +434,9 @@
434
434
  "peerDependenciesMeta": {
435
435
  "zod": {
436
436
  "optional": true
437
+ },
438
+ "echarts": {
439
+ "optional": true
437
440
  }
438
441
  },
439
442
  "dependencies": {
@@ -389,10 +389,11 @@ export const THEME_CONFIG: ThemeConfig = {
389
389
  },
390
390
  "kumo-info": {
391
391
  newName: "",
392
+ // Aligned with fill.kumo-info so `bg-kumo-info` matches `fill-kumo-info`.
392
393
  theme: {
393
394
  kumo: {
394
- light: "var(--color-blue-300, oklch(80.9% 0.105 251.813))",
395
- dark: "var(--color-blue-900, oklch(37.9% 0.146 265.522))",
395
+ light: "var(--color-blue-500, oklch(68.5% 0.169 237.323))",
396
+ dark: "var(--color-blue-400, oklch(70.7% 0.165 254.624))",
396
397
  },
397
398
  },
398
399
  },
@@ -407,10 +408,11 @@ export const THEME_CONFIG: ThemeConfig = {
407
408
  },
408
409
  "kumo-warning": {
409
410
  newName: "",
411
+ // Aligned with fill.kumo-warning so `bg-kumo-warning` matches `fill-kumo-warning`.
410
412
  theme: {
411
413
  kumo: {
412
- light: "var(--color-yellow-300, oklch(90.5% 0.182 98.111))",
413
- dark: "var(--color-yellow-900, oklch(42.1% 0.095 57.708))",
414
+ light: "var(--color-yellow-500, oklch(79.5% 0.184 86.047))",
415
+ dark: "var(--color-yellow-400, oklch(85.2% 0.199 91.936))",
414
416
  },
415
417
  },
416
418
  },
@@ -425,10 +427,11 @@ export const THEME_CONFIG: ThemeConfig = {
425
427
  },
426
428
  "kumo-danger": {
427
429
  newName: "",
430
+ // Aligned with fill.kumo-danger so `bg-kumo-danger` matches `fill-kumo-danger`.
428
431
  theme: {
429
432
  kumo: {
430
433
  light: "var(--color-red-500, oklch(63.7% 0.237 25.331))",
431
- dark: "var(--color-red-900, oklch(39.6% 0.141 25.723))",
434
+ dark: "var(--color-red-400, oklch(70.4% 0.191 22.216))",
432
435
  },
433
436
  },
434
437
  },
@@ -445,8 +448,34 @@ export const THEME_CONFIG: ThemeConfig = {
445
448
  newName: "",
446
449
  theme: {
447
450
  kumo: {
448
- light: "var(--color-green-300, oklch(87.1% 0.15 154.449))",
449
- dark: "var(--color-green-900, oklch(39.3% 0.095 152.535))",
451
+ light: "var(--color-emerald-600, oklch(59.6% 0.145 163.225))",
452
+ dark: "var(--color-emerald-400, oklch(76.5% 0.177 163.223))",
453
+ },
454
+ },
455
+ },
456
+
457
+ /*
458
+ * Banner background tokens
459
+ * Pre-baked opacity per mode so banners don't need dark: overrides.
460
+ * Mirrors the *-tint hues but tuned for the Banner component's surface contrast.
461
+ */
462
+ "kumo-banner-info": {
463
+ newName: "",
464
+ description: "Info banner background (informational/default variant)",
465
+ theme: {
466
+ kumo: {
467
+ light: "oklch(93.2% 0.032 255.585 / 0.7)",
468
+ dark: "oklch(37.9% 0.146 265.522 / 0.5)",
469
+ },
470
+ },
471
+ },
472
+ "kumo-banner-warning": {
473
+ newName: "",
474
+ description: "Warning banner background (alert variant)",
475
+ theme: {
476
+ kumo: {
477
+ light: "var(--color-yellow-100, oklch(97.3% 0.071 103.193))",
478
+ dark: "oklch(55.4% 0.135 66.442 / 0.5)",
450
479
  },
451
480
  },
452
481
  },
@@ -480,17 +509,8 @@ export const THEME_CONFIG: ThemeConfig = {
480
509
  },
481
510
  },
482
511
  },
483
- "kumo-badge-orange-subtle": {
484
- newName: "",
485
- description: "Subtle orange badge background",
486
- theme: {
487
- kumo: {
488
- light: "var(--color-orange-100, oklch(95.4% 0.038 75.164))",
489
- dark: "var(--color-orange-900, oklch(40.8% 0.123 38.172))",
490
- },
491
- },
492
- },
493
512
 
513
+ // Purple
494
514
  "kumo-badge-purple": {
495
515
  newName: "",
496
516
  description: "Purple badge background",
@@ -502,18 +522,6 @@ export const THEME_CONFIG: ThemeConfig = {
502
522
  },
503
523
  },
504
524
 
505
- // Green (emerald scale)
506
- "kumo-badge-green": {
507
- newName: "",
508
- description: "Green badge background",
509
- theme: {
510
- kumo: {
511
- light: "var(--color-emerald-500, oklch(69.6% 0.17 162.48))",
512
- dark: "var(--color-emerald-400, oklch(76.5% 0.177 163.223))",
513
- },
514
- },
515
- },
516
-
517
525
  // Teal
518
526
  "kumo-badge-teal": {
519
527
  newName: "",
@@ -525,16 +533,6 @@ export const THEME_CONFIG: ThemeConfig = {
525
533
  },
526
534
  },
527
535
  },
528
- "kumo-badge-teal-subtle": {
529
- newName: "",
530
- description: "Subtle teal badge background",
531
- theme: {
532
- kumo: {
533
- light: "var(--color-teal-100, oklch(95.3% 0.051 180.801))",
534
- dark: "var(--color-teal-900, oklch(38.6% 0.063 188.416))",
535
- },
536
- },
537
- },
538
536
 
539
537
  // Blue
540
538
  "kumo-badge-blue": {
@@ -141,7 +141,10 @@ export function generateKumoThemeCSS(
141
141
  lines.push("}");
142
142
  lines.push("");
143
143
 
144
- // Color tokens (bg, border, ring, etc.)
144
+ // Color tokens (bg, border, ring, fill, stroke, etc.)
145
+ // Tailwind v4 resolves every color-aware utility family against this
146
+ // single `--color-*` palette — including SVG `fill-*` and `stroke-*` —
147
+ // so one declaration here covers backgrounds, borders, and icon glyphs.
145
148
  lines.push("@theme {");
146
149
 
147
150
  for (const [tokenName, def] of Object.entries(config.color)) {
@@ -32,7 +32,13 @@ export type TextTokens = {
32
32
  [tokenName: string]: TokenDefinition;
33
33
  };
34
34
 
35
- /** Color tokens (used with bg-*, border-*, ring-*, etc.) */
35
+ /**
36
+ * Color tokens (used with bg-*, border-*, ring-*, fill-*, stroke-*, etc.)
37
+ *
38
+ * Tailwind v4 resolves all of these utility families against the shared
39
+ * `--color-*` palette, so a single entry here drives every CSS property
40
+ * that paints a color — including SVG `fill` / `stroke` for icons.
41
+ */
36
42
  export type ColorTokens = {
37
43
  [tokenName: string]: TokenDefinition;
38
44
  };
@@ -63,7 +69,7 @@ export type TypographyTokens = {
63
69
  export type ThemeConfig = {
64
70
  /** Text color tokens */
65
71
  text: TextTokens;
66
- /** General color tokens (bg, border, ring, etc.) */
72
+ /** General color tokens (bg, border, ring, fill, stroke, etc.) */
67
73
  color: ColorTokens;
68
74
  /** Typography tokens (font sizes and line heights) */
69
75
  typography?: TypographyTokens;