import type { CSSProperties, HTMLAttributes, LabelHTMLAttributes, ReactNode, Ref } from 'react'; import type { WithTestId } from '../types'; export type FieldBlockSize = 's' | 'm' | 'l'; type NoChildren = Omit; export interface FieldBlockStyle extends CSSProperties { '--field-width'?: string; '--field-main-text-color'?: string; } type WithStyle = Omit & { style?: FieldBlockStyle; }; export interface FieldBlockProps extends WithTestId { /** Отключенное состояние. */ disabled?: boolean; /** Состояние с ошибкой. */ failed?: boolean; /** Состояние фокуса. */ focused?: boolean; /** Подпись под полем. */ caption?: string; /** Ярлык в поле. */ label?: string; /** Выводить ярлык вместо placeholder или введенного значения. */ labelAsPlaceholder?: boolean; /** Опции элемента ярлыка. */ labelProps?: NoChildren>; /** Размер. */ size?: FieldBlockSize; /** Фиксировать высоту. */ fixedHeight?: boolean; /** Опции корневого элемента. */ rootProps?: NoChildren>>; /** Ref корневого элемента. */ rootRef?: Ref; /** Опции элемента блока поля. */ blockProps?: NoChildren>>; /** Ref элемента блока поля. */ blockRef?: Ref; /** Украшение перед основным содержимым. */ adornmentStart?: ReactNode; /** Украшение после основного содержимого. */ adornmentEnd?: ReactNode; /** Основное содержимое. */ main?: ReactNode; /** Опции основного содержимого. */ mainProps?: NoChildren>>; } export {};