UNPKG

@hashicorp/design-system-components

Version:
52 lines (51 loc) 1.53 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import Modifier from 'ember-modifier'; import type { ArgsFor } from 'ember-modifier'; import type { HideAll as TippyHideAll, Instance as TippyInstance, Props as TippyProps } from 'tippy.js'; import type Owner from '@ember/owner'; export interface HdsTooltipModifierSignature { Args: { Positional: [string]; Named: { options?: Partial<TippyProps>; }; }; Element: HTMLElement; } /** * * `Tooltip` implements a modifier that uses Tippy.js to display a tooltip. * * Sample usage: * ``` * <div {{hds-tooltip 'Text' options=(hash )}}>Hover me!</div> * ``` * * @see https://atomiks.github.io/tippyjs * @class TooltipModifier * */ export default class HdsTooltipModifier extends Modifier<HdsTooltipModifierSignature> { #private; private _didSetup; private _containerId; _interval: number | undefined; _needsTabIndex: boolean; _tooltip: TippyInstance | undefined; _containerElement?: HTMLElement; constructor(owner: Owner, args: ArgsFor<HdsTooltipModifierSignature>); hideOnEsc: { name: string; defaultValue: boolean; fn({ hide }: { hide: TippyHideAll; }): { onShow(): void; onHide(): void; }; }; modify(element: HdsTooltipModifierSignature['Element'], positional: HdsTooltipModifierSignature['Args']['Positional'], named: HdsTooltipModifierSignature['Args']['Named']): void; }