amotify
Version:
UI Component for React,NextJS,esbuild
56 lines (55 loc) • 1.89 kB
TypeScript
/// <reference types="react" />
import { StyleProps, ReactElement } from '../../@declares';
import { Records } from 'jmini';
import { InputTypes } from '.';
declare namespace Select {
type Value<T = any> = T extends infer V ? V : string | number | boolean | Records | void | null;
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;
selectedStyles?: StyleProps.StyleProps;
selectorStyles?: StyleProps.StyleProps;
pickerStyles?: StyleProps.StyleProps;
pickerPosition?: 1 | 2 | 3 | 4;
nativePicker?: boolean;
};
type Option<T = Value> = {
type?: 'selector';
id?: string;
value: T;
label?: ReactElement;
selectedLabel?: ReactElement;
} | {
type: 'label';
id?: string;
value?: T;
label?: ReactElement;
selectedLabel?: ReactElement;
};
type WrapperStates = {
rootStates: Input & {
value: Value[];
};
val_status: InputTypes.Status<Value>;
set_status: React.Dispatch<React.SetStateAction<InputTypes.Status>>;
val_optionFocused: string | null;
set_optionFocused: React.Dispatch<React.SetStateAction<string | null>>;
};
type Component = {
<T = Value>(p: Input<Value<T>>): React.JSX.Element;
};
}
declare const Select: Select.Component;
export { Select, Select as default };