@spectrum-web-components/overlay 0.31.1-overlay.29 → 0.31.1-react.21

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/active-overlay.d.ts +6 -0
  2. package/active-overlay.dev.js +5 -0
  3. package/{sp-overlay.dev.js.map → active-overlay.dev.js.map} +3 -3
  4. package/active-overlay.js +2 -0
  5. package/{sp-overlay.js.map → active-overlay.js.map} +4 -4
  6. package/custom-elements.json +1215 -0
  7. package/package.json +21 -50
  8. package/src/ActiveOverlay.d.ts +84 -0
  9. package/src/ActiveOverlay.dev.js +517 -0
  10. package/src/ActiveOverlay.dev.js.map +7 -0
  11. package/src/ActiveOverlay.js +16 -0
  12. package/src/ActiveOverlay.js.map +7 -0
  13. package/src/OverlayTrigger.d.ts +31 -23
  14. package/src/OverlayTrigger.dev.js +245 -135
  15. package/src/OverlayTrigger.dev.js.map +3 -3
  16. package/src/OverlayTrigger.js +22 -52
  17. package/src/OverlayTrigger.js.map +3 -3
  18. package/src/VirtualTrigger.dev.js +2 -0
  19. package/src/VirtualTrigger.dev.js.map +2 -2
  20. package/src/VirtualTrigger.js +1 -1
  21. package/src/VirtualTrigger.js.map +3 -3
  22. package/src/active-overlay.css.dev.js +13 -0
  23. package/src/active-overlay.css.dev.js.map +7 -0
  24. package/src/active-overlay.css.js +10 -0
  25. package/src/active-overlay.css.js.map +7 -0
  26. package/src/index.d.ts +3 -2
  27. package/src/index.dev.js +3 -2
  28. package/src/index.dev.js.map +2 -2
  29. package/src/index.js +1 -1
  30. package/src/index.js.map +2 -2
  31. package/src/loader.d.ts +2 -2
  32. package/src/loader.dev.js +19 -2
  33. package/src/loader.dev.js.map +2 -2
  34. package/src/loader.js +1 -1
  35. package/src/loader.js.map +3 -3
  36. package/src/overlay-stack.d.ts +50 -0
  37. package/src/overlay-stack.dev.js +514 -0
  38. package/src/overlay-stack.dev.js.map +7 -0
  39. package/src/overlay-stack.js +33 -0
  40. package/src/overlay-stack.js.map +7 -0
  41. package/src/overlay-trigger.css.dev.js +1 -1
  42. package/src/overlay-trigger.css.dev.js.map +1 -1
  43. package/src/overlay-trigger.css.js +1 -1
  44. package/src/overlay-trigger.css.js.map +1 -1
  45. package/src/overlay-types.d.ts +4 -6
  46. package/src/overlay-types.dev.js +0 -1
  47. package/src/overlay-types.dev.js.map +3 -3
  48. package/src/overlay-types.js +1 -1
  49. package/src/overlay-types.js.map +3 -3
  50. package/src/overlay-utils.d.ts +3 -0
  51. package/src/overlay-utils.dev.js +31 -0
  52. package/src/overlay-utils.dev.js.map +7 -0
  53. package/src/overlay-utils.js +2 -0
  54. package/src/overlay-utils.js.map +7 -0
  55. package/src/overlay.d.ts +59 -0
  56. package/src/overlay.dev.js +127 -0
  57. package/src/overlay.dev.js.map +7 -0
  58. package/src/overlay.js +2 -0
  59. package/src/overlay.js.map +7 -0
  60. package/stories/overlay-story-components.js +26 -24
  61. package/stories/overlay-story-components.js.map +2 -2
  62. package/stories/overlay.stories.js +730 -733
  63. package/stories/overlay.stories.js.map +2 -2
  64. package/sync/overlay-trigger.d.ts +0 -4
  65. package/sync/overlay-trigger.dev.js +4 -1
  66. package/sync/overlay-trigger.dev.js.map +2 -2
  67. package/sync/overlay-trigger.js +1 -1
  68. package/sync/overlay-trigger.js.map +3 -3
  69. package/test/benchmark/basic-test.js +1 -1
  70. package/test/benchmark/basic-test.js.map +1 -1
  71. package/test/index.js +428 -461
  72. package/test/index.js.map +3 -3
  73. package/test/overlay-lifecycle.test.js +106 -34
  74. package/test/overlay-lifecycle.test.js.map +2 -2
  75. package/test/overlay-trigger-click.test.js +5 -11
  76. package/test/overlay-trigger-click.test.js.map +2 -2
  77. package/test/overlay-trigger-extended.test.js +9 -3
  78. package/test/overlay-trigger-extended.test.js.map +2 -2
  79. package/test/overlay-trigger-hover-click.test.js +23 -23
  80. package/test/overlay-trigger-hover-click.test.js.map +2 -2
  81. package/test/overlay-trigger-hover.test.js +34 -40
  82. package/test/overlay-trigger-hover.test.js.map +2 -2
  83. package/test/overlay-trigger-longpress.test.js +80 -98
  84. package/test/overlay-trigger-longpress.test.js.map +2 -2
  85. package/test/overlay-trigger-sync.test.js +1 -1
  86. package/test/overlay-trigger-sync.test.js.map +2 -2
  87. package/test/overlay-trigger.test.js +1 -1
  88. package/test/overlay-trigger.test.js.map +2 -2
  89. package/test/overlay-update.test.js +4 -4
  90. package/test/overlay-update.test.js.map +2 -2
  91. package/test/overlay.test.js +237 -240
  92. package/test/overlay.test.js.map +3 -3
  93. package/sp-overlay.d.ts +0 -6
  94. package/sp-overlay.dev.js +0 -5
  95. package/sp-overlay.js +0 -2
  96. package/src/Overlay.d.ts +0 -28
  97. package/src/Overlay.dev.js +0 -88
  98. package/src/Overlay.dev.js.map +0 -7
  99. package/src/Overlay.js +0 -2
  100. package/src/Overlay.js.map +0 -7
  101. package/src/OverlayBase.d.ts +0 -122
  102. package/src/OverlayBase.dev.js +0 -701
  103. package/src/OverlayBase.dev.js.map +0 -7
  104. package/src/OverlayBase.js +0 -17
  105. package/src/OverlayBase.js.map +0 -7
  106. package/src/OverlayDialog.d.ts +0 -8
  107. package/src/OverlayDialog.dev.js +0 -160
  108. package/src/OverlayDialog.dev.js.map +0 -7
  109. package/src/OverlayDialog.js +0 -2
  110. package/src/OverlayDialog.js.map +0 -7
  111. package/src/OverlayNoPopover.d.ts +0 -8
  112. package/src/OverlayNoPopover.dev.js +0 -149
  113. package/src/OverlayNoPopover.dev.js.map +0 -7
  114. package/src/OverlayNoPopover.js +0 -2
  115. package/src/OverlayNoPopover.js.map +0 -7
  116. package/src/OverlayPopover.d.ts +0 -8
  117. package/src/OverlayPopover.dev.js +0 -199
  118. package/src/OverlayPopover.dev.js.map +0 -7
  119. package/src/OverlayPopover.js +0 -2
  120. package/src/OverlayPopover.js.map +0 -7
  121. package/src/OverlayStack.d.ts +0 -24
  122. package/src/OverlayStack.dev.js +0 -125
  123. package/src/OverlayStack.dev.js.map +0 -7
  124. package/src/OverlayStack.js +0 -2
  125. package/src/OverlayStack.js.map +0 -7
  126. package/src/PlacementController.d.ts +0 -36
  127. package/src/PlacementController.dev.js +0 -193
  128. package/src/PlacementController.dev.js.map +0 -7
  129. package/src/PlacementController.js +0 -2
  130. package/src/PlacementController.js.map +0 -7
  131. package/src/fullSizePlugin.d.ts +0 -12
  132. package/src/fullSizePlugin.dev.js +0 -39
  133. package/src/fullSizePlugin.dev.js.map +0 -7
  134. package/src/fullSizePlugin.js +0 -2
  135. package/src/fullSizePlugin.js.map +0 -7
  136. package/src/overlay-base.css.dev.js +0 -9
  137. package/src/overlay-base.css.dev.js.map +0 -7
  138. package/src/overlay-base.css.js +0 -6
  139. package/src/overlay-base.css.js.map +0 -7
  140. package/src/placement.d.ts +0 -21
  141. package/src/placement.dev.js +0 -111
  142. package/src/placement.dev.js.map +0 -7
  143. package/src/placement.js +0 -2
  144. package/src/placement.js.map +0 -7
  145. package/src/topLayerOverTransforms.d.ts +0 -22
  146. package/src/topLayerOverTransforms.dev.js +0 -165
  147. package/src/topLayerOverTransforms.dev.js.map +0 -7
  148. package/src/topLayerOverTransforms.js +0 -2
  149. package/src/topLayerOverTransforms.js.map +0 -7
  150. package/stories/overlay-element.stories.js +0 -247
  151. package/stories/overlay-element.stories.js.map +0 -7
  152. package/test/overlay-element.test-vrt.js +0 -5
  153. package/test/overlay-element.test-vrt.js.map +0 -7
  154. package/test/overlay-element.test.js +0 -664
  155. package/test/overlay-element.test.js.map +0 -7
  156. /package/src/{overlay-base.css.d.ts → active-overlay.css.d.ts} +0 -0
package/test/index.js CHANGED
@@ -1,19 +1,22 @@
1
1
  "use strict";
2
- import { fixture, isOnTopLayer } from "../../../test/testing-helpers.js";
2
+ import { escapeEvent, isVisible } from "../../../test/testing-helpers.js";
3
3
  import {
4
4
  aTimeout,
5
5
  elementUpdated,
6
6
  expect,
7
+ fixture,
7
8
  html,
8
9
  nextFrame,
9
10
  oneEvent,
10
11
  waitUntil
11
12
  } from "@open-wc/testing";
13
+ import {
14
+ OverlayTrigger
15
+ } from "@spectrum-web-components/overlay";
12
16
  import "@spectrum-web-components/button/sp-button.js";
13
17
  import "@spectrum-web-components/popover/sp-popover.js";
18
+ import { Popover } from "@spectrum-web-components/popover";
14
19
  import "@spectrum-web-components/theme/sp-theme.js";
15
- import { sendMouse } from "../../../test/plugins/browser.js";
16
- import { sendKeys } from "@web/test-runner-commands";
17
20
  function pressKey(code) {
18
21
  const up = new KeyboardEvent("keyup", {
19
22
  bubbles: true,
@@ -23,12 +26,23 @@ function pressKey(code) {
23
26
  });
24
27
  document.dispatchEvent(up);
25
28
  }
29
+ const pressEscape = () => {
30
+ document.dispatchEvent(escapeEvent());
31
+ };
26
32
  const pressSpace = () => pressKey("Space");
27
- export const runOverlayTriggerTests = (type) => {
28
- describe(`Overlay Trigger - ${type}`, () => {
33
+ export const runOverlayTriggerTests = () => {
34
+ describe("Overlay Trigger - sync", () => {
29
35
  describe("open/close", () => {
30
- beforeEach(async function() {
31
- this.testDiv = await fixture(
36
+ let testDiv;
37
+ let innerTrigger;
38
+ let outerTrigger;
39
+ let innerButton;
40
+ let outerButton;
41
+ let innerClickContent;
42
+ let outerClickContent;
43
+ let hoverContent;
44
+ beforeEach(async () => {
45
+ testDiv = await fixture(
32
46
  html`
33
47
  <div>
34
48
  <style>
@@ -48,12 +62,16 @@ export const runOverlayTriggerTests = (type) => {
48
62
  </sp-button>
49
63
  <sp-popover
50
64
  id="outer-popover"
51
- dialog
52
65
  slot="click-content"
53
66
  direction="bottom"
54
67
  tip
68
+ open
69
+ tabindex="0"
55
70
  >
56
- <div class="options-popover-content">
71
+ <sp-dialog
72
+ no-divider
73
+ class="options-popover-content"
74
+ >
57
75
  <overlay-trigger
58
76
  id="inner-trigger"
59
77
  placement="bottom"
@@ -66,19 +84,21 @@ export const runOverlayTriggerTests = (type) => {
66
84
  </sp-button>
67
85
  <sp-popover
68
86
  id="inner-popover"
69
- dialog
70
87
  slot="click-content"
71
88
  direction="bottom"
72
89
  tip
90
+ open
91
+ tabindex="0"
73
92
  >
74
- <div
93
+ <sp-dialog
94
+ no-divider
75
95
  class="options-popover-content"
76
96
  >
77
97
  Another Popover
78
- </div>
98
+ </sp-dialog>
79
99
  </sp-popover>
80
100
  </overlay-trigger>
81
- </div>
101
+ </sp-dialog>
82
102
  </sp-popover>
83
103
  <div
84
104
  id="hover-content"
@@ -92,505 +112,407 @@ export const runOverlayTriggerTests = (type) => {
92
112
  </div>
93
113
  `
94
114
  );
95
- this.innerTrigger = this.testDiv.querySelector(
115
+ innerTrigger = testDiv.querySelector(
96
116
  "#inner-trigger"
97
117
  );
98
- this.outerTrigger = this.testDiv.querySelector(
118
+ outerTrigger = testDiv.querySelector(
99
119
  "#trigger"
100
120
  );
101
- this.innerButton = this.testDiv.querySelector(
102
- "#inner-button"
103
- );
104
- this.outerButton = this.testDiv.querySelector(
105
- "#outer-button"
106
- );
107
- this.innerClickContent = this.testDiv.querySelector(
121
+ innerButton = testDiv.querySelector("#inner-button");
122
+ outerButton = testDiv.querySelector("#outer-button");
123
+ innerClickContent = testDiv.querySelector(
108
124
  "#inner-popover"
109
125
  );
110
- this.outerClickContent = this.testDiv.querySelector(
126
+ outerClickContent = testDiv.querySelector(
111
127
  "#outer-popover"
112
128
  );
113
- this.hoverContent = this.testDiv.querySelector(
129
+ hoverContent = testDiv.querySelector(
114
130
  "#hover-content"
115
131
  );
116
132
  });
117
- it("opens a popover", async function() {
118
- expect(
119
- await isOnTopLayer(this.outerClickContent),
120
- "popover not available at point"
121
- ).to.be.false;
122
- expect(this.outerButton).to.exist;
123
- const open = oneEvent(this.outerTrigger, "sp-opened");
124
- this.outerButton.click();
133
+ afterEach(async () => {
134
+ if (outerTrigger.open) {
135
+ const closed = oneEvent(outerTrigger, "sp-closed");
136
+ outerTrigger.open = void 0;
137
+ await closed;
138
+ }
139
+ outerTrigger.removeAttribute("type");
140
+ if (innerTrigger.open) {
141
+ const closed = oneEvent(innerTrigger, "sp-closed");
142
+ innerTrigger.open = void 0;
143
+ await closed;
144
+ }
145
+ innerTrigger.removeAttribute("type");
146
+ });
147
+ it("loads", async () => {
148
+ if (!(outerClickContent instanceof Popover))
149
+ throw new Error("popover is not an instance of Popover");
150
+ expect(outerClickContent).to.exist;
151
+ expect(outerClickContent.shadowRoot).to.exist;
152
+ expect(outerClickContent.parentElement).to.be.an.instanceOf(
153
+ OverlayTrigger
154
+ );
155
+ });
156
+ it("opens a popover", async () => {
157
+ expect(isVisible(outerClickContent)).to.be.false;
158
+ expect(outerButton).to.exist;
159
+ const open = oneEvent(outerTrigger, "sp-opened");
160
+ outerButton.click();
125
161
  await open;
126
- expect(
127
- await isOnTopLayer(this.outerClickContent),
128
- "popover available at point"
129
- ).to.be.true;
162
+ expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
163
+ OverlayTrigger
164
+ );
165
+ expect(isVisible(outerClickContent)).to.be.true;
130
166
  });
131
- it("[disabled] closes a popover", async function() {
132
- expect(
133
- await isOnTopLayer(this.outerClickContent),
134
- "popover not available at point"
135
- ).to.be.false;
136
- expect(this.outerTrigger.disabled).to.be.false;
137
- expect(this.outerButton).to.exist;
138
- const opened = oneEvent(this.outerButton, "sp-opened");
139
- this.outerButton.click();
167
+ it("[disabled] closes a popover", async () => {
168
+ expect(isVisible(outerClickContent)).to.be.false;
169
+ expect(outerTrigger.disabled).to.be.false;
170
+ expect(outerButton).to.exist;
171
+ const opened = oneEvent(outerButton, "sp-opened");
172
+ outerButton.click();
140
173
  await opened;
141
- expect(
142
- await isOnTopLayer(this.outerClickContent),
143
- "popover available at point"
144
- ).to.be.true;
145
- const closed = oneEvent(this.outerButton, "sp-closed");
146
- this.outerTrigger.disabled = true;
174
+ expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
175
+ OverlayTrigger
176
+ );
177
+ expect(isVisible(outerClickContent)).to.be.true;
178
+ const closed = oneEvent(outerButton, "sp-closed");
179
+ outerTrigger.disabled = true;
147
180
  await closed;
148
- expect(
149
- await isOnTopLayer(this.outerClickContent),
150
- "popover not available at point"
151
- ).to.be.false;
181
+ expect(isVisible(outerClickContent)).to.be.false;
182
+ expect(outerTrigger.disabled).to.be.true;
152
183
  });
153
- it("resizes a popover", async function() {
154
- expect(
155
- await isOnTopLayer(this.outerClickContent),
156
- "popover not available at point"
157
- ).to.be.false;
158
- expect(this.outerButton).to.exist;
159
- const open = oneEvent(this.outerTrigger, "sp-opened");
160
- this.outerButton.click();
184
+ it("resizes a popover", async () => {
185
+ expect(isVisible(outerClickContent)).to.be.false;
186
+ expect(outerButton).to.exist;
187
+ const open = oneEvent(outerTrigger, "sp-opened");
188
+ outerButton.click();
161
189
  await open;
162
- expect(
163
- await isOnTopLayer(this.outerClickContent),
164
- "popover available at point"
165
- ).to.be.true;
190
+ expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
191
+ OverlayTrigger
192
+ );
193
+ expect(isVisible(outerClickContent)).to.be.true;
166
194
  window.dispatchEvent(new Event("resize"));
167
195
  window.dispatchEvent(new Event("resize"));
168
- expect(
169
- await isOnTopLayer(this.outerClickContent),
170
- "popover available at point"
171
- ).to.be.true;
196
+ expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
197
+ OverlayTrigger
198
+ );
199
+ expect(isVisible(outerClickContent)).to.be.true;
172
200
  });
173
- ["modal", "replace", "inline"].map((type2) => {
174
- it(`opens a popover - [type="${type2}"]`, async function() {
175
- this.outerTrigger.type = type2;
176
- await elementUpdated(this.outerTrigger);
177
- expect(
178
- await isOnTopLayer(this.outerClickContent),
179
- "popover not available at point"
180
- ).to.be.false;
181
- expect(this.outerButton).to.exist;
182
- const opened = oneEvent(this.outerTrigger, "sp-opened");
183
- this.outerButton.click();
201
+ ["modal", "replace", "inline"].map((type) => {
202
+ it(`opens a popover - [type="${type}"]`, async () => {
203
+ outerTrigger.type = type;
204
+ await elementUpdated(outerTrigger);
205
+ expect(isVisible(outerClickContent)).to.be.false;
206
+ expect(outerButton).to.exist;
207
+ const opened = oneEvent(outerTrigger, "sp-opened");
208
+ outerButton.click();
184
209
  await opened;
185
210
  expect(
186
- await isOnTopLayer(this.outerClickContent),
187
- "popover available at point"
188
- ).to.be.true;
211
+ outerClickContent.parentElement
212
+ ).to.not.be.an.instanceOf(OverlayTrigger);
213
+ expect(isVisible(outerClickContent)).to.be.true;
189
214
  });
190
215
  });
191
- it("does not open a hover popover when a click popover is open", async function() {
216
+ it("does not open a hover popover when a click popover is open", async () => {
192
217
  expect(
193
- await isOnTopLayer(this.outerClickContent),
194
- "popover not available at point"
218
+ isVisible(outerClickContent),
219
+ "outer popover not visible"
195
220
  ).to.be.false;
196
- expect(
197
- await isOnTopLayer(this.hoverContent),
198
- "hover not available at point"
199
- ).to.be.false;
200
- expect(this.outerButton).to.exist;
201
- const open = oneEvent(this.outerTrigger, "sp-opened");
202
- this.outerButton.click();
221
+ expect(isVisible(hoverContent), "hover popover not visible").to.be.false;
222
+ expect(outerButton).to.exist;
223
+ const open = oneEvent(outerTrigger, "sp-opened");
224
+ outerButton.click();
203
225
  await open;
226
+ expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
227
+ OverlayTrigger
228
+ );
229
+ expect(isVisible(outerClickContent), "outer popover visible").to.be.true;
204
230
  expect(
205
- await isOnTopLayer(this.outerClickContent),
206
- "popover available at point"
207
- ).to.be.true;
208
- expect(
209
- await isOnTopLayer(this.hoverContent),
210
- "hover not available at point"
231
+ isVisible(hoverContent),
232
+ "hover popover still not visible"
211
233
  ).to.be.false;
212
- this.outerButton.dispatchEvent(
234
+ outerButton.dispatchEvent(
213
235
  new Event("mouseenter", {
214
236
  bubbles: true,
215
237
  composed: true
216
238
  })
217
239
  );
218
240
  await nextFrame();
241
+ expect(hoverContent.parentElement).to.be.instanceOf(
242
+ OverlayTrigger
243
+ );
219
244
  expect(
220
- await isOnTopLayer(this.outerClickContent),
221
- "popover available at point"
245
+ isVisible(outerClickContent),
246
+ "outer popover visible again"
222
247
  ).to.be.true;
223
248
  expect(
224
- await isOnTopLayer(this.hoverContent),
225
- "hover not available at point"
249
+ isVisible(hoverContent),
250
+ "hover popover not visible again"
226
251
  ).to.be.false;
227
252
  });
228
- it("does not open a popover when [disabled]", async function() {
229
- const triggerZone = this.outerTrigger.shadowRoot.querySelector(
253
+ it("does not open a popover when [disabled]", async () => {
254
+ var _a, _b, _c, _d, _e, _f;
255
+ const root = outerTrigger.shadowRoot ? outerTrigger.shadowRoot : outerTrigger;
256
+ const triggerZone = root.querySelector(
230
257
  "#trigger"
231
258
  );
232
- expect(this.outerTrigger.disabled).to.be.false;
233
- let open = oneEvent(this.outerTrigger, "sp-opened");
234
- this.outerButton.click();
259
+ expect(outerTrigger.disabled).to.be.false;
260
+ let open = oneEvent(outerTrigger, "sp-opened");
261
+ outerButton.click();
235
262
  await open;
236
- expect(
237
- await isOnTopLayer(this.outerClickContent),
238
- "hover available at point"
239
- ).to.be.true;
240
- let closed = oneEvent(this.outerTrigger, "sp-closed");
241
- sendMouse({
242
- steps: [
243
- {
244
- type: "click",
245
- position: [1, 1]
246
- }
247
- ]
248
- });
263
+ expect((_a = outerClickContent.parentElement) == null ? void 0 : _a.localName).to.equal(
264
+ "active-overlay"
265
+ );
266
+ let closed = oneEvent(outerTrigger, "sp-closed");
267
+ document.body.click();
249
268
  await closed;
250
- expect(
251
- await isOnTopLayer(this.outerClickContent),
252
- "hover not available at point"
253
- ).to.be.false;
254
- this.outerTrigger.disabled = true;
255
- await elementUpdated(this.outerTrigger);
256
- expect(this.outerTrigger.disabled).to.be.true;
257
- expect(this.outerTrigger.hasAttribute("disabled")).to.be.true;
258
- this.outerButton.click();
259
- await aTimeout(150);
260
- expect(
261
- await isOnTopLayer(this.outerClickContent),
262
- "hover not available at point"
263
- ).to.be.false;
269
+ expect((_b = outerClickContent.parentElement) == null ? void 0 : _b.localName).to.equal(
270
+ "overlay-trigger"
271
+ );
272
+ outerTrigger.disabled = true;
273
+ await elementUpdated(outerTrigger);
274
+ expect(outerTrigger.disabled).to.be.true;
275
+ expect(outerTrigger.hasAttribute("disabled")).to.be.true;
276
+ outerButton.click();
277
+ await aTimeout(200);
278
+ expect((_c = outerClickContent.parentElement) == null ? void 0 : _c.localName).to.equal(
279
+ "overlay-trigger"
280
+ );
264
281
  triggerZone.dispatchEvent(new Event("mouseenter"));
265
- await aTimeout(150);
266
- expect(
267
- await isOnTopLayer(this.outerClickContent),
268
- "hover not available at point"
269
- ).to.be.false;
270
- this.outerTrigger.disabled = false;
271
- await elementUpdated(this.outerTrigger);
272
- expect(this.outerTrigger.disabled).to.be.false;
273
- expect(this.outerTrigger.hasAttribute("disabled")).to.be.false;
274
- open = oneEvent(this.outerTrigger, "sp-opened");
275
- this.outerButton.click();
282
+ await aTimeout(200);
283
+ expect((_d = outerClickContent.parentElement) == null ? void 0 : _d.localName).to.equal(
284
+ "overlay-trigger"
285
+ );
286
+ outerTrigger.disabled = false;
287
+ await elementUpdated(outerTrigger);
288
+ expect(outerTrigger.disabled).to.be.false;
289
+ expect(outerTrigger.hasAttribute("disabled")).to.be.false;
290
+ open = oneEvent(outerTrigger, "sp-opened");
291
+ outerButton.click();
276
292
  await open;
277
- expect(
278
- await isOnTopLayer(this.outerClickContent),
279
- "hover available at point"
280
- ).to.be.true;
281
- closed = oneEvent(this.outerTrigger, "sp-closed");
282
- this.outerButton.click();
293
+ expect((_e = outerClickContent.parentElement) == null ? void 0 : _e.localName).to.equal(
294
+ "active-overlay"
295
+ );
296
+ closed = oneEvent(outerTrigger, "sp-closed");
297
+ outerButton.click();
283
298
  await closed;
284
- expect(
285
- await isOnTopLayer(this.outerClickContent),
286
- "hover not available at point"
287
- ).to.be.false;
299
+ expect((_f = outerClickContent.parentElement) == null ? void 0 : _f.localName).to.equal(
300
+ "overlay-trigger"
301
+ );
288
302
  });
289
- it("opens a nested popover", async function() {
290
- expect(
291
- await isOnTopLayer(this.outerClickContent),
292
- "hover not available at point"
293
- ).to.be.false;
294
- expect(
295
- await isOnTopLayer(this.innerClickContent),
296
- "hover not available at point"
297
- ).to.be.false;
298
- expect(this.outerButton).to.exist;
299
- let open = oneEvent(this.outerTrigger, "sp-opened");
300
- this.outerButton.click();
303
+ it("opens a nested popover", async () => {
304
+ expect(isVisible(outerClickContent)).to.be.false;
305
+ expect(isVisible(innerClickContent)).to.be.false;
306
+ expect(outerButton).to.exist;
307
+ let open = oneEvent(outerTrigger, "sp-opened");
308
+ outerButton.click();
301
309
  await open;
302
- expect(
303
- await isOnTopLayer(this.outerClickContent),
304
- "outer click content available at point"
305
- ).to.be.true;
306
- expect(await isOnTopLayer(this.innerClickContent)).to.be.false;
307
- open = oneEvent(this.innerTrigger, "sp-opened");
308
- this.innerButton.click();
310
+ expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
311
+ OverlayTrigger
312
+ );
313
+ expect(isVisible(outerClickContent)).to.be.true;
314
+ expect(isVisible(innerClickContent)).to.be.false;
315
+ open = oneEvent(innerTrigger, "sp-opened");
316
+ innerButton.click();
309
317
  await open;
310
- expect(
311
- await isOnTopLayer(this.outerClickContent),
312
- "outer click content available at point"
313
- ).to.be.true;
314
- expect(
315
- await isOnTopLayer(this.innerClickContent),
316
- "inner click content available at point"
317
- ).to.be.true;
318
+ expect(innerClickContent.parentElement).to.not.be.instanceOf(
319
+ OverlayTrigger
320
+ );
321
+ expect(isVisible(outerClickContent)).to.be.true;
322
+ expect(isVisible(innerClickContent)).to.be.true;
318
323
  });
319
- it('focus previous "modal" when closing nested "modal"', async function() {
320
- this.outerTrigger.type = "modal";
321
- this.innerTrigger.type = "modal";
324
+ it('focus previous "modal" when closing nested "modal"', async () => {
325
+ outerTrigger.type = "modal";
326
+ innerTrigger.type = "modal";
322
327
  expect(
323
- await isOnTopLayer(this.outerClickContent),
324
- "outer click content not available at point"
328
+ isVisible(outerClickContent),
329
+ "outer popover starts closed"
325
330
  ).to.be.false;
326
331
  expect(
327
- await isOnTopLayer(this.innerClickContent),
328
- "inner click content not available at point"
332
+ isVisible(innerClickContent),
333
+ "inner popover starts closed"
329
334
  ).to.be.false;
330
- const outerOpen = oneEvent(this.outerButton, "sp-opened");
331
- this.outerButton.click();
335
+ expect(outerButton).to.exist;
336
+ const outerOpen = oneEvent(outerButton, "sp-opened");
337
+ outerButton.click();
332
338
  await outerOpen;
339
+ expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
340
+ OverlayTrigger
341
+ );
342
+ expect(isVisible(outerClickContent), "outer popover opens").to.be.true;
333
343
  expect(
334
- await isOnTopLayer(this.outerClickContent),
335
- "outer click content available at point"
336
- ).to.be.true;
337
- expect(
338
- await isOnTopLayer(this.innerClickContent),
339
- "inner click content available at point"
344
+ isVisible(innerClickContent),
345
+ "inner popover stays closed"
340
346
  ).to.be.false;
341
- const innerOpen = oneEvent(this.innerButton, "sp-opened");
342
- this.innerButton.click();
347
+ const innerOpen = oneEvent(innerButton, "sp-opened");
348
+ innerButton.click();
343
349
  await innerOpen;
344
- expect(
345
- await isOnTopLayer(this.outerClickContent),
346
- "outer click content available at point"
347
- ).to.be.true;
348
- expect(
349
- await isOnTopLayer(this.innerClickContent),
350
- "inner click content available at point"
351
- ).to.be.true;
352
- const innerClose = oneEvent(this.innerButton, "sp-closed");
353
- await sendKeys({
354
- press: "Escape"
355
- });
350
+ expect(innerClickContent.parentElement).to.not.be.instanceOf(
351
+ OverlayTrigger
352
+ );
353
+ expect(isVisible(outerClickContent), "outer popover stays open").to.be.true;
354
+ expect(isVisible(innerClickContent), "inner popover opens").to.be.true;
355
+ const innerClose = oneEvent(innerButton, "sp-closed");
356
+ pressEscape();
356
357
  await innerClose;
358
+ expect(innerClickContent.parentElement).to.be.instanceOf(
359
+ OverlayTrigger
360
+ );
357
361
  expect(
358
- await isOnTopLayer(this.outerClickContent),
359
- "outer click content available at point"
360
- ).to.be.true;
361
- expect(
362
- await isOnTopLayer(this.innerClickContent),
363
- "inner click content not available at point"
364
- ).to.be.false;
365
- expect(
366
- document.activeElement === this.innerButton,
362
+ document.activeElement === innerButton,
367
363
  "outer popover recieved focus"
368
364
  ).to.be.true;
369
365
  });
370
- it("escape closes an open popover", async function() {
371
- this.outerTrigger.type = "modal";
372
- this.innerTrigger.type = "modal";
373
- const outerOpen = oneEvent(this.outerButton, "sp-opened");
374
- this.outerButton.click();
366
+ it("escape closes an open popover", async () => {
367
+ outerTrigger.type = "modal";
368
+ innerTrigger.type = "modal";
369
+ const outerOpen = oneEvent(outerButton, "sp-opened");
370
+ outerButton.click();
375
371
  await outerOpen;
376
372
  expect(
377
- await isOnTopLayer(this.outerClickContent),
378
- "outer click content available at point"
379
- ).to.be.true;
380
- const innerOpen = oneEvent(this.innerButton, "sp-opened");
381
- this.innerButton.click();
373
+ outerClickContent.parentElement instanceof OverlayTrigger,
374
+ "outer content stolen and reparented"
375
+ ).to.be.false;
376
+ const innerOpen = oneEvent(innerButton, "sp-opened");
377
+ innerButton.click();
382
378
  await innerOpen;
383
379
  expect(
384
- await isOnTopLayer(this.outerClickContent),
385
- "outer click content available at point"
386
- ).to.be.true;
387
- expect(
388
- await isOnTopLayer(this.innerClickContent),
389
- "inner click content available at point"
390
- ).to.be.true;
380
+ innerClickContent.parentElement instanceof OverlayTrigger,
381
+ "inner content stolen and reparented"
382
+ ).to.be.false;
383
+ expect(isVisible(outerClickContent)).to.be.true;
384
+ expect(isVisible(innerClickContent)).to.be.true;
391
385
  pressSpace();
392
- expect(
393
- await isOnTopLayer(this.outerClickContent),
394
- "outer click content available at point"
395
- ).to.be.true;
396
- expect(
397
- await isOnTopLayer(this.innerClickContent),
398
- "inner click content available at point"
399
- ).to.be.true;
400
- const innerClose = oneEvent(this.innerButton, "sp-closed");
401
- await sendKeys({
402
- press: "Escape"
403
- });
386
+ expect(isVisible(outerClickContent)).to.be.true;
387
+ expect(isVisible(innerClickContent)).to.be.true;
388
+ const innerClose = oneEvent(innerButton, "sp-closed");
389
+ pressEscape();
404
390
  await innerClose;
405
391
  expect(
406
- await isOnTopLayer(this.outerClickContent),
407
- "outer click content available at point"
392
+ innerClickContent.parentElement instanceof OverlayTrigger,
393
+ "inner content returned"
408
394
  ).to.be.true;
409
- expect(
410
- await isOnTopLayer(this.innerClickContent),
411
- "inner click content not available at point"
412
- ).to.be.false;
413
- const outerClose = oneEvent(this.outerButton, "sp-closed");
414
- await sendKeys({
415
- press: "Escape"
416
- });
395
+ expect(isVisible(outerClickContent)).to.be.true;
396
+ expect(isVisible(innerClickContent)).to.be.false;
397
+ const outerClose = oneEvent(outerButton, "sp-closed");
398
+ pressEscape();
417
399
  await outerClose;
418
400
  expect(
419
- await isOnTopLayer(this.outerClickContent),
420
- "outer click content not available at point"
421
- ).to.be.false;
422
- expect(
423
- await isOnTopLayer(this.innerClickContent),
424
- "inner click content not available at point"
425
- ).to.be.false;
401
+ outerClickContent.parentElement instanceof OverlayTrigger,
402
+ "outer content returned"
403
+ ).to.be.true;
404
+ expect(isVisible(outerClickContent)).to.be.false;
405
+ expect(isVisible(innerClickContent)).to.be.false;
426
406
  });
427
- it("click closes an open popover", async function() {
428
- this.outerTrigger.type = "modal";
429
- this.innerTrigger.type = "modal";
430
- const outerOpen = oneEvent(this.outerButton, "sp-opened");
431
- this.outerButton.click();
407
+ it("click closes an open popover", async () => {
408
+ outerTrigger.type = "modal";
409
+ innerTrigger.type = "modal";
410
+ const outerOpen = oneEvent(outerButton, "sp-opened");
411
+ outerButton.click();
432
412
  await outerOpen;
433
413
  expect(
434
- await isOnTopLayer(this.outerClickContent),
435
- "outer click content is available at point"
436
- ).to.be.true;
437
- const innerOpen = oneEvent(this.innerButton, "sp-opened");
438
- this.innerButton.click();
414
+ outerClickContent.parentElement instanceof OverlayTrigger,
415
+ "outer content stolen and reparented"
416
+ ).to.be.false;
417
+ const innerOpen = oneEvent(innerButton, "sp-opened");
418
+ innerButton.click();
439
419
  await innerOpen;
440
420
  expect(
441
- await isOnTopLayer(this.outerClickContent),
442
- "outer click content is available at point"
443
- ).to.be.true;
444
- expect(
445
- await isOnTopLayer(this.innerClickContent),
446
- "inner click content is available at point"
447
- ).to.be.true;
448
- this.innerClickContent.click();
421
+ innerClickContent.parentElement instanceof OverlayTrigger,
422
+ "inner content stolen and reparented"
423
+ ).to.be.false;
424
+ expect(isVisible(outerClickContent)).to.be.true;
425
+ expect(isVisible(innerClickContent)).to.be.true;
426
+ innerClickContent.click();
449
427
  await aTimeout(200);
450
- expect(
451
- await isOnTopLayer(this.outerClickContent),
452
- "outer click content is available at point"
453
- ).to.be.true;
454
- expect(
455
- await isOnTopLayer(this.innerClickContent),
456
- "inner click content is available at point"
457
- ).to.be.true;
458
- const innerClose = oneEvent(this.innerButton, "sp-closed");
459
- sendMouse({
460
- steps: [
461
- {
462
- type: "click",
463
- position: [1, 1]
464
- }
465
- ]
466
- });
428
+ expect(isVisible(outerClickContent)).to.be.true;
429
+ expect(isVisible(innerClickContent)).to.be.true;
430
+ const innerClose = oneEvent(innerButton, "sp-closed");
431
+ document.body.click();
467
432
  await innerClose;
468
433
  expect(
469
- await isOnTopLayer(this.outerClickContent),
470
- "outer click content is available at point"
434
+ innerClickContent.parentElement instanceof OverlayTrigger,
435
+ "inner content returned"
471
436
  ).to.be.true;
472
- expect(
473
- await isOnTopLayer(this.innerClickContent),
474
- "inner click content is not available at point"
475
- ).to.be.false;
476
- const outerClose = oneEvent(this.outerButton, "sp-closed");
477
- sendMouse({
478
- steps: [
479
- {
480
- type: "click",
481
- position: [1, 1]
482
- }
483
- ]
484
- });
437
+ expect(isVisible(outerClickContent)).to.be.true;
438
+ expect(isVisible(innerClickContent)).to.be.false;
439
+ const outerClose = oneEvent(outerButton, "sp-closed");
440
+ document.body.click();
485
441
  await outerClose;
486
442
  expect(
487
- await isOnTopLayer(this.outerClickContent),
488
- "outer click content is not available at point"
489
- ).to.be.not;
490
- expect(
491
- await isOnTopLayer(this.innerClickContent),
492
- "inner click content is not available at point"
493
- ).to.be.not;
443
+ outerClickContent.parentElement instanceof OverlayTrigger,
444
+ "outer content returned"
445
+ ).to.be.true;
446
+ expect(isVisible(outerClickContent)).to.be.false;
447
+ expect(isVisible(innerClickContent)).to.be.false;
494
448
  });
495
- it("opens a hover popover", async function() {
496
- expect(await isOnTopLayer(this.hoverContent)).to.be.false;
497
- const rect = this.outerTrigger.getBoundingClientRect();
498
- const open = oneEvent(this.outerTrigger, "sp-opened");
499
- sendMouse({
500
- steps: [
501
- {
502
- type: "move",
503
- position: [
504
- rect.left + rect.width / 2,
505
- rect.top + rect.height / 2
506
- ]
507
- }
508
- ]
509
- });
449
+ it("opens a hover popover", async () => {
450
+ const root = outerTrigger.shadowRoot ? outerTrigger.shadowRoot : outerTrigger;
451
+ const triggerZone = root.querySelector(
452
+ "#trigger"
453
+ );
454
+ expect(triggerZone).to.exist;
455
+ if (!triggerZone)
456
+ return;
457
+ expect(outerButton).to.exist;
458
+ expect(hoverContent).to.exist;
459
+ expect(isVisible(hoverContent)).to.be.false;
460
+ const open = oneEvent(outerTrigger, "sp-opened");
461
+ const mouseEnter = new MouseEvent("mouseenter");
462
+ triggerZone.dispatchEvent(mouseEnter);
510
463
  await open;
511
- expect(
512
- await isOnTopLayer(this.hoverContent),
513
- "hover content is available at point"
514
- ).to.be.true;
515
- const close = oneEvent(this.outerTrigger, "sp-closed");
516
- sendMouse({
517
- steps: [
518
- {
519
- type: "move",
520
- position: [
521
- rect.left + rect.width * 2,
522
- rect.top + rect.height / 2
523
- ]
524
- }
525
- ]
526
- });
464
+ expect(hoverContent.parentElement).to.not.be.instanceOf(
465
+ OverlayTrigger
466
+ );
467
+ expect(isVisible(hoverContent)).to.be.true;
468
+ const close = oneEvent(outerTrigger, "sp-closed");
469
+ const mouseLeave = new MouseEvent("mouseleave");
470
+ triggerZone.dispatchEvent(mouseLeave);
527
471
  await close;
528
- expect(
529
- await isOnTopLayer(this.hoverContent),
530
- "hover content is not available at point"
531
- ).to.be.false;
472
+ expect(hoverContent.parentElement).to.be.instanceOf(
473
+ OverlayTrigger
474
+ );
475
+ expect(isVisible(hoverContent)).to.be.false;
532
476
  });
533
- it("closes a hover popover", async function() {
534
- expect(await isOnTopLayer(this.hoverContent)).to.be.false;
535
- const rect = this.outerTrigger.getBoundingClientRect();
536
- const close = oneEvent(this.outerTrigger, "sp-closed");
537
- await sendMouse({
538
- steps: [
539
- {
540
- type: "move",
541
- position: [
542
- rect.left + rect.width / 2,
543
- rect.top + rect.height / 2
544
- ]
545
- }
546
- ]
547
- });
548
- await nextFrame();
549
- await nextFrame();
550
- await nextFrame();
551
- await nextFrame();
552
- await sendMouse({
553
- steps: [
554
- {
555
- type: "move",
556
- position: [
557
- rect.left + rect.width * 2,
558
- rect.top + rect.height / 2
559
- ]
560
- }
561
- ]
562
- });
563
- await close;
564
- expect(
565
- await isOnTopLayer(this.hoverContent),
566
- "hover content is not available at point"
477
+ it("closes a hover popover", async () => {
478
+ const root = outerTrigger.shadowRoot ? outerTrigger.shadowRoot : outerTrigger;
479
+ const triggerZone = root.querySelector(
480
+ "#trigger"
481
+ );
482
+ expect(triggerZone).to.exist;
483
+ if (!triggerZone)
484
+ return;
485
+ expect(outerButton).to.exist;
486
+ expect(hoverContent).to.exist;
487
+ expect(
488
+ isVisible(hoverContent),
489
+ "hoverContent should not be visible"
567
490
  ).to.be.false;
491
+ const mouseEnter = new MouseEvent("mouseenter");
492
+ const mouseLeave = new MouseEvent("mouseleave");
493
+ triggerZone.dispatchEvent(mouseEnter);
494
+ await nextFrame();
495
+ triggerZone.dispatchEvent(mouseLeave);
496
+ await waitUntil(
497
+ () => isVisible(hoverContent) === false,
498
+ "hoverContent should still not be visible"
499
+ );
568
500
  });
569
- it("dispatches events on open/close", async function() {
570
- const opened = oneEvent(this.outerButton, "sp-opened");
571
- this.outerButton.click();
501
+ it("dispatches events on open/close", async () => {
502
+ const opened = oneEvent(outerButton, "sp-opened");
503
+ outerButton.click();
572
504
  const openedEvent = await opened;
573
- expect(
574
- await isOnTopLayer(this.outerClickContent),
575
- "hover content is available at point"
576
- ).to.be.true;
577
- expect(this.outerTrigger.open).to.equal("click");
578
- expect(openedEvent.detail.interaction).to.equal("auto");
579
- const closed = oneEvent(this.outerButton, "sp-closed");
580
- sendMouse({
581
- steps: [
582
- {
583
- type: "click",
584
- position: [1, 1]
585
- }
586
- ]
587
- });
505
+ expect(isVisible(outerClickContent)).to.be.true;
506
+ expect(outerTrigger.open).to.equal("click");
507
+ expect(openedEvent.detail.interaction).to.equal("click");
508
+ const closed = oneEvent(outerButton, "sp-closed");
509
+ document.body.click();
588
510
  const closedEvent = await closed;
589
- expect(closedEvent.detail.interaction).to.equal("auto");
590
- expect(
591
- await isOnTopLayer(this.outerClickContent),
592
- "hover content is not available at point"
593
- ).to.be.false;
511
+ expect(outerClickContent.parentElement).to.be.instanceOf(
512
+ OverlayTrigger
513
+ );
514
+ expect(closedEvent.detail.interaction).to.equal("click");
515
+ expect(isVisible(outerClickContent)).to.be.false;
594
516
  });
595
517
  });
596
518
  describe("System interactions", () => {
@@ -606,46 +528,98 @@ export const runOverlayTriggerTests = (type) => {
606
528
  });
607
529
  await Promise.all(closes);
608
530
  });
609
- it.skip('manages multiple layers of `type="modal"', async () => {
531
+ it("acquires a `color` and `size` from `sp-theme`", async () => {
532
+ const el = await fixture(html`
533
+ <sp-theme color="dark">
534
+ <sp-theme color="light">
535
+ <overlay-trigger id="trigger" placement="top">
536
+ <sp-button
537
+ id="outer-button"
538
+ variant="primary"
539
+ slot="trigger"
540
+ >
541
+ Show Popover
542
+ </sp-button>
543
+ <sp-popover
544
+ id="outer-popover"
545
+ dialog
546
+ slot="click-content"
547
+ direction="bottom"
548
+ tip
549
+ open
550
+ >
551
+ Popover content!
552
+ </sp-popover>
553
+ </overlay-trigger>
554
+ </sp-theme>
555
+ </sp-theme>
556
+ `);
557
+ await elementUpdated(el);
558
+ expect(document.querySelector("active-overlay")).to.be.null;
559
+ const button = el.querySelector("sp-button");
560
+ const opened = oneEvent(button, "sp-opened");
561
+ button.click();
562
+ await opened;
563
+ await elementUpdated(el);
564
+ const overlay = document.querySelector(
565
+ "active-overlay"
566
+ );
567
+ expect(overlay).to.exist;
568
+ expect(overlay.theme.color).to.not.equal("dark");
569
+ expect(overlay.theme.color).to.equal("light");
570
+ });
571
+ it('manages multiple layers of `type="modal"', async () => {
610
572
  var _a, _b, _c;
611
573
  const el = await fixture(html`
612
574
  <overlay-trigger type="modal" placement="none">
613
575
  <sp-button slot="trigger" variant="accent">
614
576
  Toggle Dialog
615
577
  </sp-button>
616
- <sp-popover dialog slot="click-content">
617
- <overlay-trigger>
618
- <sp-button slot="trigger" variant="primary">
619
- Toggle Dialog
620
- </sp-button>
621
- <sp-popover dialog slot="click-content">
622
- <overlay-trigger type="modal">
623
- <sp-button
624
- slot="trigger"
625
- variant="secondary"
626
- >
627
- Toggle Dialog
628
- </sp-button>
629
- <sp-popover dialog slot="click-content">
630
- <p>
631
- When you get this deep, this
632
- ActiveOverlay should be the only
633
- one in [slot="open"].
634
- </p>
635
- <p>
636
- All of the rest of the
637
- ActiveOverlay elements should
638
- have had their [slot] attribute
639
- removed.
640
- </p>
641
- <p>
642
- Closing this ActiveOverlay
643
- should replace them...
644
- </p>
645
- </sp-popover>
646
- </overlay-trigger>
647
- </sp-popover>
648
- </overlay-trigger>
578
+ <sp-popover slot="click-content">
579
+ <sp-dialog no-divider>
580
+ <overlay-trigger>
581
+ <sp-button slot="trigger" variant="primary">
582
+ Toggle Dialog
583
+ </sp-button>
584
+ <sp-popover slot="click-content">
585
+ <sp-dialog no-divider>
586
+ <overlay-trigger type="modal">
587
+ <sp-button
588
+ slot="trigger"
589
+ variant="secondary"
590
+ >
591
+ Toggle Dialog
592
+ </sp-button>
593
+ <sp-popover
594
+ slot="click-content"
595
+ >
596
+ <sp-dialog no-divider>
597
+ <p>
598
+ When you get this
599
+ deep, this
600
+ ActiveOverlay should
601
+ be the only one in
602
+ [slot="open"].
603
+ </p>
604
+ <p>
605
+ All of the rest of
606
+ the ActiveOverlay
607
+ elements should have
608
+ had their [slot]
609
+ attribute removed.
610
+ </p>
611
+ <p>
612
+ Closing this
613
+ ActiveOverlay should
614
+ replace them...
615
+ </p>
616
+ </sp-dialog>
617
+ </sp-popover>
618
+ </overlay-trigger>
619
+ </sp-dialog>
620
+ </sp-popover>
621
+ </overlay-trigger>
622
+ </sp-dialog>
649
623
  </sp-popover>
650
624
  </overlay-trigger>
651
625
  `);
@@ -720,14 +694,7 @@ export const runOverlayTriggerTests = (type) => {
720
694
  ).to.equal("open");
721
695
  await nextFrame();
722
696
  const closed = oneEvent(triggers[2], "sp-closed");
723
- sendMouse({
724
- steps: [
725
- {
726
- type: "click",
727
- position: [1, 1]
728
- }
729
- ]
730
- });
697
+ document.body.click();
731
698
  await closed;
732
699
  await elementUpdated(overlayTriggers[2]);
733
700
  activeOverlays = [