Portal Community

The 14 Input Control Types

text

Single-line text. Placeholder, maxLength, pattern validation.

textarea

Multi-line text. Rows, auto-resize, character counter.

number

Numeric input. Min, max, step, precision, currency format.

email

Email format auto-validation. Confirm-email pattern support.

password

Hidden input. Strength meter, show/hide toggle, confirm pattern.

url

URL format auto-validation. Link preview option.

date

Date picker. Min/max date, locale-aware formatting.

datetime

Date + time picker. Timezone support, 12h/24h toggle.

select

Single selection. Static or API-loaded options, searchable.

multiselect

Multiple selection. Max selections, chip display.

checkbox

Boolean toggle. Checked/unchecked labels, indeterminate state.

radio

Single choice from options. Vertical or horizontal layout.

switch

Toggle switch. labelOn, labelOff, size variants.

json-editor

Structured JSON. Optional schema validation, syntax highlighting.

Common Properties (All Input Controls)

PropertyTypeDescription
idstringUnique field identifier
typeFormControlTypeThe input type string
labelstringField label shown above the control
descriptionstringHelp text shown below the control
requiredbooleanShow required indicator; block submit if empty
disabledbooleanNon-interactive, greyed out
hiddenbooleanHidden in all modes
ordernumberSort position within section
widthfull | half | thirdColumn span: 12 / 6 / 4 columns
bindingBindingConfigData source and path
validationValidationConfigValidation rules
defaultValueanyInitial value when no binding provides one
modeVisibilitySettingsModeVisibilityShow/hide per operating mode
visibilityRulestringExpression-based conditional visibility

Width System

All input controls use a 12-column grid. Three presets cover most layouts:

Data Binding

Connect a control to your data model using the binding property:

{
  "id": "first-name",
  "type": "text",
  "label": "First Name",
  "width": "half",
  "binding": {
    "source": "$json",
    "path": "applicant.firstName"
  }
}

See Guide 16: Data Binding for the full binding reference.

Options Format (select, multiselect, radio)

All option-based controls share the same options[] array format:

{
  "id": "country",
  "type": "select",
  "label": "Country",
  "settings": {
    "options": [
      { "value": "US", "label": "United States" },
      { "value": "GB", "label": "United Kingdom" },
      { "value": "AU", "label": "Australia" }
    ],
    "searchable": true
  }
}