From 68d492fac907d6ab2125fe74dd7818599b666b45 Mon Sep 17 00:00:00 2001 From: Iogr Wessel Date: Fri, 12 Jan 2024 08:52:18 -0300 Subject: [PATCH] chore(tooltip): types for tooltip --- packages/core/src/components.d.ts | 73 +++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/packages/core/src/components.d.ts b/packages/core/src/components.d.ts index 59528b57f..8cabf8930 100644 --- a/packages/core/src/components.d.ts +++ b/packages/core/src/components.d.ts @@ -233,6 +233,26 @@ export namespace Components { "value"?: IonTypes.IonTextarea['value']; "wrap"?: 'hard' | 'soft' | 'off'; } + interface AtomTooltip { + /** + * Determines which element should listen to open tooltip. + */ + "element": string; + /** + * Determines the placement for attach tooltip. + */ + "placement": | 'auto' + | 'auto-start' + | 'auto-end' + | 'top' + | 'top-start' + | 'top-end' + | 'bottom' + | 'bottom-start' + | 'bottom-end' + | 'right' + | 'left'; + } } export interface AtomAlertCustomEvent extends CustomEvent { detail: T; @@ -262,6 +282,10 @@ export interface AtomTextareaCustomEvent extends CustomEvent { detail: T; target: HTMLAtomTextareaElement; } +export interface AtomTooltipCustomEvent extends CustomEvent { + detail: T; + target: HTMLAtomTooltipElement; +} declare global { interface HTMLAtomAlertElementEventMap { "atomClose": any; @@ -437,6 +461,24 @@ declare global { prototype: HTMLAtomTextareaElement; new (): HTMLAtomTextareaElement; }; + interface HTMLAtomTooltipElementEventMap { + "atomClose": any; + "atomOpen": any; + } + interface HTMLAtomTooltipElement extends Components.AtomTooltip, HTMLStencilElement { + addEventListener(type: K, listener: (this: HTMLAtomTooltipElement, ev: AtomTooltipCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLAtomTooltipElement, ev: AtomTooltipCustomEvent) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; + } + var HTMLAtomTooltipElement: { + prototype: HTMLAtomTooltipElement; + new (): HTMLAtomTooltipElement; + }; interface HTMLElementTagNameMap { "atom-alert": HTMLAtomAlertElement; "atom-badge": HTMLAtomBadgeElement; @@ -452,6 +494,7 @@ declare global { "atom-select": HTMLAtomSelectElement; "atom-tag": HTMLAtomTagElement; "atom-textarea": HTMLAtomTextareaElement; + "atom-tooltip": HTMLAtomTooltipElement; } } declare namespace LocalJSX { @@ -688,6 +731,34 @@ declare namespace LocalJSX { "value"?: IonTypes.IonTextarea['value']; "wrap"?: 'hard' | 'soft' | 'off'; } + interface AtomTooltip { + /** + * Determines which element should listen to open tooltip. + */ + "element"?: string; + /** + * Event is dispatched when: 1. Mouse leave event in selector 2. Click "Close" button when is mobile + */ + "onAtomClose"?: (event: AtomTooltipCustomEvent) => void; + /** + * Event is dispatched when: 1. Mouse enter event in selector 2. Click in element when is mobile + */ + "onAtomOpen"?: (event: AtomTooltipCustomEvent) => void; + /** + * Determines the placement for attach tooltip. + */ + "placement"?: | 'auto' + | 'auto-start' + | 'auto-end' + | 'top' + | 'top-start' + | 'top-end' + | 'bottom' + | 'bottom-start' + | 'bottom-end' + | 'right' + | 'left'; + } interface IntrinsicElements { "atom-alert": AtomAlert; "atom-badge": AtomBadge; @@ -703,6 +774,7 @@ declare namespace LocalJSX { "atom-select": AtomSelect; "atom-tag": AtomTag; "atom-textarea": AtomTextarea; + "atom-tooltip": AtomTooltip; } } export { LocalJSX as JSX }; @@ -723,6 +795,7 @@ declare module "@stencil/core" { "atom-select": LocalJSX.AtomSelect & JSXBase.HTMLAttributes; "atom-tag": LocalJSX.AtomTag & JSXBase.HTMLAttributes; "atom-textarea": LocalJSX.AtomTextarea & JSXBase.HTMLAttributes; + "atom-tooltip": LocalJSX.AtomTooltip & JSXBase.HTMLAttributes; } } }