@ukic/web-components 3.11.0 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/cjs/{constants-8354f6e6.js → constants-3a9ba64a.js} +3 -1
  2. package/dist/cjs/constants-3a9ba64a.js.map +1 -0
  3. package/dist/cjs/core.cjs.js +1 -1
  4. package/dist/cjs/{helpers-ffe1c2d9.js → helpers-478d1107.js} +2 -2
  5. package/dist/cjs/helpers-478d1107.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +2 -2
  7. package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-action-chip.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-alert.cjs.entry.js +5 -5
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  12. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-button_3.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +13 -6
  19. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox.cjs.entry.js +2 -2
  21. package/dist/cjs/ic-chip.cjs.entry.js +7 -6
  22. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-dialog.cjs.entry.js +37 -12
  25. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  27. package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
  28. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  31. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1389 -11
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +8 -7
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -3
  43. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  45. package/dist/cjs/ic-page-header.cjs.entry.js +3 -3
  46. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-pagination.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-popover-menu.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-radio-group.cjs.entry.js +15 -8
  51. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-radio-option.cjs.entry.js +3 -3
  53. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  55. package/dist/cjs/ic-select.cjs.entry.js +17 -10
  56. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  59. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-step.cjs.entry.js +68 -55
  61. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-stepper.cjs.entry.js +22 -4
  63. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  65. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-tab.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-text-field.cjs.entry.js +9 -9
  68. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  70. package/dist/cjs/ic-toast.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-top-navigation.cjs.entry.js +3 -3
  74. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  76. package/dist/cjs/index.cjs.js +2 -1
  77. package/dist/cjs/index.cjs.js.map +1 -1
  78. package/dist/cjs/loader.cjs.js +1 -1
  79. package/dist/collection/components/ic-alert/ic-alert.css +13 -23
  80. package/dist/collection/components/ic-alert/ic-alert.js +2 -2
  81. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  82. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +3 -3
  83. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +36 -3
  84. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  85. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +163 -0
  86. package/dist/collection/components/ic-chip/ic-chip.css +4 -0
  87. package/dist/collection/components/ic-chip/ic-chip.js +4 -3
  88. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  89. package/dist/collection/components/ic-dialog/ic-dialog.js +36 -11
  90. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  91. package/dist/collection/components/ic-input-validation/ic-input-validation.css +4 -1
  92. package/dist/collection/components/ic-input-validation/ic-input-validation.js +9 -8
  93. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  94. package/dist/collection/components/ic-menu/ic-menu.js +13 -9
  95. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  96. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +9 -0
  97. package/dist/collection/components/ic-page-header/ic-page-header.css +4 -0
  98. package/dist/collection/components/ic-radio-group/ic-radio-group.css +2 -2
  99. package/dist/collection/components/ic-radio-group/ic-radio-group.js +40 -7
  100. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  101. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +164 -0
  102. package/dist/collection/components/ic-radio-option/ic-radio-option.css +37 -1
  103. package/dist/collection/components/ic-select/ic-select.js +41 -8
  104. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  105. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +14 -2
  106. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +10 -0
  107. package/dist/collection/components/ic-select/ic-select_(single).stories.js +184 -4
  108. package/dist/collection/components/ic-status-tag/ic-status-tag.css +1 -4
  109. package/dist/collection/components/ic-step/ic-step.js +90 -53
  110. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  111. package/dist/collection/components/ic-step/ic-step.types.js.map +1 -1
  112. package/dist/collection/components/ic-stepper/ic-stepper.js +44 -2
  113. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  114. package/dist/collection/components/ic-stepper/ic-stepper.stories.js +76 -0
  115. package/dist/collection/components/ic-text-field/ic-text-field.css +2 -2
  116. package/dist/collection/components/ic-text-field/ic-text-field.js +32 -32
  117. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  118. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +13 -10
  119. package/dist/collection/utils/common-helpers.js +17 -0
  120. package/dist/collection/utils/common-helpers.js.map +1 -0
  121. package/dist/collection/utils/constants.js +1 -0
  122. package/dist/collection/utils/constants.js.map +1 -1
  123. package/dist/collection/utils/types.js.map +1 -1
  124. package/dist/components/constants.js +2 -1
  125. package/dist/components/constants.js.map +1 -1
  126. package/dist/components/helpers.js.map +1 -1
  127. package/dist/components/ic-alert.js +3 -3
  128. package/dist/components/ic-alert.js.map +1 -1
  129. package/dist/components/ic-checkbox-group.js +12 -4
  130. package/dist/components/ic-checkbox-group.js.map +1 -1
  131. package/dist/components/ic-chip.js +5 -4
  132. package/dist/components/ic-chip.js.map +1 -1
  133. package/dist/components/ic-dialog.js +35 -10
  134. package/dist/components/ic-dialog.js.map +1 -1
  135. package/dist/components/ic-input-validation2.js +7 -6
  136. package/dist/components/ic-input-validation2.js.map +1 -1
  137. package/dist/components/ic-menu2.js +1388 -9
  138. package/dist/components/ic-menu2.js.map +1 -1
  139. package/dist/components/ic-navigation-item.js +1 -1
  140. package/dist/components/ic-navigation-item.js.map +1 -1
  141. package/dist/components/ic-page-header.js +1 -1
  142. package/dist/components/ic-page-header.js.map +1 -1
  143. package/dist/components/ic-popover-menu.js.map +1 -1
  144. package/dist/components/ic-radio-group.js +14 -6
  145. package/dist/components/ic-radio-group.js.map +1 -1
  146. package/dist/components/ic-radio-option.js +1 -1
  147. package/dist/components/ic-radio-option.js.map +1 -1
  148. package/dist/components/ic-select.js +17 -9
  149. package/dist/components/ic-select.js.map +1 -1
  150. package/dist/components/ic-side-navigation.js.map +1 -1
  151. package/dist/components/ic-status-tag.js +1 -1
  152. package/dist/components/ic-status-tag.js.map +1 -1
  153. package/dist/components/ic-step.js +67 -53
  154. package/dist/components/ic-step.js.map +1 -1
  155. package/dist/components/ic-stepper.js +21 -2
  156. package/dist/components/ic-stepper.js.map +1 -1
  157. package/dist/components/ic-text-field.js +8 -8
  158. package/dist/components/ic-text-field.js.map +1 -1
  159. package/dist/components/ic-top-navigation.js +1 -1
  160. package/dist/components/ic-top-navigation.js.map +1 -1
  161. package/dist/components/index.js +1 -1
  162. package/dist/core/core.css +6 -6
  163. package/dist/core/core.esm.js +1 -1
  164. package/dist/core/core.esm.js.map +1 -1
  165. package/dist/core/index.esm.js +1 -1
  166. package/dist/core/{p-52a2f800.entry.js → p-0123dde7.entry.js} +2 -2
  167. package/dist/core/{p-52a2f800.entry.js.map → p-0123dde7.entry.js.map} +1 -1
  168. package/dist/core/{p-23b223bf.entry.js → p-01e018cb.entry.js} +2 -2
  169. package/dist/core/{p-1ab63899.entry.js → p-02af2b59.entry.js} +2 -2
  170. package/dist/core/p-05036675.entry.js +2 -0
  171. package/dist/core/p-05036675.entry.js.map +1 -0
  172. package/dist/core/{p-1d4dfef1.entry.js → p-0c36ce84.entry.js} +2 -2
  173. package/dist/core/{p-f78f34ce.entry.js → p-0ec76cff.entry.js} +2 -2
  174. package/dist/core/{p-35ee7c53.entry.js → p-13e093d0.entry.js} +2 -2
  175. package/dist/core/{p-a48b581a.entry.js → p-1423bd4a.entry.js} +2 -2
  176. package/dist/core/p-19f9d292.entry.js +2 -0
  177. package/dist/core/p-19f9d292.entry.js.map +1 -0
  178. package/dist/core/{p-3f55bb5b.entry.js → p-2126d37b.entry.js} +2 -2
  179. package/dist/core/{p-515ded3f.entry.js → p-228bc12d.entry.js} +2 -2
  180. package/dist/core/{p-d27e46ac.entry.js → p-25bef09d.entry.js} +2 -2
  181. package/dist/core/{p-eddc5517.entry.js → p-27e67d45.entry.js} +2 -2
  182. package/dist/core/{p-4dd8add9.entry.js → p-2800fc30.entry.js} +2 -2
  183. package/dist/core/{p-f045f59d.entry.js → p-33582352.entry.js} +2 -2
  184. package/dist/core/{p-58b8d154.entry.js → p-45097448.entry.js} +2 -2
  185. package/dist/core/p-45f743e4.entry.js +2 -0
  186. package/dist/core/p-45f743e4.entry.js.map +1 -0
  187. package/dist/core/{p-a4e67ab8.entry.js → p-511aa329.entry.js} +2 -2
  188. package/dist/core/p-511aa329.entry.js.map +1 -0
  189. package/dist/core/p-514daffe.entry.js +2 -0
  190. package/dist/core/p-514daffe.entry.js.map +1 -0
  191. package/dist/core/{p-3a78bf6e.entry.js → p-54803e3b.entry.js} +2 -2
  192. package/dist/core/{p-0201abbf.entry.js → p-6058d4c9.entry.js} +2 -2
  193. package/dist/core/p-621b0770.entry.js +2 -0
  194. package/dist/core/p-621b0770.entry.js.map +1 -0
  195. package/dist/core/{p-8d29c0fa.entry.js → p-675bb3e4.entry.js} +2 -2
  196. package/dist/core/{p-75e0278a.entry.js → p-6dbe70f1.entry.js} +2 -2
  197. package/dist/core/{p-b9018261.entry.js → p-6e139e6e.entry.js} +2 -2
  198. package/dist/core/p-6f50d2e0.entry.js +2 -0
  199. package/dist/core/p-6f50d2e0.entry.js.map +1 -0
  200. package/dist/core/p-71c86e71.entry.js +2 -0
  201. package/dist/core/p-71c86e71.entry.js.map +1 -0
  202. package/dist/core/{p-aab838e5.entry.js → p-80317cd1.entry.js} +2 -2
  203. package/dist/core/{p-02c2c31f.entry.js → p-813ad03c.entry.js} +2 -2
  204. package/dist/core/{p-69412f61.entry.js → p-8558b9b7.entry.js} +2 -2
  205. package/dist/core/{p-a468df37.entry.js → p-8684efeb.entry.js} +2 -2
  206. package/dist/core/{p-ffc608a1.entry.js → p-8b99a806.entry.js} +2 -2
  207. package/dist/core/{p-19366be6.entry.js → p-93479c36.entry.js} +2 -2
  208. package/dist/core/{p-69cc0f7d.entry.js → p-95d3d1a7.entry.js} +2 -2
  209. package/dist/core/{p-01aeffca.entry.js → p-96a6cff2.entry.js} +2 -2
  210. package/dist/core/p-96a6cff2.entry.js.map +1 -0
  211. package/dist/core/p-99793b64.entry.js +2 -0
  212. package/dist/core/p-99793b64.entry.js.map +1 -0
  213. package/dist/core/{p-fd488ed7.entry.js → p-9f12b20c.entry.js} +2 -2
  214. package/dist/core/p-9f12b20c.entry.js.map +1 -0
  215. package/dist/core/{p-57803949.entry.js → p-a06c1e4e.entry.js} +2 -2
  216. package/dist/core/p-a08c360b.entry.js +2 -0
  217. package/dist/core/p-a08c360b.entry.js.map +1 -0
  218. package/dist/core/p-a1857d24.entry.js +2 -0
  219. package/dist/core/p-a1857d24.entry.js.map +1 -0
  220. package/dist/core/p-a97b8082.entry.js +3 -0
  221. package/dist/core/p-a97b8082.entry.js.map +1 -0
  222. package/dist/core/{p-abb9dccb.entry.js → p-abd88929.entry.js} +2 -2
  223. package/dist/core/{p-cdd04ec2.entry.js → p-b0376079.entry.js} +2 -2
  224. package/dist/core/{p-6ceedfa8.js → p-b57e59b7.js} +2 -2
  225. package/dist/core/p-b57e59b7.js.map +1 -0
  226. package/dist/core/p-b9bdd9a9.entry.js +2 -0
  227. package/dist/core/p-b9bdd9a9.entry.js.map +1 -0
  228. package/dist/core/{p-641c26c4.js → p-bddf799a.js} +2 -2
  229. package/dist/core/p-bddf799a.js.map +1 -0
  230. package/dist/core/{p-0809aff4.entry.js → p-c04e1fab.entry.js} +2 -2
  231. package/dist/core/{p-65a3c216.entry.js → p-c975cced.entry.js} +2 -2
  232. package/dist/core/p-cc00cbce.entry.js +2 -0
  233. package/dist/core/p-cc00cbce.entry.js.map +1 -0
  234. package/dist/core/{p-f086d6df.entry.js → p-de32a223.entry.js} +2 -2
  235. package/dist/core/{p-46423f42.entry.js → p-e6dacbe2.entry.js} +2 -2
  236. package/dist/core/{p-1dab47b1.entry.js → p-ea06792a.entry.js} +2 -2
  237. package/dist/core/{p-5c6efed3.entry.js → p-eb0e7153.entry.js} +2 -2
  238. package/dist/core/{p-402813c9.entry.js → p-f609ca37.entry.js} +2 -2
  239. package/dist/core/{p-cd63bcf2.entry.js → p-fb734a59.entry.js} +2 -2
  240. package/dist/esm/{constants-48759bda.js → constants-7960cba4.js} +3 -2
  241. package/dist/esm/constants-7960cba4.js.map +1 -0
  242. package/dist/esm/core.js +1 -1
  243. package/dist/esm/{helpers-d8189e9d.js → helpers-4ddac6ed.js} +2 -2
  244. package/dist/esm/helpers-4ddac6ed.js.map +1 -0
  245. package/dist/esm/ic-accordion-group.entry.js +2 -2
  246. package/dist/esm/ic-accordion.entry.js +2 -2
  247. package/dist/esm/ic-action-chip.entry.js +2 -2
  248. package/dist/esm/ic-alert.entry.js +5 -5
  249. package/dist/esm/ic-alert.entry.js.map +1 -1
  250. package/dist/esm/ic-back-to-top.entry.js +2 -2
  251. package/dist/esm/ic-badge.entry.js +2 -2
  252. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  253. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  254. package/dist/esm/ic-button_3.entry.js +2 -2
  255. package/dist/esm/ic-button_3.entry.js.map +1 -1
  256. package/dist/esm/ic-card-vertical.entry.js +2 -2
  257. package/dist/esm/ic-checkbox-group.entry.js +13 -6
  258. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  259. package/dist/esm/ic-checkbox.entry.js +2 -2
  260. package/dist/esm/ic-chip.entry.js +7 -6
  261. package/dist/esm/ic-chip.entry.js.map +1 -1
  262. package/dist/esm/ic-data-row.entry.js +2 -2
  263. package/dist/esm/ic-dialog.entry.js +37 -12
  264. package/dist/esm/ic-dialog.entry.js.map +1 -1
  265. package/dist/esm/ic-divider.entry.js +2 -2
  266. package/dist/esm/ic-empty-state.entry.js +2 -2
  267. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  268. package/dist/esm/ic-footer-link.entry.js +2 -2
  269. package/dist/esm/ic-footer.entry.js +2 -2
  270. package/dist/esm/ic-hero.entry.js +2 -2
  271. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  272. package/dist/esm/ic-input-component-container_3.entry.js +1389 -11
  273. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  274. package/dist/esm/ic-input-label_2.entry.js +8 -7
  275. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  276. package/dist/esm/ic-link.entry.js +2 -2
  277. package/dist/esm/ic-menu-group.entry.js +2 -2
  278. package/dist/esm/ic-menu-item.entry.js +2 -2
  279. package/dist/esm/ic-navigation-button.entry.js +2 -2
  280. package/dist/esm/ic-navigation-group.entry.js +2 -2
  281. package/dist/esm/ic-navigation-item.entry.js +3 -3
  282. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  283. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  284. package/dist/esm/ic-page-header.entry.js +3 -3
  285. package/dist/esm/ic-page-header.entry.js.map +1 -1
  286. package/dist/esm/ic-pagination-item.entry.js +2 -2
  287. package/dist/esm/ic-pagination.entry.js +2 -2
  288. package/dist/esm/ic-popover-menu.entry.js +2 -2
  289. package/dist/esm/ic-radio-group.entry.js +15 -8
  290. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  291. package/dist/esm/ic-radio-option.entry.js +3 -3
  292. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  293. package/dist/esm/ic-search-bar.entry.js +2 -2
  294. package/dist/esm/ic-select.entry.js +17 -10
  295. package/dist/esm/ic-select.entry.js.map +1 -1
  296. package/dist/esm/ic-side-navigation.entry.js +2 -2
  297. package/dist/esm/ic-status-tag.entry.js +3 -3
  298. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  299. package/dist/esm/ic-step.entry.js +68 -55
  300. package/dist/esm/ic-step.entry.js.map +1 -1
  301. package/dist/esm/ic-stepper.entry.js +22 -4
  302. package/dist/esm/ic-stepper.entry.js.map +1 -1
  303. package/dist/esm/ic-switch.entry.js +2 -2
  304. package/dist/esm/ic-tab-group.entry.js +2 -2
  305. package/dist/esm/ic-tab.entry.js +2 -2
  306. package/dist/esm/ic-text-field.entry.js +9 -9
  307. package/dist/esm/ic-text-field.entry.js.map +1 -1
  308. package/dist/esm/ic-theme.entry.js +2 -2
  309. package/dist/esm/ic-toast.entry.js +2 -2
  310. package/dist/esm/ic-toggle-button-group.entry.js +2 -2
  311. package/dist/esm/ic-toggle-button.entry.js +2 -2
  312. package/dist/esm/ic-top-navigation.entry.js +3 -3
  313. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  314. package/dist/esm/ic-typography.entry.js +2 -2
  315. package/dist/esm/index.js +1 -1
  316. package/dist/esm/loader.js +1 -1
  317. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +5 -1
  318. package/dist/types/components/ic-dialog/ic-dialog.d.ts +2 -1
  319. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +2 -3
  320. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +6 -2
  321. package/dist/types/components/ic-select/ic-select.d.ts +5 -1
  322. package/dist/types/components/ic-step/ic-step.d.ts +5 -1
  323. package/dist/types/components/ic-step/ic-step.types.d.ts +11 -0
  324. package/dist/types/components/ic-stepper/ic-stepper.d.ts +5 -1
  325. package/dist/types/components/ic-text-field/ic-text-field.d.ts +4 -4
  326. package/dist/types/components.d.ts +48 -10
  327. package/dist/types/interface.d.ts +0 -1
  328. package/dist/types/utils/common-helpers.d.ts +2 -0
  329. package/dist/types/utils/constants.d.ts +1 -0
  330. package/dist/types/utils/types.d.ts +7 -2
  331. package/hydrate/index.js +1580 -117
  332. package/hydrate/index.mjs +1580 -117
  333. package/package.json +4 -3
  334. package/vscode-data.json +45 -0
  335. package/dist/cjs/constants-8354f6e6.js.map +0 -1
  336. package/dist/cjs/helpers-ffe1c2d9.js.map +0 -1
  337. package/dist/collection/components/ic-input-validation/ic-input-validation.types.js +0 -2
  338. package/dist/collection/components/ic-input-validation/ic-input-validation.types.js.map +0 -1
  339. package/dist/core/p-01aeffca.entry.js.map +0 -1
  340. package/dist/core/p-402c2455.entry.js +0 -2
  341. package/dist/core/p-402c2455.entry.js.map +0 -1
  342. package/dist/core/p-4a2c02b2.entry.js +0 -2
  343. package/dist/core/p-4a2c02b2.entry.js.map +0 -1
  344. package/dist/core/p-641c26c4.js.map +0 -1
  345. package/dist/core/p-6ceedfa8.js.map +0 -1
  346. package/dist/core/p-75a9b2e4.entry.js +0 -2
  347. package/dist/core/p-75a9b2e4.entry.js.map +0 -1
  348. package/dist/core/p-8326db29.entry.js +0 -2
  349. package/dist/core/p-8326db29.entry.js.map +0 -1
  350. package/dist/core/p-8af9413c.entry.js +0 -2
  351. package/dist/core/p-8af9413c.entry.js.map +0 -1
  352. package/dist/core/p-8d1fbbeb.entry.js +0 -2
  353. package/dist/core/p-8d1fbbeb.entry.js.map +0 -1
  354. package/dist/core/p-a4e67ab8.entry.js.map +0 -1
  355. package/dist/core/p-b80d408f.entry.js +0 -2
  356. package/dist/core/p-b80d408f.entry.js.map +0 -1
  357. package/dist/core/p-c81ffadd.entry.js +0 -2
  358. package/dist/core/p-c81ffadd.entry.js.map +0 -1
  359. package/dist/core/p-d35f8bd4.entry.js +0 -2
  360. package/dist/core/p-d35f8bd4.entry.js.map +0 -1
  361. package/dist/core/p-d6b3e02f.entry.js +0 -2
  362. package/dist/core/p-d6b3e02f.entry.js.map +0 -1
  363. package/dist/core/p-d7bd5aa0.entry.js +0 -2
  364. package/dist/core/p-d7bd5aa0.entry.js.map +0 -1
  365. package/dist/core/p-ed69f110.entry.js +0 -2
  366. package/dist/core/p-ed69f110.entry.js.map +0 -1
  367. package/dist/core/p-f17e1525.entry.js +0 -2
  368. package/dist/core/p-f17e1525.entry.js.map +0 -1
  369. package/dist/core/p-fd488ed7.entry.js.map +0 -1
  370. package/dist/esm/constants-48759bda.js.map +0 -1
  371. package/dist/esm/helpers-d8189e9d.js.map +0 -1
  372. package/dist/types/components/ic-input-validation/ic-input-validation.types.d.ts +0 -1
  373. /package/dist/core/{p-23b223bf.entry.js.map → p-01e018cb.entry.js.map} +0 -0
  374. /package/dist/core/{p-1ab63899.entry.js.map → p-02af2b59.entry.js.map} +0 -0
  375. /package/dist/core/{p-1d4dfef1.entry.js.map → p-0c36ce84.entry.js.map} +0 -0
  376. /package/dist/core/{p-f78f34ce.entry.js.map → p-0ec76cff.entry.js.map} +0 -0
  377. /package/dist/core/{p-35ee7c53.entry.js.map → p-13e093d0.entry.js.map} +0 -0
  378. /package/dist/core/{p-a48b581a.entry.js.map → p-1423bd4a.entry.js.map} +0 -0
  379. /package/dist/core/{p-3f55bb5b.entry.js.map → p-2126d37b.entry.js.map} +0 -0
  380. /package/dist/core/{p-515ded3f.entry.js.map → p-228bc12d.entry.js.map} +0 -0
  381. /package/dist/core/{p-d27e46ac.entry.js.map → p-25bef09d.entry.js.map} +0 -0
  382. /package/dist/core/{p-eddc5517.entry.js.map → p-27e67d45.entry.js.map} +0 -0
  383. /package/dist/core/{p-4dd8add9.entry.js.map → p-2800fc30.entry.js.map} +0 -0
  384. /package/dist/core/{p-f045f59d.entry.js.map → p-33582352.entry.js.map} +0 -0
  385. /package/dist/core/{p-58b8d154.entry.js.map → p-45097448.entry.js.map} +0 -0
  386. /package/dist/core/{p-3a78bf6e.entry.js.map → p-54803e3b.entry.js.map} +0 -0
  387. /package/dist/core/{p-0201abbf.entry.js.map → p-6058d4c9.entry.js.map} +0 -0
  388. /package/dist/core/{p-8d29c0fa.entry.js.map → p-675bb3e4.entry.js.map} +0 -0
  389. /package/dist/core/{p-75e0278a.entry.js.map → p-6dbe70f1.entry.js.map} +0 -0
  390. /package/dist/core/{p-b9018261.entry.js.map → p-6e139e6e.entry.js.map} +0 -0
  391. /package/dist/core/{p-aab838e5.entry.js.map → p-80317cd1.entry.js.map} +0 -0
  392. /package/dist/core/{p-02c2c31f.entry.js.map → p-813ad03c.entry.js.map} +0 -0
  393. /package/dist/core/{p-69412f61.entry.js.map → p-8558b9b7.entry.js.map} +0 -0
  394. /package/dist/core/{p-a468df37.entry.js.map → p-8684efeb.entry.js.map} +0 -0
  395. /package/dist/core/{p-ffc608a1.entry.js.map → p-8b99a806.entry.js.map} +0 -0
  396. /package/dist/core/{p-19366be6.entry.js.map → p-93479c36.entry.js.map} +0 -0
  397. /package/dist/core/{p-69cc0f7d.entry.js.map → p-95d3d1a7.entry.js.map} +0 -0
  398. /package/dist/core/{p-57803949.entry.js.map → p-a06c1e4e.entry.js.map} +0 -0
  399. /package/dist/core/{p-abb9dccb.entry.js.map → p-abd88929.entry.js.map} +0 -0
  400. /package/dist/core/{p-cdd04ec2.entry.js.map → p-b0376079.entry.js.map} +0 -0
  401. /package/dist/core/{p-0809aff4.entry.js.map → p-c04e1fab.entry.js.map} +0 -0
  402. /package/dist/core/{p-65a3c216.entry.js.map → p-c975cced.entry.js.map} +0 -0
  403. /package/dist/core/{p-f086d6df.entry.js.map → p-de32a223.entry.js.map} +0 -0
  404. /package/dist/core/{p-46423f42.entry.js.map → p-e6dacbe2.entry.js.map} +0 -0
  405. /package/dist/core/{p-1dab47b1.entry.js.map → p-ea06792a.entry.js.map} +0 -0
  406. /package/dist/core/{p-5c6efed3.entry.js.map → p-eb0e7153.entry.js.map} +0 -0
  407. /package/dist/core/{p-402813c9.entry.js.map → p-f609ca37.entry.js.map} +0 -0
  408. /package/dist/core/{p-cd63bcf2.entry.js.map → p-fb734a59.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-alert.js","sourceRoot":"","sources":["../../../src/components/ic-alert/ic-alert.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n State,\n Listen,\n Prop,\n h,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport {\n isSlotUsed,\n pxToRem,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcStatusVariants,\n IcThemeMode,\n IcThemeSettings,\n} from \"../../utils/types\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\n\n/**\n * @slot message - Content is placed to the right of the title.\n * @slot action - Content is placed to the right of the message.\n * @slot neutral-icon - A custom neutral icon is placed to the left of the title. This will override the default icon if used.\n */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\n private hostMutationObserver: MutationObserver | null = null;\n private systemThemeObserver: MediaQueryList | null = null;\n private darkMode: boolean = false;\n private messageEl?: HTMLDivElement;\n private titleEl?: HTMLIcTypographyElement;\n\n @Element() el: HTMLIcAlertElement;\n\n @State() alertTitleWrap: boolean = false;\n @State() visible: boolean = true;\n\n /**\n * If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers.\n */\n @Prop() announced: boolean = true;\n\n /**\n * If `true`, the alert will have a close icon at the end to dismiss it.\n */\n @Prop() dismissible: boolean = false;\n\n /**\n * The optional title to display at the start of the alert.\n */\n @Prop() heading: string = \"\";\n\n /**\n * The main body message of the alert.\n */\n @Prop() message?: string;\n\n /**\n * If `true`, the default icon for the neutral variant will appear on the left of the alert.\n */\n @Prop() showDefaultIcon: boolean = true;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n themeChangeHandler(): void {\n if (this.theme !== \"inherit\") this.darkMode = this.theme === \"dark\";\n }\n\n /**\n * If `true`, the title and message will appear above and below instead of inline.\n */\n @Prop() titleAbove: boolean = false;\n\n /**\n * The variant of the alert which will be rendered.\n */\n @Prop() variant: IcStatusVariants = \"neutral\";\n\n /**\n * Is emitted when the user dismisses the alert.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n this.systemThemeObserver?.removeEventListener(\n \"change\",\n this.darkModeChangeHandler\n );\n }\n\n componentWillLoad(): void {\n if (!this.el.closest(\"ic-theme\")) {\n this.systemThemeObserver = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n );\n this.systemThemeObserver.addEventListener(\n \"change\",\n this.darkModeChangeHandler\n );\n this.darkMode = this.systemThemeObserver.matches;\n }\n\n this.themeChangeHandler();\n }\n\n componentDidLoad(): void {\n if (Number(this.titleEl?.clientHeight) > 24) this.alertTitleWrap = true;\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"action\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n\n this.calculateMinHeight();\n }\n\n componentDidUpdate(): void {\n this.calculateMinHeight();\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n @Listen(\"icThemeChange\", { target: \"document\", capture: true })\n darkModeChangeHandler(\n ev: CustomEvent<IcThemeSettings> | MediaQueryListEvent\n ): void {\n this.darkMode = \"detail\" in ev ? ev.detail === \"dark\" : ev.matches;\n\n this.calculateMinHeight();\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private calculateMinHeight(): void {\n const contentHeight = Number(this.messageEl?.clientHeight);\n\n const minHeight = pxToRem(\n `${(contentHeight > 40 ? contentHeight : 52) + (this.darkMode ? 0 : 4)}`\n );\n\n if (this.el.style.getPropertyValue(\"--ic-alert-min-height\") !== minHeight)\n this.el.style.setProperty(\"--ic-alert-min-height\", minHeight);\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n showDefaultIcon,\n theme,\n alertTitleWrap,\n dismissAction,\n } = this;\n\n const Icon = () => {\n const iconClass = {\n \"alert-icon\": true,\n \"svg-container\": true,\n [`icon-${variant}`]: true,\n };\n\n if (variant === \"neutral\") {\n if (isSlotUsed(this.el, \"neutral-icon\")) {\n return (\n <div class={iconClass}>\n <slot name=\"neutral-icon\"></slot>\n </div>\n );\n } else if (!showDefaultIcon) {\n return <div class=\"icon-placeholder\"></div>;\n }\n }\n\n return (\n <span class={iconClass} innerHTML={VARIANT_ICONS[variant].icon}></span>\n );\n };\n\n return (\n visible && (\n <Host\n role={announced ? \"alert\" : null}\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, [`container-${variant}`]: true }}>\n <div class=\"alert-icon-container\">\n <div\n class={{ divider: true, [`divider-${variant}`]: true }}\n ></div>\n <Icon />\n </div>\n <div class=\"alert-content\">\n <div\n class={{\n \"alert-message\": true,\n \"alert-message-title-above\": titleAbove || alertTitleWrap,\n }}\n ref={(el) => (this.messageEl = el)}\n >\n {heading && (\n <ic-typography\n class={{\n \"alert-title\": true,\n \"alert-title-above\": titleAbove || alertTitleWrap,\n }}\n variant=\"subtitle-large\"\n ref={(el) => (this.titleEl = el)}\n >\n <p>{heading}</p>\n </ic-typography>\n )}\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"alert-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n <div class=\"dismiss-icon-container\">\n {dismissible && (\n <ic-button\n class={{ \"svg-container\": true, \"dismiss-icon\": true }}\n innerHTML={closeIcon}\n onClick={dismissAction}\n variant=\"icon-tertiary\"\n theme=\"dark\"\n title=\"Dismiss\"\n ></ic-button>\n )}\n </div>\n </div>\n </Host>\n )\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-alert.js","sourceRoot":"","sources":["../../../src/components/ic-alert/ic-alert.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n State,\n Listen,\n Prop,\n h,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport {\n isSlotUsed,\n pxToRem,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcStatusVariants,\n IcThemeMode,\n IcThemeSettings,\n} from \"../../utils/types\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\n\n/**\n * @slot message - Content is placed to the right of the title.\n * @slot action - Content is placed to the right of the message.\n * @slot neutral-icon - A custom neutral icon is placed to the left of the title. This will override the default icon if used.\n */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\n private hostMutationObserver: MutationObserver | null = null;\n private systemThemeObserver: MediaQueryList | null = null;\n private darkMode: boolean = false;\n private messageEl?: HTMLDivElement;\n private titleEl?: HTMLIcTypographyElement;\n\n @Element() el: HTMLIcAlertElement;\n\n @State() alertTitleWrap: boolean = false;\n @State() visible: boolean = true;\n\n /**\n * If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers.\n */\n @Prop() announced: boolean = true;\n\n /**\n * If `true`, the alert will have a close icon at the end to dismiss it.\n */\n @Prop() dismissible: boolean = false;\n\n /**\n * The optional title to display at the start of the alert.\n */\n @Prop() heading: string = \"\";\n\n /**\n * The main body message of the alert.\n */\n @Prop() message?: string;\n\n /**\n * If `true`, the default icon for the neutral variant will appear on the left of the alert.\n */\n @Prop() showDefaultIcon: boolean = true;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n themeChangeHandler(): void {\n if (this.theme !== \"inherit\") this.darkMode = this.theme === \"dark\";\n }\n\n /**\n * If `true`, the title and message will appear above and below instead of inline.\n */\n @Prop() titleAbove: boolean = false;\n\n /**\n * The variant of the alert which will be rendered.\n */\n @Prop() variant: IcStatusVariants = \"neutral\";\n\n /**\n * Is emitted when the user dismisses the alert.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n this.systemThemeObserver?.removeEventListener(\n \"change\",\n this.darkModeChangeHandler\n );\n }\n\n componentWillLoad(): void {\n if (!this.el.closest(\"ic-theme\")) {\n this.systemThemeObserver = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n );\n this.systemThemeObserver.addEventListener(\n \"change\",\n this.darkModeChangeHandler\n );\n this.darkMode = this.systemThemeObserver.matches;\n }\n\n this.themeChangeHandler();\n }\n\n componentDidLoad(): void {\n if (Number(this.titleEl?.clientHeight) > 24) this.alertTitleWrap = true;\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"action\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n\n this.calculateMinHeight();\n }\n\n componentDidUpdate(): void {\n this.calculateMinHeight();\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n @Listen(\"icThemeChange\", { target: \"document\", capture: true })\n darkModeChangeHandler(\n ev: CustomEvent<IcThemeSettings> | MediaQueryListEvent\n ): void {\n this.darkMode = \"detail\" in ev ? ev.detail === \"dark\" : ev.matches;\n\n this.calculateMinHeight();\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private calculateMinHeight(): void {\n const contentHeight = Number(this.messageEl?.clientHeight);\n\n const minHeight = pxToRem(\n `${(contentHeight > 40 ? contentHeight : 52) + (this.darkMode ? 0 : 4)}`\n );\n\n if (this.el.style.getPropertyValue(\"--ic-alert-min-height\") !== minHeight)\n this.el.style.setProperty(\"--ic-alert-min-height\", minHeight);\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n showDefaultIcon,\n theme,\n alertTitleWrap,\n dismissAction,\n } = this;\n\n const Icon = () => {\n const iconClass = {\n \"alert-icon\": true,\n \"svg-container\": true,\n [`icon-${variant}`]: true,\n };\n\n if (variant === \"neutral\") {\n if (isSlotUsed(this.el, \"neutral-icon\")) {\n return (\n <div class={iconClass}>\n <slot name=\"neutral-icon\"></slot>\n </div>\n );\n } else if (!showDefaultIcon) {\n return <div></div>;\n }\n }\n\n return (\n <span class={iconClass} innerHTML={VARIANT_ICONS[variant].icon}></span>\n );\n };\n\n return (\n visible && (\n <Host\n role={announced ? \"alert\" : null}\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, [`container-${variant}`]: true }}>\n <div class={{ divider: true, [`divider-${variant}`]: true }}></div>\n <div class=\"alert-content\">\n <Icon />\n <div\n class={{\n \"alert-message\": true,\n \"alert-message-title-above\": titleAbove || alertTitleWrap,\n }}\n ref={(el) => (this.messageEl = el)}\n >\n {heading && (\n <ic-typography\n class={{\n \"alert-title\": true,\n \"alert-title-above\": titleAbove || alertTitleWrap,\n }}\n variant=\"subtitle-large\"\n ref={(el) => (this.titleEl = el)}\n >\n <p>{heading}</p>\n </ic-typography>\n )}\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"alert-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n <div class=\"dismiss-icon-container\">\n {dismissible && (\n <ic-button\n class={{ \"svg-container\": true, \"dismiss-icon\": true }}\n innerHTML={closeIcon}\n onClick={dismissAction}\n variant=\"icon-tertiary\"\n theme=\"dark\"\n title=\"Dismiss\"\n ></ic-button>\n )}\n </div>\n </div>\n </Host>\n )\n );\n }\n}\n"]}
@@ -487,15 +487,15 @@ ic-input-label .helpertext {
487
487
  display: block;
488
488
  }
489
489
 
490
- ic-input-validation {
490
+ ic-input-validation.show-validation {
491
491
  margin-top: var(--ic-space-sm);
492
492
  }
493
493
 
494
- :host(.ic-checkbox-group-small) ic-input-validation {
494
+ :host(.ic-checkbox-group-small) ic-input-validation.show-validation {
495
495
  margin-top: calc(var(--ic-space-sm) / 2);
496
496
  }
497
497
 
498
- :host(.ic-checkbox-group-large) ic-input-validation {
498
+ :host(.ic-checkbox-group-large) ic-input-validation.show-validation {
499
499
  margin-top: calc(var(--ic-space-sm) * 1.5);
500
500
  }
501
501
 
@@ -31,6 +31,10 @@ export class CheckboxGroup {
31
31
  * Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
32
32
  */
33
33
  this.theme = "inherit";
34
+ /**
35
+ * The value of the `aria-live` attribute on the validation message.
36
+ */
37
+ this.validationAriaLive = "polite";
34
38
  /**
35
39
  * The validation status - e.g. 'error' | 'warning' | 'success'.
36
40
  */
@@ -90,14 +94,17 @@ export class CheckboxGroup {
90
94
  });
91
95
  }
92
96
  render() {
93
- const { disabled, helperText, hideLabel, label, name, required, size, theme, validationStatus, validationText, } = this;
97
+ const { disabled, helperText, hideLabel, label, name, required, size, theme, validationAriaLive, validationStatus, validationText, } = this;
94
98
  const describedBy = getInputDescribedByText(this.el, name, helperText !== "", validationStatus !== "");
95
99
  const renderSRText = validationStatus === "error" || required || hideLabel;
96
- return (h(Host, { key: '0fb0440f1e5b5801cc5eadfd589ac04a63eb9f99', class: {
100
+ const showValidation = hasValidationStatus(validationStatus, disabled);
101
+ return (h(Host, { key: 'ee4fc914d346b2f35dd8d44ff73a44b479caee95', class: {
97
102
  "ic-checkbox-group-disabled": !!disabled,
98
103
  [`ic-checkbox-group-${size}`]: true,
99
104
  [`ic-theme-${theme}`]: theme !== "inherit",
100
- } }, renderSRText && (h("span", { key: 'c0bb18f0b0c32cece059ec3121fa85b829096bde', id: "screenReaderOnlyText", class: "screen-reader-only-text", "aria-hidden": "true" }, label, " ", validationStatus === "error" ? "invalid data " : null, " ", required ? "required" : null)), h("fieldset", { key: '34617958bbc17c41bbe4ee00958e2a00077e53ed', id: name, "aria-labelledby": `${renderSRText ? "screenReaderOnlyText" : ""} ${describedBy}`.trim(), disabled: disabled }, !hideLabel && (h("legend", { key: '0b8ddb361a14f5c0cbca1d27da58428f13ccec9a' }, h("ic-input-label", { key: '06dc432363a51aba3540b1bf5e72e514b8cd9393', class: { [`${validationStatus}`]: true }, label: label, helperText: helperText, required: required, disabled: disabled, useLabelTag: false }, h("slot", { key: '7617aeae70bf582bc28ad3e38e63c7bb2d33e704', name: "helper-text", slot: "helper-text" })))), h("div", { key: 'fcfc716f0dbddacdd97f2bf253882b19e9c7be9f', class: "checkboxes-container" }, h("slot", { key: '6698eb710655c4dae00ed4597bb2221042e3b0c2' }))), hasValidationStatus(validationStatus, disabled) && (h("ic-input-validation", { key: '8f7ff310f825d7af04eb37a97aca30f3791b5a38', for: name, ariaLiveMode: "polite", status: validationStatus, message: validationText }))));
105
+ } }, renderSRText && (h("span", { key: '3718d5e6fce1597c836d01050ed17bcd01c97e6e', id: "screenReaderOnlyText", class: "screen-reader-only-text", "aria-hidden": "true" }, label, " ", validationStatus === "error" ? "invalid data " : null, " ", required ? "required" : null)), h("fieldset", { key: '318e6c61787f136916d39acdd2823fa644c8d865', id: name, "aria-labelledby": `${renderSRText ? "screenReaderOnlyText" : ""} ${describedBy}`.trim(), disabled: disabled }, !hideLabel && (h("legend", { key: '6348eb25d5a2de666033441d694b407f72ae834b' }, h("ic-input-label", { key: '96ef66ab6b4e3a02a2385eb9b8f5936c1fc57ad0', class: { [`${validationStatus}`]: true }, label: label, helperText: helperText, required: required, disabled: disabled, useLabelTag: false }, h("slot", { key: 'f9f0532834d50a57dbc2f075a9f94788071cceb6', name: "helper-text", slot: "helper-text" })))), h("div", { key: '9b72caba2adb5951814689ef5c8b1fa5d7ea11ed', class: "checkboxes-container" }, h("slot", { key: '5cf045069c87416b7889e7b29b44e6f137ca0b4f' }))), h("ic-input-validation", { key: '4b9680fcb5468fbf6e9c2e1eb6d45f929b2b09dc', class: {
106
+ "show-validation": showValidation,
107
+ }, for: name, ariaLiveMode: validationAriaLive, status: showValidation ? validationStatus : "", message: showValidation ? validationText : "" })));
101
108
  }
102
109
  static get is() { return "ic-checkbox-group"; }
103
110
  static get encapsulation() { return "shadow"; }
@@ -283,6 +290,32 @@ export class CheckboxGroup {
283
290
  "reflect": false,
284
291
  "defaultValue": "\"inherit\""
285
292
  },
293
+ "validationAriaLive": {
294
+ "type": "string",
295
+ "mutable": false,
296
+ "complexType": {
297
+ "original": "IcAriaLive",
298
+ "resolved": "\"assertive\" | \"off\" | \"polite\"",
299
+ "references": {
300
+ "IcAriaLive": {
301
+ "location": "import",
302
+ "path": "../../utils/types",
303
+ "id": "src/utils/types.ts::IcAriaLive"
304
+ }
305
+ }
306
+ },
307
+ "required": false,
308
+ "optional": false,
309
+ "docs": {
310
+ "tags": [],
311
+ "text": "The value of the `aria-live` attribute on the validation message."
312
+ },
313
+ "getter": false,
314
+ "setter": false,
315
+ "attribute": "validation-aria-live",
316
+ "reflect": false,
317
+ "defaultValue": "\"polite\""
318
+ },
286
319
  "validationStatus": {
287
320
  "type": "string",
288
321
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-checkbox-group.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox-group/ic-checkbox-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n hasValidationStatus,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-checkbox-group.types\";\n\nconst CHECKBOX_SELECTOR = \"ic-checkbox\";\n\n/**\n * @slot helper-text - Content is set as the helper text for the checkbox group.\n */\n@Component({\n tag: \"ic-checkbox-group\",\n styleUrl: \"ic-checkbox-group.css\",\n shadow: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class CheckboxGroup {\n @Element() el: HTMLIcCheckboxGroupElement;\n\n /**\n * If `true`, the checkbox group will be set to the disabled state.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * The label for the checkbox group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n @Watch(\"label\")\n @Watch(\"name\")\n labelNameHandler(\n newValue: string,\n oldValue: string,\n propName: \"label\" | \"name\"\n ): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n if (propName === \"label\") checkbox.groupLabel = newValue;\n else if (checkbox.name === oldValue) {\n // If the checkbox name has been set by the parent, then override it\n checkbox.name = newValue;\n }\n }\n );\n }\n\n /**\n * If `true`, the checkbox group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The size of the checkboxes to be displayed. This does not affect the font size of the label.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n checkbox.theme = newValue;\n }\n );\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * Emitted when a checkbox is checked.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icChange\")\n handleChange(ev: CustomEvent): void {\n //don't pass on the event if it has come from slotted text field\n //otherwise any icChange handler bound to the checkbox group will also run\n if ((ev.target as HTMLElement).tagName === \"IC-TEXT-FIELD\") {\n ev.stopImmediatePropagation();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.watchThemeHandler(this.theme);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Checkbox Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler({ target }: CustomEvent): void {\n const checkedOptions = Array.from(\n this.el.querySelectorAll(CHECKBOX_SELECTOR)\n ).filter(({ checked, disabled }) => checked && !disabled);\n this.icChange.emit({\n value: checkedOptions.map(({ value }) => value),\n checkedOptions: checkedOptions.map((opt) => ({\n checkbox: opt,\n textFieldValue: opt.querySelector(\"ic-text-field\")?.value,\n })),\n selectedOption: target as HTMLIcCheckboxElement,\n });\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n label,\n name,\n required,\n size,\n theme,\n validationStatus,\n validationText,\n } = this;\n\n const describedBy = getInputDescribedByText(\n this.el,\n name,\n helperText !== \"\",\n validationStatus !== \"\"\n );\n\n const renderSRText = validationStatus === \"error\" || required || hideLabel;\n\n return (\n <Host\n class={{\n \"ic-checkbox-group-disabled\": !!disabled,\n [`ic-checkbox-group-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {renderSRText && (\n <span\n id=\"screenReaderOnlyText\"\n class=\"screen-reader-only-text\"\n aria-hidden=\"true\"\n >\n {label} {validationStatus === \"error\" ? \"invalid data \" : null}{\" \"}\n {required ? \"required\" : null}\n </span>\n )}\n <fieldset\n id={name}\n aria-labelledby={`${\n renderSRText ? \"screenReaderOnlyText\" : \"\"\n } ${describedBy}`.trim()}\n disabled={disabled}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{ [`${validationStatus}`]: true }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n useLabelTag={false}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n </legend>\n )}\n <div class=\"checkboxes-container\">\n <slot></slot>\n </div>\n </fieldset>\n {hasValidationStatus(validationStatus, disabled) && (\n <ic-input-validation\n for={name}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n ></ic-input-validation>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-checkbox-group.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox-group/ic-checkbox-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n hasValidationStatus,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-checkbox-group.types\";\n\nconst CHECKBOX_SELECTOR = \"ic-checkbox\";\n\n/**\n * @slot helper-text - Content is set as the helper text for the checkbox group.\n */\n@Component({\n tag: \"ic-checkbox-group\",\n styleUrl: \"ic-checkbox-group.css\",\n shadow: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class CheckboxGroup {\n @Element() el: HTMLIcCheckboxGroupElement;\n\n /**\n * If `true`, the checkbox group will be set to the disabled state.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * The label for the checkbox group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n @Watch(\"label\")\n @Watch(\"name\")\n labelNameHandler(\n newValue: string,\n oldValue: string,\n propName: \"label\" | \"name\"\n ): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n if (propName === \"label\") checkbox.groupLabel = newValue;\n else if (checkbox.name === oldValue) {\n // If the checkbox name has been set by the parent, then override it\n checkbox.name = newValue;\n }\n }\n );\n }\n\n /**\n * If `true`, the checkbox group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The size of the checkboxes to be displayed. This does not affect the font size of the label.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n checkbox.theme = newValue;\n }\n );\n }\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * Emitted when a checkbox is checked.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icChange\")\n handleChange(ev: CustomEvent): void {\n //don't pass on the event if it has come from slotted text field\n //otherwise any icChange handler bound to the checkbox group will also run\n if ((ev.target as HTMLElement).tagName === \"IC-TEXT-FIELD\") {\n ev.stopImmediatePropagation();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.watchThemeHandler(this.theme);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Checkbox Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler({ target }: CustomEvent): void {\n const checkedOptions = Array.from(\n this.el.querySelectorAll(CHECKBOX_SELECTOR)\n ).filter(({ checked, disabled }) => checked && !disabled);\n this.icChange.emit({\n value: checkedOptions.map(({ value }) => value),\n checkedOptions: checkedOptions.map((opt) => ({\n checkbox: opt,\n textFieldValue: opt.querySelector(\"ic-text-field\")?.value,\n })),\n selectedOption: target as HTMLIcCheckboxElement,\n });\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n label,\n name,\n required,\n size,\n theme,\n validationAriaLive,\n validationStatus,\n validationText,\n } = this;\n\n const describedBy = getInputDescribedByText(\n this.el,\n name,\n helperText !== \"\",\n validationStatus !== \"\"\n );\n\n const renderSRText = validationStatus === \"error\" || required || hideLabel;\n\n const showValidation = hasValidationStatus(validationStatus, disabled);\n\n return (\n <Host\n class={{\n \"ic-checkbox-group-disabled\": !!disabled,\n [`ic-checkbox-group-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {renderSRText && (\n <span\n id=\"screenReaderOnlyText\"\n class=\"screen-reader-only-text\"\n aria-hidden=\"true\"\n >\n {label} {validationStatus === \"error\" ? \"invalid data \" : null}{\" \"}\n {required ? \"required\" : null}\n </span>\n )}\n <fieldset\n id={name}\n aria-labelledby={`${\n renderSRText ? \"screenReaderOnlyText\" : \"\"\n } ${describedBy}`.trim()}\n disabled={disabled}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{ [`${validationStatus}`]: true }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n useLabelTag={false}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n </legend>\n )}\n <div class=\"checkboxes-container\">\n <slot></slot>\n </div>\n </fieldset>\n <ic-input-validation\n class={{\n \"show-validation\": showValidation,\n }}\n for={name}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n ></ic-input-validation>\n </Host>\n );\n }\n}\n"]}
@@ -16,6 +16,7 @@ const defaultArgs = {
16
16
  nativeIndeterminateBehaviour: false,
17
17
  required: false,
18
18
  size: "medium",
19
+ validationAriaLive: "polite",
19
20
  validationStatus: "no status",
20
21
  validationText: "",
21
22
  value: "checkbox-value",
@@ -374,6 +375,159 @@ export const Validation = {
374
375
  name: "Validation",
375
376
  };
376
377
 
378
+ export const AriaLiveBehaviour = {
379
+ render: (args) =>
380
+ html`<ic-checkbox-group
381
+ id="field-1"
382
+ label="This is a label"
383
+ name="1"
384
+ helper-text="Error already set on page load and aria-live overridden as 'assertive'"
385
+ validation-status="error"
386
+ validation-text="First error message"
387
+ validation-aria-live="assertive"
388
+ >
389
+ <ic-checkbox
390
+ value="valueName1"
391
+ label="Unselected / Default"
392
+ ></ic-checkbox>
393
+ <ic-checkbox
394
+ value="valueName2"
395
+ label="Selected / Default"
396
+ selected
397
+ ></ic-checkbox>
398
+ <ic-checkbox
399
+ value="valueName3"
400
+ label="Unselected / Disabled"
401
+ disabled
402
+ ></ic-checkbox>
403
+ </ic-checkbox-group>
404
+ <br />
405
+ <ic-checkbox-group
406
+ id="field-2"
407
+ label="This is a label"
408
+ name="2"
409
+ helper-text="Error set after page load and aria-live overridden as 'assertive'"
410
+ validation-aria-live="assertive"
411
+ >
412
+ <ic-checkbox
413
+ value="valueName1"
414
+ label="Unselected / Default"
415
+ ></ic-checkbox>
416
+ <ic-checkbox
417
+ value="valueName2"
418
+ label="Selected / Default"
419
+ selected
420
+ ></ic-checkbox>
421
+ <ic-checkbox
422
+ value="valueName3"
423
+ label="Unselected / Disabled"
424
+ disabled
425
+ ></ic-checkbox>
426
+ </ic-checkbox-group>
427
+ <br />
428
+ <ic-button id="toggle-btn-1">Toggle errors</ic-button>
429
+ <script>
430
+ let showErrors1 = false;
431
+ const btn1 = document.getElementById("toggle-btn-1");
432
+ const field1 = document.getElementById("field-1");
433
+ const field2 = document.getElementById("field-2");
434
+
435
+ btn1.addEventListener("click", () => {
436
+ showErrors1 = !showErrors1;
437
+
438
+ field1.setAttribute("validation-status", showErrors1 ? "" : "error");
439
+ field1.setAttribute(
440
+ "validation-text",
441
+ showErrors1 ? "" : "First error message"
442
+ );
443
+
444
+ field2.setAttribute("validation-status", showErrors1 ? "error" : "");
445
+ field2.setAttribute(
446
+ "validation-text",
447
+ showErrors1 ? "Second error message" : ""
448
+ );
449
+ });
450
+ </script>
451
+ <br />
452
+ <br />
453
+ <br />
454
+ <br />
455
+ <ic-checkbox-group
456
+ id="field-3"
457
+ label="This is a label"
458
+ name="3"
459
+ helper-text="Default aria-live behaviour (i.e. 'polite')"
460
+ >
461
+ <ic-checkbox
462
+ value="valueName1"
463
+ label="Unselected / Default"
464
+ ></ic-checkbox>
465
+ <ic-checkbox
466
+ value="valueName2"
467
+ label="Selected / Default"
468
+ selected
469
+ ></ic-checkbox>
470
+ <ic-checkbox
471
+ value="valueName3"
472
+ label="Unselected / Disabled"
473
+ disabled
474
+ ></ic-checkbox>
475
+ </ic-checkbox-group>
476
+ <br />
477
+ <ic-checkbox-group
478
+ id="field-4"
479
+ label="This is a label"
480
+ name="4"
481
+ helper-text="Default aria-live behaviour (i.e. 'polite')"
482
+ >
483
+ <ic-checkbox
484
+ value="valueName1"
485
+ label="Unselected / Default"
486
+ ></ic-checkbox>
487
+ <ic-checkbox
488
+ value="valueName2"
489
+ label="Selected / Default"
490
+ selected
491
+ ></ic-checkbox>
492
+ <ic-checkbox
493
+ value="valueName3"
494
+ label="Unselected / Disabled"
495
+ disabled
496
+ ></ic-checkbox>
497
+ </ic-checkbox-group>
498
+ <br />
499
+ <ic-button id="toggle-btn-2">Toggle errors</ic-button>
500
+ <br />
501
+ <br />
502
+ <br />
503
+ <br />
504
+ <br />
505
+ <script>
506
+ let showErrors2 = false;
507
+ const btn2 = document.getElementById("toggle-btn-2");
508
+ const field3 = document.getElementById("field-3");
509
+ const field4 = document.getElementById("field-4");
510
+
511
+ btn2.addEventListener("click", () => {
512
+ showErrors2 = !showErrors2;
513
+
514
+ field3.setAttribute("validation-status", showErrors2 ? "error" : "");
515
+ field3.setAttribute(
516
+ "validation-text",
517
+ showErrors2 ? "Third error message" : ""
518
+ );
519
+
520
+ field4.setAttribute("validation-status", showErrors2 ? "error" : "");
521
+ field4.setAttribute(
522
+ "validation-text",
523
+ showErrors2 ? "Fourth error message" : ""
524
+ );
525
+ });
526
+ </script>`,
527
+
528
+ name: "Aria-live behaviour",
529
+ };
530
+
377
531
  export const Form = {
378
532
  render: (args) => html`
379
533
  <form>
@@ -658,6 +812,7 @@ export const Playground = {
658
812
  helper-text=${args.helperText}
659
813
  hide-label=${args.hideGroupLabel}
660
814
  required=${args.required}
815
+ validation-aria-live=${args.validationAriaLive}
661
816
  validation-status=${args.validationStatus === "no status"
662
817
  ? ""
663
818
  : args.validationStatus}
@@ -712,6 +867,14 @@ export const Playground = {
712
867
  },
713
868
  },
714
869
 
870
+ validationAriaLive: {
871
+ options: ["polite", "assertive", "off"],
872
+
873
+ control: {
874
+ type: inlineRadioSelector,
875
+ },
876
+ },
877
+
715
878
  validationStatus: {
716
879
  options: ["no status", "warning", "error", "success"],
717
880
 
@@ -447,6 +447,10 @@ video {
447
447
  vertical-align: middle;
448
448
  }
449
449
 
450
+ :host(.ic-chip-dismissed) {
451
+ display: none;
452
+ }
453
+
450
454
  .chip {
451
455
  --chip-bg-color: transparent;
452
456
  --chip-hover-bg: var(--ic-chip-action-hover);
@@ -90,10 +90,11 @@ export class Chip {
90
90
  render() {
91
91
  const { label, variant, size, dismissible, visible, disabled, hovered, theme, foregroundColor, dismissLabel, transparentBackground, } = this;
92
92
  const ariaLabel = `${label} chip`;
93
- return (h(Host, { key: 'ced030b6d7a5aeb6b7030ea7858200187d16ae90', class: {
93
+ return (h(Host, { key: 'c7b88d4999b6de5004edc4bd27e185b9232fdaf9', class: {
94
+ "ic-chip-dismissed": !visible,
94
95
  [`ic-theme-${theme}`]: theme !== "inherit",
95
96
  [`ic-chip-${foregroundColor}-text`]: variant === "filled" && !!foregroundColor,
96
- } }, visible && (h("div", { key: 'dca2da18144d1ee47d9507cbb616bc6493060f94', class: {
97
+ } }, visible && (h("div", { key: 'dbbb2bd77adea5e65d61e11b6c4b2b06fadbb9b1', class: {
97
98
  chip: true,
98
99
  [`${variant}`]: true,
99
100
  [`${size}`]: true,
@@ -101,7 +102,7 @@ export class Chip {
101
102
  dismissible,
102
103
  hovered,
103
104
  "non-transparent": variant === "outlined" && !transparentBackground,
104
- } }, isSlotUsed(this.el, "icon") && (h("div", { key: '3e1537327125e7cfd54a20aeeb3f6279560da02f', class: "icon" }, h("slot", { key: '33a229dad89f94f165c0a3f77e83720e1cc0603f', name: "icon" }))), h("ic-typography", { key: '7445c7ae2254c909af206b43e5044f643177f1af', variant: "label", "apply-vertical-margins": false, class: { label: true, "in-ag-grid": isElInAGGrid(this.el) } }, h("span", { key: 'af34cb3ca942ea778c3ba4716f983755571626db' }, label)), dismissible && (h("ic-tooltip", { key: '7664945e7ddc8cb66a302265a5b7affcea514241', label: dismissLabel, target: "dismiss-icon", class: { "tooltip-disabled": disabled } }, h("button", { key: '692fd13b54eef71e29ef4d3639182617770684df', id: "dismiss-icon", class: "dismiss-icon", ref: (el) => (this.buttonEl = el), "aria-label": `${dismissLabel} ${ariaLabel}`, disabled: disabled, tabindex: disabled ? -1 : 0, onClick: this.dismissAction, onMouseEnter: this.mouseEnterHandler, onMouseLeave: this.mouseLeaveHandler, innerHTML: dismissIcon }))), isSlotUsed(this.el, "badge") && h("slot", { key: '6db0a5f0dd29df3315caa52aba01d339449e3bdd', name: "badge" }))), dismissible && (h("div", { key: '2d989a411ff7eedad1e9238714c704c3e2d0d536', class: "sr-only", "aria-live": "polite" }, !visible ? `Dismissed ${ariaLabel}` : ""))));
105
+ } }, isSlotUsed(this.el, "icon") && (h("div", { key: '443ef9dc619483da883171e367ac9541aaf61a38', class: "icon" }, h("slot", { key: '3d5f5e0db37a1d2c0b8d2f25e0af2801cc52598e', name: "icon" }))), h("ic-typography", { key: '23603177321e0a67c86da4720574592e3db8db80', variant: "label", "apply-vertical-margins": false, class: { label: true, "in-ag-grid": isElInAGGrid(this.el) } }, h("span", { key: '2d55524b494e17a0ee3c8a7441ffbc1a5d47f6a4' }, label)), dismissible && (h("ic-tooltip", { key: '2def11f340b2b51518caebdf0e87b61e87d9baeb', label: dismissLabel, target: "dismiss-icon", class: { "tooltip-disabled": disabled } }, h("button", { key: 'c437a1dc096b14ba3bb2fa5723fa0044e83a9b3a', id: "dismiss-icon", class: "dismiss-icon", ref: (el) => (this.buttonEl = el), "aria-label": `${dismissLabel} ${ariaLabel}`, disabled: disabled, tabindex: disabled ? -1 : 0, onClick: this.dismissAction, onMouseEnter: this.mouseEnterHandler, onMouseLeave: this.mouseLeaveHandler, innerHTML: dismissIcon }))), isSlotUsed(this.el, "badge") && h("slot", { key: '9b3fec37d1d44def4248cf53ae2916d9f62e1a08', name: "badge" }))), dismissible && (h("div", { key: 'bc8d8601488092dde7dae7db5f0f36b802f6df9f', class: "sr-only", "aria-live": "polite" }, !visible ? `Dismissed ${ariaLabel}` : ""))));
105
106
  }
106
107
  static get is() { return "ic-chip"; }
107
108
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-chip.js","sourceRoot":"","sources":["../../../src/components/ic-chip/ic-chip.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n State,\n Listen,\n Event,\n EventEmitter,\n Element,\n Method,\n Watch,\n Host,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n removeDisabledFalse,\n convertToRGBA,\n isElInAGGrid,\n getBrandForegroundAppearance,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcBrandForegroundNoDefault,\n IcColor,\n IcEmphasisType,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport dismissIcon from \"../../assets/dismiss-icon.svg\";\n\n/**\n * @slot icon - Content will be rendered at the start of the chip.\n * @slot badge - Badge component overlaying the top right of the chip.\n */\n@Component({\n tag: \"ic-chip\",\n styleUrl: \"ic-chip.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Chip {\n private buttonEl?: HTMLButtonElement;\n private hostMutationObserver?: MutationObserver;\n\n @Element() el: HTMLIcChipElement;\n\n @State() foregroundColor: IcBrandForegroundNoDefault | null = null;\n @State() hovered = false;\n @State() visible = true;\n\n /**\n * The custom chip colour. This will override the theme colour.\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor;\n @Watch(\"customColor\")\n customColorHandler(): void {\n const colorRGBA = this.customColor && convertToRGBA(this.customColor);\n if (!colorRGBA) {\n this.foregroundColor = null;\n return;\n }\n\n const { r, g, b, a } = colorRGBA;\n this.foregroundColor = getBrandForegroundAppearance(\n (r * 299 + g * 587 + b * 114) / 1000\n );\n this.el.setAttribute(\n \"style\",\n `--chip-custom-color: rgba(${r}, ${g}, ${b}, ${a});`\n );\n }\n\n /**\n * If `true`, the chip will appear disabled.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the chip will have a close button at the end to dismiss it.\n */\n @Prop() dismissible = false;\n\n /**\n * The text in the dismiss button tooltip and aria label. Makes the user aware of the action resulting from clicking the 'Dismiss chip' button.\n */\n @Prop() dismissLabel = \"Dismiss\";\n\n /**\n * The text rendered within the chip.\n */\n @Prop() label!: string;\n\n /**\n * The size of the chip.\n */\n @Prop() size: IcSizes = \"medium\";\n /**\n * Sets the chip to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n * Setting the \"customColor\" prop will override this.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the outlined variant of chip will have a transparent background rather than the theme defined color.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The emphasis of the chip.\n */\n @Prop() variant: IcEmphasisType = \"filled\";\n\n /**\n * Is emitted when the user dismisses the chip.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.customColorHandler();\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Chip\"\n );\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, [\"icon\", \"badge\"], this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n /**\n * Sets focus on the chip.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private dismissAction = () => {\n this.icDismiss.emit();\n };\n\n private mouseEnterHandler = () => {\n this.hovered = true;\n };\n\n private mouseLeaveHandler = () => {\n this.hovered = false;\n };\n\n render() {\n const {\n label,\n variant,\n size,\n dismissible,\n visible,\n disabled,\n hovered,\n theme,\n foregroundColor,\n dismissLabel,\n transparentBackground,\n } = this;\n\n const ariaLabel = `${label} chip`;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-chip-${foregroundColor}-text`]:\n variant === \"filled\" && !!foregroundColor,\n }}\n >\n {visible && (\n <div\n class={{\n chip: true,\n [`${variant}`]: true,\n [`${size}`]: true,\n disabled,\n dismissible,\n hovered,\n \"non-transparent\":\n variant === \"outlined\" && !transparentBackground,\n }}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography\n variant=\"label\"\n apply-vertical-margins={false}\n class={{ label: true, \"in-ag-grid\": isElInAGGrid(this.el) }}\n >\n <span>{label}</span>\n </ic-typography>\n {dismissible && (\n <ic-tooltip\n label={dismissLabel}\n target=\"dismiss-icon\"\n class={{ \"tooltip-disabled\": disabled }}\n >\n <button\n id=\"dismiss-icon\"\n class=\"dismiss-icon\"\n ref={(el) => (this.buttonEl = el)}\n aria-label={`${dismissLabel} ${ariaLabel}`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n onClick={this.dismissAction}\n onMouseEnter={this.mouseEnterHandler}\n onMouseLeave={this.mouseLeaveHandler}\n innerHTML={dismissIcon}\n ></button>\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </div>\n )}\n {dismissible && (\n <div class=\"sr-only\" aria-live=\"polite\">\n {!visible ? `Dismissed ${ariaLabel}` : \"\"}\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-chip.js","sourceRoot":"","sources":["../../../src/components/ic-chip/ic-chip.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n State,\n Listen,\n Event,\n EventEmitter,\n Element,\n Method,\n Watch,\n Host,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n removeDisabledFalse,\n convertToRGBA,\n isElInAGGrid,\n getBrandForegroundAppearance,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcBrandForegroundNoDefault,\n IcColor,\n IcEmphasisType,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport dismissIcon from \"../../assets/dismiss-icon.svg\";\n\n/**\n * @slot icon - Content will be rendered at the start of the chip.\n * @slot badge - Badge component overlaying the top right of the chip.\n */\n@Component({\n tag: \"ic-chip\",\n styleUrl: \"ic-chip.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Chip {\n private buttonEl?: HTMLButtonElement;\n private hostMutationObserver?: MutationObserver;\n\n @Element() el: HTMLIcChipElement;\n\n @State() foregroundColor: IcBrandForegroundNoDefault | null = null;\n @State() hovered = false;\n @State() visible = true;\n\n /**\n * The custom chip colour. This will override the theme colour.\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor;\n @Watch(\"customColor\")\n customColorHandler(): void {\n const colorRGBA = this.customColor && convertToRGBA(this.customColor);\n if (!colorRGBA) {\n this.foregroundColor = null;\n return;\n }\n\n const { r, g, b, a } = colorRGBA;\n this.foregroundColor = getBrandForegroundAppearance(\n (r * 299 + g * 587 + b * 114) / 1000\n );\n this.el.setAttribute(\n \"style\",\n `--chip-custom-color: rgba(${r}, ${g}, ${b}, ${a});`\n );\n }\n\n /**\n * If `true`, the chip will appear disabled.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the chip will have a close button at the end to dismiss it.\n */\n @Prop() dismissible = false;\n\n /**\n * The text in the dismiss button tooltip and aria label. Makes the user aware of the action resulting from clicking the 'Dismiss chip' button.\n */\n @Prop() dismissLabel = \"Dismiss\";\n\n /**\n * The text rendered within the chip.\n */\n @Prop() label!: string;\n\n /**\n * The size of the chip.\n */\n @Prop() size: IcSizes = \"medium\";\n /**\n * Sets the chip to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n * Setting the \"customColor\" prop will override this.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the outlined variant of chip will have a transparent background rather than the theme defined color.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The emphasis of the chip.\n */\n @Prop() variant: IcEmphasisType = \"filled\";\n\n /**\n * Is emitted when the user dismisses the chip.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.customColorHandler();\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Chip\"\n );\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, [\"icon\", \"badge\"], this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n /**\n * Sets focus on the chip.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private dismissAction = () => {\n this.icDismiss.emit();\n };\n\n private mouseEnterHandler = () => {\n this.hovered = true;\n };\n\n private mouseLeaveHandler = () => {\n this.hovered = false;\n };\n\n render() {\n const {\n label,\n variant,\n size,\n dismissible,\n visible,\n disabled,\n hovered,\n theme,\n foregroundColor,\n dismissLabel,\n transparentBackground,\n } = this;\n\n const ariaLabel = `${label} chip`;\n\n return (\n <Host\n class={{\n \"ic-chip-dismissed\": !visible,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-chip-${foregroundColor}-text`]:\n variant === \"filled\" && !!foregroundColor,\n }}\n >\n {visible && (\n <div\n class={{\n chip: true,\n [`${variant}`]: true,\n [`${size}`]: true,\n disabled,\n dismissible,\n hovered,\n \"non-transparent\":\n variant === \"outlined\" && !transparentBackground,\n }}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography\n variant=\"label\"\n apply-vertical-margins={false}\n class={{ label: true, \"in-ag-grid\": isElInAGGrid(this.el) }}\n >\n <span>{label}</span>\n </ic-typography>\n {dismissible && (\n <ic-tooltip\n label={dismissLabel}\n target=\"dismiss-icon\"\n class={{ \"tooltip-disabled\": disabled }}\n >\n <button\n id=\"dismiss-icon\"\n class=\"dismiss-icon\"\n ref={(el) => (this.buttonEl = el)}\n aria-label={`${dismissLabel} ${ariaLabel}`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n onClick={this.dismissAction}\n onMouseEnter={this.mouseEnterHandler}\n onMouseLeave={this.mouseLeaveHandler}\n innerHTML={dismissIcon}\n ></button>\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </div>\n )}\n {dismissible && (\n <div class=\"sr-only\" aria-live=\"polite\">\n {!visible ? `Dismissed ${ariaLabel}` : \"\"}\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -20,7 +20,9 @@ export class Dialog {
20
20
  this.IC_CHECKBOX = "IC-CHECKBOX";
21
21
  this.IC_SEARCH_BAR = "IC-SEARCH-BAR";
22
22
  this.IC_TAB_CONTEXT = "IC-TAB-CONTEXT";
23
+ this.interactiveElementList = [];
23
24
  this.resizeObserver = null;
25
+ this.focusAttemptCount = 0;
24
26
  this.dialogRendered = false;
25
27
  this.fadeIn = false;
26
28
  /**
@@ -89,6 +91,7 @@ export class Dialog {
89
91
  }
90
92
  }, 10);
91
93
  setTimeout(() => {
94
+ this.getInteractiveElements();
92
95
  this.setInitialFocus();
93
96
  checkResizeObserver(this.runResizeObserver);
94
97
  }, 75);
@@ -139,10 +142,24 @@ export class Dialog {
139
142
  };
140
143
  this.setInitialFocus = () => {
141
144
  this.sourceElement = document.activeElement;
142
- this.focusedElementIndex = this.interactiveElementList
143
- ? this.interactiveElementList.findIndex((element) => element.hasAttribute(this.DATA_GETS_FOCUS))
144
- : 0;
145
- this.focusElement(this.interactiveElementList[this.focusedElementIndex]);
145
+ if (!this.interactiveElementList.length) {
146
+ // No interactive elements yet, retry shortly
147
+ setTimeout(() => {
148
+ this.getInteractiveElements();
149
+ if (this.interactiveElementList.length) {
150
+ this.setInitialFocus();
151
+ }
152
+ }, 10);
153
+ return;
154
+ }
155
+ this.focusedElementIndex = this.interactiveElementList.findIndex((element) => element.hasAttribute(this.DATA_GETS_FOCUS));
156
+ if (this.focusedElementIndex === -1) {
157
+ this.focusedElementIndex = 0;
158
+ }
159
+ const elToFocus = this.interactiveElementList[this.focusedElementIndex];
160
+ if (elToFocus) {
161
+ this.focusElement(elToFocus);
162
+ }
146
163
  };
147
164
  this.getFocusedElementIndex = () => {
148
165
  var _a;
@@ -177,17 +194,22 @@ export class Dialog {
177
194
  };
178
195
  this.getNextFocusEl = (focusedElementIndex) => this.interactiveElementList[focusedElementIndex];
179
196
  this.onTabKeyPress = (shiftKey) => {
197
+ var _a;
180
198
  this.getFocusedElementIndex();
181
- if (this.interactiveElementList[this.focusedElementIndex].tagName ===
199
+ if (((_a = this.interactiveElementList[this.focusedElementIndex]) === null || _a === void 0 ? void 0 : _a.tagName) ===
182
200
  this.IC_SEARCH_BAR) {
183
201
  return false;
184
202
  }
185
203
  this.setFocusIndexBasedOnShiftKey(shiftKey);
186
204
  this.loopNextFocusIndexIfLastElement();
205
+ this.focusAttemptCount = 0;
187
206
  this.focusElement(this.getNextFocusEl(this.focusedElementIndex), shiftKey);
188
207
  return true;
189
208
  };
190
209
  this.shouldSkipElement = (element) => {
210
+ if (!element) {
211
+ return true;
212
+ }
191
213
  const isHidden = getComputedStyle(element).visibility === "hidden" ||
192
214
  element.offsetHeight === 0 ||
193
215
  element.hasAttribute("disabled") ||
@@ -200,12 +222,16 @@ export class Dialog {
200
222
  !(radioEl.hasAttribute("selected") || element.tabIndex === 0)));
201
223
  };
202
224
  this.focusElement = (element, shiftKey = false) => {
203
- let nextFocusEl = element;
225
+ if (!element) {
226
+ return;
227
+ }
228
+ if (this.focusAttemptCount++ > this.interactiveElementList.length) {
229
+ return;
230
+ }
204
231
  if (this.shouldSkipElement(element)) {
205
232
  this.setFocusIndexBasedOnShiftKey(shiftKey);
206
233
  this.loopNextFocusIndexIfLastElement();
207
- nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);
208
- this.focusElement(nextFocusEl, shiftKey);
234
+ this.focusElement(this.getNextFocusEl(this.focusedElementIndex), shiftKey);
209
235
  }
210
236
  else {
211
237
  switch (element.tagName) {
@@ -260,7 +286,6 @@ export class Dialog {
260
286
  this.removeSlotChangeListener();
261
287
  }
262
288
  componentDidLoad() {
263
- this.getInteractiveElements();
264
289
  this.refreshInteractiveElementsOnSlotChange();
265
290
  if (this.open) {
266
291
  this.dialogOpened();
@@ -336,7 +361,7 @@ export class Dialog {
336
361
  }
337
362
  render() {
338
363
  const { dialogRendered, disableHeightConstraint, fadeIn, theme } = this;
339
- return (h(Host, { key: '6de63d3d94afa349dc9bb5b30296837bbf89f810', class: {
364
+ return (h(Host, { key: '90bdbe0ef1a88e61db6395c4f63bea39573a757b', class: {
340
365
  "ic-dialog-hidden": !dialogRendered,
341
366
  "ic-dialog-fade-in": fadeIn,
342
367
  "disable-height-constraint": !!disableHeightConstraint,
@@ -618,7 +643,7 @@ export class Dialog {
618
643
  "composed": true,
619
644
  "docs": {
620
645
  "tags": [],
621
- "text": "Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called."
646
+ "text": "Cancellation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called."
622
647
  },
623
648
  "complexType": {
624
649
  "original": "void",