GolemUI v1.3.0: JSON schemas for your own widget set
GolemUI v1.3.0 is out. It is a small release with one theme: v1.2.0 let you build your own widget set, and v1.3.0 gives that widget set the same JSON authoring experience gui has.
Your widget set gets its own JSON schemas
Section titled “Your widget set gets its own JSON schemas”Until now the JSON schemas we publish described only gui. If you built a widget set, its TypeScript side was fully typed, but a JSON form written against your widgets had nothing behind it: no completion in the editor, no validation, and no way to reuse the gui schemas short of copying and editing them by hand.
v1.3.0 splits the published schemas into a shared core and one tree per widget set, and adds @golemui/schemas, a package whose CLI scaffolds a tree for yours:
npx @golemui/schemas init --name kendo --id-base https://example.com/schemas/kendo/That writes a small schema package. You own the config file listing your widget types, one schema per widget, and the validators file. The rest is generated:
schemas/ schemas.config.mjs your widget list src/lib/ form.schema.json generated form.editor.schema.json generated, self-contained, for offline editing validators.schema.json yours components/*.schema.json one per widget type, yours examples/example.form.json test/schemas.spec.tsEdit the widget list or a component schema, run npx @golemui/schemas generate, and the generated files follow. Publish the tree at your own URL and point JSON forms at it:
{ "$schema": "https://example.com/schemas/kendo/form.schema.json", "form": [{ "kind": "input", "type": "kendoText", "path": "customer.name" }]}Editors then complete and validate against your widgets, and because every widget set now lives in its own directory, yours and gui can be validated by the same tool at the same time. The JSON schemas guide covers the tree layout and the generator guide covers the commands and what to write per widget.
Other changes
Section titled “Other changes”- Open pickers show their errors. Date, time and range pickers, and the dropdown, now repeat the field’s validation errors inside the open panel, so the panel no longer covers them.
rendereris rejected in JSON forms. Its props hold a render function, which JSON cannot express. Using it in a JSON form used to pass validation and fail at runtime. It now fails validation with a clear message.sizeis not tied to a grid. The schema now describes it as a relative width from 1 to 12, so a widget set that does not render a grid can map it however it likes.
Upgrading
Section titled “Upgrading”There are no code changes. Bump every @golemui/* package together, as always.
If your JSON forms point $schema at https://golemui.com/schemas/form.schema.json, which is what the docs and the MCP tools have always produced, there is nothing to do. That URL keeps working.
The one case that needs a change: if you fetched or vendored the published gui schemas by their individual URLs, for example to load them into your own validator, those files now live under /schemas/gui/ and the old flat paths return 404. Update the URLs and everything else stays the same.