import { FC, MouseEventHandler, Ref, RefObject } from 'react'; import { OnClose } from '../useOverlay'; import { PortalExtendableProps } from '../Portal'; import './Modal.css'; interface FocusTrapProps { /** * Включить ловушку фокуса * * @default true */ trapFocus?: boolean; /** * Выставить фокус на первый интерактивный элемент * в пределах модального окна * * @default true */ autoFocus?: boolean; /** * Вернуть фокус на элемент после закрытия, * который вызвал модальное окно * * @default true */ restoreFocus?: boolean; /** * Ссылка на элемент, на который будет возвращен * фокус после закрытия */ restoreFocusRef?: RefObject; } export interface IModalProps extends PortalExtendableProps, FocusTrapProps { /** * id элемента, который описывает это модальное окно. NVDA проговорит этот элемент, когда окно откроется. * Несколько id можно указать через пробел. */ ariaLabelledBy?: string; /** * Выравнивание контента по вертикали * * @default 'middle' */ contentVerticalAlign?: 'top' | 'middle' | 'bottom'; /** * Добавляет анимацию при открытии модального окна. * * @default true */ hasAnimation?: boolean; /** * Блокирует прокрутку на теле документа, при открытом модальном окне. * * @default true */ preventBodyScroll?: boolean; /** * Дополнительный класс у корневого DOM-элемента */ className?: string; /** * Обработчик, вызываемый при срабатывании события click */ onClick?: MouseEventHandler; /** * Обработчик, вызывающийся после нажатия на клавишу esc, * либо мышкой на область вне контейнера */ onClose?: OnClose; /** * Ссылка на корневой DOM-элемент компонента */ innerRef?: Ref; /** * Задает слой `z-index` */ zIndex?: number; } export declare const cnModal: import("@bem-react/classname").ClassNameFormatter; /** * Используется для создания всплывающих модальных окон. * @param {IModalProps} props */ export declare const Modal: FC; export {};