@cloudflare/kumo 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/ai/USAGE.md +193 -0
- package/ai/component-registry.json +1492 -215
- package/ai/component-registry.md +524 -66
- 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 +43 -18
- package/dist/command-line/commands/ai.js +23 -0
- package/dist/command-line/commands/blocks.js +2 -2
- package/dist/command-line/commands/ls.js +2 -2
- 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/components/dialog.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/date-range-picker-CbKEQ9pi.js.map +1 -1
- package/dist/{dialog-BxXPA2vI.js → dialog-x9n9wI13.js} +18 -18
- package/dist/dialog-x9n9wI13.js.map +1 -0
- 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 +274 -122
- 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-BfGLC2s6.js → popover-CtKDH8Yc.js} +8 -8
- package/dist/popover-CtKDH8Yc.js.map +1 -0
- 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/blocks/delete-resource/delete-resource.d.ts +46 -0
- package/dist/src/blocks/delete-resource/delete-resource.d.ts.map +1 -0
- package/dist/src/blocks/delete-resource/index.d.ts +2 -0
- package/dist/src/blocks/delete-resource/index.d.ts.map +1 -0
- 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 +28 -1
- 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 +31 -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 +6 -2
- package/dist/command-palette-BxmGYxBv.js.map +0 -1
- package/dist/dialog-BxXPA2vI.js.map +0 -1
- package/dist/popover-BfGLC2s6.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
|
|
@@ -1554,7 +1974,7 @@ Usage:
|
|
|
1554
1974
|
|
|
1555
1975
|
### DropdownMenu
|
|
1556
1976
|
|
|
1557
|
-
DropdownMenu component
|
|
1977
|
+
DropdownMenu — accessible dropdown menu anchored to a trigger. Compound component: `DropdownMenu` (Root), `.Trigger`, `.Content`, `.Item`, `.CheckboxItem`, `.RadioGroup`, `.RadioItem`, `.RadioItemIndicator`, `.Sub`, `.SubTrigger`, `.SubContent`, `.Label`, `.Separator`, `.Shortcut`, `.Group`. Built on `@base-ui/react/menu`.
|
|
1558
1978
|
|
|
1559
1979
|
**Type:** component
|
|
1560
1980
|
|
|
@@ -1641,7 +2061,7 @@ Group sub-component (wraps DropdownMenuPrimitive)
|
|
|
1641
2061
|
|
|
1642
2062
|
### Empty
|
|
1643
2063
|
|
|
1644
|
-
|
|
2064
|
+
Placeholder shown when a list, table, or page has no content to display.
|
|
1645
2065
|
|
|
1646
2066
|
**Type:** component
|
|
1647
2067
|
|
|
@@ -1656,11 +2076,17 @@ Empty component
|
|
|
1656
2076
|
- `"base"`: Default empty state size
|
|
1657
2077
|
- `"lg"`: Large empty state for prominent placement
|
|
1658
2078
|
- `icon`: ReactNode
|
|
2079
|
+
Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
|
|
1659
2080
|
- `title`: string (required)
|
|
2081
|
+
Primary heading text for the empty state.
|
|
1660
2082
|
- `description`: string
|
|
2083
|
+
Secondary description text displayed below the title.
|
|
1661
2084
|
- `commandLine`: string
|
|
2085
|
+
Shell command displayed in a copyable code block.
|
|
1662
2086
|
- `contents`: ReactNode
|
|
2087
|
+
Additional content (buttons, links) rendered below the description.
|
|
1663
2088
|
- `className`: string
|
|
2089
|
+
Additional CSS classes merged via `cn()`.
|
|
1664
2090
|
|
|
1665
2091
|
**Colors (kumo tokens used):**
|
|
1666
2092
|
|
|
@@ -1756,7 +2182,7 @@ Empty component
|
|
|
1756
2182
|
|
|
1757
2183
|
### Field
|
|
1758
2184
|
|
|
1759
|
-
Field
|
|
2185
|
+
Form field wrapper that provides a label, optional description, and error display around any form control. Built on Base UI Field primitives.
|
|
1760
2186
|
|
|
1761
2187
|
**Type:** component
|
|
1762
2188
|
|
|
@@ -1767,16 +2193,19 @@ Field component
|
|
|
1767
2193
|
**Props:**
|
|
1768
2194
|
|
|
1769
2195
|
- `controlFirst`: boolean
|
|
1770
|
-
When true
|
|
2196
|
+
When `true`, places the control before the label (for checkbox/switch layouts).
|
|
1771
2197
|
- `children`: ReactNode
|
|
2198
|
+
The form control element(s) to wrap (Input, Select, Checkbox, etc.).
|
|
1772
2199
|
- `label`: ReactNode
|
|
1773
|
-
The label content
|
|
2200
|
+
The label content — can be a string or any React node.
|
|
1774
2201
|
- `required`: boolean
|
|
1775
|
-
When explicitly false
|
|
2202
|
+
When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
|
|
1776
2203
|
- `labelTooltip`: ReactNode
|
|
1777
|
-
Tooltip content
|
|
2204
|
+
Tooltip content displayed next to the label via an info icon.
|
|
1778
2205
|
- `error`: object
|
|
2206
|
+
Validation error with a message and a browser `ValidityState` match key.
|
|
1779
2207
|
- `description`: ReactNode
|
|
2208
|
+
Helper text displayed below the control (hidden when `error` is present).
|
|
1780
2209
|
|
|
1781
2210
|
**Colors (kumo tokens used):**
|
|
1782
2211
|
|
|
@@ -1786,7 +2215,7 @@ Field component
|
|
|
1786
2215
|
|
|
1787
2216
|
### Grid
|
|
1788
2217
|
|
|
1789
|
-
|
|
2218
|
+
Responsive CSS grid layout container with preset column configurations.
|
|
1790
2219
|
|
|
1791
2220
|
**Type:** component
|
|
1792
2221
|
|
|
@@ -1797,14 +2226,14 @@ Grid component
|
|
|
1797
2226
|
**Props:**
|
|
1798
2227
|
|
|
1799
2228
|
- `children`: ReactNode
|
|
1800
|
-
|
|
2229
|
+
Grid items to render.
|
|
1801
2230
|
- `className`: string
|
|
1802
|
-
CSS
|
|
2231
|
+
Additional CSS classes merged via `cn()`.
|
|
1803
2232
|
- `id`: string
|
|
1804
2233
|
- `lang`: string
|
|
1805
2234
|
- `title`: string
|
|
1806
2235
|
- `mobileDivider`: boolean
|
|
1807
|
-
Show dividers between grid items on mobile (only works with 4up variant)
|
|
2236
|
+
Show dividers between grid items on mobile (only works with `"4up"` variant).
|
|
1808
2237
|
- `gap`: enum [default: base]
|
|
1809
2238
|
- `"none"`: No gap between grid items
|
|
1810
2239
|
- `"sm"`: Small gap between grid items
|
|
@@ -2217,15 +2646,15 @@ Label component for form fields. Provides a standardized way to display labels
|
|
|
2217
2646
|
**Props:**
|
|
2218
2647
|
|
|
2219
2648
|
- `children`: ReactNode
|
|
2220
|
-
The label content
|
|
2649
|
+
The label content — can be a string or any React node.
|
|
2221
2650
|
- `showOptional`: boolean
|
|
2222
|
-
When true
|
|
2651
|
+
When `true`, shows gray "(optional)" text after the label.
|
|
2223
2652
|
- `tooltip`: ReactNode
|
|
2224
|
-
Tooltip content
|
|
2653
|
+
Tooltip content displayed next to the label via an info icon.
|
|
2225
2654
|
- `className`: string
|
|
2226
|
-
Additional CSS classes
|
|
2655
|
+
Additional CSS classes merged via `cn()`.
|
|
2227
2656
|
- `asContent`: boolean
|
|
2228
|
-
When true
|
|
2657
|
+
When `true`, only renders the inline content (indicators, tooltip) without the outer span with font styling. Useful when composed inside another label element that already provides the text styling.
|
|
2229
2658
|
|
|
2230
2659
|
**Colors (kumo tokens used):**
|
|
2231
2660
|
|
|
@@ -2300,6 +2729,7 @@ LayerCard component
|
|
|
2300
2729
|
|
|
2301
2730
|
- `children`: ReactNode
|
|
2302
2731
|
- `className`: string
|
|
2732
|
+
Additional CSS classes merged via `cn()`.
|
|
2303
2733
|
|
|
2304
2734
|
**Colors (kumo tokens used):**
|
|
2305
2735
|
|
|
@@ -2483,7 +2913,7 @@ ExternalIcon sub-component
|
|
|
2483
2913
|
|
|
2484
2914
|
### Loader
|
|
2485
2915
|
|
|
2486
|
-
|
|
2916
|
+
Animated circular spinner for indicating loading states.
|
|
2487
2917
|
|
|
2488
2918
|
**Type:** component
|
|
2489
2919
|
|
|
@@ -2494,6 +2924,7 @@ Loader component
|
|
|
2494
2924
|
**Props:**
|
|
2495
2925
|
|
|
2496
2926
|
- `className`: string
|
|
2927
|
+
Additional CSS classes merged via `cn()`.
|
|
2497
2928
|
- `size`: enum [default: base]
|
|
2498
2929
|
- `"sm"`: Small loader for inline use
|
|
2499
2930
|
- `"base"`: Default loader size
|
|
@@ -2518,7 +2949,7 @@ Loader component
|
|
|
2518
2949
|
|
|
2519
2950
|
### MenuBar
|
|
2520
2951
|
|
|
2521
|
-
MenuBar
|
|
2952
|
+
MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation. Each option renders as a `<button>` with a Tooltip. The active option is visually highlighted with an elevated background.
|
|
2522
2953
|
|
|
2523
2954
|
**Type:** component
|
|
2524
2955
|
|
|
@@ -2529,9 +2960,13 @@ MenuBar component
|
|
|
2529
2960
|
**Props:**
|
|
2530
2961
|
|
|
2531
2962
|
- `className`: string
|
|
2963
|
+
Additional CSS classes merged via `cn()`.
|
|
2532
2964
|
- `isActive`: number | boolean | string
|
|
2965
|
+
The currently active option value — matched against option index or `id`.
|
|
2533
2966
|
- `options`: MenuOptionProps[] (required)
|
|
2967
|
+
Array of menu option configurations.
|
|
2534
2968
|
- `optionIds`: boolean
|
|
2969
|
+
When true, each option's `id` field is used for matching instead of its array index.
|
|
2535
2970
|
|
|
2536
2971
|
**Colors (kumo tokens used):**
|
|
2537
2972
|
|
|
@@ -2568,7 +3003,7 @@ MenuBar component
|
|
|
2568
3003
|
|
|
2569
3004
|
### Meter
|
|
2570
3005
|
|
|
2571
|
-
|
|
3006
|
+
Progress bar showing a measured value within a known range (e.g. quota usage).
|
|
2572
3007
|
|
|
2573
3008
|
**Type:** component
|
|
2574
3009
|
|
|
@@ -2579,10 +3014,15 @@ Meter component
|
|
|
2579
3014
|
**Props:**
|
|
2580
3015
|
|
|
2581
3016
|
- `customValue`: string
|
|
3017
|
+
Custom formatted value text (e.g. "750 / 1,000") displayed instead of percentage.
|
|
2582
3018
|
- `label`: string (required)
|
|
3019
|
+
Label text displayed above the meter track.
|
|
2583
3020
|
- `showValue`: boolean
|
|
3021
|
+
Whether to display the percentage value next to the label.
|
|
2584
3022
|
- `trackClassName`: string
|
|
3023
|
+
Additional CSS classes for the track (background bar).
|
|
2585
3024
|
- `indicatorClassName`: string
|
|
3025
|
+
Additional CSS classes for the indicator (filled bar).
|
|
2586
3026
|
- `value`: number
|
|
2587
3027
|
Current value of the meter
|
|
2588
3028
|
- `max`: number
|
|
@@ -2621,7 +3061,7 @@ Meter component
|
|
|
2621
3061
|
|
|
2622
3062
|
### Pagination
|
|
2623
3063
|
|
|
2624
|
-
|
|
3064
|
+
Page navigation controls with page count display.
|
|
2625
3065
|
|
|
2626
3066
|
**Type:** component
|
|
2627
3067
|
|
|
@@ -2637,8 +3077,11 @@ Pagination component
|
|
|
2637
3077
|
- `setPage`: (page: number) => void (required)
|
|
2638
3078
|
Callback when page changes
|
|
2639
3079
|
- `page`: number
|
|
3080
|
+
Current page number (1-indexed).
|
|
2640
3081
|
- `perPage`: number
|
|
3082
|
+
Number of items displayed per page.
|
|
2641
3083
|
- `totalCount`: number
|
|
3084
|
+
Total number of items across all pages.
|
|
2642
3085
|
|
|
2643
3086
|
**Colors (kumo tokens used):**
|
|
2644
3087
|
|
|
@@ -2864,7 +3307,7 @@ Close sub-component
|
|
|
2864
3307
|
|
|
2865
3308
|
### Radio
|
|
2866
3309
|
|
|
2867
|
-
Radio component
|
|
3310
|
+
Radio — radio button group for single-select choices. Compound component: `Radio.Group` (with built-in Fieldset) and `Radio.Item`. Built on `@base-ui/react/radio-group` + `@base-ui/react/radio`.
|
|
2868
3311
|
|
|
2869
3312
|
**Type:** component
|
|
2870
3313
|
|
|
@@ -2986,29 +3429,29 @@ Select component
|
|
|
2986
3429
|
**Props:**
|
|
2987
3430
|
|
|
2988
3431
|
- `className`: string
|
|
2989
|
-
Additional CSS classes
|
|
3432
|
+
Additional CSS classes merged via `cn()`.
|
|
2990
3433
|
- `label`: ReactNode
|
|
2991
|
-
Label content for the select (enables Field wrapper)
|
|
3434
|
+
Label content for the select (enables Field wrapper) — can be a string or any React node.
|
|
2992
3435
|
- `hideLabel`: boolean
|
|
2993
|
-
|
|
3436
|
+
Visually hide the label while keeping it accessible to screen readers. Set to `false` to show a visible label above the select via the Field wrapper.
|
|
2994
3437
|
- `placeholder`: string
|
|
2995
|
-
Placeholder text when no value is selected
|
|
3438
|
+
Placeholder text shown when no value is selected.
|
|
2996
3439
|
- `loading`: boolean
|
|
2997
|
-
|
|
3440
|
+
When `true`, shows a skeleton loader in place of the selected value.
|
|
2998
3441
|
- `disabled`: boolean
|
|
2999
|
-
Whether the select is disabled
|
|
3442
|
+
Whether the select is disabled.
|
|
3000
3443
|
- `required`: boolean
|
|
3001
|
-
Whether the select is required
|
|
3444
|
+
Whether the select is required. When `false`, shows "(optional)" text.
|
|
3002
3445
|
- `labelTooltip`: ReactNode
|
|
3003
|
-
Tooltip content
|
|
3446
|
+
Tooltip content displayed next to the label via an info icon.
|
|
3004
3447
|
- `value`: string
|
|
3005
|
-
|
|
3448
|
+
Currently selected value (controlled mode).
|
|
3006
3449
|
- `children`: ReactNode
|
|
3007
|
-
|
|
3450
|
+
`Select.Option` elements to render in the dropdown.
|
|
3008
3451
|
- `description`: ReactNode
|
|
3009
|
-
Helper text displayed below the select
|
|
3452
|
+
Helper text displayed below the select.
|
|
3010
3453
|
- `error`: string | object
|
|
3011
|
-
Error message or validation error object
|
|
3454
|
+
Error message string or validation error object with `match` key.
|
|
3012
3455
|
- `onValueChange`: (value: string) => void
|
|
3013
3456
|
Callback when selection changes
|
|
3014
3457
|
- `defaultValue`: string
|
|
@@ -3153,7 +3596,7 @@ Option sub-component
|
|
|
3153
3596
|
|
|
3154
3597
|
### SensitiveInput
|
|
3155
3598
|
|
|
3156
|
-
|
|
3599
|
+
Password/secret input that masks its value by default and reveals on click. Includes a built-in copy-to-clipboard button on hover.
|
|
3157
3600
|
|
|
3158
3601
|
**Type:** component
|
|
3159
3602
|
|
|
@@ -3182,9 +3625,15 @@ SensitiveInput component
|
|
|
3182
3625
|
- `value`: string
|
|
3183
3626
|
Controlled value
|
|
3184
3627
|
- `size`: enum [default: base]
|
|
3185
|
-
Size
|
|
3628
|
+
Size of the input.
|
|
3629
|
+
- `"xs"` — Extra small for compact UIs
|
|
3630
|
+
- `"sm"` — Small for secondary fields
|
|
3631
|
+
- `"base"` — Default input size
|
|
3632
|
+
- `"lg"` — Large for prominent fields
|
|
3186
3633
|
- `variant`: enum [default: default]
|
|
3187
|
-
Style variant
|
|
3634
|
+
Style variant of the input.
|
|
3635
|
+
- `"default"` — Default input appearance
|
|
3636
|
+
- `"error"` — Error state for validation failures
|
|
3188
3637
|
- `label`: ReactNode
|
|
3189
3638
|
Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
|
|
3190
3639
|
- `labelTooltip`: ReactNode
|
|
@@ -3284,11 +3733,11 @@ Surface component
|
|
|
3284
3733
|
**Props:**
|
|
3285
3734
|
|
|
3286
3735
|
- `as`: React.ElementType
|
|
3287
|
-
The element type to render as (
|
|
3736
|
+
The HTML element type to render as (e.g. `"div"`, `"section"`, `"article"`).
|
|
3288
3737
|
- `className`: string
|
|
3289
|
-
Additional CSS classes
|
|
3738
|
+
Additional CSS classes merged via `cn()`.
|
|
3290
3739
|
- `children`: ReactNode
|
|
3291
|
-
|
|
3740
|
+
Content rendered inside the surface.
|
|
3292
3741
|
|
|
3293
3742
|
**Colors (kumo tokens used):**
|
|
3294
3743
|
|
|
@@ -3416,7 +3865,7 @@ Props:
|
|
|
3416
3865
|
|
|
3417
3866
|
### Table
|
|
3418
3867
|
|
|
3419
|
-
Table component
|
|
3868
|
+
Table — semantic HTML table with styled rows, cells, and selection support. Compound component: `Table` (Root), `.Header`, `.Head`, `.Body`, `.Row`, `.Cell`, `.Footer`, `.CheckCell`, `.CheckHead`, `.ResizeHandle`.
|
|
3420
3869
|
|
|
3421
3870
|
**Type:** component
|
|
3422
3871
|
|
|
@@ -3675,7 +4124,7 @@ ResizeHandle sub-component
|
|
|
3675
4124
|
|
|
3676
4125
|
### Tabs
|
|
3677
4126
|
|
|
3678
|
-
Tabs
|
|
4127
|
+
Tab navigation component with segmented or underline style. Built on Base UI Tabs with animated active indicator.
|
|
3679
4128
|
|
|
3680
4129
|
**Type:** component
|
|
3681
4130
|
|
|
@@ -3686,20 +4135,23 @@ Tabs component
|
|
|
3686
4135
|
**Props:**
|
|
3687
4136
|
|
|
3688
4137
|
- `tabs`: TabsItem[]
|
|
3689
|
-
Array of tab items to render
|
|
4138
|
+
Array of tab items to render.
|
|
3690
4139
|
- `value`: string
|
|
3691
4140
|
Controlled value. When set, component becomes controlled.
|
|
3692
4141
|
- `selectedValue`: string
|
|
3693
4142
|
Default selected value for uncontrolled mode. Ignored when `value` is set.
|
|
3694
4143
|
- `activateOnFocus`: boolean
|
|
3695
|
-
When true
|
|
4144
|
+
When `true`, tabs are activated immediately upon receiving focus via arrow keys. When `false` (default), tabs receive focus but require Enter/Space to activate.
|
|
3696
4145
|
- `className`: string
|
|
3697
|
-
Additional
|
|
4146
|
+
Additional CSS classes for the root element.
|
|
3698
4147
|
- `listClassName`: string
|
|
3699
|
-
Additional
|
|
4148
|
+
Additional CSS classes for the tab list element.
|
|
3700
4149
|
- `indicatorClassName`: string
|
|
3701
|
-
Additional
|
|
4150
|
+
Additional CSS classes for the indicator element.
|
|
3702
4151
|
- `variant`: enum [default: segmented]
|
|
4152
|
+
Tab style.
|
|
4153
|
+
- `"segmented"` — Pill-shaped indicator on a filled track
|
|
4154
|
+
- `"underline"` — Underline indicator below tab text
|
|
3703
4155
|
- `onValueChange`: (value: string) => void
|
|
3704
4156
|
Callback when active tab changes
|
|
3705
4157
|
|
|
@@ -3837,11 +4289,11 @@ Text component
|
|
|
3837
4289
|
- `"base"`: Default text size
|
|
3838
4290
|
- `"lg"`: Large text
|
|
3839
4291
|
- `bold`: boolean
|
|
3840
|
-
Whether to use bold font weight (only applies to body variants)
|
|
4292
|
+
Whether to use bold font weight (only applies to body variants).
|
|
3841
4293
|
- `as`: React.ElementType
|
|
3842
|
-
The element type to render as
|
|
4294
|
+
The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
3843
4295
|
- `children`: ReactNode
|
|
3844
|
-
|
|
4296
|
+
Text content.
|
|
3845
4297
|
|
|
3846
4298
|
**Colors (kumo tokens used):**
|
|
3847
4299
|
|
|
@@ -3920,7 +4372,7 @@ Text component
|
|
|
3920
4372
|
|
|
3921
4373
|
### Toasty
|
|
3922
4374
|
|
|
3923
|
-
Toasty
|
|
4375
|
+
Toasty — toast notification provider and viewport. Renders a `Toast.Provider` with a fixed-position viewport in the bottom-right corner. Toasts stack with smooth enter/exit animations, swipe-to-dismiss, and expand-on-hover. Built on `@base-ui/react/toast`.
|
|
3924
4376
|
|
|
3925
4377
|
**Type:** component
|
|
3926
4378
|
|
|
@@ -3950,7 +4402,7 @@ Toasty component
|
|
|
3950
4402
|
|
|
3951
4403
|
### Tooltip
|
|
3952
4404
|
|
|
3953
|
-
|
|
4405
|
+
Accessible popup that shows additional information on hover/focus. Wrap your app or section with `<TooltipProvider>` to enable delay grouping.
|
|
3954
4406
|
|
|
3955
4407
|
**Type:** component
|
|
3956
4408
|
|
|
@@ -3961,8 +4413,14 @@ Tooltip component
|
|
|
3961
4413
|
**Props:**
|
|
3962
4414
|
|
|
3963
4415
|
- `align`: enum
|
|
4416
|
+
Alignment on the axis perpendicular to `side`.
|
|
4417
|
+
- `"start"` — Align to the start edge
|
|
4418
|
+
- `"center"` — Center-aligned
|
|
4419
|
+
- `"end"` — Align to the end edge
|
|
3964
4420
|
- `asChild`: boolean
|
|
4421
|
+
When `true`, the trigger wraps the child element instead of adding a wrapper.
|
|
3965
4422
|
- `className`: string
|
|
4423
|
+
Additional CSS classes merged via `cn()`.
|
|
3966
4424
|
- `side`: enum [default: top]
|
|
3967
4425
|
- `"top"`: Tooltip appears above the trigger
|
|
3968
4426
|
- `"bottom"`: Tooltip appears below the trigger
|
|
@@ -4029,7 +4487,7 @@ Multi-line textarea input with Input variants and InputArea-specific dimensions
|
|
|
4029
4487
|
- **Feedback:** Banner, Loader, Toasty
|
|
4030
4488
|
- **Action:** Button, ClipboardText
|
|
4031
4489
|
- **Input:** Checkbox, Combobox, DateRangePicker, Field, Input, Radio, Select, Switch
|
|
4490
|
+
- **Other:** CloudflareLogo, Label, Link, SensitiveInput, Table, DeleteResource
|
|
4032
4491
|
- **Navigation:** CommandPalette, MenuBar, Pagination, Tabs
|
|
4033
4492
|
- **Overlay:** Dialog, DropdownMenu, Popover, Tooltip
|
|
4034
4493
|
- **Layout:** Grid, Surface, PageHeader, ResourceListPage
|
|
4035
|
-
- **Other:** Label, Link, SensitiveInput, Table
|