@ukic/web-components 3.15.0 → 3.16.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 (163) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-footer.cjs.entry.js +9 -5
  6. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
  19. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-toast.cjs.entry.js +14 -6
  23. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/components/ic-button/ic-button.stories.js +3 -3
  26. package/dist/collection/components/ic-checkbox/ic-checkbox.css +2 -0
  27. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +18 -18
  28. package/dist/collection/components/ic-data-list/ic-data-list.css +1 -0
  29. package/dist/collection/components/ic-data-row/ic-data-row.css +2 -0
  30. package/dist/collection/components/ic-footer/ic-footer.js +29 -5
  31. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  32. package/dist/collection/components/ic-footer/ic-footer.stories.js +31 -0
  33. package/dist/collection/components/ic-hero/ic-hero.css +0 -2
  34. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
  35. package/dist/collection/components/ic-input-validation/ic-input-validation.css +2 -1
  36. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +17 -18
  37. package/dist/collection/components/ic-menu/ic-menu.css +8 -0
  38. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +12 -0
  39. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +2 -7
  40. package/dist/collection/components/ic-pagination/ic-pagination.stories.js +3 -3
  41. package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +7 -7
  42. package/dist/collection/components/ic-radio-group/ic-radio-group.css +6 -6
  43. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +12 -12
  44. package/dist/collection/components/ic-radio-option/ic-radio-option.css +60 -54
  45. package/dist/collection/components/ic-radio-option/ic-radio-option.js +9 -5
  46. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  47. package/dist/collection/components/ic-search-bar/ic-search-bar.css +8 -0
  48. package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +19 -19
  49. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +20 -20
  50. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -21
  51. package/dist/collection/components/ic-tab-context/ic-tabs.stories.js +1 -1
  52. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +19 -19
  53. package/dist/collection/components/ic-toast/ic-toast.css +26 -1
  54. package/dist/collection/components/ic-toast/ic-toast.js +39 -5
  55. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  56. package/dist/collection/components/ic-toast/ic-toast.stories.js +21 -9
  57. package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +14 -14
  58. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +7 -7
  59. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +11 -11
  60. package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +15 -15
  61. package/dist/collection/components/ic-typography/ic-typography.stories.js +1 -1
  62. package/dist/collection/patterns/top-nav-content-footer.stories.js +1 -1
  63. package/dist/components/ic-badge.js.map +1 -1
  64. package/dist/components/ic-checkbox.js.map +1 -1
  65. package/dist/components/ic-chip.js.map +1 -1
  66. package/dist/components/ic-classification-banner.js.map +1 -1
  67. package/dist/components/ic-data-list.js.map +1 -1
  68. package/dist/components/ic-data-row.js.map +1 -1
  69. package/dist/components/ic-footer.js +10 -5
  70. package/dist/components/ic-footer.js.map +1 -1
  71. package/dist/components/ic-hero.js.map +1 -1
  72. package/dist/components/ic-input-component-container2.js +1 -1
  73. package/dist/components/ic-input-component-container2.js.map +1 -1
  74. package/dist/components/ic-input-validation2.js +1 -1
  75. package/dist/components/ic-input-validation2.js.map +1 -1
  76. package/dist/components/ic-menu2.js +1 -1
  77. package/dist/components/ic-menu2.js.map +1 -1
  78. package/dist/components/ic-navigation-group.js +1 -1
  79. package/dist/components/ic-navigation-group.js.map +1 -1
  80. package/dist/components/ic-navigation-item.js +1 -1
  81. package/dist/components/ic-navigation-item.js.map +1 -1
  82. package/dist/components/ic-radio-group.js +1 -1
  83. package/dist/components/ic-radio-group.js.map +1 -1
  84. package/dist/components/ic-radio-option.js +10 -7
  85. package/dist/components/ic-radio-option.js.map +1 -1
  86. package/dist/components/ic-search-bar.js +1 -1
  87. package/dist/components/ic-search-bar.js.map +1 -1
  88. package/dist/components/ic-side-navigation.js.map +1 -1
  89. package/dist/components/ic-skeleton.js.map +1 -1
  90. package/dist/components/ic-step.js.map +1 -1
  91. package/dist/components/ic-toast.js +15 -6
  92. package/dist/components/ic-toast.js.map +1 -1
  93. package/dist/core/core.esm.js +1 -1
  94. package/dist/core/core.esm.js.map +1 -1
  95. package/dist/core/p-082e0068.entry.js +2 -0
  96. package/dist/core/p-082e0068.entry.js.map +1 -0
  97. package/dist/core/p-3238389a.entry.js +2 -0
  98. package/dist/core/p-3238389a.entry.js.map +1 -0
  99. package/dist/core/p-33e35173.entry.js.map +1 -1
  100. package/dist/core/p-52c66bfe.entry.js +2 -0
  101. package/dist/core/p-52c66bfe.entry.js.map +1 -0
  102. package/dist/core/p-6ed48c46.entry.js +2 -0
  103. package/dist/core/p-6ed48c46.entry.js.map +1 -0
  104. package/dist/core/p-8abcc114.entry.js.map +1 -1
  105. package/dist/core/p-9c52ee48.entry.js +2 -0
  106. package/dist/core/p-9c52ee48.entry.js.map +1 -0
  107. package/dist/core/p-afbba548.entry.js +2 -0
  108. package/dist/core/p-afbba548.entry.js.map +1 -0
  109. package/dist/core/p-b4a2f6fa.entry.js.map +1 -1
  110. package/dist/core/{p-0c4ceed9.entry.js → p-b59504f1.entry.js} +2 -2
  111. package/dist/core/p-b59504f1.entry.js.map +1 -0
  112. package/dist/core/p-b83a736d.entry.js +3 -0
  113. package/dist/core/p-b83a736d.entry.js.map +1 -0
  114. package/dist/core/{p-4bdeb62d.entry.js → p-bdda404b.entry.js} +2 -2
  115. package/dist/core/p-bdda404b.entry.js.map +1 -0
  116. package/dist/core/p-ffd0d9d1.entry.js.map +1 -1
  117. package/dist/esm/core.js +1 -1
  118. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  119. package/dist/esm/ic-data-list.entry.js.map +1 -1
  120. package/dist/esm/ic-data-row.entry.js.map +1 -1
  121. package/dist/esm/ic-footer.entry.js +9 -5
  122. package/dist/esm/ic-footer.entry.js.map +1 -1
  123. package/dist/esm/ic-hero.entry.js.map +1 -1
  124. package/dist/esm/ic-input-component-container_3.entry.js +2 -2
  125. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  126. package/dist/esm/ic-input-label_2.entry.js +1 -1
  127. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  128. package/dist/esm/ic-navigation-group.entry.js +1 -1
  129. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  130. package/dist/esm/ic-navigation-item.entry.js +1 -1
  131. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  132. package/dist/esm/ic-radio-group.entry.js +1 -1
  133. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  134. package/dist/esm/ic-radio-option.entry.js +9 -6
  135. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  136. package/dist/esm/ic-search-bar.entry.js +1 -1
  137. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  138. package/dist/esm/ic-toast.entry.js +14 -6
  139. package/dist/esm/ic-toast.entry.js.map +1 -1
  140. package/dist/esm/loader.js +1 -1
  141. package/dist/types/components/ic-footer/ic-footer.d.ts +4 -0
  142. package/dist/types/components/ic-toast/ic-toast.d.ts +5 -1
  143. package/dist/types/components.d.ts +16 -0
  144. package/hydrate/index.js +42 -25
  145. package/hydrate/index.mjs +42 -25
  146. package/package.json +4 -4
  147. package/vscode-data.json +19 -0
  148. package/dist/core/p-042cfc35.entry.js +0 -2
  149. package/dist/core/p-042cfc35.entry.js.map +0 -1
  150. package/dist/core/p-06c950a3.entry.js +0 -2
  151. package/dist/core/p-06c950a3.entry.js.map +0 -1
  152. package/dist/core/p-0c4ceed9.entry.js.map +0 -1
  153. package/dist/core/p-11d8a504.entry.js +0 -3
  154. package/dist/core/p-11d8a504.entry.js.map +0 -1
  155. package/dist/core/p-3680f22c.entry.js +0 -2
  156. package/dist/core/p-3680f22c.entry.js.map +0 -1
  157. package/dist/core/p-4bdeb62d.entry.js.map +0 -1
  158. package/dist/core/p-a5415f6c.entry.js +0 -2
  159. package/dist/core/p-a5415f6c.entry.js.map +0 -1
  160. package/dist/core/p-b3cb1e35.entry.js +0 -2
  161. package/dist/core/p-b3cb1e35.entry.js.map +0 -1
  162. package/dist/core/p-e7af1e2d.entry.js +0 -2
  163. package/dist/core/p-e7af1e2d.entry.js.map +0 -1
@@ -441,35 +441,34 @@ video {
441
441
  }
442
442
 
443
443
 
444
- ic-radio-option {
444
+ :host {
445
445
  display: flex;
446
446
  flex-direction: column;
447
447
  width: -moz-fit-content;
448
448
  width: fit-content;
449
449
  }
450
450
 
451
- .additional-field-wrapper [slot="additional-field"] {
451
+ :host .additional-field-wrapper-static::slotted([slot="additional-field"]) {
452
452
  margin-top: calc(var(--ic-space-sm) / 2);
453
453
  margin-left: var(--ic-space-xl);
454
454
  }
455
455
 
456
456
  /* The label turns grey when disabled */
457
- ic-radio-option.ic-radio-option-disabled,
458
- ic-radio-option.ic-radio-option-disabled .radio-label {
457
+ :host(.ic-radio-option-disabled),
458
+ :host(.ic-radio-option-disabled) .radio-label {
459
459
  --ic-typography-color: var(--ic-radio-button-text-option-disabled);
460
460
  }
461
461
 
462
462
  /* Focus states */
463
-
464
- .container input:focus + span.checkmark,
465
- .container:hover input:focus + span.checkmark,
466
- .container:active input:focus + span.checkmark,
467
- :host(:focus) .container input:checked + span.checkmark {
463
+ :host .radio-option-container input:focus + span.checkmark,
464
+ :host .radio-option-container:hover input:focus + span.checkmark,
465
+ :host .radio-option-container:active input:focus + span.checkmark,
466
+ :host(:focus) .radio-option-container input:checked + span.checkmark {
468
467
  box-shadow: var(--ic-border-focus);
469
468
  }
470
469
 
471
470
  /* The container */
472
- .container {
471
+ :host .radio-option-container {
473
472
  display: grid;
474
473
  grid-template-columns: min-content auto;
475
474
  position: relative;
@@ -478,17 +477,17 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
478
477
  margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);
479
478
  }
480
479
 
481
- .ic-radio-group-small .container {
480
+ :host(.ic-radio-option-small) .radio-option-container {
482
481
  margin: 0 0 0 var(--ic-space-xxs);
483
482
  }
484
483
 
485
- .container.disabled,
486
- .container.disabled input:disabled {
484
+ :host .radio-option-container.disabled,
485
+ :host .radio-option-container.disabled input:disabled {
487
486
  cursor: default;
488
487
  }
489
488
 
490
489
  /* Hide the browser's default radio button */
491
- .container input {
490
+ :host .radio-option-container input {
492
491
  -webkit-appearance: none;
493
492
  -moz-appearance: none;
494
493
  appearance: none;
@@ -501,13 +500,13 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
501
500
  border: none;
502
501
  }
503
502
 
504
- .ic-radio-group-small .container input {
503
+ :host(.ic-radio-option-small) .radio-option-container input {
505
504
  height: var(--ic-space-md);
506
505
  width: var(--ic-space-md);
507
506
  }
508
507
 
509
508
  /* Create a custom radio button */
510
- .checkmark {
509
+ :host .checkmark {
511
510
  display: block;
512
511
  position: relative;
513
512
  top: 0;
@@ -521,84 +520,90 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
521
520
  box-sizing: border-box;
522
521
  }
523
522
 
524
- .ic-radio-group-small .checkmark {
523
+ :host(.ic-radio-option-small) .checkmark {
525
524
  height: var(--ic-space-md);
526
525
  width: var(--ic-space-md);
527
526
  }
528
527
 
529
528
  /* Show the indicator (dot/circle) when checked */
530
- .container input:checked ~ .checkmark::after {
529
+ :host .radio-option-container input:checked ~ .checkmark::after {
531
530
  display: inline-block;
532
531
  }
533
532
 
534
533
  /* On mouse-over, add a light blue background color */
535
- .container:hover input ~ .checkmark {
534
+ :host .radio-option-container:hover input ~ .checkmark {
536
535
  box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);
537
536
  border: var(--ic-border-width) solid var(--ic-radio-button-default-hover);
538
537
  }
539
538
 
540
- .container:hover input:checked ~ .checkmark {
539
+ :host .radio-option-container:hover input:checked ~ .checkmark {
541
540
  box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);
542
541
  border: 0.125rem solid var(--ic-radio-button-default-hover);
543
542
  }
544
543
 
545
- .container:hover:not(.disabled) input:checked ~ .checkmark::after {
544
+ :host
545
+ .radio-option-container:hover:not(.disabled)
546
+ input:checked
547
+ ~ .checkmark::after {
546
548
  background-color: var(--ic-radio-button-default-hover);
547
549
  }
548
550
 
549
551
  /* When pressed, adds the active colours */
550
- .container:active input ~ .checkmark {
552
+ :host .radio-option-container:active input ~ .checkmark {
551
553
  box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);
552
554
  border: var(--ic-border-width) solid var(--ic-radio-button-default-pressed);
553
555
  }
554
556
 
555
557
  /* When pressed, adds the active colours */
556
- .container:active input:checked ~ .checkmark {
558
+ :host .radio-option-container:active input:checked ~ .checkmark {
557
559
  border: 0.125rem solid var(--ic-radio-button-default-pressed);
558
560
  box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);
559
561
  }
560
562
 
561
- .ic-radio-group-small .container input:checked ~ .checkmark {
563
+ :host(.ic-radio-option-small)
564
+ .radio-option-container
565
+ input:checked
566
+ ~ .checkmark {
562
567
  border-width: var(--ic-space-1px);
563
568
  }
564
569
 
565
570
  /* When pressed and selected, adds the active colours */
566
- .container:active input:checked ~ .checkmark::after {
571
+ :host .radio-option-container:active input:checked ~ .checkmark::after {
567
572
  background-color: var(--ic-radio-button-default-pressed);
568
573
  }
569
574
 
570
575
  /* When the radio button is checked */
571
- .container input:checked ~ .checkmark {
576
+ :host .radio-option-container input:checked ~ .checkmark {
572
577
  border: 0.125rem solid var(--ic-radio-button-default-active);
573
578
  }
574
579
 
575
580
  /* When the radio button is checked and disabled */
576
- .container input:checked:disabled ~ .checkmark {
581
+ :host .radio-option-container input:checked:disabled ~ .checkmark {
577
582
  border: 0.125rem solid var(--ic-radio-button-border-disabled);
578
583
  }
579
584
 
580
585
  /* When the radio button is disabled */
581
- .container input:disabled ~ .checkmark {
586
+ :host .radio-option-container input:disabled ~ .checkmark {
582
587
  border: var(--ic-border-width) dashed var(--ic-radio-button-border-disabled);
583
588
  }
584
589
 
585
590
  /* When the radio button is disabled */
586
- .container input:disabled ~ .checkmark::after {
591
+ :host .radio-option-container input:disabled ~ .checkmark::after {
587
592
  background: var(--ic-radio-button-disabled);
588
593
  }
589
594
 
590
595
  /* On mouse-over inactive */
591
- .container:hover input:disabled ~ .checkmark {
596
+ :host .radio-option-container:hover input:disabled ~ .checkmark {
592
597
  box-shadow: none;
593
598
  border: 0.125rem solid none;
594
599
  }
595
600
 
596
- .container:active input:disabled ~ .checkmark::after {
601
+ :host .radio-option-container:active input:disabled ~ .checkmark::after {
597
602
  background-color: var(--ic-radio-button-disabled);
598
603
  }
599
604
 
600
605
  /* Style the indicator (dot/circle) */
601
- .container .checkmark::after {
606
+ :host .radio-option-container .checkmark::after {
602
607
  content: "";
603
608
  position: absolute;
604
609
  display: none;
@@ -610,7 +615,7 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
610
615
  background: var(--ic-radio-button-default-active);
611
616
  }
612
617
 
613
- .ic-radio-group-small .container .checkmark::after {
618
+ :host(.ic-radio-option-small) .radio-option-container .checkmark::after {
614
619
  top: 50%;
615
620
  left: 50%;
616
621
  width: 0.625rem;
@@ -620,22 +625,22 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
620
625
  transform: translate(-50%, -50%);
621
626
  }
622
627
 
623
- .radio-label {
628
+ :host .radio-label {
624
629
  margin-left: var(--ic-space-md);
625
630
 
626
631
  --ic-typography-color: var(--ic-radio-button-text-option);
627
632
  }
628
633
 
629
- .ic-radio-group-small .radio-label {
634
+ :host(.ic-radio-option-small) .radio-label {
630
635
  margin-left: var(--ic-space-xs);
631
636
  }
632
637
 
633
- .additional-field-wrapper {
638
+ :host .additional-field-wrapper-static {
634
639
  margin-left: var(--ic-space-xs);
635
640
  }
636
641
 
637
642
  /* The line */
638
- .branch-corner {
643
+ :host .branch-corner {
639
644
  color: var(--ic-radio-button-required-bar);
640
645
  height: var(--ic-space-md);
641
646
  width: var(--ic-space-xl);
@@ -646,22 +651,22 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
646
651
  }
647
652
 
648
653
  /* The dynamic container */
649
- .dynamic-container {
654
+ :host .dynamic-container {
650
655
  display: flex;
651
656
  position: relative;
652
657
  margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-md);
653
658
  gap: var(--ic-space-xs);
654
659
  }
655
660
 
656
- .ic-radio-group-small .dynamic-container {
661
+ :host(.ic-radio-option-small) .dynamic-container {
657
662
  margin-left: 12px;
658
663
  }
659
664
 
660
- .dynamic-container.hidden {
665
+ :host .dynamic-container.hidden {
661
666
  display: none;
662
667
  }
663
668
 
664
- .dynamic-text {
669
+ :host .dynamic-text {
665
670
  color: var(--ic-radio-button-required-text);
666
671
 
667
672
  --ic-typography-color: var(--ic-radio-button-required-text);
@@ -672,7 +677,8 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
672
677
  }
673
678
 
674
679
  @media (max-width: 576px) {
675
- ic-text-field {
680
+ :host .additional-field-wrapper-dynamic::slotted(ic-text-field),
681
+ :host .additional-field-wrapper-static::slotted(ic-text-field) {
676
682
  --input-width: 100%;
677
683
  }
678
684
  }
@@ -680,43 +686,43 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
680
686
  @media (forced-colors: active) {
681
687
  /* Styles here only apply to Forced Colors Mode */
682
688
 
683
- .container input:checked ~ .checkmark,
684
- .container:active input:checked ~ .checkmark {
689
+ :host .radio-option-container input:checked ~ .checkmark,
690
+ :host .radio-option-container:active input:checked ~ .checkmark {
685
691
  border-color: Highlight;
686
692
  }
687
693
 
688
- .container input:checked ~ .checkmark::after,
689
- .container:active input:checked ~ .checkmark::after {
694
+ :host .radio-option-container input:checked ~ .checkmark::after,
695
+ :host .radio-option-container:active input:checked ~ .checkmark::after {
690
696
  background-color: Highlight;
691
697
  }
692
698
 
693
- .container input:disabled ~ .checkmark,
694
- .container input:checked:disabled ~ .checkmark {
699
+ :host .radio-option-container input:disabled ~ .checkmark,
700
+ :host .radio-option-container input:checked:disabled ~ .checkmark {
695
701
  border-color: GrayText;
696
702
  }
697
703
 
698
- .container input:disabled ~ .checkmark::after,
699
- .container:active input:disabled ~ .checkmark::after {
704
+ :host .radio-option-container input:disabled ~ .checkmark::after,
705
+ :host .radio-option-container:active input:disabled ~ .checkmark::after {
700
706
  background-color: GrayText;
701
707
  }
702
708
  }
703
709
 
704
710
  /* Right to left */
705
- input[type="radio"]:dir(rtl) {
711
+ :host input[type="radio"]:dir(rtl) {
706
712
  right: 0;
707
713
  }
708
714
 
709
- .radio-label:dir(rtl) {
715
+ :host .radio-label:dir(rtl) {
710
716
  padding-right: var(--ic-space-sm);
711
717
  padding-left: 0;
712
718
  }
713
719
 
714
- .branch-corner:dir(rtl) {
720
+ :host .branch-corner:dir(rtl) {
715
721
  border-radius: 0 0 0.188rem;
716
722
  border-right: 0.125rem solid var(--ic-action-default);
717
723
  border-left: none;
718
724
  }
719
725
 
720
- .dynamic-container:dir(rtl) {
726
+ :host .dynamic-container:dir(rtl) {
721
727
  margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;
722
728
  }
@@ -137,19 +137,23 @@ export class RadioOption {
137
137
  return additionalField;
138
138
  }
139
139
  render() {
140
+ var _a, _b;
140
141
  const { additionalFieldDisplay, disabled, dynamicText, form, groupLabel, handleClick, handleKeyDown, hasAdditionalField, label, name, selected, value, theme, } = this;
141
142
  const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;
142
- return (h(Host, { key: '3d233946c372788a34128912099c47d6858d7ea9', onClick: handleClick, onKeyDown: handleKeyDown, class: {
143
+ return (h(Host, { key: '0a7177993a68c85ed54198b8ee213811aa2e130a', onClick: handleClick, onKeyDown: handleKeyDown, class: {
143
144
  ["ic-radio-option-disabled"]: !!disabled,
144
145
  [`ic-theme-${theme}`]: theme !== "inherit",
145
- } }, h("div", { key: 'e932a0827c6b0620522f9f3df3f5a06316098949', class: { container: true, disabled: !!disabled } }, h("div", { key: '64eeea95469af9831655f56701e2332255bf6669' }, h("input", { key: '32f7a8840d8a14a89f1a79b9c61890e0e2fe23a0', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: '6cbea9714c51eb75b7be07a509049f0c330ffca5', class: "checkmark" })), h("ic-typography", { key: '55164cf8d231d449267b74389f9d7cd8193ab6db', class: "radio-label", variant: "body" }, h("label", { key: '54014827aa5c16641bc3fa864974382bf0715335', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '5f3e1054494365c3fafdfd421bed64523307406b', class: {
146
+ ["ic-radio-option-small"]: ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === "IC-RADIO-GROUP" &&
147
+ ((_b = this.el.parentElement) === null || _b === void 0 ? void 0 : _b.className.includes("ic-radio-group-small")),
148
+ } }, h("div", { key: '64bac9a6440919352131dc732648034a90d7e92e', class: { "radio-option-container": true, disabled: !!disabled } }, h("div", { key: '419dc17817ca4c9945025268e0e00de83db01790' }, h("input", { key: '0885bab10d42cd69eda2e0d78702c6c2afcff615', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: 'df142dc79e23d240abd15f5088d703b6d388456b', class: "checkmark" })), h("ic-typography", { key: '4d5a779bbef4ccb65fbe7ebf6b3aeceafb9227e0', class: "radio-label", variant: "body" }, h("label", { key: '6d2778eb36c462f3c7fa25ed9ae5d8733b0fcb20', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '9772fd4d064854c3db492f430b90098eccd13701', class: {
146
149
  "dynamic-container": true,
147
150
  hidden: additionalFieldDisplay === "dynamic" && !selected,
148
- } }, additionalFieldDisplay === "dynamic" && (h("div", { key: 'd9c292dd502569650dcf327a3e48716cde723593', class: "branch-corner" })), h("div", { key: '3994230df8af7e9c5215646a1c5c3d5687961637' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '0b92403d743c4517ca099586a2845e71d528c329', variant: "caption", role: "alert" }, h("p", { key: '0b689ea686ff2cb08b27858920a2f0548c197aa7', class: "dynamic-text" }, dynamicText))), h("div", { key: '7e023eb75b14dd0a75acbe5321ecd676de0a67d4', class: {
149
- "additional-field-wrapper": additionalFieldDisplay === "static",
150
- } }, h("slot", { key: 'b3f82b1650ef67a732b35a32c5088745f31d1f31', name: ADDITIONAL_FIELD })))))));
151
+ } }, additionalFieldDisplay === "dynamic" && (h("div", { key: 'a237b8043bf912d5fb1be67014ae0bde41c5a2a4', class: "branch-corner" })), h("div", { key: '70524014fa4d75197460d321f47824ab20503806' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '2f652884ff6ac334fd6cb688e52d05d0bdabf3de', variant: "caption", role: "alert" }, h("p", { key: '36cc2915b063c8d85e61dd18a3c384460b996d4f', class: "dynamic-text" }, dynamicText))), h("div", { key: 'd8386ddb6c70fd7893544d3c6d1720b349bb378b', class: {
152
+ [`additional-field-wrapper-${additionalFieldDisplay}`]: true,
153
+ } }, h("slot", { key: 'f9b72315938873b57c52af87730ee72b24a413af', name: ADDITIONAL_FIELD })))))));
151
154
  }
152
155
  static get is() { return "ic-radio-option"; }
156
+ static get encapsulation() { return "scoped"; }
153
157
  static get originalStyleUrls() {
154
158
  return {
155
159
  "$": ["ic-radio-option.css"]
@@ -1 +1 @@
1
- {"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement?: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay?: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText?: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel?: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement?.setAttribute(\"tabIndex\", value.toString());\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement?.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, disabled: !!disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\" role=\"alert\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n additionalFieldDisplay === \"static\",\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n scoped: true,\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement?: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay?: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText?: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel?: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement?.setAttribute(\"tabIndex\", value.toString());\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement?.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-radio-option-small\"]:\n this.el.parentElement?.tagName === \"IC-RADIO-GROUP\" &&\n this.el.parentElement?.className.includes(\"ic-radio-group-small\"),\n }}\n >\n <div class={{ \"radio-option-container\": true, disabled: !!disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\" role=\"alert\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n [`additional-field-wrapper-${additionalFieldDisplay}`]: true,\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -651,3 +651,11 @@ input[type="search"].truncate-value {
651
651
  fill: GrayText;
652
652
  }
653
653
  }
654
+
655
+ /* Breakpoint value chosen as it's a small amount bigger than the search bar's default width */
656
+ @media screen AND (max-width: 22rem) {
657
+ .menu-container {
658
+ max-width: var(--menu-width, var(--input-width, 20rem));
659
+ width: 100%;
660
+ }
661
+ }
@@ -27,7 +27,7 @@ export default {
27
27
  };
28
28
 
29
29
  export const Default = {
30
- render: (args) =>
30
+ render: () =>
31
31
  html` <ic-search-bar label="What is your favourite coffee?">
32
32
  </ic-search-bar>`,
33
33
 
@@ -35,7 +35,7 @@ export const Default = {
35
35
  };
36
36
 
37
37
  export const Basic = {
38
- render: (args) =>
38
+ render: () =>
39
39
  html` <ic-search-bar label="What is your favourite coffee?"></ic-search-bar>
40
40
  <script>
41
41
  document.querySelector("ic-search-bar").options = [
@@ -54,7 +54,7 @@ export const Basic = {
54
54
  };
55
55
 
56
56
  export const WithCustomLabelAndValueFields = {
57
- render: (args) =>
57
+ render: () =>
58
58
  html` <ic-search-bar
59
59
  label="What is your favourite coffee?"
60
60
  label-field="urn"
@@ -77,7 +77,7 @@ export const WithCustomLabelAndValueFields = {
77
77
  };
78
78
 
79
79
  export const WithOptions = {
80
- render: (args) =>
80
+ render: () =>
81
81
  html` <ic-search-bar
82
82
  label="What is your favourite coffee?"
83
83
  value="Flat White"
@@ -103,7 +103,7 @@ export const WithOptions = {
103
103
  };
104
104
 
105
105
  export const WithOptionsNoFiltering = {
106
- render: (args) =>
106
+ render: () =>
107
107
  html` <ic-search-bar
108
108
  label="What is your favourite coffee?"
109
109
  disable-auto-filtering
@@ -125,7 +125,7 @@ export const WithOptionsNoFiltering = {
125
125
  };
126
126
 
127
127
  export const InAForm = {
128
- render: (args) =>
128
+ render: () =>
129
129
  html` <form>
130
130
  <ic-search-bar
131
131
  name="search-01"
@@ -137,7 +137,7 @@ export const InAForm = {
137
137
  };
138
138
 
139
139
  export const HelperText = {
140
- render: (args) =>
140
+ render: () =>
141
141
  html` <ic-search-bar
142
142
  label="What is your favourite coffee?"
143
143
  helper-text="Some helper text"
@@ -168,7 +168,7 @@ export const HelperText = {
168
168
  };
169
169
 
170
170
  export const Small = {
171
- render: (args) =>
171
+ render: () =>
172
172
  html` <ic-search-bar
173
173
  label="What is your favourite coffee?"
174
174
  size="small"
@@ -178,7 +178,7 @@ export const Small = {
178
178
  };
179
179
 
180
180
  export const HiddenLabel = {
181
- render: (args) =>
181
+ render: () =>
182
182
  html` <ic-search-bar
183
183
  label="What is your favourite coffee?"
184
184
  hide-label
@@ -188,7 +188,7 @@ export const HiddenLabel = {
188
188
  };
189
189
 
190
190
  export const Disabled = {
191
- render: (args) =>
191
+ render: () =>
192
192
  html` <ic-search-bar
193
193
  label="What is your favourite coffee?"
194
194
  disabled
@@ -198,7 +198,7 @@ export const Disabled = {
198
198
  };
199
199
 
200
200
  export const FullWidth = {
201
- render: (args) =>
201
+ render: () =>
202
202
  html` <ic-search-bar
203
203
  label="What is your favourite coffee?"
204
204
  full-width
@@ -224,7 +224,7 @@ export const FullWidth = {
224
224
  };
225
225
 
226
226
  export const ExternalFiltering = {
227
- render: (args) =>
227
+ render: () =>
228
228
  html` <ic-search-bar
229
229
  label="Search for coffee"
230
230
  placeholder="Type to search"
@@ -288,7 +288,7 @@ export const ExternalFiltering = {
288
288
  };
289
289
 
290
290
  export const ExternalFilteringWithLoading = {
291
- render: (args) =>
291
+ render: () =>
292
292
  html` <ic-search-bar
293
293
  label="Search for coffee"
294
294
  placeholder="Type to search"
@@ -356,7 +356,7 @@ export const ExternalFilteringWithLoading = {
356
356
  };
357
357
 
358
358
  export const ExternalFilteringWithCustomLoadingMessages = {
359
- render: (args) =>
359
+ render: () =>
360
360
  html` <ic-search-bar
361
361
  label="Search for coffee"
362
362
  placeholder="Type to search"
@@ -426,7 +426,7 @@ export const ExternalFilteringWithCustomLoadingMessages = {
426
426
  };
427
427
 
428
428
  export const QuerySearchMode = {
429
- render: (args) =>
429
+ render: () =>
430
430
  html` <ic-search-bar
431
431
  label="What is your favourite coffee?"
432
432
  search-mode="query"
@@ -447,7 +447,7 @@ export const QuerySearchMode = {
447
447
  };
448
448
 
449
449
  export const EmptyOptionListText = {
450
- render: (args) =>
450
+ render: () =>
451
451
  html` <ic-search-bar
452
452
  label="What is your favourite coffee?"
453
453
  empty-option-list-text="There's nothing here"
@@ -468,7 +468,7 @@ export const EmptyOptionListText = {
468
468
  };
469
469
 
470
470
  export const CharactersUntilSuggestion = {
471
- render: (args) =>
471
+ render: () =>
472
472
  html` <ic-search-bar
473
473
  label="What is your favourite coffee?"
474
474
  characters-until-suggestion="5"
@@ -489,7 +489,7 @@ export const CharactersUntilSuggestion = {
489
489
  };
490
490
 
491
491
  export const HintText = {
492
- render: (args) =>
492
+ render: () =>
493
493
  html` <ic-search-bar
494
494
  label="What is your favourite coffee?"
495
495
  assistive-hint-text="You can use up and down arrows to navigate the options when they are available, and press enter to select an option."
@@ -511,7 +511,7 @@ export const HintText = {
511
511
  };
512
512
 
513
513
  export const LongOptionLabels = {
514
- render: (args) =>
514
+ render: () =>
515
515
  html` <ic-search-bar label="What is your favourite coffee?"></ic-search-bar>
516
516
  <script>
517
517
  document.querySelector("ic-search-bar").options = [