@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/dist/index.js CHANGED
@@ -1,19 +1,19 @@
1
- import { LitElement as C, unsafeCSS as T, nothing as f } from "lit";
2
- import { property as v, queryAssignedElements as E, query as P, state as $ } from "lit/decorators.js";
3
- import { classMap as k } from "lit/directives/class-map.js";
4
- import { ifDefined as A } from "lit/directives/if-defined.js";
5
- import { unsafeStatic as B, html as y } from "lit/static-html.js";
6
- import { validPropertyValues as m, safeCustomElement as S } from "@justeattakeaway/pie-webc-core";
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 b = class b extends C {
9
+ const _ = class _ extends q {
10
10
  willUpdate() {
11
- this.getAttribute("v") || this.setAttribute("v", b.v);
11
+ this.getAttribute("v") || this.setAttribute("v", _.v);
12
12
  }
13
13
  };
14
- b.v = "0.2.0";
15
- let u = b;
16
- const F = [
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
- ], M = ["default", "fit-to-content", "fill-container"], D = ["default", "inverse"], L = ["default", "icon"], R = ["h2", "h3", "h4", "h5", "h6"], W = ["tooltip", "dialog"], p = "pie-tooltip", a = "c-tooltip", j = `${p}-close`, d = {
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 V = Object.defineProperty, N = Object.getOwnPropertyDescriptor, n = (t, o, i, r) => {
39
- for (var e = r > 1 ? void 0 : r ? N(o, i) : o, c = t.length - 1, s; c >= 0; c--)
40
- (s = t[c]) && (e = (r ? s(o, i, e) : s(e)) || e);
41
- return r && e && V(o, i, e), e;
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 w = "pie-tooltip-heading", X = (t) => {
44
- const o = (r) => !!r && r !== "none";
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 l = class extends u {
109
+ let c = class extends P {
56
110
  constructor() {
57
- super(...arguments), this.isOpen = d.isOpen, this.position = d.position, this.size = d.size, this.variant = d.variant, this.type = d.type, this.isDismissible = d.isDismissible, this.headingLevel = d.headingLevel, this._isPositioned = !1, this._reanchorFrame = 0, this._shouldResolveOverlayMode = !1;
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.resolveOverlayMode(), o.some((i) => t.has(i)) && this.projectOverTrigger(), this.isOpen ? this.startTrackingTrigger() : this.stopTrackingTrigger();
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._shouldResolveOverlayMode && (this._shouldResolveOverlayMode = !1, this.resolveOverlayMode()), this.projectOverTrigger();
136
+ this._reanchorFrame = 0, this.resolveOverlayMode(), this.projectOverTrigger();
81
137
  }));
82
- }, r = () => {
83
- this._shouldResolveOverlayMode = !0, i();
138
+ }, e = () => {
139
+ this._overlayModeDirty = !0, i();
84
140
  };
85
- window.addEventListener("scroll", i, { capture: !0, passive: !0, signal: o }), window.addEventListener("resize", r, { passive: !0, signal: o }), this._directionObserver = new MutationObserver(i), this._directionObserver.observe(this.ownerDocument.documentElement, {
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._shouldResolveOverlayMode = !1, this._reanchorFrame && (cancelAnimationFrame(this._reanchorFrame), this._reanchorFrame = 0);
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
- let t = !1, o = !1, i = !1, r = !1, e = this.parentNode;
102
- for (; e; ) {
103
- const c = e instanceof ShadowRoot ? e.host : e;
104
- if (!(c instanceof Element))
105
- break;
106
- const s = getComputedStyle(c), h = X(s);
107
- if ((h || s.position !== "static") && (t = !0), h && (o = !0), (s.overflowX !== "visible" || s.overflowY !== "visible") && (i = i || t, r = r || o), c === this.ownerDocument.documentElement)
108
- break;
109
- e = c.parentNode;
110
- }
111
- this.style.position = i && !r ? "fixed" : "";
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.trigger ? this.ownerDocument.getElementById(this.trigger) : null;
192
+ const t = this._getTriggerElement();
119
193
  if (!t || !this._originElement) {
120
- ["top", "left", "width", "height"].forEach((g) => {
121
- this.style.removeProperty(`--tooltip-anchor-${g}`);
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
- const o = this._originElement.getBoundingClientRect(), {
126
- top: i,
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: e,
129
- height: c
130
- } = t.getBoundingClientRect();
131
- this.style.setProperty("--tooltip-anchor-top", `${i - o.top}px`), this.style.setProperty("--tooltip-anchor-left", `${r - o.left}px`), this.style.setProperty("--tooltip-anchor-width", `${e}px`), this.style.setProperty("--tooltip-anchor-height", `${c}px`);
132
- const s = t.parentElement, h = s ? s.getBoundingClientRect().width : e;
133
- this.style.setProperty("--tooltip-container-inline-size", `${h}px`), this._isPositioned = !0;
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.dispatchEvent(new Event(j, { bubbles: !0, composed: !0 }));
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 = B(this.headingLevel);
140
- return y`<${t}
141
- id="${w}"
142
- class="${a}-heading"
143
- data-test-id="${w}">${this.heading}</${t}>`;
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 y`
361
+ return z`
148
362
  <pie-icon-button
149
- class="${a}-close"
150
- data-test-id="${p}-close"
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: r,
164
- position: e,
165
- size: c,
166
- type: s,
167
- variant: h,
168
- _mode: g
169
- } = this, z = s === "icon", _ = {
170
- [`${a}-layer`]: !0,
171
- [`${a}-layer--${e}`]: !0,
172
- [`${a}-layer--type-${s}`]: !0,
173
- "is-open": !!r,
174
- "is-positioned": this._isPositioned
175
- }, O = {
176
- [a]: !0,
177
- [`${a}--${e}`]: !0,
178
- [`${a}--${h}`]: !0,
179
- [`${a}--type-${s}`]: !0,
180
- [`${a}--size-${c}`]: !z,
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": g === "dialog",
398
+ "has-action": a === "dialog",
183
399
  "has-heading": !!o
184
- }, x = g === "dialog";
185
- return y`
186
- <div class="${a}-origin" data-test-id="${p}-origin"></div>
187
- <div class="${a}-anchor" data-test-id="${p}-anchor">
188
- <div class="${k(_)}" data-test-id="${p}-layer">
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="${k(O)}"
191
- data-test-id="${p}"
192
- role="${A(g)}"
193
- aria-hidden="${!r}"
194
- aria-labelledby="${x && o ? w : f}"
195
- aria-label="${x && !o && (t != null && t.label) ? t.label : f}">
196
- ${z ? f : y`<div class="${a}-arrow" data-test-id="${p}-arrow"></div>`}
197
- <div class="${a}-body">
198
- ${o ? this.renderHeading() : f}
199
- <div class="${a}-content" data-test-id="${p}-content">
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="${a}-action" data-test-id="${p}-action">
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() : f}
422
+ ${i ? this.renderCloseButton() : y}
207
423
  </div>
208
424
  </div>
209
425
  </div>`;
210
426
  }
211
427
  };
212
- l.styles = T(I);
213
- n([
214
- v({ type: String })
215
- ], l.prototype, "trigger", 2);
216
- n([
217
- v({ type: Boolean })
218
- ], l.prototype, "isOpen", 2);
219
- n([
220
- v({ type: String }),
221
- m(p, F, d.position)
222
- ], l.prototype, "position", 2);
223
- n([
224
- v({ type: String }),
225
- m(p, M, d.size)
226
- ], l.prototype, "size", 2);
227
- n([
228
- v({ type: String }),
229
- m(p, D, d.variant)
230
- ], l.prototype, "variant", 2);
231
- n([
232
- v({ type: String }),
233
- m(p, L, d.type)
234
- ], l.prototype, "type", 2);
235
- n([
236
- v({ type: Boolean })
237
- ], l.prototype, "isDismissible", 2);
238
- n([
239
- v({ type: String })
240
- ], l.prototype, "heading", 2);
241
- n([
242
- v({ type: String }),
243
- m(p, R, d.headingLevel)
244
- ], l.prototype, "headingLevel", 2);
245
- n([
246
- v({ type: Object })
247
- ], l.prototype, "aria", 2);
248
- n([
249
- E({ slot: "action" })
250
- ], l.prototype, "_assignedActionElements", 2);
251
- n([
252
- P(".c-tooltip-origin")
253
- ], l.prototype, "_originElement", 2);
254
- n([
255
- $()
256
- ], l.prototype, "_hasActionContent", 2);
257
- n([
258
- $()
259
- ], l.prototype, "_isPositioned", 2);
260
- l = n([
261
- S("pie-tooltip")
262
- ], l);
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
- j as ON_TOOLTIP_CLOSE_EVENT,
265
- l as PieTooltip,
266
- a as componentClass,
267
- p as componentSelector,
268
- d as defaultProps,
269
- R as headingLevels,
270
- W as modes,
271
- F as positions,
272
- M as sizes,
273
- L as types,
274
- D as variants
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
  };