import { PropertyValues } from 'lit'; import { Cre8Element } from '../cre8-element'; import '../icon/icon.js'; import '@a11y/focus-trap'; /** * Modal component should be used in all modal situations. * It is natuarally composable and can even have a custom header and remove the close button. * (note: adding `slot="header"` will insert the given element into the header section of the modal, * same for `slot="footer"` and no given slot name will inset it into the body) * * If it is desired to create a utility modal. Cre8Modal requires a status value (see props table below, * and a UtilityModalTitle since all utility modals have a cre8-heading) * @slot - The component content */ export declare class Cre8Modal extends Cre8Element { static styles: import("lit").CSSResult[]; /** * Query the modal window */ _modalWindow: HTMLDivElement; /** * Is Active attribute */ isActive?: boolean; /** * Status Types * * * */ status?: 'error' | 'warning' | 'success' | 'info' | 'help'; /** * Utility Modal Heading (String) */ utilityModalTitle: string; /** * Not dismissible modal */ notDismissible?: boolean; /** * Close Button Text */ closeButtonText: string; /** * Close Button Icon */ closeButtonIcon: string; /** * Modal Aria Label - This is required for accessibility and provides context of the entire modal! */ ariaLabel: string; /** * Handle keydown * 1) Close the modal when escape is hit when the user is focused within the modal */ handleKeydown(e: KeyboardEvent): void; /** * Handle on close * 1) On close, set the modal to not active and dispatch event telling the parent the modal was closed. */ handleCloseModal(): void; /** * Handle "click outside" * 1) onClick of the area around the modal window, close the modal. */ handleOnClickOutside(e: Event): void; /** * Lifecycle method to focus on modal * 1) If there is a changed property, and this.isActive === true, then focus on the modal window. * 2) Disable the body from scrolling behind while the modal is open. */ updated(changedProperties: PropertyValues): void; mapStatusToIconModal: (status: string) => import("lit-html").TemplateResult<1>; /** * Lifecycle method on removal from the DOM * Removed body overflow and handle close (isActive set to false) */ disconnectedCallback(): void; render(): import("lit-html").TemplateResult<1>; } export interface CloseModalEvent extends CustomEvent<{ isActive: boolean; }> { type: 'close-modal'; currentTarget: Cre8Modal; } declare global { interface HTMLElementTagNameMap { 'cre8-modal': Cre8Modal; } } //# sourceMappingURL=modal.d.ts.map