Search

Search — поле поиска на частях Field, внешне как Input: слева уже стоит лупа, кнопка «Очистить» включена. В отличие от Input строку под ошибку не резервирует — у поиска ошибки валидации не бывает, и поле занимает ровно свою высоту (встаёт в один ряд с кнопками). Текст поле хранит само, а onValueChange вызывает через 300 мс после последнего ввода (debounce) — колбэк можно вешать сразу на запрос к API или фильтр списка, не дребезжа на каждый символ. value задаёт только начальное значение. Остальные пропсы: placeholder, size, radius, label, iconRight.

Запрос: —

Анатомия

Search
Field.Root (обёртка)
Label (label)
Control (обёртка)
IconLeft (MagnifyingGlassIcon)
input (value → внутреннее состояние)
IconRight (iconRight)
Clear («Очистить» при непустом значении)

Примеры

Начальное значение

value подставляется в поле один раз при монтировании — дальше текст живёт во внутреннем состоянии. Пригодится, когда запрос приезжает извне, например из URL. При непустом значении сразу видна кнопка «Очистить».

action

Action

invalid

disabled

required

readOnly

API

PropTypeDefault
value

Начальное значение — дальше поле хранит текст само

string""
onValueChange

Вызывается через 300 мс после последнего ввода

(value: string) => void-
placeholder

Плейсхолдер поля

string-
label

Текст лейбла над полем

ReactNode-
iconRight

Декоративная иконка справа внутри поля

Icon-
action

Кнопка-действие справа внутри поля — Field.Action

ReactNode-
size

Размер компонента

Size-
radius

Скругление углов: circle — «таблетка»

Radius-
invalid

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

FieldArkRootProps["invalid"]-
disabled

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

FieldArkRootProps["disabled"]-
required

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

FieldArkRootProps["required"]-
readOnly

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

FieldArkRootProps["readOnly"]-

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