@ukic/web-components 3.0.0-alpha.4 → 3.0.0-alpha.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (735) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-69219f14.js → helpers-dd569d97.js} +33 -28
  3. package/dist/cjs/helpers-dd569d97.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +8 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +4 -4
  8. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +8 -5
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +3 -3
  12. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +43 -20
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +18 -17
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card-vertical.cjs.entry.js +20 -10
  20. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -1
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -1
  24. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-chip.cjs.entry.js +9 -4
  26. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-divider.cjs.entry.js +3 -3
  31. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-footer-link-group.cjs.entry.js +6 -7
  34. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-footer-link.cjs.entry.js +4 -5
  36. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-footer.cjs.entry.js +7 -8
  38. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-hero.cjs.entry.js +6 -7
  40. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +14 -7
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +22 -25
  44. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-input-label_2.cjs.entry.js +21 -25
  46. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-link.cjs.entry.js +10 -12
  48. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-menu-item.cjs.entry.js +16 -9
  51. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-button.cjs.entry.js +11 -8
  53. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-group.cjs.entry.js +7 -6
  55. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-item.cjs.entry.js +31 -6
  57. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -4
  59. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-page-header.cjs.entry.js +5 -3
  61. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-pagination-item.cjs.entry.js +5 -1
  63. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-pagination.cjs.entry.js +9 -23
  65. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js +6 -6
  67. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-radio-group.cjs.entry.js +9 -1
  69. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -1
  71. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -6
  73. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-select.cjs.entry.js +18 -14
  75. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-side-navigation.cjs.entry.js +14 -10
  77. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-status-tag.cjs.entry.js +5 -4
  79. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  81. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-switch.cjs.entry.js +7 -3
  83. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -19
  85. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  87. package/dist/cjs/ic-tab.cjs.entry.js +5 -2
  88. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-text-field.cjs.entry.js +37 -19
  90. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-theme.cjs.entry.js +20 -20
  92. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  94. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +31 -4
  95. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-toggle-button.cjs.entry.js +15 -6
  97. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-top-navigation.cjs.entry.js +13 -7
  99. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  101. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  102. package/dist/cjs/loader.cjs.js +1 -1
  103. package/dist/collection/components/ic-accordion/ic-accordion.js +10 -1
  104. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  105. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +3 -0
  106. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -1
  107. package/dist/collection/components/ic-alert/ic-alert.css +7 -1
  108. package/dist/collection/components/ic-alert/ic-alert.js +3 -3
  109. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  110. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +1 -1
  111. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
  112. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +5 -2
  113. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +31 -4
  114. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  115. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +14 -0
  116. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +1 -1
  117. package/dist/collection/components/ic-badge/ic-badge.css +3 -3
  118. package/dist/collection/components/ic-badge/ic-badge.js +2 -2
  119. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  120. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +4 -7
  121. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +44 -19
  122. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  123. package/dist/collection/components/ic-button/ic-button.css +693 -416
  124. package/dist/collection/components/ic-button/ic-button.js +62 -43
  125. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  126. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +9 -9
  127. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  128. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +18 -18
  129. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +27 -14
  130. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js.map +1 -1
  131. package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js +10 -0
  132. package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js.map +1 -1
  133. package/dist/collection/components/ic-checkbox/ic-checkbox.js +6 -0
  134. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  135. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +6 -0
  136. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  137. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +3 -0
  138. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  139. package/dist/collection/components/ic-chip/ic-chip.js +27 -2
  140. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  141. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +3 -0
  142. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
  143. package/dist/collection/components/ic-dialog/ic-dialog.css +1 -1
  144. package/dist/collection/components/ic-divider/ic-divider.js +8 -8
  145. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  146. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +4 -4
  147. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +1 -1
  148. package/dist/collection/components/ic-footer/ic-footer.css +2 -2
  149. package/dist/collection/components/ic-footer/ic-footer.js +9 -10
  150. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  151. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +2 -2
  152. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +1 -1
  153. package/dist/collection/components/ic-footer-link/ic-footer-link.js +6 -7
  154. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  155. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +1 -1
  156. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +1 -1
  157. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +4 -0
  158. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +7 -8
  159. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  160. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +1 -1
  161. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -1
  162. package/dist/collection/components/ic-hero/ic-hero.css +9 -9
  163. package/dist/collection/components/ic-hero/ic-hero.js +8 -9
  164. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  165. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +2 -2
  166. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -1
  167. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +0 -4
  168. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +64 -9
  169. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  170. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +43 -0
  171. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +1 -1
  172. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +38 -17
  173. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +22 -40
  174. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  175. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +9 -0
  176. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  177. package/dist/collection/components/ic-input-label/ic-input-label.css +6 -19
  178. package/dist/collection/components/ic-input-label/ic-input-label.js +11 -33
  179. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  180. package/dist/collection/components/ic-input-validation/ic-input-validation.css +9 -4
  181. package/dist/collection/components/ic-input-validation/ic-input-validation.js +7 -7
  182. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  183. package/dist/collection/components/ic-link/ic-link.css +0 -24
  184. package/dist/collection/components/ic-link/ic-link.js +14 -16
  185. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  186. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +3 -3
  187. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
  188. package/dist/collection/components/ic-menu/ic-menu.css +31 -19
  189. package/dist/collection/components/ic-menu/ic-menu.js +4 -4
  190. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  191. package/dist/collection/components/ic-menu-item/ic-menu-item.js +57 -15
  192. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  193. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +14 -1
  194. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
  195. package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +14 -0
  196. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +37 -10
  197. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  198. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +3 -3
  199. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
  200. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +14 -9
  201. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +32 -7
  202. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  203. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +3 -3
  204. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +1 -1
  205. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +28 -26
  206. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +56 -7
  207. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  208. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +3 -3
  209. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +1 -1
  210. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +9 -6
  211. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +27 -2
  212. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  213. package/dist/collection/components/ic-page-header/ic-page-header.css +2 -1
  214. package/dist/collection/components/ic-page-header/ic-page-header.js +27 -1
  215. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  216. package/dist/collection/components/ic-pagination/ic-pagination.js +10 -22
  217. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  218. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +10 -0
  219. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
  220. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +6 -0
  221. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  222. package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js +3 -0
  223. package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js.map +1 -1
  224. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +22 -9
  225. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  226. package/dist/collection/components/ic-radio-group/ic-radio-group.js +8 -0
  227. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  228. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +6 -0
  229. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  230. package/dist/collection/components/ic-radio-option/ic-radio-option.js +6 -0
  231. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  232. package/dist/collection/components/ic-search-bar/ic-search-bar.css +3 -1
  233. package/dist/collection/components/ic-search-bar/ic-search-bar.js +10 -5
  234. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  235. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +4 -1
  236. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -1
  237. package/dist/collection/components/ic-select/ic-select.css +49 -36
  238. package/dist/collection/components/ic-select/ic-select.js +44 -14
  239. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  240. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +10 -0
  241. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  242. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +48 -31
  243. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +16 -12
  244. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  245. package/dist/collection/components/ic-side-navigation/ic-side-navigation.types.js.map +1 -1
  246. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +6 -6
  247. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
  248. package/dist/collection/components/ic-status-tag/ic-status-tag.css +5 -5
  249. package/dist/collection/components/ic-status-tag/ic-status-tag.js +21 -2
  250. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  251. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +15 -32
  252. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -1
  253. package/dist/collection/components/ic-switch/ic-switch.css +3 -0
  254. package/dist/collection/components/ic-switch/ic-switch.js +6 -0
  255. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  256. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +3 -0
  257. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +1 -1
  258. package/dist/collection/components/ic-tab/ic-tab.js +6 -0
  259. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  260. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +16 -0
  261. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +1 -1
  262. package/dist/collection/components/ic-tab-group/ic-tab-group.css +8 -0
  263. package/dist/collection/components/ic-tab-group/ic-tab-group.js +1 -17
  264. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  265. package/dist/collection/components/ic-text-field/ic-text-field.css +60 -9
  266. package/dist/collection/components/ic-text-field/ic-text-field.js +64 -25
  267. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  268. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +26 -12
  269. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  270. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +2 -2
  271. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  272. package/dist/collection/components/ic-theme/ic-theme.js +31 -31
  273. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  274. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +7 -7
  275. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +1 -1
  276. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +11 -11
  277. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +1 -1
  278. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +189 -54
  279. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +62 -32
  280. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  281. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js +10 -0
  282. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js.map +1 -1
  283. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +23 -16
  284. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +79 -27
  285. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  286. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js +121 -0
  287. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js.map +1 -1
  288. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +41 -17
  289. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +39 -9
  290. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  291. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +3 -3
  292. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
  293. package/dist/collection/components/ic-typography/ic-typography.css +4 -6
  294. package/dist/collection/utils/helpers.js +24 -19
  295. package/dist/collection/utils/helpers.js.map +1 -1
  296. package/dist/collection/utils/types.js +6 -6
  297. package/dist/collection/utils/types.js.map +1 -1
  298. package/dist/components/helpers.js +30 -25
  299. package/dist/components/helpers.js.map +1 -1
  300. package/dist/components/ic-accordion.js +9 -1
  301. package/dist/components/ic-accordion.js.map +1 -1
  302. package/dist/components/ic-alert.js +4 -4
  303. package/dist/components/ic-alert.js.map +1 -1
  304. package/dist/components/ic-back-to-top.js +9 -5
  305. package/dist/components/ic-back-to-top.js.map +1 -1
  306. package/dist/components/ic-badge.js +3 -3
  307. package/dist/components/ic-badge.js.map +1 -1
  308. package/dist/components/ic-breadcrumb-group.js +43 -19
  309. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  310. package/dist/components/ic-breadcrumb2.js +1 -1
  311. package/dist/components/ic-breadcrumb2.js.map +1 -1
  312. package/dist/components/ic-button2.js +21 -19
  313. package/dist/components/ic-button2.js.map +1 -1
  314. package/dist/components/ic-card-vertical.js +25 -13
  315. package/dist/components/ic-card-vertical.js.map +1 -1
  316. package/dist/components/ic-checkbox-group.js +5 -0
  317. package/dist/components/ic-checkbox-group.js.map +1 -1
  318. package/dist/components/ic-checkbox.js +5 -0
  319. package/dist/components/ic-checkbox.js.map +1 -1
  320. package/dist/components/ic-chip.js +11 -4
  321. package/dist/components/ic-chip.js.map +1 -1
  322. package/dist/components/ic-dialog.js +1 -1
  323. package/dist/components/ic-dialog.js.map +1 -1
  324. package/dist/components/ic-divider2.js +4 -4
  325. package/dist/components/ic-divider2.js.map +1 -1
  326. package/dist/components/ic-footer-link-group.js +7 -8
  327. package/dist/components/ic-footer-link-group.js.map +1 -1
  328. package/dist/components/ic-footer-link.js +5 -6
  329. package/dist/components/ic-footer-link.js.map +1 -1
  330. package/dist/components/ic-footer.js +8 -9
  331. package/dist/components/ic-footer.js.map +1 -1
  332. package/dist/components/ic-hero.js +7 -8
  333. package/dist/components/ic-hero.js.map +1 -1
  334. package/dist/components/ic-horizontal-scroll2.js +16 -7
  335. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  336. package/dist/components/ic-input-component-container2.js +21 -23
  337. package/dist/components/ic-input-component-container2.js.map +1 -1
  338. package/dist/components/ic-input-label2.js +12 -17
  339. package/dist/components/ic-input-label2.js.map +1 -1
  340. package/dist/components/ic-input-validation2.js +8 -8
  341. package/dist/components/ic-input-validation2.js.map +1 -1
  342. package/dist/components/ic-link2.js +13 -15
  343. package/dist/components/ic-link2.js.map +1 -1
  344. package/dist/components/ic-menu-item2.js +20 -11
  345. package/dist/components/ic-menu-item2.js.map +1 -1
  346. package/dist/components/ic-menu2.js +4 -4
  347. package/dist/components/ic-menu2.js.map +1 -1
  348. package/dist/components/ic-navigation-button.js +13 -9
  349. package/dist/components/ic-navigation-button.js.map +1 -1
  350. package/dist/components/ic-navigation-group.js +9 -7
  351. package/dist/components/ic-navigation-group.js.map +1 -1
  352. package/dist/components/ic-navigation-item.js +33 -7
  353. package/dist/components/ic-navigation-item.js.map +1 -1
  354. package/dist/components/ic-navigation-menu2.js +6 -4
  355. package/dist/components/ic-navigation-menu2.js.map +1 -1
  356. package/dist/components/ic-page-header.js +5 -2
  357. package/dist/components/ic-page-header.js.map +1 -1
  358. package/dist/components/ic-pagination-item2.js +6 -1
  359. package/dist/components/ic-pagination-item2.js.map +1 -1
  360. package/dist/components/ic-pagination.js +9 -22
  361. package/dist/components/ic-pagination.js.map +1 -1
  362. package/dist/components/ic-popover-menu.js +5 -5
  363. package/dist/components/ic-popover-menu.js.map +1 -1
  364. package/dist/components/ic-radio-group.js +8 -0
  365. package/dist/components/ic-radio-group.js.map +1 -1
  366. package/dist/components/ic-radio-option.js +6 -1
  367. package/dist/components/ic-radio-option.js.map +1 -1
  368. package/dist/components/ic-search-bar.js +11 -6
  369. package/dist/components/ic-search-bar.js.map +1 -1
  370. package/dist/components/ic-select.js +20 -14
  371. package/dist/components/ic-select.js.map +1 -1
  372. package/dist/components/ic-side-navigation.js +15 -11
  373. package/dist/components/ic-side-navigation.js.map +1 -1
  374. package/dist/components/ic-status-tag.js +5 -3
  375. package/dist/components/ic-status-tag.js.map +1 -1
  376. package/dist/components/ic-switch.js +9 -4
  377. package/dist/components/ic-switch.js.map +1 -1
  378. package/dist/components/ic-tab-group.js +2 -18
  379. package/dist/components/ic-tab-group.js.map +1 -1
  380. package/dist/components/ic-tab.js +5 -2
  381. package/dist/components/ic-tab.js.map +1 -1
  382. package/dist/components/ic-text-field2.js +40 -20
  383. package/dist/components/ic-text-field2.js.map +1 -1
  384. package/dist/components/ic-theme.js +22 -22
  385. package/dist/components/ic-theme.js.map +1 -1
  386. package/dist/components/ic-toast.js +1 -1
  387. package/dist/components/ic-toggle-button-group.js +38 -6
  388. package/dist/components/ic-toggle-button-group.js.map +1 -1
  389. package/dist/components/ic-toggle-button.js +20 -8
  390. package/dist/components/ic-toggle-button.js.map +1 -1
  391. package/dist/components/ic-top-navigation.js +15 -8
  392. package/dist/components/ic-top-navigation.js.map +1 -1
  393. package/dist/components/ic-typography2.js +1 -1
  394. package/dist/components/ic-typography2.js.map +1 -1
  395. package/dist/core/core.css +899 -123
  396. package/dist/core/core.esm.js +1 -1
  397. package/dist/core/core.esm.js.map +1 -1
  398. package/dist/core/{p-2ef46ead.entry.js → p-07cd8a50.entry.js} +2 -2
  399. package/dist/core/p-07cd8a50.entry.js.map +1 -0
  400. package/dist/core/p-0821fc5b.entry.js +2 -0
  401. package/dist/core/p-0821fc5b.entry.js.map +1 -0
  402. package/dist/core/p-0b8c3770.entry.js +2 -0
  403. package/dist/core/p-0b8c3770.entry.js.map +1 -0
  404. package/dist/core/p-0d505c1f.entry.js +2 -0
  405. package/dist/core/p-0d505c1f.entry.js.map +1 -0
  406. package/dist/core/p-1234f7a5.entry.js +2 -0
  407. package/dist/core/p-1234f7a5.entry.js.map +1 -0
  408. package/dist/core/{p-c9cf932c.entry.js → p-193582d4.entry.js} +2 -2
  409. package/dist/core/p-193582d4.entry.js.map +1 -0
  410. package/dist/core/p-225384ab.entry.js +2 -0
  411. package/dist/core/p-225384ab.entry.js.map +1 -0
  412. package/dist/core/{p-d93bac01.entry.js → p-3420a999.entry.js} +2 -2
  413. package/dist/core/p-3420a999.entry.js.map +1 -0
  414. package/dist/core/{p-d4a83e25.entry.js → p-3994d86d.entry.js} +2 -2
  415. package/dist/core/p-3994d86d.entry.js.map +1 -0
  416. package/dist/core/p-3bfc4a52.entry.js +2 -0
  417. package/dist/core/p-3bfc4a52.entry.js.map +1 -0
  418. package/dist/core/p-3cfef37a.entry.js +2 -0
  419. package/dist/core/p-3cfef37a.entry.js.map +1 -0
  420. package/dist/core/{p-95f603dd.entry.js → p-406e58af.entry.js} +2 -2
  421. package/dist/core/p-406e58af.entry.js.map +1 -0
  422. package/dist/core/p-48e98730.js +2 -0
  423. package/dist/core/p-48e98730.js.map +1 -0
  424. package/dist/core/{p-5cd016e1.entry.js → p-4af52174.entry.js} +2 -2
  425. package/dist/core/p-4af52174.entry.js.map +1 -0
  426. package/dist/core/{p-f5b2b26d.entry.js → p-4dc48606.entry.js} +2 -2
  427. package/dist/core/{p-7bff1e96.entry.js → p-4f72a02a.entry.js} +2 -2
  428. package/dist/core/p-4f72a02a.entry.js.map +1 -0
  429. package/dist/core/p-518ea375.entry.js +2 -0
  430. package/dist/core/p-518ea375.entry.js.map +1 -0
  431. package/dist/core/p-520c6089.entry.js +2 -0
  432. package/dist/core/p-520c6089.entry.js.map +1 -0
  433. package/dist/core/p-580b1593.entry.js +2 -0
  434. package/dist/core/p-580b1593.entry.js.map +1 -0
  435. package/dist/core/p-59800237.entry.js +2 -0
  436. package/dist/core/p-59800237.entry.js.map +1 -0
  437. package/dist/core/{p-acbd15ab.entry.js → p-5ba8e679.entry.js} +2 -2
  438. package/dist/core/p-5ba8e679.entry.js.map +1 -0
  439. package/dist/core/p-5d417fc0.entry.js +2 -0
  440. package/dist/core/p-5d417fc0.entry.js.map +1 -0
  441. package/dist/core/{p-922984cb.entry.js → p-5d653608.entry.js} +2 -2
  442. package/dist/core/p-61510f00.entry.js +2 -0
  443. package/dist/core/p-61510f00.entry.js.map +1 -0
  444. package/dist/core/p-6159b077.entry.js +2 -0
  445. package/dist/core/p-6159b077.entry.js.map +1 -0
  446. package/dist/core/p-6859019c.entry.js +2 -0
  447. package/dist/core/p-6859019c.entry.js.map +1 -0
  448. package/dist/core/p-705db6a5.entry.js +2 -0
  449. package/dist/core/p-705db6a5.entry.js.map +1 -0
  450. package/dist/core/{p-7b35de65.entry.js → p-7124b387.entry.js} +2 -2
  451. package/dist/core/p-810744b5.entry.js +2 -0
  452. package/dist/core/p-810744b5.entry.js.map +1 -0
  453. package/dist/core/p-810f5a2d.entry.js +2 -0
  454. package/dist/core/p-810f5a2d.entry.js.map +1 -0
  455. package/dist/core/p-8a2670c1.entry.js +2 -0
  456. package/dist/core/p-8a2670c1.entry.js.map +1 -0
  457. package/dist/core/{p-29767574.entry.js → p-91c1327d.entry.js} +2 -2
  458. package/dist/core/p-98dbbb34.entry.js +2 -0
  459. package/dist/core/p-98dbbb34.entry.js.map +1 -0
  460. package/dist/core/p-9c1d4f72.entry.js +2 -0
  461. package/dist/core/p-9c1d4f72.entry.js.map +1 -0
  462. package/dist/core/{p-428f95f8.entry.js → p-a23c515d.entry.js} +2 -2
  463. package/dist/core/p-a23c515d.entry.js.map +1 -0
  464. package/dist/core/p-a24bcf5f.entry.js +2 -0
  465. package/dist/core/p-a24bcf5f.entry.js.map +1 -0
  466. package/dist/core/p-aefebee9.entry.js +2 -0
  467. package/dist/core/p-aefebee9.entry.js.map +1 -0
  468. package/dist/core/{p-806a0fab.entry.js → p-b27dfa1b.entry.js} +2 -2
  469. package/dist/core/{p-690c5e80.entry.js → p-b2a41070.entry.js} +2 -2
  470. package/dist/core/{p-ef78bebc.entry.js → p-b51e378c.entry.js} +2 -2
  471. package/dist/core/p-b51e378c.entry.js.map +1 -0
  472. package/dist/core/{p-a9341313.entry.js → p-b5439baa.entry.js} +2 -2
  473. package/dist/core/p-b9aa801f.entry.js +2 -0
  474. package/dist/core/p-b9aa801f.entry.js.map +1 -0
  475. package/dist/core/{p-4a3b1f06.entry.js → p-bc7b8a1e.entry.js} +2 -2
  476. package/dist/core/p-bc7b8a1e.entry.js.map +1 -0
  477. package/dist/core/{p-cedc375e.entry.js → p-c2b359d9.entry.js} +2 -2
  478. package/dist/core/p-c2b359d9.entry.js.map +1 -0
  479. package/dist/core/{p-ee6dd94c.entry.js → p-c67f7603.entry.js} +2 -2
  480. package/dist/core/p-c6e91e13.entry.js +2 -0
  481. package/dist/core/p-c6e91e13.entry.js.map +1 -0
  482. package/dist/core/p-c83e933c.entry.js +2 -0
  483. package/dist/core/p-c83e933c.entry.js.map +1 -0
  484. package/dist/core/p-ca27ab19.entry.js +2 -0
  485. package/dist/core/p-ca27ab19.entry.js.map +1 -0
  486. package/dist/core/p-cfe32b37.entry.js +2 -0
  487. package/dist/core/p-cfe32b37.entry.js.map +1 -0
  488. package/dist/core/p-d2909711.entry.js +2 -0
  489. package/dist/core/p-d2909711.entry.js.map +1 -0
  490. package/dist/core/p-da85eaf6.entry.js +2 -0
  491. package/dist/core/p-da85eaf6.entry.js.map +1 -0
  492. package/dist/core/p-dcb2073d.entry.js +2 -0
  493. package/dist/core/p-dcb2073d.entry.js.map +1 -0
  494. package/dist/core/{p-705eb610.entry.js → p-ded2dbed.entry.js} +2 -2
  495. package/dist/core/p-ded2dbed.entry.js.map +1 -0
  496. package/dist/core/p-f42c0469.entry.js +2 -0
  497. package/dist/core/p-f42c0469.entry.js.map +1 -0
  498. package/dist/esm/core.js +1 -1
  499. package/dist/esm/{helpers-e8797e8d.js → helpers-e594bfc6.js} +31 -26
  500. package/dist/esm/helpers-e594bfc6.js.map +1 -0
  501. package/dist/esm/ic-accordion-group.entry.js +1 -1
  502. package/dist/esm/ic-accordion.entry.js +8 -1
  503. package/dist/esm/ic-accordion.entry.js.map +1 -1
  504. package/dist/esm/ic-alert.entry.js +4 -4
  505. package/dist/esm/ic-alert.entry.js.map +1 -1
  506. package/dist/esm/ic-back-to-top.entry.js +9 -6
  507. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  508. package/dist/esm/ic-badge.entry.js +3 -3
  509. package/dist/esm/ic-badge.entry.js.map +1 -1
  510. package/dist/esm/ic-breadcrumb-group.entry.js +43 -20
  511. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  512. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  513. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  514. package/dist/esm/ic-button_3.entry.js +18 -17
  515. package/dist/esm/ic-button_3.entry.js.map +1 -1
  516. package/dist/esm/ic-card-vertical.entry.js +20 -10
  517. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  518. package/dist/esm/ic-checkbox-group.entry.js +5 -1
  519. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  520. package/dist/esm/ic-checkbox.entry.js +5 -1
  521. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  522. package/dist/esm/ic-chip.entry.js +9 -4
  523. package/dist/esm/ic-chip.entry.js.map +1 -1
  524. package/dist/esm/ic-data-row.entry.js +1 -1
  525. package/dist/esm/ic-dialog.entry.js +2 -2
  526. package/dist/esm/ic-dialog.entry.js.map +1 -1
  527. package/dist/esm/ic-divider.entry.js +3 -3
  528. package/dist/esm/ic-divider.entry.js.map +1 -1
  529. package/dist/esm/ic-empty-state.entry.js +1 -1
  530. package/dist/esm/ic-footer-link-group.entry.js +6 -7
  531. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  532. package/dist/esm/ic-footer-link.entry.js +4 -5
  533. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  534. package/dist/esm/ic-footer.entry.js +7 -8
  535. package/dist/esm/ic-footer.entry.js.map +1 -1
  536. package/dist/esm/ic-hero.entry.js +6 -7
  537. package/dist/esm/ic-hero.entry.js.map +1 -1
  538. package/dist/esm/ic-horizontal-scroll.entry.js +14 -7
  539. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  540. package/dist/esm/ic-input-component-container_3.entry.js +22 -25
  541. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  542. package/dist/esm/ic-input-label_2.entry.js +21 -25
  543. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  544. package/dist/esm/ic-link.entry.js +10 -12
  545. package/dist/esm/ic-link.entry.js.map +1 -1
  546. package/dist/esm/ic-menu-group.entry.js +1 -1
  547. package/dist/esm/ic-menu-item.entry.js +16 -9
  548. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  549. package/dist/esm/ic-navigation-button.entry.js +11 -8
  550. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  551. package/dist/esm/ic-navigation-group.entry.js +7 -6
  552. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  553. package/dist/esm/ic-navigation-item.entry.js +31 -6
  554. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  555. package/dist/esm/ic-navigation-menu.entry.js +5 -4
  556. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  557. package/dist/esm/ic-page-header.entry.js +5 -3
  558. package/dist/esm/ic-page-header.entry.js.map +1 -1
  559. package/dist/esm/ic-pagination-item.entry.js +5 -1
  560. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  561. package/dist/esm/ic-pagination.entry.js +9 -23
  562. package/dist/esm/ic-pagination.entry.js.map +1 -1
  563. package/dist/esm/ic-popover-menu.entry.js +6 -6
  564. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  565. package/dist/esm/ic-radio-group.entry.js +9 -1
  566. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  567. package/dist/esm/ic-radio-option.entry.js +5 -1
  568. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  569. package/dist/esm/ic-search-bar.entry.js +10 -6
  570. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  571. package/dist/esm/ic-select.entry.js +18 -14
  572. package/dist/esm/ic-select.entry.js.map +1 -1
  573. package/dist/esm/ic-side-navigation.entry.js +14 -10
  574. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  575. package/dist/esm/ic-status-tag.entry.js +5 -4
  576. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  577. package/dist/esm/ic-step.entry.js +1 -1
  578. package/dist/esm/ic-stepper.entry.js +1 -1
  579. package/dist/esm/ic-switch.entry.js +7 -3
  580. package/dist/esm/ic-switch.entry.js.map +1 -1
  581. package/dist/esm/ic-tab-group.entry.js +3 -19
  582. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  583. package/dist/esm/ic-tab-panel.entry.js +1 -1
  584. package/dist/esm/ic-tab.entry.js +5 -2
  585. package/dist/esm/ic-tab.entry.js.map +1 -1
  586. package/dist/esm/ic-text-field.entry.js +37 -19
  587. package/dist/esm/ic-text-field.entry.js.map +1 -1
  588. package/dist/esm/ic-theme.entry.js +20 -20
  589. package/dist/esm/ic-theme.entry.js.map +1 -1
  590. package/dist/esm/ic-toast.entry.js +1 -1
  591. package/dist/esm/ic-toggle-button-group.entry.js +31 -4
  592. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  593. package/dist/esm/ic-toggle-button.entry.js +15 -6
  594. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  595. package/dist/esm/ic-top-navigation.entry.js +13 -7
  596. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  597. package/dist/esm/ic-typography.entry.js +2 -2
  598. package/dist/esm/ic-typography.entry.js.map +1 -1
  599. package/dist/esm/loader.js +1 -1
  600. package/dist/types/components/ic-accordion/ic-accordion.d.ts +2 -0
  601. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +5 -0
  602. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +1 -0
  603. package/dist/types/components/ic-button/ic-button.d.ts +10 -6
  604. package/dist/types/components/ic-card-vertical/ic-card-vertical.d.ts +4 -3
  605. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +1 -0
  606. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
  607. package/dist/types/components/ic-chip/ic-chip.d.ts +5 -0
  608. package/dist/types/components/ic-divider/ic-divider.d.ts +4 -4
  609. package/dist/types/components/ic-footer/ic-footer.d.ts +3 -3
  610. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +3 -3
  611. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +3 -3
  612. package/dist/types/components/ic-hero/ic-hero.d.ts +3 -3
  613. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +8 -2
  614. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +2 -4
  615. package/dist/types/components/ic-input-label/ic-input-label.d.ts +0 -4
  616. package/dist/types/components/ic-link/ic-link.d.ts +2 -2
  617. package/dist/types/components/ic-menu/ic-menu.d.ts +1 -1
  618. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +11 -4
  619. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +7 -3
  620. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +7 -3
  621. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +9 -3
  622. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +5 -0
  623. package/dist/types/components/ic-page-header/ic-page-header.d.ts +5 -1
  624. package/dist/types/components/ic-pagination/ic-pagination.d.ts +1 -4
  625. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +1 -0
  626. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +3 -6
  627. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +1 -0
  628. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +1 -0
  629. package/dist/types/components/ic-select/ic-select.d.ts +7 -2
  630. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +3 -3
  631. package/dist/types/components/ic-side-navigation/ic-side-navigation.types.d.ts +2 -2
  632. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +4 -0
  633. package/dist/types/components/ic-switch/ic-switch.d.ts +1 -0
  634. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -0
  635. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -4
  636. package/dist/types/components/ic-text-field/ic-text-field.d.ts +10 -3
  637. package/dist/types/components/ic-theme/ic-theme.d.ts +8 -8
  638. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +10 -5
  639. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +12 -5
  640. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +7 -3
  641. package/dist/types/components.d.ts +180 -68
  642. package/dist/types/utils/helpers.d.ts +12 -8
  643. package/dist/types/utils/types.d.ts +5 -5
  644. package/hydrate/index.js +536 -362
  645. package/package.json +4 -2
  646. package/vscode-data.json +211 -76
  647. package/dist/cjs/helpers-69219f14.js.map +0 -1
  648. package/dist/core/p-13d5875c.entry.js +0 -2
  649. package/dist/core/p-13d5875c.entry.js.map +0 -1
  650. package/dist/core/p-19872973.entry.js +0 -2
  651. package/dist/core/p-19872973.entry.js.map +0 -1
  652. package/dist/core/p-2140431c.entry.js +0 -2
  653. package/dist/core/p-2140431c.entry.js.map +0 -1
  654. package/dist/core/p-2e909738.entry.js +0 -2
  655. package/dist/core/p-2e909738.entry.js.map +0 -1
  656. package/dist/core/p-2eae9b27.entry.js +0 -2
  657. package/dist/core/p-2eae9b27.entry.js.map +0 -1
  658. package/dist/core/p-2ef46ead.entry.js.map +0 -1
  659. package/dist/core/p-37dea10d.entry.js +0 -2
  660. package/dist/core/p-37dea10d.entry.js.map +0 -1
  661. package/dist/core/p-3d9726a3.entry.js +0 -2
  662. package/dist/core/p-3d9726a3.entry.js.map +0 -1
  663. package/dist/core/p-428f95f8.entry.js.map +0 -1
  664. package/dist/core/p-4973c563.entry.js +0 -2
  665. package/dist/core/p-4973c563.entry.js.map +0 -1
  666. package/dist/core/p-4a3b1f06.entry.js.map +0 -1
  667. package/dist/core/p-5cd016e1.entry.js.map +0 -1
  668. package/dist/core/p-5ef8e106.entry.js +0 -2
  669. package/dist/core/p-5ef8e106.entry.js.map +0 -1
  670. package/dist/core/p-5f4a6555.entry.js +0 -2
  671. package/dist/core/p-5f4a6555.entry.js.map +0 -1
  672. package/dist/core/p-605c0c92.entry.js +0 -2
  673. package/dist/core/p-605c0c92.entry.js.map +0 -1
  674. package/dist/core/p-655a9e0f.entry.js +0 -2
  675. package/dist/core/p-655a9e0f.entry.js.map +0 -1
  676. package/dist/core/p-65a16de9.entry.js +0 -2
  677. package/dist/core/p-65a16de9.entry.js.map +0 -1
  678. package/dist/core/p-705eb610.entry.js.map +0 -1
  679. package/dist/core/p-76263187.entry.js +0 -2
  680. package/dist/core/p-76263187.entry.js.map +0 -1
  681. package/dist/core/p-78c1f1cc.entry.js +0 -2
  682. package/dist/core/p-78c1f1cc.entry.js.map +0 -1
  683. package/dist/core/p-79d0be03.entry.js +0 -2
  684. package/dist/core/p-79d0be03.entry.js.map +0 -1
  685. package/dist/core/p-7bff1e96.entry.js.map +0 -1
  686. package/dist/core/p-85173458.entry.js +0 -2
  687. package/dist/core/p-85173458.entry.js.map +0 -1
  688. package/dist/core/p-95f603dd.entry.js.map +0 -1
  689. package/dist/core/p-979c2792.entry.js +0 -2
  690. package/dist/core/p-979c2792.entry.js.map +0 -1
  691. package/dist/core/p-97fb2bdf.entry.js +0 -2
  692. package/dist/core/p-97fb2bdf.entry.js.map +0 -1
  693. package/dist/core/p-9ec7f96c.entry.js +0 -2
  694. package/dist/core/p-9ec7f96c.entry.js.map +0 -1
  695. package/dist/core/p-9fa93dfe.entry.js +0 -2
  696. package/dist/core/p-9fa93dfe.entry.js.map +0 -1
  697. package/dist/core/p-acbd15ab.entry.js.map +0 -1
  698. package/dist/core/p-ae0775aa.entry.js +0 -2
  699. package/dist/core/p-ae0775aa.entry.js.map +0 -1
  700. package/dist/core/p-b7eb8ef9.js +0 -2
  701. package/dist/core/p-b7eb8ef9.js.map +0 -1
  702. package/dist/core/p-ba6ecc15.entry.js +0 -2
  703. package/dist/core/p-ba6ecc15.entry.js.map +0 -1
  704. package/dist/core/p-bbeb03ef.entry.js +0 -2
  705. package/dist/core/p-bbeb03ef.entry.js.map +0 -1
  706. package/dist/core/p-c0fc3d02.entry.js +0 -2
  707. package/dist/core/p-c0fc3d02.entry.js.map +0 -1
  708. package/dist/core/p-c396bd4d.entry.js +0 -2
  709. package/dist/core/p-c396bd4d.entry.js.map +0 -1
  710. package/dist/core/p-c9cf932c.entry.js.map +0 -1
  711. package/dist/core/p-cedc375e.entry.js.map +0 -1
  712. package/dist/core/p-d4a83e25.entry.js.map +0 -1
  713. package/dist/core/p-d93bac01.entry.js.map +0 -1
  714. package/dist/core/p-eb3b4935.entry.js +0 -2
  715. package/dist/core/p-eb3b4935.entry.js.map +0 -1
  716. package/dist/core/p-ebafab37.entry.js +0 -2
  717. package/dist/core/p-ebafab37.entry.js.map +0 -1
  718. package/dist/core/p-ef78bebc.entry.js.map +0 -1
  719. package/dist/core/p-f0ae2b99.entry.js +0 -2
  720. package/dist/core/p-f0ae2b99.entry.js.map +0 -1
  721. package/dist/core/p-f24984c5.entry.js +0 -2
  722. package/dist/core/p-f24984c5.entry.js.map +0 -1
  723. package/dist/core/p-f71c00ce.entry.js +0 -2
  724. package/dist/core/p-f71c00ce.entry.js.map +0 -1
  725. package/dist/core/p-fdd0b732.entry.js +0 -2
  726. package/dist/core/p-fdd0b732.entry.js.map +0 -1
  727. package/dist/esm/helpers-e8797e8d.js.map +0 -1
  728. /package/dist/core/{p-f5b2b26d.entry.js.map → p-4dc48606.entry.js.map} +0 -0
  729. /package/dist/core/{p-922984cb.entry.js.map → p-5d653608.entry.js.map} +0 -0
  730. /package/dist/core/{p-7b35de65.entry.js.map → p-7124b387.entry.js.map} +0 -0
  731. /package/dist/core/{p-29767574.entry.js.map → p-91c1327d.entry.js.map} +0 -0
  732. /package/dist/core/{p-806a0fab.entry.js.map → p-b27dfa1b.entry.js.map} +0 -0
  733. /package/dist/core/{p-690c5e80.entry.js.map → p-b2a41070.entry.js.map} +0 -0
  734. /package/dist/core/{p-a9341313.entry.js.map → p-b5439baa.entry.js.map} +0 -0
  735. /package/dist/core/{p-ee6dd94c.entry.js.map → p-c67f7603.entry.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { h, forceUpdate, Host, } from "@stencil/core";
2
- import { onComponentRequiredPropUndefined, isSlotUsed, getThemeFromContext, removeDisabledFalse, checkSlotInChildMutations, } from "../../utils/helpers";
3
- import { IcThemeForegroundEnum, } from "../../utils/types";
2
+ import { onComponentRequiredPropUndefined, isSlotUsed, getBrandFromContext, removeDisabledFalse, checkSlotInChildMutations, } from "../../utils/helpers";
3
+ import { IcBrandForegroundEnum, } from "../../utils/types";
4
4
  import chevronIcon from "../../assets/chevron-icon.svg";
5
5
  /**
6
6
  * @slot heading - Content will be placed at the top of the card to the right of the icon.
@@ -44,9 +44,9 @@ export class CardVertical {
44
44
  forceUpdate(this);
45
45
  }
46
46
  };
47
- this.appearance = "default";
48
47
  this.areaExpanded = false;
49
48
  this.isFocussed = false;
49
+ this.monochrome = false;
50
50
  this.parentEl = null;
51
51
  this.parentIsAnchorTag = false;
52
52
  this.clickable = false;
@@ -63,6 +63,9 @@ export class CardVertical {
63
63
  this.target = undefined;
64
64
  this.theme = "inherit";
65
65
  }
66
+ watchDisabledHandler() {
67
+ removeDisabledFalse(this.disabled, this.el);
68
+ }
66
69
  disconnectedCallback() {
67
70
  var _a;
68
71
  if (this.parentIsAnchorTag) {
@@ -96,7 +99,7 @@ export class CardVertical {
96
99
  event.stopImmediatePropagation();
97
100
  }
98
101
  }
99
- themeChangeHandler(ev) {
102
+ brandChangeHandler(ev) {
100
103
  this.updateTheme(ev.detail.mode);
101
104
  }
102
105
  /**
@@ -110,14 +113,18 @@ export class CardVertical {
110
113
  this.el.shadowRoot.querySelector("button").focus();
111
114
  }
112
115
  }
113
- updateTheme(newTheme = null) {
114
- const foregroundColor = getThemeFromContext(this.el, newTheme);
115
- if (foregroundColor !== IcThemeForegroundEnum.Default) {
116
- this.appearance = foregroundColor;
116
+ updateTheme(mode = null) {
117
+ const foregroundColor = getBrandFromContext(this.el, mode);
118
+ if (foregroundColor !== IcBrandForegroundEnum.Default) {
119
+ this.monochrome = true;
120
+ this.theme =
121
+ foregroundColor === IcBrandForegroundEnum.Light
122
+ ? IcBrandForegroundEnum.Dark
123
+ : IcBrandForegroundEnum.Light;
117
124
  }
118
125
  }
119
126
  render() {
120
- const { appearance, clickable, disabled, expandable, fullWidth, heading, isFocussed, message, href, hreflang, parentIsAnchorTag, referrerpolicy, rel, subheading, target, theme, } = this;
127
+ const { clickable, disabled, expandable, fullWidth, heading, isFocussed, message, monochrome, href, hreflang, parentIsAnchorTag, referrerpolicy, rel, subheading, target, theme, } = this;
121
128
  const Component = parentIsAnchorTag || !clickable
122
129
  ? "div"
123
130
  : href === undefined
@@ -138,7 +145,7 @@ export class CardVertical {
138
145
  disabled,
139
146
  fullwidth: fullWidth,
140
147
  focussed: isFocussed,
141
- dark: appearance === IcThemeForegroundEnum.Dark,
148
+ monochrome: monochrome,
142
149
  }, tabindex: clickable && !parentIsAnchorTag ? 0 : null, "aria-disabled": disabled ? "true" : null, disabled: disabled ? true : null }, attrs), isSlotUsed(this.el, "image-top") && (h("div", { class: "image-top" }, h("slot", { name: "image-top" }))), h("div", { class: "card-header" }, isSlotUsed(this.el, "icon") && (h("div", { class: "icon" }, h("slot", { name: "icon" }))), h("div", { class: "card-title" }, h("slot", { name: "heading" }, h("ic-typography", { variant: "h4" }, h("p", null, heading)))), isSlotUsed(this.el, "interaction-button") && (h("div", { class: "interaction-button" }, h("slot", { name: "interaction-button" })))), (subheading || isSlotUsed(this.el, "subheading")) && (h("div", { class: "subheading" }, h("slot", { name: "subheading" }, h("ic-typography", { variant: "subtitle-small" }, subheading)))), isSlotUsed(this.el, "adornment") && (h("div", { class: "adornment" }, h("slot", { name: "adornment" }))), isSlotUsed(this.el, "image-mid") && (h("div", { class: "image-mid" }, h("slot", { name: "image-mid" }))), (message || isSlotUsed(this.el, "message")) && (h("div", { class: "card-message" }, message && (h("ic-typography", { variant: "body" }, message)), isSlotUsed(this.el, "message") && h("slot", { name: "message" }))), (isSlotUsed(this.el, "interaction-controls") || expandable) && (h("div", { class: "interaction-area" }, h("div", { class: "interaction-controls" }, h("slot", { name: "interaction-controls" })), expandable && (h("ic-tooltip", { id: "ic-tooltip-expand-button", label: "Toggle expandable area", silent: true }, h("button", { class: {
143
150
  "toggle-button": true,
144
151
  [`toggle-button-${this.areaExpanded ? "expanded" : "closed"}`]: true,
@@ -375,7 +382,7 @@ export class CardVertical {
375
382
  },
376
383
  "theme": {
377
384
  "type": "string",
378
- "mutable": false,
385
+ "mutable": true,
379
386
  "complexType": {
380
387
  "original": "IcThemeMode",
381
388
  "resolved": "\"dark\" | \"inherit\" | \"light\"",
@@ -401,9 +408,9 @@ export class CardVertical {
401
408
  }
402
409
  static get states() {
403
410
  return {
404
- "appearance": {},
405
411
  "areaExpanded": {},
406
412
  "isFocussed": {},
413
+ "monochrome": {},
407
414
  "parentEl": {},
408
415
  "parentIsAnchorTag": {}
409
416
  };
@@ -430,6 +437,12 @@ export class CardVertical {
430
437
  };
431
438
  }
432
439
  static get elementRef() { return "el"; }
440
+ static get watchers() {
441
+ return [{
442
+ "propName": "disabled",
443
+ "methodName": "watchDisabledHandler"
444
+ }];
445
+ }
433
446
  static get listeners() {
434
447
  return [{
435
448
  "name": "click",
@@ -438,8 +451,8 @@ export class CardVertical {
438
451
  "capture": true,
439
452
  "passive": false
440
453
  }, {
441
- "name": "themeChange",
442
- "method": "themeChangeHandler",
454
+ "name": "brandChange",
455
+ "method": "brandChangeHandler",
443
456
  "target": "document",
444
457
  "capture": false,
445
458
  "passive": false
@@ -1 +1 @@
1
- {"version":3,"file":"ic-card-vertical.js","sourceRoot":"","sources":["../../../src/components/ic-card-vertical/ic-card-vertical.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n forceUpdate,\n Host,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getThemeFromContext,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot heading - Content will be placed at the top of the card to the right of the icon.\n * @slot message - Content will be placed in the main body of the card.\n * @slot subheading - Content will be placed below the card heading.\n * @slot adornment - Content will be placed below the card subheading.\n * @slot image-top - Content will be placed at the top of the card above all other content.\n * @slot image-mid - Content will be placed below the card heading section.\n * @slot icon - Content will be placed to the left of the card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot interaction-controls - Content will be placed below the card message.\n * @slot expanded-content - Content will be placed below the interaction controls but will not initially be rendered.\n * @slot badge - Badge component overlaying the top right of the card.\n */\n@Component({\n tag: \"ic-card-vertical\",\n styleUrl: \"ic-card-vertical.css\",\n shadow: true,\n})\nexport class CardVertical {\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcCardVerticalElement;\n\n @State() appearance?: IcThemeForeground = \"default\";\n @State() areaExpanded: boolean = false;\n @State() isFocussed: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n\n /**\n * If `true`, the card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the card will have an expandable area and expansion toggle button.\n */\n @Prop() expandable?: boolean = false;\n\n /**\n * If `true`, the card will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The heading for the card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable card link points to. If set, the clickable card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the card.\n */\n @Prop() message?: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The subheading for the card.\n */\n @Prop() subheading?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: 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 disconnectedCallback(): void {\n if (this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent<IcTheme>): void {\n this.updateTheme(ev.detail.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n } else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n private toggleExpanded = (): void => {\n this.areaExpanded = !this.areaExpanded;\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, [\n \"message\",\n \"adornment\",\n \"expanded-content\",\n \"image-top\",\n \"image-mid\",\n \"icon\",\n \"interaction-button\",\n \"badge\",\n \"interaction-controls\",\n ])\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n appearance,\n clickable,\n disabled,\n expandable,\n fullWidth,\n heading,\n isFocussed,\n message,\n href,\n hreflang,\n parentIsAnchorTag,\n referrerpolicy,\n rel,\n subheading,\n target,\n theme,\n } = this;\n\n const Component =\n parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <Component\n class={{\n card: true,\n clickable: clickable && !disabled,\n disabled,\n fullwidth: fullWidth,\n focussed: isFocussed,\n dark: appearance === IcThemeForegroundEnum.Dark,\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : null}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled ? true : null}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image-top\") && (\n <div class=\"image-top\">\n <slot name=\"image-top\"></slot>\n </div>\n )}\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"interaction-button\") && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {(subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"image-mid\") && (\n <div class=\"image-mid\">\n <slot name=\"image-mid\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div class=\"card-message\">\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n {(isSlotUsed(this.el, \"interaction-controls\") || expandable) && (\n <div class=\"interaction-area\">\n <div class=\"interaction-controls\">\n <slot name=\"interaction-controls\"></slot>\n </div>\n {expandable && (\n <ic-tooltip\n id=\"ic-tooltip-expand-button\"\n label=\"Toggle expandable area\"\n silent\n >\n <button\n class={{\n \"toggle-button\": true,\n [`toggle-button-${\n this.areaExpanded ? \"expanded\" : \"closed\"\n }`]: true,\n }}\n aria-label=\"Toggle expandable area\"\n aria-expanded={`${this.areaExpanded}`}\n aria-controls={\n this.areaExpanded ? \"expanded-content-area\" : null\n }\n onClick={this.toggleExpanded}\n innerHTML={chevronIcon}\n ></button>\n </ic-tooltip>\n )}\n </div>\n )}\n {isSlotUsed(this.el, \"expanded-content\") && this.areaExpanded && (\n <div class=\"expanded-content\" id=\"expanded-content-area\">\n <slot name=\"expanded-content\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Component>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-card-vertical.js","sourceRoot":"","sources":["../../../src/components/ic-card-vertical/ic-card-vertical.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n forceUpdate,\n Host,\n Watch,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getBrandFromContext,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot heading - Content will be placed at the top of the card to the right of the icon.\n * @slot message - Content will be placed in the main body of the card.\n * @slot subheading - Content will be placed below the card heading.\n * @slot adornment - Content will be placed below the card subheading.\n * @slot image-top - Content will be placed at the top of the card above all other content.\n * @slot image-mid - Content will be placed below the card heading section.\n * @slot icon - Content will be placed to the left of the card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot interaction-controls - Content will be placed below the card message.\n * @slot expanded-content - Content will be placed below the interaction controls but will not initially be rendered.\n * @slot badge - Badge component overlaying the top right of the card.\n */\n@Component({\n tag: \"ic-card-vertical\",\n styleUrl: \"ic-card-vertical.css\",\n shadow: true,\n})\nexport class CardVertical {\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcCardVerticalElement;\n\n @State() areaExpanded: boolean = false;\n @State() isFocussed: boolean = false;\n @State() monochrome: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n\n /**\n * If `true`, the card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the card will have an expandable area and expansion toggle button.\n */\n @Prop() expandable?: boolean = false;\n\n /**\n * If `true`, the card will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The heading for the card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable card link points to. If set, the clickable card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the card.\n */\n @Prop() message?: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The subheading for the card.\n */\n @Prop() subheading?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: 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({ mutable: true }) theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.updateTheme(ev.detail.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n } else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(mode: IcBrandForeground = null): void {\n const foregroundColor = getBrandFromContext(this.el, mode);\n\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.monochrome = true;\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n\n private toggleExpanded = (): void => {\n this.areaExpanded = !this.areaExpanded;\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, [\n \"message\",\n \"adornment\",\n \"expanded-content\",\n \"image-top\",\n \"image-mid\",\n \"icon\",\n \"interaction-button\",\n \"badge\",\n \"interaction-controls\",\n ])\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n clickable,\n disabled,\n expandable,\n fullWidth,\n heading,\n isFocussed,\n message,\n monochrome,\n href,\n hreflang,\n parentIsAnchorTag,\n referrerpolicy,\n rel,\n subheading,\n target,\n theme,\n } = this;\n\n const Component =\n parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <Component\n class={{\n card: true,\n clickable: clickable && !disabled,\n disabled,\n fullwidth: fullWidth,\n focussed: isFocussed,\n monochrome: monochrome,\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : null}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled ? true : null}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image-top\") && (\n <div class=\"image-top\">\n <slot name=\"image-top\"></slot>\n </div>\n )}\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"interaction-button\") && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {(subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"image-mid\") && (\n <div class=\"image-mid\">\n <slot name=\"image-mid\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div class=\"card-message\">\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n {(isSlotUsed(this.el, \"interaction-controls\") || expandable) && (\n <div class=\"interaction-area\">\n <div class=\"interaction-controls\">\n <slot name=\"interaction-controls\"></slot>\n </div>\n {expandable && (\n <ic-tooltip\n id=\"ic-tooltip-expand-button\"\n label=\"Toggle expandable area\"\n silent\n >\n <button\n class={{\n \"toggle-button\": true,\n [`toggle-button-${\n this.areaExpanded ? \"expanded\" : \"closed\"\n }`]: true,\n }}\n aria-label=\"Toggle expandable area\"\n aria-expanded={`${this.areaExpanded}`}\n aria-controls={\n this.areaExpanded ? \"expanded-content-area\" : null\n }\n onClick={this.toggleExpanded}\n innerHTML={chevronIcon}\n ></button>\n </ic-tooltip>\n )}\n </div>\n )}\n {isSlotUsed(this.el, \"expanded-content\") && this.areaExpanded && (\n <div class=\"expanded-content\" id=\"expanded-content-area\">\n <slot name=\"expanded-content\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Component>\n </Host>\n );\n }\n}\n"]}
@@ -36,6 +36,16 @@ describe("ic-card-vertical", () => {
36
36
  });
37
37
  expect(page.root).toMatchSnapshot();
38
38
  });
39
+ it("should correctly remove disabled attribute when setting disabled to false", async () => {
40
+ const page = await newSpecPage({
41
+ components: [CardVertical],
42
+ html: `<ic-card-vertical heading="Card" disabled message="This is a full width card" clickable=true></ic-card-vertical>`,
43
+ });
44
+ expect(page.root).toMatchSnapshot("disabled");
45
+ page.rootInstance.disabled = false;
46
+ await page.waitForChanges();
47
+ expect(page.root).toMatchSnapshot("disabled-removed");
48
+ });
39
49
  it("should apply 'focussed' style when parent is focussed", async () => {
40
50
  const page = await newSpecPage({
41
51
  components: [CardVertical],
@@ -1 +1 @@
1
- {"version":3,"file":"ic-card-vertical.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-card-vertical/test/basic/ic-card-vertical.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { CardVertical } from \"../../ic-card-vertical\";\n\ndescribe(\"ic-card-vertical\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a static card\"></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a button\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a link\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render full width variant\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" full-width=true message=\"This is a full width card\" clickable=true></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a link parent\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<a href=\"/\"><ic-card-vertical heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-vertical></a>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should apply 'focussed' style when parent is focussed\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<a href=\"/\"><ic-card-vertical id=\"test-id\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-vertical></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-id\");\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n });\n\n it(\"should lose 'focussed' style when parent loses focus\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<a href=\"/\"><ic-card-vertical id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-vertical></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-card\");\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n\n await element.blur();\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should stop immediate propagation of a click event when disabled\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true disabled=true onclick=\"alert('test')\"></ic-card-vertical>`,\n });\n\n jest.spyOn(window, \"alert\").mockImplementation();\n\n const element = await document.getElementById(\"test-card\");\n\n element.click();\n\n await page.waitForChanges();\n\n await expect(window.alert).not.toHaveBeenCalled;\n });\n\n it(\"should render with a subheading\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an interaction button\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><ic-button variant=\"primary\" slot=\"interaction-button\">Click here</ic-button></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a top image\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><div slot=\"image-top\">Image placeholder</div></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a middle image\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><div slot=\"image-mid\">Image placeholder</div></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with interaction controls\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><ic-button slot=\"interaction-controls\">Click here</ic-button></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as expandable\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\" expandable></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render content in expanded area\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\" expandable><ic-typography slot=\"expanded-content\">Extra content</ic-typography></ic-card-vertical>`,\n });\n\n page.rootInstance.areaExpanded = true;\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should toggle expanded content when expansion toggle is clicked\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" expandable><ic-typography slot=\"expanded-content\">Expanded</ic-typography></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n page.rootInstance.toggleExpanded();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should call 'setFocus' when card as a button is focused\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card-vertical>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should call 'setFocus' when card as a link is focused\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card-vertical>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should test rendering slotted after initial render\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a static card\"></ic-card-vertical>`,\n });\n\n const icon = document.createElement(\"svg\");\n icon.setAttribute(\"slot\", \"icon\");\n\n const imageMid = document.createElement(\"svg\");\n imageMid.setAttribute(\"slot\", \"image-mid\");\n\n const imageTop = document.createElement(\"svg\");\n imageTop.setAttribute(\"slot\", \"image-top\");\n\n const button = document.createElement(\"button\");\n button.setAttribute(\"slot\", \"interaction-button\");\n\n page.rootInstance.hostMutationCallback([\n {\n type: \"childList\",\n addedNodes: [icon, imageMid, imageTop, button],\n removedNodes: [],\n },\n ]);\n });\n});\n"]}
1
+ {"version":3,"file":"ic-card-vertical.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-card-vertical/test/basic/ic-card-vertical.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { CardVertical } from \"../../ic-card-vertical\";\n\ndescribe(\"ic-card-vertical\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a static card\"></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a button\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a link\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render full width variant\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" full-width=true message=\"This is a full width card\" clickable=true></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a link parent\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<a href=\"/\"><ic-card-vertical heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-vertical></a>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should correctly remove disabled attribute when setting disabled to false\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" disabled message=\"This is a full width card\" clickable=true></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot(\"disabled\");\n\n page.rootInstance.disabled = false;\n\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(\"disabled-removed\");\n });\n\n it(\"should apply 'focussed' style when parent is focussed\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<a href=\"/\"><ic-card-vertical id=\"test-id\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-vertical></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-id\");\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n });\n\n it(\"should lose 'focussed' style when parent loses focus\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<a href=\"/\"><ic-card-vertical id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card-vertical></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-card\");\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n\n await element.blur();\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should stop immediate propagation of a click event when disabled\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true disabled=true onclick=\"alert('test')\"></ic-card-vertical>`,\n });\n\n jest.spyOn(window, \"alert\").mockImplementation();\n\n const element = await document.getElementById(\"test-card\");\n\n element.click();\n\n await page.waitForChanges();\n\n await expect(window.alert).not.toHaveBeenCalled;\n });\n\n it(\"should render with a subheading\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an interaction button\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><ic-button variant=\"primary\" slot=\"interaction-button\">Click here</ic-button></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a top image\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><div slot=\"image-top\">Image placeholder</div></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a middle image\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><div slot=\"image-mid\">Image placeholder</div></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with interaction controls\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><ic-button slot=\"interaction-controls\">Click here</ic-button></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as expandable\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\" expandable></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render content in expanded area\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\" expandable><ic-typography slot=\"expanded-content\">Extra content</ic-typography></ic-card-vertical>`,\n });\n\n page.rootInstance.areaExpanded = true;\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should toggle expanded content when expansion toggle is clicked\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" expandable><ic-typography slot=\"expanded-content\">Expanded</ic-typography></ic-card-vertical>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n page.rootInstance.toggleExpanded();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should call 'setFocus' when card as a button is focused\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card-vertical>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should call 'setFocus' when card as a link is focused\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card-vertical>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should test rendering slotted after initial render\", async () => {\n const page = await newSpecPage({\n components: [CardVertical],\n html: `<ic-card-vertical heading=\"Card\" message=\"This is a static card\"></ic-card-vertical>`,\n });\n\n const icon = document.createElement(\"svg\");\n icon.setAttribute(\"slot\", \"icon\");\n\n const imageMid = document.createElement(\"svg\");\n imageMid.setAttribute(\"slot\", \"image-mid\");\n\n const imageTop = document.createElement(\"svg\");\n imageTop.setAttribute(\"slot\", \"image-top\");\n\n const button = document.createElement(\"button\");\n button.setAttribute(\"slot\", \"interaction-button\");\n\n page.rootInstance.hostMutationCallback([\n {\n type: \"childList\",\n addedNodes: [icon, imageMid, imageTop, button],\n removedNodes: [],\n },\n ]);\n });\n});\n"]}
@@ -33,6 +33,9 @@ export class Checkbox {
33
33
  this.value = undefined;
34
34
  this.hideLabel = false;
35
35
  }
36
+ watchDisabledHandler() {
37
+ removeDisabledFalse(this.disabled, this.el);
38
+ }
36
39
  watchIndeterminateHandler() {
37
40
  this.displayIndeterminate = this.nativeIndeterminateBehaviour
38
41
  ? this.indeterminate
@@ -433,6 +436,9 @@ export class Checkbox {
433
436
  static get elementRef() { return "el"; }
434
437
  static get watchers() {
435
438
  return [{
439
+ "propName": "disabled",
440
+ "methodName": "watchDisabledHandler"
441
+ }, {
436
442
  "propName": "indeterminate",
437
443
  "methodName": "watchIndeterminateHandler"
438
444
  }];
@@ -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 Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcSizes,\n IcThemeMode,\n} 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. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\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 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 * 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 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 * 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 };\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 displayIndeterminate,\n groupLabel,\n label,\n name,\n size,\n value,\n theme,\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 \"ic-checkbox-disabled\": disabled,\n [`ic-checkbox-${size || parentElementSize}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"container\">\n {displayIndeterminate && <div class=\"indeterminate-symbol\" />}\n {!displayIndeterminate && checked && (\n <svg\n class=\"checkmark\"\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 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"]}
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 {\n IcAdditionalFieldTypes,\n IcSizes,\n IcThemeMode,\n} 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. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\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 @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\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 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 * 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 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 * 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 };\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 displayIndeterminate,\n groupLabel,\n label,\n name,\n size,\n value,\n theme,\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 \"ic-checkbox-disabled\": disabled,\n [`ic-checkbox-${size || parentElementSize}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"container\">\n {displayIndeterminate && <div class=\"indeterminate-symbol\" />}\n {!displayIndeterminate && checked && (\n <svg\n class=\"checkmark\"\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 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"]}
@@ -15,6 +15,9 @@ export class CheckboxGroup {
15
15
  this.validationStatus = "";
16
16
  this.validationText = "";
17
17
  }
18
+ watchDisabledHandler() {
19
+ removeDisabledFalse(this.disabled, this.el);
20
+ }
18
21
  labelNameHandler(newValue, oldValue, propName) {
19
22
  Array.from(this.el.querySelectorAll(this.checkboxSelector)).forEach((checkbox) => {
20
23
  if (propName === "label")
@@ -311,6 +314,9 @@ export class CheckboxGroup {
311
314
  static get elementRef() { return "el"; }
312
315
  static get watchers() {
313
316
  return [{
317
+ "propName": "disabled",
318
+ "methodName": "watchDisabledHandler"
319
+ }, {
314
320
  "propName": "label",
315
321
  "methodName": "labelNameHandler"
316
322
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-checkbox-group.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox-group/ic-checkbox-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n hasValidationStatus,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-checkbox-group.types\";\n\n@Component({\n tag: \"ic-checkbox-group\",\n styleUrl: \"ic-checkbox-group.css\",\n shadow: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class CheckboxGroup {\n private checkboxSelector: string = \"ic-checkbox\";\n @Element() el: HTMLIcCheckboxGroupElement;\n\n /**\n * If `true`, the checkbox group will be set to the disabled state.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: 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: boolean = false;\n\n /**\n * The label for the checkbox group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n @Watch(\"label\")\n @Watch(\"name\")\n labelNameHandler(\n newValue: string,\n oldValue: string,\n propName: \"label\" | \"name\"\n ): void {\n Array.from(this.el.querySelectorAll(this.checkboxSelector)).forEach(\n (checkbox: HTMLIcCheckboxElement) => {\n if (propName === \"label\") checkbox.groupLabel = newValue;\n else if (checkbox.name === oldValue) {\n // If the checkbox name has been set by the parent, then override it\n checkbox.name = newValue;\n }\n }\n );\n }\n\n /**\n * If `true`, the checkbox group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The size of the checkboxes to be displayed. This does not affect the font size of the label.\n */\n @Prop() size?: IcSizes = \"medium\";\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 @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n Array.from(this.el.querySelectorAll(this.checkboxSelector)).forEach(\n (checkbox: HTMLIcCheckboxElement) => {\n checkbox.theme = newValue;\n }\n );\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The validation text - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * Emitted when a checkbox is checked.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icChange\")\n handleChange(ev: CustomEvent): void {\n //don't pass on the event if it has come from slotted text field\n //otherwise any icChange handler bound to the checkbox group will also run\n if ((ev.target as HTMLElement).tagName === \"IC-TEXT-FIELD\") {\n ev.stopImmediatePropagation();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.watchThemeHandler(this.theme);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Checkbox Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler({ target }: CustomEvent): void {\n const checkedOptions = Array.from(\n this.el.querySelectorAll(\"ic-checkbox\")\n ).filter(({ checked, disabled }) => checked && !disabled);\n this.icChange.emit({\n value: checkedOptions.map(({ value }) => value),\n checkedOptions: checkedOptions.map((opt) => ({\n checkbox: opt,\n textFieldValue: opt.querySelector(\"ic-text-field\")?.value,\n })),\n selectedOption: target as HTMLIcCheckboxElement,\n });\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n label,\n name,\n required,\n size,\n theme,\n validationStatus,\n validationText,\n } = this;\n\n const describedBy = getInputDescribedByText(\n name,\n helperText !== \"\",\n validationStatus !== \"\"\n );\n\n return (\n <Host\n class={{\n [`ic-checkbox-group-${size}`]: true,\n [`ic-checkbox-group-disabled`]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {(validationStatus === \"error\" || required || hideLabel) && (\n <span\n id=\"screenReaderOnlyText\"\n class=\"screen-reader-only-text\"\n aria-hidden=\"true\"\n >\n {label} {validationStatus === \"error\" ? \"invalid data \" : null}{\" \"}\n {required ? \"required\" : null}\n </span>\n )}\n <fieldset\n id={name}\n aria-labelledby={`${\n validationStatus === \"error\" || required || hideLabel\n ? \"screenReaderOnlyText\"\n : \"\"\n } ${describedBy}`.trim()}\n disabled={disabled}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{ [`${validationStatus}`]: true }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n useLabelTag={false}\n ></ic-input-label>\n </legend>\n )}\n <div class=\"checkboxes-container\">\n <slot></slot>\n </div>\n </fieldset>\n {hasValidationStatus(validationStatus, disabled) && (\n <ic-input-validation\n for={name}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n ></ic-input-validation>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-checkbox-group.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox-group/ic-checkbox-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n hasValidationStatus,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-checkbox-group.types\";\n\n@Component({\n tag: \"ic-checkbox-group\",\n styleUrl: \"ic-checkbox-group.css\",\n shadow: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class CheckboxGroup {\n private checkboxSelector: string = \"ic-checkbox\";\n @Element() el: HTMLIcCheckboxGroupElement;\n\n /**\n * If `true`, the checkbox group will be set to the disabled state.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: 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: boolean = false;\n\n /**\n * The label for the checkbox group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n @Watch(\"label\")\n @Watch(\"name\")\n labelNameHandler(\n newValue: string,\n oldValue: string,\n propName: \"label\" | \"name\"\n ): void {\n Array.from(this.el.querySelectorAll(this.checkboxSelector)).forEach(\n (checkbox: HTMLIcCheckboxElement) => {\n if (propName === \"label\") checkbox.groupLabel = newValue;\n else if (checkbox.name === oldValue) {\n // If the checkbox name has been set by the parent, then override it\n checkbox.name = newValue;\n }\n }\n );\n }\n\n /**\n * If `true`, the checkbox group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The size of the checkboxes to be displayed. This does not affect the font size of the label.\n */\n @Prop() size?: IcSizes = \"medium\";\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 @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n Array.from(this.el.querySelectorAll(this.checkboxSelector)).forEach(\n (checkbox: HTMLIcCheckboxElement) => {\n checkbox.theme = newValue;\n }\n );\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The validation text - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * Emitted when a checkbox is checked.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icChange\")\n handleChange(ev: CustomEvent): void {\n //don't pass on the event if it has come from slotted text field\n //otherwise any icChange handler bound to the checkbox group will also run\n if ((ev.target as HTMLElement).tagName === \"IC-TEXT-FIELD\") {\n ev.stopImmediatePropagation();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.watchThemeHandler(this.theme);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Checkbox Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler({ target }: CustomEvent): void {\n const checkedOptions = Array.from(\n this.el.querySelectorAll(\"ic-checkbox\")\n ).filter(({ checked, disabled }) => checked && !disabled);\n this.icChange.emit({\n value: checkedOptions.map(({ value }) => value),\n checkedOptions: checkedOptions.map((opt) => ({\n checkbox: opt,\n textFieldValue: opt.querySelector(\"ic-text-field\")?.value,\n })),\n selectedOption: target as HTMLIcCheckboxElement,\n });\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n label,\n name,\n required,\n size,\n theme,\n validationStatus,\n validationText,\n } = this;\n\n const describedBy = getInputDescribedByText(\n name,\n helperText !== \"\",\n validationStatus !== \"\"\n );\n\n return (\n <Host\n class={{\n [`ic-checkbox-group-${size}`]: true,\n [`ic-checkbox-group-disabled`]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {(validationStatus === \"error\" || required || hideLabel) && (\n <span\n id=\"screenReaderOnlyText\"\n class=\"screen-reader-only-text\"\n aria-hidden=\"true\"\n >\n {label} {validationStatus === \"error\" ? \"invalid data \" : null}{\" \"}\n {required ? \"required\" : null}\n </span>\n )}\n <fieldset\n id={name}\n aria-labelledby={`${\n validationStatus === \"error\" || required || hideLabel\n ? \"screenReaderOnlyText\"\n : \"\"\n } ${describedBy}`.trim()}\n disabled={disabled}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{ [`${validationStatus}`]: true }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n useLabelTag={false}\n ></ic-input-label>\n </legend>\n )}\n <div class=\"checkboxes-container\">\n <slot></slot>\n </div>\n </fieldset>\n {hasValidationStatus(validationStatus, disabled) && (\n <ic-input-validation\n for={name}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n ></ic-input-validation>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -81,6 +81,9 @@ describe("ic-checkbox-group", () => {
81
81
  </ic-checkbox-group>`,
82
82
  });
83
83
  expect(page.root).toMatchSnapshot("renders-disabled");
84
+ document.querySelector("ic-checkbox").disabled = false;
85
+ await page.waitForChanges();
86
+ expect(page.root).toMatchSnapshot("disabled-removed");
84
87
  });
85
88
  it("should render with validation status", async () => {
86
89
  const page = await newSpecPage({