@spectrum-web-components/overlay 0.19.4-overlay.8 → 0.19.4
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 +4 -0
- package/{test/overlay-element.test-vrt.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 +1212 -0
- package/package.json +25 -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 -18
- package/src/OverlayTrigger.dev.js +246 -138
- package/src/OverlayTrigger.dev.js.map +3 -3
- package/src/OverlayTrigger.js +22 -54
- 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 -1
- package/src/index.dev.js +3 -1
- 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 -0
- package/src/loader.dev.js +21 -0
- package/src/loader.dev.js.map +7 -0
- package/src/loader.js +2 -0
- package/src/loader.js.map +7 -0
- 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 +2 -2
- 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 +6 -1
- package/stories/overlay-story-components.js.map +2 -2
- package/stories/overlay.stories.js +689 -648
- 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 +9 -3
- package/test/index.js.map +2 -2
- package/test/overlay-lifecycle.test.js +74 -34
- package/test/overlay-lifecycle.test.js.map +2 -2
- package/test/overlay-trigger-click.test.js +2 -3
- 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 +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 +377 -1
- package/test/overlay-trigger-longpress.test.js.map +2 -2
- package/test/overlay-trigger-sync.test.js +3 -1
- package/test/overlay-trigger-sync.test.js.map +2 -2
- package/test/overlay-trigger.test.js +3 -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 +154 -100
- package/test/overlay.test.js.map +2 -2
- package/sp-overlay.d.ts +0 -6
- package/sp-overlay.dev.js +0 -4
- package/sp-overlay.dev.js.map +0 -7
- package/sp-overlay.js +0 -2
- package/src/Overlay.d.ts +0 -22
- package/src/Overlay.dev.js +0 -63
- 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 -93
- package/src/OverlayBase.dev.js +0 -564
- package/src/OverlayBase.dev.js.map +0 -7
- package/src/OverlayBase.js +0 -18
- package/src/OverlayBase.js.map +0 -7
- package/src/OverlayDialog.d.ts +0 -8
- package/src/OverlayDialog.dev.js +0 -43
- 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 -62
- 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 -81
- 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 -113
- 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 -35
- package/src/PlacementController.dev.js +0 -172
- 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 -161
- 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 -229
- package/stories/overlay-element.stories.js.map +0 -7
- package/test/overlay-element.test-vrt.js +0 -5
- package/test/overlay-element.test.js +0 -759
- package/test/overlay-element.test.js.map +0 -7
- /package/src/{overlay-base.css.d.ts → active-overlay.css.d.ts} +0 -0
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { html } from "@spectrum-web-components/base";
|
|
3
3
|
import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
|
|
4
|
+
import {
|
|
5
|
+
openOverlay,
|
|
6
|
+
Overlay,
|
|
7
|
+
VirtualTrigger
|
|
8
|
+
} from "@spectrum-web-components/overlay";
|
|
4
9
|
import "@spectrum-web-components/action-button/sp-action-button.js";
|
|
5
10
|
import "@spectrum-web-components/action-group/sp-action-group.js";
|
|
6
11
|
import "@spectrum-web-components/button/sp-button.js";
|
|
@@ -10,7 +15,6 @@ import "@spectrum-web-components/icons-workflow/icons/sp-icon-magnify.js";
|
|
|
10
15
|
import "@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js";
|
|
11
16
|
import "@spectrum-web-components/overlay/overlay-trigger.js";
|
|
12
17
|
import "@spectrum-web-components/picker/sp-picker.js";
|
|
13
|
-
import "@spectrum-web-components/overlay/sp-overlay.js";
|
|
14
18
|
import "@spectrum-web-components/menu/sp-menu.js";
|
|
15
19
|
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
16
20
|
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
@@ -25,6 +29,7 @@ import "@spectrum-web-components/accordion/sp-accordion.js";
|
|
|
25
29
|
import "@spectrum-web-components/accordion/sp-accordion-item.js";
|
|
26
30
|
import "../../../projects/story-decorator/src/types.js";
|
|
27
31
|
import "./overlay-story-components.js";
|
|
32
|
+
import { render } from "lit-html";
|
|
28
33
|
const storyStyles = html`
|
|
29
34
|
<style>
|
|
30
35
|
html,
|
|
@@ -147,6 +152,7 @@ const template = ({
|
|
|
147
152
|
slot="click-content"
|
|
148
153
|
placement="bottom"
|
|
149
154
|
tip
|
|
155
|
+
open
|
|
150
156
|
>
|
|
151
157
|
<div class="options-popover-content">
|
|
152
158
|
Another Popover
|
|
@@ -169,152 +175,18 @@ const template = ({
|
|
|
169
175
|
</overlay-trigger>
|
|
170
176
|
`;
|
|
171
177
|
};
|
|
172
|
-
const extraText = html`
|
|
173
|
-
<p>This is some text.</p>
|
|
174
|
-
<p>This is some text.</p>
|
|
175
|
-
<p>
|
|
176
|
-
This is a
|
|
177
|
-
<a href="#anchor">link</a>
|
|
178
|
-
.
|
|
179
|
-
</p>
|
|
180
|
-
`;
|
|
181
|
-
function nextFrame() {
|
|
182
|
-
return new Promise((res) => requestAnimationFrame(() => res()));
|
|
183
|
-
}
|
|
184
178
|
export const Default = (args) => template(args);
|
|
185
|
-
export const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
<sp-popover
|
|
194
|
-
dialog
|
|
195
|
-
slot="click-content"
|
|
196
|
-
style="overflow-y: scroll;position: static;"
|
|
197
|
-
>
|
|
198
|
-
<sp-accordion
|
|
199
|
-
allow-multiple
|
|
200
|
-
@sp-accordion-item-toggle=${handleToggle}
|
|
201
|
-
>
|
|
202
|
-
<sp-accordion-item label="Some things">
|
|
203
|
-
<p>
|
|
204
|
-
Thing
|
|
205
|
-
<br />
|
|
206
|
-
<br />
|
|
207
|
-
<br />
|
|
208
|
-
<br />
|
|
209
|
-
<br />
|
|
210
|
-
<br />
|
|
211
|
-
<br />
|
|
212
|
-
more things
|
|
213
|
-
</p>
|
|
214
|
-
</sp-accordion-item>
|
|
215
|
-
<sp-accordion-item label="Other things">
|
|
216
|
-
<p>
|
|
217
|
-
Thing
|
|
218
|
-
<br />
|
|
219
|
-
<br />
|
|
220
|
-
<br />
|
|
221
|
-
<br />
|
|
222
|
-
<br />
|
|
223
|
-
<br />
|
|
224
|
-
<br />
|
|
225
|
-
more things
|
|
226
|
-
</p>
|
|
227
|
-
</sp-accordion-item>
|
|
228
|
-
<sp-accordion-item label="More things">
|
|
229
|
-
<p>
|
|
230
|
-
Thing
|
|
231
|
-
<br />
|
|
232
|
-
<br />
|
|
233
|
-
<br />
|
|
234
|
-
<br />
|
|
235
|
-
<br />
|
|
236
|
-
<br />
|
|
237
|
-
<br />
|
|
238
|
-
more things
|
|
239
|
-
</p>
|
|
240
|
-
</sp-accordion-item>
|
|
241
|
-
<sp-accordion-item label="Additional things">
|
|
242
|
-
<p>
|
|
243
|
-
Thing
|
|
244
|
-
<br />
|
|
245
|
-
<br />
|
|
246
|
-
<br />
|
|
247
|
-
<br />
|
|
248
|
-
<br />
|
|
249
|
-
<br />
|
|
250
|
-
<br />
|
|
251
|
-
more things
|
|
252
|
-
</p>
|
|
253
|
-
</sp-accordion-item>
|
|
254
|
-
</sp-accordion>
|
|
255
|
-
</sp-popover>
|
|
256
|
-
</overlay-trigger>
|
|
257
|
-
`;
|
|
258
|
-
};
|
|
259
|
-
accordion.swc_vrt = {
|
|
260
|
-
skip: true
|
|
261
|
-
};
|
|
262
|
-
export const clickAndHoverTargets = () => {
|
|
263
|
-
return html`
|
|
264
|
-
<div>
|
|
265
|
-
${storyStyles}
|
|
266
|
-
<style>
|
|
267
|
-
.friendly-target {
|
|
268
|
-
padding: 4px;
|
|
269
|
-
margin: 6px;
|
|
270
|
-
border: 2px solid black;
|
|
271
|
-
border-radius: 6px;
|
|
272
|
-
cursor: default;
|
|
273
|
-
}
|
|
274
|
-
</style>
|
|
275
|
-
<overlay-trigger placement="right">
|
|
276
|
-
<div class="friendly-target" slot="trigger" tabindex="0">
|
|
277
|
-
Click me
|
|
278
|
-
</div>
|
|
279
|
-
<sp-tooltip slot="click-content" tip="right">
|
|
280
|
-
Ok, now hover the other trigger
|
|
281
|
-
</sp-tooltip>
|
|
282
|
-
</overlay-trigger>
|
|
283
|
-
<overlay-trigger placement="left">
|
|
284
|
-
<div class="friendly-target" slot="trigger" tabindex="0">
|
|
285
|
-
Then hover me
|
|
286
|
-
</div>
|
|
287
|
-
<sp-tooltip slot="hover-content" tip="right">
|
|
288
|
-
Now click my trigger -- I should stay open, but the other
|
|
289
|
-
overlay should close
|
|
290
|
-
</sp-tooltip>
|
|
291
|
-
</overlay-trigger>
|
|
292
|
-
</div>
|
|
293
|
-
`;
|
|
294
|
-
};
|
|
295
|
-
clickAndHoverTargets.swc_vrt = {
|
|
296
|
-
skip: true
|
|
297
|
-
};
|
|
179
|
+
export const openHoverContent = (args) => template({
|
|
180
|
+
...args,
|
|
181
|
+
open: "hover"
|
|
182
|
+
});
|
|
183
|
+
export const openClickContent = (args) => template({
|
|
184
|
+
...args,
|
|
185
|
+
open: "click"
|
|
186
|
+
});
|
|
298
187
|
class ScrollForcer extends HTMLElement {
|
|
299
188
|
constructor() {
|
|
300
189
|
super();
|
|
301
|
-
this.doScroll = async () => {
|
|
302
|
-
var _a;
|
|
303
|
-
(_a = this.previousElementSibling) == null ? void 0 : _a.addEventListener(
|
|
304
|
-
"sp-opened",
|
|
305
|
-
this.doScroll
|
|
306
|
-
);
|
|
307
|
-
await nextFrame();
|
|
308
|
-
await nextFrame();
|
|
309
|
-
await nextFrame();
|
|
310
|
-
await nextFrame();
|
|
311
|
-
if (document.scrollingElement) {
|
|
312
|
-
document.scrollingElement.scrollTop = 100;
|
|
313
|
-
}
|
|
314
|
-
await nextFrame();
|
|
315
|
-
await nextFrame();
|
|
316
|
-
this.ready(true);
|
|
317
|
-
};
|
|
318
190
|
this.readyPromise = Promise.resolve(false);
|
|
319
191
|
this.readyPromise = new Promise((res) => {
|
|
320
192
|
this.ready = res;
|
|
@@ -322,16 +194,28 @@ class ScrollForcer extends HTMLElement {
|
|
|
322
194
|
this.setup();
|
|
323
195
|
}
|
|
324
196
|
async setup() {
|
|
325
|
-
var _a
|
|
197
|
+
var _a;
|
|
326
198
|
await nextFrame();
|
|
327
199
|
await nextFrame();
|
|
328
200
|
(_a = this.previousElementSibling) == null ? void 0 : _a.addEventListener(
|
|
329
201
|
"sp-opened",
|
|
330
|
-
|
|
202
|
+
() => {
|
|
203
|
+
this.doScroll();
|
|
204
|
+
},
|
|
205
|
+
{ once: true }
|
|
331
206
|
);
|
|
207
|
+
}
|
|
208
|
+
async doScroll() {
|
|
209
|
+
await nextFrame();
|
|
210
|
+
await nextFrame();
|
|
332
211
|
await nextFrame();
|
|
333
212
|
await nextFrame();
|
|
334
|
-
(
|
|
213
|
+
if (document.scrollingElement) {
|
|
214
|
+
document.scrollingElement.scrollTop = 100;
|
|
215
|
+
}
|
|
216
|
+
await nextFrame();
|
|
217
|
+
await nextFrame();
|
|
218
|
+
this.ready(true);
|
|
335
219
|
}
|
|
336
220
|
get updateComplete() {
|
|
337
221
|
return this.readyPromise;
|
|
@@ -341,7 +225,8 @@ customElements.define("scroll-forcer", ScrollForcer);
|
|
|
341
225
|
export const clickContentClosedOnScroll = (args) => html`
|
|
342
226
|
<div style="margin: 50vh 0 100vh;">
|
|
343
227
|
${template({
|
|
344
|
-
...args
|
|
228
|
+
...args,
|
|
229
|
+
open: "click"
|
|
345
230
|
})}
|
|
346
231
|
</div>
|
|
347
232
|
`;
|
|
@@ -360,163 +245,178 @@ clickContentClosedOnScroll.decorators = [
|
|
|
360
245
|
<scroll-forcer></scroll-forcer>
|
|
361
246
|
`
|
|
362
247
|
];
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
};
|
|
378
|
-
this.readyPromise = Promise.resolve(false);
|
|
379
|
-
this.readyPromise = new Promise((res) => {
|
|
380
|
-
this.ready = res;
|
|
381
|
-
this.setup();
|
|
382
|
-
});
|
|
383
|
-
}
|
|
384
|
-
async setup() {
|
|
385
|
-
await nextFrame();
|
|
386
|
-
const overlay = document.querySelector(
|
|
387
|
-
`overlay-trigger`
|
|
388
|
-
);
|
|
389
|
-
overlay.addEventListener("sp-opened", this.handleTriggerOpened);
|
|
390
|
-
}
|
|
391
|
-
get updateComplete() {
|
|
392
|
-
return this.readyPromise;
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
customElements.define("complex-modal-ready", ComplexModalReady);
|
|
396
|
-
const complexModalDecorator = (story) => {
|
|
397
|
-
return html`
|
|
398
|
-
${story()}
|
|
399
|
-
<complex-modal-ready></complex-modal-ready>
|
|
400
|
-
`;
|
|
401
|
-
};
|
|
402
|
-
export const complexModal = () => {
|
|
403
|
-
return html`
|
|
404
|
-
<style>
|
|
405
|
-
body {
|
|
406
|
-
--swc-margin-test: 10px;
|
|
407
|
-
margin: var(--swc-margin-test);
|
|
408
|
-
}
|
|
409
|
-
sp-story-decorator::part(container) {
|
|
410
|
-
min-height: calc(100vh - (2 * var(--swc-margin-test)));
|
|
411
|
-
padding: 0;
|
|
412
|
-
display: grid;
|
|
413
|
-
place-content: center;
|
|
414
|
-
}
|
|
415
|
-
active-overlay > * {
|
|
416
|
-
--spectrum-global-animation-duration-100: 0ms;
|
|
417
|
-
--spectrum-global-animation-duration-200: 0ms;
|
|
418
|
-
--spectrum-global-animation-duration-300: 0ms;
|
|
419
|
-
--spectrum-global-animation-duration-400: 0ms;
|
|
420
|
-
--spectrum-global-animation-duration-500: 0ms;
|
|
421
|
-
--spectrum-global-animation-duration-600: 0ms;
|
|
422
|
-
--spectrum-global-animation-duration-700: 0ms;
|
|
423
|
-
--spectrum-global-animation-duration-800: 0ms;
|
|
424
|
-
--spectrum-global-animation-duration-900: 0ms;
|
|
425
|
-
--spectrum-global-animation-duration-1000: 0ms;
|
|
426
|
-
--spectrum-global-animation-duration-2000: 0ms;
|
|
427
|
-
--spectrum-global-animation-duration-4000: 0ms;
|
|
428
|
-
--spectrum-animation-duration-0: 0ms;
|
|
429
|
-
--spectrum-animation-duration-100: 0ms;
|
|
430
|
-
--spectrum-animation-duration-200: 0ms;
|
|
431
|
-
--spectrum-animation-duration-300: 0ms;
|
|
432
|
-
--spectrum-animation-duration-400: 0ms;
|
|
433
|
-
--spectrum-animation-duration-500: 0ms;
|
|
434
|
-
--spectrum-animation-duration-600: 0ms;
|
|
435
|
-
--spectrum-animation-duration-700: 0ms;
|
|
436
|
-
--spectrum-animation-duration-800: 0ms;
|
|
437
|
-
--spectrum-animation-duration-900: 0ms;
|
|
438
|
-
--spectrum-animation-duration-1000: 0ms;
|
|
439
|
-
--spectrum-animation-duration-2000: 0ms;
|
|
440
|
-
--spectrum-animation-duration-4000: 0ms;
|
|
441
|
-
--spectrum-coachmark-animation-indicator-ring-duration: 0ms;
|
|
442
|
-
--swc-test-duration: 1ms;
|
|
443
|
-
}
|
|
444
|
-
</style>
|
|
445
|
-
<overlay-trigger type="modal" placement="none" open="click">
|
|
446
|
-
<sp-dialog-wrapper
|
|
447
|
-
slot="click-content"
|
|
448
|
-
headline="Dialog title"
|
|
449
|
-
dismissable
|
|
450
|
-
underlay
|
|
451
|
-
footer="Content for footer"
|
|
452
|
-
>
|
|
453
|
-
<sp-field-label for="test-picker">
|
|
454
|
-
Selection type:
|
|
455
|
-
</sp-field-label>
|
|
456
|
-
<sp-picker id="test-picker">
|
|
457
|
-
<sp-menu-item>Deselect</sp-menu-item>
|
|
458
|
-
<sp-menu-item>Select inverse</sp-menu-item>
|
|
459
|
-
<sp-menu-item>Feather...</sp-menu-item>
|
|
460
|
-
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
461
|
-
<sp-menu-divider></sp-menu-divider>
|
|
462
|
-
<sp-menu-item>Save selection</sp-menu-item>
|
|
463
|
-
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
464
|
-
</sp-picker>
|
|
465
|
-
</sp-dialog-wrapper>
|
|
466
|
-
<sp-button slot="trigger" variant="primary">
|
|
467
|
-
Toggle Dialog
|
|
468
|
-
</sp-button>
|
|
469
|
-
</overlay-trigger>
|
|
470
|
-
`;
|
|
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
|
|
471
262
|
};
|
|
472
|
-
complexModal.decorators = [complexModalDecorator];
|
|
473
263
|
export const customizedClickContent = (args) => html`
|
|
474
264
|
<style>
|
|
475
|
-
overlay
|
|
476
|
-
--styled-div-background-color: var(
|
|
477
|
-
|
|
478
|
-
);
|
|
479
|
-
--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;
|
|
480
268
|
}
|
|
481
269
|
</style>
|
|
270
|
+
</style>
|
|
482
271
|
${template({
|
|
483
272
|
...args,
|
|
484
273
|
open: "click"
|
|
485
274
|
})}
|
|
486
275
|
`;
|
|
487
|
-
|
|
488
|
-
<
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
<
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
My Tooltip 1
|
|
496
|
-
</sp-tooltip>
|
|
497
|
-
A
|
|
498
|
-
</sp-action-button>
|
|
499
|
-
<sp-action-button>
|
|
500
|
-
<sp-tooltip self-managed placement="bottom" offset="0">
|
|
501
|
-
My Tooltip 1
|
|
502
|
-
</sp-tooltip>
|
|
503
|
-
B
|
|
504
|
-
</sp-action-button>
|
|
505
|
-
</sp-popover>
|
|
506
|
-
</overlay-trigger>
|
|
507
|
-
|
|
508
|
-
<overlay-trigger>
|
|
509
|
-
<sp-button variant="primary" slot="trigger">
|
|
510
|
-
Open popover 2 with buttons without ToolTips
|
|
511
|
-
</sp-button>
|
|
512
|
-
<sp-popover dialog slot="click-content" direction="bottom" tip>
|
|
513
|
-
<sp-action-button>X</sp-action-button>
|
|
514
|
-
<sp-action-button>Y</sp-action-button>
|
|
515
|
-
</sp-popover>
|
|
516
|
-
</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>
|
|
517
284
|
`;
|
|
518
|
-
|
|
519
|
-
|
|
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
|
+
`;
|
|
520
420
|
};
|
|
521
421
|
export const deepNesting = () => {
|
|
522
422
|
const color = window.__swc_hack_knobs__.defaultColor;
|
|
@@ -547,115 +447,6 @@ export const deepNesting = () => {
|
|
|
547
447
|
</sp-theme>
|
|
548
448
|
`;
|
|
549
449
|
};
|
|
550
|
-
class DefinedOverlayReady extends HTMLElement {
|
|
551
|
-
constructor() {
|
|
552
|
-
super(...arguments);
|
|
553
|
-
this.handleTriggerOpened = async () => {
|
|
554
|
-
this.overlay.removeEventListener("sp-opened", this.handleTriggerOpened);
|
|
555
|
-
await nextFrame();
|
|
556
|
-
await nextFrame();
|
|
557
|
-
await nextFrame();
|
|
558
|
-
await nextFrame();
|
|
559
|
-
this.popover = document.querySelector(
|
|
560
|
-
"popover-content"
|
|
561
|
-
);
|
|
562
|
-
if (!this.popover) {
|
|
563
|
-
return;
|
|
564
|
-
}
|
|
565
|
-
this.popover.addEventListener("sp-opened", this.handlePopoverOpen);
|
|
566
|
-
await nextFrame();
|
|
567
|
-
await nextFrame();
|
|
568
|
-
this.popover.button.click();
|
|
569
|
-
};
|
|
570
|
-
this.handlePopoverOpen = async () => {
|
|
571
|
-
await nextFrame();
|
|
572
|
-
this.ready(true);
|
|
573
|
-
};
|
|
574
|
-
this.readyPromise = Promise.resolve(false);
|
|
575
|
-
}
|
|
576
|
-
connectedCallback() {
|
|
577
|
-
if (!!this.ready)
|
|
578
|
-
return;
|
|
579
|
-
this.readyPromise = new Promise((res) => {
|
|
580
|
-
this.ready = res;
|
|
581
|
-
this.setup();
|
|
582
|
-
});
|
|
583
|
-
}
|
|
584
|
-
async setup() {
|
|
585
|
-
await nextFrame();
|
|
586
|
-
await nextFrame();
|
|
587
|
-
this.overlay = document.querySelector(
|
|
588
|
-
`overlay-trigger`
|
|
589
|
-
);
|
|
590
|
-
const button = document.querySelector(
|
|
591
|
-
`[slot="trigger"]`
|
|
592
|
-
);
|
|
593
|
-
this.overlay.addEventListener("sp-opened", this.handleTriggerOpened);
|
|
594
|
-
await nextFrame();
|
|
595
|
-
await nextFrame();
|
|
596
|
-
button.click();
|
|
597
|
-
}
|
|
598
|
-
disconnectedCallback() {
|
|
599
|
-
this.overlay.removeEventListener("sp-opened", this.handleTriggerOpened);
|
|
600
|
-
this.popover.removeEventListener("sp-opened", this.handlePopoverOpen);
|
|
601
|
-
}
|
|
602
|
-
get updateComplete() {
|
|
603
|
-
return this.readyPromise;
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
customElements.define("defined-overlay-ready", DefinedOverlayReady);
|
|
607
|
-
const definedOverlayDecorator = (story) => {
|
|
608
|
-
return html`
|
|
609
|
-
${story()}
|
|
610
|
-
<defined-overlay-ready></defined-overlay-ready>
|
|
611
|
-
`;
|
|
612
|
-
};
|
|
613
|
-
export const definedOverlayElement = () => {
|
|
614
|
-
return html`
|
|
615
|
-
<overlay-trigger placement="bottom" type="modal">
|
|
616
|
-
<sp-button variant="primary" slot="trigger">Open popover</sp-button>
|
|
617
|
-
<sp-popover slot="click-content" direction="bottom" dialog>
|
|
618
|
-
<popover-content></popover-content>
|
|
619
|
-
</sp-popover>
|
|
620
|
-
</overlay-trigger>
|
|
621
|
-
`;
|
|
622
|
-
};
|
|
623
|
-
definedOverlayElement.decorators = [definedOverlayDecorator];
|
|
624
|
-
export const detachedElement = () => {
|
|
625
|
-
let closeOverlay;
|
|
626
|
-
const openDetachedOverlayContent = async () => {
|
|
627
|
-
if (closeOverlay) {
|
|
628
|
-
closeOverlay();
|
|
629
|
-
closeOverlay = void 0;
|
|
630
|
-
return;
|
|
631
|
-
}
|
|
632
|
-
const div = document.createElement("div");
|
|
633
|
-
div.textContent = "This div is overlaid";
|
|
634
|
-
div.setAttribute(
|
|
635
|
-
"style",
|
|
636
|
-
`
|
|
637
|
-
background-color: var(--spectrum-global-color-gray-50);
|
|
638
|
-
color: var(--spectrum-global-color-gray-800);
|
|
639
|
-
border: 1px solid;
|
|
640
|
-
padding: 2em;
|
|
641
|
-
`
|
|
642
|
-
);
|
|
643
|
-
};
|
|
644
|
-
requestAnimationFrame(() => {
|
|
645
|
-
});
|
|
646
|
-
return html`
|
|
647
|
-
<sp-action-button
|
|
648
|
-
id="detached-content-trigger"
|
|
649
|
-
@click=${openDetachedOverlayContent}
|
|
650
|
-
@sp-closed=${() => closeOverlay = void 0}
|
|
651
|
-
>
|
|
652
|
-
<sp-icon-open-in
|
|
653
|
-
slot="icon"
|
|
654
|
-
label="Open in overlay"
|
|
655
|
-
></sp-icon-open-in>
|
|
656
|
-
</sp-action-button>
|
|
657
|
-
`;
|
|
658
|
-
};
|
|
659
450
|
export const edges = () => {
|
|
660
451
|
return html`
|
|
661
452
|
<style>
|
|
@@ -685,7 +476,7 @@ export const edges = () => {
|
|
|
685
476
|
<br />
|
|
686
477
|
Left
|
|
687
478
|
</sp-button>
|
|
688
|
-
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
479
|
+
<sp-tooltip slot="hover-content" delayed open tip="bottom">
|
|
689
480
|
Triskaidekaphobia and More
|
|
690
481
|
</sp-tooltip>
|
|
691
482
|
</overlay-trigger>
|
|
@@ -695,7 +486,7 @@ export const edges = () => {
|
|
|
695
486
|
<br />
|
|
696
487
|
Right
|
|
697
488
|
</sp-button>
|
|
698
|
-
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
489
|
+
<sp-tooltip slot="hover-content" delayed open tip="bottom">
|
|
699
490
|
Triskaidekaphobia and More
|
|
700
491
|
</sp-tooltip>
|
|
701
492
|
</overlay-trigger>
|
|
@@ -705,7 +496,7 @@ export const edges = () => {
|
|
|
705
496
|
<br />
|
|
706
497
|
Left
|
|
707
498
|
</sp-button>
|
|
708
|
-
<sp-tooltip slot="hover-content" delayed tip="top">
|
|
499
|
+
<sp-tooltip slot="hover-content" delayed open tip="top">
|
|
709
500
|
Triskaidekaphobia and More
|
|
710
501
|
</sp-tooltip>
|
|
711
502
|
</overlay-trigger>
|
|
@@ -715,33 +506,108 @@ export const edges = () => {
|
|
|
715
506
|
<br />
|
|
716
507
|
Right
|
|
717
508
|
</sp-button>
|
|
718
|
-
<sp-tooltip slot="hover-content" delayed tip="top">
|
|
509
|
+
<sp-tooltip slot="hover-content" delayed open tip="top">
|
|
719
510
|
Triskaidekaphobia and More
|
|
720
511
|
</sp-tooltip>
|
|
721
512
|
</overlay-trigger>
|
|
722
513
|
`;
|
|
723
514
|
};
|
|
724
|
-
export const
|
|
725
|
-
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
515
|
+
export const updated = () => {
|
|
726
516
|
return html`
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
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
|
|
734
538
|
>
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
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 = () => {
|
|
609
|
+
return html`
|
|
610
|
+
<overlay-trigger placement="right-start">
|
|
745
611
|
<sp-action-button slot="trigger" hold-affordance>
|
|
746
612
|
<sp-icon-magnify slot="icon"></sp-icon-magnify>
|
|
747
613
|
</sp-action-button>
|
|
@@ -769,162 +635,155 @@ export const longpress = () => {
|
|
|
769
635
|
</overlay-trigger>
|
|
770
636
|
`;
|
|
771
637
|
};
|
|
772
|
-
export const
|
|
773
|
-
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
774
|
-
return html`
|
|
775
|
-
<overlay-trigger type="modal" placement="none">
|
|
776
|
-
<sp-button slot="trigger">Open</sp-button>
|
|
777
|
-
<sp-dialog
|
|
778
|
-
size="s"
|
|
779
|
-
dismissable
|
|
780
|
-
slot="click-content"
|
|
781
|
-
@closed=${(event) => event.target.dispatchEvent(closeEvent)}
|
|
782
|
-
>
|
|
783
|
-
<h2 slot="heading">Loose Dialog</h2>
|
|
784
|
-
<p>
|
|
785
|
-
The
|
|
786
|
-
<code>sp-dialog</code>
|
|
787
|
-
element is not "meant" to be a modal alone. In that way it
|
|
788
|
-
does not manage its own
|
|
789
|
-
<code>open</code>
|
|
790
|
-
attribute or outline when it should have
|
|
791
|
-
<code>pointer-events: auto</code>
|
|
792
|
-
. It's a part of this test suite to prove that content in
|
|
793
|
-
this way can be used in an
|
|
794
|
-
<code>overlay-trigger</code>
|
|
795
|
-
element.
|
|
796
|
-
</p>
|
|
797
|
-
</sp-dialog>
|
|
798
|
-
</overlay-trigger>
|
|
799
|
-
${extraText}
|
|
800
|
-
`;
|
|
801
|
-
};
|
|
802
|
-
export const modalManaged = () => {
|
|
803
|
-
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
804
|
-
return html`
|
|
805
|
-
<overlay-trigger type="modal" placement="none">
|
|
806
|
-
<sp-button slot="trigger">Open</sp-button>
|
|
807
|
-
<sp-dialog-wrapper
|
|
808
|
-
underlay
|
|
809
|
-
slot="click-content"
|
|
810
|
-
headline="Wrapped Dialog w/ Hero Image"
|
|
811
|
-
confirm-label="Keep Both"
|
|
812
|
-
secondary-label="Replace"
|
|
813
|
-
cancel-label="Cancel"
|
|
814
|
-
footer="Content for footer"
|
|
815
|
-
@confirm=${(event) => {
|
|
816
|
-
event.target.dispatchEvent(closeEvent);
|
|
817
|
-
}}
|
|
818
|
-
@secondary=${(event) => {
|
|
819
|
-
event.target.dispatchEvent(closeEvent);
|
|
820
|
-
}}
|
|
821
|
-
@cancel=${(event) => {
|
|
822
|
-
event.target.dispatchEvent(closeEvent);
|
|
823
|
-
}}
|
|
824
|
-
>
|
|
825
|
-
<p>
|
|
826
|
-
The
|
|
827
|
-
<code>sp-dialog-wrapper</code>
|
|
828
|
-
element has been prepared for use in an
|
|
829
|
-
<code>overlay-trigger</code>
|
|
830
|
-
element by it's combination of modal, underlay, etc. styles
|
|
831
|
-
and features.
|
|
832
|
-
</p>
|
|
833
|
-
</sp-dialog-wrapper>
|
|
834
|
-
</overlay-trigger>
|
|
835
|
-
${extraText}
|
|
836
|
-
`;
|
|
837
|
-
};
|
|
838
|
-
export const modalWithinNonModal = () => {
|
|
638
|
+
export const clickAndHoverTargets = () => {
|
|
839
639
|
return html`
|
|
840
|
-
<
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
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>
|
|
855
669
|
`;
|
|
856
670
|
};
|
|
857
|
-
|
|
858
|
-
<style>
|
|
859
|
-
sp-button:hover {
|
|
860
|
-
border: 10px solid;
|
|
861
|
-
width: 100px;
|
|
862
|
-
}
|
|
863
|
-
</style>
|
|
864
|
-
${template({
|
|
865
|
-
...args,
|
|
866
|
-
open: "click"
|
|
867
|
-
})}
|
|
868
|
-
`;
|
|
869
|
-
noCloseOnResize.swc_vrt = {
|
|
671
|
+
clickAndHoverTargets.swc_vrt = {
|
|
870
672
|
skip: true
|
|
871
673
|
};
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
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) => {
|
|
882
711
|
return html`
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
<sp-popover slot="click-content">
|
|
886
|
-
<sp-button
|
|
887
|
-
@click=${(event) => {
|
|
888
|
-
event.target.dispatchEvent(closeEvent);
|
|
889
|
-
}}
|
|
890
|
-
>
|
|
891
|
-
Close
|
|
892
|
-
</sp-button>
|
|
893
|
-
</sp-popover>
|
|
894
|
-
</overlay-trigger>
|
|
895
|
-
${extraText}
|
|
712
|
+
${story()}
|
|
713
|
+
<complex-modal-ready></complex-modal-ready>
|
|
896
714
|
`;
|
|
897
715
|
};
|
|
898
|
-
export const
|
|
716
|
+
export const complexModal = () => {
|
|
899
717
|
return html`
|
|
900
|
-
${storyStyles}
|
|
901
718
|
<style>
|
|
902
|
-
|
|
903
|
-
|
|
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;
|
|
904
757
|
}
|
|
905
758
|
</style>
|
|
906
|
-
<overlay-
|
|
907
|
-
<
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
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>
|
|
926
784
|
`;
|
|
927
785
|
};
|
|
786
|
+
complexModal.decorators = [complexModalDecorator];
|
|
928
787
|
export const superComplexModal = () => {
|
|
929
788
|
return html`
|
|
930
789
|
<overlay-trigger type="modal" placement="none">
|
|
@@ -961,85 +820,6 @@ export const superComplexModal = () => {
|
|
|
961
820
|
</overlay-trigger>
|
|
962
821
|
`;
|
|
963
822
|
};
|
|
964
|
-
export const updated = () => {
|
|
965
|
-
return html`
|
|
966
|
-
${storyStyles}
|
|
967
|
-
<style>
|
|
968
|
-
sp-tooltip {
|
|
969
|
-
transition: none;
|
|
970
|
-
}
|
|
971
|
-
</style>
|
|
972
|
-
<overlay-drag>
|
|
973
|
-
<overlay-trigger class="demo top-left" placement="bottom">
|
|
974
|
-
<overlay-target-icon
|
|
975
|
-
slot="trigger"
|
|
976
|
-
style="translate(400px, 300px)"
|
|
977
|
-
></overlay-target-icon>
|
|
978
|
-
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
979
|
-
Click to open popover
|
|
980
|
-
</sp-tooltip>
|
|
981
|
-
<sp-popover dialog slot="click-content" position="bottom" tip>
|
|
982
|
-
<div class="options-popover-content">
|
|
983
|
-
<sp-slider
|
|
984
|
-
value="5"
|
|
985
|
-
step="0.5"
|
|
986
|
-
min="0"
|
|
987
|
-
max="20"
|
|
988
|
-
label="Awesomeness"
|
|
989
|
-
></sp-slider>
|
|
990
|
-
<div id="styled-div">
|
|
991
|
-
The background of this div should be blue
|
|
992
|
-
</div>
|
|
993
|
-
<overlay-trigger id="inner-trigger" placement="bottom">
|
|
994
|
-
<sp-button slot="trigger">Press Me</sp-button>
|
|
995
|
-
<sp-popover
|
|
996
|
-
dialog
|
|
997
|
-
slot="click-content"
|
|
998
|
-
placement="bottom"
|
|
999
|
-
tip
|
|
1000
|
-
>
|
|
1001
|
-
<div class="options-popover-content">
|
|
1002
|
-
Another Popover
|
|
1003
|
-
</div>
|
|
1004
|
-
</sp-popover>
|
|
1005
|
-
|
|
1006
|
-
<sp-tooltip
|
|
1007
|
-
slot="hover-content"
|
|
1008
|
-
delayed
|
|
1009
|
-
tip="bottom"
|
|
1010
|
-
>
|
|
1011
|
-
Click to open another popover.
|
|
1012
|
-
</sp-tooltip>
|
|
1013
|
-
</overlay-trigger>
|
|
1014
|
-
</div>
|
|
1015
|
-
</sp-popover>
|
|
1016
|
-
</overlay-trigger>
|
|
1017
|
-
</overlay-drag>
|
|
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
|
-
};
|
|
1027
|
-
return html`
|
|
1028
|
-
<overlay-trigger type="click">
|
|
1029
|
-
<sp-button variant="primary" slot="trigger">
|
|
1030
|
-
Open inline overlay
|
|
1031
|
-
</sp-button>
|
|
1032
|
-
<sp-popover slot="click-content" dialog>
|
|
1033
|
-
<sp-button variant="primary" @click=${update}>
|
|
1034
|
-
Update trigger location.
|
|
1035
|
-
</sp-button>
|
|
1036
|
-
</sp-popover>
|
|
1037
|
-
</overlay-trigger>
|
|
1038
|
-
`;
|
|
1039
|
-
};
|
|
1040
|
-
updating.swc_vrt = {
|
|
1041
|
-
skip: true
|
|
1042
|
-
};
|
|
1043
823
|
class StartEndContextmenu extends HTMLElement {
|
|
1044
824
|
constructor() {
|
|
1045
825
|
super();
|
|
@@ -1061,8 +841,45 @@ class StartEndContextmenu extends HTMLElement {
|
|
|
1061
841
|
}
|
|
1062
842
|
}
|
|
1063
843
|
customElements.define("start-end-contextmenu", StartEndContextmenu);
|
|
1064
|
-
export const virtualElement = () => {
|
|
1065
|
-
const
|
|
844
|
+
export const virtualElement = (args) => {
|
|
845
|
+
const contextMenuTemplate = (kind = "") => html`
|
|
846
|
+
<sp-popover
|
|
847
|
+
style="width:300px;"
|
|
848
|
+
@click=${(event) => {
|
|
849
|
+
var _a;
|
|
850
|
+
return (_a = event.target) == null ? void 0 : _a.dispatchEvent(
|
|
851
|
+
new Event("close", { bubbles: true })
|
|
852
|
+
);
|
|
853
|
+
}}
|
|
854
|
+
>
|
|
855
|
+
<sp-menu>
|
|
856
|
+
<sp-menu-group>
|
|
857
|
+
<span slot="header">Menu source: ${kind}</span>
|
|
858
|
+
<sp-menu-item>Deselect</sp-menu-item>
|
|
859
|
+
<sp-menu-item>Select inverse</sp-menu-item>
|
|
860
|
+
<sp-menu-item>Feather...</sp-menu-item>
|
|
861
|
+
<sp-menu-item>Select and mask...</sp-menu-item>
|
|
862
|
+
<sp-menu-divider></sp-menu-divider>
|
|
863
|
+
<sp-menu-item>Save selection</sp-menu-item>
|
|
864
|
+
<sp-menu-item disabled>Make work path</sp-menu-item>
|
|
865
|
+
</sp-menu-group>
|
|
866
|
+
</sp-menu>
|
|
867
|
+
</sp-popover>
|
|
868
|
+
`;
|
|
869
|
+
const pointerenter = async (event) => {
|
|
870
|
+
event.preventDefault();
|
|
871
|
+
const source = event.composedPath()[0];
|
|
872
|
+
const { id } = source;
|
|
873
|
+
const trigger = event.target;
|
|
874
|
+
const virtualTrigger = new VirtualTrigger(event.clientX, event.clientY);
|
|
875
|
+
const fragment = document.createDocumentFragment();
|
|
876
|
+
render(contextMenuTemplate(id), fragment);
|
|
877
|
+
const popover = fragment.querySelector("sp-popover");
|
|
878
|
+
openOverlay(trigger, "modal", popover, {
|
|
879
|
+
placement: args.placement,
|
|
880
|
+
receivesFocus: "auto",
|
|
881
|
+
virtualTrigger
|
|
882
|
+
});
|
|
1066
883
|
};
|
|
1067
884
|
return html`
|
|
1068
885
|
<style>
|
|
@@ -1080,4 +897,228 @@ export const virtualElement = () => {
|
|
|
1080
897
|
virtualElement.args = {
|
|
1081
898
|
placement: "right-start"
|
|
1082
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
|
+
};
|
|
1083
1124
|
//# sourceMappingURL=overlay.stories.js.map
|