UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

48 lines 2.55 kB
import React from 'react'; import { DefaultProps, MantineSize } from '../../theme'; import { InputWrapperBaseProps, InputWrapperStylesNames } from '../InputWrapper/InputWrapper'; import { InputBaseProps, InputStylesNames } from '../Input/Input'; import { MantineTransition } from '../Transition/Transition'; import useStyles from './Autocomplete.styles'; export declare type AutocompleteStylesNames = InputStylesNames | InputWrapperStylesNames | keyof ReturnType<typeof useStyles>; export interface AutocompleteItem { value: string; [key: string]: any; } export interface AutocompleteProps extends DefaultProps<AutocompleteStylesNames>, InputBaseProps, InputWrapperBaseProps, Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange'> { /** Input size */ size?: MantineSize; /** Get input ref */ elementRef?: React.ForwardedRef<HTMLInputElement>; /** Autocomplete data used to renderer items in dropdown */ data: AutocompleteItem[]; /** Change item renderer */ itemComponent?: React.FC<any>; /** Dropdown shadow from theme or any value to set box-shadow */ shadow?: string; /** Limit amount of items rendered in dropdown */ limit?: number; /** Called when item from dropdown was selected */ onItemSubmit?(item: AutocompleteItem): void; /** Controlled input value */ value?: string; /** Uncontrolled input defaultValue */ defaultValue?: string; /** Controlled input onChange handler */ onChange?(value: string): void; /** Dropdown body appear/disappear transition */ transition?: MantineTransition; /** Dropdown body transition duration */ transitionDuration?: number; /** Dropdown body transition timing function, defaults to theme.transitionTimingFunction */ transitionTimingFunction?: string; /** Initial dropdown opened state */ initiallyOpened?: boolean; /** Function based on which items in dropdown are filtered */ filter?(value: string, item: AutocompleteItem): boolean; } export declare function Autocomplete({ className, style, required, label, id, error, description, size, shadow, data, limit, value, defaultValue, onChange, itemComponent: Item, onItemSubmit, onKeyDown, onFocus, onBlur, onClick, transition, transitionDuration, initiallyOpened, transitionTimingFunction, wrapperProps, elementRef, themeOverride, classNames, styles, filter, ...others }: AutocompleteProps): JSX.Element; export declare namespace Autocomplete { var displayName: string; } //# sourceMappingURL=Autocomplete.d.ts.map