import { type EventEmitter } from '../../stencil-public-runtime'; import type { NotificationCloseDetail, NotificationCloseReason, NotificationItemClickDetail, NotificationPlacement } from './notification.types'; /** * ## Design System * * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, * consulte o [Design System do GovBR](https://www.gov.br/ds/components/notification?tab=designer). * * @category Feedback * @status stable * @slot trigger - Elemento acionador externo responsável por abrir e fechar o painel. * @slot header - Região superior do componente, para uso com subcomponentes de cabeçalho ou conteúdo customizado. * @slot tabs - Região opcional para navegação por abas. * @slot default - Região principal da lista de notificações. * @slot footer - Região opcional para ações complementares, como "ver todas". * * @part base - Superfície principal do painel. * @part header - Região superior do componente. * @part body - Região principal do componente. * @part tabs - Região de abas, quando existir. * @part list - Região com rolagem onde os itens são exibidos. * @part close-button - Botão de fechar do painel. * @part divider - Divisor entre itens da lista. */ export declare class Notification { /** * Referência ao elemento host do componente. */ el: HTMLBrNotificationElement; hasFooter: boolean; hasHeader: boolean; hasTabs: boolean; hasTrigger: boolean; /** * Identificador único do componente. * Quando omitido, um valor é gerado automaticamente. * * > **Padrão:** valor único gerado por generateUniqueId(). * */ customId: string; /** * Nome acessível do painel de notificações. Exposto via `aria-label`. */ readonly label: string; /** * Controla se o painel de notificações está aberto. */ open: boolean; /** * Fecha o painel ao clicar fora da superfície. */ readonly closeOnOutsideClick: boolean; /** * Fecha o painel ao clicar novamente no acionador. */ readonly closeOnTriggerClick: boolean; /** * Faz o painel ocupar toda a largura disponível em viewports pequenas. */ readonly mobileFullscreen: boolean; /** * Habilita rolagem apenas na região de itens, preservando cabeçalho e abas fixos. */ readonly internalScroll: boolean; /** * Define o posicionamento do painel em relação ao acionador. */ readonly placement: NotificationPlacement; /** * Largura explícita do painel. Quando não definida, o painel dimensiona conforme o conteúdo, * respeitando o `max-width` definido por spec ou pelo prop `maxWidth`. */ readonly width: string; /** * Sobrescreve o `max-width` do painel. Por padrão, o CSS aplica `max-width: 50vw` em viewports ≥576px * conforme a especificação do Design System. */ readonly maxWidth: string; /** * Sobrescreve a altura máxima do painel. * Por padrão, o CSS aplica `calc(100vh - 86px)` via token `--notification-height`. */ readonly maxHeight: string; /** * Define se o painel de notificações deve ser renderizado de forma estática (inline). * Quando verdadeiro, o posicionamento absoluto é desativado. Ideal para centrais de notificações fixas ou documentação. */ readonly isStatic: boolean; protected handleOpenChange(newValue: boolean): void; /** * Informa a mudança de estado aberto/fechado do painel. */ brOpenChange: EventEmitter<{ open: boolean; }>; /** * Informa que o painel foi aberto. */ brNotificationOpen: EventEmitter; /** * Informa que o painel foi fechado. */ brNotificationClose: EventEmitter; /** * Expõe a interação com um item da lista. */ brNotificationItemClick: EventEmitter; /** * Informa troca de aba quando o componente possuir navegação por tabs. */ brNotificationTabChange: EventEmitter<{ value: string; }>; componentDidLoad(): void; disconnectedCallback(): void; private attachBlockingSurfaceListener; private detachBlockingSurfaceListener; handleKeyDown: (event: KeyboardEvent) => void; handleOutsideClick: (event: MouseEvent) => void; private windowListenersAttached; private attachWindowListeners; private detachWindowListeners; handleNotificationItemSelect(event: CustomEvent<{ itemId?: string; }>): void; handleNotificationHeaderClose(): void; handleNotificationTabChange(event: CustomEvent<{ value: string; }>): void; /** * Abre o painel de notificações. */ show(): Promise; /** * Fecha o painel de notificações. */ hide(reason?: NotificationCloseReason): Promise; /** * Alterna o estado aberto/fechado. */ toggle(): Promise; /** * Move o foco de volta para o acionador. */ focusTrigger(): Promise; /** * Move o foco para o primeiro item interativo da lista. */ focusFirstItem(): Promise; private pendingCloseReason; private cleanupBlockingSurfaceDismissal?; private previousFocus; private readonly getFocusableElements; private readonly handleFocusTrap; private readonly isPanelVisible; private readonly getTriggerElements; private readonly updateTriggerAria; private readonly getCssClassMap; private readonly checkSlotVisibility; render(): any; }