import { type EventEmitter } from '../../stencil-public-runtime'; import type { FlyoutBackdrop, FlyoutPosition } from './types'; import type { Theme } from '../../utils/styles'; /** * @component diwa-flyout * * A full-height overlay panel that slides in from the start or end edge of * the viewport. Follows the controlled component pattern — the consumer * manages `open` state in response to the `dismiss` event. * * Accessibility: * - Panel has `role="dialog"` and `aria-modal="true"` * - Clicking the backdrop, pressing Escape, or clicking the dismiss button * emits the `dismiss` event; the consumer sets `open={false}` * - Focus moves to the panel when opened and returns to the trigger element * when closed * - Body scroll is locked (`overflow: hidden`) while the flyout is open * * V1 limitations: * - No focus trap: Tab can navigate outside the panel. A full focus trap * will be added in V2. * * Usage: * setIsOpen(false)}> *

Flyout body content.

*
* setIsOpen(false)}>Save *
*
* * @slot default — Scrollable body content of the flyout. * @slot header — Extra content in the header row, inserted after the heading text. * @slot footer — Sticky footer content (e.g. action buttons). Auto-hides when empty. */ export declare class DiwaFlyout { private panelEl?; private savedFocusEl; /** Per-component theme override (`light` / `dark`). */ theme: Theme; /** * Whether the flyout is currently open. * * Controlled prop — the consumer must set this to `false` in response to * the `dismiss` event (backdrop click, Escape key, or dismiss button). */ open: boolean; /** Which edge of the viewport the panel slides in from (`start` = left, `end` = right). */ position: FlyoutPosition; /** * Controls the visual style of the backdrop overlay. * `blur` — frosted glass (default; use when opened by user interaction). * `shading` — solid dark scrim (use for system-triggered flyouts). */ backdrop: FlyoutBackdrop; /** Heading text displayed in the flyout header. */ heading: string; /** * Emitted when the user requests the flyout to close (backdrop click, * Escape key press, or dismiss button click). * * The consumer must set `open={false}` in response: * ```html * this.open = false} /> * ``` * Not bubbles, not composed. */ dismiss: EventEmitter; onOpenChange(nextOpen: boolean): void; disconnectedCallback(): void; /** Close on Escape key while the flyout is open. */ onKeyDown(e: KeyboardEvent): void; private handleDismiss; render(): any; } //# sourceMappingURL=diwa-flyout.d.ts.map