Component gallery

SchemaForm

A form generated from a module's JSON Schema, in the kit's one field anatomy; refuses anything outside its vocabulary by name.

The field anatomy

Label above with the required mark, the control, help under it; the chips switch the label tone; widths follow the type, so a number is a third and a short enum is a third
Label tone

The column the module writes to.

Ground the copy in a research pass first.

value
{}

Dependent fields and audience tiers

x-when on a sibling and on $settings; x-tier hides admin and team fields from a customer, no branching in the app
Viewer
Module version
value
{}

Sections

One card per section in the declared order, with the plain card header and an optional icon; advanced starts collapsed and counts what changed

Content

What the module writes.

Research

Advanced

Sections as tabs

sectionLayout tabs: one card, a tab with an icon per section, an error count on a tab whose fields fail, the rows table at the card edge, and review's Edit opening the matching tab

What the module writes.

Validation and messages

Errors after blur or Submit, the first error takes focus, plain sentences per keyword, warnings that never block; the host's button says why it cannot act

Choice lists, radios and fetched options

Checklist with a per-option hint, chips, a multiselect, an acknowledged radio, and options resolved by the app with loading and a fallback
Toggle, then Retry on the model field.
0 of 5 chosen
0 of 4 chosen
value
{}

Part type matching, from its fixture

The first V1 module schema rendered whole; the admin viewer sees the batch size, the customer does not
Viewer
0 of 4 chosen
value
{}

Content generation, from its fixture

A table of sub-forms: short fields as columns, the prompt and its rules in the expanded row, a list of discriminated rules inside; sections with advanced collapsed
Viewer

Content

The fields the module writes for every item.
Output fields
required0 rows of 24
FieldKindMinimum (chars)Maximum (chars)
No rows yet

Research

value
{}

Image generation, from its fixture

A root mode chooser with two branches; the edit branch nests an operation chooser whose groups appear in place; recolour's swatch and the output field track sticky computed defaults
Viewer
value
{}

Attribute normalization, from its fixture

A table seeded from the file's distinct part types, one fetched multiselect per row with a coverage hint, an acknowledged taxonomy radio
Viewer
Exceptions for particular part types0 rows
Part typeAttributes
No rows yet
value
{}

Review, snapshot, presets and loading

The same value read in prose by section with an Edit link back, then frozen; a preset the host picks with dirty tracking and Reset; the shape-matched skeleton
Preset

Content

The fields the module writes for every item.
Output fields
required1 row of 24
FieldKindMinimum (chars)Maximum (chars)

Research

Advanced

A schema outside the subset

The refusal names the path and the keyword and renders in place of the form; nothing degrades to a text box
@versable-git/ui · all states, both themes