@spectrum-web-components/overlay 0.16.4 → 0.16.6-devmode.7

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 (93) hide show
  1. package/active-overlay.dev.js +3 -0
  2. package/active-overlay.dev.js.map +7 -0
  3. package/active-overlay.js +3 -14
  4. package/active-overlay.js.map +7 -1
  5. package/overlay-trigger.dev.js +3 -0
  6. package/overlay-trigger.dev.js.map +7 -0
  7. package/overlay-trigger.js +3 -14
  8. package/overlay-trigger.js.map +7 -1
  9. package/package.json +68 -14
  10. package/src/ActiveOverlay.dev.js +445 -0
  11. package/src/ActiveOverlay.dev.js.map +7 -0
  12. package/src/ActiveOverlay.js +404 -424
  13. package/src/ActiveOverlay.js.map +7 -1
  14. package/src/OverlayTrigger.dev.js +293 -0
  15. package/src/OverlayTrigger.dev.js.map +7 -0
  16. package/src/OverlayTrigger.js +245 -264
  17. package/src/OverlayTrigger.js.map +7 -1
  18. package/src/VirtualTrigger.dev.js +30 -0
  19. package/src/VirtualTrigger.dev.js.map +7 -0
  20. package/src/VirtualTrigger.js +28 -38
  21. package/src/VirtualTrigger.js.map +7 -1
  22. package/src/active-overlay.css.dev.js +12 -0
  23. package/src/active-overlay.css.dev.js.map +7 -0
  24. package/src/active-overlay.css.js +3 -14
  25. package/src/active-overlay.css.js.map +7 -1
  26. package/src/index.dev.js +7 -0
  27. package/src/index.dev.js.map +7 -0
  28. package/src/index.js +7 -18
  29. package/src/index.js.map +7 -1
  30. package/src/loader.dev.js +5 -0
  31. package/src/loader.dev.js.map +7 -0
  32. package/src/loader.js +3 -14
  33. package/src/loader.js.map +7 -1
  34. package/src/overlay-events.dev.js +7 -0
  35. package/src/overlay-events.dev.js.map +7 -0
  36. package/src/overlay-events.js +5 -16
  37. package/src/overlay-events.js.map +7 -1
  38. package/src/overlay-stack.dev.js +436 -0
  39. package/src/overlay-stack.dev.js.map +7 -0
  40. package/src/overlay-stack.js +374 -420
  41. package/src/overlay-stack.js.map +7 -1
  42. package/src/overlay-timer.dev.js +71 -0
  43. package/src/overlay-timer.dev.js.map +7 -0
  44. package/src/overlay-timer.js +64 -82
  45. package/src/overlay-timer.js.map +7 -1
  46. package/src/overlay-trigger.css.dev.js +6 -0
  47. package/src/overlay-trigger.css.dev.js.map +7 -0
  48. package/src/overlay-trigger.css.js +3 -14
  49. package/src/overlay-trigger.css.js.map +7 -1
  50. package/src/overlay-types.dev.js +1 -0
  51. package/src/overlay-types.dev.js.map +7 -0
  52. package/src/overlay-types.js +1 -13
  53. package/src/overlay-types.js.map +7 -1
  54. package/src/overlay-utils.dev.js +28 -0
  55. package/src/overlay-utils.dev.js.map +7 -0
  56. package/src/overlay-utils.js +22 -33
  57. package/src/overlay-utils.js.map +7 -1
  58. package/src/overlay.dev.js +85 -0
  59. package/src/overlay.dev.js.map +7 -0
  60. package/src/overlay.js +83 -119
  61. package/src/overlay.js.map +7 -1
  62. package/stories/overlay-story-components.js +188 -184
  63. package/stories/overlay-story-components.js.map +7 -1
  64. package/stories/overlay.stories.js +238 -228
  65. package/stories/overlay.stories.js.map +7 -1
  66. package/sync/overlay-trigger.dev.js +7 -0
  67. package/sync/overlay-trigger.dev.js.map +7 -0
  68. package/sync/overlay-trigger.js +5 -16
  69. package/sync/overlay-trigger.js.map +7 -1
  70. package/test/benchmark/basic-test.js +7 -18
  71. package/test/benchmark/basic-test.js.map +7 -1
  72. package/test/overlay-lifecycle.test.js +107 -115
  73. package/test/overlay-lifecycle.test.js.map +7 -1
  74. package/test/overlay-timer.test.js +110 -122
  75. package/test/overlay-timer.test.js.map +7 -1
  76. package/test/overlay-trigger-click.test.js +43 -48
  77. package/test/overlay-trigger-click.test.js.map +7 -1
  78. package/test/overlay-trigger-extended.test.js +167 -182
  79. package/test/overlay-trigger-extended.test.js.map +7 -1
  80. package/test/overlay-trigger-hover-click.test.js +59 -73
  81. package/test/overlay-trigger-hover-click.test.js.map +7 -1
  82. package/test/overlay-trigger-hover.test.js +74 -77
  83. package/test/overlay-trigger-hover.test.js.map +7 -1
  84. package/test/overlay-trigger-longpress.test.js +166 -178
  85. package/test/overlay-trigger-longpress.test.js.map +7 -1
  86. package/test/overlay-trigger-sync.test.js +400 -422
  87. package/test/overlay-trigger-sync.test.js.map +7 -1
  88. package/test/overlay-trigger.test.js +400 -422
  89. package/test/overlay-trigger.test.js.map +7 -1
  90. package/test/overlay.test-vrt.js +4 -15
  91. package/test/overlay.test-vrt.js.map +7 -1
  92. package/test/overlay.test.js +458 -479
  93. package/test/overlay.test.js.map +7 -1
@@ -1,39 +1,33 @@
1
- /*
2
- Copyright 2020 Adobe. All rights reserved.
3
- This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License. You may obtain a copy
5
- of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- Unless required by applicable law or agreed to in writing, software distributed under
7
- the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
8
- OF ANY KIND, either express or implied. See the License for the specific language
9
- governing permissions and limitations under the License.
10
- */
11
- import { html } from '@spectrum-web-components/base';
12
- import { ifDefined } from '@spectrum-web-components/base/src/directives.js';
13
- import { openOverlay, Overlay, VirtualTrigger, } from '../';
14
- import '@spectrum-web-components/action-button/sp-action-button.js';
15
- import '@spectrum-web-components/action-group/sp-action-group.js';
16
- import '@spectrum-web-components/button/sp-button.js';
17
- import '@spectrum-web-components/dialog/sp-dialog-wrapper.js';
18
- import '@spectrum-web-components/field-label/sp-field-label.js';
19
- import '@spectrum-web-components/icons-workflow/icons/sp-icon-magnify.js';
20
- import '@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js';
21
- import '@spectrum-web-components/overlay/overlay-trigger.js';
22
- import '@spectrum-web-components/picker/sp-picker.js';
23
- import '@spectrum-web-components/menu/sp-menu.js';
24
- import '@spectrum-web-components/menu/sp-menu-item.js';
25
- import '@spectrum-web-components/menu/sp-menu-divider.js';
26
- import '@spectrum-web-components/popover/sp-popover.js';
27
- import '@spectrum-web-components/slider/sp-slider.js';
28
- import '@spectrum-web-components/radio/sp-radio.js';
29
- import '@spectrum-web-components/radio/sp-radio-group.js';
30
- import '@spectrum-web-components/tooltip/sp-tooltip.js';
31
- import '@spectrum-web-components/theme/sp-theme.js';
32
- import '@spectrum-web-components/theme/src/themes.js';
33
- import '../../../projects/story-decorator/src/types.js';
34
- import './overlay-story-components.js';
35
- import { render } from 'lit-html';
36
- const storyStyles = html `
1
+ import { html } from "@spectrum-web-components/base";
2
+ import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
3
+ import {
4
+ openOverlay,
5
+ Overlay,
6
+ VirtualTrigger
7
+ } from "@spectrum-web-components/overlay";
8
+ import "@spectrum-web-components/action-button/sp-action-button.js";
9
+ import "@spectrum-web-components/action-group/sp-action-group.js";
10
+ import "@spectrum-web-components/button/sp-button.js";
11
+ import "@spectrum-web-components/dialog/sp-dialog-wrapper.js";
12
+ import "@spectrum-web-components/field-label/sp-field-label.js";
13
+ import "@spectrum-web-components/icons-workflow/icons/sp-icon-magnify.js";
14
+ import "@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js";
15
+ import "@spectrum-web-components/overlay/overlay-trigger.js";
16
+ import "@spectrum-web-components/picker/sp-picker.js";
17
+ import "@spectrum-web-components/menu/sp-menu.js";
18
+ import "@spectrum-web-components/menu/sp-menu-item.js";
19
+ import "@spectrum-web-components/menu/sp-menu-divider.js";
20
+ import "@spectrum-web-components/popover/sp-popover.js";
21
+ import "@spectrum-web-components/slider/sp-slider.js";
22
+ import "@spectrum-web-components/radio/sp-radio.js";
23
+ import "@spectrum-web-components/radio/sp-radio-group.js";
24
+ import "@spectrum-web-components/tooltip/sp-tooltip.js";
25
+ import "@spectrum-web-components/theme/sp-theme.js";
26
+ import "@spectrum-web-components/theme/src/themes.js";
27
+ import "../../../projects/story-decorator/src/types.js";
28
+ import "./overlay-story-components.js";
29
+ import { render } from "lit-html";
30
+ const storyStyles = html`
37
31
  <style>
38
32
  html,
39
33
  body,
@@ -70,53 +64,58 @@ const storyStyles = html `
70
64
  </style>
71
65
  `;
72
66
  export default {
73
- title: 'Overlay',
74
- argTypes: {
75
- offset: { control: 'number' },
76
- placement: {
77
- control: {
78
- type: 'inline-radio',
79
- options: [
80
- 'top',
81
- 'top-start',
82
- 'top-end',
83
- 'bottom',
84
- 'bottom-start',
85
- 'bottom-end',
86
- 'left',
87
- 'left-start',
88
- 'left-end',
89
- 'right',
90
- 'right-start',
91
- 'right-end',
92
- 'auto',
93
- 'auto-start',
94
- 'auto-end',
95
- 'none',
96
- ],
97
- },
98
- },
99
- type: {
100
- control: {
101
- type: 'inline-radio',
102
- options: ['modal', 'replace', 'inline'],
103
- },
104
- },
105
- colorStop: {
106
- control: {
107
- type: 'inline-radio',
108
- options: ['light', 'dark'],
109
- },
110
- },
67
+ title: "Overlay",
68
+ argTypes: {
69
+ offset: { control: "number" },
70
+ placement: {
71
+ control: {
72
+ type: "inline-radio",
73
+ options: [
74
+ "top",
75
+ "top-start",
76
+ "top-end",
77
+ "bottom",
78
+ "bottom-start",
79
+ "bottom-end",
80
+ "left",
81
+ "left-start",
82
+ "left-end",
83
+ "right",
84
+ "right-start",
85
+ "right-end",
86
+ "auto",
87
+ "auto-start",
88
+ "auto-end",
89
+ "none"
90
+ ]
91
+ }
111
92
  },
112
- args: {
113
- placement: 'bottom',
114
- offset: 0,
115
- colorStop: 'light',
93
+ type: {
94
+ control: {
95
+ type: "inline-radio",
96
+ options: ["modal", "replace", "inline"]
97
+ }
116
98
  },
99
+ colorStop: {
100
+ control: {
101
+ type: "inline-radio",
102
+ options: ["light", "dark"]
103
+ }
104
+ }
105
+ },
106
+ args: {
107
+ placement: "bottom",
108
+ offset: 0,
109
+ colorStop: "light"
110
+ }
117
111
  };
118
- const template = ({ placement, offset, open, type, }) => {
119
- return html `
112
+ const template = ({
113
+ placement,
114
+ offset,
115
+ open,
116
+ type
117
+ }) => {
118
+ return html`
120
119
  ${storyStyles}
121
120
  <overlay-trigger
122
121
  id="trigger"
@@ -165,7 +164,7 @@ const template = ({ placement, offset, open, type, }) => {
165
164
  </sp-popover>
166
165
  <sp-tooltip
167
166
  slot="hover-content"
168
- ?delayed=${open !== 'hover'}
167
+ ?delayed=${open !== "hover"}
169
168
  tip="bottom"
170
169
  >
171
170
  Click to open a popover.
@@ -174,9 +173,15 @@ const template = ({ placement, offset, open, type, }) => {
174
173
  `;
175
174
  };
176
175
  export const Default = (args) => template(args);
177
- export const openHoverContent = (args) => template(Object.assign(Object.assign({}, args), { open: 'hover' }));
178
- export const openClickContent = (args) => template(Object.assign(Object.assign({}, args), { open: 'click' }));
179
- export const customizedClickContent = (args) => html `
176
+ export const openHoverContent = (args) => template({
177
+ ...args,
178
+ open: "hover"
179
+ });
180
+ export const openClickContent = (args) => template({
181
+ ...args,
182
+ open: "click"
183
+ });
184
+ export const customizedClickContent = (args) => html`
180
185
  <style>
181
186
  active-overlay::part(theme) {
182
187
  --styled-div-background-color: var(--spectrum-semantic-cta-background-color-default);
@@ -184,9 +189,12 @@ export const customizedClickContent = (args) => html `
184
189
  }
185
190
  </style>
186
191
  </style>
187
- ${template(Object.assign(Object.assign({}, args), { open: 'click' }))}
192
+ ${template({
193
+ ...args,
194
+ open: "click"
195
+ })}
188
196
  `;
189
- const extraText = html `
197
+ const extraText = html`
190
198
  <p>This is some text.</p>
191
199
  <p>This is some text.</p>
192
200
  <p>
@@ -196,15 +204,15 @@ const extraText = html `
196
204
  </p>
197
205
  `;
198
206
  export const inline = () => {
199
- const closeEvent = new Event('close', { bubbles: true, composed: true });
200
- return html `
207
+ const closeEvent = new Event("close", { bubbles: true, composed: true });
208
+ return html`
201
209
  <overlay-trigger type="inline">
202
210
  <sp-button slot="trigger">Open</sp-button>
203
211
  <sp-overlay slot="click-content">
204
212
  <sp-button
205
213
  @click=${(event) => {
206
- event.target.dispatchEvent(closeEvent);
207
- }}
214
+ event.target.dispatchEvent(closeEvent);
215
+ }}
208
216
  >
209
217
  Close
210
218
  </sp-button>
@@ -214,15 +222,15 @@ export const inline = () => {
214
222
  `;
215
223
  };
216
224
  export const replace = () => {
217
- const closeEvent = new Event('close', { bubbles: true, composed: true });
218
- return html `
225
+ const closeEvent = new Event("close", { bubbles: true, composed: true });
226
+ return html`
219
227
  <overlay-trigger type="replace">
220
228
  <sp-button slot="trigger">Open</sp-button>
221
229
  <sp-overlay slot="click-content">
222
230
  <sp-button
223
231
  @click=${(event) => {
224
- event.target.dispatchEvent(closeEvent);
225
- }}
232
+ event.target.dispatchEvent(closeEvent);
233
+ }}
226
234
  >
227
235
  Close
228
236
  </sp-button>
@@ -232,8 +240,8 @@ export const replace = () => {
232
240
  `;
233
241
  };
234
242
  export const modalLoose = () => {
235
- const closeEvent = new Event('close', { bubbles: true, composed: true });
236
- return html `
243
+ const closeEvent = new Event("close", { bubbles: true, composed: true });
244
+ return html`
237
245
  <overlay-trigger type="modal" placement="none">
238
246
  <sp-button slot="trigger">Open</sp-button>
239
247
  <sp-dialog
@@ -262,8 +270,8 @@ export const modalLoose = () => {
262
270
  `;
263
271
  };
264
272
  export const modalManaged = () => {
265
- const closeEvent = new Event('close', { bubbles: true, composed: true });
266
- return html `
273
+ const closeEvent = new Event("close", { bubbles: true, composed: true });
274
+ return html`
267
275
  <overlay-trigger type="modal" placement="none">
268
276
  <sp-button slot="trigger">Open</sp-button>
269
277
  <sp-dialog-wrapper
@@ -275,14 +283,14 @@ export const modalManaged = () => {
275
283
  cancel-label="Cancel"
276
284
  footer="Content for footer"
277
285
  @confirm=${(event) => {
278
- event.target.dispatchEvent(closeEvent);
279
- }}
286
+ event.target.dispatchEvent(closeEvent);
287
+ }}
280
288
  @secondary=${(event) => {
281
- event.target.dispatchEvent(closeEvent);
282
- }}
289
+ event.target.dispatchEvent(closeEvent);
290
+ }}
283
291
  @cancel=${(event) => {
284
- event.target.dispatchEvent(closeEvent);
285
- }}
292
+ event.target.dispatchEvent(closeEvent);
293
+ }}
286
294
  >
287
295
  <p>
288
296
  The
@@ -298,9 +306,9 @@ export const modalManaged = () => {
298
306
  `;
299
307
  };
300
308
  export const deepNesting = () => {
301
- const color = window.__swc_hack_knobs__.defaultColor;
302
- const outter = color === 'light' ? 'dark' : 'light';
303
- return html `
309
+ const color = window.__swc_hack_knobs__.defaultColor;
310
+ const outter = color === "light" ? "dark" : "light";
311
+ return html`
304
312
  ${storyStyles}
305
313
  <sp-theme
306
314
  color=${outter}
@@ -327,7 +335,7 @@ export const deepNesting = () => {
327
335
  `;
328
336
  };
329
337
  export const edges = () => {
330
- return html `
338
+ return html`
331
339
  <style>
332
340
  .demo {
333
341
  position: absolute;
@@ -392,7 +400,7 @@ export const edges = () => {
392
400
  `;
393
401
  };
394
402
  export const updated = () => {
395
- return html `
403
+ return html`
396
404
  ${storyStyles}
397
405
  <style>
398
406
  sp-tooltip {
@@ -455,7 +463,7 @@ export const updated = () => {
455
463
  `;
456
464
  };
457
465
  export const sideHoverDraggable = () => {
458
- return html `
466
+ return html`
459
467
  ${storyStyles}
460
468
  <style>
461
469
  sp-tooltip {
@@ -485,7 +493,7 @@ export const sideHoverDraggable = () => {
485
493
  `;
486
494
  };
487
495
  export const longpress = () => {
488
- return html `
496
+ return html`
489
497
  <overlay-trigger placement="right-start">
490
498
  <sp-action-button slot="trigger" hold-affordance>
491
499
  <sp-icon-magnify slot="icon"></sp-icon-magnify>
@@ -493,7 +501,7 @@ export const longpress = () => {
493
501
  <sp-tooltip slot="hover-content">Search real hard...</sp-tooltip>
494
502
  <sp-popover slot="longpress-content" tip>
495
503
  <sp-action-group
496
- @change=${(event) => event.target.dispatchEvent(new Event('close', { bubbles: true }))}
504
+ @change=${(event) => event.target.dispatchEvent(new Event("close", { bubbles: true }))}
497
505
  selects="single"
498
506
  vertical
499
507
  style="margin: calc(var(--spectrum-actiongroup-button-gap-y,var(--spectrum-global-dimension-size-100)) / 2);"
@@ -513,47 +521,47 @@ export const longpress = () => {
513
521
  `;
514
522
  };
515
523
  function nextFrame() {
516
- return new Promise((res) => requestAnimationFrame(() => res()));
524
+ return new Promise((res) => requestAnimationFrame(() => res()));
517
525
  }
518
526
  class ComplexModalReady extends HTMLElement {
519
- constructor() {
520
- super();
521
- this.handleTriggerOpened = async () => {
522
- await nextFrame();
523
- const picker = document.querySelector('#test-picker');
524
- picker.addEventListener('sp-opened', this.handlePickerOpen);
525
- picker.open = true;
526
- };
527
- this.handlePickerOpen = async () => {
528
- const picker = document.querySelector('#test-picker');
529
- const actions = [nextFrame, picker.updateComplete];
530
- await Promise.all(actions);
531
- this.ready(true);
532
- };
533
- this.readyPromise = Promise.resolve(false);
534
- this.readyPromise = new Promise((res) => {
535
- this.ready = res;
536
- this.setup();
537
- });
538
- }
539
- async setup() {
540
- await nextFrame();
541
- const overlay = document.querySelector(`overlay-trigger`);
542
- overlay.addEventListener('sp-opened', this.handleTriggerOpened);
543
- }
544
- get updateComplete() {
545
- return this.readyPromise;
546
- }
527
+ constructor() {
528
+ super();
529
+ this.handleTriggerOpened = async () => {
530
+ await nextFrame();
531
+ const picker = document.querySelector("#test-picker");
532
+ picker.addEventListener("sp-opened", this.handlePickerOpen);
533
+ picker.open = true;
534
+ };
535
+ this.handlePickerOpen = async () => {
536
+ const picker = document.querySelector("#test-picker");
537
+ const actions = [nextFrame, picker.updateComplete];
538
+ await Promise.all(actions);
539
+ this.ready(true);
540
+ };
541
+ this.readyPromise = Promise.resolve(false);
542
+ this.readyPromise = new Promise((res) => {
543
+ this.ready = res;
544
+ this.setup();
545
+ });
546
+ }
547
+ async setup() {
548
+ await nextFrame();
549
+ const overlay = document.querySelector(`overlay-trigger`);
550
+ overlay.addEventListener("sp-opened", this.handleTriggerOpened);
551
+ }
552
+ get updateComplete() {
553
+ return this.readyPromise;
554
+ }
547
555
  }
548
- customElements.define('complex-modal-ready', ComplexModalReady);
556
+ customElements.define("complex-modal-ready", ComplexModalReady);
549
557
  const complexModalDecorator = (story) => {
550
- return html `
558
+ return html`
551
559
  ${story()}
552
560
  <complex-modal-ready></complex-modal-ready>
553
561
  `;
554
562
  };
555
563
  export const complexModal = () => {
556
- return html `
564
+ return html`
557
565
  <style>
558
566
  body {
559
567
  --swc-margin-test: 10px;
@@ -611,7 +619,7 @@ export const complexModal = () => {
611
619
  };
612
620
  complexModal.decorators = [complexModalDecorator];
613
621
  export const superComplexModal = () => {
614
- return html `
622
+ return html`
615
623
  <overlay-trigger type="modal" placement="none">
616
624
  <sp-button slot="trigger" variant="accent">Toggle Dialog</sp-button>
617
625
  <sp-popover dialog slot="click-content">
@@ -647,10 +655,10 @@ export const superComplexModal = () => {
647
655
  `;
648
656
  };
649
657
  class StartEndContextmenu extends HTMLElement {
650
- constructor() {
651
- super();
652
- this.attachShadow({ mode: 'open' });
653
- this.shadowRoot.innerHTML = `
658
+ constructor() {
659
+ super();
660
+ this.attachShadow({ mode: "open" });
661
+ this.shadowRoot.innerHTML = `
654
662
  <style>
655
663
  :host {
656
664
  display: flex;
@@ -664,17 +672,17 @@ class StartEndContextmenu extends HTMLElement {
664
672
  <div id="start"></div>
665
673
  <div id="end"></div>
666
674
  `;
667
- }
675
+ }
668
676
  }
669
- customElements.define('start-end-contextmenu', StartEndContextmenu);
677
+ customElements.define("start-end-contextmenu", StartEndContextmenu);
670
678
  export const virtualElement = (args) => {
671
- const contextMenuTemplate = (kind = '') => html `
679
+ const contextMenuTemplate = (kind = "") => html`
672
680
  <sp-popover
673
681
  style="width:300px;"
674
682
  @click=${(event) => {
675
- var _a;
676
- return (_a = event.target) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new Event('close', { bubbles: true }));
677
- }}
683
+ var _a;
684
+ return (_a = event.target) == null ? void 0 : _a.dispatchEvent(new Event("close", { bubbles: true }));
685
+ }}
678
686
  >
679
687
  <sp-menu>
680
688
  <sp-menu-group>
@@ -690,22 +698,22 @@ export const virtualElement = (args) => {
690
698
  </sp-menu>
691
699
  </sp-popover>
692
700
  `;
693
- const pointerenter = async (event) => {
694
- event.preventDefault();
695
- const source = event.composedPath()[0];
696
- const { id } = source;
697
- const trigger = event.target;
698
- const virtualTrigger = new VirtualTrigger(event.clientX, event.clientY);
699
- const fragment = document.createDocumentFragment();
700
- render(contextMenuTemplate(id), fragment);
701
- const popover = fragment.querySelector('sp-popover');
702
- openOverlay(trigger, 'modal', popover, {
703
- placement: args.placement,
704
- receivesFocus: 'auto',
705
- virtualTrigger,
706
- });
707
- };
708
- return html `
701
+ const pointerenter = async (event) => {
702
+ event.preventDefault();
703
+ const source = event.composedPath()[0];
704
+ const { id } = source;
705
+ const trigger = event.target;
706
+ const virtualTrigger = new VirtualTrigger(event.clientX, event.clientY);
707
+ const fragment = document.createDocumentFragment();
708
+ render(contextMenuTemplate(id), fragment);
709
+ const popover = fragment.querySelector("sp-popover");
710
+ openOverlay(trigger, "modal", popover, {
711
+ placement: args.placement,
712
+ receivesFocus: "auto",
713
+ virtualTrigger
714
+ });
715
+ };
716
+ return html`
709
717
  <style>
710
718
  .app-root {
711
719
  position: absolute;
@@ -719,39 +727,41 @@ export const virtualElement = (args) => {
719
727
  `;
720
728
  };
721
729
  virtualElement.args = {
722
- placement: 'right-start',
730
+ placement: "right-start"
723
731
  };
724
732
  export const detachedElement = () => {
725
- let closeOverlay;
726
- const openDetachedOverlayContent = async ({ target, }) => {
727
- if (closeOverlay) {
728
- closeOverlay();
729
- closeOverlay = undefined;
730
- return;
731
- }
732
- const div = document.createElement('div');
733
- div.textContent = 'This div is overlaid';
734
- div.setAttribute('style', `
733
+ let closeOverlay;
734
+ const openDetachedOverlayContent = async ({
735
+ target
736
+ }) => {
737
+ if (closeOverlay) {
738
+ closeOverlay();
739
+ closeOverlay = void 0;
740
+ return;
741
+ }
742
+ const div = document.createElement("div");
743
+ div.textContent = "This div is overlaid";
744
+ div.setAttribute("style", `
735
745
  background-color: var(--spectrum-global-color-gray-50);
736
746
  color: var(--spectrum-global-color-gray-800);
737
747
  border: 1px solid;
738
748
  padding: 2em;
739
749
  `);
740
- closeOverlay = await Overlay.open(target, 'click', div, {
741
- offset: 0,
742
- placement: 'bottom',
743
- });
744
- };
745
- requestAnimationFrame(() => {
746
- openDetachedOverlayContent({
747
- target: document.querySelector('#detached-content-trigger'),
748
- });
750
+ closeOverlay = await Overlay.open(target, "click", div, {
751
+ offset: 0,
752
+ placement: "bottom"
753
+ });
754
+ };
755
+ requestAnimationFrame(() => {
756
+ openDetachedOverlayContent({
757
+ target: document.querySelector("#detached-content-trigger")
749
758
  });
750
- return html `
759
+ });
760
+ return html`
751
761
  <sp-action-button
752
762
  id="detached-content-trigger"
753
763
  @click=${openDetachedOverlayContent}
754
- @sp-closed=${() => (closeOverlay = undefined)}
764
+ @sp-closed=${() => closeOverlay = void 0}
755
765
  >
756
766
  <sp-icon-open-in
757
767
  slot="icon"
@@ -761,47 +771,47 @@ export const detachedElement = () => {
761
771
  `;
762
772
  };
763
773
  class DefinedOverlayReady extends HTMLElement {
764
- constructor() {
765
- super();
766
- this.handleTriggerOpened = async () => {
767
- await nextFrame();
768
- const popover = document.querySelector('popover-content');
769
- if (!popover) {
770
- return;
771
- }
772
- popover.addEventListener('sp-opened', this.handlePopoverOpen);
773
- popover.button.click();
774
- };
775
- this.handlePopoverOpen = async () => {
776
- await nextFrame();
777
- this.ready(true);
778
- };
779
- this.readyPromise = Promise.resolve(false);
780
- this.readyPromise = new Promise((res) => {
781
- this.ready = res;
782
- this.setup();
783
- });
784
- }
785
- async setup() {
786
- await nextFrame();
787
- const overlay = document.querySelector(`overlay-trigger`);
788
- const button = document.querySelector(`[slot="trigger"]`);
789
- overlay.addEventListener('sp-opened', this.handleTriggerOpened);
790
- button.click();
791
- }
792
- get updateComplete() {
793
- return this.readyPromise;
794
- }
774
+ constructor() {
775
+ super();
776
+ this.handleTriggerOpened = async () => {
777
+ await nextFrame();
778
+ const popover = document.querySelector("popover-content");
779
+ if (!popover) {
780
+ return;
781
+ }
782
+ popover.addEventListener("sp-opened", this.handlePopoverOpen);
783
+ popover.button.click();
784
+ };
785
+ this.handlePopoverOpen = async () => {
786
+ await nextFrame();
787
+ this.ready(true);
788
+ };
789
+ this.readyPromise = Promise.resolve(false);
790
+ this.readyPromise = new Promise((res) => {
791
+ this.ready = res;
792
+ this.setup();
793
+ });
794
+ }
795
+ async setup() {
796
+ await nextFrame();
797
+ const overlay = document.querySelector(`overlay-trigger`);
798
+ const button = document.querySelector(`[slot="trigger"]`);
799
+ overlay.addEventListener("sp-opened", this.handleTriggerOpened);
800
+ button.click();
801
+ }
802
+ get updateComplete() {
803
+ return this.readyPromise;
804
+ }
795
805
  }
796
- customElements.define('defined-overlay-ready', DefinedOverlayReady);
806
+ customElements.define("defined-overlay-ready", DefinedOverlayReady);
797
807
  const definedOverlayDecorator = (story) => {
798
- return html `
808
+ return html`
799
809
  ${story()}
800
810
  <defined-overlay-ready></defined-overlay-ready>
801
811
  `;
802
812
  };
803
813
  export const definedOverlayElement = () => {
804
- return html `
814
+ return html`
805
815
  <overlay-trigger placement="bottom" type="modal">
806
816
  <sp-button variant="primary" slot="trigger">Open popover</sp-button>
807
817
  <sp-popover slot="click-content" direction="bottom" dialog>
@@ -811,4 +821,4 @@ export const definedOverlayElement = () => {
811
821
  `;
812
822
  };
813
823
  definedOverlayElement.decorators = [definedOverlayDecorator];
814
- //# sourceMappingURL=overlay.stories.js.map
824
+ //# sourceMappingURL=overlay.stories.js.map