@justeattakeaway/pie-tooltip 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +190 -7
- package/custom-elements.json +186 -1
- package/dist/index.d.ts +32 -2
- package/dist/index.js +256 -132
- package/dist/react.d.ts +33 -2
- package/dist/react.js +16 -12
- package/package.json +6 -6
- package/src/defs.ts +13 -1
- package/src/index.ts +325 -29
- package/src/react.ts +3 -1
- package/src/tooltip.scss +46 -2
package/dist/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { LitElement as
|
|
2
|
-
import { property as
|
|
3
|
-
import { classMap as
|
|
4
|
-
import { ifDefined as
|
|
5
|
-
import { unsafeStatic as
|
|
1
|
+
import { LitElement as $, unsafeCSS as E, nothing as b } from "lit";
|
|
2
|
+
import { property as g, queryAssignedElements as L, query as A, state as x } from "lit/decorators.js";
|
|
3
|
+
import { classMap as O } from "lit/directives/class-map.js";
|
|
4
|
+
import { ifDefined as R } from "lit/directives/if-defined.js";
|
|
5
|
+
import { unsafeStatic as P, html as y } from "lit/static-html.js";
|
|
6
6
|
import { validPropertyValues as m, safeCustomElement as S } from "@justeattakeaway/pie-webc-core";
|
|
7
7
|
import "@justeattakeaway/pie-icon-button";
|
|
8
8
|
import "@justeattakeaway/pie-icons-webc/dist/IconClose.js";
|
|
9
|
-
const
|
|
9
|
+
const w = class w extends $ {
|
|
10
10
|
willUpdate() {
|
|
11
|
-
this.getAttribute("v") || this.setAttribute("v",
|
|
11
|
+
this.getAttribute("v") || this.setAttribute("v", w.v);
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
const
|
|
14
|
+
w.v = "0.3.0";
|
|
15
|
+
let k = w;
|
|
16
|
+
const M = [
|
|
17
17
|
"top",
|
|
18
18
|
"top-start",
|
|
19
19
|
"top-end",
|
|
@@ -26,7 +26,7 @@ const F = [
|
|
|
26
26
|
"right",
|
|
27
27
|
"right-start",
|
|
28
28
|
"right-end"
|
|
29
|
-
],
|
|
29
|
+
], D = ["default", "fit-to-content", "fill-container"], B = ["default", "inverse"], I = ["default", "icon"], V = ["h2", "h3", "h4", "h5", "h6"], et = ["hover", "focus", "click"], rt = ["tooltip", "dialog"], d = "pie-tooltip", c = "c-tooltip", q = `${d}-open`, F = `${d}-close`, h = {
|
|
30
30
|
isOpen: !1,
|
|
31
31
|
position: "top",
|
|
32
32
|
size: "default",
|
|
@@ -34,13 +34,13 @@ const F = [
|
|
|
34
34
|
type: "default",
|
|
35
35
|
isDismissible: !1,
|
|
36
36
|
headingLevel: "h2"
|
|
37
|
-
}, I = "*,*:after,*:before{box-sizing:inherit}:host{--tooltip-anchor-top: 0;--tooltip-anchor-left: 0;--tooltip-anchor-width: 0;--tooltip-anchor-height: 0;--tooltip-container-inline-size: 0;--tooltip-offset: var(--dt-spacing-a);--tooltip-arrow-size: 8px;--tooltip-layer-offset: calc(var(--tooltip-offset) + var(--tooltip-arrow-size));position:absolute;top:0;left:0;z-index:var(--dt-z-index-tooltip);display:block;inline-size:0;block-size:0;pointer-events:none}.c-tooltip-origin{position:absolute;top:0;left:0;inline-size:0;block-size:0}.c-tooltip-anchor{position:absolute;top:var(--tooltip-anchor-top);left:var(--tooltip-anchor-left);inline-size:var(--tooltip-anchor-width);block-size:var(--tooltip-anchor-height)}.c-tooltip-layer{position:absolute;display:grid;grid-template-columns:100%;grid-template-rows:100%;visibility:hidden;transition:visibility 0s linear .15s}.c-tooltip-layer.is-open.is-positioned{visibility:visible;transition-delay:0s}.c-tooltip-layer--type-icon{--tooltip-layer-offset: var(--tooltip-offset)}.c-tooltip-layer--top,.c-tooltip-layer--bottom{inset-inline-start:0;inline-size:100%}.c-tooltip-layer--left,.c-tooltip-layer--right{inset-block-start:0;block-size:100%}.c-tooltip-layer--top{inset-block-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--bottom{inset-block-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--left{inset-inline-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--right{inset-inline-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--top-start,.c-tooltip-layer--bottom-start{inset-inline-start:0;inline-size:100%}.c-tooltip-layer--left-start,.c-tooltip-layer--right-start{inset-block-start:0;block-size:100%}.c-tooltip-layer--top-start{inset-block-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--bottom-start{inset-block-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--left-start{inset-inline-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--right-start{inset-inline-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--top-end,.c-tooltip-layer--bottom-end{inset-inline-start:0;inline-size:100%}.c-tooltip-layer--left-end,.c-tooltip-layer--right-end{inset-block-start:0;block-size:100%}.c-tooltip-layer--top-end{inset-block-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--bottom-end{inset-block-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--left-end{inset-inline-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--right-end{inset-inline-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--top{place-items:center}.c-tooltip-layer--top-start{place-items:start}.c-tooltip-layer--top-end{place-items:end}.c-tooltip-layer--bottom{place-items:center}.c-tooltip-layer--bottom-start{place-items:start}.c-tooltip-layer--bottom-end{place-items:end}.c-tooltip-layer--left{place-items:center}.c-tooltip-layer--left-start{place-items:start}.c-tooltip-layer--left-end{place-items:end}.c-tooltip-layer--right{place-items:center}.c-tooltip-layer--right-start{place-items:start}.c-tooltip-layer--right-end{place-items:end}.c-tooltip{--tooltip-inline-size: 280px;--tooltip-max-inline-size: calc(100vw - var(--dt-spacing-d) * 2);--tooltip-background-color: var(--dt-color-container-inverse);--tooltip-content-color: var(--dt-color-content-inverse);--tooltip-border-radius: var(--dt-radius-rounded-b);--tooltip-padding-block: var(--dt-spacing-b);--tooltip-padding-inline: var(--dt-spacing-c);--tooltip-close-size: 32px;--tooltip-motion-duration: .15s;--tooltip-motion-easing: cubic-bezier(.45, 0, .55, 1);--tooltip-motion-translate-x: 0;--tooltip-motion-translate-y: 0;--tooltip-arrow-inset: calc(var(--tooltip-border-radius) + var(--tooltip-arrow-size));--tooltip-arrow-cross-inset: calc(var(--tooltip-arrow-cross-position, 50%) - var(--tooltip-arrow-size));--tooltip-arrow-main-inset-far: calc(100% - 2px) ;--tooltip-arrow-main-inset-near: calc(var(--tooltip-arrow-size) * -1);font-family:var(--dt-font-body-s-family),var(--dt-font-family-secondary),sans-serif;font-weight:var(--dt-font-body-s-weight);font-size:calc(var(--dt-font-body-s-size) * 1px);line-height:calc(var(--dt-font-body-s-line-height) * 1px);position:relative;inline-size:var(--tooltip-width, var(--tooltip-inline-size));max-inline-size:var(--tooltip-max-inline-size);padding-block-start:var(--tooltip-padding-block);padding-block-end:var(--tooltip-padding-block);padding-inline-start:var(--tooltip-padding-inline);padding-inline-end:var(--tooltip-padding-inline);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-background-color);color:var(--tooltip-content-color);pointer-events:auto;opacity:0;transform:translate(var(--tooltip-motion-translate-x),var(--tooltip-motion-translate-y));transition:opacity var(--tooltip-motion-duration) var(--tooltip-motion-easing),transform var(--tooltip-motion-duration) var(--tooltip-motion-easing)}.c-tooltip-layer.is-open.is-positioned .c-tooltip{--tooltip-motion-duration: .2s;opacity:1;transform:translate(0)}.c-tooltip--top{--tooltip-motion-translate-y: 4px}.c-tooltip--bottom{--tooltip-motion-translate-y: -4px}.c-tooltip--left{--tooltip-motion-translate-x: 4px}.c-tooltip--right{--tooltip-motion-translate-x: -4px}.c-tooltip--top-start{--tooltip-motion-translate-y: 4px}.c-tooltip--bottom-start{--tooltip-motion-translate-y: -4px}.c-tooltip--left-start{--tooltip-motion-translate-x: 4px}.c-tooltip--right-start{--tooltip-motion-translate-x: -4px}.c-tooltip--top-end{--tooltip-motion-translate-y: 4px}.c-tooltip--bottom-end{--tooltip-motion-translate-y: -4px}.c-tooltip--left-end{--tooltip-motion-translate-x: 4px}.c-tooltip--right-end{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--left{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--right{--tooltip-motion-translate-x: 4px}:host(:dir(rtl)) .c-tooltip--left-start{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--right-start{--tooltip-motion-translate-x: 4px}:host(:dir(rtl)) .c-tooltip--left-end{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--right-end{--tooltip-motion-translate-x: 4px}@media(prefers-reduced-motion:reduce){.c-tooltip-layer,.c-tooltip{transition:none}}.c-tooltip--inverse{--tooltip-background-color: var(--dt-color-container-default);--tooltip-content-color: var(--dt-color-content-default)}.c-tooltip--size-fit-to-content{--tooltip-inline-size: max-content}.c-tooltip--size-fill-container{--tooltip-inline-size: var(--tooltip-container-inline-size);--tooltip-max-inline-size: none}.c-tooltip--type-icon{--tooltip-border-radius: var(--dt-radius-rounded-e);--tooltip-padding-block: var(--dt-spacing-a);--tooltip-padding-inline: var(--dt-spacing-c);inline-size:max-content}.c-tooltip.is-dismissible{min-block-size:calc(var(--tooltip-close-size) + var(--dt-spacing-b) * 2);padding-inline-end:calc(var(--tooltip-padding-inline) + var(--tooltip-close-size))}.c-tooltip.is-dismissible:not(.has-heading){display:flex;flex-direction:column;justify-content:center}.c-tooltip--top{--tooltip-arrow-cross-position: 50%}.c-tooltip--top-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--top-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip--bottom{--tooltip-arrow-cross-position: 50%}.c-tooltip--bottom-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--bottom-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip--left{--tooltip-arrow-cross-position: 50%}.c-tooltip--left-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--left-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip--right{--tooltip-arrow-cross-position: 50%}.c-tooltip--right-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--right-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip-arrow{position:absolute;background-color:var(--tooltip-background-color)}.c-tooltip--top .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(0% 0%,100% 0%,100% 2px,50% 100%,0% 2px);inset-block-start:var(--tooltip-arrow-main-inset-far);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--bottom .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(50% 0%,100% var(--tooltip-arrow-size),100% 100%,0% 100%,0% var(--tooltip-arrow-size));inset-block-start:var(--tooltip-arrow-main-inset-near);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--left .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 0%,2px 0%,100% 50%,2px 100%,0% 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-far)}.c-tooltip--right .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 50%,var(--tooltip-arrow-size) 0%,100% 0%,100% 100%,var(--tooltip-arrow-size) 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-near)}.c-tooltip--top-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(0% 0%,100% 0%,100% 2px,50% 100%,0% 2px);inset-block-start:var(--tooltip-arrow-main-inset-far);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--bottom-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(50% 0%,100% var(--tooltip-arrow-size),100% 100%,0% 100%,0% var(--tooltip-arrow-size));inset-block-start:var(--tooltip-arrow-main-inset-near);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--left-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 0%,2px 0%,100% 50%,2px 100%,0% 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-far)}.c-tooltip--right-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 50%,var(--tooltip-arrow-size) 0%,100% 0%,100% 100%,var(--tooltip-arrow-size) 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-near)}.c-tooltip--top-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(0% 0%,100% 0%,100% 2px,50% 100%,0% 2px);inset-block-start:var(--tooltip-arrow-main-inset-far);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--bottom-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(50% 0%,100% var(--tooltip-arrow-size),100% 100%,0% 100%,0% var(--tooltip-arrow-size));inset-block-start:var(--tooltip-arrow-main-inset-near);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--left-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 0%,2px 0%,100% 50%,2px 100%,0% 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-far)}.c-tooltip--right-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 50%,var(--tooltip-arrow-size) 0%,100% 0%,100% 100%,var(--tooltip-arrow-size) 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-near)}:host(:dir(rtl)) .c-tooltip--left .c-tooltip-arrow,:host(:dir(rtl)) .c-tooltip--right .c-tooltip-arrow{transform:scaleX(-1)}:host(:dir(rtl)) .c-tooltip--left-start .c-tooltip-arrow,:host(:dir(rtl)) .c-tooltip--right-start .c-tooltip-arrow{transform:scaleX(-1)}:host(:dir(rtl)) .c-tooltip--left-end .c-tooltip-arrow,:host(:dir(rtl)) .c-tooltip--right-end .c-tooltip-arrow{transform:scaleX(-1)}.c-tooltip-heading{font-family:var(--dt-font-body-strong-s-family),var(--dt-font-family-secondary),sans-serif;font-weight:var(--dt-font-body-strong-s-weight);font-size:calc(var(--dt-font-body-strong-s-size) * 1px);line-height:calc(var(--dt-font-body-strong-s-line-height) * 1px);margin-block-start:0;margin-block-end:0}.c-tooltip-content{overflow-wrap:break-word}.c-tooltip.has-action .c-tooltip-action{display:flex;justify-content:flex-end;margin-block-start:var(--dt-spacing-a)}.c-tooltip.is-dismissible.has-action .c-tooltip-action{margin-inline-end:calc(var(--tooltip-close-size) * -1)}.c-tooltip.is-dismissible.has-action .c-tooltip-body{min-block-size:var(--tooltip-close-size)}.c-tooltip.is-dismissible.has-action:not(.has-heading) .c-tooltip-body{display:grid;align-content:center}.c-tooltip-close{position:absolute;inset-block-start:var(--dt-spacing-b);inset-inline-end:var(--dt-spacing-b)}";
|
|
38
|
-
var
|
|
39
|
-
for (var e = r > 1 ? void 0 : r ? N(o, i) : o,
|
|
40
|
-
(
|
|
41
|
-
return r && e &&
|
|
37
|
+
}, H = '*,*:after,*:before{box-sizing:inherit}:host{--tooltip-anchor-top: 0;--tooltip-anchor-left: 0;--tooltip-anchor-width: 0;--tooltip-anchor-height: 0;--tooltip-container-inline-size: 0;--tooltip-offset: var(--dt-spacing-a);--tooltip-arrow-size: 8px;--tooltip-layer-offset: calc(var(--tooltip-offset) + var(--tooltip-arrow-size));position:absolute;top:0;left:0;z-index:var(--dt-z-index-tooltip);display:block;inline-size:0;block-size:0;pointer-events:none}.c-tooltip-origin{position:absolute;top:0;left:0;inline-size:0;block-size:0}.c-tooltip-anchor{position:absolute;top:var(--tooltip-anchor-top);left:var(--tooltip-anchor-left);inline-size:var(--tooltip-anchor-width);block-size:var(--tooltip-anchor-height)}.c-tooltip-layer{position:absolute;display:grid;grid-template-columns:100%;grid-template-rows:100%;visibility:hidden;transition:visibility 0s linear .15s}.c-tooltip-layer.is-open.is-positioned.is-anchorVisible{visibility:visible;transition-delay:0s}.c-tooltip-layer--type-icon{--tooltip-layer-offset: var(--tooltip-offset)}.c-tooltip-layer--top,.c-tooltip-layer--bottom{inset-inline-start:0;inline-size:100%}.c-tooltip-layer--left,.c-tooltip-layer--right{inset-block-start:0;block-size:100%}.c-tooltip-layer--top{inset-block-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--bottom{inset-block-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--left{inset-inline-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--right{inset-inline-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--top-start,.c-tooltip-layer--bottom-start{inset-inline-start:0;inline-size:100%}.c-tooltip-layer--left-start,.c-tooltip-layer--right-start{inset-block-start:0;block-size:100%}.c-tooltip-layer--top-start{inset-block-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--bottom-start{inset-block-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--left-start{inset-inline-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--right-start{inset-inline-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--top-end,.c-tooltip-layer--bottom-end{inset-inline-start:0;inline-size:100%}.c-tooltip-layer--left-end,.c-tooltip-layer--right-end{inset-block-start:0;block-size:100%}.c-tooltip-layer--top-end{inset-block-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--bottom-end{inset-block-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--left-end{inset-inline-end:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--right-end{inset-inline-start:calc(100% + var(--tooltip-layer-offset))}.c-tooltip-layer--top{place-items:center}.c-tooltip-layer--top-start{place-items:start}.c-tooltip-layer--top-end{place-items:end}.c-tooltip-layer--bottom{place-items:center}.c-tooltip-layer--bottom-start{place-items:start}.c-tooltip-layer--bottom-end{place-items:end}.c-tooltip-layer--left{place-items:center}.c-tooltip-layer--left-start{place-items:start}.c-tooltip-layer--left-end{place-items:end}.c-tooltip-layer--right{place-items:center}.c-tooltip-layer--right-start{place-items:start}.c-tooltip-layer--right-end{place-items:end}.c-tooltip{--tooltip-inline-size: 280px;--tooltip-max-inline-size: calc(100vw - var(--dt-spacing-d) * 2);--tooltip-background-color: var(--dt-color-container-inverse);--tooltip-content-color: var(--dt-color-content-inverse);--tooltip-border-radius: var(--dt-radius-rounded-b);--tooltip-padding-block: var(--dt-spacing-b);--tooltip-padding-inline: var(--dt-spacing-c);--tooltip-close-size: 32px;--tooltip-motion-duration: .15s;--tooltip-motion-easing: cubic-bezier(.45, 0, .55, 1);--tooltip-motion-translate-x: 0;--tooltip-motion-translate-y: 0;--tooltip-arrow-inset: calc(var(--tooltip-border-radius) + var(--tooltip-arrow-size));--tooltip-arrow-cross-inset: calc(var(--tooltip-arrow-cross-position, 50%) - var(--tooltip-arrow-size));--tooltip-arrow-main-inset-far: calc(100% - 2px) ;--tooltip-arrow-main-inset-near: calc(var(--tooltip-arrow-size) * -1);font-family:var(--dt-font-body-s-family),var(--dt-font-family-secondary),sans-serif;font-weight:var(--dt-font-body-s-weight);font-size:calc(var(--dt-font-body-s-size) * 1px);line-height:calc(var(--dt-font-body-s-line-height) * 1px);position:relative;inline-size:var(--tooltip-width, var(--tooltip-inline-size));max-inline-size:var(--tooltip-max-inline-size);padding-block-start:var(--tooltip-padding-block);padding-block-end:var(--tooltip-padding-block);padding-inline-start:var(--tooltip-padding-inline);padding-inline-end:var(--tooltip-padding-inline);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-background-color);color:var(--tooltip-content-color);pointer-events:auto;opacity:0;transform:translate(var(--tooltip-motion-translate-x),var(--tooltip-motion-translate-y));transition:opacity var(--tooltip-motion-duration) var(--tooltip-motion-easing),transform var(--tooltip-motion-duration) var(--tooltip-motion-easing)}.c-tooltip-layer.is-open.is-positioned.is-anchorVisible .c-tooltip{--tooltip-motion-duration: .2s;opacity:1;transform:translate(0)}.c-tooltip--top{--tooltip-motion-translate-y: 4px}.c-tooltip--bottom{--tooltip-motion-translate-y: -4px}.c-tooltip--left{--tooltip-motion-translate-x: 4px}.c-tooltip--right{--tooltip-motion-translate-x: -4px}.c-tooltip--top-start{--tooltip-motion-translate-y: 4px}.c-tooltip--bottom-start{--tooltip-motion-translate-y: -4px}.c-tooltip--left-start{--tooltip-motion-translate-x: 4px}.c-tooltip--right-start{--tooltip-motion-translate-x: -4px}.c-tooltip--top-end{--tooltip-motion-translate-y: 4px}.c-tooltip--bottom-end{--tooltip-motion-translate-y: -4px}.c-tooltip--left-end{--tooltip-motion-translate-x: 4px}.c-tooltip--right-end{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--left{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--right{--tooltip-motion-translate-x: 4px}:host(:dir(rtl)) .c-tooltip--left-start{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--right-start{--tooltip-motion-translate-x: 4px}:host(:dir(rtl)) .c-tooltip--left-end{--tooltip-motion-translate-x: -4px}:host(:dir(rtl)) .c-tooltip--right-end{--tooltip-motion-translate-x: 4px}@media(prefers-reduced-motion:reduce){.c-tooltip-layer,.c-tooltip{transition:none}}.c-tooltip--inverse{--tooltip-background-color: var(--dt-color-container-default);--tooltip-content-color: var(--dt-color-content-default)}.c-tooltip--size-fit-to-content{--tooltip-inline-size: max-content}.c-tooltip--size-fill-container{--tooltip-inline-size: var(--tooltip-container-inline-size);--tooltip-max-inline-size: none}.c-tooltip--type-icon{--tooltip-border-radius: var(--dt-radius-rounded-e);--tooltip-padding-block: var(--dt-spacing-a);--tooltip-padding-inline: var(--dt-spacing-c);inline-size:max-content}.c-tooltip.is-dismissible{min-block-size:calc(var(--tooltip-close-size) + var(--dt-spacing-b) * 2);padding-inline-end:calc(var(--tooltip-padding-inline) + var(--tooltip-close-size))}.c-tooltip.is-dismissible:not(.has-heading){display:flex;flex-direction:column;justify-content:center}.c-tooltip--top{--tooltip-arrow-cross-position: 50%}.c-tooltip--top-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--top-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip--bottom{--tooltip-arrow-cross-position: 50%}.c-tooltip--bottom-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--bottom-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip--left{--tooltip-arrow-cross-position: 50%}.c-tooltip--left-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--left-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip--right{--tooltip-arrow-cross-position: 50%}.c-tooltip--right-start{--tooltip-arrow-cross-position: var(--tooltip-arrow-inset)}.c-tooltip--right-end{--tooltip-arrow-cross-position: calc(100% - var(--tooltip-arrow-inset))}.c-tooltip-arrow{position:absolute;background-color:var(--tooltip-background-color)}.c-tooltip--top .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(0% 0%,100% 0%,100% 2px,50% 100%,0% 2px);inset-block-start:var(--tooltip-arrow-main-inset-far);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--bottom .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(50% 0%,100% var(--tooltip-arrow-size),100% 100%,0% 100%,0% var(--tooltip-arrow-size));inset-block-start:var(--tooltip-arrow-main-inset-near);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--left .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 0%,2px 0%,100% 50%,2px 100%,0% 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-far)}.c-tooltip--right .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 50%,var(--tooltip-arrow-size) 0%,100% 0%,100% 100%,var(--tooltip-arrow-size) 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-near)}.c-tooltip--top-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(0% 0%,100% 0%,100% 2px,50% 100%,0% 2px);inset-block-start:var(--tooltip-arrow-main-inset-far);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--bottom-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(50% 0%,100% var(--tooltip-arrow-size),100% 100%,0% 100%,0% var(--tooltip-arrow-size));inset-block-start:var(--tooltip-arrow-main-inset-near);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--left-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 0%,2px 0%,100% 50%,2px 100%,0% 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-far)}.c-tooltip--right-start .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 50%,var(--tooltip-arrow-size) 0%,100% 0%,100% 100%,var(--tooltip-arrow-size) 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-near)}.c-tooltip--top-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(0% 0%,100% 0%,100% 2px,50% 100%,0% 2px);inset-block-start:var(--tooltip-arrow-main-inset-far);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--bottom-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) * 2);block-size:calc(var(--tooltip-arrow-size) + 2px);clip-path:polygon(50% 0%,100% var(--tooltip-arrow-size),100% 100%,0% 100%,0% var(--tooltip-arrow-size));inset-block-start:var(--tooltip-arrow-main-inset-near);inset-inline-start:var(--tooltip-arrow-cross-inset)}.c-tooltip--left-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 0%,2px 0%,100% 50%,2px 100%,0% 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-far)}.c-tooltip--right-end .c-tooltip-arrow{inline-size:calc(var(--tooltip-arrow-size) + 2px);block-size:calc(var(--tooltip-arrow-size) * 2);clip-path:polygon(0% 50%,var(--tooltip-arrow-size) 0%,100% 0%,100% 100%,var(--tooltip-arrow-size) 100%);inset-block-start:var(--tooltip-arrow-cross-inset);inset-inline-start:var(--tooltip-arrow-main-inset-near)}:host(:dir(rtl)) .c-tooltip--left .c-tooltip-arrow,:host(:dir(rtl)) .c-tooltip--right .c-tooltip-arrow{transform:scaleX(-1)}:host(:dir(rtl)) .c-tooltip--left-start .c-tooltip-arrow,:host(:dir(rtl)) .c-tooltip--right-start .c-tooltip-arrow{transform:scaleX(-1)}:host(:dir(rtl)) .c-tooltip--left-end .c-tooltip-arrow,:host(:dir(rtl)) .c-tooltip--right-end .c-tooltip-arrow{transform:scaleX(-1)}.c-tooltip-heading{font-family:var(--dt-font-body-strong-s-family),var(--dt-font-family-secondary),sans-serif;font-weight:var(--dt-font-body-strong-s-weight);font-size:calc(var(--dt-font-body-strong-s-size) * 1px);line-height:calc(var(--dt-font-body-strong-s-line-height) * 1px);margin-block-start:0;margin-block-end:0}.c-tooltip-content{overflow-wrap:break-word}.c-tooltip.has-action .c-tooltip-action{display:flex;justify-content:flex-end;margin-block-start:var(--dt-spacing-a)}.c-tooltip.is-dismissible.has-action .c-tooltip-action{margin-inline-end:calc(var(--tooltip-close-size) * -1)}.c-tooltip.is-dismissible.has-action .c-tooltip-body{min-block-size:var(--tooltip-close-size)}.c-tooltip.is-dismissible.has-action:not(.has-heading) .c-tooltip-body{display:grid;align-content:center}.c-tooltip-close{position:absolute;inset-block-start:var(--dt-spacing-b);inset-inline-end:var(--dt-spacing-b)}.c-tooltip--top:before{content:"";position:absolute;inset-block-start:100%;block-size:var(--tooltip-layer-offset);inset-inline-start:0;inline-size:100%}.c-tooltip--bottom:before{content:"";position:absolute;inset-block-end:100%;block-size:var(--tooltip-layer-offset);inset-inline-start:0;inline-size:100%}.c-tooltip--left:before{content:"";position:absolute;inset-inline-start:100%;inline-size:var(--tooltip-layer-offset);inset-block-start:0;block-size:100%}.c-tooltip--right:before{content:"";position:absolute;inset-inline-end:100%;inline-size:var(--tooltip-layer-offset);inset-block-start:0;block-size:100%}.c-tooltip--top-start:before{content:"";position:absolute;inset-block-start:100%;block-size:var(--tooltip-layer-offset);inset-inline-start:0;inline-size:100%}.c-tooltip--bottom-start:before{content:"";position:absolute;inset-block-end:100%;block-size:var(--tooltip-layer-offset);inset-inline-start:0;inline-size:100%}.c-tooltip--left-start:before{content:"";position:absolute;inset-inline-start:100%;inline-size:var(--tooltip-layer-offset);inset-block-start:0;block-size:100%}.c-tooltip--right-start:before{content:"";position:absolute;inset-inline-end:100%;inline-size:var(--tooltip-layer-offset);inset-block-start:0;block-size:100%}.c-tooltip--top-end:before{content:"";position:absolute;inset-block-start:100%;block-size:var(--tooltip-layer-offset);inset-inline-start:0;inline-size:100%}.c-tooltip--bottom-end:before{content:"";position:absolute;inset-block-end:100%;block-size:var(--tooltip-layer-offset);inset-inline-start:0;inline-size:100%}.c-tooltip--left-end:before{content:"";position:absolute;inset-inline-start:100%;inline-size:var(--tooltip-layer-offset);inset-block-start:0;block-size:100%}.c-tooltip--right-end:before{content:"";position:absolute;inset-inline-end:100%;inline-size:var(--tooltip-layer-offset);inset-block-start:0;block-size:100%}';
|
|
38
|
+
var j = Object.defineProperty, N = Object.getOwnPropertyDescriptor, a = (t, o, i, r) => {
|
|
39
|
+
for (var e = r > 1 ? void 0 : r ? N(o, i) : o, s = t.length - 1, n; s >= 0; s--)
|
|
40
|
+
(n = t[s]) && (e = (r ? n(o, i, e) : n(e)) || e);
|
|
41
|
+
return r && e && j(o, i, e), e;
|
|
42
42
|
};
|
|
43
|
-
const
|
|
43
|
+
const z = "pie-tooltip-heading", X = (t) => {
|
|
44
44
|
const o = (r) => !!r && r !== "none";
|
|
45
45
|
return [
|
|
46
46
|
t.transform,
|
|
@@ -51,24 +51,53 @@ const w = "pie-tooltip-heading", X = (t) => {
|
|
|
51
51
|
t.rotate,
|
|
52
52
|
t.scale
|
|
53
53
|
].some(o) || /\b(paint|layout|content|strict)\b/.test(t.contain) || t.containerType && t.containerType !== "normal" ? !0 : /\b(transform|perspective|filter|backdrop-filter|contain|translate|rotate|scale)\b/.test(t.willChange);
|
|
54
|
+
}, _ = (t) => {
|
|
55
|
+
const { documentElement: o } = t.ownerDocument, i = [];
|
|
56
|
+
let r = t;
|
|
57
|
+
for (; r !== o; ) {
|
|
58
|
+
const e = r.assignedSlot ?? r.parentNode, s = e instanceof ShadowRoot ? e.host : e;
|
|
59
|
+
if (!(s instanceof Element))
|
|
60
|
+
break;
|
|
61
|
+
i.push(s), r = s;
|
|
62
|
+
}
|
|
63
|
+
return i;
|
|
64
|
+
}, U = (t) => {
|
|
65
|
+
const { documentElement: o, body: i } = t.ownerDocument;
|
|
66
|
+
return _(t).filter((r) => {
|
|
67
|
+
if (r === o || r === i)
|
|
68
|
+
return !1;
|
|
69
|
+
const e = getComputedStyle(r);
|
|
70
|
+
return e.overflowX !== "visible" || e.overflowY !== "visible";
|
|
71
|
+
});
|
|
72
|
+
}, Y = (t) => {
|
|
73
|
+
const { left: o, top: i } = t.getBoundingClientRect(), {
|
|
74
|
+
clientLeft: r,
|
|
75
|
+
clientTop: e,
|
|
76
|
+
clientWidth: s,
|
|
77
|
+
clientHeight: n
|
|
78
|
+
} = t;
|
|
79
|
+
return new DOMRect(o + r, i + e, s, n);
|
|
80
|
+
}, W = (t, o) => {
|
|
81
|
+
const i = Math.max(t.left, o.left), r = Math.max(t.top, o.top), e = Math.min(t.right, o.right), s = Math.min(t.bottom, o.bottom);
|
|
82
|
+
return e <= i || s <= r ? null : new DOMRect(i, r, e - i, s - r);
|
|
54
83
|
};
|
|
55
|
-
let l = class extends
|
|
84
|
+
let l = class extends k {
|
|
56
85
|
constructor() {
|
|
57
|
-
super(...arguments), this.isOpen =
|
|
86
|
+
super(...arguments), this.isOpen = h.isOpen, this.position = h.position, this.size = h.size, this.variant = h.variant, this.type = h.type, this.isDismissible = h.isDismissible, this.headingLevel = h.headingLevel, this.triggers = [], this._isPositioned = !1, this._isAnchorVisible = !0, this._clippedTriggerElement = null, this._triggerClippers = [], this._reanchorFrame = 0, this._shouldResolveOverlayMode = !1;
|
|
58
87
|
}
|
|
59
88
|
get _mode() {
|
|
60
89
|
if (this._hasActionContent !== void 0)
|
|
61
90
|
return this._hasActionContent ? "dialog" : "tooltip";
|
|
62
91
|
}
|
|
63
92
|
firstUpdated() {
|
|
64
|
-
this.resolveMode(), this.projectOverTrigger();
|
|
93
|
+
this.resolveMode(), this.projectOverTrigger(), this._rebuildInteractionListeners();
|
|
65
94
|
}
|
|
66
95
|
updated(t) {
|
|
67
96
|
const o = ["trigger", "isOpen", "position", "size"];
|
|
68
|
-
this.isOpen && t.has("isOpen") && this.resolveOverlayMode(), o.some((i) => t.has(i)) && this.projectOverTrigger(), this.isOpen ? this.startTrackingTrigger() : this.stopTrackingTrigger();
|
|
97
|
+
this.isOpen && t.has("isOpen") && this.resolveOverlayMode(), o.some((i) => t.has(i)) && this.projectOverTrigger(), this.isOpen && t.has("trigger") && this.stopTrackingTrigger(), this.isOpen ? this.startTrackingTrigger() : this.stopTrackingTrigger(), (t.has("triggers") || t.has("trigger")) && this._rebuildInteractionListeners();
|
|
69
98
|
}
|
|
70
99
|
disconnectedCallback() {
|
|
71
|
-
this.stopTrackingTrigger(), super.disconnectedCallback();
|
|
100
|
+
this._teardownInteractionListeners(), this.stopTrackingTrigger(), super.disconnectedCallback();
|
|
72
101
|
}
|
|
73
102
|
// Listens for scroll (capture — catches any ancestor), resize, and dir-attribute changes to
|
|
74
103
|
// re-anchor the panel. Multiple events per frame coalesce into one requestAnimationFrame call.
|
|
@@ -82,14 +111,25 @@ let l = class extends u {
|
|
|
82
111
|
}, r = () => {
|
|
83
112
|
this._shouldResolveOverlayMode = !0, i();
|
|
84
113
|
};
|
|
85
|
-
window.addEventListener("scroll", i, { capture: !0, passive: !0, signal: o }), window.addEventListener("resize", r, { passive: !0, signal: o })
|
|
114
|
+
window.addEventListener("scroll", i, { capture: !0, passive: !0, signal: o }), window.addEventListener("resize", r, { passive: !0, signal: o });
|
|
115
|
+
const e = /* @__PURE__ */ new Set();
|
|
116
|
+
_(this).forEach((n) => {
|
|
117
|
+
const p = n.getRootNode();
|
|
118
|
+
p instanceof ShadowRoot && e.add(p);
|
|
119
|
+
}), e.forEach((n) => {
|
|
120
|
+
n.addEventListener("scroll", i, { capture: !0, passive: !0, signal: o });
|
|
121
|
+
}), this._triggerObserver = new ResizeObserver(() => {
|
|
122
|
+
this._shouldResolveOverlayMode = !0, i();
|
|
123
|
+
});
|
|
124
|
+
const s = this._getTriggerElement();
|
|
125
|
+
s && this._triggerObserver.observe(s), this._directionObserver = new MutationObserver(i), this._directionObserver.observe(this.ownerDocument.documentElement, {
|
|
86
126
|
attributeFilter: ["dir"],
|
|
87
127
|
subtree: !0
|
|
88
128
|
}), this._triggerTrackingController = t;
|
|
89
129
|
}
|
|
90
130
|
stopTrackingTrigger() {
|
|
91
|
-
var t, o;
|
|
92
|
-
(t = this._triggerTrackingController) == null || t.abort(), this._triggerTrackingController = void 0, (o = this._directionObserver) == null || o.disconnect(), this._directionObserver = void 0, this._shouldResolveOverlayMode = !1, this._reanchorFrame && (cancelAnimationFrame(this._reanchorFrame), this._reanchorFrame = 0);
|
|
131
|
+
var t, o, i;
|
|
132
|
+
(t = this._triggerTrackingController) == null || t.abort(), this._triggerTrackingController = void 0, (o = this._directionObserver) == null || o.disconnect(), this._directionObserver = void 0, (i = this._triggerObserver) == null || i.disconnect(), this._triggerObserver = void 0, this._shouldResolveOverlayMode = !1, this._reanchorFrame && (cancelAnimationFrame(this._reanchorFrame), this._reanchorFrame = 0);
|
|
93
133
|
}
|
|
94
134
|
resolveMode() {
|
|
95
135
|
this._hasActionContent = this._assignedActionElements.length > 0;
|
|
@@ -97,57 +137,132 @@ let l = class extends u {
|
|
|
97
137
|
// Picks between `absolute` (browser handles scrolling, but clipped by overflow ancestors) and
|
|
98
138
|
// `fixed` (escapes overflow clips, but must re-offset on every scroll). Switches to `fixed`
|
|
99
139
|
// only when it escapes a clip that `absolute` would not.
|
|
140
|
+
//
|
|
141
|
+
// An overflow ancestor clips a positioned box only if it is that box's containing block or an
|
|
142
|
+
// ancestor of it; a clipper strictly inside the containing block does not clip. So each
|
|
143
|
+
// clipper is counted against a mode only once that mode's containing block has been reached.
|
|
100
144
|
resolveOverlayMode() {
|
|
101
|
-
let t = !1, o = !1, i =
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
this.style.position = i && !r ? "fixed" : "";
|
|
145
|
+
let t = !1, o = !1, i = 0, r = 0;
|
|
146
|
+
const { documentElement: e, body: s } = this.ownerDocument;
|
|
147
|
+
this._refreshTriggerClippers(), _(this).forEach((n) => {
|
|
148
|
+
const p = getComputedStyle(n);
|
|
149
|
+
if (p.display === "contents")
|
|
150
|
+
return;
|
|
151
|
+
const v = X(p);
|
|
152
|
+
(v || p.position !== "static") && (t = !0), v && (o = !0), (p.overflowX !== "visible" || p.overflowY !== "visible") && !(n === e || n === s) && (t && (i += 1), o && (r += 1));
|
|
153
|
+
}), this.style.position = r < i ? "fixed" : "";
|
|
112
154
|
}
|
|
113
155
|
// Measures the trigger relative to the origin marker (which sits at the containing block's
|
|
114
156
|
// origin) and writes CSS custom properties. Self-referential: correct for any containing
|
|
115
157
|
// block. Physical values; shadow-root CSS uses logical properties for RTL mirroring.
|
|
116
158
|
projectOverTrigger() {
|
|
117
159
|
this._isPositioned = !1;
|
|
118
|
-
const t = this.
|
|
160
|
+
const t = this._getTriggerElement();
|
|
119
161
|
if (!t || !this._originElement) {
|
|
120
|
-
["top", "left", "width", "height"].forEach((
|
|
121
|
-
this.style.removeProperty(`--tooltip-anchor-${
|
|
122
|
-
}), this.style.removeProperty("--tooltip-container-inline-size"), this._isPositioned = !0;
|
|
162
|
+
["top", "left", "width", "height"].forEach((f) => {
|
|
163
|
+
this.style.removeProperty(`--tooltip-anchor-${f}`);
|
|
164
|
+
}), this.style.removeProperty("--tooltip-container-inline-size"), this._isAnchorVisible = !0, this._isPositioned = !0;
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
t !== this._clippedTriggerElement && this._refreshTriggerClippers();
|
|
168
|
+
const o = this._triggerClippers.reduce(
|
|
169
|
+
(f, u) => f ? W(f, Y(u)) : null,
|
|
170
|
+
t.getBoundingClientRect()
|
|
171
|
+
);
|
|
172
|
+
if (this._isAnchorVisible = o !== null, !o) {
|
|
173
|
+
this._isPositioned = !0;
|
|
123
174
|
return;
|
|
124
175
|
}
|
|
125
|
-
const
|
|
126
|
-
top:
|
|
127
|
-
left:
|
|
128
|
-
width:
|
|
129
|
-
height:
|
|
130
|
-
} =
|
|
131
|
-
this.style.setProperty("--tooltip-anchor-top", `${
|
|
132
|
-
const
|
|
133
|
-
this.style.setProperty("--tooltip-container-inline-size", `${
|
|
176
|
+
const i = this._originElement.getBoundingClientRect(), {
|
|
177
|
+
top: r,
|
|
178
|
+
left: e,
|
|
179
|
+
width: s,
|
|
180
|
+
height: n
|
|
181
|
+
} = o;
|
|
182
|
+
this.style.setProperty("--tooltip-anchor-top", `${r - i.top}px`), this.style.setProperty("--tooltip-anchor-left", `${e - i.left}px`), this.style.setProperty("--tooltip-anchor-width", `${s}px`), this.style.setProperty("--tooltip-anchor-height", `${n}px`);
|
|
183
|
+
const p = t.parentElement, v = p ? p.getBoundingClientRect().width : s;
|
|
184
|
+
this.style.setProperty("--tooltip-container-inline-size", `${v}px`), this._isPositioned = !0;
|
|
185
|
+
}
|
|
186
|
+
// Cached because `projectOverTrigger` runs on every re-anchoring frame, and collecting these
|
|
187
|
+
// costs a computed style per ancestor. Refreshed when the trigger changes and whenever the
|
|
188
|
+
// overlay mode is resolved, which is the same cadence as an ancestor chain actually changing.
|
|
189
|
+
_refreshTriggerClippers() {
|
|
190
|
+
const t = this._getTriggerElement();
|
|
191
|
+
this._clippedTriggerElement = t, this._triggerClippers = t ? U(t) : [];
|
|
134
192
|
}
|
|
135
193
|
handleCloseButtonClick() {
|
|
136
|
-
this.
|
|
194
|
+
this._requestClose();
|
|
195
|
+
}
|
|
196
|
+
_getTriggerElement() {
|
|
197
|
+
return this.trigger ? this.ownerDocument.getElementById(this.trigger) : null;
|
|
198
|
+
}
|
|
199
|
+
_requestOpen() {
|
|
200
|
+
this.isOpen || this.dispatchEvent(new Event(q, { bubbles: !0, composed: !0 }));
|
|
201
|
+
}
|
|
202
|
+
_requestClose() {
|
|
203
|
+
this.isOpen && this.dispatchEvent(new Event(F, { bubbles: !0, composed: !0 }));
|
|
204
|
+
}
|
|
205
|
+
_startHoverCloseTimer() {
|
|
206
|
+
this._hoverCloseTimer === void 0 && (this._hoverCloseTimer = setTimeout(() => {
|
|
207
|
+
this._hoverCloseTimer = void 0, this._requestClose();
|
|
208
|
+
}, 100));
|
|
209
|
+
}
|
|
210
|
+
_cancelHoverCloseTimer() {
|
|
211
|
+
this._hoverCloseTimer !== void 0 && (clearTimeout(this._hoverCloseTimer), this._hoverCloseTimer = void 0);
|
|
212
|
+
}
|
|
213
|
+
_rebuildInteractionListeners() {
|
|
214
|
+
var r;
|
|
215
|
+
if (this._teardownInteractionListeners(), !((r = this.triggers) != null && r.length)) return;
|
|
216
|
+
const t = new AbortController(), { signal: o } = t;
|
|
217
|
+
this._interactionController = t;
|
|
218
|
+
const i = this._getTriggerElement();
|
|
219
|
+
if (this.ownerDocument.addEventListener("keydown", (e) => {
|
|
220
|
+
e.key === "Escape" && this.isOpen && this._requestClose();
|
|
221
|
+
}, { signal: o }), !!i) {
|
|
222
|
+
if (this.triggers.includes("hover")) {
|
|
223
|
+
i.addEventListener("mouseenter", () => {
|
|
224
|
+
this._cancelHoverCloseTimer(), this._requestOpen();
|
|
225
|
+
}, { signal: o }), i.addEventListener("mouseleave", () => {
|
|
226
|
+
this._startHoverCloseTimer();
|
|
227
|
+
}, { signal: o });
|
|
228
|
+
const e = this.renderRoot.querySelector(".c-tooltip");
|
|
229
|
+
e && (e.addEventListener("mouseenter", () => {
|
|
230
|
+
this._cancelHoverCloseTimer();
|
|
231
|
+
}, { signal: o }), e.addEventListener("mouseleave", () => {
|
|
232
|
+
this._startHoverCloseTimer();
|
|
233
|
+
}, { signal: o }));
|
|
234
|
+
}
|
|
235
|
+
this.triggers.includes("focus") && (i.addEventListener("focusin", () => {
|
|
236
|
+
this._requestOpen();
|
|
237
|
+
}, { signal: o }), i.addEventListener("focusout", (e) => {
|
|
238
|
+
const s = e.relatedTarget;
|
|
239
|
+
s && (this.contains(s) || s === this) || this._requestClose();
|
|
240
|
+
}, { signal: o })), this.triggers.includes("click") && (i.addEventListener("click", (e) => {
|
|
241
|
+
e.stopPropagation(), this.isOpen ? this._requestClose() : this._requestOpen();
|
|
242
|
+
}, { signal: o }), this.ownerDocument.addEventListener("click", (e) => {
|
|
243
|
+
var v;
|
|
244
|
+
const s = e.composedPath()[0], n = this.contains(s) || ((v = this.shadowRoot) == null ? void 0 : v.contains(s)), p = i.contains(s) || s === i;
|
|
245
|
+
!n && !p && this.isOpen && this._requestClose();
|
|
246
|
+
}, { signal: o }));
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
_teardownInteractionListeners() {
|
|
250
|
+
var t;
|
|
251
|
+
(t = this._interactionController) == null || t.abort(), this._interactionController = void 0, this._cancelHoverCloseTimer();
|
|
137
252
|
}
|
|
138
253
|
renderHeading() {
|
|
139
|
-
const t =
|
|
254
|
+
const t = P(this.headingLevel);
|
|
140
255
|
return y`<${t}
|
|
141
|
-
id="${
|
|
142
|
-
class="${
|
|
143
|
-
data-test-id="${
|
|
256
|
+
id="${z}"
|
|
257
|
+
class="${c}-heading"
|
|
258
|
+
data-test-id="${z}">${this.heading}</${t}>`;
|
|
144
259
|
}
|
|
145
260
|
renderCloseButton() {
|
|
146
261
|
var t;
|
|
147
262
|
return y`
|
|
148
263
|
<pie-icon-button
|
|
149
|
-
class="${
|
|
150
|
-
data-test-id="${
|
|
264
|
+
class="${c}-close"
|
|
265
|
+
data-test-id="${d}-close"
|
|
151
266
|
size="xsmall"
|
|
152
267
|
variant="${this.variant === "inverse" ? "ghost-secondary" : "ghost-inverse"}"
|
|
153
268
|
.aria="${{ label: (t = this.aria) == null ? void 0 : t.close }}"
|
|
@@ -162,114 +277,123 @@ let l = class extends u {
|
|
|
162
277
|
isDismissible: i,
|
|
163
278
|
isOpen: r,
|
|
164
279
|
position: e,
|
|
165
|
-
size:
|
|
166
|
-
type:
|
|
167
|
-
variant:
|
|
168
|
-
_mode:
|
|
169
|
-
} = this,
|
|
170
|
-
[`${
|
|
171
|
-
[`${
|
|
172
|
-
[`${
|
|
280
|
+
size: s,
|
|
281
|
+
type: n,
|
|
282
|
+
variant: p,
|
|
283
|
+
_mode: v
|
|
284
|
+
} = this, f = n === "icon", u = {
|
|
285
|
+
[`${c}-layer`]: !0,
|
|
286
|
+
[`${c}-layer--${e}`]: !0,
|
|
287
|
+
[`${c}-layer--type-${n}`]: !0,
|
|
173
288
|
"is-open": !!r,
|
|
174
|
-
"is-positioned": this._isPositioned
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
[
|
|
178
|
-
[`${
|
|
179
|
-
[`${
|
|
180
|
-
[`${
|
|
289
|
+
"is-positioned": this._isPositioned,
|
|
290
|
+
"is-anchorVisible": this._isAnchorVisible
|
|
291
|
+
}, T = {
|
|
292
|
+
[c]: !0,
|
|
293
|
+
[`${c}--${e}`]: !0,
|
|
294
|
+
[`${c}--${p}`]: !0,
|
|
295
|
+
[`${c}--type-${n}`]: !0,
|
|
296
|
+
[`${c}--size-${s}`]: !f,
|
|
181
297
|
"is-dismissible": !!i,
|
|
182
|
-
"has-action":
|
|
298
|
+
"has-action": v === "dialog",
|
|
183
299
|
"has-heading": !!o
|
|
184
|
-
},
|
|
300
|
+
}, C = v === "dialog";
|
|
185
301
|
return y`
|
|
186
|
-
<div class="${
|
|
187
|
-
<div class="${
|
|
188
|
-
<div class="${
|
|
302
|
+
<div class="${c}-origin" data-test-id="${d}-origin"></div>
|
|
303
|
+
<div class="${c}-anchor" data-test-id="${d}-anchor">
|
|
304
|
+
<div class="${O(u)}" data-test-id="${d}-layer">
|
|
189
305
|
<div
|
|
190
|
-
class="${
|
|
191
|
-
data-test-id="${
|
|
192
|
-
role="${
|
|
306
|
+
class="${O(T)}"
|
|
307
|
+
data-test-id="${d}"
|
|
308
|
+
role="${R(v)}"
|
|
193
309
|
aria-hidden="${!r}"
|
|
194
|
-
aria-labelledby="${
|
|
195
|
-
aria-label="${
|
|
196
|
-
${
|
|
197
|
-
<div class="${
|
|
198
|
-
${o ? this.renderHeading() :
|
|
199
|
-
<div class="${
|
|
310
|
+
aria-labelledby="${C && o ? z : b}"
|
|
311
|
+
aria-label="${C && !o && (t != null && t.label) ? t.label : b}">
|
|
312
|
+
${f ? b : y`<div class="${c}-arrow" data-test-id="${d}-arrow"></div>`}
|
|
313
|
+
<div class="${c}-body">
|
|
314
|
+
${o ? this.renderHeading() : b}
|
|
315
|
+
<div class="${c}-content" data-test-id="${d}-content">
|
|
200
316
|
<slot name="content"></slot>
|
|
201
317
|
</div>
|
|
202
318
|
</div>
|
|
203
|
-
<div class="${
|
|
319
|
+
<div class="${c}-action" data-test-id="${d}-action">
|
|
204
320
|
<slot name="action" @slotchange="${this.resolveMode}"></slot>
|
|
205
321
|
</div>
|
|
206
|
-
${i ? this.renderCloseButton() :
|
|
322
|
+
${i ? this.renderCloseButton() : b}
|
|
207
323
|
</div>
|
|
208
324
|
</div>
|
|
209
325
|
</div>`;
|
|
210
326
|
}
|
|
211
327
|
};
|
|
212
|
-
l.styles =
|
|
213
|
-
|
|
214
|
-
|
|
328
|
+
l.styles = E(H);
|
|
329
|
+
a([
|
|
330
|
+
g({ type: String })
|
|
215
331
|
], l.prototype, "trigger", 2);
|
|
216
|
-
|
|
217
|
-
|
|
332
|
+
a([
|
|
333
|
+
g({ type: Boolean })
|
|
218
334
|
], l.prototype, "isOpen", 2);
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
m(
|
|
335
|
+
a([
|
|
336
|
+
g({ type: String }),
|
|
337
|
+
m(d, M, h.position)
|
|
222
338
|
], l.prototype, "position", 2);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
m(
|
|
339
|
+
a([
|
|
340
|
+
g({ type: String }),
|
|
341
|
+
m(d, D, h.size)
|
|
226
342
|
], l.prototype, "size", 2);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
m(
|
|
343
|
+
a([
|
|
344
|
+
g({ type: String }),
|
|
345
|
+
m(d, B, h.variant)
|
|
230
346
|
], l.prototype, "variant", 2);
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
m(
|
|
347
|
+
a([
|
|
348
|
+
g({ type: String }),
|
|
349
|
+
m(d, I, h.type)
|
|
234
350
|
], l.prototype, "type", 2);
|
|
235
|
-
|
|
236
|
-
|
|
351
|
+
a([
|
|
352
|
+
g({ type: Boolean })
|
|
237
353
|
], l.prototype, "isDismissible", 2);
|
|
238
|
-
|
|
239
|
-
|
|
354
|
+
a([
|
|
355
|
+
g({ type: String })
|
|
240
356
|
], l.prototype, "heading", 2);
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
m(
|
|
357
|
+
a([
|
|
358
|
+
g({ type: String }),
|
|
359
|
+
m(d, V, h.headingLevel)
|
|
244
360
|
], l.prototype, "headingLevel", 2);
|
|
245
|
-
|
|
246
|
-
|
|
361
|
+
a([
|
|
362
|
+
g({ type: Object })
|
|
247
363
|
], l.prototype, "aria", 2);
|
|
248
|
-
|
|
249
|
-
|
|
364
|
+
a([
|
|
365
|
+
g({ type: Array })
|
|
366
|
+
], l.prototype, "triggers", 2);
|
|
367
|
+
a([
|
|
368
|
+
L({ slot: "action" })
|
|
250
369
|
], l.prototype, "_assignedActionElements", 2);
|
|
251
|
-
|
|
252
|
-
|
|
370
|
+
a([
|
|
371
|
+
A(".c-tooltip-origin")
|
|
253
372
|
], l.prototype, "_originElement", 2);
|
|
254
|
-
|
|
255
|
-
|
|
373
|
+
a([
|
|
374
|
+
x()
|
|
256
375
|
], l.prototype, "_hasActionContent", 2);
|
|
257
|
-
|
|
258
|
-
|
|
376
|
+
a([
|
|
377
|
+
x()
|
|
259
378
|
], l.prototype, "_isPositioned", 2);
|
|
260
|
-
|
|
379
|
+
a([
|
|
380
|
+
x()
|
|
381
|
+
], l.prototype, "_isAnchorVisible", 2);
|
|
382
|
+
l = a([
|
|
261
383
|
S("pie-tooltip")
|
|
262
384
|
], l);
|
|
263
385
|
export {
|
|
264
|
-
|
|
386
|
+
F as ON_TOOLTIP_CLOSE_EVENT,
|
|
387
|
+
q as ON_TOOLTIP_OPEN_EVENT,
|
|
265
388
|
l as PieTooltip,
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
389
|
+
c as componentClass,
|
|
390
|
+
d as componentSelector,
|
|
391
|
+
h as defaultProps,
|
|
392
|
+
V as headingLevels,
|
|
393
|
+
rt as modes,
|
|
394
|
+
M as positions,
|
|
395
|
+
D as sizes,
|
|
396
|
+
et as triggers,
|
|
397
|
+
I as types,
|
|
398
|
+
B as variants
|
|
275
399
|
};
|