/** * Dialog - BASIC fork of @radix-ui/react-dialog with the same API shape (Root / * Trigger / Content + Header / Title / Description / Body / Footer / Action / * Cancel / Close / Form). Classes ported 1:1 from Studio's `Dialog` (tokens * remapped; `Heading` level 2 + `Text` inlined). Modal overlay + centered panel; * dismisses on `Escape` and overlay click. A11y work tracked in modal-surface.tsx. * * @example * ```tsx * import { Button, Dialog, DialogAction, DialogCancel, DialogContent, DialogFooter, DialogTitle, DialogTrigger } from "veryfront/ui"; * * * * * Delete project? * * Cancel * Delete * * * ; * ``` * * @module react/components/ui/dialog */ import * as React from "react"; import { type ButtonProps } from "./button.js"; /** Props accepted by ``. */ export interface DialogProps { /** The trigger and content parts to compose. */ children: React.ReactNode; /** Controlled open state (pair with `onOpenChange`). */ open?: boolean; /** Initial open state when uncontrolled. */ defaultOpen?: boolean; /** Fires when the open state changes. */ onOpenChange?: (open: boolean) => void; } /** Dialog root - owns open state. */ export declare function Dialog(props: DialogProps): React.ReactElement; /** Trigger - opens the dialog. `asChild` merges onto the child element. */ export declare function DialogTrigger(props: React.ButtonHTMLAttributes & { asChild?: boolean; ref?: React.Ref; }): React.ReactElement; /** Props accepted by ``. */ export interface DialogContentProps extends React.HTMLAttributes { /** React 19: ref is a regular prop, forwarded to the dialog panel. */ ref?: React.Ref; } /** Modal surface - overlay + centered panel, rendered while open. */ export declare function DialogContent({ className, children, "aria-describedby": describedBy, ...props }: DialogContentProps): React.ReactElement | null; /** Left-aligned title + description block. */ export declare function DialogHeader({ className, ...props }: React.HTMLAttributes): React.ReactElement; /** Dialog title - Studio Heading level 2 (20px). Semibold so Inter reads at * Studio's medium-on-Söhne weight (workbench heading convention). Registers its * id with the adapter so the panel adopts `aria-labelledby`. */ export declare function DialogTitle({ className, id, ...props }: React.HTMLAttributes): React.ReactElement; /** Dialog description - body text, left-aligned. Registers its id with the * adapter so the panel adopts `aria-describedby`. */ export declare function DialogDescription({ className, id, ...props }: React.HTMLAttributes): React.ReactElement; /** Scrollable body area with a bottom edge-fade. */ export declare function DialogBody({ className, children, ...props }: React.HTMLAttributes): React.ReactElement; /** Sticky footer row - action left, cancel right. */ export declare function DialogFooter({ className, ...props }: React.HTMLAttributes): React.ReactElement; /** Layout-neutral `
` shell (`display: contents`) wrapping header/body/footer. */ export declare function DialogForm({ className, ...props }: React.FormHTMLAttributes): React.ReactElement; /** Props accepted by ``. */ export interface DialogActionProps extends ButtonProps { /** Show the pending/pulsing state and block double-submits. */ isLoading?: boolean; } /** Recommended action button (primary, default size). */ export declare function DialogAction({ isLoading, variant, size, type, ...props }: DialogActionProps): React.ReactElement; /** Alternate button (secondary, default size) that closes the dialog. */ export declare function DialogCancel({ className, variant, size, onClick, ...props }: ButtonProps): React.ReactElement; /** Closes the dialog. `asChild` merges onto the child element. */ export declare function DialogClose(props: React.ButtonHTMLAttributes & { asChild?: boolean; ref?: React.Ref; }): React.ReactElement; //# sourceMappingURL=dialog.d.ts.map