import { Placement, PropsWithChildren, QA } from '../common'; import { CSSProperties, HTMLAttributes, RefObject } from 'react'; import { UseFloatingOptions, UseFloatingReturn } from '@floating-ui/react'; export type DropdownProps = { /** Элемент от которого показывать выпадашку */ targetRef: RefObject; /** Ширина. * * target - ширина равна ширине элемента targetRef */ width?: string | 'target'; /** Расположение */ placement?: Placement | `${Placement}`; /** Раскрыт или нет*/ isOpen: boolean; /** Обработчик раскрытия */ setIsOpen: (newIsOpen: boolean) => void; /** Рендер в root или рядом */ isPortal?: boolean; /** Не анмаунтить компонент, скрывая через display: none */ isMounted?: boolean; /** Отступ сверху */ offset?: number; /** Закрывать по нажатию Esc */ closeOnEscape?: boolean; /** Закрывать по нажатию на бэкграунд */ closeOnOverlay?: boolean; /** Коллбэк принимающий инстанс floating ui * * Используется в специфических ситуациях */ setFloating?: (floating: UseFloatingReturn) => void; } & QA & PropsWithChildren & Pick & Pick & Pick, 'className'>; export type { UseFloatingOptions, UseFloatingReturn };