Input components
Input components collect values in create, edit and filter forms. You rarely mount them by hand —
SchemaInput picks one from the field's type and format, and an
InputProvider can override that choice.
| Component | What it collects |
|---|---|
| SchemaInput | Dispatcher — resolves type + format to one of the components below |
| TextInput | Single-line or multiline text, with prefix/postfix adornments |
| NumberInput | A number, parsed and formatted for the active locale |
| DateInput and DateTimeInput | A date or a date and time, via a MUI X picker |
| TimeInput | A time of day, stored as HH:MM:SS |
| DateRangeInput | A date range, picked in a calendar popover |
| BooleanInput | A switch — a tri-state toggle when used as a filter |
| ChoicesInput | One value from an enum, as a dropdown |
| UploadInput | Files and images, base64 or chunked |
| PhoneNumberInput | A phone number with a country selector |
| SchemaObjectInput | The properties of a nested object |
| SchemaObjectArrayInput | A repeatable list of objects |
| SchemaArrayInput | An array of scalars, enum values or references |
| SchemaReferenceInput | A related record, via autocomplete — or a checkbox tree for a hierarchy |
| SchemaRangeInput | A lower/upper pair of any input type |
| SchemaPredictiveTextInput | Text with AI suggestions accepted by Tab |
| Czech local flavor inputs | IČO, DIČ, birth number, ID card number, bank account |
Common props
Every input accepts these props (InputProps); the per-component pages document only what they
add on top.
| Name | Type | Default | Description |
|---|---|---|---|
source (required) | string | — | Name of the field in the form record |
label | string | ReactElement | false | label from the schema | false hides the label |
helperText | string | ReactElement | false | helpText from the schema | Text under the input; false removes the reserved space |
validate | Validator | Validator[] | from the schema | React Admin validators |
isRequired | boolean | from the schema | Marks the input required |
size | 'small' | 'medium' | 'small' | MUI input size |
fullWidth | boolean | depends on the box | Stretches the input to its container |
alwaysOn | boolean | false | Filter inputs only — keeps the filter visible without adding it first |
defaultValue | string | boolean | number | defaultValue from the schema | Initial value in a create form |
placeholder | string | — | Placeholder text |
disabled | boolean | false | Disables the input while keeping it in the form |
readOnly | boolean | false | Renders the value without allowing edits |
className | string | — | Class applied to the input wrapper |
sx | SxProps<Theme> | — | MUI style override |
caution
InputProps carries no options key. The input components take explicit props
(numberFormat, prefix, postfix, choices, iconsKey, accept, maxFiles, …); it is
InputProvider's default implementation that reads the schema's options object and maps it onto
those props before rendering the component directly. Each page's Schema options section states
which key maps where.
See also
- Field components — the display counterparts
- InputProvider — replacing a component for a given type/format
- Property layouts — how inputs are arranged into a form