@cloudflare/kumo 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/ai/USAGE.md +193 -0
  3. package/ai/component-registry.json +1425 -237
  4. package/ai/component-registry.md +531 -67
  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 +46 -21
  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/doc.js +3 -3
  23. package/dist/command-line/commands/ls.js +4 -4
  24. package/dist/{command-palette-BxmGYxBv.js → command-palette-J50WKjS7.js} +14 -8
  25. package/dist/command-palette-J50WKjS7.js.map +1 -0
  26. package/dist/components/cloudflare-logo.js +10 -0
  27. package/dist/components/cloudflare-logo.js.map +1 -0
  28. package/dist/components/command-palette.js +1 -1
  29. package/dist/date-range-picker-CbKEQ9pi.js.map +1 -1
  30. package/dist/dialog-x9n9wI13.js.map +1 -1
  31. package/dist/dropdown-BAyk1knz.js.map +1 -1
  32. package/dist/empty-D03cbzRS.js.map +1 -1
  33. package/dist/field-B7ORz5ej.js.map +1 -1
  34. package/dist/grid-DKajRHh8.js.map +1 -1
  35. package/dist/index.js +67 -61
  36. package/dist/index.js.map +1 -1
  37. package/dist/input-D6YgDfDG.js.map +1 -1
  38. package/dist/label-B4FY8MX_.js.map +1 -1
  39. package/dist/layer-card-C8j5Hkkj.js.map +1 -1
  40. package/dist/link-CcuZKqob.js.map +1 -1
  41. package/dist/loader-DHGMYlC6.js.map +1 -1
  42. package/dist/menubar-CzimiryS.js.map +1 -1
  43. package/dist/meter-BrJnHJ3Q.js.map +1 -1
  44. package/dist/pagination-D0x9KQSk.js.map +1 -1
  45. package/dist/popover-CtKDH8Yc.js.map +1 -1
  46. package/dist/radio-CYejLANA.js.map +1 -1
  47. package/dist/schemas-DCw6TIy0.js +3859 -0
  48. package/dist/{schemas-C2YJKpDC.js.map → schemas-DCw6TIy0.js.map} +1 -1
  49. package/dist/select-D4rKQAax.js.map +1 -1
  50. package/dist/sensitive-input-DYvAmxkN.js.map +1 -1
  51. package/dist/src/command-line/commands/ai.d.ts +10 -0
  52. package/dist/src/command-line/commands/ai.d.ts.map +1 -0
  53. package/dist/src/components/badge/badge.d.ts +31 -4
  54. package/dist/src/components/badge/badge.d.ts.map +1 -1
  55. package/dist/src/components/banner/banner.d.ts +39 -4
  56. package/dist/src/components/banner/banner.d.ts.map +1 -1
  57. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +35 -0
  58. package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  59. package/dist/src/components/button/button.d.ts +86 -0
  60. package/dist/src/components/button/button.d.ts.map +1 -1
  61. package/dist/src/components/checkbox/checkbox.d.ts +7 -0
  62. package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
  63. package/dist/src/components/clipboard-text/clipboard-text.d.ts +28 -3
  64. package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
  65. package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts +133 -0
  66. package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts.map +1 -0
  67. package/dist/src/components/cloudflare-logo/index.d.ts +2 -0
  68. package/dist/src/components/cloudflare-logo/index.d.ts.map +1 -0
  69. package/dist/src/components/code/code.d.ts +38 -6
  70. package/dist/src/components/code/code.d.ts.map +1 -1
  71. package/dist/src/components/collapsible/collapsible.d.ts +10 -0
  72. package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
  73. package/dist/src/components/combobox/combobox.d.ts +61 -0
  74. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  75. package/dist/src/components/command-palette/command-palette.d.ts +41 -6
  76. package/dist/src/components/command-palette/command-palette.d.ts.map +1 -1
  77. package/dist/src/components/date-range-picker/date-range-picker.d.ts +57 -4
  78. package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  79. package/dist/src/components/dialog/dialog.d.ts +27 -0
  80. package/dist/src/components/dialog/dialog.d.ts.map +1 -1
  81. package/dist/src/components/dropdown/dropdown.d.ts +33 -0
  82. package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
  83. package/dist/src/components/empty/empty.d.ts +35 -0
  84. package/dist/src/components/empty/empty.d.ts.map +1 -1
  85. package/dist/src/components/field/field.d.ts +34 -4
  86. package/dist/src/components/field/field.d.ts.map +1 -1
  87. package/dist/src/components/grid/grid.d.ts +45 -17
  88. package/dist/src/components/grid/grid.d.ts.map +1 -1
  89. package/dist/src/components/input/input.d.ts +15 -0
  90. package/dist/src/components/input/input.d.ts.map +1 -1
  91. package/dist/src/components/label/label.d.ts +16 -5
  92. package/dist/src/components/label/label.d.ts.map +1 -1
  93. package/dist/src/components/layer-card/layer-card.d.ts +13 -0
  94. package/dist/src/components/layer-card/layer-card.d.ts.map +1 -1
  95. package/dist/src/components/link/link.d.ts +20 -0
  96. package/dist/src/components/link/link.d.ts.map +1 -1
  97. package/dist/src/components/loader/loader.d.ts +34 -0
  98. package/dist/src/components/loader/loader.d.ts.map +1 -1
  99. package/dist/src/components/menubar/menubar.d.ts +44 -0
  100. package/dist/src/components/menubar/menubar.d.ts.map +1 -1
  101. package/dist/src/components/meter/meter.d.ts +26 -0
  102. package/dist/src/components/meter/meter.d.ts.map +1 -1
  103. package/dist/src/components/pagination/pagination.d.ts +25 -0
  104. package/dist/src/components/pagination/pagination.d.ts.map +1 -1
  105. package/dist/src/components/popover/popover.d.ts +33 -5
  106. package/dist/src/components/popover/popover.d.ts.map +1 -1
  107. package/dist/src/components/radio/radio.d.ts +22 -0
  108. package/dist/src/components/radio/radio.d.ts.map +1 -1
  109. package/dist/src/components/select/select.d.ts +42 -20
  110. package/dist/src/components/select/select.d.ts.map +1 -1
  111. package/dist/src/components/sensitive-input/sensitive-input.d.ts +30 -6
  112. package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
  113. package/dist/src/components/surface/surface.d.ts +18 -6
  114. package/dist/src/components/surface/surface.d.ts.map +1 -1
  115. package/dist/src/components/switch/switch.d.ts +14 -0
  116. package/dist/src/components/switch/switch.d.ts.map +1 -1
  117. package/dist/src/components/table/table.d.ts +33 -0
  118. package/dist/src/components/table/table.d.ts.map +1 -1
  119. package/dist/src/components/tabs/tabs.d.ts +48 -9
  120. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  121. package/dist/src/components/text/text.d.ts +35 -7
  122. package/dist/src/components/text/text.d.ts.map +1 -1
  123. package/dist/src/components/toast/toast.d.ts +34 -0
  124. package/dist/src/components/toast/toast.d.ts.map +1 -1
  125. package/dist/src/components/tooltip/tooltip.d.ts +41 -0
  126. package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
  127. package/dist/src/index.d.ts +30 -0
  128. package/dist/src/index.d.ts.map +1 -1
  129. package/dist/styles/kumo-standalone.css +1 -1
  130. package/dist/surface-BIC6CXiz.js.map +1 -1
  131. package/dist/switch-z7FE1nQE.js.map +1 -1
  132. package/dist/table-Sd2Etb1N.js.map +1 -1
  133. package/dist/tabs-DAEeuQLd.js.map +1 -1
  134. package/dist/text-BEhqwMfe.js.map +1 -1
  135. package/dist/toast-B8ebpHaU.js.map +1 -1
  136. package/dist/tooltip-C4DRhJi1.js.map +1 -1
  137. package/package.json +7 -3
  138. package/dist/command-palette-BxmGYxBv.js.map +0 -1
  139. 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
@@ -1530,7 +1950,13 @@ Usage:
1530
1950
  eiusmod tempor incididunt ut labore et dolore magna aliqua.
1531
1951
  </Dialog.Description>
1532
1952
  <div className="mt-8 flex justify-end gap-2">
1533
- <Button variant="secondary">Cancel</Button>
1953
+ <Dialog.Close
1954
+ render={(props) => (
1955
+ <Button variant="secondary" {...props}>
1956
+ Cancel
1957
+ </Button>
1958
+ )}
1959
+ />
1534
1960
  <Dialog.Close
1535
1961
  render={(props) => (
1536
1962
  <Button variant="destructive" {...props}>
@@ -1548,7 +1974,7 @@ Usage:
1548
1974
 
1549
1975
  ### DropdownMenu
1550
1976
 
1551
- 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`.
1552
1978
 
1553
1979
  **Type:** component
1554
1980
 
@@ -1635,7 +2061,7 @@ Group sub-component (wraps DropdownMenuPrimitive)
1635
2061
 
1636
2062
  ### Empty
1637
2063
 
1638
- Empty component
2064
+ Placeholder shown when a list, table, or page has no content to display.
1639
2065
 
1640
2066
  **Type:** component
1641
2067
 
@@ -1650,11 +2076,17 @@ Empty component
1650
2076
  - `"base"`: Default empty state size
1651
2077
  - `"lg"`: Large empty state for prominent placement
1652
2078
  - `icon`: ReactNode
2079
+ Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
1653
2080
  - `title`: string (required)
2081
+ Primary heading text for the empty state.
1654
2082
  - `description`: string
2083
+ Secondary description text displayed below the title.
1655
2084
  - `commandLine`: string
2085
+ Shell command displayed in a copyable code block.
1656
2086
  - `contents`: ReactNode
2087
+ Additional content (buttons, links) rendered below the description.
1657
2088
  - `className`: string
2089
+ Additional CSS classes merged via `cn()`.
1658
2090
 
1659
2091
  **Colors (kumo tokens used):**
1660
2092
 
@@ -1750,7 +2182,7 @@ Empty component
1750
2182
 
1751
2183
  ### Field
1752
2184
 
1753
- 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.
1754
2186
 
1755
2187
  **Type:** component
1756
2188
 
@@ -1761,16 +2193,19 @@ Field component
1761
2193
  **Props:**
1762
2194
 
1763
2195
  - `controlFirst`: boolean
1764
- 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).
1765
2197
  - `children`: ReactNode
2198
+ The form control element(s) to wrap (Input, Select, Checkbox, etc.).
1766
2199
  - `label`: ReactNode
1767
- The label content - can be a string or any React node
2200
+ The label content can be a string or any React node.
1768
2201
  - `required`: boolean
1769
- 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.
1770
2203
  - `labelTooltip`: ReactNode
1771
- Tooltip content to display next to the label via an info icon
2204
+ Tooltip content displayed next to the label via an info icon.
1772
2205
  - `error`: object
2206
+ Validation error with a message and a browser `ValidityState` match key.
1773
2207
  - `description`: ReactNode
2208
+ Helper text displayed below the control (hidden when `error` is present).
1774
2209
 
1775
2210
  **Colors (kumo tokens used):**
1776
2211
 
@@ -1780,7 +2215,7 @@ Field component
1780
2215
 
1781
2216
  ### Grid
1782
2217
 
1783
- Grid component
2218
+ Responsive CSS grid layout container with preset column configurations.
1784
2219
 
1785
2220
  **Type:** component
1786
2221
 
@@ -1791,14 +2226,14 @@ Grid component
1791
2226
  **Props:**
1792
2227
 
1793
2228
  - `children`: ReactNode
1794
- Child node(s) that can be nested inside component
2229
+ Grid items to render.
1795
2230
  - `className`: string
1796
- CSS class names that can be appended to the component
2231
+ Additional CSS classes merged via `cn()`.
1797
2232
  - `id`: string
1798
2233
  - `lang`: string
1799
2234
  - `title`: string
1800
2235
  - `mobileDivider`: boolean
1801
- 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).
1802
2237
  - `gap`: enum [default: base]
1803
2238
  - `"none"`: No gap between grid items
1804
2239
  - `"sm"`: Small gap between grid items
@@ -2211,15 +2646,15 @@ Label component for form fields. Provides a standardized way to display labels
2211
2646
  **Props:**
2212
2647
 
2213
2648
  - `children`: ReactNode
2214
- The label content - can be a string or any React node
2649
+ The label content can be a string or any React node.
2215
2650
  - `showOptional`: boolean
2216
- When true (and required is false), shows gray "(optional)" text after the label
2651
+ When `true`, shows gray "(optional)" text after the label.
2217
2652
  - `tooltip`: ReactNode
2218
- Tooltip content to display next to the label via an info icon
2653
+ Tooltip content displayed next to the label via an info icon.
2219
2654
  - `className`: string
2220
- Additional CSS classes
2655
+ Additional CSS classes merged via `cn()`.
2221
2656
  - `asContent`: boolean
2222
- 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.
2223
2658
 
2224
2659
  **Colors (kumo tokens used):**
2225
2660
 
@@ -2294,6 +2729,7 @@ LayerCard component
2294
2729
 
2295
2730
  - `children`: ReactNode
2296
2731
  - `className`: string
2732
+ Additional CSS classes merged via `cn()`.
2297
2733
 
2298
2734
  **Colors (kumo tokens used):**
2299
2735
 
@@ -2477,7 +2913,7 @@ ExternalIcon sub-component
2477
2913
 
2478
2914
  ### Loader
2479
2915
 
2480
- Loader component
2916
+ Animated circular spinner for indicating loading states.
2481
2917
 
2482
2918
  **Type:** component
2483
2919
 
@@ -2488,6 +2924,7 @@ Loader component
2488
2924
  **Props:**
2489
2925
 
2490
2926
  - `className`: string
2927
+ Additional CSS classes merged via `cn()`.
2491
2928
  - `size`: enum [default: base]
2492
2929
  - `"sm"`: Small loader for inline use
2493
2930
  - `"base"`: Default loader size
@@ -2512,7 +2949,7 @@ Loader component
2512
2949
 
2513
2950
  ### MenuBar
2514
2951
 
2515
- 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.
2516
2953
 
2517
2954
  **Type:** component
2518
2955
 
@@ -2523,9 +2960,13 @@ MenuBar component
2523
2960
  **Props:**
2524
2961
 
2525
2962
  - `className`: string
2963
+ Additional CSS classes merged via `cn()`.
2526
2964
  - `isActive`: number | boolean | string
2965
+ The currently active option value — matched against option index or `id`.
2527
2966
  - `options`: MenuOptionProps[] (required)
2967
+ Array of menu option configurations.
2528
2968
  - `optionIds`: boolean
2969
+ When true, each option's `id` field is used for matching instead of its array index.
2529
2970
 
2530
2971
  **Colors (kumo tokens used):**
2531
2972
 
@@ -2562,7 +3003,7 @@ MenuBar component
2562
3003
 
2563
3004
  ### Meter
2564
3005
 
2565
- Meter component
3006
+ Progress bar showing a measured value within a known range (e.g. quota usage).
2566
3007
 
2567
3008
  **Type:** component
2568
3009
 
@@ -2573,10 +3014,15 @@ Meter component
2573
3014
  **Props:**
2574
3015
 
2575
3016
  - `customValue`: string
3017
+ Custom formatted value text (e.g. "750 / 1,000") displayed instead of percentage.
2576
3018
  - `label`: string (required)
3019
+ Label text displayed above the meter track.
2577
3020
  - `showValue`: boolean
3021
+ Whether to display the percentage value next to the label.
2578
3022
  - `trackClassName`: string
3023
+ Additional CSS classes for the track (background bar).
2579
3024
  - `indicatorClassName`: string
3025
+ Additional CSS classes for the indicator (filled bar).
2580
3026
  - `value`: number
2581
3027
  Current value of the meter
2582
3028
  - `max`: number
@@ -2615,7 +3061,7 @@ Meter component
2615
3061
 
2616
3062
  ### Pagination
2617
3063
 
2618
- Pagination component
3064
+ Page navigation controls with page count display.
2619
3065
 
2620
3066
  **Type:** component
2621
3067
 
@@ -2631,8 +3077,11 @@ Pagination component
2631
3077
  - `setPage`: (page: number) => void (required)
2632
3078
  Callback when page changes
2633
3079
  - `page`: number
3080
+ Current page number (1-indexed).
2634
3081
  - `perPage`: number
3082
+ Number of items displayed per page.
2635
3083
  - `totalCount`: number
3084
+ Total number of items across all pages.
2636
3085
 
2637
3086
  **Colors (kumo tokens used):**
2638
3087
 
@@ -2858,7 +3307,7 @@ Close sub-component
2858
3307
 
2859
3308
  ### Radio
2860
3309
 
2861
- 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`.
2862
3311
 
2863
3312
  **Type:** component
2864
3313
 
@@ -2980,29 +3429,29 @@ Select component
2980
3429
  **Props:**
2981
3430
 
2982
3431
  - `className`: string
2983
- Additional CSS classes
3432
+ Additional CSS classes merged via `cn()`.
2984
3433
  - `label`: ReactNode
2985
- 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.
2986
3435
  - `hideLabel`: boolean
2987
- 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.
2988
3437
  - `placeholder`: string
2989
- Placeholder text when no value is selected
3438
+ Placeholder text shown when no value is selected.
2990
3439
  - `loading`: boolean
2991
- Whether the select is in a loading state
3440
+ When `true`, shows a skeleton loader in place of the selected value.
2992
3441
  - `disabled`: boolean
2993
- Whether the select is disabled
3442
+ Whether the select is disabled.
2994
3443
  - `required`: boolean
2995
- Whether the select is required
3444
+ Whether the select is required. When `false`, shows "(optional)" text.
2996
3445
  - `labelTooltip`: ReactNode
2997
- Tooltip content to display next to the label via an info icon
3446
+ Tooltip content displayed next to the label via an info icon.
2998
3447
  - `value`: string
2999
- The currently selected value
3448
+ Currently selected value (controlled mode).
3000
3449
  - `children`: ReactNode
3001
- Child elements (Select.Option components)
3450
+ `Select.Option` elements to render in the dropdown.
3002
3451
  - `description`: ReactNode
3003
- Helper text displayed below the select
3452
+ Helper text displayed below the select.
3004
3453
  - `error`: string | object
3005
- Error message or validation error object
3454
+ Error message string or validation error object with `match` key.
3006
3455
  - `onValueChange`: (value: string) => void
3007
3456
  Callback when selection changes
3008
3457
  - `defaultValue`: string
@@ -3147,7 +3596,7 @@ Option sub-component
3147
3596
 
3148
3597
  ### SensitiveInput
3149
3598
 
3150
- 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.
3151
3600
 
3152
3601
  **Type:** component
3153
3602
 
@@ -3176,9 +3625,15 @@ SensitiveInput component
3176
3625
  - `value`: string
3177
3626
  Controlled value
3178
3627
  - `size`: enum [default: base]
3179
- 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
3180
3633
  - `variant`: enum [default: default]
3181
- Style variant
3634
+ Style variant of the input.
3635
+ - `"default"` — Default input appearance
3636
+ - `"error"` — Error state for validation failures
3182
3637
  - `label`: ReactNode
3183
3638
  Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
3184
3639
  - `labelTooltip`: ReactNode
@@ -3278,11 +3733,11 @@ Surface component
3278
3733
  **Props:**
3279
3734
 
3280
3735
  - `as`: React.ElementType
3281
- The element type to render as (default: "div")
3736
+ The HTML element type to render as (e.g. `"div"`, `"section"`, `"article"`).
3282
3737
  - `className`: string
3283
- Additional CSS classes
3738
+ Additional CSS classes merged via `cn()`.
3284
3739
  - `children`: ReactNode
3285
- Child elements
3740
+ Content rendered inside the surface.
3286
3741
 
3287
3742
  **Colors (kumo tokens used):**
3288
3743
 
@@ -3410,7 +3865,7 @@ Props:
3410
3865
 
3411
3866
  ### Table
3412
3867
 
3413
- 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`.
3414
3869
 
3415
3870
  **Type:** component
3416
3871
 
@@ -3669,7 +4124,7 @@ ResizeHandle sub-component
3669
4124
 
3670
4125
  ### Tabs
3671
4126
 
3672
- Tabs component
4127
+ Tab navigation component with segmented or underline style. Built on Base UI Tabs with animated active indicator.
3673
4128
 
3674
4129
  **Type:** component
3675
4130
 
@@ -3680,20 +4135,23 @@ Tabs component
3680
4135
  **Props:**
3681
4136
 
3682
4137
  - `tabs`: TabsItem[]
3683
- Array of tab items to render
4138
+ Array of tab items to render.
3684
4139
  - `value`: string
3685
4140
  Controlled value. When set, component becomes controlled.
3686
4141
  - `selectedValue`: string
3687
4142
  Default selected value for uncontrolled mode. Ignored when `value` is set.
3688
4143
  - `activateOnFocus`: boolean
3689
- 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.
3690
4145
  - `className`: string
3691
- Additional class name for the root element
4146
+ Additional CSS classes for the root element.
3692
4147
  - `listClassName`: string
3693
- Additional class name for the tab list element
4148
+ Additional CSS classes for the tab list element.
3694
4149
  - `indicatorClassName`: string
3695
- Additional class name for the indicator element
4150
+ Additional CSS classes for the indicator element.
3696
4151
  - `variant`: enum [default: segmented]
4152
+ Tab style.
4153
+ - `"segmented"` — Pill-shaped indicator on a filled track
4154
+ - `"underline"` — Underline indicator below tab text
3697
4155
  - `onValueChange`: (value: string) => void
3698
4156
  Callback when active tab changes
3699
4157
 
@@ -3831,11 +4289,11 @@ Text component
3831
4289
  - `"base"`: Default text size
3832
4290
  - `"lg"`: Large text
3833
4291
  - `bold`: boolean
3834
- Whether to use bold font weight (only applies to body variants)
4292
+ Whether to use bold font weight (only applies to body variants).
3835
4293
  - `as`: React.ElementType
3836
- 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.
3837
4295
  - `children`: ReactNode
3838
- Child text content
4296
+ Text content.
3839
4297
 
3840
4298
  **Colors (kumo tokens used):**
3841
4299
 
@@ -3914,7 +4372,7 @@ Text component
3914
4372
 
3915
4373
  ### Toasty
3916
4374
 
3917
- 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`.
3918
4376
 
3919
4377
  **Type:** component
3920
4378
 
@@ -3944,7 +4402,7 @@ Toasty component
3944
4402
 
3945
4403
  ### Tooltip
3946
4404
 
3947
- Tooltip component
4405
+ Accessible popup that shows additional information on hover/focus. Wrap your app or section with `<TooltipProvider>` to enable delay grouping.
3948
4406
 
3949
4407
  **Type:** component
3950
4408
 
@@ -3955,8 +4413,14 @@ Tooltip component
3955
4413
  **Props:**
3956
4414
 
3957
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
3958
4420
  - `asChild`: boolean
4421
+ When `true`, the trigger wraps the child element instead of adding a wrapper.
3959
4422
  - `className`: string
4423
+ Additional CSS classes merged via `cn()`.
3960
4424
  - `side`: enum [default: top]
3961
4425
  - `"top"`: Tooltip appears above the trigger
3962
4426
  - `"bottom"`: Tooltip appears below the trigger
@@ -4023,7 +4487,7 @@ Multi-line textarea input with Input variants and InputArea-specific dimensions
4023
4487
  - **Feedback:** Banner, Loader, Toasty
4024
4488
  - **Action:** Button, ClipboardText
4025
4489
  - **Input:** Checkbox, Combobox, DateRangePicker, Field, Input, Radio, Select, Switch
4490
+ - **Other:** CloudflareLogo, Label, Link, SensitiveInput, Table, DeleteResource
4026
4491
  - **Navigation:** CommandPalette, MenuBar, Pagination, Tabs
4027
4492
  - **Overlay:** Dialog, DropdownMenu, Popover, Tooltip
4028
4493
  - **Layout:** Grid, Surface, PageHeader, ResourceListPage
4029
- - **Other:** Label, Link, SensitiveInput, Table, DeleteResource