@cloudflare/kumo 1.14.1 → 1.16.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 (174) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/ai/component-registry.json +405 -19
  3. package/ai/component-registry.md +539 -28
  4. package/ai/schemas.ts +19 -3
  5. package/dist/.build-complete +1 -1
  6. package/dist/ai/schemas.d.ts +61 -2
  7. package/dist/ai/schemas.d.ts.map +1 -1
  8. package/dist/ai/schemas.js +367 -342
  9. package/dist/ai/schemas.js.map +1 -1
  10. package/dist/chunks/{Legend-mkh1v83sz972e29d.js → Legend-bov5dqf08wemc2qj.js} +112 -100
  11. package/dist/chunks/Legend-bov5dqf08wemc2qj.js.map +1 -0
  12. package/dist/chunks/{breadcrumbs-gr907zcoo65rpn90.js → breadcrumbs-m79gm4gjwbfajpna.js} +2 -2
  13. package/dist/chunks/{breadcrumbs-gr907zcoo65rpn90.js.map → breadcrumbs-m79gm4gjwbfajpna.js.map} +1 -1
  14. package/dist/chunks/{button-d82sexqgnd834eaa.js → button-j0hi0afn33w9lxgi.js} +2 -2
  15. package/dist/chunks/button-j0hi0afn33w9lxgi.js.map +1 -0
  16. package/dist/chunks/{checkbox-f4qsbq6xycaji7qw.js → checkbox-lawmt1894wr6rpgi.js} +3 -3
  17. package/dist/chunks/{checkbox-f4qsbq6xycaji7qw.js.map → checkbox-lawmt1894wr6rpgi.js.map} +1 -1
  18. package/dist/chunks/{clipboard-text-fvggzgqrza82t5om.js → clipboard-text-ohx8kkpxisz382rj.js} +4 -4
  19. package/dist/chunks/{clipboard-text-fvggzgqrza82t5om.js.map → clipboard-text-ohx8kkpxisz382rj.js.map} +1 -1
  20. package/dist/chunks/{combobox-om4zw74o076sa00p.js → combobox-ft0u7rfaxawk0r0c.js} +4 -4
  21. package/dist/chunks/{combobox-om4zw74o076sa00p.js.map → combobox-ft0u7rfaxawk0r0c.js.map} +1 -1
  22. package/dist/chunks/{command-palette-ejoszjfivybu9yi5.js → command-palette-b31nq4wk7o7gx4sa.js} +2 -2
  23. package/dist/chunks/{command-palette-ejoszjfivybu9yi5.js.map → command-palette-b31nq4wk7o7gx4sa.js.map} +1 -1
  24. package/dist/chunks/{dialog-gkmecnx48ge38jrr.js → dialog-l5tmwxrzp9g83jmw.js} +2 -2
  25. package/dist/chunks/{dialog-gkmecnx48ge38jrr.js.map → dialog-l5tmwxrzp9g83jmw.js.map} +1 -1
  26. package/dist/chunks/{dropdown-i8n7nv3cvkvb1x3e.js → dropdown-icy3xatdwhzr4une.js} +2 -2
  27. package/dist/chunks/{dropdown-i8n7nv3cvkvb1x3e.js.map → dropdown-icy3xatdwhzr4une.js.map} +1 -1
  28. package/dist/chunks/{empty-h3qhwtx0z8arupc9.js → empty-hrwtammqp0b2nvtf.js} +2 -2
  29. package/dist/chunks/{empty-h3qhwtx0z8arupc9.js.map → empty-hrwtammqp0b2nvtf.js.map} +1 -1
  30. package/dist/chunks/{field-lc4gr226y5aqlctf.js → field-csje72m7j9403fj5.js} +3 -3
  31. package/dist/chunks/{field-lc4gr226y5aqlctf.js.map → field-csje72m7j9403fj5.js.map} +1 -1
  32. package/dist/chunks/hcl-hcu7d6ja6t540ijn.js +8 -0
  33. package/dist/chunks/hcl-hcu7d6ja6t540ijn.js.map +1 -0
  34. package/dist/chunks/{input-area-ce3bf8m8wvot44kg.js → input-area-jko15sbc6zeage3l.js} +4 -4
  35. package/dist/chunks/{input-area-ce3bf8m8wvot44kg.js.map → input-area-jko15sbc6zeage3l.js.map} +1 -1
  36. package/dist/chunks/{input-nvne68upfj8b2bk6.js → input-c8jmidy7gdqfiky1.js} +3 -3
  37. package/dist/chunks/{input-nvne68upfj8b2bk6.js.map → input-c8jmidy7gdqfiky1.js.map} +1 -1
  38. package/dist/chunks/{input-group-kttdor9mr32k289o.js → input-group-cjsy8kh4vf9312xl.js} +3 -3
  39. package/dist/chunks/{input-group-kttdor9mr32k289o.js.map → input-group-cjsy8kh4vf9312xl.js.map} +1 -1
  40. package/dist/chunks/{label-e42o95ab0dxmchxb.js → label-i46xnnzdh9bsxk6a.js} +3 -3
  41. package/dist/chunks/{label-e42o95ab0dxmchxb.js.map → label-i46xnnzdh9bsxk6a.js.map} +1 -1
  42. package/dist/chunks/{link-lpzl5s47pmobk361.js → link-o7yfj4kwgl19fklp.js} +2 -2
  43. package/dist/chunks/{link-lpzl5s47pmobk361.js.map → link-o7yfj4kwgl19fklp.js.map} +1 -1
  44. package/dist/chunks/{menubar-ifxxdoa35zz79z1q.js → menubar-g1wqqjuyyfvsim83.js} +2 -2
  45. package/dist/chunks/{menubar-ifxxdoa35zz79z1q.js.map → menubar-g1wqqjuyyfvsim83.js.map} +1 -1
  46. package/dist/chunks/{meter-fbtqfg0okpwmaiju.js → meter-cqkrg5axjenbsuue.js} +2 -2
  47. package/dist/chunks/{meter-fbtqfg0okpwmaiju.js.map → meter-cqkrg5axjenbsuue.js.map} +1 -1
  48. package/dist/chunks/{pagination-owm6h66jjgv1tjoe.js → pagination-e3dp8bd80s35f7sd.js} +3 -3
  49. package/dist/chunks/{pagination-owm6h66jjgv1tjoe.js.map → pagination-e3dp8bd80s35f7sd.js.map} +1 -1
  50. package/dist/chunks/{popover-dd7hi5ajeoq9od1i.js → popover-jurf834u2uywluux.js} +2 -2
  51. package/dist/chunks/{popover-dd7hi5ajeoq9od1i.js.map → popover-jurf834u2uywluux.js.map} +1 -1
  52. package/dist/chunks/{radio-ff1csb328f12smd4.js → radio-l9dzm6sohcvvrsdc.js} +32 -32
  53. package/dist/chunks/{radio-ff1csb328f12smd4.js.map → radio-l9dzm6sohcvvrsdc.js.map} +1 -1
  54. package/dist/chunks/{select-go7a0z3evkh9cfxq.js → select-hnt87e3cfos48qql.js} +4 -4
  55. package/dist/chunks/{select-go7a0z3evkh9cfxq.js.map → select-hnt87e3cfos48qql.js.map} +1 -1
  56. package/dist/chunks/{sensitive-input-gtzk3vit4i35n95g.js → sensitive-input-lvtccf3iqc06lj7b.js} +4 -4
  57. package/dist/chunks/{sensitive-input-gtzk3vit4i35n95g.js.map → sensitive-input-lvtccf3iqc06lj7b.js.map} +1 -1
  58. package/dist/chunks/sidebar-l6rk9o5qf8k5vth1.js +875 -0
  59. package/dist/chunks/sidebar-l6rk9o5qf8k5vth1.js.map +1 -0
  60. package/dist/chunks/{switch-cpbp0i75jnazkani.js → switch-fukrbip86khvqjn7.js} +3 -3
  61. package/dist/chunks/{switch-cpbp0i75jnazkani.js.map → switch-fukrbip86khvqjn7.js.map} +1 -1
  62. package/dist/chunks/{table-g41yb7ruredizqr8.js → table-orfgzwvxh8yr90dk.js} +2 -2
  63. package/dist/chunks/{table-g41yb7ruredizqr8.js.map → table-orfgzwvxh8yr90dk.js.map} +1 -1
  64. package/dist/chunks/{tabs-hy6oa7xtf96d9mxt.js → tabs-n0t7iro7wr0pzgk2.js} +2 -2
  65. package/dist/chunks/{tabs-hy6oa7xtf96d9mxt.js.map → tabs-n0t7iro7wr0pzgk2.js.map} +1 -1
  66. package/dist/chunks/{toast-j5gtfc50xpzzd0hc.js → toast-r9ajsces7xp8l85w.js} +179 -100
  67. package/dist/chunks/toast-r9ajsces7xp8l85w.js.map +1 -0
  68. package/dist/chunks/{tooltip-k68wcv9mrigb7rcb.js → tooltip-hnc71tg4gz2gpcvc.js} +2 -2
  69. package/dist/chunks/{tooltip-k68wcv9mrigb7rcb.js.map → tooltip-hnc71tg4gz2gpcvc.js.map} +1 -1
  70. package/dist/chunks/{vendor-base-ui-cpvkrhz4zgw9nw2b.js → vendor-base-ui-ccr5l0ynrievzzv3.js} +564 -563
  71. package/dist/chunks/{vendor-base-ui-cpvkrhz4zgw9nw2b.js.map → vendor-base-ui-ccr5l0ynrievzzv3.js.map} +1 -1
  72. package/dist/code/server.js +2 -1
  73. package/dist/code/server.js.map +1 -1
  74. package/dist/code.js +15 -14
  75. package/dist/code.js.map +1 -1
  76. package/dist/components/breadcrumbs.js +1 -1
  77. package/dist/components/button.js +1 -1
  78. package/dist/components/chart.js +1 -1
  79. package/dist/components/checkbox.js +1 -1
  80. package/dist/components/clipboard-text.js +1 -1
  81. package/dist/components/combobox.js +1 -1
  82. package/dist/components/command-palette.js +1 -1
  83. package/dist/components/dialog.js +1 -1
  84. package/dist/components/dropdown.js +1 -1
  85. package/dist/components/empty.js +1 -1
  86. package/dist/components/field.js +1 -1
  87. package/dist/components/flow.js +2138 -2087
  88. package/dist/components/flow.js.map +1 -1
  89. package/dist/components/input.js +3 -3
  90. package/dist/components/label.js +1 -1
  91. package/dist/components/link.js +1 -1
  92. package/dist/components/menubar.js +1 -1
  93. package/dist/components/meter.js +1 -1
  94. package/dist/components/pagination.js +1 -1
  95. package/dist/components/popover.js +1 -1
  96. package/dist/components/radio.js +1 -1
  97. package/dist/components/select.js +1 -1
  98. package/dist/components/sensitive-input.js +1 -1
  99. package/dist/components/sidebar.js +35 -0
  100. package/dist/components/sidebar.js.map +1 -0
  101. package/dist/components/switch.js +1 -1
  102. package/dist/components/table.js +1 -1
  103. package/dist/components/tabs.js +1 -1
  104. package/dist/components/toast.js +2 -2
  105. package/dist/components/tooltip.js +1 -1
  106. package/dist/index.js +196 -165
  107. package/dist/index.js.map +1 -1
  108. package/dist/primitives/accordion.js +1 -1
  109. package/dist/primitives/alert-dialog.js +1 -1
  110. package/dist/primitives/autocomplete.js +1 -1
  111. package/dist/primitives/avatar.js +1 -1
  112. package/dist/primitives/button.js +1 -1
  113. package/dist/primitives/checkbox-group.js +1 -1
  114. package/dist/primitives/checkbox.js +1 -1
  115. package/dist/primitives/collapsible.js +1 -1
  116. package/dist/primitives/combobox.js +1 -1
  117. package/dist/primitives/context-menu.js +1 -1
  118. package/dist/primitives/csp-provider.js +1 -1
  119. package/dist/primitives/dialog.js +1 -1
  120. package/dist/primitives/direction-provider.js +1 -1
  121. package/dist/primitives/drawer.js +1 -1
  122. package/dist/primitives/field.js +1 -1
  123. package/dist/primitives/fieldset.js +1 -1
  124. package/dist/primitives/form.js +1 -1
  125. package/dist/primitives/input.js +1 -1
  126. package/dist/primitives/menu.js +1 -1
  127. package/dist/primitives/menubar.js +1 -1
  128. package/dist/primitives/meter.js +1 -1
  129. package/dist/primitives/navigation-menu.js +1 -1
  130. package/dist/primitives/number-field.js +1 -1
  131. package/dist/primitives/popover.js +1 -1
  132. package/dist/primitives/preview-card.js +1 -1
  133. package/dist/primitives/progress.js +1 -1
  134. package/dist/primitives/radio-group.js +1 -1
  135. package/dist/primitives/radio.js +1 -1
  136. package/dist/primitives/scroll-area.js +1 -1
  137. package/dist/primitives/select.js +1 -1
  138. package/dist/primitives/separator.js +1 -1
  139. package/dist/primitives/slider.js +1 -1
  140. package/dist/primitives/switch.js +1 -1
  141. package/dist/primitives/tabs.js +1 -1
  142. package/dist/primitives/toast.js +1 -1
  143. package/dist/primitives/toggle-group.js +1 -1
  144. package/dist/primitives/toggle.js +1 -1
  145. package/dist/primitives/toolbar.js +1 -1
  146. package/dist/primitives/tooltip.js +1 -1
  147. package/dist/primitives.js +1 -1
  148. package/dist/src/code/provider.d.ts.map +1 -1
  149. package/dist/src/code/server.d.ts.map +1 -1
  150. package/dist/src/code/types.d.ts +1 -1
  151. package/dist/src/code/types.d.ts.map +1 -1
  152. package/dist/src/components/button/button.d.ts +1 -1
  153. package/dist/src/components/chart/EChart.d.ts.map +1 -1
  154. package/dist/src/components/chart/TimeseriesChart.d.ts +11 -1
  155. package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -1
  156. package/dist/src/components/flow/diagram.d.ts.map +1 -1
  157. package/dist/src/components/flow/node.d.ts.map +1 -1
  158. package/dist/src/components/flow/parallel.d.ts.map +1 -1
  159. package/dist/src/components/radio/radio.d.ts +1 -1
  160. package/dist/src/components/radio/radio.d.ts.map +1 -1
  161. package/dist/src/components/sidebar/index.d.ts +2 -0
  162. package/dist/src/components/sidebar/index.d.ts.map +1 -0
  163. package/dist/src/components/sidebar/sidebar.d.ts +556 -0
  164. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -0
  165. package/dist/src/components/toast/toast.d.ts +12 -2
  166. package/dist/src/components/toast/toast.d.ts.map +1 -1
  167. package/dist/src/index.d.ts +1 -0
  168. package/dist/src/index.d.ts.map +1 -1
  169. package/dist/styles/kumo-standalone.css +1 -1
  170. package/package.json +6 -2
  171. package/scripts/component-registry/index.ts +12 -0
  172. package/dist/chunks/Legend-mkh1v83sz972e29d.js.map +0 -1
  173. package/dist/chunks/button-d82sexqgnd834eaa.js.map +0 -1
  174. package/dist/chunks/toast-j5gtfc50xpzzd0hc.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # @cloudflare/kumo
2
2
 
3
+ ## 1.16.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c5f69b9: Make Chart components keyboard focusable with tabindex. Timeseries adds `ariaDescription` prop
8
+
9
+ ### Patch Changes
10
+
11
+ - b3c44f1: Generate component-registry files at build time, remove from git
12
+
13
+ Eliminates contributor friction by generating component-registry.json,
14
+ component-registry.md, and schemas.ts during the build process instead of
15
+ tracking them in git. Contributors will no longer see stale diffs or need to
16
+ manually regenerate these files.
17
+ - Add ai/component-registry.json and ai/component-registry.md to .gitignore
18
+ - Convert ai/schemas.ts to a stub file for TypeScript compilation
19
+ - Add codegen:registry to build script for deterministic generation
20
+
21
+ - 759f4e8: feat(code): add HCL (HashiCorp Configuration Language) as a supported syntax highlighting language
22
+ - a67fac7: fix(flow): connector lines no longer misalign when the page scrolls or a sidebar shifts the layout
23
+
24
+ `getBoundingClientRect` values were stored in React state per node and later subtracted against a freshly-read container rect at connector-draw time. Any layout shift (sidebar open/close, page scroll, inner container scroll) between those two reads produced stale coordinates, causing connector lines to jump out of place or disappear entirely.
25
+
26
+ Fix: add `scroll` and `resize` listeners (capture phase) at the `FlowNode`, `FlowParallelNode`, and `FlowNodeList` levels so all rects are remeasured after any layout shift. Connector computation in `FlowNodeList` and `FlowParallelNode` is also moved from the render phase into `useLayoutEffect` so the container rect and node rects are always read in the same synchronous pass.
27
+
28
+ - 15a344e: Add missing HCL language import to server-side Shiki bundle
29
+
30
+ The HCL language was added to SupportedLanguage type and the client-side
31
+ provider in a previous commit, but the server.tsx BUNDLED_LANGS object
32
+ was missed. This caused typecheck failures when building.
33
+
34
+ - 5d8d3a9: Sidebar: polish animations, fix separator reflow bug, improve header spacing
35
+ - 7e82920: Fix connector alignment and spacing between adjacent parallel nodes in Flow diagrams
36
+
37
+ ## 1.15.0
38
+
39
+ ### Minor Changes
40
+
41
+ - 73f554a: Add success and info toast variants with semantic token styling. Migrate error/warning variants from raw CSS to semantic tokens for consistent theming.
42
+
43
+ ### Patch Changes
44
+
45
+ - 9fbf3a8: Fix Radio compound component to use Object.assign pattern, enabling sub-component detection (Radio.Group, Radio.Item) in the component registry.
46
+ - 3430785: Revert outline button variant ring width from `ring-2` (2px) back to `ring` (1px) to restore visual consistency with existing dashboard usage.
47
+
3
48
  ## 1.14.1
4
49
 
5
50
  ### Patch Changes
@@ -322,7 +322,7 @@
322
322
  "ghost": "text-kumo-default hover:bg-kumo-tint shadow-none bg-inherit",
323
323
  "destructive": "bg-kumo-danger !text-white hover:bg-kumo-danger/70",
324
324
  "secondary-destructive": "bg-kumo-base !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-base disabled:bg-kumo-base/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-base",
325
- "outline": "bg-transparent text-kumo-default ring-2 ring-kumo-ring"
325
+ "outline": "bg-transparent text-kumo-default ring ring-kumo-ring"
326
326
  },
327
327
  "stateClasses": {
328
328
  "primary": {
@@ -1938,13 +1938,7 @@
1938
1938
  "description": "Additional CSS classes merged via `cn()`."
1939
1939
  }
1940
1940
  },
1941
- "examples": [
1942
- "<CodeBlock\n lang=\"tsx\"\n code={`const greeting = \"Hello, World!\";\nconsole.log(greeting);`}\n />",
1943
- "<CodeBlock\n lang=\"tsx\"\n code={`interface User {\n id: string;\n name: string;\n email: string;\n}\n\nconst user: User = {\n id: \"1\",\n name: \"John Doe\",\n email: \"john@example.com\"\n};`}\n />",
1944
- "<CodeBlock\n lang=\"bash\"\n code={`npm install @cloudflare/kumo\npnpm add @cloudflare/kumo`}\n />",
1945
- "<CodeBlock\n lang=\"jsonc\"\n code={`{\n \"name\": \"kumo\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"react\": \"^19.0.0\"\n }\n}`}\n />",
1946
- "<Code\n lang=\"bash\"\n code=\"export API_KEY={{apiKey}}\"\n values={{\n apiKey: { value: \"sk_live_123\", highlight: true },\n }}\n />"
1947
- ],
1941
+ "examples": [],
1948
1942
  "colors": [
1949
1943
  "bg-kumo-base",
1950
1944
  "border-kumo-fill",
@@ -3354,7 +3348,8 @@
3354
3348
  "examples": [
3355
3349
  "<Loader />",
3356
3350
  "<div className=\"flex items-center gap-4\">\n <Loader size=\"sm\" />\n <Loader size=\"base\" />\n <Loader size=\"lg\" />\n </div>",
3357
- "<Loader size={24} />"
3351
+ "<Loader size={24} />",
3352
+ "<Loader className=\"text-kumo-subtle\" />"
3358
3353
  ],
3359
3354
  "colors": []
3360
3355
  },
@@ -3387,9 +3382,9 @@
3387
3382
  }
3388
3383
  },
3389
3384
  "examples": [
3390
- "<MenuBar\n isActive=\"bold\"\n optionIds\n options={[\n {\n icon: <TextBolderIcon />,\n id: \"bold\",\n tooltip: \"Bold\",\n onClick: () => {},\n },\n {\n icon: <TextItalicIcon />,\n id: \"italic\",\n tooltip: \"Italic\",\n onClick: () => {},\n },\n ]}\n />",
3391
- "<MenuBar\n isActive=\"bold\"\n optionIds\n options={[\n {\n icon: <TextBolderIcon />,\n id: \"bold\",\n tooltip: \"Bold\",\n onClick: () => {},\n },\n {\n icon: <TextItalicIcon />,\n id: \"italic\",\n tooltip: \"Italic\",\n onClick: () => {},\n },\n ]}\n />",
3392
- "<MenuBar\n isActive=\"\"\n optionIds\n options={[\n {\n icon: <TextBolderIcon />,\n id: \"bold\",\n tooltip: \"Bold\",\n onClick: () => {},\n },\n {\n icon: <TextItalicIcon />,\n id: \"italic\",\n tooltip: \"Italic\",\n onClick: () => {},\n },\n ]}\n />"
3385
+ "<MenuBar\n isActive={active}\n optionIds\n options={[\n {\n icon: <TextBolderIcon />,\n id: \"bold\",\n tooltip: \"Bold\",\n onClick: () => setActive(active === \"bold\" ? undefined : \"bold\"),\n },\n {\n icon: <TextItalicIcon />,\n id: \"italic\",\n tooltip: \"Italic\",\n onClick: () => setActive(active === \"italic\" ? undefined : \"italic\"),\n },\n ]}\n />",
3386
+ "<MenuBar\n isActive={active}\n optionIds\n options={[\n {\n icon: <TextBolderIcon />,\n id: \"bold\",\n tooltip: \"Bold\",\n onClick: () => setActive(active === \"bold\" ? undefined : \"bold\"),\n },\n {\n icon: <TextItalicIcon />,\n id: \"italic\",\n tooltip: \"Italic\",\n onClick: () => setActive(active === \"italic\" ? undefined : \"italic\"),\n },\n ]}\n />",
3387
+ "<MenuBar\n isActive={active}\n optionIds\n options={[\n {\n icon: <TextBolderIcon />,\n id: \"bold\",\n tooltip: \"Bold\",\n onClick: () => setActive(active === \"bold\" ? undefined : \"bold\"),\n },\n {\n icon: <TextItalicIcon />,\n id: \"italic\",\n tooltip: \"Italic\",\n onClick: () => setActive(active === \"italic\" ? undefined : \"italic\"),\n },\n ]}\n />"
3393
3388
  ],
3394
3389
  "colors": [
3395
3390
  "bg-kumo-base",
@@ -3461,7 +3456,7 @@
3461
3456
  "<Meter label=\"Progress\" value={40} showValue={false} />",
3462
3457
  "<Meter label=\"Quota reached\" value={100} />",
3463
3458
  "<Meter label=\"Memory usage\" value={15} />",
3464
- "<Meter\n label=\"Upload progress\"\n value={80}\n indicatorClassName=\"from-green-500 via-green-500 to-green-500\"\n />"
3459
+ "<Meter\n label=\"Upload progress\"\n value={80}\n indicatorClassName=\"from-kumo-success via-kumo-success to-kumo-success\"\n />"
3465
3460
  ],
3466
3461
  "colors": [
3467
3462
  "bg-kumo-fill",
@@ -3805,7 +3800,72 @@
3805
3800
  "text-kumo-danger",
3806
3801
  "text-kumo-default",
3807
3802
  "text-kumo-subtle"
3808
- ]
3803
+ ],
3804
+ "subComponents": {
3805
+ "Item": {
3806
+ "name": "Item",
3807
+ "description": "Item sub-component",
3808
+ "props": {}
3809
+ },
3810
+ "Group": {
3811
+ "name": "Group",
3812
+ "description": "Group sub-component",
3813
+ "props": {
3814
+ "legend": {
3815
+ "type": "string",
3816
+ "required": true
3817
+ },
3818
+ "children": {
3819
+ "type": "ReactNode",
3820
+ "required": true
3821
+ },
3822
+ "orientation": {
3823
+ "type": "\"vertical\" | \"horizontal\"",
3824
+ "optional": true
3825
+ },
3826
+ "appearance": {
3827
+ "type": "KumoRadioAppearance",
3828
+ "optional": true
3829
+ },
3830
+ "error": {
3831
+ "type": "string",
3832
+ "optional": true
3833
+ },
3834
+ "description": {
3835
+ "type": "ReactNode",
3836
+ "optional": true
3837
+ },
3838
+ "value": {
3839
+ "type": "string",
3840
+ "optional": true
3841
+ },
3842
+ "disabled": {
3843
+ "type": "boolean",
3844
+ "optional": true
3845
+ },
3846
+ "label": {
3847
+ "type": "\"start\" (default) puts radio before label",
3848
+ "required": true
3849
+ },
3850
+ "Note": {
3851
+ "type": "In card appearance",
3852
+ "required": true
3853
+ },
3854
+ "controlPosition": {
3855
+ "type": "RadioControlPosition",
3856
+ "optional": true
3857
+ },
3858
+ "name": {
3859
+ "type": "string",
3860
+ "optional": true
3861
+ },
3862
+ "className": {
3863
+ "type": "string",
3864
+ "optional": true
3865
+ }
3866
+ }
3867
+ }
3868
+ }
3809
3869
  },
3810
3870
  "Select": {
3811
3871
  "name": "Select",
@@ -4084,10 +4144,303 @@
4084
4144
  "bg-kumo-brand",
4085
4145
  "bg-kumo-control",
4086
4146
  "outline-kumo-ring",
4147
+ "ring-kumo-ring",
4087
4148
  "text-kumo-default",
4088
4149
  "text-kumo-subtle"
4089
4150
  ]
4090
4151
  },
4152
+ "Sidebar": {
4153
+ "name": "Sidebar",
4154
+ "type": "component",
4155
+ "description": "Sidebar — responsive navigation panel with expand/collapse support. Compound component: `Sidebar` (root `<aside>`), `.Provider`, `.Header`, `.Content`, `.Footer`, `.Group`, `.GroupLabel`, `.GroupContent`, `.Menu`, `.MenuItem`, `.MenuButton`, `.MenuAction`, `.MenuBadge`, `.MenuSub`, `.MenuSubItem`, `.MenuSubButton`, `.Separator`, `.Input`, `.Trigger`, `.Rail`, `.MenuChevron`, `.Collapsible`, `.CollapsibleTrigger`, `.CollapsibleContent`. Built on `@base-ui/react/collapsible` + `@base-ui/react/dialog`.",
4156
+ "importPath": "@cloudflare/kumo",
4157
+ "category": "Other",
4158
+ "props": {
4159
+ "defaultOpen": {
4160
+ "type": "boolean",
4161
+ "optional": true,
4162
+ "description": "Initial open state when uncontrolled."
4163
+ },
4164
+ "open": {
4165
+ "type": "boolean",
4166
+ "optional": true,
4167
+ "description": "Controlled open state."
4168
+ },
4169
+ "variant": {
4170
+ "type": "enum",
4171
+ "optional": true,
4172
+ "description": "Sidebar layout variant.",
4173
+ "values": [
4174
+ "sidebar",
4175
+ "floating",
4176
+ "inset"
4177
+ ],
4178
+ "descriptions": {
4179
+ "sidebar": "Standard sidebar with border separator",
4180
+ "floating": "Floating sidebar with shadow and rounded corners",
4181
+ "inset": "Inset sidebar within the content area"
4182
+ },
4183
+ "default": "sidebar"
4184
+ },
4185
+ "side": {
4186
+ "type": "enum",
4187
+ "optional": true,
4188
+ "description": "Which side the sidebar is on.",
4189
+ "values": [
4190
+ "left",
4191
+ "right"
4192
+ ],
4193
+ "descriptions": {
4194
+ "left": "Left-aligned sidebar",
4195
+ "right": "Right-aligned sidebar"
4196
+ },
4197
+ "default": "left"
4198
+ },
4199
+ "collapsible": {
4200
+ "type": "enum",
4201
+ "optional": true,
4202
+ "values": [
4203
+ "icon",
4204
+ "offcanvas",
4205
+ "none"
4206
+ ],
4207
+ "descriptions": {
4208
+ "icon": "Collapses to show icons only",
4209
+ "offcanvas": "Slides off screen when collapsed",
4210
+ "none": "Cannot be collapsed"
4211
+ },
4212
+ "default": "icon"
4213
+ },
4214
+ "resizable": {
4215
+ "type": "boolean",
4216
+ "optional": true,
4217
+ "description": "Enable drag-to-resize on the sidebar edge."
4218
+ },
4219
+ "defaultWidth": {
4220
+ "type": "number",
4221
+ "optional": true,
4222
+ "description": "Initial width in pixels when resizable."
4223
+ },
4224
+ "minWidth": {
4225
+ "type": "number",
4226
+ "optional": true,
4227
+ "description": "Minimum width in pixels when resizing."
4228
+ },
4229
+ "maxWidth": {
4230
+ "type": "number",
4231
+ "optional": true,
4232
+ "description": "Maximum width in pixels when resizing."
4233
+ },
4234
+ "children": {
4235
+ "type": "ReactNode",
4236
+ "optional": true,
4237
+ "description": "Content — typically `<Sidebar>` + main content."
4238
+ },
4239
+ "className": {
4240
+ "type": "string",
4241
+ "optional": true,
4242
+ "description": "Additional CSS classes for the wrapper div."
4243
+ }
4244
+ },
4245
+ "examples": [
4246
+ "<DemoContainer>\n <Sidebar.Provider defaultOpen className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={GlobeIcon}>\n Domains\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuItem>\n <Sidebar.Collapsible defaultOpen>\n <Sidebar.CollapsibleTrigger\n render={\n <Sidebar.MenuButton icon={CodeIcon}>\n Compute\n <Sidebar.MenuChevron />\n </Sidebar.MenuButton>\n }\n />\n <Sidebar.CollapsibleContent>\n <Sidebar.MenuSub>\n <Sidebar.MenuSubButton>\n Workers & Pages\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Durable Objects\n </Sidebar.MenuSubButton>\n </Sidebar.MenuSub>\n </Sidebar.CollapsibleContent>\n </Sidebar.Collapsible>\n </Sidebar.MenuItem>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar>\n <DemoMain />\n </Sidebar.Provider>\n </DemoContainer>",
4247
+ "<DemoContainer>\n <Sidebar.Provider defaultOpen className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Content>\n {/* GroupContent is required for collapsible groups (provides grid-rows animation) */}\n <Sidebar.Group collapsible defaultOpen>\n <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>\n <Sidebar.GroupContent>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={GlobeIcon}>\n Domains\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.GroupContent>\n </Sidebar.Group>\n\n <Sidebar.Group collapsible defaultOpen>\n <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n <Sidebar.GroupContent>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={CodeIcon}>\n Compute\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.GroupContent>\n </Sidebar.Group>\n\n <Sidebar.Group collapsible defaultOpen={false}>\n <Sidebar.GroupLabel>Protect & Connect</Sidebar.GroupLabel>\n <Sidebar.GroupContent>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n Zero Trust\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.GroupContent>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar>\n <DemoMain />\n </Sidebar.Provider>\n </DemoContainer>",
4248
+ "<DemoContainer>\n <Sidebar.Provider defaultOpen className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Header>\n <BrandLogo />\n </Sidebar.Header>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} tooltip=\"Home\" active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon} tooltip=\"Analytics\">\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={CodeIcon} tooltip=\"Compute\">\n Compute\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon} tooltip=\"Storage\">\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n </Sidebar>\n <DemoMain>\n <ToggleButton />\n <p className=\"text-sm\">\n Click the button or the sidebar trigger to toggle\n </p>\n </DemoMain>\n </Sidebar.Provider>\n </DemoContainer>",
4249
+ "<DemoContainer>\n <Sidebar.Provider defaultOpen className=\"min-h-0! h-full\">\n <Sidebar>\n <Sidebar.Header>\n <AccountSwitcher />\n </Sidebar.Header>\n\n <Sidebar.Content>\n <div className=\"px-1 pb-2\">\n <Sidebar.Input placeholder=\"Quick search...\" shortcut=\"⌘K\" />\n </div>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics & Logs\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={GlobeIcon}>\n Domains\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Separator />\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuItem>\n <Sidebar.Collapsible defaultOpen>\n <Sidebar.CollapsibleTrigger\n render={\n <Sidebar.MenuButton icon={CodeIcon}>\n Compute\n <Sidebar.MenuChevron />\n </Sidebar.MenuButton>\n }\n />\n <Sidebar.CollapsibleContent>\n <Sidebar.MenuSub>\n <Sidebar.MenuSubButton>\n Workers & Pages\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Durable Objects\n </Sidebar.MenuSubButton>\n <Sidebar.MenuSubButton>\n Containers\n <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n </Sidebar.MenuSubButton>\n </Sidebar.MenuSub>\n </Sidebar.CollapsibleContent>\n </Sidebar.Collapsible>\n </Sidebar.MenuItem>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n\n <Sidebar.Group>\n <Sidebar.GroupLabel>Protect & Connect</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={ShieldCheckIcon}>\n Security\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={LockIcon}>\n Zero Trust\n <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n\n <Sidebar.Footer>\n <Sidebar.MenuButton icon={GearIcon}>\n Manage account\n </Sidebar.MenuButton>\n </Sidebar.Footer>\n </Sidebar>\n <DemoMain />\n </Sidebar.Provider>\n </DemoContainer>",
4250
+ "<DemoContainer>\n <Sidebar.Provider\n defaultOpen\n resizable\n defaultWidth={240}\n minWidth={180}\n maxWidth={400}\n className=\"min-h-0! h-full\"\n >\n <Sidebar>\n <Sidebar.Header>\n <BrandLogo />\n </Sidebar.Header>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={HouseIcon} active>\n Home\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Analytics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={DatabaseIcon}>\n Storage\n </Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n <Sidebar.Footer>\n <Sidebar.Trigger />\n </Sidebar.Footer>\n <Sidebar.ResizeHandle />\n </Sidebar>\n <DemoMain>\n <p className=\"text-sm\">Drag the sidebar edge to resize</p>\n </DemoMain>\n </Sidebar.Provider>\n </DemoContainer>",
4251
+ "<DemoContainer>\n <Sidebar.Provider defaultOpen side=\"right\" className=\"min-h-0! h-full\">\n <DemoMain />\n <Sidebar>\n <Sidebar.Content>\n <Sidebar.Group>\n <Sidebar.GroupLabel>Details</Sidebar.GroupLabel>\n <Sidebar.Menu>\n <Sidebar.MenuButton icon={GearIcon} active>\n Properties\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={ChartBarIcon}>\n Metrics\n </Sidebar.MenuButton>\n <Sidebar.MenuButton icon={BellIcon}>Alerts</Sidebar.MenuButton>\n </Sidebar.Menu>\n </Sidebar.Group>\n </Sidebar.Content>\n </Sidebar>\n </Sidebar.Provider>\n </DemoContainer>"
4252
+ ],
4253
+ "colors": [
4254
+ "bg-kumo-base",
4255
+ "bg-kumo-brand",
4256
+ "bg-kumo-line",
4257
+ "bg-kumo-overlay",
4258
+ "bg-kumo-recessed",
4259
+ "bg-kumo-tint",
4260
+ "border-kumo-line",
4261
+ "ring-kumo-line",
4262
+ "ring-kumo-ring",
4263
+ "text-kumo-default",
4264
+ "text-kumo-strong",
4265
+ "text-kumo-subtle"
4266
+ ],
4267
+ "subComponents": {
4268
+ "Provider": {
4269
+ "name": "Provider",
4270
+ "description": "Provider sub-component",
4271
+ "props": {
4272
+ "defaultOpen": {
4273
+ "type": "boolean",
4274
+ "optional": true
4275
+ },
4276
+ "open": {
4277
+ "type": "boolean",
4278
+ "optional": true
4279
+ },
4280
+ "variant": {
4281
+ "type": "SidebarVariant",
4282
+ "optional": true
4283
+ },
4284
+ "side": {
4285
+ "type": "SidebarSide",
4286
+ "optional": true
4287
+ },
4288
+ "collapsible": {
4289
+ "type": "\"icon\" | \"offcanvas\" | \"none\"",
4290
+ "optional": true
4291
+ },
4292
+ "resizable": {
4293
+ "type": "boolean",
4294
+ "optional": true
4295
+ },
4296
+ "defaultWidth": {
4297
+ "type": "number",
4298
+ "optional": true
4299
+ },
4300
+ "minWidth": {
4301
+ "type": "number",
4302
+ "optional": true
4303
+ },
4304
+ "maxWidth": {
4305
+ "type": "number",
4306
+ "optional": true
4307
+ },
4308
+ "children": {
4309
+ "type": "ReactNode",
4310
+ "required": true
4311
+ },
4312
+ "className": {
4313
+ "type": "string",
4314
+ "optional": true
4315
+ }
4316
+ }
4317
+ },
4318
+ "Header": {
4319
+ "name": "Header",
4320
+ "description": "Header sub-component",
4321
+ "props": {}
4322
+ },
4323
+ "Content": {
4324
+ "name": "Content",
4325
+ "description": "Content sub-component",
4326
+ "props": {}
4327
+ },
4328
+ "Footer": {
4329
+ "name": "Footer",
4330
+ "description": "Footer sub-component",
4331
+ "props": {}
4332
+ },
4333
+ "Group": {
4334
+ "name": "Group",
4335
+ "description": "Group sub-component",
4336
+ "props": {}
4337
+ },
4338
+ "GroupLabel": {
4339
+ "name": "GroupLabel",
4340
+ "description": "GroupLabel sub-component",
4341
+ "props": {}
4342
+ },
4343
+ "GroupContent": {
4344
+ "name": "GroupContent",
4345
+ "description": "GroupContent sub-component",
4346
+ "props": {}
4347
+ },
4348
+ "Menu": {
4349
+ "name": "Menu",
4350
+ "description": "Menu sub-component",
4351
+ "props": {}
4352
+ },
4353
+ "MenuItem": {
4354
+ "name": "MenuItem",
4355
+ "description": "MenuItem sub-component",
4356
+ "props": {}
4357
+ },
4358
+ "MenuButton": {
4359
+ "name": "MenuButton",
4360
+ "description": "MenuButton sub-component",
4361
+ "props": {}
4362
+ },
4363
+ "MenuAction": {
4364
+ "name": "MenuAction",
4365
+ "description": "MenuAction sub-component",
4366
+ "props": {}
4367
+ },
4368
+ "MenuBadge": {
4369
+ "name": "MenuBadge",
4370
+ "description": "MenuBadge sub-component",
4371
+ "props": {}
4372
+ },
4373
+ "MenuSub": {
4374
+ "name": "MenuSub",
4375
+ "description": "MenuSub sub-component",
4376
+ "props": {}
4377
+ },
4378
+ "MenuSubItem": {
4379
+ "name": "MenuSubItem",
4380
+ "description": "MenuSubItem sub-component",
4381
+ "props": {}
4382
+ },
4383
+ "MenuSubButton": {
4384
+ "name": "MenuSubButton",
4385
+ "description": "MenuSubButton sub-component",
4386
+ "props": {}
4387
+ },
4388
+ "Separator": {
4389
+ "name": "Separator",
4390
+ "description": "Separator sub-component",
4391
+ "props": {}
4392
+ },
4393
+ "Input": {
4394
+ "name": "Input",
4395
+ "description": "Input sub-component",
4396
+ "props": {}
4397
+ },
4398
+ "Trigger": {
4399
+ "name": "Trigger",
4400
+ "description": "Trigger sub-component",
4401
+ "props": {}
4402
+ },
4403
+ "Rail": {
4404
+ "name": "Rail",
4405
+ "description": "Rail sub-component",
4406
+ "props": {}
4407
+ },
4408
+ "ResizeHandle": {
4409
+ "name": "ResizeHandle",
4410
+ "description": "ResizeHandle sub-component",
4411
+ "props": {}
4412
+ },
4413
+ "MenuChevron": {
4414
+ "name": "MenuChevron",
4415
+ "description": "MenuChevron sub-component",
4416
+ "props": {}
4417
+ },
4418
+ "Collapsible": {
4419
+ "name": "Collapsible",
4420
+ "description": "Collapsible sub-component",
4421
+ "props": {}
4422
+ },
4423
+ "CollapsibleTrigger": {
4424
+ "name": "CollapsibleTrigger",
4425
+ "description": "CollapsibleTrigger sub-component",
4426
+ "props": {}
4427
+ },
4428
+ "CollapsibleContent": {
4429
+ "name": "CollapsibleContent",
4430
+ "description": "CollapsibleContent sub-component",
4431
+ "props": {}
4432
+ }
4433
+ },
4434
+ "styling": {
4435
+ "width": {
4436
+ "expanded": "16rem",
4437
+ "icon": "3rem"
4438
+ },
4439
+ "mobile": {
4440
+ "breakpoint": 768
4441
+ }
4442
+ }
4443
+ },
4091
4444
  "Surface": {
4092
4445
  "name": "Surface",
4093
4446
  "type": "component",
@@ -4240,7 +4593,8 @@
4240
4593
  "<Switch label=\"Disabled\" checked={false} disabled />",
4241
4594
  "<Switch\n label=\"Neutral switch\"\n variant=\"neutral\"\n checked={checked}\n onCheckedChange={setChecked}\n />",
4242
4595
  "<div className=\"flex flex-col gap-4\">\n <Switch\n label=\"Neutral off\"\n variant=\"neutral\"\n checked={false}\n onCheckedChange={() => {}}\n />\n <Switch\n label=\"Neutral on\"\n variant=\"neutral\"\n checked={true}\n onCheckedChange={() => {}}\n />\n <Switch\n label=\"Neutral disabled\"\n variant=\"neutral\"\n checked={false}\n disabled\n />\n </div>",
4243
- "<div className=\"flex flex-col gap-4\">\n <Switch\n label=\"Default variant\"\n checked={true}\n onCheckedChange={() => {}}\n />\n <Switch\n label=\"Neutral variant\"\n variant=\"neutral\"\n checked={true}\n onCheckedChange={() => {}}\n />\n </div>"
4596
+ "<div className=\"flex flex-col gap-4\">\n <Switch\n label=\"Default variant\"\n checked={true}\n onCheckedChange={() => {}}\n />\n <Switch\n label=\"Neutral variant\"\n variant=\"neutral\"\n checked={true}\n onCheckedChange={() => {}}\n />\n </div>",
4597
+ "<div className=\"flex flex-col gap-4\">\n <Switch\n label=\"Small\"\n size=\"sm\"\n checked={true}\n onCheckedChange={() => {}}\n />\n <Switch\n label=\"Base (default)\"\n size=\"base\"\n checked={true}\n onCheckedChange={() => {}}\n />\n <Switch\n label=\"Large\"\n size=\"lg\"\n checked={true}\n onCheckedChange={() => {}}\n />\n </div>"
4244
4598
  ],
4245
4599
  "colors": [
4246
4600
  "bg-kumo-base",
@@ -4309,6 +4663,9 @@
4309
4663
  "descriptions": {
4310
4664
  "auto": "Auto table layout - columns resize based on content",
4311
4665
  "fixed": "Fixed table layout - columns have equal width, controlled via colgroup"
4666
+ },
4667
+ "classes": {
4668
+ "fixed": "table-fixed"
4312
4669
  }
4313
4670
  },
4314
4671
  "variant": {
@@ -4321,6 +4678,9 @@
4321
4678
  "descriptions": {
4322
4679
  "default": "Default row variant",
4323
4680
  "selected": "Selected row variant"
4681
+ },
4682
+ "classes": {
4683
+ "selected": "bg-kumo-tint"
4324
4684
  }
4325
4685
  },
4326
4686
  "className": {
@@ -4634,14 +4994,25 @@
4634
4994
  "type": "enum",
4635
4995
  "values": [
4636
4996
  "default",
4997
+ "success",
4637
4998
  "error",
4638
- "warning"
4999
+ "warning",
5000
+ "info"
4639
5001
  ],
4640
5002
  "default": "default",
4641
5003
  "descriptions": {
4642
5004
  "default": "Default toast style",
5005
+ "success": "Success toast for confirmations and positive outcomes",
4643
5006
  "error": "Error toast for critical issues",
4644
- "warning": "Warning toast for cautionary messages"
5007
+ "warning": "Warning toast for cautionary messages",
5008
+ "info": "Info toast for neutral informational messages"
5009
+ },
5010
+ "classes": {
5011
+ "default": "border-kumo-fill bg-kumo-control",
5012
+ "success": "border-kumo-success bg-kumo-control [&_[data-toast-icon]]:text-kumo-success [&_[data-toast-title]]:text-kumo-success",
5013
+ "error": "border-kumo-danger bg-kumo-control [&_[data-toast-icon]]:text-kumo-danger [&_[data-toast-title]]:text-kumo-danger",
5014
+ "warning": "border-kumo-warning bg-kumo-control [&_[data-toast-icon]]:text-kumo-warning [&_[data-toast-title]]:text-kumo-warning",
5015
+ "info": "border-kumo-info bg-kumo-control [&_[data-toast-icon]]:text-kumo-info [&_[data-toast-title]]:text-kumo-info"
4645
5016
  }
4646
5017
  },
4647
5018
  "className": {
@@ -4657,11 +5028,23 @@
4657
5028
  "colors": [
4658
5029
  "bg-kumo-contrast",
4659
5030
  "bg-kumo-control",
5031
+ "bg-kumo-danger-tint",
4660
5032
  "bg-kumo-fill-hover",
5033
+ "bg-kumo-info-tint",
5034
+ "bg-kumo-success-tint",
5035
+ "bg-kumo-warning-tint",
5036
+ "border-kumo-danger",
4661
5037
  "border-kumo-fill",
5038
+ "border-kumo-info",
5039
+ "border-kumo-success",
5040
+ "border-kumo-warning",
5041
+ "text-kumo-danger",
4662
5042
  "text-kumo-default",
5043
+ "text-kumo-info",
4663
5044
  "text-kumo-strong",
4664
- "text-kumo-subtle"
5045
+ "text-kumo-subtle",
5046
+ "text-kumo-success",
5047
+ "text-kumo-warning"
4665
5048
  ],
4666
5049
  "styling": {
4667
5050
  "container": {
@@ -5027,6 +5410,7 @@
5027
5410
  "Label",
5028
5411
  "Link",
5029
5412
  "SensitiveInput",
5413
+ "Sidebar",
5030
5414
  "Table",
5031
5415
  "DeleteResource"
5032
5416
  ],
@@ -5083,6 +5467,7 @@
5083
5467
  "ResourceListPage",
5084
5468
  "Select",
5085
5469
  "SensitiveInput",
5470
+ "Sidebar",
5086
5471
  "Surface",
5087
5472
  "Switch",
5088
5473
  "Table",
@@ -5123,6 +5508,7 @@
5123
5508
  "Radio",
5124
5509
  "Select",
5125
5510
  "SensitiveInput",
5511
+ "Sidebar",
5126
5512
  "Surface",
5127
5513
  "Switch",
5128
5514
  "Table",
@@ -5138,4 +5524,4 @@
5138
5524
  ]
5139
5525
  }
5140
5526
  }
5141
- }
5527
+ }