import { CSSProperties, ReactNode, SyntheticEvent } from 'react'; export type DialogCloseReason = 'escapeKeyDown' | 'backdropClick'; export type DialogMaxWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false; interface DialogPaperProps { className?: string; style?: CSSProperties; sx?: unknown; ref?: React.Ref; } /** * @figmaNode wXrXt5uKNNzV2DnQCgyYZH#15820-18954 * Figma "Dialog": white paper radius 8 with the Dialogue-popup shadow (#22213366, 0 4 40) over a * bg/modal #626e7eb2 overlay. Header = optional label (Helper, delta-600) + title (Page title 24 * SemiBold, delta-800) + close button. `fullScreen`/mobile drops the radius and fills the viewport. */ export interface IStyledDialogProps { open: boolean; onClose?: (event: SyntheticEvent | Event, reason: DialogCloseReason) => void; children?: ReactNode; dataTest: string; maxWidth?: DialogMaxWidth; fullWidth?: boolean; /** Defaults to `true` on mobile (≤743px); pass `false` to keep the windowed paper there too. */ fullScreen?: boolean; scroll?: 'paper' | 'body'; disableEscapeKeyDown?: boolean; /** * Accepted for MUI `Dialog` parity (DEC-003). Focus is trapped by the native `` * `showModal()`, so this MUI `Modal` prop is a typed no-op. */ disableEnforceFocus?: boolean; className?: string; style?: CSSProperties; sx?: unknown; /** * MUI `Dialog` `classes` parity (DEC-003). The native `` is the paper, so `classes.paper` * is merged onto it; `classes.root` is accepted as a typed no-op (no separate root element). */ classes?: { paper?: string; root?: string; }; PaperProps?: DialogPaperProps; slotProps?: { paper?: DialogPaperProps; backdrop?: Record; transition?: { onExited?: () => void; }; }; onCloseText?: ReactNode; /** @figmaProp none — behavioral */ showCloseIcon?: boolean; /** @figmaProp header Label (Helper 14, delta-600) */ dialogLabel?: ReactNode; /** @figmaProp header Title (Page title 24 SemiBold, delta-800) */ dialogTitle?: ReactNode; dialogHeaderNode?: ReactNode; } /** * Modal dialog built on the native `` element (replaces MUI `Dialog`) — backdrop, focus * trap and ESC handling come from `showModal()` for free. The `` element is the "paper", * so `PaperProps`/`slotProps.paper` and `className` style it directly; `::backdrop` is the overlay. * Public props preserved (DEC-003). TASK-205. * * ponytail: open/close is instant (no MUI fade) and body-scroll behind the modal isn't locked — * both known ceilings; Chromatic in CI is the visual gate. Upgrade path: add `@starting-style` * transitions and a scroll-lock effect if a diff calls for it. */ export declare const StyledDialog: React.FC; export {};