UNPKG

react-widgets-up

Version:

An à la carte set of polished, extensible, and accessible inputs built for React

71 lines 2.51 kB
import * as React from 'react'; import { GroupBy } from './List'; import { RenderProp, Value } from './types'; import { TextAccessor, DataKeyAccessor } from './Accessors'; import { WidgetHTMLProps } from './shared'; import { UserProvidedMessages } from './messages'; export interface ListboxHandle { scrollIntoView(): void; } export type RenderItemProp<TDataItem> = RenderProp<{ item: TDataItem; searchTerm?: string; index: number; text: string; value: unknown; disabled: boolean; }>; export type RenderGroupProp = RenderProp<{ group: any; }>; export type SingleChangeHandler<TDataItem> = (dataItem: TDataItem, metadata: { lastValue: Value; originalEvent?: React.SyntheticEvent; }) => void; export type MultipleChangeHandler<TDataItem> = (dataItem: readonly TDataItem[], metadata: { action: 'insert' | 'remove'; dataItem: TDataItem; lastValue: Value; originalEvent?: React.SyntheticEvent; }) => void; export interface BaseListboxProps<TDataItem> extends WidgetHTMLProps { data: TDataItem[]; defaultValue?: Value; focusedItem?: TDataItem; className?: string; multiple?: boolean; readOnly?: boolean; /** * @example false */ disabled?: boolean | TDataItem[]; messages?: UserProvidedMessages; renderItem?: RenderItemProp<TDataItem>; renderGroup?: RenderGroupProp; searchTerm?: string; groupBy?: GroupBy<TDataItem>; optionComponent?: React.ElementType; textField?: TextAccessor; dataKey?: DataKeyAccessor; } export interface SingleListboxProps<TDataItem> extends BaseListboxProps<TDataItem> { value?: Value; defaultValue?: Value; multiple?: false; onChange?: SingleChangeHandler<TDataItem>; ref?: any; } export interface MultipleListboxProps<TDataItem> extends BaseListboxProps<TDataItem> { value?: Value[]; defaultValue?: Value[]; multiple: true; onChange?: MultipleChangeHandler<TDataItem>; ref?: any; } export type ListboxProps<TDataItem> = SingleListboxProps<TDataItem> | MultipleListboxProps<TDataItem>; declare function Listbox<TDataItem>({ defaultValue, value: propsValue, onChange: propsOnChange, textField, dataKey, data, onKeyDown, disabled, readOnly, onBlur, onFocus, multiple, ref, ...props }: ListboxProps<TDataItem>): React.JSX.Element; declare namespace Listbox { var displayName: string; } export default Listbox; //# sourceMappingURL=Listbox.d.ts.map