import { type JSX } from "react"; /** * Properties for the {@link Dialog} component. * Extends the standard HTML dialog attributes with animation support. */ export type DialogProps = JSX.IntrinsicElements["dialog"] & { /** * The CSS animation name or shorthand to apply when the dialog is shown. * @example "fade-in 0.3s ease-out" */ enterAnimation?: string; /** * The CSS animation name or shorthand to apply when the dialog is hidden. * @example "fade-out 0.2s ease-in" */ exitAnimation?: string; }; /** * A responsive, accessible Dialog component built on top of the native HTML `` element. * * @remarks * Features: * - Native `` implementation for accessibility. * - Automatic focus trapping using {@link useFocusTrap}. * - Body scroll prevention using {@link usePreventScroll}. * - Backdrop click-to-close functionality. * - Support for entry and exit animations. * * @param props - The properties for the Dialog component. * @returns A JSX element representing the Dialog. * * @example * ### Basic Usage * ```tsx * const [isOpen, setIsOpen] = useState(false); * * return ( * <> * * setIsOpen(false)}> *

Welcome

*

This is a native dialog.

* *
* * ); * ``` * * @example * ### With Animations * ```tsx * *

Animated content

*
* ``` */ export declare function Dialog({ open, ref, onClose, enterAnimation, exitAnimation, ...props }: DialogProps): JSX.Element;