import * as React from "react"; /** * Source-adapted shadcn Dialog rebuilt on the native `` element. * `showModal()` supplies the focus trap, the backdrop, and Escape-to-close, * so no radix runtime and no focus-trap dependency are needed. */ export function Dialog({ open, onClose, title, description, children, footer, }: { open: boolean; onClose: () => void; title: string; description?: string; children?: React.ReactNode; footer: React.ReactNode; }) { const ref = React.useRef(null); const titleId = React.useId(); const descriptionId = React.useId(); React.useEffect(() => { const element = ref.current; if (element === null) return; if (open && !element.open) element.showModal(); if (!open && element.open) element.close(); }, [open]); return ( { event.preventDefault(); onClose(); }} onClose={onClose} >

{title}

{description === undefined ? null : (

{description}

)} {children}
{footer}
); }