@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.
- package/CHANGELOG.md +17 -0
- package/ai/USAGE.md +193 -0
- package/ai/component-registry.json +1425 -237
- package/ai/component-registry.md +531 -67
- package/ai/schemas.ts +366 -107
- package/dist/.build-complete +1 -1
- package/dist/badge-Dc99vsfo.js.map +1 -1
- package/dist/banner-4fkH6Sbt.js.map +1 -1
- package/dist/breadcrumbs-DyKi7BcP.js.map +1 -1
- package/dist/button-Bh96oxRL.js.map +1 -1
- package/dist/catalog.js +1 -1
- package/dist/checkbox-C1LPq8eL.js.map +1 -1
- package/dist/clipboard-text-CJSI9X2m.js.map +1 -1
- package/dist/cloudflare-logo-Dqd1VD9z.js +166 -0
- package/dist/cloudflare-logo-Dqd1VD9z.js.map +1 -0
- package/dist/code-T2wPDiM0.js.map +1 -1
- package/dist/collapsible-OBNkTO48.js.map +1 -1
- package/dist/combobox-CWxn5aHA.js.map +1 -1
- package/dist/command-line/cli.js +46 -21
- package/dist/command-line/commands/ai.js +23 -0
- package/dist/command-line/commands/blocks.js +2 -2
- package/dist/command-line/commands/doc.js +3 -3
- package/dist/command-line/commands/ls.js +4 -4
- package/dist/{command-palette-BxmGYxBv.js → command-palette-J50WKjS7.js} +14 -8
- package/dist/command-palette-J50WKjS7.js.map +1 -0
- package/dist/components/cloudflare-logo.js +10 -0
- package/dist/components/cloudflare-logo.js.map +1 -0
- package/dist/components/command-palette.js +1 -1
- package/dist/date-range-picker-CbKEQ9pi.js.map +1 -1
- package/dist/dialog-x9n9wI13.js.map +1 -1
- package/dist/dropdown-BAyk1knz.js.map +1 -1
- package/dist/empty-D03cbzRS.js.map +1 -1
- package/dist/field-B7ORz5ej.js.map +1 -1
- package/dist/grid-DKajRHh8.js.map +1 -1
- package/dist/index.js +67 -61
- package/dist/index.js.map +1 -1
- package/dist/input-D6YgDfDG.js.map +1 -1
- package/dist/label-B4FY8MX_.js.map +1 -1
- package/dist/layer-card-C8j5Hkkj.js.map +1 -1
- package/dist/link-CcuZKqob.js.map +1 -1
- package/dist/loader-DHGMYlC6.js.map +1 -1
- package/dist/menubar-CzimiryS.js.map +1 -1
- package/dist/meter-BrJnHJ3Q.js.map +1 -1
- package/dist/pagination-D0x9KQSk.js.map +1 -1
- package/dist/popover-CtKDH8Yc.js.map +1 -1
- package/dist/radio-CYejLANA.js.map +1 -1
- package/dist/schemas-DCw6TIy0.js +3859 -0
- package/dist/{schemas-C2YJKpDC.js.map → schemas-DCw6TIy0.js.map} +1 -1
- package/dist/select-D4rKQAax.js.map +1 -1
- package/dist/sensitive-input-DYvAmxkN.js.map +1 -1
- package/dist/src/command-line/commands/ai.d.ts +10 -0
- package/dist/src/command-line/commands/ai.d.ts.map +1 -0
- package/dist/src/components/badge/badge.d.ts +31 -4
- package/dist/src/components/badge/badge.d.ts.map +1 -1
- package/dist/src/components/banner/banner.d.ts +39 -4
- package/dist/src/components/banner/banner.d.ts.map +1 -1
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +35 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/src/components/button/button.d.ts +86 -0
- package/dist/src/components/button/button.d.ts.map +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts +7 -0
- package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/src/components/clipboard-text/clipboard-text.d.ts +28 -3
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts +133 -0
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts.map +1 -0
- package/dist/src/components/cloudflare-logo/index.d.ts +2 -0
- package/dist/src/components/cloudflare-logo/index.d.ts.map +1 -0
- package/dist/src/components/code/code.d.ts +38 -6
- package/dist/src/components/code/code.d.ts.map +1 -1
- package/dist/src/components/collapsible/collapsible.d.ts +10 -0
- package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
- package/dist/src/components/combobox/combobox.d.ts +61 -0
- package/dist/src/components/combobox/combobox.d.ts.map +1 -1
- package/dist/src/components/command-palette/command-palette.d.ts +41 -6
- package/dist/src/components/command-palette/command-palette.d.ts.map +1 -1
- package/dist/src/components/date-range-picker/date-range-picker.d.ts +57 -4
- package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/src/components/dialog/dialog.d.ts +27 -0
- package/dist/src/components/dialog/dialog.d.ts.map +1 -1
- package/dist/src/components/dropdown/dropdown.d.ts +33 -0
- package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
- package/dist/src/components/empty/empty.d.ts +35 -0
- package/dist/src/components/empty/empty.d.ts.map +1 -1
- package/dist/src/components/field/field.d.ts +34 -4
- package/dist/src/components/field/field.d.ts.map +1 -1
- package/dist/src/components/grid/grid.d.ts +45 -17
- package/dist/src/components/grid/grid.d.ts.map +1 -1
- package/dist/src/components/input/input.d.ts +15 -0
- package/dist/src/components/input/input.d.ts.map +1 -1
- package/dist/src/components/label/label.d.ts +16 -5
- package/dist/src/components/label/label.d.ts.map +1 -1
- package/dist/src/components/layer-card/layer-card.d.ts +13 -0
- package/dist/src/components/layer-card/layer-card.d.ts.map +1 -1
- package/dist/src/components/link/link.d.ts +20 -0
- package/dist/src/components/link/link.d.ts.map +1 -1
- package/dist/src/components/loader/loader.d.ts +34 -0
- package/dist/src/components/loader/loader.d.ts.map +1 -1
- package/dist/src/components/menubar/menubar.d.ts +44 -0
- package/dist/src/components/menubar/menubar.d.ts.map +1 -1
- package/dist/src/components/meter/meter.d.ts +26 -0
- package/dist/src/components/meter/meter.d.ts.map +1 -1
- package/dist/src/components/pagination/pagination.d.ts +25 -0
- package/dist/src/components/pagination/pagination.d.ts.map +1 -1
- package/dist/src/components/popover/popover.d.ts +33 -5
- package/dist/src/components/popover/popover.d.ts.map +1 -1
- package/dist/src/components/radio/radio.d.ts +22 -0
- package/dist/src/components/radio/radio.d.ts.map +1 -1
- package/dist/src/components/select/select.d.ts +42 -20
- package/dist/src/components/select/select.d.ts.map +1 -1
- package/dist/src/components/sensitive-input/sensitive-input.d.ts +30 -6
- package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
- package/dist/src/components/surface/surface.d.ts +18 -6
- package/dist/src/components/surface/surface.d.ts.map +1 -1
- package/dist/src/components/switch/switch.d.ts +14 -0
- package/dist/src/components/switch/switch.d.ts.map +1 -1
- package/dist/src/components/table/table.d.ts +33 -0
- package/dist/src/components/table/table.d.ts.map +1 -1
- package/dist/src/components/tabs/tabs.d.ts +48 -9
- package/dist/src/components/tabs/tabs.d.ts.map +1 -1
- package/dist/src/components/text/text.d.ts +35 -7
- package/dist/src/components/text/text.d.ts.map +1 -1
- package/dist/src/components/toast/toast.d.ts +34 -0
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/src/components/tooltip/tooltip.d.ts +41 -0
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/surface-BIC6CXiz.js.map +1 -1
- package/dist/switch-z7FE1nQE.js.map +1 -1
- package/dist/table-Sd2Etb1N.js.map +1 -1
- package/dist/tabs-DAEeuQLd.js.map +1 -1
- package/dist/text-BEhqwMfe.js.map +1 -1
- package/dist/toast-B8ebpHaU.js.map +1 -1
- package/dist/tooltip-C4DRhJi1.js.map +1 -1
- package/package.json +7 -3
- package/dist/command-palette-BxmGYxBv.js.map +0 -1
- package/dist/schemas-C2YJKpDC.js +0 -3543
package/ai/component-registry.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
### Badge
|
|
8
8
|
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
© 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
|
|
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
|
|
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
|
|
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
|
-
<
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
2200
|
+
The label content — can be a string or any React node.
|
|
1768
2201
|
- `required`: boolean
|
|
1769
|
-
When explicitly false
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
2229
|
+
Grid items to render.
|
|
1795
2230
|
- `className`: string
|
|
1796
|
-
CSS
|
|
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
|
|
2649
|
+
The label content — can be a string or any React node.
|
|
2215
2650
|
- `showOptional`: boolean
|
|
2216
|
-
When true
|
|
2651
|
+
When `true`, shows gray "(optional)" text after the label.
|
|
2217
2652
|
- `tooltip`: ReactNode
|
|
2218
|
-
Tooltip content
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
3434
|
+
Label content for the select (enables Field wrapper) — can be a string or any React node.
|
|
2986
3435
|
- `hideLabel`: boolean
|
|
2987
|
-
|
|
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
|
-
|
|
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
|
|
3446
|
+
Tooltip content displayed next to the label via an info icon.
|
|
2998
3447
|
- `value`: string
|
|
2999
|
-
|
|
3448
|
+
Currently selected value (controlled mode).
|
|
3000
3449
|
- `children`: ReactNode
|
|
3001
|
-
|
|
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
|
-
|
|
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
|
|
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 (
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
4146
|
+
Additional CSS classes for the root element.
|
|
3692
4147
|
- `listClassName`: string
|
|
3693
|
-
Additional
|
|
4148
|
+
Additional CSS classes for the tab list element.
|
|
3694
4149
|
- `indicatorClassName`: string
|
|
3695
|
-
Additional
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|