@spectrum-web-components/overlay 0.36.0 → 0.37.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.
Files changed (156) hide show
  1. package/README.md +266 -149
  2. package/custom-elements.json +1678 -553
  3. package/package.json +49 -22
  4. package/sp-overlay.d.ts +6 -0
  5. package/sp-overlay.dev.js +5 -0
  6. package/{active-overlay.dev.js.map → sp-overlay.dev.js.map} +3 -3
  7. package/sp-overlay.js +2 -0
  8. package/{active-overlay.js.map → sp-overlay.js.map} +4 -4
  9. package/src/AbstractOverlay.d.ts +58 -0
  10. package/src/AbstractOverlay.dev.js +211 -0
  11. package/src/AbstractOverlay.dev.js.map +7 -0
  12. package/src/AbstractOverlay.js +2 -0
  13. package/src/AbstractOverlay.js.map +7 -0
  14. package/src/Overlay.d.ts +163 -0
  15. package/src/Overlay.dev.js +792 -0
  16. package/src/Overlay.dev.js.map +7 -0
  17. package/src/Overlay.js +33 -0
  18. package/src/Overlay.js.map +7 -0
  19. package/src/OverlayDialog.d.ts +4 -0
  20. package/src/OverlayDialog.dev.js +135 -0
  21. package/src/OverlayDialog.dev.js.map +7 -0
  22. package/src/OverlayDialog.js +2 -0
  23. package/src/OverlayDialog.js.map +7 -0
  24. package/src/OverlayNoPopover.d.ts +4 -0
  25. package/src/OverlayNoPopover.dev.js +109 -0
  26. package/src/OverlayNoPopover.dev.js.map +7 -0
  27. package/src/OverlayNoPopover.js +2 -0
  28. package/src/OverlayNoPopover.js.map +7 -0
  29. package/src/OverlayPopover.d.ts +4 -0
  30. package/src/OverlayPopover.dev.js +169 -0
  31. package/src/OverlayPopover.dev.js.map +7 -0
  32. package/src/OverlayPopover.js +2 -0
  33. package/src/OverlayPopover.js.map +7 -0
  34. package/src/OverlayStack.d.ts +43 -0
  35. package/src/OverlayStack.dev.js +150 -0
  36. package/src/OverlayStack.dev.js.map +7 -0
  37. package/src/OverlayStack.js +2 -0
  38. package/src/OverlayStack.js.map +7 -0
  39. package/src/OverlayTrigger.d.ts +26 -42
  40. package/src/OverlayTrigger.dev.js +172 -296
  41. package/src/OverlayTrigger.dev.js.map +3 -3
  42. package/src/OverlayTrigger.js +49 -25
  43. package/src/OverlayTrigger.js.map +3 -3
  44. package/src/PlacementController.d.ts +38 -0
  45. package/src/PlacementController.dev.js +199 -0
  46. package/src/PlacementController.dev.js.map +7 -0
  47. package/src/PlacementController.js +2 -0
  48. package/src/PlacementController.js.map +7 -0
  49. package/src/VirtualTrigger.dev.js +2 -1
  50. package/src/VirtualTrigger.dev.js.map +2 -2
  51. package/src/VirtualTrigger.js +1 -1
  52. package/src/VirtualTrigger.js.map +2 -2
  53. package/src/fullSizePlugin.d.ts +12 -0
  54. package/src/fullSizePlugin.dev.js +39 -0
  55. package/src/fullSizePlugin.dev.js.map +7 -0
  56. package/src/fullSizePlugin.js +2 -0
  57. package/src/fullSizePlugin.js.map +7 -0
  58. package/src/index.d.ts +2 -3
  59. package/src/index.dev.js +2 -3
  60. package/src/index.dev.js.map +2 -2
  61. package/src/index.js +1 -1
  62. package/src/index.js.map +2 -2
  63. package/src/loader.d.ts +1 -2
  64. package/src/loader.dev.js +2 -19
  65. package/src/loader.dev.js.map +2 -2
  66. package/src/loader.js +1 -1
  67. package/src/loader.js.map +3 -3
  68. package/src/overlay-timer.dev.js.map +2 -2
  69. package/src/overlay-timer.js.map +2 -2
  70. package/src/overlay-trigger.css.dev.js +1 -1
  71. package/src/overlay-trigger.css.dev.js.map +1 -1
  72. package/src/overlay-trigger.css.js +3 -3
  73. package/src/overlay-trigger.css.js.map +1 -1
  74. package/src/overlay-types.d.ts +25 -31
  75. package/src/overlay-types.dev.js +1 -0
  76. package/src/overlay-types.dev.js.map +3 -3
  77. package/src/overlay-types.js +1 -1
  78. package/src/overlay-types.js.map +3 -3
  79. package/src/overlay.css.dev.js +9 -0
  80. package/src/overlay.css.dev.js.map +7 -0
  81. package/src/overlay.css.js +6 -0
  82. package/src/overlay.css.js.map +7 -0
  83. package/src/topLayerOverTransforms.d.ts +2 -0
  84. package/src/topLayerOverTransforms.dev.js +91 -0
  85. package/src/topLayerOverTransforms.dev.js.map +7 -0
  86. package/src/topLayerOverTransforms.js +2 -0
  87. package/src/topLayerOverTransforms.js.map +7 -0
  88. package/stories/overlay-element.stories.js +476 -0
  89. package/stories/overlay-element.stories.js.map +7 -0
  90. package/stories/overlay-story-components.js +9 -8
  91. package/stories/overlay-story-components.js.map +2 -2
  92. package/stories/overlay.stories.js +824 -680
  93. package/stories/overlay.stories.js.map +2 -2
  94. package/sync/overlay-trigger.d.ts +5 -0
  95. package/sync/overlay-trigger.dev.js +2 -4
  96. package/sync/overlay-trigger.dev.js.map +2 -2
  97. package/sync/overlay-trigger.js +1 -1
  98. package/sync/overlay-trigger.js.map +3 -3
  99. package/test/benchmark/basic-test.js +2 -2
  100. package/test/benchmark/basic-test.js.map +1 -1
  101. package/test/index.js +414 -377
  102. package/test/index.js.map +3 -3
  103. package/test/overlay-element.test-vrt.js +5 -0
  104. package/test/overlay-element.test-vrt.js.map +7 -0
  105. package/test/overlay-element.test.js +682 -0
  106. package/test/overlay-element.test.js.map +7 -0
  107. package/test/overlay-lifecycle.test.js +36 -106
  108. package/test/overlay-lifecycle.test.js.map +2 -2
  109. package/test/overlay-trigger-click.test.js +11 -5
  110. package/test/overlay-trigger-click.test.js.map +2 -2
  111. package/test/overlay-trigger-extended.test.js +46 -36
  112. package/test/overlay-trigger-extended.test.js.map +2 -2
  113. package/test/overlay-trigger-hover-click.test.js +38 -25
  114. package/test/overlay-trigger-hover-click.test.js.map +2 -2
  115. package/test/overlay-trigger-hover.test.js +41 -35
  116. package/test/overlay-trigger-hover.test.js.map +2 -2
  117. package/test/overlay-trigger-longpress.test.js +211 -82
  118. package/test/overlay-trigger-longpress.test.js.map +2 -2
  119. package/test/overlay-trigger-sync.test.js +1 -1
  120. package/test/overlay-trigger-sync.test.js.map +2 -2
  121. package/test/overlay-trigger.test.js +1 -1
  122. package/test/overlay-trigger.test.js.map +2 -2
  123. package/test/overlay-update.test.js +5 -5
  124. package/test/overlay-update.test.js.map +2 -2
  125. package/test/overlay-v1.test.js +547 -0
  126. package/test/overlay-v1.test.js.map +7 -0
  127. package/test/overlay.test.js +385 -269
  128. package/test/overlay.test.js.map +3 -3
  129. package/active-overlay.d.ts +0 -6
  130. package/active-overlay.dev.js +0 -5
  131. package/active-overlay.js +0 -2
  132. package/src/ActiveOverlay.d.ts +0 -84
  133. package/src/ActiveOverlay.dev.js +0 -517
  134. package/src/ActiveOverlay.dev.js.map +0 -7
  135. package/src/ActiveOverlay.js +0 -16
  136. package/src/ActiveOverlay.js.map +0 -7
  137. package/src/active-overlay.css.dev.js +0 -13
  138. package/src/active-overlay.css.dev.js.map +0 -7
  139. package/src/active-overlay.css.js +0 -10
  140. package/src/active-overlay.css.js.map +0 -7
  141. package/src/overlay-stack.d.ts +0 -50
  142. package/src/overlay-stack.dev.js +0 -515
  143. package/src/overlay-stack.dev.js.map +0 -7
  144. package/src/overlay-stack.js +0 -34
  145. package/src/overlay-stack.js.map +0 -7
  146. package/src/overlay-utils.d.ts +0 -3
  147. package/src/overlay-utils.dev.js +0 -31
  148. package/src/overlay-utils.dev.js.map +0 -7
  149. package/src/overlay-utils.js +0 -2
  150. package/src/overlay-utils.js.map +0 -7
  151. package/src/overlay.d.ts +0 -59
  152. package/src/overlay.dev.js +0 -127
  153. package/src/overlay.dev.js.map +0 -7
  154. package/src/overlay.js +0 -2
  155. package/src/overlay.js.map +0 -7
  156. /package/src/{active-overlay.css.d.ts → overlay.css.d.ts} +0 -0
@@ -0,0 +1,6 @@
1
+ "use strict";import{css as a}from"@spectrum-web-components/base";const o=a`
2
+ :host{--swc-overlay-animation-distance:var(
3
+ --spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)
4
+ );display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;height:auto;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}dialog:modal{--mod-popover-filter:var(--spectrum-popover-filter)}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog::backdrop{display:none}.dialog:before{content:"";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}
5
+ `;export default o;
6
+ //# sourceMappingURL=overlay.css.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["overlay.css.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2023 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{--swc-overlay-animation-distance:var(\n--spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)\n);display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;height:auto;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}dialog:modal{--mod-popover-filter:var(--spectrum-popover-filter)}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog::backdrop{display:none}.dialog:before{content:\"\";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}\n`;\nexport default styles;"],
5
+ "mappings": "aAWA,OAAS,OAAAA,MAAW,gCACpB,MAAMC,EAASD;AAAA;AAAA;AAAA;AAAA,EAKf,eAAeC",
6
+ "names": ["css", "styles"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { Middleware } from '@floating-ui/dom';
2
+ export declare const topLayerOverTransforms: () => Middleware;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ import {
3
+ getContainingBlock,
4
+ getWindow,
5
+ isContainingBlock
6
+ } from "@floating-ui/utils/dom";
7
+ import { VirtualTrigger } from "./VirtualTrigger.dev.js";
8
+ export const topLayerOverTransforms = () => ({
9
+ name: "topLayer",
10
+ async fn(middlewareArguments) {
11
+ const {
12
+ x,
13
+ y,
14
+ elements: { reference, floating }
15
+ } = middlewareArguments;
16
+ let onTopLayer = false;
17
+ let topLayerIsFloating = false;
18
+ let withinReference = false;
19
+ const diffCoords = {
20
+ x: 0,
21
+ y: 0
22
+ };
23
+ try {
24
+ onTopLayer = onTopLayer || floating.matches(":popover-open");
25
+ } catch (error) {
26
+ }
27
+ try {
28
+ onTopLayer = onTopLayer || floating.matches(":open");
29
+ } catch (error) {
30
+ }
31
+ try {
32
+ onTopLayer = onTopLayer || floating.matches(":modal");
33
+ } catch (error) {
34
+ }
35
+ topLayerIsFloating = onTopLayer;
36
+ const dialogAncestorQueryEvent = new Event("floating-ui-dialog-test", {
37
+ composed: true,
38
+ bubbles: true
39
+ });
40
+ floating.addEventListener(
41
+ "floating-ui-dialog-test",
42
+ (event) => {
43
+ event.composedPath().forEach((el) => {
44
+ withinReference = withinReference || el === reference;
45
+ if (el === floating || el.localName !== "dialog")
46
+ return;
47
+ try {
48
+ onTopLayer = onTopLayer || el.matches(":modal");
49
+ } catch (error) {
50
+ }
51
+ });
52
+ },
53
+ { once: true }
54
+ );
55
+ floating.dispatchEvent(dialogAncestorQueryEvent);
56
+ let overTransforms = false;
57
+ if (!(reference instanceof VirtualTrigger)) {
58
+ const root = withinReference ? reference : floating;
59
+ const containingBlock = isContainingBlock(root) ? root : getContainingBlock(root);
60
+ if (containingBlock !== null && getWindow(containingBlock) !== containingBlock) {
61
+ const css = getComputedStyle(containingBlock);
62
+ overTransforms = css.transform !== "none" || css.filter ? css.filter !== "none" : false;
63
+ }
64
+ if (onTopLayer && overTransforms && containingBlock) {
65
+ const rect = containingBlock.getBoundingClientRect();
66
+ diffCoords.x = rect.x;
67
+ diffCoords.y = rect.y;
68
+ }
69
+ }
70
+ if (onTopLayer && topLayerIsFloating) {
71
+ return {
72
+ x: x + diffCoords.x,
73
+ y: y + diffCoords.y,
74
+ data: diffCoords
75
+ };
76
+ }
77
+ if (onTopLayer) {
78
+ return {
79
+ x,
80
+ y,
81
+ data: diffCoords
82
+ };
83
+ }
84
+ return {
85
+ x: x - diffCoords.x,
86
+ y: y - diffCoords.y,
87
+ data: diffCoords
88
+ };
89
+ }
90
+ });
91
+ //# sourceMappingURL=topLayerOverTransforms.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["topLayerOverTransforms.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport type { Middleware, MiddlewareState } from '@floating-ui/dom';\nimport {\n getContainingBlock,\n getWindow,\n isContainingBlock,\n} from '@floating-ui/utils/dom';\nimport { VirtualTrigger } from './VirtualTrigger.dev.js'\n\nexport const topLayerOverTransforms = (): Middleware => ({\n name: 'topLayer',\n async fn(middlewareArguments: MiddlewareState) {\n const {\n x,\n y,\n elements: { reference, floating },\n } = middlewareArguments;\n let onTopLayer = false;\n let topLayerIsFloating = false;\n let withinReference = false;\n const diffCoords = {\n x: 0,\n y: 0,\n };\n try {\n onTopLayer = onTopLayer || floating.matches(':popover-open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next 3 */\n } catch (error) {}\n topLayerIsFloating = onTopLayer;\n const dialogAncestorQueryEvent = new Event('floating-ui-dialog-test', {\n composed: true,\n bubbles: true,\n });\n floating.addEventListener(\n 'floating-ui-dialog-test',\n (event: Event) => {\n (event.composedPath() as unknown as Element[]).forEach((el) => {\n withinReference = withinReference || el === reference;\n if (el === floating || el.localName !== 'dialog') return;\n try {\n onTopLayer = onTopLayer || el.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next */\n } catch (error) {}\n });\n },\n { once: true }\n );\n floating.dispatchEvent(dialogAncestorQueryEvent);\n let overTransforms = false;\n if (!(reference instanceof VirtualTrigger)) {\n const root = (withinReference ? reference : floating) as Element;\n const containingBlock = isContainingBlock(root)\n ? root\n : getContainingBlock(root);\n if (\n containingBlock !== null &&\n getWindow(containingBlock) !==\n (containingBlock as unknown as Window)\n ) {\n const css = getComputedStyle(containingBlock);\n overTransforms =\n css.transform !== 'none' || css.filter\n ? css.filter !== 'none'\n : false;\n }\n\n if (onTopLayer && overTransforms && containingBlock) {\n const rect = containingBlock.getBoundingClientRect();\n diffCoords.x = rect.x;\n diffCoords.y = rect.y;\n }\n }\n\n if (onTopLayer && topLayerIsFloating) {\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords,\n };\n }\n\n if (onTopLayer) {\n return {\n x,\n y,\n data: diffCoords,\n };\n }\n\n return {\n x: x - diffCoords.x,\n y: y - diffCoords.y,\n data: diffCoords,\n };\n },\n});\n"],
5
+ "mappings": ";AAYA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,sBAAsB;AAExB,aAAM,yBAAyB,OAAmB;AAAA,EACrD,MAAM;AAAA,EACN,MAAM,GAAG,qBAAsC;AAC3C,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA,UAAU,EAAE,WAAW,SAAS;AAAA,IACpC,IAAI;AACJ,QAAI,aAAa;AACjB,QAAI,qBAAqB;AACzB,QAAI,kBAAkB;AACtB,UAAM,aAAa;AAAA,MACf,GAAG;AAAA,MACH,GAAG;AAAA,IACP;AACA,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,eAAe;AAAA,IAE/D,SAAS,OAAO;AAAA,IAAC;AACjB,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,OAAO;AAAA,IAEvD,SAAS,OAAO;AAAA,IAAC;AACjB,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,QAAQ;AAAA,IAGxD,SAAS,OAAO;AAAA,IAAC;AACjB,yBAAqB;AACrB,UAAM,2BAA2B,IAAI,MAAM,2BAA2B;AAAA,MAClE,UAAU;AAAA,MACV,SAAS;AAAA,IACb,CAAC;AACD,aAAS;AAAA,MACL;AAAA,MACA,CAAC,UAAiB;AACd,QAAC,MAAM,aAAa,EAA2B,QAAQ,CAAC,OAAO;AAC3D,4BAAkB,mBAAmB,OAAO;AAC5C,cAAI,OAAO,YAAY,GAAG,cAAc;AAAU;AAClD,cAAI;AACA,yBAAa,cAAc,GAAG,QAAQ,QAAQ;AAAA,UAGlD,SAAS,OAAO;AAAA,UAAC;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,MACA,EAAE,MAAM,KAAK;AAAA,IACjB;AACA,aAAS,cAAc,wBAAwB;AAC/C,QAAI,iBAAiB;AACrB,QAAI,EAAE,qBAAqB,iBAAiB;AACxC,YAAM,OAAQ,kBAAkB,YAAY;AAC5C,YAAM,kBAAkB,kBAAkB,IAAI,IACxC,OACA,mBAAmB,IAAI;AAC7B,UACI,oBAAoB,QACpB,UAAU,eAAe,MACpB,iBACP;AACE,cAAM,MAAM,iBAAiB,eAAe;AAC5C,yBACI,IAAI,cAAc,UAAU,IAAI,SAC1B,IAAI,WAAW,SACf;AAAA,MACd;AAEA,UAAI,cAAc,kBAAkB,iBAAiB;AACjD,cAAM,OAAO,gBAAgB,sBAAsB;AACnD,mBAAW,IAAI,KAAK;AACpB,mBAAW,IAAI,KAAK;AAAA,MACxB;AAAA,IACJ;AAEA,QAAI,cAAc,oBAAoB;AAClC,aAAO;AAAA,QACH,GAAG,IAAI,WAAW;AAAA,QAClB,GAAG,IAAI,WAAW;AAAA,QAClB,MAAM;AAAA,MACV;AAAA,IACJ;AAEA,QAAI,YAAY;AACZ,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,GAAG,IAAI,WAAW;AAAA,MAClB,GAAG,IAAI,WAAW;AAAA,MAClB,MAAM;AAAA,IACV;AAAA,EACJ;AACJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";import{getContainingBlock as g,getWindow as u,isContainingBlock as p}from"@floating-ui/utils/dom";import{VirtualTrigger as h}from"./VirtualTrigger.js";export const topLayerOverTransforms=()=>({name:"topLayer",async fn(m){const{x:i,y:s,elements:{reference:c,floating:r}}=m;let e=!1,f=!1,l=!1;const o={x:0,y:0};try{e=e||r.matches(":popover-open")}catch(n){}try{e=e||r.matches(":open")}catch(n){}try{e=e||r.matches(":modal")}catch(n){}f=e;const y=new Event("floating-ui-dialog-test",{composed:!0,bubbles:!0});r.addEventListener("floating-ui-dialog-test",n=>{n.composedPath().forEach(t=>{if(l=l||t===c,!(t===r||t.localName!=="dialog"))try{e=e||t.matches(":modal")}catch(a){}})},{once:!0}),r.dispatchEvent(y);let d=!1;if(!(c instanceof h)){const n=l?c:r,t=p(n)?n:g(n);if(t!==null&&u(t)!==t){const a=getComputedStyle(t);d=a.transform!=="none"||a.filter?a.filter!=="none":!1}if(e&&d&&t){const a=t.getBoundingClientRect();o.x=a.x,o.y=a.y}}return e&&f?{x:i+o.x,y:s+o.y,data:o}:e?{x:i,y:s,data:o}:{x:i-o.x,y:s-o.y,data:o}}});
2
+ //# sourceMappingURL=topLayerOverTransforms.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["topLayerOverTransforms.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport type { Middleware, MiddlewareState } from '@floating-ui/dom';\nimport {\n getContainingBlock,\n getWindow,\n isContainingBlock,\n} from '@floating-ui/utils/dom';\nimport { VirtualTrigger } from './VirtualTrigger.js';\n\nexport const topLayerOverTransforms = (): Middleware => ({\n name: 'topLayer',\n async fn(middlewareArguments: MiddlewareState) {\n const {\n x,\n y,\n elements: { reference, floating },\n } = middlewareArguments;\n let onTopLayer = false;\n let topLayerIsFloating = false;\n let withinReference = false;\n const diffCoords = {\n x: 0,\n y: 0,\n };\n try {\n onTopLayer = onTopLayer || floating.matches(':popover-open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next 3 */\n } catch (error) {}\n topLayerIsFloating = onTopLayer;\n const dialogAncestorQueryEvent = new Event('floating-ui-dialog-test', {\n composed: true,\n bubbles: true,\n });\n floating.addEventListener(\n 'floating-ui-dialog-test',\n (event: Event) => {\n (event.composedPath() as unknown as Element[]).forEach((el) => {\n withinReference = withinReference || el === reference;\n if (el === floating || el.localName !== 'dialog') return;\n try {\n onTopLayer = onTopLayer || el.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next */\n } catch (error) {}\n });\n },\n { once: true }\n );\n floating.dispatchEvent(dialogAncestorQueryEvent);\n let overTransforms = false;\n if (!(reference instanceof VirtualTrigger)) {\n const root = (withinReference ? reference : floating) as Element;\n const containingBlock = isContainingBlock(root)\n ? root\n : getContainingBlock(root);\n if (\n containingBlock !== null &&\n getWindow(containingBlock) !==\n (containingBlock as unknown as Window)\n ) {\n const css = getComputedStyle(containingBlock);\n overTransforms =\n css.transform !== 'none' || css.filter\n ? css.filter !== 'none'\n : false;\n }\n\n if (onTopLayer && overTransforms && containingBlock) {\n const rect = containingBlock.getBoundingClientRect();\n diffCoords.x = rect.x;\n diffCoords.y = rect.y;\n }\n }\n\n if (onTopLayer && topLayerIsFloating) {\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords,\n };\n }\n\n if (onTopLayer) {\n return {\n x,\n y,\n data: diffCoords,\n };\n }\n\n return {\n x: x - diffCoords.x,\n y: y - diffCoords.y,\n data: diffCoords,\n };\n },\n});\n"],
5
+ "mappings": "aAYA,OACI,sBAAAA,EACA,aAAAC,EACA,qBAAAC,MACG,yBACP,OAAS,kBAAAC,MAAsB,sBAExB,aAAM,uBAAyB,KAAmB,CACrD,KAAM,WACN,MAAM,GAAGC,EAAsC,CAC3C,KAAM,CACF,EAAAC,EACA,EAAAC,EACA,SAAU,CAAE,UAAAC,EAAW,SAAAC,CAAS,CACpC,EAAIJ,EACJ,IAAIK,EAAa,GACbC,EAAqB,GACrBC,EAAkB,GACtB,MAAMC,EAAa,CACf,EAAG,EACH,EAAG,CACP,EACA,GAAI,CACAH,EAAaA,GAAcD,EAAS,QAAQ,eAAe,CAE/D,OAASK,EAAO,CAAC,CACjB,GAAI,CACAJ,EAAaA,GAAcD,EAAS,QAAQ,OAAO,CAEvD,OAASK,EAAO,CAAC,CACjB,GAAI,CACAJ,EAAaA,GAAcD,EAAS,QAAQ,QAAQ,CAGxD,OAASK,EAAO,CAAC,CACjBH,EAAqBD,EACrB,MAAMK,EAA2B,IAAI,MAAM,0BAA2B,CAClE,SAAU,GACV,QAAS,EACb,CAAC,EACDN,EAAS,iBACL,0BACCO,GAAiB,CACbA,EAAM,aAAa,EAA2B,QAASC,GAAO,CAE3D,GADAL,EAAkBA,GAAmBK,IAAOT,EACxC,EAAAS,IAAOR,GAAYQ,EAAG,YAAc,UACxC,GAAI,CACAP,EAAaA,GAAcO,EAAG,QAAQ,QAAQ,CAGlD,OAASH,EAAO,CAAC,CACrB,CAAC,CACL,EACA,CAAE,KAAM,EAAK,CACjB,EACAL,EAAS,cAAcM,CAAwB,EAC/C,IAAIG,EAAiB,GACrB,GAAI,EAAEV,aAAqBJ,GAAiB,CACxC,MAAMe,EAAQP,EAAkBJ,EAAYC,EACtCW,EAAkBjB,EAAkBgB,CAAI,EACxCA,EACAlB,EAAmBkB,CAAI,EAC7B,GACIC,IAAoB,MACpBlB,EAAUkB,CAAe,IACpBA,EACP,CACE,MAAMC,EAAM,iBAAiBD,CAAe,EAC5CF,EACIG,EAAI,YAAc,QAAUA,EAAI,OAC1BA,EAAI,SAAW,OACf,EACd,CAEA,GAAIX,GAAcQ,GAAkBE,EAAiB,CACjD,MAAME,EAAOF,EAAgB,sBAAsB,EACnDP,EAAW,EAAIS,EAAK,EACpBT,EAAW,EAAIS,EAAK,CACxB,CACJ,CAEA,OAAIZ,GAAcC,EACP,CACH,EAAGL,EAAIO,EAAW,EAClB,EAAGN,EAAIM,EAAW,EAClB,KAAMA,CACV,EAGAH,EACO,CACH,EAAAJ,EACA,EAAAC,EACA,KAAMM,CACV,EAGG,CACH,EAAGP,EAAIO,EAAW,EAClB,EAAGN,EAAIM,EAAW,EAClB,KAAMA,CACV,CACJ,CACJ",
6
+ "names": ["getContainingBlock", "getWindow", "isContainingBlock", "VirtualTrigger", "middlewareArguments", "x", "y", "reference", "floating", "onTopLayer", "topLayerIsFloating", "withinReference", "diffCoords", "error", "dialogAncestorQueryEvent", "event", "el", "overTransforms", "root", "containingBlock", "css", "rect"]
7
+ }
@@ -0,0 +1,476 @@
1
+ "use strict";
2
+ import { html } from "@spectrum-web-components/base";
3
+ import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
4
+ import "@spectrum-web-components/overlay/sp-overlay.js";
5
+ import "@spectrum-web-components/action-button/sp-action-button.js";
6
+ import "@spectrum-web-components/action-menu/sp-action-menu.js";
7
+ import "@spectrum-web-components/action-group/sp-action-group.js";
8
+ import "@spectrum-web-components/popover/sp-popover.js";
9
+ import "@spectrum-web-components/menu/sp-menu-group.js";
10
+ import "@spectrum-web-components/menu/sp-menu-item.js";
11
+ import "@spectrum-web-components/menu/sp-menu-divider.js";
12
+ import "@spectrum-web-components/tooltip/sp-tooltip.js";
13
+ import "@spectrum-web-components/icons-workflow/icons/sp-icon-anchor-select.js";
14
+ import "@spectrum-web-components/icons-workflow/icons/sp-icon-polygon-select.js";
15
+ import "@spectrum-web-components/icons-workflow/icons/sp-icon-rect-select.js";
16
+ import { notAgain } from "../../dialog/stories/dialog-base.stories.js";
17
+ export default {
18
+ title: "Overlay Element",
19
+ component: "sp-overlay",
20
+ args: {
21
+ open: true,
22
+ delayed: false
23
+ },
24
+ argTypes: {
25
+ open: {
26
+ name: "open",
27
+ type: { name: "boolean", required: false },
28
+ description: "Whether the second accordion item is open.",
29
+ table: {
30
+ type: { summary: "boolean" },
31
+ defaultValue: { summary: false }
32
+ },
33
+ control: {
34
+ type: "boolean"
35
+ }
36
+ },
37
+ delayed: {
38
+ name: "delayed",
39
+ type: { name: "boolean", required: false },
40
+ description: "Whether the tooltips are delayed.",
41
+ table: {
42
+ type: { summary: "boolean" },
43
+ defaultValue: { summary: false }
44
+ },
45
+ control: {
46
+ type: "boolean"
47
+ }
48
+ }
49
+ }
50
+ };
51
+ const Template = ({
52
+ interaction,
53
+ open,
54
+ placement,
55
+ type
56
+ }) => html`
57
+ <sp-action-button id="trigger">Open the overlay</sp-action-button>
58
+ <sp-overlay
59
+ ?open=${open}
60
+ trigger="trigger@${interaction}"
61
+ type=${ifDefined(type)}
62
+ placement=${ifDefined(placement)}
63
+ offset="-10"
64
+ >
65
+ <sp-popover dialog>
66
+ <p>
67
+ Content goes here.
68
+ ${type === "modal" || type === "page" ? html`
69
+ Or, a link,
70
+ <sp-link
71
+ href="https://opensource.adobe.com/spectrum-web-components"
72
+ >
73
+ Spectrum Web Components
74
+ </sp-link>
75
+ .
76
+ ` : ""}
77
+ </p>
78
+ </sp-popover>
79
+ </sp-overlay>
80
+ `;
81
+ export const modal = (args) => Template(args);
82
+ modal.args = {
83
+ interaction: "click",
84
+ placement: "right",
85
+ type: "modal"
86
+ };
87
+ export const page = ({
88
+ interaction,
89
+ open,
90
+ placement,
91
+ type
92
+ }) => html`
93
+ <sp-action-button id="trigger">Open the overlay</sp-action-button>
94
+ <sp-overlay
95
+ ?open=${open}
96
+ trigger="trigger@${interaction}"
97
+ type=${ifDefined(type)}
98
+ placement=${ifDefined(placement)}
99
+ >
100
+ ${notAgain()}
101
+ </sp-overlay>
102
+ `;
103
+ page.args = {
104
+ interaction: "click",
105
+ placement: "right",
106
+ type: "page"
107
+ };
108
+ export const click = (args) => Template(args);
109
+ click.args = {
110
+ interaction: "click",
111
+ placement: "right",
112
+ type: "auto"
113
+ };
114
+ export const hover = (args) => Template(args);
115
+ hover.args = {
116
+ interaction: "hover",
117
+ placement: "right"
118
+ };
119
+ export const longpress = (args) => Template(args);
120
+ longpress.args = {
121
+ interaction: "longpress",
122
+ placement: "right",
123
+ type: "auto"
124
+ };
125
+ export const all = ({ delayed }) => html`
126
+ <sp-action-button id="trigger" hold-affordance>
127
+ Open the overlay
128
+ </sp-action-button>
129
+ <sp-overlay trigger="trigger@click" type="auto" placement="right">
130
+ <sp-popover dialog>Click content</sp-popover>
131
+ </sp-overlay>
132
+ <sp-overlay ?delayed=${delayed} trigger="trigger@hover" type="hint">
133
+ <sp-tooltip>Hover content</sp-tooltip>
134
+ </sp-overlay>
135
+ <sp-overlay trigger="trigger@longpress" type="auto" placement="right">
136
+ <sp-popover dialog>Longpress content</sp-popover>
137
+ </sp-overlay>
138
+ `;
139
+ export const actionGroup = ({ delayed }) => {
140
+ const popoverOffset = [6, -13];
141
+ return html`
142
+ <style>
143
+ sp-popover sp-action-group {
144
+ padding: calc(
145
+ var(--spectrum-actiongroup-vertical-spacing-regular) *
146
+ 0.75
147
+ )
148
+ calc(
149
+ var(--spectrum-actiongroup-vertical-spacing-regular) / 2
150
+ );
151
+ }
152
+ .root {
153
+ inset-inline-end: 0em;
154
+ inset-block-start: 3em;
155
+ padding-block-end: 3em;
156
+ }
157
+ .root > sp-action-group > sp-action-button,
158
+ .root > sp-action-group > sp-action-menu {
159
+ top: 3em;
160
+ position: relative;
161
+ }
162
+ </style>
163
+ <sp-popover open class="root">
164
+ <sp-action-group vertical quiet emphasized selects="single">
165
+ <sp-action-button id="trigger-1" hold-affordance>
166
+ <sp-icon-anchor-select slot="icon"></sp-icon-anchor-select>
167
+ </sp-action-button>
168
+ <sp-action-button id="trigger-2" hold-affordance>
169
+ <sp-icon-polygon-select
170
+ slot="icon"
171
+ ></sp-icon-polygon-select>
172
+ </sp-action-button>
173
+ <sp-action-button id="trigger-3" hold-affordance>
174
+ <sp-icon-rect-select slot="icon"></sp-icon-rect-select>
175
+ </sp-action-button>
176
+ <sp-action-menu placement="left">
177
+ <sp-menu-group id="cms">
178
+ <span slot="header">cms</span>
179
+ <sp-menu-item value="updateAllSiteContent">
180
+ Update All Content
181
+ </sp-menu-item>
182
+ <sp-menu-item value="refreshAllXDs">
183
+ Refresh All XDs
184
+ </sp-menu-item>
185
+ </sp-menu-group>
186
+ <sp-menu-group id="ssg">
187
+ <span slot="header">ssg</span>
188
+ <sp-menu-item value="clearCache">
189
+ Clear Cache
190
+ </sp-menu-item>
191
+ </sp-menu-group>
192
+ <sp-menu-group id="vrt">
193
+ <span slot="header">vrt</span>
194
+ <sp-menu-item value="vrt-contributions">
195
+ Contributions
196
+ </sp-menu-item>
197
+ <sp-menu-item value="vrt-internal">
198
+ Internal
199
+ </sp-menu-item>
200
+ <sp-menu-item value="vrt-public">Public</sp-menu-item>
201
+ <sp-menu-item value="vrt-patterns">
202
+ Patterns
203
+ </sp-menu-item>
204
+ <sp-menu-item value="vrt">All</sp-menu-item>
205
+ </sp-menu-group>
206
+ <sp-menu-divider></sp-menu-divider>
207
+ <sp-menu-group id="misc">
208
+ <sp-menu-item value="logout">Logout</sp-menu-item>
209
+ </sp-menu-group>
210
+ </sp-action-menu>
211
+ </sp-action-group>
212
+ </sp-popover>
213
+ <sp-overlay ?delayed=${delayed} trigger="trigger-1@hover" type="hint">
214
+ <sp-tooltip>Hover</sp-tooltip>
215
+ </sp-overlay>
216
+ <sp-overlay
217
+ trigger="trigger-1@longpress"
218
+ type="auto"
219
+ placement="right-start"
220
+ .offset=${popoverOffset}
221
+ >
222
+ <sp-popover tip>
223
+ <sp-action-group vertical quiet>
224
+ <sp-action-button>
225
+ <sp-icon-anchor-select
226
+ slot="icon"
227
+ ></sp-icon-anchor-select>
228
+ </sp-action-button>
229
+ <sp-action-button>
230
+ <sp-icon-polygon-select
231
+ slot="icon"
232
+ ></sp-icon-polygon-select>
233
+ </sp-action-button>
234
+ <sp-action-button>
235
+ <sp-icon-rect-select slot="icon"></sp-icon-rect-select>
236
+ </sp-action-button>
237
+ </sp-action-group>
238
+ </sp-popover>
239
+ </sp-overlay>
240
+ <sp-overlay ?delayed=${delayed} trigger="trigger-2@hover" type="hint">
241
+ <sp-tooltip>Hover</sp-tooltip>
242
+ </sp-overlay>
243
+ <sp-overlay
244
+ trigger="trigger-2@longpress"
245
+ type="auto"
246
+ placement="right-start"
247
+ .offset=${popoverOffset}
248
+ >
249
+ <sp-popover tip>
250
+ <sp-action-group vertical quiet>
251
+ <sp-action-button>
252
+ <sp-icon-anchor-select
253
+ slot="icon"
254
+ ></sp-icon-anchor-select>
255
+ </sp-action-button>
256
+ <sp-action-button>
257
+ <sp-icon-polygon-select
258
+ slot="icon"
259
+ ></sp-icon-polygon-select>
260
+ </sp-action-button>
261
+ <sp-action-button>
262
+ <sp-icon-rect-select slot="icon"></sp-icon-rect-select>
263
+ </sp-action-button>
264
+ </sp-action-group>
265
+ </sp-popover>
266
+ </sp-overlay>
267
+ <sp-overlay
268
+ ?delayed=${delayed}
269
+ trigger="trigger-3@hover"
270
+ type="hint"
271
+ open
272
+ >
273
+ <sp-tooltip>Hover</sp-tooltip>
274
+ </sp-overlay>
275
+ <sp-overlay
276
+ trigger="trigger-3@longpress"
277
+ type="auto"
278
+ placement="right-start"
279
+ .offset=${popoverOffset}
280
+ >
281
+ <sp-popover tip>
282
+ <sp-action-group vertical quiet>
283
+ <sp-action-button>
284
+ <sp-icon-anchor-select
285
+ slot="icon"
286
+ ></sp-icon-anchor-select>
287
+ </sp-action-button>
288
+ <sp-action-button>
289
+ <sp-icon-polygon-select
290
+ slot="icon"
291
+ ></sp-icon-polygon-select>
292
+ </sp-action-button>
293
+ <sp-action-button>
294
+ <sp-icon-rect-select slot="icon"></sp-icon-rect-select>
295
+ </sp-action-button>
296
+ </sp-action-group>
297
+ </sp-popover>
298
+ </sp-overlay>
299
+ `;
300
+ };
301
+ export const actionGroupWithFilters = ({
302
+ delayed
303
+ }) => {
304
+ const popoverOffset = [6, -13];
305
+ return html`
306
+ <style>
307
+ sp-popover sp-action-group {
308
+ padding: calc(
309
+ var(--spectrum-actiongroup-vertical-spacing-regular) *
310
+ 0.75
311
+ )
312
+ calc(
313
+ var(--spectrum-actiongroup-vertical-spacing-regular) / 2
314
+ );
315
+ }
316
+ .root {
317
+ inset-inline-end: 0em;
318
+ inset-block-start: 3em;
319
+ padding-block-end: 3em;
320
+ overflow: hidden;
321
+ }
322
+ .root > sp-action-group > sp-action-button,
323
+ .root > sp-action-group > sp-action-menu {
324
+ top: 3em;
325
+ position: relative;
326
+ }
327
+ sp-action-button,
328
+ sp-action-menu {
329
+ background-image: linear-gradient(
330
+ rgba(125, 125, 125, 0.2),
331
+ rgba(125, 125, 125, 0.2)
332
+ );
333
+ background-blend-mode: multiply;
334
+ filter: brightness(1) saturate(1);
335
+ }
336
+ </style>
337
+ <p>
338
+ This story outlines some CSS usage that is not yet covered by the
339
+ placement calculations within the Overlay API.
340
+ </p>
341
+ <sp-popover open class="root">
342
+ <sp-action-group vertical quiet emphasized selects="single">
343
+ <sp-action-button id="trigger-1" hold-affordance>
344
+ <sp-icon-anchor-select slot="icon"></sp-icon-anchor-select>
345
+ <sp-tooltip ?delayed=${delayed} self-managed>
346
+ Hover
347
+ </sp-tooltip>
348
+ <sp-overlay
349
+ trigger="trigger-1@longpress"
350
+ type="auto"
351
+ placement="right-start"
352
+ .offset=${popoverOffset}
353
+ >
354
+ <sp-popover tip>
355
+ <sp-action-group vertical quiet>
356
+ <sp-action-button>
357
+ <sp-icon-anchor-select
358
+ slot="icon"
359
+ ></sp-icon-anchor-select>
360
+ </sp-action-button>
361
+ <sp-action-button>
362
+ <sp-icon-polygon-select
363
+ slot="icon"
364
+ ></sp-icon-polygon-select>
365
+ </sp-action-button>
366
+ <sp-action-button>
367
+ <sp-icon-rect-select
368
+ slot="icon"
369
+ ></sp-icon-rect-select>
370
+ </sp-action-button>
371
+ </sp-action-group>
372
+ </sp-popover>
373
+ </sp-overlay>
374
+ </sp-action-button>
375
+ <sp-action-button id="trigger-2" hold-affordance>
376
+ <sp-icon-polygon-select
377
+ slot="icon"
378
+ ></sp-icon-polygon-select>
379
+ </sp-action-button>
380
+ <sp-action-button id="trigger-3" hold-affordance>
381
+ <sp-icon-rect-select slot="icon"></sp-icon-rect-select>
382
+ <sp-tooltip ?delayed=${delayed} self-managed>
383
+ Hover
384
+ </sp-tooltip>
385
+ </sp-action-button>
386
+ <sp-action-menu>
387
+ <sp-menu-group id="cms">
388
+ <span slot="header">cms</span>
389
+ <sp-menu-item value="updateAllSiteContent">
390
+ Update All Content
391
+ </sp-menu-item>
392
+ <sp-menu-item value="refreshAllXDs">
393
+ Refresh All XDs
394
+ </sp-menu-item>
395
+ </sp-menu-group>
396
+ <sp-menu-group id="ssg">
397
+ <span slot="header">ssg</span>
398
+ <sp-menu-item value="clearCache">
399
+ Clear Cache
400
+ </sp-menu-item>
401
+ </sp-menu-group>
402
+ <sp-menu-group id="vrt">
403
+ <span slot="header">vrt</span>
404
+ <sp-menu-item value="vrt-contributions">
405
+ Contributions
406
+ </sp-menu-item>
407
+ <sp-menu-item value="vrt-internal">
408
+ Internal
409
+ </sp-menu-item>
410
+ <sp-menu-item value="vrt-public">Public</sp-menu-item>
411
+ <sp-menu-item value="vrt-patterns">
412
+ Patterns
413
+ </sp-menu-item>
414
+ <sp-menu-item value="vrt">All</sp-menu-item>
415
+ </sp-menu-group>
416
+ <sp-menu-divider></sp-menu-divider>
417
+ <sp-menu-group id="misc">
418
+ <sp-menu-item value="logout">Logout</sp-menu-item>
419
+ </sp-menu-group>
420
+ </sp-action-menu>
421
+ </sp-action-group>
422
+ </sp-popover>
423
+ <sp-overlay ?delayed=${delayed} trigger="trigger-2@hover" type="hint">
424
+ <sp-tooltip>Hover</sp-tooltip>
425
+ </sp-overlay>
426
+ <sp-overlay
427
+ trigger="trigger-2@longpress"
428
+ type="auto"
429
+ placement="right-start"
430
+ .offset=${popoverOffset}
431
+ >
432
+ <sp-popover tip>
433
+ <sp-action-group vertical quiet>
434
+ <sp-action-button>
435
+ <sp-icon-anchor-select
436
+ slot="icon"
437
+ ></sp-icon-anchor-select>
438
+ </sp-action-button>
439
+ <sp-action-button>
440
+ <sp-icon-polygon-select
441
+ slot="icon"
442
+ ></sp-icon-polygon-select>
443
+ </sp-action-button>
444
+ <sp-action-button>
445
+ <sp-icon-rect-select slot="icon"></sp-icon-rect-select>
446
+ </sp-action-button>
447
+ </sp-action-group>
448
+ </sp-popover>
449
+ </sp-overlay>
450
+ <sp-overlay
451
+ trigger="trigger-3@longpress"
452
+ type="auto"
453
+ placement="right-start"
454
+ .offset=${popoverOffset}
455
+ >
456
+ <sp-popover tip>
457
+ <sp-action-group vertical quiet>
458
+ <sp-action-button>
459
+ <sp-icon-anchor-select
460
+ slot="icon"
461
+ ></sp-icon-anchor-select>
462
+ </sp-action-button>
463
+ <sp-action-button>
464
+ <sp-icon-polygon-select
465
+ slot="icon"
466
+ ></sp-icon-polygon-select>
467
+ </sp-action-button>
468
+ <sp-action-button>
469
+ <sp-icon-rect-select slot="icon"></sp-icon-rect-select>
470
+ </sp-action-button>
471
+ </sp-action-group>
472
+ </sp-popover>
473
+ </sp-overlay>
474
+ `;
475
+ };
476
+ //# sourceMappingURL=overlay-element.stories.js.map