import * as React from "react"; import { type InputPrimitiveProps } from "./primitive"; import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./group"; import { type ClearableInputProps } from "./clearable"; import { type DateInputProps } from "./date"; import { type DateRangeInputProps } from "./date-range"; import { type MaskedInputProps } from "./masked"; import { type MoneyInputProps } from "./money"; import { type PasswordInputProps } from "./password"; import { type PhoneInputProps } from "./phone"; import { type QuantityInputProps } from "./quantity"; import { type SearchInputProps } from "./search"; export type InputKind = "text" | "clearable" | "search" | "password" | "phone" | "money" | "quantity" | "masked" | "date" | "date-range"; export type InputTextProps = Omit & { kind?: "text"; value?: string | number | readonly string[] | null; onValueChange?: (value: string) => void; onDebouncedValueChange?: (value: string) => void; leading?: React.ReactNode; trailing?: React.ReactNode; trailingAction?: React.ReactNode; clearable?: boolean; onClear?: () => void; clearLabel?: string; clearOnEscape?: boolean; focusAfterClear?: boolean; replaceTrailingWhenClear?: boolean; helperText?: React.ReactNode; errorText?: React.ReactNode; showCharacterCount?: boolean; countFormatter?: (currentLength: number, maxLength?: number) => React.ReactNode; wrapperClassName?: string; inputClassName?: string; helperClassName?: string; leadingPointerEvents?: boolean; trailingPointerEvents?: boolean; searchIcon?: React.ReactNode; loading?: boolean; loadingLabel?: string; resultCount?: number; shortcut?: React.ReactNode; debounceMs?: number; showMetaOnClear?: boolean; }; export type InputClearableProps = Omit & { kind: "clearable"; }; export type InputSearchProps = Omit & { kind: "search"; }; export type InputPasswordProps = Omit & { kind: "password"; }; export type InputPhoneProps = Omit & { kind: "phone"; }; export type InputMoneyProps = Omit & { kind: "money"; }; export type InputQuantityProps = Omit & { kind: "quantity"; }; export type InputMaskedProps = Omit & { kind: "masked"; }; export type InputDateProps = Omit & { kind: "date"; }; export type InputDateRangeProps = Omit & { kind: "date-range"; onValueChange?: (value: { from?: string; to?: string; }) => void; value?: DateRangeInputProps["value"]; }; export type InputProps = InputTextProps | InputClearableProps | InputSearchProps | InputPasswordProps | InputPhoneProps | InputMoneyProps | InputQuantityProps | InputMaskedProps | InputDateProps | InputDateRangeProps; declare const Input: React.ForwardRefExoticComponent<(Omit | Omit | Omit | Omit | Omit | Omit | Omit | Omit | Omit | Omit) & React.RefAttributes>; export { Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, };