Input
Input — однострочное текстовое поле. Готовый контрол, собранный на Field: сам одевает нативный input в оболочку с лейблом, иконками, текстом ошибки и кнопкой «Очистить» и пробрасывает пропсы Field (label, error, iconLeft, iconRight). Значение — контролируемая модель: пара value / onValueChange (onValueChange отдаёт уже строку, не событие). type задаёт нативный тип поля (text, email, password, number…). clearable добавляет кнопку очистки, когда значение непустое. Ступень size и форма radius — из общего словаря визуальных пропсов ДС: шкала поля зеркалит шкалу кнопки, radius="circle" — таблетка. В большинстве форм берут именно Input, а не голый Field.
Анатомия
Примеры
Кнопка очистки
clearable рисует справа кнопку «Очистить»: она появляется только при непустом значении и по клику сбрасывает value в пустую строку через onValueChange. Логику «показывать при непустом» Input берёт на себя — достаточно передать флаг.
Иконки
iconLeft и iconRight — декоративные иконки внутри поля по краям (пропсы Field). Отступы под них Input добавляет сам, чтобы текст не заезжал на иконку.
Ошибка
Непустой error помечает поле как invalid (красная рамка) и рисует текст ошибки под ним. Обычно error приходит из валидатора формы: пусто — поле в норме, есть строка — показывается ошибка.
Тип поля
type пробрасывается в нативный input — password скрывает ввод, email/number включают соответствующую клавиатуру и нативную валидацию браузера. По умолчанию text.
Таблетка
radius="circle" скругляет поле по форме таблетки (border-radius во всю высоту). По умолчанию — обычные скругления, как у остальных контролов набора.
API
| Prop | Type | Default |
|---|---|---|
valueЗначение инпута (контролируемая модель) | string | - |
onValueChangeВызывается при изменении значения | (value: string) => void | - |
placeholderПлейсхолдер инпута | string | - |
typeТип инпута | HTMLInputTypeAttribute | - |
clearableПоказывать кнопку «Очистить» при непустом значении | boolean | - |
sizeРазмер компонента | Size | - |
radiusСкругление углов: circle — «таблетка» | Radius | - |
labelТекст лейбла над контролом | ReactNode | - |
errorТекст ошибки под контролом; при наличии поле помечается как invalid | ReactNode | - |
iconLeftДекоративная иконка слева внутри контрола | Icon | - |
iconRightДекоративная иконка справа внутри контрола | Icon | - |
invalidПомечает поле ошибочным: контрол получает | FieldArkRootProps["invalid"] | - |
disabledОтключает поле: контрол внутри становится недоступен | FieldArkRootProps["disabled"] | - |
requiredПомечает поле обязательным | FieldArkRootProps["required"] | - |
readOnlyЗначение видно, но изменить его нельзя | FieldArkRootProps["readOnly"] | - |
Наследуется от Pick<VisualProps, K>, Omit<FieldRootProps, "children">