InputPrivate

@cloud-ru/ds-input-private — внутренний строительный блок для полей ввода. Реализует общую визуальную обвязку: рамка по состоянию (focus / disabled / readonly / error), слоты под иконку, prefix/suffix, кнопку очистки и счётчик символов. Прямого применения в продуктовом коде не имеет — используйте публичные пакеты (@cloud-ru/ds-search, доменные поля), которые композируются поверх него.

Когда использовать

  • Создаёте новый публичный input-компонент и хотите получить готовое поведение состояний и слотов.
  • Реализуете кастомный фильтр / автокомплит и нужна та же обвязка, что у Search.

В продуктовом коде не импортируйте напрямую — берите публичный компонент.

Установка

pnpm add @cloud-ru/ds-input-private
import { InputPrivate, useClearButton, useButtonNavigation } from '@cloud-ru/ds-input-private'

Props

InputPrivate

Types

PropsInputPrivateProps
PropTypeDefaultRequiredDescription
autoCompletestring | booleanfalsenoВключен ли автокомплит для поля
autoFocusbooleanfalsenoВключен ли авто-фокус для поля
classNamestring—noCSS-класс
data-test-idstring—no
disabledbooleanfalsenoЯвляется ли поле деактивированным
idstring—noЗначение html-атрибута id
inputMode"decimal" | "email" | "none" | "numeric" | "search" | "tel" | "text" | "url"textnoРежим работы экранной клавиатуры
maxnumber—noМаксимальное значение поля
maxLengthnumber—noМаксимальная длина вводимого значения
minnumber—noМинимальное значение поля
namestring—noЗначение html-атрибута name
onBlurFocusEventHandler<HTMLInputElement>—noКолбек обработки потери фокуса
onChange((value: string, e?: ChangeEvent<HTMLInputElement>) => void)—noКолбек смены значения
onClickMouseEventHandler<HTMLInputElement>—noКолбек обработки клика
onFocusFocusEventHandler<HTMLInputElement>—noКолбек обработки получения фокуса
onKeyDownKeyboardEventHandler<HTMLInputElement>—noКолбек обработки начала нажатия клавиши клавиатуры
onMouseDownMouseEventHandler<HTMLInputElement>—noКолбек обработки нажатия кнопки мыши
onPasteClipboardEventHandler<HTMLInputElement>—noКолбек обработки вставки значения
patternstring—noРегулярное выражение валидного инпута
placeholderstring—noЗначение плейсхолдера
readonlybooleanfalsenoЯвляется ли поле доступным только для чтения
spellCheckbooleantruenoЗначение атрибута spellcheck (проверка орфографии)
stepstring | number—noМаксимальное значение поля
tabIndexnumber0noЗначение атрибута tab-index
type"email" | "number" | "password" | "tel" | "text" | "url"textnoТип инпута
valuestringnoЗначение input

Unions

Types

InputPrivateProps

Unions

useButtonNavigation

Types

PropsUseButtonNavigationProps
PropTypeDefaultRequiredDescription
inputRefRefObject<T | null>—yes
onButtonKeyDownKeyboardEventHandler<HTMLButtonElement>() => {}no
postfixButtonsButtonProps[]—yes
prefixButtonsButtonProps[][]no
readonlyboolean—yes
setInputFocus(() => void)() => focusWithoutScroll(inputRef.current)no
submitKeysstring[]—yes

Types

UseButtonNavigationProps

useClearButton

Types

PropsUseClearButtonProps
PropTypeDefaultRequiredDescription
clearButtonRefRefObject<HTMLButtonElement | null>—yes
dataTestIdstringbutton-clear-valuenodata-test-id кнопки. Переопределяется полем, когда у него свой публичный id слота.
disabledboolean—no
onClearMouseEventHandler<HTMLButtonElement>—yes
onDownMouseEventHandler<HTMLButtonElement>—no
showClearButtonboolean—yes
size"l" | "m" | "s"—yes

Unions

Types

UseClearButtonProps

Unions

Смотри также