@cloudflare/kumo 1.16.0 → 1.17.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 +110 -0
- package/ai/USAGE.md +3 -1
- package/ai/component-registry.json +200 -59
- package/ai/component-registry.md +269 -33
- package/ai/schemas.ts +15 -5
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts +101 -37
- 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-n80t3z8u9ttlxi20.js +120 -0
- package/dist/chunks/badge-n80t3z8u9ttlxi20.js.map +1 -0
- package/dist/chunks/banner-nz0eryqnz3qd86ln.js +79 -0
- package/dist/chunks/banner-nz0eryqnz3qd86ln.js.map +1 -0
- package/dist/chunks/{breadcrumbs-m79gm4gjwbfajpna.js → breadcrumbs-cjgn3w4drahvqnuj.js} +3 -3
- package/dist/chunks/{breadcrumbs-m79gm4gjwbfajpna.js.map → breadcrumbs-cjgn3w4drahvqnuj.js.map} +1 -1
- package/dist/chunks/{button-j0hi0afn33w9lxgi.js → button-odxi0hp4fvi5i2w3.js} +50 -48
- package/dist/chunks/button-odxi0hp4fvi5i2w3.js.map +1 -0
- package/dist/chunks/{checkbox-lawmt1894wr6rpgi.js → checkbox-dx8x0rzv582yjv7n.js} +38 -47
- package/dist/chunks/{checkbox-lawmt1894wr6rpgi.js.map → checkbox-dx8x0rzv582yjv7n.js.map} +1 -1
- package/dist/chunks/{clipboard-text-ohx8kkpxisz382rj.js → clipboard-text-kyk51d1ze7zvdn4q.js} +55 -54
- package/dist/chunks/clipboard-text-kyk51d1ze7zvdn4q.js.map +1 -0
- package/dist/chunks/{combobox-ft0u7rfaxawk0r0c.js → combobox-9fhjzprab46csmon.js} +97 -82
- package/dist/chunks/combobox-9fhjzprab46csmon.js.map +1 -0
- package/dist/chunks/{command-palette-b31nq4wk7o7gx4sa.js → command-palette-kenx2bbdzd4kpx36.js} +158 -154
- package/dist/chunks/command-palette-kenx2bbdzd4kpx36.js.map +1 -0
- package/dist/chunks/{dialog-l5tmwxrzp9g83jmw.js → dialog-e05ysa8t2fklw065.js} +22 -20
- package/dist/chunks/dialog-e05ysa8t2fklw065.js.map +1 -0
- package/dist/chunks/{dropdown-icy3xatdwhzr4une.js → dropdown-g587px7zv3ssaxr4.js} +96 -90
- package/dist/chunks/dropdown-g587px7zv3ssaxr4.js.map +1 -0
- package/dist/chunks/{empty-hrwtammqp0b2nvtf.js → empty-fuz1un7r7mbz0kim.js} +2 -2
- package/dist/chunks/{empty-hrwtammqp0b2nvtf.js.map → empty-fuz1un7r7mbz0kim.js.map} +1 -1
- package/dist/chunks/{field-csje72m7j9403fj5.js → field-fq504lyu7ttsh5m9.js} +3 -3
- package/dist/chunks/{field-csje72m7j9403fj5.js.map → field-fq504lyu7ttsh5m9.js.map} +1 -1
- package/dist/chunks/{input-area-jko15sbc6zeage3l.js → input-area-nq40szg9110on89c.js} +4 -4
- package/dist/chunks/{input-area-jko15sbc6zeage3l.js.map → input-area-nq40szg9110on89c.js.map} +1 -1
- package/dist/chunks/{input-group-cjsy8kh4vf9312xl.js → input-group-hbebbyh8fo6aqydn.js} +3 -3
- package/dist/chunks/{input-group-cjsy8kh4vf9312xl.js.map → input-group-hbebbyh8fo6aqydn.js.map} +1 -1
- package/dist/chunks/{input-c8jmidy7gdqfiky1.js → input-kvhyo3p4859bexvx.js} +4 -4
- package/dist/chunks/input-kvhyo3p4859bexvx.js.map +1 -0
- package/dist/chunks/{label-i46xnnzdh9bsxk6a.js → label-j9owppbgnn35mebg.js} +3 -3
- package/dist/chunks/{label-i46xnnzdh9bsxk6a.js.map → label-j9owppbgnn35mebg.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-hmmf3k1xn6rm72rt.js} +2 -2
- package/dist/chunks/{link-o7yfj4kwgl19fklp.js.map → link-hmmf3k1xn6rm72rt.js.map} +1 -1
- package/dist/chunks/{menubar-g1wqqjuyyfvsim83.js → menubar-abojnm0uwjuni8ok.js} +20 -20
- package/dist/chunks/menubar-abojnm0uwjuni8ok.js.map +1 -0
- package/dist/chunks/{meter-cqkrg5axjenbsuue.js → meter-i84dte2f82qmvn7y.js} +2 -2
- package/dist/chunks/{meter-cqkrg5axjenbsuue.js.map → meter-i84dte2f82qmvn7y.js.map} +1 -1
- package/dist/chunks/{pagination-e3dp8bd80s35f7sd.js → pagination-pbd7qqik97ac0l7m.js} +3 -3
- package/dist/chunks/{pagination-e3dp8bd80s35f7sd.js.map → pagination-pbd7qqik97ac0l7m.js.map} +1 -1
- package/dist/chunks/{popover-jurf834u2uywluux.js → popover-i951xjcgezeqr4iv.js} +31 -28
- package/dist/chunks/popover-i951xjcgezeqr4iv.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-l2vkcue40d84fmo1.js} +13 -16
- package/dist/chunks/{radio-l9dzm6sohcvvrsdc.js.map → radio-l2vkcue40d84fmo1.js.map} +1 -1
- package/dist/chunks/{select-hnt87e3cfos48qql.js → select-paedwa3nlhpq82ua.js} +39 -37
- package/dist/chunks/select-paedwa3nlhpq82ua.js.map +1 -0
- package/dist/chunks/{sensitive-input-lvtccf3iqc06lj7b.js → sensitive-input-kznmknpp5h1grc6k.js} +97 -91
- package/dist/chunks/sensitive-input-kznmknpp5h1grc6k.js.map +1 -0
- package/dist/chunks/{sidebar-l6rk9o5qf8k5vth1.js → sidebar-jepeq7gaf4issuw6.js} +3 -3
- package/dist/chunks/{sidebar-l6rk9o5qf8k5vth1.js.map → sidebar-jepeq7gaf4issuw6.js.map} +1 -1
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js +33 -0
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js.map +1 -0
- package/dist/chunks/surface-blo81kgy9g0sexgm.js +36 -0
- package/dist/chunks/surface-blo81kgy9g0sexgm.js.map +1 -0
- package/dist/chunks/{switch-fukrbip86khvqjn7.js → switch-i0zwcp3wq6vsxm1c.js} +64 -64
- package/dist/chunks/{switch-fukrbip86khvqjn7.js.map → switch-i0zwcp3wq6vsxm1c.js.map} +1 -1
- package/dist/chunks/table-nrcw19tlpduayukl.js +183 -0
- package/dist/chunks/table-nrcw19tlpduayukl.js.map +1 -0
- package/dist/chunks/tabs-bw92jb303zxw7w4f.js +92 -0
- package/dist/chunks/{tabs-n0t7iro7wr0pzgk2.js.map → tabs-bw92jb303zxw7w4f.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-lrnwby56drs7vtae.js} +59 -57
- package/dist/chunks/toast-lrnwby56drs7vtae.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-cit9ltlxfuhwctuj.js} +24 -21
- package/dist/chunks/tooltip-cit9ltlxfuhwctuj.js.map +1 -0
- package/dist/chunks/{vendor-base-ui-ccr5l0ynrievzzv3.js → vendor-base-ui-n30qblevnpk9cc5c.js} +42 -41
- package/dist/chunks/{vendor-base-ui-ccr5l0ynrievzzv3.js.map → vendor-base-ui-n30qblevnpk9cc5c.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/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 +1 -1
- 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 +75 -73
- 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 +288 -24
- 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 +95 -22
- package/dist/src/components/badge/badge.d.ts.map +1 -1
- package/dist/src/components/banner/banner.d.ts +2 -0
- package/dist/src/components/banner/banner.d.ts.map +1 -1
- package/dist/src/components/button/button.d.ts +2 -0
- 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.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/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/loader/skeleton-line.d.ts +2 -1
- package/dist/src/components/loader/skeleton-line.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.map +1 -1
- package/dist/src/components/select/select.d.ts +8 -1
- package/dist/src/components/select/select.d.ts.map +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/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 +11 -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 +49 -46
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/styles/theme-fedramp.css +3 -3
- package/dist/styles/theme-kumo.css +202 -22
- package/dist/utils.js +8 -6
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- package/scripts/theme-generator/config.ts +298 -24
- 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/clipboard-text-ohx8kkpxisz382rj.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-c8jmidy7gdqfiky1.js.map +0 -1
- package/dist/chunks/menubar-g1wqqjuyyfvsim83.js.map +0 -1
- package/dist/chunks/popover-jurf834u2uywluux.js.map +0 -1
- package/dist/chunks/select-hnt87e3cfos48qql.js.map +0 -1
- package/dist/chunks/sensitive-input-lvtccf3iqc06lj7b.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/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
|
@@ -16,13 +16,28 @@ Small status label for categorizing or highlighting content.
|
|
|
16
16
|
|
|
17
17
|
**Props:**
|
|
18
18
|
|
|
19
|
-
- `variant`: enum [default:
|
|
20
|
-
- `"
|
|
21
|
-
- `"
|
|
22
|
-
- `"
|
|
23
|
-
- `"
|
|
19
|
+
- `variant`: enum [default: neutral]
|
|
20
|
+
- `"red"`: Red badge
|
|
21
|
+
- `"red-subtle"`: Subtle red badge
|
|
22
|
+
- `"orange"`: Orange badge
|
|
23
|
+
- `"orange-subtle"`: Subtle orange badge
|
|
24
|
+
- `"yellow"`: Yellow badge
|
|
25
|
+
- `"yellow-subtle"`: Subtle yellow badge
|
|
26
|
+
- `"green"`: Green badge
|
|
27
|
+
- `"green-subtle"`: Subtle green badge
|
|
28
|
+
- `"teal"`: Teal badge
|
|
29
|
+
- `"teal-subtle"`: Subtle teal badge
|
|
30
|
+
- `"blue"`: Blue badge
|
|
31
|
+
- `"blue-subtle"`: Subtle blue badge
|
|
32
|
+
- `"neutral"`: Neutral badge
|
|
33
|
+
- `"neutral-subtle"`: Subtle neutral badge
|
|
34
|
+
- `"inverted"`: Inverted badge
|
|
24
35
|
- `"outline"`: Bordered badge with transparent background
|
|
25
36
|
- `"beta"`: Indicates beta or experimental features
|
|
37
|
+
- `"primary"`: Deprecated. Use inverted instead.
|
|
38
|
+
- `"secondary"`: Deprecated. Use neutral instead.
|
|
39
|
+
- `"destructive"`: Deprecated. Use red instead.
|
|
40
|
+
- `"success"`: Deprecated. Use green instead.
|
|
26
41
|
- `className`: string
|
|
27
42
|
Additional CSS classes merged via `cn()`.
|
|
28
43
|
- `children`: ReactNode
|
|
@@ -30,29 +45,40 @@ Small status label for categorizing or highlighting content.
|
|
|
30
45
|
|
|
31
46
|
**Colors (kumo tokens used):**
|
|
32
47
|
|
|
33
|
-
`bg-kumo-
|
|
48
|
+
`bg-kumo-badge-blue`, `bg-kumo-badge-blue-subtle`, `bg-kumo-badge-green`, `bg-kumo-badge-green-subtle`, `bg-kumo-badge-inverted`, `bg-kumo-badge-neutral`, `bg-kumo-badge-orange`, `bg-kumo-badge-orange-subtle`, `bg-kumo-badge-red`, `bg-kumo-badge-red-subtle`, `bg-kumo-badge-teal`, `bg-kumo-badge-teal-subtle`, `bg-kumo-badge-yellow`, `bg-kumo-badge-yellow-subtle`, `bg-kumo-fill`, `border-kumo-brand`, `border-kumo-fill`, `text-kumo-badge-blue-subtle`, `text-kumo-badge-green-subtle`, `text-kumo-badge-inverted`, `text-kumo-badge-neutral-subtle`, `text-kumo-badge-orange-subtle`, `text-kumo-badge-red-subtle`, `text-kumo-badge-teal-subtle`, `text-kumo-badge-yellow-subtle`, `text-kumo-default`, `text-kumo-link`
|
|
34
49
|
|
|
35
50
|
**Examples:**
|
|
36
51
|
|
|
37
52
|
```tsx
|
|
38
53
|
<div className="flex flex-wrap items-center gap-2">
|
|
39
|
-
<Badge variant="
|
|
40
|
-
<Badge variant="
|
|
41
|
-
<Badge variant="
|
|
42
|
-
<Badge variant="
|
|
54
|
+
<Badge variant="red">Red</Badge>
|
|
55
|
+
<Badge variant="orange">Orange</Badge>
|
|
56
|
+
<Badge variant="yellow">Yellow</Badge>
|
|
57
|
+
<Badge variant="green">Green</Badge>
|
|
58
|
+
<Badge variant="teal">Teal</Badge>
|
|
59
|
+
<Badge variant="blue">Blue</Badge>
|
|
60
|
+
<Badge variant="neutral">Neutral</Badge>
|
|
61
|
+
<Badge variant="inverted">Inverted</Badge>
|
|
43
62
|
<Badge variant="outline">Outline</Badge>
|
|
44
63
|
<Badge variant="beta">Beta</Badge>
|
|
64
|
+
<Badge variant="red-subtle">Red subtle</Badge>
|
|
65
|
+
<Badge variant="orange-subtle">Orange subtle</Badge>
|
|
66
|
+
<Badge variant="yellow-subtle">Yellow subtle</Badge>
|
|
67
|
+
<Badge variant="green-subtle">Green subtle</Badge>
|
|
68
|
+
<Badge variant="teal-subtle">Teal subtle</Badge>
|
|
69
|
+
<Badge variant="blue-subtle">Blue subtle</Badge>
|
|
70
|
+
<Badge variant="neutral-subtle">Neutral subtle</Badge>
|
|
45
71
|
</div>
|
|
46
72
|
```
|
|
47
73
|
|
|
48
74
|
```tsx
|
|
49
|
-
<Badge variant="
|
|
75
|
+
<Badge variant="red">Red</Badge>
|
|
50
76
|
```
|
|
51
77
|
|
|
52
78
|
```tsx
|
|
53
79
|
<p className="flex items-center gap-2">
|
|
54
80
|
Workers
|
|
55
|
-
<Badge variant="
|
|
81
|
+
<Badge variant="blue">New</Badge>
|
|
56
82
|
</p>
|
|
57
83
|
```
|
|
58
84
|
|
|
@@ -77,6 +103,8 @@ Full-width message bar for informational, warning, or error notices. Supports st
|
|
|
77
103
|
Primary heading text for the banner. Use for i18n string injection.
|
|
78
104
|
- `description`: ReactNode
|
|
79
105
|
Secondary description text displayed below the title. Use for i18n string injection.
|
|
106
|
+
- `action`: ReactNode
|
|
107
|
+
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
108
|
- `text`: string
|
|
81
109
|
- `children`: ReactNode
|
|
82
110
|
- `variant`: enum [default: default]
|
|
@@ -93,7 +121,7 @@ Full-width message bar for informational, warning, or error notices. Supports st
|
|
|
93
121
|
**Examples:**
|
|
94
122
|
|
|
95
123
|
```tsx
|
|
96
|
-
<div className="space-y-3">
|
|
124
|
+
<div className="w-full space-y-3">
|
|
97
125
|
<Banner
|
|
98
126
|
icon={<Info weight="fill" />}
|
|
99
127
|
title="Update available"
|
|
@@ -150,6 +178,48 @@ Full-width message bar for informational, warning, or error notices. Supports st
|
|
|
150
178
|
/>
|
|
151
179
|
```
|
|
152
180
|
|
|
181
|
+
```tsx
|
|
182
|
+
<div className="w-full space-y-3">
|
|
183
|
+
<Banner
|
|
184
|
+
icon={<Info weight="fill" />}
|
|
185
|
+
title="Update available"
|
|
186
|
+
description="A new version is ready to install."
|
|
187
|
+
action={<Button size="sm">Update now</Button>}
|
|
188
|
+
/>
|
|
189
|
+
<Banner
|
|
190
|
+
icon={<Info weight="fill" />}
|
|
191
|
+
title="Update available"
|
|
192
|
+
description="A new version is ready to install."
|
|
193
|
+
action={
|
|
194
|
+
<Button
|
|
195
|
+
size="sm"
|
|
196
|
+
variant="ghost"
|
|
197
|
+
shape="square"
|
|
198
|
+
icon={X}
|
|
199
|
+
aria-label="Dismiss"
|
|
200
|
+
/>
|
|
201
|
+
}
|
|
202
|
+
/>
|
|
203
|
+
</div>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
```tsx
|
|
207
|
+
<Banner
|
|
208
|
+
icon={<Warning weight="fill" />}
|
|
209
|
+
variant="alert"
|
|
210
|
+
title="Session expiring"
|
|
211
|
+
description="Your session will expire in 5 minutes."
|
|
212
|
+
action={
|
|
213
|
+
<>
|
|
214
|
+
<Button size="sm" variant="secondary">
|
|
215
|
+
Dismiss
|
|
216
|
+
</Button>
|
|
217
|
+
<Button size="sm">Extend session</Button>
|
|
218
|
+
</>
|
|
219
|
+
}
|
|
220
|
+
/>
|
|
221
|
+
```
|
|
222
|
+
|
|
153
223
|
```tsx
|
|
154
224
|
<Banner icon={<Info />}>This is a simple banner using children.</Banner>
|
|
155
225
|
```
|
|
@@ -308,9 +378,9 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
|
|
|
308
378
|
Icon from `@phosphor-icons/react` or a React element. Rendered before children.
|
|
309
379
|
- `loading`: boolean
|
|
310
380
|
Shows a loading spinner and disables interaction.
|
|
381
|
+
- `title`: string
|
|
311
382
|
- `id`: string
|
|
312
383
|
- `lang`: string
|
|
313
|
-
- `title`: string
|
|
314
384
|
- `disabled`: boolean
|
|
315
385
|
- `name`: string
|
|
316
386
|
- `type`: enum
|
|
@@ -378,6 +448,21 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
|
|
|
378
448
|
</div>
|
|
379
449
|
```
|
|
380
450
|
|
|
451
|
+
```tsx
|
|
452
|
+
<div className="flex flex-wrap items-center gap-3">
|
|
453
|
+
<Button variant="secondary" title="Create a new Worker">
|
|
454
|
+
Create Worker
|
|
455
|
+
</Button>
|
|
456
|
+
<Button
|
|
457
|
+
variant="secondary"
|
|
458
|
+
shape="square"
|
|
459
|
+
icon={PlusIcon}
|
|
460
|
+
aria-label="Add item"
|
|
461
|
+
title="Add item"
|
|
462
|
+
/>
|
|
463
|
+
</div>
|
|
464
|
+
```
|
|
465
|
+
|
|
381
466
|
|
|
382
467
|
---
|
|
383
468
|
|
|
@@ -424,7 +509,7 @@ Checkbox component
|
|
|
424
509
|
|
|
425
510
|
**Colors (kumo tokens used):**
|
|
426
511
|
|
|
427
|
-
`bg-kumo-base`, `bg-kumo-contrast`, `
|
|
512
|
+
`bg-kumo-base`, `bg-kumo-contrast`, `ring-kumo-contrast`, `ring-kumo-danger`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-inverse`, `text-kumo-subtle`
|
|
428
513
|
|
|
429
514
|
**Styling:**
|
|
430
515
|
|
|
@@ -547,6 +632,8 @@ Read-only text field with a one-click copy-to-clipboard button.
|
|
|
547
632
|
- `"lg"`: Large clipboard text for prominent display
|
|
548
633
|
- `text`: string (required)
|
|
549
634
|
The text to display and copy to clipboard.
|
|
635
|
+
- `textToCopy`: string
|
|
636
|
+
If provided, this text will be copied to clipboard instead of the `text` prop.
|
|
550
637
|
- `className`: string
|
|
551
638
|
Additional CSS classes merged via `cn()`.
|
|
552
639
|
- `tooltip`: object
|
|
@@ -610,6 +697,13 @@ Read-only text field with a one-click copy-to-clipboard button.
|
|
|
610
697
|
<ClipboardText text="0c239dd2" />
|
|
611
698
|
```
|
|
612
699
|
|
|
700
|
+
```tsx
|
|
701
|
+
<ClipboardText
|
|
702
|
+
text="sk_live_***********"
|
|
703
|
+
textToCopy="sk_live_51H8_abc123"
|
|
704
|
+
/>
|
|
705
|
+
```
|
|
706
|
+
|
|
613
707
|
```tsx
|
|
614
708
|
<ClipboardText
|
|
615
709
|
text="npx kumo add button"
|
|
@@ -1204,6 +1298,7 @@ Props:
|
|
|
1204
1298
|
- `alignOffset`: ComboboxBase.Positioner.Props["alignOffset"]
|
|
1205
1299
|
- `side`: ComboboxBase.Positioner.Props["side"]
|
|
1206
1300
|
- `sideOffset`: ComboboxBase.Positioner.Props["sideOffset"]
|
|
1301
|
+
- `container`: PortalContainer
|
|
1207
1302
|
|
|
1208
1303
|
#### Combobox.TriggerValue
|
|
1209
1304
|
|
|
@@ -1398,6 +1493,42 @@ Usage:
|
|
|
1398
1493
|
</div>
|
|
1399
1494
|
```
|
|
1400
1495
|
|
|
1496
|
+
```tsx
|
|
1497
|
+
<div className="flex flex-wrap gap-4 items-start">
|
|
1498
|
+
<Combobox value="Apple" items={fruits} disabled>
|
|
1499
|
+
<Combobox.TriggerInput
|
|
1500
|
+
className="w-[200px]"
|
|
1501
|
+
placeholder="Select fruit"
|
|
1502
|
+
/>
|
|
1503
|
+
<Combobox.Content>
|
|
1504
|
+
<Combobox.Empty />
|
|
1505
|
+
<Combobox.List>
|
|
1506
|
+
{(item: string) => (
|
|
1507
|
+
<Combobox.Item key={item} value={item}>
|
|
1508
|
+
{item}
|
|
1509
|
+
</Combobox.Item>
|
|
1510
|
+
)}
|
|
1511
|
+
</Combobox.List>
|
|
1512
|
+
</Combobox.Content>
|
|
1513
|
+
</Combobox>
|
|
1514
|
+
|
|
1515
|
+
<Combobox value={languages[0]} items={languages} disabled>
|
|
1516
|
+
<Combobox.TriggerValue className="w-[200px]" />
|
|
1517
|
+
<Combobox.Content>
|
|
1518
|
+
<Combobox.Input placeholder="Search" />
|
|
1519
|
+
<Combobox.Empty />
|
|
1520
|
+
<Combobox.List>
|
|
1521
|
+
{(item: Language) => (
|
|
1522
|
+
<Combobox.Item key={item.value} value={item}>
|
|
1523
|
+
{item.emoji} {item.label}
|
|
1524
|
+
</Combobox.Item>
|
|
1525
|
+
)}
|
|
1526
|
+
</Combobox.List>
|
|
1527
|
+
</Combobox.Content>
|
|
1528
|
+
</Combobox>
|
|
1529
|
+
</div>
|
|
1530
|
+
```
|
|
1531
|
+
|
|
1401
1532
|
```tsx
|
|
1402
1533
|
<div className="w-80">
|
|
1403
1534
|
<Combobox
|
|
@@ -1525,6 +1656,8 @@ CommandPalette — accessible command palette / spotlight search overlay. Compo
|
|
|
1525
1656
|
Whether the dialog is open
|
|
1526
1657
|
- `children`: ReactNode
|
|
1527
1658
|
Child content - typically one or more Panel components
|
|
1659
|
+
- `container`: PortalContainer
|
|
1660
|
+
Container element for the portal. Use this to render the command palette inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
|
|
1528
1661
|
|
|
1529
1662
|
**Colors (kumo tokens used):**
|
|
1530
1663
|
|
|
@@ -2006,6 +2139,8 @@ Dialog component
|
|
|
2006
2139
|
Additional CSS classes merged via `cn()`.
|
|
2007
2140
|
- `children`: ReactNode
|
|
2008
2141
|
Dialog content (typically Title, Description, Close, and action buttons).
|
|
2142
|
+
- `container`: PortalContainer
|
|
2143
|
+
Container element for the portal. Use this to render the dialog inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
|
|
2009
2144
|
- `size`: enum [default: base]
|
|
2010
2145
|
- `"base"`: Default dialog width
|
|
2011
2146
|
- `"sm"`: Small dialog for simple confirmations
|
|
@@ -2014,7 +2149,7 @@ Dialog component
|
|
|
2014
2149
|
|
|
2015
2150
|
**Colors (kumo tokens used):**
|
|
2016
2151
|
|
|
2017
|
-
`bg-kumo-base`, `text-kumo-default`
|
|
2152
|
+
`bg-kumo-base`, `bg-kumo-recessed`, `text-kumo-default`
|
|
2018
2153
|
|
|
2019
2154
|
**Styling:**
|
|
2020
2155
|
|
|
@@ -3079,7 +3214,7 @@ LayerCard component
|
|
|
3079
3214
|
|
|
3080
3215
|
**Colors (kumo tokens used):**
|
|
3081
3216
|
|
|
3082
|
-
`bg-kumo-base`, `bg-kumo-elevated`, `
|
|
3217
|
+
`bg-kumo-base`, `bg-kumo-elevated`, `ring-kumo-fill`, `ring-kumo-line`, `text-kumo-strong`
|
|
3083
3218
|
|
|
3084
3219
|
**Styling:**
|
|
3085
3220
|
|
|
@@ -3325,7 +3460,7 @@ MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation.
|
|
|
3325
3460
|
|
|
3326
3461
|
**Colors (kumo tokens used):**
|
|
3327
3462
|
|
|
3328
|
-
`bg-kumo-base`, `bg-kumo-
|
|
3463
|
+
`bg-kumo-base`, `bg-kumo-recessed`, `border-kumo-fill`, `border-kumo-recessed`
|
|
3329
3464
|
|
|
3330
3465
|
**Styling:**
|
|
3331
3466
|
|
|
@@ -3822,7 +3957,7 @@ Radio — radio button group for single-select choices. Compound component: `Ra
|
|
|
3822
3957
|
|
|
3823
3958
|
**Colors (kumo tokens used):**
|
|
3824
3959
|
|
|
3825
|
-
`bg-kumo-base`, `bg-kumo-contrast`, `bg-kumo-tint`, `border-kumo-danger`, `border-kumo-interact`, `border-kumo-
|
|
3960
|
+
`bg-kumo-base`, `bg-kumo-contrast`, `bg-kumo-tint`, `border-kumo-danger`, `border-kumo-interact`, `border-kumo-ring`, `ring-kumo-danger`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-subtle`
|
|
3826
3961
|
|
|
3827
3962
|
**Sub-Components:**
|
|
3828
3963
|
|
|
@@ -4251,7 +4386,7 @@ Option sub-component
|
|
|
4251
4386
|
<span className="flex items-center gap-2">
|
|
4252
4387
|
<span>Issue Types</span>
|
|
4253
4388
|
{selected.length > 0 && (
|
|
4254
|
-
<Badge variant="
|
|
4389
|
+
<Badge variant="neutral">{selected.length}</Badge>
|
|
4255
4390
|
)}
|
|
4256
4391
|
</span>
|
|
4257
4392
|
)}
|
|
@@ -4895,7 +5030,7 @@ CollapsibleContent sub-component
|
|
|
4895
5030
|
|
|
4896
5031
|
### Surface
|
|
4897
5032
|
|
|
4898
|
-
Surface
|
|
5033
|
+
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
5034
|
|
|
4900
5035
|
**Type:** component
|
|
4901
5036
|
|
|
@@ -4906,11 +5041,15 @@ Surface component
|
|
|
4906
5041
|
**Props:**
|
|
4907
5042
|
|
|
4908
5043
|
- `as`: React.ElementType
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
5044
|
+
- `render`: ReactNode
|
|
5045
|
+
Allows you to replace the component’s HTML element with a different tag, or compose it with another component.
|
|
5046
|
+
|
|
5047
|
+
Accepts a `ReactElement` or a function that returns the element to render.
|
|
4912
5048
|
- `children`: ReactNode
|
|
4913
|
-
|
|
5049
|
+
- `className`: string
|
|
5050
|
+
- `id`: string
|
|
5051
|
+
- `lang`: string
|
|
5052
|
+
- `title`: string
|
|
4914
5053
|
|
|
4915
5054
|
**Colors (kumo tokens used):**
|
|
4916
5055
|
|
|
@@ -4933,13 +5072,13 @@ Surface component
|
|
|
4933
5072
|
|
|
4934
5073
|
```tsx
|
|
4935
5074
|
<div className="flex flex-col gap-4">
|
|
4936
|
-
<Surface
|
|
5075
|
+
<Surface render={<section />} className="rounded-lg p-4">
|
|
4937
5076
|
<Text bold>As section element</Text>
|
|
4938
5077
|
</Surface>
|
|
4939
|
-
<Surface
|
|
5078
|
+
<Surface render={<article />} className="rounded-lg p-4">
|
|
4940
5079
|
<Text bold>As article element</Text>
|
|
4941
5080
|
</Surface>
|
|
4942
|
-
<Surface
|
|
5081
|
+
<Surface render={<aside />} className="rounded-lg p-4">
|
|
4943
5082
|
<Text bold>As aside element</Text>
|
|
4944
5083
|
</Surface>
|
|
4945
5084
|
</div>
|
|
@@ -5066,14 +5205,25 @@ Props:
|
|
|
5066
5205
|
```
|
|
5067
5206
|
|
|
5068
5207
|
```tsx
|
|
5069
|
-
<div className="
|
|
5208
|
+
<div className="grid grid-cols-2 gap-x-8 gap-y-4">
|
|
5209
|
+
<Switch
|
|
5210
|
+
label="Default off"
|
|
5211
|
+
checked={false}
|
|
5212
|
+
onCheckedChange={() => {}}
|
|
5213
|
+
/>
|
|
5070
5214
|
<Switch
|
|
5071
|
-
label="Default
|
|
5215
|
+
label="Default on"
|
|
5072
5216
|
checked={true}
|
|
5073
5217
|
onCheckedChange={() => {}}
|
|
5074
5218
|
/>
|
|
5075
5219
|
<Switch
|
|
5076
|
-
label="Neutral
|
|
5220
|
+
label="Neutral off"
|
|
5221
|
+
variant="neutral"
|
|
5222
|
+
checked={false}
|
|
5223
|
+
onCheckedChange={() => {}}
|
|
5224
|
+
/>
|
|
5225
|
+
<Switch
|
|
5226
|
+
label="Neutral on"
|
|
5077
5227
|
variant="neutral"
|
|
5078
5228
|
checked={true}
|
|
5079
5229
|
onCheckedChange={() => {}}
|
|
@@ -5125,6 +5275,9 @@ Table — semantic HTML table with styled rows, cells, and selection support. C
|
|
|
5125
5275
|
- `variant`: enum [default: default]
|
|
5126
5276
|
- `"default"`: Default row variant
|
|
5127
5277
|
- `"selected"`: Selected row variant
|
|
5278
|
+
- `sticky`: enum
|
|
5279
|
+
- `"left"`: Pin column to the left edge of the scroll container
|
|
5280
|
+
- `"right"`: Pin column to the right edge of the scroll container
|
|
5128
5281
|
- `className`: string
|
|
5129
5282
|
Additional CSS classes
|
|
5130
5283
|
- `children`: ReactNode
|
|
@@ -5336,6 +5489,78 @@ ResizeHandle sub-component
|
|
|
5336
5489
|
</LayerCard>
|
|
5337
5490
|
```
|
|
5338
5491
|
|
|
5492
|
+
```tsx
|
|
5493
|
+
<LayerCard>
|
|
5494
|
+
<LayerCard.Primary className="w-full max-w-md overflow-x-auto p-0">
|
|
5495
|
+
<Table>
|
|
5496
|
+
<Table.Header>
|
|
5497
|
+
<Table.Row>
|
|
5498
|
+
<Table.Head>Subject</Table.Head>
|
|
5499
|
+
<Table.Head>From</Table.Head>
|
|
5500
|
+
<Table.Head>Date</Table.Head>
|
|
5501
|
+
<Table.Head>Tags</Table.Head>
|
|
5502
|
+
<Table.Head sticky="right">
|
|
5503
|
+
<span className="sr-only">Actions</span>
|
|
5504
|
+
</Table.Head>
|
|
5505
|
+
</Table.Row>
|
|
5506
|
+
</Table.Header>
|
|
5507
|
+
<Table.Body>
|
|
5508
|
+
{emailData.map((row) => (
|
|
5509
|
+
<Table.Row key={row.id}>
|
|
5510
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5511
|
+
{row.subject}
|
|
5512
|
+
</Table.Cell>
|
|
5513
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5514
|
+
{row.from}
|
|
5515
|
+
</Table.Cell>
|
|
5516
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5517
|
+
{row.date}
|
|
5518
|
+
</Table.Cell>
|
|
5519
|
+
<Table.Cell className="whitespace-nowrap">
|
|
5520
|
+
{row.tags ? (
|
|
5521
|
+
<div className="inline-flex gap-1">
|
|
5522
|
+
{row.tags.map((tag) => (
|
|
5523
|
+
<Badge key={tag}>{tag}</Badge>
|
|
5524
|
+
))}
|
|
5525
|
+
</div>
|
|
5526
|
+
) : (
|
|
5527
|
+
"—"
|
|
5528
|
+
)}
|
|
5529
|
+
</Table.Cell>
|
|
5530
|
+
<Table.Cell sticky="right" className="text-right">
|
|
5531
|
+
<DropdownMenu>
|
|
5532
|
+
<DropdownMenu.Trigger
|
|
5533
|
+
render={
|
|
5534
|
+
<Button
|
|
5535
|
+
variant="ghost"
|
|
5536
|
+
size="sm"
|
|
5537
|
+
shape="square"
|
|
5538
|
+
aria-label="More options"
|
|
5539
|
+
>
|
|
5540
|
+
<DotsThree weight="bold" size={16} />
|
|
5541
|
+
</Button>
|
|
5542
|
+
}
|
|
5543
|
+
/>
|
|
5544
|
+
<DropdownMenu.Content>
|
|
5545
|
+
<DropdownMenu.Item icon={Eye}>View</DropdownMenu.Item>
|
|
5546
|
+
<DropdownMenu.Item icon={PencilSimple}>
|
|
5547
|
+
Edit
|
|
5548
|
+
</DropdownMenu.Item>
|
|
5549
|
+
<DropdownMenu.Separator />
|
|
5550
|
+
<DropdownMenu.Item icon={Trash} variant="danger">
|
|
5551
|
+
Delete
|
|
5552
|
+
</DropdownMenu.Item>
|
|
5553
|
+
</DropdownMenu.Content>
|
|
5554
|
+
</DropdownMenu>
|
|
5555
|
+
</Table.Cell>
|
|
5556
|
+
</Table.Row>
|
|
5557
|
+
))}
|
|
5558
|
+
</Table.Body>
|
|
5559
|
+
</Table>
|
|
5560
|
+
</LayerCard.Primary>
|
|
5561
|
+
</LayerCard>
|
|
5562
|
+
```
|
|
5563
|
+
|
|
5339
5564
|
```tsx
|
|
5340
5565
|
<LayerCard>
|
|
5341
5566
|
<LayerCard.Primary className="w-full overflow-x-auto p-0">
|
|
@@ -5466,7 +5691,7 @@ Tab navigation component with segmented or underline style. Built on Base UI Tab
|
|
|
5466
5691
|
|
|
5467
5692
|
**Colors (kumo tokens used):**
|
|
5468
5693
|
|
|
5469
|
-
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-recessed`, `bg-kumo-
|
|
5694
|
+
`bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-recessed`, `bg-kumo-tint`, `border-kumo-ring`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-default`, `text-kumo-strong`, `text-kumo-subtle`
|
|
5470
5695
|
|
|
5471
5696
|
**Styling:**
|
|
5472
5697
|
|
|
@@ -5601,6 +5826,8 @@ Text component
|
|
|
5601
5826
|
- `"lg"`: Large text
|
|
5602
5827
|
- `bold`: boolean
|
|
5603
5828
|
Whether to use bold font weight (only applies to body variants).
|
|
5829
|
+
- `truncate`: boolean
|
|
5830
|
+
Whether to truncate overflowing text with an ellipsis. Adds `truncate min-w-0` classes.
|
|
5604
5831
|
- `as`: React.ElementType
|
|
5605
5832
|
The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
5606
5833
|
- `children`: ReactNode
|
|
@@ -5678,6 +5905,15 @@ Text component
|
|
|
5678
5905
|
</div>
|
|
5679
5906
|
```
|
|
5680
5907
|
|
|
5908
|
+
```tsx
|
|
5909
|
+
<div className="w-64 rounded-lg border border-kumo-line bg-kumo-base p-4">
|
|
5910
|
+
<Text truncate>
|
|
5911
|
+
This is a long piece of text that will be truncated with an ellipsis
|
|
5912
|
+
when it overflows its container.
|
|
5913
|
+
</Text>
|
|
5914
|
+
</div>
|
|
5915
|
+
```
|
|
5916
|
+
|
|
5681
5917
|
|
|
5682
5918
|
---
|
|
5683
5919
|
|
|
@@ -5706,7 +5942,7 @@ Toasty — toast notification provider and viewport. Renders a `Toast.Provider`
|
|
|
5706
5942
|
|
|
5707
5943
|
**Colors (kumo tokens used):**
|
|
5708
5944
|
|
|
5709
|
-
`bg-kumo-contrast`, `bg-kumo-control`, `bg-kumo-danger-tint`, `bg-kumo-fill-hover`, `bg-kumo-info-tint`, `bg-kumo-success-tint`, `bg-kumo-warning-tint`, `border-kumo-
|
|
5945
|
+
`bg-kumo-base`, `bg-kumo-contrast`, `bg-kumo-control`, `bg-kumo-danger-tint`, `bg-kumo-fill-hover`, `bg-kumo-info-tint`, `bg-kumo-success-tint`, `bg-kumo-warning-tint`, `border-kumo-fill`, `ring-kumo-danger`, `ring-kumo-info`, `ring-kumo-ring`, `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
5946
|
|
|
5711
5947
|
**Styling:**
|
|
5712
5948
|
|
package/ai/schemas.ts
CHANGED
|
@@ -111,7 +111,7 @@ export type Action = z.infer<typeof ActionSchema>;
|
|
|
111
111
|
// =============================================================================
|
|
112
112
|
|
|
113
113
|
export const BadgePropsSchema = z.object({
|
|
114
|
-
variant: z.enum(["
|
|
114
|
+
variant: z.enum(["red", "red-subtle", "orange", "orange-subtle", "yellow", "yellow-subtle", "green", "green-subtle", "teal", "teal-subtle", "blue", "blue-subtle", "neutral", "neutral-subtle", "inverted", "outline", "beta", "primary", "secondary", "destructive", "success"]).optional(), // Color variant of the badge. - `"red"` / `"red-subtle"` — Red badge - `"orange"` / `"orange-subtle"` — Orange badge - `"yellow"` / `"yellow-subtle"` — Yellow badge - `"green"` / `"green-subtle"` — Green badge (emerald scale) - `"teal"` / `"teal-subtle"` — Teal badge - `"blue"` / `"blue-subtle"` — Blue badge - `"neutral"` / `"neutral-subtle"` — Neutral badge - `"inverted"` — Inverted badge (near-black, white in dark mode) - `"outline"` — Bordered badge with transparent background - `"beta"` — Dashed-border badge for beta/experimental features - `"primary"` — **Deprecated.** Use `"inverted"` instead. - `"secondary"` — **Deprecated.** Use `"neutral"` instead. - `"destructive"` — **Deprecated.** Use `"red"` instead. - `"success"` — **Deprecated.** Use `"green"` instead.
|
|
115
115
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
116
116
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the badge.
|
|
117
117
|
});
|
|
@@ -120,6 +120,7 @@ export const BannerPropsSchema = z.object({
|
|
|
120
120
|
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`).
|
|
121
121
|
title: z.string().optional(), // Primary heading text for the banner. Use for i18n string injection.
|
|
122
122
|
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Secondary description text displayed below the title. Use for i18n string injection.
|
|
123
|
+
action: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // 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`).
|
|
123
124
|
text: z.string().optional(),
|
|
124
125
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
125
126
|
variant: z.enum(["default", "alert", "error"]).optional(), // Visual style of the banner. - `"default"` — Informational blue banner for general messages - `"alert"` — Warning yellow banner for cautionary messages - `"error"` — Error red banner for critical issues
|
|
@@ -140,9 +141,9 @@ export const ButtonPropsSchema = z.object({
|
|
|
140
141
|
className: z.string().optional(),
|
|
141
142
|
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon from `@phosphor-icons/react` or a React element. Rendered before children.
|
|
142
143
|
loading: z.boolean().optional(), // Shows a loading spinner and disables interaction.
|
|
144
|
+
title: z.string().optional(),
|
|
143
145
|
id: z.string().optional(),
|
|
144
146
|
lang: z.string().optional(),
|
|
145
|
-
title: z.string().optional(),
|
|
146
147
|
disabled: z.boolean().optional(),
|
|
147
148
|
name: z.string().optional(),
|
|
148
149
|
type: z.enum(["submit", "reset", "button"]).optional(),
|
|
@@ -166,6 +167,7 @@ export const CheckboxPropsSchema = z.object({
|
|
|
166
167
|
export const ClipboardTextPropsSchema = z.object({
|
|
167
168
|
size: z.enum(["sm", "base", "lg"]).optional(), // Size of the clipboard text field. - `"sm"` — Small clipboard text for compact UIs - `"base"` — Default clipboard text size - `"lg"` — Large clipboard text for prominent display
|
|
168
169
|
text: z.string(), // The text to display and copy to clipboard.
|
|
170
|
+
textToCopy: z.string().optional(), // If provided, this text will be copied to clipboard instead of the `text` prop.
|
|
169
171
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
170
172
|
tooltip: z.unknown().optional(), // Tooltip config. Shows tooltip on hover, anchored toast on click.
|
|
171
173
|
labels: z.unknown().optional(), // Accessible labels for i18n.
|
|
@@ -463,6 +465,7 @@ export const ComboboxPropsSchema = z.object({
|
|
|
463
465
|
export const CommandPalettePropsSchema = z.object({
|
|
464
466
|
open: z.boolean(), // Whether the dialog is open
|
|
465
467
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child content - typically one or more Panel components
|
|
468
|
+
container: z.unknown().optional(), // Container element for the portal. Use this to render the command palette inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
|
|
466
469
|
});
|
|
467
470
|
|
|
468
471
|
export const DatePickerPropsSchema = z.object({
|
|
@@ -482,6 +485,7 @@ export const DateRangePickerPropsSchema = z.object({
|
|
|
482
485
|
export const DialogPropsSchema = z.object({
|
|
483
486
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
484
487
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Dialog content (typically Title, Description, Close, and action buttons).
|
|
488
|
+
container: z.unknown().optional(), // Container element for the portal. Use this to render the dialog inside a Shadow DOM or custom container. Overrides `KumoPortalProvider` context.
|
|
485
489
|
size: z.enum(["base", "sm", "lg", "xl"]).optional(), // Dialog width. - `"sm"` — Small (min 288px) for simple confirmations - `"base"` — Default (min 384px) - `"lg"` — Large (min 512px) for complex content - `"xl"` — Extra large (min 768px) for detailed views
|
|
486
490
|
});
|
|
487
491
|
|
|
@@ -674,9 +678,13 @@ export const SidebarPropsSchema = z.object({
|
|
|
674
678
|
});
|
|
675
679
|
|
|
676
680
|
export const SurfacePropsSchema = z.object({
|
|
677
|
-
as: z.unknown().optional(),
|
|
678
|
-
|
|
679
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
681
|
+
as: z.unknown().optional(),
|
|
682
|
+
render: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Allows you to replace the component’s HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
|
|
683
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
684
|
+
className: z.string().optional(),
|
|
685
|
+
id: z.string().optional(),
|
|
686
|
+
lang: z.string().optional(),
|
|
687
|
+
title: z.string().optional(),
|
|
680
688
|
});
|
|
681
689
|
|
|
682
690
|
export const SwitchPropsSchema = z.object({
|
|
@@ -702,6 +710,7 @@ export const SwitchPropsSchema = z.object({
|
|
|
702
710
|
export const TablePropsSchema = z.object({
|
|
703
711
|
layout: z.enum(["auto", "fixed"]).optional(),
|
|
704
712
|
variant: z.enum(["default", "selected"]).optional(),
|
|
713
|
+
sticky: z.enum(["left", "right"]).optional(),
|
|
705
714
|
className: z.string().optional(), // Additional CSS classes
|
|
706
715
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
707
716
|
});
|
|
@@ -722,6 +731,7 @@ export const TextPropsSchema = z.object({
|
|
|
722
731
|
variant: z.enum(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(), // Text style variant. Determines color, font, and weight. - `"heading1"` — Large page title (30px, semibold) - `"heading2"` — Section title (24px, semibold) - `"heading3"` — Subsection title (18px, semibold) - `"body"` — Default body text - `"secondary"` — Muted text for secondary information - `"success"` — Success state text - `"error"` — Error state text - `"mono"` — Monospace text for code - `"mono-secondary"` — Muted monospace text
|
|
723
732
|
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Text size (only applies to body/secondary/success/error variants). - `"xs"` — 12px - `"sm"` — 14px - `"base"` — 16px - `"lg"` — 18px
|
|
724
733
|
bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants).
|
|
734
|
+
truncate: z.boolean().optional(), // Whether to truncate overflowing text with an ellipsis. Adds `truncate min-w-0` classes.
|
|
725
735
|
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
726
736
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Text content.
|
|
727
737
|
});
|
package/dist/.build-complete
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1775226904078
|