import type { XyControlStatus, XyControlVariant, XySemanticClassNames, XySemanticStyles, XySize } from "../core"; export type XyInputType = "email" | "password" | "search" | "tel" | "text" | "url"; export interface XyInputAutoSize { maxRows?: number; minRows?: number; } export interface XyTextareaProps { allowClear?: boolean; autoSize?: boolean | XyInputAutoSize; disabled?: boolean; id?: string; maxlength?: number; minlength?: number; modelValue?: string; name?: string; placeholder?: string; readonly?: boolean; resize?: XyTextareaResize; rows?: number; showCount?: boolean; size?: XySize; status?: XyControlStatus; variant?: XyControlVariant; } export interface XyTextareaExpose { blur: () => void; focus: (options?: FocusOptions) => void; resizeTextarea: () => void; textarea: HTMLTextAreaElement | undefined; } export type XyInputSemanticDom = "clear" | "count" | "input" | "prefix" | "root" | "suffix"; export interface XyInputProps { allowClear?: boolean; autocomplete?: string; autofocus?: boolean; classNames?: XyInputClassNames; disabled?: boolean; id?: string; inputReadonly?: boolean; maxlength?: number; minlength?: number; modelValue?: string; name?: string; placeholder?: string; readonly?: boolean; showCount?: boolean; size?: XySize; status?: XyControlStatus; styles?: XyInputStyles; type?: XyInputType; variant?: XyControlVariant; } export interface XyInputExpose { blur: () => void; focus: (options?: FocusOptions) => void; input: HTMLInputElement | undefined; select: () => void; } export type XyInputClassNames = XySemanticClassNames; export type XyInputStyles = XySemanticStyles; export type XyTextareaResize = "both" | "horizontal" | "none" | "vertical";