@ukic/web-components 2.18.0 → 2.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (511) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-d52cddc1.js → helpers-88e018cf.js} +27 -4
  3. package/dist/cjs/helpers-88e018cf.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +11 -2
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-badge.cjs.entry.js +18 -17
  10. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +41 -86
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-chip.cjs.entry.js +25 -2
  19. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-dialog.cjs.entry.js +14 -4
  22. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +4 -4
  31. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-link.cjs.entry.js +33 -15
  34. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-navigation-button.cjs.entry.js +26 -5
  38. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-navigation-group.cjs.entry.js +16 -13
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-item.cjs.entry.js +29 -33
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  47. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-radio-group.cjs.entry.js +40 -26
  50. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -4
  52. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-select.cjs.entry.js +24 -6
  55. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-step.cjs.entry.js +5 -2
  60. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
  62. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab-context.cjs.entry.js +18 -2
  65. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-text-field.cjs.entry.js +26 -7
  70. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-theme.cjs.entry.js +3 -10
  72. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-top-navigation.cjs.entry.js +46 -60
  76. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-typography.cjs.entry.js +11 -35
  78. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  79. package/dist/cjs/loader.cjs.js +1 -1
  80. package/dist/cjs/types-dc22e301.js.map +1 -1
  81. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +32 -2
  82. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  83. package/dist/collection/components/ic-badge/ic-badge.js +20 -19
  84. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  85. package/dist/collection/components/ic-badge/ic-badge.types.js.map +1 -1
  86. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +2 -2
  87. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  88. package/dist/collection/components/ic-button/ic-button.css +2 -1
  89. package/dist/collection/components/ic-button/ic-button.js +41 -83
  90. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  91. package/dist/collection/components/ic-chip/ic-chip.css +4 -3
  92. package/dist/collection/components/ic-chip/ic-chip.js +51 -1
  93. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  94. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +44 -0
  95. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
  96. package/dist/collection/components/ic-dialog/ic-dialog.js +13 -3
  97. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  98. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +50 -0
  99. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  100. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +1 -1
  101. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  102. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +16 -3
  103. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  104. package/dist/collection/components/ic-link/ic-link.js +33 -15
  105. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  106. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +12 -0
  107. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
  108. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +6 -2
  109. package/dist/collection/components/ic-menu/ic-menu.js +2 -2
  110. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  111. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +26 -5
  112. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  113. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +11 -0
  114. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
  115. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  116. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +14 -11
  117. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  118. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
  119. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +28 -32
  120. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  121. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  122. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  123. package/dist/collection/components/ic-radio-group/ic-radio-group.js +39 -25
  124. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  125. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +30 -0
  126. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  127. package/dist/collection/components/ic-radio-option/ic-radio-option.js +32 -3
  128. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  129. package/dist/collection/components/ic-select/ic-select.js +24 -6
  130. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  131. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +37 -0
  132. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  133. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +2 -2
  134. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  135. package/dist/collection/components/ic-step/ic-step.css +93 -1
  136. package/dist/collection/components/ic-step/ic-step.js +3 -0
  137. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  138. package/dist/collection/components/ic-stepper/ic-stepper.js +19 -0
  139. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  140. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +18 -0
  141. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  142. package/dist/collection/components/ic-tab/ic-tab.types.js.map +1 -1
  143. package/dist/collection/components/ic-tab-context/ic-tab-context.js +18 -2
  144. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  145. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +2 -0
  146. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  147. package/dist/collection/components/ic-text-field/ic-text-field.js +26 -7
  148. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  149. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js +12 -0
  150. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js.map +1 -1
  151. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +11 -0
  152. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  153. package/dist/collection/components/ic-theme/ic-theme.js +3 -10
  154. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  155. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +21 -24
  156. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +68 -59
  157. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  158. package/dist/collection/components/ic-typography/ic-typography.css +1 -4
  159. package/dist/collection/components/ic-typography/ic-typography.js +10 -113
  160. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  161. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +0 -25
  162. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  163. package/dist/collection/utils/helpers.js +55 -2
  164. package/dist/collection/utils/helpers.js.map +1 -1
  165. package/dist/collection/utils/types.js.map +1 -1
  166. package/dist/components/helpers.js +26 -3
  167. package/dist/components/helpers.js.map +1 -1
  168. package/dist/components/ic-accordion-group.js +14 -4
  169. package/dist/components/ic-accordion-group.js.map +1 -1
  170. package/dist/components/ic-badge.js +18 -17
  171. package/dist/components/ic-badge.js.map +1 -1
  172. package/dist/components/ic-button2.js +43 -86
  173. package/dist/components/ic-button2.js.map +1 -1
  174. package/dist/components/ic-card.js +1 -1
  175. package/dist/components/ic-checkbox-group.js +1 -1
  176. package/dist/components/ic-checkbox.js +1 -1
  177. package/dist/components/ic-chip.js +29 -3
  178. package/dist/components/ic-chip.js.map +1 -1
  179. package/dist/components/ic-dialog.js +13 -3
  180. package/dist/components/ic-dialog.js.map +1 -1
  181. package/dist/components/ic-input-component-container2.js +1 -1
  182. package/dist/components/ic-input-component-container2.js.map +1 -1
  183. package/dist/components/ic-link2.js +34 -16
  184. package/dist/components/ic-link2.js.map +1 -1
  185. package/dist/components/ic-loading-indicator2.js +1 -1
  186. package/dist/components/ic-loading-indicator2.js.map +1 -1
  187. package/dist/components/ic-menu-item2.js +1 -1
  188. package/dist/components/ic-menu2.js +2 -2
  189. package/dist/components/ic-menu2.js.map +1 -1
  190. package/dist/components/ic-navigation-button.js +26 -5
  191. package/dist/components/ic-navigation-button.js.map +1 -1
  192. package/dist/components/ic-navigation-group.js +15 -12
  193. package/dist/components/ic-navigation-group.js.map +1 -1
  194. package/dist/components/ic-navigation-item.js +29 -33
  195. package/dist/components/ic-navigation-item.js.map +1 -1
  196. package/dist/components/ic-pagination-item2.js +1 -1
  197. package/dist/components/ic-pagination.js +5 -5
  198. package/dist/components/ic-pagination.js.map +1 -1
  199. package/dist/components/ic-radio-group.js +40 -26
  200. package/dist/components/ic-radio-group.js.map +1 -1
  201. package/dist/components/ic-radio-option.js +11 -5
  202. package/dist/components/ic-radio-option.js.map +1 -1
  203. package/dist/components/ic-search-bar.js +1 -1
  204. package/dist/components/ic-select.js +25 -7
  205. package/dist/components/ic-select.js.map +1 -1
  206. package/dist/components/ic-side-navigation.js +1 -1
  207. package/dist/components/ic-side-navigation.js.map +1 -1
  208. package/dist/components/ic-step.js +4 -1
  209. package/dist/components/ic-step.js.map +1 -1
  210. package/dist/components/ic-stepper.js +2 -0
  211. package/dist/components/ic-stepper.js.map +1 -1
  212. package/dist/components/ic-switch.js +1 -1
  213. package/dist/components/ic-tab-context.js +18 -2
  214. package/dist/components/ic-tab-context.js.map +1 -1
  215. package/dist/components/ic-tab.js +1 -1
  216. package/dist/components/ic-text-field2.js +27 -8
  217. package/dist/components/ic-text-field2.js.map +1 -1
  218. package/dist/components/ic-theme.js +3 -10
  219. package/dist/components/ic-theme.js.map +1 -1
  220. package/dist/components/ic-toggle-button.js +1 -1
  221. package/dist/components/ic-top-navigation.js +47 -61
  222. package/dist/components/ic-top-navigation.js.map +1 -1
  223. package/dist/components/ic-typography2.js +12 -38
  224. package/dist/components/ic-typography2.js.map +1 -1
  225. package/dist/components/types.js.map +1 -1
  226. package/dist/core/core.css +1 -1
  227. package/dist/core/core.esm.js +1 -1
  228. package/dist/core/core.esm.js.map +1 -1
  229. package/dist/core/{p-0e2628eb.entry.js → p-00c21dd7.entry.js} +2 -2
  230. package/dist/core/p-00c21dd7.entry.js.map +1 -0
  231. package/dist/core/{p-d5f721ca.entry.js → p-02ad4585.entry.js} +2 -2
  232. package/dist/core/{p-fce3e1aa.entry.js → p-03796d51.entry.js} +2 -2
  233. package/dist/core/p-04cc2b25.entry.js +2 -0
  234. package/dist/core/p-04cc2b25.entry.js.map +1 -0
  235. package/dist/core/p-051583a5.entry.js +2 -0
  236. package/dist/core/p-051583a5.entry.js.map +1 -0
  237. package/dist/core/p-078f7f23.entry.js +2 -0
  238. package/dist/core/p-078f7f23.entry.js.map +1 -0
  239. package/dist/core/p-0c097626.entry.js +2 -0
  240. package/dist/core/p-0c097626.entry.js.map +1 -0
  241. package/dist/core/{p-04506779.entry.js → p-1197f0d4.entry.js} +2 -2
  242. package/dist/core/{p-0038a8fd.entry.js → p-1a6fab3e.entry.js} +2 -2
  243. package/dist/core/p-1b1270a1.entry.js +2 -0
  244. package/dist/core/p-1b1270a1.entry.js.map +1 -0
  245. package/dist/core/{p-2680b736.entry.js → p-1c3b619f.entry.js} +2 -2
  246. package/dist/core/p-24bed047.entry.js +2 -0
  247. package/dist/core/{p-916f4265.entry.js.map → p-24bed047.entry.js.map} +1 -1
  248. package/dist/core/p-26b7b18f.js.map +1 -1
  249. package/dist/core/{p-123b9306.entry.js → p-2b326b17.entry.js} +2 -2
  250. package/dist/core/{p-9c18f048.entry.js → p-2d4e7985.entry.js} +2 -2
  251. package/dist/core/p-2d4e7985.entry.js.map +1 -0
  252. package/dist/core/p-2f91e86a.entry.js +2 -0
  253. package/dist/core/p-2f91e86a.entry.js.map +1 -0
  254. package/dist/core/{p-296b7d74.entry.js → p-328bc6a2.entry.js} +2 -2
  255. package/dist/core/{p-c7c2aa3c.entry.js → p-32e2ae6f.entry.js} +2 -2
  256. package/dist/core/{p-4641518f.entry.js → p-346578e4.entry.js} +2 -2
  257. package/dist/core/p-3f53446c.entry.js +2 -0
  258. package/dist/core/p-3f53446c.entry.js.map +1 -0
  259. package/dist/core/p-44ea7a6d.entry.js +2 -0
  260. package/dist/core/p-44ea7a6d.entry.js.map +1 -0
  261. package/dist/core/{p-c053230d.entry.js → p-498273cb.entry.js} +2 -2
  262. package/dist/core/{p-35b8923f.entry.js → p-4f3fe190.entry.js} +2 -2
  263. package/dist/core/{p-46ecc4c5.entry.js → p-52a4c223.entry.js} +2 -2
  264. package/dist/core/p-52a4c223.entry.js.map +1 -0
  265. package/dist/core/{p-47a9dca9.entry.js → p-5481b048.entry.js} +2 -2
  266. package/dist/core/p-5481b048.entry.js.map +1 -0
  267. package/dist/core/{p-1d352487.entry.js → p-692ccc73.entry.js} +2 -2
  268. package/dist/core/{p-80c3424f.entry.js → p-6f9dcfb5.entry.js} +2 -2
  269. package/dist/core/{p-95d6f3ed.entry.js → p-731515cf.entry.js} +2 -2
  270. package/dist/core/p-74f9082d.entry.js +2 -0
  271. package/dist/core/{p-2f462ec5.entry.js.map → p-74f9082d.entry.js.map} +1 -1
  272. package/dist/core/{p-1ce0d16e.entry.js → p-8153def1.entry.js} +2 -2
  273. package/dist/core/{p-a98f57cf.entry.js → p-8b65be1e.entry.js} +2 -2
  274. package/dist/core/{p-166861e8.entry.js → p-8bc2a670.entry.js} +2 -2
  275. package/dist/core/p-8bc2a670.entry.js.map +1 -0
  276. package/dist/core/{p-dbbea7fa.entry.js → p-8e37e832.entry.js} +2 -2
  277. package/dist/core/p-8ed04819.entry.js +2 -0
  278. package/dist/core/p-8ed04819.entry.js.map +1 -0
  279. package/dist/core/{p-6a9ddb8a.entry.js → p-8fe2b073.entry.js} +2 -2
  280. package/dist/core/{p-d319ddce.entry.js → p-9f29ab99.entry.js} +2 -2
  281. package/dist/core/p-a13236ef.entry.js +2 -0
  282. package/dist/core/{p-a9e1966f.entry.js.map → p-a13236ef.entry.js.map} +1 -1
  283. package/dist/core/{p-8aa9aa25.entry.js → p-adf468f4.entry.js} +2 -2
  284. package/dist/core/{p-b98ce745.entry.js → p-af5eacc1.entry.js} +2 -2
  285. package/dist/core/{p-e4863c93.entry.js → p-b451f27c.entry.js} +2 -2
  286. package/dist/core/{p-5603eec3.entry.js → p-ba1c3cf7.entry.js} +2 -2
  287. package/dist/core/p-ba40f44a.entry.js +2 -0
  288. package/dist/core/p-ba40f44a.entry.js.map +1 -0
  289. package/dist/core/p-bceaf300.entry.js +2 -0
  290. package/dist/core/p-bceaf300.entry.js.map +1 -0
  291. package/dist/core/p-c3acbefe.entry.js +2 -0
  292. package/dist/core/p-c3acbefe.entry.js.map +1 -0
  293. package/dist/core/p-c6ac1a01.entry.js +2 -0
  294. package/dist/core/p-c6ac1a01.entry.js.map +1 -0
  295. package/dist/core/{p-22a682e8.entry.js → p-c919c571.entry.js} +2 -2
  296. package/dist/core/p-d19d157d.entry.js +2 -0
  297. package/dist/core/p-d19d157d.entry.js.map +1 -0
  298. package/dist/core/{p-bc7f99b8.entry.js → p-d7f4779d.entry.js} +2 -2
  299. package/dist/core/p-e4d0d1fb.js +2 -0
  300. package/dist/core/p-e4d0d1fb.js.map +1 -0
  301. package/dist/core/{p-a4e7d123.entry.js → p-e5957ce0.entry.js} +2 -2
  302. package/dist/core/p-e68485ee.entry.js +2 -0
  303. package/dist/core/p-e68485ee.entry.js.map +1 -0
  304. package/dist/core/{p-d9329191.entry.js → p-e8e0fa96.entry.js} +2 -2
  305. package/dist/core/p-f50a57f3.entry.js +2 -0
  306. package/dist/core/p-f50a57f3.entry.js.map +1 -0
  307. package/dist/core/p-f8df0716.entry.js +2 -0
  308. package/dist/core/{p-b781b691.entry.js.map → p-f8df0716.entry.js.map} +1 -1
  309. package/dist/core/p-fd737b7e.entry.js +2 -0
  310. package/dist/core/p-fd737b7e.entry.js.map +1 -0
  311. package/dist/esm/core.js +1 -1
  312. package/dist/esm/{helpers-f1ca9908.js → helpers-24ba0b83.js} +27 -4
  313. package/dist/esm/helpers-24ba0b83.js.map +1 -0
  314. package/dist/esm/ic-accordion-group.entry.js +11 -2
  315. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  316. package/dist/esm/ic-accordion.entry.js +1 -1
  317. package/dist/esm/ic-alert.entry.js +1 -1
  318. package/dist/esm/ic-back-to-top.entry.js +1 -1
  319. package/dist/esm/ic-badge.entry.js +18 -17
  320. package/dist/esm/ic-badge.entry.js.map +1 -1
  321. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  322. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  323. package/dist/esm/ic-button_3.entry.js +41 -86
  324. package/dist/esm/ic-button_3.entry.js.map +1 -1
  325. package/dist/esm/ic-card.entry.js +1 -1
  326. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  327. package/dist/esm/ic-checkbox.entry.js +1 -1
  328. package/dist/esm/ic-chip.entry.js +25 -2
  329. package/dist/esm/ic-chip.entry.js.map +1 -1
  330. package/dist/esm/ic-data-row.entry.js +1 -1
  331. package/dist/esm/ic-dialog.entry.js +14 -4
  332. package/dist/esm/ic-dialog.entry.js.map +1 -1
  333. package/dist/esm/ic-divider.entry.js +1 -1
  334. package/dist/esm/ic-empty-state.entry.js +1 -1
  335. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  336. package/dist/esm/ic-footer-link.entry.js +1 -1
  337. package/dist/esm/ic-footer.entry.js +1 -1
  338. package/dist/esm/ic-hero.entry.js +1 -1
  339. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  340. package/dist/esm/ic-input-component-container_3.entry.js +4 -4
  341. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  342. package/dist/esm/ic-input-label_2.entry.js +1 -1
  343. package/dist/esm/ic-link.entry.js +34 -16
  344. package/dist/esm/ic-link.entry.js.map +1 -1
  345. package/dist/esm/ic-menu-group.entry.js +1 -1
  346. package/dist/esm/ic-menu-item.entry.js +1 -1
  347. package/dist/esm/ic-navigation-button.entry.js +27 -6
  348. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  349. package/dist/esm/ic-navigation-group.entry.js +16 -13
  350. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  351. package/dist/esm/ic-navigation-item.entry.js +29 -33
  352. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  353. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  354. package/dist/esm/ic-page-header.entry.js +1 -1
  355. package/dist/esm/ic-pagination-item.entry.js +1 -1
  356. package/dist/esm/ic-pagination.entry.js +5 -5
  357. package/dist/esm/ic-pagination.entry.js.map +1 -1
  358. package/dist/esm/ic-popover-menu.entry.js +1 -1
  359. package/dist/esm/ic-radio-group.entry.js +40 -26
  360. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  361. package/dist/esm/ic-radio-option.entry.js +9 -4
  362. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  363. package/dist/esm/ic-search-bar.entry.js +1 -1
  364. package/dist/esm/ic-select.entry.js +25 -7
  365. package/dist/esm/ic-select.entry.js.map +1 -1
  366. package/dist/esm/ic-side-navigation.entry.js +2 -2
  367. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  368. package/dist/esm/ic-status-tag.entry.js +1 -1
  369. package/dist/esm/ic-step.entry.js +5 -2
  370. package/dist/esm/ic-step.entry.js.map +1 -1
  371. package/dist/esm/ic-stepper.entry.js +2 -1
  372. package/dist/esm/ic-stepper.entry.js.map +1 -1
  373. package/dist/esm/ic-switch.entry.js +1 -1
  374. package/dist/esm/ic-tab-context.entry.js +18 -2
  375. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  376. package/dist/esm/ic-tab-group.entry.js +1 -1
  377. package/dist/esm/ic-tab-panel.entry.js +1 -1
  378. package/dist/esm/ic-tab.entry.js +1 -1
  379. package/dist/esm/ic-text-field.entry.js +27 -8
  380. package/dist/esm/ic-text-field.entry.js.map +1 -1
  381. package/dist/esm/ic-theme.entry.js +3 -10
  382. package/dist/esm/ic-theme.entry.js.map +1 -1
  383. package/dist/esm/ic-toast.entry.js +1 -1
  384. package/dist/esm/ic-toggle-button.entry.js +1 -1
  385. package/dist/esm/ic-top-navigation.entry.js +46 -60
  386. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  387. package/dist/esm/ic-typography.entry.js +12 -36
  388. package/dist/esm/ic-typography.entry.js.map +1 -1
  389. package/dist/esm/loader.js +1 -1
  390. package/dist/esm/polyfills/core-js.js +0 -0
  391. package/dist/esm/polyfills/dom.js +0 -0
  392. package/dist/esm/polyfills/es5-html-element.js +0 -0
  393. package/dist/esm/polyfills/index.js +0 -0
  394. package/dist/esm/polyfills/system.js +0 -0
  395. package/dist/esm/types-6f6b41a5.js.map +1 -1
  396. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +6 -0
  397. package/dist/types/components/ic-badge/ic-badge.d.ts +3 -2
  398. package/dist/types/components/ic-badge/ic-badge.types.d.ts +0 -5
  399. package/dist/types/components/ic-button/ic-button.d.ts +3 -10
  400. package/dist/types/components/ic-chip/ic-chip.d.ts +8 -1
  401. package/dist/types/components/ic-dialog/ic-dialog.d.ts +1 -0
  402. package/dist/types/components/ic-link/ic-link.d.ts +6 -2
  403. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +3 -0
  404. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +2 -2
  405. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +3 -0
  406. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +4 -0
  407. package/dist/types/components/ic-select/ic-select.d.ts +2 -0
  408. package/dist/types/components/ic-stepper/ic-stepper.d.ts +4 -0
  409. package/dist/types/components/ic-tab/ic-tab.types.d.ts +1 -0
  410. package/dist/types/components/ic-text-field/ic-text-field.d.ts +3 -1
  411. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +10 -5
  412. package/dist/types/components/ic-typography/ic-typography.d.ts +1 -18
  413. package/dist/types/components.d.ts +33 -31
  414. package/dist/types/interface.d.ts +0 -1
  415. package/dist/types/utils/helpers.d.ts +18 -7
  416. package/dist/types/utils/types.d.ts +6 -0
  417. package/hydrate/index.js +402 -330
  418. package/package.json +3 -2
  419. package/vscode-data.json +20 -0
  420. package/dist/cjs/helpers-d52cddc1.js.map +0 -1
  421. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js +0 -13
  422. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js.map +0 -1
  423. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js +0 -177
  424. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js.map +0 -1
  425. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +0 -18
  426. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +0 -1
  427. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js +0 -128
  428. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js.map +0 -1
  429. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js +0 -13
  430. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js.map +0 -1
  431. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +0 -33
  432. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +0 -1
  433. package/dist/collection/components/ic-typography/ic-typography.types.js +0 -2
  434. package/dist/collection/components/ic-typography/ic-typography.types.js.map +0 -1
  435. package/dist/core/p-0e2628eb.entry.js.map +0 -1
  436. package/dist/core/p-1183031f.entry.js +0 -2
  437. package/dist/core/p-1183031f.entry.js.map +0 -1
  438. package/dist/core/p-166861e8.entry.js.map +0 -1
  439. package/dist/core/p-210412e4.entry.js +0 -2
  440. package/dist/core/p-210412e4.entry.js.map +0 -1
  441. package/dist/core/p-2f462ec5.entry.js +0 -2
  442. package/dist/core/p-46ecc4c5.entry.js.map +0 -1
  443. package/dist/core/p-477cf469.entry.js +0 -2
  444. package/dist/core/p-477cf469.entry.js.map +0 -1
  445. package/dist/core/p-47a9dca9.entry.js.map +0 -1
  446. package/dist/core/p-47d39ce7.entry.js +0 -2
  447. package/dist/core/p-47d39ce7.entry.js.map +0 -1
  448. package/dist/core/p-4ce5abd7.entry.js +0 -2
  449. package/dist/core/p-4ce5abd7.entry.js.map +0 -1
  450. package/dist/core/p-53f2fc84.js +0 -2
  451. package/dist/core/p-53f2fc84.js.map +0 -1
  452. package/dist/core/p-5e729e99.entry.js +0 -2
  453. package/dist/core/p-5e729e99.entry.js.map +0 -1
  454. package/dist/core/p-64705a03.entry.js +0 -2
  455. package/dist/core/p-64705a03.entry.js.map +0 -1
  456. package/dist/core/p-76ee6107.entry.js +0 -2
  457. package/dist/core/p-76ee6107.entry.js.map +0 -1
  458. package/dist/core/p-7b0397ea.entry.js +0 -2
  459. package/dist/core/p-7b0397ea.entry.js.map +0 -1
  460. package/dist/core/p-916f4265.entry.js +0 -2
  461. package/dist/core/p-91768ddf.entry.js +0 -2
  462. package/dist/core/p-91768ddf.entry.js.map +0 -1
  463. package/dist/core/p-9c18f048.entry.js.map +0 -1
  464. package/dist/core/p-a9e1966f.entry.js +0 -2
  465. package/dist/core/p-aa777792.entry.js +0 -2
  466. package/dist/core/p-aa777792.entry.js.map +0 -1
  467. package/dist/core/p-aa878a3c.entry.js +0 -2
  468. package/dist/core/p-aa878a3c.entry.js.map +0 -1
  469. package/dist/core/p-b781b691.entry.js +0 -2
  470. package/dist/core/p-cf798ea7.entry.js +0 -2
  471. package/dist/core/p-cf798ea7.entry.js.map +0 -1
  472. package/dist/core/p-df090fc1.entry.js +0 -2
  473. package/dist/core/p-df090fc1.entry.js.map +0 -1
  474. package/dist/core/p-e68e31ec.entry.js +0 -2
  475. package/dist/core/p-e68e31ec.entry.js.map +0 -1
  476. package/dist/core/p-fbcb77a3.entry.js +0 -2
  477. package/dist/core/p-fbcb77a3.entry.js.map +0 -1
  478. package/dist/core/p-fea1d095.entry.js +0 -2
  479. package/dist/core/p-fea1d095.entry.js.map +0 -1
  480. package/dist/esm/helpers-f1ca9908.js.map +0 -1
  481. package/dist/types/components/ic-page-header/test/a11y/ic-page-header.test.a11y.d.ts +0 -1
  482. package/dist/types/components/ic-pagination/test/a11y/ic-pagination.test.a11y.d.ts +0 -1
  483. package/dist/types/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.d.ts +0 -1
  484. package/dist/types/components/ic-typography/ic-typography.types.d.ts +0 -4
  485. /package/dist/core/{p-d5f721ca.entry.js.map → p-02ad4585.entry.js.map} +0 -0
  486. /package/dist/core/{p-fce3e1aa.entry.js.map → p-03796d51.entry.js.map} +0 -0
  487. /package/dist/core/{p-04506779.entry.js.map → p-1197f0d4.entry.js.map} +0 -0
  488. /package/dist/core/{p-0038a8fd.entry.js.map → p-1a6fab3e.entry.js.map} +0 -0
  489. /package/dist/core/{p-2680b736.entry.js.map → p-1c3b619f.entry.js.map} +0 -0
  490. /package/dist/core/{p-123b9306.entry.js.map → p-2b326b17.entry.js.map} +0 -0
  491. /package/dist/core/{p-296b7d74.entry.js.map → p-328bc6a2.entry.js.map} +0 -0
  492. /package/dist/core/{p-c7c2aa3c.entry.js.map → p-32e2ae6f.entry.js.map} +0 -0
  493. /package/dist/core/{p-4641518f.entry.js.map → p-346578e4.entry.js.map} +0 -0
  494. /package/dist/core/{p-c053230d.entry.js.map → p-498273cb.entry.js.map} +0 -0
  495. /package/dist/core/{p-35b8923f.entry.js.map → p-4f3fe190.entry.js.map} +0 -0
  496. /package/dist/core/{p-1d352487.entry.js.map → p-692ccc73.entry.js.map} +0 -0
  497. /package/dist/core/{p-80c3424f.entry.js.map → p-6f9dcfb5.entry.js.map} +0 -0
  498. /package/dist/core/{p-95d6f3ed.entry.js.map → p-731515cf.entry.js.map} +0 -0
  499. /package/dist/core/{p-1ce0d16e.entry.js.map → p-8153def1.entry.js.map} +0 -0
  500. /package/dist/core/{p-a98f57cf.entry.js.map → p-8b65be1e.entry.js.map} +0 -0
  501. /package/dist/core/{p-dbbea7fa.entry.js.map → p-8e37e832.entry.js.map} +0 -0
  502. /package/dist/core/{p-6a9ddb8a.entry.js.map → p-8fe2b073.entry.js.map} +0 -0
  503. /package/dist/core/{p-d319ddce.entry.js.map → p-9f29ab99.entry.js.map} +0 -0
  504. /package/dist/core/{p-8aa9aa25.entry.js.map → p-adf468f4.entry.js.map} +0 -0
  505. /package/dist/core/{p-b98ce745.entry.js.map → p-af5eacc1.entry.js.map} +0 -0
  506. /package/dist/core/{p-e4863c93.entry.js.map → p-b451f27c.entry.js.map} +0 -0
  507. /package/dist/core/{p-5603eec3.entry.js.map → p-ba1c3cf7.entry.js.map} +0 -0
  508. /package/dist/core/{p-22a682e8.entry.js.map → p-c919c571.entry.js.map} +0 -0
  509. /package/dist/core/{p-bc7f99b8.entry.js.map → p-d7f4779d.entry.js.map} +0 -0
  510. /package/dist/core/{p-a4e7d123.entry.js.map → p-e5957ce0.entry.js.map} +0 -0
  511. /package/dist/core/{p-d9329191.entry.js.map → p-e8e0fa96.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-dialog.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from \"@stencil/core/testing\";\nimport { Dialog } from \"../../ic-dialog\";\nimport {\n waitForTimeout,\n testKeyboardEvent as keyboardEvent,\n} from \"../../../../testspec.setup\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\n\nconst DIALOG_DELAY_MS = 100;\n\nconst setupDialogMethods = (page: SpecPage) => {\n page.rootInstance.dialogEl.showModal = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = true;\n });\n\n page.rootInstance.dialogEl.show = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = true;\n });\n\n page.rootInstance.dialogEl.close = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = false;\n });\n};\n\ndescribe(\"ic-dialog component\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a label\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" label=\"Dialog label\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\">Dialog content</ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with slotted content\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as medium size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"medium\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as large size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"large\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no more than three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n { label: \"Extra\", onclick: \"alert('Extra button')\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a destructive default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading test\" destructive=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an alert\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" status=\"neutral\" alert-heading=\"Alert heading\" alert-message=\"Alert message\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should display with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n dialog.open = false;\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should display with the showDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the hideDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n await dialog.hideDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test icDialogCancelled event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test icDialogConfirmed event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test cancelDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n await dialog.cancelDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test confirmDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n await dialog.confirmDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should render with slotted controls\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"><ic-button variant=\"primary\" onclick=\"alert('Confirmed!')\" slot=\"dialog-controls\">Confirm</ic-button></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should hide when the escape key is pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Escape\"))\n );\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should hide when something besides the dialog is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should not hide when close-on-backdrop-click false\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" close-on-backdrop-click=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide when the close button is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelector(\"ic-button\").click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [{ label: \"Confirm\", onclick: \"this.hideDialog()\" }];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should trigger private focusNextInteractiveElement method when tab pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n const dialog = document.querySelector(\"ic-dialog\");\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Tab\"))\n );\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should correctly pass onclick functions to two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Close\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[3].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should render with the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog with close button test\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render without the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog hide close button test\" hide-close-button=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should call this.getInteractiveElements() when slot content changes\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\" disable-height-constraint=\"true\"></ic-dialog>',\n });\n\n const contentAreaSlot = document\n .querySelector(\"ic-dialog\")\n .shadowRoot.querySelector(\".content-area slot\");\n\n jest\n .spyOn(page.rootInstance, \"getInteractiveElements\")\n .mockImplementation();\n\n await page.rootInstance.refreshInteractiveElementsOnSlotChange();\n\n contentAreaSlot.dispatchEvent(new Event(\"slotchange\"));\n\n expect(page.rootInstance.getInteractiveElements).toBeCalledTimes(1);\n });\n\n it(\"should call dialog.show() disableHeightConstraint is set and showDialog is called\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\" disable-height-constraint=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogEl.show).toBeCalled();\n });\n});\n\nit(\"should render as large size and disableWidthConstraint is set\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"large\" disable-width-constraint=\"true\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n});\n"]}
1
+ {"version":3,"file":"ic-dialog.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from \"@stencil/core/testing\";\nimport { Dialog } from \"../../ic-dialog\";\nimport {\n waitForTimeout,\n testKeyboardEvent as keyboardEvent,\n} from \"../../../../testspec.setup\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\nimport { AccordionGroup } from \"../../../ic-accordion-group/ic-accordion-group\";\nimport { Accordion } from \"../../../ic-accordion/ic-accordion\";\n\nconst DIALOG_DELAY_MS = 100;\n\nconst setupDialogMethods = (page: SpecPage) => {\n page.rootInstance.dialogEl.showModal = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = true;\n });\n\n page.rootInstance.dialogEl.show = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = true;\n });\n\n page.rootInstance.dialogEl.close = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = false;\n });\n};\n\ndescribe(\"ic-dialog component\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a label\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" label=\"Dialog label\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\">Dialog content</ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with slotted content\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as medium size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"medium\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as large size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"large\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no more than three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n { label: \"Extra\", onclick: \"alert('Extra button')\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a destructive default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading test\" destructive=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an alert\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" status=\"neutral\" alert-heading=\"Alert heading\" alert-message=\"Alert message\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should display with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n dialog.open = false;\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should display with the showDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the hideDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n await dialog.hideDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test icDialogCancelled event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test icDialogConfirmed event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test cancelDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n await dialog.cancelDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test confirmDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n await dialog.confirmDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should render with slotted controls\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"><ic-button variant=\"primary\" onclick=\"alert('Confirmed!')\" slot=\"dialog-controls\">Confirm</ic-button></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should hide when the escape key is pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Escape\"))\n );\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should hide when something besides the dialog is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should not hide when close-on-backdrop-click false\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" close-on-backdrop-click=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide when the close button is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelector(\"ic-button\").click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [{ label: \"Confirm\", onclick: \"this.hideDialog()\" }];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should trigger private focusNextInteractiveElement method when tab pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n const dialog = document.querySelector(\"ic-dialog\");\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Tab\"))\n );\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should render with an accordian group as first focussable element\", async () => {\n const page = await newSpecPage({\n components: [Dialog, AccordionGroup, Accordion, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-accordion-group group-title=\"Test heading\">\n <ic-accordion>\n <ic-typography variant=\"body\" >\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>\n </ic-accordion-group>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.interactiveElementList[1].nodeName).toBe(\n \"IC-ACCORDION-GROUP\"\n );\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Tab\"))\n );\n await page.waitForChanges();\n\n expect(page.rootInstance.focusedElementIndex).toBe(1);\n });\n\n it(\"should render with an accordian as first focussable element\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Accordion, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-accordion>\n <ic-typography variant=\"body\" >\n This is an example of the main body text.\n </ic-typography>\n </ic-accordion>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.interactiveElementList[1].nodeName).toBe(\n \"IC-ACCORDION\"\n );\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Tab\"))\n );\n await page.waitForChanges();\n\n expect(page.rootInstance.focusedElementIndex).toBe(1);\n });\n\n it(\"should correctly pass onclick functions to two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Close\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[3].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should render with the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog with close button test\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render without the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog hide close button test\" hide-close-button=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should call this.getInteractiveElements() when slot content changes\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\" disable-height-constraint=\"true\"></ic-dialog>',\n });\n\n const contentAreaSlot = document\n .querySelector(\"ic-dialog\")\n .shadowRoot.querySelector(\".content-area slot\");\n\n jest\n .spyOn(page.rootInstance, \"getInteractiveElements\")\n .mockImplementation();\n\n await page.rootInstance.refreshInteractiveElementsOnSlotChange();\n\n contentAreaSlot.dispatchEvent(new Event(\"slotchange\"));\n\n expect(page.rootInstance.getInteractiveElements).toBeCalledTimes(1);\n });\n\n it(\"should call dialog.show() disableHeightConstraint is set and showDialog is called\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\" disable-height-constraint=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogEl.show).toBeCalled();\n });\n});\n\nit(\"should render as large size and disableWidthConstraint is set\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"large\" disable-width-constraint=\"true\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n});\n"]}
@@ -32,7 +32,7 @@ export class InputComponentContainer {
32
32
  ["multiline"]: multiLine,
33
33
  ["fullwidth"]: fullWidth,
34
34
  ["dark"]: dark || appearance === "dark",
35
- } }, h("div", { class: {
35
+ }, "aria-disabled": disabled && `${disabled}` }, h("div", { class: {
36
36
  "focus-indicator": true,
37
37
  dark: dark || appearance === "dark",
38
38
  } }, isSlotUsed(this.el, "left-icon") && (h("div", { class: {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-input-component-container.js","sourceRoot":"","sources":["../../../src/components/ic-input-component-container/ic-input-component-container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;GAEG;AAKH,MAAM,OAAO,uBAAuB;;0BAMQ,SAAS;oBAK1B,KAAK;wBAKF,KAAK;yBAKJ,KAAK;yBAKL,KAAK;wBAKN,KAAK;oBAKR,SAAS;qBAKR,KAAK;gCAKK,KAAK;gCAKc,EAAE;;IAEzD,MAAM;QACJ,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,IAAI,EACJ,UAAU,EACV,gBAAgB,GACjB,GAAG,IAAI,CAAC;QACT,MAAM,mBAAmB,GACvB,IAAI,CAAC,gBAAgB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC9D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,CAAC;QACZ,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK;gBACZ,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjB,CAAC,gBAAgB,CAAC,EAAE,mBAAmB;gBACvC,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,CAAC,WAAW,CAAC,EAAE,SAAS;gBACxB,CAAC,WAAW,CAAC,EAAE,SAAS;gBACxB,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,UAAU,KAAK,MAAM;aACxC;YAED,WACE,KAAK,EAAE;oBACL,iBAAiB,EAAE,IAAI;oBACvB,IAAI,EAAE,IAAI,IAAI,UAAU,KAAK,MAAM;iBACpC;gBAEA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CACnC,WACE,KAAK,EAAE;wBACL,CAAC,gBAAgB,CAAC,EAAE,IAAI;qBACzB;oBAED,YAAM,IAAI,EAAC,WAAW,GAAG,CACrB,CACP;gBACD,eAAa;gBAEZ,gBAAgB;oBACf,gBAAgB,KAAK,mBAAmB,CAAC,OAAO,IAAI,CAClD,YACE,KAAK,EAAE;wBACL,CAAC,gBAAgB,CAAC,EAAE,IAAI;qBACzB,EACD,SAAS,EAAE,WAAW,GACtB,CACH,CACC,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\n\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n} from \"../../utils/types\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport { isSlotUsed } from \"../../utils/helpers\";\n\n/**\n * @slot left-icon - Content will be placed to the left of the input.\n */\n@Component({\n tag: \"ic-input-component-container\",\n styleUrl: \"ic-input-component-container.css\",\n})\nexport class InputComponentContainer {\n @Element() el: HTMLIcInputComponentContainerElement;\n\n /**\n * The appearance of the input component container.\n */\n @Prop() appearance?: \"dark\" | \"default\" = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `appearance` to \"dark\" instead.\n */\n @Prop() dark?: boolean = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * If `true`, the input component container will fill the width of the container it is in.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * If `true`, the input component container will allow for multiple lines.\n */\n @Prop() multiLine: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * The size of the input component container component.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If `true`, the validation will display inline.\n */\n @Prop() validationInline: boolean = false;\n\n /**\n * The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n render() {\n const {\n size,\n small,\n validationStatus,\n disabled,\n readonly,\n multiLine,\n fullWidth,\n dark,\n appearance,\n validationInline,\n } = this;\n const hasValidationStatus =\n this.validationStatus !== \"\" && !this.disabled && !this.readonly\n ? true\n : false;\n return (\n <Host\n class={{\n small: small,\n [`${size}`]: true,\n [validationStatus]: hasValidationStatus,\n disabled: disabled,\n readonly: readonly,\n [\"multiline\"]: multiLine,\n [\"fullwidth\"]: fullWidth,\n [\"dark\"]: dark || appearance === \"dark\",\n }}\n >\n <div\n class={{\n \"focus-indicator\": true,\n dark: dark || appearance === \"dark\",\n }}\n >\n {isSlotUsed(this.el, \"left-icon\") && (\n <div\n class={{\n [\"icon-container\"]: true,\n }}\n >\n <slot name=\"left-icon\" />\n </div>\n )}\n <slot></slot>\n\n {validationInline &&\n validationStatus === IcInformationStatus.Success && (\n <span\n class={{\n [\"inline-success\"]: true,\n }}\n innerHTML={successIcon}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-input-component-container.js","sourceRoot":"","sources":["../../../src/components/ic-input-component-container/ic-input-component-container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;GAEG;AAKH,MAAM,OAAO,uBAAuB;;0BAMQ,SAAS;oBAK1B,KAAK;wBAKF,KAAK;yBAKJ,KAAK;yBAKL,KAAK;wBAKN,KAAK;oBAKR,SAAS;qBAKR,KAAK;gCAKK,KAAK;gCAKc,EAAE;;IAEzD,MAAM;QACJ,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,IAAI,EACJ,UAAU,EACV,gBAAgB,GACjB,GAAG,IAAI,CAAC;QACT,MAAM,mBAAmB,GACvB,IAAI,CAAC,gBAAgB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC9D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,CAAC;QAEZ,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK;gBACZ,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjB,CAAC,gBAAgB,CAAC,EAAE,mBAAmB;gBACvC,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,CAAC,WAAW,CAAC,EAAE,SAAS;gBACxB,CAAC,WAAW,CAAC,EAAE,SAAS;gBACxB,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,UAAU,KAAK,MAAM;aACxC,mBACc,QAAQ,IAAI,GAAG,QAAQ,EAAE;YAExC,WACE,KAAK,EAAE;oBACL,iBAAiB,EAAE,IAAI;oBACvB,IAAI,EAAE,IAAI,IAAI,UAAU,KAAK,MAAM;iBACpC;gBAEA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CACnC,WACE,KAAK,EAAE;wBACL,CAAC,gBAAgB,CAAC,EAAE,IAAI;qBACzB;oBAED,YAAM,IAAI,EAAC,WAAW,GAAG,CACrB,CACP;gBACD,eAAa;gBAEZ,gBAAgB;oBACf,gBAAgB,KAAK,mBAAmB,CAAC,OAAO,IAAI,CAClD,YACE,KAAK,EAAE;wBACL,CAAC,gBAAgB,CAAC,EAAE,IAAI;qBACzB,EACD,SAAS,EAAE,WAAW,GACtB,CACH,CACC,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\n\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n} from \"../../utils/types\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport { isSlotUsed } from \"../../utils/helpers\";\n\n/**\n * @slot left-icon - Content will be placed to the left of the input.\n */\n@Component({\n tag: \"ic-input-component-container\",\n styleUrl: \"ic-input-component-container.css\",\n})\nexport class InputComponentContainer {\n @Element() el: HTMLIcInputComponentContainerElement;\n\n /**\n * The appearance of the input component container.\n */\n @Prop() appearance?: \"dark\" | \"default\" = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `appearance` to \"dark\" instead.\n */\n @Prop() dark?: boolean = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * If `true`, the input component container will fill the width of the container it is in.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * If `true`, the input component container will allow for multiple lines.\n */\n @Prop() multiLine: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * The size of the input component container component.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If `true`, the validation will display inline.\n */\n @Prop() validationInline: boolean = false;\n\n /**\n * The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n render() {\n const {\n size,\n small,\n validationStatus,\n disabled,\n readonly,\n multiLine,\n fullWidth,\n dark,\n appearance,\n validationInline,\n } = this;\n const hasValidationStatus =\n this.validationStatus !== \"\" && !this.disabled && !this.readonly\n ? true\n : false;\n\n return (\n <Host\n class={{\n small: small,\n [`${size}`]: true,\n [validationStatus]: hasValidationStatus,\n disabled: disabled,\n readonly: readonly,\n [\"multiline\"]: multiLine,\n [\"fullwidth\"]: fullWidth,\n [\"dark\"]: dark || appearance === \"dark\",\n }}\n aria-disabled={disabled && `${disabled}`}\n >\n <div\n class={{\n \"focus-indicator\": true,\n dark: dark || appearance === \"dark\",\n }}\n >\n {isSlotUsed(this.el, \"left-icon\") && (\n <div\n class={{\n [\"icon-container\"]: true,\n }}\n >\n <slot name=\"left-icon\" />\n </div>\n )}\n <slot></slot>\n\n {validationInline &&\n validationStatus === IcInformationStatus.Success && (\n <span\n class={{\n [\"inline-success\"]: true,\n }}\n innerHTML={successIcon}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -56,7 +56,7 @@ describe("ic-input-component-container", () => {
56
56
  </ic-input-component-container>
57
57
  `);
58
58
  });
59
- it("renders with small, multiline & fullwidth props set", async () => {
59
+ it("renders with size small, multiline & fullwidth props set", async () => {
60
60
  const page = await newSpecPage({
61
61
  components: [InputComponentContainer],
62
62
  html: `<ic-input-component-container size="small" multi-line=true full-width=true>content</ic-input-component-container>`,
@@ -69,13 +69,26 @@ describe("ic-input-component-container", () => {
69
69
  </ic-input-component-container>
70
70
  `);
71
71
  });
72
+ it("renders with size large", async () => {
73
+ const page = await newSpecPage({
74
+ components: [InputComponentContainer],
75
+ html: `<ic-input-component-container size=large>content</ic-input-component-container>`,
76
+ });
77
+ expect(page.root).toEqualHtml(`
78
+ <ic-input-component-container class="large" size="large">
79
+ <div class="focus-indicator">
80
+ content
81
+ </div>
82
+ </ic-input-component-container>
83
+ `);
84
+ });
72
85
  it("renders disabled", async () => {
73
86
  const page = await newSpecPage({
74
87
  components: [InputComponentContainer],
75
88
  html: `<ic-input-component-container validation-status="success" disabled=true>content</ic-input-component-container>`,
76
89
  });
77
90
  expect(page.root).toEqualHtml(`
78
- <ic-input-component-container validation-status="success" class="default disabled" disabled="true">
91
+ <ic-input-component-container validation-status="success" class="default disabled" aria-disabled="true" disabled="true">
79
92
  <div class="focus-indicator">
80
93
  content
81
94
  </div>
@@ -101,7 +114,7 @@ describe("ic-input-component-container", () => {
101
114
  html: `<ic-input-component-container validation-status="success" disabled=true><span slot="left-icon">slotted content</span>content</ic-input-component-container>`,
102
115
  });
103
116
  expect(page.root).toEqualHtml(`
104
- <ic-input-component-container class="default disabled" disabled="true" validation-status="success">
117
+ <ic-input-component-container class="default disabled" aria-disabled="true" disabled="true" validation-status="success">
105
118
  <div class="focus-indicator">
106
119
  <div class="icon-container">
107
120
  <span slot="left-icon">
@@ -1 +1 @@
1
- {"version":3,"file":"ic-input-component-container.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-input-component-container/test/basic/ic-input-component-container.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { InputComponentContainer } from \"../../ic-input-component-container\";\nimport { newSpecPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-input-component-container\", () => {\n it(\"renders\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders with validation status\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\">content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container validation-status=\"success\" class=\"default success\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container> \n `);\n });\n\n it(\"renders with validation inline\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" validation-inline=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default success\" validation-inline=\"true\" validation-status=\"success\">\n <div class=\"focus-indicator\">\n content\n <span class=\"inline-success\">\n svg\n </span>\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"ignores validation inline if not success\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"error\" validation-inline=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default error\" validation-inline=\"true\" validation-status=\"error\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders with small, multiline & fullwidth props set\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container size=\"small\" multi-line=true full-width=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"small fullwidth multiline\" full-width=\"true\" multi-line=\"true\" size=\"small\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders disabled\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" disabled=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container validation-status=\"success\" class=\"default disabled\" disabled=\"true\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders readonly\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" readonly=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default readonly\" readonly=\"true\" validation-status=\"success\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders with slotted content\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" disabled=true><span slot=\"left-icon\">slotted content</span>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default disabled\" disabled=\"true\" validation-status=\"success\">\n <div class=\"focus-indicator\">\n <div class=\"icon-container\">\n <span slot=\"left-icon\">\n slotted content\n </span>\n </div>\n content\n </div>\n </ic-input-component-container>\n `);\n });\n});\n"]}
1
+ {"version":3,"file":"ic-input-component-container.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-input-component-container/test/basic/ic-input-component-container.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { InputComponentContainer } from \"../../ic-input-component-container\";\nimport { newSpecPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-input-component-container\", () => {\n it(\"renders\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders with validation status\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\">content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container validation-status=\"success\" class=\"default success\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container> \n `);\n });\n\n it(\"renders with validation inline\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" validation-inline=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default success\" validation-inline=\"true\" validation-status=\"success\">\n <div class=\"focus-indicator\">\n content\n <span class=\"inline-success\">\n svg\n </span>\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"ignores validation inline if not success\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"error\" validation-inline=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default error\" validation-inline=\"true\" validation-status=\"error\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders with size small, multiline & fullwidth props set\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container size=\"small\" multi-line=true full-width=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"small fullwidth multiline\" full-width=\"true\" multi-line=\"true\" size=\"small\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders with size large\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container size=large>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"large\" size=\"large\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders disabled\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" disabled=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container validation-status=\"success\" class=\"default disabled\" aria-disabled=\"true\" disabled=\"true\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders readonly\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" readonly=true>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default readonly\" readonly=\"true\" validation-status=\"success\">\n <div class=\"focus-indicator\">\n content\n </div>\n </ic-input-component-container>\n `);\n });\n\n it(\"renders with slotted content\", async () => {\n const page = await newSpecPage({\n components: [InputComponentContainer],\n html: `<ic-input-component-container validation-status=\"success\" disabled=true><span slot=\"left-icon\">slotted content</span>content</ic-input-component-container>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-input-component-container class=\"default disabled\" aria-disabled=\"true\" disabled=\"true\" validation-status=\"success\">\n <div class=\"focus-indicator\">\n <div class=\"icon-container\">\n <span slot=\"left-icon\">\n slotted content\n </span>\n </div>\n content\n </div>\n </ic-input-component-container>\n `);\n });\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { h, Host, } from "@stencil/core";
1
+ import { h, Host, forceUpdate, } from "@stencil/core";
2
2
  import OpenInNew from "../../assets/OpenInNew.svg";
3
3
  import { getThemeFromContext, inheritAttributes } from "../../utils/helpers";
4
4
  import { IC_INHERITED_ARIA } from "../../utils/constants";
@@ -9,6 +9,21 @@ import { IcThemeForegroundEnum, } from "../../utils/types";
9
9
  export class Link {
10
10
  constructor() {
11
11
  this.inheritedAttributes = {};
12
+ this.hostMutationObserver = null;
13
+ // triggered when attributes of host element change
14
+ this.hostMutationCallback = (mutationList) => {
15
+ let forceComponentUpdate = false;
16
+ mutationList.forEach(({ attributeName }) => {
17
+ if (IC_INHERITED_ARIA.includes(attributeName)) {
18
+ this.inheritedAttributes[attributeName] =
19
+ this.el.getAttribute(attributeName);
20
+ forceComponentUpdate = true;
21
+ }
22
+ });
23
+ if (forceComponentUpdate) {
24
+ forceUpdate(this);
25
+ }
26
+ };
12
27
  this.appearance = "default";
13
28
  this.download = false;
14
29
  this.href = null;
@@ -22,27 +37,30 @@ export class Link {
22
37
  this.inheritedAttributes = inheritAttributes(this.el, IC_INHERITED_ARIA);
23
38
  this.updateTheme();
24
39
  }
25
- themeChangeHandler(ev) {
26
- const theme = ev.detail;
27
- this.updateTheme(theme.mode);
40
+ componentDidLoad() {
41
+ this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
42
+ this.hostMutationObserver.observe(this.el, {
43
+ attributes: true,
44
+ });
45
+ }
46
+ disconnectedCallback() {
47
+ var _a;
48
+ (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
49
+ }
50
+ themeChangeHandler({ detail }) {
51
+ this.updateTheme(detail.mode);
28
52
  }
29
53
  /**
30
54
  * Sets focus on the link.
31
55
  */
32
56
  async setFocus() {
33
- if (this.el.shadowRoot.querySelector("a")) {
34
- this.el.shadowRoot.querySelector("a").focus();
35
- }
57
+ var _a;
58
+ (_a = this.el.shadowRoot.querySelector("a")) === null || _a === void 0 ? void 0 : _a.focus();
36
59
  }
37
60
  updateTheme(newTheme = null) {
38
- const theme = getThemeFromContext(this.el, newTheme || null);
39
- switch (theme) {
40
- case IcThemeForegroundEnum.Light:
41
- this.appearance = IcThemeForegroundEnum.Light;
42
- break;
43
- case IcThemeForegroundEnum.Dark:
44
- this.appearance = IcThemeForegroundEnum.Dark;
45
- break;
61
+ const theme = getThemeFromContext(this.el, newTheme);
62
+ if (theme !== IcThemeForegroundEnum.Default) {
63
+ this.appearance = theme;
46
64
  }
47
65
  }
48
66
  hasRouterSlot() {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-link.js","sourceRoot":"","sources":["../../../src/components/ic-link/ic-link.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n Method,\n} from \"@stencil/core\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport { getThemeFromContext, inheritAttributes } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n\n@Component({\n tag: \"ic-link\",\n styleUrl: \"ic-link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Link {\n private inheritedAttributes: { [k: string]: unknown } = {};\n private routerSlot: HTMLElement;\n\n @Element() el: HTMLIcLinkElement;\n\n /**\n * The appearance of the link, e.g. dark, light, or default.\n */\n @Prop({ mutable: true }) appearance?: IcThemeForeground = \"default\";\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to.\n */\n @Prop() href?: string = null;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * @deprecated This prop should not be used anymore. The 'open in new tab/window' icon will display automatically if target=\"_blank\".\n */\n @Prop() showIcon?: boolean;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, IC_INHERITED_ARIA);\n this.updateTheme();\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n /**\n * Sets focus on the link.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n }\n }\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const theme = getThemeFromContext(this.el, newTheme || null);\n\n switch (theme) {\n case IcThemeForegroundEnum.Light:\n this.appearance = IcThemeForegroundEnum.Light;\n break;\n case IcThemeForegroundEnum.Dark:\n this.appearance = IcThemeForegroundEnum.Dark;\n break;\n }\n }\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n render() {\n const {\n download,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n showIcon,\n appearance,\n } = this;\n\n return (\n <Host class={{ [\"link\"]: true, [`${appearance}`]: true }}>\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <a\n class={{\n [\"ic-link\"]: href !== null,\n [`${appearance}`]: href !== null,\n }}\n download={download !== false ? download : null}\n href={href}\n hrefLang={hreflang}\n referrerPolicy={referrerpolicy}\n rel={rel}\n target={target}\n tabindex={href !== null ? \"0\" : \"-1\"}\n {...this.inheritedAttributes}\n >\n <slot />\n {(showIcon || target === \"_blank\") && (\n <span class=\"ic-link-open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-link.js","sourceRoot":"","sources":["../../../src/components/ic-link/ic-link.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport { getThemeFromContext, inheritAttributes } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n\n@Component({\n tag: \"ic-link\",\n styleUrl: \"ic-link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Link {\n private inheritedAttributes: { [k: string]: string } = {};\n private routerSlot: HTMLElement;\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcLinkElement;\n\n /**\n * The appearance of the link, e.g. dark, light, or default.\n */\n @Prop({ mutable: true }) appearance?: IcThemeForeground = \"default\";\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to.\n */\n @Prop() href?: string = null;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * @deprecated This prop should not be used anymore. The 'open in new tab/window' icon will display automatically if target=\"_blank\".\n */\n @Prop() showIcon?: boolean;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, IC_INHERITED_ARIA);\n this.updateTheme();\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler({ detail }: CustomEvent<IcTheme>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the link.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot.querySelector(\"a\")?.focus();\n }\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const theme = getThemeFromContext(this.el, newTheme);\n\n if (theme !== IcThemeForegroundEnum.Default) {\n this.appearance = theme;\n }\n }\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n download,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n showIcon,\n appearance,\n } = this;\n\n return (\n <Host class={{ [\"link\"]: true, [`${appearance}`]: true }}>\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <a\n class={{\n [\"ic-link\"]: href !== null,\n [`${appearance}`]: href !== null,\n }}\n download={download !== false ? download : null}\n href={href}\n hrefLang={hreflang}\n referrerPolicy={referrerpolicy}\n rel={rel}\n target={target}\n tabindex={href !== null ? \"0\" : \"-1\"}\n {...this.inheritedAttributes}\n >\n <slot />\n {(showIcon || target === \"_blank\") && (\n <span class=\"ic-link-open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -199,5 +199,17 @@ describe("ic-link component", () => {
199
199
  //Can't expect anything in this test - this is to increase code coverage only
200
200
  await page.rootInstance.setFocus().toHaveBeenCalled;
201
201
  });
202
+ it("should update any attributes that are inherited from the root element", async () => {
203
+ const page = await newSpecPage({
204
+ components: [Link],
205
+ html: `<ic-link>IC Link Test</ic-link>`,
206
+ });
207
+ expect(page.root.shadowRoot.querySelector("a").getAttribute("aria-label")).toBeNull();
208
+ page.root.setAttribute("aria-label", "new-label");
209
+ page.rootInstance.hostMutationCallback([{ attributeName: "aria-label" }]);
210
+ await page.waitForChanges();
211
+ expect(page.root.shadowRoot.querySelector("a").getAttribute("aria-label")).toBe("new-label");
212
+ page.rootInstance.disconnectedCallback();
213
+ });
202
214
  });
203
215
  //# sourceMappingURL=ic-link.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-link.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-link/test/basic/ic-link.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Alert } from \"../../../ic-alert/ic-alert\";\nimport { Link } from \"../../ic-link\";\n\ndescribe(\"ic-link component\", () => {\n it(\"should render a link by default with the correct text\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-link class=\"default link\">\n <mock:shadow-root>\n <a tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'download' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link download=\"test-download\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" download=\"test-download\">\n <mock:shadow-root>\n <a download=\"test-download\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'href' attribute and ic-link styling to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link href=\"test-href\" class=\"default link\">\n <mock:shadow-root>\n <a class=\"default ic-link\" href=\"test-href\" tabindex=\"0\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'dark' appearance styling and ic-link styling\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\" appearance=\"dark\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link href=\"test-href\" appearance=\"dark\" class=\"dark link\">\n <mock:shadow-root>\n <a class=\"dark ic-link\" href=\"test-href\" tabindex=\"0\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'hreflang' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link hreflang=\"test-hreflang\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" hreflang=\"test-hreflang\">\n <mock:shadow-root>\n <a hreflang=\"test-hreflang\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'referrerpolicy' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link referrerpolicy=\"no-referrer\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" referrerpolicy=\"no-referrer\">\n <mock:shadow-root>\n <a referrerpolicy=\"no-referrer\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'rel' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link rel=\"test-rel\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`<ic-link class=\"default link\" rel=\"test-rel\">\n <mock:shadow-root>\n <a rel=\"test-rel\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'target' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link target=\"test-target\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" target=\"test-target\">\n <mock:shadow-root>\n <a target=\"test-target\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should render an 'open in new' icon when 'show-icon' is provided\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link show-icon>IC Link Test</ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`<ic-link class=\"default link\" show-icon>\n <mock:shadow-root>\n <a tabindex=\"-1\">\n <slot></slot>\n <span class=\"ic-link-open-in-new-icon\">\n svg\n </span>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should render a slotted link\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>\n <ic-link slot=\"router-item\">Slotted Link</ic-link>\n </ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`<ic-link class=\"default link\">\n <mock:shadow-root>\n <slot name=\"router-item\"></slot>\n </mock:shadow-root>\n <ic-link class=\"default link\" slot=\"router-item\">\n <mock:shadow-root>\n <a tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n Slotted Link\n </ic-link>\n </ic-link>\n `);\n });\n\n it(\"should get theme from context\", async () => {\n const page = await newSpecPage({\n components: [Alert, Link],\n html: `<ic-alert message=\"This has an action\"><ic-link slot=\"action\">Theme context link</ic-link></ic-alert>`,\n });\n\n expect(page.root).toMatchSnapshot(\"alert-theme-context\");\n });\n\n it(\"correctly sets variant on theme change\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-hero heading=\"Hero heading\" subheading=\"Hero description\">\n <ic-link slot=\"interaction\">Link</ic-link>\n </ic-hero>\n`,\n });\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toBe(\"dark\");\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toBe(\"light\");\n });\n\n it(\"should call 'setFocus' when link is focused\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\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"]}
1
+ {"version":3,"file":"ic-link.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-link/test/basic/ic-link.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Alert } from \"../../../ic-alert/ic-alert\";\nimport { Link } from \"../../ic-link\";\n\ndescribe(\"ic-link component\", () => {\n it(\"should render a link by default with the correct text\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`\n <ic-link class=\"default link\">\n <mock:shadow-root>\n <a tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'download' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link download=\"test-download\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" download=\"test-download\">\n <mock:shadow-root>\n <a download=\"test-download\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'href' attribute and ic-link styling to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link href=\"test-href\" class=\"default link\">\n <mock:shadow-root>\n <a class=\"default ic-link\" href=\"test-href\" tabindex=\"0\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'dark' appearance styling and ic-link styling\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\" appearance=\"dark\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link href=\"test-href\" appearance=\"dark\" class=\"dark link\">\n <mock:shadow-root>\n <a class=\"dark ic-link\" href=\"test-href\" tabindex=\"0\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'hreflang' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link hreflang=\"test-hreflang\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" hreflang=\"test-hreflang\">\n <mock:shadow-root>\n <a hreflang=\"test-hreflang\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'referrerpolicy' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link referrerpolicy=\"no-referrer\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" referrerpolicy=\"no-referrer\">\n <mock:shadow-root>\n <a referrerpolicy=\"no-referrer\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'rel' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link rel=\"test-rel\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`<ic-link class=\"default link\" rel=\"test-rel\">\n <mock:shadow-root>\n <a rel=\"test-rel\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should apply the 'target' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link target=\"test-target\">IC Link Test</ic-link>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-link class=\"default link\" target=\"test-target\">\n <mock:shadow-root>\n <a target=\"test-target\" tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should render an 'open in new' icon when 'show-icon' is provided\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link show-icon>IC Link Test</ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`<ic-link class=\"default link\" show-icon>\n <mock:shadow-root>\n <a tabindex=\"-1\">\n <slot></slot>\n <span class=\"ic-link-open-in-new-icon\">\n svg\n </span>\n </a>\n </mock:shadow-root>\n IC Link Test\n </ic-link>\n `);\n });\n\n it(\"should render a slotted link\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>\n <ic-link slot=\"router-item\">Slotted Link</ic-link>\n </ic-link>`,\n });\n\n expect(page.root).toEqualHtml(`<ic-link class=\"default link\">\n <mock:shadow-root>\n <slot name=\"router-item\"></slot>\n </mock:shadow-root>\n <ic-link class=\"default link\" slot=\"router-item\">\n <mock:shadow-root>\n <a tabindex=\"-1\">\n <slot></slot>\n </a>\n </mock:shadow-root>\n Slotted Link\n </ic-link>\n </ic-link>\n `);\n });\n\n it(\"should get theme from context\", async () => {\n const page = await newSpecPage({\n components: [Alert, Link],\n html: `<ic-alert message=\"This has an action\"><ic-link slot=\"action\">Theme context link</ic-link></ic-alert>`,\n });\n\n expect(page.root).toMatchSnapshot(\"alert-theme-context\");\n });\n\n it(\"correctly sets variant on theme change\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-hero heading=\"Hero heading\" subheading=\"Hero description\">\n <ic-link slot=\"interaction\">Link</ic-link>\n </ic-hero>\n`,\n });\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toBe(\"dark\");\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toBe(\"light\");\n });\n\n it(\"should call 'setFocus' when link is focused\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\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 update any attributes that are inherited from the root element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n expect(\n page.root.shadowRoot.querySelector(\"a\").getAttribute(\"aria-label\")\n ).toBeNull();\n\n page.root.setAttribute(\"aria-label\", \"new-label\");\n page.rootInstance.hostMutationCallback([{ attributeName: \"aria-label\" }]);\n await page.waitForChanges();\n\n expect(\n page.root.shadowRoot.querySelector(\"a\").getAttribute(\"aria-label\")\n ).toBe(\"new-label\");\n page.rootInstance.disconnectedCallback();\n });\n});\n"]}