@spectrum-web-components/picker 1.3.0-beta.2 → 1.3.0-testing.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,755 +0,0 @@
1
- "use strict";
2
- import { html } from "@spectrum-web-components/base";
3
- import "@spectrum-web-components/button/sp-button.js";
4
- import "@spectrum-web-components/field-label/sp-field-label.js";
5
- import "@spectrum-web-components/icon/sp-icon.js";
6
- import "@spectrum-web-components/icons-workflow/icons/sp-icon-copy.js";
7
- import "@spectrum-web-components/icons-workflow/icons/sp-icon-delete.js";
8
- import "@spectrum-web-components/icons-workflow/icons/sp-icon-edit.js";
9
- import "@spectrum-web-components/link/sp-link.js";
10
- import "@spectrum-web-components/menu/sp-menu-item.js";
11
- import "@spectrum-web-components/picker/sp-picker.js";
12
- import "@spectrum-web-components/tooltip/sp-tooltip.js";
13
- import { ifDefined } from "lit-html/directives/if-defined.js";
14
- import { spreadProps } from "../../../test/lit-helpers.js";
15
- import "../../overlay/stories/index.js";
16
- import { isOverlayOpen } from "../../overlay/stories/index.js";
17
- import { argTypes } from "./args.js";
18
- import { states } from "./states.js";
19
- import { handleChange, Template } from "./template.js";
20
- export default {
21
- title: "Picker",
22
- component: "sp-picker",
23
- args: {
24
- disabled: false,
25
- invalid: false,
26
- open: false,
27
- quiet: false,
28
- pending: false
29
- },
30
- argTypes: {
31
- ...argTypes,
32
- onChange: { action: "change" },
33
- open: {
34
- name: "open",
35
- type: { name: "boolean", required: false },
36
- description: "Whether the menu is open or not.",
37
- table: {
38
- type: { summary: "boolean" },
39
- defaultValue: { summary: false }
40
- },
41
- control: "boolean"
42
- },
43
- pending: {
44
- name: "pending",
45
- type: { name: "boolean", required: false },
46
- table: {
47
- type: { summary: "boolean" },
48
- defaultValue: { summary: false }
49
- },
50
- control: {
51
- type: "boolean"
52
- }
53
- }
54
- }
55
- };
56
- export const Default = (args) => {
57
- return html`
58
- <sp-field-label for="picker-1" size=${ifDefined(args.size)}>
59
- Where do you live?
60
- </sp-field-label>
61
- <sp-picker
62
- id="picker-1"
63
- @change=${handleChange(args)}
64
- label="Select a Country with a very long label, too long, in fact"
65
- ${spreadProps(args)}
66
- >
67
- <sp-menu-item value="option-1">Deselect</sp-menu-item>
68
- <sp-menu-item value="option-2">Select Inverse</sp-menu-item>
69
- <sp-menu-item value="option-3">Feather...</sp-menu-item>
70
- <sp-menu-item value="option-4">Select and Mask...</sp-menu-item>
71
- <sp-menu-item value="option-5">Save Selection</sp-menu-item>
72
- <sp-menu-item disabled value="option-6">
73
- Make Work Path
74
- </sp-menu-item>
75
- </sp-picker>
76
- <p>This is some text.</p>
77
- <p>This is some text.</p>
78
- <p>
79
- This is a
80
- <a href="#anchor">link</a>
81
- .
82
- </p>
83
- `;
84
- };
85
- export const forcePopoverOnMobile = (args) => {
86
- return html`
87
- <div style="padding: 40px">
88
- <h1>Force Popover on Mobile</h1>
89
- <p>
90
- The forcePopover attribute overrides the mobile device
91
- functionality of rendering a tray so that a popover will always
92
- render no matter the device.
93
- </p>
94
- <ol>
95
- <li>Open Chrome DevTools (or equivalent).</li>
96
- <li>Toggle the Device Toolbar (the phone/tablet icon).</li>
97
- <li>Select a device preset (e.g. iPhone 12).</li>
98
- <li>
99
- Chrome will set user-agent strings, simulate touch, and
100
- adjust DPI.
101
- </li>
102
- <li>Reload the page</li>
103
- <li>Click the Picker 1 and see a tray</li>
104
- <li>Click the Picker 2 and see a popover</li>
105
- </ol>
106
- <sp-field-label for="picker-1" size=${ifDefined(args.size)}>
107
- Do you want to see a tray menu?
108
- </sp-field-label>
109
- <sp-picker
110
- id="picker-1"
111
- @change=${handleChange(args)}
112
- label="Select an option"
113
- >
114
- <sp-menu-item value="option-1">Yes</sp-menu-item>
115
- <sp-menu-item value="option-2">No</sp-menu-item>
116
- </sp-picker>
117
- <sp-field-label for="picker-2" size=${ifDefined(args.size)}>
118
- Do you want to see a popover menu?
119
- </sp-field-label>
120
- <sp-picker
121
- id="picker-2"
122
- forcePopover
123
- @change=${handleChange(args)}
124
- label="Select an option"
125
- >
126
- <sp-menu-item value="option-1">Yes</sp-menu-item>
127
- <sp-menu-item value="option-2">No</sp-menu-item>
128
- </sp-picker>
129
- <div>
130
- <p>
131
- This button should't be clickable if a popover is open over
132
- it.
133
- </p>
134
- <sp-button
135
- @click=${() => console.log("Whoops! I was clicked.")}
136
- >
137
- Shouldn't be clickable
138
- </sp-button>
139
- </div>
140
- </div>
141
- `;
142
- };
143
- export const disabled = (args) => Template(args);
144
- disabled.args = {
145
- disabled: true
146
- };
147
- export const invalid = (args) => Template(args);
148
- invalid.args = {
149
- invalid: true
150
- };
151
- export const tooltip = (args) => {
152
- const { open, ...rest } = args;
153
- return html`
154
- <sp-field-label for="picker-1" size=${ifDefined(args.size)}>
155
- Where do you live?
156
- </sp-field-label>
157
- <sp-picker
158
- id="picker-1"
159
- @change=${handleChange(args)}
160
- label="Select a Country with a very long label, too long, in fact"
161
- ${spreadProps(rest)}
162
- >
163
- <sp-menu-item value="option-1">Deselect</sp-menu-item>
164
- <sp-menu-item value="option-2">Select Inverse</sp-menu-item>
165
- <sp-menu-item value="option-3">Feather...</sp-menu-item>
166
- <sp-menu-item value="option-4">Select and Mask...</sp-menu-item>
167
- <sp-menu-item value="option-5">Save Selection</sp-menu-item>
168
- <sp-menu-item disabled value="option-6">
169
- Make Work Path
170
- </sp-menu-item>
171
- <sp-tooltip
172
- slot="tooltip"
173
- ?open=${open}
174
- self-managed
175
- placement="right"
176
- >
177
- This Picker wants to know where you live.
178
- </sp-tooltip>
179
- </sp-picker>
180
- <p>This is some text.</p>
181
- <p>This is some text.</p>
182
- <p>
183
- This is a
184
- <a href="#anchor">link</a>
185
- .
186
- </p>
187
- `;
188
- };
189
- tooltip.args = {
190
- open: true
191
- };
192
- tooltip.decorators = [isOverlayOpen];
193
- export const leftSideLabel = (args) => {
194
- return html`
195
- <sp-field-label
196
- side-aligned="start"
197
- for="picker-1"
198
- size=${ifDefined(args.size)}
199
- >
200
- Where do you live?
201
- </sp-field-label>
202
- <sp-picker
203
- id="picker-1"
204
- @change=${handleChange(args)}
205
- label="Select a Country with a very long label, too long, in fact"
206
- ${spreadProps(args)}
207
- >
208
- <sp-menu-item value="option-1">Deselect</sp-menu-item>
209
- <sp-menu-item value="option-2">Select Inverse</sp-menu-item>
210
- <sp-menu-item value="option-3">Feather...</sp-menu-item>
211
- <sp-menu-item value="option-4">Select and Mask...</sp-menu-item>
212
- <sp-menu-item value="option-5">Save Selection</sp-menu-item>
213
- <sp-menu-item disabled value="option-6">
214
- Make Work Path
215
- </sp-menu-item>
216
- </sp-picker>
217
- <p>This is some text.</p>
218
- <p>This is some text.</p>
219
- <p>
220
- This is a
221
- <a href="#anchor">link</a>
222
- .
223
- </p>
224
- `;
225
- };
226
- export const noVisibleLabel = (args) => {
227
- return html`
228
- <sp-picker
229
- @change=${handleChange(args)}
230
- label="Where do you live?"
231
- ${spreadProps(args)}
232
- >
233
- <sp-menu-item value="option-1">Deselect</sp-menu-item>
234
- <sp-menu-item value="option-2">Select Inverse</sp-menu-item>
235
- <sp-menu-item value="option-3">Feather...</sp-menu-item>
236
- <sp-menu-item value="option-4">Select and Mask...</sp-menu-item>
237
- <sp-menu-item value="option-5">Save Selection</sp-menu-item>
238
- <sp-menu-item disabled value="option-6">
239
- Make Work Path
240
- </sp-menu-item>
241
- </sp-picker>
242
- <p>This is some text.</p>
243
- <p>This is some text.</p>
244
- <p>
245
- This is a
246
- <a href="#anchor">link</a>
247
- .
248
- </p>
249
- `;
250
- };
251
- export const slottedLabel = (args) => {
252
- return html`
253
- <sp-picker @change=${handleChange(args)} ${spreadProps(args)}>
254
- <span slot="label">Where do you live?</span>
255
- <sp-menu-item value="option-1">Deselect</sp-menu-item>
256
- <sp-menu-item value="option-2">Select Inverse</sp-menu-item>
257
- <sp-menu-item value="option-3">Feather...</sp-menu-item>
258
- <sp-menu-item value="option-4">Select and Mask...</sp-menu-item>
259
- <sp-menu-item value="option-5">Save Selection</sp-menu-item>
260
- <sp-menu-item disabled value="option-6">
261
- Make Work Path
262
- </sp-menu-item>
263
- </sp-picker>
264
- <p>This is some text.</p>
265
- <p>This is some text.</p>
266
- <p>
267
- This is a
268
- <a href="#anchor">link</a>
269
- .
270
- </p>
271
- `;
272
- };
273
- export const quiet = (args) => {
274
- return html`
275
- <sp-field-label for="picker-quiet" size=${ifDefined(args.size)}>
276
- Where do you live?
277
- </sp-field-label>
278
- <sp-picker
279
- ${spreadProps(args)}
280
- id="picker-quiet"
281
- @change=${handleChange(args)}
282
- label="Pick an item"
283
- >
284
- <sp-menu-item value="1">Item 1</sp-menu-item>
285
- <sp-menu-item value="2">Item 2</sp-menu-item>
286
- <sp-menu-item value="3">Item 3</sp-menu-item>
287
- <sp-menu-item value="4">Item 4</sp-menu-item>
288
- </sp-picker>
289
- <p>This is some text.</p>
290
- <p>This is some text.</p>
291
- <p>
292
- This is a
293
- <a href="#anchor">link</a>
294
- .
295
- </p>
296
- `;
297
- };
298
- quiet.args = {
299
- quiet: true
300
- };
301
- export const quietSideLabel = (args) => {
302
- return html`
303
- <sp-field-label
304
- side-aligned="start"
305
- for="picker-quiet-sidelabel"
306
- size=${ifDefined(args.size)}
307
- >
308
- Where do you live?
309
- </sp-field-label>
310
- <sp-picker
311
- ${spreadProps(args)}
312
- id="picker-quiet-sidelabel"
313
- @change=${handleChange(args)}
314
- label="Pick an item"
315
- >
316
- <sp-menu-item value="1">Item 1</sp-menu-item>
317
- <sp-menu-item value="2">Item 2</sp-menu-item>
318
- <sp-menu-item value="3">Item 3</sp-menu-item>
319
- <sp-menu-item value="4">Item 4</sp-menu-item>
320
- </sp-picker>
321
- <p>This is some text.</p>
322
- <p>This is some text.</p>
323
- <p>
324
- This is a
325
- <a href="#anchor">link</a>
326
- .
327
- </p>
328
- `;
329
- };
330
- quietSideLabel.args = {
331
- quiet: true
332
- };
333
- export const icons = (args) => {
334
- return html`
335
- <sp-field-label for="picker-quiet" size=${ifDefined(args.size)}>
336
- Choose an action type...
337
- </sp-field-label>
338
- <sp-picker
339
- ${spreadProps(args)}
340
- id="picker-quiet"
341
- @change=${handleChange(args)}
342
- label="Pick an action"
343
- value="1"
344
- >
345
- <sp-menu-item value="1">
346
- <sp-icon-edit slot="icon"></sp-icon-edit>
347
- Edit
348
- </sp-menu-item>
349
- <sp-menu-item value="2">
350
- <sp-icon-copy slot="icon"></sp-icon-copy>
351
- Copy
352
- </sp-menu-item>
353
- <sp-menu-item value="3">
354
- <sp-icon-delete slot="icon"></sp-icon-delete>
355
- Delete
356
- </sp-menu-item>
357
- </sp-picker>
358
- `;
359
- };
360
- export const iconsNone = (args) => {
361
- return html`
362
- <sp-field-label for="picker-quiet" size=${ifDefined(args.size)}>
363
- Choose an action type...
364
- </sp-field-label>
365
- <sp-picker
366
- ${spreadProps(args)}
367
- id="picker-quiet"
368
- @change=${handleChange(args)}
369
- label="Pick an action"
370
- value="1"
371
- icons="none"
372
- >
373
- <sp-menu-item value="1">
374
- <sp-icon-edit slot="icon"></sp-icon-edit>
375
- Edit
376
- </sp-menu-item>
377
- <sp-menu-item value="2">
378
- <sp-icon-copy slot="icon"></sp-icon-copy>
379
- Copy
380
- </sp-menu-item>
381
- <sp-menu-item value="3">
382
- <sp-icon-delete slot="icon"></sp-icon-delete>
383
- Delete
384
- </sp-menu-item>
385
- </sp-picker>
386
- `;
387
- };
388
- iconsNone.args = {
389
- open: true
390
- };
391
- iconsNone.decorators = [isOverlayOpen];
392
- export const iconValue = (args) => {
393
- return html`
394
- <sp-field-label for="picker-quiet" size=${ifDefined(args.size)}>
395
- Choose an action type...
396
- </sp-field-label>
397
- <sp-picker
398
- ${spreadProps(args)}
399
- id="picker-quiet"
400
- @change=${handleChange(args)}
401
- label="Pick an action"
402
- icons="only"
403
- style="width: 100px"
404
- value="2"
405
- >
406
- <sp-menu-item value="1">
407
- <sp-icon-edit slot="icon"></sp-icon-edit>
408
- Edit
409
- </sp-menu-item>
410
- <sp-menu-item value="2">
411
- <sp-icon-copy slot="icon"></sp-icon-copy>
412
- Copy
413
- </sp-menu-item>
414
- <sp-menu-item value="3">
415
- <sp-icon-delete slot="icon"></sp-icon-delete>
416
- Delete
417
- </sp-menu-item>
418
- </sp-picker>
419
- `;
420
- };
421
- export const iconsOnly = (args) => {
422
- return html`
423
- <sp-field-label for="picker-quiet" size=${ifDefined(args.size)}>
424
- Choose an action type...
425
- </sp-field-label>
426
- <sp-picker
427
- ${spreadProps(args)}
428
- id="picker-quiet"
429
- @change=${handleChange(args)}
430
- label="Pick an action"
431
- style="width: 100px"
432
- value="3"
433
- >
434
- <sp-menu-item value="1">
435
- <sp-icon-edit slot="icon" label="Edit"></sp-icon-edit>
436
- </sp-menu-item>
437
- <sp-menu-item value="2">
438
- <sp-icon-copy slot="icon" label="Copy"></sp-icon-copy>
439
- </sp-menu-item>
440
- <sp-menu-item value="3">
441
- <sp-icon-delete slot="icon" label="Delete"></sp-icon-delete>
442
- </sp-menu-item>
443
- </sp-picker>
444
- `;
445
- };
446
- iconsOnly.args = {
447
- open: true
448
- };
449
- iconsOnly.decorators = [isOverlayOpen];
450
- export const dynamicIcons = (args) => {
451
- return html`
452
- <p>
453
- The icon displayed in the picker should match the icon of the
454
- selected menu item, even when the icons are updated dynamically.
455
- </p>
456
- <sp-field-label for="picker-quiet" size=${ifDefined(args.size)}>
457
- Choose an action type...
458
- </sp-field-label>
459
- <sp-picker
460
- ${spreadProps(args)}
461
- id="picker-quiet"
462
- @change=${handleChange(args)}
463
- label="Pick an action"
464
- value="2"
465
- >
466
- <sp-menu-item value="1">
467
- <sp-icon
468
- slot="icon"
469
- src="https://loremicon.com/rect/20/20/1/png"
470
- ></sp-icon>
471
- Edit
472
- </sp-menu-item>
473
- <sp-menu-item value="2">
474
- <sp-icon
475
- slot="icon"
476
- src="https://loremicon.com/rect/20/20/2/png"
477
- ></sp-icon>
478
- Copy
479
- </sp-menu-item>
480
- <sp-menu-item value="3">
481
- <sp-icon
482
- slot="icon"
483
- src="https://loremicon.com/rect/20/20/3/png"
484
- ></sp-icon>
485
- Delete
486
- </sp-menu-item>
487
- </sp-picker>
488
- <sp-button
489
- @click=${() => {
490
- const icons2 = document.querySelectorAll("sp-icon");
491
- const seed = Math.round(Math.random() * 1e3);
492
- icons2.forEach((icon, index) => {
493
- icon.setAttribute(
494
- "src",
495
- `https://loremicon.com/rect/20/20/${seed + index}/png`
496
- );
497
- });
498
- const picker = document.querySelector("sp-picker");
499
- if (picker) picker.open = true;
500
- }}
501
- >
502
- Change icons
503
- </sp-button>
504
- `;
505
- };
506
- dynamicIcons.args = {
507
- open: true
508
- };
509
- dynamicIcons.decorators = [isOverlayOpen];
510
- export const Open = (args) => {
511
- return html`
512
- <style>
513
- fieldset {
514
- float: left;
515
- clear: left;
516
- margin-bottom: 15px;
517
- }
518
- </style>
519
- <fieldset class="backdrop-filter-test">
520
- <sp-field-label for="picker-open" size=${ifDefined(args.size)}>
521
- Where do you live?
522
- </sp-field-label>
523
- <sp-picker
524
- id="picker-open"
525
- label="Open picker"
526
- ${spreadProps(args)}
527
- @change=${handleChange(args)}
528
- >
529
- <span slot="label">
530
- Select a Country with a very long label, too long, in fact
531
- </span>
532
- <sp-menu-item>Deselect</sp-menu-item>
533
- <sp-menu-item>Select Inverse</sp-menu-item>
534
- <sp-menu-item>Feather...</sp-menu-item>
535
- <sp-menu-item>Select and Mask...</sp-menu-item>
536
- <sp-menu-item>Save Selection</sp-menu-item>
537
- <sp-menu-item disabled>Make Work Path</sp-menu-item>
538
- </sp-picker>
539
- </fieldset>
540
- <fieldset>
541
- <sp-field-label for="picker-closed" size=${ifDefined(args.size)}>
542
- Where do you live?
543
- </sp-field-label>
544
- <sp-picker
545
- id="picker-closed"
546
- label="Picker that displays below the options"
547
- @change=${handleChange(args)}
548
- >
549
- <span slot="label">
550
- Other menu that goes behind the open one
551
- </span>
552
- <sp-menu-item>Not so many options...</sp-menu-item>
553
- </sp-picker>
554
- </fieldset>
555
- `;
556
- };
557
- Open.args = {
558
- open: true
559
- };
560
- Open.decorators = [isOverlayOpen];
561
- export const OpenShowingEdgeCase = (args) => {
562
- return html`
563
- <style>
564
- fieldset {
565
- float: left;
566
- clear: left;
567
- margin-bottom: 15px;
568
- }
569
- /* Enforce CSS stacking to test "transition-behavior: allow-discrete" */
570
- /* Breaks the story in non-[popover] supporting browsers */
571
- fieldset:nth-of-type(2) {
572
- position: relative;
573
- z-index: 2;
574
- }
575
- .backdrop-filter-test {
576
- backdrop-filter: saturate(80%);
577
- }
578
- </style>
579
- <p>
580
- In browser that do not support
581
- <code>[popover]</code>
582
- , the following "open"
583
- <code>sp-picker</code>
584
- will display behind both the closed
585
- <code>sp-picker</code>
586
- as well as the
587
- <code>fieldset</code>
588
- that contains it.
589
- </p>
590
- <p>
591
- Learn more about this situation in our
592
- <sp-link
593
- href="https://opensource.adobe.com/spectrum-web-components/components/overlay/#fallback-support"
594
- >
595
- documentation site
596
- </sp-link>
597
- .
598
- </p>
599
- <fieldset class="backdrop-filter-test">
600
- <sp-field-label for="picker-open" size=${ifDefined(args.size)}>
601
- Where do you live?
602
- </sp-field-label>
603
- <sp-picker
604
- id="picker-open"
605
- label="Open picker"
606
- ${spreadProps(args)}
607
- @change=${handleChange(args)}
608
- >
609
- <span slot="label">
610
- Select a Country with a very long label, too long, in fact
611
- </span>
612
- <sp-menu-item>Deselect</sp-menu-item>
613
- <sp-menu-item>Select Inverse</sp-menu-item>
614
- <sp-menu-item>Feather...</sp-menu-item>
615
- <sp-menu-item>Select and Mask...</sp-menu-item>
616
- <sp-menu-item>Save Selection</sp-menu-item>
617
- <sp-menu-item disabled>Make Work Path</sp-menu-item>
618
- </sp-picker>
619
- </fieldset>
620
- <fieldset>
621
- <sp-field-label for="picker-closed" size=${ifDefined(args.size)}>
622
- Where do you live?
623
- </sp-field-label>
624
- <sp-picker
625
- id="picker-closed"
626
- label="Picker that displays below the options"
627
- @change=${handleChange(args)}
628
- >
629
- <span slot="label">
630
- Other menu that goes behind the open one
631
- </span>
632
- <sp-menu-item>Not so many options...</sp-menu-item>
633
- </sp-picker>
634
- </fieldset>
635
- `;
636
- };
637
- OpenShowingEdgeCase.args = {
638
- open: true
639
- };
640
- OpenShowingEdgeCase.decorators = [isOverlayOpen];
641
- OpenShowingEdgeCase.swc_vrt = {
642
- skip: true
643
- };
644
- OpenShowingEdgeCase.parameters = {
645
- // Disables Chromatic's snapshotting on a global level
646
- chromatic: { disableSnapshot: true }
647
- };
648
- export const initialValue = (args) => {
649
- return html`
650
- <sp-field-label for="picker-initial" size=${ifDefined(args.size)}>
651
- Where do you live?
652
- </sp-field-label>
653
- <sp-picker
654
- id="picker-initial"
655
- @change=${handleChange(args)}
656
- value="item-2"
657
- ${spreadProps(args)}
658
- >
659
- <span slot="label">
660
- Select a Country with a very long label, too long in fact
661
- </span>
662
- <sp-menu-item value="item-1">Deselect</sp-menu-item>
663
- <sp-menu-item value="item-2">Select Inverse</sp-menu-item>
664
- <sp-menu-item value="item-3">Feather...</sp-menu-item>
665
- <sp-menu-item value="item-4">Select and Mask...</sp-menu-item>
666
- <sp-menu-item value="item-5">Save Selection</sp-menu-item>
667
- <sp-menu-item disabled value="item-6">Make Work Path</sp-menu-item>
668
- </sp-picker>
669
- `;
670
- };
671
- export const readonly = (args) => {
672
- return html`
673
- <sp-picker
674
- @change=${handleChange(args)}
675
- readonly
676
- value="item-2"
677
- ${spreadProps(args)}
678
- >
679
- <span slot="label">
680
- Select a Country with a very long label, too long in fact
681
- </span>
682
- <sp-menu-item value="item-1">Deselect</sp-menu-item>
683
- <sp-menu-item value="item-2">Select Inverse</sp-menu-item>
684
- <sp-menu-item value="item-3">Feather...</sp-menu-item>
685
- <sp-menu-item value="item-4">Select and Mask...</sp-menu-item>
686
- <sp-menu-item value="item-5">Save Selection</sp-menu-item>
687
- <sp-menu-item disabled value="item-6">Make Work Path</sp-menu-item>
688
- </sp-picker>
689
- `;
690
- };
691
- export const custom = (args) => {
692
- const initialState = "lb1-mo";
693
- return html`
694
- <sp-field-label for="picker-state" size=${ifDefined(args.size)}>
695
- What state do you live in?
696
- </sp-field-label>
697
- <sp-picker
698
- style="width: 400px;"
699
- @change=${handleChange(args)}
700
- id="picker-state"
701
- label="Pick a state"
702
- ${spreadProps(args)}
703
- value=${initialState}
704
- >
705
- ${states.map(
706
- (state) => html`
707
- <sp-menu-item
708
- id=${state.id}
709
- value=${state.id}
710
- ?selected=${state.id === initialState}
711
- >
712
- ${state.label}
713
- </sp-menu-item>
714
- `
715
- )}
716
- </sp-picker>
717
- <p>This is some text.</p>
718
- <p>This is some text.</p>
719
- <p>
720
- This is a
721
- <a href="#anchor">link</a>
722
- .
723
- </p>
724
- `;
725
- };
726
- custom.args = {
727
- open: true
728
- };
729
- custom.decorators = [isOverlayOpen];
730
- export const BackgroundClickTest = () => {
731
- return html`
732
- <div style="display: flex; flex-direction: column;">
733
- <sp-picker size="l">
734
- <sp-menu-item value="option-1">Deselect</sp-menu-item>
735
- <sp-menu-item value="option-2">Select Inverse</sp-menu-item>
736
- </sp-picker>
737
- <div style="position: absolute; bottom: 50px;">
738
- <sp-button
739
- @click=${() => {
740
- console.log(
741
- "this button should not have been clicked..."
742
- );
743
- }}
744
- size="l"
745
- >
746
- I shall not be clicked
747
- </sp-button>
748
- </div>
749
- </div>
750
- `;
751
- };
752
- BackgroundClickTest.swc_vrt = {
753
- skip: true
754
- };
755
- //# sourceMappingURL=picker.stories.js.map