@upv/react-ui-core
Version:
**USHI Design System — Modern UI Component Library**
36 lines (35 loc) • 1.23 kB
TypeScript
import React from "react";
import { LucideIcon } from "lucide-react";
import { InputEvent, FocusEvent, KeyboardEvent } from "../types/fieldTypes";
export interface TextFieldProps {
id?: string;
label?: string;
placeholder?: string;
type?: "text" | "password" | "email" | "tel" | "number" | "date" | "search" | "url";
fullWidth?: boolean;
disabled?: boolean;
size?: "small" | "medium" | "large";
value?: string;
required?: boolean;
helperText?: string;
error?: string | undefined | null;
overline?: string;
validation?: (value: string) => string | null;
minLength?: number;
maxLength?: number;
multiline?: boolean;
minRows?: number;
maxRows?: number;
icon?: LucideIcon;
onIconClick?: () => void;
mask?: (value: string) => string;
debounce?: number;
onFocus?: (e: FocusEvent) => void;
onBlur?: (e: FocusEvent) => void;
onChange?: (e: InputEvent) => void;
onKeyDown?: (e: KeyboardEvent) => void;
autoComplete?: boolean | string;
min?: string | number;
max?: string | number;
}
export declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;