@cfxjs/react-ui
Version:
Modern and minimalist React UI library.
65 lines (64 loc) • 2.5 kB
TypeScript
import React from 'react';
import { InputProps } from '../input/input';
import { useAutoCompleteHandle } from '../input/use-input-handle';
import AutoCompleteEmpty from './auto-complete-empty';
import AutoCompleteItem from './auto-complete-item';
import AutoCompleteSearching from './auto-complete-searching';
export declare type AutoCompleteOption = {
label: string;
};
export declare type AutoCompleteOptions = Array<typeof AutoCompleteItem | AutoCompleteOption>;
interface Props extends Omit<InputProps, 'onBlur' | 'onChange' | 'onFocus' | 'onSelect' | 'value' | 'defaultValue'> {
defaultValue: string;
value: string;
options: AutoCompleteOptions;
width?: string;
onFocus?: React.EventHandler<React.MouseEvent<HTMLInputElement> | React.FocusEvent<HTMLInputElement>>;
onBlur?: (event: Event) => void;
onChange?: (value: InputProps['value']) => void;
onSearch?: (value: string) => void;
onSelect?: (value: string) => void;
onClearClick?: React.EventHandler<React.MouseEvent<HTMLDivElement>>;
searching?: boolean;
clearable?: boolean;
dropdownClassName?: string;
dropdownStyle?: object;
disableMatchWidth?: boolean;
disableFreeSolo?: boolean;
className?: string;
defaultOpen?: boolean;
open?: boolean;
}
export declare const defaultProps: {
variant: "solid" | "line";
disabled: boolean;
readOnly: boolean;
clearable: boolean;
iconClickable: boolean;
iconRightClickable: boolean;
width: string;
size: "mini" | "small" | "medium" | "large";
color: "default" | "primary" | "success" | "warning" | "error";
autoComplete: string;
className: string;
placeholder: string;
} & {
width: string;
defaultOpen: boolean;
options: AutoCompleteOptions;
disableMatchWidth: boolean;
disableFreeSolo: boolean;
};
declare type NativeAttrs = Omit<React.InputHTMLAttributes<any>, keyof Props>;
export declare type AutoCompleteProps = React.PropsWithChildren<Props & NativeAttrs>;
declare const AutoCompleteComponent: React.ForwardRefExoticComponent<Props & Pick<React.InputHTMLAttributes<any>, never> & {
children?: React.ReactNode;
} & React.RefAttributes<HTMLInputElement>> & {
Item: typeof AutoCompleteItem;
Empty: typeof AutoCompleteEmpty;
Option: typeof AutoCompleteItem;
Searching: typeof AutoCompleteSearching;
useAutoCompleteHandle: typeof useAutoCompleteHandle;
};
export { useAutoCompleteHandle };
export default AutoCompleteComponent;