@justeattakeaway/pie-tooltip 0.2.0 → 0.4.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 +202 -8
- package/custom-elements.json +292 -2
- package/dist/index.d.ts +45 -4
- package/dist/index.js +387 -160
- package/dist/react.d.ts +46 -4
- package/dist/react.js +16 -12
- package/package.json +6 -6
- package/src/defs.ts +17 -2
- package/src/index.ts +599 -39
- 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
|
|
6
|
-
import { validPropertyValues as
|
|
1
|
+
import { LitElement as q, unsafeCSS as F, nothing as y } from "lit";
|
|
2
|
+
import { property as b, queryAssignedElements as j, query as H, state as k } from "lit/decorators.js";
|
|
3
|
+
import { classMap as B } from "lit/directives/class-map.js";
|
|
4
|
+
import { ifDefined as N } from "lit/directives/if-defined.js";
|
|
5
|
+
import { unsafeStatic as X, html as z } from "lit/static-html.js";
|
|
6
|
+
import { validPropertyValues as w, safeCustomElement as U } 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 _ = class _ extends q {
|
|
10
10
|
willUpdate() {
|
|
11
|
-
this.getAttribute("v") || this.setAttribute("v",
|
|
11
|
+
this.getAttribute("v") || this.setAttribute("v", _.v);
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
const
|
|
14
|
+
_.v = "0.4.0";
|
|
15
|
+
let P = _;
|
|
16
|
+
const Y = [
|
|
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
|
+
], G = ["default", "fit-to-content", "fill-container"], J = ["default", "inverse"], K = ["default", "icon"], Q = ["h2", "h3", "h4", "h5", "h6"], wt = ["hover", "focus", "click"], zt = ["tooltip", "dialog"], v = "pie-tooltip", h = "c-tooltip", W = `${v}-open`, Z = `${v}-close`, g = {
|
|
30
30
|
isOpen: !1,
|
|
31
31
|
position: "top",
|
|
32
32
|
size: "default",
|
|
@@ -34,14 +34,14 @@ 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
|
|
40
|
-
(
|
|
41
|
-
return
|
|
37
|
+
}, tt = '*,*: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 ot = Object.defineProperty, it = Object.getOwnPropertyDescriptor, p = (t, o, i, e) => {
|
|
39
|
+
for (var r = e > 1 ? void 0 : e ? it(o, i) : o, s = t.length - 1, n; s >= 0; s--)
|
|
40
|
+
(n = t[s]) && (r = (e ? n(o, i, r) : n(r)) || r);
|
|
41
|
+
return e && r && ot(o, i, r), r;
|
|
42
42
|
};
|
|
43
|
-
const
|
|
44
|
-
const o = (
|
|
43
|
+
const E = "pie-tooltip-heading", et = (t) => {
|
|
44
|
+
const o = (e) => !!e && e !== "none";
|
|
45
45
|
return [
|
|
46
46
|
t.transform,
|
|
47
47
|
t.perspective,
|
|
@@ -51,24 +51,80 @@ 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
|
+
}, S = (t) => {
|
|
55
|
+
const { documentElement: o } = t.ownerDocument, i = [];
|
|
56
|
+
let e = t;
|
|
57
|
+
for (; e !== o; ) {
|
|
58
|
+
const r = e.assignedSlot ?? e.parentNode, s = r instanceof ShadowRoot ? r.host : r;
|
|
59
|
+
if (!(s instanceof Element))
|
|
60
|
+
break;
|
|
61
|
+
i.push(s), e = s;
|
|
62
|
+
}
|
|
63
|
+
return i;
|
|
64
|
+
}, rt = (t) => {
|
|
65
|
+
const { documentElement: o, body: i } = t.ownerDocument;
|
|
66
|
+
return S(t).filter((e) => {
|
|
67
|
+
if (e === o || e === i)
|
|
68
|
+
return !1;
|
|
69
|
+
const r = getComputedStyle(e);
|
|
70
|
+
return r.overflowX !== "visible" || r.overflowY !== "visible";
|
|
71
|
+
});
|
|
72
|
+
}, R = (t) => {
|
|
73
|
+
const { left: o, top: i } = t.getBoundingClientRect(), {
|
|
74
|
+
clientLeft: e,
|
|
75
|
+
clientTop: r,
|
|
76
|
+
clientWidth: s,
|
|
77
|
+
clientHeight: n
|
|
78
|
+
} = t;
|
|
79
|
+
return new DOMRect(o + e, i + r, s, n);
|
|
80
|
+
}, V = (t, o) => {
|
|
81
|
+
const i = Math.max(t.left, o.left), e = Math.max(t.top, o.top), r = Math.min(t.right, o.right), s = Math.min(t.bottom, o.bottom);
|
|
82
|
+
return r <= i || s <= e ? null : new DOMRect(i, e, r - i, s - e);
|
|
83
|
+
}, st = {
|
|
84
|
+
top: "bottom",
|
|
85
|
+
bottom: "top",
|
|
86
|
+
left: "right",
|
|
87
|
+
right: "left"
|
|
88
|
+
}, nt = {
|
|
89
|
+
top: ["left", "right"],
|
|
90
|
+
bottom: ["left", "right"],
|
|
91
|
+
left: ["top", "bottom"],
|
|
92
|
+
right: ["top", "bottom"]
|
|
93
|
+
}, lt = (t) => {
|
|
94
|
+
const o = /^(top|bottom|left|right)(-start|-end)?$/.exec(t ?? "");
|
|
95
|
+
return o ? { side: o[1], alignment: o[2] ?? "" } : { side: "top", alignment: "" };
|
|
96
|
+
}, at = (t, o) => o ? t === "left" ? "right" : t === "right" ? "left" : t : t, ct = (t, o, i, e, r, s, n) => {
|
|
97
|
+
const l = at(t, n), d = l === "top" || l === "bottom";
|
|
98
|
+
let a = 0, f = 0;
|
|
99
|
+
return l === "top" ? f = i.top - s - r : l === "bottom" ? f = i.bottom + s : l === "left" ? a = i.left - s - e : a = i.right + s, d ? o === "" ? a = i.left + i.width / 2 - e / 2 : o === "-start" ? a = n ? i.right - e : i.left : a = n ? i.left : i.right - e : o === "" ? f = i.top + i.height / 2 - r / 2 : f = o === "-start" ? i.top : i.bottom - r, {
|
|
100
|
+
left: a,
|
|
101
|
+
top: f,
|
|
102
|
+
right: a + e,
|
|
103
|
+
bottom: f + r
|
|
104
|
+
};
|
|
105
|
+
}, pt = (t, o) => o.left >= t.left && o.right <= t.right && o.top >= t.top && o.bottom <= t.bottom, dt = (t, o) => {
|
|
106
|
+
const i = Math.min(t.right, o.right) - Math.max(t.left, o.left), e = Math.min(t.bottom, o.bottom) - Math.max(t.top, o.top);
|
|
107
|
+
return Math.max(0, i) * Math.max(0, e);
|
|
54
108
|
};
|
|
55
|
-
let
|
|
109
|
+
let c = class extends P {
|
|
56
110
|
constructor() {
|
|
57
|
-
super(...arguments), this.isOpen =
|
|
111
|
+
super(...arguments), this.isOpen = g.isOpen, this.position = g.position, this.size = g.size, this.variant = g.variant, this.type = g.type, this.isDismissible = g.isDismissible, this.headingLevel = g.headingLevel, this.triggers = [], this._isPositioned = !1, this._isAnchorVisible = !0, this._clippedTriggerElement = null, this._triggerClippers = [], this._overlayClippers = [], this._collisionSignature = null, this._overlayModeDirty = !0, this._reanchorFrame = 0, this._openedByClick = !1;
|
|
58
112
|
}
|
|
59
113
|
get _mode() {
|
|
60
114
|
if (this._hasActionContent !== void 0)
|
|
61
115
|
return this._hasActionContent ? "dialog" : "tooltip";
|
|
62
116
|
}
|
|
63
117
|
firstUpdated() {
|
|
64
|
-
this.resolveMode(), this.projectOverTrigger();
|
|
118
|
+
this.resolveMode(), this._overlayModeDirty = !0, this.resolveOverlayMode(), this.projectOverTrigger(), this._rebuildInteractionListeners();
|
|
65
119
|
}
|
|
66
120
|
updated(t) {
|
|
67
121
|
const o = ["trigger", "isOpen", "position", "size"];
|
|
68
|
-
this.isOpen && t.has("isOpen") && this.
|
|
122
|
+
this.isOpen && t.has("isOpen") && (this._overlayModeDirty = !0), this.isOpen || (this._openedByClick = !1), t.has("trigger") && (this._overlayModeDirty = !0);
|
|
123
|
+
const i = o.some((e) => t.has(e));
|
|
124
|
+
i && (this._collisionSignature = null), this.resolveOverlayMode(), 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
125
|
}
|
|
70
126
|
disconnectedCallback() {
|
|
71
|
-
this.stopTrackingTrigger(), super.disconnectedCallback();
|
|
127
|
+
this._teardownInteractionListeners(), this.stopTrackingTrigger(), super.disconnectedCallback();
|
|
72
128
|
}
|
|
73
129
|
// Listens for scroll (capture — catches any ancestor), resize, and dir-attribute changes to
|
|
74
130
|
// re-anchor the panel. Multiple events per frame coalesce into one requestAnimationFrame call.
|
|
@@ -77,19 +133,30 @@ let l = class extends u {
|
|
|
77
133
|
return;
|
|
78
134
|
const t = new AbortController(), { signal: o } = t, i = () => {
|
|
79
135
|
this._reanchorFrame || (this._reanchorFrame = requestAnimationFrame(() => {
|
|
80
|
-
this._reanchorFrame = 0, this.
|
|
136
|
+
this._reanchorFrame = 0, this.resolveOverlayMode(), this.projectOverTrigger();
|
|
81
137
|
}));
|
|
82
|
-
},
|
|
83
|
-
this.
|
|
138
|
+
}, e = () => {
|
|
139
|
+
this._overlayModeDirty = !0, i();
|
|
84
140
|
};
|
|
85
|
-
window.addEventListener("scroll", i, { capture: !0, passive: !0, signal: o }), window.addEventListener("resize",
|
|
141
|
+
window.addEventListener("scroll", i, { capture: !0, passive: !0, signal: o }), window.addEventListener("resize", e, { passive: !0, signal: o });
|
|
142
|
+
const r = /* @__PURE__ */ new Set();
|
|
143
|
+
S(this).forEach((n) => {
|
|
144
|
+
const l = n.getRootNode();
|
|
145
|
+
l instanceof ShadowRoot && r.add(l);
|
|
146
|
+
}), r.forEach((n) => {
|
|
147
|
+
n.addEventListener("scroll", i, { capture: !0, passive: !0, signal: o });
|
|
148
|
+
}), this._triggerObserver = new ResizeObserver(() => {
|
|
149
|
+
this._overlayModeDirty = !0, i();
|
|
150
|
+
});
|
|
151
|
+
const s = this._getTriggerElement();
|
|
152
|
+
s && this._triggerObserver.observe(s), this._directionObserver = new MutationObserver(i), this._directionObserver.observe(this.ownerDocument.documentElement, {
|
|
86
153
|
attributeFilter: ["dir"],
|
|
87
154
|
subtree: !0
|
|
88
155
|
}), this._triggerTrackingController = t;
|
|
89
156
|
}
|
|
90
157
|
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.
|
|
158
|
+
var t, o, i;
|
|
159
|
+
(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._reanchorFrame && (cancelAnimationFrame(this._reanchorFrame), this._reanchorFrame = 0);
|
|
93
160
|
}
|
|
94
161
|
resolveMode() {
|
|
95
162
|
this._hasActionContent = this._assignedActionElements.length > 0;
|
|
@@ -97,57 +164,204 @@ let l = class extends u {
|
|
|
97
164
|
// Picks between `absolute` (browser handles scrolling, but clipped by overflow ancestors) and
|
|
98
165
|
// `fixed` (escapes overflow clips, but must re-offset on every scroll). Switches to `fixed`
|
|
99
166
|
// only when it escapes a clip that `absolute` would not.
|
|
167
|
+
//
|
|
168
|
+
// An overflow ancestor clips a positioned box only if it is that box's containing block or an
|
|
169
|
+
// ancestor of it; a clipper strictly inside the containing block does not clip. So each
|
|
170
|
+
// clipper is counted against a mode only once that mode's containing block has been reached.
|
|
100
171
|
resolveOverlayMode() {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
172
|
+
if (!this._overlayModeDirty)
|
|
173
|
+
return;
|
|
174
|
+
this._overlayModeDirty = !1;
|
|
175
|
+
let t = !1, o = !1;
|
|
176
|
+
const i = [], e = [], { documentElement: r, body: s } = this.ownerDocument;
|
|
177
|
+
this._refreshTriggerClippers(), S(this).forEach((l) => {
|
|
178
|
+
const d = getComputedStyle(l);
|
|
179
|
+
if (d.display === "contents")
|
|
180
|
+
return;
|
|
181
|
+
const a = et(d);
|
|
182
|
+
(a || d.position !== "static") && (t = !0), a && (o = !0), (d.overflowX !== "visible" || d.overflowY !== "visible") && !(l === r || l === s) && (t && i.push(l), o && e.push(l));
|
|
183
|
+
});
|
|
184
|
+
const n = e.length < i.length;
|
|
185
|
+
this.style.position = n ? "fixed" : "", this._overlayClippers = n ? e : i;
|
|
112
186
|
}
|
|
113
187
|
// Measures the trigger relative to the origin marker (which sits at the containing block's
|
|
114
188
|
// origin) and writes CSS custom properties. Self-referential: correct for any containing
|
|
115
189
|
// block. Physical values; shadow-root CSS uses logical properties for RTL mirroring.
|
|
116
190
|
projectOverTrigger() {
|
|
117
191
|
this._isPositioned = !1;
|
|
118
|
-
const t = this.
|
|
192
|
+
const t = this._getTriggerElement();
|
|
119
193
|
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;
|
|
194
|
+
["top", "left", "width", "height"].forEach((a) => {
|
|
195
|
+
this.style.removeProperty(`--tooltip-anchor-${a}`);
|
|
196
|
+
}), this.style.removeProperty("--tooltip-container-inline-size"), this._isAnchorVisible = !0, this._isPositioned = !0;
|
|
123
197
|
return;
|
|
124
198
|
}
|
|
125
|
-
|
|
126
|
-
|
|
199
|
+
t !== this._clippedTriggerElement && this._refreshTriggerClippers();
|
|
200
|
+
const o = this._triggerClippers.reduce(
|
|
201
|
+
(a, f) => a ? V(a, R(f)) : null,
|
|
202
|
+
t.getBoundingClientRect()
|
|
203
|
+
);
|
|
204
|
+
if (this._isAnchorVisible = o !== null, !o) {
|
|
205
|
+
this._isPositioned = !0;
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const i = this._originElement.getBoundingClientRect(), {
|
|
209
|
+
top: e,
|
|
127
210
|
left: r,
|
|
128
|
-
width:
|
|
129
|
-
height:
|
|
130
|
-
} =
|
|
131
|
-
this.style.setProperty("--tooltip-anchor-top", `${
|
|
132
|
-
const
|
|
133
|
-
this.style.setProperty("--tooltip-container-inline-size", `${
|
|
211
|
+
width: s,
|
|
212
|
+
height: n
|
|
213
|
+
} = o;
|
|
214
|
+
this.style.setProperty("--tooltip-anchor-top", `${e - i.top}px`), this.style.setProperty("--tooltip-anchor-left", `${r - i.left}px`), this.style.setProperty("--tooltip-anchor-width", `${s}px`), this.style.setProperty("--tooltip-anchor-height", `${n}px`);
|
|
215
|
+
const l = t.parentElement, d = l ? l.getBoundingClientRect().width : s;
|
|
216
|
+
this.style.setProperty("--tooltip-container-inline-size", `${d}px`), this.resolveCollision(o), this._isPositioned = !0;
|
|
217
|
+
}
|
|
218
|
+
resolveCollision(t) {
|
|
219
|
+
const o = this.renderRoot.querySelector(`.${h}`);
|
|
220
|
+
if (!o)
|
|
221
|
+
return;
|
|
222
|
+
const i = this._getCollisionBoundary();
|
|
223
|
+
if (!i) {
|
|
224
|
+
this._collisionSignature = null, this._setResolvedPosition(this.position ?? g.position);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const e = this.type === "icon", r = getComputedStyle(this), s = r.direction === "rtl", n = o.offsetWidth, l = o.offsetHeight, d = [
|
|
228
|
+
t.left,
|
|
229
|
+
t.top,
|
|
230
|
+
t.width,
|
|
231
|
+
t.height,
|
|
232
|
+
i.left,
|
|
233
|
+
i.top,
|
|
234
|
+
i.width,
|
|
235
|
+
i.height,
|
|
236
|
+
n,
|
|
237
|
+
l,
|
|
238
|
+
s
|
|
239
|
+
].join(":");
|
|
240
|
+
if (this._collisionSignature === d)
|
|
241
|
+
return;
|
|
242
|
+
this._collisionSignature = d;
|
|
243
|
+
const a = parseFloat(r.getPropertyValue("--tooltip-offset")) || 0, f = parseFloat(r.getPropertyValue("--tooltip-arrow-size")) || 0, m = e ? a : a + f, { side: x, alignment: C } = lt(this.position ?? g.position);
|
|
244
|
+
let u, A, M = -1;
|
|
245
|
+
this._getCandidatePositions(x, C).some(({ side: O, alignment: $ }) => {
|
|
246
|
+
const L = ct(
|
|
247
|
+
O,
|
|
248
|
+
$,
|
|
249
|
+
t,
|
|
250
|
+
n,
|
|
251
|
+
l,
|
|
252
|
+
m,
|
|
253
|
+
s
|
|
254
|
+
);
|
|
255
|
+
if (pt(i, L))
|
|
256
|
+
return u = { side: O, alignment: $ }, !0;
|
|
257
|
+
const D = dt(i, L);
|
|
258
|
+
return D > M && (M = D, A = { side: O, alignment: $ }), !1;
|
|
259
|
+
});
|
|
260
|
+
const T = u ?? A, I = T ? `${T.side}${T.alignment}` : this.position ?? g.position;
|
|
261
|
+
this._setResolvedPosition(I);
|
|
262
|
+
}
|
|
263
|
+
_setResolvedPosition(t) {
|
|
264
|
+
this._resolvedPosition !== t && (this._resolvedPosition = t);
|
|
265
|
+
}
|
|
266
|
+
_getCollisionBoundary() {
|
|
267
|
+
const { documentElement: t } = this.ownerDocument, o = new DOMRect(0, 0, t.clientWidth, t.clientHeight);
|
|
268
|
+
return this._overlayClippers.reduce(
|
|
269
|
+
(i, e) => i ? V(i, R(e)) : null,
|
|
270
|
+
o
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
_getCandidatePositions(t, o) {
|
|
274
|
+
const i = [t, st[t], ...nt[t]], e = ["", "-start", "-end"];
|
|
275
|
+
return i.flatMap((r) => [o, ...e.filter((n) => n !== o)].map((n) => ({ side: r, alignment: n })));
|
|
276
|
+
}
|
|
277
|
+
// Cached because `projectOverTrigger` runs on every re-anchoring frame, and collecting these
|
|
278
|
+
// costs a computed style per ancestor. Refreshed when the trigger changes and whenever the
|
|
279
|
+
// overlay mode is resolved, which is the same cadence as an ancestor chain actually changing.
|
|
280
|
+
_refreshTriggerClippers() {
|
|
281
|
+
const t = this._getTriggerElement();
|
|
282
|
+
this._clippedTriggerElement = t, this._triggerClippers = t ? rt(t) : [];
|
|
134
283
|
}
|
|
135
284
|
handleCloseButtonClick() {
|
|
136
|
-
this.
|
|
285
|
+
this._requestClose();
|
|
286
|
+
}
|
|
287
|
+
_getTriggerElement() {
|
|
288
|
+
return this.trigger ? this.ownerDocument.getElementById(this.trigger) : null;
|
|
289
|
+
}
|
|
290
|
+
_requestOpen() {
|
|
291
|
+
this.isOpen || this.dispatchEvent(new Event(W, { bubbles: !0, composed: !0 }));
|
|
292
|
+
}
|
|
293
|
+
_requestClose() {
|
|
294
|
+
this.isOpen && this.dispatchEvent(new Event(Z, { bubbles: !0, composed: !0 }));
|
|
295
|
+
}
|
|
296
|
+
_startHoverCloseTimer() {
|
|
297
|
+
this._hoverCloseTimer === void 0 && (this._hoverCloseTimer = setTimeout(() => {
|
|
298
|
+
this._hoverCloseTimer = void 0, this._requestClose();
|
|
299
|
+
}, 100));
|
|
300
|
+
}
|
|
301
|
+
_cancelHoverCloseTimer() {
|
|
302
|
+
this._hoverCloseTimer !== void 0 && (clearTimeout(this._hoverCloseTimer), this._hoverCloseTimer = void 0);
|
|
303
|
+
}
|
|
304
|
+
_rebuildInteractionListeners() {
|
|
305
|
+
var e;
|
|
306
|
+
if (this._teardownInteractionListeners(), !((e = this.triggers) != null && e.length)) return;
|
|
307
|
+
const t = new AbortController(), { signal: o } = t;
|
|
308
|
+
this._interactionController = t;
|
|
309
|
+
const i = this._getTriggerElement();
|
|
310
|
+
if (this.ownerDocument.addEventListener("keydown", (r) => {
|
|
311
|
+
r.key === "Escape" && this.isOpen && this._requestClose();
|
|
312
|
+
}, { signal: o }), !!i) {
|
|
313
|
+
if (this.triggers.includes("hover")) {
|
|
314
|
+
i.addEventListener("mouseenter", () => {
|
|
315
|
+
this._cancelHoverCloseTimer(), this._requestOpen();
|
|
316
|
+
}, { signal: o }), i.addEventListener("mouseleave", () => {
|
|
317
|
+
this._startHoverCloseTimer();
|
|
318
|
+
}, { signal: o });
|
|
319
|
+
const r = this.renderRoot.querySelector(".c-tooltip");
|
|
320
|
+
r && (r.addEventListener("mouseenter", () => {
|
|
321
|
+
this._cancelHoverCloseTimer();
|
|
322
|
+
}, { signal: o }), r.addEventListener("mouseleave", () => {
|
|
323
|
+
this._startHoverCloseTimer();
|
|
324
|
+
}, { signal: o }));
|
|
325
|
+
}
|
|
326
|
+
this.triggers.includes("focus") && (i.addEventListener("focusin", () => {
|
|
327
|
+
this._requestOpen();
|
|
328
|
+
}, { signal: o }), i.addEventListener("focusout", (r) => {
|
|
329
|
+
const s = r.relatedTarget;
|
|
330
|
+
s && (this.contains(s) || s === this) || this._requestClose();
|
|
331
|
+
}, { signal: o })), this.triggers.includes("click") && (i.addEventListener("click", (r) => {
|
|
332
|
+
if (r.stopPropagation(), !this.isOpen) {
|
|
333
|
+
this._openedByClick = !0, this._requestOpen();
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
if (!this._openedByClick) {
|
|
337
|
+
this._openedByClick = !0;
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
this._requestClose();
|
|
341
|
+
}, { signal: o }), this.ownerDocument.addEventListener("click", (r) => {
|
|
342
|
+
var d;
|
|
343
|
+
const s = r.composedPath()[0], n = this.contains(s) || ((d = this.shadowRoot) == null ? void 0 : d.contains(s)), l = i.contains(s) || s === i;
|
|
344
|
+
!n && !l && this.isOpen && this._requestClose();
|
|
345
|
+
}, { signal: o }));
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
_teardownInteractionListeners() {
|
|
349
|
+
var t;
|
|
350
|
+
(t = this._interactionController) == null || t.abort(), this._interactionController = void 0, this._cancelHoverCloseTimer();
|
|
137
351
|
}
|
|
138
352
|
renderHeading() {
|
|
139
|
-
const t =
|
|
140
|
-
return
|
|
141
|
-
id="${
|
|
142
|
-
class="${
|
|
143
|
-
data-test-id="${
|
|
353
|
+
const t = X(this.headingLevel);
|
|
354
|
+
return z`<${t}
|
|
355
|
+
id="${E}"
|
|
356
|
+
class="${h}-heading"
|
|
357
|
+
data-test-id="${E}">${this.heading}</${t}>`;
|
|
144
358
|
}
|
|
145
359
|
renderCloseButton() {
|
|
146
360
|
var t;
|
|
147
|
-
return
|
|
361
|
+
return z`
|
|
148
362
|
<pie-icon-button
|
|
149
|
-
class="${
|
|
150
|
-
data-test-id="${
|
|
363
|
+
class="${h}-close"
|
|
364
|
+
data-test-id="${v}-close"
|
|
151
365
|
size="xsmall"
|
|
152
366
|
variant="${this.variant === "inverse" ? "ghost-secondary" : "ghost-inverse"}"
|
|
153
367
|
.aria="${{ label: (t = this.aria) == null ? void 0 : t.close }}"
|
|
@@ -160,116 +374,129 @@ let l = class extends u {
|
|
|
160
374
|
aria: t,
|
|
161
375
|
heading: o,
|
|
162
376
|
isDismissible: i,
|
|
163
|
-
isOpen:
|
|
164
|
-
position:
|
|
165
|
-
size:
|
|
166
|
-
type:
|
|
167
|
-
variant:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
[`${
|
|
172
|
-
[`${
|
|
173
|
-
|
|
174
|
-
"is-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
[
|
|
179
|
-
[`${
|
|
180
|
-
[`${
|
|
377
|
+
isOpen: e,
|
|
378
|
+
position: r,
|
|
379
|
+
size: s,
|
|
380
|
+
type: n,
|
|
381
|
+
variant: l,
|
|
382
|
+
_resolvedPosition: d,
|
|
383
|
+
_mode: a
|
|
384
|
+
} = this, f = d ?? r, m = n === "icon", x = {
|
|
385
|
+
[`${h}-layer`]: !0,
|
|
386
|
+
[`${h}-layer--${f}`]: !0,
|
|
387
|
+
[`${h}-layer--type-${n}`]: !0,
|
|
388
|
+
"is-open": !!e,
|
|
389
|
+
"is-positioned": this._isPositioned,
|
|
390
|
+
"is-anchorVisible": this._isAnchorVisible
|
|
391
|
+
}, C = {
|
|
392
|
+
[h]: !0,
|
|
393
|
+
[`${h}--${f}`]: !0,
|
|
394
|
+
[`${h}--${l}`]: !0,
|
|
395
|
+
[`${h}--type-${n}`]: !0,
|
|
396
|
+
[`${h}--size-${s}`]: !m,
|
|
181
397
|
"is-dismissible": !!i,
|
|
182
|
-
"has-action":
|
|
398
|
+
"has-action": a === "dialog",
|
|
183
399
|
"has-heading": !!o
|
|
184
|
-
},
|
|
185
|
-
return
|
|
186
|
-
<div class="${
|
|
187
|
-
<div class="${
|
|
188
|
-
<div class="${
|
|
400
|
+
}, u = a === "dialog";
|
|
401
|
+
return z`
|
|
402
|
+
<div class="${h}-origin" data-test-id="${v}-origin"></div>
|
|
403
|
+
<div class="${h}-anchor" data-test-id="${v}-anchor">
|
|
404
|
+
<div class="${B(x)}" data-test-id="${v}-layer">
|
|
189
405
|
<div
|
|
190
|
-
class="${
|
|
191
|
-
data-test-id="${
|
|
192
|
-
role="${
|
|
193
|
-
aria-hidden="${!
|
|
194
|
-
aria-labelledby="${
|
|
195
|
-
aria-label="${
|
|
196
|
-
${
|
|
197
|
-
<div class="${
|
|
198
|
-
${o ? this.renderHeading() :
|
|
199
|
-
<div class="${
|
|
406
|
+
class="${B(C)}"
|
|
407
|
+
data-test-id="${v}"
|
|
408
|
+
role="${N(a)}"
|
|
409
|
+
aria-hidden="${!e}"
|
|
410
|
+
aria-labelledby="${u && o ? E : y}"
|
|
411
|
+
aria-label="${u && !o && (t != null && t.label) ? t.label : y}">
|
|
412
|
+
${m ? y : z`<div class="${h}-arrow" data-test-id="${v}-arrow"></div>`}
|
|
413
|
+
<div class="${h}-body">
|
|
414
|
+
${o ? this.renderHeading() : y}
|
|
415
|
+
<div class="${h}-content" data-test-id="${v}-content">
|
|
200
416
|
<slot name="content"></slot>
|
|
201
417
|
</div>
|
|
202
418
|
</div>
|
|
203
|
-
<div class="${
|
|
419
|
+
<div class="${h}-action" data-test-id="${v}-action">
|
|
204
420
|
<slot name="action" @slotchange="${this.resolveMode}"></slot>
|
|
205
421
|
</div>
|
|
206
|
-
${i ? this.renderCloseButton() :
|
|
422
|
+
${i ? this.renderCloseButton() : y}
|
|
207
423
|
</div>
|
|
208
424
|
</div>
|
|
209
425
|
</div>`;
|
|
210
426
|
}
|
|
211
427
|
};
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
],
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
],
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
],
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
],
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
],
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
],
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
],
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
],
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
],
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
],
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
],
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
],
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
],
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
],
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
],
|
|
428
|
+
c.styles = F(tt);
|
|
429
|
+
p([
|
|
430
|
+
b({ type: String })
|
|
431
|
+
], c.prototype, "trigger", 2);
|
|
432
|
+
p([
|
|
433
|
+
b({ type: Boolean })
|
|
434
|
+
], c.prototype, "isOpen", 2);
|
|
435
|
+
p([
|
|
436
|
+
b({ type: String }),
|
|
437
|
+
w(v, Y, g.position)
|
|
438
|
+
], c.prototype, "position", 2);
|
|
439
|
+
p([
|
|
440
|
+
b({ type: String }),
|
|
441
|
+
w(v, G, g.size)
|
|
442
|
+
], c.prototype, "size", 2);
|
|
443
|
+
p([
|
|
444
|
+
b({ type: String }),
|
|
445
|
+
w(v, J, g.variant)
|
|
446
|
+
], c.prototype, "variant", 2);
|
|
447
|
+
p([
|
|
448
|
+
b({ type: String }),
|
|
449
|
+
w(v, K, g.type)
|
|
450
|
+
], c.prototype, "type", 2);
|
|
451
|
+
p([
|
|
452
|
+
b({ type: Boolean })
|
|
453
|
+
], c.prototype, "isDismissible", 2);
|
|
454
|
+
p([
|
|
455
|
+
b({ type: String })
|
|
456
|
+
], c.prototype, "heading", 2);
|
|
457
|
+
p([
|
|
458
|
+
b({ type: String }),
|
|
459
|
+
w(v, Q, g.headingLevel)
|
|
460
|
+
], c.prototype, "headingLevel", 2);
|
|
461
|
+
p([
|
|
462
|
+
b({ type: Object })
|
|
463
|
+
], c.prototype, "aria", 2);
|
|
464
|
+
p([
|
|
465
|
+
b({ type: Array })
|
|
466
|
+
], c.prototype, "triggers", 2);
|
|
467
|
+
p([
|
|
468
|
+
j({ slot: "action" })
|
|
469
|
+
], c.prototype, "_assignedActionElements", 2);
|
|
470
|
+
p([
|
|
471
|
+
H(".c-tooltip-origin")
|
|
472
|
+
], c.prototype, "_originElement", 2);
|
|
473
|
+
p([
|
|
474
|
+
k()
|
|
475
|
+
], c.prototype, "_hasActionContent", 2);
|
|
476
|
+
p([
|
|
477
|
+
k()
|
|
478
|
+
], c.prototype, "_isPositioned", 2);
|
|
479
|
+
p([
|
|
480
|
+
k()
|
|
481
|
+
], c.prototype, "_isAnchorVisible", 2);
|
|
482
|
+
p([
|
|
483
|
+
k()
|
|
484
|
+
], c.prototype, "_resolvedPosition", 2);
|
|
485
|
+
c = p([
|
|
486
|
+
U("pie-tooltip")
|
|
487
|
+
], c);
|
|
263
488
|
export {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
489
|
+
Z as ON_TOOLTIP_CLOSE_EVENT,
|
|
490
|
+
W as ON_TOOLTIP_OPEN_EVENT,
|
|
491
|
+
c as PieTooltip,
|
|
492
|
+
h as componentClass,
|
|
493
|
+
v as componentSelector,
|
|
494
|
+
g as defaultProps,
|
|
495
|
+
Q as headingLevels,
|
|
496
|
+
zt as modes,
|
|
497
|
+
Y as positions,
|
|
498
|
+
G as sizes,
|
|
499
|
+
wt as triggers,
|
|
500
|
+
K as types,
|
|
501
|
+
J as variants
|
|
275
502
|
};
|