import { PopupHookArgs, PopupProps, PopupRootProps } from '../Popup/Popup.types'; export type ModalBodyProps = { /** * Оборачивает children в стилизованную обертку */ hasBody: true; /** * Отображает кнопку с крестиком для закрытия */ hasClose?: boolean; } | { hasBody?: false; hasClose?: never; }; export interface CommonModalProps extends PopupProps { /** * Нужно ли применять blur для подложки. */ withBlur?: boolean; /** * Закрывать модальное окно при нажатии на ESC(по умолчанию true). */ closeOnEsc?: boolean; /** * Закрывать модальное окно при нажатии вне области модального окна(по умолчанию true), */ closeOnOverlayClick?: boolean; /** * Обработчик клика при нажатии на ESC(если не передан, то при нажатии используется onClose). */ onEscKeyDown?: (event: KeyboardEvent) => void; /** * Обработчик клика при нажатии вне области модального окна(если не передан, то при нажатии используется onClose). */ onOverlayClick?: (event: React.MouseEvent) => void; /** * Фокус элементов будет происходить только внутри модального окна * @default true */ isFocusTrapped?: boolean; /** * Первый элемент для фокуса внутри модального окна. */ initialFocusRef?: React.RefObject; /** * Элемент для фокуса после закрытия модального окна * (по умолчанию фокус на последнем перед открытием активном элементе). */ focusAfterRef?: React.RefObject; /** * Общий обработчик клика по кнопке "закрыть". */ onClose?: () => void; view?: string; } export type ModalProps = CommonModalProps & ModalBodyProps; export type ModalBaseRootProps = PopupRootProps & Pick; export type ModalOverlayProps = Pick & Pick; export type ModalHookArgs = Pick & Pick; //# sourceMappingURL=Modal.types.d.ts.map