/** * AlertDialog - a confirmation modal. Semantically a {@link Dialog} with * `role="alertdialog"`, a REQUIRED title + description, and explicit * Action / Cancel buttons. Unlike `Dialog` it does NOT dismiss on outside-click * or `Escape`: the user must choose an option. * * It reuses the Dialog primitive's open-state context (`dialog.Root` / * `dialog.Trigger` / `dialog.useDialog` resolved from the active adapter) so * trigger + open state behave identically, but renders its own alert-specific * overlay + panel - the panel carries `role="alertdialog"` and its * `aria-labelledby` / `aria-describedby` are wired to the Title / Description * ids, and neither the overlay nor a key listener dismisses it. * * @example * ```tsx * import { * AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, * AlertDialogDescription, AlertDialogFooter, AlertDialogTitle, AlertDialogTrigger, * } from "veryfront/ui"; * * * Delete account * * Delete account? * This permanently removes your account. * * Cancel * Delete * * * ; * ``` * * @module react/components/ui/alert-dialog */ import * as React from "react"; import { type ButtonProps } from "./button.js"; /** Props accepted by ``. */ export interface AlertDialogProps { /** The trigger and content parts to compose. */ children: React.ReactNode; /** Controlled open state (pair with `onOpenChange`). @default undefined */ open?: boolean; /** Initial open state when uncontrolled. @default false */ defaultOpen?: boolean; /** Fires when the open state changes. @default undefined */ onOpenChange?: (open: boolean) => void; } /** AlertDialog root - owns open state (shares the Dialog adapter slot). */ export declare function AlertDialog(props: AlertDialogProps): React.ReactElement; /** Props accepted by ``. */ export interface AlertDialogTriggerProps extends React.ButtonHTMLAttributes { /** Merge trigger behaviour onto the child element instead of a `