@spectrum-web-components/overlay 0.30.1-overlay.41 → 0.31.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/active-overlay.d.ts +6 -0
- package/active-overlay.dev.js +5 -0
- package/{sp-overlay.dev.js.map → active-overlay.dev.js.map} +3 -3
- package/active-overlay.js +2 -0
- package/{sp-overlay.js.map → active-overlay.js.map} +4 -4
- package/custom-elements.json +1203 -0
- package/package.json +21 -50
- package/src/ActiveOverlay.d.ts +84 -0
- package/src/ActiveOverlay.dev.js +517 -0
- package/src/ActiveOverlay.dev.js.map +7 -0
- package/src/ActiveOverlay.js +16 -0
- package/src/ActiveOverlay.js.map +7 -0
- package/src/OverlayTrigger.d.ts +31 -23
- package/src/OverlayTrigger.dev.js +245 -135
- package/src/OverlayTrigger.dev.js.map +3 -3
- package/src/OverlayTrigger.js +22 -52
- package/src/OverlayTrigger.js.map +3 -3
- package/src/VirtualTrigger.dev.js +2 -0
- package/src/VirtualTrigger.dev.js.map +2 -2
- package/src/VirtualTrigger.js +1 -1
- package/src/VirtualTrigger.js.map +3 -3
- package/src/active-overlay.css.dev.js +13 -0
- package/src/active-overlay.css.dev.js.map +7 -0
- package/src/active-overlay.css.js +10 -0
- package/src/active-overlay.css.js.map +7 -0
- package/src/index.d.ts +3 -2
- package/src/index.dev.js +3 -2
- package/src/index.dev.js.map +2 -2
- package/src/index.js +1 -1
- package/src/index.js.map +2 -2
- package/src/loader.d.ts +2 -2
- package/src/loader.dev.js +19 -2
- package/src/loader.dev.js.map +2 -2
- package/src/loader.js +1 -1
- package/src/loader.js.map +3 -3
- package/src/overlay-stack.d.ts +50 -0
- package/src/overlay-stack.dev.js +514 -0
- package/src/overlay-stack.dev.js.map +7 -0
- package/src/overlay-stack.js +33 -0
- package/src/overlay-stack.js.map +7 -0
- package/src/overlay-trigger.css.dev.js +1 -1
- package/src/overlay-trigger.css.dev.js.map +1 -1
- package/src/overlay-trigger.css.js +1 -1
- package/src/overlay-trigger.css.js.map +1 -1
- package/src/overlay-types.d.ts +4 -6
- package/src/overlay-types.dev.js +0 -1
- package/src/overlay-types.dev.js.map +3 -3
- package/src/overlay-types.js +1 -1
- package/src/overlay-types.js.map +3 -3
- package/src/overlay-utils.d.ts +3 -0
- package/src/overlay-utils.dev.js +31 -0
- package/src/overlay-utils.dev.js.map +7 -0
- package/src/overlay-utils.js +2 -0
- package/src/overlay-utils.js.map +7 -0
- package/src/overlay.d.ts +59 -0
- package/src/overlay.dev.js +127 -0
- package/src/overlay.dev.js.map +7 -0
- package/src/overlay.js +2 -0
- package/src/overlay.js.map +7 -0
- package/stories/overlay-story-components.js +8 -9
- package/stories/overlay-story-components.js.map +2 -2
- package/stories/overlay.stories.js +652 -678
- package/stories/overlay.stories.js.map +2 -2
- package/sync/overlay-trigger.d.ts +0 -4
- package/sync/overlay-trigger.dev.js +4 -1
- package/sync/overlay-trigger.dev.js.map +2 -2
- package/sync/overlay-trigger.js +1 -1
- package/sync/overlay-trigger.js.map +3 -3
- package/test/benchmark/basic-test.js +1 -1
- package/test/benchmark/basic-test.js.map +1 -1
- package/test/index.js +375 -422
- package/test/index.js.map +3 -3
- package/test/overlay-lifecycle.test.js +106 -34
- package/test/overlay-lifecycle.test.js.map +2 -2
- package/test/overlay-trigger-click.test.js +5 -11
- package/test/overlay-trigger-click.test.js.map +2 -2
- package/test/overlay-trigger-extended.test.js +6 -1
- package/test/overlay-trigger-extended.test.js.map +2 -2
- package/test/overlay-trigger-hover-click.test.js +23 -23
- package/test/overlay-trigger-hover-click.test.js.map +2 -2
- package/test/overlay-trigger-hover.test.js +34 -40
- package/test/overlay-trigger-hover.test.js.map +2 -2
- package/test/overlay-trigger-longpress.test.js +80 -98
- package/test/overlay-trigger-longpress.test.js.map +2 -2
- package/test/overlay-trigger-sync.test.js +1 -1
- package/test/overlay-trigger-sync.test.js.map +2 -2
- package/test/overlay-trigger.test.js +1 -1
- package/test/overlay-trigger.test.js.map +2 -2
- package/test/overlay-update.test.js +4 -4
- package/test/overlay-update.test.js.map +2 -2
- package/test/overlay.test.js +235 -237
- package/test/overlay.test.js.map +3 -3
- package/sp-overlay.d.ts +0 -6
- package/sp-overlay.dev.js +0 -5
- package/sp-overlay.js +0 -2
- package/src/Overlay.d.ts +0 -28
- package/src/Overlay.dev.js +0 -88
- package/src/Overlay.dev.js.map +0 -7
- package/src/Overlay.js +0 -2
- package/src/Overlay.js.map +0 -7
- package/src/OverlayBase.d.ts +0 -117
- package/src/OverlayBase.dev.js +0 -680
- package/src/OverlayBase.dev.js.map +0 -7
- package/src/OverlayBase.js +0 -17
- package/src/OverlayBase.js.map +0 -7
- package/src/OverlayDialog.d.ts +0 -8
- package/src/OverlayDialog.dev.js +0 -151
- package/src/OverlayDialog.dev.js.map +0 -7
- package/src/OverlayDialog.js +0 -2
- package/src/OverlayDialog.js.map +0 -7
- package/src/OverlayNoPopover.d.ts +0 -8
- package/src/OverlayNoPopover.dev.js +0 -121
- package/src/OverlayNoPopover.dev.js.map +0 -7
- package/src/OverlayNoPopover.js +0 -2
- package/src/OverlayNoPopover.js.map +0 -7
- package/src/OverlayPopover.d.ts +0 -8
- package/src/OverlayPopover.dev.js +0 -171
- package/src/OverlayPopover.dev.js.map +0 -7
- package/src/OverlayPopover.js +0 -2
- package/src/OverlayPopover.js.map +0 -7
- package/src/OverlayStack.d.ts +0 -24
- package/src/OverlayStack.dev.js +0 -125
- package/src/OverlayStack.dev.js.map +0 -7
- package/src/OverlayStack.js +0 -2
- package/src/OverlayStack.js.map +0 -7
- package/src/PlacementController.d.ts +0 -36
- package/src/PlacementController.dev.js +0 -193
- package/src/PlacementController.dev.js.map +0 -7
- package/src/PlacementController.js +0 -2
- package/src/PlacementController.js.map +0 -7
- package/src/fullSizePlugin.d.ts +0 -12
- package/src/fullSizePlugin.dev.js +0 -39
- package/src/fullSizePlugin.dev.js.map +0 -7
- package/src/fullSizePlugin.js +0 -2
- package/src/fullSizePlugin.js.map +0 -7
- package/src/overlay-base.css.dev.js +0 -9
- package/src/overlay-base.css.dev.js.map +0 -7
- package/src/overlay-base.css.js +0 -6
- package/src/overlay-base.css.js.map +0 -7
- package/src/placement.d.ts +0 -21
- package/src/placement.dev.js +0 -111
- package/src/placement.dev.js.map +0 -7
- package/src/placement.js +0 -2
- package/src/placement.js.map +0 -7
- package/src/topLayerOverTransforms.d.ts +0 -22
- package/src/topLayerOverTransforms.dev.js +0 -165
- package/src/topLayerOverTransforms.dev.js.map +0 -7
- package/src/topLayerOverTransforms.js +0 -2
- package/src/topLayerOverTransforms.js.map +0 -7
- package/stories/overlay-element.stories.js +0 -230
- package/stories/overlay-element.stories.js.map +0 -7
- package/test/overlay-element.test-vrt.js +0 -5
- package/test/overlay-element.test-vrt.js.map +0 -7
- package/test/overlay-element.test.js +0 -664
- package/test/overlay-element.test.js.map +0 -7
- /package/src/{overlay-base.css.d.ts → active-overlay.css.d.ts} +0 -0
|
@@ -3,6 +3,7 @@ import { html } from "@spectrum-web-components/base";
|
|
|
3
3
|
import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
|
|
4
4
|
import {
|
|
5
5
|
openOverlay,
|
|
6
|
+
Overlay,
|
|
6
7
|
VirtualTrigger
|
|
7
8
|
} from "@spectrum-web-components/overlay";
|
|
8
9
|
import "@spectrum-web-components/action-button/sp-action-button.js";
|
|
@@ -14,10 +15,8 @@ import "@spectrum-web-components/icons-workflow/icons/sp-icon-magnify.js";
|
|
|
14
15
|
import "@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js";
|
|
15
16
|
import "@spectrum-web-components/overlay/overlay-trigger.js";
|
|
16
17
|
import "@spectrum-web-components/picker/sp-picker.js";
|
|
17
|
-
import "@spectrum-web-components/overlay/sp-overlay.js";
|
|
18
18
|
import "@spectrum-web-components/menu/sp-menu.js";
|
|
19
19
|
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
20
|
-
import "@spectrum-web-components/menu/sp-menu-group.js";
|
|
21
20
|
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
22
21
|
import "@spectrum-web-components/popover/sp-popover.js";
|
|
23
22
|
import "@spectrum-web-components/slider/sp-slider.js";
|
|
@@ -153,6 +152,7 @@ const template = ({
|
|
|
153
152
|
slot="click-content"
|
|
154
153
|
placement="bottom"
|
|
155
154
|
tip
|
|
155
|
+
open
|
|
156
156
|
>
|
|
157
157
|
<div class="options-popover-content">
|
|
158
158
|
Another Popover
|
|
@@ -175,147 +175,18 @@ const template = ({
|
|
|
175
175
|
</overlay-trigger>
|
|
176
176
|
`;
|
|
177
177
|
};
|
|
178
|
-
const extraText = html`
|
|
179
|
-
<p>This is some text.</p>
|
|
180
|
-
<p>This is some text.</p>
|
|
181
|
-
<p>
|
|
182
|
-
This is a
|
|
183
|
-
<a href="#anchor">link</a>
|
|
184
|
-
.
|
|
185
|
-
</p>
|
|
186
|
-
`;
|
|
187
|
-
function nextFrame() {
|
|
188
|
-
return new Promise((res) => requestAnimationFrame(() => res()));
|
|
189
|
-
}
|
|
190
178
|
export const Default = (args) => template(args);
|
|
191
|
-
export const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
slot="click-content"
|
|
200
|
-
style="overflow-y: scroll;position: static;"
|
|
201
|
-
>
|
|
202
|
-
<sp-accordion allow-multiple>
|
|
203
|
-
<sp-accordion-item label="Some things">
|
|
204
|
-
<p>
|
|
205
|
-
Thing
|
|
206
|
-
<br />
|
|
207
|
-
<br />
|
|
208
|
-
<br />
|
|
209
|
-
<br />
|
|
210
|
-
<br />
|
|
211
|
-
<br />
|
|
212
|
-
<br />
|
|
213
|
-
more things
|
|
214
|
-
</p>
|
|
215
|
-
</sp-accordion-item>
|
|
216
|
-
<sp-accordion-item label="Other things">
|
|
217
|
-
<p>
|
|
218
|
-
Thing
|
|
219
|
-
<br />
|
|
220
|
-
<br />
|
|
221
|
-
<br />
|
|
222
|
-
<br />
|
|
223
|
-
<br />
|
|
224
|
-
<br />
|
|
225
|
-
<br />
|
|
226
|
-
more things
|
|
227
|
-
</p>
|
|
228
|
-
</sp-accordion-item>
|
|
229
|
-
<sp-accordion-item label="More things">
|
|
230
|
-
<p>
|
|
231
|
-
Thing
|
|
232
|
-
<br />
|
|
233
|
-
<br />
|
|
234
|
-
<br />
|
|
235
|
-
<br />
|
|
236
|
-
<br />
|
|
237
|
-
<br />
|
|
238
|
-
<br />
|
|
239
|
-
more things
|
|
240
|
-
</p>
|
|
241
|
-
</sp-accordion-item>
|
|
242
|
-
<sp-accordion-item label="Additional things">
|
|
243
|
-
<p>
|
|
244
|
-
Thing
|
|
245
|
-
<br />
|
|
246
|
-
<br />
|
|
247
|
-
<br />
|
|
248
|
-
<br />
|
|
249
|
-
<br />
|
|
250
|
-
<br />
|
|
251
|
-
<br />
|
|
252
|
-
more things
|
|
253
|
-
</p>
|
|
254
|
-
</sp-accordion-item>
|
|
255
|
-
</sp-accordion>
|
|
256
|
-
</sp-popover>
|
|
257
|
-
</overlay-trigger>
|
|
258
|
-
`;
|
|
259
|
-
};
|
|
260
|
-
accordion.swc_vrt = {
|
|
261
|
-
skip: true
|
|
262
|
-
};
|
|
263
|
-
export const clickAndHoverTargets = () => {
|
|
264
|
-
return html`
|
|
265
|
-
<div>
|
|
266
|
-
${storyStyles}
|
|
267
|
-
<style>
|
|
268
|
-
.friendly-target {
|
|
269
|
-
padding: 4px;
|
|
270
|
-
margin: 6px;
|
|
271
|
-
border: 2px solid black;
|
|
272
|
-
border-radius: 6px;
|
|
273
|
-
cursor: default;
|
|
274
|
-
}
|
|
275
|
-
</style>
|
|
276
|
-
<overlay-trigger placement="right">
|
|
277
|
-
<div class="friendly-target" slot="trigger" tabindex="0">
|
|
278
|
-
Click me
|
|
279
|
-
</div>
|
|
280
|
-
<sp-tooltip slot="click-content" tip="right">
|
|
281
|
-
Ok, now hover the other trigger
|
|
282
|
-
</sp-tooltip>
|
|
283
|
-
</overlay-trigger>
|
|
284
|
-
<overlay-trigger placement="left">
|
|
285
|
-
<div class="friendly-target" slot="trigger" tabindex="0">
|
|
286
|
-
Then hover me
|
|
287
|
-
</div>
|
|
288
|
-
<sp-tooltip slot="hover-content" tip="right">
|
|
289
|
-
Now click my trigger -- I should stay open, but the other
|
|
290
|
-
overlay should close
|
|
291
|
-
</sp-tooltip>
|
|
292
|
-
</overlay-trigger>
|
|
293
|
-
</div>
|
|
294
|
-
`;
|
|
295
|
-
};
|
|
296
|
-
clickAndHoverTargets.swc_vrt = {
|
|
297
|
-
skip: true
|
|
298
|
-
};
|
|
179
|
+
export const openHoverContent = (args) => template({
|
|
180
|
+
...args,
|
|
181
|
+
open: "hover"
|
|
182
|
+
});
|
|
183
|
+
export const openClickContent = (args) => template({
|
|
184
|
+
...args,
|
|
185
|
+
open: "click"
|
|
186
|
+
});
|
|
299
187
|
class ScrollForcer extends HTMLElement {
|
|
300
188
|
constructor() {
|
|
301
189
|
super();
|
|
302
|
-
this.doScroll = async () => {
|
|
303
|
-
var _a;
|
|
304
|
-
(_a = this.previousElementSibling) == null ? void 0 : _a.addEventListener(
|
|
305
|
-
"sp-opened",
|
|
306
|
-
this.doScroll
|
|
307
|
-
);
|
|
308
|
-
await nextFrame();
|
|
309
|
-
await nextFrame();
|
|
310
|
-
await nextFrame();
|
|
311
|
-
await nextFrame();
|
|
312
|
-
if (document.scrollingElement) {
|
|
313
|
-
document.scrollingElement.scrollTop = 100;
|
|
314
|
-
}
|
|
315
|
-
await nextFrame();
|
|
316
|
-
await nextFrame();
|
|
317
|
-
this.ready(true);
|
|
318
|
-
};
|
|
319
190
|
this.readyPromise = Promise.resolve(false);
|
|
320
191
|
this.readyPromise = new Promise((res) => {
|
|
321
192
|
this.ready = res;
|
|
@@ -323,16 +194,28 @@ class ScrollForcer extends HTMLElement {
|
|
|
323
194
|
this.setup();
|
|
324
195
|
}
|
|
325
196
|
async setup() {
|
|
326
|
-
var _a
|
|
197
|
+
var _a;
|
|
327
198
|
await nextFrame();
|
|
328
199
|
await nextFrame();
|
|
329
200
|
(_a = this.previousElementSibling) == null ? void 0 : _a.addEventListener(
|
|
330
201
|
"sp-opened",
|
|
331
|
-
|
|
202
|
+
() => {
|
|
203
|
+
this.doScroll();
|
|
204
|
+
},
|
|
205
|
+
{ once: true }
|
|
332
206
|
);
|
|
207
|
+
}
|
|
208
|
+
async doScroll() {
|
|
209
|
+
await nextFrame();
|
|
210
|
+
await nextFrame();
|
|
211
|
+
await nextFrame();
|
|
212
|
+
await nextFrame();
|
|
213
|
+
if (document.scrollingElement) {
|
|
214
|
+
document.scrollingElement.scrollTop = 100;
|
|
215
|
+
}
|
|
333
216
|
await nextFrame();
|
|
334
217
|
await nextFrame();
|
|
335
|
-
|
|
218
|
+
this.ready(true);
|
|
336
219
|
}
|
|
337
220
|
get updateComplete() {
|
|
338
221
|
return this.readyPromise;
|
|
@@ -342,7 +225,8 @@ customElements.define("scroll-forcer", ScrollForcer);
|
|
|
342
225
|
export const clickContentClosedOnScroll = (args) => html`
|
|
343
226
|
<div style="margin: 50vh 0 100vh;">
|
|
344
227
|
${template({
|
|
345
|
-
...args
|
|
228
|
+
...args,
|
|
229
|
+
open: "click"
|
|
346
230
|
})}
|
|
347
231
|
</div>
|
|
348
232
|
`;
|
|
@@ -361,165 +245,180 @@ clickContentClosedOnScroll.decorators = [
|
|
|
361
245
|
<scroll-forcer></scroll-forcer>
|
|
362
246
|
`
|
|
363
247
|
];
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
};
|
|
379
|
-
this.readyPromise = Promise.resolve(false);
|
|
380
|
-
this.readyPromise = new Promise((res) => {
|
|
381
|
-
this.ready = res;
|
|
382
|
-
this.setup();
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
async setup() {
|
|
386
|
-
await nextFrame();
|
|
387
|
-
const overlay = document.querySelector(
|
|
388
|
-
`overlay-trigger`
|
|
389
|
-
);
|
|
390
|
-
overlay.addEventListener("sp-opened", this.handleTriggerOpened);
|
|
391
|
-
}
|
|
392
|
-
get updateComplete() {
|
|
393
|
-
return this.readyPromise;
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
customElements.define("complex-modal-ready", ComplexModalReady);
|
|
397
|
-
const complexModalDecorator = (story) => {
|
|
398
|
-
return html`
|
|
399
|
-
${story()}
|
|
400
|
-
<complex-modal-ready></complex-modal-ready>
|
|
401
|
-
`;
|
|
402
|
-
};
|
|
403
|
-
export const complexModal = () => {
|
|
404
|
-
return html`
|
|
405
|
-
<style>
|
|
406
|
-
body {
|
|
407
|
-
--swc-margin-test: 10px;
|
|
408
|
-
margin: var(--swc-margin-test);
|
|
409
|
-
}
|
|
410
|
-
sp-story-decorator::part(container) {
|
|
411
|
-
min-height: calc(100vh - (2 * var(--swc-margin-test)));
|
|
412
|
-
padding: 0;
|
|
413
|
-
display: grid;
|
|
414
|
-
place-content: center;
|
|
415
|
-
}
|
|
416
|
-
active-overlay > * {
|
|
417
|
-
--spectrum-global-animation-duration-100: 0ms;
|
|
418
|
-
--spectrum-global-animation-duration-200: 0ms;
|
|
419
|
-
--spectrum-global-animation-duration-300: 0ms;
|
|
420
|
-
--spectrum-global-animation-duration-400: 0ms;
|
|
421
|
-
--spectrum-global-animation-duration-500: 0ms;
|
|
422
|
-
--spectrum-global-animation-duration-600: 0ms;
|
|
423
|
-
--spectrum-global-animation-duration-700: 0ms;
|
|
424
|
-
--spectrum-global-animation-duration-800: 0ms;
|
|
425
|
-
--spectrum-global-animation-duration-900: 0ms;
|
|
426
|
-
--spectrum-global-animation-duration-1000: 0ms;
|
|
427
|
-
--spectrum-global-animation-duration-2000: 0ms;
|
|
428
|
-
--spectrum-global-animation-duration-4000: 0ms;
|
|
429
|
-
--spectrum-animation-duration-0: 0ms;
|
|
430
|
-
--spectrum-animation-duration-100: 0ms;
|
|
431
|
-
--spectrum-animation-duration-200: 0ms;
|
|
432
|
-
--spectrum-animation-duration-300: 0ms;
|
|
433
|
-
--spectrum-animation-duration-400: 0ms;
|
|
434
|
-
--spectrum-animation-duration-500: 0ms;
|
|
435
|
-
--spectrum-animation-duration-600: 0ms;
|
|
436
|
-
--spectrum-animation-duration-700: 0ms;
|
|
437
|
-
--spectrum-animation-duration-800: 0ms;
|
|
438
|
-
--spectrum-animation-duration-900: 0ms;
|
|
439
|
-
--spectrum-animation-duration-1000: 0ms;
|
|
440
|
-
--spectrum-animation-duration-2000: 0ms;
|
|
441
|
-
--spectrum-animation-duration-4000: 0ms;
|
|
442
|
-
--spectrum-coachmark-animation-indicator-ring-duration: 0ms;
|
|
443
|
-
--swc-test-duration: 1ms;
|
|
444
|
-
}
|
|
445
|
-
</style>
|
|
446
|
-
<overlay-trigger type="modal" placement="none" open="click">
|
|
447
|
-
<sp-dialog-wrapper
|
|
448
|
-
slot="click-content"
|
|
449
|
-
headline="Dialog title"
|
|
450
|
-
dismissable
|
|
451
|
-
underlay
|
|
452
|
-
footer="Content for footer"
|
|
453
|
-
>
|
|
454
|
-
<sp-field-label for="test-picker">
|
|
455
|
-
Selection type:
|
|
456
|
-
</sp-field-label>
|
|
457
|
-
<sp-picker id="test-picker">
|
|
458
|
-
<sp-menu-item>Deselect</sp-menu-item>
|
|
459
|
-
<sp-menu-item>Select inverse</sp-menu-item>
|
|
460
|
-
<sp-menu-item>Feather...</sp-menu-item>
|
|
461
|
-
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
462
|
-
<sp-menu-divider></sp-menu-divider>
|
|
463
|
-
<sp-menu-item>Save selection</sp-menu-item>
|
|
464
|
-
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
465
|
-
</sp-picker>
|
|
466
|
-
</sp-dialog-wrapper>
|
|
467
|
-
<sp-button slot="trigger" variant="primary">
|
|
468
|
-
Toggle Dialog
|
|
469
|
-
</sp-button>
|
|
470
|
-
</overlay-trigger>
|
|
471
|
-
`;
|
|
248
|
+
export const noCloseOnResize = (args) => html`
|
|
249
|
+
<style>
|
|
250
|
+
sp-button:hover {
|
|
251
|
+
border: 10px solid;
|
|
252
|
+
width: 100px;
|
|
253
|
+
}
|
|
254
|
+
</style>
|
|
255
|
+
${template({
|
|
256
|
+
...args,
|
|
257
|
+
open: "click"
|
|
258
|
+
})}
|
|
259
|
+
`;
|
|
260
|
+
noCloseOnResize.swc_vrt = {
|
|
261
|
+
skip: true
|
|
472
262
|
};
|
|
473
|
-
complexModal.decorators = [complexModalDecorator];
|
|
474
263
|
export const customizedClickContent = (args) => html`
|
|
475
264
|
<style>
|
|
476
|
-
overlay
|
|
477
|
-
--styled-div-background-color: var(
|
|
478
|
-
|
|
479
|
-
);
|
|
480
|
-
--spectrum-button-m-accent-fill-texticon-background-color: rebeccapurple;
|
|
265
|
+
active-overlay::part(theme) {
|
|
266
|
+
--styled-div-background-color: var(--spectrum-semantic-cta-background-color-default);
|
|
267
|
+
--spectrum-button-m-cta-texticon-background-color: rebeccapurple;
|
|
481
268
|
}
|
|
482
269
|
</style>
|
|
270
|
+
</style>
|
|
483
271
|
${template({
|
|
484
272
|
...args,
|
|
485
273
|
open: "click"
|
|
486
274
|
})}
|
|
487
275
|
`;
|
|
488
|
-
|
|
489
|
-
<
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
<
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
My Tooltip 1
|
|
497
|
-
</sp-tooltip>
|
|
498
|
-
A
|
|
499
|
-
</sp-action-button>
|
|
500
|
-
<sp-action-button>
|
|
501
|
-
<sp-tooltip self-managed placement="bottom" offset="0">
|
|
502
|
-
My Tooltip 1
|
|
503
|
-
</sp-tooltip>
|
|
504
|
-
B
|
|
505
|
-
</sp-action-button>
|
|
506
|
-
</sp-popover>
|
|
507
|
-
</overlay-trigger>
|
|
508
|
-
|
|
509
|
-
<overlay-trigger>
|
|
510
|
-
<sp-button variant="primary" slot="trigger">
|
|
511
|
-
Open popover 2 with buttons without ToolTips
|
|
512
|
-
</sp-button>
|
|
513
|
-
<sp-popover dialog slot="click-content" direction="bottom" tip>
|
|
514
|
-
<sp-action-button>X</sp-action-button>
|
|
515
|
-
<sp-action-button>Y</sp-action-button>
|
|
516
|
-
</sp-popover>
|
|
517
|
-
</overlay-trigger>
|
|
276
|
+
const extraText = html`
|
|
277
|
+
<p>This is some text.</p>
|
|
278
|
+
<p>This is some text.</p>
|
|
279
|
+
<p>
|
|
280
|
+
This is a
|
|
281
|
+
<a href="#anchor">link</a>
|
|
282
|
+
.
|
|
283
|
+
</p>
|
|
518
284
|
`;
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
285
|
+
export const inline = () => {
|
|
286
|
+
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
287
|
+
return html`
|
|
288
|
+
<overlay-trigger type="inline">
|
|
289
|
+
<sp-button slot="trigger">Open</sp-button>
|
|
290
|
+
<sp-overlay slot="click-content">
|
|
291
|
+
<sp-button
|
|
292
|
+
@click=${(event) => {
|
|
293
|
+
event.target.dispatchEvent(closeEvent);
|
|
294
|
+
}}
|
|
295
|
+
>
|
|
296
|
+
Close
|
|
297
|
+
</sp-button>
|
|
298
|
+
</sp-overlay>
|
|
299
|
+
</overlay-trigger>
|
|
300
|
+
${extraText}
|
|
301
|
+
`;
|
|
302
|
+
};
|
|
303
|
+
export const replace = () => {
|
|
304
|
+
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
305
|
+
return html`
|
|
306
|
+
<overlay-trigger type="replace">
|
|
307
|
+
<sp-button slot="trigger">Open</sp-button>
|
|
308
|
+
<sp-overlay slot="click-content">
|
|
309
|
+
<sp-button
|
|
310
|
+
@click=${(event) => {
|
|
311
|
+
event.target.dispatchEvent(closeEvent);
|
|
312
|
+
}}
|
|
313
|
+
>
|
|
314
|
+
Close
|
|
315
|
+
</sp-button>
|
|
316
|
+
</sp-overlay>
|
|
317
|
+
</overlay-trigger>
|
|
318
|
+
${extraText}
|
|
319
|
+
`;
|
|
320
|
+
};
|
|
321
|
+
export const deep = () => html`
|
|
322
|
+
<overlay-trigger>
|
|
323
|
+
<sp-button variant="primary" slot="trigger">
|
|
324
|
+
Open popover 1 with buttons + selfmanaged Tooltips
|
|
325
|
+
</sp-button>
|
|
326
|
+
<sp-popover dialog slot="click-content" direction="bottom" tip open>
|
|
327
|
+
<sp-action-button>
|
|
328
|
+
<sp-tooltip self-managed placement="bottom" offset="0">
|
|
329
|
+
My Tooltip 1
|
|
330
|
+
</sp-tooltip>
|
|
331
|
+
A
|
|
332
|
+
</sp-action-button>
|
|
333
|
+
<sp-action-button>
|
|
334
|
+
<sp-tooltip self-managed placement="bottom" offset="0">
|
|
335
|
+
My Tooltip 1
|
|
336
|
+
</sp-tooltip>
|
|
337
|
+
B
|
|
338
|
+
</sp-action-button>
|
|
339
|
+
</sp-popover>
|
|
340
|
+
</overlay-trigger>
|
|
341
|
+
|
|
342
|
+
<overlay-trigger>
|
|
343
|
+
<sp-button variant="primary" slot="trigger">
|
|
344
|
+
Open popover 2 with buttons without ToolTips
|
|
345
|
+
</sp-button>
|
|
346
|
+
<sp-popover dialog slot="click-content" direction="bottom" tip open>
|
|
347
|
+
<sp-action-button>X</sp-action-button>
|
|
348
|
+
<sp-action-button>Y</sp-action-button>
|
|
349
|
+
</sp-popover>
|
|
350
|
+
</overlay-trigger>
|
|
351
|
+
`;
|
|
352
|
+
deep.swc_vrt = {
|
|
353
|
+
skip: true
|
|
354
|
+
};
|
|
355
|
+
export const modalLoose = () => {
|
|
356
|
+
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
357
|
+
return html`
|
|
358
|
+
<overlay-trigger type="modal" placement="none">
|
|
359
|
+
<sp-button slot="trigger">Open</sp-button>
|
|
360
|
+
<sp-dialog
|
|
361
|
+
size="s"
|
|
362
|
+
dismissable
|
|
363
|
+
slot="click-content"
|
|
364
|
+
@closed=${(event) => event.target.dispatchEvent(closeEvent)}
|
|
365
|
+
>
|
|
366
|
+
<h2 slot="heading">Loose Dialog</h2>
|
|
367
|
+
<p>
|
|
368
|
+
The
|
|
369
|
+
<code>sp-dialog</code>
|
|
370
|
+
element is not "meant" to be a modal alone. In that way it
|
|
371
|
+
does not manage its own
|
|
372
|
+
<code>open</code>
|
|
373
|
+
attribute or outline when it should have
|
|
374
|
+
<code>pointer-events: auto</code>
|
|
375
|
+
. It's a part of this test suite to prove that content in
|
|
376
|
+
this way can be used in an
|
|
377
|
+
<code>overlay-trigger</code>
|
|
378
|
+
element.
|
|
379
|
+
</p>
|
|
380
|
+
</sp-dialog>
|
|
381
|
+
</overlay-trigger>
|
|
382
|
+
${extraText}
|
|
383
|
+
`;
|
|
384
|
+
};
|
|
385
|
+
export const modalManaged = () => {
|
|
386
|
+
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
387
|
+
return html`
|
|
388
|
+
<overlay-trigger type="modal" placement="none">
|
|
389
|
+
<sp-button slot="trigger">Open</sp-button>
|
|
390
|
+
<sp-dialog-wrapper
|
|
391
|
+
underlay
|
|
392
|
+
slot="click-content"
|
|
393
|
+
headline="Wrapped Dialog w/ Hero Image"
|
|
394
|
+
confirm-label="Keep Both"
|
|
395
|
+
secondary-label="Replace"
|
|
396
|
+
cancel-label="Cancel"
|
|
397
|
+
footer="Content for footer"
|
|
398
|
+
@confirm=${(event) => {
|
|
399
|
+
event.target.dispatchEvent(closeEvent);
|
|
400
|
+
}}
|
|
401
|
+
@secondary=${(event) => {
|
|
402
|
+
event.target.dispatchEvent(closeEvent);
|
|
403
|
+
}}
|
|
404
|
+
@cancel=${(event) => {
|
|
405
|
+
event.target.dispatchEvent(closeEvent);
|
|
406
|
+
}}
|
|
407
|
+
>
|
|
408
|
+
<p>
|
|
409
|
+
The
|
|
410
|
+
<code>sp-dialog-wrapper</code>
|
|
411
|
+
element has been prepared for use in an
|
|
412
|
+
<code>overlay-trigger</code>
|
|
413
|
+
element by it's combination of modal, underlay, etc. styles
|
|
414
|
+
and features.
|
|
415
|
+
</p>
|
|
416
|
+
</sp-dialog-wrapper>
|
|
417
|
+
</overlay-trigger>
|
|
418
|
+
${extraText}
|
|
419
|
+
`;
|
|
420
|
+
};
|
|
421
|
+
export const deepNesting = () => {
|
|
523
422
|
const color = window.__swc_hack_knobs__.defaultColor;
|
|
524
423
|
const outter = color === "light" ? "dark" : "light";
|
|
525
424
|
return html`
|
|
@@ -548,115 +447,6 @@ export const deepNesting = () => {
|
|
|
548
447
|
</sp-theme>
|
|
549
448
|
`;
|
|
550
449
|
};
|
|
551
|
-
class DefinedOverlayReady extends HTMLElement {
|
|
552
|
-
constructor() {
|
|
553
|
-
super(...arguments);
|
|
554
|
-
this.handleTriggerOpened = async () => {
|
|
555
|
-
this.overlay.removeEventListener("sp-opened", this.handleTriggerOpened);
|
|
556
|
-
await nextFrame();
|
|
557
|
-
await nextFrame();
|
|
558
|
-
await nextFrame();
|
|
559
|
-
await nextFrame();
|
|
560
|
-
this.popover = document.querySelector(
|
|
561
|
-
"popover-content"
|
|
562
|
-
);
|
|
563
|
-
if (!this.popover) {
|
|
564
|
-
return;
|
|
565
|
-
}
|
|
566
|
-
this.popover.addEventListener("sp-opened", this.handlePopoverOpen);
|
|
567
|
-
await nextFrame();
|
|
568
|
-
await nextFrame();
|
|
569
|
-
this.popover.button.click();
|
|
570
|
-
};
|
|
571
|
-
this.handlePopoverOpen = async () => {
|
|
572
|
-
await nextFrame();
|
|
573
|
-
this.ready(true);
|
|
574
|
-
};
|
|
575
|
-
this.readyPromise = Promise.resolve(false);
|
|
576
|
-
}
|
|
577
|
-
connectedCallback() {
|
|
578
|
-
if (!!this.ready)
|
|
579
|
-
return;
|
|
580
|
-
this.readyPromise = new Promise((res) => {
|
|
581
|
-
this.ready = res;
|
|
582
|
-
this.setup();
|
|
583
|
-
});
|
|
584
|
-
}
|
|
585
|
-
async setup() {
|
|
586
|
-
await nextFrame();
|
|
587
|
-
await nextFrame();
|
|
588
|
-
this.overlay = document.querySelector(
|
|
589
|
-
`overlay-trigger`
|
|
590
|
-
);
|
|
591
|
-
const button = document.querySelector(
|
|
592
|
-
`[slot="trigger"]`
|
|
593
|
-
);
|
|
594
|
-
this.overlay.addEventListener("sp-opened", this.handleTriggerOpened);
|
|
595
|
-
await nextFrame();
|
|
596
|
-
await nextFrame();
|
|
597
|
-
button.click();
|
|
598
|
-
}
|
|
599
|
-
disconnectedCallback() {
|
|
600
|
-
this.overlay.removeEventListener("sp-opened", this.handleTriggerOpened);
|
|
601
|
-
this.popover.removeEventListener("sp-opened", this.handlePopoverOpen);
|
|
602
|
-
}
|
|
603
|
-
get updateComplete() {
|
|
604
|
-
return this.readyPromise;
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
customElements.define("defined-overlay-ready", DefinedOverlayReady);
|
|
608
|
-
const definedOverlayDecorator = (story) => {
|
|
609
|
-
return html`
|
|
610
|
-
${story()}
|
|
611
|
-
<defined-overlay-ready></defined-overlay-ready>
|
|
612
|
-
`;
|
|
613
|
-
};
|
|
614
|
-
export const definedOverlayElement = () => {
|
|
615
|
-
return html`
|
|
616
|
-
<overlay-trigger placement="bottom" type="modal">
|
|
617
|
-
<sp-button variant="primary" slot="trigger">Open popover</sp-button>
|
|
618
|
-
<sp-popover slot="click-content" direction="bottom" dialog>
|
|
619
|
-
<popover-content></popover-content>
|
|
620
|
-
</sp-popover>
|
|
621
|
-
</overlay-trigger>
|
|
622
|
-
`;
|
|
623
|
-
};
|
|
624
|
-
definedOverlayElement.decorators = [definedOverlayDecorator];
|
|
625
|
-
export const detachedElement = () => {
|
|
626
|
-
let closeOverlay;
|
|
627
|
-
const openDetachedOverlayContent = async () => {
|
|
628
|
-
if (closeOverlay) {
|
|
629
|
-
closeOverlay();
|
|
630
|
-
closeOverlay = void 0;
|
|
631
|
-
return;
|
|
632
|
-
}
|
|
633
|
-
const div = document.createElement("div");
|
|
634
|
-
div.textContent = "This div is overlaid";
|
|
635
|
-
div.setAttribute(
|
|
636
|
-
"style",
|
|
637
|
-
`
|
|
638
|
-
background-color: var(--spectrum-global-color-gray-50);
|
|
639
|
-
color: var(--spectrum-global-color-gray-800);
|
|
640
|
-
border: 1px solid;
|
|
641
|
-
padding: 2em;
|
|
642
|
-
`
|
|
643
|
-
);
|
|
644
|
-
};
|
|
645
|
-
requestAnimationFrame(() => {
|
|
646
|
-
});
|
|
647
|
-
return html`
|
|
648
|
-
<sp-action-button
|
|
649
|
-
id="detached-content-trigger"
|
|
650
|
-
@click=${openDetachedOverlayContent}
|
|
651
|
-
@sp-closed=${() => closeOverlay = void 0}
|
|
652
|
-
>
|
|
653
|
-
<sp-icon-open-in
|
|
654
|
-
slot="icon"
|
|
655
|
-
label="Open in overlay"
|
|
656
|
-
></sp-icon-open-in>
|
|
657
|
-
</sp-action-button>
|
|
658
|
-
`;
|
|
659
|
-
};
|
|
660
450
|
export const edges = () => {
|
|
661
451
|
return html`
|
|
662
452
|
<style>
|
|
@@ -686,7 +476,7 @@ export const edges = () => {
|
|
|
686
476
|
<br />
|
|
687
477
|
Left
|
|
688
478
|
</sp-button>
|
|
689
|
-
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
479
|
+
<sp-tooltip slot="hover-content" delayed open tip="bottom">
|
|
690
480
|
Triskaidekaphobia and More
|
|
691
481
|
</sp-tooltip>
|
|
692
482
|
</overlay-trigger>
|
|
@@ -696,7 +486,7 @@ export const edges = () => {
|
|
|
696
486
|
<br />
|
|
697
487
|
Right
|
|
698
488
|
</sp-button>
|
|
699
|
-
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
489
|
+
<sp-tooltip slot="hover-content" delayed open tip="bottom">
|
|
700
490
|
Triskaidekaphobia and More
|
|
701
491
|
</sp-tooltip>
|
|
702
492
|
</overlay-trigger>
|
|
@@ -706,7 +496,7 @@ export const edges = () => {
|
|
|
706
496
|
<br />
|
|
707
497
|
Left
|
|
708
498
|
</sp-button>
|
|
709
|
-
<sp-tooltip slot="hover-content" delayed tip="top">
|
|
499
|
+
<sp-tooltip slot="hover-content" delayed open tip="top">
|
|
710
500
|
Triskaidekaphobia and More
|
|
711
501
|
</sp-tooltip>
|
|
712
502
|
</overlay-trigger>
|
|
@@ -716,31 +506,106 @@ export const edges = () => {
|
|
|
716
506
|
<br />
|
|
717
507
|
Right
|
|
718
508
|
</sp-button>
|
|
719
|
-
<sp-tooltip slot="hover-content" delayed tip="top">
|
|
509
|
+
<sp-tooltip slot="hover-content" delayed open tip="top">
|
|
720
510
|
Triskaidekaphobia and More
|
|
721
511
|
</sp-tooltip>
|
|
722
512
|
</overlay-trigger>
|
|
723
513
|
`;
|
|
724
514
|
};
|
|
725
|
-
export const
|
|
726
|
-
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
515
|
+
export const updated = () => {
|
|
727
516
|
return html`
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
517
|
+
${storyStyles}
|
|
518
|
+
<style>
|
|
519
|
+
sp-tooltip {
|
|
520
|
+
transition: none;
|
|
521
|
+
}
|
|
522
|
+
</style>
|
|
523
|
+
<overlay-drag>
|
|
524
|
+
<overlay-trigger class="demo top-left" placement="bottom">
|
|
525
|
+
<overlay-target-icon
|
|
526
|
+
slot="trigger"
|
|
527
|
+
style="translate(400px, 300px)"
|
|
528
|
+
></overlay-target-icon>
|
|
529
|
+
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
530
|
+
Click to open popover
|
|
531
|
+
</sp-tooltip>
|
|
532
|
+
<sp-popover
|
|
533
|
+
dialog
|
|
534
|
+
slot="click-content"
|
|
535
|
+
position="bottom"
|
|
536
|
+
tip
|
|
537
|
+
open
|
|
735
538
|
>
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
539
|
+
<div class="options-popover-content">
|
|
540
|
+
<sp-slider
|
|
541
|
+
value="5"
|
|
542
|
+
step="0.5"
|
|
543
|
+
min="0"
|
|
544
|
+
max="20"
|
|
545
|
+
label="Awesomeness"
|
|
546
|
+
></sp-slider>
|
|
547
|
+
<div id="styled-div">
|
|
548
|
+
The background of this div should be blue
|
|
549
|
+
</div>
|
|
550
|
+
<overlay-trigger id="inner-trigger" placement="bottom">
|
|
551
|
+
<sp-button slot="trigger">Press Me</sp-button>
|
|
552
|
+
<sp-popover
|
|
553
|
+
dialog
|
|
554
|
+
slot="click-content"
|
|
555
|
+
placement="bottom"
|
|
556
|
+
tip
|
|
557
|
+
open
|
|
558
|
+
>
|
|
559
|
+
<div class="options-popover-content">
|
|
560
|
+
Another Popover
|
|
561
|
+
</div>
|
|
562
|
+
</sp-popover>
|
|
563
|
+
|
|
564
|
+
<sp-tooltip
|
|
565
|
+
slot="hover-content"
|
|
566
|
+
delayed
|
|
567
|
+
tip="bottom"
|
|
568
|
+
>
|
|
569
|
+
Click to open another popover.
|
|
570
|
+
</sp-tooltip>
|
|
571
|
+
</overlay-trigger>
|
|
572
|
+
</div>
|
|
573
|
+
</sp-popover>
|
|
574
|
+
</overlay-trigger>
|
|
575
|
+
</overlay-drag>
|
|
576
|
+
`;
|
|
577
|
+
};
|
|
578
|
+
export const sideHoverDraggable = () => {
|
|
579
|
+
return html`
|
|
580
|
+
${storyStyles}
|
|
581
|
+
<style>
|
|
582
|
+
sp-tooltip {
|
|
583
|
+
transition: none;
|
|
584
|
+
}
|
|
585
|
+
</style>
|
|
586
|
+
<overlay-drag>
|
|
587
|
+
<overlay-trigger placement="right">
|
|
588
|
+
<overlay-target-icon slot="trigger"></overlay-target-icon>
|
|
589
|
+
<sp-tooltip slot="hover-content" delayed tip="right">
|
|
590
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
591
|
+
Vivamus egestas sed enim sed condimentum. Nunc facilisis
|
|
592
|
+
scelerisque massa sed luctus. Orci varius natoque penatibus
|
|
593
|
+
et magnis dis parturient montes, nascetur ridiculus mus.
|
|
594
|
+
Suspendisse sagittis sodales purus vitae ultricies. Integer
|
|
595
|
+
at dui sem. Sed quam tortor, ornare in nisi et, rhoncus
|
|
596
|
+
lacinia mauris. Sed vel rutrum mauris, ac pellentesque nibh.
|
|
597
|
+
Sed feugiat semper libero, sit amet vehicula orci fermentum
|
|
598
|
+
id. Vivamus imperdiet egestas luctus. Mauris tincidunt
|
|
599
|
+
malesuada ante, faucibus viverra nunc blandit a. Fusce et
|
|
600
|
+
nisl nisi. Aenean dictum quam id mollis faucibus. Nulla a
|
|
601
|
+
ultricies dui. In hac habitasse platea dictumst. Curabitur
|
|
602
|
+
gravida lobortis vestibulum.
|
|
603
|
+
</sp-tooltip>
|
|
604
|
+
</overlay-trigger>
|
|
605
|
+
</overlay-drag>
|
|
606
|
+
`;
|
|
607
|
+
};
|
|
608
|
+
export const longpress = () => {
|
|
744
609
|
return html`
|
|
745
610
|
<overlay-trigger placement="right-start">
|
|
746
611
|
<sp-action-button slot="trigger" hold-affordance>
|
|
@@ -770,162 +635,155 @@ export const longpress = () => {
|
|
|
770
635
|
</overlay-trigger>
|
|
771
636
|
`;
|
|
772
637
|
};
|
|
773
|
-
export const
|
|
774
|
-
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
775
|
-
return html`
|
|
776
|
-
<overlay-trigger type="modal" placement="none">
|
|
777
|
-
<sp-button slot="trigger">Open</sp-button>
|
|
778
|
-
<sp-dialog
|
|
779
|
-
size="s"
|
|
780
|
-
dismissable
|
|
781
|
-
slot="click-content"
|
|
782
|
-
@closed=${(event) => event.target.dispatchEvent(closeEvent)}
|
|
783
|
-
>
|
|
784
|
-
<h2 slot="heading">Loose Dialog</h2>
|
|
785
|
-
<p>
|
|
786
|
-
The
|
|
787
|
-
<code>sp-dialog</code>
|
|
788
|
-
element is not "meant" to be a modal alone. In that way it
|
|
789
|
-
does not manage its own
|
|
790
|
-
<code>open</code>
|
|
791
|
-
attribute or outline when it should have
|
|
792
|
-
<code>pointer-events: auto</code>
|
|
793
|
-
. It's a part of this test suite to prove that content in
|
|
794
|
-
this way can be used in an
|
|
795
|
-
<code>overlay-trigger</code>
|
|
796
|
-
element.
|
|
797
|
-
</p>
|
|
798
|
-
</sp-dialog>
|
|
799
|
-
</overlay-trigger>
|
|
800
|
-
${extraText}
|
|
801
|
-
`;
|
|
802
|
-
};
|
|
803
|
-
export const modalManaged = () => {
|
|
804
|
-
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
805
|
-
return html`
|
|
806
|
-
<overlay-trigger type="modal" placement="none">
|
|
807
|
-
<sp-button slot="trigger">Open</sp-button>
|
|
808
|
-
<sp-dialog-wrapper
|
|
809
|
-
underlay
|
|
810
|
-
slot="click-content"
|
|
811
|
-
headline="Wrapped Dialog w/ Hero Image"
|
|
812
|
-
confirm-label="Keep Both"
|
|
813
|
-
secondary-label="Replace"
|
|
814
|
-
cancel-label="Cancel"
|
|
815
|
-
footer="Content for footer"
|
|
816
|
-
@confirm=${(event) => {
|
|
817
|
-
event.target.dispatchEvent(closeEvent);
|
|
818
|
-
}}
|
|
819
|
-
@secondary=${(event) => {
|
|
820
|
-
event.target.dispatchEvent(closeEvent);
|
|
821
|
-
}}
|
|
822
|
-
@cancel=${(event) => {
|
|
823
|
-
event.target.dispatchEvent(closeEvent);
|
|
824
|
-
}}
|
|
825
|
-
>
|
|
826
|
-
<p>
|
|
827
|
-
The
|
|
828
|
-
<code>sp-dialog-wrapper</code>
|
|
829
|
-
element has been prepared for use in an
|
|
830
|
-
<code>overlay-trigger</code>
|
|
831
|
-
element by it's combination of modal, underlay, etc. styles
|
|
832
|
-
and features.
|
|
833
|
-
</p>
|
|
834
|
-
</sp-dialog-wrapper>
|
|
835
|
-
</overlay-trigger>
|
|
836
|
-
${extraText}
|
|
837
|
-
`;
|
|
838
|
-
};
|
|
839
|
-
export const modalWithinNonModal = () => {
|
|
638
|
+
export const clickAndHoverTargets = () => {
|
|
840
639
|
return html`
|
|
841
|
-
<
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
640
|
+
<div>
|
|
641
|
+
${storyStyles}
|
|
642
|
+
<style>
|
|
643
|
+
.friendly-target {
|
|
644
|
+
padding: 4px;
|
|
645
|
+
margin: 6px;
|
|
646
|
+
border: 2px solid black;
|
|
647
|
+
border-radius: 6px;
|
|
648
|
+
cursor: default;
|
|
649
|
+
}
|
|
650
|
+
</style>
|
|
651
|
+
<overlay-trigger placement="right">
|
|
652
|
+
<div class="friendly-target" slot="trigger" tabindex="0">
|
|
653
|
+
Click me
|
|
654
|
+
</div>
|
|
655
|
+
<sp-tooltip slot="click-content" tip="right">
|
|
656
|
+
Ok, now hover the other trigger
|
|
657
|
+
</sp-tooltip>
|
|
658
|
+
</overlay-trigger>
|
|
659
|
+
<overlay-trigger placement="left">
|
|
660
|
+
<div class="friendly-target" slot="trigger" tabindex="0">
|
|
661
|
+
Then hover me
|
|
662
|
+
</div>
|
|
663
|
+
<sp-tooltip slot="hover-content" tip="right">
|
|
664
|
+
Now click my trigger -- I should stay open, but the other
|
|
665
|
+
overlay should close
|
|
666
|
+
</sp-tooltip>
|
|
667
|
+
</overlay-trigger>
|
|
668
|
+
</div>
|
|
856
669
|
`;
|
|
857
670
|
};
|
|
858
|
-
|
|
859
|
-
<style>
|
|
860
|
-
sp-button:hover {
|
|
861
|
-
border: 10px solid;
|
|
862
|
-
width: 100px;
|
|
863
|
-
}
|
|
864
|
-
</style>
|
|
865
|
-
${template({
|
|
866
|
-
...args,
|
|
867
|
-
open: "click"
|
|
868
|
-
})}
|
|
869
|
-
`;
|
|
870
|
-
noCloseOnResize.swc_vrt = {
|
|
671
|
+
clickAndHoverTargets.swc_vrt = {
|
|
871
672
|
skip: true
|
|
872
673
|
};
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
674
|
+
function nextFrame() {
|
|
675
|
+
return new Promise((res) => requestAnimationFrame(() => res()));
|
|
676
|
+
}
|
|
677
|
+
class ComplexModalReady extends HTMLElement {
|
|
678
|
+
constructor() {
|
|
679
|
+
super();
|
|
680
|
+
this.handleTriggerOpened = async () => {
|
|
681
|
+
await nextFrame();
|
|
682
|
+
const picker = document.querySelector("#test-picker");
|
|
683
|
+
picker.addEventListener("sp-opened", this.handlePickerOpen);
|
|
684
|
+
picker.open = true;
|
|
685
|
+
};
|
|
686
|
+
this.handlePickerOpen = async () => {
|
|
687
|
+
const picker = document.querySelector("#test-picker");
|
|
688
|
+
const actions = [nextFrame, picker.updateComplete];
|
|
689
|
+
await Promise.all(actions);
|
|
690
|
+
this.ready(true);
|
|
691
|
+
};
|
|
692
|
+
this.readyPromise = Promise.resolve(false);
|
|
693
|
+
this.readyPromise = new Promise((res) => {
|
|
694
|
+
this.ready = res;
|
|
695
|
+
this.setup();
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
async setup() {
|
|
699
|
+
await nextFrame();
|
|
700
|
+
const overlay = document.querySelector(
|
|
701
|
+
`overlay-trigger`
|
|
702
|
+
);
|
|
703
|
+
overlay.addEventListener("sp-opened", this.handleTriggerOpened);
|
|
704
|
+
}
|
|
705
|
+
get updateComplete() {
|
|
706
|
+
return this.readyPromise;
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
customElements.define("complex-modal-ready", ComplexModalReady);
|
|
710
|
+
const complexModalDecorator = (story) => {
|
|
883
711
|
return html`
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
<sp-popover slot="click-content">
|
|
887
|
-
<sp-button
|
|
888
|
-
@click=${(event) => {
|
|
889
|
-
event.target.dispatchEvent(closeEvent);
|
|
890
|
-
}}
|
|
891
|
-
>
|
|
892
|
-
Close
|
|
893
|
-
</sp-button>
|
|
894
|
-
</sp-popover>
|
|
895
|
-
</overlay-trigger>
|
|
896
|
-
${extraText}
|
|
712
|
+
${story()}
|
|
713
|
+
<complex-modal-ready></complex-modal-ready>
|
|
897
714
|
`;
|
|
898
715
|
};
|
|
899
|
-
export const
|
|
716
|
+
export const complexModal = () => {
|
|
900
717
|
return html`
|
|
901
|
-
${storyStyles}
|
|
902
718
|
<style>
|
|
903
|
-
|
|
904
|
-
|
|
719
|
+
body {
|
|
720
|
+
--swc-margin-test: 10px;
|
|
721
|
+
margin: var(--swc-margin-test);
|
|
722
|
+
}
|
|
723
|
+
sp-story-decorator::part(container) {
|
|
724
|
+
min-height: calc(100vh - (2 * var(--swc-margin-test)));
|
|
725
|
+
padding: 0;
|
|
726
|
+
display: grid;
|
|
727
|
+
place-content: center;
|
|
728
|
+
}
|
|
729
|
+
active-overlay > * {
|
|
730
|
+
--spectrum-global-animation-duration-100: 0ms;
|
|
731
|
+
--spectrum-global-animation-duration-200: 0ms;
|
|
732
|
+
--spectrum-global-animation-duration-300: 0ms;
|
|
733
|
+
--spectrum-global-animation-duration-400: 0ms;
|
|
734
|
+
--spectrum-global-animation-duration-500: 0ms;
|
|
735
|
+
--spectrum-global-animation-duration-600: 0ms;
|
|
736
|
+
--spectrum-global-animation-duration-700: 0ms;
|
|
737
|
+
--spectrum-global-animation-duration-800: 0ms;
|
|
738
|
+
--spectrum-global-animation-duration-900: 0ms;
|
|
739
|
+
--spectrum-global-animation-duration-1000: 0ms;
|
|
740
|
+
--spectrum-global-animation-duration-2000: 0ms;
|
|
741
|
+
--spectrum-global-animation-duration-4000: 0ms;
|
|
742
|
+
--spectrum-animation-duration-0: 0ms;
|
|
743
|
+
--spectrum-animation-duration-100: 0ms;
|
|
744
|
+
--spectrum-animation-duration-200: 0ms;
|
|
745
|
+
--spectrum-animation-duration-300: 0ms;
|
|
746
|
+
--spectrum-animation-duration-400: 0ms;
|
|
747
|
+
--spectrum-animation-duration-500: 0ms;
|
|
748
|
+
--spectrum-animation-duration-600: 0ms;
|
|
749
|
+
--spectrum-animation-duration-700: 0ms;
|
|
750
|
+
--spectrum-animation-duration-800: 0ms;
|
|
751
|
+
--spectrum-animation-duration-900: 0ms;
|
|
752
|
+
--spectrum-animation-duration-1000: 0ms;
|
|
753
|
+
--spectrum-animation-duration-2000: 0ms;
|
|
754
|
+
--spectrum-animation-duration-4000: 0ms;
|
|
755
|
+
--spectrum-coachmark-animation-indicator-ring-duration: 0ms;
|
|
756
|
+
--swc-test-duration: 1ms;
|
|
905
757
|
}
|
|
906
758
|
</style>
|
|
907
|
-
<overlay-
|
|
908
|
-
<
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
759
|
+
<overlay-trigger type="modal" placement="none" open="click">
|
|
760
|
+
<sp-dialog-wrapper
|
|
761
|
+
slot="click-content"
|
|
762
|
+
headline="Dialog title"
|
|
763
|
+
dismissable
|
|
764
|
+
underlay
|
|
765
|
+
footer="Content for footer"
|
|
766
|
+
>
|
|
767
|
+
<sp-field-label for="test-picker">
|
|
768
|
+
Selection type:
|
|
769
|
+
</sp-field-label>
|
|
770
|
+
<sp-picker id="test-picker">
|
|
771
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
772
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
773
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
774
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
775
|
+
<sp-menu-divider></sp-menu-divider>
|
|
776
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
777
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
778
|
+
</sp-picker>
|
|
779
|
+
</sp-dialog-wrapper>
|
|
780
|
+
<sp-button slot="trigger" variant="primary">
|
|
781
|
+
Toggle Dialog
|
|
782
|
+
</sp-button>
|
|
783
|
+
</overlay-trigger>
|
|
927
784
|
`;
|
|
928
785
|
};
|
|
786
|
+
complexModal.decorators = [complexModalDecorator];
|
|
929
787
|
export const superComplexModal = () => {
|
|
930
788
|
return html`
|
|
931
789
|
<overlay-trigger type="modal" placement="none">
|
|
@@ -962,85 +820,6 @@ export const superComplexModal = () => {
|
|
|
962
820
|
</overlay-trigger>
|
|
963
821
|
`;
|
|
964
822
|
};
|
|
965
|
-
export const updated = () => {
|
|
966
|
-
return html`
|
|
967
|
-
${storyStyles}
|
|
968
|
-
<style>
|
|
969
|
-
sp-tooltip {
|
|
970
|
-
transition: none;
|
|
971
|
-
}
|
|
972
|
-
</style>
|
|
973
|
-
<overlay-drag>
|
|
974
|
-
<overlay-trigger class="demo top-left" placement="bottom">
|
|
975
|
-
<overlay-target-icon
|
|
976
|
-
slot="trigger"
|
|
977
|
-
style="translate(400px, 300px)"
|
|
978
|
-
></overlay-target-icon>
|
|
979
|
-
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
980
|
-
Click to open popover
|
|
981
|
-
</sp-tooltip>
|
|
982
|
-
<sp-popover dialog slot="click-content" position="bottom" tip>
|
|
983
|
-
<div class="options-popover-content">
|
|
984
|
-
<sp-slider
|
|
985
|
-
value="5"
|
|
986
|
-
step="0.5"
|
|
987
|
-
min="0"
|
|
988
|
-
max="20"
|
|
989
|
-
label="Awesomeness"
|
|
990
|
-
></sp-slider>
|
|
991
|
-
<div id="styled-div">
|
|
992
|
-
The background of this div should be blue
|
|
993
|
-
</div>
|
|
994
|
-
<overlay-trigger id="inner-trigger" placement="bottom">
|
|
995
|
-
<sp-button slot="trigger">Press Me</sp-button>
|
|
996
|
-
<sp-popover
|
|
997
|
-
dialog
|
|
998
|
-
slot="click-content"
|
|
999
|
-
placement="bottom"
|
|
1000
|
-
tip
|
|
1001
|
-
>
|
|
1002
|
-
<div class="options-popover-content">
|
|
1003
|
-
Another Popover
|
|
1004
|
-
</div>
|
|
1005
|
-
</sp-popover>
|
|
1006
|
-
|
|
1007
|
-
<sp-tooltip
|
|
1008
|
-
slot="hover-content"
|
|
1009
|
-
delayed
|
|
1010
|
-
tip="bottom"
|
|
1011
|
-
>
|
|
1012
|
-
Click to open another popover.
|
|
1013
|
-
</sp-tooltip>
|
|
1014
|
-
</overlay-trigger>
|
|
1015
|
-
</div>
|
|
1016
|
-
</sp-popover>
|
|
1017
|
-
</overlay-trigger>
|
|
1018
|
-
</overlay-drag>
|
|
1019
|
-
`;
|
|
1020
|
-
};
|
|
1021
|
-
export const updating = () => {
|
|
1022
|
-
const update = () => {
|
|
1023
|
-
const button = document.querySelector('[slot="trigger"]');
|
|
1024
|
-
button.style.left = `${Math.floor(Math.random() * 200)}px`;
|
|
1025
|
-
button.style.top = `${Math.floor(Math.random() * 200)}px`;
|
|
1026
|
-
button.style.position = "fixed";
|
|
1027
|
-
};
|
|
1028
|
-
return html`
|
|
1029
|
-
<overlay-trigger type="click">
|
|
1030
|
-
<sp-button variant="primary" slot="trigger">
|
|
1031
|
-
Open inline overlay
|
|
1032
|
-
</sp-button>
|
|
1033
|
-
<sp-popover slot="click-content" dialog>
|
|
1034
|
-
<sp-button variant="primary" @click=${update}>
|
|
1035
|
-
Update trigger location.
|
|
1036
|
-
</sp-button>
|
|
1037
|
-
</sp-popover>
|
|
1038
|
-
</overlay-trigger>
|
|
1039
|
-
`;
|
|
1040
|
-
};
|
|
1041
|
-
updating.swc_vrt = {
|
|
1042
|
-
skip: true
|
|
1043
|
-
};
|
|
1044
823
|
class StartEndContextmenu extends HTMLElement {
|
|
1045
824
|
constructor() {
|
|
1046
825
|
super();
|
|
@@ -1068,11 +847,9 @@ export const virtualElement = (args) => {
|
|
|
1068
847
|
style="width:300px;"
|
|
1069
848
|
@click=${(event) => {
|
|
1070
849
|
var _a;
|
|
1071
|
-
|
|
1072
|
-
(
|
|
1073
|
-
|
|
1074
|
-
);
|
|
1075
|
-
}
|
|
850
|
+
return (_a = event.target) == null ? void 0 : _a.dispatchEvent(
|
|
851
|
+
new Event("close", { bubbles: true })
|
|
852
|
+
);
|
|
1076
853
|
}}
|
|
1077
854
|
>
|
|
1078
855
|
<sp-menu>
|
|
@@ -1089,22 +866,8 @@ export const virtualElement = (args) => {
|
|
|
1089
866
|
</sp-menu>
|
|
1090
867
|
</sp-popover>
|
|
1091
868
|
`;
|
|
1092
|
-
const
|
|
1093
|
-
if (event.button === 2) {
|
|
1094
|
-
event.preventDefault();
|
|
1095
|
-
event.stopPropagation();
|
|
1096
|
-
}
|
|
1097
|
-
};
|
|
1098
|
-
const handlePointerup = (event) => {
|
|
1099
|
-
if (event.button === 2) {
|
|
1100
|
-
event.preventDefault();
|
|
1101
|
-
event.stopPropagation();
|
|
1102
|
-
event.stopImmediatePropagation();
|
|
1103
|
-
}
|
|
1104
|
-
};
|
|
1105
|
-
const handleContextmenu = async (event) => {
|
|
869
|
+
const pointerenter = async (event) => {
|
|
1106
870
|
event.preventDefault();
|
|
1107
|
-
event.stopPropagation();
|
|
1108
871
|
const source = event.composedPath()[0];
|
|
1109
872
|
const { id } = source;
|
|
1110
873
|
const trigger = event.target;
|
|
@@ -1112,12 +875,10 @@ export const virtualElement = (args) => {
|
|
|
1112
875
|
const fragment = document.createDocumentFragment();
|
|
1113
876
|
render(contextMenuTemplate(id), fragment);
|
|
1114
877
|
const popover = fragment.querySelector("sp-popover");
|
|
1115
|
-
openOverlay(trigger, "
|
|
878
|
+
openOverlay(trigger, "modal", popover, {
|
|
1116
879
|
placement: args.placement,
|
|
1117
880
|
receivesFocus: "auto",
|
|
1118
|
-
virtualTrigger
|
|
1119
|
-
offset: 0,
|
|
1120
|
-
notImmediatelyClosable: true
|
|
881
|
+
virtualTrigger
|
|
1121
882
|
});
|
|
1122
883
|
};
|
|
1123
884
|
return html`
|
|
@@ -1129,22 +890,235 @@ export const virtualElement = (args) => {
|
|
|
1129
890
|
</style>
|
|
1130
891
|
<start-end-contextmenu
|
|
1131
892
|
class="app-root"
|
|
1132
|
-
@
|
|
1133
|
-
capture: true,
|
|
1134
|
-
handleEvent: handlePointerdown
|
|
1135
|
-
}}
|
|
1136
|
-
@pointerup=${{
|
|
1137
|
-
capture: true,
|
|
1138
|
-
handleEvent: handlePointerup
|
|
1139
|
-
}}
|
|
1140
|
-
@contextmenu=${{
|
|
1141
|
-
capture: true,
|
|
1142
|
-
handleEvent: handleContextmenu
|
|
1143
|
-
}}
|
|
893
|
+
@contextmenu=${pointerenter}
|
|
1144
894
|
></start-end-contextmenu>
|
|
1145
895
|
`;
|
|
1146
896
|
};
|
|
1147
897
|
virtualElement.args = {
|
|
1148
898
|
placement: "right-start"
|
|
1149
899
|
};
|
|
900
|
+
export const detachedElement = () => {
|
|
901
|
+
let closeOverlay;
|
|
902
|
+
const openDetachedOverlayContent = async ({
|
|
903
|
+
target
|
|
904
|
+
}) => {
|
|
905
|
+
if (closeOverlay) {
|
|
906
|
+
closeOverlay();
|
|
907
|
+
closeOverlay = void 0;
|
|
908
|
+
return;
|
|
909
|
+
}
|
|
910
|
+
const div = document.createElement("div");
|
|
911
|
+
div.textContent = "This div is overlaid";
|
|
912
|
+
div.setAttribute(
|
|
913
|
+
"style",
|
|
914
|
+
`
|
|
915
|
+
background-color: var(--spectrum-global-color-gray-50);
|
|
916
|
+
color: var(--spectrum-global-color-gray-800);
|
|
917
|
+
border: 1px solid;
|
|
918
|
+
padding: 2em;
|
|
919
|
+
`
|
|
920
|
+
);
|
|
921
|
+
closeOverlay = await Overlay.open(target, "click", div, {
|
|
922
|
+
offset: 0,
|
|
923
|
+
placement: "bottom"
|
|
924
|
+
});
|
|
925
|
+
};
|
|
926
|
+
requestAnimationFrame(() => {
|
|
927
|
+
openDetachedOverlayContent({
|
|
928
|
+
target: document.querySelector(
|
|
929
|
+
"#detached-content-trigger"
|
|
930
|
+
)
|
|
931
|
+
});
|
|
932
|
+
});
|
|
933
|
+
return html`
|
|
934
|
+
<sp-action-button
|
|
935
|
+
id="detached-content-trigger"
|
|
936
|
+
@click=${openDetachedOverlayContent}
|
|
937
|
+
@sp-closed=${() => closeOverlay = void 0}
|
|
938
|
+
>
|
|
939
|
+
<sp-icon-open-in
|
|
940
|
+
slot="icon"
|
|
941
|
+
label="Open in overlay"
|
|
942
|
+
></sp-icon-open-in>
|
|
943
|
+
</sp-action-button>
|
|
944
|
+
`;
|
|
945
|
+
};
|
|
946
|
+
class DefinedOverlayReady extends HTMLElement {
|
|
947
|
+
constructor() {
|
|
948
|
+
super();
|
|
949
|
+
this.handleTriggerOpened = async () => {
|
|
950
|
+
await nextFrame();
|
|
951
|
+
const popover = document.querySelector("popover-content");
|
|
952
|
+
if (!popover) {
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
popover.addEventListener("sp-opened", this.handlePopoverOpen);
|
|
956
|
+
popover.button.click();
|
|
957
|
+
};
|
|
958
|
+
this.handlePopoverOpen = async () => {
|
|
959
|
+
await nextFrame();
|
|
960
|
+
this.ready(true);
|
|
961
|
+
};
|
|
962
|
+
this.readyPromise = Promise.resolve(false);
|
|
963
|
+
this.readyPromise = new Promise((res) => {
|
|
964
|
+
this.ready = res;
|
|
965
|
+
this.setup();
|
|
966
|
+
});
|
|
967
|
+
}
|
|
968
|
+
async setup() {
|
|
969
|
+
await nextFrame();
|
|
970
|
+
const overlay = document.querySelector(
|
|
971
|
+
`overlay-trigger`
|
|
972
|
+
);
|
|
973
|
+
const button = document.querySelector(
|
|
974
|
+
`[slot="trigger"]`
|
|
975
|
+
);
|
|
976
|
+
overlay.addEventListener("sp-opened", this.handleTriggerOpened);
|
|
977
|
+
button.click();
|
|
978
|
+
}
|
|
979
|
+
get updateComplete() {
|
|
980
|
+
return this.readyPromise;
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
customElements.define("defined-overlay-ready", DefinedOverlayReady);
|
|
984
|
+
const definedOverlayDecorator = (story) => {
|
|
985
|
+
return html`
|
|
986
|
+
${story()}
|
|
987
|
+
<defined-overlay-ready></defined-overlay-ready>
|
|
988
|
+
`;
|
|
989
|
+
};
|
|
990
|
+
export const definedOverlayElement = () => {
|
|
991
|
+
return html`
|
|
992
|
+
<overlay-trigger placement="bottom" type="modal">
|
|
993
|
+
<sp-button variant="primary" slot="trigger">Open popover</sp-button>
|
|
994
|
+
<sp-popover slot="click-content" direction="bottom" dialog>
|
|
995
|
+
<popover-content></popover-content>
|
|
996
|
+
</sp-popover>
|
|
997
|
+
</overlay-trigger>
|
|
998
|
+
`;
|
|
999
|
+
};
|
|
1000
|
+
definedOverlayElement.decorators = [definedOverlayDecorator];
|
|
1001
|
+
export const modalWithinNonModal = () => {
|
|
1002
|
+
return html`
|
|
1003
|
+
<overlay-trigger type="inline">
|
|
1004
|
+
<sp-button variant="primary" slot="trigger">
|
|
1005
|
+
Open inline overlay
|
|
1006
|
+
</sp-button>
|
|
1007
|
+
<sp-popover slot="click-content" dialog>
|
|
1008
|
+
<overlay-trigger type="modal">
|
|
1009
|
+
<sp-button variant="primary" slot="trigger">
|
|
1010
|
+
Open modal overlay
|
|
1011
|
+
</sp-button>
|
|
1012
|
+
<sp-popover slot="click-content" dialog>
|
|
1013
|
+
Modal overlay
|
|
1014
|
+
</sp-popover>
|
|
1015
|
+
</overlay-trigger>
|
|
1016
|
+
</sp-popover>
|
|
1017
|
+
</overlay-trigger>
|
|
1018
|
+
`;
|
|
1019
|
+
};
|
|
1020
|
+
export const updating = () => {
|
|
1021
|
+
const update = () => {
|
|
1022
|
+
const button = document.querySelector('[slot="trigger"]');
|
|
1023
|
+
button.style.left = `${Math.floor(Math.random() * 200)}px`;
|
|
1024
|
+
button.style.top = `${Math.floor(Math.random() * 200)}px`;
|
|
1025
|
+
button.style.position = "fixed";
|
|
1026
|
+
Overlay.update();
|
|
1027
|
+
};
|
|
1028
|
+
return html`
|
|
1029
|
+
<overlay-trigger type="click">
|
|
1030
|
+
<sp-button variant="primary" slot="trigger">
|
|
1031
|
+
Open inline overlay
|
|
1032
|
+
</sp-button>
|
|
1033
|
+
<sp-popover slot="click-content" dialog>
|
|
1034
|
+
<sp-button variant="primary" @click=${update}>
|
|
1035
|
+
Update trigger location.
|
|
1036
|
+
</sp-button>
|
|
1037
|
+
</sp-popover>
|
|
1038
|
+
</overlay-trigger>
|
|
1039
|
+
`;
|
|
1040
|
+
};
|
|
1041
|
+
updating.swc_vrt = {
|
|
1042
|
+
skip: true
|
|
1043
|
+
};
|
|
1044
|
+
export const accordion = () => {
|
|
1045
|
+
const handleToggle = () => {
|
|
1046
|
+
Overlay.update();
|
|
1047
|
+
};
|
|
1048
|
+
return html`
|
|
1049
|
+
<overlay-trigger type="modal" placement="right">
|
|
1050
|
+
<sp-button variant="primary" slot="trigger">
|
|
1051
|
+
Open overlay w/ accordion
|
|
1052
|
+
</sp-button>
|
|
1053
|
+
<div slot="click-content" style="max-height: 100%;display: flex;">
|
|
1054
|
+
<sp-popover
|
|
1055
|
+
open
|
|
1056
|
+
dialog
|
|
1057
|
+
style="overflow-y: scroll;position: static;"
|
|
1058
|
+
>
|
|
1059
|
+
<sp-accordion
|
|
1060
|
+
allow-multiple
|
|
1061
|
+
@sp-accordion-item-toggle=${handleToggle}
|
|
1062
|
+
>
|
|
1063
|
+
<sp-accordion-item label="Some things">
|
|
1064
|
+
<p>
|
|
1065
|
+
Thing
|
|
1066
|
+
<br />
|
|
1067
|
+
<br />
|
|
1068
|
+
<br />
|
|
1069
|
+
<br />
|
|
1070
|
+
<br />
|
|
1071
|
+
<br />
|
|
1072
|
+
<br />
|
|
1073
|
+
more things
|
|
1074
|
+
</p>
|
|
1075
|
+
</sp-accordion-item>
|
|
1076
|
+
<sp-accordion-item label="Other things">
|
|
1077
|
+
<p>
|
|
1078
|
+
Thing
|
|
1079
|
+
<br />
|
|
1080
|
+
<br />
|
|
1081
|
+
<br />
|
|
1082
|
+
<br />
|
|
1083
|
+
<br />
|
|
1084
|
+
<br />
|
|
1085
|
+
<br />
|
|
1086
|
+
more things
|
|
1087
|
+
</p>
|
|
1088
|
+
</sp-accordion-item>
|
|
1089
|
+
<sp-accordion-item label="More things">
|
|
1090
|
+
<p>
|
|
1091
|
+
Thing
|
|
1092
|
+
<br />
|
|
1093
|
+
<br />
|
|
1094
|
+
<br />
|
|
1095
|
+
<br />
|
|
1096
|
+
<br />
|
|
1097
|
+
<br />
|
|
1098
|
+
<br />
|
|
1099
|
+
more things
|
|
1100
|
+
</p>
|
|
1101
|
+
</sp-accordion-item>
|
|
1102
|
+
<sp-accordion-item label="Additional things">
|
|
1103
|
+
<p>
|
|
1104
|
+
Thing
|
|
1105
|
+
<br />
|
|
1106
|
+
<br />
|
|
1107
|
+
<br />
|
|
1108
|
+
<br />
|
|
1109
|
+
<br />
|
|
1110
|
+
<br />
|
|
1111
|
+
<br />
|
|
1112
|
+
more things
|
|
1113
|
+
</p>
|
|
1114
|
+
</sp-accordion-item>
|
|
1115
|
+
</sp-accordion>
|
|
1116
|
+
</sp-popover>
|
|
1117
|
+
</div>
|
|
1118
|
+
</overlay-trigger>
|
|
1119
|
+
`;
|
|
1120
|
+
};
|
|
1121
|
+
accordion.swc_vrt = {
|
|
1122
|
+
skip: true
|
|
1123
|
+
};
|
|
1150
1124
|
//# sourceMappingURL=overlay.stories.js.map
|