import { useEffect, type ReactNode } from "react"; interface ModalProps { open: boolean; title: string; onClose: () => void; children: ReactNode; footer?: ReactNode; size?: "sm" | "md" | "lg"; } export function Modal({ open, title, onClose, children, footer, size = "md" }: ModalProps) { useEffect(() => { if (!open) return; const onKey = (event: KeyboardEvent) => { if (event.key === "Escape") onClose(); }; window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [open, onClose]); if (!open) return null; return (
{ if (event.target === event.currentTarget) onClose(); }} role="dialog" >

{title}

{children}
{footer ? : null}
); }