@cloudflare/kumo 1.0.0 → 1.2.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 +20 -0
- package/LICENSE +18 -18
- package/README.md +20 -24
- package/ai/component-registry.json +21 -2
- package/ai/component-registry.md +15 -2
- package/ai/schemas.ts +10 -3
- package/bin/kumo.js +32 -0
- package/dist/.build-complete +1 -0
- package/dist/{breadcrumbs-B5SY2CWj.js → breadcrumbs-DyKi7BcP.js} +2 -2
- package/dist/{breadcrumbs-B5SY2CWj.js.map → breadcrumbs-DyKi7BcP.js.map} +1 -1
- package/dist/{button-E2-hZMZE.js → button-Bh96oxRL.js} +3 -3
- package/dist/{button-E2-hZMZE.js.map → button-Bh96oxRL.js.map} +1 -1
- package/dist/catalog.js +1 -1
- package/dist/{checkbox-BexIU_lZ.js → checkbox-C1LPq8eL.js} +3 -3
- package/dist/{checkbox-BexIU_lZ.js.map → checkbox-C1LPq8eL.js.map} +1 -1
- package/dist/{clipboard-text-BFHWMjmr.js → clipboard-text-CJSI9X2m.js} +3 -3
- package/dist/{clipboard-text-BFHWMjmr.js.map → clipboard-text-CJSI9X2m.js.map} +1 -1
- package/dist/{combobox-Dld0kS0U.js → combobox-CWxn5aHA.js} +4 -4
- package/dist/{combobox-Dld0kS0U.js.map → combobox-CWxn5aHA.js.map} +1 -1
- package/dist/command-line/cli.js +0 -0
- package/dist/command-line/commands/add.js +0 -0
- package/dist/command-line/commands/blocks.js +0 -0
- package/dist/command-line/commands/doc.js +0 -0
- package/dist/command-line/commands/init.js +0 -0
- package/dist/command-line/commands/ls.js +0 -0
- package/dist/{command-palette-BgQ680BG.js → command-palette-BxmGYxBv.js} +2 -2
- package/dist/{command-palette-BgQ680BG.js.map → command-palette-BxmGYxBv.js.map} +1 -1
- package/dist/components/breadcrumbs.js +1 -1
- package/dist/components/button.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/input.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/link.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/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/toast.js +6 -4
- package/dist/components/tooltip.js +1 -1
- package/dist/{dialog-B1TaN0oR.js → dialog-BxXPA2vI.js} +2 -2
- package/dist/{dialog-B1TaN0oR.js.map → dialog-BxXPA2vI.js.map} +1 -1
- package/dist/{dropdown-D0rhYKeG.js → dropdown-BAyk1knz.js} +7 -7
- package/dist/{dropdown-D0rhYKeG.js.map → dropdown-BAyk1knz.js.map} +1 -1
- package/dist/{empty-DzCqjea-.js → empty-D03cbzRS.js} +2 -2
- package/dist/{empty-DzCqjea-.js.map → empty-D03cbzRS.js.map} +1 -1
- package/dist/{field-V3J0Ql_V.js → field-B7ORz5ej.js} +3 -3
- package/dist/{field-V3J0Ql_V.js.map → field-B7ORz5ej.js.map} +1 -1
- package/dist/index.js +66 -65
- package/dist/{input-Dqvc2AB_.js → input-D6YgDfDG.js} +3 -3
- package/dist/{input-Dqvc2AB_.js.map → input-D6YgDfDG.js.map} +1 -1
- package/dist/{input-area-B9qajxvZ.js → input-area-DN_Ncliw.js} +10 -10
- package/dist/{input-area-B9qajxvZ.js.map → input-area-DN_Ncliw.js.map} +1 -1
- package/dist/{input-group-Bl6tgD5-.js → input-group-BXzBwH4p.js} +29 -29
- package/dist/{input-group-Bl6tgD5-.js.map → input-group-BXzBwH4p.js.map} +1 -1
- package/dist/{label-87HQArUG.js → label-B4FY8MX_.js} +2 -2
- package/dist/{label-87HQArUG.js.map → label-B4FY8MX_.js.map} +1 -1
- package/dist/{link-6TIZ4JIw.js → link-CcuZKqob.js} +8 -8
- package/dist/{link-6TIZ4JIw.js.map → link-CcuZKqob.js.map} +1 -1
- package/dist/{menubar-DLwLRFB1.js → menubar-CzimiryS.js} +2 -2
- package/dist/{menubar-DLwLRFB1.js.map → menubar-CzimiryS.js.map} +1 -1
- package/dist/{meter-DKUuvXxS.js → meter-BrJnHJ3Q.js} +2 -2
- package/dist/{meter-DKUuvXxS.js.map → meter-BrJnHJ3Q.js.map} +1 -1
- package/dist/{pagination-C4HQqodz.js → pagination-D0x9KQSk.js} +2 -2
- package/dist/{pagination-C4HQqodz.js.map → pagination-D0x9KQSk.js.map} +1 -1
- package/dist/{popover-DhdIqrP7.js → popover-BfGLC2s6.js} +4 -4
- package/dist/{popover-DhdIqrP7.js.map → popover-BfGLC2s6.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/dialog.js +1 -1
- package/dist/primitives/direction-provider.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/{radio-BVAG7hNp.js → radio-CYejLANA.js} +6 -6
- package/dist/{radio-BVAG7hNp.js.map → radio-CYejLANA.js.map} +1 -1
- package/dist/schemas-C2YJKpDC.js +3543 -0
- package/dist/schemas-C2YJKpDC.js.map +1 -0
- package/dist/{select-B5Vb3zou.js → select-D4rKQAax.js} +4 -4
- package/dist/{select-B5Vb3zou.js.map → select-D4rKQAax.js.map} +1 -1
- package/dist/{sensitive-input-D5HCV04N.js → sensitive-input-DYvAmxkN.js} +19 -19
- package/dist/{sensitive-input-D5HCV04N.js.map → sensitive-input-DYvAmxkN.js.map} +1 -1
- package/dist/src/components/toast/index.d.ts +2 -0
- package/dist/src/components/toast/index.d.ts.map +1 -1
- package/dist/src/components/toast/toast.d.ts +53 -3
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/{switch-D4duMhJ0.js → switch-z7FE1nQE.js} +3 -3
- package/dist/{switch-D4duMhJ0.js.map → switch-z7FE1nQE.js.map} +1 -1
- package/dist/{table-KuvHGpL8.js → table-Sd2Etb1N.js} +2 -2
- package/dist/{table-KuvHGpL8.js.map → table-Sd2Etb1N.js.map} +1 -1
- package/dist/{tabs-lQup-IbT.js → tabs-DAEeuQLd.js} +2 -2
- package/dist/{tabs-lQup-IbT.js.map → tabs-DAEeuQLd.js.map} +1 -1
- package/dist/toast-B8ebpHaU.js +248 -0
- package/dist/toast-B8ebpHaU.js.map +1 -0
- package/dist/{tooltip-DJWsDTWJ.js → tooltip-C4DRhJi1.js} +6 -6
- package/dist/{tooltip-DJWsDTWJ.js.map → tooltip-C4DRhJi1.js.map} +1 -1
- package/dist/{vendor-base-ui-DWIDNgE1.js → vendor-base-ui-kX0wjdav.js} +32 -31
- package/dist/{vendor-base-ui-DWIDNgE1.js.map → vendor-base-ui-kX0wjdav.js.map} +1 -1
- package/package.json +50 -53
- package/scripts/component-registry/schema-generator.ts +7 -2
- package/dist/schemas-BSdA0fz-.js +0 -3210
- package/dist/schemas-BSdA0fz-.js.map +0 -1
- package/dist/toast-8YyyQuqZ.js +0 -69
- package/dist/toast-8YyyQuqZ.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudflare/kumo",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Kumo - Cloudflare's component library for building modern web applications",
|
|
@@ -9,10 +9,6 @@
|
|
|
9
9
|
"url": "https://github.com/cloudflare/kumo.git",
|
|
10
10
|
"directory": "packages/kumo"
|
|
11
11
|
},
|
|
12
|
-
"homepage": "https://kumo-ui.com",
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/cloudflare/kumo/issues"
|
|
15
|
-
},
|
|
16
12
|
"license": "MIT",
|
|
17
13
|
"keywords": [
|
|
18
14
|
"react",
|
|
@@ -25,7 +21,7 @@
|
|
|
25
21
|
"module": "./dist/index.js",
|
|
26
22
|
"types": "./dist/src/index.d.ts",
|
|
27
23
|
"bin": {
|
|
28
|
-
"kumo": "./
|
|
24
|
+
"kumo": "./bin/kumo.js"
|
|
29
25
|
},
|
|
30
26
|
"exports": {
|
|
31
27
|
".": {
|
|
@@ -354,6 +350,7 @@
|
|
|
354
350
|
},
|
|
355
351
|
"files": [
|
|
356
352
|
"dist",
|
|
353
|
+
"bin",
|
|
357
354
|
"ai",
|
|
358
355
|
"templates",
|
|
359
356
|
"scripts",
|
|
@@ -369,35 +366,11 @@
|
|
|
369
366
|
"access": "public",
|
|
370
367
|
"registry": "https://registry.npmjs.org"
|
|
371
368
|
},
|
|
372
|
-
"scripts": {
|
|
373
|
-
"prepublish": "pnpm run clean && pnpm run build && pnpm run test:unit",
|
|
374
|
-
"build": "vite build --mode production && tsx scripts/css-build.ts && tsx src/command-line/build-cli.ts",
|
|
375
|
-
"dev": "vite build --watch --mode development",
|
|
376
|
-
"new:component": "plop component",
|
|
377
|
-
"clean": "rm -rf dist",
|
|
378
|
-
"codegen": "pnpm run codegen:primitives && pnpm run codegen:themes && pnpm run codegen:registry",
|
|
379
|
-
"codegen:themes": "tsx scripts/theme-generator/index.ts",
|
|
380
|
-
"migrate:tokens": "tsx scripts/theme-generator/migrate.ts",
|
|
381
|
-
"codegen:primitives": "tsx scripts/generate-primitives.ts",
|
|
382
|
-
"codegen:registry": "pnpm --filter @cloudflare/kumo-docs-astro codegen:demos && tsx scripts/component-registry/index.ts",
|
|
383
|
-
"lint": "pnpm run lint:oxlint && pnpm run lint:eslint",
|
|
384
|
-
"lint:oxlint": "oxlint src/** --type-aware",
|
|
385
|
-
"lint:eslint": "eslint src/",
|
|
386
|
-
"test": "CI=true vitest run --project=unit",
|
|
387
|
-
"test:ui": "vitest --ui",
|
|
388
|
-
"test:run": "vitest run",
|
|
389
|
-
"test:unit": "vitest run --project=unit",
|
|
390
|
-
"test:coverage": "vitest run --coverage",
|
|
391
|
-
"test:exports": "vitest run --project=unit tests/imports/export-path-validation.test.ts",
|
|
392
|
-
"typecheck": "tsc --noEmit",
|
|
393
|
-
"validate:build": "vitest run --project=unit tests/imports/export-path-validation.test.ts",
|
|
394
|
-
"validate:changeset": "tsx ../../ci/scripts/validate-kumo-changeset.ts"
|
|
395
|
-
},
|
|
396
369
|
"peerDependencies": {
|
|
397
370
|
"@phosphor-icons/react": "^2.1.10",
|
|
398
371
|
"react": "^18.0.0 || ^19.0.0",
|
|
399
372
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
400
|
-
"zod": "^
|
|
373
|
+
"zod": "^4.0.0"
|
|
401
374
|
},
|
|
402
375
|
"peerDependenciesMeta": {
|
|
403
376
|
"zod": {
|
|
@@ -410,35 +383,59 @@
|
|
|
410
383
|
"tailwind-merge": "^3.4.0"
|
|
411
384
|
},
|
|
412
385
|
"devDependencies": {
|
|
413
|
-
"@tailwindcss/cli": "
|
|
414
|
-
"@tailwindcss/vite": "
|
|
386
|
+
"@tailwindcss/cli": "^4.1.17",
|
|
387
|
+
"@tailwindcss/vite": "^4.1.17",
|
|
415
388
|
"@testing-library/react": "16.3.1",
|
|
416
389
|
"@testing-library/user-event": "14.6.1",
|
|
417
390
|
"@types/glob": "9.0.0",
|
|
418
|
-
"@types/node": "
|
|
419
|
-
"@types/react": "
|
|
420
|
-
"@types/react-dom": "
|
|
421
|
-
"@vitest/browser": "
|
|
422
|
-
"@vitest/ui": "
|
|
391
|
+
"@types/node": "^22.10.2",
|
|
392
|
+
"@types/react": "19.2.4",
|
|
393
|
+
"@types/react-dom": "19.2.3",
|
|
394
|
+
"@vitest/browser": "^3.2.4",
|
|
395
|
+
"@vitest/ui": "^3.2.4",
|
|
423
396
|
"esbuild": "0.27.2",
|
|
424
|
-
"eslint": "
|
|
425
|
-
"eslint-plugin-jsx-a11y": "
|
|
397
|
+
"eslint": "^9.17.0",
|
|
398
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
426
399
|
"glob": "13.0.0",
|
|
427
|
-
"happy-dom": "
|
|
428
|
-
"oxlint": "1.
|
|
429
|
-
"oxlint-tsgolint": "0.
|
|
430
|
-
"playwright": "
|
|
400
|
+
"happy-dom": "^15.11.7",
|
|
401
|
+
"oxlint": "1.42.0",
|
|
402
|
+
"oxlint-tsgolint": "0.11.3",
|
|
403
|
+
"playwright": "^1.57.0",
|
|
431
404
|
"plop": "4.0.4",
|
|
432
405
|
"rollup-plugin-preserve-directives": "0.4.0",
|
|
433
|
-
"tailwindcss": "
|
|
406
|
+
"tailwindcss": "^4.1.17",
|
|
434
407
|
"ts-json-schema-generator": "2.4.0",
|
|
435
|
-
"tsx": "
|
|
436
|
-
"typescript": "
|
|
408
|
+
"tsx": "^4.19.2",
|
|
409
|
+
"typescript": "^5.9.2",
|
|
437
410
|
"typescript-eslint": "^8.18.1",
|
|
438
|
-
"vite": "
|
|
439
|
-
"vite-plugin-dts": "
|
|
440
|
-
"vitest": "
|
|
441
|
-
"wrangler": "
|
|
442
|
-
"zod": "^
|
|
411
|
+
"vite": "^7.1.7",
|
|
412
|
+
"vite-plugin-dts": "^4.3.0",
|
|
413
|
+
"vitest": "^3.2.4",
|
|
414
|
+
"wrangler": "^4.59.1",
|
|
415
|
+
"zod": "^4.0.0"
|
|
416
|
+
},
|
|
417
|
+
"scripts": {
|
|
418
|
+
"prepublish": "pnpm run clean && pnpm run build && pnpm run test:unit",
|
|
419
|
+
"build": "vite build --mode production && tsx scripts/css-build.ts && tsx src/command-line/build-cli.ts",
|
|
420
|
+
"dev": "vite build --watch --mode development",
|
|
421
|
+
"new:component": "plop component",
|
|
422
|
+
"clean": "rm -rf dist",
|
|
423
|
+
"codegen": "pnpm run codegen:primitives && pnpm run codegen:themes && pnpm run codegen:registry",
|
|
424
|
+
"codegen:themes": "tsx scripts/theme-generator/index.ts",
|
|
425
|
+
"migrate:tokens": "tsx scripts/theme-generator/migrate.ts",
|
|
426
|
+
"codegen:primitives": "tsx scripts/generate-primitives.ts",
|
|
427
|
+
"codegen:registry": "pnpm --filter @cloudflare/kumo-docs-astro codegen:demos && tsx scripts/component-registry/index.ts",
|
|
428
|
+
"lint": "pnpm run lint:oxlint && pnpm run lint:eslint",
|
|
429
|
+
"lint:oxlint": "oxlint --config .oxlintrc.json src/** --type-aware",
|
|
430
|
+
"lint:eslint": "eslint src/",
|
|
431
|
+
"test": "CI=true vitest run --project=unit",
|
|
432
|
+
"test:ui": "vitest --ui",
|
|
433
|
+
"test:run": "vitest run",
|
|
434
|
+
"test:unit": "vitest run --project=unit",
|
|
435
|
+
"test:coverage": "vitest run --coverage",
|
|
436
|
+
"test:exports": "vitest run --project=unit tests/imports/export-path-validation.test.ts",
|
|
437
|
+
"typecheck": "tsc --noEmit",
|
|
438
|
+
"validate:build": "vitest run --project=unit tests/imports/export-path-validation.test.ts",
|
|
439
|
+
"validate:changeset": "tsx ../../ci/scripts/validate-kumo-changeset.ts"
|
|
443
440
|
}
|
|
444
|
-
}
|
|
441
|
+
}
|
|
@@ -102,6 +102,11 @@ export function generateSchemasFile(registry: ComponentRegistry): string {
|
|
|
102
102
|
"",
|
|
103
103
|
'import { z } from "zod";',
|
|
104
104
|
"",
|
|
105
|
+
"// SafeParseReturnType was removed in Zod v4, but we still want stable typing.",
|
|
106
|
+
"export type SafeParseResult<T> =",
|
|
107
|
+
" | { success: true; data: T; error?: never }",
|
|
108
|
+
" | { success: false; error: z.ZodError<any>; data?: never };",
|
|
109
|
+
"",
|
|
105
110
|
"// =============================================================================",
|
|
106
111
|
"// Dynamic Value Schema (for data binding)",
|
|
107
112
|
"// =============================================================================",
|
|
@@ -290,7 +295,7 @@ export function generateSchemasFile(registry: ComponentRegistry): string {
|
|
|
290
295
|
lines.push(" * Validate an element's props against its component schema");
|
|
291
296
|
lines.push(" */");
|
|
292
297
|
lines.push(
|
|
293
|
-
"export function validateElementProps(element: UIElement):
|
|
298
|
+
"export function validateElementProps(element: UIElement): SafeParseResult<unknown> {",
|
|
294
299
|
);
|
|
295
300
|
lines.push(
|
|
296
301
|
" const schema = ComponentPropsSchemas[element.type as keyof typeof ComponentPropsSchemas];",
|
|
@@ -307,7 +312,7 @@ export function generateSchemasFile(registry: ComponentRegistry): string {
|
|
|
307
312
|
lines.push(" * Validate a complete UI tree");
|
|
308
313
|
lines.push(" */");
|
|
309
314
|
lines.push(
|
|
310
|
-
"export function validateUITree(tree: unknown):
|
|
315
|
+
"export function validateUITree(tree: unknown): SafeParseResult<UITree> {",
|
|
311
316
|
);
|
|
312
317
|
lines.push(" return UITreeSchema.safeParse(tree);");
|
|
313
318
|
lines.push("}");
|