@cloudflare/kumo 1.3.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/ai/USAGE.md +193 -0
- package/ai/component-registry.json +1425 -237
- package/ai/component-registry.md +531 -67
- package/ai/schemas.ts +366 -107
- package/dist/.build-complete +1 -1
- package/dist/badge-Dc99vsfo.js.map +1 -1
- package/dist/banner-4fkH6Sbt.js.map +1 -1
- package/dist/breadcrumbs-DyKi7BcP.js.map +1 -1
- package/dist/button-Bh96oxRL.js.map +1 -1
- package/dist/catalog.js +1 -1
- package/dist/checkbox-C1LPq8eL.js.map +1 -1
- package/dist/clipboard-text-CJSI9X2m.js.map +1 -1
- package/dist/cloudflare-logo-Dqd1VD9z.js +166 -0
- package/dist/cloudflare-logo-Dqd1VD9z.js.map +1 -0
- package/dist/code-T2wPDiM0.js.map +1 -1
- package/dist/collapsible-OBNkTO48.js.map +1 -1
- package/dist/combobox-CWxn5aHA.js.map +1 -1
- package/dist/command-line/cli.js +46 -21
- package/dist/command-line/commands/ai.js +23 -0
- package/dist/command-line/commands/blocks.js +2 -2
- package/dist/command-line/commands/doc.js +3 -3
- package/dist/command-line/commands/ls.js +4 -4
- package/dist/{command-palette-BxmGYxBv.js → command-palette-J50WKjS7.js} +14 -8
- package/dist/command-palette-J50WKjS7.js.map +1 -0
- package/dist/components/cloudflare-logo.js +10 -0
- package/dist/components/cloudflare-logo.js.map +1 -0
- package/dist/components/command-palette.js +1 -1
- package/dist/date-range-picker-CbKEQ9pi.js.map +1 -1
- package/dist/dialog-x9n9wI13.js.map +1 -1
- package/dist/dropdown-BAyk1knz.js.map +1 -1
- package/dist/empty-D03cbzRS.js.map +1 -1
- package/dist/field-B7ORz5ej.js.map +1 -1
- package/dist/grid-DKajRHh8.js.map +1 -1
- package/dist/index.js +67 -61
- package/dist/index.js.map +1 -1
- package/dist/input-D6YgDfDG.js.map +1 -1
- package/dist/label-B4FY8MX_.js.map +1 -1
- package/dist/layer-card-C8j5Hkkj.js.map +1 -1
- package/dist/link-CcuZKqob.js.map +1 -1
- package/dist/loader-DHGMYlC6.js.map +1 -1
- package/dist/menubar-CzimiryS.js.map +1 -1
- package/dist/meter-BrJnHJ3Q.js.map +1 -1
- package/dist/pagination-D0x9KQSk.js.map +1 -1
- package/dist/popover-CtKDH8Yc.js.map +1 -1
- package/dist/radio-CYejLANA.js.map +1 -1
- package/dist/schemas-DCw6TIy0.js +3859 -0
- package/dist/{schemas-C2YJKpDC.js.map → schemas-DCw6TIy0.js.map} +1 -1
- package/dist/select-D4rKQAax.js.map +1 -1
- package/dist/sensitive-input-DYvAmxkN.js.map +1 -1
- package/dist/src/command-line/commands/ai.d.ts +10 -0
- package/dist/src/command-line/commands/ai.d.ts.map +1 -0
- package/dist/src/components/badge/badge.d.ts +31 -4
- package/dist/src/components/badge/badge.d.ts.map +1 -1
- package/dist/src/components/banner/banner.d.ts +39 -4
- package/dist/src/components/banner/banner.d.ts.map +1 -1
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +35 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/src/components/button/button.d.ts +86 -0
- package/dist/src/components/button/button.d.ts.map +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts +7 -0
- package/dist/src/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/src/components/clipboard-text/clipboard-text.d.ts +28 -3
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts +133 -0
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts.map +1 -0
- package/dist/src/components/cloudflare-logo/index.d.ts +2 -0
- package/dist/src/components/cloudflare-logo/index.d.ts.map +1 -0
- package/dist/src/components/code/code.d.ts +38 -6
- package/dist/src/components/code/code.d.ts.map +1 -1
- package/dist/src/components/collapsible/collapsible.d.ts +10 -0
- package/dist/src/components/collapsible/collapsible.d.ts.map +1 -1
- package/dist/src/components/combobox/combobox.d.ts +61 -0
- package/dist/src/components/combobox/combobox.d.ts.map +1 -1
- package/dist/src/components/command-palette/command-palette.d.ts +41 -6
- package/dist/src/components/command-palette/command-palette.d.ts.map +1 -1
- package/dist/src/components/date-range-picker/date-range-picker.d.ts +57 -4
- package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/src/components/dialog/dialog.d.ts +27 -0
- package/dist/src/components/dialog/dialog.d.ts.map +1 -1
- package/dist/src/components/dropdown/dropdown.d.ts +33 -0
- package/dist/src/components/dropdown/dropdown.d.ts.map +1 -1
- package/dist/src/components/empty/empty.d.ts +35 -0
- package/dist/src/components/empty/empty.d.ts.map +1 -1
- package/dist/src/components/field/field.d.ts +34 -4
- package/dist/src/components/field/field.d.ts.map +1 -1
- package/dist/src/components/grid/grid.d.ts +45 -17
- package/dist/src/components/grid/grid.d.ts.map +1 -1
- package/dist/src/components/input/input.d.ts +15 -0
- package/dist/src/components/input/input.d.ts.map +1 -1
- package/dist/src/components/label/label.d.ts +16 -5
- package/dist/src/components/label/label.d.ts.map +1 -1
- package/dist/src/components/layer-card/layer-card.d.ts +13 -0
- package/dist/src/components/layer-card/layer-card.d.ts.map +1 -1
- package/dist/src/components/link/link.d.ts +20 -0
- package/dist/src/components/link/link.d.ts.map +1 -1
- package/dist/src/components/loader/loader.d.ts +34 -0
- package/dist/src/components/loader/loader.d.ts.map +1 -1
- package/dist/src/components/menubar/menubar.d.ts +44 -0
- package/dist/src/components/menubar/menubar.d.ts.map +1 -1
- package/dist/src/components/meter/meter.d.ts +26 -0
- package/dist/src/components/meter/meter.d.ts.map +1 -1
- package/dist/src/components/pagination/pagination.d.ts +25 -0
- package/dist/src/components/pagination/pagination.d.ts.map +1 -1
- package/dist/src/components/popover/popover.d.ts +33 -5
- package/dist/src/components/popover/popover.d.ts.map +1 -1
- package/dist/src/components/radio/radio.d.ts +22 -0
- package/dist/src/components/radio/radio.d.ts.map +1 -1
- package/dist/src/components/select/select.d.ts +42 -20
- package/dist/src/components/select/select.d.ts.map +1 -1
- package/dist/src/components/sensitive-input/sensitive-input.d.ts +30 -6
- package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -1
- package/dist/src/components/surface/surface.d.ts +18 -6
- package/dist/src/components/surface/surface.d.ts.map +1 -1
- package/dist/src/components/switch/switch.d.ts +14 -0
- package/dist/src/components/switch/switch.d.ts.map +1 -1
- package/dist/src/components/table/table.d.ts +33 -0
- package/dist/src/components/table/table.d.ts.map +1 -1
- package/dist/src/components/tabs/tabs.d.ts +48 -9
- package/dist/src/components/tabs/tabs.d.ts.map +1 -1
- package/dist/src/components/text/text.d.ts +35 -7
- package/dist/src/components/text/text.d.ts.map +1 -1
- package/dist/src/components/toast/toast.d.ts +34 -0
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/src/components/tooltip/tooltip.d.ts +41 -0
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/surface-BIC6CXiz.js.map +1 -1
- package/dist/switch-z7FE1nQE.js.map +1 -1
- package/dist/table-Sd2Etb1N.js.map +1 -1
- package/dist/tabs-DAEeuQLd.js.map +1 -1
- package/dist/text-BEhqwMfe.js.map +1 -1
- package/dist/toast-B8ebpHaU.js.map +1 -1
- package/dist/tooltip-C4DRhJi1.js.map +1 -1
- package/package.json +7 -3
- package/dist/command-palette-BxmGYxBv.js.map +0 -1
- package/dist/schemas-C2YJKpDC.js +0 -3543
package/ai/schemas.ts
CHANGED
|
@@ -111,33 +111,33 @@ export type Action = z.infer<typeof ActionSchema>;
|
|
|
111
111
|
// =============================================================================
|
|
112
112
|
|
|
113
113
|
export const BadgePropsSchema = z.object({
|
|
114
|
-
variant: z.enum(["primary", "secondary", "destructive", "outline", "beta"]).optional(),
|
|
115
|
-
className: z.string().optional(),
|
|
116
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
114
|
+
variant: z.enum(["primary", "secondary", "destructive", "outline", "beta"]).optional(), // Visual style of the badge. - `"primary"` — High-emphasis badge for important labels - `"secondary"` — Subtle badge for secondary information - `"destructive"` — Error or danger state indicator - `"outline"` — Bordered badge with transparent background - `"beta"` — Dashed-border badge for beta/experimental features
|
|
115
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
116
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the badge.
|
|
117
117
|
});
|
|
118
118
|
|
|
119
119
|
export const BannerPropsSchema = z.object({
|
|
120
|
-
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
120
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`).
|
|
121
121
|
text: z.string().optional(),
|
|
122
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
123
|
-
variant: z.enum(["default", "alert", "error"]).optional(),
|
|
124
|
-
className: z.string().optional(),
|
|
122
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Banner message content. Accepts strings or custom React elements.
|
|
123
|
+
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
|
|
124
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
125
125
|
});
|
|
126
126
|
|
|
127
127
|
export const BreadcrumbsPropsSchema = z.object({
|
|
128
|
-
size: z.enum(["sm", "base"]).optional(),
|
|
128
|
+
size: z.enum(["sm", "base"]).optional(), // Size of the breadcrumbs. - `"sm"` — Compact breadcrumbs for dense UIs - `"base"` — Default breadcrumbs size
|
|
129
129
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
130
|
-
className: z.string().optional(),
|
|
130
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
131
131
|
});
|
|
132
132
|
|
|
133
133
|
export const ButtonPropsSchema = z.object({
|
|
134
134
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
135
135
|
className: z.string().optional(),
|
|
136
|
-
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
137
|
-
loading: z.boolean().optional(),
|
|
138
|
-
shape: z.enum(["base", "square", "circle"]).optional(),
|
|
139
|
-
size: z.enum(["xs", "sm", "base", "lg"]).optional(),
|
|
140
|
-
variant: z.enum(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
|
|
136
|
+
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.
|
|
137
|
+
loading: z.boolean().optional(), // Shows a loading spinner and disables interaction.
|
|
138
|
+
shape: z.enum(["base", "square", "circle"]).optional(), // Button shape. - `"base"` — Default rectangular button - `"square"` — Square button for icon-only actions - `"circle"` — Circular button for icon-only actions
|
|
139
|
+
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Button size. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary actions - `"base"` — Default size - `"lg"` — Large for primary CTAs
|
|
140
|
+
variant: z.enum(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(), // Visual style of the button. - `"primary"` — High-emphasis, brand-colored for primary actions - `"secondary"` — Default style with border for most actions - `"ghost"` — Minimal, no background for tertiary actions - `"destructive"` — Danger button for destructive actions - `"secondary-destructive"` — Secondary style with destructive text - `"outline"` — Bordered with transparent background
|
|
141
141
|
id: z.string().optional(),
|
|
142
142
|
lang: z.string().optional(),
|
|
143
143
|
title: z.string().optional(),
|
|
@@ -162,16 +162,273 @@ export const CheckboxPropsSchema = z.object({
|
|
|
162
162
|
});
|
|
163
163
|
|
|
164
164
|
export const ClipboardTextPropsSchema = z.object({
|
|
165
|
-
size: z.enum(["sm", "base", "lg"]).optional(),
|
|
166
|
-
text: z.string(), // The text to display and copy to clipboard
|
|
167
|
-
className: z.string().optional(), // Additional CSS classes
|
|
165
|
+
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
|
|
166
|
+
text: z.string(), // The text to display and copy to clipboard.
|
|
167
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
export const CloudflareLogoPropsSchema = z.object({
|
|
171
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
172
|
+
className: z.string().optional(),
|
|
173
|
+
height: z.unknown().optional(),
|
|
174
|
+
id: z.string().optional(),
|
|
175
|
+
lang: z.string().optional(),
|
|
176
|
+
media: z.string().optional(),
|
|
177
|
+
method: z.string().optional(),
|
|
178
|
+
name: z.string().optional(),
|
|
179
|
+
target: z.string().optional(),
|
|
180
|
+
type: z.string().optional(),
|
|
181
|
+
width: z.unknown().optional(),
|
|
182
|
+
accentHeight: z.unknown().optional(),
|
|
183
|
+
accumulate: z.enum(["none", "sum"]).optional(),
|
|
184
|
+
additive: z.enum(["replace", "sum"]).optional(),
|
|
185
|
+
alignmentBaseline: z.enum(["auto", "baseline", "before-edge", "text-before-edge", "middle", "central", "after-edge", "text-after-edge", "ideographic", "alphabetic", "hanging", "mathematical", "inherit"]).optional(),
|
|
186
|
+
allowReorder: z.enum(["no", "yes"]).optional(),
|
|
187
|
+
alphabetic: z.unknown().optional(),
|
|
188
|
+
amplitude: z.unknown().optional(),
|
|
189
|
+
arabicForm: z.enum(["initial", "medial", "terminal", "isolated"]).optional(),
|
|
190
|
+
ascent: z.unknown().optional(),
|
|
191
|
+
attributeName: z.string().optional(),
|
|
192
|
+
attributeType: z.string().optional(),
|
|
193
|
+
autoReverse: z.unknown().optional(),
|
|
194
|
+
azimuth: z.unknown().optional(),
|
|
195
|
+
baseFrequency: z.unknown().optional(),
|
|
196
|
+
baselineShift: z.unknown().optional(),
|
|
197
|
+
baseProfile: z.unknown().optional(),
|
|
198
|
+
bbox: z.unknown().optional(),
|
|
199
|
+
begin: z.unknown().optional(),
|
|
200
|
+
bias: z.unknown().optional(),
|
|
201
|
+
by: z.unknown().optional(),
|
|
202
|
+
calcMode: z.unknown().optional(),
|
|
203
|
+
capHeight: z.unknown().optional(),
|
|
204
|
+
clip: z.unknown().optional(),
|
|
205
|
+
clipPath: z.string().optional(),
|
|
206
|
+
clipPathUnits: z.unknown().optional(),
|
|
207
|
+
clipRule: z.unknown().optional(),
|
|
208
|
+
colorInterpolation: z.unknown().optional(),
|
|
209
|
+
colorInterpolationFilters: z.enum(["auto", "sRGB", "linearRGB", "inherit"]).optional(),
|
|
210
|
+
colorProfile: z.unknown().optional(),
|
|
211
|
+
colorRendering: z.unknown().optional(),
|
|
212
|
+
contentScriptType: z.unknown().optional(),
|
|
213
|
+
contentStyleType: z.unknown().optional(),
|
|
214
|
+
cursor: z.unknown().optional(),
|
|
215
|
+
cx: z.unknown().optional(),
|
|
216
|
+
cy: z.unknown().optional(),
|
|
217
|
+
d: z.string().optional(),
|
|
218
|
+
decelerate: z.unknown().optional(),
|
|
219
|
+
descent: z.unknown().optional(),
|
|
220
|
+
diffuseConstant: z.unknown().optional(),
|
|
221
|
+
direction: z.unknown().optional(),
|
|
222
|
+
display: z.unknown().optional(),
|
|
223
|
+
divisor: z.unknown().optional(),
|
|
224
|
+
dominantBaseline: z.enum(["auto", "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge", "inherit"]).optional(),
|
|
225
|
+
dur: z.unknown().optional(),
|
|
226
|
+
dx: z.unknown().optional(),
|
|
227
|
+
dy: z.unknown().optional(),
|
|
228
|
+
edgeMode: z.unknown().optional(),
|
|
229
|
+
elevation: z.unknown().optional(),
|
|
230
|
+
enableBackground: z.unknown().optional(),
|
|
231
|
+
end: z.unknown().optional(),
|
|
232
|
+
exponent: z.unknown().optional(),
|
|
233
|
+
externalResourcesRequired: z.unknown().optional(),
|
|
234
|
+
fill: z.string().optional(),
|
|
235
|
+
fillOpacity: z.unknown().optional(),
|
|
236
|
+
fillRule: z.enum(["nonzero", "evenodd", "inherit"]).optional(),
|
|
237
|
+
filter: z.string().optional(),
|
|
238
|
+
filterRes: z.unknown().optional(),
|
|
239
|
+
filterUnits: z.unknown().optional(),
|
|
240
|
+
floodColor: z.unknown().optional(),
|
|
241
|
+
floodOpacity: z.unknown().optional(),
|
|
242
|
+
focusable: z.unknown().optional(),
|
|
243
|
+
fontFamily: z.string().optional(),
|
|
244
|
+
fontSize: z.unknown().optional(),
|
|
245
|
+
fontSizeAdjust: z.unknown().optional(),
|
|
246
|
+
fontStretch: z.unknown().optional(),
|
|
247
|
+
fontStyle: z.unknown().optional(),
|
|
248
|
+
fontVariant: z.unknown().optional(),
|
|
249
|
+
fontWeight: z.unknown().optional(),
|
|
250
|
+
format: z.unknown().optional(),
|
|
251
|
+
fr: z.unknown().optional(),
|
|
252
|
+
from: z.unknown().optional(),
|
|
253
|
+
fx: z.unknown().optional(),
|
|
254
|
+
fy: z.unknown().optional(),
|
|
255
|
+
g1: z.unknown().optional(),
|
|
256
|
+
g2: z.unknown().optional(),
|
|
257
|
+
glyphName: z.unknown().optional(),
|
|
258
|
+
glyphOrientationHorizontal: z.unknown().optional(),
|
|
259
|
+
glyphOrientationVertical: z.unknown().optional(),
|
|
260
|
+
glyphRef: z.unknown().optional(),
|
|
261
|
+
gradientTransform: z.string().optional(),
|
|
262
|
+
gradientUnits: z.string().optional(),
|
|
263
|
+
hanging: z.unknown().optional(),
|
|
264
|
+
horizAdvX: z.unknown().optional(),
|
|
265
|
+
horizOriginX: z.unknown().optional(),
|
|
266
|
+
href: z.string().optional(),
|
|
267
|
+
ideographic: z.unknown().optional(),
|
|
268
|
+
imageRendering: z.unknown().optional(),
|
|
269
|
+
in2: z.unknown().optional(),
|
|
270
|
+
in: z.string().optional(),
|
|
271
|
+
intercept: z.unknown().optional(),
|
|
272
|
+
k1: z.unknown().optional(),
|
|
273
|
+
k2: z.unknown().optional(),
|
|
274
|
+
k3: z.unknown().optional(),
|
|
275
|
+
k4: z.unknown().optional(),
|
|
276
|
+
k: z.unknown().optional(),
|
|
277
|
+
kernelMatrix: z.unknown().optional(),
|
|
278
|
+
kernelUnitLength: z.unknown().optional(),
|
|
279
|
+
kerning: z.unknown().optional(),
|
|
280
|
+
keyPoints: z.unknown().optional(),
|
|
281
|
+
keySplines: z.unknown().optional(),
|
|
282
|
+
keyTimes: z.unknown().optional(),
|
|
283
|
+
lengthAdjust: z.unknown().optional(),
|
|
284
|
+
letterSpacing: z.unknown().optional(),
|
|
285
|
+
lightingColor: z.unknown().optional(),
|
|
286
|
+
limitingConeAngle: z.unknown().optional(),
|
|
287
|
+
local: z.unknown().optional(),
|
|
288
|
+
markerEnd: z.string().optional(),
|
|
289
|
+
markerHeight: z.unknown().optional(),
|
|
290
|
+
markerMid: z.string().optional(),
|
|
291
|
+
markerStart: z.string().optional(),
|
|
292
|
+
markerUnits: z.unknown().optional(),
|
|
293
|
+
markerWidth: z.unknown().optional(),
|
|
294
|
+
mask: z.string().optional(),
|
|
295
|
+
maskContentUnits: z.unknown().optional(),
|
|
296
|
+
maskUnits: z.unknown().optional(),
|
|
297
|
+
mathematical: z.unknown().optional(),
|
|
298
|
+
mode: z.unknown().optional(),
|
|
299
|
+
numOctaves: z.unknown().optional(),
|
|
300
|
+
offset: z.unknown().optional(),
|
|
301
|
+
opacity: z.unknown().optional(),
|
|
302
|
+
operator: z.unknown().optional(),
|
|
303
|
+
order: z.unknown().optional(),
|
|
304
|
+
orient: z.unknown().optional(),
|
|
305
|
+
orientation: z.unknown().optional(),
|
|
306
|
+
origin: z.unknown().optional(),
|
|
307
|
+
overflow: z.unknown().optional(),
|
|
308
|
+
overlinePosition: z.unknown().optional(),
|
|
309
|
+
overlineThickness: z.unknown().optional(),
|
|
310
|
+
paintOrder: z.unknown().optional(),
|
|
311
|
+
panose1: z.unknown().optional(),
|
|
312
|
+
path: z.string().optional(),
|
|
313
|
+
pathLength: z.unknown().optional(),
|
|
314
|
+
patternContentUnits: z.string().optional(),
|
|
315
|
+
patternTransform: z.unknown().optional(),
|
|
316
|
+
patternUnits: z.string().optional(),
|
|
317
|
+
pointerEvents: z.unknown().optional(),
|
|
318
|
+
points: z.string().optional(),
|
|
319
|
+
pointsAtX: z.unknown().optional(),
|
|
320
|
+
pointsAtY: z.unknown().optional(),
|
|
321
|
+
pointsAtZ: z.unknown().optional(),
|
|
322
|
+
preserveAlpha: z.unknown().optional(),
|
|
323
|
+
preserveAspectRatio: z.string().optional(),
|
|
324
|
+
primitiveUnits: z.unknown().optional(),
|
|
325
|
+
r: z.unknown().optional(),
|
|
326
|
+
radius: z.unknown().optional(),
|
|
327
|
+
refX: z.unknown().optional(),
|
|
328
|
+
refY: z.unknown().optional(),
|
|
329
|
+
renderingIntent: z.unknown().optional(),
|
|
330
|
+
repeatCount: z.unknown().optional(),
|
|
331
|
+
repeatDur: z.unknown().optional(),
|
|
332
|
+
requiredExtensions: z.unknown().optional(),
|
|
333
|
+
requiredFeatures: z.unknown().optional(),
|
|
334
|
+
restart: z.unknown().optional(),
|
|
335
|
+
result: z.string().optional(),
|
|
336
|
+
rotate: z.unknown().optional(),
|
|
337
|
+
rx: z.unknown().optional(),
|
|
338
|
+
ry: z.unknown().optional(),
|
|
339
|
+
scale: z.unknown().optional(),
|
|
340
|
+
seed: z.unknown().optional(),
|
|
341
|
+
shapeRendering: z.unknown().optional(),
|
|
342
|
+
slope: z.unknown().optional(),
|
|
343
|
+
spacing: z.unknown().optional(),
|
|
344
|
+
specularConstant: z.unknown().optional(),
|
|
345
|
+
specularExponent: z.unknown().optional(),
|
|
346
|
+
speed: z.unknown().optional(),
|
|
347
|
+
spreadMethod: z.string().optional(),
|
|
348
|
+
startOffset: z.unknown().optional(),
|
|
349
|
+
stdDeviation: z.unknown().optional(),
|
|
350
|
+
stemh: z.unknown().optional(),
|
|
351
|
+
stemv: z.unknown().optional(),
|
|
352
|
+
stitchTiles: z.unknown().optional(),
|
|
353
|
+
stopColor: z.string().optional(),
|
|
354
|
+
stopOpacity: z.unknown().optional(),
|
|
355
|
+
strikethroughPosition: z.unknown().optional(),
|
|
356
|
+
strikethroughThickness: z.unknown().optional(),
|
|
357
|
+
string: z.unknown().optional(),
|
|
358
|
+
stroke: z.string().optional(),
|
|
359
|
+
strokeDasharray: z.unknown().optional(),
|
|
360
|
+
strokeDashoffset: z.unknown().optional(),
|
|
361
|
+
strokeLinecap: z.enum(["butt", "round", "square", "inherit"]).optional(),
|
|
362
|
+
strokeLinejoin: z.enum(["miter", "round", "bevel", "inherit"]).optional(),
|
|
363
|
+
strokeMiterlimit: z.unknown().optional(),
|
|
364
|
+
strokeOpacity: z.unknown().optional(),
|
|
365
|
+
strokeWidth: z.unknown().optional(),
|
|
366
|
+
surfaceScale: z.unknown().optional(),
|
|
367
|
+
systemLanguage: z.unknown().optional(),
|
|
368
|
+
tableValues: z.unknown().optional(),
|
|
369
|
+
targetX: z.unknown().optional(),
|
|
370
|
+
targetY: z.unknown().optional(),
|
|
371
|
+
textAnchor: z.enum(["start", "middle", "end", "inherit"]).optional(),
|
|
372
|
+
textDecoration: z.unknown().optional(),
|
|
373
|
+
textLength: z.unknown().optional(),
|
|
374
|
+
textRendering: z.unknown().optional(),
|
|
375
|
+
to: z.unknown().optional(),
|
|
376
|
+
transform: z.string().optional(),
|
|
377
|
+
u1: z.unknown().optional(),
|
|
378
|
+
u2: z.unknown().optional(),
|
|
379
|
+
underlinePosition: z.unknown().optional(),
|
|
380
|
+
underlineThickness: z.unknown().optional(),
|
|
381
|
+
unicode: z.unknown().optional(),
|
|
382
|
+
unicodeBidi: z.unknown().optional(),
|
|
383
|
+
unicodeRange: z.unknown().optional(),
|
|
384
|
+
unitsPerEm: z.unknown().optional(),
|
|
385
|
+
vAlphabetic: z.unknown().optional(),
|
|
386
|
+
values: z.string().optional(),
|
|
387
|
+
vectorEffect: z.unknown().optional(),
|
|
388
|
+
version: z.string().optional(),
|
|
389
|
+
vertAdvY: z.unknown().optional(),
|
|
390
|
+
vertOriginX: z.unknown().optional(),
|
|
391
|
+
vertOriginY: z.unknown().optional(),
|
|
392
|
+
vHanging: z.unknown().optional(),
|
|
393
|
+
vIdeographic: z.unknown().optional(),
|
|
394
|
+
viewBox: z.string().optional(),
|
|
395
|
+
viewTarget: z.unknown().optional(),
|
|
396
|
+
visibility: z.unknown().optional(),
|
|
397
|
+
vMathematical: z.unknown().optional(),
|
|
398
|
+
widths: z.unknown().optional(),
|
|
399
|
+
wordSpacing: z.unknown().optional(),
|
|
400
|
+
writingMode: z.unknown().optional(),
|
|
401
|
+
x1: z.unknown().optional(),
|
|
402
|
+
x2: z.unknown().optional(),
|
|
403
|
+
x: z.unknown().optional(),
|
|
404
|
+
xChannelSelector: z.string().optional(),
|
|
405
|
+
xHeight: z.unknown().optional(),
|
|
406
|
+
xlinkActuate: z.string().optional(),
|
|
407
|
+
xlinkArcrole: z.string().optional(),
|
|
408
|
+
xlinkHref: z.string().optional(),
|
|
409
|
+
xlinkRole: z.string().optional(),
|
|
410
|
+
xlinkShow: z.string().optional(),
|
|
411
|
+
xlinkTitle: z.string().optional(),
|
|
412
|
+
xlinkType: z.string().optional(),
|
|
413
|
+
xmlBase: z.string().optional(),
|
|
414
|
+
xmlLang: z.string().optional(),
|
|
415
|
+
xmlns: z.string().optional(),
|
|
416
|
+
xmlnsXlink: z.string().optional(),
|
|
417
|
+
xmlSpace: z.string().optional(),
|
|
418
|
+
y1: z.unknown().optional(),
|
|
419
|
+
y2: z.unknown().optional(),
|
|
420
|
+
y: z.unknown().optional(),
|
|
421
|
+
yChannelSelector: z.string().optional(),
|
|
422
|
+
z: z.unknown().optional(),
|
|
423
|
+
zoomAndPan: z.string().optional(),
|
|
424
|
+
variant: z.enum(["glyph", "full"]).optional(), // Logo variant - `glyph`: Cloud icon only - `full`: Cloud icon with "CLOUDFLARE" wordmark below
|
|
168
425
|
});
|
|
169
426
|
|
|
170
427
|
export const CodePropsSchema = z.object({
|
|
171
|
-
lang: z.enum(["ts", "tsx", "jsonc", "bash", "css"]).optional(),
|
|
172
|
-
code: z.string(), // The code
|
|
173
|
-
values: z.unknown().optional(), // Template values for interpolation
|
|
174
|
-
className: z.string().optional(), // Additional CSS classes
|
|
428
|
+
lang: z.enum(["ts", "tsx", "jsonc", "bash", "css"]).optional(), // Language hint for the code content. - `"ts"` — TypeScript code - `"tsx"` — TypeScript JSX code - `"jsonc"` — JSON with comments - `"bash"` — Shell/Bash commands - `"css"` — CSS styles
|
|
429
|
+
code: z.string(), // The code string to display.
|
|
430
|
+
values: z.unknown().optional(), // Template values for `{{key}}` interpolation. Values with `highlight: true` are visually emphasized.
|
|
431
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
175
432
|
});
|
|
176
433
|
|
|
177
434
|
export const CollapsiblePropsSchema = z.object({
|
|
@@ -183,7 +440,7 @@ export const CollapsiblePropsSchema = z.object({
|
|
|
183
440
|
});
|
|
184
441
|
|
|
185
442
|
export const ComboboxPropsSchema = z.object({
|
|
186
|
-
inputSide: z.enum(["right", "top"]).optional(),
|
|
443
|
+
inputSide: z.enum(["right", "top"]).optional(), // Position of the text input relative to chips in multi-select mode. - `"right"` — Input inline to the right of chips - `"top"` — Input above chips
|
|
187
444
|
items: z.array(z.unknown()), // Array of items to display in the dropdown
|
|
188
445
|
value: z.array(z.unknown()).optional(), // Currently selected value(s)
|
|
189
446
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Combobox content (trigger, content, items)
|
|
@@ -204,53 +461,53 @@ export const CommandPalettePropsSchema = z.object({
|
|
|
204
461
|
});
|
|
205
462
|
|
|
206
463
|
export const DateRangePickerPropsSchema = z.object({
|
|
207
|
-
size: z.enum(["sm", "base", "lg"]).optional(),
|
|
208
|
-
variant: z.enum(["default", "subtle"]).optional(),
|
|
209
|
-
timezone: z.string().optional(), // Display timezone
|
|
210
|
-
className: z.string().optional(), // Additional CSS classes
|
|
464
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Calendar size. - `"sm"` — Compact calendar for tight spaces - `"base"` — Default calendar size - `"lg"` — Large calendar for prominent date selection
|
|
465
|
+
variant: z.enum(["default", "subtle"]).optional(), // Visual variant. - `"default"` — Standard appearance with overlay background - `"subtle"` — Minimal background
|
|
466
|
+
timezone: z.string().optional(), // Display timezone string shown in the footer.
|
|
467
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
211
468
|
onStartDateChange: z.unknown().optional(), // Callback when start date changes
|
|
212
469
|
onEndDateChange: z.unknown().optional(), // Callback when end date changes
|
|
213
470
|
});
|
|
214
471
|
|
|
215
472
|
export const DialogPropsSchema = z.object({
|
|
216
|
-
className: z.string().optional(),
|
|
217
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
218
|
-
size: z.enum(["base", "sm", "lg", "xl"]).optional(),
|
|
473
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
474
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Dialog content (typically Title, Description, Close, and action buttons).
|
|
475
|
+
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
|
|
219
476
|
});
|
|
220
477
|
|
|
221
478
|
export const DropdownMenuPropsSchema = z.object({
|
|
222
|
-
variant: z.enum(["default", "danger"]).optional(),
|
|
479
|
+
variant: z.enum(["default", "danger"]).optional(), // Visual style of the dropdown item. - `"default"` — Standard item appearance - `"danger"` — Destructive action with red text
|
|
223
480
|
});
|
|
224
481
|
|
|
225
482
|
export const EmptyPropsSchema = z.object({
|
|
226
|
-
size: z.enum(["sm", "base", "lg"]).optional(),
|
|
227
|
-
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
228
|
-
title: z.string(),
|
|
229
|
-
description: z.string().optional(),
|
|
230
|
-
commandLine: z.string().optional(),
|
|
231
|
-
contents: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
232
|
-
className: z.string().optional(),
|
|
483
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Size of the empty state container. - `"sm"` — Compact empty state for smaller containers - `"base"` — Default empty state size - `"lg"` — Large empty state for prominent placement
|
|
484
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
|
|
485
|
+
title: z.string(), // Primary heading text for the empty state.
|
|
486
|
+
description: z.string().optional(), // Secondary description text displayed below the title.
|
|
487
|
+
commandLine: z.string().optional(), // Shell command displayed in a copyable code block.
|
|
488
|
+
contents: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Additional content (buttons, links) rendered below the description.
|
|
489
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
233
490
|
});
|
|
234
491
|
|
|
235
492
|
export const FieldPropsSchema = z.object({
|
|
236
|
-
controlFirst: z.boolean().optional(), // When true
|
|
237
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
238
|
-
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content
|
|
239
|
-
required: z.boolean().optional(), // When explicitly false
|
|
240
|
-
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content
|
|
241
|
-
error: z.unknown().optional(),
|
|
242
|
-
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
493
|
+
controlFirst: z.boolean().optional(), // When `true`, places the control before the label (for checkbox/switch layouts).
|
|
494
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The form control element(s) to wrap (Input, Select, Checkbox, etc.).
|
|
495
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
|
|
496
|
+
required: z.boolean().optional(), // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
|
|
497
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
498
|
+
error: z.unknown().optional(), // Validation error with a message and a browser `ValidityState` match key.
|
|
499
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the control (hidden when `error` is present).
|
|
243
500
|
});
|
|
244
501
|
|
|
245
502
|
export const GridPropsSchema = z.object({
|
|
246
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), //
|
|
247
|
-
className: z.string().optional(), // CSS
|
|
503
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Grid items to render.
|
|
504
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
248
505
|
id: z.string().optional(),
|
|
249
506
|
lang: z.string().optional(),
|
|
250
507
|
title: z.string().optional(),
|
|
251
|
-
mobileDivider: z.boolean().optional(), // Show dividers between grid items on mobile (only works with 4up variant)
|
|
252
|
-
gap: z.enum(["none", "sm", "base", "lg"]).optional(), // Gap size between grid items
|
|
253
|
-
variant: z.enum(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional(), //
|
|
508
|
+
mobileDivider: z.boolean().optional(), // Show dividers between grid items on mobile (only works with `"4up"` variant).
|
|
509
|
+
gap: z.enum(["none", "sm", "base", "lg"]).optional(), // Gap size between grid items. - `"none"` — No gap - `"sm"` — 12px gap - `"base"` — Responsive gap (8px → 24px → 32px) - `"lg"` — 32px gap
|
|
510
|
+
variant: z.enum(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional(), // Responsive column layout variant. - `"2up"` — 1 col → 2 cols at md - `"side-by-side"` — Always 2 cols - `"2-1"` — 66%/33% split at md - `"1-2"` — 33%/66% split at md - `"3up"` — 1 → 2 → 3 cols - `"4up"` — 1 → 2 → 3 → 4 cols - `"6up"` — 2 → 3 → 4 → 6 cols - `"1-2-4up"` — 1 → 2 → 4 cols
|
|
254
511
|
});
|
|
255
512
|
|
|
256
513
|
export const InputPropsSchema = z.object({
|
|
@@ -258,27 +515,27 @@ export const InputPropsSchema = z.object({
|
|
|
258
515
|
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
259
516
|
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
|
|
260
517
|
error: z.unknown().optional(), // Error message or validation error object
|
|
261
|
-
size: z.enum(["xs", "sm", "base", "lg"]).optional(),
|
|
262
|
-
variant: z.enum(["default", "error"]).optional(),
|
|
518
|
+
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Input size. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default size - `"lg"` — Large for prominent fields
|
|
519
|
+
variant: z.enum(["default", "error"]).optional(), // Visual variant. - `"default"` — Standard input - `"error"` — Error state for validation failures
|
|
263
520
|
});
|
|
264
521
|
|
|
265
522
|
export const InputAreaPropsSchema = z.object({});
|
|
266
523
|
|
|
267
524
|
export const LabelPropsSchema = z.object({
|
|
268
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content
|
|
269
|
-
showOptional: z.boolean().optional(), // When true
|
|
270
|
-
tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content
|
|
271
|
-
className: z.string().optional(), // Additional CSS classes
|
|
272
|
-
asContent: z.boolean().optional(), // When true
|
|
525
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
|
|
526
|
+
showOptional: z.boolean().optional(), // When `true`, shows gray "(optional)" text after the label.
|
|
527
|
+
tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
528
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
529
|
+
asContent: z.boolean().optional(), // When `true`, only renders the inline content (indicators, tooltip) without the outer span with font styling. Useful when composed inside another label element that already provides the text styling.
|
|
273
530
|
});
|
|
274
531
|
|
|
275
532
|
export const LayerCardPropsSchema = z.object({
|
|
276
533
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
277
|
-
className: z.string().optional(),
|
|
534
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
278
535
|
});
|
|
279
536
|
|
|
280
537
|
export const LinkPropsSchema = z.object({
|
|
281
|
-
variant: z.enum(["inline", "current", "plain"]).optional(),
|
|
538
|
+
variant: z.enum(["inline", "current", "plain"]).optional(), // Visual style of the link. - `"inline"` — Inline text link that flows with content - `"current"` — Link that inherits color from parent text - `"plain"` — Link without underline decoration
|
|
282
539
|
to: z.string().optional(),
|
|
283
540
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
284
541
|
className: z.string().optional(),
|
|
@@ -297,23 +554,23 @@ export const LinkPropsSchema = z.object({
|
|
|
297
554
|
});
|
|
298
555
|
|
|
299
556
|
export const LoaderPropsSchema = z.object({
|
|
300
|
-
className: z.string().optional(),
|
|
301
|
-
size: z.enum(["sm", "base", "lg"]).optional(),
|
|
557
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
558
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Size of the spinner. Use a preset name or a custom pixel number. - `"sm"` — 16px, for inline use - `"base"` — 24px, default size - `"lg"` — 32px, for prominent loading states
|
|
302
559
|
});
|
|
303
560
|
|
|
304
561
|
export const MenuBarPropsSchema = z.object({
|
|
305
|
-
className: z.string().optional(),
|
|
306
|
-
isActive: z.unknown().optional(),
|
|
307
|
-
options: z.array(z.unknown()),
|
|
308
|
-
optionIds: z.boolean().optional(),
|
|
562
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
563
|
+
isActive: z.unknown().optional(), // The currently active option value — matched against option index or `id`.
|
|
564
|
+
options: z.array(z.unknown()), // Array of menu option configurations.
|
|
565
|
+
optionIds: z.boolean().optional(), // When true, each option's `id` field is used for matching instead of its array index.
|
|
309
566
|
});
|
|
310
567
|
|
|
311
568
|
export const MeterPropsSchema = z.object({
|
|
312
|
-
customValue: z.string().optional(),
|
|
313
|
-
label: z.string(),
|
|
314
|
-
showValue: z.boolean().optional(),
|
|
315
|
-
trackClassName: z.string().optional(),
|
|
316
|
-
indicatorClassName: z.string().optional(),
|
|
569
|
+
customValue: z.string().optional(), // Custom formatted value text (e.g. "750 / 1,000") displayed instead of percentage.
|
|
570
|
+
label: z.string(), // Label text displayed above the meter track.
|
|
571
|
+
showValue: z.boolean().optional(), // Whether to display the percentage value next to the label.
|
|
572
|
+
trackClassName: z.string().optional(), // Additional CSS classes for the track (background bar).
|
|
573
|
+
indicatorClassName: z.string().optional(), // Additional CSS classes for the indicator (filled bar).
|
|
317
574
|
value: z.number().optional(), // Current value of the meter
|
|
318
575
|
max: z.number().optional(), // Maximum value of the meter (default: 100)
|
|
319
576
|
min: z.number().optional(), // Minimum value of the meter (default: 0)
|
|
@@ -322,13 +579,13 @@ export const MeterPropsSchema = z.object({
|
|
|
322
579
|
export const PaginationPropsSchema = z.object({
|
|
323
580
|
controls: z.enum(["full", "simple"]).optional(),
|
|
324
581
|
setPage: z.unknown(), // Callback when page changes
|
|
325
|
-
page: z.number().optional(),
|
|
326
|
-
perPage: z.number().optional(),
|
|
327
|
-
totalCount: z.number().optional(),
|
|
582
|
+
page: z.number().optional(), // Current page number (1-indexed).
|
|
583
|
+
perPage: z.number().optional(), // Number of items displayed per page.
|
|
584
|
+
totalCount: z.number().optional(), // Total number of items across all pages.
|
|
328
585
|
});
|
|
329
586
|
|
|
330
587
|
export const PopoverPropsSchema = z.object({
|
|
331
|
-
side: z.enum(["top", "bottom", "left", "right"]).optional(),
|
|
588
|
+
side: z.enum(["top", "bottom", "left", "right"]).optional(), // Which side of the trigger the popover appears on. - `"top"` — Above the trigger - `"bottom"` — Below the trigger - `"left"` — Left of the trigger - `"right"` — Right of the trigger
|
|
332
589
|
});
|
|
333
590
|
|
|
334
591
|
export const RadioPropsSchema = z.object({
|
|
@@ -345,18 +602,18 @@ export const RadioPropsSchema = z.object({
|
|
|
345
602
|
});
|
|
346
603
|
|
|
347
604
|
export const SelectPropsSchema = z.object({
|
|
348
|
-
className: z.string().optional(), // Additional CSS classes
|
|
349
|
-
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the select (enables Field wrapper)
|
|
350
|
-
hideLabel: z.boolean().optional(), //
|
|
351
|
-
placeholder: z.string().optional(), // Placeholder text when no value is selected
|
|
352
|
-
loading: z.boolean().optional(), //
|
|
353
|
-
disabled: z.boolean().optional(), // Whether the select is disabled
|
|
354
|
-
required: z.boolean().optional(), // Whether the select is required
|
|
355
|
-
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content
|
|
356
|
-
value: z.string().optional(), //
|
|
357
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), //
|
|
358
|
-
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the select
|
|
359
|
-
error: z.unknown().optional(), // Error message or validation error object
|
|
605
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
606
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the select (enables Field wrapper) — can be a string or any React node.
|
|
607
|
+
hideLabel: z.boolean().optional(), // Visually hide the label while keeping it accessible to screen readers. Set to `false` to show a visible label above the select via the Field wrapper.
|
|
608
|
+
placeholder: z.string().optional(), // Placeholder text shown when no value is selected.
|
|
609
|
+
loading: z.boolean().optional(), // When `true`, shows a skeleton loader in place of the selected value.
|
|
610
|
+
disabled: z.boolean().optional(), // Whether the select is disabled.
|
|
611
|
+
required: z.boolean().optional(), // Whether the select is required. When `false`, shows "(optional)" text.
|
|
612
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
613
|
+
value: z.string().optional(), // Currently selected value (controlled mode).
|
|
614
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // `Select.Option` elements to render in the dropdown.
|
|
615
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the select.
|
|
616
|
+
error: z.unknown().optional(), // Error message string or validation error object with `match` key.
|
|
360
617
|
onValueChange: z.unknown().optional(), // Callback when selection changes
|
|
361
618
|
defaultValue: z.string().optional(), // Initial value for uncontrolled mode
|
|
362
619
|
});
|
|
@@ -379,8 +636,8 @@ export const SensitiveInputPropsSchema = z.object({
|
|
|
379
636
|
title: z.string().optional(),
|
|
380
637
|
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
381
638
|
value: z.string().optional(), // Controlled value
|
|
382
|
-
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size
|
|
383
|
-
variant: z.enum(["default", "error"]).optional(), // Style variant
|
|
639
|
+
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size of the input. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default input size - `"lg"` — Large for prominent fields
|
|
640
|
+
variant: z.enum(["default", "error"]).optional(), // Style variant of the input. - `"default"` — Default input appearance - `"error"` — Error state for validation failures
|
|
384
641
|
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
|
|
385
642
|
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
386
643
|
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
|
|
@@ -388,9 +645,9 @@ export const SensitiveInputPropsSchema = z.object({
|
|
|
388
645
|
});
|
|
389
646
|
|
|
390
647
|
export const SurfacePropsSchema = z.object({
|
|
391
|
-
as: z.unknown().optional(), // The element type to render as (
|
|
392
|
-
className: z.string().optional(), // Additional CSS classes
|
|
393
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), //
|
|
648
|
+
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"div"`, `"section"`, `"article"`).
|
|
649
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
650
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the surface.
|
|
394
651
|
});
|
|
395
652
|
|
|
396
653
|
export const SwitchPropsSchema = z.object({
|
|
@@ -421,23 +678,23 @@ export const TablePropsSchema = z.object({
|
|
|
421
678
|
});
|
|
422
679
|
|
|
423
680
|
export const TabsPropsSchema = z.object({
|
|
424
|
-
tabs: z.array(z.unknown()).optional(), // Array of tab items to render
|
|
681
|
+
tabs: z.array(z.unknown()).optional(), // Array of tab items to render.
|
|
425
682
|
value: z.string().optional(), // Controlled value. When set, component becomes controlled.
|
|
426
683
|
selectedValue: z.string().optional(), // Default selected value for uncontrolled mode. Ignored when `value` is set.
|
|
427
|
-
activateOnFocus: z.boolean().optional(), // When true
|
|
428
|
-
className: z.string().optional(), // Additional
|
|
429
|
-
listClassName: z.string().optional(), // Additional
|
|
430
|
-
indicatorClassName: z.string().optional(), // Additional
|
|
431
|
-
variant: z.enum(["segmented", "underline"]).optional(),
|
|
684
|
+
activateOnFocus: z.boolean().optional(), // When `true`, tabs are activated immediately upon receiving focus via arrow keys. When `false` (default), tabs receive focus but require Enter/Space to activate.
|
|
685
|
+
className: z.string().optional(), // Additional CSS classes for the root element.
|
|
686
|
+
listClassName: z.string().optional(), // Additional CSS classes for the tab list element.
|
|
687
|
+
indicatorClassName: z.string().optional(), // Additional CSS classes for the indicator element.
|
|
688
|
+
variant: z.enum(["segmented", "underline"]).optional(), // Tab style. - `"segmented"` — Pill-shaped indicator on a filled track - `"underline"` — Underline indicator below tab text
|
|
432
689
|
onValueChange: z.unknown().optional(), // Callback when active tab changes
|
|
433
690
|
});
|
|
434
691
|
|
|
435
692
|
export const TextPropsSchema = z.object({
|
|
436
|
-
variant: z.enum(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(), // Text style variant
|
|
437
|
-
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Text size (only applies to body/secondary/success/error variants)
|
|
438
|
-
bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants)
|
|
439
|
-
as: z.unknown().optional(), // The element type to render as
|
|
440
|
-
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), //
|
|
693
|
+
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
|
|
694
|
+
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
|
|
695
|
+
bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants).
|
|
696
|
+
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
697
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Text content.
|
|
441
698
|
});
|
|
442
699
|
|
|
443
700
|
export const ToastyPropsSchema = z.object({
|
|
@@ -447,10 +704,10 @@ export const ToastyPropsSchema = z.object({
|
|
|
447
704
|
});
|
|
448
705
|
|
|
449
706
|
export const TooltipPropsSchema = z.object({
|
|
450
|
-
align: z.enum(["start", "center", "end"]).optional(),
|
|
451
|
-
asChild: z.boolean().optional(),
|
|
452
|
-
className: z.string().optional(),
|
|
453
|
-
side: z.enum(["top", "bottom", "left", "right"]).optional(),
|
|
707
|
+
align: z.enum(["start", "center", "end"]).optional(), // Alignment on the axis perpendicular to `side`. - `"start"` — Align to the start edge - `"center"` — Center-aligned - `"end"` — Align to the end edge
|
|
708
|
+
asChild: z.boolean().optional(), // When `true`, the trigger wraps the child element instead of adding a wrapper.
|
|
709
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
710
|
+
side: z.enum(["top", "bottom", "left", "right"]).optional(), // Preferred side of the trigger to render the tooltip. - `"top"` — Tooltip appears above the trigger - `"bottom"` — Tooltip appears below the trigger - `"left"` — Tooltip appears to the left of the trigger - `"right"` — Tooltip appears to the right of the trigger
|
|
454
711
|
content: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]), // Content to display in the tooltip
|
|
455
712
|
});
|
|
456
713
|
|
|
@@ -461,7 +718,7 @@ export const TooltipPropsSchema = z.object({
|
|
|
461
718
|
/**
|
|
462
719
|
* All valid component type names
|
|
463
720
|
*/
|
|
464
|
-
export type KumoComponentType = "Badge" | "Banner" | "Breadcrumbs" | "Button" | "Checkbox" | "ClipboardText" | "Code" | "Collapsible" | "Combobox" | "CommandPalette" | "DateRangePicker" | "Dialog" | "DropdownMenu" | "Empty" | "Field" | "Grid" | "Input" | "InputArea" | "Label" | "LayerCard" | "Link" | "Loader" | "MenuBar" | "Meter" | "Pagination" | "Popover" | "Radio" | "Select" | "SensitiveInput" | "Surface" | "Switch" | "Table" | "Tabs" | "Text" | "Toasty" | "Tooltip";
|
|
721
|
+
export type KumoComponentType = "Badge" | "Banner" | "Breadcrumbs" | "Button" | "Checkbox" | "ClipboardText" | "CloudflareLogo" | "Code" | "Collapsible" | "Combobox" | "CommandPalette" | "DateRangePicker" | "Dialog" | "DropdownMenu" | "Empty" | "Field" | "Grid" | "Input" | "InputArea" | "Label" | "LayerCard" | "Link" | "Loader" | "MenuBar" | "Meter" | "Pagination" | "Popover" | "Radio" | "Select" | "SensitiveInput" | "Surface" | "Switch" | "Table" | "Tabs" | "Text" | "Toasty" | "Tooltip";
|
|
465
722
|
|
|
466
723
|
export const KumoComponentTypeSchema = z.enum([
|
|
467
724
|
"Badge",
|
|
@@ -470,6 +727,7 @@ export const KumoComponentTypeSchema = z.enum([
|
|
|
470
727
|
"Button",
|
|
471
728
|
"Checkbox",
|
|
472
729
|
"ClipboardText",
|
|
730
|
+
"CloudflareLogo",
|
|
473
731
|
"Code",
|
|
474
732
|
"Collapsible",
|
|
475
733
|
"Combobox",
|
|
@@ -512,6 +770,7 @@ export const ComponentPropsSchemas = {
|
|
|
512
770
|
Button: ButtonPropsSchema,
|
|
513
771
|
Checkbox: CheckboxPropsSchema,
|
|
514
772
|
ClipboardText: ClipboardTextPropsSchema,
|
|
773
|
+
CloudflareLogo: CloudflareLogoPropsSchema,
|
|
515
774
|
Code: CodePropsSchema,
|
|
516
775
|
Collapsible: CollapsiblePropsSchema,
|
|
517
776
|
Combobox: ComboboxPropsSchema,
|
|
@@ -598,4 +857,4 @@ export function validateUITree(tree: unknown): SafeParseResult<UITree> {
|
|
|
598
857
|
/**
|
|
599
858
|
* List of all component names (for catalog generation)
|
|
600
859
|
*/
|
|
601
|
-
export const KUMO_COMPONENT_NAMES = ["Badge", "Banner", "Breadcrumbs", "Button", "Checkbox", "ClipboardText", "Code", "Collapsible", "Combobox", "CommandPalette", "DateRangePicker", "Dialog", "DropdownMenu", "Empty", "Field", "Grid", "Input", "InputArea", "Label", "LayerCard", "Link", "Loader", "MenuBar", "Meter", "Pagination", "Popover", "Radio", "Select", "SensitiveInput", "Surface", "Switch", "Table", "Tabs", "Text", "Toasty", "Tooltip"] as const;
|
|
860
|
+
export const KUMO_COMPONENT_NAMES = ["Badge", "Banner", "Breadcrumbs", "Button", "Checkbox", "ClipboardText", "CloudflareLogo", "Code", "Collapsible", "Combobox", "CommandPalette", "DateRangePicker", "Dialog", "DropdownMenu", "Empty", "Field", "Grid", "Input", "InputArea", "Label", "LayerCard", "Link", "Loader", "MenuBar", "Meter", "Pagination", "Popover", "Radio", "Select", "SensitiveInput", "Surface", "Switch", "Table", "Tabs", "Text", "Toasty", "Tooltip"] as const;
|