import type { SyntheticEvent, InputHTMLAttributes, ReactNode, HTMLAttributes } from 'react'; import type { NumberFormatValues } from 'react-number-format'; type SegmentationProps = { /** * Форма границ компонента. */ segmentation?: 'clear'; /** * Фон поля ввода. */ inputBackgroundType?: never; } | { segmentation?: string; inputBackgroundType?: string; }; export type NumberInputProps = { /** * Числовое значение. */ value?: string | number; /** * Числовое значение по умолчанию. */ defaultValue?: string | number; /** * Минимальное значение. */ min?: number; /** * Максимальное значение. */ max?: number; /** * Шаг изменения значения. * @default 1 */ step?: number; /** * Количество знаков после запятой при вычислениях. * @default 2 */ precision?: number; /** * Разделитель тысяч. * Может быть строкой (например, " ") или булевым значением. * * @example 123 456 789 */ thousandSeparator?: boolean | string; /** * Разделитель десятичных знаков. * * @default '.' * @example 123.456 */ decimalSeparator?: string; /** * Стиль группировки тысяч: * - 'thousand' (123 456 789), * - 'lakh' (индийский стиль, 12 34 56 789), * - 'wan' (китайский стиль, 1 2345 6789), * - 'none' (без группировки). * * @default 'thousand' */ thousandsGroupStyle?: 'thousand' | 'lakh' | 'wan' | 'none'; /** * Максимальное количество знаков после десятичного разделителя при вводе и отображении. * @default 2 */ decimalScale?: number; /** * Фиксирует количество знаков после десятичного разделителя, добавляя нули. */ fixedDecimalScale?: boolean; /** * Разрешает ввод отрицательных чисел. * * @default true */ allowNegative?: boolean; /** * Разрешает ведущие нули. * * @default false */ allowLeadingZeros?: boolean; /** * Функция для дополнительной валидации значения при ручном вводе и изменении кнопками. * Если функция возвращает false, значение компонента не изменяется. */ isAllowed?: (values: NumberFormatValues) => boolean; /** * Контрол в состоянии загрузки. */ isLoading?: boolean; /** * Слот для контента загрузки. */ loader?: ReactNode; /** * Размер контрола. */ size?: string; /** * Вид компонента. */ view?: string; /** * view применяется с clear-токенами */ clear?: boolean; /** * Форма контрола. */ shape?: string; /** * Компонент неактивен. */ disabled?: boolean; /** * Слот для вспомогательного текста слева. */ textBefore?: string; /** * Слот для вспомогательного текста справа. */ textAfter?: string; /** * Пользовательская кнопка увеличения. */ customIncrementButton?: ReactNode; /** * Иконка кнопки увеличения. */ incrementIcon?: ReactNode; /** * Пользовательская кнопка уменьшения. */ customDecrementButton?: ReactNode; /** * Иконка кнопки уменьшения. */ decrementIcon?: ReactNode; /** * Доступность ввода значения вручную. */ isManualInput?: boolean; /** * Отображение компонента при отсутствии значения. * @default 'input' */ displayWithoutValue?: 'input' | 'increment' | 'decrement'; /** * Поведение кнопок при достижении крайних значений (min/max). * 'disabled' — кнопка становится неактивной. * 'hidden' — deprecated * @default 'disabled' */ limitBehavior?: 'disabled' | 'hidden'; /** * Вызывается при изменении значения. */ onChange?: (event: SyntheticEvent | null, value: number | string | undefined) => void; /** * Вызывается при нажатии на кнопку увеличения значения. */ onIncrement?: (value: number) => void; /** * Вызывается при нажатии на кнопку уменьшения значения. */ onDecrement?: (value: number) => void; } & SegmentationProps & Omit, 'size' | 'onChange' | 'value' | 'defaultValue' | 'type'>; export type NumberInputRootProps = { size?: string; view?: string; shape?: string; segmentation?: string; clear?: boolean; disabled?: boolean; isLoading?: boolean; } & HTMLAttributes; export {}; //# sourceMappingURL=NumberInput.types.d.ts.map