UNPKG

@financial-times/o3-tooltip

Version:

Provides a viewport-aware tooltip for annotating or or highlighting other aspects of a product's UI

84 lines (79 loc) 2.62 kB
import { Instance } from '@popperjs/core'; type TooltipProps = { content: string; title?: string; placement: 'top' | 'right' | 'bottom' | 'left'; }; interface OnboardingToolTipProps extends Omit<TooltipProps, 'placement'> { contentId: string; targetId: string; placement: 'top-start' | 'top' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end'; } interface ToggleToolTipProps extends TooltipProps { infoLabel?: string; } declare global { namespace JSX { interface IntrinsicElements { 'o3-tooltip-onboarding': any; 'o3-tooltip-toggle': any; } } } declare class ToolTip extends HTMLElement implements TooltipProps { contentId: string; targetId: string; protected _popperInstance?: Instance; protected _targetNode: HTMLElement; protected _isToggleTooltip: boolean; constructor(); static get observedAttributes(): string[]; get placement(): TooltipProps["placement"]; set placement(value: TooltipProps["placement"]); get title(): string; set title(value: string); get content(): string; set content(value: string); connectedCallback(): void; attributeChangedCallback(name: string): void; disconnectedCallback(): void; protected render(name?: string): void; protected initialisePopper(targetNode: HTMLElement, popperElement: HTMLElement): Instance; } declare class OnboardingToolTip extends ToolTip implements OnboardingToolTipProps { private _closeButton; connectedCallback(): void; disconnectedCallback(): void; private _clickHandler; private _addEventListeners; private _removeEventListeners; private getTargetNode; _generateMarkup(title: string, content: string, contentId: string): string; } declare global { interface HTMLElementTagNameMap { 'o3-tooltip-onboarding': OnboardingToolTip; } } declare class ToggleToolTip extends ToolTip implements ToggleToolTipProps { private _contentWrapper; private _liveRegionEl; infoLabel: string; constructor(); connectedCallback(): void; disconnectedCallback(): void; private _clickHandler; private _closeOnOutsideClick; private _closeOnEsc; private _cleanUp; private _addContentInLiveRegion; private _removeContentInLiveRegion; private _addEventListeners; private _removeEventListeners; _generateMarkup(infoLabel: string): string; } declare global { interface HTMLElementTagNameMap { 'o3-tooltip-toggle': ToggleToolTip; } }