import React, { InputHTMLAttributes, ReactNode, CSSProperties } from 'react';
import { DistributiveOmit } from '../../types';
import { TextFieldPropsBase } from '../TextField/TextField.types';
export type SuggestionItemType = {
/**
* Метка-подпись к подсказке
*/
label: string;
/**
* Слот для контента слева
*/
contentLeft?: ReactNode;
/**
* Слот для контента справа
*/
contentRight?: ReactNode;
};
export type AutocompleteProps = {
/**
* Расположение лейбла.
* @default outer
*/
labelPlacement?: string;
/**
* Компонент доступен только для чтения.
*/
readOnly?: boolean;
/**
* Компонент неактивен.
*/
disabled?: boolean;
/**
* Портал для выпадающего списка. Принимает id контейнера или ref.
*/
portal?: string | React.RefObject;
/**
* CSS-свойство z-index для выпадающего списка.
*/
zIndex?: CSSProperties['zIndex'];
/**
* Значение поля ввода.
*/
value?: string;
/**
* Значение поля ввода по-умолчанию.
*/
defaultValue?: string;
/**
* Массив подсказок.
*/
suggestions?: T[];
/**
* Минимальное число введенных символов, при котором открывается дропдаун.
* @default 2
*/
threshold?: number;
/**
* Коллбэк фильтра подсказок.
*/
filter?: (data: T) => boolean;
/**
* Коллбэк, который срабатывает при выборе подсказки.
*/
onSuggestionSelect?: (data: T) => void;
/**
* Коллбэк, срабатывающий при скролле.
*/
onScroll?: (e: React.UIEvent) => void;
/**
* Максимальная высота выпадающего списка подсказок.
* @default 25rem
*/
listMaxHeight?: string;
/**
* Ширина выпадающего списка подсказок.
*/
listWidth?: string;
/**
* Коллбэк для рендера кастомного списка подсказок.
*/
renderList?: (data?: T[]) => ReactNode;
/**
* Коллбэк для рендера элемента в конце выпадающего списка.
*/
renderListEnd?: () => ReactNode;
/**
* Callback для кастомной настройки элемента в выпадающем списке.
*/
renderItem?: (item: T) => React.ReactNode;
/**
* Ячейка для контента в начале выпадающего списка.
*/
beforeList?: ReactNode;
/**
* Ячейка для контента в конце выпадающего списка.
*/
afterList?: ReactNode;
/**
* Виртуализация в выпадающем списке.
* @default false
*/
virtual?: boolean;
/**
* Отображение выпадающего списка сверху, если снизу недостаточно места.
* @default false
*/
flip?: boolean;
/**
* ClassName для внешней обертки компонента.
*/
rootClassName?: string;
/**
* Style для внешней обертки компонента.
*/
rootStyle?: CSSProperties;
/**
* Размер контрола.
* @default l
*/
size?: string;
/**
* Вид контрола.
* @default default
*/
view?: string;
} & DistributiveOmit & Omit, 'size' | 'required' | 'value' | 'defaultValue' | 'onScroll'>;
export type FloatingPopoverProps = {
target: React.ReactNode | ((ref: React.MutableRefObject) => React.ReactNode);
children: React.ReactNode;
opened: boolean;
portal?: AutocompleteProps['portal'];
zIndex?: AutocompleteProps['zIndex'];
listWidth?: AutocompleteProps['listWidth'];
offset?: [number, number];
flip?: boolean;
};
//# sourceMappingURL=Autocomplete.types.d.ts.map