@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
@@ -1077,27 +1077,6 @@ Props:
1077
1077
  - `lang`: CodeLang
1078
1078
 
1079
1079
 
1080
- **Examples:**
1081
-
1082
- ```tsx
1083
- <CodeBlock
1084
- lang="tsx"
1085
- code={`const greeting = "Hello, World!";
1086
- console.log(greeting);`}
1087
- />
1088
- ```
1089
-
1090
- ```tsx
1091
- <Code
1092
- lang="bash"
1093
- code="export API_KEY={{apiKey}}"
1094
- values={{
1095
- apiKey: { value: "sk_live_123", highlight: true },
1096
- }}
1097
- />
1098
- ```
1099
-
1100
-
1101
1080
  ---
1102
1081
 
1103
1082
  ### Collapsible
@@ -3316,6 +3295,10 @@ Animated circular spinner for indicating loading states.
3316
3295
  <Loader size={24} />
3317
3296
  ```
3318
3297
 
3298
+ ```tsx
3299
+ <Loader className="text-kumo-subtle" />
3300
+ ```
3301
+
3319
3302
 
3320
3303
  ---
3321
3304
 
@@ -3351,20 +3334,20 @@ MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation.
3351
3334
 
3352
3335
  ```tsx
3353
3336
  <MenuBar
3354
- isActive="bold"
3337
+ isActive={active}
3355
3338
  optionIds
3356
3339
  options={[
3357
3340
  {
3358
3341
  icon: <TextBolderIcon />,
3359
3342
  id: "bold",
3360
3343
  tooltip: "Bold",
3361
- onClick: () => {},
3344
+ onClick: () => setActive(active === "bold" ? undefined : "bold"),
3362
3345
  },
3363
3346
  {
3364
3347
  icon: <TextItalicIcon />,
3365
3348
  id: "italic",
3366
3349
  tooltip: "Italic",
3367
- onClick: () => {},
3350
+ onClick: () => setActive(active === "italic" ? undefined : "italic"),
3368
3351
  },
3369
3352
  ]}
3370
3353
  />
@@ -3424,7 +3407,7 @@ Progress bar showing a measured value within a known range (e.g. quota usage).
3424
3407
  <Meter
3425
3408
  label="Upload progress"
3426
3409
  value={80}
3427
- indicatorClassName="from-green-500 via-green-500 to-green-500"
3410
+ indicatorClassName="from-kumo-success via-kumo-success to-kumo-success"
3428
3411
  />
3429
3412
  ```
3430
3413
 
@@ -3841,6 +3824,34 @@ Radio — radio button group for single-select choices. Compound component: `Ra
3841
3824
 
3842
3825
  `bg-kumo-base`, `bg-kumo-contrast`, `bg-kumo-tint`, `border-kumo-danger`, `border-kumo-interact`, `border-kumo-line`, `border-kumo-ring`, `ring-kumo-danger`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-subtle`
3843
3826
 
3827
+ **Sub-Components:**
3828
+
3829
+ This is a compound component. Use these sub-components:
3830
+
3831
+ #### Radio.Item
3832
+
3833
+ Item sub-component
3834
+
3835
+ #### Radio.Group
3836
+
3837
+ Group sub-component
3838
+
3839
+ Props:
3840
+ - `legend`: string (required)
3841
+ - `children`: ReactNode (required)
3842
+ - `orientation`: "vertical" | "horizontal"
3843
+ - `appearance`: KumoRadioAppearance
3844
+ - `error`: string
3845
+ - `description`: ReactNode
3846
+ - `value`: string
3847
+ - `disabled`: boolean
3848
+ - `label`: "start" (default) puts radio before label (required)
3849
+ - `Note`: In card appearance (required)
3850
+ - `controlPosition`: RadioControlPosition
3851
+ - `name`: string
3852
+ - `className`: string
3853
+
3854
+
3844
3855
  **Examples:**
3845
3856
 
3846
3857
  ```tsx
@@ -4332,7 +4343,7 @@ Password/secret input that masks its value by default and reveals on click. Incl
4332
4343
 
4333
4344
  **Colors (kumo tokens used):**
4334
4345
 
4335
- `bg-kumo-brand`, `bg-kumo-control`, `outline-kumo-ring`, `text-kumo-default`, `text-kumo-subtle`
4346
+ `bg-kumo-brand`, `bg-kumo-control`, `outline-kumo-ring`, `ring-kumo-ring`, `text-kumo-default`, `text-kumo-subtle`
4336
4347
 
4337
4348
  **Examples:**
4338
4349
 
@@ -4405,6 +4416,481 @@ Password/secret input that masks its value by default and reveals on click. Incl
4405
4416
  ```
4406
4417
 
4407
4418
 
4419
+ ---
4420
+
4421
+ ### Sidebar
4422
+
4423
+ 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`.
4424
+
4425
+ **Type:** component
4426
+
4427
+ **Import:** `import { Sidebar } from "@cloudflare/kumo";`
4428
+
4429
+ **Category:** Other
4430
+
4431
+ **Props:**
4432
+
4433
+ - `defaultOpen`: boolean
4434
+ Initial open state when uncontrolled.
4435
+ - `open`: boolean
4436
+ Controlled open state.
4437
+ - `variant`: enum [default: sidebar]
4438
+ - `"sidebar"`: Standard sidebar with border separator
4439
+ - `"floating"`: Floating sidebar with shadow and rounded corners
4440
+ - `"inset"`: Inset sidebar within the content area
4441
+ - `side`: enum [default: left]
4442
+ - `"left"`: Left-aligned sidebar
4443
+ - `"right"`: Right-aligned sidebar
4444
+ - `collapsible`: enum [default: icon]
4445
+ - `"icon"`: Collapses to show icons only
4446
+ - `"offcanvas"`: Slides off screen when collapsed
4447
+ - `"none"`: Cannot be collapsed
4448
+ - `resizable`: boolean
4449
+ Enable drag-to-resize on the sidebar edge.
4450
+ - `defaultWidth`: number
4451
+ Initial width in pixels when resizable.
4452
+ - `minWidth`: number
4453
+ Minimum width in pixels when resizing.
4454
+ - `maxWidth`: number
4455
+ Maximum width in pixels when resizing.
4456
+ - `children`: ReactNode
4457
+ Content — typically `<Sidebar>` + main content.
4458
+ - `className`: string
4459
+ Additional CSS classes for the wrapper div.
4460
+
4461
+ **Colors (kumo tokens used):**
4462
+
4463
+ `bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-line`, `bg-kumo-overlay`, `bg-kumo-recessed`, `bg-kumo-tint`, `border-kumo-line`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-default`, `text-kumo-strong`, `text-kumo-subtle`
4464
+
4465
+ **Styling:**
4466
+
4467
+
4468
+ **Sub-Components:**
4469
+
4470
+ This is a compound component. Use these sub-components:
4471
+
4472
+ #### Sidebar.Provider
4473
+
4474
+ Provider sub-component
4475
+
4476
+ Props:
4477
+ - `defaultOpen`: boolean
4478
+ - `open`: boolean
4479
+ - `variant`: SidebarVariant
4480
+ - `side`: SidebarSide
4481
+ - `collapsible`: "icon" | "offcanvas" | "none"
4482
+ - `resizable`: boolean
4483
+ - `defaultWidth`: number
4484
+ - `minWidth`: number
4485
+ - `maxWidth`: number
4486
+ - `children`: ReactNode (required)
4487
+ - `className`: string
4488
+
4489
+ #### Sidebar.Header
4490
+
4491
+ Header sub-component
4492
+
4493
+ #### Sidebar.Content
4494
+
4495
+ Content sub-component
4496
+
4497
+ #### Sidebar.Footer
4498
+
4499
+ Footer sub-component
4500
+
4501
+ #### Sidebar.Group
4502
+
4503
+ Group sub-component
4504
+
4505
+ #### Sidebar.GroupLabel
4506
+
4507
+ GroupLabel sub-component
4508
+
4509
+ #### Sidebar.GroupContent
4510
+
4511
+ GroupContent sub-component
4512
+
4513
+ #### Sidebar.Menu
4514
+
4515
+ Menu sub-component
4516
+
4517
+ #### Sidebar.MenuItem
4518
+
4519
+ MenuItem sub-component
4520
+
4521
+ #### Sidebar.MenuButton
4522
+
4523
+ MenuButton sub-component
4524
+
4525
+ #### Sidebar.MenuAction
4526
+
4527
+ MenuAction sub-component
4528
+
4529
+ #### Sidebar.MenuBadge
4530
+
4531
+ MenuBadge sub-component
4532
+
4533
+ #### Sidebar.MenuSub
4534
+
4535
+ MenuSub sub-component
4536
+
4537
+ #### Sidebar.MenuSubItem
4538
+
4539
+ MenuSubItem sub-component
4540
+
4541
+ #### Sidebar.MenuSubButton
4542
+
4543
+ MenuSubButton sub-component
4544
+
4545
+ #### Sidebar.Separator
4546
+
4547
+ Separator sub-component
4548
+
4549
+ #### Sidebar.Input
4550
+
4551
+ Input sub-component
4552
+
4553
+ #### Sidebar.Trigger
4554
+
4555
+ Trigger sub-component
4556
+
4557
+ #### Sidebar.Rail
4558
+
4559
+ Rail sub-component
4560
+
4561
+ #### Sidebar.ResizeHandle
4562
+
4563
+ ResizeHandle sub-component
4564
+
4565
+ #### Sidebar.MenuChevron
4566
+
4567
+ MenuChevron sub-component
4568
+
4569
+ #### Sidebar.Collapsible
4570
+
4571
+ Collapsible sub-component
4572
+
4573
+ #### Sidebar.CollapsibleTrigger
4574
+
4575
+ CollapsibleTrigger sub-component
4576
+
4577
+ #### Sidebar.CollapsibleContent
4578
+
4579
+ CollapsibleContent sub-component
4580
+
4581
+
4582
+ **Examples:**
4583
+
4584
+ ```tsx
4585
+ <DemoContainer>
4586
+ <Sidebar.Provider defaultOpen className="min-h-0! h-full">
4587
+ <Sidebar>
4588
+ <Sidebar.Content>
4589
+ <Sidebar.Group>
4590
+ <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
4591
+ <Sidebar.Menu>
4592
+ <Sidebar.MenuButton icon={HouseIcon} active>
4593
+ Home
4594
+ </Sidebar.MenuButton>
4595
+ <Sidebar.MenuButton icon={ChartBarIcon}>
4596
+ Analytics
4597
+ </Sidebar.MenuButton>
4598
+ <Sidebar.MenuButton icon={GlobeIcon}>
4599
+ Domains
4600
+ </Sidebar.MenuButton>
4601
+ </Sidebar.Menu>
4602
+ </Sidebar.Group>
4603
+
4604
+ <Sidebar.Group>
4605
+ <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
4606
+ <Sidebar.Menu>
4607
+ <Sidebar.MenuItem>
4608
+ <Sidebar.Collapsible defaultOpen>
4609
+ <Sidebar.CollapsibleTrigger
4610
+ render={
4611
+ <Sidebar.MenuButton icon={CodeIcon}>
4612
+ Compute
4613
+ <Sidebar.MenuChevron />
4614
+ </Sidebar.MenuButton>
4615
+ }
4616
+ />
4617
+ <Sidebar.CollapsibleContent>
4618
+ <Sidebar.MenuSub>
4619
+ <Sidebar.MenuSubButton>
4620
+ Workers & Pages
4621
+ </Sidebar.MenuSubButton>
4622
+ <Sidebar.MenuSubButton>
4623
+ Durable Objects
4624
+ </Sidebar.MenuSubButton>
4625
+ </Sidebar.MenuSub>
4626
+ </Sidebar.CollapsibleContent>
4627
+ </Sidebar.Collapsible>
4628
+ </Sidebar.MenuItem>
4629
+ <Sidebar.MenuButton icon={DatabaseIcon}>
4630
+ Storage
4631
+ </Sidebar.MenuButton>
4632
+ </Sidebar.Menu>
4633
+ </Sidebar.Group>
4634
+ </Sidebar.Content>
4635
+ </Sidebar>
4636
+ <DemoMain />
4637
+ </Sidebar.Provider>
4638
+ </DemoContainer>
4639
+ ```
4640
+
4641
+ ```tsx
4642
+ <DemoContainer>
4643
+ <Sidebar.Provider defaultOpen className="min-h-0! h-full">
4644
+ <Sidebar>
4645
+ <Sidebar.Content>
4646
+ {/* GroupContent is required for collapsible groups (provides grid-rows animation) */}
4647
+ <Sidebar.Group collapsible defaultOpen>
4648
+ <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
4649
+ <Sidebar.GroupContent>
4650
+ <Sidebar.Menu>
4651
+ <Sidebar.MenuButton icon={HouseIcon} active>
4652
+ Home
4653
+ </Sidebar.MenuButton>
4654
+ <Sidebar.MenuButton icon={ChartBarIcon}>
4655
+ Analytics
4656
+ </Sidebar.MenuButton>
4657
+ <Sidebar.MenuButton icon={GlobeIcon}>
4658
+ Domains
4659
+ </Sidebar.MenuButton>
4660
+ </Sidebar.Menu>
4661
+ </Sidebar.GroupContent>
4662
+ </Sidebar.Group>
4663
+
4664
+ <Sidebar.Group collapsible defaultOpen>
4665
+ <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
4666
+ <Sidebar.GroupContent>
4667
+ <Sidebar.Menu>
4668
+ <Sidebar.MenuButton icon={CodeIcon}>
4669
+ Compute
4670
+ </Sidebar.MenuButton>
4671
+ <Sidebar.MenuButton icon={DatabaseIcon}>
4672
+ Storage
4673
+ </Sidebar.MenuButton>
4674
+ </Sidebar.Menu>
4675
+ </Sidebar.GroupContent>
4676
+ </Sidebar.Group>
4677
+
4678
+ <Sidebar.Group collapsible defaultOpen={false}>
4679
+ <Sidebar.GroupLabel>Protect & Connect</Sidebar.GroupLabel>
4680
+ <Sidebar.GroupContent>
4681
+ <Sidebar.Menu>
4682
+ <Sidebar.MenuButton icon={ShieldCheckIcon}>
4683
+ Security
4684
+ </Sidebar.MenuButton>
4685
+ <Sidebar.MenuButton icon={LockIcon}>
4686
+ Zero Trust
4687
+ </Sidebar.MenuButton>
4688
+ </Sidebar.Menu>
4689
+ </Sidebar.GroupContent>
4690
+ </Sidebar.Group>
4691
+ </Sidebar.Content>
4692
+ </Sidebar>
4693
+ <DemoMain />
4694
+ </Sidebar.Provider>
4695
+ </DemoContainer>
4696
+ ```
4697
+
4698
+ ```tsx
4699
+ <DemoContainer>
4700
+ <Sidebar.Provider defaultOpen className="min-h-0! h-full">
4701
+ <Sidebar>
4702
+ <Sidebar.Header>
4703
+ <BrandLogo />
4704
+ </Sidebar.Header>
4705
+ <Sidebar.Content>
4706
+ <Sidebar.Group>
4707
+ <Sidebar.Menu>
4708
+ <Sidebar.MenuButton icon={HouseIcon} tooltip="Home" active>
4709
+ Home
4710
+ </Sidebar.MenuButton>
4711
+ <Sidebar.MenuButton icon={ChartBarIcon} tooltip="Analytics">
4712
+ Analytics
4713
+ </Sidebar.MenuButton>
4714
+ <Sidebar.MenuButton icon={CodeIcon} tooltip="Compute">
4715
+ Compute
4716
+ </Sidebar.MenuButton>
4717
+ <Sidebar.MenuButton icon={DatabaseIcon} tooltip="Storage">
4718
+ Storage
4719
+ </Sidebar.MenuButton>
4720
+ </Sidebar.Menu>
4721
+ </Sidebar.Group>
4722
+ </Sidebar.Content>
4723
+ <Sidebar.Footer>
4724
+ <Sidebar.Trigger />
4725
+ </Sidebar.Footer>
4726
+ </Sidebar>
4727
+ <DemoMain>
4728
+ <ToggleButton />
4729
+ <p className="text-sm">
4730
+ Click the button or the sidebar trigger to toggle
4731
+ </p>
4732
+ </DemoMain>
4733
+ </Sidebar.Provider>
4734
+ </DemoContainer>
4735
+ ```
4736
+
4737
+ ```tsx
4738
+ <DemoContainer>
4739
+ <Sidebar.Provider defaultOpen className="min-h-0! h-full">
4740
+ <Sidebar>
4741
+ <Sidebar.Header>
4742
+ <AccountSwitcher />
4743
+ </Sidebar.Header>
4744
+
4745
+ <Sidebar.Content>
4746
+ <div className="px-1 pb-2">
4747
+ <Sidebar.Input placeholder="Quick search..." shortcut="⌘K" />
4748
+ </div>
4749
+
4750
+ <Sidebar.Group>
4751
+ <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
4752
+ <Sidebar.Menu>
4753
+ <Sidebar.MenuButton icon={HouseIcon} active>
4754
+ Home
4755
+ </Sidebar.MenuButton>
4756
+ <Sidebar.MenuButton icon={ChartBarIcon}>
4757
+ Analytics & Logs
4758
+ </Sidebar.MenuButton>
4759
+ <Sidebar.MenuButton icon={GlobeIcon}>
4760
+ Domains
4761
+ </Sidebar.MenuButton>
4762
+ </Sidebar.Menu>
4763
+ </Sidebar.Group>
4764
+
4765
+ <Sidebar.Separator />
4766
+
4767
+ <Sidebar.Group>
4768
+ <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>
4769
+ <Sidebar.Menu>
4770
+ <Sidebar.MenuItem>
4771
+ <Sidebar.Collapsible defaultOpen>
4772
+ <Sidebar.CollapsibleTrigger
4773
+ render={
4774
+ <Sidebar.MenuButton icon={CodeIcon}>
4775
+ Compute
4776
+ <Sidebar.MenuChevron />
4777
+ </Sidebar.MenuButton>
4778
+ }
4779
+ />
4780
+ <Sidebar.CollapsibleContent>
4781
+ <Sidebar.MenuSub>
4782
+ <Sidebar.MenuSubButton>
4783
+ Workers & Pages
4784
+ </Sidebar.MenuSubButton>
4785
+ <Sidebar.MenuSubButton>
4786
+ Durable Objects
4787
+ </Sidebar.MenuSubButton>
4788
+ <Sidebar.MenuSubButton>
4789
+ Containers
4790
+ <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>
4791
+ </Sidebar.MenuSubButton>
4792
+ </Sidebar.MenuSub>
4793
+ </Sidebar.CollapsibleContent>
4794
+ </Sidebar.Collapsible>
4795
+ </Sidebar.MenuItem>
4796
+ <Sidebar.MenuButton icon={DatabaseIcon}>
4797
+ Storage
4798
+ </Sidebar.MenuButton>
4799
+ </Sidebar.Menu>
4800
+ </Sidebar.Group>
4801
+
4802
+ <Sidebar.Group>
4803
+ <Sidebar.GroupLabel>Protect & Connect</Sidebar.GroupLabel>
4804
+ <Sidebar.Menu>
4805
+ <Sidebar.MenuButton icon={ShieldCheckIcon}>
4806
+ Security
4807
+ </Sidebar.MenuButton>
4808
+ <Sidebar.MenuButton icon={LockIcon}>
4809
+ Zero Trust
4810
+ <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>
4811
+ </Sidebar.MenuButton>
4812
+ </Sidebar.Menu>
4813
+ </Sidebar.Group>
4814
+ </Sidebar.Content>
4815
+
4816
+ <Sidebar.Footer>
4817
+ <Sidebar.MenuButton icon={GearIcon}>
4818
+ Manage account
4819
+ </Sidebar.MenuButton>
4820
+ </Sidebar.Footer>
4821
+ </Sidebar>
4822
+ <DemoMain />
4823
+ </Sidebar.Provider>
4824
+ </DemoContainer>
4825
+ ```
4826
+
4827
+ ```tsx
4828
+ <DemoContainer>
4829
+ <Sidebar.Provider
4830
+ defaultOpen
4831
+ resizable
4832
+ defaultWidth={240}
4833
+ minWidth={180}
4834
+ maxWidth={400}
4835
+ className="min-h-0! h-full"
4836
+ >
4837
+ <Sidebar>
4838
+ <Sidebar.Header>
4839
+ <BrandLogo />
4840
+ </Sidebar.Header>
4841
+ <Sidebar.Content>
4842
+ <Sidebar.Group>
4843
+ <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>
4844
+ <Sidebar.Menu>
4845
+ <Sidebar.MenuButton icon={HouseIcon} active>
4846
+ Home
4847
+ </Sidebar.MenuButton>
4848
+ <Sidebar.MenuButton icon={ChartBarIcon}>
4849
+ Analytics
4850
+ </Sidebar.MenuButton>
4851
+ <Sidebar.MenuButton icon={DatabaseIcon}>
4852
+ Storage
4853
+ </Sidebar.MenuButton>
4854
+ </Sidebar.Menu>
4855
+ </Sidebar.Group>
4856
+ </Sidebar.Content>
4857
+ <Sidebar.Footer>
4858
+ <Sidebar.Trigger />
4859
+ </Sidebar.Footer>
4860
+ <Sidebar.ResizeHandle />
4861
+ </Sidebar>
4862
+ <DemoMain>
4863
+ <p className="text-sm">Drag the sidebar edge to resize</p>
4864
+ </DemoMain>
4865
+ </Sidebar.Provider>
4866
+ </DemoContainer>
4867
+ ```
4868
+
4869
+ ```tsx
4870
+ <DemoContainer>
4871
+ <Sidebar.Provider defaultOpen side="right" className="min-h-0! h-full">
4872
+ <DemoMain />
4873
+ <Sidebar>
4874
+ <Sidebar.Content>
4875
+ <Sidebar.Group>
4876
+ <Sidebar.GroupLabel>Details</Sidebar.GroupLabel>
4877
+ <Sidebar.Menu>
4878
+ <Sidebar.MenuButton icon={GearIcon} active>
4879
+ Properties
4880
+ </Sidebar.MenuButton>
4881
+ <Sidebar.MenuButton icon={ChartBarIcon}>
4882
+ Metrics
4883
+ </Sidebar.MenuButton>
4884
+ <Sidebar.MenuButton icon={BellIcon}>Alerts</Sidebar.MenuButton>
4885
+ </Sidebar.Menu>
4886
+ </Sidebar.Group>
4887
+ </Sidebar.Content>
4888
+ </Sidebar>
4889
+ </Sidebar.Provider>
4890
+ </DemoContainer>
4891
+ ```
4892
+
4893
+
4408
4894
  ---
4409
4895
 
4410
4896
  ### Surface
@@ -4595,6 +5081,29 @@ Props:
4595
5081
  </div>
4596
5082
  ```
4597
5083
 
5084
+ ```tsx
5085
+ <div className="flex flex-col gap-4">
5086
+ <Switch
5087
+ label="Small"
5088
+ size="sm"
5089
+ checked={true}
5090
+ onCheckedChange={() => {}}
5091
+ />
5092
+ <Switch
5093
+ label="Base (default)"
5094
+ size="base"
5095
+ checked={true}
5096
+ onCheckedChange={() => {}}
5097
+ />
5098
+ <Switch
5099
+ label="Large"
5100
+ size="lg"
5101
+ checked={true}
5102
+ onCheckedChange={() => {}}
5103
+ />
5104
+ </div>
5105
+ ```
5106
+
4598
5107
 
4599
5108
  ---
4600
5109
 
@@ -5186,8 +5695,10 @@ Toasty — toast notification provider and viewport. Renders a `Toast.Provider`
5186
5695
 
5187
5696
  - `variant`: enum [default: default]
5188
5697
  - `"default"`: Default toast style
5698
+ - `"success"`: Success toast for confirmations and positive outcomes
5189
5699
  - `"error"`: Error toast for critical issues
5190
5700
  - `"warning"`: Warning toast for cautionary messages
5701
+ - `"info"`: Info toast for neutral informational messages
5191
5702
  - `className`: string
5192
5703
  Additional CSS classes
5193
5704
  - `children`: ReactNode
@@ -5195,7 +5706,7 @@ Toasty — toast notification provider and viewport. Renders a `Toast.Provider`
5195
5706
 
5196
5707
  **Colors (kumo tokens used):**
5197
5708
 
5198
- `bg-kumo-contrast`, `bg-kumo-control`, `bg-kumo-fill-hover`, `border-kumo-fill`, `text-kumo-default`, `text-kumo-strong`, `text-kumo-subtle`
5709
+ `bg-kumo-contrast`, `bg-kumo-control`, `bg-kumo-danger-tint`, `bg-kumo-fill-hover`, `bg-kumo-info-tint`, `bg-kumo-success-tint`, `bg-kumo-warning-tint`, `border-kumo-danger`, `border-kumo-fill`, `border-kumo-info`, `border-kumo-success`, `border-kumo-warning`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-info`, `text-kumo-strong`, `text-kumo-subtle`, `text-kumo-success`, `text-kumo-warning`
5199
5710
 
5200
5711
  **Styling:**
5201
5712
 
@@ -5300,7 +5811,7 @@ Multi-line textarea input with Input variants and InputArea-specific dimensions
5300
5811
  - **Feedback:** Banner, Loader, Toasty
5301
5812
  - **Action:** Button, ClipboardText
5302
5813
  - **Input:** Checkbox, Combobox, DateRangePicker, Field, Input, Radio, Select, Switch
5303
- - **Other:** CloudflareLogo, DatePicker, Label, Link, SensitiveInput, Table, DeleteResource
5814
+ - **Other:** CloudflareLogo, DatePicker, Label, Link, SensitiveInput, Sidebar, Table, DeleteResource
5304
5815
  - **Navigation:** CommandPalette, MenuBar, Pagination, Tabs
5305
5816
  - **Overlay:** Dialog, DropdownMenu, Popover, Tooltip
5306
5817
  - **Layout:** Grid, Surface, PageHeader, ResourceListPage