@ukic/web-components 2.5.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (715) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/{helpers-d166f875.js → helpers-0d63359f.js} +40 -102
  3. package/dist/cjs/helpers-0d63359f.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +6 -4
  7. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +10 -6
  12. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +6 -4
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -5
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +70 -71
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js +13 -6
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox.cjs.entry.js +20 -23
  24. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-chip.cjs.entry.js +11 -6
  26. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-data-entity.cjs.entry.js +6 -5
  29. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-row.cjs.entry.js +5 -4
  31. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-dialog.cjs.entry.js +49 -12
  33. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-empty-state.cjs.entry.js +5 -4
  36. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-hero.cjs.entry.js +9 -6
  41. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -4
  43. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +42 -23
  45. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
  47. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-link.cjs.entry.js +3 -6
  49. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-menu-group.cjs.entry.js +4 -2
  51. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-item.cjs.entry.js +11 -15
  53. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  55. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  59. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-page-header.cjs.entry.js +8 -4
  62. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-pagination.cjs.entry.js +6 -6
  65. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js +21 -21
  67. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-radio-group.cjs.entry.js +9 -8
  69. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-radio-option.cjs.entry.js +21 -15
  71. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-search-bar.cjs.entry.js +27 -22
  73. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-select.cjs.entry.js +40 -30
  76. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-side-navigation.cjs.entry.js +23 -21
  78. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -3
  80. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-status-tag.cjs.entry.js +14 -6
  82. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-step.cjs.entry.js +7 -5
  84. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  86. package/dist/cjs/ic-switch.cjs.entry.js +13 -6
  87. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-context.cjs.entry.js +4 -4
  89. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -4
  91. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -4
  93. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tab.cjs.entry.js +8 -8
  95. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-text-field.cjs.entry.js +5 -6
  97. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-toast-region.cjs.entry.js +21 -9
  100. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-toast.cjs.entry.js +7 -6
  102. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  104. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-typography.cjs.entry.js +12 -4
  106. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  107. package/dist/cjs/{index-afe53465.js → index-4f8c900f.js} +14 -1
  108. package/dist/cjs/index-4f8c900f.js.map +1 -0
  109. package/dist/cjs/loader.cjs.js +2 -2
  110. package/dist/cjs/types-7d67439f.js.map +1 -1
  111. package/dist/collection/collection-manifest.json +3 -3
  112. package/dist/collection/components/ic-accordion/ic-accordion.js +4 -2
  113. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  114. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +0 -1
  115. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  116. package/dist/collection/components/ic-badge/ic-badge.js +41 -15
  117. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  118. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +92 -0
  119. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  120. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -4
  121. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  122. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +4 -2
  123. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  124. package/dist/collection/components/ic-button/ic-button.css +36 -19
  125. package/dist/collection/components/ic-button/ic-button.js +98 -62
  126. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  127. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +30 -2
  128. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  129. package/dist/collection/components/ic-card/ic-card.css +1 -0
  130. package/dist/collection/components/ic-card/ic-card.js +2 -1
  131. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  132. package/dist/collection/components/ic-checkbox/ic-checkbox.js +124 -22
  133. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  134. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +17 -4
  135. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  136. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +7 -0
  137. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  138. package/dist/collection/components/ic-chip/ic-chip.css +10 -5
  139. package/dist/collection/components/ic-chip/ic-chip.js +38 -7
  140. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  141. package/dist/collection/components/ic-data-entity/ic-data-entity.js +38 -7
  142. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  143. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +3 -3
  144. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
  145. package/dist/collection/components/ic-data-row/ic-data-row.js +33 -5
  146. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  147. package/dist/collection/components/ic-dialog/ic-dialog.css +2 -1
  148. package/dist/collection/components/ic-dialog/ic-dialog.js +111 -20
  149. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  150. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +4 -4
  151. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  152. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +74 -0
  153. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  154. package/dist/collection/components/ic-empty-state/ic-empty-state.js +8 -4
  155. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  156. package/dist/collection/components/ic-hero/ic-hero.js +38 -8
  157. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  158. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +24 -2
  159. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  160. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +61 -11
  161. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  162. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +2 -2
  163. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  164. package/dist/collection/components/ic-input-label/ic-input-label.js +26 -4
  165. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  166. package/dist/collection/components/ic-link/ic-link.js +1 -4
  167. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  168. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +6 -5
  169. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  170. package/dist/collection/components/ic-menu/ic-menu.js +62 -18
  171. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  172. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +19 -2
  173. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  174. package/dist/collection/components/ic-menu-group/ic-menu-group.js +2 -1
  175. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  176. package/dist/collection/components/ic-menu-item/ic-menu-item.js +10 -14
  177. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  178. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +3 -2
  179. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  180. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  181. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
  182. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -2
  183. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  184. package/dist/collection/components/ic-page-header/ic-page-header.js +35 -4
  185. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  186. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  187. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  188. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +20 -20
  189. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  190. package/dist/collection/components/ic-radio-group/ic-radio-group.js +37 -9
  191. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  192. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +7 -0
  193. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  194. package/dist/collection/components/ic-radio-option/ic-radio-option.js +125 -14
  195. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  196. package/dist/collection/components/ic-search-bar/ic-search-bar.js +54 -22
  197. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  198. package/dist/collection/components/ic-select/ic-select.css +1 -0
  199. package/dist/collection/components/ic-select/ic-select.js +169 -30
  200. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  201. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +24 -0
  202. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  203. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +17 -2
  204. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  205. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +226 -224
  206. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +39 -19
  207. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  208. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -1
  209. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  210. package/dist/collection/components/ic-skeleton/ic-skeleton.js +26 -4
  211. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  212. package/dist/collection/components/ic-status-tag/ic-status-tag.js +71 -10
  213. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  214. package/dist/collection/components/ic-step/ic-step.js +5 -4
  215. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  216. package/dist/collection/components/ic-switch/ic-switch.js +43 -6
  217. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  218. package/dist/collection/components/ic-tab/ic-tab.js +6 -6
  219. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  220. package/dist/collection/components/ic-tab-context/ic-tab-context.js +3 -3
  221. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  222. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +35 -0
  223. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  224. package/dist/collection/components/ic-tab-group/ic-tab-group.js +1 -2
  225. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  226. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +4 -3
  227. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  228. package/dist/collection/components/ic-text-field/ic-text-field.js +34 -8
  229. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  230. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +1 -1
  231. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  232. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +17 -17
  233. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  234. package/dist/collection/components/ic-toast/ic-toast.js +10 -6
  235. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  236. package/dist/collection/components/ic-toast-region/ic-toast-region.js +53 -17
  237. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  238. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +23 -1
  239. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
  240. package/dist/collection/components/ic-tooltip/ic-tooltip.css +7 -1
  241. package/dist/collection/components/ic-tooltip/ic-tooltip.js +25 -29
  242. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  243. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +0 -8
  244. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  245. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +10 -1
  246. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  247. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  248. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  249. package/dist/collection/components/ic-typography/ic-typography.js +10 -2
  250. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  251. package/dist/collection/utils/constants.js +2 -0
  252. package/dist/collection/utils/constants.js.map +1 -1
  253. package/dist/collection/utils/helpers.js +36 -101
  254. package/dist/collection/utils/helpers.js.map +1 -1
  255. package/dist/collection/utils/types.js.map +1 -1
  256. package/dist/components/helpers.js +39 -102
  257. package/dist/components/helpers.js.map +1 -1
  258. package/dist/components/ic-accordion-group.js.map +1 -1
  259. package/dist/components/ic-accordion.js +4 -2
  260. package/dist/components/ic-accordion.js.map +1 -1
  261. package/dist/components/ic-back-to-top.js +1 -1
  262. package/dist/components/ic-badge.js +10 -6
  263. package/dist/components/ic-badge.js.map +1 -1
  264. package/dist/components/ic-breadcrumb-group.js +5 -3
  265. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  266. package/dist/components/ic-breadcrumb2.js +4 -4
  267. package/dist/components/ic-breadcrumb2.js.map +1 -1
  268. package/dist/components/ic-button2.js +62 -42
  269. package/dist/components/ic-button2.js.map +1 -1
  270. package/dist/components/ic-card.js +2 -2
  271. package/dist/components/ic-card.js.map +1 -1
  272. package/dist/components/ic-checkbox-group.js +13 -6
  273. package/dist/components/ic-checkbox-group.js.map +1 -1
  274. package/dist/components/ic-checkbox.js +25 -22
  275. package/dist/components/ic-checkbox.js.map +1 -1
  276. package/dist/components/ic-chip.js +10 -4
  277. package/dist/components/ic-chip.js.map +1 -1
  278. package/dist/components/ic-data-entity.js +6 -4
  279. package/dist/components/ic-data-entity.js.map +1 -1
  280. package/dist/components/ic-data-row.js +5 -3
  281. package/dist/components/ic-data-row.js.map +1 -1
  282. package/dist/components/ic-dialog.js +51 -11
  283. package/dist/components/ic-dialog.js.map +1 -1
  284. package/dist/components/ic-divider2.js +1 -1
  285. package/dist/components/ic-empty-state.js +4 -3
  286. package/dist/components/ic-empty-state.js.map +1 -1
  287. package/dist/components/ic-footer-link-group.js +1 -1
  288. package/dist/components/ic-footer-link.js +1 -1
  289. package/dist/components/ic-footer.js +1 -1
  290. package/dist/components/ic-hero.js +9 -5
  291. package/dist/components/ic-hero.js.map +1 -1
  292. package/dist/components/ic-horizontal-scroll2.js +5 -3
  293. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  294. package/dist/components/ic-input-component-container2.js +11 -7
  295. package/dist/components/ic-input-component-container2.js.map +1 -1
  296. package/dist/components/ic-input-label2.js +5 -3
  297. package/dist/components/ic-input-label2.js.map +1 -1
  298. package/dist/components/ic-input-validation2.js +1 -1
  299. package/dist/components/ic-link2.js +1 -4
  300. package/dist/components/ic-link2.js.map +1 -1
  301. package/dist/components/ic-loading-indicator2.js +6 -5
  302. package/dist/components/ic-loading-indicator2.js.map +1 -1
  303. package/dist/components/ic-menu-group.js +2 -1
  304. package/dist/components/ic-menu-group.js.map +1 -1
  305. package/dist/components/ic-menu-item2.js +10 -14
  306. package/dist/components/ic-menu-item2.js.map +1 -1
  307. package/dist/components/ic-menu2.js +34 -16
  308. package/dist/components/ic-menu2.js.map +1 -1
  309. package/dist/components/ic-navigation-button.js +2 -2
  310. package/dist/components/ic-navigation-button.js.map +1 -1
  311. package/dist/components/ic-navigation-group.js +1 -1
  312. package/dist/components/ic-navigation-group.js.map +1 -1
  313. package/dist/components/ic-navigation-item.js +3 -3
  314. package/dist/components/ic-navigation-item.js.map +1 -1
  315. package/dist/components/ic-navigation-menu2.js +1 -1
  316. package/dist/components/ic-page-header.js +8 -3
  317. package/dist/components/ic-page-header.js.map +1 -1
  318. package/dist/components/ic-pagination.js +4 -4
  319. package/dist/components/ic-pagination.js.map +1 -1
  320. package/dist/components/ic-popover-menu.js +20 -20
  321. package/dist/components/ic-popover-menu.js.map +1 -1
  322. package/dist/components/ic-radio-group.js +9 -7
  323. package/dist/components/ic-radio-group.js.map +1 -1
  324. package/dist/components/ic-radio-option.js +26 -14
  325. package/dist/components/ic-radio-option.js.map +1 -1
  326. package/dist/components/ic-search-bar.js +27 -21
  327. package/dist/components/ic-search-bar.js.map +1 -1
  328. package/dist/components/ic-select.js +46 -29
  329. package/dist/components/ic-select.js.map +1 -1
  330. package/dist/components/ic-side-navigation.js +23 -20
  331. package/dist/components/ic-side-navigation.js.map +1 -1
  332. package/dist/components/ic-skeleton.js +4 -2
  333. package/dist/components/ic-skeleton.js.map +1 -1
  334. package/dist/components/ic-status-tag.js +15 -5
  335. package/dist/components/ic-status-tag.js.map +1 -1
  336. package/dist/components/ic-step.js +5 -4
  337. package/dist/components/ic-step.js.map +1 -1
  338. package/dist/components/ic-stepper.js +1 -1
  339. package/dist/components/ic-switch.js +15 -5
  340. package/dist/components/ic-switch.js.map +1 -1
  341. package/dist/components/ic-tab-context.js +3 -3
  342. package/dist/components/ic-tab-context.js.map +1 -1
  343. package/dist/components/ic-tab-group.js +1 -2
  344. package/dist/components/ic-tab-group.js.map +1 -1
  345. package/dist/components/ic-tab-panel.js +4 -3
  346. package/dist/components/ic-tab-panel.js.map +1 -1
  347. package/dist/components/ic-tab.js +6 -6
  348. package/dist/components/ic-tab.js.map +1 -1
  349. package/dist/components/ic-text-field2.js +6 -6
  350. package/dist/components/ic-text-field2.js.map +1 -1
  351. package/dist/components/ic-theme.js +1 -1
  352. package/dist/components/ic-toast-region.js +24 -9
  353. package/dist/components/ic-toast-region.js.map +1 -1
  354. package/dist/components/ic-toast.js +6 -5
  355. package/dist/components/ic-toast.js.map +1 -1
  356. package/dist/components/ic-tooltip2.js +9 -28
  357. package/dist/components/ic-tooltip2.js.map +1 -1
  358. package/dist/components/ic-top-navigation.js +4 -4
  359. package/dist/components/ic-top-navigation.js.map +1 -1
  360. package/dist/components/ic-typography2.js +10 -2
  361. package/dist/components/ic-typography2.js.map +1 -1
  362. package/dist/components/types.js.map +1 -1
  363. package/dist/core/core.esm.js +1 -1
  364. package/dist/core/core.esm.js.map +1 -1
  365. package/dist/core/{p-1db57a3f.entry.js → p-025f9d2a.entry.js} +2 -2
  366. package/dist/core/p-025f9d2a.entry.js.map +1 -0
  367. package/dist/core/p-03329fd0.entry.js +2 -0
  368. package/dist/core/p-03329fd0.entry.js.map +1 -0
  369. package/dist/core/p-08b59078.entry.js +2 -0
  370. package/dist/core/p-08b59078.entry.js.map +1 -0
  371. package/dist/core/p-0c82048e.entry.js +2 -0
  372. package/dist/core/p-0c82048e.entry.js.map +1 -0
  373. package/dist/core/{p-64999983.entry.js → p-0dc4f225.entry.js} +2 -2
  374. package/dist/core/p-0dc4f225.entry.js.map +1 -0
  375. package/dist/core/p-12124e24.entry.js +2 -0
  376. package/dist/core/p-12124e24.entry.js.map +1 -0
  377. package/dist/core/{p-1ed0a71d.entry.js → p-1cf2a6aa.entry.js} +2 -2
  378. package/dist/core/p-1cf2a6aa.entry.js.map +1 -0
  379. package/dist/core/{p-ca6e5474.entry.js → p-2265e418.entry.js} +2 -2
  380. package/dist/core/p-2265e418.entry.js.map +1 -0
  381. package/dist/core/{p-9ee852d9.entry.js → p-2c30b583.entry.js} +2 -2
  382. package/dist/core/p-345fe84a.entry.js +2 -0
  383. package/dist/core/p-345fe84a.entry.js.map +1 -0
  384. package/dist/core/p-39c8111d.entry.js +2 -0
  385. package/dist/core/p-39c8111d.entry.js.map +1 -0
  386. package/dist/core/p-3a15202f.entry.js +2 -0
  387. package/dist/core/p-3a15202f.entry.js.map +1 -0
  388. package/dist/core/{p-2d21de19.entry.js → p-3a814fc4.entry.js} +2 -2
  389. package/dist/core/p-3a814fc4.entry.js.map +1 -0
  390. package/dist/core/p-3fd897c9.entry.js +2 -0
  391. package/dist/core/p-3fd897c9.entry.js.map +1 -0
  392. package/dist/core/p-41c6eaa1.entry.js +2 -0
  393. package/dist/core/p-41c6eaa1.entry.js.map +1 -0
  394. package/dist/core/p-432f8ff0.entry.js +2 -0
  395. package/dist/core/p-432f8ff0.entry.js.map +1 -0
  396. package/dist/core/p-4559600a.entry.js +2 -0
  397. package/dist/core/p-4559600a.entry.js.map +1 -0
  398. package/dist/core/{p-913da6d0.entry.js → p-475b7bd2.entry.js} +2 -2
  399. package/dist/core/{p-913da6d0.entry.js.map → p-475b7bd2.entry.js.map} +1 -1
  400. package/dist/core/{p-0fdb1e52.entry.js → p-48525498.entry.js} +2 -2
  401. package/dist/core/p-536b3c97.entry.js +2 -0
  402. package/dist/core/p-536b3c97.entry.js.map +1 -0
  403. package/dist/core/p-59bdafff.entry.js +2 -0
  404. package/dist/core/p-59bdafff.entry.js.map +1 -0
  405. package/dist/core/p-5b487daa.entry.js +2 -0
  406. package/dist/core/p-5b487daa.entry.js.map +1 -0
  407. package/dist/core/{p-4f070381.entry.js → p-5bb6c79b.entry.js} +2 -2
  408. package/dist/core/p-5bb6c79b.entry.js.map +1 -0
  409. package/dist/core/p-5ca39ed5.entry.js +2 -0
  410. package/dist/core/p-5ca39ed5.entry.js.map +1 -0
  411. package/dist/core/p-5fcd202e.entry.js +2 -0
  412. package/dist/core/p-5fcd202e.entry.js.map +1 -0
  413. package/dist/core/p-613aa265.js.map +1 -1
  414. package/dist/core/{p-038601a3.entry.js → p-69948c3e.entry.js} +2 -2
  415. package/dist/core/{p-038601a3.entry.js.map → p-69948c3e.entry.js.map} +1 -1
  416. package/dist/core/{p-d9fc7243.entry.js → p-752f0f9a.entry.js} +2 -2
  417. package/dist/core/p-752f0f9a.entry.js.map +1 -0
  418. package/dist/core/p-763d0822.entry.js +2 -0
  419. package/dist/core/p-763d0822.entry.js.map +1 -0
  420. package/dist/core/{p-9bd160bb.entry.js → p-76563540.entry.js} +2 -2
  421. package/dist/core/p-76563540.entry.js.map +1 -0
  422. package/dist/core/{p-cf95dd66.entry.js → p-7bb3c340.entry.js} +2 -2
  423. package/dist/core/p-88ea1e49.entry.js +2 -0
  424. package/dist/core/p-8b18346a.entry.js +2 -0
  425. package/dist/core/p-8b18346a.entry.js.map +1 -0
  426. package/dist/core/p-8fb4f0c0.js +2 -0
  427. package/dist/core/p-8fb4f0c0.js.map +1 -0
  428. package/dist/core/{p-05249867.entry.js → p-932fb4b7.entry.js} +2 -2
  429. package/dist/core/p-9ccfb863.entry.js +2 -0
  430. package/dist/core/p-9ccfb863.entry.js.map +1 -0
  431. package/dist/core/{p-85903a81.js → p-9d124fc7.js} +3 -3
  432. package/dist/core/p-9d124fc7.js.map +1 -0
  433. package/dist/core/{p-e904d985.entry.js → p-a4397df4.entry.js} +2 -2
  434. package/dist/core/{p-4fbe1dc3.entry.js → p-a448d873.entry.js} +2 -2
  435. package/dist/core/p-a448d873.entry.js.map +1 -0
  436. package/dist/core/{p-a388750d.entry.js → p-af9f1caa.entry.js} +2 -2
  437. package/dist/core/p-af9f1caa.entry.js.map +1 -0
  438. package/dist/core/{p-4ef8342f.entry.js → p-b0ce60a0.entry.js} +2 -2
  439. package/dist/core/{p-0e1a4f8d.entry.js → p-b77ab20a.entry.js} +2 -2
  440. package/dist/core/p-b77ab20a.entry.js.map +1 -0
  441. package/dist/core/p-ba495175.entry.js +2 -0
  442. package/dist/core/p-ba495175.entry.js.map +1 -0
  443. package/dist/core/p-c0c62df4.entry.js +2 -0
  444. package/dist/core/p-c0c62df4.entry.js.map +1 -0
  445. package/dist/core/{p-60fef702.entry.js → p-c36cbd8a.entry.js} +2 -2
  446. package/dist/core/p-c36cbd8a.entry.js.map +1 -0
  447. package/dist/core/p-c9ef9f5c.entry.js +2 -0
  448. package/dist/core/p-c9ef9f5c.entry.js.map +1 -0
  449. package/dist/core/{p-e59d2d50.entry.js → p-ccac1730.entry.js} +2 -2
  450. package/dist/core/p-cf4bacee.entry.js +2 -0
  451. package/dist/core/p-cf4bacee.entry.js.map +1 -0
  452. package/dist/core/p-e2903ce9.entry.js +2 -0
  453. package/dist/core/p-e2903ce9.entry.js.map +1 -0
  454. package/dist/core/{p-b42b8ffa.entry.js → p-e2fd542e.entry.js} +2 -2
  455. package/dist/core/p-e2fd542e.entry.js.map +1 -0
  456. package/dist/core/{p-ac82781b.entry.js → p-e3bffcae.entry.js} +2 -2
  457. package/dist/core/p-ea6ad791.entry.js +2 -0
  458. package/dist/core/p-ea6ad791.entry.js.map +1 -0
  459. package/dist/core/{p-1650c1c2.entry.js → p-eb063498.entry.js} +2 -2
  460. package/dist/core/p-eb063498.entry.js.map +1 -0
  461. package/dist/core/p-ec82fa24.entry.js +2 -0
  462. package/dist/core/p-ec82fa24.entry.js.map +1 -0
  463. package/dist/core/{p-c1e8d13e.entry.js → p-ed256f1d.entry.js} +2 -2
  464. package/dist/core/{p-2184a72f.entry.js → p-f00e510b.entry.js} +2 -2
  465. package/dist/core/p-f00e510b.entry.js.map +1 -0
  466. package/dist/core/{p-482397ae.entry.js → p-f019219c.entry.js} +2 -2
  467. package/dist/core/p-f69fb26b.entry.js +2 -0
  468. package/dist/core/p-f69fb26b.entry.js.map +1 -0
  469. package/dist/core/{p-675fe4db.entry.js → p-fbc8a739.entry.js} +2 -2
  470. package/dist/core/p-fbc8a739.entry.js.map +1 -0
  471. package/dist/core/p-fe6e0c0e.entry.js +2 -0
  472. package/dist/core/p-fe6e0c0e.entry.js.map +1 -0
  473. package/dist/esm/core.js +3 -3
  474. package/dist/esm/{helpers-81a88a11.js → helpers-24f6e762.js} +40 -103
  475. package/dist/esm/helpers-24f6e762.js.map +1 -0
  476. package/dist/esm/ic-accordion-group.entry.js +1 -1
  477. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  478. package/dist/esm/ic-accordion.entry.js +6 -4
  479. package/dist/esm/ic-accordion.entry.js.map +1 -1
  480. package/dist/esm/ic-alert.entry.js +2 -2
  481. package/dist/esm/ic-back-to-top.entry.js +2 -2
  482. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  483. package/dist/esm/ic-badge.entry.js +10 -6
  484. package/dist/esm/ic-badge.entry.js.map +1 -1
  485. package/dist/esm/ic-breadcrumb-group.entry.js +6 -4
  486. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  487. package/dist/esm/ic-breadcrumb.entry.js +5 -5
  488. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  489. package/dist/esm/ic-button_3.entry.js +70 -71
  490. package/dist/esm/ic-button_3.entry.js.map +1 -1
  491. package/dist/esm/ic-card.entry.js +4 -4
  492. package/dist/esm/ic-card.entry.js.map +1 -1
  493. package/dist/esm/ic-checkbox-group.entry.js +13 -6
  494. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  495. package/dist/esm/ic-checkbox.entry.js +20 -23
  496. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  497. package/dist/esm/ic-chip.entry.js +11 -6
  498. package/dist/esm/ic-chip.entry.js.map +1 -1
  499. package/dist/esm/ic-classification-banner.entry.js +1 -1
  500. package/dist/esm/ic-data-entity.entry.js +6 -5
  501. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  502. package/dist/esm/ic-data-row.entry.js +5 -4
  503. package/dist/esm/ic-data-row.entry.js.map +1 -1
  504. package/dist/esm/ic-dialog.entry.js +49 -12
  505. package/dist/esm/ic-dialog.entry.js.map +1 -1
  506. package/dist/esm/ic-divider.entry.js +2 -2
  507. package/dist/esm/ic-empty-state.entry.js +5 -4
  508. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  509. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  510. package/dist/esm/ic-footer-link.entry.js +2 -2
  511. package/dist/esm/ic-footer.entry.js +2 -2
  512. package/dist/esm/ic-hero.entry.js +9 -6
  513. package/dist/esm/ic-hero.entry.js.map +1 -1
  514. package/dist/esm/ic-horizontal-scroll.entry.js +5 -4
  515. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  516. package/dist/esm/ic-input-component-container_3.entry.js +42 -23
  517. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  518. package/dist/esm/ic-input-label_2.entry.js +5 -4
  519. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  520. package/dist/esm/ic-link.entry.js +3 -6
  521. package/dist/esm/ic-link.entry.js.map +1 -1
  522. package/dist/esm/ic-menu-group.entry.js +4 -2
  523. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  524. package/dist/esm/ic-menu-item.entry.js +11 -15
  525. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  526. package/dist/esm/ic-navigation-button.entry.js +3 -3
  527. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  528. package/dist/esm/ic-navigation-group.entry.js +2 -2
  529. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  530. package/dist/esm/ic-navigation-item.entry.js +4 -4
  531. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  532. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  533. package/dist/esm/ic-page-header.entry.js +8 -4
  534. package/dist/esm/ic-page-header.entry.js.map +1 -1
  535. package/dist/esm/ic-pagination-item.entry.js +2 -2
  536. package/dist/esm/ic-pagination.entry.js +6 -6
  537. package/dist/esm/ic-pagination.entry.js.map +1 -1
  538. package/dist/esm/ic-popover-menu.entry.js +21 -21
  539. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  540. package/dist/esm/ic-radio-group.entry.js +9 -8
  541. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  542. package/dist/esm/ic-radio-option.entry.js +21 -15
  543. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  544. package/dist/esm/ic-search-bar.entry.js +27 -22
  545. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  546. package/dist/esm/ic-section-container.entry.js +1 -1
  547. package/dist/esm/ic-select.entry.js +40 -30
  548. package/dist/esm/ic-select.entry.js.map +1 -1
  549. package/dist/esm/ic-side-navigation.entry.js +23 -21
  550. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  551. package/dist/esm/ic-skeleton.entry.js +4 -3
  552. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  553. package/dist/esm/ic-status-tag.entry.js +14 -6
  554. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  555. package/dist/esm/ic-step.entry.js +7 -5
  556. package/dist/esm/ic-step.entry.js.map +1 -1
  557. package/dist/esm/ic-stepper.entry.js +2 -2
  558. package/dist/esm/ic-switch.entry.js +13 -6
  559. package/dist/esm/ic-switch.entry.js.map +1 -1
  560. package/dist/esm/ic-tab-context.entry.js +4 -4
  561. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  562. package/dist/esm/ic-tab-group.entry.js +3 -4
  563. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  564. package/dist/esm/ic-tab-panel.entry.js +5 -4
  565. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  566. package/dist/esm/ic-tab.entry.js +8 -8
  567. package/dist/esm/ic-tab.entry.js.map +1 -1
  568. package/dist/esm/ic-text-field.entry.js +5 -6
  569. package/dist/esm/ic-text-field.entry.js.map +1 -1
  570. package/dist/esm/ic-theme.entry.js +2 -2
  571. package/dist/esm/ic-toast-region.entry.js +21 -9
  572. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  573. package/dist/esm/ic-toast.entry.js +7 -6
  574. package/dist/esm/ic-toast.entry.js.map +1 -1
  575. package/dist/esm/ic-top-navigation.entry.js +5 -5
  576. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  577. package/dist/esm/ic-typography.entry.js +12 -4
  578. package/dist/esm/ic-typography.entry.js.map +1 -1
  579. package/dist/esm/{index-b006ae9d.js → index-813020f1.js} +14 -2
  580. package/dist/esm/index-813020f1.js.map +1 -0
  581. package/dist/esm/loader.js +3 -3
  582. package/dist/esm/types-b2398b37.js.map +1 -1
  583. package/dist/types/components/ic-accordion/ic-accordion.d.ts +1 -0
  584. package/dist/types/components/ic-badge/ic-badge.d.ts +10 -3
  585. package/dist/types/components/ic-button/ic-button.d.ts +12 -5
  586. package/dist/types/components/ic-card/ic-card.d.ts +1 -0
  587. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +28 -2
  588. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +2 -1
  589. package/dist/types/components/ic-chip/ic-chip.d.ts +6 -2
  590. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +10 -2
  591. package/dist/types/components/ic-data-row/ic-data-row.d.ts +7 -2
  592. package/dist/types/components/ic-dialog/ic-dialog.d.ts +15 -5
  593. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +4 -1
  594. package/dist/types/components/ic-hero/ic-hero.d.ts +7 -3
  595. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +4 -0
  596. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +13 -5
  597. package/dist/types/components/ic-input-label/ic-input-label.d.ts +5 -1
  598. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +1 -1
  599. package/dist/types/components/ic-menu/ic-menu.d.ts +8 -3
  600. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -0
  601. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -0
  602. package/dist/types/components/ic-page-header/ic-page-header.d.ts +6 -2
  603. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
  604. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -4
  605. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +28 -1
  606. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +6 -2
  607. package/dist/types/components/ic-select/ic-select.d.ts +34 -4
  608. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  609. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +5 -1
  610. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +12 -2
  611. package/dist/types/components/ic-switch/ic-switch.d.ts +7 -1
  612. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -1
  613. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -1
  614. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -1
  615. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +1 -1
  616. package/dist/types/components/ic-text-field/ic-text-field.d.ts +7 -3
  617. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -1
  618. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +7 -2
  619. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -3
  620. package/dist/types/components.d.ts +388 -60
  621. package/dist/types/utils/helpers.d.ts +2 -1
  622. package/dist/types/utils/types.d.ts +2 -0
  623. package/hydrate/index.js +581 -450
  624. package/package.json +5 -5
  625. package/dist/cjs/helpers-d166f875.js.map +0 -1
  626. package/dist/cjs/index-afe53465.js.map +0 -1
  627. package/dist/core/p-0353a1d8.entry.js +0 -2
  628. package/dist/core/p-0353a1d8.entry.js.map +0 -1
  629. package/dist/core/p-08c6119a.entry.js +0 -2
  630. package/dist/core/p-08c6119a.entry.js.map +0 -1
  631. package/dist/core/p-09004694.entry.js +0 -2
  632. package/dist/core/p-09004694.entry.js.map +0 -1
  633. package/dist/core/p-0d71a937.entry.js +0 -2
  634. package/dist/core/p-0d71a937.entry.js.map +0 -1
  635. package/dist/core/p-0e1a4f8d.entry.js.map +0 -1
  636. package/dist/core/p-10bfc292.entry.js +0 -2
  637. package/dist/core/p-10bfc292.entry.js.map +0 -1
  638. package/dist/core/p-1650c1c2.entry.js.map +0 -1
  639. package/dist/core/p-1db57a3f.entry.js.map +0 -1
  640. package/dist/core/p-1ed0a71d.entry.js.map +0 -1
  641. package/dist/core/p-2184a72f.entry.js.map +0 -1
  642. package/dist/core/p-293f4c5f.entry.js +0 -2
  643. package/dist/core/p-293f4c5f.entry.js.map +0 -1
  644. package/dist/core/p-2afa6d29.entry.js +0 -2
  645. package/dist/core/p-2afa6d29.entry.js.map +0 -1
  646. package/dist/core/p-2c09f9e0.entry.js +0 -2
  647. package/dist/core/p-2c09f9e0.entry.js.map +0 -1
  648. package/dist/core/p-2d21de19.entry.js.map +0 -1
  649. package/dist/core/p-32510505.entry.js +0 -2
  650. package/dist/core/p-32510505.entry.js.map +0 -1
  651. package/dist/core/p-4f070381.entry.js.map +0 -1
  652. package/dist/core/p-4fbe1dc3.entry.js.map +0 -1
  653. package/dist/core/p-5401863e.entry.js +0 -2
  654. package/dist/core/p-5401863e.entry.js.map +0 -1
  655. package/dist/core/p-59b24198.entry.js +0 -2
  656. package/dist/core/p-59b24198.entry.js.map +0 -1
  657. package/dist/core/p-5cc070c4.entry.js +0 -2
  658. package/dist/core/p-5cc070c4.entry.js.map +0 -1
  659. package/dist/core/p-5f881644.entry.js +0 -2
  660. package/dist/core/p-5f881644.entry.js.map +0 -1
  661. package/dist/core/p-60fef702.entry.js.map +0 -1
  662. package/dist/core/p-64999983.entry.js.map +0 -1
  663. package/dist/core/p-675fe4db.entry.js.map +0 -1
  664. package/dist/core/p-6aec6bce.entry.js +0 -2
  665. package/dist/core/p-6aec6bce.entry.js.map +0 -1
  666. package/dist/core/p-6ec3cd12.entry.js +0 -2
  667. package/dist/core/p-6ec3cd12.entry.js.map +0 -1
  668. package/dist/core/p-76daa5b0.entry.js +0 -2
  669. package/dist/core/p-777e5556.entry.js +0 -2
  670. package/dist/core/p-777e5556.entry.js.map +0 -1
  671. package/dist/core/p-7a61d94a.entry.js +0 -2
  672. package/dist/core/p-7a61d94a.entry.js.map +0 -1
  673. package/dist/core/p-85903a81.js.map +0 -1
  674. package/dist/core/p-932fe2a0.entry.js +0 -2
  675. package/dist/core/p-932fe2a0.entry.js.map +0 -1
  676. package/dist/core/p-9bd160bb.entry.js.map +0 -1
  677. package/dist/core/p-a388750d.entry.js.map +0 -1
  678. package/dist/core/p-a46c1690.entry.js +0 -2
  679. package/dist/core/p-a46c1690.entry.js.map +0 -1
  680. package/dist/core/p-abf60097.entry.js +0 -2
  681. package/dist/core/p-abf60097.entry.js.map +0 -1
  682. package/dist/core/p-ad520f36.entry.js +0 -2
  683. package/dist/core/p-ad520f36.entry.js.map +0 -1
  684. package/dist/core/p-b42b8ffa.entry.js.map +0 -1
  685. package/dist/core/p-b96bd8be.entry.js +0 -2
  686. package/dist/core/p-b96bd8be.entry.js.map +0 -1
  687. package/dist/core/p-c30d9b20.js +0 -2
  688. package/dist/core/p-c30d9b20.js.map +0 -1
  689. package/dist/core/p-ca6e5474.entry.js.map +0 -1
  690. package/dist/core/p-ceed0fee.entry.js +0 -2
  691. package/dist/core/p-ceed0fee.entry.js.map +0 -1
  692. package/dist/core/p-d005a71a.entry.js +0 -2
  693. package/dist/core/p-d005a71a.entry.js.map +0 -1
  694. package/dist/core/p-d5282ede.entry.js +0 -2
  695. package/dist/core/p-d5282ede.entry.js.map +0 -1
  696. package/dist/core/p-d9fc7243.entry.js.map +0 -1
  697. package/dist/core/p-db4a15bd.entry.js +0 -2
  698. package/dist/core/p-db4a15bd.entry.js.map +0 -1
  699. package/dist/core/p-e75b04af.entry.js +0 -2
  700. package/dist/core/p-e75b04af.entry.js.map +0 -1
  701. package/dist/core/p-ea55f25c.entry.js +0 -2
  702. package/dist/core/p-ea55f25c.entry.js.map +0 -1
  703. package/dist/esm/helpers-81a88a11.js.map +0 -1
  704. package/dist/esm/index-b006ae9d.js.map +0 -1
  705. /package/dist/core/{p-9ee852d9.entry.js.map → p-2c30b583.entry.js.map} +0 -0
  706. /package/dist/core/{p-0fdb1e52.entry.js.map → p-48525498.entry.js.map} +0 -0
  707. /package/dist/core/{p-cf95dd66.entry.js.map → p-7bb3c340.entry.js.map} +0 -0
  708. /package/dist/core/{p-76daa5b0.entry.js.map → p-88ea1e49.entry.js.map} +0 -0
  709. /package/dist/core/{p-05249867.entry.js.map → p-932fb4b7.entry.js.map} +0 -0
  710. /package/dist/core/{p-e904d985.entry.js.map → p-a4397df4.entry.js.map} +0 -0
  711. /package/dist/core/{p-4ef8342f.entry.js.map → p-b0ce60a0.entry.js.map} +0 -0
  712. /package/dist/core/{p-e59d2d50.entry.js.map → p-ccac1730.entry.js.map} +0 -0
  713. /package/dist/core/{p-ac82781b.entry.js.map → p-e3bffcae.entry.js.map} +0 -0
  714. /package/dist/core/{p-c1e8d13e.entry.js.map → p-ed256f1d.entry.js.map} +0 -0
  715. /package/dist/core/{p-482397ae.entry.js.map → p-f019219c.entry.js.map} +0 -0
@@ -7,7 +7,7 @@ export class RadioGroup {
7
7
  this.resizeObserver = new ResizeObserver(() => {
8
8
  this.checkOrientation();
9
9
  });
10
- this.resizeObserver.observe(this.host);
10
+ this.resizeObserver.observe(this.el);
11
11
  };
12
12
  this.handleKeyDown = (event) => {
13
13
  switch (event.key) {
@@ -52,6 +52,7 @@ export class RadioGroup {
52
52
  this.name = undefined;
53
53
  this.orientation = "vertical";
54
54
  this.required = false;
55
+ this.size = "default";
55
56
  this.small = false;
56
57
  this.validationStatus = "";
57
58
  this.validationText = "";
@@ -65,12 +66,12 @@ export class RadioGroup {
65
66
  }
66
67
  }
67
68
  componentWillLoad() {
68
- removeDisabledFalse(this.disabled, this.host);
69
+ removeDisabledFalse(this.disabled, this.el);
69
70
  this.orientationChangeHandler();
70
71
  this.currentOrientation = this.initialOrientation;
71
72
  }
72
73
  componentDidLoad() {
73
- this.radioOptions = Array.from(this.host.querySelectorAll("ic-radio-option"));
74
+ this.radioOptions = Array.from(this.el.querySelectorAll("ic-radio-option"));
74
75
  this.radioOptions.forEach((radioOption, index) => {
75
76
  if (!radioOption.selected) {
76
77
  radioOption.selected = this.checkedValue === radioOption.value;
@@ -148,8 +149,8 @@ export class RadioGroup {
148
149
  }
149
150
  }
150
151
  render() {
151
- renderHiddenInput(true, this.host, this.name, this.checkedValue, this.disabled);
152
- return (h(Host, { onKeyDown: this.handleKeyDown, class: { small: this.small } }, h("div", { role: "radiogroup", "aria-label": `${this.label}${this.required ? ", required" : ""}` }, !this.hideLabel && (h("ic-input-label", { class: { [`${this.validationStatus}`]: true }, label: this.label, helperText: this.helperText, required: this.required, disabled: this.disabled })), h("div", { class: {
152
+ renderHiddenInput(true, this.el, this.name, this.checkedValue, this.disabled);
153
+ return (h(Host, { onKeyDown: this.handleKeyDown, class: { small: this.small || this.size === "small" } }, h("div", { role: "radiogroup", "aria-label": `${this.label}${this.required ? ", required" : ""}` }, !this.hideLabel && (h("ic-input-label", { class: { [`${this.validationStatus}`]: true }, label: this.label, helperText: this.helperText, required: this.required, disabled: this.disabled })), h("div", { class: {
153
154
  "radio-buttons-container": true,
154
155
  horizontal: this.currentOrientation === "horizontal",
155
156
  }, ref: (el) => (this.radioContainer = el) }, h("slot", null))), hasValidationStatus(this.validationStatus, this.disabled) && (h("ic-input-validation", { ariaLiveMode: "polite", status: this.validationStatus, message: this.validationText }))));
@@ -297,6 +298,30 @@ export class RadioGroup {
297
298
  "reflect": false,
298
299
  "defaultValue": "false"
299
300
  },
301
+ "size": {
302
+ "type": "string",
303
+ "mutable": false,
304
+ "complexType": {
305
+ "original": "IcSizesNoLarge",
306
+ "resolved": "\"default\" | \"small\"",
307
+ "references": {
308
+ "IcSizesNoLarge": {
309
+ "location": "import",
310
+ "path": "../../utils/types",
311
+ "id": "src/utils/types.ts::IcSizesNoLarge"
312
+ }
313
+ }
314
+ },
315
+ "required": false,
316
+ "optional": true,
317
+ "docs": {
318
+ "tags": [],
319
+ "text": "The size of the radio group component."
320
+ },
321
+ "attribute": "size",
322
+ "reflect": false,
323
+ "defaultValue": "\"default\""
324
+ },
300
325
  "small": {
301
326
  "type": "boolean",
302
327
  "mutable": false,
@@ -306,10 +331,13 @@ export class RadioGroup {
306
331
  "references": {}
307
332
  },
308
333
  "required": false,
309
- "optional": false,
334
+ "optional": true,
310
335
  "docs": {
311
- "tags": [],
312
- "text": "If `true`, the small styling will be applied to the radio group."
336
+ "tags": [{
337
+ "name": "deprecated",
338
+ "text": "This prop should not be used anymore. Set prop `size` to \"small\" instead."
339
+ }],
340
+ "text": ""
313
341
  },
314
342
  "attribute": "small",
315
343
  "reflect": false,
@@ -391,7 +419,7 @@ export class RadioGroup {
391
419
  }
392
420
  }];
393
421
  }
394
- static get elementRef() { return "host"; }
422
+ static get elementRef() { return "el"; }
395
423
  static get watchers() {
396
424
  return [{
397
425
  "propName": "orientation",
@@ -1 +1 @@
1
- {"version":3,"file":"ic-radio-group.js","sourceRoot":"","sources":["../../../src/components/ic-radio-group/ic-radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n hasValidationStatus,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n renderHiddenInput,\n checkResizeObserver,\n} from \"../../utils/helpers\";\nimport {\n IcInformationStatusOrEmpty,\n IcOrientation,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-radio-group.types\";\n\n@Component({\n tag: \"ic-radio-group\",\n styleUrl: \"ic-radio-group.css\",\n shadow: true,\n})\nexport class RadioGroup {\n private radioContainer: HTMLDivElement;\n private radioOptions: HTMLIcRadioOptionElement[];\n private resizeObserver: ResizeObserver = null;\n\n @Element() host: HTMLIcRadioGroupElement;\n\n @State() checkedValue: string = \"\";\n @State() currentOrientation: IcOrientation;\n @State() initialOrientation: IcOrientation;\n @State() selectedChild: number = -1;\n\n /**\n * If `true`, the disabled state will be set.\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 radio group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the radio group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n /**\n * The orientation of the radio buttons in the radio group. If there are more than two radio buttons in a radio group or either of the radio buttons use the `additional-field` slot, then the orientation will always be vertical.\n */\n @Prop() orientation: IcOrientation = \"vertical\";\n\n /**\n * If `true`, the radio group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * If `true`, the small styling will be applied to the radio group.\n */\n @Prop() small: boolean = false;\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n /**\n * The validation text - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n @Watch(\"orientation\")\n orientationChangeHandler(): void {\n this.initialOrientation = this.orientation;\n }\n\n /**\n * Emitted when a user selects a radio.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.host);\n\n this.orientationChangeHandler();\n this.currentOrientation = this.initialOrientation;\n }\n\n componentDidLoad(): void {\n this.radioOptions = Array.from(\n this.host.querySelectorAll(\"ic-radio-option\")\n );\n\n this.radioOptions.forEach((radioOption, index) => {\n if (!radioOption.selected) {\n radioOption.selected = this.checkedValue === radioOption.value;\n }\n radioOption.name = this.name;\n radioOption.groupLabel = this.label;\n if (radioOption.selected) {\n this.selectedChild = index;\n this.checkedValue = radioOption.value;\n }\n });\n this.radioOptions[0].shadowRoot.querySelector(\"input\").tabIndex =\n this.selectedChild > 0 ? -1 : 0;\n\n if (\n this.initialOrientation === \"horizontal\" &&\n this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (isSlotUsed(this.radioOptions[0], \"additional-field\") ||\n isSlotUsed(this.radioOptions[1], \"additional-field\"))))\n ) {\n this.currentOrientation = \"vertical\";\n }\n\n checkResizeObserver(this.runResizeObserver);\n\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Radio Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler(event: CustomEvent<IcValueEventDetail>): void {\n this.checkedValue = event.detail.value;\n const selectedOption = event.target as HTMLIcRadioOptionElement;\n this.icChange.emit({\n value: this.checkedValue,\n selectedOption: {\n radio: selectedOption,\n textFieldValue: selectedOption?.querySelector(\"ic-text-field\")?.value,\n },\n });\n\n if (this.radioOptions !== undefined) {\n this.radioOptions.forEach((radioOption, index) => {\n radioOption.selected = this.checkedValue === radioOption.value;\n if (radioOption.selected) {\n this.selectedChild = index;\n }\n });\n this.radioOptions[0].shadowRoot.querySelector(\"input\").tabIndex =\n this.selectedChild > 0 ? -1 : 0;\n }\n }\n\n @Listen(\"icSelectedChange\")\n changeHandler(): void {\n const selectedOption = this.radioOptions.findIndex(\n (radioOption) => radioOption.selected\n );\n if (selectedOption < 0) {\n this.radioOptions[0].shadowRoot.querySelector(\"input\").tabIndex = 0;\n this.selectedChild = selectedOption;\n }\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkOrientation();\n });\n\n this.resizeObserver.observe(this.host);\n };\n\n private checkOrientation() {\n if (this.initialOrientation === \"horizontal\") {\n let totalWidth = 0;\n const radioOptionGap = 40;\n for (let i = 0; i < this.radioOptions.length; i++) {\n totalWidth += this.radioOptions[i].clientWidth;\n if (i < this.radioOptions.length - 1) {\n totalWidth += radioOptionGap;\n }\n }\n\n if (\n this.currentOrientation === \"horizontal\" &&\n totalWidth > this.radioContainer.clientWidth\n ) {\n this.currentOrientation = \"vertical\";\n } else if (\n this.currentOrientation === \"vertical\" &&\n totalWidth < this.radioContainer.clientWidth\n ) {\n this.currentOrientation = \"horizontal\";\n }\n }\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, true)\n ].click();\n event.preventDefault();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, false)\n ].click();\n event.preventDefault();\n }\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numRadios = this.radioOptions.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n //check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numRadios;\n } else if (nextItem > numRadios) {\n nextItem = 0;\n }\n\n //if next item is disabled then find next\n if (this.radioOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n\n return nextItem;\n };\n\n render() {\n renderHiddenInput(\n true,\n this.host,\n this.name,\n this.checkedValue,\n this.disabled\n );\n\n return (\n <Host onKeyDown={this.handleKeyDown} class={{ small: this.small }}>\n <div\n role=\"radiogroup\"\n aria-label={`${this.label}${this.required ? \", required\" : \"\"}`}\n >\n {!this.hideLabel && (\n <ic-input-label\n class={{ [`${this.validationStatus}`]: true }}\n label={this.label}\n helperText={this.helperText}\n required={this.required}\n disabled={this.disabled}\n ></ic-input-label>\n )}\n <div\n class={{\n \"radio-buttons-container\": true,\n horizontal: this.currentOrientation === \"horizontal\",\n }}\n ref={(el) => (this.radioContainer = el)}\n >\n <slot></slot>\n </div>\n </div>\n {hasValidationStatus(this.validationStatus, this.disabled) && (\n <ic-input-validation\n ariaLiveMode=\"polite\"\n status={this.validationStatus}\n message={this.validationText}\n ></ic-input-validation>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-radio-group.js","sourceRoot":"","sources":["../../../src/components/ic-radio-group/ic-radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n hasValidationStatus,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n renderHiddenInput,\n checkResizeObserver,\n} from \"../../utils/helpers\";\nimport {\n IcInformationStatusOrEmpty,\n IcOrientation,\n IcSizesNoLarge,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-radio-group.types\";\n\n@Component({\n tag: \"ic-radio-group\",\n styleUrl: \"ic-radio-group.css\",\n shadow: true,\n})\nexport class RadioGroup {\n private radioContainer: HTMLDivElement;\n private radioOptions: HTMLIcRadioOptionElement[];\n private resizeObserver: ResizeObserver = null;\n\n @Element() el: HTMLIcRadioGroupElement;\n\n @State() checkedValue: string = \"\";\n @State() currentOrientation: IcOrientation;\n @State() initialOrientation: IcOrientation;\n @State() selectedChild: number = -1;\n\n /**\n * If `true`, the disabled state will be set.\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 radio group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the radio group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n /**\n * The orientation of the radio buttons in the radio group. If there are more than two radio buttons in a radio group or either of the radio buttons use the `additional-field` slot, then the orientation will always be vertical.\n */\n @Prop() orientation: IcOrientation = \"vertical\";\n\n /**\n * If `true`, the radio group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The size of the radio group component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n /**\n * The validation text - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n @Watch(\"orientation\")\n orientationChangeHandler(): void {\n this.initialOrientation = this.orientation;\n }\n\n /**\n * Emitted when a user selects a radio.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n this.orientationChangeHandler();\n this.currentOrientation = this.initialOrientation;\n }\n\n componentDidLoad(): void {\n this.radioOptions = Array.from(this.el.querySelectorAll(\"ic-radio-option\"));\n\n this.radioOptions.forEach((radioOption, index) => {\n if (!radioOption.selected) {\n radioOption.selected = this.checkedValue === radioOption.value;\n }\n radioOption.name = this.name;\n radioOption.groupLabel = this.label;\n if (radioOption.selected) {\n this.selectedChild = index;\n this.checkedValue = radioOption.value;\n }\n });\n this.radioOptions[0].shadowRoot.querySelector(\"input\").tabIndex =\n this.selectedChild > 0 ? -1 : 0;\n\n if (\n this.initialOrientation === \"horizontal\" &&\n this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (isSlotUsed(this.radioOptions[0], \"additional-field\") ||\n isSlotUsed(this.radioOptions[1], \"additional-field\"))))\n ) {\n this.currentOrientation = \"vertical\";\n }\n\n checkResizeObserver(this.runResizeObserver);\n\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Radio Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler(event: CustomEvent<IcValueEventDetail>): void {\n this.checkedValue = event.detail.value;\n const selectedOption = event.target as HTMLIcRadioOptionElement;\n this.icChange.emit({\n value: this.checkedValue,\n selectedOption: {\n radio: selectedOption,\n textFieldValue: selectedOption?.querySelector(\"ic-text-field\")?.value,\n },\n });\n\n if (this.radioOptions !== undefined) {\n this.radioOptions.forEach((radioOption, index) => {\n radioOption.selected = this.checkedValue === radioOption.value;\n if (radioOption.selected) {\n this.selectedChild = index;\n }\n });\n this.radioOptions[0].shadowRoot.querySelector(\"input\").tabIndex =\n this.selectedChild > 0 ? -1 : 0;\n }\n }\n\n @Listen(\"icSelectedChange\")\n changeHandler(): void {\n const selectedOption = this.radioOptions.findIndex(\n (radioOption) => radioOption.selected\n );\n if (selectedOption < 0) {\n this.radioOptions[0].shadowRoot.querySelector(\"input\").tabIndex = 0;\n this.selectedChild = selectedOption;\n }\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkOrientation();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkOrientation() {\n if (this.initialOrientation === \"horizontal\") {\n let totalWidth = 0;\n const radioOptionGap = 40;\n for (let i = 0; i < this.radioOptions.length; i++) {\n totalWidth += this.radioOptions[i].clientWidth;\n if (i < this.radioOptions.length - 1) {\n totalWidth += radioOptionGap;\n }\n }\n\n if (\n this.currentOrientation === \"horizontal\" &&\n totalWidth > this.radioContainer.clientWidth\n ) {\n this.currentOrientation = \"vertical\";\n } else if (\n this.currentOrientation === \"vertical\" &&\n totalWidth < this.radioContainer.clientWidth\n ) {\n this.currentOrientation = \"horizontal\";\n }\n }\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, true)\n ].click();\n event.preventDefault();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, false)\n ].click();\n event.preventDefault();\n }\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numRadios = this.radioOptions.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n //check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numRadios;\n } else if (nextItem > numRadios) {\n nextItem = 0;\n }\n\n //if next item is disabled then find next\n if (this.radioOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n\n return nextItem;\n };\n\n render() {\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.checkedValue,\n this.disabled\n );\n\n return (\n <Host\n onKeyDown={this.handleKeyDown}\n class={{ small: this.small || this.size === \"small\" }}\n >\n <div\n role=\"radiogroup\"\n aria-label={`${this.label}${this.required ? \", required\" : \"\"}`}\n >\n {!this.hideLabel && (\n <ic-input-label\n class={{ [`${this.validationStatus}`]: true }}\n label={this.label}\n helperText={this.helperText}\n required={this.required}\n disabled={this.disabled}\n ></ic-input-label>\n )}\n <div\n class={{\n \"radio-buttons-container\": true,\n horizontal: this.currentOrientation === \"horizontal\",\n }}\n ref={(el) => (this.radioContainer = el)}\n >\n <slot></slot>\n </div>\n </div>\n {hasValidationStatus(this.validationStatus, this.disabled) && (\n <ic-input-validation\n ariaLiveMode=\"polite\"\n status={this.validationStatus}\n message={this.validationText}\n ></ic-input-validation>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -42,6 +42,13 @@ describe("ic-radio-group", () => {
42
42
  });
43
43
  expect(page.root).toMatchSnapshot("renders-with-selected-option");
44
44
  });
45
+ it("should test radio option as submit on form", async () => {
46
+ const page = await newSpecPage({
47
+ components: [RadioOption],
48
+ html: `<form id="new-form"></form><ic-radio-option id="ic-radio-option" label="IC Radio Test" value="test-value" form="new-form" selected></ic-radio-option>`,
49
+ });
50
+ expect(page.root).toMatchSnapshot();
51
+ });
45
52
  it("should render with validation status", async () => {
46
53
  const page = await newSpecPage({
47
54
  components: [RadioGroup, RadioOption],
@@ -1 +1 @@
1
- {"version":3,"file":"ic-radio-group.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-radio-group/test/basic/ic-radio-group.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { RadioGroup } from \"../../ic-radio-group\";\nimport { RadioOption } from \"../../../ic-radio-option/ic-radio-option\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\ndescribe(\"ic-radio-group\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders\");\n });\n\n it(\"should render as required\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-required\");\n });\n\n it(\"should render as helper text\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" helperText=\"helper test\">\n <ic-radio-option value=\"test\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-helpertext\");\n });\n\n it(\"should render with selected option\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-selected-option\");\n });\n\n it(\"should render with validation status\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required validation-status=\"error\" validation-text=\"error\">\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-validation-status\");\n });\n\n it(\"should render radio option disabled\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-disabled\");\n });\n\n it(\"should render with unselected static additional field\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"renders-with-unselected-additional-field\"\n );\n });\n\n it(\"should render with selected static additional field\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" selected label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-selected-additional-field\");\n });\n\n it(\"should render with dynamic additional field\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" label=\"test label\" group-label=\"test group\" additional-field-display=\"dynamic\" selected>\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-dynamic-additional-field\");\n });\n\n it(\"should emit an updated checked value when selected\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icChange\", callbackFn);\n page.rootInstance.selectHandler({ detail: { value: \"true\" } });\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should get the next item to select\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <ic-radio-option value=\"test2\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const nextItemCalc = page.rootInstance.getNextItemToSelect(0, true);\n\n page.waitForChanges();\n expect(nextItemCalc).toBe(1);\n });\n\n it(\"should select the radio option when clicked\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <ic-radio-option label=\"test label\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\" value=\"Test value\"></ic-text-field>\n </ic-radio-option>\n <ic-radio-option label=\"test label\" value=\"Radio value\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icCheck\", callbackFn);\n\n page.rootInstance.radioOptions[1].click();\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n expect(page.rootInstance.checkedValue).toBe(\"Test value\");\n\n page.rootInstance.radioOptions[2].click();\n await page.waitForChanges();\n expect(page.rootInstance.checkedValue).toBe(\"Radio value\");\n });\n\n it(\"should not select the radio option when textfield clicked\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <ic-radio-option label=\"test label\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\" value=\"Test value\"></ic-text-field>\n </ic-radio-option>\n </ic-radio-group>`,\n });\n\n const div =\n page.rootInstance.radioOptions[1].shadowRoot.querySelector(\n \".dynamic-container\"\n );\n div.click();\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[1].selected).toBe(false);\n });\n\n it(\"should emit new radio value when text field value given\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icCheck\", callbackFn);\n page.rootInstance.textfieldValueHandler({\n detail: { value: \"value\" },\n stopImmediatePropagation: jest.fn(),\n });\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should emit default radio value when no text field value given\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icCheck\", callbackFn);\n page.rootInstance.textfieldValueHandler({\n detail: { value: \"\" },\n stopImmediatePropagation: jest.fn(),\n });\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should call 'setFocus' when radio option is focused\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<ic-radio-option value=\"test\" selected></ic-radio-option> `,\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 form reset event\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<form>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <button id=\"resetButton\" type=\"reset\">Reset</button> \n </form>`,\n });\n\n expect(page.root.selected).toBe(true);\n\n page.root.checked = false;\n await page.waitForChanges();\n\n expect(page.root.checked).toBe(false);\n\n await page.rootInstance.handleFormReset();\n await page.waitForChanges();\n\n expect(page.root.selected).toBe(true);\n\n //test disconnected callback\n page.setContent(\"\");\n });\n\n it(\"should change the orientation of the radio group to vertical if the user sets the orientation as horizontal and there are more than 2 radio options in the radio group\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test2\" ></ic-radio-option> \n <ic-radio-option value=\"test3\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.rootInstance.currentOrientation).toMatch(\"vertical\");\n });\n\n it(\"should change the orientation of the radio group to vertical if the user has additional fields on any of the radio buttons in the group\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.rootInstance.currentOrientation).toMatch(\"vertical\");\n });\n\n it(\"should call runResizeObserver\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n await page.rootInstance.runResizeObserver();\n page.waitForChanges();\n\n const resize = new ResizeObserver(() => {\n page.rootInstance.checkOrientation();\n });\n\n page.waitForChanges();\n\n expect(page.rootInstance.resizeObserver).toBe(resize);\n });\n\n it(\"should call checkOrientation\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test2\"></ic-radio-option> \n <ic-radio-option value=\"test3\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n await page.rootInstance.checkOrientation();\n page.waitForChanges();\n\n expect(page.rootInstance.currentOrientation).toBe(\"vertical\");\n });\n\n it(\"should test key down handler\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\"></ic-radio-option> \n <ic-radio-option value=\"test2\" disabled></ic-radio-option> \n <ic-radio-option value=\"test3\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n //test wrap around from end to beginning\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowDown\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(true);\n expect(page.rootInstance.radioOptions[2].selected).toBe(false);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowDown\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(false);\n expect(page.rootInstance.radioOptions[2].selected).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowUp\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(true);\n expect(page.rootInstance.radioOptions[2].selected).toBe(false);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowRight\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(false);\n expect(page.rootInstance.radioOptions[2].selected).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowLeft\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(true);\n expect(page.rootInstance.radioOptions[2].selected).toBe(false);\n\n //test wrap around from beginning to end\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowUp\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(false);\n expect(page.rootInstance.radioOptions[2].selected).toBe(true);\n });\n});\n"]}
1
+ {"version":3,"file":"ic-radio-group.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-radio-group/test/basic/ic-radio-group.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { RadioGroup } from \"../../ic-radio-group\";\nimport { RadioOption } from \"../../../ic-radio-option/ic-radio-option\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\ndescribe(\"ic-radio-group\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders\");\n });\n\n it(\"should render as required\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-required\");\n });\n\n it(\"should render as helper text\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" helperText=\"helper test\">\n <ic-radio-option value=\"test\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-helpertext\");\n });\n\n it(\"should render with selected option\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-selected-option\");\n });\n\n it(\"should test radio option as submit on form\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<form id=\"new-form\"></form><ic-radio-option id=\"ic-radio-option\" label=\"IC Radio Test\" value=\"test-value\" form=\"new-form\" selected></ic-radio-option>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with validation status\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required validation-status=\"error\" validation-text=\"error\">\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-validation-status\");\n });\n\n it(\"should render radio option disabled\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-disabled\");\n });\n\n it(\"should render with unselected static additional field\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"renders-with-unselected-additional-field\"\n );\n });\n\n it(\"should render with selected static additional field\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" selected label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-selected-additional-field\");\n });\n\n it(\"should render with dynamic additional field\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\">\n <ic-radio-option value=\"test\" label=\"test label\" group-label=\"test group\" additional-field-display=\"dynamic\" selected>\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-dynamic-additional-field\");\n });\n\n it(\"should emit an updated checked value when selected\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icChange\", callbackFn);\n page.rootInstance.selectHandler({ detail: { value: \"true\" } });\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should get the next item to select\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <ic-radio-option value=\"test2\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const nextItemCalc = page.rootInstance.getNextItemToSelect(0, true);\n\n page.waitForChanges();\n expect(nextItemCalc).toBe(1);\n });\n\n it(\"should select the radio option when clicked\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <ic-radio-option label=\"test label\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\" value=\"Test value\"></ic-text-field>\n </ic-radio-option>\n <ic-radio-option label=\"test label\" value=\"Radio value\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icCheck\", callbackFn);\n\n page.rootInstance.radioOptions[1].click();\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n expect(page.rootInstance.checkedValue).toBe(\"Test value\");\n\n page.rootInstance.radioOptions[2].click();\n await page.waitForChanges();\n expect(page.rootInstance.checkedValue).toBe(\"Radio value\");\n });\n\n it(\"should not select the radio option when textfield clicked\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <ic-radio-option label=\"test label\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\" value=\"Test value\"></ic-text-field>\n </ic-radio-option>\n </ic-radio-group>`,\n });\n\n const div =\n page.rootInstance.radioOptions[1].shadowRoot.querySelector(\n \".dynamic-container\"\n );\n div.click();\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[1].selected).toBe(false);\n });\n\n it(\"should emit new radio value when text field value given\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icCheck\", callbackFn);\n page.rootInstance.textfieldValueHandler({\n detail: { value: \"value\" },\n stopImmediatePropagation: jest.fn(),\n });\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should emit default radio value when no text field value given\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icCheck\", callbackFn);\n page.rootInstance.textfieldValueHandler({\n detail: { value: \"\" },\n stopImmediatePropagation: jest.fn(),\n });\n await page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should call 'setFocus' when radio option is focused\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<ic-radio-option value=\"test\" selected></ic-radio-option> `,\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 form reset event\", async () => {\n const page = await newSpecPage({\n components: [RadioOption],\n html: `<form>\n <ic-radio-option value=\"test\" selected></ic-radio-option> \n <button id=\"resetButton\" type=\"reset\">Reset</button> \n </form>`,\n });\n\n expect(page.root.selected).toBe(true);\n\n page.root.checked = false;\n await page.waitForChanges();\n\n expect(page.root.checked).toBe(false);\n\n await page.rootInstance.handleFormReset();\n await page.waitForChanges();\n\n expect(page.root.selected).toBe(true);\n\n //test disconnected callback\n page.setContent(\"\");\n });\n\n it(\"should change the orientation of the radio group to vertical if the user sets the orientation as horizontal and there are more than 2 radio options in the radio group\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test2\" ></ic-radio-option> \n <ic-radio-option value=\"test3\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.rootInstance.currentOrientation).toMatch(\"vertical\");\n });\n\n it(\"should change the orientation of the radio group to vertical if the user has additional fields on any of the radio buttons in the group\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n expect(page.rootInstance.currentOrientation).toMatch(\"vertical\");\n });\n\n it(\"should call runResizeObserver\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test\" disabled label=\"test label\" group-label=\"test group\">\n <ic-text-field slot=\"additional-field\" placeholder=\"Placeholder\" label=\"Test label\"></ic-text-field>\n </ic-radio-option> \n </ic-radio-group>`,\n });\n\n await page.rootInstance.runResizeObserver();\n page.waitForChanges();\n\n const resize = new ResizeObserver(() => {\n page.rootInstance.checkOrientation();\n });\n\n page.waitForChanges();\n\n expect(page.rootInstance.resizeObserver).toBe(resize);\n });\n\n it(\"should call checkOrientation\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption, TextField],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required orientation=\"horizontal\">\n <ic-radio-option value=\"test1\" selected></ic-radio-option>\n <ic-radio-option value=\"test2\"></ic-radio-option> \n <ic-radio-option value=\"test3\"></ic-radio-option> \n </ic-radio-group>`,\n });\n\n await page.rootInstance.checkOrientation();\n page.waitForChanges();\n\n expect(page.rootInstance.currentOrientation).toBe(\"vertical\");\n });\n\n it(\"should test key down handler\", async () => {\n const page = await newSpecPage({\n components: [RadioGroup, RadioOption],\n html: `<ic-radio-group label=\"test label\" name=\"test\" required>\n <ic-radio-option value=\"test\"></ic-radio-option> \n <ic-radio-option value=\"test2\" disabled></ic-radio-option> \n <ic-radio-option value=\"test3\" selected></ic-radio-option> \n </ic-radio-group>`,\n });\n\n //test wrap around from end to beginning\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowDown\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(true);\n expect(page.rootInstance.radioOptions[2].selected).toBe(false);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowDown\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(false);\n expect(page.rootInstance.radioOptions[2].selected).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowUp\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(true);\n expect(page.rootInstance.radioOptions[2].selected).toBe(false);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowRight\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(false);\n expect(page.rootInstance.radioOptions[2].selected).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowLeft\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(true);\n expect(page.rootInstance.radioOptions[2].selected).toBe(false);\n\n //test wrap around from beginning to end\n page.root.dispatchEvent(\n new window.window.KeyboardEvent(\"keydown\", {\n key: \"ArrowUp\",\n bubbles: true,\n cancelable: true,\n })\n );\n\n await page.waitForChanges();\n\n expect(page.rootInstance.radioOptions[0].selected).toBe(false);\n expect(page.rootInstance.radioOptions[2].selected).toBe(true);\n });\n});\n"]}
@@ -1,5 +1,8 @@
1
1
  import { Host, h, } from "@stencil/core";
2
- import { getSlotContent, onComponentRequiredPropUndefined, addFormResetListener, removeFormResetListener, removeDisabledFalse, } from "../../utils/helpers";
2
+ import { getSlotContent, onComponentRequiredPropUndefined, addFormResetListener, removeFormResetListener, removeDisabledFalse, isPropDefined, } from "../../utils/helpers";
3
+ /**
4
+ * @slot additional-field - Content to displayed alongside a radio option.
5
+ */
3
6
  export class RadioOption {
4
7
  constructor() {
5
8
  this.defaultRadioValue = "";
@@ -12,7 +15,7 @@ export class RadioOption {
12
15
  }
13
16
  this.skipFocus = false;
14
17
  if (this.hasAdditionalField) {
15
- const textfield = this.host.querySelector("ic-text-field");
18
+ const textfield = this.el.querySelector("ic-text-field");
16
19
  this.value =
17
20
  textfield.value !== "" ? textfield.value : this.defaultRadioValue;
18
21
  }
@@ -34,6 +37,12 @@ export class RadioOption {
34
37
  this.additionalFieldDisplay = "static";
35
38
  this.disabled = false;
36
39
  this.dynamicText = "This selection requires additional answers";
40
+ this.form = undefined;
41
+ this.formaction = undefined;
42
+ this.formenctype = undefined;
43
+ this.formmethod = undefined;
44
+ this.formnovalidate = undefined;
45
+ this.formtarget = undefined;
37
46
  this.groupLabel = undefined;
38
47
  this.label = undefined;
39
48
  this.name = undefined;
@@ -45,28 +54,28 @@ export class RadioOption {
45
54
  this.icSelectedChange.emit();
46
55
  }
47
56
  disconnectedCallback() {
48
- removeFormResetListener(this.host, this.handleFormReset);
57
+ removeFormResetListener(this.el, this.handleFormReset);
49
58
  }
50
59
  componentWillLoad() {
51
- const additonalFieldContent = getSlotContent(this.host, "additional-field");
52
- if (additonalFieldContent !== null) {
60
+ const additionalFieldContent = getSlotContent(this.el, "additional-field");
61
+ if (additionalFieldContent !== null) {
53
62
  this.hasAdditionalField = true;
54
- const Element = additonalFieldContent[0];
63
+ const Element = additionalFieldContent[0];
55
64
  if (Element.tagName === "IC-TEXT-FIELD") {
56
65
  const textField = Element;
57
66
  textField.hiddenInput = false;
58
67
  }
59
68
  }
60
69
  this.defaultRadioValue = this.value;
61
- addFormResetListener(this.host, this.handleFormReset);
62
- removeDisabledFalse(this.disabled, this.host);
70
+ addFormResetListener(this.el, this.handleFormReset);
71
+ removeDisabledFalse(this.disabled, this.el);
63
72
  }
64
73
  componentDidLoad() {
65
74
  onComponentRequiredPropUndefined([{ prop: this.value, propName: "value" }], "Radio Option");
66
75
  }
67
76
  componentDidRender() {
68
77
  if (this.additionalFieldDisplay === "static") {
69
- const textfield = this.host.querySelector("ic-text-field");
78
+ const textfield = this.el.querySelector("ic-text-field");
70
79
  if (!this.selected) {
71
80
  textfield && textfield.setAttribute("disabled", "");
72
81
  }
@@ -103,13 +112,13 @@ export class RadioOption {
103
112
  * Sets focus on the radio option.
104
113
  */
105
114
  async setFocus() {
106
- if (this.host.shadowRoot.querySelector("input")) {
107
- this.host.shadowRoot.querySelector("input").focus();
115
+ if (this.el.shadowRoot.querySelector("input")) {
116
+ this.el.shadowRoot.querySelector("input").focus();
108
117
  }
109
118
  }
110
119
  render() {
111
- const id = `ic-radio-option-${this.label !== undefined ? this.label : this.value}-${this.groupLabel}`;
112
- return (h(Host, { onClick: this.handleClick, class: { disabled: this.disabled } }, h("div", { class: { ["container"]: true, ["disabled"]: this.disabled } }, h("div", null, h("input", { role: "radio", tabindex: this.selected ? "0" : "-1", type: "radio", name: this.name, id: id, value: this.value, disabled: this.disabled ? true : null, checked: this.selected, ref: (el) => (this.radioElement = el) }), h("span", { class: "checkmark" })), h("ic-typography", { class: "radio-label", variant: "body" }, h("label", { htmlFor: id }, this.label))), this.hasAdditionalField && (h("div", { onClick: this.swallowClick, class: {
120
+ const id = `ic-radio-option-${isPropDefined(this.label) ? this.label : this.value}-${this.groupLabel}`;
121
+ return (h(Host, { onClick: this.handleClick, class: { disabled: this.disabled } }, h("div", { class: { ["container"]: true, ["disabled"]: this.disabled } }, h("div", null, h("input", { role: "radio", tabindex: this.selected ? "0" : "-1", type: "radio", name: this.name, id: id, value: this.value, disabled: this.disabled ? true : null, checked: this.selected, ref: (el) => (this.radioElement = el), form: this.form, formaction: this.formaction, formenctype: this.formenctype, formmethod: this.formmethod, formnovalidate: this.formnovalidate, formtarget: this.formtarget }), h("span", { class: "checkmark" })), h("ic-typography", { class: "radio-label", variant: "body" }, h("label", { htmlFor: id }, this.label))), this.hasAdditionalField && (h("div", { onClick: this.swallowClick, class: {
113
122
  "dynamic-container": true,
114
123
  hidden: this.additionalFieldDisplay === "dynamic" && !this.selected,
115
124
  } }, this.additionalFieldDisplay === "dynamic" && (h("div", { class: "branch-corner" })), h("div", null, this.additionalFieldDisplay === "dynamic" && (h("ic-typography", { variant: "caption" }, h("p", { class: "dynamic-text" }, this.dynamicText))), h("div", { class: {
@@ -191,6 +200,108 @@ export class RadioOption {
191
200
  "reflect": false,
192
201
  "defaultValue": "\"This selection requires additional answers\""
193
202
  },
203
+ "form": {
204
+ "type": "string",
205
+ "mutable": false,
206
+ "complexType": {
207
+ "original": "string",
208
+ "resolved": "string",
209
+ "references": {}
210
+ },
211
+ "required": false,
212
+ "optional": true,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": "The <form> element to associate the radio with."
216
+ },
217
+ "attribute": "form",
218
+ "reflect": false
219
+ },
220
+ "formaction": {
221
+ "type": "string",
222
+ "mutable": false,
223
+ "complexType": {
224
+ "original": "string",
225
+ "resolved": "string",
226
+ "references": {}
227
+ },
228
+ "required": false,
229
+ "optional": true,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": "The URL that processes the information submitted by the radio. It overrides the action attribute of the radio's form owner. Does nothing if there is no form owner."
233
+ },
234
+ "attribute": "formaction",
235
+ "reflect": false
236
+ },
237
+ "formenctype": {
238
+ "type": "string",
239
+ "mutable": false,
240
+ "complexType": {
241
+ "original": "string",
242
+ "resolved": "string",
243
+ "references": {}
244
+ },
245
+ "required": false,
246
+ "optional": true,
247
+ "docs": {
248
+ "tags": [],
249
+ "text": "The way the submitted form data is encoded."
250
+ },
251
+ "attribute": "formenctype",
252
+ "reflect": false
253
+ },
254
+ "formmethod": {
255
+ "type": "string",
256
+ "mutable": false,
257
+ "complexType": {
258
+ "original": "string",
259
+ "resolved": "string",
260
+ "references": {}
261
+ },
262
+ "required": false,
263
+ "optional": true,
264
+ "docs": {
265
+ "tags": [],
266
+ "text": "The HTTP method used to submit the form."
267
+ },
268
+ "attribute": "formmethod",
269
+ "reflect": false
270
+ },
271
+ "formnovalidate": {
272
+ "type": "boolean",
273
+ "mutable": false,
274
+ "complexType": {
275
+ "original": "boolean",
276
+ "resolved": "boolean",
277
+ "references": {}
278
+ },
279
+ "required": false,
280
+ "optional": true,
281
+ "docs": {
282
+ "tags": [],
283
+ "text": "If `true`, the form will not be validated when submitted."
284
+ },
285
+ "attribute": "formnovalidate",
286
+ "reflect": false
287
+ },
288
+ "formtarget": {
289
+ "type": "string",
290
+ "mutable": false,
291
+ "complexType": {
292
+ "original": "string",
293
+ "resolved": "string",
294
+ "references": {}
295
+ },
296
+ "required": false,
297
+ "optional": true,
298
+ "docs": {
299
+ "tags": [],
300
+ "text": "The place to display the response from submitting the form. It overrides the target attribute of the radio's form owner."
301
+ },
302
+ "attribute": "formtarget",
303
+ "reflect": false
304
+ },
194
305
  "groupLabel": {
195
306
  "type": "string",
196
307
  "mutable": false,
@@ -368,7 +479,7 @@ export class RadioOption {
368
479
  }
369
480
  };
370
481
  }
371
- static get elementRef() { return "host"; }
482
+ static get elementRef() { return "el"; }
372
483
  static get watchers() {
373
484
  return [{
374
485
  "propName": "selected",
@@ -1 +1 @@
1
- {"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,OAAO,EACP,KAAK,EAEL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,GACN,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,OAAO,WAAW;;IACd,sBAAiB,GAAW,EAAE,CAAC;IAC/B,uBAAkB,GAAY,KAAK,CAAC;IAEpC,cAAS,GAAG,KAAK,CAAC;IAgJlB,gBAAW,GAAG,GAAG,EAAE;MACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;UAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,IAAI,CAAC,kBAAkB,EAAE;UAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;UAC3D,IAAI,CAAC,KAAK;YACR,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACrE;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;UAChB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;UAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;OACJ;IACH,CAAC,CAAC;IAEM,iBAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;MAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEM,oBAAe,GAAG,GAAS,EAAE;MACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;MACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACzC,CAAC,CAAC;kCAtKA,QAAQ;oBAKmB,KAAK;uBAKJ,4CAA4C;;;;;oBAyBb,KAAK;6BACrC,IAAI,CAAC,QAAQ;;EAG1C,oBAAoB;IAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;EAC/B,CAAC;EAiBD,oBAAoB;IAClB,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;EAC3D,CAAC;EAED,iBAAiB;IACf,MAAM,qBAAqB,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAE5E,IAAI,qBAAqB,KAAK,IAAI,EAAE;MAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;MAC/B,MAAM,OAAO,GAAG,qBAAqB,CAAC,CAAC,CAAgB,CAAC;MACxD,IAAI,OAAO,CAAC,OAAO,KAAK,eAAe,EAAE;QACvC,MAAM,SAAS,GAAG,OAAiC,CAAC;QACpD,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;OAC/B;KACF;IAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;IAEpC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAEtD,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;EAChD,CAAC;EAED,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,cAAc,CACf,CAAC;EACJ,CAAC;EAED,kBAAkB;IAChB,IAAI,IAAI,CAAC,sBAAsB,KAAK,QAAQ,EAAE;MAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;MAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;OACrD;WAAM;QACL,SAAS,IAAI,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;OACpD;KACF;EACH,CAAC;EAGD,qBAAqB,CAAC,KAAqC;IACzD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAE1C,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,IAAI,cAAc,KAAK,EAAE,EAAE;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;UAChB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;UAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;OACJ;WAAM;QACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;UAChB,KAAK,EAAE,IAAI,CAAC,iBAAiB;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;UAC1B,KAAK,EAAE,IAAI,CAAC,iBAAiB;SAC9B,CAAC,CAAC;OACJ;KACF;IAED,KAAK,CAAC,wBAAwB,EAAE,CAAC;EACnC,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,QAAQ;IACZ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;MAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;KACrD;EACH,CAAC;EAkCD,MAAM;IACJ,MAAM,EAAE,GAAG,mBACT,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAC/C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAEtB,OAAO,CACL,EAAC,IAAI,IAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;MACjE,WAAK,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;QAC9D;UACE,aACE,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EACpC,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACrC,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,GAC9B;UACT,YAAM,KAAK,EAAC,WAAW,GAAQ,CAC3B;QACN,qBAAe,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,MAAM;UAC/C,aAAO,OAAO,EAAE,EAAE,IAAG,IAAI,CAAC,KAAK,CAAS,CAC1B,CACZ;MAEL,IAAI,CAAC,kBAAkB,IAAI,CAC1B,WACE,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE;UACL,mBAAmB,EAAE,IAAI;UACzB,MAAM,EACJ,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ;SAC9D;QAEA,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,CAC5C,WAAK,KAAK,EAAC,eAAe,GAAO,CAClC;QACD;UACG,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,CAC5C,qBAAe,OAAO,EAAC,SAAS;YAC9B,SAAG,KAAK,EAAC,cAAc,IAAE,IAAI,CAAC,WAAW,CAAK,CAChC,CACjB;UACD,WACE,KAAK,EAAE;cACL,0BAA0B,EACxB,IAAI,CAAC,sBAAsB,KAAK,QAAQ;aAC3C;YAED,YAAM,IAAI,EAAC,kBAAkB,GAAQ,CACjC,CACF,CACF,CACP,CACI,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport { IcAdditionalFieldTypes, IcValueEventDetail } from \"../../utils/types\";\nimport {\n getSlotContent,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement: HTMLInputElement;\n private skipFocus = false;\n\n @Element() host: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name: string;\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icCheck instead.\n */\n @Event() radioOptionSelect: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.host, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n const additonalFieldContent = getSlotContent(this.host, \"additional-field\");\n\n if (additonalFieldContent !== null) {\n this.hasAdditionalField = true;\n const Element = additonalFieldContent[0] as HTMLElement;\n if (Element.tagName === \"IC-TEXT-FIELD\") {\n const textField = Element as HTMLIcTextFieldElement;\n textField.hiddenInput = false;\n }\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.host, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.host);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.host.querySelector(\"ic-text-field\");\n if (!this.selected) {\n textfield && textfield.setAttribute(\"disabled\", \"\");\n } else {\n textfield && textfield.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n textfieldValueHandler(event: CustomEvent<{ value: string }>): void {\n const textFieldValue = event.detail.value;\n\n if (this.selected) {\n if (textFieldValue !== \"\") {\n this.value = event.detail.value;\n this.icCheck.emit({\n value: this.value,\n });\n this.radioOptionSelect.emit({\n value: this.value,\n });\n } else {\n this.value = this.defaultRadioValue;\n this.icCheck.emit({\n value: this.defaultRadioValue,\n });\n this.radioOptionSelect.emit({\n value: this.defaultRadioValue,\n });\n }\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.host.shadowRoot.querySelector(\"input\")) {\n this.host.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n private handleClick = () => {\n if (!this.disabled) {\n if (this.skipFocus === false) {\n this.radioElement.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n const textfield = this.host.querySelector(\"ic-text-field\");\n this.value =\n textfield.value !== \"\" ? textfield.value : this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n\n this.radioOptionSelect.emit({\n value: this.value,\n });\n }\n };\n\n private swallowClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const id = `ic-radio-option-${\n this.label !== undefined ? this.label : this.value\n }-${this.groupLabel}`;\n\n return (\n <Host onClick={this.handleClick} class={{ disabled: this.disabled }}>\n <div class={{ [\"container\"]: true, [\"disabled\"]: this.disabled }}>\n <div>\n <input\n role=\"radio\"\n tabindex={this.selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={this.name}\n id={id}\n value={this.value}\n disabled={this.disabled ? true : null}\n checked={this.selected}\n ref={(el) => (this.radioElement = el)}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{this.label}</label>\n </ic-typography>\n </div>\n\n {this.hasAdditionalField && (\n <div\n onClick={this.swallowClick}\n class={{\n \"dynamic-container\": true,\n hidden:\n this.additionalFieldDisplay === \"dynamic\" && !this.selected,\n }}\n >\n {this.additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {this.additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">{this.dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n this.additionalFieldDisplay === \"static\",\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport { IcAdditionalFieldTypes, IcValueEventDetail } from \"../../utils/types\";\nimport {\n getSlotContent,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the radio. It overrides the action attribute of the radio's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the radio's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name: string;\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icCheck instead.\n */\n @Event() radioOptionSelect: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n const additionalFieldContent = getSlotContent(this.el, \"additional-field\");\n\n if (additionalFieldContent !== null) {\n this.hasAdditionalField = true;\n const Element = additionalFieldContent[0] as HTMLElement;\n if (Element.tagName === \"IC-TEXT-FIELD\") {\n const textField = Element as HTMLIcTextFieldElement;\n textField.hiddenInput = false;\n }\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.el.querySelector(\"ic-text-field\");\n if (!this.selected) {\n textfield && textfield.setAttribute(\"disabled\", \"\");\n } else {\n textfield && textfield.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n textfieldValueHandler(event: CustomEvent<{ value: string }>): void {\n const textFieldValue = event.detail.value;\n\n if (this.selected) {\n if (textFieldValue !== \"\") {\n this.value = event.detail.value;\n this.icCheck.emit({\n value: this.value,\n });\n this.radioOptionSelect.emit({\n value: this.value,\n });\n } else {\n this.value = this.defaultRadioValue;\n this.icCheck.emit({\n value: this.defaultRadioValue,\n });\n this.radioOptionSelect.emit({\n value: this.defaultRadioValue,\n });\n }\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n private handleClick = () => {\n if (!this.disabled) {\n if (this.skipFocus === false) {\n this.radioElement.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n const textfield = this.el.querySelector(\"ic-text-field\");\n this.value =\n textfield.value !== \"\" ? textfield.value : this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n\n this.radioOptionSelect.emit({\n value: this.value,\n });\n }\n };\n\n private swallowClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const id = `ic-radio-option-${\n isPropDefined(this.label) ? this.label : this.value\n }-${this.groupLabel}`;\n\n return (\n <Host onClick={this.handleClick} class={{ disabled: this.disabled }}>\n <div class={{ [\"container\"]: true, [\"disabled\"]: this.disabled }}>\n <div>\n <input\n role=\"radio\"\n tabindex={this.selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={this.name}\n id={id}\n value={this.value}\n disabled={this.disabled ? true : null}\n checked={this.selected}\n ref={(el) => (this.radioElement = el)}\n form={this.form}\n formaction={this.formaction}\n formenctype={this.formenctype}\n formmethod={this.formmethod}\n formnovalidate={this.formnovalidate}\n formtarget={this.formtarget}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{this.label}</label>\n </ic-typography>\n </div>\n\n {this.hasAdditionalField && (\n <div\n onClick={this.swallowClick}\n class={{\n \"dynamic-container\": true,\n hidden:\n this.additionalFieldDisplay === \"dynamic\" && !this.selected,\n }}\n >\n {this.additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {this.additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">{this.dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n this.additionalFieldDisplay === \"static\",\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}