import type { InputHTMLAttributes, KeyboardEvent, ReactElement, CSSProperties, ReactNode, LegacyRef } from "react"; export declare type InputNativeProps = InputHTMLAttributes; export interface BaseComponentProps { className?: string; style?: CSSProperties; children?: ReactNode; } export interface AdornmentProps { /** * 是否有边框 * - startAdornment,展示右边框 * - endAdornment,展示左边框 * * @default false * */ border?: boolean; className?: BaseComponentProps["className"]; style?: BaseComponentProps["style"]; } export interface InputProps extends Omit, Omit { /** * 自动获取焦点 * * @default false * */ autoFocus?: boolean; /** * 组件颜色 * * @default "primary" * */ color?: "primary" | "success" | "error" | "wraning" | string; /** * 输入框前添加元素 * */ startAdornment?: ReactElement; /** * 输入框后添加元素 * */ endAdornment?: ReactElement; /** * * * 输入框中间盖在input上面的节点,需要同时满足value为空 * */ centerAdornment?: ReactElement; /** * 错误状态,一般是从上级表单组件继承的值 * * @default false * */ error?: boolean; /** * 可以取到input元素节点。如果是ref,则会被传递到根元素中 * */ inputRef?: LegacyRef; /** * 与父级容器宽度相等 * * @default false * */ fullWidth?: boolean; /** * 组件变体,可选值为 outlined、standard * - outlined 带边框 * - standard 标准,表示只带下边框 * * @default "standard" * */ variant?: "outlined" | "standard"; /** * 有无圆角,默认有圆角。`variant` 为 `outlined` 时有效。 * * @default false * */ square?: boolean; /** * 若有传入 startAdornment,startAdornmentProps则是传递给它的属性 * */ startAdornmentProps?: AdornmentProps; /** * 若有传入 endAdornment,endAdornmentProps则是传递给它的属性 * */ endAdornmentProps?: AdornmentProps; /** * 按下回车事件 * */ onPressEnter?: (event: KeyboardEvent) => void; dark?: boolean; /** * 输入框文案居左/右 * * @default right */ textAlign?: "left" | "right"; classes?: { inputRoot?: string; inputRootContainer?: string; }; } export interface NumberInputProps extends InputProps { /** * 精度 */ scale?: number; /** * 末位步长,一般价格末位可能需要修正 */ step?: number; /** * 最大值 */ max?: number; /** * 最小 */ min?: number; /** * 错误写入 */ setError?: () => void; /** * 是否做字符修正, 价格需要 */ limitInputStep?: boolean; /** * input的值 */ value?: any; /** * 是否错误 */ error?: boolean; /** * 值更新 */ onChange?: (val: string) => void; /** * 是否显示 负号 默认不显示 */ allowNegative?: boolean; /** * 失去焦点 */ proOnBlur?: (v: any) => void; /** * 获得焦点 */ proOnFocus?: (v: any) => void; /** * i输入框的id */ name?: any; }