import { LitElement, CSSResultGroup } from 'lit'; import { PdDialogButton } from '../types'; /** * Modal dialog with header, content, and configurable footer buttons. * * Rendert intern ein natives `` und öffnet via `showModal()` im * Top-Layer des Browsers (immun gegen `transform`/`filter`/`contain`- * Vorfahren und `overflow`-Clipping; Fokus-Trap und `inert`-Hintergrund * kommen vom Browser). * * Usage contract: instantiation == open — der Dialog öffnet sich beim * Mounten automatisch (Konsumenten wie pd-confirm-dialog rendern ihn * konditional). `showPopup()`/`hidePopup()` steuern ihn programmatisch. * * Anzeige-Variante: Ohne `buttons` entfällt die Fußzeile komplett — * mit `withCloseIcon` schließt der Dialog über das X im Kopf (plus * ESC/Backdrop, wenn erlaubt). Jeder Schließ-Weg feuert `popup-close`, * damit konditional rendernde Konsumenten ihren Zustand nachziehen. * * @tagname pd-popup-dialog * @summary Modal dialog with header, content slot, and footer buttons. * * @event submit-button-clicked - Fired when a footer button is clicked. Emits `{button}`. * @event popup-close - Fired on every close path (X, ESC, backdrop, hidePopup). * * @slot content - Main dialog content. * * @cssprop --pd-popup-modal-bg-rgba - Backdrop background (`::backdrop`). * @cssprop --pd-popup-modal-padding - Modal padding. Default: `--pd-spacing-md`. * @cssprop --pd-popup-max-width - Maximum dialog width. Default: `700px`. * @cssprop --pd-popup-header-col - Header background. Default: `--pd-default-col`. * @cssprop --pd-popup-header-height - Header min-height. Default: `45px`. * @cssprop --pd-popup-header-gap - Header gap between icon and text. Default: `--pd-spacing-sm`. * @cssprop --pd-popup-header-font-size - Header font size. Default: `1.3em`. * @cssprop --pd-popup-header-font-col - Header text color. Default: `--pd-default-bg-col`. * @cssprop --pd-popup-content-bg - Content area background. Default: `--pd-default-bg-col`. * @cssprop --pd-popup-content-padding - Content area padding. Default: `--pd-spacing-md`. * @cssprop --pd-popup-footer-col - Footer background. Default: `--pd-default-light-col`. * @cssprop --pd-popup-footer-padding - Footer padding. Default: `--pd-spacing-md`. * @cssprop --pd-popup-footer-button-width - Footer button width. Default: `38%`. * @cssprop --pd-popup-border-col - Border color of the dialog surface. Default: `--pd-default-light-col`. * @cssprop --pd-popup-border-radius - Dialog border radius. Default: `var(--pd-radius-lg)`. */ export declare class PdPopupDialog extends LitElement { /** * Dialog type: `info`, `warn`, `error`, `help` — or `none` for a dialog * that carries no status at all (a form, a prompt), which would otherwise * get an info badge it does not mean. */ type: string; /** Dialog title text. */ title: string; /** Footer button configurations. */ buttons: PdDialogButton[]; /** Enable closing with Escape key. */ closeByEscape: boolean; /** Enable closing by clicking the backdrop overlay. */ closeByBackdrop: boolean; /** Block body scroll when dialog is open. */ blockScroll: boolean; /** Show a close X in the header (display dialogs without footer). */ withCloseIcon: boolean; /** @ignore */ private _dialog; /** Track if scroll was blocked by this instance */ private _scrollBlocked; static styles: CSSResultGroup; disconnectedCallback(): void; firstUpdated(): void; render(): import('lit').TemplateResult<1>; private _onCloseIconKeyDown; private _onButtonClick; private _renderIcon; /** * Öffnet das Popup-Dialog manuell */ showPopup(): void; /** * Schließt das Popup-Dialog manuell */ hidePopup(): void; /** ESC löst auf dem Dialog ein cancel aus — nur zulassen, wenn erlaubt. */ private _onCancel; private _onBackdropClick; /** Zentraler Schließ-Pfad: feuert bei ESC, Backdrop, X und close(). */ private _onDialogClose; private _unblockScroll; } //# sourceMappingURL=PdPopupDialog.d.ts.map