import { IconName } from '../../icons/Icon'; /** * Props del componente Sheet. */ export interface SheetProps extends React.HTMLAttributes { isOpen: boolean; setIsOpen: (isOpen: boolean) => void; withAutoClose?: boolean; onBack?: (() => Promise | void) | false; navIcon?: IconName; navClassName?: string; } /** * Componente Sheet que renderiza un contenedor modal mediante un portal, * mostrando un overlay y bloqueando el scroll del documento mientras está abierto. * * El componente proporciona un contexto interno (`CloseContext`) que permite * cerrar el Sheet desde cualquier componente hijo utilizando el hook `useClose`. * * @param isOpen Controla si el Sheet está visible. * @param setIsOpen Función para actualizar el estado de apertura del Sheet. * @param title Título del sheet. * @param onBack - Callback opcional al pulsar el icono del nav. Si se pasa `false`, no se renderiza el icono del nav. * @param withAutoClose Cerrar el sheet de manera automática (booleano -> por defecto false). * @param navIcon Icono de la barra de navegación del sheet. * @param navClassName Clases CSS adicionales para personalizar el contenedor de navegación. * @param children Contenido que se renderiza dentro del Sheet. * @param className Clases CSS adicionales para personalizar el contenedor interno. * @param props Props HTML adicionales que se aplican al contenedor principal. * * @remarks * - El Sheet se renderiza utilizando `createPortal`. * - Mientras está abierto, el scroll del documento se bloquea mediante `useScrollLock`. * - Al cerrar, se ejecuta una animación de salida de **450ms** antes de desmontar el componente. * - Los componentes hijos pueden cerrar el Sheet usando el hook `useClose`. * * @example * ```tsx * import { useState } from "react"; * import { Sheet } from "./Sheet"; * import { useClose } from "../../hooks/useClose"; * * function CloseButton() { * const close = useClose(); * * return ( * * ); * } * * export default function Example() { * const [isOpen, setIsOpen] = useState(false); * * return ( * <> * * * * *

Título del Sheet

*

Contenido del modal.

* * *
* * ); * } * ``` */ export declare const Sheet: ({ isOpen, setIsOpen, title, children, navClassName, className, withAutoClose, onBack, navIcon, ...props }: SheetProps) => import('react').ReactPortal | null;