import { type ReactElement, type ReactNode } from 'react'; export interface DialogProps { readonly title: string; readonly description?: string; readonly children?: ReactNode; /** * A trigger element; when omitted, control the dialog via `open`/`onOpenChange`. * * It is a single ELEMENT, not any node: Radix clones its props onto it, so a * string throws. The type admits a FRAGMENT — `<>` is a `ReactElement` — * which would render openers carrying neither the * `aria-haspopup`/`aria-expanded`/`aria-controls` wiring nor a click handler, * so {@link assertSlotElement} rejects that one at runtime. */ readonly trigger?: ReactElement; readonly open?: boolean; readonly defaultOpen?: boolean; readonly onOpenChange?: (open: boolean) => void; /** * Fill the viewport edge to edge instead of centring a fixed-size panel. The * overlay, the focus trap and every other Radix behaviour are unchanged. */ readonly fullscreen?: boolean; /** * A class merged onto `RadixDialog.Content` after the surface classes, for a * host that must reach the content element itself — e.g. a plugin hanging its * CSS-scoping root on the panel so its styles apply inside the Radix portal. */ readonly contentClassName?: string; /** * Drop the forced visual `Title` and the `tai-stack` children wrapper, rendering * `children` directly for a chrome-free content mode. The `title` is still * required and still names the dialog — it renders visually-hidden — so the * accessible name never depends on the visible chrome. */ readonly chromeless?: boolean; /** * When `false`, the light-dismiss gestures are disabled: Escape and a pointer * press outside the panel no longer close it, so the only way out is an explicit * action the `children` render (a Done/Cancel button calling `onOpenChange`). * The focus trap, the scrim and every other Radix behaviour are unchanged. This * is a generic mechanism — it knows nothing of what the dialog holds — for the * one-time-reveal case where an accidental dismiss would lose content the server * cannot reproduce. Defaults to `true`, the ordinary dismissable modal. This * design-system panel renders no built-in close (X) affordance, so there is none * to hide here; explicit close stays entirely with the caller's own buttons. */ readonly dismissable?: boolean; } export declare function Dialog({ title, description, children, trigger, open, defaultOpen, onOpenChange, fullscreen, contentClassName, chromeless, dismissable, }: DialogProps): import("react").JSX.Element; //# sourceMappingURL=dialog.d.ts.map