Form components
Overview
The twelve built-in controls, what they store, and when to reach for each.
Set a question's control to one of the built-in control types. Each control narrows its
value type, so validators and options are type-checked against it.
| Control | Stores | Use for |
|---|---|---|
text | string | single-line text, password, tel, url |
textarea | string | multi-line text |
number | number | null | numeric input with formatting |
email | string | email addresses |
dropdown | value | null | single choice from a list |
multiselect | value[] | multiple choices from a list |
checkbox | boolean | a single on/off toggle |
checkboxList | value[] | multiple toggles |
radioGroup | value | null | one of a few visible choices |
date | string | null | ISO date selection |
file | File[] | null | file uploads |
custom | anything | your own control |
Renderers read everything from the (effective) question object. Conditional logic that changes options, placeholders, min/max, etc. flows through the same props — see Dynamic forms.
Need a control that isn't here? Build one with the custom
control, or register a brand-new control type via module
augmentation.