@ukic/web-components 2.24.0 → 2.25.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (481) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-80016ff7.js → helpers-4af10d35.js} +4 -2
  3. package/dist/cjs/helpers-4af10d35.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +2 -2
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +3 -3
  7. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +17 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +8 -2
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-button_3.cjs.entry.js +24 -2
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card.cjs.entry.js +26 -2
  19. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-classification-banner.cjs.entry.js +12 -3
  24. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-empty-state.cjs.entry.js +20 -1
  29. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-footer-link-group.cjs.entry.js +3 -3
  31. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  33. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-hero.cjs.entry.js +17 -1
  37. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-page-header.cjs.entry.js +4 -4
  50. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-select.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -2
  61. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-tab-context.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-tab.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-text-field.cjs.entry.js +3 -4
  73. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-top-navigation.cjs.entry.js +3 -3
  78. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  80. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  81. package/dist/cjs/loader.cjs.js +1 -1
  82. package/dist/collection/components/ic-accordion/ic-accordion.css +7 -2
  83. package/dist/collection/components/ic-accordion/ic-accordion.js +1 -1
  84. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  85. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +2 -2
  86. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -1
  87. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +2 -2
  88. package/dist/collection/components/ic-alert/ic-alert.js +18 -2
  89. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  90. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +15 -0
  91. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
  92. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +7 -1
  93. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  94. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +1 -1
  95. package/dist/collection/components/ic-button/ic-button.js +14 -1
  96. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  97. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +19 -0
  98. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  99. package/dist/collection/components/ic-card/ic-card.css +7 -2
  100. package/dist/collection/components/ic-card/ic-card.js +26 -2
  101. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  102. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js +21 -0
  103. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js.map +1 -1
  104. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +12 -3
  105. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  106. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +48 -0
  107. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +1 -1
  108. package/dist/collection/components/ic-empty-state/ic-empty-state.js +21 -2
  109. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  110. package/dist/collection/components/ic-footer/ic-footer.js +1 -1
  111. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  112. package/dist/collection/components/ic-footer-link/ic-footer-link.css +1 -1
  113. package/dist/collection/components/ic-footer-link/ic-footer-link.js +1 -1
  114. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  115. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +2 -18
  116. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +1 -1
  117. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +2 -2
  118. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  119. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +2 -34
  120. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -1
  121. package/dist/collection/components/ic-hero/ic-hero.js +18 -2
  122. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  123. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +15 -0
  124. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -1
  125. package/dist/collection/components/ic-link/ic-link.css +1 -1
  126. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +2 -2
  127. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  128. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +2 -2
  129. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
  130. package/dist/collection/components/ic-page-header/ic-page-header.js +3 -3
  131. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  132. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +7 -0
  133. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +1 -1
  134. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +2 -2
  135. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +1 -1
  136. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +2 -2
  137. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -1
  138. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +1 -1
  139. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  140. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +1 -1
  141. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  142. package/dist/collection/components/ic-status-tag/ic-status-tag.css +10 -0
  143. package/dist/collection/components/ic-status-tag/ic-status-tag.js +5 -4
  144. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  145. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +2 -2
  146. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -1
  147. package/dist/collection/components/ic-stepper/ic-stepper.js +1 -1
  148. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  149. package/dist/collection/components/ic-tab/ic-tab.js +1 -1
  150. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  151. package/dist/collection/components/ic-tab-context/ic-tab-context.js +2 -2
  152. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  153. package/dist/collection/components/ic-text-field/ic-text-field.js +4 -5
  154. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  155. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +2 -2
  156. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  157. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +4 -4
  158. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  159. package/dist/collection/components/ic-tooltip/ic-tooltip.js +29 -0
  160. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  161. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +2 -2
  162. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  163. package/dist/collection/components/ic-typography/ic-typography.css +1 -1
  164. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +1 -1
  165. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
  166. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +1 -1
  167. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  168. package/dist/collection/utils/helpers.js +3 -1
  169. package/dist/collection/utils/helpers.js.map +1 -1
  170. package/dist/components/helpers.js +4 -2
  171. package/dist/components/helpers.js.map +1 -1
  172. package/dist/components/ic-accordion-group.js +1 -1
  173. package/dist/components/ic-accordion-group.js.map +1 -1
  174. package/dist/components/ic-accordion.js +2 -2
  175. package/dist/components/ic-accordion.js.map +1 -1
  176. package/dist/components/ic-alert2.js +18 -2
  177. package/dist/components/ic-alert2.js.map +1 -1
  178. package/dist/components/ic-back-to-top.js +8 -2
  179. package/dist/components/ic-back-to-top.js.map +1 -1
  180. package/dist/components/ic-badge.js +1 -1
  181. package/dist/components/ic-breadcrumb-group.js +1 -1
  182. package/dist/components/ic-breadcrumb2.js +1 -1
  183. package/dist/components/ic-breadcrumb2.js.map +1 -1
  184. package/dist/components/ic-button2.js +14 -1
  185. package/dist/components/ic-button2.js.map +1 -1
  186. package/dist/components/ic-card.js +27 -3
  187. package/dist/components/ic-card.js.map +1 -1
  188. package/dist/components/ic-checkbox-group.js +1 -1
  189. package/dist/components/ic-checkbox.js +1 -1
  190. package/dist/components/ic-chip.js +1 -1
  191. package/dist/components/ic-classification-banner.js +12 -3
  192. package/dist/components/ic-classification-banner.js.map +1 -1
  193. package/dist/components/ic-data-row.js +1 -1
  194. package/dist/components/ic-divider2.js +1 -1
  195. package/dist/components/ic-empty-state.js +21 -2
  196. package/dist/components/ic-empty-state.js.map +1 -1
  197. package/dist/components/ic-footer-link-group.js +3 -3
  198. package/dist/components/ic-footer-link-group.js.map +1 -1
  199. package/dist/components/ic-footer-link.js +3 -3
  200. package/dist/components/ic-footer-link.js.map +1 -1
  201. package/dist/components/ic-footer.js +2 -2
  202. package/dist/components/ic-footer.js.map +1 -1
  203. package/dist/components/ic-hero.js +18 -2
  204. package/dist/components/ic-hero.js.map +1 -1
  205. package/dist/components/ic-horizontal-scroll2.js +1 -1
  206. package/dist/components/ic-input-component-container2.js +1 -1
  207. package/dist/components/ic-input-label2.js +1 -1
  208. package/dist/components/ic-input-validation2.js +1 -1
  209. package/dist/components/ic-link2.js +1 -1
  210. package/dist/components/ic-link2.js.map +1 -1
  211. package/dist/components/ic-navigation-button.js +1 -1
  212. package/dist/components/ic-navigation-group.js +1 -1
  213. package/dist/components/ic-navigation-item.js +1 -1
  214. package/dist/components/ic-page-header.js +4 -4
  215. package/dist/components/ic-page-header.js.map +1 -1
  216. package/dist/components/ic-popover-menu.js +1 -1
  217. package/dist/components/ic-radio-group.js +1 -1
  218. package/dist/components/ic-radio-option.js +1 -1
  219. package/dist/components/ic-search-bar.js +1 -1
  220. package/dist/components/ic-select.js +1 -1
  221. package/dist/components/ic-side-navigation.js +2 -2
  222. package/dist/components/ic-side-navigation.js.map +1 -1
  223. package/dist/components/ic-status-tag.js +2 -1
  224. package/dist/components/ic-status-tag.js.map +1 -1
  225. package/dist/components/ic-stepper.js.map +1 -1
  226. package/dist/components/ic-switch.js +1 -1
  227. package/dist/components/ic-tab-context.js +2 -2
  228. package/dist/components/ic-tab-context.js.map +1 -1
  229. package/dist/components/ic-tab.js +1 -1
  230. package/dist/components/ic-tab.js.map +1 -1
  231. package/dist/components/ic-text-field2.js +3 -4
  232. package/dist/components/ic-text-field2.js.map +1 -1
  233. package/dist/components/ic-theme.js +1 -1
  234. package/dist/components/ic-tooltip2.js +11 -1
  235. package/dist/components/ic-tooltip2.js.map +1 -1
  236. package/dist/components/ic-top-navigation.js +3 -3
  237. package/dist/components/ic-top-navigation.js.map +1 -1
  238. package/dist/components/ic-typography2.js +1 -1
  239. package/dist/components/ic-typography2.js.map +1 -1
  240. package/dist/core/core.esm.js +1 -1
  241. package/dist/core/core.esm.js.map +1 -1
  242. package/dist/core/{p-910ab8e5.entry.js → p-014342a2.entry.js} +2 -2
  243. package/dist/core/p-03434b02.entry.js +2 -0
  244. package/dist/core/p-03434b02.entry.js.map +1 -0
  245. package/dist/core/{p-072a5366.entry.js → p-038a2ea1.entry.js} +2 -2
  246. package/dist/core/{p-e3675a83.entry.js → p-08781606.entry.js} +2 -2
  247. package/dist/core/p-08781606.entry.js.map +1 -0
  248. package/dist/core/{p-e4f0fc68.entry.js → p-0a2cdf34.entry.js} +2 -2
  249. package/dist/core/{p-bf70fe93.entry.js → p-13f2c9dc.entry.js} +2 -2
  250. package/dist/core/{p-bf70fe93.entry.js.map → p-13f2c9dc.entry.js.map} +1 -1
  251. package/dist/core/p-14c47aed.entry.js +2 -0
  252. package/dist/core/p-14c47aed.entry.js.map +1 -0
  253. package/dist/core/{p-96f92fdc.entry.js → p-15138df1.entry.js} +2 -2
  254. package/dist/core/p-15138df1.entry.js.map +1 -0
  255. package/dist/core/{p-af439ab9.entry.js → p-191d2571.entry.js} +2 -2
  256. package/dist/core/{p-cc3f2353.entry.js → p-1d9fceb1.entry.js} +2 -2
  257. package/dist/core/{p-4c5eafd6.entry.js → p-1e33ac04.entry.js} +2 -2
  258. package/dist/core/p-1e33ac04.entry.js.map +1 -0
  259. package/dist/core/p-1eb6fc19.entry.js +2 -0
  260. package/dist/core/p-1eb6fc19.entry.js.map +1 -0
  261. package/dist/core/p-1ef00a47.entry.js +2 -0
  262. package/dist/core/p-1ef00a47.entry.js.map +1 -0
  263. package/dist/core/{p-de8d16f8.entry.js → p-1f4698e7.entry.js} +2 -2
  264. package/dist/core/{p-81d3b43b.entry.js → p-24e6c926.entry.js} +2 -2
  265. package/dist/core/p-261debaf.entry.js +2 -0
  266. package/dist/core/p-261debaf.entry.js.map +1 -0
  267. package/dist/core/{p-8df60639.entry.js → p-277c3199.entry.js} +2 -2
  268. package/dist/core/{p-65ddd1b0.entry.js → p-2bc8a51d.entry.js} +2 -2
  269. package/dist/core/p-2bc8a51d.entry.js.map +1 -0
  270. package/dist/core/{p-a5dd7065.js → p-36cd5d32.js} +2 -2
  271. package/dist/core/p-36cd5d32.js.map +1 -0
  272. package/dist/core/{p-d79a1565.entry.js → p-37d152b9.entry.js} +2 -2
  273. package/dist/core/p-37d152b9.entry.js.map +1 -0
  274. package/dist/core/{p-4661ee3b.entry.js → p-3b41756e.entry.js} +2 -2
  275. package/dist/core/{p-4c97f1e6.entry.js → p-41b93fc2.entry.js} +2 -2
  276. package/dist/core/p-4a64ec92.entry.js +2 -0
  277. package/dist/core/p-4a64ec92.entry.js.map +1 -0
  278. package/dist/core/{p-6167880d.entry.js → p-4a9eecd7.entry.js} +2 -2
  279. package/dist/core/p-4a9eecd7.entry.js.map +1 -0
  280. package/dist/core/{p-7ce6fb3b.entry.js → p-4ad38ad7.entry.js} +2 -2
  281. package/dist/core/{p-d4e6c64e.entry.js → p-4ecf210f.entry.js} +2 -2
  282. package/dist/core/p-4ecf210f.entry.js.map +1 -0
  283. package/dist/core/{p-b85c5581.entry.js → p-5128fc04.entry.js} +2 -2
  284. package/dist/core/{p-6fdc8bef.entry.js → p-59732bc5.entry.js} +2 -2
  285. package/dist/core/{p-deebcbe3.entry.js → p-5bba7e31.entry.js} +2 -2
  286. package/dist/core/p-6a4a0752.entry.js +2 -0
  287. package/dist/core/p-6a4a0752.entry.js.map +1 -0
  288. package/dist/core/{p-a0e94ddd.entry.js → p-6e36ff34.entry.js} +2 -2
  289. package/dist/core/{p-3cc52cbc.entry.js → p-6fae7e1f.entry.js} +2 -2
  290. package/dist/core/{p-3cc52cbc.entry.js.map → p-6fae7e1f.entry.js.map} +1 -1
  291. package/dist/core/{p-a399de54.entry.js → p-70a7cfa5.entry.js} +2 -2
  292. package/dist/core/{p-1c654ddd.entry.js → p-7e5936a3.entry.js} +2 -2
  293. package/dist/core/{p-a340a923.entry.js → p-80b87940.entry.js} +2 -2
  294. package/dist/core/p-80b87940.entry.js.map +1 -0
  295. package/dist/core/{p-74176f4c.entry.js → p-85f6a2ef.entry.js} +2 -2
  296. package/dist/core/{p-c623e1b0.entry.js → p-8ce2dfd4.entry.js} +2 -2
  297. package/dist/core/{p-8619c625.entry.js → p-92b9b56a.entry.js} +2 -2
  298. package/dist/core/{p-21885256.entry.js → p-967d5546.entry.js} +2 -2
  299. package/dist/core/{p-a3fa8e25.entry.js → p-98708868.entry.js} +2 -2
  300. package/dist/core/p-98708868.entry.js.map +1 -0
  301. package/dist/core/{p-09a2f6ff.entry.js → p-a332f7d8.entry.js} +2 -2
  302. package/dist/core/{p-c9efaee1.entry.js → p-a646c117.entry.js} +2 -2
  303. package/dist/core/{p-c9efaee1.entry.js.map → p-a646c117.entry.js.map} +1 -1
  304. package/dist/core/{p-5443b79a.entry.js → p-a8aea311.entry.js} +2 -2
  305. package/dist/core/{p-8d98835c.entry.js → p-a9a2987c.entry.js} +2 -2
  306. package/dist/core/{p-984e07a2.entry.js → p-bb2f2048.entry.js} +2 -2
  307. package/dist/core/{p-984e07a2.entry.js.map → p-bb2f2048.entry.js.map} +1 -1
  308. package/dist/core/p-c1db024d.entry.js +2 -0
  309. package/dist/core/p-c1db024d.entry.js.map +1 -0
  310. package/dist/core/{p-cbb92eb0.entry.js → p-cf3a721c.entry.js} +2 -2
  311. package/dist/core/{p-9419b840.entry.js → p-d19d50b6.entry.js} +2 -2
  312. package/dist/core/{p-2e8aaf89.entry.js → p-d69f353b.entry.js} +2 -2
  313. package/dist/core/p-e735d773.entry.js +2 -0
  314. package/dist/core/p-e735d773.entry.js.map +1 -0
  315. package/dist/core/{p-f807e600.entry.js → p-e928928a.entry.js} +2 -2
  316. package/dist/core/{p-b3178032.entry.js → p-ea61b524.entry.js} +2 -2
  317. package/dist/core/{p-4e6c5e80.entry.js → p-eb1d00a7.entry.js} +2 -2
  318. package/dist/core/{p-9128a8e0.entry.js → p-f13195ab.entry.js} +2 -2
  319. package/dist/core/{p-9128a8e0.entry.js.map → p-f13195ab.entry.js.map} +1 -1
  320. package/dist/core/{p-de7c0f2c.entry.js → p-f861a72a.entry.js} +2 -2
  321. package/dist/esm/core.js +1 -1
  322. package/dist/esm/{helpers-988ce06b.js → helpers-354dbb8d.js} +5 -3
  323. package/dist/esm/helpers-354dbb8d.js.map +1 -0
  324. package/dist/esm/ic-accordion-group.entry.js +2 -2
  325. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  326. package/dist/esm/ic-accordion.entry.js +3 -3
  327. package/dist/esm/ic-accordion.entry.js.map +1 -1
  328. package/dist/esm/ic-alert.entry.js +18 -2
  329. package/dist/esm/ic-alert.entry.js.map +1 -1
  330. package/dist/esm/ic-back-to-top.entry.js +8 -2
  331. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  332. package/dist/esm/ic-badge.entry.js +1 -1
  333. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  334. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  335. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  336. package/dist/esm/ic-button_3.entry.js +24 -2
  337. package/dist/esm/ic-button_3.entry.js.map +1 -1
  338. package/dist/esm/ic-card.entry.js +27 -3
  339. package/dist/esm/ic-card.entry.js.map +1 -1
  340. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  341. package/dist/esm/ic-checkbox.entry.js +1 -1
  342. package/dist/esm/ic-chip.entry.js +1 -1
  343. package/dist/esm/ic-classification-banner.entry.js +12 -3
  344. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  345. package/dist/esm/ic-data-row.entry.js +1 -1
  346. package/dist/esm/ic-dialog.entry.js +1 -1
  347. package/dist/esm/ic-divider.entry.js +1 -1
  348. package/dist/esm/ic-empty-state.entry.js +21 -2
  349. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  350. package/dist/esm/ic-footer-link-group.entry.js +3 -3
  351. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  352. package/dist/esm/ic-footer-link.entry.js +3 -3
  353. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  354. package/dist/esm/ic-footer.entry.js +2 -2
  355. package/dist/esm/ic-footer.entry.js.map +1 -1
  356. package/dist/esm/ic-hero.entry.js +18 -2
  357. package/dist/esm/ic-hero.entry.js.map +1 -1
  358. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  359. package/dist/esm/ic-input-component-container_3.entry.js +1 -1
  360. package/dist/esm/ic-input-label_2.entry.js +1 -1
  361. package/dist/esm/ic-link.entry.js +2 -2
  362. package/dist/esm/ic-link.entry.js.map +1 -1
  363. package/dist/esm/ic-menu-group.entry.js +1 -1
  364. package/dist/esm/ic-menu-item.entry.js +1 -1
  365. package/dist/esm/ic-navigation-button.entry.js +1 -1
  366. package/dist/esm/ic-navigation-group.entry.js +1 -1
  367. package/dist/esm/ic-navigation-item.entry.js +1 -1
  368. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  369. package/dist/esm/ic-page-header.entry.js +4 -4
  370. package/dist/esm/ic-page-header.entry.js.map +1 -1
  371. package/dist/esm/ic-pagination-item.entry.js +1 -1
  372. package/dist/esm/ic-pagination.entry.js +1 -1
  373. package/dist/esm/ic-popover-menu.entry.js +1 -1
  374. package/dist/esm/ic-radio-group.entry.js +1 -1
  375. package/dist/esm/ic-radio-option.entry.js +1 -1
  376. package/dist/esm/ic-search-bar.entry.js +1 -1
  377. package/dist/esm/ic-select.entry.js +1 -1
  378. package/dist/esm/ic-side-navigation.entry.js +2 -2
  379. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  380. package/dist/esm/ic-status-tag.entry.js +3 -2
  381. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  382. package/dist/esm/ic-step.entry.js +1 -1
  383. package/dist/esm/ic-stepper.entry.js +1 -1
  384. package/dist/esm/ic-stepper.entry.js.map +1 -1
  385. package/dist/esm/ic-switch.entry.js +1 -1
  386. package/dist/esm/ic-tab-context.entry.js +2 -2
  387. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  388. package/dist/esm/ic-tab-group.entry.js +1 -1
  389. package/dist/esm/ic-tab-panel.entry.js +1 -1
  390. package/dist/esm/ic-tab.entry.js +2 -2
  391. package/dist/esm/ic-tab.entry.js.map +1 -1
  392. package/dist/esm/ic-text-field.entry.js +3 -4
  393. package/dist/esm/ic-text-field.entry.js.map +1 -1
  394. package/dist/esm/ic-theme.entry.js +1 -1
  395. package/dist/esm/ic-toast.entry.js +1 -1
  396. package/dist/esm/ic-toggle-button.entry.js +1 -1
  397. package/dist/esm/ic-top-navigation.entry.js +3 -3
  398. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  399. package/dist/esm/ic-typography.entry.js +2 -2
  400. package/dist/esm/ic-typography.entry.js.map +1 -1
  401. package/dist/esm/loader.js +1 -1
  402. package/dist/types/components/ic-alert/ic-alert.d.ts +3 -0
  403. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +1 -0
  404. package/dist/types/components/ic-button/ic-button.d.ts +2 -0
  405. package/dist/types/components/ic-card/ic-card.d.ts +2 -0
  406. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +3 -0
  407. package/dist/types/components/ic-hero/ic-hero.d.ts +3 -0
  408. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -1
  409. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +2 -2
  410. package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -1
  411. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -1
  412. package/dist/types/components/ic-text-field/ic-text-field.d.ts +2 -2
  413. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +4 -0
  414. package/dist/types/components.d.ts +9 -8
  415. package/dist/types/utils/helpers.d.ts +1 -1
  416. package/hydrate/index.js +139 -32
  417. package/package.json +2 -2
  418. package/vscode-data.json +6 -3
  419. package/dist/cjs/helpers-80016ff7.js.map +0 -1
  420. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js +0 -29
  421. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js.map +0 -1
  422. package/dist/core/p-04f98d04.entry.js +0 -2
  423. package/dist/core/p-04f98d04.entry.js.map +0 -1
  424. package/dist/core/p-2eb95212.entry.js +0 -2
  425. package/dist/core/p-2eb95212.entry.js.map +0 -1
  426. package/dist/core/p-4c5eafd6.entry.js.map +0 -1
  427. package/dist/core/p-4d1490ce.entry.js +0 -2
  428. package/dist/core/p-4d1490ce.entry.js.map +0 -1
  429. package/dist/core/p-6167880d.entry.js.map +0 -1
  430. package/dist/core/p-65ddd1b0.entry.js.map +0 -1
  431. package/dist/core/p-7e801198.entry.js +0 -2
  432. package/dist/core/p-7e801198.entry.js.map +0 -1
  433. package/dist/core/p-905e4232.entry.js +0 -2
  434. package/dist/core/p-905e4232.entry.js.map +0 -1
  435. package/dist/core/p-96f92fdc.entry.js.map +0 -1
  436. package/dist/core/p-a2704b98.entry.js +0 -2
  437. package/dist/core/p-a2704b98.entry.js.map +0 -1
  438. package/dist/core/p-a340a923.entry.js.map +0 -1
  439. package/dist/core/p-a3fa8e25.entry.js.map +0 -1
  440. package/dist/core/p-a5dd7065.js.map +0 -1
  441. package/dist/core/p-c532b8bd.entry.js +0 -2
  442. package/dist/core/p-c532b8bd.entry.js.map +0 -1
  443. package/dist/core/p-d4e6c64e.entry.js.map +0 -1
  444. package/dist/core/p-d79a1565.entry.js.map +0 -1
  445. package/dist/core/p-defa21f5.entry.js +0 -2
  446. package/dist/core/p-defa21f5.entry.js.map +0 -1
  447. package/dist/core/p-e3675a83.entry.js.map +0 -1
  448. package/dist/core/p-e5a6218b.entry.js +0 -2
  449. package/dist/core/p-e5a6218b.entry.js.map +0 -1
  450. package/dist/esm/helpers-988ce06b.js.map +0 -1
  451. /package/dist/core/{p-910ab8e5.entry.js.map → p-014342a2.entry.js.map} +0 -0
  452. /package/dist/core/{p-072a5366.entry.js.map → p-038a2ea1.entry.js.map} +0 -0
  453. /package/dist/core/{p-e4f0fc68.entry.js.map → p-0a2cdf34.entry.js.map} +0 -0
  454. /package/dist/core/{p-af439ab9.entry.js.map → p-191d2571.entry.js.map} +0 -0
  455. /package/dist/core/{p-cc3f2353.entry.js.map → p-1d9fceb1.entry.js.map} +0 -0
  456. /package/dist/core/{p-de8d16f8.entry.js.map → p-1f4698e7.entry.js.map} +0 -0
  457. /package/dist/core/{p-81d3b43b.entry.js.map → p-24e6c926.entry.js.map} +0 -0
  458. /package/dist/core/{p-8df60639.entry.js.map → p-277c3199.entry.js.map} +0 -0
  459. /package/dist/core/{p-4661ee3b.entry.js.map → p-3b41756e.entry.js.map} +0 -0
  460. /package/dist/core/{p-4c97f1e6.entry.js.map → p-41b93fc2.entry.js.map} +0 -0
  461. /package/dist/core/{p-7ce6fb3b.entry.js.map → p-4ad38ad7.entry.js.map} +0 -0
  462. /package/dist/core/{p-b85c5581.entry.js.map → p-5128fc04.entry.js.map} +0 -0
  463. /package/dist/core/{p-6fdc8bef.entry.js.map → p-59732bc5.entry.js.map} +0 -0
  464. /package/dist/core/{p-deebcbe3.entry.js.map → p-5bba7e31.entry.js.map} +0 -0
  465. /package/dist/core/{p-a0e94ddd.entry.js.map → p-6e36ff34.entry.js.map} +0 -0
  466. /package/dist/core/{p-a399de54.entry.js.map → p-70a7cfa5.entry.js.map} +0 -0
  467. /package/dist/core/{p-1c654ddd.entry.js.map → p-7e5936a3.entry.js.map} +0 -0
  468. /package/dist/core/{p-74176f4c.entry.js.map → p-85f6a2ef.entry.js.map} +0 -0
  469. /package/dist/core/{p-c623e1b0.entry.js.map → p-8ce2dfd4.entry.js.map} +0 -0
  470. /package/dist/core/{p-8619c625.entry.js.map → p-92b9b56a.entry.js.map} +0 -0
  471. /package/dist/core/{p-21885256.entry.js.map → p-967d5546.entry.js.map} +0 -0
  472. /package/dist/core/{p-09a2f6ff.entry.js.map → p-a332f7d8.entry.js.map} +0 -0
  473. /package/dist/core/{p-5443b79a.entry.js.map → p-a8aea311.entry.js.map} +0 -0
  474. /package/dist/core/{p-8d98835c.entry.js.map → p-a9a2987c.entry.js.map} +0 -0
  475. /package/dist/core/{p-cbb92eb0.entry.js.map → p-cf3a721c.entry.js.map} +0 -0
  476. /package/dist/core/{p-9419b840.entry.js.map → p-d19d50b6.entry.js.map} +0 -0
  477. /package/dist/core/{p-2e8aaf89.entry.js.map → p-d69f353b.entry.js.map} +0 -0
  478. /package/dist/core/{p-f807e600.entry.js.map → p-e928928a.entry.js.map} +0 -0
  479. /package/dist/core/{p-b3178032.entry.js.map → p-ea61b524.entry.js.map} +0 -0
  480. /package/dist/core/{p-4e6c5e80.entry.js.map → p-eb1d00a7.entry.js.map} +0 -0
  481. /package/dist/core/{p-de7c0f2c.entry.js.map → p-f861a72a.entry.js.map} +0 -0
@@ -267,7 +267,7 @@ describe("ic-accordion snapshots", () => {
267
267
  page.rootInstance.expandedContentEl = accordionExpanded;
268
268
  page.rootInstance.expandedContentEl.clientHeight = 0;
269
269
  await page.rootInstance.hideExpandedContent(transitionEvent, page.rootInstance.expandedContentEl);
270
- expect(page.rootInstance.expandedContentEl.style.getPropertyValue("--ic-expanded-content-visiblity")).toBe("hidden");
270
+ expect(page.rootInstance.expandedContentEl.style.getPropertyValue("--ic-expanded-content-visibility")).toBe("hidden");
271
271
  });
272
272
  it("should set visibility to undefined if client height is greater than 0", async () => {
273
273
  const transitionEvent = {
@@ -286,7 +286,7 @@ describe("ic-accordion snapshots", () => {
286
286
  page.rootInstance.expandedContentEl = accordionExpanded;
287
287
  page.rootInstance.expandedContentEl.clientHeight = 50;
288
288
  await page.rootInstance.hideExpandedContent(transitionEvent, page.rootInstance.expandedContentEl);
289
- expect(page.rootInstance.expandedContentEl.style.getPropertyValue("--ic-expanded-content-visiblity")).toBe("");
289
+ expect(page.rootInstance.expandedContentEl.style.getPropertyValue("--ic-expanded-content-visibility")).toBe("");
290
290
  });
291
291
  it("should call 'setFocus' when accordion can be focused", async () => {
292
292
  const page = await newSpecPage({
@@ -1 +1 @@
1
- {"version":3,"file":"ic-accordion.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-accordion/test/basic/ic-accordion.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Accordion } from \"../../ic-accordion\";\n\ndescribe(\"ic-accordion snapshots\", () => {\n it(\"should match default snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>\n `,\n });\n expect(page.root).toMatchSnapshot(\"renders as default\");\n });\n\n it(\"should match light snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders as light\");\n });\n\n it(\"should match with icon snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <svg\n slot=\"icon\"\n width=\"20\"\n height=\"1em\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"\n />\n </svg>\n <ic-typography variant=\"body\">\n This is an example of the main body text\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders with icon\");\n });\n\n it(\"should render with slot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" size=\"small\">\n <slot>This is an example of the main body text.</slot>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders small accordion\");\n });\n\n it(\"should match small snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" size=\"small\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders small accordion\");\n });\n\n it(\"should match large snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion size=\"large\" heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders large accordion\");\n });\n\n it(\"should render with a heading slot when supplied\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: ` \n <ic-accordion>\n <slot name=\"heading\"/></slot>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders with heading slot\");\n });\n\n it(\"should render in a disabled state\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" disabled>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"disabled\");\n });\n\n describe(\"ic-accordion component\", () => {\n it(\"it should test the toggleExpanded function\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n expect(page.root.expanded).toBe(false);\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n expect(page.root.expanded).toBe(true);\n });\n\n it(\"should test id number is added to accordion\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n const eventSpy = jest.fn();\n\n const accordionId = page.root.id;\n page.root.addEventListener(\"accordionClicked\", eventSpy);\n await page.waitForChanges();\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n detail: expect.objectContaining({\n id: accordionId,\n }),\n })\n );\n });\n\n it(\"it should test the disabled function\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" disabled>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root.disabled).toBe(true);\n });\n\n it(\"it should add transition styling to the element\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" disabled>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n const div = document.createElement(\"div\");\n page.rootInstance.setAccordionAnimation(div, \"300\", \"height\", \"ease-out\");\n expect(div.style.transitionDuration).toBe(\"300ms\");\n expect(div.style.transitionProperty).toBe(\"height\");\n expect(div.style.transitionDelay).toBe(\"ease-out\");\n });\n\n it(\"it should call setAccordionAnimation if scroll height > 0 and expanded = true\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" expanded>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const spySetAccordionAnimation = jest.spyOn(\n page.rootInstance,\n \"setAccordionAnimation\"\n );\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n Object.defineProperty(\n page.rootInstance.expandedContentEl,\n \"scrollHeight\",\n { configurable: true, value: 500 }\n );\n page.rootInstance.animateExpandedContent();\n\n expect(spySetAccordionAnimation).toHaveBeenCalled();\n });\n\n it(\"it should call setAccordionAnimation if scroll height = '500' and expanded = 'false'\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n const spySetAccordionAnimation = jest.spyOn(\n page.rootInstance,\n \"setAccordionAnimation\"\n );\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n\n Object.defineProperty(\n page.rootInstance.expandedContentEl,\n \"scrollHeight\",\n { configurable: true, value: 500 }\n );\n page.rootInstance.animateExpandedContent();\n expect(spySetAccordionAnimation).toHaveBeenCalled();\n });\n\n it(\"should set height and .expanded-content-opened on expanded content\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 50;\n\n await page.rootInstance.setExpandedContentStyle(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n page.rootInstance.expandedContentEl.className.split(\" \")\n ).toContain(\"expanded-content-opened\");\n expect(page.rootInstance.expandedContentEl.style.height).toBe(\"auto\");\n });\n\n it(\"should not set height and .expanded-content-opened on expanded content\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 0;\n\n await page.rootInstance.setExpandedContentStyle(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n page.rootInstance.expandedContentEl.className.split(\" \")\n ).not.toContain(\"expanded-content-opened\");\n expect(page.rootInstance.expandedContentEl.style.height).toBe(\"\");\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should set visibility on expanded content to hidden\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 0;\n\n await page.rootInstance.hideExpandedContent(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n (\n page.rootInstance.expandedContentEl as HTMLDivElement\n ).style.getPropertyValue(\"--ic-expanded-content-visiblity\")\n ).toBe(\"hidden\");\n });\n\n it(\"should set visibility to undefined if client height is greater than 0\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 50;\n\n await page.rootInstance.hideExpandedContent(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n (\n page.rootInstance.expandedContentEl as HTMLDivElement\n ).style.getPropertyValue(\"--ic-expanded-content-visiblity\")\n ).toBe(\"\");\n });\n\n it(\"should call 'setFocus' when accordion can be focused\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should call setExpandedContentStyle when transitionend in animateExpandedContent and expanded is true\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const setExpandedContentStyleSpy = jest.spyOn(\n page.rootInstance,\n \"setExpandedContentStyle\"\n );\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.scrollHeight = 50;\n page.rootInstance.expanded = true;\n\n await page.rootInstance.animateExpandedContent();\n\n const event = new Event(\"transitionend\");\n page.rootInstance.expandedContentEl.dispatchEvent(event);\n\n expect(setExpandedContentStyleSpy).toHaveBeenCalled();\n });\n\n it(\"should call hideExpandedContent when transitionend in animateExpandedContent and expanded is false\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const hideExpandedContentSpy = jest.spyOn(\n page.rootInstance,\n \"hideExpandedContent\"\n );\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.scrollHeight = 50;\n page.rootInstance.expanded = false;\n\n await page.rootInstance.animateExpandedContent();\n\n const event = new Event(\"transitionend\");\n page.rootInstance.expandedContentEl.dispatchEvent(event);\n\n expect(hideExpandedContentSpy).toHaveBeenCalled();\n });\n });\n});\n"]}
1
+ {"version":3,"file":"ic-accordion.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-accordion/test/basic/ic-accordion.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Accordion } from \"../../ic-accordion\";\n\ndescribe(\"ic-accordion snapshots\", () => {\n it(\"should match default snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>\n `,\n });\n expect(page.root).toMatchSnapshot(\"renders as default\");\n });\n\n it(\"should match light snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders as light\");\n });\n\n it(\"should match with icon snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <svg\n slot=\"icon\"\n width=\"20\"\n height=\"1em\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"\n />\n </svg>\n <ic-typography variant=\"body\">\n This is an example of the main body text\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders with icon\");\n });\n\n it(\"should render with slot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" size=\"small\">\n <slot>This is an example of the main body text.</slot>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders small accordion\");\n });\n\n it(\"should match small snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" size=\"small\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders small accordion\");\n });\n\n it(\"should match large snapshot\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion size=\"large\" heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders large accordion\");\n });\n\n it(\"should render with a heading slot when supplied\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: ` \n <ic-accordion>\n <slot name=\"heading\"/></slot>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"renders with heading slot\");\n });\n\n it(\"should render in a disabled state\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" disabled>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root).toMatchSnapshot(\"disabled\");\n });\n\n describe(\"ic-accordion component\", () => {\n it(\"it should test the toggleExpanded function\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n expect(page.root.expanded).toBe(false);\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n expect(page.root.expanded).toBe(true);\n });\n\n it(\"should test id number is added to accordion\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\">\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n const eventSpy = jest.fn();\n\n const accordionId = page.root.id;\n page.root.addEventListener(\"accordionClicked\", eventSpy);\n await page.waitForChanges();\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n detail: expect.objectContaining({\n id: accordionId,\n }),\n })\n );\n });\n\n it(\"it should test the disabled function\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" disabled>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n expect(page.root.disabled).toBe(true);\n });\n\n it(\"it should add transition styling to the element\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" disabled>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n const div = document.createElement(\"div\");\n page.rootInstance.setAccordionAnimation(div, \"300\", \"height\", \"ease-out\");\n expect(div.style.transitionDuration).toBe(\"300ms\");\n expect(div.style.transitionProperty).toBe(\"height\");\n expect(div.style.transitionDelay).toBe(\"ease-out\");\n });\n\n it(\"it should call setAccordionAnimation if scroll height > 0 and expanded = true\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" expanded>\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const spySetAccordionAnimation = jest.spyOn(\n page.rootInstance,\n \"setAccordionAnimation\"\n );\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n Object.defineProperty(\n page.rootInstance.expandedContentEl,\n \"scrollHeight\",\n { configurable: true, value: 500 }\n );\n page.rootInstance.animateExpandedContent();\n\n expect(spySetAccordionAnimation).toHaveBeenCalled();\n });\n\n it(\"it should call setAccordionAnimation if scroll height = '500' and expanded = 'false'\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n const spySetAccordionAnimation = jest.spyOn(\n page.rootInstance,\n \"setAccordionAnimation\"\n );\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n\n Object.defineProperty(\n page.rootInstance.expandedContentEl,\n \"scrollHeight\",\n { configurable: true, value: 500 }\n );\n page.rootInstance.animateExpandedContent();\n expect(spySetAccordionAnimation).toHaveBeenCalled();\n });\n\n it(\"should set height and .expanded-content-opened on expanded content\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 50;\n\n await page.rootInstance.setExpandedContentStyle(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n page.rootInstance.expandedContentEl.className.split(\" \")\n ).toContain(\"expanded-content-opened\");\n expect(page.rootInstance.expandedContentEl.style.height).toBe(\"auto\");\n });\n\n it(\"should not set height and .expanded-content-opened on expanded content\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 0;\n\n await page.rootInstance.setExpandedContentStyle(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n page.rootInstance.expandedContentEl.className.split(\" \")\n ).not.toContain(\"expanded-content-opened\");\n expect(page.rootInstance.expandedContentEl.style.height).toBe(\"\");\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should set visibility on expanded content to hidden\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 0;\n\n await page.rootInstance.hideExpandedContent(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n (\n page.rootInstance.expandedContentEl as HTMLDivElement\n ).style.getPropertyValue(\"--ic-expanded-content-visibility\")\n ).toBe(\"hidden\");\n });\n\n it(\"should set visibility to undefined if client height is greater than 0\", async () => {\n const transitionEvent = {\n propertyName: \"height\",\n } as TransitionEvent;\n\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.clientHeight = 50;\n\n await page.rootInstance.hideExpandedContent(\n transitionEvent,\n page.rootInstance.expandedContentEl\n );\n\n expect(\n (\n page.rootInstance.expandedContentEl as HTMLDivElement\n ).style.getPropertyValue(\"--ic-expanded-content-visibility\")\n ).toBe(\"\");\n });\n\n it(\"should call 'setFocus' when accordion can be focused\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should call setExpandedContentStyle when transitionend in animateExpandedContent and expanded is true\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const setExpandedContentStyleSpy = jest.spyOn(\n page.rootInstance,\n \"setExpandedContentStyle\"\n );\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.scrollHeight = 50;\n page.rootInstance.expanded = true;\n\n await page.rootInstance.animateExpandedContent();\n\n const event = new Event(\"transitionend\");\n page.rootInstance.expandedContentEl.dispatchEvent(event);\n\n expect(setExpandedContentStyleSpy).toHaveBeenCalled();\n });\n\n it(\"should call hideExpandedContent when transitionend in animateExpandedContent and expanded is false\", async () => {\n const page = await newSpecPage({\n components: [Accordion],\n html: `\n <ic-accordion heading=\"Accordion 1\" >\n <ic-typography variant=\"body\">\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>`,\n });\n\n const hideExpandedContentSpy = jest.spyOn(\n page.rootInstance,\n \"hideExpandedContent\"\n );\n\n const accordionExpanded =\n page.root.shadowRoot.querySelector(\".expanded-content\");\n page.rootInstance.expandedContentEl = accordionExpanded;\n page.rootInstance.expandedContentEl.scrollHeight = 50;\n page.rootInstance.expanded = false;\n\n await page.rootInstance.animateExpandedContent();\n\n const event = new Event(\"transitionend\");\n page.rootInstance.expandedContentEl.dispatchEvent(event);\n\n expect(hideExpandedContentSpy).toHaveBeenCalled();\n });\n });\n});\n"]}
@@ -457,9 +457,9 @@ video {
457
457
  }
458
458
 
459
459
  :host(.light) {
460
- color: var(--ic-architectural-white);
460
+ color: var(--ic-color-white-text);
461
461
  }
462
462
 
463
463
  :host(.accordion-group.dark) ::slotted(ic-accordion) {
464
- color: var(--ic-architectural-white);
464
+ color: var(--ic-color-white-text);
465
465
  }
@@ -1,6 +1,6 @@
1
- import { Host, h, } from "@stencil/core";
1
+ import { Host, h, forceUpdate, } from "@stencil/core";
2
2
  import closeIcon from "../../assets/close-icon.svg";
3
- import { isSlotUsed } from "../../utils/helpers";
3
+ import { isSlotUsed, checkSlotInChildMutations } from "../../utils/helpers";
4
4
  import { IcThemeForegroundEnum } from "../../utils/types";
5
5
  import { VARIANT_ICONS } from "../../utils/constants";
6
6
  /**
@@ -9,10 +9,18 @@ import { VARIANT_ICONS } from "../../utils/constants";
9
9
  */
10
10
  export class Alert {
11
11
  constructor() {
12
+ this.hostMutationObserver = null;
12
13
  this.dismissAction = () => {
13
14
  this.dismiss.emit();
14
15
  this.icDismiss.emit();
15
16
  };
17
+ this.hostMutationCallback = (mutationList) => {
18
+ if (mutationList.some(({ type, addedNodes, removedNodes }) => type === "childList"
19
+ ? checkSlotInChildMutations(addedNodes, removedNodes, "action")
20
+ : false)) {
21
+ forceUpdate(this);
22
+ }
23
+ };
16
24
  this.alertTitleWrap = false;
17
25
  this.visible = true;
18
26
  this.announced = true;
@@ -22,8 +30,16 @@ export class Alert {
22
30
  this.titleAbove = false;
23
31
  this.variant = "neutral";
24
32
  }
33
+ disconnectedCallback() {
34
+ var _a;
35
+ (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
36
+ }
25
37
  componentDidLoad() {
26
38
  this.alertTitleShouldWrap();
39
+ this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
40
+ this.hostMutationObserver.observe(this.el, {
41
+ childList: true,
42
+ });
27
43
  }
28
44
  handleClick() {
29
45
  this.visible = !this.visible;
@@ -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} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed } from \"../../utils/helpers\";\nimport { IcThemeForegroundEnum, IcStatusVariants } 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 */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\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 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 * @deprecated This event should not be used anymore. Use icDismiss instead.\n */\n @Event() dismiss: EventEmitter<void>;\n\n /**\n * Is emitted when the user dismisses the alert.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n componentDidLoad(): void {\n this.alertTitleShouldWrap();\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n private dismissAction = (): void => {\n this.dismiss.emit();\n this.icDismiss.emit();\n };\n\n private alertTitleShouldWrap() {\n const titleHeight =\n this.el.shadowRoot.querySelector(\".alert-title\")?.clientHeight;\n if (titleHeight > 24) this.alertTitleWrap = true;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n } = this;\n\n return (\n visible && (\n <Host\n role={announced ? \"alert\" : null}\n class={{\n [IcThemeForegroundEnum.Dark]: true,\n }}\n >\n <div\n class={{\n [\"container\"]: true,\n [`container-${variant}`]: true,\n }}\n >\n <div class=\"alert-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n <span\n class={{\n [\"alert-icon\"]: true,\n [\"svg-container\"]: true,\n [`icon-${variant}`]: true,\n }}\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n </div>\n <div class=\"alert-content\">\n <div\n class={{\n [\"alert-message\"]: true,\n [\"alert-message-title-above\"]:\n titleAbove || this.alertTitleWrap,\n }}\n >\n {heading && (\n <ic-typography\n class={{\n [\"alert-title\"]: true,\n [\"alert-title-above\"]: titleAbove || this.alertTitleWrap,\n }}\n variant=\"subtitle-large\"\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={{\n [\"svg-container\"]: true,\n [\"dismiss-icon\"]: true,\n }}\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.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 forceUpdate,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, checkSlotInChildMutations } from \"../../utils/helpers\";\nimport { IcThemeForegroundEnum, IcStatusVariants } 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 */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\n private hostMutationObserver: MutationObserver = null;\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 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 * @deprecated This event should not be used anymore. Use icDismiss instead.\n */\n @Event() dismiss: EventEmitter<void>;\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 }\n\n componentDidLoad(): void {\n this.alertTitleShouldWrap();\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\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 private dismissAction = (): void => {\n this.dismiss.emit();\n this.icDismiss.emit();\n };\n\n private alertTitleShouldWrap() {\n const titleHeight =\n this.el.shadowRoot.querySelector(\".alert-title\")?.clientHeight;\n if (titleHeight > 24) this.alertTitleWrap = true;\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"action\")\n : false\n )\n ) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n } = this;\n\n return (\n visible && (\n <Host\n role={announced ? \"alert\" : null}\n class={{\n [IcThemeForegroundEnum.Dark]: true,\n }}\n >\n <div\n class={{\n [\"container\"]: true,\n [`container-${variant}`]: true,\n }}\n >\n <div class=\"alert-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n <span\n class={{\n [\"alert-icon\"]: true,\n [\"svg-container\"]: true,\n [`icon-${variant}`]: true,\n }}\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n </div>\n <div class=\"alert-content\">\n <div\n class={{\n [\"alert-message\"]: true,\n [\"alert-message-title-above\"]:\n titleAbove || this.alertTitleWrap,\n }}\n >\n {heading && (\n <ic-typography\n class={{\n [\"alert-title\"]: true,\n [\"alert-title-above\"]: titleAbove || this.alertTitleWrap,\n }}\n variant=\"subtitle-large\"\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={{\n [\"svg-container\"]: true,\n [\"dismiss-icon\"]: true,\n }}\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Dark}\n title=\"dismiss\"\n ></ic-button>\n )}\n </div>\n </div>\n </Host>\n )\n );\n }\n}\n"]}
@@ -178,5 +178,20 @@ describe("ic-alert component", () => {
178
178
  alert = await page.root.shadowRoot.querySelector("div.container-neutral");
179
179
  expect(alert).toBeNull();
180
180
  });
181
+ it("should test rendering an action after initial render", async () => {
182
+ const page = await newSpecPage({
183
+ components: [Alert],
184
+ html: `<ic-alert heading="Test heading"></ic-alert>`,
185
+ });
186
+ const action = document.createElement("button");
187
+ action.setAttribute("slot", "action");
188
+ page.rootInstance.hostMutationCallback([
189
+ {
190
+ type: "childList",
191
+ addedNodes: [action],
192
+ removedNodes: [],
193
+ },
194
+ ]);
195
+ });
181
196
  });
182
197
  //# sourceMappingURL=ic-alert.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-alert.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-alert/test/basic/ic-alert.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Alert } from \"../../ic-alert\";\n\ndescribe(\"ic-alert component\", () => {\n it(\"should render with a heading when supplied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert heading=\"Test heading\"></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" heading=\"Test heading\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <ic-typography class=\"alert-title\" variant=\"subtitle-large\">\n <p>\n Test heading\n </p>\n </ic-typography>\n <slot name=\"message\">\n <ic-typography variant=\"body\"></ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n </div>\n </div>\n </mock:shadow-root>\n </ic-alert>`);\n });\n\n it(\"should render with a message when supplied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"Test message\"></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" message=\"Test message\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <slot name=\"message\">\n <ic-typography variant=\"body\">\n Test message\n </ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n </div>\n </div>\n </mock:shadow-root>\n </ic-alert>`);\n });\n\n it(\"should render an action in the correct position when supplied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"This has an action\"><button slot=\"action\"></button></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" message=\"This has an action\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <slot name=\"message\">\n <ic-typography variant=\"body\">\n This has an action\n </ic-typography>\n </slot>\n </div>\n <div class=\"alert-action-container\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n </div>\n </div>\n </mock:shadow-root>\n <button slot=\"action\"></button>\n </ic-alert>`);\n });\n\n it(\"should render with a dismiss icon when the prop is applied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"This is dismissible\" dismissible=true></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" message=\"This is dismissible\" dismissible=true role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <slot name=\"message\">\n <ic-typography variant=\"body\">\n This is dismissible\n </ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n <ic-button appearance=\"dark\" class=\"dismiss-icon svg-container\" title=\"dismiss\" variant=\"icon\">\n svg\n </ic-button>\n </div>\n </div>\n </mock:shadow-root>\n </ic-alert>`);\n });\n\n it(\"should render an element in the message slot\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert heading=\"Using custom message\"><ic-typography variant=\"h1\" slot=\"message\">Custom h1 message</ic-typography></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" heading=\"Using custom message\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <ic-typography class=\"alert-title\" variant=\"subtitle-large\">\n <p>\n Using custom message\n </p>\n </ic-typography>\n <slot name=\"message\">\n <ic-typography variant=\"body\"></ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\"></div>\n </div>\n </mock:shadow-root>\n <ic-typography variant=\"h1\" slot=\"message\">Custom h1 message</ic-typography>\n </ic-alert>`);\n });\n\n it(\"should close on dismiss icon click\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"This is dismissible\" dismissible=true></ic-alert>`,\n });\n\n let alert = await page.root.shadowRoot.querySelector(\n \"div.container-neutral\"\n );\n const dismissButton = await page.root.shadowRoot.querySelector(\"ic-button\");\n\n expect(alert).not.toBeNull();\n expect(dismissButton).not.toBeNull();\n\n await dismissButton.click();\n\n await page.waitForChanges();\n alert = await page.root.shadowRoot.querySelector(\"div.container-neutral\");\n\n expect(alert).toBeNull();\n });\n});\n"]}
1
+ {"version":3,"file":"ic-alert.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-alert/test/basic/ic-alert.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Alert } from \"../../ic-alert\";\n\ndescribe(\"ic-alert component\", () => {\n it(\"should render with a heading when supplied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert heading=\"Test heading\"></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" heading=\"Test heading\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <ic-typography class=\"alert-title\" variant=\"subtitle-large\">\n <p>\n Test heading\n </p>\n </ic-typography>\n <slot name=\"message\">\n <ic-typography variant=\"body\"></ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n </div>\n </div>\n </mock:shadow-root>\n </ic-alert>`);\n });\n\n it(\"should render with a message when supplied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"Test message\"></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" message=\"Test message\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <slot name=\"message\">\n <ic-typography variant=\"body\">\n Test message\n </ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n </div>\n </div>\n </mock:shadow-root>\n </ic-alert>`);\n });\n\n it(\"should render an action in the correct position when supplied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"This has an action\"><button slot=\"action\"></button></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" message=\"This has an action\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <slot name=\"message\">\n <ic-typography variant=\"body\">\n This has an action\n </ic-typography>\n </slot>\n </div>\n <div class=\"alert-action-container\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n </div>\n </div>\n </mock:shadow-root>\n <button slot=\"action\"></button>\n </ic-alert>`);\n });\n\n it(\"should render with a dismiss icon when the prop is applied\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"This is dismissible\" dismissible=true></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" message=\"This is dismissible\" dismissible=true role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <slot name=\"message\">\n <ic-typography variant=\"body\">\n This is dismissible\n </ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\">\n <ic-button appearance=\"dark\" class=\"dismiss-icon svg-container\" title=\"dismiss\" variant=\"icon\">\n svg\n </ic-button>\n </div>\n </div>\n </mock:shadow-root>\n </ic-alert>`);\n });\n\n it(\"should render an element in the message slot\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert heading=\"Using custom message\"><ic-typography variant=\"h1\" slot=\"message\">Custom h1 message</ic-typography></ic-alert>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-alert class=\"dark\" heading=\"Using custom message\" role=\"alert\">\n <mock:shadow-root>\n <div class=\"container container-neutral\">\n <div class=\"alert-icon-container\">\n <div class=\"divider divider-neutral\"></div>\n <span class=\"alert-icon icon-neutral svg-container\">\n svg\n </span>\n </div>\n <div class=\"alert-content\">\n <div class=\"alert-message\">\n <ic-typography class=\"alert-title\" variant=\"subtitle-large\">\n <p>\n Using custom message\n </p>\n </ic-typography>\n <slot name=\"message\">\n <ic-typography variant=\"body\"></ic-typography>\n </slot>\n </div>\n </div>\n <div class=\"dismiss-icon-container\"></div>\n </div>\n </mock:shadow-root>\n <ic-typography variant=\"h1\" slot=\"message\">Custom h1 message</ic-typography>\n </ic-alert>`);\n });\n\n it(\"should close on dismiss icon click\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert message=\"This is dismissible\" dismissible=true></ic-alert>`,\n });\n\n let alert = await page.root.shadowRoot.querySelector(\n \"div.container-neutral\"\n );\n const dismissButton = await page.root.shadowRoot.querySelector(\"ic-button\");\n\n expect(alert).not.toBeNull();\n expect(dismissButton).not.toBeNull();\n\n await dismissButton.click();\n\n await page.waitForChanges();\n alert = await page.root.shadowRoot.querySelector(\"div.container-neutral\");\n\n expect(alert).toBeNull();\n });\n\n it(\"should test rendering an action after initial render\", async () => {\n const page = await newSpecPage({\n components: [Alert],\n html: `<ic-alert heading=\"Test heading\"></ic-alert>`,\n });\n\n const action = document.createElement(\"button\");\n action.setAttribute(\"slot\", \"action\");\n\n page.rootInstance.hostMutationCallback([\n {\n type: \"childList\",\n addedNodes: [action],\n removedNodes: [],\n },\n ]);\n });\n});\n"]}
@@ -5,6 +5,9 @@ const backToTopLabel = "Back to top";
5
5
  export class BackToTop {
6
6
  constructor() {
7
7
  this.topObserver = null;
8
+ this.getObservedEl = () => {
9
+ return document.querySelector("#ic-back-to-top-target");
10
+ };
8
11
  this.setTargetElVisible = (visible) => {
9
12
  this.targetElVisible = visible;
10
13
  };
@@ -37,7 +40,7 @@ export class BackToTop {
37
40
  let objParent;
38
41
  //remove old element & observer
39
42
  if (this.topObserver !== null) {
40
- const observedEl = document.querySelector("#ic-back-to-top-target");
43
+ const observedEl = this.getObservedEl();
41
44
  if (observedEl !== null) {
42
45
  this.topObserver.unobserve(observedEl);
43
46
  observedEl.remove();
@@ -55,6 +58,7 @@ export class BackToTop {
55
58
  //insert a new 0px height element before specified target that can be used to determine when page is scrolled
56
59
  const objBackToTopTargetEl = document.createElement("div");
57
60
  objBackToTopTargetEl.setAttribute("id", "ic-back-to-top-target");
61
+ objBackToTopTargetEl.setAttribute("tabindex", "-1"); // Needed for virtual cursor behaviour to work
58
62
  objParent.insertBefore(objBackToTopTargetEl, this.targetEl);
59
63
  // resize observer needs to factor in any top margin on the target el
60
64
  const marginTop = getComputedStyle(this.targetEl).marginTop;
@@ -71,6 +75,8 @@ export class BackToTop {
71
75
  else {
72
76
  this.targetEl.scrollIntoView();
73
77
  }
78
+ // Get virtual cursor to move
79
+ this.getObservedEl().focus();
74
80
  };
75
81
  this.checkForClassificationBanner = () => {
76
82
  //adjust position for classification banner at bottom
@@ -1 +1 @@
1
- {"version":3,"file":"ic-back-to-top.js","sourceRoot":"","sources":["../../../src/components/ic-back-to-top/ic-back-to-top.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Element, Prop, State, Watch } from \"@stencil/core\";\nimport ArrowUpward from \"./assets/ArrowUpward.svg\";\nimport {\n onComponentPropUndefinedChange,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcBackToTopVariants } from \"./ic-back-to-top.types\";\n\nconst backToTopLabel = \"Back to top\";\n\n@Component({\n tag: \"ic-back-to-top\",\n styleUrl: \"ic-back-to-top.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BackToTop {\n private isTargetElNull: boolean;\n private targetEl: Element;\n private topObserver: IntersectionObserver = null;\n\n @Element() el: HTMLIcBackToTopElement;\n\n @State() bannerOffset: boolean = false;\n @State() footerVisible: boolean = false;\n @State() targetElVisible: boolean = true;\n\n /**\n * The ID of the element to jump back to when the link is clicked.\n */\n @Prop() target!: string;\n\n /**\n * The variant of the button to render\n */\n @Prop() variant: IcBackToTopVariants = \"default\";\n\n @Watch(\"target\")\n watchPropHandler(newValue: string, oldValue: string): void {\n //added for gatsby rehydration issue where prop is initially undefined but then changes to actual value\n onComponentPropUndefinedChange(oldValue, newValue, () => {\n this.createTopObserver(newValue);\n });\n }\n\n componentWillLoad(): void {\n this.createTopObserver(this.target);\n this.checkForClassificationBanner();\n\n //observer for when footer scrolls into view\n let footers = document.querySelectorAll(\n \"ic-footer\"\n ) as NodeListOf<HTMLElement>;\n if (footers.length === 0) {\n footers = document.querySelectorAll(\"footer\");\n }\n\n if (footers.length) {\n const footerEl = footers[footers.length - 1];\n const threshold = this.bannerOffset ? 0.15 : 0;\n const footerObserver = new IntersectionObserver(\n this.footerObserverCallback,\n { threshold: [threshold] }\n );\n footerObserver.observe(footerEl);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.target, propName: \"target\" }],\n \"Back to Top\"\n );\n }\n\n private setTargetElVisible = (visible: boolean) => {\n this.targetElVisible = visible;\n };\n\n private setFooterVisible = (visible: boolean) => {\n this.checkForClassificationBanner();\n this.footerVisible =\n typeof window !== \"undefined\" && window.scrollY === 0 ? false : visible;\n };\n\n private targetElObserverCallback = (entries: IntersectionObserverEntry[]) => {\n this.setTargetElVisible(entries[0].isIntersecting);\n };\n\n private footerObserverCallback = (entries: IntersectionObserverEntry[]) => {\n this.setFooterVisible(entries[0].isIntersecting);\n };\n\n private findTargetEl = (target: string): Element => {\n let targetElement: Element = null;\n if (target === null || target === undefined) {\n console.log(\n \"Error: No target ID specified for back to top component - defaulting to top of page\"\n );\n } else {\n targetElement = document.querySelector(\n `${target.startsWith(\"#\") ? \"\" : \"#\"}${target}`\n );\n if (targetElement === null) {\n console.log(\n `Error: Back to top target element '${target}' not found - defaulting to top of page`\n );\n }\n }\n return targetElement;\n };\n\n private createTopObserver = (target: string) => {\n this.targetEl = this.findTargetEl(target);\n let objParent: HTMLElement;\n\n //remove old element & observer\n if (this.topObserver !== null) {\n const observedEl = document.querySelector(\"#ic-back-to-top-target\");\n if (observedEl !== null) {\n this.topObserver.unobserve(observedEl);\n observedEl.remove();\n }\n }\n\n if (this.targetEl === null) {\n objParent = document.body;\n this.targetEl = objParent.firstElementChild;\n this.isTargetElNull = true;\n } else {\n objParent = this.targetEl.parentNode as HTMLElement;\n this.isTargetElNull = false;\n }\n\n //insert a new 0px height element before specified target that can be used to determine when page is scrolled\n const objBackToTopTargetEl = document.createElement(\"div\");\n objBackToTopTargetEl.setAttribute(\"id\", \"ic-back-to-top-target\");\n objParent.insertBefore(objBackToTopTargetEl, this.targetEl);\n\n // resize observer needs to factor in any top margin on the target el\n const marginTop = getComputedStyle(this.targetEl).marginTop;\n this.topObserver = new IntersectionObserver(this.targetElObserverCallback, {\n threshold: [0],\n rootMargin: `${marginTop} 0px 0px 0px`,\n });\n this.topObserver.observe(objBackToTopTargetEl);\n };\n\n private handleClick = () => {\n if (this.isTargetElNull) {\n window.scrollTo(0, 0);\n } else {\n this.targetEl.scrollIntoView();\n }\n };\n\n private checkForClassificationBanner = () => {\n //adjust position for classification banner at bottom\n const banners = document.querySelectorAll(\n \"ic-classification-banner:not([inline='true'])\"\n );\n this.bannerOffset = banners.length > 0;\n };\n\n private buildButton = () => {\n const { bannerOffset, targetElVisible, footerVisible, variant } = this;\n\n return (\n <button\n class={{\n [\"ic-back-to-top-link\"]: true,\n [\"offset-banner\"]: bannerOffset,\n [\"show\"]: !targetElVisible,\n [\"by-footer\"]: footerVisible,\n [\"positioning\"]: variant !== \"icon\",\n [\"icon-only\"]: variant === \"icon\",\n }}\n aria-label={backToTopLabel}\n onClick={this.handleClick}\n >\n <span class=\"ic-back-to-top-icon\" innerHTML={ArrowUpward} />\n\n {this.variant !== \"icon\" && (\n <ic-typography variant=\"subtitle-small\">\n <span>{backToTopLabel}</span>\n </ic-typography>\n )}\n </button>\n );\n };\n\n render() {\n const { variant, buildButton } = this;\n\n return variant === \"icon\" ? (\n <ic-tooltip label={backToTopLabel} placement=\"top\" class=\"positioning\">\n {buildButton()}\n </ic-tooltip>\n ) : (\n buildButton()\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-back-to-top.js","sourceRoot":"","sources":["../../../src/components/ic-back-to-top/ic-back-to-top.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Element, Prop, State, Watch } from \"@stencil/core\";\nimport ArrowUpward from \"./assets/ArrowUpward.svg\";\nimport {\n onComponentPropUndefinedChange,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcBackToTopVariants } from \"./ic-back-to-top.types\";\n\nconst backToTopLabel = \"Back to top\";\n\n@Component({\n tag: \"ic-back-to-top\",\n styleUrl: \"ic-back-to-top.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BackToTop {\n private isTargetElNull: boolean;\n private targetEl: Element;\n private topObserver: IntersectionObserver = null;\n\n @Element() el: HTMLIcBackToTopElement;\n\n @State() bannerOffset: boolean = false;\n @State() footerVisible: boolean = false;\n @State() targetElVisible: boolean = true;\n\n /**\n * The ID of the element to jump back to when the link is clicked.\n */\n @Prop() target!: string;\n\n /**\n * The variant of the button to render\n */\n @Prop() variant: IcBackToTopVariants = \"default\";\n\n @Watch(\"target\")\n watchPropHandler(newValue: string, oldValue: string): void {\n //added for gatsby rehydration issue where prop is initially undefined but then changes to actual value\n onComponentPropUndefinedChange(oldValue, newValue, () => {\n this.createTopObserver(newValue);\n });\n }\n\n componentWillLoad(): void {\n this.createTopObserver(this.target);\n this.checkForClassificationBanner();\n\n //observer for when footer scrolls into view\n let footers = document.querySelectorAll(\n \"ic-footer\"\n ) as NodeListOf<HTMLElement>;\n if (footers.length === 0) {\n footers = document.querySelectorAll(\"footer\");\n }\n\n if (footers.length) {\n const footerEl = footers[footers.length - 1];\n const threshold = this.bannerOffset ? 0.15 : 0;\n const footerObserver = new IntersectionObserver(\n this.footerObserverCallback,\n { threshold: [threshold] }\n );\n footerObserver.observe(footerEl);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.target, propName: \"target\" }],\n \"Back to Top\"\n );\n }\n\n private getObservedEl = () => {\n return document.querySelector(\"#ic-back-to-top-target\");\n };\n\n private setTargetElVisible = (visible: boolean) => {\n this.targetElVisible = visible;\n };\n\n private setFooterVisible = (visible: boolean) => {\n this.checkForClassificationBanner();\n this.footerVisible =\n typeof window !== \"undefined\" && window.scrollY === 0 ? false : visible;\n };\n\n private targetElObserverCallback = (entries: IntersectionObserverEntry[]) => {\n this.setTargetElVisible(entries[0].isIntersecting);\n };\n\n private footerObserverCallback = (entries: IntersectionObserverEntry[]) => {\n this.setFooterVisible(entries[0].isIntersecting);\n };\n\n private findTargetEl = (target: string): Element => {\n let targetElement: Element = null;\n if (target === null || target === undefined) {\n console.log(\n \"Error: No target ID specified for back to top component - defaulting to top of page\"\n );\n } else {\n targetElement = document.querySelector(\n `${target.startsWith(\"#\") ? \"\" : \"#\"}${target}`\n );\n if (targetElement === null) {\n console.log(\n `Error: Back to top target element '${target}' not found - defaulting to top of page`\n );\n }\n }\n return targetElement;\n };\n\n private createTopObserver = (target: string) => {\n this.targetEl = this.findTargetEl(target);\n let objParent: HTMLElement;\n\n //remove old element & observer\n if (this.topObserver !== null) {\n const observedEl = this.getObservedEl();\n if (observedEl !== null) {\n this.topObserver.unobserve(observedEl);\n observedEl.remove();\n }\n }\n\n if (this.targetEl === null) {\n objParent = document.body;\n this.targetEl = objParent.firstElementChild;\n this.isTargetElNull = true;\n } else {\n objParent = this.targetEl.parentNode as HTMLElement;\n this.isTargetElNull = false;\n }\n\n //insert a new 0px height element before specified target that can be used to determine when page is scrolled\n const objBackToTopTargetEl = document.createElement(\"div\");\n objBackToTopTargetEl.setAttribute(\"id\", \"ic-back-to-top-target\");\n objBackToTopTargetEl.setAttribute(\"tabindex\", \"-1\"); // Needed for virtual cursor behaviour to work\n objParent.insertBefore(objBackToTopTargetEl, this.targetEl);\n\n // resize observer needs to factor in any top margin on the target el\n const marginTop = getComputedStyle(this.targetEl).marginTop;\n this.topObserver = new IntersectionObserver(this.targetElObserverCallback, {\n threshold: [0],\n rootMargin: `${marginTop} 0px 0px 0px`,\n });\n this.topObserver.observe(objBackToTopTargetEl);\n };\n\n private handleClick = () => {\n if (this.isTargetElNull) {\n window.scrollTo(0, 0);\n } else {\n this.targetEl.scrollIntoView();\n }\n // Get virtual cursor to move\n (this.getObservedEl() as HTMLElement).focus();\n };\n\n private checkForClassificationBanner = () => {\n //adjust position for classification banner at bottom\n const banners = document.querySelectorAll(\n \"ic-classification-banner:not([inline='true'])\"\n );\n this.bannerOffset = banners.length > 0;\n };\n\n private buildButton = () => {\n const { bannerOffset, targetElVisible, footerVisible, variant } = this;\n\n return (\n <button\n class={{\n [\"ic-back-to-top-link\"]: true,\n [\"offset-banner\"]: bannerOffset,\n [\"show\"]: !targetElVisible,\n [\"by-footer\"]: footerVisible,\n [\"positioning\"]: variant !== \"icon\",\n [\"icon-only\"]: variant === \"icon\",\n }}\n aria-label={backToTopLabel}\n onClick={this.handleClick}\n >\n <span class=\"ic-back-to-top-icon\" innerHTML={ArrowUpward} />\n\n {this.variant !== \"icon\" && (\n <ic-typography variant=\"subtitle-small\">\n <span>{backToTopLabel}</span>\n </ic-typography>\n )}\n </button>\n );\n };\n\n render() {\n const { variant, buildButton } = this;\n\n return variant === \"icon\" ? (\n <ic-tooltip label={backToTopLabel} placement=\"top\" class=\"positioning\">\n {buildButton()}\n </ic-tooltip>\n ) : (\n buildButton()\n );\n }\n}\n"]}
@@ -92,7 +92,7 @@ ic-link {
92
92
  }
93
93
  }
94
94
 
95
- @supports (text-decoration-thickness: 25%) {
95
+ @supports (text-underline-offset: 25%) {
96
96
  ic-link {
97
97
  --breadcrumb-link-display: flex;
98
98
  }
@@ -45,6 +45,11 @@ export class Button {
45
45
  hiddenFormButton.remove();
46
46
  }
47
47
  };
48
+ this.handleKeyDown = (ev) => {
49
+ if (ev.key === "Escape" && this.hasTooltip) {
50
+ this.closeButtonTooltip(ev);
51
+ }
52
+ };
48
53
  this.onFocus = () => {
49
54
  this.icFocus.emit();
50
55
  };
@@ -199,6 +204,14 @@ export class Button {
199
204
  var _a;
200
205
  (_a = this.buttonEl) === null || _a === void 0 ? void 0 : _a.focus();
201
206
  }
207
+ async closeButtonTooltip(ev) {
208
+ const tooltip = this.el.shadowRoot.querySelector("ic-tooltip");
209
+ if (await tooltip.isTooltipVisible()) {
210
+ tooltip.displayTooltip(false);
211
+ ev.preventDefault();
212
+ ev.stopImmediatePropagation();
213
+ }
214
+ }
202
215
  hasIconSlot(position) {
203
216
  const selectorPrefix = position ? `${position}-` : "";
204
217
  return this.el.querySelector(`[slot="${selectorPrefix}icon"]`) !== null;
@@ -286,7 +299,7 @@ export class Button {
286
299
  ["white-background"]: this.variant === "secondary" &&
287
300
  !this.transparentBackground &&
288
301
  this.appearance !== "light",
289
- }, onClick: this.handleClick, "aria-owns": this.ariaOwnsId, "aria-controls": this.ariaControlsId, "aria-expanded": this.dropdown && `${this.dropdownExpanded}` }, this.hasTooltip && (h("ic-tooltip", { id: describedby, label: title || ariaLabel, target: buttonId, placement: this.tooltipPlacement, silent: this.variant === "icon" && !!ariaLabel }, this.hasRouterSlot() ? (h("slot", { name: "router-item" })) : (h(ButtonContent, null)))), isSlotUsed(this.el, "badge") && h("slot", { name: "badge" }), !this.hasTooltip &&
302
+ }, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "aria-owns": this.ariaOwnsId, "aria-controls": this.ariaControlsId, "aria-expanded": this.dropdown && `${this.dropdownExpanded}` }, this.hasTooltip && (h("ic-tooltip", { id: describedby, label: title || ariaLabel, target: buttonId, placement: this.tooltipPlacement, silent: this.variant === "icon" && !!ariaLabel }, this.hasRouterSlot() ? (h("slot", { name: "router-item" })) : (h(ButtonContent, null)))), isSlotUsed(this.el, "badge") && h("slot", { name: "badge" }), !this.hasTooltip &&
290
303
  (this.hasRouterSlot() ? (h("slot", { name: "router-item" })) : (h(ButtonContent, null))), this.describedByContent && (h("span", { id: describedby, class: "ic-button-describedby" }, this.describedByContent))));
291
304
  }
292
305
  static get is() { return "ic-button"; }