Input

Input — однострочное текстовое поле. Готовый контрол, собранный на Field: сам одевает нативный input в оболочку с лейблом, иконками, текстом ошибки и кнопкой «Очистить» и пробрасывает пропсы Field (label, error, iconLeft, iconRight). Значение — контролируемая модель: пара value / onValueChange (onValueChange отдаёт уже строку, не событие). type задаёт нативный тип поля (text, email, password, number…). clearable добавляет кнопку очистки, когда значение непустое. Ступень size и форма radius — из общего словаря визуальных пропсов ДС: шкала поля зеркалит шкалу кнопки, radius="circle" — таблетка. В большинстве форм берут именно Input, а не голый Field.

Анатомия

Input
Field.Root (обёртка)
Label (label)
Control (обёртка)
IconLeft (iconLeft)
input (value / onValueChange)
IconRight (iconRight)
Clear (clearable → «Очистить»)
Error (error, при invalid)

Примеры

Кнопка очистки

clearable рисует справа кнопку «Очистить»: она появляется только при непустом значении и по клику сбрасывает value в пустую строку через onValueChange. Логику «показывать при непустом» Input берёт на себя — достаточно передать флаг.

Иконки

iconLeft и iconRight — декоративные иконки внутри поля по краям (пропсы Field). Отступы под них Input добавляет сам, чтобы текст не заезжал на иконку.

Ошибка

Непустой error помечает поле как invalid (красная рамка) и рисует текст ошибки под ним. Обычно error приходит из валидатора формы: пусто — поле в норме, есть строка — показывается ошибка.

Введите корректный адрес

Тип поля

type пробрасывается в нативный inputpassword скрывает ввод, email/number включают соответствующую клавиатуру и нативную валидацию браузера. По умолчанию text.

Таблетка

radius="circle" скругляет поле по форме таблетки (border-radius во всю высоту). По умолчанию — обычные скругления, как у остальных контролов набора.

API

PropTypeDefault
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

Помечает поле ошибочным: контрол получает data-invalid, и только в этом состоянии рендерится Field.Error

FieldArkRootProps["invalid"]-
disabled

Отключает поле: контрол внутри становится недоступен

FieldArkRootProps["disabled"]-
required

Помечает поле обязательным

FieldArkRootProps["required"]-
readOnly

Значение видно, но изменить его нельзя

FieldArkRootProps["readOnly"]-

Наследуется от Pick<VisualProps, K>, Omit<FieldRootProps, "children">