@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.
- package/README.md +3 -0
- package/active-overlay.js +1 -2
- package/active-overlay.js.map +1 -1
- package/overlay-trigger.js +1 -2
- package/overlay-trigger.js.map +1 -1
- package/package.json +7 -7
- package/src/ActiveOverlay.js +8 -437
- package/src/ActiveOverlay.js.map +1 -1
- package/src/OverlayTrigger.js +2 -265
- package/src/OverlayTrigger.js.map +1 -1
- package/src/VirtualTrigger.js +1 -29
- package/src/VirtualTrigger.js.map +1 -1
- package/src/active-overlay.css.js +2 -4
- package/src/active-overlay.css.js.map +1 -1
- package/src/index.js +1 -6
- package/src/index.js.map +1 -1
- package/src/loader.js +1 -4
- package/src/loader.js.map +1 -1
- package/src/overlay-events.js +1 -6
- package/src/overlay-events.js.map +1 -1
- package/src/overlay-stack.js +2 -405
- package/src/overlay-stack.js.map +1 -1
- package/src/overlay-timer.js +1 -70
- package/src/overlay-timer.js.map +1 -1
- package/src/overlay-trigger.css.js +2 -4
- package/src/overlay-trigger.css.js.map +1 -1
- package/src/overlay-utils.js +1 -27
- package/src/overlay-utils.js.map +1 -1
- package/src/overlay.js +1 -84
- package/src/overlay.js.map +1 -1
- package/stories/overlay-story-components.js +11 -207
- package/stories/overlay-story-components.js.map +1 -1
- package/stories/overlay.stories.js +55 -338
- package/stories/overlay.stories.js.map +1 -1
- package/sync/overlay-trigger.js +1 -6
- package/sync/overlay-trigger.js.map +1 -1
- package/test/benchmark/basic-test.js +1 -6
- package/test/benchmark/basic-test.js.map +1 -1
- package/test/overlay-lifecycle.test.js +6 -112
- package/test/overlay-lifecycle.test.js.map +1 -1
- package/test/overlay-timer.test.js +1 -116
- package/test/overlay-timer.test.js.map +1 -1
- package/test/overlay-trigger-click.test.js +7 -51
- package/test/overlay-trigger-click.test.js.map +1 -1
- package/test/overlay-trigger-extended.test.js +4 -174
- package/test/overlay-trigger-extended.test.js.map +1 -1
- package/test/overlay-trigger-hover-click.test.js +3 -63
- package/test/overlay-trigger-hover-click.test.js.map +1 -1
- package/test/overlay-trigger-hover.test.js +7 -81
- package/test/overlay-trigger-hover.test.js.map +1 -1
- package/test/overlay-trigger-longpress.test.js +9 -177
- package/test/overlay-trigger-longpress.test.js.map +1 -1
- package/test/overlay-trigger-sync.test.js +4 -407
- package/test/overlay-trigger-sync.test.js.map +1 -1
- package/test/overlay-trigger.test.js +4 -407
- package/test/overlay-trigger.test.js.map +1 -1
- package/test/overlay.test-vrt.js +1 -3
- package/test/overlay.test-vrt.js.map +1 -1
- package/test/overlay.test.js +11 -477
- package/test/overlay.test.js.map +1 -1
|
@@ -1,33 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
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="${
|
|
123
|
-
offset="${
|
|
124
|
-
open=${
|
|
125
|
-
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="${
|
|
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=${
|
|
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
|
-
${
|
|
193
|
-
|
|
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=${(
|
|
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
|
-
${
|
|
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=${(
|
|
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
|
-
${
|
|
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=${
|
|
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
|
-
${
|
|
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=${(
|
|
286
|
-
|
|
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
|
-
${
|
|
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=${
|
|
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=${
|
|
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=${
|
|
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=${(
|
|
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: ${
|
|
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=${
|
|
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=${
|
|
764
|
-
@sp-closed=${()
|
|
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
|