@ukic/web-components 2.21.0 → 2.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -1
  3. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-checkbox.cjs.entry.js +18 -5
  7. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +5 -7
  11. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-stepper.cjs.entry.js +29 -8
  24. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-tab-context.cjs.entry.js +8 -0
  26. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-toast.cjs.entry.js +6 -0
  29. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -2
  33. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  34. package/dist/cjs/loader.cjs.js +1 -1
  35. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +10 -0
  36. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +1 -0
  37. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  38. package/dist/collection/components/ic-button/ic-button.css +42 -171
  39. package/dist/collection/components/ic-checkbox/ic-checkbox.js +61 -8
  40. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  41. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +61 -2
  42. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  43. package/dist/collection/components/ic-dialog/ic-dialog.css +10 -5
  44. package/dist/collection/components/ic-input-label/ic-input-label.css +11 -0
  45. package/dist/collection/components/ic-menu/ic-menu.css +1 -0
  46. package/dist/collection/components/ic-menu/ic-menu.js +4 -6
  47. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  48. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -1
  49. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -0
  50. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  51. package/dist/collection/components/ic-radio-option/ic-radio-option.js +1 -1
  52. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  53. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  54. package/dist/collection/components/ic-section-container/ic-section-container.js +1 -1
  55. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  56. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +4 -0
  57. package/dist/collection/components/ic-step/ic-step.css +13 -0
  58. package/dist/collection/components/ic-stepper/ic-stepper.js +34 -8
  59. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  60. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +26 -0
  61. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  62. package/dist/collection/components/ic-tab/ic-tab.css +2 -0
  63. package/dist/collection/components/ic-tab-context/ic-tab-context.js +10 -0
  64. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  65. package/dist/collection/components/ic-toast/ic-toast.js +9 -0
  66. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  67. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +5 -0
  68. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +3 -1
  69. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  70. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +3 -1
  71. package/dist/components/ic-back-to-top.js +2 -1
  72. package/dist/components/ic-back-to-top.js.map +1 -1
  73. package/dist/components/ic-button2.js +1 -1
  74. package/dist/components/ic-button2.js.map +1 -1
  75. package/dist/components/ic-checkbox.js +25 -7
  76. package/dist/components/ic-checkbox.js.map +1 -1
  77. package/dist/components/ic-dialog.js +1 -1
  78. package/dist/components/ic-dialog.js.map +1 -1
  79. package/dist/components/ic-input-label2.js.map +1 -1
  80. package/dist/components/ic-menu2.js +5 -7
  81. package/dist/components/ic-menu2.js.map +1 -1
  82. package/dist/components/ic-navigation-item.js +1 -1
  83. package/dist/components/ic-navigation-item.js.map +1 -1
  84. package/dist/components/ic-radio-option.js +1 -1
  85. package/dist/components/ic-radio-option.js.map +1 -1
  86. package/dist/components/ic-search-bar.js.map +1 -1
  87. package/dist/components/ic-section-container2.js +1 -1
  88. package/dist/components/ic-section-container2.js.map +1 -1
  89. package/dist/components/ic-side-navigation.js +1 -1
  90. package/dist/components/ic-side-navigation.js.map +1 -1
  91. package/dist/components/ic-step.js.map +1 -1
  92. package/dist/components/ic-stepper.js +32 -8
  93. package/dist/components/ic-stepper.js.map +1 -1
  94. package/dist/components/ic-tab-context.js +9 -0
  95. package/dist/components/ic-tab-context.js.map +1 -1
  96. package/dist/components/ic-tab.js.map +1 -1
  97. package/dist/components/ic-toast.js +9 -1
  98. package/dist/components/ic-toast.js.map +1 -1
  99. package/dist/components/ic-toggle-button-group.js +1 -1
  100. package/dist/components/ic-toggle-button-group.js.map +1 -1
  101. package/dist/components/ic-toggle-button.js +4 -2
  102. package/dist/components/ic-toggle-button.js.map +1 -1
  103. package/dist/core/core.esm.js +1 -1
  104. package/dist/core/core.esm.js.map +1 -1
  105. package/dist/core/{p-af5e3bab.entry.js → p-1c228028.entry.js} +2 -2
  106. package/dist/core/{p-af5e3bab.entry.js.map → p-1c228028.entry.js.map} +1 -1
  107. package/dist/core/{p-4a0acd0f.entry.js → p-244d38ed.entry.js} +2 -2
  108. package/dist/core/{p-4a0acd0f.entry.js.map → p-244d38ed.entry.js.map} +1 -1
  109. package/dist/core/p-26793ea2.entry.js +2 -0
  110. package/dist/core/p-26793ea2.entry.js.map +1 -0
  111. package/dist/core/p-4522e5c0.entry.js.map +1 -1
  112. package/dist/core/p-687af4e5.entry.js.map +1 -1
  113. package/dist/core/{p-de40b0b1.entry.js → p-69fc2feb.entry.js} +2 -2
  114. package/dist/core/p-69fc2feb.entry.js.map +1 -0
  115. package/dist/core/p-7dbd0a9f.entry.js.map +1 -1
  116. package/dist/core/p-9de95c50.entry.js +2 -0
  117. package/dist/core/p-9de95c50.entry.js.map +1 -0
  118. package/dist/core/{p-c6ac1a01.entry.js → p-a2704b98.entry.js} +2 -2
  119. package/dist/core/p-a2704b98.entry.js.map +1 -0
  120. package/dist/core/{p-e9723eaa.entry.js → p-a87d13b3.entry.js} +2 -2
  121. package/dist/core/{p-e9723eaa.entry.js.map → p-a87d13b3.entry.js.map} +1 -1
  122. package/dist/core/{p-6fae929c.entry.js → p-b47021d8.entry.js} +2 -2
  123. package/dist/core/p-b47021d8.entry.js.map +1 -0
  124. package/dist/core/p-bbfe15b5.entry.js +2 -0
  125. package/dist/core/p-bbfe15b5.entry.js.map +1 -0
  126. package/dist/core/p-c59c733e.entry.js +2 -0
  127. package/dist/core/p-c59c733e.entry.js.map +1 -0
  128. package/dist/core/{p-adecaedd.entry.js → p-c698064f.entry.js} +2 -2
  129. package/dist/core/p-c698064f.entry.js.map +1 -0
  130. package/dist/core/p-cf93053d.entry.js +2 -0
  131. package/dist/core/p-cf93053d.entry.js.map +1 -0
  132. package/dist/core/{p-1624f4de.entry.js → p-df0deff0.entry.js} +2 -2
  133. package/dist/core/p-df0deff0.entry.js.map +1 -0
  134. package/dist/core/p-e6a8f0de.entry.js +2 -0
  135. package/dist/core/p-e6a8f0de.entry.js.map +1 -0
  136. package/dist/core/p-e70c6b33.entry.js.map +1 -1
  137. package/dist/esm/core.js +1 -1
  138. package/dist/esm/ic-back-to-top.entry.js +2 -1
  139. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  140. package/dist/esm/ic-button_3.entry.js +1 -1
  141. package/dist/esm/ic-button_3.entry.js.map +1 -1
  142. package/dist/esm/ic-checkbox.entry.js +18 -5
  143. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  144. package/dist/esm/ic-dialog.entry.js +1 -1
  145. package/dist/esm/ic-dialog.entry.js.map +1 -1
  146. package/dist/esm/ic-input-component-container_3.entry.js +5 -7
  147. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  148. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  149. package/dist/esm/ic-navigation-item.entry.js +1 -1
  150. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  151. package/dist/esm/ic-radio-option.entry.js +1 -1
  152. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  153. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  154. package/dist/esm/ic-section-container.entry.js +1 -1
  155. package/dist/esm/ic-section-container.entry.js.map +1 -1
  156. package/dist/esm/ic-side-navigation.entry.js +1 -1
  157. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  158. package/dist/esm/ic-step.entry.js.map +1 -1
  159. package/dist/esm/ic-stepper.entry.js +29 -8
  160. package/dist/esm/ic-stepper.entry.js.map +1 -1
  161. package/dist/esm/ic-tab-context.entry.js +8 -0
  162. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  163. package/dist/esm/ic-tab.entry.js.map +1 -1
  164. package/dist/esm/ic-toast.entry.js +6 -0
  165. package/dist/esm/ic-toast.entry.js.map +1 -1
  166. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  167. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  168. package/dist/esm/ic-toggle-button.entry.js +4 -2
  169. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  170. package/dist/esm/loader.js +1 -1
  171. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +10 -0
  172. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -0
  173. package/dist/types/components/ic-stepper/ic-stepper.d.ts +3 -0
  174. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -0
  175. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -0
  176. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +1 -0
  177. package/dist/types/components.d.ts +16 -0
  178. package/hydrate/index.js +85 -32
  179. package/package.json +2 -2
  180. package/vscode-data.json +8 -0
  181. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js +0 -11
  182. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js.map +0 -1
  183. package/dist/core/p-1624f4de.entry.js.map +0 -1
  184. package/dist/core/p-49cdaddc.entry.js +0 -2
  185. package/dist/core/p-49cdaddc.entry.js.map +0 -1
  186. package/dist/core/p-6fae929c.entry.js.map +0 -1
  187. package/dist/core/p-ad6176a2.entry.js +0 -2
  188. package/dist/core/p-ad6176a2.entry.js.map +0 -1
  189. package/dist/core/p-adecaedd.entry.js.map +0 -1
  190. package/dist/core/p-c6ac1a01.entry.js.map +0 -1
  191. package/dist/core/p-cbba9c7c.entry.js +0 -2
  192. package/dist/core/p-cbba9c7c.entry.js.map +0 -1
  193. package/dist/core/p-d3f10067.entry.js +0 -2
  194. package/dist/core/p-d3f10067.entry.js.map +0 -1
  195. package/dist/core/p-dae27567.entry.js +0 -2
  196. package/dist/core/p-dae27567.entry.js.map +0 -1
  197. package/dist/core/p-de40b0b1.entry.js.map +0 -1
  198. package/dist/core/p-fe702898.entry.js +0 -2
  199. package/dist/core/p-fe702898.entry.js.map +0 -1
  200. package/dist/types/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.d.ts +0 -1
@@ -489,8 +489,6 @@ video {
489
489
  }
490
490
 
491
491
  .button:focus,
492
- :host .button:focus,
493
- :host(.light) .button:focus,
494
492
  ::slotted(a:focus) {
495
493
  box-shadow: var(--ic-border-focus);
496
494
  }
@@ -558,6 +556,7 @@ video {
558
556
 
559
557
  :host(.top-icon) .button {
560
558
  flex-direction: column;
559
+
561
560
  --height: fit-content;
562
561
  }
563
562
 
@@ -571,42 +570,19 @@ video {
571
570
 
572
571
  :host(.button-variant-primary) .button,
573
572
  :host(.button-variant-primary) ::slotted(a) {
574
- color: var(--ic-architectural-white);
573
+ color: var(--ic-color-white-text);
575
574
  background-color: var(--button-default);
576
575
  }
577
576
 
578
- :host(.button-variant-primary) .button:hover:not(:focus) {
579
- background-color: var(--button-default-hover);
580
- }
581
-
582
- :host(.button-variant-primary) .button:hover:focus {
577
+ :host(.button-variant-primary) .button:hover {
583
578
  background-color: var(--button-default-hover);
584
- border-color: var(--button-default-hover);
585
- }
586
-
587
- :host(.button-variant-primary:not(.light)) .button:hover:focus,
588
- :host(.button-variant-primary:not(.light)) ::slotted(a:hover:focus) {
589
- color: var(--ic-architectural-white);
590
- }
591
-
592
- :host(.button-variant-primary) .button:active:not(:focus),
593
- :host(.button-variant-primary.loading) .button {
594
- background-color: var(--button-default-active);
595
- }
596
-
597
- :host(.button-variant-primary) .button:active:focus {
598
- background-color: var(--button-default-active);
599
579
  }
600
580
 
581
+ :host(.button-variant-primary.loading) .button,
601
582
  :host(.button-variant-primary) .button:active {
602
583
  background-color: var(--button-default-active);
603
584
  }
604
585
 
605
- :host(.button-variant-primary:not(.light)) .button:active,
606
- :host(.button-variant-primary:not(.light)) ::slotted(a:active) {
607
- color: var(--ic-architectural-white);
608
- }
609
-
610
586
  :host(.button-variant-primary.disabled) .button,
611
587
  :host(.button-variant-primary.disabled) ::slotted(a) {
612
588
  background: var(--ic-architectural-200);
@@ -627,26 +603,15 @@ video {
627
603
  color: var(--button-default);
628
604
  }
629
605
 
630
- :host(.button-variant-secondary) .button:hover:not(:focus),
631
- :host(.button-variant-secondary) .button:hover:focus,
632
- :host(.button-variant-secondary) ::slotted(a:hover:not(:focus)),
633
- :host(.button-variant-secondary) ::slotted(a:hover:focus) {
606
+ :host(.button-variant-secondary) .button:hover,
607
+ :host(.button-variant-secondary) ::slotted(a:hover) {
634
608
  background-color: var(--button-default-background-hover);
635
609
  border-color: var(--button-default-hover);
636
610
  color: var(--button-default-hover);
637
611
  }
638
612
 
639
- :host(.button-variant-secondary) .button:active:not(:focus),
640
- :host(.button-variant-secondary) .button:active:focus,
641
613
  :host(.button-variant-secondary) .button:active,
642
- :host(.button-variant-secondary) ::slotted(a:active:not(:focus)),
643
- :host(.button-variant-secondary) ::slotted(a:active:focus),
644
- :host(.button-variant-secondary) ::slotted(a:active) {
645
- border-color: var(--button-default-active);
646
- background-color: var(--button-default-background-active);
647
- color: var(--button-default-active);
648
- }
649
-
614
+ :host(.button-variant-secondary) ::slotted(a:active),
650
615
  :host(.button-variant-secondary.loading) .button {
651
616
  border-color: var(--button-default-active);
652
617
  background-color: var(--button-default-background-active);
@@ -654,25 +619,16 @@ video {
654
619
  }
655
620
 
656
621
  :host(.button-variant-secondary.disabled) .button,
657
- :host(.button-variant-secondary.disabled) .button:hover,
658
- :host(.button-variant-secondary.disabled) .button:active,
659
- :host(.button-variant-secondary.disabled) ::slotted(a),
660
- :host(.button-variant-secondary.disabled) ::slotted(a:hover),
661
- :host(.button-variant-secondary.disabled) ::slotted(a:active) {
622
+ :host(.button-variant-secondary.disabled) ::slotted(a) {
662
623
  border-color: var(--ic-architectural-300);
663
624
  color: var(--ic-architectural-300);
664
625
  background: none;
665
626
  }
666
627
 
667
628
  :host(.button-variant-secondary.light.disabled) .button,
668
- :host(.button-variant-secondary.light.disabled) .button:hover,
669
- :host(.button-variant-secondary.light.disabled) .button:active,
670
- :host(.button-variant-secondary.light.disabled) ::slotted(a),
671
- :host(.button-variant-secondary.light.disabled) ::slotted(a:hover),
672
- :host(.button-variant-secondary.light.disabled) ::slotted(a:active) {
629
+ :host(.button-variant-secondary.light.disabled) ::slotted(a) {
673
630
  border-color: var(--ic-architectural-500);
674
631
  color: var(--ic-architectural-500);
675
- background: none;
676
632
  }
677
633
 
678
634
  /* Tertiary */
@@ -682,19 +638,13 @@ video {
682
638
  color: var(--button-default);
683
639
  }
684
640
 
685
- :host(.button-variant-tertiary) .button:hover:not(:focus),
686
- :host(.button-variant-tertiary) .button:hover:focus,
687
- :host(.button-variant-tertiary) ::slotted(a:hover:not(:focus)),
688
- :host(.button-variant-tertiary) ::slotted(a:hover:focus) {
641
+ :host(.button-variant-tertiary) .button:hover,
642
+ :host(.button-variant-tertiary) ::slotted(a:hover) {
689
643
  background-color: var(--button-default-background-hover);
690
644
  color: var(--button-default-hover);
691
645
  }
692
646
 
693
- :host(.button-variant-tertiary) .button:active:not(:focus),
694
- :host(.button-variant-tertiary) .button:active:focus,
695
647
  :host(.button-variant-tertiary) .button:active,
696
- :host(.button-variant-tertiary) ::slotted(a:active:not(:focus)),
697
- :host(.button-variant-tertiary) ::slotted(a:active:focus),
698
648
  :host(.button-variant-tertiary) ::slotted(a:active),
699
649
  :host(.button-variant-tertiary.loading) .button {
700
650
  background-color: var(--button-default-background-active);
@@ -702,43 +652,30 @@ video {
702
652
  }
703
653
 
704
654
  :host(.button-variant-tertiary.disabled) .button,
705
- :host(.button-variant-tertiary.disabled) .button:hover,
706
- :host(.button-variant-tertiary.disabled) .button:active,
707
- :host(.button-variant-tertiary.disabled) ::slotted(a),
708
- :host(.button-variant-tertiary.disabled) ::slotted(a:hover),
709
- :host(.button-variant-tertiary.disabled) ::slotted(a:active) {
710
- border-color: var(--ic-architectural-300);
655
+ :host(.button-variant-tertiary.disabled) ::slotted(a) {
711
656
  color: var(--ic-architectural-300);
712
657
  background: none;
713
658
  }
714
659
 
715
660
  :host(.button-variant-tertiary.light.disabled) .button,
716
- :host(.button-variant-tertiary.light.disabled) .button:hover,
717
- :host(.button-variant-tertiary.light.disabled) .button:active,
718
- :host(.button-variant-tertiary.light.disabled) ::slotted(a),
719
- :host(.button-variant-tertiary.light.disabled) ::slotted(a:hover),
720
- :host(.button-variant-tertiary.light.disabled) ::slotted(a:active) {
721
- border-color: var(--ic-architectural-500);
661
+ :host(.button-variant-tertiary.light.disabled) ::slotted(a) {
722
662
  color: var(--ic-architectural-500);
723
- background: none;
724
663
  }
725
664
 
726
665
  /* Destructive */
727
666
 
728
667
  :host(.button-variant-destructive) .button,
729
668
  :host(.button-variant-destructive) ::slotted(a) {
730
- color: var(--ic-architectural-white);
669
+ color: var(--ic-color-white-text);
731
670
  background-color: var(--ic-action-destructive);
732
671
  text-transform: uppercase;
733
672
  }
734
673
 
735
- :host(.button-variant-destructive) .button:hover:not(:focus),
736
- :host(.button-variant-destructive) .button:hover:focus {
674
+ :host(.button-variant-destructive) .button:hover {
737
675
  background-color: var(--ic-action-destructive-hover);
738
676
  }
739
677
 
740
- :host(.button-variant-destructive) .button:active:not(:focus),
741
- :host(.button-variant-destructive) .button:active:focus,
678
+ :host(.button-variant-destructive) .button:active,
742
679
  :host(.button-variant-destructive.loading) .button {
743
680
  background-color: var(--ic-action-destructive-active);
744
681
  }
@@ -764,10 +701,8 @@ video {
764
701
  height: var(--ic-space-lg) !important;
765
702
  }
766
703
 
767
- :host(.button-variant-icon) .button:hover:not(:focus),
768
- :host(.button-variant-icon) .button:hover:focus,
769
- :host(.button-variant-icon) ::slotted(a:hover:not(:focus)),
770
- :host(.button-variant-icon) ::slotted(a:hover:focus) {
704
+ :host(.button-variant-icon) .button:hover,
705
+ :host(.button-variant-icon) ::slotted(a:hover) {
771
706
  background-color: var(--button-default-background-hover);
772
707
  color: var(--button-default-hover);
773
708
  }
@@ -780,11 +715,7 @@ video {
780
715
  }
781
716
 
782
717
  :host(.button-variant-icon.disabled) .button,
783
- :host(.button-variant-icon.disabled) .button:hover,
784
- :host(.button-variant-icon.disabled) .button:active,
785
- :host(.button-variant-icon.disabled) ::slotted(a),
786
- :host(.button-variant-icon.disabled) ::slotted(a:hover),
787
- :host(.button-variant-icon.disabled) ::slotted(a:active) {
718
+ :host(.button-variant-icon.disabled) ::slotted(a) {
788
719
  color: var(--ic-architectural-300);
789
720
  background: none;
790
721
  }
@@ -797,7 +728,7 @@ video {
797
728
 
798
729
  :host(.button-variant-icon-primary) .button,
799
730
  :host(.button-variant-icon-primary) ::slotted(a) {
800
- color: var(--ic-architectural-white);
731
+ color: var(--ic-color-white-text);
801
732
  background-color: var(--button-default);
802
733
  min-width: 0;
803
734
  gap: var(--ic-space-xs);
@@ -809,21 +740,12 @@ video {
809
740
  height: var(--ic-space-lg) !important;
810
741
  }
811
742
 
812
- :host(.button-variant-icon-primary) .button:hover:not(:focus),
813
- :host(.button-variant-icon-primary) ::slotted(a:hover:not(:focus)) {
743
+ :host(.button-variant-icon-primary) .button:hover,
744
+ :host(.button-variant-icon-primary) ::slotted(a:hover) {
814
745
  background-color: var(--button-default-hover);
815
746
  }
816
- :host(.button-variant-icon-primary) .button:hover:focus,
817
- :host(.button-variant-icon-primary) ::slotted(a:hover:focus) {
818
- background-color: var(--button-default-hover);
819
- border-color: var(--button-default-hover);
820
- }
821
747
 
822
- :host(.button-variant-icon-primary) .button:active:not(:focus),
823
- :host(.button-variant-icon-primary) .button:active:focus,
824
748
  :host(.button-variant-icon-primary) .button:active,
825
- :host(.button-variant-icon-primary) ::slotted(a:active:not(:focus)),
826
- :host(.button-variant-icon-primary) ::slotted(a:active:focus),
827
749
  :host(.button-variant-icon-primary) ::slotted(a:active),
828
750
  :host(.button-variant-icon-primary.loading) .button {
829
751
  background: var(--button-default-active);
@@ -833,17 +755,8 @@ video {
833
755
  --inner-color: var(--ic-architectural-white);
834
756
  }
835
757
 
836
- :host(.button-variant-icon-primary:not(.light)) .button:active,
837
- :host(.button-variant-icon-primary:not(.light)) ::slotted(a:active) {
838
- color: var(--ic-architectural-white);
839
- }
840
-
841
758
  :host(.button-variant-icon-primary.disabled) .button,
842
- :host(.button-variant-icon-primary.disabled) .button:hover,
843
- :host(.button-variant-icon-primary.disabled) .button:active,
844
- :host(.button-variant-icon-primary.disabled) ::slotted(a),
845
- :host(.button-variant-icon-primary.disabled) ::slotted(a:hover),
846
- :host(.button-variant-icon-primary.disabled) ::slotted(a:active) {
759
+ :host(.button-variant-icon-primary.disabled) ::slotted(a) {
847
760
  color: var(--ic-architectural-300);
848
761
  background: var(--ic-architectural-200);
849
762
  }
@@ -853,11 +766,6 @@ video {
853
766
  color: var(--ic-color-primary-text);
854
767
  }
855
768
 
856
- :host(.button-variant-icon-primary.light) .button,
857
- :host(.button-variant-icon-primary.light) ::slotted(a) {
858
- color: var(--ic-color-primary-text);
859
- }
860
-
861
769
  :host(.button-variant-icon-primary.light) .button:hover,
862
770
  :host(.button-variant-icon-primary.light) ::slotted(a:hover) {
863
771
  background: var(--ic-action-light-hover);
@@ -867,12 +775,7 @@ video {
867
775
  :host(.button-variant-icon-primary.light) ::slotted(a:active),
868
776
  :host(.button-variant-icon-primary.light.loading) .button,
869
777
  :host(.button-variant-icon-primary.light.loading) ::slotted(a) {
870
- background: var(--ic-architectural-300);
871
- }
872
-
873
- :host(.button-variant-icon-primary.dark) .button,
874
- :host(.button-variant-icon-primary.dark) ::slotted(a) {
875
- color: var(--ic-architectural-white);
778
+ background: var(--ic-action-light-active);
876
779
  }
877
780
 
878
781
  :host(.button-variant-icon-primary.dark) .button:hover,
@@ -903,29 +806,18 @@ video {
903
806
  height: var(--ic-space-lg) !important;
904
807
  }
905
808
 
906
- :host(.button-variant-icon-secondary) .button:hover:not(:focus),
907
- :host(.button-variant-icon-secondary) ::slotted(a:hover:not(:focus)),
908
- :host(.button-variant-icon-secondary) .button:hover:focus,
909
- :host(.button-variant-icon-secondary) ::slotted(a:hover:focus) {
809
+ :host(.button-variant-icon-secondary) .button:hover,
810
+ :host(.button-variant-icon-secondary) ::slotted(a:hover) {
910
811
  background-color: var(--button-default-background-hover);
911
812
  border-color: var(--button-default-hover);
912
813
  color: var(--button-default-hover);
913
814
  }
914
815
 
915
- :host(.button-variant-icon-secondary) .button:active:not(:focus),
916
- :host(.button-variant-icon-secondary) .button:active:focus,
917
816
  :host(.button-variant-icon-secondary) .button:active,
918
- :host(.button-variant-icon-secondary) ::slotted(a:active:not(:focus)),
919
- :host(.button-variant-icon-secondary) ::slotted(a:active:focus),
920
- :host(.button-variant-icon-secondary) ::slotted(a:active) {
921
- border-color: var(--button-default-active);
922
- background-color: var(--button-default-background-active);
923
- color: var(--button-default-active);
924
- }
925
-
817
+ :host(.button-variant-icon-secondary) ::slotted(a:active),
926
818
  :host(.button-variant-icon-secondary.loading) .button {
927
819
  border-color: var(--button-default-active);
928
- background: var(--button-default-background-active);
820
+ background-color: var(--button-default-background-active);
929
821
  color: var(--button-default-active);
930
822
  }
931
823
 
@@ -948,7 +840,6 @@ video {
948
840
  :host(.button-variant-icon-secondary.light.disabled) ::slotted(a:active) {
949
841
  border-color: var(--ic-architectural-500);
950
842
  color: var(--ic-architectural-500);
951
- background: none;
952
843
  }
953
844
 
954
845
  /* Icon-tertiary */
@@ -966,19 +857,13 @@ video {
966
857
  height: var(--ic-space-lg) !important;
967
858
  }
968
859
 
969
- :host(.button-variant-icon-tertiary) .button:hover:not(:focus),
970
- :host(.button-variant-icon-tertiary) .button:hover:focus,
971
- :host(.button-variant-icon-tertiary) ::slotted(a:hover:not(:focus)),
972
- :host(.button-variant-icon-tertiary) ::slotted(a:hover:focus) {
860
+ :host(.button-variant-icon-tertiary) .button:hover,
861
+ :host(.button-variant-icon-tertiary) ::slotted(a:hover) {
973
862
  background-color: var(--button-default-background-hover);
974
863
  color: var(--button-default-hover);
975
864
  }
976
865
 
977
- :host(.button-variant-icon-tertiary) .button:active:not(:focus),
978
- :host(.button-variant-icon-tertiary) .button:active:focus,
979
866
  :host(.button-variant-icon-tertiary) .button:active,
980
- :host(.button-variant-icon-tertiary) ::slotted(a:active:not(:focus)),
981
- :host(.button-variant-icon-tertiary) ::slotted(a:active:focus),
982
867
  :host(.button-variant-icon-tertiary) ::slotted(a:active),
983
868
  :host(.button-variant-icon-tertiary.loading) .button {
984
869
  background-color: var(--button-default-background-active);
@@ -999,7 +884,7 @@ video {
999
884
 
1000
885
  :host(.button-variant-icon-destructive) .button,
1001
886
  :host(.button-variant-icon-destructive) ::slotted(a) {
1002
- color: var(--ic-architectural-white);
887
+ color: var(--ic-color-white-text);
1003
888
  background-color: var(--ic-action-destructive);
1004
889
  min-width: 0;
1005
890
  gap: var(--ic-space-xs);
@@ -1011,16 +896,13 @@ video {
1011
896
  height: var(--ic-space-lg) !important;
1012
897
  }
1013
898
 
1014
- :host(.button-variant-icon-destructive) .button:hover:not(:focus),
1015
- :host(.button-variant-icon-destructive) .button:hover:focus,
1016
- :host(.button-variant-icon-destructive) ::slotted(a:hover:not(:focus)),
1017
- :host(.button-variant-icon-destructive) ::slotted(a:hover:focus) {
899
+ :host(.button-variant-icon-destructive) .button:hover,
900
+ :host(.button-variant-icon-destructive) ::slotted(a:hover) {
1018
901
  background-color: var(--ic-action-destructive-hover);
1019
902
  }
1020
903
 
1021
- :host(.button-variant-icon-destructive) .button:active:not(:focus),
1022
- :host(.button-variant-icon-destructive) .button:active:focus,
1023
- :host(.button-variant-icon-destructive) ::slotted(a:active:not(:focus)),
904
+ :host(.button-variant-icon-destructive) .button:active,
905
+ :host(.button-variant-icon-destructive) ::slotted(a:active),
1024
906
  :host(.button-variant-icon-destructive.loading) .button {
1025
907
  background-color: var(--ic-action-destructive-active);
1026
908
  }
@@ -1282,14 +1164,11 @@ slot[name="router-item"]::slotted(a) {
1282
1164
  background-color: var(--button-default) !important;
1283
1165
  }
1284
1166
 
1285
- :host(.button-variant-primary) ::slotted(a:hover:not(:focus)),
1286
- :host(.button-variant-primary) ::slotted(a:hover:focus) {
1167
+ :host(.button-variant-primary) ::slotted(a:hover) {
1287
1168
  background-color: var(--button-default-hover) !important;
1288
1169
  }
1289
1170
 
1290
- :host(.button-variant-primary) ::slotted(a:active:not(:focus)),
1291
- :host(.button-variant-primary) ::slotted(a:active),
1292
- :host(.button-variant-primary) ::sloted(a:active:focus) {
1171
+ :host(.button-variant-primary) ::slotted(a:active) {
1293
1172
  background-color: var(--button-default-active) !important;
1294
1173
  }
1295
1174
 
@@ -1306,14 +1185,11 @@ slot[name="router-item"]::slotted(a) {
1306
1185
  border: var(--ic-border-width) solid var(--button-default) !important;
1307
1186
  }
1308
1187
 
1309
- :host(.button-variant-secondary) ::slotted(a:hover:not(:focus)),
1310
- :host(.button-variant-secondary) ::slotted(a:hover:focus) {
1188
+ :host(.button-variant-secondary) ::slotted(a:hover) {
1311
1189
  background-color: var(--button-default-background-hover) !important;
1312
1190
  border-color: var(--button-default-hover) !important;
1313
1191
  }
1314
1192
 
1315
- :host(.button-variant-secondary) ::slotted(a:active:not(:focus)),
1316
- :host(.button-variant-secondary) ::slotted(a:active:focus),
1317
1193
  :host(.button-variant-secondary) ::slotted(a:active) {
1318
1194
  border-color: var(--button-default-active) !important;
1319
1195
  background-color: var(--button-default-background-active) !important;
@@ -1336,13 +1212,10 @@ slot[name="router-item"]::slotted(a) {
1336
1212
  :host(.button-variant-tertiary.light.disabled) ::slotted(a:hover),
1337
1213
  :host(.button-variant-tertiary.light.disabled) ::slotted(a:active) {
1338
1214
  border-color: var(--ic-architectural-500) !important;
1339
- background: none !important;
1340
1215
  }
1341
1216
 
1342
- :host(.button-variant-tertiary) ::slotted(a:hover:not(:focus)),
1343
- :host(.button-variant-tertiary) ::slotted(a:hover:focus),
1344
- :host(.button-variant-icon) ::slotted(a:hover:not(:focus)),
1345
- :host(.button-variant-icon) ::slotted(a:hover:focus) {
1217
+ :host(.button-variant-tertiary) ::slotted(a:hover),
1218
+ :host(.button-variant-icon) ::slotted(a:hover) {
1346
1219
  background-color: var(--button-default-background-hover) !important;
1347
1220
  }
1348
1221
 
@@ -1363,13 +1236,11 @@ slot[name="router-item"]::slotted(a) {
1363
1236
  background-color: var(--ic-action-destructive) !important;
1364
1237
  }
1365
1238
 
1366
- :host(.button-variant-destructive) ::slotted(a:hover:not(:focus)),
1367
- :host(.button-variant-destructive) ::slotted(a:hover:focus) {
1239
+ :host(.button-variant-destructive) ::slotted(a:hover) {
1368
1240
  background-color: var(--ic-action-destructive-hover) !important;
1369
1241
  }
1370
1242
 
1371
- :host(.button-variant-destructive) ::slotted(a:active:not(:focus)),
1372
- :host(.button-variant-destructive) ::slotted(a:active:focus) {
1243
+ :host(.button-variant-destructive) ::slotted(a:active) {
1373
1244
  background-color: var(--ic-action-destructive-active) !important;
1374
1245
  }
1375
1246
 
@@ -8,6 +8,9 @@ export class Checkbox {
8
8
  constructor() {
9
9
  this.handleClick = () => {
10
10
  this.checked = !this.checked;
11
+ this.displayIndeterminate = this.nativeIndeterminateBehaviour
12
+ ? false
13
+ : this.indeterminate && this.checked;
11
14
  this.icCheck.emit();
12
15
  this.checkboxChecked.emit();
13
16
  };
@@ -27,11 +30,19 @@ export class Checkbox {
27
30
  this.formtarget = undefined;
28
31
  this.groupLabel = undefined;
29
32
  this.indeterminate = false;
33
+ this.displayIndeterminate = this.indeterminate;
30
34
  this.label = undefined;
31
35
  this.name = undefined;
36
+ this.nativeIndeterminateBehaviour = false;
32
37
  this.size = undefined;
33
38
  this.small = false;
34
39
  this.value = undefined;
40
+ this.hideLabel = false;
41
+ }
42
+ watchIndeterminateHandler() {
43
+ this.displayIndeterminate = this.nativeIndeterminateBehaviour
44
+ ? this.indeterminate
45
+ : this.indeterminate && this.checked;
35
46
  }
36
47
  componentWillLoad() {
37
48
  removeDisabledFalse(this.disabled, this.el);
@@ -76,7 +87,7 @@ export class Checkbox {
76
87
  (_a = this.el.shadowRoot.querySelector(".checkbox")) === null || _a === void 0 ? void 0 : _a.focus();
77
88
  }
78
89
  render() {
79
- const { additionalFieldDisplay, checked, disabled, dynamicText, el, form, formaction, formenctype, formmethod, formnovalidate, formtarget, indeterminate, groupLabel, label, name, size, small, value, } = this;
90
+ const { additionalFieldDisplay, checked, disabled, dynamicText, el, form, formaction, formenctype, formmethod, formnovalidate, formtarget, displayIndeterminate, groupLabel, label, name, size, small, value, } = this;
80
91
  const id = `ic-checkbox-${isPropDefined(label) || value}-${groupLabel}`.replace(/ /g, "-");
81
92
  const parentElementSize = el.parentElement
82
93
  .size;
@@ -87,12 +98,11 @@ export class Checkbox {
87
98
  disabled,
88
99
  small,
89
100
  [`${size || parentElementSize}`]: true,
90
- } }, h("div", { class: "container" }, checked &&
91
- (!indeterminate ? (h("svg", { class: "checkmark", width: "1.5rem", height: "1.5rem", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", "fill-rule": "evenodd", "clip-rule": "evenodd" }, h("title", null, "checkmark icon"), h("path", { d: "M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z" }))) : (h("div", { class: "indeterminate-symbol" }))), h("input", { role: "checkbox", class: {
101
+ } }, h("div", { class: "container" }, displayIndeterminate && h("div", { class: "indeterminate-symbol" }), !displayIndeterminate && checked && (h("svg", { class: "checkmark", width: "1.5rem", height: "1.5rem", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", "fill-rule": "evenodd", "clip-rule": "evenodd" }, h("title", null, "checkmark icon"), h("path", { d: "M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z" }))), h("input", { role: "checkbox", class: {
92
102
  checkbox: true,
93
103
  checked,
94
- indeterminate,
95
- }, type: "checkbox", name: name, id: id, value: value, disabled: disabled ? true : null, checked: checked, indeterminate: indeterminate, onClick: this.handleClick, form: form, formaction: formaction, formenctype: formenctype, formmethod: formmethod, formnovalidate: formnovalidate, formtarget: formtarget }), h("ic-typography", { class: "checkbox-label", variant: "body" }, h("label", { htmlFor: id }, label))), isSlotUsed(el, "additional-field") && (h("div", { class: "dynamic-container", ref: (el) => (this.additionalFieldContainer = el) }, additionalFieldDisplay === "dynamic" && (h("div", { class: "branch-corner" })), h("div", null, additionalFieldDisplay === "dynamic" && (h("ic-typography", { variant: "caption" }, h("p", { class: "dynamic-text", "aria-live": "polite" }, dynamicText))), h("div", { class: {
104
+ indeterminate: displayIndeterminate,
105
+ }, type: "checkbox", name: name, id: id, value: value, disabled: disabled ? true : null, checked: checked, indeterminate: displayIndeterminate, onClick: this.handleClick, form: form, formaction: formaction, formenctype: formenctype, formmethod: formmethod, formnovalidate: formnovalidate, formtarget: formtarget, "aria-label": this.hideLabel ? this.label : undefined }), !this.hideLabel && (h("ic-typography", { class: "checkbox-label", variant: "body" }, h("label", { htmlFor: id }, label)))), isSlotUsed(el, "additional-field") && (h("div", { class: "dynamic-container", ref: (el) => (this.additionalFieldContainer = el) }, additionalFieldDisplay === "dynamic" && (h("div", { class: "branch-corner" })), h("div", null, additionalFieldDisplay === "dynamic" && (h("ic-typography", { variant: "caption" }, h("p", { class: "dynamic-text", "aria-live": "polite" }, dynamicText))), h("div", { class: {
96
106
  "additional-field-wrapper": additionalFieldDisplay === "static",
97
107
  } }, h("slot", { name: "additional-field" })))))));
98
108
  }
@@ -293,7 +303,7 @@ export class Checkbox {
293
303
  },
294
304
  "groupLabel": {
295
305
  "type": "string",
296
- "mutable": false,
306
+ "mutable": true,
297
307
  "complexType": {
298
308
  "original": "string",
299
309
  "resolved": "string",
@@ -345,7 +355,7 @@ export class Checkbox {
345
355
  },
346
356
  "name": {
347
357
  "type": "string",
348
- "mutable": false,
358
+ "mutable": true,
349
359
  "complexType": {
350
360
  "original": "string",
351
361
  "resolved": "string",
@@ -360,6 +370,24 @@ export class Checkbox {
360
370
  "attribute": "name",
361
371
  "reflect": false
362
372
  },
373
+ "nativeIndeterminateBehaviour": {
374
+ "type": "boolean",
375
+ "mutable": false,
376
+ "complexType": {
377
+ "original": "boolean",
378
+ "resolved": "boolean",
379
+ "references": {}
380
+ },
381
+ "required": false,
382
+ "optional": false,
383
+ "docs": {
384
+ "tags": [],
385
+ "text": "If `true`, the checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state."
386
+ },
387
+ "attribute": "native-indeterminate-behaviour",
388
+ "reflect": false,
389
+ "defaultValue": "false"
390
+ },
363
391
  "size": {
364
392
  "type": "string",
365
393
  "mutable": false,
@@ -420,12 +448,31 @@ export class Checkbox {
420
448
  },
421
449
  "attribute": "value",
422
450
  "reflect": false
451
+ },
452
+ "hideLabel": {
453
+ "type": "boolean",
454
+ "mutable": false,
455
+ "complexType": {
456
+ "original": "boolean",
457
+ "resolved": "boolean",
458
+ "references": {}
459
+ },
460
+ "required": false,
461
+ "optional": false,
462
+ "docs": {
463
+ "tags": [],
464
+ "text": "If `true`, the label will be hidden and the required label value will be applied as an aria-label."
465
+ },
466
+ "attribute": "hide-label",
467
+ "reflect": false,
468
+ "defaultValue": "false"
423
469
  }
424
470
  };
425
471
  }
426
472
  static get states() {
427
473
  return {
428
- "initiallyChecked": {}
474
+ "initiallyChecked": {},
475
+ "displayIndeterminate": {}
429
476
  };
430
477
  }
431
478
  static get events() {
@@ -490,5 +537,11 @@ export class Checkbox {
490
537
  };
491
538
  }
492
539
  static get elementRef() { return "el"; }
540
+ static get watchers() {
541
+ return [{
542
+ "propName": "indeterminate",
543
+ "methodName": "watchIndeterminateHandler"
544
+ }];
545
+ }
493
546
  }
494
547
  //# sourceMappingURL=ic-checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-checkbox.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox/ic-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n} from \"@stencil/core\";\nimport { IcAdditionalFieldTypes, IcSizes } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n removeHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n */\n@Component({\n tag: \"ic-checkbox\",\n styleUrl: \"ic-checkbox.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n private additionalFieldContainer: HTMLDivElement;\n\n @Element() el: HTMLIcCheckboxElement;\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 checkbox will be set to the checked state.\n */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The text to be displayed when dynamic.\n */\n\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the checkbox with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the checkbox. It overrides the action attribute of the checkbox's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the checkbox's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * The group label for the checkbox.\n */\n @Prop() groupLabel: string;\n\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n @Prop() indeterminate: boolean = false;\n\n /**\n * The label for the checkbox.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\n */\n @Prop() name: string;\n\n /**\n * The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\n */\n @Prop() size?: IcSizes;\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * The value for the checkbox.\n */\n @Prop() value!: string;\n\n /**\n * @deprecated This event should not be used anymore. Use icCheck instead.\n */\n @Event() checkboxChecked: EventEmitter<void>;\n\n /**\n * Emitted when a checkbox has been checked.\n */\n @Event() icCheck: EventEmitter<void>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n addFormResetListener(this.el, this.handleFormReset);\n\n const checkboxGroup = this.el.parentElement as HTMLIcCheckboxGroupElement;\n if (checkboxGroup) {\n if (!this.name) this.name = checkboxGroup.name;\n this.groupLabel = checkboxGroup.label;\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.value, propName: \"value\" },\n ],\n \"Checkbox\"\n );\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.el.querySelector(\"ic-text-field\");\n if (!this.checked) {\n textfield?.setAttribute(\"disabled\", \"\");\n } else {\n textfield?.removeAttribute(\"disabled\");\n }\n } else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n /**\n * Sets focus on the checkbox.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot.querySelector<HTMLElement>(\".checkbox\")?.focus();\n }\n\n private handleClick = () => {\n this.checked = !this.checked;\n this.icCheck.emit();\n this.checkboxChecked.emit();\n };\n\n private handleFormReset = (): void => {\n this.checked = this.initiallyChecked;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n checked,\n disabled,\n dynamicText,\n el,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n indeterminate,\n groupLabel,\n label,\n name,\n size,\n small,\n value,\n } = this;\n\n const id = `ic-checkbox-${\n isPropDefined(label) || value\n }-${groupLabel}`.replace(/ /g, \"-\");\n\n const parentElementSize = (el.parentElement as HTMLIcCheckboxGroupElement)\n .size;\n\n checked\n ? renderHiddenInput(true, el, name, checked && value, disabled)\n : removeHiddenInput(el);\n\n return (\n <Host\n class={{\n disabled,\n small,\n [`${size || parentElementSize}`]: true,\n }}\n >\n <div class=\"container\">\n {checked &&\n (!indeterminate ? (\n <svg\n class=\"checkmark\"\n width=\"1.5rem\"\n height=\"1.5rem\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n >\n <title>checkmark icon</title>\n <path d=\"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" />\n </svg>\n ) : (\n <div class=\"indeterminate-symbol\" />\n ))}\n <input\n role=\"checkbox\"\n class={{\n checkbox: true,\n checked,\n indeterminate,\n }}\n type=\"checkbox\"\n name={name}\n id={id}\n value={value}\n disabled={disabled ? true : null}\n checked={checked}\n indeterminate={indeterminate}\n onClick={this.handleClick}\n form={form}\n formaction={formaction}\n formenctype={formenctype}\n formmethod={formmethod}\n formnovalidate={formnovalidate}\n formtarget={formtarget}\n ></input>\n <ic-typography class=\"checkbox-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {isSlotUsed(el, \"additional-field\") && (\n <div\n class=\"dynamic-container\"\n ref={(el) => (this.additionalFieldContainer = el)}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\" aria-live=\"polite\">\n {dynamicText}\n </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-checkbox.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox/ic-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport { IcAdditionalFieldTypes, IcSizes } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n removeHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n */\n@Component({\n tag: \"ic-checkbox\",\n styleUrl: \"ic-checkbox.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n private additionalFieldContainer: HTMLDivElement;\n\n @Element() el: HTMLIcCheckboxElement;\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 checkbox will be set to the checked state.\n */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The text to be displayed when dynamic.\n */\n\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the checkbox with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the checkbox. It overrides the action attribute of the checkbox's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the checkbox's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * The group label for the checkbox.\n */\n @Prop({ mutable: true }) groupLabel: string;\n\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n @Prop() indeterminate: boolean = false;\n @State() displayIndeterminate = this.indeterminate;\n\n @Watch(\"indeterminate\")\n watchIndeterminateHandler(): void {\n this.displayIndeterminate = this.nativeIndeterminateBehaviour\n ? this.indeterminate\n : this.indeterminate && this.checked;\n }\n\n /**\n * The label for the checkbox.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\n */\n @Prop({ mutable: true }) name: string;\n\n /**\n * If `true`, the checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\n */\n @Prop() nativeIndeterminateBehaviour: boolean = false;\n\n /**\n * The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\n */\n @Prop() size?: IcSizes;\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * The value for the checkbox.\n */\n @Prop() value!: string;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * @deprecated This event should not be used anymore. Use icCheck instead.\n */\n @Event() checkboxChecked: EventEmitter<void>;\n\n /**\n * Emitted when a checkbox has been checked.\n */\n @Event() icCheck: EventEmitter<void>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n addFormResetListener(this.el, this.handleFormReset);\n\n const checkboxGroup = this.el.parentElement as HTMLIcCheckboxGroupElement;\n if (checkboxGroup) {\n if (!this.name) this.name = checkboxGroup.name;\n this.groupLabel = checkboxGroup.label;\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.value, propName: \"value\" },\n ],\n \"Checkbox\"\n );\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.el.querySelector(\"ic-text-field\");\n if (!this.checked) {\n textfield?.setAttribute(\"disabled\", \"\");\n } else {\n textfield?.removeAttribute(\"disabled\");\n }\n } else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n /**\n * Sets focus on the checkbox.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot.querySelector<HTMLElement>(\".checkbox\")?.focus();\n }\n\n private handleClick = () => {\n this.checked = !this.checked;\n this.displayIndeterminate = this.nativeIndeterminateBehaviour\n ? false\n : this.indeterminate && this.checked;\n this.icCheck.emit();\n this.checkboxChecked.emit();\n };\n\n private handleFormReset = (): void => {\n this.checked = this.initiallyChecked;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n checked,\n disabled,\n dynamicText,\n el,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n displayIndeterminate,\n groupLabel,\n label,\n name,\n size,\n small,\n value,\n } = this;\n\n const id = `ic-checkbox-${\n isPropDefined(label) || value\n }-${groupLabel}`.replace(/ /g, \"-\");\n\n const parentElementSize = (el.parentElement as HTMLIcCheckboxGroupElement)\n .size;\n\n checked\n ? renderHiddenInput(true, el, name, checked && value, disabled)\n : removeHiddenInput(el);\n\n return (\n <Host\n class={{\n disabled,\n small,\n [`${size || parentElementSize}`]: true,\n }}\n >\n <div class=\"container\">\n {displayIndeterminate && <div class=\"indeterminate-symbol\" />}\n {!displayIndeterminate && checked && (\n <svg\n class=\"checkmark\"\n width=\"1.5rem\"\n height=\"1.5rem\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n >\n <title>checkmark icon</title>\n <path d=\"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" />\n </svg>\n )}\n <input\n role=\"checkbox\"\n class={{\n checkbox: true,\n checked,\n indeterminate: displayIndeterminate,\n }}\n type=\"checkbox\"\n name={name}\n id={id}\n value={value}\n disabled={disabled ? true : null}\n checked={checked}\n indeterminate={displayIndeterminate}\n onClick={this.handleClick}\n form={form}\n formaction={formaction}\n formenctype={formenctype}\n formmethod={formmethod}\n formnovalidate={formnovalidate}\n formtarget={formtarget}\n aria-label={this.hideLabel ? this.label : undefined}\n ></input>\n {!this.hideLabel && (\n <ic-typography class=\"checkbox-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n )}\n </div>\n {isSlotUsed(el, \"additional-field\") && (\n <div\n class=\"dynamic-container\"\n ref={(el) => (this.additionalFieldContainer = el)}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\" aria-live=\"polite\">\n {dynamicText}\n </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"]}