amotify
Version:
UI Component for React,NextJS,esbuild
39 lines (38 loc) • 1.17 kB
TypeScript
/// <reference types="react" />
import { ReactElement } from '../../@declares';
import { Records } from 'jmini';
import { InputTypes } from '.';
declare namespace Drum {
type Input<T = Value> = InputTypes.CoreInput<T> & React.DOMAttributes<HTMLInputElement> & {
tabIndex?: number;
id?: string;
disabled?: boolean;
isHorizontal?: boolean;
value?: T;
options: (Option<T> | null)[];
};
type Value<T = any> = T extends infer V ? V : string | number | boolean | Records | void | null;
type Option<T = Value> = {
type?: 'selector';
id?: string;
value: T;
label?: ReactElement;
} | {
type: 'label';
id?: string;
value?: T;
label?: ReactElement;
};
type WrapperStates = {
rootStates: Input & {
value: Value[];
};
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 Drum: Drum.Component;
export { Drum, Drum as default };