@hashicorp/design-system-components
Version:
Helios Design System Components
52 lines (51 loc) • 1.53 kB
TypeScript
/**
* 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;
}