Для обычного ввода берите готовые поля — CdsTextInput, CdsSelect, CdsTextArea.
CdsFieldнужен, когда своего контрола нет в библиотеке. Метку, описание и сообщения вокруг рамки добавляет CdsInput.
Анатомия
Слот default получает объект props — навесьте его на свой контрол, чтобы поле получило id, класс и связь с сообщениями. Вокруг контрола CdsField раскладывает внутренние иконки и кнопку очистки.
Вариации
Иконки
Свойства prepend-inner-icon и append-inner-icon ставят иконку внутрь рамки — до и после контрола. Те же зоны доступны как слоты prepend-inner и append-inner, если нужна кнопка, а не иконка.
Очистка
Свойство clearable добавляет крестик; он показывается, когда поле помечено dirty, и появляется при наведении или фокусе. Свойство persistent-clearable держит крестик видимым всегда. Значение сбрасывает не компонент, а вы — в обработчике @click:clear.
Состояния
Свойства disabled, readonly и error меняют цвет рамки и текста. Состояние контрола внутри задавайте отдельно: CdsField рисует рамку, но не управляет вашим input.
Загрузка
Свойство loading показывает полосу под полем. Значение circle заменяет её круговым индикатором внутри рамки — так удобнее, когда поле ждёт ответа сервера при вводе.
Размеры
Свойство size меняет высоту рамки и внутренние отступы. Размер по умолчанию — md.
Сценарии использования
Поле с тегами
Контрол в слоте default — любая разметка, поэтому в рамку помещается набор тегов и поле для новой записи. Обработчики focus и blur из слота включают подсветку рамки, dirty показывает крестик, а @click:clear очищает список.
API
Пропсы
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
active | boolean | undefined | — | Активное состояние поля |
activeColor | string | undefined | — | Цвет компонента, когда он находится в активном состоянии |
appendInnerIcon | IconValue | undefined | — | Иконка во внутреннем слоте append после содержимого поля |
baseColor | string | undefined | — | Цвет неактивного компонента |
bgColor | string | undefined | — | Цвет фона компонента |
centerAffix | boolean | undefined | — | Выровнять по вертикали элементы appendInner, prependInner, clearIcon и label по центру. |
clearable | boolean | undefined | — | Отображать кнопку очистки значения |
clearIcon | IconValue | undefined | 'remove' | Иконка кнопки очистки |
color | string | undefined | — | Цвет компонента |
details | boolean | undefined | — | Резервирует место под подсказки и сообщения об ошибках под полем |
dirty | boolean | undefined | — | Признак того, что значение поля было изменено пользователем |
disabled | boolean | null | undefined | null | Заблокированное состояние |
error | boolean | undefined | — | Состояние ошибки |
focused | boolean | undefined | — | Управляет состоянием фокуса компонента. Когда true, компонент считается сфокусированным и может применять соответствующие стили или поведение. |
iconColor | string | boolean | undefined | — | Цвет иконки. Принимает булево значение или строку с цветом |
id | string | undefined | — | Идентификатор поля — значение HTML-атрибута id для вложенного контрола |
loading | string | boolean | undefined | — | Индикатор загрузки для компонента |
persistentClearable | boolean | undefined | — | Всегда отображать кнопку очистки, а не только при наведении или фокусе |
prependInnerIcon | IconValue | undefined | — | Иконка во внутреннем слоте prepend перед содержимым поля |
readonly | boolean | null | undefined | null | Только для чтения |
reverse | boolean | undefined | — | Обратный порядок расположения элементов внутри поля |
size | number | "xs" | "sm" | "md" | "lg" | "xl" | undefined | 'md' | Размер компонента |
textColor | string | undefined | — | Цвет текста компонента |
theme | string | undefined | — | Тема компонента |
События
| Имя | Тип | Описание |
|---|---|---|
click:clear | [e: MouseEvent] | Клик по кнопке очистки (проп clearable) |
update:focused | [focused: boolean] | Вызывается при переходе фокуса на элемент или при его потере |
Слоты
| Имя | Тип | Описание |
|---|---|---|
append-inner | CdsInputDefaultSlot | Слот, добавляемый в конце инпута ввода |
clear | CdsInputDefaultSlot & { props: Record<string, any>; } | Слот для пользовательского иконки очистки (отображается, когда свойство clearable имеет значение «true»). |
default | CdsFieldSlot | Контент внутри поля |
loader | LoaderSlotProps | Слот для пользовательского загрузчика (отображается, если свойство loading имеет значение true). |
prepend-inner | CdsInputDefaultSlot | Слот, добавляемый в начало инпута ввода |
Exposed
| Имя | Тип | Описание |
|---|---|---|
controlRef | HTMLElement | undefined | Ref-ссылка на контролл поля ввода |
fieldIconColor | string | undefined | Цвет иконки |