UNPKG

@cfxjs/react-ui

Version:

Modern and minimalist React UI library.

65 lines (64 loc) 2.5 kB
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;