@cloudflare/kumo 2.5.2 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/ai/component-registry.json +166 -119
  3. package/ai/component-registry.md +168 -50
  4. package/ai/schemas.ts +23 -12
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +75 -48
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/ai/schemas.js +207 -197
  9. package/dist/ai/schemas.js.map +1 -1
  10. package/dist/chunks/SankeyChart-g1tng405ml2e0qg2.js +890 -0
  11. package/dist/chunks/SankeyChart-g1tng405ml2e0qg2.js.map +1 -0
  12. package/dist/chunks/{autocomplete-d52negr21cedr4rm.js → autocomplete-hgprlcuf0ixbbo6d.js} +18 -18
  13. package/dist/chunks/{autocomplete-d52negr21cedr4rm.js.map → autocomplete-hgprlcuf0ixbbo6d.js.map} +1 -1
  14. package/dist/chunks/{breadcrumbs-bfuf7g8hh36rg7h8.js → breadcrumbs-lyj8ljudrm2owx5y.js} +2 -2
  15. package/dist/chunks/{breadcrumbs-bfuf7g8hh36rg7h8.js.map → breadcrumbs-lyj8ljudrm2owx5y.js.map} +1 -1
  16. package/dist/chunks/button-gtdhvogt5rlrf1is.js +237 -0
  17. package/dist/chunks/button-gtdhvogt5rlrf1is.js.map +1 -0
  18. package/dist/chunks/{checkbox-bt4nfv1i2142kykg.js → checkbox-byg8t8r9vbmif696.js} +3 -3
  19. package/dist/chunks/{checkbox-bt4nfv1i2142kykg.js.map → checkbox-byg8t8r9vbmif696.js.map} +1 -1
  20. package/dist/chunks/{clipboard-text-h3oi6wm5vj2q7q4h.js → clipboard-text-lf909phvldd8rfk8.js} +4 -4
  21. package/dist/chunks/{clipboard-text-h3oi6wm5vj2q7q4h.js.map → clipboard-text-lf909phvldd8rfk8.js.map} +1 -1
  22. package/dist/chunks/{collapsible-nzqcf9zwnjkxqzr6.js → collapsible-dl61f8gd4j897hmv.js} +4 -4
  23. package/dist/chunks/{collapsible-nzqcf9zwnjkxqzr6.js.map → collapsible-dl61f8gd4j897hmv.js.map} +1 -1
  24. package/dist/chunks/{combobox-l6qcou2s3xmsbplp.js → combobox-dxff22zxzq846nec.js} +4 -4
  25. package/dist/chunks/{combobox-l6qcou2s3xmsbplp.js.map → combobox-dxff22zxzq846nec.js.map} +1 -1
  26. package/dist/chunks/{command-palette-fqhyacp33fhyf696.js → command-palette-i4r0402b838wiy0j.js} +21 -21
  27. package/dist/chunks/{command-palette-fqhyacp33fhyf696.js.map → command-palette-i4r0402b838wiy0j.js.map} +1 -1
  28. package/dist/chunks/{dialog-3mpu1i1wssrsz8i6.js → dialog-g1b8161nbyixdit0.js} +7 -7
  29. package/dist/chunks/{dialog-3mpu1i1wssrsz8i6.js.map → dialog-g1b8161nbyixdit0.js.map} +1 -1
  30. package/dist/chunks/{dropdown-g4sb4cw9ffqaw5gx.js → dropdown-irp18txvgz8590e9.js} +27 -27
  31. package/dist/chunks/{dropdown-g4sb4cw9ffqaw5gx.js.map → dropdown-irp18txvgz8590e9.js.map} +1 -1
  32. package/dist/chunks/{empty-frsjvok4w6i0fyex.js → empty-daa6d7u9oleaw24a.js} +2 -2
  33. package/dist/chunks/{empty-frsjvok4w6i0fyex.js.map → empty-daa6d7u9oleaw24a.js.map} +1 -1
  34. package/dist/chunks/{field-m57qcw5b1zt1ohfz.js → field-f1hy08um3jf9jos6.js} +3 -3
  35. package/dist/chunks/{field-m57qcw5b1zt1ohfz.js.map → field-f1hy08um3jf9jos6.js.map} +1 -1
  36. package/dist/chunks/{input-area-o2avpahffav0gydf.js → input-area-bwyujceeulpfkpxv.js} +4 -4
  37. package/dist/chunks/{input-area-o2avpahffav0gydf.js.map → input-area-bwyujceeulpfkpxv.js.map} +1 -1
  38. package/dist/chunks/{input-iahz0dpc9xdar2ju.js → input-f2ct7obgdzypjmp2.js} +3 -3
  39. package/dist/chunks/{input-iahz0dpc9xdar2ju.js.map → input-f2ct7obgdzypjmp2.js.map} +1 -1
  40. package/dist/chunks/{input-group-os810pmsqcftt6mq.js → input-group-kcd3jin5pbdijmw8.js} +5 -5
  41. package/dist/chunks/{input-group-os810pmsqcftt6mq.js.map → input-group-kcd3jin5pbdijmw8.js.map} +1 -1
  42. package/dist/chunks/{label-kib2hn4pkbn28c31.js → label-himqjkdhh0hgfdsa.js} +3 -3
  43. package/dist/chunks/{label-kib2hn4pkbn28c31.js.map → label-himqjkdhh0hgfdsa.js.map} +1 -1
  44. package/dist/chunks/{layer-card-er4flkcxmzfug8jw.js → layer-card-cshi5vydqg3phyfx.js} +2 -2
  45. package/dist/chunks/{layer-card-er4flkcxmzfug8jw.js.map → layer-card-cshi5vydqg3phyfx.js.map} +1 -1
  46. package/dist/chunks/{link-i6vnwyjcwvjz5btm.js → link-bw21ofmgg58igq5n.js} +4 -4
  47. package/dist/chunks/{link-i6vnwyjcwvjz5btm.js.map → link-bw21ofmgg58igq5n.js.map} +1 -1
  48. package/dist/chunks/{menubar-ng5if56amh1tto4j.js → menubar-m12wcbbucuszspw4.js} +2 -2
  49. package/dist/chunks/{menubar-ng5if56amh1tto4j.js.map → menubar-m12wcbbucuszspw4.js.map} +1 -1
  50. package/dist/chunks/{meter-d5igshkjqttl1fdj.js → meter-dn8vgc0smpk0du75.js} +4 -4
  51. package/dist/chunks/{meter-d5igshkjqttl1fdj.js.map → meter-dn8vgc0smpk0du75.js.map} +1 -1
  52. package/dist/chunks/{pagination-mvvg7qfvoqr5l4vt.js → pagination-oafyxvdndm9m8250.js} +3 -3
  53. package/dist/chunks/{pagination-mvvg7qfvoqr5l4vt.js.map → pagination-oafyxvdndm9m8250.js.map} +1 -1
  54. package/dist/chunks/{popover-ozf1j7oi7pxiudyz.js → popover-bbxr39l1lx175hum.js} +18 -18
  55. package/dist/chunks/{popover-ozf1j7oi7pxiudyz.js.map → popover-bbxr39l1lx175hum.js.map} +1 -1
  56. package/dist/chunks/radio-ffx05ih9nc764evh.js +226 -0
  57. package/dist/chunks/radio-ffx05ih9nc764evh.js.map +1 -0
  58. package/dist/chunks/{select-c79vjqmcytn2oujb.js → select-kl1skfh3pmwc33rp.js} +6 -6
  59. package/dist/chunks/{select-c79vjqmcytn2oujb.js.map → select-kl1skfh3pmwc33rp.js.map} +1 -1
  60. package/dist/chunks/{sensitive-input-mxbd0ayw2mbju4ii.js → sensitive-input-izmbyk1t7r56ciiq.js} +4 -4
  61. package/dist/chunks/{sensitive-input-mxbd0ayw2mbju4ii.js.map → sensitive-input-izmbyk1t7r56ciiq.js.map} +1 -1
  62. package/dist/chunks/{sidebar-dqw2uxx6xqln639l.js → sidebar-ior8rnhsd7gy5am5.js} +48 -48
  63. package/dist/chunks/sidebar-ior8rnhsd7gy5am5.js.map +1 -0
  64. package/dist/chunks/{surface-iyejjbqogjbo7ise.js → surface-g5a1buofz4erjov2.js} +2 -2
  65. package/dist/chunks/{surface-iyejjbqogjbo7ise.js.map → surface-g5a1buofz4erjov2.js.map} +1 -1
  66. package/dist/chunks/{switch-dld1q6qdzhe1uip7.js → switch-kh8a6l3l0hszm9h4.js} +3 -3
  67. package/dist/chunks/{switch-dld1q6qdzhe1uip7.js.map → switch-kh8a6l3l0hszm9h4.js.map} +1 -1
  68. package/dist/chunks/{table-l64wm81r9t67mtzm.js → table-dz2k55oab66h2vi9.js} +2 -2
  69. package/dist/chunks/{table-l64wm81r9t67mtzm.js.map → table-dz2k55oab66h2vi9.js.map} +1 -1
  70. package/dist/chunks/{tabs-ho9t1gkq22jb855l.js → tabs-kcw98wibdz4mhpkc.js} +2 -2
  71. package/dist/chunks/{tabs-ho9t1gkq22jb855l.js.map → tabs-kcw98wibdz4mhpkc.js.map} +1 -1
  72. package/dist/chunks/{toast-gewrapiiy5x9ak0o.js → toast-dkdo1lu72tnefya6.js} +7 -7
  73. package/dist/chunks/{toast-gewrapiiy5x9ak0o.js.map → toast-dkdo1lu72tnefya6.js.map} +1 -1
  74. package/dist/chunks/toolbar-o7xe6pd189evdd53.js +172 -0
  75. package/dist/chunks/toolbar-o7xe6pd189evdd53.js.map +1 -0
  76. package/dist/chunks/{tooltip-ken77ixya0qpidie.js → tooltip-eqnhjdbvwapy8gj4.js} +4 -4
  77. package/dist/chunks/{tooltip-ken77ixya0qpidie.js.map → tooltip-eqnhjdbvwapy8gj4.js.map} +1 -1
  78. package/dist/chunks/{vendor-base-ui-knphx7dts1vm1x37.js → vendor-base-ui-f9z44m829vvptrg0.js} +2209 -2207
  79. package/dist/chunks/{vendor-base-ui-knphx7dts1vm1x37.js.map → vendor-base-ui-f9z44m829vvptrg0.js.map} +1 -1
  80. package/dist/code.js +1 -1
  81. package/dist/components/autocomplete.js +1 -1
  82. package/dist/components/breadcrumbs.js +1 -1
  83. package/dist/components/button.js +1 -1
  84. package/dist/components/chart.js +1 -1
  85. package/dist/components/checkbox.js +1 -1
  86. package/dist/components/clipboard-text.js +1 -1
  87. package/dist/components/collapsible.js +1 -1
  88. package/dist/components/combobox.js +1 -1
  89. package/dist/components/command-palette.js +1 -1
  90. package/dist/components/dialog.js +1 -1
  91. package/dist/components/dropdown.js +1 -1
  92. package/dist/components/empty.js +1 -1
  93. package/dist/components/field.js +1 -1
  94. package/dist/components/input-group.js +1 -1
  95. package/dist/components/input.js +3 -3
  96. package/dist/components/label.js +1 -1
  97. package/dist/components/layer-card.js +1 -1
  98. package/dist/components/link.js +1 -1
  99. package/dist/components/menubar.js +1 -1
  100. package/dist/components/meter.js +1 -1
  101. package/dist/components/pagination.js +1 -1
  102. package/dist/components/popover.js +1 -1
  103. package/dist/components/radio.js +1 -1
  104. package/dist/components/select.js +1 -1
  105. package/dist/components/sensitive-input.js +1 -1
  106. package/dist/components/sidebar.js +1 -1
  107. package/dist/components/surface.js +1 -1
  108. package/dist/components/switch.js +1 -1
  109. package/dist/components/table.js +1 -1
  110. package/dist/components/tabs.js +1 -1
  111. package/dist/components/toast.js +2 -2
  112. package/dist/components/toolbar.js +8 -0
  113. package/dist/components/toolbar.js.map +1 -0
  114. package/dist/components/tooltip.js +1 -1
  115. package/dist/index.js +199 -195
  116. package/dist/index.js.map +1 -1
  117. package/dist/primitives/accordion.js +1 -1
  118. package/dist/primitives/alert-dialog.js +1 -1
  119. package/dist/primitives/autocomplete.js +1 -1
  120. package/dist/primitives/avatar.js +1 -1
  121. package/dist/primitives/button.js +1 -1
  122. package/dist/primitives/checkbox-group.js +1 -1
  123. package/dist/primitives/checkbox.js +1 -1
  124. package/dist/primitives/collapsible.js +1 -1
  125. package/dist/primitives/combobox.js +1 -1
  126. package/dist/primitives/context-menu.js +1 -1
  127. package/dist/primitives/csp-provider.js +1 -1
  128. package/dist/primitives/dialog.js +1 -1
  129. package/dist/primitives/direction-provider.js +1 -1
  130. package/dist/primitives/drawer.js +1 -1
  131. package/dist/primitives/field.js +1 -1
  132. package/dist/primitives/fieldset.js +1 -1
  133. package/dist/primitives/form.js +1 -1
  134. package/dist/primitives/input.js +1 -1
  135. package/dist/primitives/menu.js +1 -1
  136. package/dist/primitives/menubar.js +1 -1
  137. package/dist/primitives/meter.js +1 -1
  138. package/dist/primitives/navigation-menu.js +1 -1
  139. package/dist/primitives/number-field.js +1 -1
  140. package/dist/primitives/otp-field.js +1 -1
  141. package/dist/primitives/popover.js +1 -1
  142. package/dist/primitives/preview-card.js +1 -1
  143. package/dist/primitives/progress.js +1 -1
  144. package/dist/primitives/radio-group.js +1 -1
  145. package/dist/primitives/radio.js +1 -1
  146. package/dist/primitives/scroll-area.js +1 -1
  147. package/dist/primitives/select.js +1 -1
  148. package/dist/primitives/separator.js +1 -1
  149. package/dist/primitives/slider.js +1 -1
  150. package/dist/primitives/switch.js +1 -1
  151. package/dist/primitives/tabs.js +1 -1
  152. package/dist/primitives/toast.js +1 -1
  153. package/dist/primitives/toggle-group.js +1 -1
  154. package/dist/primitives/toggle.js +1 -1
  155. package/dist/primitives/toolbar.js +1 -1
  156. package/dist/primitives/tooltip.js +1 -1
  157. package/dist/primitives.js +1 -1
  158. package/dist/scripts/theme-generator/config.d.ts.map +1 -1
  159. package/dist/scripts/theme-generator/config.js +13 -2
  160. package/dist/scripts/theme-generator/config.js.map +1 -1
  161. package/dist/src/components/button/button.d.ts +2 -2
  162. package/dist/src/components/button/button.d.ts.map +1 -1
  163. package/dist/src/components/chart/EChart.d.ts +12 -4
  164. package/dist/src/components/chart/EChart.d.ts.map +1 -1
  165. package/dist/src/components/chart/Legend.d.ts +11 -2
  166. package/dist/src/components/chart/Legend.d.ts.map +1 -1
  167. package/dist/src/components/chart/TimeseriesChart.d.ts +15 -1
  168. package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -1
  169. package/dist/src/components/radio/index.d.ts +1 -1
  170. package/dist/src/components/radio/index.d.ts.map +1 -1
  171. package/dist/src/components/radio/radio.d.ts +49 -10
  172. package/dist/src/components/radio/radio.d.ts.map +1 -1
  173. package/dist/src/components/radio/radio.type-spec.d.ts +12 -0
  174. package/dist/src/components/radio/radio.type-spec.d.ts.map +1 -0
  175. package/dist/src/components/toolbar/index.d.ts +2 -0
  176. package/dist/src/components/toolbar/index.d.ts.map +1 -0
  177. package/dist/src/components/toolbar/toolbar.d.ts +50 -0
  178. package/dist/src/components/toolbar/toolbar.d.ts.map +1 -0
  179. package/dist/src/index.d.ts +2 -1
  180. package/dist/src/index.d.ts.map +1 -1
  181. package/dist/styles/kumo-standalone.css +1 -1
  182. package/dist/styles/theme-kumo.css +11 -4
  183. package/package.json +5 -1
  184. package/scripts/component-registry/discovery.ts +16 -11
  185. package/scripts/component-registry/metadata.ts +30 -0
  186. package/scripts/theme-generator/config.ts +14 -2
  187. package/dist/chunks/SankeyChart-i1m7zv0lys3j0iq6.js +0 -775
  188. package/dist/chunks/SankeyChart-i1m7zv0lys3j0iq6.js.map +0 -1
  189. package/dist/chunks/button-ov39dxshqbqrthhd.js +0 -210
  190. package/dist/chunks/button-ov39dxshqbqrthhd.js.map +0 -1
  191. package/dist/chunks/radio-gpg6kmzonr2cayq1.js +0 -218
  192. package/dist/chunks/radio-gpg6kmzonr2cayq1.js.map +0 -1
  193. package/dist/chunks/sidebar-dqw2uxx6xqln639l.js.map +0 -1
@@ -148,7 +148,7 @@
148
148
 
149
149
  --color-kumo-brand: light-dark(
150
150
  oklch(0.5772 0.2324 260),
151
- oklch(0.5772 0.2324 260)
151
+ color-mix(in oklch, oklch(0.5772 0.2324 260), black 10%)
152
152
  );
153
153
 
154
154
  --color-kumo-brand-hover: 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-400, oklch(70.4% 0.191 22.216))
221
+ var(--color-red-600, oklch(57.7% 0.245 27.325))
222
222
  );
223
223
 
224
224
  --color-kumo-success-tint: light-dark(
@@ -246,6 +246,11 @@
246
246
  var(--color-red-700, oklch(50.5% 0.213 27.518))
247
247
  );
248
248
 
249
+ --color-kumo-badge-green: light-dark(
250
+ var(--color-emerald-600, oklch(59.6% 0.145 163.225)),
251
+ var(--color-emerald-700, oklch(50.8% 0.118 165.612))
252
+ );
253
+
249
254
  --color-kumo-badge-orange: light-dark(
250
255
  var(--color-orange-650, oklch(81.5% 0.197 76)),
251
256
  var(--color-orange-650, oklch(81.5% 0.197 76))
@@ -339,6 +344,7 @@
339
344
  --color-kumo-banner-info: oklch(93.2% 0.032 255.585 / 0.7);
340
345
  --color-kumo-banner-warning: var(--color-yellow-100, oklch(97.3% 0.071 103.193));
341
346
  --color-kumo-badge-red: var(--color-red-600, oklch(57.7% 0.245 27.325));
347
+ --color-kumo-badge-green: var(--color-emerald-600, oklch(59.6% 0.145 163.225));
342
348
  --color-kumo-badge-orange: var(--color-orange-650, oklch(81.5% 0.197 76));
343
349
  --color-kumo-badge-purple: var(--color-purple-600, oklch(60% 0.118 184.704));
344
350
  --color-kumo-badge-teal: var(--color-teal-650, oklch(54.9% 0.096 184.565));
@@ -375,7 +381,7 @@
375
381
  --color-kumo-interact: var(--color-neutral-700, oklch(37.1% 0 0));
376
382
  --color-kumo-fill: var(--color-neutral-800, oklch(26.9% 0 0));
377
383
  --color-kumo-fill-hover: var(--color-neutral-800, oklch(37.1% 0 0));
378
- --color-kumo-brand: oklch(0.5772 0.2324 260);
384
+ --color-kumo-brand: color-mix(in oklch, oklch(0.5772 0.2324 260), black 10%);
379
385
  --color-kumo-brand-hover: var(--color-blue-700, oklch(48.8% 0.243 264.376));
380
386
  --color-kumo-line: var(--color-kumo-neutral-750, oklch(32% 0 0));
381
387
  --color-kumo-hairline: var(--color-neutral-800, oklch(26.9% 0 0));
@@ -389,12 +395,13 @@
389
395
  --color-kumo-warning-tint: var(--color-yellow-700, oklch(55.4% 0.135 66.442));
390
396
  --color-kumo-warning: var(--color-yellow-400, oklch(85.2% 0.199 91.936));
391
397
  --color-kumo-danger-tint: 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));
398
+ --color-kumo-danger: var(--color-red-600, oklch(57.7% 0.245 27.325));
393
399
  --color-kumo-success-tint: var(--color-emerald-900, oklch(37.8% 0.077 168.94));
394
400
  --color-kumo-success: var(--color-emerald-400, oklch(76.5% 0.177 163.223));
395
401
  --color-kumo-banner-info: oklch(37.9% 0.146 265.522 / 0.5);
396
402
  --color-kumo-banner-warning: oklch(55.4% 0.135 66.442 / 0.5);
397
403
  --color-kumo-badge-red: var(--color-red-700, oklch(50.5% 0.213 27.518));
404
+ --color-kumo-badge-green: var(--color-emerald-700, oklch(50.8% 0.118 165.612));
398
405
  --color-kumo-badge-orange: var(--color-orange-650, oklch(81.5% 0.197 76));
399
406
  --color-kumo-badge-purple: var(--color-purple-700, oklch(50.8% 0.118 165.612));
400
407
  --color-kumo-badge-teal: var(--color-teal-700, oklch(51.1% 0.096 186.391));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudflare/kumo",
3
- "version": "2.5.2",
3
+ "version": "2.6.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Kumo - Cloudflare's component library for building modern web applications",
@@ -72,6 +72,10 @@
72
72
  "types": "./dist/src/components/combobox/index.d.ts",
73
73
  "import": "./dist/components/combobox.js"
74
74
  },
75
+ "./components/toolbar": {
76
+ "types": "./dist/src/components/toolbar/index.d.ts",
77
+ "import": "./dist/components/toolbar.js"
78
+ },
75
79
  "./components/dialog": {
76
80
  "types": "./dist/src/components/dialog/index.d.ts",
77
81
  "import": "./dist/components/dialog.js"
@@ -237,7 +237,7 @@ export function detectPropsTypeFromFile(
237
237
 
238
238
  /**
239
239
  * Extract description text from JSDoc content.
240
- * Stops at first @tag (like @example, @see, @param, etc.)
240
+ * Stops at first @tag, markdown heading, or fenced code block.
241
241
  */
242
242
  function extractDescriptionFromJSDoc(jsdocContent: string): string | null {
243
243
  const lines: string[] = [];
@@ -245,24 +245,29 @@ function extractDescriptionFromJSDoc(jsdocContent: string): string | null {
245
245
  for (const rawLine of jsdocContent.split("\n")) {
246
246
  const line = rawLine.replace(/^\s*\*\s?/, "").trim();
247
247
 
248
- // Stop at any @tag
249
- if (line.startsWith("@")) {
248
+ // Stop before structured documentation that should not become the summary.
249
+ if (
250
+ line.startsWith("@") ||
251
+ /^#{1,6}\s/.test(line) ||
252
+ line.startsWith("```") ||
253
+ line.startsWith("~~~")
254
+ ) {
250
255
  break;
251
256
  }
252
257
 
253
- // Skip empty lines at the start, but allow them in the middle
254
- if (line.length > 0 || lines.length > 0) {
255
- lines.push(line);
258
+ // Keep the summary to the first paragraph.
259
+ if (line.length === 0) {
260
+ if (lines.length > 0) {
261
+ break;
262
+ }
263
+ continue;
256
264
  }
257
- }
258
265
 
259
- // Trim trailing empty lines and join
260
- while (lines.length > 0 && lines[lines.length - 1] === "") {
261
- lines.pop();
266
+ lines.push(line);
262
267
  }
263
268
 
264
269
  if (lines.length > 0) {
265
- return lines.join(" ").trim();
270
+ return lines.join(" ").replace(/\s+/g, " ").trim();
266
271
  }
267
272
 
268
273
  return null;
@@ -328,6 +328,36 @@ export const ADDITIONAL_COMPONENT_PROPS: Record<
328
328
  description: "Callback when active tab changes",
329
329
  },
330
330
  },
331
+ Radio: {
332
+ value: {
333
+ type: "T",
334
+ description: "The controlled value of the selected radio item.",
335
+ },
336
+ defaultValue: {
337
+ type: "T",
338
+ description: "The uncontrolled initial value of the selected radio item.",
339
+ },
340
+ onValueChange: {
341
+ type: "(value: T, eventDetails: RadioGroupChangeEventDetails) => void",
342
+ description:
343
+ "Callback fired when the selected value changes. The second argument carries native event details about the interaction.",
344
+ },
345
+ },
346
+ "Radio.Group": {
347
+ value: {
348
+ type: "T",
349
+ description: "The controlled value of the selected radio item.",
350
+ },
351
+ defaultValue: {
352
+ type: "T",
353
+ description: "The uncontrolled initial value of the selected radio item.",
354
+ },
355
+ onValueChange: {
356
+ type: "(value: T, eventDetails: RadioGroupChangeEventDetails) => void",
357
+ description:
358
+ "Callback fired when the selected value changes. The second argument carries native event details about the interaction.",
359
+ },
360
+ },
331
361
  Collapsible: {
332
362
  onOpenChange: {
333
363
  type: "(open: boolean) => void",
@@ -295,7 +295,7 @@ export const THEME_CONFIG: ThemeConfig = {
295
295
  theme: {
296
296
  kumo: {
297
297
  light: "oklch(0.5772 0.2324 260)",
298
- dark: "oklch(0.5772 0.2324 260)",
298
+ dark: "color-mix(in oklch, oklch(0.5772 0.2324 260), black 10%)",
299
299
  },
300
300
  },
301
301
  },
@@ -431,7 +431,7 @@ export const THEME_CONFIG: ThemeConfig = {
431
431
  theme: {
432
432
  kumo: {
433
433
  light: "var(--color-red-500, oklch(63.7% 0.237 25.331))",
434
- dark: "var(--color-red-400, oklch(70.4% 0.191 22.216))",
434
+ dark: "var(--color-red-600, oklch(57.7% 0.245 27.325))",
435
435
  },
436
436
  },
437
437
  },
@@ -498,6 +498,18 @@ export const THEME_CONFIG: ThemeConfig = {
498
498
  },
499
499
  },
500
500
 
501
+ // Green
502
+ "kumo-badge-green": {
503
+ newName: "",
504
+ description: "Green badge background",
505
+ theme: {
506
+ kumo: {
507
+ light: "var(--color-emerald-600, oklch(59.6% 0.145 163.225))",
508
+ dark: "var(--color-emerald-700, oklch(50.8% 0.118 165.612))",
509
+ },
510
+ },
511
+ },
512
+
501
513
  // Orange
502
514
  "kumo-badge-orange": {
503
515
  newName: "",