import { ComponentProps, ReactNode } from 'react'; import { Dialog as DialogPrimitive } from 'radix-ui'; import { DialogOverlay, DialogPortal } from '../../../components/ui/dialog.js'; import { Button } from '../../../components/ui/button.js'; import { XIcon } from 'lucide-react'; type ContentInteractions = Pick, "onInteractOutside" | "onEscapeKeyDown" | "onOpenAutoFocus" | "onCloseAutoFocus">; export type GlassDialogSize = "sm" | "md" | "lg"; interface GlassDialogProps extends ContentInteractions { open: boolean; onOpenChange: (open: boolean) => void; children: ReactNode; className?: string; size?: GlassDialogSize; /** Render the built-in close button in the top-right corner. */ showClose?: boolean; } /** * GlassDialog — the single modal primitive for admin surfaces. Wraps shadcn * Dialog with the project's glass-strong visual contract and consistent slot * composition (GlassDialogHeader / GlassDialogBody / GlassDialogFooter). * * Note: this renders its own DialogContent via the radix primitive so we can * suppress shadcn's default close button and emit our own footer-close button * when `showClose` is true. The shadcn DialogContent's `showCloseButton` * already gives us that toggle; we keep the raw primitive here so we can also * thread `onInteractOutside`/`onEscapeKeyDown` for scanner use. */ export declare function GlassDialog({ open, onOpenChange, children, className, size, showClose, onInteractOutside, onEscapeKeyDown, onOpenAutoFocus, onCloseAutoFocus, }: GlassDialogProps): import("react/jsx-runtime").JSX.Element; export { DialogOverlay, DialogPortal, XIcon, Button }; //# sourceMappingURL=GlassDialog.d.ts.map