@spectrum-web-components/overlay 0.19.3 → 0.19.4-overlay.8
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 -25
- 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 +63 -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 +93 -0
- package/src/OverlayBase.dev.js +564 -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 +113 -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 +1 -3
- package/src/index.dev.js +1 -3
- package/src/index.dev.js.map +2 -2
- package/src/index.js +1 -1
- package/src/index.js.map +2 -2
- 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 +2 -2
- 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 +641 -682
- 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 +100 -154
- 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/loader.d.ts +0 -2
- package/src/loader.dev.js +0 -21
- package/src/loader.dev.js.map +0 -7
- package/src/loader.js +0 -2
- package/src/loader.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
|
@@ -1,11 +1,6 @@
|
|
|
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";
|
|
9
4
|
import "@spectrum-web-components/action-button/sp-action-button.js";
|
|
10
5
|
import "@spectrum-web-components/action-group/sp-action-group.js";
|
|
11
6
|
import "@spectrum-web-components/button/sp-button.js";
|
|
@@ -15,6 +10,7 @@ import "@spectrum-web-components/icons-workflow/icons/sp-icon-magnify.js";
|
|
|
15
10
|
import "@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js";
|
|
16
11
|
import "@spectrum-web-components/overlay/overlay-trigger.js";
|
|
17
12
|
import "@spectrum-web-components/picker/sp-picker.js";
|
|
13
|
+
import "@spectrum-web-components/overlay/sp-overlay.js";
|
|
18
14
|
import "@spectrum-web-components/menu/sp-menu.js";
|
|
19
15
|
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
20
16
|
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
@@ -29,7 +25,6 @@ import "@spectrum-web-components/accordion/sp-accordion.js";
|
|
|
29
25
|
import "@spectrum-web-components/accordion/sp-accordion-item.js";
|
|
30
26
|
import "../../../projects/story-decorator/src/types.js";
|
|
31
27
|
import "./overlay-story-components.js";
|
|
32
|
-
import { render } from "lit-html";
|
|
33
28
|
const storyStyles = html`
|
|
34
29
|
<style>
|
|
35
30
|
html,
|
|
@@ -152,7 +147,6 @@ const template = ({
|
|
|
152
147
|
slot="click-content"
|
|
153
148
|
placement="bottom"
|
|
154
149
|
tip
|
|
155
|
-
open
|
|
156
150
|
>
|
|
157
151
|
<div class="options-popover-content">
|
|
158
152
|
Another Popover
|
|
@@ -175,18 +169,152 @@ const template = ({
|
|
|
175
169
|
</overlay-trigger>
|
|
176
170
|
`;
|
|
177
171
|
};
|
|
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
|
+
}
|
|
178
184
|
export const Default = (args) => template(args);
|
|
179
|
-
export const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
export const accordion = () => {
|
|
186
|
+
const handleToggle = () => {
|
|
187
|
+
};
|
|
188
|
+
return html`
|
|
189
|
+
<overlay-trigger type="modal" placement="right">
|
|
190
|
+
<sp-button variant="primary" slot="trigger">
|
|
191
|
+
Open overlay w/ accordion
|
|
192
|
+
</sp-button>
|
|
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
|
+
};
|
|
187
298
|
class ScrollForcer extends HTMLElement {
|
|
188
299
|
constructor() {
|
|
189
300
|
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
|
+
};
|
|
190
318
|
this.readyPromise = Promise.resolve(false);
|
|
191
319
|
this.readyPromise = new Promise((res) => {
|
|
192
320
|
this.ready = res;
|
|
@@ -194,28 +322,16 @@ class ScrollForcer extends HTMLElement {
|
|
|
194
322
|
this.setup();
|
|
195
323
|
}
|
|
196
324
|
async setup() {
|
|
197
|
-
var _a;
|
|
325
|
+
var _a, _b;
|
|
198
326
|
await nextFrame();
|
|
199
327
|
await nextFrame();
|
|
200
328
|
(_a = this.previousElementSibling) == null ? void 0 : _a.addEventListener(
|
|
201
329
|
"sp-opened",
|
|
202
|
-
|
|
203
|
-
this.doScroll();
|
|
204
|
-
},
|
|
205
|
-
{ once: true }
|
|
330
|
+
this.doScroll
|
|
206
331
|
);
|
|
207
|
-
}
|
|
208
|
-
async doScroll() {
|
|
209
|
-
await nextFrame();
|
|
210
|
-
await nextFrame();
|
|
211
332
|
await nextFrame();
|
|
212
333
|
await nextFrame();
|
|
213
|
-
|
|
214
|
-
document.scrollingElement.scrollTop = 100;
|
|
215
|
-
}
|
|
216
|
-
await nextFrame();
|
|
217
|
-
await nextFrame();
|
|
218
|
-
this.ready(true);
|
|
334
|
+
((_b = this.previousElementSibling) == null ? void 0 : _b.lastElementChild).open = "click";
|
|
219
335
|
}
|
|
220
336
|
get updateComplete() {
|
|
221
337
|
return this.readyPromise;
|
|
@@ -225,8 +341,7 @@ customElements.define("scroll-forcer", ScrollForcer);
|
|
|
225
341
|
export const clickContentClosedOnScroll = (args) => html`
|
|
226
342
|
<div style="margin: 50vh 0 100vh;">
|
|
227
343
|
${template({
|
|
228
|
-
...args
|
|
229
|
-
open: "click"
|
|
344
|
+
...args
|
|
230
345
|
})}
|
|
231
346
|
</div>
|
|
232
347
|
`;
|
|
@@ -245,179 +360,164 @@ clickContentClosedOnScroll.decorators = [
|
|
|
245
360
|
<scroll-forcer></scroll-forcer>
|
|
246
361
|
`
|
|
247
362
|
];
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
363
|
+
class ComplexModalReady extends HTMLElement {
|
|
364
|
+
constructor() {
|
|
365
|
+
super();
|
|
366
|
+
this.handleTriggerOpened = async () => {
|
|
367
|
+
await nextFrame();
|
|
368
|
+
const picker = document.querySelector("#test-picker");
|
|
369
|
+
picker.addEventListener("sp-opened", this.handlePickerOpen);
|
|
370
|
+
picker.open = true;
|
|
371
|
+
};
|
|
372
|
+
this.handlePickerOpen = async () => {
|
|
373
|
+
const picker = document.querySelector("#test-picker");
|
|
374
|
+
const actions = [nextFrame, picker.updateComplete];
|
|
375
|
+
await Promise.all(actions);
|
|
376
|
+
this.ready(true);
|
|
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
|
+
`;
|
|
262
471
|
};
|
|
472
|
+
complexModal.decorators = [complexModalDecorator];
|
|
263
473
|
export const customizedClickContent = (args) => html`
|
|
264
474
|
<style>
|
|
265
|
-
|
|
266
|
-
--styled-div-background-color: var(
|
|
267
|
-
|
|
475
|
+
overlay-trigger {
|
|
476
|
+
--styled-div-background-color: var(
|
|
477
|
+
--spectrum-semantic-cta-background-color-default
|
|
478
|
+
);
|
|
479
|
+
--spectrum-button-m-accent-fill-texticon-background-color: rebeccapurple;
|
|
268
480
|
}
|
|
269
481
|
</style>
|
|
270
|
-
</style>
|
|
271
482
|
${template({
|
|
272
483
|
...args,
|
|
273
484
|
open: "click"
|
|
274
485
|
})}
|
|
275
486
|
`;
|
|
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>
|
|
487
|
+
export const deep = () => html`
|
|
488
|
+
<overlay-trigger>
|
|
489
|
+
<sp-button variant="primary" slot="trigger">
|
|
490
|
+
Open popover 1 with buttons + selfmanaged Tooltips
|
|
491
|
+
</sp-button>
|
|
492
|
+
<sp-popover dialog slot="click-content" direction="bottom" tip>
|
|
493
|
+
<sp-action-button>
|
|
494
|
+
<sp-tooltip self-managed placement="bottom" offset="0">
|
|
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>
|
|
351
517
|
`;
|
|
352
518
|
deep.swc_vrt = {
|
|
353
519
|
skip: true
|
|
354
520
|
};
|
|
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
521
|
export const deepNesting = () => {
|
|
422
522
|
const color = window.__swc_hack_knobs__.defaultColor;
|
|
423
523
|
const outter = color === "light" ? "dark" : "light";
|
|
@@ -447,6 +547,115 @@ export const deepNesting = () => {
|
|
|
447
547
|
</sp-theme>
|
|
448
548
|
`;
|
|
449
549
|
};
|
|
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
|
+
};
|
|
450
659
|
export const edges = () => {
|
|
451
660
|
return html`
|
|
452
661
|
<style>
|
|
@@ -476,7 +685,7 @@ export const edges = () => {
|
|
|
476
685
|
<br />
|
|
477
686
|
Left
|
|
478
687
|
</sp-button>
|
|
479
|
-
<sp-tooltip slot="hover-content" delayed
|
|
688
|
+
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
480
689
|
Triskaidekaphobia and More
|
|
481
690
|
</sp-tooltip>
|
|
482
691
|
</overlay-trigger>
|
|
@@ -486,7 +695,7 @@ export const edges = () => {
|
|
|
486
695
|
<br />
|
|
487
696
|
Right
|
|
488
697
|
</sp-button>
|
|
489
|
-
<sp-tooltip slot="hover-content" delayed
|
|
698
|
+
<sp-tooltip slot="hover-content" delayed tip="bottom">
|
|
490
699
|
Triskaidekaphobia and More
|
|
491
700
|
</sp-tooltip>
|
|
492
701
|
</overlay-trigger>
|
|
@@ -496,7 +705,7 @@ export const edges = () => {
|
|
|
496
705
|
<br />
|
|
497
706
|
Left
|
|
498
707
|
</sp-button>
|
|
499
|
-
<sp-tooltip slot="hover-content" delayed
|
|
708
|
+
<sp-tooltip slot="hover-content" delayed tip="top">
|
|
500
709
|
Triskaidekaphobia and More
|
|
501
710
|
</sp-tooltip>
|
|
502
711
|
</overlay-trigger>
|
|
@@ -506,103 +715,28 @@ export const edges = () => {
|
|
|
506
715
|
<br />
|
|
507
716
|
Right
|
|
508
717
|
</sp-button>
|
|
509
|
-
<sp-tooltip slot="hover-content" delayed
|
|
718
|
+
<sp-tooltip slot="hover-content" delayed tip="top">
|
|
510
719
|
Triskaidekaphobia and More
|
|
511
720
|
</sp-tooltip>
|
|
512
721
|
</overlay-trigger>
|
|
513
722
|
`;
|
|
514
723
|
};
|
|
515
|
-
export const
|
|
724
|
+
export const inline = () => {
|
|
725
|
+
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
516
726
|
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
|
|
727
|
+
<overlay-trigger type="inline">
|
|
728
|
+
<sp-button slot="trigger">Open</sp-button>
|
|
729
|
+
<sp-popover slot="click-content">
|
|
730
|
+
<sp-button
|
|
731
|
+
@click=${(event) => {
|
|
732
|
+
event.target.dispatchEvent(closeEvent);
|
|
733
|
+
}}
|
|
538
734
|
>
|
|
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>
|
|
735
|
+
Close
|
|
736
|
+
</sp-button>
|
|
737
|
+
</sp-popover>
|
|
738
|
+
</overlay-trigger>
|
|
739
|
+
${extraText}
|
|
606
740
|
`;
|
|
607
741
|
};
|
|
608
742
|
export const longpress = () => {
|
|
@@ -635,155 +769,162 @@ export const longpress = () => {
|
|
|
635
769
|
</overlay-trigger>
|
|
636
770
|
`;
|
|
637
771
|
};
|
|
638
|
-
export const
|
|
772
|
+
export const modalLoose = () => {
|
|
773
|
+
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
639
774
|
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>
|
|
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}
|
|
669
800
|
`;
|
|
670
801
|
};
|
|
671
|
-
|
|
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 = () => {
|
|
839
|
+
return html`
|
|
840
|
+
<overlay-trigger type="inline">
|
|
841
|
+
<sp-button variant="primary" slot="trigger">
|
|
842
|
+
Open inline overlay
|
|
843
|
+
</sp-button>
|
|
844
|
+
<sp-popover slot="click-content" dialog>
|
|
845
|
+
<overlay-trigger type="modal">
|
|
846
|
+
<sp-button variant="primary" slot="trigger">
|
|
847
|
+
Open modal overlay
|
|
848
|
+
</sp-button>
|
|
849
|
+
<sp-popover slot="click-content" dialog>
|
|
850
|
+
Modal overlay
|
|
851
|
+
</sp-popover>
|
|
852
|
+
</overlay-trigger>
|
|
853
|
+
</sp-popover>
|
|
854
|
+
</overlay-trigger>
|
|
855
|
+
`;
|
|
856
|
+
};
|
|
857
|
+
export const noCloseOnResize = (args) => html`
|
|
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 = {
|
|
672
870
|
skip: true
|
|
673
871
|
};
|
|
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) => {
|
|
872
|
+
export const openClickContent = (args) => template({
|
|
873
|
+
...args,
|
|
874
|
+
open: "click"
|
|
875
|
+
});
|
|
876
|
+
export const openHoverContent = (args) => template({
|
|
877
|
+
...args,
|
|
878
|
+
open: "hover"
|
|
879
|
+
});
|
|
880
|
+
export const replace = () => {
|
|
881
|
+
const closeEvent = new Event("close", { bubbles: true, composed: true });
|
|
711
882
|
return html`
|
|
712
|
-
|
|
713
|
-
|
|
883
|
+
<overlay-trigger type="replace">
|
|
884
|
+
<sp-button slot="trigger">Open</sp-button>
|
|
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}
|
|
714
896
|
`;
|
|
715
897
|
};
|
|
716
|
-
export const
|
|
898
|
+
export const sideHoverDraggable = () => {
|
|
717
899
|
return html`
|
|
900
|
+
${storyStyles}
|
|
718
901
|
<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;
|
|
902
|
+
sp-tooltip {
|
|
903
|
+
transition: none;
|
|
757
904
|
}
|
|
758
905
|
</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>
|
|
906
|
+
<overlay-drag>
|
|
907
|
+
<overlay-trigger placement="right">
|
|
908
|
+
<overlay-target-icon slot="trigger"></overlay-target-icon>
|
|
909
|
+
<sp-tooltip slot="hover-content" delayed tip="right">
|
|
910
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
911
|
+
Vivamus egestas sed enim sed condimentum. Nunc facilisis
|
|
912
|
+
scelerisque massa sed luctus. Orci varius natoque penatibus
|
|
913
|
+
et magnis dis parturient montes, nascetur ridiculus mus.
|
|
914
|
+
Suspendisse sagittis sodales purus vitae ultricies. Integer
|
|
915
|
+
at dui sem. Sed quam tortor, ornare in nisi et, rhoncus
|
|
916
|
+
lacinia mauris. Sed vel rutrum mauris, ac pellentesque nibh.
|
|
917
|
+
Sed feugiat semper libero, sit amet vehicula orci fermentum
|
|
918
|
+
id. Vivamus imperdiet egestas luctus. Mauris tincidunt
|
|
919
|
+
malesuada ante, faucibus viverra nunc blandit a. Fusce et
|
|
920
|
+
nisl nisi. Aenean dictum quam id mollis faucibus. Nulla a
|
|
921
|
+
ultricies dui. In hac habitasse platea dictumst. Curabitur
|
|
922
|
+
gravida lobortis vestibulum.
|
|
923
|
+
</sp-tooltip>
|
|
924
|
+
</overlay-trigger>
|
|
925
|
+
</overlay-drag>
|
|
784
926
|
`;
|
|
785
927
|
};
|
|
786
|
-
complexModal.decorators = [complexModalDecorator];
|
|
787
928
|
export const superComplexModal = () => {
|
|
788
929
|
return html`
|
|
789
930
|
<overlay-trigger type="modal" placement="none">
|
|
@@ -820,6 +961,85 @@ export const superComplexModal = () => {
|
|
|
820
961
|
</overlay-trigger>
|
|
821
962
|
`;
|
|
822
963
|
};
|
|
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
|
+
};
|
|
823
1043
|
class StartEndContextmenu extends HTMLElement {
|
|
824
1044
|
constructor() {
|
|
825
1045
|
super();
|
|
@@ -841,45 +1061,8 @@ class StartEndContextmenu extends HTMLElement {
|
|
|
841
1061
|
}
|
|
842
1062
|
}
|
|
843
1063
|
customElements.define("start-end-contextmenu", StartEndContextmenu);
|
|
844
|
-
export const virtualElement = (
|
|
845
|
-
const
|
|
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
|
-
});
|
|
1064
|
+
export const virtualElement = () => {
|
|
1065
|
+
const pointerenter = async () => {
|
|
883
1066
|
};
|
|
884
1067
|
return html`
|
|
885
1068
|
<style>
|
|
@@ -897,228 +1080,4 @@ export const virtualElement = (args) => {
|
|
|
897
1080
|
virtualElement.args = {
|
|
898
1081
|
placement: "right-start"
|
|
899
1082
|
};
|
|
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
1083
|
//# sourceMappingURL=overlay.stories.js.map
|