UNPKG

amotify

Version:

UI Component for React,NextJS,esbuild

58 lines (57 loc) 2.19 kB
/// <reference types="react" /> import { StyleTags, ReactElement } from '../../@declares'; import { KeyValueDict } from 'jmini'; import { InputTypes } from '.'; declare namespace Select { type Input<T = Value> = InputTypes.CoreInput<T> & React.DOMAttributes<HTMLInputElement> & { label?: ReactElement; isLabelActive?: boolean; placeholder?: string; tone?: InputTypes.BoxTone; tabIndex?: number; id?: string; disabled?: boolean; value?: T; options: Option<T>[]; leftIndicator?: ReactElement | false; rightIndicator?: ReactElement | false; leftIcon?: ReactElement | false; rightIcon?: ReactElement | false; emptySelect?: boolean; SelectedCellStyles?: StyleTags.PropsNFreeCSS; SelectorCellStyles?: StyleTags.PropsNFreeCSS; SelectorMode?: 'original' | 'legacy'; SelectorStyles?: StyleTags.PropsNFreeCSS; SelectorPosition?: 1 | 2 | 3 | 4; }; type Value<T = any> = T extends infer V ? V : string | number | boolean | KeyValueDict | void | null; type Option<T = Value> = { type?: 'selector'; value: T; label: ReactElement; } | { type: 'label'; value?: T; label: ReactElement; }; type WrapperStates = { rootStates: Input & { value: Value[]; }; val_preventOpenSelectorOnFocus: boolean; set_preventOpenSelectorOnFocus: React.Dispatch<React.SetStateAction<boolean>>; val_status: InputTypes.Status.Plain<Value>; set_status: React.Dispatch<React.SetStateAction<InputTypes.Status.Plain>>; val_validate: InputTypes.Validation.Result; set_validate: React.Dispatch<React.SetStateAction<InputTypes.Validation.Result>>; val_selectorOpen: boolean; set_selectorOpen: React.Dispatch<React.SetStateAction<boolean>>; val_optionFocused: Value; set_optionFocused: React.Dispatch<React.SetStateAction<Value>>; }; type Component = { <T = Value>(p: Input<Value<T>>): JSX.Element; }; } declare const Select: Select.Component; export { Select, Select as default };