@cloudflare/kumo 1.16.0 → 1.18.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 +163 -0
- package/ai/USAGE.md +38 -30
- package/ai/component-registry.json +237 -93
- package/ai/component-registry.md +421 -45
- package/ai/schemas.ts +15 -5
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts +105 -49
- package/dist/ai/schemas.d.ts.map +1 -1
- package/dist/ai/schemas.js +187 -174
- package/dist/ai/schemas.js.map +1 -1
- package/dist/chunks/{Legend-bov5dqf08wemc2qj.js → Legend-o0ntojbaplmszwk0.js} +4 -2
- package/dist/chunks/Legend-o0ntojbaplmszwk0.js.map +1 -0
- package/dist/chunks/badge-dan90i0rzy4pwa1j.js +102 -0
- package/dist/chunks/badge-dan90i0rzy4pwa1j.js.map +1 -0
- package/dist/chunks/banner-eiwcnk7ts21s3bnb.js +79 -0
- package/dist/chunks/banner-eiwcnk7ts21s3bnb.js.map +1 -0
- package/dist/chunks/{breadcrumbs-m79gm4gjwbfajpna.js → breadcrumbs-k39s28qx05vbxxth.js} +3 -3
- package/dist/chunks/{breadcrumbs-m79gm4gjwbfajpna.js.map → breadcrumbs-k39s28qx05vbxxth.js.map} +1 -1
- package/dist/chunks/{button-j0hi0afn33w9lxgi.js → button-cdxnqcgzwko8ooha.js} +55 -53
- package/dist/chunks/button-cdxnqcgzwko8ooha.js.map +1 -0
- package/dist/chunks/{checkbox-lawmt1894wr6rpgi.js → checkbox-kt1uojk2f9e0d0h1.js} +46 -55
- package/dist/chunks/checkbox-kt1uojk2f9e0d0h1.js.map +1 -0
- package/dist/chunks/{clipboard-text-ohx8kkpxisz382rj.js → clipboard-text-vcbvmtne4zjk4b18.js} +55 -54
- package/dist/chunks/clipboard-text-vcbvmtne4zjk4b18.js.map +1 -0
- package/dist/chunks/{code-liq1g6f5lhee305d.js → code-cz0w1y5z4h29a9eg.js} +18 -18
- package/dist/chunks/code-cz0w1y5z4h29a9eg.js.map +1 -0
- package/dist/chunks/{combobox-ft0u7rfaxawk0r0c.js → combobox-he2hd9e2ruknq5mp.js} +97 -82
- package/dist/chunks/combobox-he2hd9e2ruknq5mp.js.map +1 -0
- package/dist/chunks/{command-palette-b31nq4wk7o7gx4sa.js → command-palette-jc1w07jwakxvj23a.js} +159 -155
- package/dist/chunks/command-palette-jc1w07jwakxvj23a.js.map +1 -0
- package/dist/chunks/{dialog-l5tmwxrzp9g83jmw.js → dialog-oqh8l3l3zutpibxx.js} +22 -20
- package/dist/chunks/dialog-oqh8l3l3zutpibxx.js.map +1 -0
- package/dist/chunks/{dropdown-icy3xatdwhzr4une.js → dropdown-ncwhcd912vmone8k.js} +96 -90
- package/dist/chunks/dropdown-ncwhcd912vmone8k.js.map +1 -0
- package/dist/chunks/{empty-hrwtammqp0b2nvtf.js → empty-cj898km1r8xwuw44.js} +2 -2
- package/dist/chunks/{empty-hrwtammqp0b2nvtf.js.map → empty-cj898km1r8xwuw44.js.map} +1 -1
- package/dist/chunks/{field-csje72m7j9403fj5.js → field-krp6z6vfbkrvufz2.js} +3 -3
- package/dist/chunks/{field-csje72m7j9403fj5.js.map → field-krp6z6vfbkrvufz2.js.map} +1 -1
- package/dist/chunks/input-area-no30c09udyjxshu5.js +78 -0
- package/dist/chunks/input-area-no30c09udyjxshu5.js.map +1 -0
- package/dist/chunks/{input-group-cjsy8kh4vf9312xl.js → input-group-lxdd09p60cf27pe1.js} +26 -26
- package/dist/chunks/input-group-lxdd09p60cf27pe1.js.map +1 -0
- package/dist/chunks/{input-c8jmidy7gdqfiky1.js → input-h48k3uagzrgb98au.js} +40 -36
- package/dist/chunks/input-h48k3uagzrgb98au.js.map +1 -0
- package/dist/chunks/{label-i46xnnzdh9bsxk6a.js → label-latndvb1ngem7we8.js} +3 -3
- package/dist/chunks/{label-i46xnnzdh9bsxk6a.js.map → label-latndvb1ngem7we8.js.map} +1 -1
- package/dist/chunks/{layer-card-mu2w82x6ko1nhhtr.js → layer-card-l5yjvrxry1dhte57.js} +8 -8
- package/dist/chunks/{layer-card-mu2w82x6ko1nhhtr.js.map → layer-card-l5yjvrxry1dhte57.js.map} +1 -1
- package/dist/chunks/{link-o7yfj4kwgl19fklp.js → link-hn5ejal7nhh0o0b4.js} +2 -2
- package/dist/chunks/{link-o7yfj4kwgl19fklp.js.map → link-hn5ejal7nhh0o0b4.js.map} +1 -1
- package/dist/chunks/{loader-m5wfmqwgucrr4i5v.js → loader-hr2w7cpqeev3p3vl.js} +9 -6
- package/dist/chunks/loader-hr2w7cpqeev3p3vl.js.map +1 -0
- package/dist/chunks/{menubar-g1wqqjuyyfvsim83.js → menubar-f1pilzooe5mue7c4.js} +20 -20
- package/dist/chunks/menubar-f1pilzooe5mue7c4.js.map +1 -0
- package/dist/chunks/{meter-cqkrg5axjenbsuue.js → meter-gfa1hz9fhjnvx784.js} +2 -2
- package/dist/chunks/{meter-cqkrg5axjenbsuue.js.map → meter-gfa1hz9fhjnvx784.js.map} +1 -1
- package/dist/chunks/pagination-cu5lm6p5dxuycta4.js +243 -0
- package/dist/chunks/pagination-cu5lm6p5dxuycta4.js.map +1 -0
- package/dist/chunks/{popover-jurf834u2uywluux.js → popover-h300w4vit0s2ayej.js} +31 -28
- package/dist/chunks/popover-h300w4vit0s2ayej.js.map +1 -0
- package/dist/chunks/portal-provider-hwmkdmkpvct0cb76.js +18 -0
- package/dist/chunks/portal-provider-hwmkdmkpvct0cb76.js.map +1 -0
- package/dist/chunks/{radio-l9dzm6sohcvvrsdc.js → radio-jouttv89lbvhs55r.js} +47 -50
- package/dist/chunks/radio-jouttv89lbvhs55r.js.map +1 -0
- package/dist/chunks/select-kva5ru5f673kah1m.js +179 -0
- package/dist/chunks/select-kva5ru5f673kah1m.js.map +1 -0
- package/dist/chunks/{sensitive-input-lvtccf3iqc06lj7b.js → sensitive-input-hd4tpqkzifad1yca.js} +90 -84
- package/dist/chunks/sensitive-input-hd4tpqkzifad1yca.js.map +1 -0
- package/dist/chunks/{sidebar-l6rk9o5qf8k5vth1.js → sidebar-hljy3ssm8itc0ucx.js} +5 -5
- package/dist/chunks/sidebar-hljy3ssm8itc0ucx.js.map +1 -0
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js +33 -0
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js.map +1 -0
- package/dist/chunks/surface-cilvbyhmyujz1bee.js +36 -0
- package/dist/chunks/surface-cilvbyhmyujz1bee.js.map +1 -0
- package/dist/chunks/switch-ihaydbzem62bey4p.js +243 -0
- package/dist/chunks/switch-ihaydbzem62bey4p.js.map +1 -0
- package/dist/chunks/table-inweecadl3her7pd.js +183 -0
- package/dist/chunks/table-inweecadl3her7pd.js.map +1 -0
- package/dist/chunks/tabs-e7eh7l3mpk3xgmwq.js +92 -0
- package/dist/chunks/{tabs-n0t7iro7wr0pzgk2.js.map → tabs-e7eh7l3mpk3xgmwq.js.map} +1 -1
- package/dist/chunks/{text-gzt92mlji1lug13d.js → text-nmyi1rkwdj37f30f.js} +24 -22
- package/dist/chunks/text-nmyi1rkwdj37f30f.js.map +1 -0
- package/dist/chunks/{toast-r9ajsces7xp8l85w.js → toast-bpz6iaq54u9jmuu8.js} +62 -60
- package/dist/chunks/toast-bpz6iaq54u9jmuu8.js.map +1 -0
- package/dist/chunks/toml-nczb2z9n0o23o3ci.js +8 -0
- package/dist/chunks/toml-nczb2z9n0o23o3ci.js.map +1 -0
- package/dist/chunks/{tooltip-hnc71tg4gz2gpcvc.js → tooltip-belkznz8t8333h5f.js} +28 -21
- package/dist/chunks/tooltip-belkznz8t8333h5f.js.map +1 -0
- package/dist/chunks/{vendor-base-ui-ccr5l0ynrievzzv3.js → vendor-base-ui-k7bzesq81ie36nya.js} +55 -51
- package/dist/chunks/{vendor-base-ui-ccr5l0ynrievzzv3.js.map → vendor-base-ui-k7bzesq81ie36nya.js.map} +1 -1
- package/dist/code/server.js +10 -9
- package/dist/code/server.js.map +1 -1
- package/dist/code.js +3 -2
- package/dist/code.js.map +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/breadcrumbs.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/clipboard-text.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/flow.js +5 -4
- package/dist/components/flow.js.map +1 -1
- package/dist/components/input.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/layer-card.js +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/loader.js +2 -2
- package/dist/components/menubar.js +1 -1
- package/dist/components/meter.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sensitive-input.js +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/toast.js +2 -2
- package/dist/components/tooltip.js +1 -1
- package/dist/index.js +76 -74
- package/dist/index.js.map +1 -1
- package/dist/primitives/accordion.js +1 -1
- package/dist/primitives/alert-dialog.js +1 -1
- package/dist/primitives/autocomplete.js +1 -1
- package/dist/primitives/avatar.js +1 -1
- package/dist/primitives/button.js +1 -1
- package/dist/primitives/checkbox-group.js +1 -1
- package/dist/primitives/checkbox.js +1 -1
- package/dist/primitives/collapsible.js +1 -1
- package/dist/primitives/combobox.js +1 -1
- package/dist/primitives/context-menu.js +1 -1
- package/dist/primitives/csp-provider.js +1 -1
- package/dist/primitives/dialog.js +1 -1
- package/dist/primitives/direction-provider.js +1 -1
- package/dist/primitives/drawer.js +1 -1
- package/dist/primitives/field.js +1 -1
- package/dist/primitives/fieldset.js +1 -1
- package/dist/primitives/form.js +1 -1
- package/dist/primitives/input.js +1 -1
- package/dist/primitives/menu.js +1 -1
- package/dist/primitives/menubar.js +1 -1
- package/dist/primitives/meter.js +1 -1
- package/dist/primitives/navigation-menu.js +1 -1
- package/dist/primitives/number-field.js +1 -1
- package/dist/primitives/popover.js +1 -1
- package/dist/primitives/preview-card.js +1 -1
- package/dist/primitives/progress.js +1 -1
- package/dist/primitives/radio-group.js +1 -1
- package/dist/primitives/radio.js +1 -1
- package/dist/primitives/scroll-area.js +1 -1
- package/dist/primitives/select.js +1 -1
- package/dist/primitives/separator.js +1 -1
- package/dist/primitives/slider.js +1 -1
- package/dist/primitives/switch.js +1 -1
- package/dist/primitives/tabs.js +1 -1
- package/dist/primitives/toast.js +1 -1
- package/dist/primitives/toggle-group.js +1 -1
- package/dist/primitives/toggle.js +1 -1
- package/dist/primitives/toolbar.js +1 -1
- package/dist/primitives/tooltip.js +1 -1
- package/dist/primitives.js +1 -1
- package/dist/scripts/theme-generator/config.d.ts.map +1 -1
- package/dist/scripts/theme-generator/config.js +226 -43
- package/dist/scripts/theme-generator/config.js.map +1 -1
- package/dist/src/code/provider.d.ts.map +1 -1
- package/dist/src/code/server.d.ts.map +1 -1
- package/dist/src/code/types.d.ts +1 -1
- package/dist/src/code/types.d.ts.map +1 -1
- package/dist/src/components/badge/badge.d.ts +76 -21
- package/dist/src/components/badge/badge.d.ts.map +1 -1
- package/dist/src/components/banner/banner.d.ts +5 -3
- package/dist/src/components/banner/banner.d.ts.map +1 -1
- package/dist/src/components/button/button.d.ts +4 -2
- package/dist/src/components/button/button.d.ts.map +1 -1
- package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/src/components/clipboard-text/clipboard-text.d.ts +2 -0
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
- package/dist/src/components/code/code.d.ts.map +1 -1
- package/dist/src/components/combobox/combobox.d.ts +8 -1
- package/dist/src/components/combobox/combobox.d.ts.map +1 -1
- package/dist/src/components/command-palette/command-palette.d.ts +9 -2
- package/dist/src/components/command-palette/command-palette.d.ts.map +1 -1
- package/dist/src/components/command-palette/types.d.ts +7 -0
- package/dist/src/components/command-palette/types.d.ts.map +1 -1
- package/dist/src/components/dialog/dialog.d.ts +8 -1
- package/dist/src/components/dialog/dialog.d.ts.map +1 -1
- package/dist/src/components/dropdown/dropdown.d.ts +17 -2
- package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
- package/dist/src/components/flow/diagram.d.ts.map +1 -1
- package/dist/src/components/input/input-area.d.ts.map +1 -1
- package/dist/src/components/input/input.d.ts +1 -2
- package/dist/src/components/input/input.d.ts.map +1 -1
- package/dist/src/components/loader/loader.d.ts +7 -1
- package/dist/src/components/loader/loader.d.ts.map +1 -1
- package/dist/src/components/loader/skeleton-line.d.ts +2 -1
- package/dist/src/components/loader/skeleton-line.d.ts.map +1 -1
- package/dist/src/components/pagination/pagination.d.ts +11 -1
- package/dist/src/components/pagination/pagination.d.ts.map +1 -1
- package/dist/src/components/popover/popover.d.ts +8 -1
- package/dist/src/components/popover/popover.d.ts.map +1 -1
- package/dist/src/components/radio/radio.d.ts +1 -1
- package/dist/src/components/radio/radio.d.ts.map +1 -1
- package/dist/src/components/select/select.d.ts +74 -3
- package/dist/src/components/select/select.d.ts.map +1 -1
- package/dist/src/components/sensitive-input/sensitive-input.d.ts +1 -1
- package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
- package/dist/src/components/surface/surface.d.ts +23 -23
- package/dist/src/components/surface/surface.d.ts.map +1 -1
- package/dist/src/components/switch/switch.d.ts.map +1 -1
- package/dist/src/components/table/table.d.ts +34 -2
- package/dist/src/components/table/table.d.ts.map +1 -1
- package/dist/src/components/tabs/tabs.d.ts.map +1 -1
- package/dist/src/components/text/text.d.ts +5 -0
- package/dist/src/components/text/text.d.ts.map +1 -1
- package/dist/src/components/toast/toast.d.ts +16 -9
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/src/components/tooltip/tooltip.d.ts +21 -6
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/portal-provider.d.ts +56 -0
- package/dist/src/utils/portal-provider.d.ts.map +1 -0
- package/dist/styles/kumo-binding.css +52 -46
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/styles/theme-fedramp.css +6 -6
- package/dist/styles/theme-kumo.css +183 -64
- package/dist/utils.js +8 -6
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- package/scripts/component-registry/index.test.ts +4 -4
- package/scripts/component-registry/metadata.ts +3 -3
- package/scripts/theme-generator/config.ts +236 -43
- package/dist/chunks/Legend-bov5dqf08wemc2qj.js.map +0 -1
- package/dist/chunks/badge-mrshucy2530o70cq.js +0 -56
- package/dist/chunks/badge-mrshucy2530o70cq.js.map +0 -1
- package/dist/chunks/banner-vzdjbqsb6em7tmdk.js +0 -75
- package/dist/chunks/banner-vzdjbqsb6em7tmdk.js.map +0 -1
- package/dist/chunks/button-j0hi0afn33w9lxgi.js.map +0 -1
- package/dist/chunks/checkbox-lawmt1894wr6rpgi.js.map +0 -1
- package/dist/chunks/clipboard-text-ohx8kkpxisz382rj.js.map +0 -1
- package/dist/chunks/code-liq1g6f5lhee305d.js.map +0 -1
- package/dist/chunks/combobox-ft0u7rfaxawk0r0c.js.map +0 -1
- package/dist/chunks/command-palette-b31nq4wk7o7gx4sa.js.map +0 -1
- package/dist/chunks/dialog-l5tmwxrzp9g83jmw.js.map +0 -1
- package/dist/chunks/dropdown-icy3xatdwhzr4une.js.map +0 -1
- package/dist/chunks/input-area-jko15sbc6zeage3l.js +0 -74
- package/dist/chunks/input-area-jko15sbc6zeage3l.js.map +0 -1
- package/dist/chunks/input-c8jmidy7gdqfiky1.js.map +0 -1
- package/dist/chunks/input-group-cjsy8kh4vf9312xl.js.map +0 -1
- package/dist/chunks/loader-m5wfmqwgucrr4i5v.js.map +0 -1
- package/dist/chunks/menubar-g1wqqjuyyfvsim83.js.map +0 -1
- package/dist/chunks/pagination-e3dp8bd80s35f7sd.js +0 -224
- package/dist/chunks/pagination-e3dp8bd80s35f7sd.js.map +0 -1
- package/dist/chunks/popover-jurf834u2uywluux.js.map +0 -1
- package/dist/chunks/radio-l9dzm6sohcvvrsdc.js.map +0 -1
- package/dist/chunks/select-hnt87e3cfos48qql.js +0 -130
- package/dist/chunks/select-hnt87e3cfos48qql.js.map +0 -1
- package/dist/chunks/sensitive-input-lvtccf3iqc06lj7b.js.map +0 -1
- package/dist/chunks/sidebar-l6rk9o5qf8k5vth1.js.map +0 -1
- package/dist/chunks/skeleton-line-1j5exu6vv07mmhfb.js +0 -28
- package/dist/chunks/skeleton-line-1j5exu6vv07mmhfb.js.map +0 -1
- package/dist/chunks/surface-dhshylwccuaz91d1.js +0 -21
- package/dist/chunks/surface-dhshylwccuaz91d1.js.map +0 -1
- package/dist/chunks/switch-fukrbip86khvqjn7.js +0 -241
- package/dist/chunks/switch-fukrbip86khvqjn7.js.map +0 -1
- package/dist/chunks/table-orfgzwvxh8yr90dk.js +0 -155
- package/dist/chunks/table-orfgzwvxh8yr90dk.js.map +0 -1
- package/dist/chunks/tabs-n0t7iro7wr0pzgk2.js +0 -86
- package/dist/chunks/text-gzt92mlji1lug13d.js.map +0 -1
- package/dist/chunks/toast-r9ajsces7xp8l85w.js.map +0 -1
- package/dist/chunks/tooltip-hnc71tg4gz2gpcvc.js.map +0 -1
package/ai/component-registry.md
CHANGED
|
@@ -17,12 +17,23 @@ Small status label for categorizing or highlighting content.
|
|
|
17
17
|
**Props:**
|
|
18
18
|
|
|
19
19
|
- `variant`: enum [default: primary]
|
|
20
|
-
- `"primary"`:
|
|
21
|
-
- `"secondary"`:
|
|
22
|
-
- `"
|
|
23
|
-
- `"
|
|
24
|
-
- `"
|
|
20
|
+
- `"primary"`: Primary badge
|
|
21
|
+
- `"secondary"`: Secondary badge
|
|
22
|
+
- `"error"`: Error badge
|
|
23
|
+
- `"warning"`: Warning badge
|
|
24
|
+
- `"success"`: Success badge
|
|
25
|
+
- `"destructive"`: Deprecated. Use red instead.
|
|
26
|
+
- `"info"`: Info badge
|
|
25
27
|
- `"beta"`: Indicates beta or experimental features
|
|
28
|
+
- `"outline"`: Bordered badge with transparent background
|
|
29
|
+
- `"red"`: Red badge
|
|
30
|
+
- `"green"`: Green badge
|
|
31
|
+
- `"neutral"`: Neutral badge
|
|
32
|
+
- `"orange"`: Orange badge
|
|
33
|
+
- `"purple"`: Purple badge
|
|
34
|
+
- `"teal"`: Teal badge
|
|
35
|
+
- `"teal-subtle"`: Subtle teal badge
|
|
36
|
+
- `"blue"`: Blue badge
|
|
26
37
|
- `className`: string
|
|
27
38
|
Additional CSS classes merged via `cn()`.
|
|
28
39
|
- `children`: ReactNode
|
|
@@ -30,7 +41,7 @@ Small status label for categorizing or highlighting content.
|
|
|
30
41
|
|
|
31
42
|
**Colors (kumo tokens used):**
|
|
32
43
|
|
|
33
|
-
`bg-kumo-
|
|
44
|
+
`bg-kumo-badge-blue`, `bg-kumo-badge-green`, `bg-kumo-badge-inverted`, `bg-kumo-badge-neutral`, `bg-kumo-badge-orange`, `bg-kumo-badge-purple`, `bg-kumo-badge-red`, `bg-kumo-badge-teal`, `bg-kumo-badge-teal-subtle`, `bg-kumo-danger-tint`, `bg-kumo-fill`, `bg-kumo-info-tint`, `bg-kumo-success-tint`, `bg-kumo-warning-tint`, `border-kumo-brand`, `border-kumo-fill`, `text-kumo-badge-inverted`, `text-kumo-badge-neutral-subtle`, `text-kumo-badge-teal-subtle`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-info`, `text-kumo-link`, `text-kumo-success`, `text-kumo-warning`
|
|
34
45
|
|
|
35
46
|
**Examples:**
|
|
36
47
|
|
|
@@ -38,21 +49,31 @@ Small status label for categorizing or highlighting content.
|
|
|
38
49
|
<div className="flex flex-wrap items-center gap-2">
|
|
39
50
|
<Badge variant="primary">Primary</Badge>
|
|
40
51
|
<Badge variant="secondary">Secondary</Badge>
|
|
41
|
-
<Badge variant="
|
|
52
|
+
<Badge variant="error">Error</Badge>
|
|
42
53
|
<Badge variant="success">Success</Badge>
|
|
54
|
+
<Badge variant="warning">Warning</Badge>
|
|
55
|
+
<Badge variant="info">Info</Badge>
|
|
43
56
|
<Badge variant="outline">Outline</Badge>
|
|
44
57
|
<Badge variant="beta">Beta</Badge>
|
|
45
58
|
</div>
|
|
46
59
|
```
|
|
47
60
|
|
|
48
61
|
```tsx
|
|
49
|
-
<
|
|
62
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
63
|
+
<Badge variant="neutral">Neutral</Badge>
|
|
64
|
+
<Badge variant="red">Red</Badge>
|
|
65
|
+
<Badge variant="orange">Orange</Badge>
|
|
66
|
+
<Badge variant="green">Green</Badge>
|
|
67
|
+
<Badge variant="teal">Teal</Badge>
|
|
68
|
+
<Badge variant="blue">Blue</Badge>
|
|
69
|
+
<Badge variant="purple">Purple</Badge>
|
|
70
|
+
</div>
|
|
50
71
|
```
|
|
51
72
|
|
|
52
73
|
```tsx
|
|
53
74
|
<p className="flex items-center gap-2">
|
|
54
75
|
Workers
|
|
55
|
-
<Badge variant="
|
|
76
|
+
<Badge variant="secondary">New</Badge>
|
|
56
77
|
</p>
|
|
57
78
|
```
|
|
58
79
|
|
|
@@ -77,6 +98,8 @@ Full-width message bar for informational, warning, or error notices. Supports st
|
|
|
77
98
|
Primary heading text for the banner. Use for i18n string injection.
|
|
78
99
|
- `description`: ReactNode
|
|
79
100
|
Secondary description text displayed below the title. Use for i18n string injection.
|
|
101
|
+
- `action`: ReactNode
|
|
102
|
+
Action slot rendered at the trailing end of the banner (e.g. a CTA button or link). Only used in structured mode (with `title` or `description`).
|
|
80
103
|
- `text`: string
|
|
81
104
|
- `children`: ReactNode
|
|
82
105
|
- `variant`: enum [default: default]
|
|
@@ -93,7 +116,7 @@ Full-width message bar for informational, warning, or error notices. Supports st
|
|
|
93
116
|
**Examples:**
|
|
94
117
|
|
|
95
118
|
```tsx
|
|
96
|
-
<div className="space-y-3">
|
|
119
|
+
<div className="w-full space-y-3">
|
|
97
120
|
<Banner
|
|
98
121
|
icon={<Info weight="fill" />}
|
|
99
122
|
title="Update available"
|
|
@@ -150,6 +173,48 @@ Full-width message bar for informational, warning, or error notices. Supports st
|
|
|
150
173
|
/>
|
|
151
174
|
```
|
|
152
175
|
|
|
176
|
+
```tsx
|
|
177
|
+
<div className="w-full space-y-3">
|
|
178
|
+
<Banner
|
|
179
|
+
icon={<Info weight="fill" />}
|
|
180
|
+
title="Update available"
|
|
181
|
+
description="A new version is ready to install."
|
|
182
|
+
action={<Button size="sm">Update now</Button>}
|
|
183
|
+
/>
|
|
184
|
+
<Banner
|
|
185
|
+
icon={<Info weight="fill" />}
|
|
186
|
+
title="Update available"
|
|
187
|
+
description="A new version is ready to install."
|
|
188
|
+
action={
|
|
189
|
+
<Button
|
|
190
|
+
size="sm"
|
|
191
|
+
variant="ghost"
|
|
192
|
+
shape="square"
|
|
193
|
+
icon={X}
|
|
194
|
+
aria-label="Dismiss"
|
|
195
|
+
/>
|
|
196
|
+
}
|
|
197
|
+
/>
|
|
198
|
+
</div>
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```tsx
|
|
202
|
+
<Banner
|
|
203
|
+
icon={<Warning weight="fill" />}
|
|
204
|
+
variant="alert"
|
|
205
|
+
title="Session expiring"
|
|
206
|
+
description="Your session will expire in 5 minutes."
|
|
207
|
+
action={
|
|
208
|
+
<>
|
|
209
|
+
<Button size="sm" variant="secondary">
|
|
210
|
+
Dismiss
|
|
211
|
+
</Button>
|
|
212
|
+
<Button size="sm">Extend session</Button>
|
|
213
|
+
</>
|
|
214
|
+
}
|
|
215
|
+
/>
|
|
216
|
+
```
|
|
217
|
+
|
|
153
218
|
```tsx
|
|
154
219
|
<Banner icon={<Info />}>This is a simple banner using children.</Banner>
|
|
155
220
|
```
|
|
@@ -308,9 +373,9 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
|
|
|
308
373
|
Icon from `@phosphor-icons/react` or a React element. Rendered before children.
|
|
309
374
|
- `loading`: boolean
|
|
310
375
|
Shows a loading spinner and disables interaction.
|
|
376
|
+
- `title`: string
|
|
311
377
|
- `id`: string
|
|
312
378
|
- `lang`: string
|
|
313
|
-
- `title`: string
|
|
314
379
|
- `disabled`: boolean
|
|
315
380
|
- `name`: string
|
|
316
381
|
- `type`: enum
|
|
@@ -318,7 +383,7 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
|
|
|
318
383
|
|
|
319
384
|
**Colors (kumo tokens used):**
|
|
320
385
|
|
|
321
|
-
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-brand-hover`, `bg-kumo-danger`, `bg-kumo-tint`, `ring-kumo-
|
|
386
|
+
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-brand-hover`, `bg-kumo-danger`, `bg-kumo-tint`, `ring-kumo-hairline`, `ring-kumo-line`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-subtle`
|
|
322
387
|
|
|
323
388
|
**Examples:**
|
|
324
389
|
|
|
@@ -378,6 +443,21 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
|
|
|
378
443
|
</div>
|
|
379
444
|
```
|
|
380
445
|
|
|
446
|
+
```tsx
|
|
447
|
+
<div className="flex flex-wrap items-center gap-3">
|
|
448
|
+
<Button variant="secondary" title="Create a new Worker">
|
|
449
|
+
Create Worker
|
|
450
|
+
</Button>
|
|
451
|
+
<Button
|
|
452
|
+
variant="secondary"
|
|
453
|
+
shape="square"
|
|
454
|
+
icon={PlusIcon}
|
|
455
|
+
aria-label="Add item"
|
|
456
|
+
title="Add item"
|
|
457
|
+
/>
|
|
458
|
+
</div>
|
|
459
|
+
```
|
|
460
|
+
|
|
381
461
|
|
|
382
462
|
---
|
|
383
463
|
|
|
@@ -399,8 +479,8 @@ Checkbox component
|
|
|
399
479
|
|
|
400
480
|
**State Classes:**
|
|
401
481
|
- `"default"`:
|
|
402
|
-
- `focus`: `[&:focus-within>span]:ring-kumo-
|
|
403
|
-
- `hover`: `[&:hover>span]:ring-kumo-
|
|
482
|
+
- `focus`: `[&:focus-within>span]:ring-kumo-hairline`
|
|
483
|
+
- `hover`: `[&:hover>span]:ring-kumo-hairline`
|
|
404
484
|
- `label`: ReactNode
|
|
405
485
|
Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node
|
|
406
486
|
- `labelTooltip`: ReactNode
|
|
@@ -424,7 +504,7 @@ Checkbox component
|
|
|
424
504
|
|
|
425
505
|
**Colors (kumo tokens used):**
|
|
426
506
|
|
|
427
|
-
`bg-kumo-base`, `bg-kumo-contrast`, `
|
|
507
|
+
`bg-kumo-base`, `bg-kumo-contrast`, `ring-kumo-contrast`, `ring-kumo-danger`, `ring-kumo-hairline`, `ring-kumo-line`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-inverse`, `text-kumo-subtle`
|
|
428
508
|
|
|
429
509
|
**Styling:**
|
|
430
510
|
|
|
@@ -435,8 +515,8 @@ Checkbox component
|
|
|
435
515
|
- `checked`: `bg-kumo-contrast`, `text-kumo-inverse`
|
|
436
516
|
- `indeterminate`: `bg-kumo-contrast`, `text-kumo-inverse`
|
|
437
517
|
- `error`: `ring-kumo-danger`
|
|
438
|
-
- `hover`: `ring-kumo-
|
|
439
|
-
- `focus`: `ring-kumo-
|
|
518
|
+
- `hover`: `ring-kumo-hairline`
|
|
519
|
+
- `focus`: `ring-kumo-hairline`
|
|
440
520
|
- `disabled`: `opacity-50`, `cursor-not-allowed`
|
|
441
521
|
- **Icons:**
|
|
442
522
|
- `ph-check` (checked) size 12
|
|
@@ -547,6 +627,8 @@ Read-only text field with a one-click copy-to-clipboard button.
|
|
|
547
627
|
- `"lg"`: Large clipboard text for prominent display
|
|
548
628
|
- `text`: string (required)
|
|
549
629
|
The text to display and copy to clipboard.
|
|
630
|
+
- `textToCopy`: string
|
|
631
|
+
If provided, this text will be copied to clipboard instead of the `text` prop.
|
|
550
632
|
- `className`: string
|
|
551
633
|
Additional CSS classes merged via `cn()`.
|
|
552
634
|
- `tooltip`: object
|
|
@@ -610,6 +692,13 @@ Read-only text field with a one-click copy-to-clipboard button.
|
|
|
610
692
|
<ClipboardText text="0c239dd2" />
|
|
611
693
|
```
|
|
612
694
|
|
|
695
|
+
```tsx
|
|
696
|
+
<ClipboardText
|
|
697
|
+
text="sk_live_***********"
|
|
698
|
+
textToCopy="sk_live_51H8_abc123"
|
|
699
|
+
/>
|
|
700
|
+
```
|
|
701
|
+
|
|
613
702
|
```tsx
|
|
614
703
|
<ClipboardText
|
|
615
704
|
text="npx kumo add button"
|
|
@@ -1204,6 +1293,7 @@ Props:
|
|
|
1204
1293
|
- `alignOffset`: ComboboxBase.Positioner.Props["alignOffset"]
|
|
1205
1294
|
- `side`: ComboboxBase.Positioner.Props["side"]
|
|
1206
1295
|
- `sideOffset`: ComboboxBase.Positioner.Props["sideOffset"]
|
|
1296
|
+
- `container`: PortalContainer
|
|
1207
1297
|
|
|
1208
1298
|
#### Combobox.TriggerValue
|
|
1209
1299
|
|
|
@@ -1398,6 +1488,42 @@ Usage:
|
|
|
1398
1488
|
</div>
|
|
1399
1489
|
```
|
|
1400
1490
|
|
|
1491
|
+
```tsx
|
|
1492
|
+
<div className="flex flex-wrap gap-4 items-start">
|
|
1493
|
+
<Combobox value="Apple" items={fruits} disabled>
|
|
1494
|
+
<Combobox.TriggerInput
|
|
1495
|
+
className="w-[200px]"
|
|
1496
|
+
placeholder="Select fruit"
|
|
1497
|
+
/>
|
|
1498
|
+
<Combobox.Content>
|
|
1499
|
+
<Combobox.Empty />
|
|
1500
|
+
<Combobox.List>
|
|
1501
|
+
{(item: string) => (
|
|
1502
|
+
<Combobox.Item key={item} value={item}>
|
|
1503
|
+
{item}
|
|
1504
|
+
</Combobox.Item>
|
|
1505
|
+
)}
|
|
1506
|
+
</Combobox.List>
|
|
1507
|
+
</Combobox.Content>
|
|
1508
|
+
</Combobox>
|
|
1509
|
+
|
|
1510
|
+
<Combobox value={languages[0]} items={languages} disabled>
|
|
1511
|
+
<Combobox.TriggerValue className="w-[200px]" />
|
|
1512
|
+
<Combobox.Content>
|
|
1513
|
+
<Combobox.Input placeholder="Search" />
|
|
1514
|
+
<Combobox.Empty />
|
|
1515
|
+
<Combobox.List>
|
|
1516
|
+
{(item: Language) => (
|
|
1517
|
+
<Combobox.Item key={item.value} value={item}>
|
|
1518
|
+
{item.emoji} {item.label}
|
|
1519
|
+
</Combobox.Item>
|
|
1520
|
+
)}
|
|
1521
|
+
</Combobox.List>
|
|
1522
|
+
</Combobox.Content>
|
|
1523
|
+
</Combobox>
|
|
1524
|
+
</div>
|
|
1525
|
+
```
|
|
1526
|
+
|
|
1401
1527
|
```tsx
|
|
1402
1528
|
<div className="w-80">
|
|
1403
1529
|
<Combobox
|
|
@@ -1525,6 +1651,8 @@ CommandPalette — accessible command palette / spotlight search overlay. Compo
|
|
|
1525
1651
|
Whether the dialog is open
|
|
1526
1652
|
- `children`: ReactNode
|
|
1527
1653
|
Child content - typically one or more Panel components
|
|
1654
|
+
- `container`: PortalContainer
|
|
1655
|
+
Container element for the portal. Use this to render the command palette inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
|
|
1528
1656
|
|
|
1529
1657
|
**Colors (kumo tokens used):**
|
|
1530
1658
|
|
|
@@ -2006,6 +2134,8 @@ Dialog component
|
|
|
2006
2134
|
Additional CSS classes merged via `cn()`.
|
|
2007
2135
|
- `children`: ReactNode
|
|
2008
2136
|
Dialog content (typically Title, Description, Close, and action buttons).
|
|
2137
|
+
- `container`: PortalContainer
|
|
2138
|
+
Container element for the portal. Use this to render the dialog inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
|
|
2009
2139
|
- `size`: enum [default: base]
|
|
2010
2140
|
- `"base"`: Default dialog width
|
|
2011
2141
|
- `"sm"`: Small dialog for simple confirmations
|
|
@@ -2014,7 +2144,7 @@ Dialog component
|
|
|
2014
2144
|
|
|
2015
2145
|
**Colors (kumo tokens used):**
|
|
2016
2146
|
|
|
2017
|
-
`bg-kumo-base`, `text-kumo-default`
|
|
2147
|
+
`bg-kumo-base`, `bg-kumo-recessed`, `text-kumo-default`
|
|
2018
2148
|
|
|
2019
2149
|
**Styling:**
|
|
2020
2150
|
|
|
@@ -2877,13 +3007,13 @@ Input component
|
|
|
2877
3007
|
|
|
2878
3008
|
**State Classes:**
|
|
2879
3009
|
- `"default"`:
|
|
2880
|
-
- `focus`: `focus:ring-kumo-
|
|
3010
|
+
- `focus`: `focus:ring-kumo-hairline`
|
|
2881
3011
|
- `"error"`:
|
|
2882
3012
|
- `focus`: `focus:ring-kumo-danger`
|
|
2883
3013
|
|
|
2884
3014
|
**Colors (kumo tokens used):**
|
|
2885
3015
|
|
|
2886
|
-
`bg-kumo-control`, `ring-kumo-danger`, `ring-kumo-
|
|
3016
|
+
`bg-kumo-control`, `ring-kumo-danger`, `ring-kumo-hairline`, `ring-kumo-line`, `text-kumo-default`, `text-kumo-subtle`
|
|
2887
3017
|
|
|
2888
3018
|
**Styling:**
|
|
2889
3019
|
|
|
@@ -2904,7 +3034,6 @@ Input component
|
|
|
2904
3034
|
label="Email"
|
|
2905
3035
|
placeholder="you@example.com"
|
|
2906
3036
|
value="invalid-email"
|
|
2907
|
-
variant="error"
|
|
2908
3037
|
error="Please enter a valid email address"
|
|
2909
3038
|
/>
|
|
2910
3039
|
```
|
|
@@ -2914,7 +3043,6 @@ Input component
|
|
|
2914
3043
|
label="Password"
|
|
2915
3044
|
type="password"
|
|
2916
3045
|
value="short"
|
|
2917
|
-
variant="error"
|
|
2918
3046
|
error={{
|
|
2919
3047
|
message: "Password must be at least 8 characters",
|
|
2920
3048
|
match: "tooShort",
|
|
@@ -3079,7 +3207,7 @@ LayerCard component
|
|
|
3079
3207
|
|
|
3080
3208
|
**Colors (kumo tokens used):**
|
|
3081
3209
|
|
|
3082
|
-
`bg-kumo-base`, `bg-kumo-elevated`, `
|
|
3210
|
+
`bg-kumo-base`, `bg-kumo-elevated`, `ring-kumo-fill`, `ring-kumo-line`, `text-kumo-strong`
|
|
3083
3211
|
|
|
3084
3212
|
**Styling:**
|
|
3085
3213
|
|
|
@@ -3325,7 +3453,7 @@ MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation.
|
|
|
3325
3453
|
|
|
3326
3454
|
**Colors (kumo tokens used):**
|
|
3327
3455
|
|
|
3328
|
-
`bg-kumo-base`, `bg-kumo-
|
|
3456
|
+
`bg-kumo-base`, `bg-kumo-recessed`, `border-kumo-fill`, `border-kumo-recessed`
|
|
3329
3457
|
|
|
3330
3458
|
**Styling:**
|
|
3331
3459
|
|
|
@@ -3445,7 +3573,7 @@ Pagination component
|
|
|
3445
3573
|
|
|
3446
3574
|
**Colors (kumo tokens used):**
|
|
3447
3575
|
|
|
3448
|
-
`border-kumo-line`, `text-kumo-strong`
|
|
3576
|
+
`border-kumo-line`, `ring-kumo-line`, `text-kumo-strong`
|
|
3449
3577
|
|
|
3450
3578
|
**Styling:**
|
|
3451
3579
|
|
|
@@ -3480,6 +3608,8 @@ Props:
|
|
|
3480
3608
|
Controls sub-component
|
|
3481
3609
|
|
|
3482
3610
|
Props:
|
|
3611
|
+
- `Note`: ** `"dropdown"` renders an option for every page (required)
|
|
3612
|
+
- `pageSelector`: "input" | "dropdown"
|
|
3483
3613
|
- `className`: string
|
|
3484
3614
|
|
|
3485
3615
|
#### Pagination.Separator
|
|
@@ -3559,6 +3689,26 @@ Props:
|
|
|
3559
3689
|
</Pagination>
|
|
3560
3690
|
```
|
|
3561
3691
|
|
|
3692
|
+
```tsx
|
|
3693
|
+
<Pagination
|
|
3694
|
+
page={page}
|
|
3695
|
+
setPage={setPage}
|
|
3696
|
+
perPage={perPage}
|
|
3697
|
+
totalCount={500}
|
|
3698
|
+
>
|
|
3699
|
+
<Pagination.Info />
|
|
3700
|
+
<Pagination.Separator />
|
|
3701
|
+
<Pagination.PageSize
|
|
3702
|
+
value={perPage}
|
|
3703
|
+
onChange={(size) => {
|
|
3704
|
+
setPerPage(size);
|
|
3705
|
+
setPage(1);
|
|
3706
|
+
}}
|
|
3707
|
+
/>
|
|
3708
|
+
<Pagination.Controls pageSelector="dropdown" />
|
|
3709
|
+
</Pagination>
|
|
3710
|
+
```
|
|
3711
|
+
|
|
3562
3712
|
```tsx
|
|
3563
3713
|
<Pagination
|
|
3564
3714
|
page={page}
|
|
@@ -3822,7 +3972,7 @@ Radio — radio button group for single-select choices. Compound component: `Ra
|
|
|
3822
3972
|
|
|
3823
3973
|
**Colors (kumo tokens used):**
|
|
3824
3974
|
|
|
3825
|
-
`bg-kumo-base`, `bg-kumo-contrast`, `bg-kumo-tint`, `border-kumo-danger`, `border-kumo-
|
|
3975
|
+
`bg-kumo-base`, `bg-kumo-contrast`, `bg-kumo-tint`, `border-kumo-danger`, `border-kumo-hairline`, `border-kumo-interact`, `ring-kumo-danger`, `ring-kumo-hairline`, `ring-kumo-line`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-subtle`
|
|
3826
3976
|
|
|
3827
3977
|
**Sub-Components:**
|
|
3828
3978
|
|
|
@@ -4082,7 +4232,7 @@ Select component
|
|
|
4082
4232
|
|
|
4083
4233
|
**Colors (kumo tokens used):**
|
|
4084
4234
|
|
|
4085
|
-
`bg-kumo-base`, `bg-kumo-tint`, `ring-kumo-
|
|
4235
|
+
`bg-kumo-base`, `bg-kumo-line`, `bg-kumo-tint`, `ring-kumo-hairline`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-subtle`
|
|
4086
4236
|
|
|
4087
4237
|
**Styling:**
|
|
4088
4238
|
|
|
@@ -4095,6 +4245,18 @@ This is a compound component. Use these sub-components:
|
|
|
4095
4245
|
|
|
4096
4246
|
Option sub-component
|
|
4097
4247
|
|
|
4248
|
+
#### Select.Group
|
|
4249
|
+
|
|
4250
|
+
Group sub-component
|
|
4251
|
+
|
|
4252
|
+
#### Select.GroupLabel
|
|
4253
|
+
|
|
4254
|
+
GroupLabel sub-component
|
|
4255
|
+
|
|
4256
|
+
#### Select.Separator
|
|
4257
|
+
|
|
4258
|
+
Separator sub-component
|
|
4259
|
+
|
|
4098
4260
|
|
|
4099
4261
|
**Examples:**
|
|
4100
4262
|
|
|
@@ -4251,7 +4413,7 @@ Option sub-component
|
|
|
4251
4413
|
<span className="flex items-center gap-2">
|
|
4252
4414
|
<span>Issue Types</span>
|
|
4253
4415
|
{selected.length > 0 && (
|
|
4254
|
-
<Badge variant="
|
|
4416
|
+
<Badge variant="neutral">{selected.length}</Badge>
|
|
4255
4417
|
)}
|
|
4256
4418
|
</span>
|
|
4257
4419
|
)}
|
|
@@ -4289,6 +4451,93 @@ Option sub-component
|
|
|
4289
4451
|
</Select>
|
|
4290
4452
|
```
|
|
4291
4453
|
|
|
4454
|
+
```tsx
|
|
4455
|
+
<Select
|
|
4456
|
+
label="Deployment Region"
|
|
4457
|
+
placeholder="Choose a region..."
|
|
4458
|
+
className="w-[250px]"
|
|
4459
|
+
value={value}
|
|
4460
|
+
onValueChange={(v) => setValue(v as string | null)}
|
|
4461
|
+
>
|
|
4462
|
+
<Select.Option value="us-east">US East</Select.Option>
|
|
4463
|
+
<Select.Option value="us-west">US West</Select.Option>
|
|
4464
|
+
<Select.Option value="eu-west" disabled>
|
|
4465
|
+
EU West
|
|
4466
|
+
</Select.Option>
|
|
4467
|
+
<Select.Option value="ap-south" disabled>
|
|
4468
|
+
AP South
|
|
4469
|
+
</Select.Option>
|
|
4470
|
+
</Select>
|
|
4471
|
+
```
|
|
4472
|
+
|
|
4473
|
+
```tsx
|
|
4474
|
+
<Select
|
|
4475
|
+
label="Food"
|
|
4476
|
+
placeholder="Pick a food..."
|
|
4477
|
+
className="w-[220px]"
|
|
4478
|
+
value={value}
|
|
4479
|
+
onValueChange={(v) => setValue(v as string | null)}
|
|
4480
|
+
>
|
|
4481
|
+
<Select.Group>
|
|
4482
|
+
<Select.GroupLabel>Fruits</Select.GroupLabel>
|
|
4483
|
+
<Select.Option value="apple">Apple</Select.Option>
|
|
4484
|
+
<Select.Option value="banana">Banana</Select.Option>
|
|
4485
|
+
<Select.Option value="cherry">Cherry</Select.Option>
|
|
4486
|
+
</Select.Group>
|
|
4487
|
+
<Select.Separator />
|
|
4488
|
+
<Select.Group>
|
|
4489
|
+
<Select.GroupLabel>Vegetables</Select.GroupLabel>
|
|
4490
|
+
<Select.Option value="carrot">Carrot</Select.Option>
|
|
4491
|
+
<Select.Option value="broccoli">Broccoli</Select.Option>
|
|
4492
|
+
<Select.Option value="spinach">Spinach</Select.Option>
|
|
4493
|
+
</Select.Group>
|
|
4494
|
+
</Select>
|
|
4495
|
+
```
|
|
4496
|
+
|
|
4497
|
+
```tsx
|
|
4498
|
+
<Select
|
|
4499
|
+
label="Server Region"
|
|
4500
|
+
placeholder="Select a region..."
|
|
4501
|
+
className="w-[260px]"
|
|
4502
|
+
value={value}
|
|
4503
|
+
onValueChange={(v) => setValue(v as string | null)}
|
|
4504
|
+
>
|
|
4505
|
+
<Select.Group>
|
|
4506
|
+
<Select.GroupLabel>Available</Select.GroupLabel>
|
|
4507
|
+
<Select.Option value="us-east-1">US East (N. Virginia)</Select.Option>
|
|
4508
|
+
<Select.Option value="us-west-2">US West (Oregon)</Select.Option>
|
|
4509
|
+
<Select.Option value="eu-west-1">EU West (Ireland)</Select.Option>
|
|
4510
|
+
</Select.Group>
|
|
4511
|
+
<Select.Separator />
|
|
4512
|
+
<Select.Group>
|
|
4513
|
+
<Select.GroupLabel>Unavailable</Select.GroupLabel>
|
|
4514
|
+
<Select.Option value="ap-south-1" disabled>
|
|
4515
|
+
AP South (Mumbai)
|
|
4516
|
+
</Select.Option>
|
|
4517
|
+
<Select.Option value="sa-east-1" disabled>
|
|
4518
|
+
SA East (São Paulo)
|
|
4519
|
+
</Select.Option>
|
|
4520
|
+
</Select.Group>
|
|
4521
|
+
</Select>
|
|
4522
|
+
```
|
|
4523
|
+
|
|
4524
|
+
```tsx
|
|
4525
|
+
<Select
|
|
4526
|
+
label="Long List Select"
|
|
4527
|
+
description="Tests scrolling behavior with many options"
|
|
4528
|
+
placeholder="Choose an option..."
|
|
4529
|
+
className="w-[220px]"
|
|
4530
|
+
value={value}
|
|
4531
|
+
onValueChange={(v) => setValue(v as string | null)}
|
|
4532
|
+
>
|
|
4533
|
+
{longListItems.map((item) => (
|
|
4534
|
+
<Select.Option key={item.value} value={item.value}>
|
|
4535
|
+
{item.label}
|
|
4536
|
+
</Select.Option>
|
|
4537
|
+
))}
|
|
4538
|
+
</Select>
|
|
4539
|
+
```
|
|
4540
|
+
|
|
4292
4541
|
|
|
4293
4542
|
---
|
|
4294
4543
|
|
|
@@ -4343,7 +4592,7 @@ Password/secret input that masks its value by default and reveals on click. Incl
|
|
|
4343
4592
|
|
|
4344
4593
|
**Colors (kumo tokens used):**
|
|
4345
4594
|
|
|
4346
|
-
`bg-kumo-brand`, `bg-kumo-control`, `outline-kumo-
|
|
4595
|
+
`bg-kumo-brand`, `bg-kumo-control`, `outline-kumo-hairline`, `ring-kumo-hairline`, `text-kumo-default`, `text-kumo-subtle`
|
|
4347
4596
|
|
|
4348
4597
|
**Examples:**
|
|
4349
4598
|
|
|
@@ -4460,7 +4709,7 @@ Sidebar — responsive navigation panel with expand/collapse support. Compound
|
|
|
4460
4709
|
|
|
4461
4710
|
**Colors (kumo tokens used):**
|
|
4462
4711
|
|
|
4463
|
-
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-line`, `bg-kumo-overlay`, `bg-kumo-recessed`, `bg-kumo-tint`, `border-kumo-line`, `ring-kumo-
|
|
4712
|
+
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-line`, `bg-kumo-overlay`, `bg-kumo-recessed`, `bg-kumo-tint`, `border-kumo-line`, `ring-kumo-hairline`, `ring-kumo-line`, `text-kumo-default`, `text-kumo-strong`, `text-kumo-subtle`
|
|
4464
4713
|
|
|
4465
4714
|
**Styling:**
|
|
4466
4715
|
|
|
@@ -4895,7 +5144,7 @@ CollapsibleContent sub-component
|
|
|
4895
5144
|
|
|
4896
5145
|
### Surface
|
|
4897
5146
|
|
|
4898
|
-
Surface
|
|
5147
|
+
Polymorphic container with consistent background, shadow, and border styling. Use the `render` prop to change the underlying element: ```tsx <Surface render={<section />} className="rounded-lg p-4">Card content</Surface> ```
|
|
4899
5148
|
|
|
4900
5149
|
**Type:** component
|
|
4901
5150
|
|
|
@@ -4906,11 +5155,15 @@ Surface component
|
|
|
4906
5155
|
**Props:**
|
|
4907
5156
|
|
|
4908
5157
|
- `as`: React.ElementType
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
5158
|
+
- `render`: ReactNode
|
|
5159
|
+
Allows you to replace the component’s HTML element with a different tag, or compose it with another component.
|
|
5160
|
+
|
|
5161
|
+
Accepts a `ReactElement` or a function that returns the element to render.
|
|
4912
5162
|
- `children`: ReactNode
|
|
4913
|
-
|
|
5163
|
+
- `className`: string
|
|
5164
|
+
- `id`: string
|
|
5165
|
+
- `lang`: string
|
|
5166
|
+
- `title`: string
|
|
4914
5167
|
|
|
4915
5168
|
**Colors (kumo tokens used):**
|
|
4916
5169
|
|
|
@@ -4933,13 +5186,13 @@ Surface component
|
|
|
4933
5186
|
|
|
4934
5187
|
```tsx
|
|
4935
5188
|
<div className="flex flex-col gap-4">
|
|
4936
|
-
<Surface
|
|
5189
|
+
<Surface render={<section />} className="rounded-lg p-4">
|
|
4937
5190
|
<Text bold>As section element</Text>
|
|
4938
5191
|
</Surface>
|
|
4939
|
-
<Surface
|
|
5192
|
+
<Surface render={<article />} className="rounded-lg p-4">
|
|
4940
5193
|
<Text bold>As article element</Text>
|
|
4941
5194
|
</Surface>
|
|
4942
|
-
<Surface
|
|
5195
|
+
<Surface render={<aside />} className="rounded-lg p-4">
|
|
4943
5196
|
<Text bold>As aside element</Text>
|
|
4944
5197
|
</Surface>
|
|
4945
5198
|
</div>
|
|
@@ -5066,14 +5319,17 @@ Props:
|
|
|
5066
5319
|
```
|
|
5067
5320
|
|
|
5068
5321
|
```tsx
|
|
5069
|
-
<div className="
|
|
5322
|
+
<div className="grid grid-cols-2 gap-x-8 gap-y-4">
|
|
5323
|
+
<Switch label="Default off" checked={false} onCheckedChange={() => {}} />
|
|
5324
|
+
<Switch label="Default on" checked={true} onCheckedChange={() => {}} />
|
|
5070
5325
|
<Switch
|
|
5071
|
-
label="
|
|
5072
|
-
|
|
5326
|
+
label="Neutral off"
|
|
5327
|
+
variant="neutral"
|
|
5328
|
+
checked={false}
|
|
5073
5329
|
onCheckedChange={() => {}}
|
|
5074
5330
|
/>
|
|
5075
5331
|
<Switch
|
|
5076
|
-
label="Neutral
|
|
5332
|
+
label="Neutral on"
|
|
5077
5333
|
variant="neutral"
|
|
5078
5334
|
checked={true}
|
|
5079
5335
|
onCheckedChange={() => {}}
|
|
@@ -5081,6 +5337,15 @@ Props:
|
|
|
5081
5337
|
</div>
|
|
5082
5338
|
```
|
|
5083
5339
|
|
|
5340
|
+
```tsx
|
|
5341
|
+
<Switch
|
|
5342
|
+
id="my-custom-switch"
|
|
5343
|
+
label="Custom ID"
|
|
5344
|
+
checked={checked}
|
|
5345
|
+
onCheckedChange={setChecked}
|
|
5346
|
+
/>
|
|
5347
|
+
```
|
|
5348
|
+
|
|
5084
5349
|
```tsx
|
|
5085
5350
|
<div className="flex flex-col gap-4">
|
|
5086
5351
|
<Switch
|
|
@@ -5125,6 +5390,9 @@ Table — semantic HTML table with styled rows, cells, and selection support. C
|
|
|
5125
5390
|
- `variant`: enum [default: default]
|
|
5126
5391
|
- `"default"`: Default row variant
|
|
5127
5392
|
- `"selected"`: Selected row variant
|
|
5393
|
+
- `sticky`: enum
|
|
5394
|
+
- `"left"`: Pin column to the left edge of the scroll container
|
|
5395
|
+
- `"right"`: Pin column to the right edge of the scroll container
|
|
5128
5396
|
- `className`: string
|
|
5129
5397
|
Additional CSS classes
|
|
5130
5398
|
- `children`: ReactNode
|
|
@@ -5132,7 +5400,7 @@ Table — semantic HTML table with styled rows, cells, and selection support. C
|
|
|
5132
5400
|
|
|
5133
5401
|
**Colors (kumo tokens used):**
|
|
5134
5402
|
|
|
5135
|
-
`bg-kumo-base`, `bg-kumo-elevated`, `bg-kumo-
|
|
5403
|
+
`bg-kumo-base`, `bg-kumo-elevated`, `bg-kumo-hairline`, `bg-kumo-tint`, `border-kumo-fill`, `text-kumo-default`, `text-kumo-strong`
|
|
5136
5404
|
|
|
5137
5405
|
**Sub-Components:**
|
|
5138
5406
|
|
|
@@ -5336,6 +5604,78 @@ ResizeHandle sub-component
|
|
|
5336
5604
|
</LayerCard>
|
|
5337
5605
|
```
|
|
5338
5606
|
|
|
5607
|
+
```tsx
|
|
5608
|
+
<LayerCard>
|
|
5609
|
+
<LayerCard.Primary className="w-full max-w-md overflow-x-auto p-0">
|
|
5610
|
+
<Table>
|
|
5611
|
+
<Table.Header>
|
|
5612
|
+
<Table.Row>
|
|
5613
|
+
<Table.Head>Subject</Table.Head>
|
|
5614
|
+
<Table.Head>From</Table.Head>
|
|
5615
|
+
<Table.Head>Date</Table.Head>
|
|
5616
|
+
<Table.Head>Tags</Table.Head>
|
|
5617
|
+
<Table.Head sticky="right">
|
|
5618
|
+
<span className="sr-only">Actions</span>
|
|
5619
|
+
</Table.Head>
|
|
5620
|
+
</Table.Row>
|
|
5621
|
+
</Table.Header>
|
|
5622
|
+
<Table.Body>
|
|
5623
|
+
{emailData.map((row) => (
|
|
5624
|
+
<Table.Row key={row.id}>
|
|
5625
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5626
|
+
{row.subject}
|
|
5627
|
+
</Table.Cell>
|
|
5628
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5629
|
+
{row.from}
|
|
5630
|
+
</Table.Cell>
|
|
5631
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5632
|
+
{row.date}
|
|
5633
|
+
</Table.Cell>
|
|
5634
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5635
|
+
{row.tags ? (
|
|
5636
|
+
<div className="inline-flex gap-1">
|
|
5637
|
+
{row.tags.map((tag) => (
|
|
5638
|
+
<Badge key={tag}>{tag}</Badge>
|
|
5639
|
+
))}
|
|
5640
|
+
</div>
|
|
5641
|
+
) : (
|
|
5642
|
+
"—"
|
|
5643
|
+
)}
|
|
5644
|
+
</Table.Cell>
|
|
5645
|
+
<Table.Cell sticky="right" className="text-right">
|
|
5646
|
+
<DropdownMenu>
|
|
5647
|
+
<DropdownMenu.Trigger
|
|
5648
|
+
render={
|
|
5649
|
+
<Button
|
|
5650
|
+
variant="ghost"
|
|
5651
|
+
size="sm"
|
|
5652
|
+
shape="square"
|
|
5653
|
+
aria-label="More options"
|
|
5654
|
+
>
|
|
5655
|
+
<DotsThree weight="bold" size={16} />
|
|
5656
|
+
</Button>
|
|
5657
|
+
}
|
|
5658
|
+
/>
|
|
5659
|
+
<DropdownMenu.Content>
|
|
5660
|
+
<DropdownMenu.Item icon={Eye}>View</DropdownMenu.Item>
|
|
5661
|
+
<DropdownMenu.Item icon={PencilSimple}>
|
|
5662
|
+
Edit
|
|
5663
|
+
</DropdownMenu.Item>
|
|
5664
|
+
<DropdownMenu.Separator />
|
|
5665
|
+
<DropdownMenu.Item icon={Trash} variant="danger">
|
|
5666
|
+
Delete
|
|
5667
|
+
</DropdownMenu.Item>
|
|
5668
|
+
</DropdownMenu.Content>
|
|
5669
|
+
</DropdownMenu>
|
|
5670
|
+
</Table.Cell>
|
|
5671
|
+
</Table.Row>
|
|
5672
|
+
))}
|
|
5673
|
+
</Table.Body>
|
|
5674
|
+
</Table>
|
|
5675
|
+
</LayerCard.Primary>
|
|
5676
|
+
</LayerCard>
|
|
5677
|
+
```
|
|
5678
|
+
|
|
5339
5679
|
```tsx
|
|
5340
5680
|
<LayerCard>
|
|
5341
5681
|
<LayerCard.Primary className="w-full overflow-x-auto p-0">
|
|
@@ -5466,7 +5806,7 @@ Tab navigation component with segmented or underline style. Built on Base UI Tab
|
|
|
5466
5806
|
|
|
5467
5807
|
**Colors (kumo tokens used):**
|
|
5468
5808
|
|
|
5469
|
-
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-recessed`, `bg-kumo-
|
|
5809
|
+
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-recessed`, `bg-kumo-tint`, `border-kumo-hairline`, `ring-kumo-hairline`, `ring-kumo-line`, `text-kumo-default`, `text-kumo-strong`, `text-kumo-subtle`
|
|
5470
5810
|
|
|
5471
5811
|
**Styling:**
|
|
5472
5812
|
|
|
@@ -5601,6 +5941,8 @@ Text component
|
|
|
5601
5941
|
- `"lg"`: Large text
|
|
5602
5942
|
- `bold`: boolean
|
|
5603
5943
|
Whether to use bold font weight (only applies to body variants).
|
|
5944
|
+
- `truncate`: boolean
|
|
5945
|
+
Whether to truncate overflowing text with an ellipsis. Adds `truncate min-w-0` classes.
|
|
5604
5946
|
- `as`: React.ElementType
|
|
5605
5947
|
The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
5606
5948
|
- `children`: ReactNode
|
|
@@ -5678,6 +6020,15 @@ Text component
|
|
|
5678
6020
|
</div>
|
|
5679
6021
|
```
|
|
5680
6022
|
|
|
6023
|
+
```tsx
|
|
6024
|
+
<div className="w-64 rounded-lg border border-kumo-line bg-kumo-base p-4">
|
|
6025
|
+
<Text truncate>
|
|
6026
|
+
This is a long piece of text that will be truncated with an ellipsis
|
|
6027
|
+
when it overflows its container.
|
|
6028
|
+
</Text>
|
|
6029
|
+
</div>
|
|
6030
|
+
```
|
|
6031
|
+
|
|
5681
6032
|
|
|
5682
6033
|
---
|
|
5683
6034
|
|
|
@@ -5706,7 +6057,7 @@ Toasty — toast notification provider and viewport. Renders a `Toast.Provider`
|
|
|
5706
6057
|
|
|
5707
6058
|
**Colors (kumo tokens used):**
|
|
5708
6059
|
|
|
5709
|
-
`bg-kumo-contrast`, `bg-kumo-control`, `bg-kumo-danger
|
|
6060
|
+
`bg-kumo-base`, `bg-kumo-contrast`, `bg-kumo-control`, `bg-kumo-danger`, `bg-kumo-fill-hover`, `bg-kumo-info`, `bg-kumo-success`, `bg-kumo-warning`, `border-kumo-fill`, `ring-kumo-danger`, `ring-kumo-hairline`, `ring-kumo-info`, `ring-kumo-success`, `ring-kumo-warning`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-info`, `text-kumo-strong`, `text-kumo-subtle`, `text-kumo-success`, `text-kumo-warning`
|
|
5710
6061
|
|
|
5711
6062
|
**Styling:**
|
|
5712
6063
|
|
|
@@ -5780,6 +6131,31 @@ Accessible popup that shows additional information on hover/focus. Wrap your app
|
|
|
5780
6131
|
</TooltipProvider>
|
|
5781
6132
|
```
|
|
5782
6133
|
|
|
6134
|
+
```tsx
|
|
6135
|
+
<TooltipProvider>
|
|
6136
|
+
<div className="flex gap-4">
|
|
6137
|
+
<Tooltip content="Opens after 1 second" delay={1000} asChild>
|
|
6138
|
+
<Button variant="secondary">1s open delay</Button>
|
|
6139
|
+
</Tooltip>
|
|
6140
|
+
<Tooltip
|
|
6141
|
+
content="Stays open 500ms after leaving"
|
|
6142
|
+
closeDelay={500}
|
|
6143
|
+
asChild
|
|
6144
|
+
>
|
|
6145
|
+
<Button variant="secondary">500ms close delay</Button>
|
|
6146
|
+
</Tooltip>
|
|
6147
|
+
<Tooltip
|
|
6148
|
+
content="Instant open, stays 1s"
|
|
6149
|
+
delay={0}
|
|
6150
|
+
closeDelay={1000}
|
|
6151
|
+
asChild
|
|
6152
|
+
>
|
|
6153
|
+
<Button variant="secondary">Instant + 1s close</Button>
|
|
6154
|
+
</Tooltip>
|
|
6155
|
+
</div>
|
|
6156
|
+
</TooltipProvider>
|
|
6157
|
+
```
|
|
6158
|
+
|
|
5783
6159
|
|
|
5784
6160
|
---
|
|
5785
6161
|
|