import { OnDestroy } from '@angular/core'; import { DialogVariant } from './dialog-types'; import * as i0 from "@angular/core"; /** How a dialog was closed — surfaced by the `closed` output. */ export type DialogCloseReason = 'programmatic' | 'backdrop' | 'escape' | 'close-button'; /** * A themeable modal dialog built on `@angular/cdk/dialog` (centered, scrimmed, focus-trapped). * * Figma: Core Components — "Dialog" organism (file VFBn7KCDy3FSIlvhNo3ylq, 873:9194). * * One component, switched by `variant`: * - `modal-leading-icon` — leading icon + title header, projected body, split footer. * - `modal-centered-icon` — centered icon badge, centered title + description, split footer. * - `alert` — compact title + description, right-aligned footer. * * Open state is a two-way `[(open)]` model wrapped around the CDK `Dialog` service. The * CDK dialog container provides `role="dialog"`, `aria-modal`, the focus trap, initial * focus (`autoFocus: 'dialog'`) and focus restoration. The dialog closes on Escape / * backdrop click (when `dismissible`); those are handled here so `closed` can report a * reason. Title/description come from inputs; project the body as default content and each * action button with the `cmpDialogActions` attribute (the footer lays them out — split * full-width for modals, right-aligned for alerts). * * *

Body content…

* * *
* * Consumers must load `@angular/cdk/overlay-prebuilt.css` (overlay positioning) and the * `@compsych-ui-components/shared` design tokens globally. The scrim color is injected by * the dialog itself — no extra stylesheet import is needed. */ export declare class DialogComponent implements OnDestroy { /** Two-way open state. Set to `true` to show the dialog, `false` to close it. */ readonly open: import("@angular/core").ModelSignal; /** Layout type. Defaults to `modal-leading-icon`. */ readonly variant: import("@angular/core").InputSignal; /** * Optional width override — any CSS length (e.g. `'1000px'`). Defaults to the variant * width (800px modal / 600px alert). Always clamped to the viewport on small screens. */ readonly width: import("@angular/core").InputSignal; /** Heading text. Also drives the accessible name via `aria-labelledby`. */ readonly title: import("@angular/core").InputSignal; /** Supporting text under the title (rendered for `centered` and `alert` variants). */ readonly description: import("@angular/core").InputSignal; /** Lucide icon name — the leading header icon (`leading`) or centered badge glyph (`centered`). */ readonly icon: import("@angular/core").InputSignal; /** * When true (default) the dialog shows a close button and closes on Escape / backdrop click. * When false, the dialog is a forced choice — provide a focusable action (e.g. a * `[cmpDialogActions]` button) so keyboard users can dismiss it (WCAG 2.1.2, no keyboard trap). */ readonly dismissible: import("@angular/core").InputSignal; /** Accessible label for the close button. */ readonly closeLabel: import("@angular/core").InputSignal; /** Accessible name used when no `title` is provided (e.g. a fully custom body). */ readonly ariaLabel: import("@angular/core").InputSignal; /** Renders the action footer. Set false to hide it when there are no actions. */ readonly showActions: import("@angular/core").InputSignal; /** Emits after the dialog has been opened and shown. */ readonly opened: import("@angular/core").OutputEmitterRef; /** Emits after the dialog has closed, with the reason it closed. */ readonly closed: import("@angular/core").OutputEmitterRef; /** The dialog surface template, projected into the CDK dialog container when open. */ private panelTemplate; private readonly dialog; private readonly overlay; private readonly directionality; private readonly viewContainerRef; private dialogRef?; private closeReason; private readonly _ids; protected readonly titleId: string; protected readonly descId: string; constructor(); ngOnDestroy(): void; /** Close request from the close button. */ protected requestClose(): void; private closeWith; private attach; private detach; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }