import { EventEmitter } from '../../stencil-public-runtime'; import { ElementReference } from '../utils/element-reference'; import { InheritAriaAttributesMixinContract } from '../utils/internal/mixins/accessibility/inherit-aria-attributes.mixin'; import { ComponentIdMixinContract } from '../utils/internal/mixins/id.mixin'; import { PopoverCloseFocus, PopoverInterface } from './popover-controller'; declare const Popover_base: abstract new (...args: any[]) => { componentDidLoad(): void; disconnectedCallback(): void; hostElement?: import("@stencil/core/internal").HTMLStencilElement; connectedCallback?(): void; componentWillRender?(): Promise | void; componentDidRender?(): void; componentWillLoad?(): Promise | void; componentShouldUpdate?(newVal: any, oldVal: any, propName: string): boolean | void; componentWillUpdate?(): Promise | void; componentDidUpdate?(): void; render?(): any; } & import("../utils/internal/component").StencilLifecycle & InheritAriaAttributesMixinContract & import("../utils/internal/mixins/accessibility/inherit-aria-attributes.mixin").LifecycleWithInheritAriaAttributesMixin & { $internal_id: number; getHostElementId(): string; hostElement?: import("@stencil/core/internal").HTMLStencilElement; connectedCallback?(): void; disconnectedCallback?(): void; componentWillRender?(): Promise | void; componentDidRender?(): void; componentWillLoad?(): Promise | void; componentDidLoad?(): void; componentShouldUpdate?(newVal: any, oldVal: any, propName: string): boolean | void; componentWillUpdate?(): Promise | void; componentDidUpdate?(): void; render?(): any; }; /** * Floating panel anchored to a trigger element. * * @slot default - Child sections in order: `ix-popover-header`, `ix-popover-image`, `ix-popover-content`, and `ix-popover-footer`. * * @since 5.1.0 */ export declare class Popover extends Popover_base implements PopoverInterface, InheritAriaAttributesMixinContract, ComponentIdMixinContract { hostElement: HTMLIxPopoverElement; /** * Element that toggles the popover. * String values are resolved as the trigger element `id`, not as CSS selectors. * Also accepts a DOM element reference. * * @since 5.1.0 */ trigger?: ElementReference; /** * Show/hide state * * @since 5.1.0 */ show: boolean; /** * Preferred placement relative to trigger * * @since 5.1.0 */ placement: 'top' | 'bottom' | 'left' | 'right'; /** * Show the spike pointing at the trigger * * @since 5.1.0 */ hasSpike: boolean; /** * Interaction that opens the popover * * @since 5.1.0 */ triggerMode: 'click' | 'hover'; /** * Dismiss when clicking outside the popover and trigger * * @since 5.1.0 */ closeOnClickOutside: boolean; /** * Fires before visibility changes. Cancel to prevent. * * @since 5.1.0 */ showChange: EventEmitter; /** * Fires after visibility has changed * * @since 5.1.0 */ showChanged: EventEmitter; private readonly dialogRef; private triggerElement?; private disposeAutoUpdate?; private disposeTriggerListener?; private disposeDialogListener?; private focusTrap?; private hideTimeout?; private readonly assignedNestedPopoverIds; private hasFocusableContent; private suppressShowWatch; private isOpeningPopover; private closeFocus; private hasDisconnected; private triggerRegistryId; /** * Hover mode: skip `present()` on the trigger `focus` handler while * `schedulePostCloseFocus()` refocuses the trigger (e.g. after Escape). */ private suppressFocusPresent; private get spikeElement(); private getFocusTrapOptions; /** Top-layer dialog id; kept separate from host `id` when the host has a custom id. */ private get popoverPanelId(); getId(): string; getNestedPopoverIds(): string[]; cacheNestedPopoverId(event: CustomEvent): void; isPresent(): boolean; willPresent(): boolean; willDismiss(): boolean; present(): Promise; dismiss(closeFocus?: PopoverCloseFocus): void; /** * Open the popover programmatically * * @since 5.1.0 */ showPopover(): Promise; /** * Close the popover programmatically * * @since 5.1.0 */ hidePopover(): Promise; onTriggerChange(newTrigger: ElementReference | undefined, oldTrigger: ElementReference | undefined): void; onTriggerModeChange(): void; onShowChange(newValue: boolean): void; connectedCallback(): void; componentDidLoad(): void; private initializePopover; componentDidRender(): void; disconnectedCallback(): void; private openPopover; private closePopover; private detectFocusableContent; private focusFirstElement; private applyCloseFocus; /** * Run after `hidePopover()` so browser popover focus restoration can be * corrected (pointer dismiss) or overridden (keyboard dismiss). */ private schedulePostCloseFocus; /** Pointer-driven dismiss: avoid a focus ring on the trigger. */ private releasePopoverFocus; private blurTriggerElement; private registerTriggerListener; private discoverNestedPopover; private togglePopover; private containsPopoverTarget; private scheduleHideFromTrigger; private scheduleHide; private clearHideTimeout; private getTriggerAriaTarget; private clearTriggerAriaAttributes; private updateTriggerAria; private clearTriggerAria; private computeSpikePosition; private computePopoverPosition; private applyPopoverPosition; private registerHoverDialogListener; private onDialogMouseEnter; private onDialogMouseLeave; render(): any; } export {};