@dxc-technology/halstack-react 5.0.0 → 6.1.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.
Files changed (161) hide show
  1. package/HalstackContext.d.ts +4 -2
  2. package/HalstackContext.js +110 -58
  3. package/accordion/Accordion.stories.tsx +1 -1
  4. package/accordion/types.d.ts +1 -1
  5. package/accordion-group/AccordionGroup.js +1 -0
  6. package/accordion-group/types.d.ts +1 -1
  7. package/alert/Alert.js +4 -1
  8. package/badge/Badge.d.ts +1 -1
  9. package/badge/Badge.js +5 -3
  10. package/badge/types.d.ts +1 -0
  11. package/bleed/Bleed.js +1 -34
  12. package/bleed/Bleed.stories.tsx +94 -95
  13. package/bleed/types.d.ts +1 -1
  14. package/box/Box.js +22 -32
  15. package/bulleted-list/BulletedList.d.ts +7 -0
  16. package/bulleted-list/BulletedList.js +123 -0
  17. package/bulleted-list/BulletedList.stories.tsx +200 -0
  18. package/bulleted-list/types.d.ts +11 -0
  19. package/{list → bulleted-list}/types.js +0 -0
  20. package/button/Button.js +46 -62
  21. package/button/Button.stories.tsx +9 -0
  22. package/button/types.d.ts +7 -7
  23. package/card/Card.js +34 -36
  24. package/checkbox/Checkbox.js +4 -1
  25. package/chip/types.d.ts +1 -1
  26. package/common/variables.js +224 -92
  27. package/date-input/DateInput.js +8 -5
  28. package/dialog/Dialog.js +52 -28
  29. package/dialog/Dialog.stories.tsx +1 -2
  30. package/dialog/Dialog.test.js +34 -4
  31. package/dialog/types.d.ts +2 -2
  32. package/dropdown/Dropdown.d.ts +1 -1
  33. package/dropdown/Dropdown.js +242 -246
  34. package/dropdown/Dropdown.stories.tsx +126 -63
  35. package/dropdown/Dropdown.test.js +510 -108
  36. package/dropdown/DropdownMenu.d.ts +4 -0
  37. package/dropdown/DropdownMenu.js +80 -0
  38. package/dropdown/DropdownMenuItem.d.ts +4 -0
  39. package/dropdown/DropdownMenuItem.js +92 -0
  40. package/dropdown/types.d.ts +25 -5
  41. package/file-input/FileInput.js +9 -6
  42. package/file-input/FileItem.js +7 -5
  43. package/flex/Flex.d.ts +4 -0
  44. package/flex/Flex.js +57 -0
  45. package/flex/Flex.stories.tsx +103 -0
  46. package/flex/types.d.ts +21 -0
  47. package/{radio → flex}/types.js +0 -0
  48. package/footer/Footer.js +7 -5
  49. package/footer/Icons.js +1 -1
  50. package/footer/types.d.ts +1 -1
  51. package/header/Header.js +80 -75
  52. package/header/Icons.js +2 -2
  53. package/header/types.d.ts +2 -2
  54. package/inset/Inset.js +1 -34
  55. package/inset/Inset.stories.tsx +36 -36
  56. package/inset/types.d.ts +1 -1
  57. package/layout/ApplicationLayout.d.ts +16 -6
  58. package/layout/ApplicationLayout.js +70 -117
  59. package/layout/ApplicationLayout.stories.tsx +83 -93
  60. package/layout/Icons.d.ts +5 -0
  61. package/layout/Icons.js +13 -2
  62. package/layout/SidenavContext.d.ts +5 -0
  63. package/layout/SidenavContext.js +19 -0
  64. package/layout/types.d.ts +18 -33
  65. package/link/Link.d.ts +3 -2
  66. package/link/Link.js +57 -70
  67. package/link/Link.stories.tsx +95 -53
  68. package/link/Link.test.js +7 -15
  69. package/link/types.d.ts +7 -23
  70. package/main.d.ts +7 -10
  71. package/main.js +38 -56
  72. package/number-input/types.d.ts +1 -1
  73. package/package.json +8 -6
  74. package/paginator/Paginator.js +17 -38
  75. package/paginator/Paginator.test.js +42 -0
  76. package/paragraph/Paragraph.d.ts +6 -0
  77. package/paragraph/Paragraph.js +38 -0
  78. package/paragraph/Paragraph.stories.tsx +44 -0
  79. package/password-input/PasswordInput.js +7 -4
  80. package/password-input/PasswordInput.test.js +1 -2
  81. package/password-input/types.d.ts +1 -1
  82. package/progress-bar/ProgressBar.d.ts +2 -2
  83. package/progress-bar/ProgressBar.js +57 -51
  84. package/progress-bar/ProgressBar.stories.jsx +13 -11
  85. package/progress-bar/ProgressBar.test.js +67 -22
  86. package/progress-bar/types.d.ts +3 -4
  87. package/quick-nav/QuickNav.js +74 -20
  88. package/quick-nav/QuickNav.stories.tsx +43 -16
  89. package/quick-nav/types.d.ts +4 -4
  90. package/radio-group/Radio.js +1 -1
  91. package/radio-group/RadioGroup.js +21 -20
  92. package/resultsetTable/ResultsetTable.test.js +42 -0
  93. package/select/Listbox.d.ts +1 -1
  94. package/select/Listbox.js +59 -8
  95. package/select/Select.js +78 -90
  96. package/select/Select.stories.tsx +145 -100
  97. package/select/Select.test.js +362 -244
  98. package/select/types.d.ts +2 -5
  99. package/sidenav/Sidenav.d.ts +6 -5
  100. package/sidenav/Sidenav.js +184 -52
  101. package/sidenav/Sidenav.stories.tsx +154 -156
  102. package/sidenav/Sidenav.test.js +25 -37
  103. package/sidenav/types.d.ts +50 -27
  104. package/slider/Slider.js +3 -3
  105. package/slider/Slider.test.js +37 -0
  106. package/spinner/Spinner.js +1 -1
  107. package/switch/Switch.d.ts +1 -1
  108. package/switch/Switch.js +113 -54
  109. package/switch/Switch.stories.tsx +8 -30
  110. package/switch/Switch.test.js +122 -8
  111. package/switch/types.d.ts +3 -4
  112. package/tabs/Tabs.stories.tsx +0 -6
  113. package/tabs/types.d.ts +1 -1
  114. package/tabs-nav/NavTabs.d.ts +8 -0
  115. package/tabs-nav/NavTabs.js +125 -0
  116. package/tabs-nav/NavTabs.stories.tsx +170 -0
  117. package/tabs-nav/NavTabs.test.js +82 -0
  118. package/tabs-nav/Tab.d.ts +4 -0
  119. package/tabs-nav/Tab.js +130 -0
  120. package/tabs-nav/types.d.ts +53 -0
  121. package/{row → tabs-nav}/types.js +0 -0
  122. package/tag/types.d.ts +1 -1
  123. package/text-input/Suggestion.d.ts +4 -0
  124. package/text-input/Suggestion.js +55 -0
  125. package/text-input/TextInput.js +58 -93
  126. package/text-input/TextInput.stories.tsx +1 -2
  127. package/text-input/TextInput.test.js +1 -1
  128. package/text-input/types.d.ts +14 -2
  129. package/textarea/Textarea.js +10 -19
  130. package/textarea/types.d.ts +1 -1
  131. package/toggle-group/types.d.ts +1 -1
  132. package/typography/Typography.d.ts +4 -0
  133. package/typography/Typography.js +131 -0
  134. package/typography/Typography.stories.tsx +198 -0
  135. package/typography/types.d.ts +18 -0
  136. package/{stack → typography}/types.js +0 -0
  137. package/useTranslatedLabels.d.ts +2 -0
  138. package/useTranslatedLabels.js +20 -0
  139. package/wizard/Wizard.js +36 -41
  140. package/wizard/Wizard.stories.tsx +20 -1
  141. package/wizard/types.d.ts +5 -4
  142. package/list/List.d.ts +0 -4
  143. package/list/List.js +0 -47
  144. package/list/List.stories.tsx +0 -95
  145. package/list/types.d.ts +0 -7
  146. package/radio/Radio.d.ts +0 -4
  147. package/radio/Radio.js +0 -173
  148. package/radio/Radio.stories.tsx +0 -192
  149. package/radio/Radio.test.js +0 -71
  150. package/radio/types.d.ts +0 -54
  151. package/row/Row.d.ts +0 -3
  152. package/row/Row.js +0 -127
  153. package/row/Row.stories.tsx +0 -237
  154. package/row/types.d.ts +0 -28
  155. package/stack/Stack.d.ts +0 -3
  156. package/stack/Stack.js +0 -97
  157. package/stack/Stack.stories.tsx +0 -164
  158. package/stack/types.d.ts +0 -24
  159. package/text/Text.d.ts +0 -7
  160. package/text/Text.js +0 -30
  161. package/text/Text.stories.tsx +0 -19
@@ -1,12 +1,11 @@
1
1
  import React from "react";
2
-
3
2
  import { userEvent, within, waitFor } from "@storybook/testing-library";
4
- import { fireEvent } from "@testing-library/react";
5
-
6
3
  import Title from "../../.storybook/components/Title";
7
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
8
-
9
5
  import DxcSelect from "./Select";
6
+ import Listbox from "./Listbox";
7
+ import DxcButton from "../button/Button";
8
+ import DxcCheckbox from "../checkbox/Checkbox";
10
9
 
11
10
  export default {
12
11
  title: "Select",
@@ -340,7 +339,7 @@ const Select = () => (
340
339
  <DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
341
340
  <Title title="Value with ellipsis" theme="light" level={4} />
342
341
  <DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" size="medium" />
343
- <Title title="Option with ellipsis" theme="light" level={4} />
342
+ <Title title="Options with ellipsis" theme="light" level={4} />
344
343
  <DxcSelect
345
344
  label="Label"
346
345
  placeholder="Choose an option"
@@ -351,16 +350,104 @@ const Select = () => (
351
350
  </ExampleContainer>
352
351
  </>
353
352
  );
354
- export const Chromatic = Select.bind({});
355
- Chromatic.play = async ({ canvasElement }) => {
356
- const canvas = within(canvasElement);
357
- await userEvent.click(canvas.getAllByRole("combobox")[24]);
358
- };
359
- const DefaultSelect = () => (
360
- <ExampleContainer expanded>
361
- <Title title="Default select" theme="light" level={4} />
362
- <DxcSelect label="Select label" options={single_options} optional placeholder="Choose an option" />
363
- </ExampleContainer>
353
+ const SelectListbox = () => (
354
+ <>
355
+ <Title title="Listbox" theme="light" level={2} />
356
+ <Title title="Default with opened listbox" theme="light" level={3} />
357
+ <ExampleContainer>
358
+ <div style={{ display: "flex", gap: "30px", flexDirection: "column", marginBottom: "80px" }}>
359
+ <DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
360
+ <DxcCheckbox
361
+ label="You understand the selection and give your consent"
362
+ onChange={() => {}}
363
+ labelPosition="after"
364
+ />
365
+ <DxcButton label="Submit" onClick={() => {}} size="medium" />
366
+ </div>
367
+ </ExampleContainer>
368
+ <Title title="Listbox option states" theme="light" level={3} />
369
+ <ExampleContainer pseudoState="pseudo-hover">
370
+ <Title title="Hovered option" theme="light" level={4} />
371
+ <Listbox
372
+ id="x"
373
+ currentValue=""
374
+ options={one_option}
375
+ visualFocusIndex={-1}
376
+ lastOptionIndex={0}
377
+ multiple={false}
378
+ optional={false}
379
+ optionalItem={{ label: "Empty", value: "" }}
380
+ searchable={false}
381
+ handleOptionOnClick={() => {}}
382
+ getSelectWidth={() => 360}
383
+ />
384
+ </ExampleContainer>
385
+ <ExampleContainer pseudoState="pseudo-active">
386
+ <Title title="Active option" theme="light" level={4} />
387
+ <Listbox
388
+ id="x"
389
+ currentValue=""
390
+ options={one_option}
391
+ visualFocusIndex={-1}
392
+ lastOptionIndex={0}
393
+ multiple={false}
394
+ optional={false}
395
+ optionalItem={{ label: "Empty", value: "" }}
396
+ searchable={false}
397
+ handleOptionOnClick={() => {}}
398
+ getSelectWidth={() => 360}
399
+
400
+ />
401
+ </ExampleContainer>
402
+ <ExampleContainer>
403
+ <Title title="Focused option" theme="light" level={4} />
404
+ <Listbox
405
+ id="x"
406
+ currentValue=""
407
+ options={one_option}
408
+ visualFocusIndex={0}
409
+ lastOptionIndex={0}
410
+ multiple={false}
411
+ optional={false}
412
+ optionalItem={{ label: "Empty", value: "" }}
413
+ searchable={false}
414
+ handleOptionOnClick={() => {}}
415
+ getSelectWidth={() => 360}
416
+ />
417
+ </ExampleContainer>
418
+ <ExampleContainer pseudoState="pseudo-hover">
419
+ <Title title="Hovered selected option" theme="light" level={4} />
420
+ <Listbox
421
+ id="x"
422
+ currentValue="1"
423
+ options={single_options}
424
+ visualFocusIndex={-1}
425
+ lastOptionIndex={3}
426
+ multiple={false}
427
+ optional={false}
428
+ optionalItem={{ label: "Empty", value: "" }}
429
+ searchable={false}
430
+ handleOptionOnClick={() => {}}
431
+ getSelectWidth={() => 360}
432
+ />
433
+ </ExampleContainer>
434
+ <ExampleContainer pseudoState="pseudo-active">
435
+ <Title title="Active selected option" theme="light" level={4} />
436
+ <Listbox
437
+ id="x"
438
+ currentValue="2"
439
+ options={single_options}
440
+ visualFocusIndex={0}
441
+ lastOptionIndex={3}
442
+ multiple={false}
443
+ optional={false}
444
+ optionalItem={{ label: "Empty", value: "" }}
445
+ searchable={false}
446
+ handleOptionOnClick={() => {}}
447
+ getSelectWidth={() => 360}
448
+ />
449
+ </ExampleContainer>
450
+ </>
364
451
  );
365
452
  const SearchableSelect = () => (
366
453
  <ExampleContainer expanded>
@@ -368,13 +455,18 @@ const SearchableSelect = () => (
368
455
  <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
369
456
  </ExampleContainer>
370
457
  );
371
- const SearchableWithValue = () => (
458
+ const SearchValue = () => (
372
459
  <ExampleContainer expanded>
373
460
  <Title title="Searchable select with value" theme="light" level={4} />
374
- <DxcSelect label="Select Label" searchable defaultValue="1" options={single_options} placeholder="Choose an option" />
461
+ <DxcSelect
462
+ label="Select Label"
463
+ searchable
464
+ defaultValue="1"
465
+ options={single_options}
466
+ placeholder="Choose an option"
467
+ />
375
468
  </ExampleContainer>
376
469
  );
377
-
378
470
  const MultipleSelect = () => (
379
471
  <>
380
472
  <ExampleContainer expanded>
@@ -398,7 +490,13 @@ const DefaultGroupedOptionsSelect = () => (
398
490
  const MultipleGroupedOptionsSelect = () => (
399
491
  <ExampleContainer expanded>
400
492
  <Title title="Grouped options multiple select" theme="light" level={4} />
401
- <DxcSelect label="Label" options={group_options} defaultValue={["0", "2"]} multiple placeholder="Choose an option" />
493
+ <DxcSelect
494
+ label="Label"
495
+ options={group_options}
496
+ defaultValue={["0", "2"]}
497
+ multiple
498
+ placeholder="Choose an option"
499
+ />
402
500
  </ExampleContainer>
403
501
  );
404
502
  const RescaledIcons = () => (
@@ -431,36 +529,7 @@ const MultipleGroupedOptionsSelectWithIcons = () => (
431
529
  />
432
530
  </ExampleContainer>
433
531
  );
434
- const OnlyOneOptionHovered = () => (
435
- <ExampleContainer pseudoState="pseudo-hover" expanded>
436
- <Title title="Hovered Option" theme="light" level={4} />
437
- <DxcSelect label="Hovered" options={one_option} placeholder="Choose an option" />
438
- </ExampleContainer>
439
- );
440
- const OnlyOneOptionFocused = () => (
441
- <ExampleContainer pseudoState="pseudo-focus" expanded>
442
- <Title title="Focused Option" theme="light" level={4} />
443
- <DxcSelect label="Focused" options={one_option} placeholder="Choose an option" />
444
- </ExampleContainer>
445
- );
446
- const OnlyOneOptionActived = () => (
447
- <ExampleContainer pseudoState="pseudo-active" expanded>
448
- <Title title="Actived Option" theme="light" level={4} />
449
- <DxcSelect label="Actived" options={one_option} placeholder="Choose an option" />
450
- </ExampleContainer>
451
- );
452
- const SelectedOptionHovered = () => (
453
- <ExampleContainer pseudoState="pseudo-hover" expanded>
454
- <Title title="Hovered Selected Option" theme="light" level={4} />
455
- <DxcSelect label="Hovered" defaultValue="1" options={one_option} placeholder="Choose an option" />
456
- </ExampleContainer>
457
- );
458
- const SelectedOptionActived = () => (
459
- <ExampleContainer pseudoState="pseudo-active" expanded>
460
- <Title title="Actived Selected Option" theme="light" level={4} />
461
- <DxcSelect label="Actived" defaultValue="1" options={one_option} placeholder="Choose an option" />
462
- </ExampleContainer>
463
- );
532
+
464
533
  const MultipleSearchable = () => (
465
534
  <ExampleContainer expanded>
466
535
  <Title title="Searchable multiple select with value" theme="light" level={4} />
@@ -474,12 +543,20 @@ const MultipleSearchable = () => (
474
543
  />
475
544
  </ExampleContainer>
476
545
  );
477
- export const OptionsDisplayed = DefaultSelect.bind({});
478
- OptionsDisplayed.play = async ({ canvasElement }) => {
546
+
547
+ export const Chromatic = Select.bind({});
548
+ Chromatic.play = async ({ canvasElement }) => {
549
+ const canvas = within(canvasElement);
550
+ await userEvent.click(canvas.getAllByRole("combobox")[24]);
551
+ };
552
+
553
+ export const ListboxStates = SelectListbox.bind({});
554
+ ListboxStates.play = async ({ canvasElement }) => {
479
555
  const canvas = within(canvasElement);
480
556
  const select = canvas.getByRole("combobox");
481
557
  await userEvent.click(select);
482
558
  };
559
+
483
560
  export const Searchable = SearchableSelect.bind({});
484
561
  Searchable.play = async ({ canvasElement }) => {
485
562
  const canvas = within(canvasElement);
@@ -488,14 +565,15 @@ Searchable.play = async ({ canvasElement }) => {
488
565
  userEvent.type(canvas.getByRole("combobox"), "r");
489
566
  });
490
567
  };
491
- export const SelectSearchableWithValue = SearchableWithValue.bind({});
492
- SelectSearchableWithValue.play = async ({ canvasElement }) => {
568
+
569
+ export const SearchableWithValue = SearchValue.bind({});
570
+ SearchableWithValue.play = async ({ canvasElement }) => {
493
571
  const canvas = within(canvasElement);
494
572
  await userEvent.click(canvas.getByRole("combobox"));
495
573
  };
496
574
 
497
- export const SelectMultipleSearchableWithValue = MultipleSearchable.bind({});
498
- SelectMultipleSearchableWithValue.play = async ({ canvasElement }) => {
575
+ export const MultipleSearchableWithValue = MultipleSearchable.bind({});
576
+ MultipleSearchableWithValue.play = async ({ canvasElement }) => {
499
577
  const canvas = within(canvasElement);
500
578
  await userEvent.click(canvas.getAllByRole("combobox")[0]);
501
579
  };
@@ -507,75 +585,42 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
507
585
  await userEvent.click(select);
508
586
  };
509
587
 
510
- export const SelectMultipleOptionsDisplayed = MultipleSelect.bind({});
511
- SelectMultipleOptionsDisplayed.play = async ({ canvasElement }) => {
588
+ export const MultipleOptionsDisplayed = MultipleSelect.bind({});
589
+ MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
512
590
  const canvas = within(canvasElement);
513
591
  await userEvent.click(canvas.getAllByRole("combobox")[0]);
514
592
  };
515
593
 
516
- export const SelectMultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
517
- SelectMultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
518
- const canvas = within(canvasElement);
519
- const select = canvas.getByRole("combobox");
520
- await userEvent.click(select);
521
- };
522
- export const SelectWithIconsDisplayed = SelectWithIcons.bind({});
523
- SelectWithIconsDisplayed.play = async ({ canvasElement }) => {
594
+ export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
595
+ MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
524
596
  const canvas = within(canvasElement);
525
597
  const select = canvas.getByRole("combobox");
526
598
  await userEvent.click(select);
527
599
  };
528
600
 
529
- export const SelectWithRescaledIconsDisplayed = RescaledIcons.bind({});
530
- SelectWithRescaledIconsDisplayed.play = async ({ canvasElement }) => {
531
- const canvas = within(canvasElement);
532
- const select = canvas.getByRole("combobox");
533
- await userEvent.click(select);
534
- };
535
- export const SelectMultipleWithIconsDisplayed = SelectMultipleWithIcons.bind({});
536
- SelectMultipleWithIconsDisplayed.play = async ({ canvasElement }) => {
601
+ export const WithIconsDisplayed = SelectWithIcons.bind({});
602
+ WithIconsDisplayed.play = async ({ canvasElement }) => {
537
603
  const canvas = within(canvasElement);
538
604
  const select = canvas.getByRole("combobox");
539
605
  await userEvent.click(select);
540
606
  };
541
607
 
542
- export const SelectMultipleGroupedWithIconsDisplayed = MultipleGroupedOptionsSelectWithIcons.bind({});
543
- SelectMultipleGroupedWithIconsDisplayed.play = async ({ canvasElement }) => {
608
+ export const WithRescaledIconsDisplayed = RescaledIcons.bind({});
609
+ WithRescaledIconsDisplayed.play = async ({ canvasElement }) => {
544
610
  const canvas = within(canvasElement);
545
611
  const select = canvas.getByRole("combobox");
546
612
  await userEvent.click(select);
547
613
  };
548
614
 
549
- export const OptionHovered = OnlyOneOptionHovered.bind({});
550
- OptionHovered.play = async ({ canvasElement }) => {
615
+ export const MultipleWithIconsDisplayed = SelectMultipleWithIcons.bind({});
616
+ MultipleWithIconsDisplayed.play = async ({ canvasElement }) => {
551
617
  const canvas = within(canvasElement);
552
618
  const select = canvas.getByRole("combobox");
553
619
  await userEvent.click(select);
554
620
  };
555
621
 
556
- export const OptionFocused = OnlyOneOptionFocused.bind({});
557
- OptionFocused.play = async ({ canvasElement }) => {
558
- const canvas = within(canvasElement);
559
- const select = canvas.getByRole("combobox");
560
- await userEvent.click(select);
561
- await waitFor(async () => {
562
- fireEvent.keyDown(select, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
563
- });
564
- };
565
- export const OptionActived = OnlyOneOptionActived.bind({});
566
- OptionActived.play = async ({ canvasElement }) => {
567
- const canvas = within(canvasElement);
568
- const select = canvas.getByRole("combobox");
569
- await userEvent.click(select);
570
- };
571
- export const OptionSelectedHovered = SelectedOptionHovered.bind({});
572
- OptionSelectedHovered.play = async ({ canvasElement }) => {
573
- const canvas = within(canvasElement);
574
- const select = canvas.getByRole("combobox");
575
- await userEvent.click(select);
576
- };
577
- export const OptionSelectedActived = SelectedOptionActived.bind({});
578
- OptionSelectedActived.play = async ({ canvasElement }) => {
622
+ export const MultipleGroupedWithIconsDisplayed = MultipleGroupedOptionsSelectWithIcons.bind({});
623
+ MultipleGroupedWithIconsDisplayed.play = async ({ canvasElement }) => {
579
624
  const canvas = within(canvasElement);
580
625
  const select = canvas.getByRole("combobox");
581
626
  await userEvent.click(select);