@spectrum-web-components/overlay 0.18.0-devmode.0 → 0.18.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 (60) hide show
  1. package/README.md +3 -0
  2. package/active-overlay.js +1 -2
  3. package/active-overlay.js.map +1 -1
  4. package/overlay-trigger.js +1 -2
  5. package/overlay-trigger.js.map +1 -1
  6. package/package.json +7 -7
  7. package/src/ActiveOverlay.js +8 -437
  8. package/src/ActiveOverlay.js.map +1 -1
  9. package/src/OverlayTrigger.js +2 -265
  10. package/src/OverlayTrigger.js.map +1 -1
  11. package/src/VirtualTrigger.js +1 -29
  12. package/src/VirtualTrigger.js.map +1 -1
  13. package/src/active-overlay.css.js +2 -4
  14. package/src/active-overlay.css.js.map +1 -1
  15. package/src/index.js +1 -6
  16. package/src/index.js.map +1 -1
  17. package/src/loader.js +1 -4
  18. package/src/loader.js.map +1 -1
  19. package/src/overlay-events.js +1 -6
  20. package/src/overlay-events.js.map +1 -1
  21. package/src/overlay-stack.js +2 -405
  22. package/src/overlay-stack.js.map +1 -1
  23. package/src/overlay-timer.js +1 -70
  24. package/src/overlay-timer.js.map +1 -1
  25. package/src/overlay-trigger.css.js +2 -4
  26. package/src/overlay-trigger.css.js.map +1 -1
  27. package/src/overlay-utils.js +1 -27
  28. package/src/overlay-utils.js.map +1 -1
  29. package/src/overlay.js +1 -84
  30. package/src/overlay.js.map +1 -1
  31. package/stories/overlay-story-components.js +11 -207
  32. package/stories/overlay-story-components.js.map +1 -1
  33. package/stories/overlay.stories.js +55 -338
  34. package/stories/overlay.stories.js.map +1 -1
  35. package/sync/overlay-trigger.js +1 -6
  36. package/sync/overlay-trigger.js.map +1 -1
  37. package/test/benchmark/basic-test.js +1 -6
  38. package/test/benchmark/basic-test.js.map +1 -1
  39. package/test/overlay-lifecycle.test.js +6 -112
  40. package/test/overlay-lifecycle.test.js.map +1 -1
  41. package/test/overlay-timer.test.js +1 -116
  42. package/test/overlay-timer.test.js.map +1 -1
  43. package/test/overlay-trigger-click.test.js +7 -51
  44. package/test/overlay-trigger-click.test.js.map +1 -1
  45. package/test/overlay-trigger-extended.test.js +4 -174
  46. package/test/overlay-trigger-extended.test.js.map +1 -1
  47. package/test/overlay-trigger-hover-click.test.js +3 -63
  48. package/test/overlay-trigger-hover-click.test.js.map +1 -1
  49. package/test/overlay-trigger-hover.test.js +7 -81
  50. package/test/overlay-trigger-hover.test.js.map +1 -1
  51. package/test/overlay-trigger-longpress.test.js +9 -177
  52. package/test/overlay-trigger-longpress.test.js.map +1 -1
  53. package/test/overlay-trigger-sync.test.js +4 -407
  54. package/test/overlay-trigger-sync.test.js.map +1 -1
  55. package/test/overlay-trigger.test.js +4 -407
  56. package/test/overlay-trigger.test.js.map +1 -1
  57. package/test/overlay.test-vrt.js +1 -3
  58. package/test/overlay.test-vrt.js.map +1 -1
  59. package/test/overlay.test.js +11 -477
  60. package/test/overlay.test.js.map +1 -1
@@ -1,33 +1,4 @@
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`
1
+ import{html as o}from"@spectrum-web-components/base";import{ifDefined as d}from"@spectrum-web-components/base/src/directives.js";import{openOverlay as y,Overlay as b,VirtualTrigger as h}from"@spectrum-web-components/overlay";import"@spectrum-web-components/action-button/sp-action-button.js";import"@spectrum-web-components/action-group/sp-action-group.js";import"@spectrum-web-components/button/sp-button.js";import"@spectrum-web-components/dialog/sp-dialog-wrapper.js";import"@spectrum-web-components/field-label/sp-field-label.js";import"@spectrum-web-components/icons-workflow/icons/sp-icon-magnify.js";import"@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js";import"@spectrum-web-components/overlay/overlay-trigger.js";import"@spectrum-web-components/picker/sp-picker.js";import"@spectrum-web-components/menu/sp-menu.js";import"@spectrum-web-components/menu/sp-menu-item.js";import"@spectrum-web-components/menu/sp-menu-divider.js";import"@spectrum-web-components/popover/sp-popover.js";import"@spectrum-web-components/slider/sp-slider.js";import"@spectrum-web-components/radio/sp-radio.js";import"@spectrum-web-components/radio/sp-radio-group.js";import"@spectrum-web-components/tooltip/sp-tooltip.js";import"@spectrum-web-components/theme/sp-theme.js";import"@spectrum-web-components/theme/src/themes.js";import"../../../projects/story-decorator/src/types.js";import"./overlay-story-components.js";import{render as f}from"lit-html";const a=o`
31
2
  <style>
32
3
  html,
33
4
  body,
@@ -62,73 +33,20 @@ const storyStyles = html`
62
33
  display: inline-block;
63
34
  }
64
35
  </style>
65
- `;
66
- export default {
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
- }
92
- },
93
- type: {
94
- control: {
95
- type: "inline-radio",
96
- options: ["modal", "replace", "inline"]
97
- }
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
- }
111
- };
112
- const template = ({
113
- placement,
114
- offset,
115
- open,
116
- type
117
- }) => {
118
- return html`
119
- ${storyStyles}
36
+ `;export default{title:"Overlay",argTypes:{offset:{control:"number"},placement:{control:{type:"inline-radio",options:["top","top-start","top-end","bottom","bottom-start","bottom-end","left","left-start","left-end","right","right-start","right-end","auto","auto-start","auto-end","none"]}},type:{control:{type:"inline-radio",options:["modal","replace","inline"]}},colorStop:{control:{type:"inline-radio",options:["light","dark"]}}},args:{placement:"bottom",offset:0,colorStop:"light"}};const l=({placement:e,offset:t,open:n,type:r})=>o`
37
+ ${a}
120
38
  <overlay-trigger
121
39
  id="trigger"
122
- placement="${placement}"
123
- offset="${offset}"
124
- open=${ifDefined(open)}
125
- type=${ifDefined(type)}
40
+ placement="${e}"
41
+ offset="${t}"
42
+ open=${d(n)}
43
+ type=${d(r)}
126
44
  >
127
45
  <sp-button variant="primary" slot="trigger">Show Popover</sp-button>
128
46
  <sp-popover
129
47
  dialog
130
48
  slot="click-content"
131
- placement="${placement}"
49
+ placement="${e}"
132
50
  tip
133
51
  >
134
52
  <div class="options-popover-content">
@@ -164,24 +82,13 @@ const template = ({
164
82
  </sp-popover>
165
83
  <sp-tooltip
166
84
  slot="hover-content"
167
- ?delayed=${open !== "hover"}
85
+ ?delayed=${n!=="hover"}
168
86
  tip="bottom"
169
87
  >
170
88
  Click to open a popover.
171
89
  </sp-tooltip>
172
90
  </overlay-trigger>
173
- `;
174
- };
175
- export const Default = (args) => template(args);
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`
91
+ `;export const Default=e=>l(e),openHoverContent=e=>l({...e,open:"hover"}),openClickContent=e=>l({...e,open:"click"}),customizedClickContent=e=>o`
185
92
  <style>
186
93
  active-overlay::part(theme) {
187
94
  --styled-div-background-color: var(--spectrum-semantic-cta-background-color-default);
@@ -189,12 +96,8 @@ export const customizedClickContent = (args) => html`
189
96
  }
190
97
  </style>
191
98
  </style>
192
- ${template({
193
- ...args,
194
- open: "click"
195
- })}
196
- `;
197
- const extraText = html`
99
+ ${l({...e,open:"click"})}
100
+ `;const p=o`
198
101
  <p>This is some text.</p>
199
102
  <p>This is some text.</p>
200
103
  <p>
@@ -202,53 +105,38 @@ const extraText = html`
202
105
  <a href="#anchor">link</a>
203
106
  .
204
107
  </p>
205
- `;
206
- export const inline = () => {
207
- const closeEvent = new Event("close", { bubbles: true, composed: true });
208
- return html`
108
+ `;export const inline=()=>{const e=new Event("close",{bubbles:!0,composed:!0});return o`
209
109
  <overlay-trigger type="inline">
210
110
  <sp-button slot="trigger">Open</sp-button>
211
111
  <sp-overlay slot="click-content">
212
112
  <sp-button
213
- @click=${(event) => {
214
- event.target.dispatchEvent(closeEvent);
215
- }}
113
+ @click=${t=>{t.target.dispatchEvent(e)}}
216
114
  >
217
115
  Close
218
116
  </sp-button>
219
117
  </sp-overlay>
220
118
  </overlay-trigger>
221
- ${extraText}
222
- `;
223
- };
224
- export const replace = () => {
225
- const closeEvent = new Event("close", { bubbles: true, composed: true });
226
- return html`
119
+ ${p}
120
+ `},replace=()=>{const e=new Event("close",{bubbles:!0,composed:!0});return o`
227
121
  <overlay-trigger type="replace">
228
122
  <sp-button slot="trigger">Open</sp-button>
229
123
  <sp-overlay slot="click-content">
230
124
  <sp-button
231
- @click=${(event) => {
232
- event.target.dispatchEvent(closeEvent);
233
- }}
125
+ @click=${t=>{t.target.dispatchEvent(e)}}
234
126
  >
235
127
  Close
236
128
  </sp-button>
237
129
  </sp-overlay>
238
130
  </overlay-trigger>
239
- ${extraText}
240
- `;
241
- };
242
- export const modalLoose = () => {
243
- const closeEvent = new Event("close", { bubbles: true, composed: true });
244
- return html`
131
+ ${p}
132
+ `},modalLoose=()=>{const e=new Event("close",{bubbles:!0,composed:!0});return o`
245
133
  <overlay-trigger type="modal" placement="none">
246
134
  <sp-button slot="trigger">Open</sp-button>
247
135
  <sp-dialog
248
136
  size="s"
249
137
  dismissable
250
138
  slot="click-content"
251
- @closed=${(event) => event.target.dispatchEvent(closeEvent)}
139
+ @closed=${t=>t.target.dispatchEvent(e)}
252
140
  >
253
141
  <h2 slot="heading">Loose Dialog</h2>
254
142
  <p>
@@ -266,12 +154,8 @@ export const modalLoose = () => {
266
154
  </p>
267
155
  </sp-dialog>
268
156
  </overlay-trigger>
269
- ${extraText}
270
- `;
271
- };
272
- export const modalManaged = () => {
273
- const closeEvent = new Event("close", { bubbles: true, composed: true });
274
- return html`
157
+ ${p}
158
+ `},modalManaged=()=>{const e=new Event("close",{bubbles:!0,composed:!0});return o`
275
159
  <overlay-trigger type="modal" placement="none">
276
160
  <sp-button slot="trigger">Open</sp-button>
277
161
  <sp-dialog-wrapper
@@ -282,15 +166,9 @@ export const modalManaged = () => {
282
166
  secondary-label="Replace"
283
167
  cancel-label="Cancel"
284
168
  footer="Content for footer"
285
- @confirm=${(event) => {
286
- event.target.dispatchEvent(closeEvent);
287
- }}
288
- @secondary=${(event) => {
289
- event.target.dispatchEvent(closeEvent);
290
- }}
291
- @cancel=${(event) => {
292
- event.target.dispatchEvent(closeEvent);
293
- }}
169
+ @confirm=${t=>{t.target.dispatchEvent(e)}}
170
+ @secondary=${t=>{t.target.dispatchEvent(e)}}
171
+ @cancel=${t=>{t.target.dispatchEvent(e)}}
294
172
  >
295
173
  <p>
296
174
  The
@@ -302,22 +180,17 @@ export const modalManaged = () => {
302
180
  </p>
303
181
  </sp-dialog-wrapper>
304
182
  </overlay-trigger>
305
- ${extraText}
306
- `;
307
- };
308
- export const deepNesting = () => {
309
- const color = window.__swc_hack_knobs__.defaultColor;
310
- const outter = color === "light" ? "dark" : "light";
311
- return html`
312
- ${storyStyles}
183
+ ${p}
184
+ `},deepNesting=()=>{const e=window.__swc_hack_knobs__.defaultColor;return o`
185
+ ${a}
313
186
  <sp-theme
314
- color=${outter}
187
+ color=${e==="light"?"dark":"light"}
315
188
  theme=${window.__swc_hack_knobs__.defaultThemeVariant}
316
189
  scale=${window.__swc_hack_knobs__.defaultScale}
317
190
  dir=${window.__swc_hack_knobs__.defaultDirection}
318
191
  >
319
192
  <sp-theme
320
- color=${color}
193
+ color=${e}
321
194
  theme=${window.__swc_hack_knobs__.defaultThemeVariant}
322
195
  scale=${window.__swc_hack_knobs__.defaultScale}
323
196
  dir=${window.__swc_hack_knobs__.defaultDirection}
@@ -332,10 +205,7 @@ export const deepNesting = () => {
332
205
  ></recursive-popover>
333
206
  </sp-theme>
334
207
  </sp-theme>
335
- `;
336
- };
337
- export const edges = () => {
338
- return html`
208
+ `},edges=()=>o`
339
209
  <style>
340
210
  .demo {
341
211
  position: absolute;
@@ -397,11 +267,8 @@ export const edges = () => {
397
267
  Triskaidekaphobia and More
398
268
  </sp-tooltip>
399
269
  </overlay-trigger>
400
- `;
401
- };
402
- export const updated = () => {
403
- return html`
404
- ${storyStyles}
270
+ `,updated=()=>o`
271
+ ${a}
405
272
  <style>
406
273
  sp-tooltip {
407
274
  transition: none;
@@ -460,11 +327,8 @@ export const updated = () => {
460
327
  </sp-popover>
461
328
  </overlay-trigger>
462
329
  </overlay-drag>
463
- `;
464
- };
465
- export const sideHoverDraggable = () => {
466
- return html`
467
- ${storyStyles}
330
+ `,sideHoverDraggable=()=>o`
331
+ ${a}
468
332
  <style>
469
333
  sp-tooltip {
470
334
  transition: none;
@@ -490,10 +354,7 @@ export const sideHoverDraggable = () => {
490
354
  </sp-tooltip>
491
355
  </overlay-trigger>
492
356
  </overlay-drag>
493
- `;
494
- };
495
- export const longpress = () => {
496
- return html`
357
+ `,longpress=()=>o`
497
358
  <overlay-trigger placement="right-start">
498
359
  <sp-action-button slot="trigger" hold-affordance>
499
360
  <sp-icon-magnify slot="icon"></sp-icon-magnify>
@@ -501,7 +362,7 @@ export const longpress = () => {
501
362
  <sp-tooltip slot="hover-content">Search real hard...</sp-tooltip>
502
363
  <sp-popover slot="longpress-content" tip>
503
364
  <sp-action-group
504
- @change=${(event) => event.target.dispatchEvent(new Event("close", { bubbles: true }))}
365
+ @change=${e=>e.target.dispatchEvent(new Event("close",{bubbles:!0}))}
505
366
  selects="single"
506
367
  vertical
507
368
  style="margin: calc(var(--spectrum-actiongroup-button-gap-y,var(--spectrum-global-dimension-size-100)) / 2);"
@@ -518,50 +379,10 @@ export const longpress = () => {
518
379
  </sp-action-group>
519
380
  </sp-popover>
520
381
  </overlay-trigger>
521
- `;
522
- };
523
- function nextFrame() {
524
- return new Promise((res) => requestAnimationFrame(() => res()));
525
- }
526
- class ComplexModalReady extends HTMLElement {
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
- }
555
- }
556
- customElements.define("complex-modal-ready", ComplexModalReady);
557
- const complexModalDecorator = (story) => {
558
- return html`
559
- ${story()}
382
+ `;function i(){return new Promise(e=>requestAnimationFrame(()=>e()))}class k extends HTMLElement{constructor(){super();this.handleTriggerOpened=async()=>{await i();const t=document.querySelector("#test-picker");t.addEventListener("sp-opened",this.handlePickerOpen),t.open=!0};this.handlePickerOpen=async()=>{const t=document.querySelector("#test-picker"),n=[i,t.updateComplete];await Promise.all(n),this.ready(!0)};this.readyPromise=Promise.resolve(!1);this.readyPromise=new Promise(t=>{this.ready=t,this.setup()})}async setup(){await i(),document.querySelector("overlay-trigger").addEventListener("sp-opened",this.handleTriggerOpened)}get updateComplete(){return this.readyPromise}}customElements.define("complex-modal-ready",k);const T=e=>o`
383
+ ${e()}
560
384
  <complex-modal-ready></complex-modal-ready>
561
- `;
562
- };
563
- export const complexModal = () => {
564
- return html`
385
+ `;export const complexModal=()=>o`
565
386
  <style>
566
387
  body {
567
388
  --swc-margin-test: 10px;
@@ -615,11 +436,7 @@ export const complexModal = () => {
615
436
  Toggle Dialog
616
437
  </sp-button>
617
438
  </overlay-trigger>
618
- `;
619
- };
620
- complexModal.decorators = [complexModalDecorator];
621
- export const superComplexModal = () => {
622
- return html`
439
+ `;complexModal.decorators=[T];export const superComplexModal=()=>o`
623
440
  <overlay-trigger type="modal" placement="none">
624
441
  <sp-button slot="trigger" variant="accent">Toggle Dialog</sp-button>
625
442
  <sp-popover dialog slot="click-content">
@@ -652,13 +469,7 @@ export const superComplexModal = () => {
652
469
  </overlay-trigger>
653
470
  </sp-popover>
654
471
  </overlay-trigger>
655
- `;
656
- };
657
- class StartEndContextmenu extends HTMLElement {
658
- constructor() {
659
- super();
660
- this.attachShadow({ mode: "open" });
661
- this.shadowRoot.innerHTML = `
472
+ `;class w extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
662
473
  <style>
663
474
  :host {
664
475
  display: flex;
@@ -671,22 +482,14 @@ class StartEndContextmenu extends HTMLElement {
671
482
  </style>
672
483
  <div id="start"></div>
673
484
  <div id="end"></div>
674
- `;
675
- }
676
- }
677
- customElements.define("start-end-contextmenu", StartEndContextmenu);
678
- export const virtualElement = (args) => {
679
- const contextMenuTemplate = (kind = "") => html`
485
+ `}}customElements.define("start-end-contextmenu",w);export const virtualElement=e=>{const t=(r="")=>o`
680
486
  <sp-popover
681
487
  style="width:300px;"
682
- @click=${(event) => {
683
- var _a;
684
- return (_a = event.target) == null ? void 0 : _a.dispatchEvent(new Event("close", { bubbles: true }));
685
- }}
488
+ @click=${c=>{var s;return(s=c.target)==null?void 0:s.dispatchEvent(new Event("close",{bubbles:!0}))}}
686
489
  >
687
490
  <sp-menu>
688
491
  <sp-menu-group>
689
- <span slot="header">Menu source: ${kind}</span>
492
+ <span slot="header">Menu source: ${r}</span>
690
493
  <sp-menu-item>Deselect</sp-menu-item>
691
494
  <sp-menu-item>Select inverse</sp-menu-item>
692
495
  <sp-menu-item>Feather...</sp-menu-item>
@@ -697,23 +500,7 @@ export const virtualElement = (args) => {
697
500
  </sp-menu-group>
698
501
  </sp-menu>
699
502
  </sp-popover>
700
- `;
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`
503
+ `;return o`
717
504
  <style>
718
505
  .app-root {
719
506
  position: absolute;
@@ -722,103 +509,33 @@ export const virtualElement = (args) => {
722
509
  </style>
723
510
  <start-end-contextmenu
724
511
  class="app-root"
725
- @contextmenu=${pointerenter}
512
+ @contextmenu=${async r=>{r.preventDefault();const c=r.composedPath()[0],{id:s}=c,u=r.target,g=new h(r.clientX,r.clientY),m=document.createDocumentFragment();f(t(s),m);const v=m.querySelector("sp-popover");y(u,"modal",v,{placement:e.placement,receivesFocus:"auto",virtualTrigger:g})}}
726
513
  ></start-end-contextmenu>
727
- `;
728
- };
729
- virtualElement.args = {
730
- placement: "right-start"
731
- };
732
- export const detachedElement = () => {
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", `
514
+ `};virtualElement.args={placement:"right-start"};export const detachedElement=()=>{let e;const t=async({target:n})=>{if(e){e(),e=void 0;return}const r=document.createElement("div");r.textContent="This div is overlaid",r.setAttribute("style",`
745
515
  background-color: var(--spectrum-global-color-gray-50);
746
516
  color: var(--spectrum-global-color-gray-800);
747
517
  border: 1px solid;
748
518
  padding: 2em;
749
- `);
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")
758
- });
759
- });
760
- return html`
519
+ `),e=await b.open(n,"click",r,{offset:0,placement:"bottom"})};return requestAnimationFrame(()=>{t({target:document.querySelector("#detached-content-trigger")})}),o`
761
520
  <sp-action-button
762
521
  id="detached-content-trigger"
763
- @click=${openDetachedOverlayContent}
764
- @sp-closed=${() => closeOverlay = void 0}
522
+ @click=${t}
523
+ @sp-closed=${()=>e=void 0}
765
524
  >
766
525
  <sp-icon-open-in
767
526
  slot="icon"
768
527
  label="Open in overlay"
769
528
  ></sp-icon-open-in>
770
529
  </sp-action-button>
771
- `;
772
- };
773
- class DefinedOverlayReady extends HTMLElement {
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
- }
805
- }
806
- customElements.define("defined-overlay-ready", DefinedOverlayReady);
807
- const definedOverlayDecorator = (story) => {
808
- return html`
809
- ${story()}
530
+ `};class x extends HTMLElement{constructor(){super();this.handleTriggerOpened=async()=>{await i();const t=document.querySelector("popover-content");!t||(t.addEventListener("sp-opened",this.handlePopoverOpen),t.button.click())};this.handlePopoverOpen=async()=>{await i(),this.ready(!0)};this.readyPromise=Promise.resolve(!1);this.readyPromise=new Promise(t=>{this.ready=t,this.setup()})}async setup(){await i();const t=document.querySelector("overlay-trigger"),n=document.querySelector('[slot="trigger"]');t.addEventListener("sp-opened",this.handleTriggerOpened),n.click()}get updateComplete(){return this.readyPromise}}customElements.define("defined-overlay-ready",x);const P=e=>o`
531
+ ${e()}
810
532
  <defined-overlay-ready></defined-overlay-ready>
811
- `;
812
- };
813
- export const definedOverlayElement = () => {
814
- return html`
533
+ `;export const definedOverlayElement=()=>o`
815
534
  <overlay-trigger placement="bottom" type="modal">
816
535
  <sp-button variant="primary" slot="trigger">Open popover</sp-button>
817
536
  <sp-popover slot="click-content" direction="bottom" dialog>
818
537
  <popover-content></popover-content>
819
538
  </sp-popover>
820
539
  </overlay-trigger>
821
- `;
822
- };
823
- definedOverlayElement.decorators = [definedOverlayDecorator];
540
+ `;definedOverlayElement.decorators=[P];
824
541
  //# sourceMappingURL=overlay.stories.js.map