@spectrum-web-components/dialog 1.0.2 → 1.0.3

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.
@@ -0,0 +1,578 @@
1
+ "use strict";
2
+ import { html } from "@spectrum-web-components/base";
3
+ import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
4
+ import "@spectrum-web-components/button/sp-button.js";
5
+ import "@spectrum-web-components/field-label/sp-field-label.js";
6
+ import "@spectrum-web-components/help-text/sp-help-text.js";
7
+ import "@spectrum-web-components/textfield/sp-textfield.js";
8
+ import "@spectrum-web-components/tooltip/sp-tooltip.js";
9
+ import "@spectrum-web-components/overlay/overlay-trigger.js";
10
+ import "@spectrum-web-components/dialog/sp-dialog-wrapper.js";
11
+ import { landscape } from "./images.js";
12
+ import { isOverlayOpen } from "../../overlay/stories/index.js";
13
+ import "../../overlay/stories/index.js";
14
+ export default {
15
+ title: "Dialog Wrapper",
16
+ component: "sp-dialog-wrapper",
17
+ argTypes: {
18
+ onClose: { action: "close" },
19
+ onConfirm: { action: "confirm" },
20
+ onSecondary: { action: "secondary" },
21
+ onCancel: { action: "cancel" }
22
+ }
23
+ };
24
+ const handleClose = ({ onClose }) => (event) => {
25
+ if (onClose) onClose(event);
26
+ };
27
+ const handleConfirm = ({ onConfirm }) => (event) => {
28
+ if (onConfirm) onConfirm(event);
29
+ };
30
+ const handleSecondary = ({ onSecondary }) => (event) => {
31
+ if (onSecondary) onSecondary(event);
32
+ };
33
+ const handleCancel = ({ onCancel }) => (event) => {
34
+ if (onCancel) onCancel(event);
35
+ };
36
+ export const wrapperLabeledHero = (args = {}, context = {}) => {
37
+ const open = context.viewMode === "docs" ? false : true;
38
+ return html`
39
+ <style>
40
+ sp-story-decorator {
41
+ inset: 0;
42
+ position: absolute;
43
+ overflow: hidden;
44
+ }
45
+ </style>
46
+ <sp-dialog-wrapper
47
+ ?open=${open}
48
+ hero=${landscape}
49
+ hero-label="Hero Image Alt Text"
50
+ dismissable
51
+ headline="Wrapped Dialog w/ Hero Image"
52
+ @close=${handleClose(args)}
53
+ size="s"
54
+ >
55
+ Content of the dialog
56
+ </sp-dialog-wrapper>
57
+ <sp-button
58
+ onClick="
59
+ this.previousElementSibling.open = !this.previousElementSibling.open;
60
+ if (this.previousElementSibling.open) {
61
+ this.previousElementSibling.focus();
62
+ }
63
+ "
64
+ variant="primary"
65
+ >
66
+ Toggle Dialog
67
+ </sp-button>
68
+ `;
69
+ };
70
+ export const wrapperDismissable = (args = {}, context = {}) => {
71
+ const open = context.viewMode === "docs" ? false : true;
72
+ return html`
73
+ <sp-dialog-wrapper
74
+ ?open=${open}
75
+ .hero=${landscape}
76
+ dismissable
77
+ headline="Wrapped Dialog w/ Hero Image"
78
+ @close=${handleClose(args)}
79
+ size="s"
80
+ tabindex="0"
81
+ >
82
+ Content of the dialog
83
+ </sp-dialog-wrapper>
84
+ <sp-button
85
+ onClick="
86
+ this.previousElementSibling.open = !this.previousElementSibling.open;
87
+ if (this.previousElementSibling.open) {
88
+ this.previousElementSibling.focus();
89
+ }
90
+ "
91
+ variant="primary"
92
+ >
93
+ Toggle Dialog
94
+ </sp-button>
95
+ `;
96
+ };
97
+ export const wrapperDismissableUnderlay = (args = {}, context = {}) => {
98
+ const open = context.viewMode === "docs" ? false : true;
99
+ return html`
100
+ <sp-dialog-wrapper
101
+ ?open=${open}
102
+ hero=${landscape}
103
+ dismissable
104
+ headline="Wrapped Dialog w/ Hero Image"
105
+ underlay
106
+ @close=${handleClose(args)}
107
+ size="s"
108
+ >
109
+ Content of the dialog
110
+ </sp-dialog-wrapper>
111
+ <sp-button
112
+ onClick="
113
+ this.previousElementSibling.open = !this.previousElementSibling.open;
114
+ if (this.previousElementSibling.open) {
115
+ this.previousElementSibling.focus();
116
+ }
117
+ "
118
+ variant="primary"
119
+ >
120
+ Toggle Dialog
121
+ </sp-button>
122
+ `;
123
+ };
124
+ export const form = (args = {}, context = {}) => {
125
+ const open = context.viewMode === "docs" ? void 0 : "click";
126
+ return html`
127
+ <overlay-trigger
128
+ type="modal"
129
+ @close=${handleClose(args)}
130
+ open=${ifDefined(open)}
131
+ >
132
+ <sp-button slot="trigger" variant="primary">
133
+ Toggle Dialog
134
+ </sp-button>
135
+ <sp-dialog-wrapper
136
+ id="form-fields"
137
+ slot="click-content"
138
+ headline="Add Delivery Address"
139
+ underlay
140
+ size="m"
141
+ confirm-label="Verify Address"
142
+ secondary-label="Add"
143
+ cancel-label="Cancel"
144
+ @close=${handleClose(args)}
145
+ @confirm=${({ target }) => {
146
+ target.dispatchEvent(
147
+ new Event("close", { bubbles: true, composed: true })
148
+ );
149
+ handleConfirm(args);
150
+ }}
151
+ @secondary=${({ target }) => {
152
+ target.dispatchEvent(
153
+ new Event("close", { bubbles: true, composed: true })
154
+ );
155
+ handleSecondary(args);
156
+ }}
157
+ @cancel=${({ target }) => {
158
+ target.dispatchEvent(
159
+ new Event("close", { bubbles: true, composed: true })
160
+ );
161
+ handleCancel(args);
162
+ }}
163
+ >
164
+ <style>
165
+ #form-fields div {
166
+ display: grid;
167
+ row-gap: calc(var(--swc-scale-factor) * 12px);
168
+ grid-template-columns: auto auto;
169
+ }
170
+ </style>
171
+ <div>
172
+ <sp-field-label side-aligned="end" for="street">
173
+ Street:
174
+ </sp-field-label>
175
+ <sp-textfield id="street" autofocus></sp-textfield>
176
+ <sp-field-label side-aligned="end" for="city">
177
+ City:
178
+ </sp-field-label>
179
+ <sp-textfield id="city"></sp-textfield>
180
+ <sp-field-label side-aligned="end" for="state">
181
+ State:
182
+ </sp-field-label>
183
+ <sp-textfield id="state"></sp-textfield>
184
+ <sp-field-label side-aligned="end" for="zip">
185
+ Zip:
186
+ </sp-field-label>
187
+ <sp-textfield id="zip"></sp-textfield>
188
+ <sp-field-label side-aligned="end" for="instructions">
189
+ Special instructions:
190
+ </sp-field-label>
191
+ <sp-textfield id="instructions" multiline>
192
+ <sp-help-text slot="help-text">
193
+ For example, gate code or other information to help
194
+ the driver find you
195
+ </sp-help-text>
196
+ </sp-textfield>
197
+ </div>
198
+ </sp-dialog-wrapper>
199
+ </overlay-trigger>
200
+ `;
201
+ };
202
+ form.decorators = [isOverlayOpen];
203
+ export const longContent = (args = {}, context = {}) => {
204
+ const open = context.viewMode === "docs" ? void 0 : "click";
205
+ return html`
206
+ <overlay-trigger
207
+ type="modal"
208
+ @close=${handleClose(args)}
209
+ open=${ifDefined(open)}
210
+ >
211
+ <sp-button slot="trigger" variant="primary">
212
+ Toggle Dialog
213
+ </sp-button>
214
+ <sp-dialog-wrapper
215
+ slot="click-content"
216
+ headline="Dialog title"
217
+ dismissable
218
+ underlay
219
+ size="s"
220
+ >
221
+ <p>
222
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
223
+ Sed ac dolor sit amet purus malesuada congue. Donec quis
224
+ nibh at felis congue commodo. Ut enim ad minima veniam, quis
225
+ nostrum exercitationem ullam corporis suscipit laboriosam,
226
+ nisi ut aliquid ex ea commodi consequatur? Sed ac dolor sit
227
+ amet purus malesuada congue. Nam libero tempore, cum soluta
228
+ nobis est eligendi optio cumque nihil impedit quo minus id
229
+ quod maxime placeat facere possimus, omnis voluptas
230
+ assumenda est, omnis dolor repellendus. Nullam sit amet
231
+ magna in magna gravida vehicula. Itaque earum rerum hic
232
+ tenetur a sapiente delectus, ut aut reiciendis voluptatibus
233
+ maiores alias consequatur aut perferendis doloribus
234
+ asperiores repellat. Neque porro quisquam est, qui dolorem
235
+ ipsum quia dolor sit amet, consectetur, adipisci velit, sed
236
+ quia non numquam eius modi tempora incidunt ut labore et
237
+ dolore magnam aliquam quaerat voluptatem. Phasellus faucibus
238
+ molestie nisl. Vestibulum fermentum tortor id mi. Integer
239
+ rutrum, orci vestibulum ullamcorper ultricies, lacus quam
240
+ ultricies odio, vitae placerat pede sem sit amet enim.
241
+ Maecenas sollicitudin. Nullam rhoncus aliquam metus.
242
+ </p>
243
+ <p>
244
+ Curabitur ligula sapien, pulvinar a vestibulum quis,
245
+ facilisis vel sapien. Fusce nibh. Proin pede metus,
246
+ vulputate nec, fermentum fringilla, vehicula vitae, justo.
247
+ Aenean placerat. Aliquam erat volutpat. Et harum quidem
248
+ rerum facilis est et expedita distinctio. Fusce nibh.
249
+ Temporibus autem quibusdam et aut officiis debitis aut rerum
250
+ necessitatibus saepe eveniet ut et voluptates repudiandae
251
+ sint et molestiae non recusandae. Vestibulum erat nulla,
252
+ ullamcorper nec, rutrum non, nonummy ac, erat. Etiam posuere
253
+ lacus quis dolor. Mauris elementum mauris vitae tortor.
254
+ Nulla turpis magna, cursus sit amet, suscipit a, interdum
255
+ id, felis. Nam libero tempore, cum soluta nobis est eligendi
256
+ optio cumque nihil impedit quo minus id quod maxime placeat
257
+ facere possimus, omnis voluptas assumenda est, omnis dolor
258
+ repellendus. Nulla accumsan, elit sit amet varius semper,
259
+ nulla mauris mollis quam, tempor suscipit diam nulla vel
260
+ leo. Pellentesque sapien.
261
+ </p>
262
+ <p>
263
+ Curabitur vitae diam non enim vestibulum interdum. Sed elit
264
+ dui, pellentesque a, faucibus vel, interdum nec, diam.
265
+ Praesent vitae arcu tempor neque lacinia pretium. Ut tempus
266
+ purus at lorem. Phasellus rhoncus. Temporibus autem
267
+ quibusdam et aut officiis debitis aut rerum necessitatibus
268
+ saepe eveniet ut et voluptates repudiandae sint et molestiae
269
+ non recusandae. Duis ante orci, molestie vitae vehicula
270
+ venenatis, tincidunt ac pede. Integer vulputate sem a nibh
271
+ rutrum consequat. Aenean placerat. Cum sociis natoque
272
+ penatibus et magnis dis parturient montes, nascetur
273
+ ridiculus mus. Sed vel lectus. Donec odio tempus molestie,
274
+ porttitor ut, iaculis quis, sem. Class aptent taciti
275
+ sociosqu ad litora torquent per conubia nostra, per inceptos
276
+ hymenaeos. Integer in sapien. Nullam dapibus fermentum
277
+ ipsum.
278
+ </p>
279
+ <p>
280
+ Integer vulputate sem a nibh rutrum consequat. Class aptent
281
+ taciti sociosqu ad litora torquent per conubia nostra, per
282
+ inceptos hymenaeos. Duis bibendum, lectus ut viverra
283
+ rhoncus, dolor nunc faucibus libero, eget facilisis enim
284
+ ipsum id lacus. Aliquam erat volutpat. Aenean id metus id
285
+ velit ullamcorper pulvinar. Morbi scelerisque luctus velit.
286
+ Aliquam erat volutpat. Temporibus autem quibusdam et aut
287
+ officiis debitis aut rerum necessitatibus saepe eveniet ut
288
+ et voluptates repudiandae sint et molestiae non recusandae.
289
+ Fusce dui leo, imperdiet in, aliquam sit amet, feugiat eu,
290
+ orci. Suspendisse sagittis ultrices augue. Nullam justo
291
+ enim, consectetuer nec, ullamcorper ac, vestibulum in, elit.
292
+ Praesent vitae arcu tempor neque lacinia pretium. Nullam
293
+ faucibus mi quis velit. Maecenas aliquet accumsan leo. Morbi
294
+ scelerisque luctus velit. Aliquam ornare wisi eu metus.
295
+ </p>
296
+ <p>
297
+ Sed elit dui, pellentesque a, faucibus vel, interdum nec,
298
+ diam. Praesent vitae arcu tempor neque lacinia pretium.
299
+ Etiam dictum tincidunt diam. Et harum quidem rerum facilis
300
+ est et expedita distinctio. Duis ante orci, molestie vitae
301
+ vehicula venenatis, tincidunt ac pede. Integer lacinia.
302
+ Excepteur sint occaecat cupidatat non proident, sunt in
303
+ culpa qui officia deserunt mollit anim id est laborum.
304
+ Mauris tincidunt sem sed arcu. Praesent in mauris eu tortor
305
+ porttitor accumsan. Aenean id metus id velit ullamcorper
306
+ pulvinar. Donec iaculis gravida nulla. Duis bibendum, lectus
307
+ ut viverra rhoncus, dolor nunc faucibus libero, eget
308
+ facilisis enim ipsum id lacus. Nulla quis diam. Quisque
309
+ porta. Integer rutrum, orci vestibulum ullamcorper
310
+ ultricies, lacus quam ultricies odio, vitae placerat pede
311
+ sem sit amet enim. Nam sed tellus id magna elementum
312
+ tincidunt. In enim a arcu imperdiet malesuada.
313
+ </p>
314
+ </sp-dialog-wrapper>
315
+ </overlay-trigger>
316
+ `;
317
+ };
318
+ longContent.decorators = [isOverlayOpen];
319
+ export const longHeading = (args = {}, context = {}) => {
320
+ const open = context.viewMode === "docs" ? void 0 : "click";
321
+ return html`
322
+ <overlay-trigger
323
+ type="modal"
324
+ @close=${handleClose(args)}
325
+ open=${ifDefined(open)}
326
+ >
327
+ <sp-dialog-wrapper
328
+ slot="click-content"
329
+ underlay
330
+ headline="Dialog long long long long long long long long long long long long title"
331
+ confirm-label="Keep Both"
332
+ secondary-label="Replace"
333
+ cancel-label="Cancel"
334
+ footer="Content for footer"
335
+ size="m"
336
+ >
337
+ Content of the dialog
338
+ </sp-dialog-wrapper>
339
+ <sp-button slot="trigger" variant="primary">
340
+ Toggle Dialog
341
+ </sp-button>
342
+ </overlay-trigger>
343
+ `;
344
+ };
345
+ longHeading.decorators = [isOverlayOpen];
346
+ export const wrapperDismissableUnderlayError = (args = {}, context = {}) => {
347
+ const open = context.viewMode === "docs" ? false : true;
348
+ return html`
349
+ <div>
350
+ <sp-dialog-wrapper
351
+ ?open=${open}
352
+ hero=${landscape}
353
+ dismissable
354
+ error
355
+ headline="Wrapped Dialog w/ Hero Image"
356
+ underlay
357
+ @close=${handleClose(args)}
358
+ size="s"
359
+ >
360
+ Content of the dialog
361
+ </sp-dialog-wrapper>
362
+ <sp-button
363
+ onClick="
364
+ this.previousElementSibling.open = !this.previousElementSibling.open;
365
+ if (this.previousElementSibling.open) {
366
+ this.previousElementSibling.focus();
367
+ }
368
+ "
369
+ variant="primary"
370
+ >
371
+ Toggle Dialog
372
+ </sp-button>
373
+ </div>
374
+ `;
375
+ };
376
+ export const wrapperButtons = (args = {}, context = {}) => {
377
+ const open = context.viewMode === "docs" ? false : true;
378
+ return html`
379
+ <sp-dialog-wrapper
380
+ ?open=${open}
381
+ size="l"
382
+ headline="Wrapped Dialog w/ Buttons"
383
+ confirm-label="Keep Both"
384
+ secondary-label="Replace"
385
+ cancel-label="Cancel"
386
+ footer="Content for footer"
387
+ @close=${handleClose(args)}
388
+ @confirm=${handleConfirm(args)}
389
+ @secondary=${handleSecondary(args)}
390
+ @cancel=${handleCancel(args)}
391
+ >
392
+ Content of the dialog
393
+ </sp-dialog-wrapper>
394
+ `;
395
+ };
396
+ export const wrapperButtonsUnderlay = (args = {}, context = {}) => {
397
+ const open = context.viewMode === "docs" ? false : true;
398
+ return html`
399
+ <sp-dialog-wrapper
400
+ ?open=${open}
401
+ underlay
402
+ size="l"
403
+ headline="Wrapped Dialog w/ Buttons"
404
+ confirm-label="Keep Both"
405
+ secondary-label="Replace"
406
+ cancel-label="Cancel"
407
+ footer="Content for footer"
408
+ @close=${handleClose(args)}
409
+ @confirm=${handleConfirm(args)}
410
+ @secondary=${handleSecondary(args)}
411
+ @cancel=${handleCancel(args)}
412
+ >
413
+ Content of the dialog
414
+ </sp-dialog-wrapper>
415
+ `;
416
+ };
417
+ export const wrapperFullscreen = (args = {}, context = {}) => {
418
+ const open = context.viewMode === "docs" ? false : true;
419
+ return html`
420
+ <sp-dialog-wrapper
421
+ ?open=${open}
422
+ headline="Wrapped Dialog - Fullscreen"
423
+ mode="fullscreen"
424
+ confirm-label="Keep Both"
425
+ secondary-label="Replace"
426
+ cancel-label="Cancel"
427
+ @close=${handleClose(args)}
428
+ @confirm=${handleConfirm(args)}
429
+ @secondary=${handleSecondary(args)}
430
+ @cancel=${handleCancel(args)}
431
+ >
432
+ Content of the dialog
433
+ </sp-dialog-wrapper>
434
+ `;
435
+ };
436
+ export const wrapperWithHeadline = (args = {}, context = {}) => {
437
+ const open = context.viewMode === "docs" ? false : true;
438
+ return html`
439
+ <sp-dialog-wrapper
440
+ ?open=${open}
441
+ headline="Headline for dialog"
442
+ @close=${handleClose(args)}
443
+ >
444
+ Content of the dialog
445
+ </sp-dialog-wrapper>
446
+ `;
447
+ };
448
+ export const wrapperWithHeadlineNoDivider = (args = {}, context = {}) => {
449
+ const open = context.viewMode === "docs" ? false : true;
450
+ return html`
451
+ <sp-dialog-wrapper
452
+ ?open=${open}
453
+ headline="Headline for dialog"
454
+ no-divider=${true}
455
+ @close=${handleClose(args)}
456
+ >
457
+ Content of the dialog
458
+ </sp-dialog-wrapper>
459
+ `;
460
+ };
461
+ export const wrapperHeadlineVisibilityNone = (args = {}, context = {}) => {
462
+ const open = context.viewMode === "docs" ? false : true;
463
+ return html`
464
+ <sp-dialog-wrapper
465
+ headline="Accessible headline"
466
+ .headlineVisibility=${"none"}
467
+ ?open=${open}
468
+ @close=${handleClose(args)}
469
+ >
470
+ Content of the dialog
471
+ </sp-dialog-wrapper>
472
+ `;
473
+ };
474
+ export const tooltips = (args = {}, context = {}) => {
475
+ const open = context.viewMode === "docs" ? void 0 : "click";
476
+ return html`
477
+ <overlay-trigger
478
+ type="modal"
479
+ @close=${handleClose(args)}
480
+ open=${ifDefined(open)}
481
+ >
482
+ <sp-button slot="trigger" variant="primary">
483
+ Toggle Dialog
484
+ </sp-button>
485
+ <sp-dialog-wrapper
486
+ slot="click-content"
487
+ headline="Dialog title"
488
+ dismissable
489
+ underlay
490
+ size="s"
491
+ >
492
+ ${[1, 2, 3, 4].map(
493
+ (index) => html`
494
+ <overlay-trigger>
495
+ <sp-button slot="trigger">
496
+ Button with Tooltip ${index}
497
+ </sp-button>
498
+ <sp-tooltip slot="hover-content">
499
+ Tooltip ${index}
500
+ </sp-tooltip>
501
+ </overlay-trigger>
502
+ `
503
+ )}
504
+ </sp-dialog-wrapper>
505
+ </overlay-trigger>
506
+ `;
507
+ };
508
+ tooltips.decorators = [isOverlayOpen];
509
+ export const lazyHero = ({ src }) => {
510
+ const handleOpened = () => {
511
+ document.querySelector("sp-dialog-wrapper").hero = src;
512
+ };
513
+ return html`
514
+ <overlay-trigger content="click" @sp-opened=${handleOpened}>
515
+ <sp-button slot="trigger">Toggle Dialog</sp-button>
516
+ <sp-dialog-wrapper
517
+ slot="click-content"
518
+ headline="Dialog title"
519
+ confirm-label="Primary"
520
+ >
521
+ <p>Content of the dialog</p>
522
+ <ol>
523
+ <li>
524
+ Select the following checkbox to have the dialog close
525
+ when clicking one of its buttons.
526
+ </li>
527
+ <li>
528
+ Select the following checkbox to have the dialog close
529
+ when clicking one of its buttons.
530
+ </li>
531
+ <li>
532
+ Select the following checkbox to have the dialog close
533
+ when clicking one of its buttons.
534
+ </li>
535
+ <li>
536
+ Select the following checkbox to have the dialog close
537
+ when clicking one of its buttons.
538
+ </li>
539
+ <li>
540
+ Select the following checkbox to have the dialog close
541
+ when clicking one of its buttons.
542
+ </li>
543
+ <li>
544
+ Select the following checkbox to have the dialog close
545
+ when clicking one of its buttons.
546
+ </li>
547
+ <li>
548
+ Select the following checkbox to have the dialog close
549
+ when clicking one of its buttons.
550
+ </li>
551
+ <li>
552
+ Select the following checkbox to have the dialog close
553
+ when clicking one of its buttons.
554
+ </li>
555
+ <li>
556
+ Select the following checkbox to have the dialog close
557
+ when clicking one of its buttons.
558
+ </li>
559
+ <li>
560
+ Select the following checkbox to have the dialog close
561
+ when clicking one of its buttons.
562
+ </li>
563
+ <li>
564
+ Select the following checkbox to have the dialog close
565
+ when clicking one of its buttons.
566
+ </li>
567
+ </ol>
568
+ </sp-dialog-wrapper>
569
+ </overlay-trigger>
570
+ `;
571
+ };
572
+ lazyHero.args = {
573
+ src: "https://dummyimage.com/800x400/000/fff"
574
+ };
575
+ lazyHero.swc_vrt = {
576
+ skip: true
577
+ };
578
+ //# sourceMappingURL=dialog-wrapper.stories.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["dialog-wrapper.stories.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/button/sp-button.js';\nimport '@spectrum-web-components/field-label/sp-field-label.js';\nimport '@spectrum-web-components/help-text/sp-help-text.js';\nimport '@spectrum-web-components/textfield/sp-textfield.js';\nimport '@spectrum-web-components/tooltip/sp-tooltip.js';\nimport '@spectrum-web-components/overlay/overlay-trigger.js';\n\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { landscape } from './images.js';\nimport { isOverlayOpen } from '../../overlay/stories/index.js';\nimport '../../overlay/stories/index.js';\nimport type { DialogWrapper } from '@spectrum-web-components/dialog';\n\nexport default {\n title: 'Dialog Wrapper',\n component: 'sp-dialog-wrapper',\n argTypes: {\n onClose: { action: 'close' },\n onConfirm: { action: 'confirm' },\n onSecondary: { action: 'secondary' },\n onCancel: { action: 'cancel' },\n },\n};\n\ntype StoryArgs = {\n onClose?: (event: Event) => void;\n onConfirm?: (event: Event) => void;\n onSecondary?: (event: Event) => void;\n onCancel?: (event: Event) => void;\n};\n\nconst handleClose =\n ({ onClose }: StoryArgs) =>\n (event: Event) => {\n if (onClose) onClose(event);\n };\n\nconst handleConfirm =\n ({ onConfirm }: StoryArgs) =>\n (event: Event) => {\n if (onConfirm) onConfirm(event);\n };\n\nconst handleSecondary =\n ({ onSecondary }: StoryArgs) =>\n (event: Event) => {\n if (onSecondary) onSecondary(event);\n };\n\nconst handleCancel =\n ({ onCancel }: StoryArgs) =>\n (event: Event) => {\n if (onCancel) onCancel(event);\n };\n\nexport const wrapperLabeledHero = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <style>\n sp-story-decorator {\n inset: 0;\n position: absolute;\n overflow: hidden;\n }\n </style>\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n hero-label=\"Hero Image Alt Text\"\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const wrapperDismissable = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n .hero=${landscape}\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n @close=${handleClose(args)}\n size=\"s\"\n tabindex=\"0\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const wrapperDismissableUnderlay = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n underlay\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const form = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n id=\"form-fields\"\n slot=\"click-content\"\n headline=\"Add Delivery Address\"\n underlay\n size=\"m\"\n confirm-label=\"Verify Address\"\n secondary-label=\"Add\"\n cancel-label=\"Cancel\"\n @close=${handleClose(args)}\n @confirm=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleConfirm(args);\n }}\n @secondary=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleSecondary(args);\n }}\n @cancel=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleCancel(args);\n }}\n >\n <style>\n #form-fields div {\n display: grid;\n row-gap: calc(var(--swc-scale-factor) * 12px);\n grid-template-columns: auto auto;\n }\n </style>\n <div>\n <sp-field-label side-aligned=\"end\" for=\"street\">\n Street:\n </sp-field-label>\n <sp-textfield id=\"street\" autofocus></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"city\">\n City:\n </sp-field-label>\n <sp-textfield id=\"city\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"state\">\n State:\n </sp-field-label>\n <sp-textfield id=\"state\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"zip\">\n Zip:\n </sp-field-label>\n <sp-textfield id=\"zip\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"instructions\">\n Special instructions:\n </sp-field-label>\n <sp-textfield id=\"instructions\" multiline>\n <sp-help-text slot=\"help-text\">\n For example, gate code or other information to help\n the driver find you\n </sp-help-text>\n </sp-textfield>\n </div>\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\nform.decorators = [isOverlayOpen];\n\nexport const longContent = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n dismissable\n underlay\n size=\"s\"\n >\n <p>\n Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\n Sed ac dolor sit amet purus malesuada congue. Donec quis\n nibh at felis congue commodo. Ut enim ad minima veniam, quis\n nostrum exercitationem ullam corporis suscipit laboriosam,\n nisi ut aliquid ex ea commodi consequatur? Sed ac dolor sit\n amet purus malesuada congue. Nam libero tempore, cum soluta\n nobis est eligendi optio cumque nihil impedit quo minus id\n quod maxime placeat facere possimus, omnis voluptas\n assumenda est, omnis dolor repellendus. Nullam sit amet\n magna in magna gravida vehicula. Itaque earum rerum hic\n tenetur a sapiente delectus, ut aut reiciendis voluptatibus\n maiores alias consequatur aut perferendis doloribus\n asperiores repellat. Neque porro quisquam est, qui dolorem\n ipsum quia dolor sit amet, consectetur, adipisci velit, sed\n quia non numquam eius modi tempora incidunt ut labore et\n dolore magnam aliquam quaerat voluptatem. Phasellus faucibus\n molestie nisl. Vestibulum fermentum tortor id mi. Integer\n rutrum, orci vestibulum ullamcorper ultricies, lacus quam\n ultricies odio, vitae placerat pede sem sit amet enim.\n Maecenas sollicitudin. Nullam rhoncus aliquam metus.\n </p>\n <p>\n Curabitur ligula sapien, pulvinar a vestibulum quis,\n facilisis vel sapien. Fusce nibh. Proin pede metus,\n vulputate nec, fermentum fringilla, vehicula vitae, justo.\n Aenean placerat. Aliquam erat volutpat. Et harum quidem\n rerum facilis est et expedita distinctio. Fusce nibh.\n Temporibus autem quibusdam et aut officiis debitis aut rerum\n necessitatibus saepe eveniet ut et voluptates repudiandae\n sint et molestiae non recusandae. Vestibulum erat nulla,\n ullamcorper nec, rutrum non, nonummy ac, erat. Etiam posuere\n lacus quis dolor. Mauris elementum mauris vitae tortor.\n Nulla turpis magna, cursus sit amet, suscipit a, interdum\n id, felis. Nam libero tempore, cum soluta nobis est eligendi\n optio cumque nihil impedit quo minus id quod maxime placeat\n facere possimus, omnis voluptas assumenda est, omnis dolor\n repellendus. Nulla accumsan, elit sit amet varius semper,\n nulla mauris mollis quam, tempor suscipit diam nulla vel\n leo. Pellentesque sapien.\n </p>\n <p>\n Curabitur vitae diam non enim vestibulum interdum. Sed elit\n dui, pellentesque a, faucibus vel, interdum nec, diam.\n Praesent vitae arcu tempor neque lacinia pretium. Ut tempus\n purus at lorem. Phasellus rhoncus. Temporibus autem\n quibusdam et aut officiis debitis aut rerum necessitatibus\n saepe eveniet ut et voluptates repudiandae sint et molestiae\n non recusandae. Duis ante orci, molestie vitae vehicula\n venenatis, tincidunt ac pede. Integer vulputate sem a nibh\n rutrum consequat. Aenean placerat. Cum sociis natoque\n penatibus et magnis dis parturient montes, nascetur\n ridiculus mus. Sed vel lectus. Donec odio tempus molestie,\n porttitor ut, iaculis quis, sem. Class aptent taciti\n sociosqu ad litora torquent per conubia nostra, per inceptos\n hymenaeos. Integer in sapien. Nullam dapibus fermentum\n ipsum.\n </p>\n <p>\n Integer vulputate sem a nibh rutrum consequat. Class aptent\n taciti sociosqu ad litora torquent per conubia nostra, per\n inceptos hymenaeos. Duis bibendum, lectus ut viverra\n rhoncus, dolor nunc faucibus libero, eget facilisis enim\n ipsum id lacus. Aliquam erat volutpat. Aenean id metus id\n velit ullamcorper pulvinar. Morbi scelerisque luctus velit.\n Aliquam erat volutpat. Temporibus autem quibusdam et aut\n officiis debitis aut rerum necessitatibus saepe eveniet ut\n et voluptates repudiandae sint et molestiae non recusandae.\n Fusce dui leo, imperdiet in, aliquam sit amet, feugiat eu,\n orci. Suspendisse sagittis ultrices augue. Nullam justo\n enim, consectetuer nec, ullamcorper ac, vestibulum in, elit.\n Praesent vitae arcu tempor neque lacinia pretium. Nullam\n faucibus mi quis velit. Maecenas aliquet accumsan leo. Morbi\n scelerisque luctus velit. Aliquam ornare wisi eu metus.\n </p>\n <p>\n Sed elit dui, pellentesque a, faucibus vel, interdum nec,\n diam. Praesent vitae arcu tempor neque lacinia pretium.\n Etiam dictum tincidunt diam. Et harum quidem rerum facilis\n est et expedita distinctio. Duis ante orci, molestie vitae\n vehicula venenatis, tincidunt ac pede. Integer lacinia.\n Excepteur sint occaecat cupidatat non proident, sunt in\n culpa qui officia deserunt mollit anim id est laborum.\n Mauris tincidunt sem sed arcu. Praesent in mauris eu tortor\n porttitor accumsan. Aenean id metus id velit ullamcorper\n pulvinar. Donec iaculis gravida nulla. Duis bibendum, lectus\n ut viverra rhoncus, dolor nunc faucibus libero, eget\n facilisis enim ipsum id lacus. Nulla quis diam. Quisque\n porta. Integer rutrum, orci vestibulum ullamcorper\n ultricies, lacus quam ultricies odio, vitae placerat pede\n sem sit amet enim. Nam sed tellus id magna elementum\n tincidunt. In enim a arcu imperdiet malesuada.\n </p>\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\nlongContent.decorators = [isOverlayOpen];\n\nexport const longHeading = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-dialog-wrapper\n slot=\"click-content\"\n underlay\n headline=\"Dialog long long long long long long long long long long long long title\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n size=\"m\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n </overlay-trigger>\n `;\n};\n\nlongHeading.decorators = [isOverlayOpen];\n\nexport const wrapperDismissableUnderlayError = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <div>\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n error\n headline=\"Wrapped Dialog w/ Hero Image\"\n underlay\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n </div>\n `;\n};\n\nexport const wrapperButtons = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n size=\"l\"\n headline=\"Wrapped Dialog w/ Buttons\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperButtonsUnderlay = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n underlay\n size=\"l\"\n headline=\"Wrapped Dialog w/ Buttons\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperFullscreen = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n headline=\"Wrapped Dialog - Fullscreen\"\n mode=\"fullscreen\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperWithHeadline = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n headline=\"Headline for dialog\"\n @close=${handleClose(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperWithHeadlineNoDivider = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n headline=\"Headline for dialog\"\n no-divider=${true}\n @close=${handleClose(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperHeadlineVisibilityNone = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n headline=\"Accessible headline\"\n .headlineVisibility=${'none'}\n ?open=${open}\n @close=${handleClose(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const tooltips = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n dismissable\n underlay\n size=\"s\"\n >\n ${[1, 2, 3, 4].map(\n (index) => html`\n <overlay-trigger>\n <sp-button slot=\"trigger\">\n Button with Tooltip ${index}\n </sp-button>\n <sp-tooltip slot=\"hover-content\">\n Tooltip ${index}\n </sp-tooltip>\n </overlay-trigger>\n `\n )}\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\ntooltips.decorators = [isOverlayOpen];\n\nexport const lazyHero = ({ src }: { src: string }): TemplateResult => {\n const handleOpened = (): void => {\n (document.querySelector('sp-dialog-wrapper') as DialogWrapper).hero =\n src;\n };\n return html`\n <overlay-trigger content=\"click\" @sp-opened=${handleOpened}>\n <sp-button slot=\"trigger\">Toggle Dialog</sp-button>\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n confirm-label=\"Primary\"\n >\n <p>Content of the dialog</p>\n <ol>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n <li>\n Select the following checkbox to have the dialog close\n when clicking one of its buttons.\n </li>\n </ol>\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\nlazyHero.args = {\n src: 'https://dummyimage.com/800x400/000/fff',\n};\n\nlazyHero.swc_vrt = {\n skip: true,\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }