UNPKG

@studiocms/ui

Version:

The UI library for StudioCMS. Includes the layouts & components we use to build StudioCMS.

47 lines (46 loc) 1.52 kB
type Position = 'auto' | 'top' | 'bottom' | 'left' | 'right'; type Point = { x: number; y: number; }; interface TooltipOptions { position: Position; defaultOpen?: boolean; gap?: number; enterDelay?: number; exitDelay?: number; hoverOnly?: boolean; animate?: boolean; pointer?: boolean; } declare class Tooltip { #private; container: HTMLElement; anchor: HTMLElement; tooltip: HTMLElement; options: TooltipOptions; resizeObserver: ResizeObserver | null; throttleUpdate: () => void; rafId: number | null; offset: number; isSticky: boolean; edgePadding: number; constructor(container: HTMLElement | null); processOptionsFromAttributes(): TooltipOptions; update(): void; bindEvents(): void; updatePosition(): void; updatePointer(position: Position | 'overlap', anchorCenter: Point, tooltipPosition: Point, tooltipWidth: number, tooltipHeight: number): void; determinePosition(anchorRect: DOMRect, tooltipWidth: number, tooltipHeight: number): Position | 'overlap'; isAnchorInViewport(anchorRect: DOMRect): boolean; applyViewportConstraints(x: number, y: number, width: number, height: number): Point; throttle(fn: (...args: unknown[]) => void, delay: number): () => void; show(): void; hide(): void; getAnchor(): HTMLElement; isHoverOnly(): boolean; setSticky(sticky: boolean): void; isDefaultOpen(): boolean; destroy(): void; } declare function loadTooltips(): void;