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