ResettableTextInput
A text input with a clear/reset affordance.
Installation
pnpm dlx shadcn@latest add @chelone/resettable-text-inputLoading preview…
A text input with a clear/reset affordance.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| alwaysOn | boolean | — | As a `<FilterForm>`/`<FilterButton>` filter: always shown, never in the add-filter menu. Read off the element by the filter layer, never by the input. |
| defaultValue | NoInfer<SourceValue<TRecord, TPath>> | — | Input-level default, ra precedence (seeds only into an untouched hole). Typed as the value at `source`; `unknown` without a record. |
| disabled | boolean | — | Native disabled state. |
| format | (value: NoInfer<SourceTransformValue<TRecord, TPath>> | null | undefined) => unknown | — | Read transform (raw form value → input value). Receives the value at `source`, plus the hole an untouched field leaves (a create form with no `defaultValue` reads `undefined`); `unknown` without a record. |
| helperText | ReactNode | — | Helper text rendered below the input; a string is translated. |
| id | string | — | Explicit element id; a generated `useId` value is used otherwise. |
| isRequired | boolean | — | Forces the required marker; ORed with `required()` detection on `validate`. |
| label | ReactNode | — | The input label. A string is translated; a ReactNode renders as-is; `false` (or `""`) renders no label. |
| name | string | — | Legacy field-name alias (ra parity); the wiring uses `source`. |
| onBlur | (event: unknown) => void | — | Chained AFTER the blur is recorded. |
| onChange | (eventOrValue: unknown) => void | — | Chained AFTER the parsed value is written to the form. |
| parse | (value: unknown) => NoInfer<SourceTransformValue<TRecord, TPath>> | — | Write transform (input value → stored value). Must return the value at `source`; `unknown` without a record. |
| readOnly | boolean | — | Native read-only state. |
| resource | string | — | Override the ambient resource (used to resolve the default label key). |
| source | TPath | — | The field path RELATIVE to the ambient source scope. |
| type | string | — | The DOM input `type` (text inputs default to `"text"`). |
| validate | Validator | readonly Validator[] | — | ra-contract validators — composed, first error wins. |
| className | string | — | |
| controlSuffix | React.ReactNode | — | Rendered over the control's right edge, inside the control's own row, so it centres on the control whatever the field renders above or below it. |
| inputClassName | string | — | |
| multiline | boolean | — | |
| resettable | boolean | — | If true (the default), a clear button is shown next to the input when it has a value. |
| clearAlwaysVisible | boolean | — | If true, the clear button is always visible, even when the input is empty (and disabled). |