Search

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

Запрос:

Анатомия

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

Примеры

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

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

invalid

disabled

required

readOnly

API

PropTypeDefault
value

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

string""
onValueChange

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

(value: string) => void-
size

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

Size-
radius

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

Radius-
label

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

ReactNode-
invalid

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

FieldArkRootProps["invalid"]-
disabled

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

FieldArkRootProps["disabled"]-
required

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

FieldArkRootProps["required"]-
readOnly

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

FieldArkRootProps["readOnly"]-
placeholder

Плейсхолдер инпута

string-
type

Тип инпута

HTMLInputTypeAttribute-
error

Текст ошибки под контролом; при наличии поле помечается как invalid

ReactNode-
iconRight

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

Icon-

Наследуется от Omit< InputProps, "iconLeft" | "clearable" >