@cloudflare/kumo 1.2.0 → 1.4.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 (148) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/ai/USAGE.md +193 -0
  3. package/ai/component-registry.json +1492 -215
  4. package/ai/component-registry.md +524 -66
  5. package/ai/schemas.ts +366 -107
  6. package/dist/.build-complete +1 -1
  7. package/dist/badge-Dc99vsfo.js.map +1 -1
  8. package/dist/banner-4fkH6Sbt.js.map +1 -1
  9. package/dist/breadcrumbs-DyKi7BcP.js.map +1 -1
  10. package/dist/button-Bh96oxRL.js.map +1 -1
  11. package/dist/catalog.js +1 -1
  12. package/dist/checkbox-C1LPq8eL.js.map +1 -1
  13. package/dist/clipboard-text-CJSI9X2m.js.map +1 -1
  14. package/dist/cloudflare-logo-Dqd1VD9z.js +166 -0
  15. package/dist/cloudflare-logo-Dqd1VD9z.js.map +1 -0
  16. package/dist/code-T2wPDiM0.js.map +1 -1
  17. package/dist/collapsible-OBNkTO48.js.map +1 -1
  18. package/dist/combobox-CWxn5aHA.js.map +1 -1
  19. package/dist/command-line/cli.js +43 -18
  20. package/dist/command-line/commands/ai.js +23 -0
  21. package/dist/command-line/commands/blocks.js +2 -2
  22. package/dist/command-line/commands/ls.js +2 -2
  23. package/dist/{command-palette-BxmGYxBv.js → command-palette-J50WKjS7.js} +14 -8
  24. package/dist/command-palette-J50WKjS7.js.map +1 -0
  25. package/dist/components/cloudflare-logo.js +10 -0
  26. package/dist/components/cloudflare-logo.js.map +1 -0
  27. package/dist/components/command-palette.js +1 -1
  28. package/dist/components/dialog.js +1 -1
  29. package/dist/components/popover.js +1 -1
  30. package/dist/date-range-picker-CbKEQ9pi.js.map +1 -1
  31. package/dist/{dialog-BxXPA2vI.js → dialog-x9n9wI13.js} +18 -18
  32. package/dist/dialog-x9n9wI13.js.map +1 -0
  33. package/dist/dropdown-BAyk1knz.js.map +1 -1
  34. package/dist/empty-D03cbzRS.js.map +1 -1
  35. package/dist/field-B7ORz5ej.js.map +1 -1
  36. package/dist/grid-DKajRHh8.js.map +1 -1
  37. package/dist/index.js +274 -122
  38. package/dist/index.js.map +1 -1
  39. package/dist/input-D6YgDfDG.js.map +1 -1
  40. package/dist/label-B4FY8MX_.js.map +1 -1
  41. package/dist/layer-card-C8j5Hkkj.js.map +1 -1
  42. package/dist/link-CcuZKqob.js.map +1 -1
  43. package/dist/loader-DHGMYlC6.js.map +1 -1
  44. package/dist/menubar-CzimiryS.js.map +1 -1
  45. package/dist/meter-BrJnHJ3Q.js.map +1 -1
  46. package/dist/pagination-D0x9KQSk.js.map +1 -1
  47. package/dist/{popover-BfGLC2s6.js → popover-CtKDH8Yc.js} +8 -8
  48. package/dist/popover-CtKDH8Yc.js.map +1 -0
  49. package/dist/radio-CYejLANA.js.map +1 -1
  50. package/dist/schemas-DCw6TIy0.js +3859 -0
  51. package/dist/{schemas-C2YJKpDC.js.map → schemas-DCw6TIy0.js.map} +1 -1
  52. package/dist/select-D4rKQAax.js.map +1 -1
  53. package/dist/sensitive-input-DYvAmxkN.js.map +1 -1
  54. package/dist/src/blocks/delete-resource/delete-resource.d.ts +46 -0
  55. package/dist/src/blocks/delete-resource/delete-resource.d.ts.map +1 -0
  56. package/dist/src/blocks/delete-resource/index.d.ts +2 -0
  57. package/dist/src/blocks/delete-resource/index.d.ts.map +1 -0
  58. package/dist/src/command-line/commands/ai.d.ts +10 -0
  59. package/dist/src/command-line/commands/ai.d.ts.map +1 -0
  60. package/dist/src/components/badge/badge.d.ts +31 -4
  61. package/dist/src/components/badge/badge.d.ts.map +1 -1
  62. package/dist/src/components/banner/banner.d.ts +39 -4
  63. package/dist/src/components/banner/banner.d.ts.map +1 -1
  64. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +35 -0
  65. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  66. package/dist/src/components/button/button.d.ts +86 -0
  67. package/dist/src/components/button/button.d.ts.map +1 -1
  68. package/dist/src/components/checkbox/checkbox.d.ts +7 -0
  69. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  70. package/dist/src/components/clipboard-text/clipboard-text.d.ts +28 -3
  71. package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
  72. package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts +133 -0
  73. package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts.map +1 -0
  74. package/dist/src/components/cloudflare-logo/index.d.ts +2 -0
  75. package/dist/src/components/cloudflare-logo/index.d.ts.map +1 -0
  76. package/dist/src/components/code/code.d.ts +38 -6
  77. package/dist/src/components/code/code.d.ts.map +1 -1
  78. package/dist/src/components/collapsible/collapsible.d.ts +10 -0
  79. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
  80. package/dist/src/components/combobox/combobox.d.ts +61 -0
  81. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  82. package/dist/src/components/command-palette/command-palette.d.ts +41 -6
  83. package/dist/src/components/command-palette/command-palette.d.ts.map +1 -1
  84. package/dist/src/components/date-range-picker/date-range-picker.d.ts +57 -4
  85. package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  86. package/dist/src/components/dialog/dialog.d.ts +28 -1
  87. package/dist/src/components/dialog/dialog.d.ts.map +1 -1
  88. package/dist/src/components/dropdown/dropdown.d.ts +33 -0
  89. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
  90. package/dist/src/components/empty/empty.d.ts +35 -0
  91. package/dist/src/components/empty/empty.d.ts.map +1 -1
  92. package/dist/src/components/field/field.d.ts +34 -4
  93. package/dist/src/components/field/field.d.ts.map +1 -1
  94. package/dist/src/components/grid/grid.d.ts +45 -17
  95. package/dist/src/components/grid/grid.d.ts.map +1 -1
  96. package/dist/src/components/input/input.d.ts +15 -0
  97. package/dist/src/components/input/input.d.ts.map +1 -1
  98. package/dist/src/components/label/label.d.ts +16 -5
  99. package/dist/src/components/label/label.d.ts.map +1 -1
  100. package/dist/src/components/layer-card/layer-card.d.ts +13 -0
  101. package/dist/src/components/layer-card/layer-card.d.ts.map +1 -1
  102. package/dist/src/components/link/link.d.ts +20 -0
  103. package/dist/src/components/link/link.d.ts.map +1 -1
  104. package/dist/src/components/loader/loader.d.ts +34 -0
  105. package/dist/src/components/loader/loader.d.ts.map +1 -1
  106. package/dist/src/components/menubar/menubar.d.ts +44 -0
  107. package/dist/src/components/menubar/menubar.d.ts.map +1 -1
  108. package/dist/src/components/meter/meter.d.ts +26 -0
  109. package/dist/src/components/meter/meter.d.ts.map +1 -1
  110. package/dist/src/components/pagination/pagination.d.ts +25 -0
  111. package/dist/src/components/pagination/pagination.d.ts.map +1 -1
  112. package/dist/src/components/popover/popover.d.ts +33 -5
  113. package/dist/src/components/popover/popover.d.ts.map +1 -1
  114. package/dist/src/components/radio/radio.d.ts +22 -0
  115. package/dist/src/components/radio/radio.d.ts.map +1 -1
  116. package/dist/src/components/select/select.d.ts +42 -20
  117. package/dist/src/components/select/select.d.ts.map +1 -1
  118. package/dist/src/components/sensitive-input/sensitive-input.d.ts +30 -6
  119. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
  120. package/dist/src/components/surface/surface.d.ts +18 -6
  121. package/dist/src/components/surface/surface.d.ts.map +1 -1
  122. package/dist/src/components/switch/switch.d.ts +14 -0
  123. package/dist/src/components/switch/switch.d.ts.map +1 -1
  124. package/dist/src/components/table/table.d.ts +33 -0
  125. package/dist/src/components/table/table.d.ts.map +1 -1
  126. package/dist/src/components/tabs/tabs.d.ts +48 -9
  127. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  128. package/dist/src/components/text/text.d.ts +35 -7
  129. package/dist/src/components/text/text.d.ts.map +1 -1
  130. package/dist/src/components/toast/toast.d.ts +34 -0
  131. package/dist/src/components/toast/toast.d.ts.map +1 -1
  132. package/dist/src/components/tooltip/tooltip.d.ts +41 -0
  133. package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
  134. package/dist/src/index.d.ts +31 -0
  135. package/dist/src/index.d.ts.map +1 -1
  136. package/dist/styles/kumo-standalone.css +1 -1
  137. package/dist/surface-BIC6CXiz.js.map +1 -1
  138. package/dist/switch-z7FE1nQE.js.map +1 -1
  139. package/dist/table-Sd2Etb1N.js.map +1 -1
  140. package/dist/tabs-DAEeuQLd.js.map +1 -1
  141. package/dist/text-BEhqwMfe.js.map +1 -1
  142. package/dist/toast-B8ebpHaU.js.map +1 -1
  143. package/dist/tooltip-C4DRhJi1.js.map +1 -1
  144. package/package.json +6 -2
  145. package/dist/command-palette-BxmGYxBv.js.map +0 -1
  146. package/dist/dialog-BxXPA2vI.js.map +0 -1
  147. package/dist/popover-BfGLC2s6.js.map +0 -1
  148. package/dist/schemas-C2YJKpDC.js +0 -3543
@@ -6,7 +6,7 @@
6
6
 
7
7
  ### Badge
8
8
 
9
- Badge component
9
+ Small status label for categorizing or highlighting content.
10
10
 
11
11
  **Type:** component
12
12
 
@@ -23,7 +23,9 @@ Badge component
23
23
  - `"outline"`: Bordered badge with transparent background
24
24
  - `"beta"`: Indicates beta or experimental features
25
25
  - `className`: string
26
+ Additional CSS classes merged via `cn()`.
26
27
  - `children`: ReactNode
28
+ Content rendered inside the badge.
27
29
 
28
30
  **Colors (kumo tokens used):**
29
31
 
@@ -57,7 +59,7 @@ Badge component
57
59
 
58
60
  ### Banner
59
61
 
60
- Banner component
62
+ Full-width message bar for informational, warning, or error notices.
61
63
 
62
64
  **Type:** component
63
65
 
@@ -68,13 +70,16 @@ Banner component
68
70
  **Props:**
69
71
 
70
72
  - `icon`: ReactNode
73
+ Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`).
71
74
  - `text`: string
72
75
  - `children`: ReactNode
76
+ Banner message content. Accepts strings or custom React elements.
73
77
  - `variant`: enum [default: default]
74
78
  - `"default"`: Informational banner for general messages
75
79
  - `"alert"`: Warning banner for cautionary messages
76
80
  - `"error"`: Error banner for critical issues
77
81
  - `className`: string
82
+ Additional CSS classes merged via `cn()`.
78
83
 
79
84
  **Colors (kumo tokens used):**
80
85
 
@@ -132,6 +137,7 @@ Breadcrumbs component
132
137
  - `"base"`: Default breadcrumbs size
133
138
  - `children`: ReactNode
134
139
  - `className`: string
140
+ Additional CSS classes merged via `cn()`.
135
141
 
136
142
  **Colors (kumo tokens used):**
137
143
 
@@ -215,7 +221,7 @@ Props:
215
221
 
216
222
  ### Button
217
223
 
218
- Button component
224
+ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and loading state.
219
225
 
220
226
  **Type:** component
221
227
 
@@ -228,7 +234,9 @@ Button component
228
234
  - `children`: ReactNode
229
235
  - `className`: string
230
236
  - `icon`: ReactNode
237
+ Icon from `@phosphor-icons/react` or a React element. Rendered before children.
231
238
  - `loading`: boolean
239
+ Shows a loading spinner and disables interaction.
232
240
  - `shape`: enum [default: base]
233
241
  - `"base"`: Default rectangular button shape
234
242
  - `"square"`: Square button for icon-only actions
@@ -471,7 +479,7 @@ Props:
471
479
 
472
480
  ### ClipboardText
473
481
 
474
- ClipboardText component
482
+ Read-only text field with a one-click copy-to-clipboard button.
475
483
 
476
484
  **Type:** component
477
485
 
@@ -486,9 +494,9 @@ ClipboardText component
486
494
  - `"base"`: Default clipboard text size
487
495
  - `"lg"`: Large clipboard text for prominent display
488
496
  - `text`: string (required)
489
- The text to display and copy to clipboard
497
+ The text to display and copy to clipboard.
490
498
  - `className`: string
491
- Additional CSS classes
499
+ Additional CSS classes merged via `cn()`.
492
500
 
493
501
  **Colors (kumo tokens used):**
494
502
 
@@ -547,6 +555,416 @@ ClipboardText component
547
555
  ```
548
556
 
549
557
 
558
+ ---
559
+
560
+ ### CloudflareLogo
561
+
562
+ Cloudflare logo component.
563
+
564
+ **Type:** component
565
+
566
+ **Import:** `import { CloudflareLogo } from "@cloudflare/kumo";`
567
+
568
+ **Category:** Other
569
+
570
+ **Props:**
571
+
572
+ - `children`: ReactNode
573
+ - `className`: string
574
+ - `height`: number | string
575
+ - `id`: string
576
+ - `lang`: string
577
+ - `media`: string
578
+ - `method`: string
579
+ - `name`: string
580
+ - `target`: string
581
+ - `type`: string
582
+ - `width`: number | string
583
+ - `accentHeight`: number | string
584
+ - `accumulate`: enum
585
+ - `additive`: enum
586
+ - `alignmentBaseline`: enum
587
+ - `allowReorder`: enum
588
+ - `alphabetic`: number | string
589
+ - `amplitude`: number | string
590
+ - `arabicForm`: enum
591
+ - `ascent`: number | string
592
+ - `attributeName`: string
593
+ - `attributeType`: string
594
+ - `autoReverse`: Booleanish
595
+ - `azimuth`: number | string
596
+ - `baseFrequency`: number | string
597
+ - `baselineShift`: number | string
598
+ - `baseProfile`: number | string
599
+ - `bbox`: number | string
600
+ - `begin`: number | string
601
+ - `bias`: number | string
602
+ - `by`: number | string
603
+ - `calcMode`: number | string
604
+ - `capHeight`: number | string
605
+ - `clip`: number | string
606
+ - `clipPath`: string
607
+ - `clipPathUnits`: number | string
608
+ - `clipRule`: number | string
609
+ - `colorInterpolation`: number | string
610
+ - `colorInterpolationFilters`: enum
611
+ - `colorProfile`: number | string
612
+ - `colorRendering`: number | string
613
+ - `contentScriptType`: number | string
614
+ - `contentStyleType`: number | string
615
+ - `cursor`: number | string
616
+ - `cx`: number | string
617
+ - `cy`: number | string
618
+ - `d`: string
619
+ - `decelerate`: number | string
620
+ - `descent`: number | string
621
+ - `diffuseConstant`: number | string
622
+ - `direction`: number | string
623
+ - `display`: number | string
624
+ - `divisor`: number | string
625
+ - `dominantBaseline`: enum
626
+ - `dur`: number | string
627
+ - `dx`: number | string
628
+ - `dy`: number | string
629
+ - `edgeMode`: number | string
630
+ - `elevation`: number | string
631
+ - `enableBackground`: number | string
632
+ - `end`: number | string
633
+ - `exponent`: number | string
634
+ - `externalResourcesRequired`: Booleanish
635
+ - `fill`: string
636
+ - `fillOpacity`: number | string
637
+ - `fillRule`: enum
638
+ - `filter`: string
639
+ - `filterRes`: number | string
640
+ - `filterUnits`: number | string
641
+ - `floodColor`: number | string
642
+ - `floodOpacity`: number | string
643
+ - `focusable`: Booleanish | string
644
+ - `fontFamily`: string
645
+ - `fontSize`: number | string
646
+ - `fontSizeAdjust`: number | string
647
+ - `fontStretch`: number | string
648
+ - `fontStyle`: number | string
649
+ - `fontVariant`: number | string
650
+ - `fontWeight`: number | string
651
+ - `format`: number | string
652
+ - `fr`: number | string
653
+ - `from`: number | string
654
+ - `fx`: number | string
655
+ - `fy`: number | string
656
+ - `g1`: number | string
657
+ - `g2`: number | string
658
+ - `glyphName`: number | string
659
+ - `glyphOrientationHorizontal`: number | string
660
+ - `glyphOrientationVertical`: number | string
661
+ - `glyphRef`: number | string
662
+ - `gradientTransform`: string
663
+ - `gradientUnits`: string
664
+ - `hanging`: number | string
665
+ - `horizAdvX`: number | string
666
+ - `horizOriginX`: number | string
667
+ - `href`: string
668
+ - `ideographic`: number | string
669
+ - `imageRendering`: number | string
670
+ - `in2`: number | string
671
+ - `in`: string
672
+ - `intercept`: number | string
673
+ - `k1`: number | string
674
+ - `k2`: number | string
675
+ - `k3`: number | string
676
+ - `k4`: number | string
677
+ - `k`: number | string
678
+ - `kernelMatrix`: number | string
679
+ - `kernelUnitLength`: number | string
680
+ - `kerning`: number | string
681
+ - `keyPoints`: number | string
682
+ - `keySplines`: number | string
683
+ - `keyTimes`: number | string
684
+ - `lengthAdjust`: number | string
685
+ - `letterSpacing`: number | string
686
+ - `lightingColor`: number | string
687
+ - `limitingConeAngle`: number | string
688
+ - `local`: number | string
689
+ - `markerEnd`: string
690
+ - `markerHeight`: number | string
691
+ - `markerMid`: string
692
+ - `markerStart`: string
693
+ - `markerUnits`: number | string
694
+ - `markerWidth`: number | string
695
+ - `mask`: string
696
+ - `maskContentUnits`: number | string
697
+ - `maskUnits`: number | string
698
+ - `mathematical`: number | string
699
+ - `mode`: number | string
700
+ - `numOctaves`: number | string
701
+ - `offset`: number | string
702
+ - `opacity`: number | string
703
+ - `operator`: number | string
704
+ - `order`: number | string
705
+ - `orient`: number | string
706
+ - `orientation`: number | string
707
+ - `origin`: number | string
708
+ - `overflow`: number | string
709
+ - `overlinePosition`: number | string
710
+ - `overlineThickness`: number | string
711
+ - `paintOrder`: number | string
712
+ - `panose1`: number | string
713
+ - `path`: string
714
+ - `pathLength`: number | string
715
+ - `patternContentUnits`: string
716
+ - `patternTransform`: number | string
717
+ - `patternUnits`: string
718
+ - `pointerEvents`: number | string
719
+ - `points`: string
720
+ - `pointsAtX`: number | string
721
+ - `pointsAtY`: number | string
722
+ - `pointsAtZ`: number | string
723
+ - `preserveAlpha`: Booleanish
724
+ - `preserveAspectRatio`: string
725
+ - `primitiveUnits`: number | string
726
+ - `r`: number | string
727
+ - `radius`: number | string
728
+ - `refX`: number | string
729
+ - `refY`: number | string
730
+ - `renderingIntent`: number | string
731
+ - `repeatCount`: number | string
732
+ - `repeatDur`: number | string
733
+ - `requiredExtensions`: number | string
734
+ - `requiredFeatures`: number | string
735
+ - `restart`: number | string
736
+ - `result`: string
737
+ - `rotate`: number | string
738
+ - `rx`: number | string
739
+ - `ry`: number | string
740
+ - `scale`: number | string
741
+ - `seed`: number | string
742
+ - `shapeRendering`: number | string
743
+ - `slope`: number | string
744
+ - `spacing`: number | string
745
+ - `specularConstant`: number | string
746
+ - `specularExponent`: number | string
747
+ - `speed`: number | string
748
+ - `spreadMethod`: string
749
+ - `startOffset`: number | string
750
+ - `stdDeviation`: number | string
751
+ - `stemh`: number | string
752
+ - `stemv`: number | string
753
+ - `stitchTiles`: number | string
754
+ - `stopColor`: string
755
+ - `stopOpacity`: number | string
756
+ - `strikethroughPosition`: number | string
757
+ - `strikethroughThickness`: number | string
758
+ - `string`: number | string
759
+ - `stroke`: string
760
+ - `strokeDasharray`: string | number
761
+ - `strokeDashoffset`: string | number
762
+ - `strokeLinecap`: enum
763
+ - `strokeLinejoin`: enum
764
+ - `strokeMiterlimit`: number | string
765
+ - `strokeOpacity`: number | string
766
+ - `strokeWidth`: number | string
767
+ - `surfaceScale`: number | string
768
+ - `systemLanguage`: number | string
769
+ - `tableValues`: number | string
770
+ - `targetX`: number | string
771
+ - `targetY`: number | string
772
+ - `textAnchor`: enum
773
+ - `textDecoration`: number | string
774
+ - `textLength`: number | string
775
+ - `textRendering`: number | string
776
+ - `to`: number | string
777
+ - `transform`: string
778
+ - `u1`: number | string
779
+ - `u2`: number | string
780
+ - `underlinePosition`: number | string
781
+ - `underlineThickness`: number | string
782
+ - `unicode`: number | string
783
+ - `unicodeBidi`: number | string
784
+ - `unicodeRange`: number | string
785
+ - `unitsPerEm`: number | string
786
+ - `vAlphabetic`: number | string
787
+ - `values`: string
788
+ - `vectorEffect`: number | string
789
+ - `version`: string
790
+ - `vertAdvY`: number | string
791
+ - `vertOriginX`: number | string
792
+ - `vertOriginY`: number | string
793
+ - `vHanging`: number | string
794
+ - `vIdeographic`: number | string
795
+ - `viewBox`: string
796
+ - `viewTarget`: number | string
797
+ - `visibility`: number | string
798
+ - `vMathematical`: number | string
799
+ - `widths`: number | string
800
+ - `wordSpacing`: number | string
801
+ - `writingMode`: number | string
802
+ - `x1`: number | string
803
+ - `x2`: number | string
804
+ - `x`: number | string
805
+ - `xChannelSelector`: string
806
+ - `xHeight`: number | string
807
+ - `xlinkActuate`: string
808
+ - `xlinkArcrole`: string
809
+ - `xlinkHref`: string
810
+ - `xlinkRole`: string
811
+ - `xlinkShow`: string
812
+ - `xlinkTitle`: string
813
+ - `xlinkType`: string
814
+ - `xmlBase`: string
815
+ - `xmlLang`: string
816
+ - `xmlns`: string
817
+ - `xmlnsXlink`: string
818
+ - `xmlSpace`: string
819
+ - `y1`: number | string
820
+ - `y2`: number | string
821
+ - `y`: number | string
822
+ - `yChannelSelector`: string
823
+ - `z`: number | string
824
+ - `zoomAndPan`: string
825
+ - `variant`: enum [default: full]
826
+ - `"glyph"`: Cloud glyph only (logomark)
827
+ - `"full"`: Full logo with cloud glyph and wordmark stacked
828
+
829
+ **Colors (kumo tokens used):**
830
+
831
+ `bg-kumo-base`, `ring-kumo-line`, `text-kumo-default`
832
+
833
+ **Examples:**
834
+
835
+ ```tsx
836
+ <CloudflareLogo className="w-72" />
837
+ ```
838
+
839
+ ```tsx
840
+ <CloudflareLogo variant="glyph" className="w-24" />
841
+ ```
842
+
843
+ ```tsx
844
+ <div className="flex flex-wrap items-center gap-8">
845
+ <CloudflareLogo className="w-28" color="color" />
846
+ <div className="rounded-lg bg-white p-4">
847
+ <CloudflareLogo className="w-28" color="black" />
848
+ </div>
849
+ <div className="rounded-lg bg-black p-4">
850
+ <CloudflareLogo className="w-28" color="white" />
851
+ </div>
852
+ </div>
853
+ ```
854
+
855
+ ```tsx
856
+ <div className="flex flex-wrap items-center gap-8">
857
+ <CloudflareLogo variant="glyph" className="w-12" color="color" />
858
+ <div className="rounded-lg bg-white p-4">
859
+ <CloudflareLogo variant="glyph" className="w-12" color="black" />
860
+ </div>
861
+ <div className="rounded-lg bg-black p-4">
862
+ <CloudflareLogo variant="glyph" className="w-12" color="white" />
863
+ </div>
864
+ </div>
865
+ ```
866
+
867
+ ```tsx
868
+ <div className="flex flex-wrap items-end gap-6">
869
+ <CloudflareLogo className="w-20" />
870
+ <CloudflareLogo className="w-28" />
871
+ <CloudflareLogo className="w-44" />
872
+ </div>
873
+ ```
874
+
875
+ ```tsx
876
+ <div className="flex items-center gap-4">
877
+ <DropdownMenu>
878
+ <DropdownMenu.Trigger>
879
+ <button
880
+ type="button"
881
+ className="flex items-center gap-2 rounded-lg bg-black px-4 py-3 text-white transition-opacity hover:opacity-80"
882
+ >
883
+ <CloudflareLogo variant="glyph" color="white" className="w-8" />
884
+ <span className="font-medium">Logo</span>
885
+ </button>
886
+ </DropdownMenu.Trigger>
887
+ <DropdownMenu.Content>
888
+ <DropdownMenu.Item
889
+ icon={CloudIcon}
890
+ onSelect={() =>
891
+ copyToClipboard(
892
+ generateCloudflareLogoSvg({ variant: "glyph" }),
893
+ "glyph",
894
+ )
895
+ }
896
+ >
897
+ {copied === "glyph" ? "Copied!" : "Copy logo as SVG"}
898
+ </DropdownMenu.Item>
899
+ <DropdownMenu.Item
900
+ icon={CodeIcon}
901
+ onSelect={() =>
902
+ copyToClipboard(
903
+ generateCloudflareLogoSvg({ variant: "full" }),
904
+ "full",
905
+ )
906
+ }
907
+ >
908
+ {copied === "full" ? "Copied!" : "Copy full logo as SVG"}
909
+ </DropdownMenu.Item>
910
+ <DropdownMenu.Item
911
+ icon={DownloadSimpleIcon}
912
+ onSelect={() =>
913
+ window.open(
914
+ "https://www.cloudflare.com/press-kit/",
915
+ "_blank",
916
+ "noopener",
917
+ )
918
+ }
919
+ >
920
+ Download brand assets
921
+ </DropdownMenu.Item>
922
+ <DropdownMenu.Separator />
923
+ <DropdownMenu.Item
924
+ icon={ArrowSquareOutIcon}
925
+ onSelect={() =>
926
+ window.open(
927
+ "https://www.cloudflare.com/brand-assets/",
928
+ "_blank",
929
+ "noopener",
930
+ )
931
+ }
932
+ >
933
+ Visit brand guidelines
934
+ </DropdownMenu.Item>
935
+ </DropdownMenu.Content>
936
+ </DropdownMenu>
937
+
938
+ <span className="text-sm text-kumo-subtle">
939
+ Click to open the brand assets menu
940
+ </span>
941
+ </div>
942
+ ```
943
+
944
+ ```tsx
945
+ <PoweredByCloudflare />
946
+ ```
947
+
948
+ ```tsx
949
+ <div className="flex flex-wrap items-center gap-4">
950
+ <PoweredByCloudflare />
951
+ <PoweredByCloudflare color="black" />
952
+ <div className="rounded-lg bg-black p-3">
953
+ <PoweredByCloudflare color="white" />
954
+ </div>
955
+ </div>
956
+ ```
957
+
958
+ ```tsx
959
+ <footer className="flex w-full items-center justify-between rounded-lg border border-kumo-line bg-kumo-elevated px-6 py-4">
960
+ <span className="text-sm text-kumo-subtle">
961
+ &copy; 2026 Your Company. All rights reserved.
962
+ </span>
963
+ <PoweredByCloudflare />
964
+ </footer>
965
+ ```
966
+
967
+
550
968
  ---
551
969
 
552
970
  ### Code
@@ -568,11 +986,11 @@ Code component
568
986
  - `"bash"`: Shell/Bash commands
569
987
  - `"css"`: CSS styles
570
988
  - `code`: string (required)
571
- The code content to display
989
+ The code string to display.
572
990
  - `values`: Record<string, { value: string; highlight?: boolean }>
573
- Template values for interpolation
991
+ Template values for `{{key}}` interpolation. Values with `highlight: true` are visually emphasized.
574
992
  - `className`: string
575
- Additional CSS classes
993
+ Additional CSS classes merged via `cn()`.
576
994
 
577
995
  **Colors (kumo tokens used):**
578
996
 
@@ -682,7 +1100,7 @@ Collapsible component for showing/hiding content. Features: - Animated chevron
682
1100
 
683
1101
  ### Combobox
684
1102
 
685
- Combobox component
1103
+ Combobox — autocomplete input with filterable dropdown list. Compound component: `Combobox` (Root), `.TriggerInput`, `.TriggerValue`, `.TriggerMultipleWithInput`, `.Content`, `.Item`, `.Chip`, `.Input`, `.Empty`, `.GroupLabel`, `.Group`, `.List`, `.Collection`.
686
1104
 
687
1105
  **Type:** component
688
1106
 
@@ -971,7 +1389,7 @@ Usage:
971
1389
 
972
1390
  ### CommandPalette
973
1391
 
974
- CommandPalette component
1392
+ CommandPalette — accessible command palette / spotlight search overlay. Compound component: `CommandPalette.Root` (or `.Dialog` + `.Panel`), `.Input`, `.List`, `.Results`, `.Items`, `.Group`, `.GroupLabel`, `.Item`, `.ResultItem`, `.HighlightedText`, `.Empty`, `.Loading`, `.Footer`. Built on `@base-ui/react/autocomplete` + `@base-ui/react/dialog`.
975
1393
 
976
1394
  **Type:** component
977
1395
 
@@ -1210,7 +1628,7 @@ CommandPalette component
1210
1628
 
1211
1629
  ### DateRangePicker
1212
1630
 
1213
- DateRangePicker component
1631
+ DateRangePicker — dual-calendar date range selector. Renders two side-by-side month calendars with click-to-select start/end dates, hover preview of the range, a timezone footer, and a reset button.
1214
1632
 
1215
1633
  **Type:** component
1216
1634
 
@@ -1228,9 +1646,9 @@ DateRangePicker component
1228
1646
  - `"default"`: Default calendar appearance
1229
1647
  - `"subtle"`: Subtle calendar with minimal background
1230
1648
  - `timezone`: string
1231
- Display timezone (display only)
1649
+ Display timezone string shown in the footer.
1232
1650
  - `className`: string
1233
- Additional CSS classes
1651
+ Additional CSS classes merged via `cn()`.
1234
1652
  - `onStartDateChange`: (date: Date | null) => void
1235
1653
  Callback when start date changes
1236
1654
  - `onEndDateChange`: (date: Date | null) => void
@@ -1377,7 +1795,9 @@ Dialog component
1377
1795
  **Props:**
1378
1796
 
1379
1797
  - `className`: string
1798
+ Additional CSS classes merged via `cn()`.
1380
1799
  - `children`: ReactNode
1800
+ Dialog content (typically Title, Description, Close, and action buttons).
1381
1801
  - `size`: enum [default: base]
1382
1802
  - `"base"`: Default dialog width
1383
1803
  - `"sm"`: Small dialog for simple confirmations
@@ -1554,7 +1974,7 @@ Usage:
1554
1974
 
1555
1975
  ### DropdownMenu
1556
1976
 
1557
- DropdownMenu component
1977
+ DropdownMenu — accessible dropdown menu anchored to a trigger. Compound component: `DropdownMenu` (Root), `.Trigger`, `.Content`, `.Item`, `.CheckboxItem`, `.RadioGroup`, `.RadioItem`, `.RadioItemIndicator`, `.Sub`, `.SubTrigger`, `.SubContent`, `.Label`, `.Separator`, `.Shortcut`, `.Group`. Built on `@base-ui/react/menu`.
1558
1978
 
1559
1979
  **Type:** component
1560
1980
 
@@ -1641,7 +2061,7 @@ Group sub-component (wraps DropdownMenuPrimitive)
1641
2061
 
1642
2062
  ### Empty
1643
2063
 
1644
- Empty component
2064
+ Placeholder shown when a list, table, or page has no content to display.
1645
2065
 
1646
2066
  **Type:** component
1647
2067
 
@@ -1656,11 +2076,17 @@ Empty component
1656
2076
  - `"base"`: Default empty state size
1657
2077
  - `"lg"`: Large empty state for prominent placement
1658
2078
  - `icon`: ReactNode
2079
+ Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
1659
2080
  - `title`: string (required)
2081
+ Primary heading text for the empty state.
1660
2082
  - `description`: string
2083
+ Secondary description text displayed below the title.
1661
2084
  - `commandLine`: string
2085
+ Shell command displayed in a copyable code block.
1662
2086
  - `contents`: ReactNode
2087
+ Additional content (buttons, links) rendered below the description.
1663
2088
  - `className`: string
2089
+ Additional CSS classes merged via `cn()`.
1664
2090
 
1665
2091
  **Colors (kumo tokens used):**
1666
2092
 
@@ -1756,7 +2182,7 @@ Empty component
1756
2182
 
1757
2183
  ### Field
1758
2184
 
1759
- Field component
2185
+ Form field wrapper that provides a label, optional description, and error display around any form control. Built on Base UI Field primitives.
1760
2186
 
1761
2187
  **Type:** component
1762
2188
 
@@ -1767,16 +2193,19 @@ Field component
1767
2193
  **Props:**
1768
2194
 
1769
2195
  - `controlFirst`: boolean
1770
- When true, places the control (checkbox/switch) before the label visually. When false (default), places the label before the control. Used to support different layout patterns (e.g., iOS-style toggles on the right).
2196
+ When `true`, places the control before the label (for checkbox/switch layouts).
1771
2197
  - `children`: ReactNode
2198
+ The form control element(s) to wrap (Input, Select, Checkbox, etc.).
1772
2199
  - `label`: ReactNode
1773
- The label content - can be a string or any React node
2200
+ The label content can be a string or any React node.
1774
2201
  - `required`: boolean
1775
- When explicitly false, shows gray "(optional)" text after the label. When true or undefined, no indicator is shown.
2202
+ When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
1776
2203
  - `labelTooltip`: ReactNode
1777
- Tooltip content to display next to the label via an info icon
2204
+ Tooltip content displayed next to the label via an info icon.
1778
2205
  - `error`: object
2206
+ Validation error with a message and a browser `ValidityState` match key.
1779
2207
  - `description`: ReactNode
2208
+ Helper text displayed below the control (hidden when `error` is present).
1780
2209
 
1781
2210
  **Colors (kumo tokens used):**
1782
2211
 
@@ -1786,7 +2215,7 @@ Field component
1786
2215
 
1787
2216
  ### Grid
1788
2217
 
1789
- Grid component
2218
+ Responsive CSS grid layout container with preset column configurations.
1790
2219
 
1791
2220
  **Type:** component
1792
2221
 
@@ -1797,14 +2226,14 @@ Grid component
1797
2226
  **Props:**
1798
2227
 
1799
2228
  - `children`: ReactNode
1800
- Child node(s) that can be nested inside component
2229
+ Grid items to render.
1801
2230
  - `className`: string
1802
- CSS class names that can be appended to the component
2231
+ Additional CSS classes merged via `cn()`.
1803
2232
  - `id`: string
1804
2233
  - `lang`: string
1805
2234
  - `title`: string
1806
2235
  - `mobileDivider`: boolean
1807
- Show dividers between grid items on mobile (only works with 4up variant)
2236
+ Show dividers between grid items on mobile (only works with `"4up"` variant).
1808
2237
  - `gap`: enum [default: base]
1809
2238
  - `"none"`: No gap between grid items
1810
2239
  - `"sm"`: Small gap between grid items
@@ -2217,15 +2646,15 @@ Label component for form fields. Provides a standardized way to display labels
2217
2646
  **Props:**
2218
2647
 
2219
2648
  - `children`: ReactNode
2220
- The label content - can be a string or any React node
2649
+ The label content can be a string or any React node.
2221
2650
  - `showOptional`: boolean
2222
- When true (and required is false), shows gray "(optional)" text after the label
2651
+ When `true`, shows gray "(optional)" text after the label.
2223
2652
  - `tooltip`: ReactNode
2224
- Tooltip content to display next to the label via an info icon
2653
+ Tooltip content displayed next to the label via an info icon.
2225
2654
  - `className`: string
2226
- Additional CSS classes
2655
+ Additional CSS classes merged via `cn()`.
2227
2656
  - `asContent`: boolean
2228
- When true, only renders the inline content (indicators, tooltip) without the outer span with font styling. Useful when composed inside another label element that already provides the text styling.
2657
+ When `true`, only renders the inline content (indicators, tooltip) without the outer span with font styling. Useful when composed inside another label element that already provides the text styling.
2229
2658
 
2230
2659
  **Colors (kumo tokens used):**
2231
2660
 
@@ -2300,6 +2729,7 @@ LayerCard component
2300
2729
 
2301
2730
  - `children`: ReactNode
2302
2731
  - `className`: string
2732
+ Additional CSS classes merged via `cn()`.
2303
2733
 
2304
2734
  **Colors (kumo tokens used):**
2305
2735
 
@@ -2483,7 +2913,7 @@ ExternalIcon sub-component
2483
2913
 
2484
2914
  ### Loader
2485
2915
 
2486
- Loader component
2916
+ Animated circular spinner for indicating loading states.
2487
2917
 
2488
2918
  **Type:** component
2489
2919
 
@@ -2494,6 +2924,7 @@ Loader component
2494
2924
  **Props:**
2495
2925
 
2496
2926
  - `className`: string
2927
+ Additional CSS classes merged via `cn()`.
2497
2928
  - `size`: enum [default: base]
2498
2929
  - `"sm"`: Small loader for inline use
2499
2930
  - `"base"`: Default loader size
@@ -2518,7 +2949,7 @@ Loader component
2518
2949
 
2519
2950
  ### MenuBar
2520
2951
 
2521
- MenuBar component
2952
+ MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation. Each option renders as a `<button>` with a Tooltip. The active option is visually highlighted with an elevated background.
2522
2953
 
2523
2954
  **Type:** component
2524
2955
 
@@ -2529,9 +2960,13 @@ MenuBar component
2529
2960
  **Props:**
2530
2961
 
2531
2962
  - `className`: string
2963
+ Additional CSS classes merged via `cn()`.
2532
2964
  - `isActive`: number | boolean | string
2965
+ The currently active option value — matched against option index or `id`.
2533
2966
  - `options`: MenuOptionProps[] (required)
2967
+ Array of menu option configurations.
2534
2968
  - `optionIds`: boolean
2969
+ When true, each option's `id` field is used for matching instead of its array index.
2535
2970
 
2536
2971
  **Colors (kumo tokens used):**
2537
2972
 
@@ -2568,7 +3003,7 @@ MenuBar component
2568
3003
 
2569
3004
  ### Meter
2570
3005
 
2571
- Meter component
3006
+ Progress bar showing a measured value within a known range (e.g. quota usage).
2572
3007
 
2573
3008
  **Type:** component
2574
3009
 
@@ -2579,10 +3014,15 @@ Meter component
2579
3014
  **Props:**
2580
3015
 
2581
3016
  - `customValue`: string
3017
+ Custom formatted value text (e.g. "750 / 1,000") displayed instead of percentage.
2582
3018
  - `label`: string (required)
3019
+ Label text displayed above the meter track.
2583
3020
  - `showValue`: boolean
3021
+ Whether to display the percentage value next to the label.
2584
3022
  - `trackClassName`: string
3023
+ Additional CSS classes for the track (background bar).
2585
3024
  - `indicatorClassName`: string
3025
+ Additional CSS classes for the indicator (filled bar).
2586
3026
  - `value`: number
2587
3027
  Current value of the meter
2588
3028
  - `max`: number
@@ -2621,7 +3061,7 @@ Meter component
2621
3061
 
2622
3062
  ### Pagination
2623
3063
 
2624
- Pagination component
3064
+ Page navigation controls with page count display.
2625
3065
 
2626
3066
  **Type:** component
2627
3067
 
@@ -2637,8 +3077,11 @@ Pagination component
2637
3077
  - `setPage`: (page: number) => void (required)
2638
3078
  Callback when page changes
2639
3079
  - `page`: number
3080
+ Current page number (1-indexed).
2640
3081
  - `perPage`: number
3082
+ Number of items displayed per page.
2641
3083
  - `totalCount`: number
3084
+ Total number of items across all pages.
2642
3085
 
2643
3086
  **Colors (kumo tokens used):**
2644
3087
 
@@ -2864,7 +3307,7 @@ Close sub-component
2864
3307
 
2865
3308
  ### Radio
2866
3309
 
2867
- Radio component
3310
+ Radio — radio button group for single-select choices. Compound component: `Radio.Group` (with built-in Fieldset) and `Radio.Item`. Built on `@base-ui/react/radio-group` + `@base-ui/react/radio`.
2868
3311
 
2869
3312
  **Type:** component
2870
3313
 
@@ -2986,29 +3429,29 @@ Select component
2986
3429
  **Props:**
2987
3430
 
2988
3431
  - `className`: string
2989
- Additional CSS classes
3432
+ Additional CSS classes merged via `cn()`.
2990
3433
  - `label`: ReactNode
2991
- Label content for the select (enables Field wrapper) - can be a string or any React node
3434
+ Label content for the select (enables Field wrapper) can be a string or any React node.
2992
3435
  - `hideLabel`: boolean
2993
- Whether to visually hide the label (still accessible to screen readers)
3436
+ Visually hide the label while keeping it accessible to screen readers. Set to `false` to show a visible label above the select via the Field wrapper.
2994
3437
  - `placeholder`: string
2995
- Placeholder text when no value is selected
3438
+ Placeholder text shown when no value is selected.
2996
3439
  - `loading`: boolean
2997
- Whether the select is in a loading state
3440
+ When `true`, shows a skeleton loader in place of the selected value.
2998
3441
  - `disabled`: boolean
2999
- Whether the select is disabled
3442
+ Whether the select is disabled.
3000
3443
  - `required`: boolean
3001
- Whether the select is required
3444
+ Whether the select is required. When `false`, shows "(optional)" text.
3002
3445
  - `labelTooltip`: ReactNode
3003
- Tooltip content to display next to the label via an info icon
3446
+ Tooltip content displayed next to the label via an info icon.
3004
3447
  - `value`: string
3005
- The currently selected value
3448
+ Currently selected value (controlled mode).
3006
3449
  - `children`: ReactNode
3007
- Child elements (Select.Option components)
3450
+ `Select.Option` elements to render in the dropdown.
3008
3451
  - `description`: ReactNode
3009
- Helper text displayed below the select
3452
+ Helper text displayed below the select.
3010
3453
  - `error`: string | object
3011
- Error message or validation error object
3454
+ Error message string or validation error object with `match` key.
3012
3455
  - `onValueChange`: (value: string) => void
3013
3456
  Callback when selection changes
3014
3457
  - `defaultValue`: string
@@ -3153,7 +3596,7 @@ Option sub-component
3153
3596
 
3154
3597
  ### SensitiveInput
3155
3598
 
3156
- SensitiveInput component
3599
+ Password/secret input that masks its value by default and reveals on click. Includes a built-in copy-to-clipboard button on hover.
3157
3600
 
3158
3601
  **Type:** component
3159
3602
 
@@ -3182,9 +3625,15 @@ SensitiveInput component
3182
3625
  - `value`: string
3183
3626
  Controlled value
3184
3627
  - `size`: enum [default: base]
3185
- Size variant
3628
+ Size of the input.
3629
+ - `"xs"` — Extra small for compact UIs
3630
+ - `"sm"` — Small for secondary fields
3631
+ - `"base"` — Default input size
3632
+ - `"lg"` — Large for prominent fields
3186
3633
  - `variant`: enum [default: default]
3187
- Style variant
3634
+ Style variant of the input.
3635
+ - `"default"` — Default input appearance
3636
+ - `"error"` — Error state for validation failures
3188
3637
  - `label`: ReactNode
3189
3638
  Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
3190
3639
  - `labelTooltip`: ReactNode
@@ -3284,11 +3733,11 @@ Surface component
3284
3733
  **Props:**
3285
3734
 
3286
3735
  - `as`: React.ElementType
3287
- The element type to render as (default: "div")
3736
+ The HTML element type to render as (e.g. `"div"`, `"section"`, `"article"`).
3288
3737
  - `className`: string
3289
- Additional CSS classes
3738
+ Additional CSS classes merged via `cn()`.
3290
3739
  - `children`: ReactNode
3291
- Child elements
3740
+ Content rendered inside the surface.
3292
3741
 
3293
3742
  **Colors (kumo tokens used):**
3294
3743
 
@@ -3416,7 +3865,7 @@ Props:
3416
3865
 
3417
3866
  ### Table
3418
3867
 
3419
- Table component
3868
+ Table — semantic HTML table with styled rows, cells, and selection support. Compound component: `Table` (Root), `.Header`, `.Head`, `.Body`, `.Row`, `.Cell`, `.Footer`, `.CheckCell`, `.CheckHead`, `.ResizeHandle`.
3420
3869
 
3421
3870
  **Type:** component
3422
3871
 
@@ -3675,7 +4124,7 @@ ResizeHandle sub-component
3675
4124
 
3676
4125
  ### Tabs
3677
4126
 
3678
- Tabs component
4127
+ Tab navigation component with segmented or underline style. Built on Base UI Tabs with animated active indicator.
3679
4128
 
3680
4129
  **Type:** component
3681
4130
 
@@ -3686,20 +4135,23 @@ Tabs component
3686
4135
  **Props:**
3687
4136
 
3688
4137
  - `tabs`: TabsItem[]
3689
- Array of tab items to render
4138
+ Array of tab items to render.
3690
4139
  - `value`: string
3691
4140
  Controlled value. When set, component becomes controlled.
3692
4141
  - `selectedValue`: string
3693
4142
  Default selected value for uncontrolled mode. Ignored when `value` is set.
3694
4143
  - `activateOnFocus`: boolean
3695
- When true, tabs are activated immediately upon receiving focus via arrow keys. When false (default), tabs receive focus but require Enter/Space to activate. Set to true for better keyboard UX in most cases.
4144
+ When `true`, tabs are activated immediately upon receiving focus via arrow keys. When `false` (default), tabs receive focus but require Enter/Space to activate.
3696
4145
  - `className`: string
3697
- Additional class name for the root element
4146
+ Additional CSS classes for the root element.
3698
4147
  - `listClassName`: string
3699
- Additional class name for the tab list element
4148
+ Additional CSS classes for the tab list element.
3700
4149
  - `indicatorClassName`: string
3701
- Additional class name for the indicator element
4150
+ Additional CSS classes for the indicator element.
3702
4151
  - `variant`: enum [default: segmented]
4152
+ Tab style.
4153
+ - `"segmented"` — Pill-shaped indicator on a filled track
4154
+ - `"underline"` — Underline indicator below tab text
3703
4155
  - `onValueChange`: (value: string) => void
3704
4156
  Callback when active tab changes
3705
4157
 
@@ -3837,11 +4289,11 @@ Text component
3837
4289
  - `"base"`: Default text size
3838
4290
  - `"lg"`: Large text
3839
4291
  - `bold`: boolean
3840
- Whether to use bold font weight (only applies to body variants)
4292
+ Whether to use bold font weight (only applies to body variants).
3841
4293
  - `as`: React.ElementType
3842
- The element type to render as
4294
+ The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
3843
4295
  - `children`: ReactNode
3844
- Child text content
4296
+ Text content.
3845
4297
 
3846
4298
  **Colors (kumo tokens used):**
3847
4299
 
@@ -3920,7 +4372,7 @@ Text component
3920
4372
 
3921
4373
  ### Toasty
3922
4374
 
3923
- Toasty component
4375
+ Toasty — toast notification provider and viewport. Renders a `Toast.Provider` with a fixed-position viewport in the bottom-right corner. Toasts stack with smooth enter/exit animations, swipe-to-dismiss, and expand-on-hover. Built on `@base-ui/react/toast`.
3924
4376
 
3925
4377
  **Type:** component
3926
4378
 
@@ -3950,7 +4402,7 @@ Toasty component
3950
4402
 
3951
4403
  ### Tooltip
3952
4404
 
3953
- Tooltip component
4405
+ Accessible popup that shows additional information on hover/focus. Wrap your app or section with `<TooltipProvider>` to enable delay grouping.
3954
4406
 
3955
4407
  **Type:** component
3956
4408
 
@@ -3961,8 +4413,14 @@ Tooltip component
3961
4413
  **Props:**
3962
4414
 
3963
4415
  - `align`: enum
4416
+ Alignment on the axis perpendicular to `side`.
4417
+ - `"start"` — Align to the start edge
4418
+ - `"center"` — Center-aligned
4419
+ - `"end"` — Align to the end edge
3964
4420
  - `asChild`: boolean
4421
+ When `true`, the trigger wraps the child element instead of adding a wrapper.
3965
4422
  - `className`: string
4423
+ Additional CSS classes merged via `cn()`.
3966
4424
  - `side`: enum [default: top]
3967
4425
  - `"top"`: Tooltip appears above the trigger
3968
4426
  - `"bottom"`: Tooltip appears below the trigger
@@ -4029,7 +4487,7 @@ Multi-line textarea input with Input variants and InputArea-specific dimensions
4029
4487
  - **Feedback:** Banner, Loader, Toasty
4030
4488
  - **Action:** Button, ClipboardText
4031
4489
  - **Input:** Checkbox, Combobox, DateRangePicker, Field, Input, Radio, Select, Switch
4490
+ - **Other:** CloudflareLogo, Label, Link, SensitiveInput, Table, DeleteResource
4032
4491
  - **Navigation:** CommandPalette, MenuBar, Pagination, Tabs
4033
4492
  - **Overlay:** Dialog, DropdownMenu, Popover, Tooltip
4034
4493
  - **Layout:** Grid, Surface, PageHeader, ResourceListPage
4035
- - **Other:** Label, Link, SensitiveInput, Table