UNPKG

amotify

Version:

UI Component for React,NextJS,esbuild

88 lines (87 loc) 3.12 kB
/// <reference types="react" /> import { StyleProps, ReactElement } from '../../@declares'; import { Records } from 'jmini'; import { InputTypes } from '.'; declare namespace Autocomplete { type Input<T = Value> = InputTypes.CoreInput<T | T[]> & React.DOMAttributes<HTMLInputElement> & { label?: ReactElement; tone?: InputTypes.BoxTone; tabIndex?: number; id?: string; disabled?: boolean; min?: number; max?: number; multiSelect?: boolean; value?: T | T[]; options: Option<T>[]; emptySelect?: boolean; leftIndicator?: ReactElement | false; rightIndicator?: ReactElement | false; leftIcon?: ReactElement | false; rightIcon?: ReactElement | false; searchInputPlaceholder?: string; onDynamicSearchOptions?: onDynamicSearchOptions<T>; onDynamicSearchOptionsDelay?: number; onSelectorRender?(p: onSelectorRenderProps<T>): React.JSX.Element; onSelectedRender?(p: onSelectedRenderProps<T>): React.JSX.Element; pickerStyles?: StyleProps.StyleProps; pickerPosition?: 1 | 2 | 3 | 4; }; type Value<T = any> = T extends infer V ? V : string | number | boolean | Records | void | null; type Option<T = Value> = { type?: 'selector'; id?: string; label?: ReactElement; selectedLabel?: ReactElement; value: T; searchValue?: string; } | { type: 'label'; id?: string; label?: ReactElement; selectedLabel?: ReactElement; value?: T; searchValue?: string; }; type OptionsDict = { [key: string]: Option; }; type onDynamicSearchOptions<T = Value> = { (k: string): Promise<Option<T>[]>; }; type onSelectorRenderProps<T = Value> = { option: Option<T>; isSelected: boolean; isFocused: boolean; onAdd(): void; onKeyDown(event: React.KeyboardEvent): void; }; type onSelectedRenderProps<T = Value> = { value: T; option?: Records; label: ReactElement; onRemove(event: any): void; }; type WrapperStates = { rootStates: Input & { value: Value[]; }; val_options: Option[]; set_options: React.Dispatch<React.SetStateAction<Option[]>>; val_optionFocused: string; set_optionFocused: React.Dispatch<React.SetStateAction<string>>; val_optionsDict: OptionsDict; set_optionsDict: React.Dispatch<React.SetStateAction<OptionsDict>>; val_optionsModified: boolean; set_optionsModified: React.Dispatch<React.SetStateAction<boolean>>; val_keyword: string; set_keyword: React.Dispatch<React.SetStateAction<string>>; val_status: InputTypes.Status<Value[]>; set_status: React.Dispatch<React.SetStateAction<InputTypes.Status>>; }; type Component = { <T = Value>(p: Input<Value<T>>): React.JSX.Element; }; } declare const Autocomplete: Autocomplete.Component; export { Autocomplete, Autocomplete as default };