Fields & validators

Supported fields are discovered from core, not maintained as a second editor list.

Reading the core field catalog…

Text variants and multiline

JSON
{
  "type": "text",
  "variant": "password",
  "key": "password",
  "view": {
    "label": "Password"
  }
}
JSON
{
  "type": "text",
  "variant": "plain",
  "textarea": true,
  "rows": 4,
  "resizable": true,
  "key": "notes",
  "view": {
    "label": "Notes"
  }
}

Text variants are plain (default), email, password, and tel. Textarea is valid only for plain text and requires positive integer rows; resizable defaults to true. Password masking belongs to the renderer and still applies to loaded draft/source values. Tel selects a telephone input; it does not add a phone-number validator.

Booleans and choices

JSON
{
  "type": "boolean",
  "variant": "radio",
  "direction": "row",
  "key": "consent",
  "options": [
    {
      "value": true,
      "label": "Yes"
    },
    {
      "value": false,
      "label": "No"
    }
  ],
  "validators": [
    {
      "kind": "required"
    }
  ]
}

Checkbox is the default boolean variant; switch and radio are alternatives. Radio options carry boolean values and may load through an options binding. Its direction is column by default or row. Required accepts false; must_be_true requires true.

JSON
{
  "type": "select",
  "multiple": true,
  "key": "countries",
  "options": [
    {
      "value": "SK",
      "label": "Slovakia"
    },
    {
      "value": "CZ",
      "label": "Czechia"
    }
  ]
}

Select values are strings, or string arrays for multiple selections. Multiple choices appear as removable cards, with selected checkmarks and a clear-all action.

Date and time

JSON
{
  "type": "date",
  "mode": "datetime",
  "timeZone": "Europe/Bratislava",
  "disambiguation": "reject",
  "key": "meeting",
  "view": {
    "label": "Meeting"
  }
}

Date mode defaults to date. Date values use YYYY-MM-DD; time values are local HH:mm with optional seconds. Datetime stores a UTC RFC 3339 instant and displays it in a configured IANA timezone or fixed offset (UTC by default). Repeated daylight-saving times reject by default, or use earlier/later; skipped times always reject.

See Files & uploads for required upload configuration and Data sources for asynchronous options and values.

Validation details

Null means no scalar value. Required text rejects null and an empty string; whitespace in ordinary text is preserved. Email trims surrounding whitespace, then checks basic address shape. Required numbers accept zero, and required booleans accept false. String lengths count Unicode characters.

Date fields support date-only, time-only, and date-and-time modes. Configure datetime timeZone with an IANA name or fixed offset; values submit as UTC RFC 3339 instants. Required and inclusive min/max validators apply in all modes. Calendar menu labels use the current translation catalog. The default design uses a text input and custom picker with Gregorian dates and digits 0–9 in every language. Order, separators and labels are localized; language switching preserves stored dates; custom display masks are not part of the 1.0 API.

Bounds are inclusive. Length limits must be nonnegative integers. Numeric limits must be finite. Min cannot exceed max. Email validation is intentionally a basic shape check, not a full RFC mailbox parser.