@ukic/web-components 2.5.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (715) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/{helpers-d166f875.js → helpers-0d63359f.js} +40 -102
  3. package/dist/cjs/helpers-0d63359f.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +6 -4
  7. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +10 -6
  12. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +6 -4
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -5
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +70 -71
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js +13 -6
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox.cjs.entry.js +20 -23
  24. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-chip.cjs.entry.js +11 -6
  26. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-data-entity.cjs.entry.js +6 -5
  29. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-row.cjs.entry.js +5 -4
  31. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-dialog.cjs.entry.js +49 -12
  33. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-empty-state.cjs.entry.js +5 -4
  36. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-hero.cjs.entry.js +9 -6
  41. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -4
  43. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +42 -23
  45. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
  47. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-link.cjs.entry.js +3 -6
  49. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-menu-group.cjs.entry.js +4 -2
  51. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-item.cjs.entry.js +11 -15
  53. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  55. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  59. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-page-header.cjs.entry.js +8 -4
  62. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-pagination.cjs.entry.js +6 -6
  65. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js +21 -21
  67. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-radio-group.cjs.entry.js +9 -8
  69. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-radio-option.cjs.entry.js +21 -15
  71. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-search-bar.cjs.entry.js +27 -22
  73. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-select.cjs.entry.js +40 -30
  76. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-side-navigation.cjs.entry.js +23 -21
  78. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -3
  80. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-status-tag.cjs.entry.js +14 -6
  82. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-step.cjs.entry.js +7 -5
  84. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  86. package/dist/cjs/ic-switch.cjs.entry.js +13 -6
  87. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-context.cjs.entry.js +4 -4
  89. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -4
  91. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -4
  93. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tab.cjs.entry.js +8 -8
  95. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-text-field.cjs.entry.js +5 -6
  97. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-toast-region.cjs.entry.js +21 -9
  100. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-toast.cjs.entry.js +7 -6
  102. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  104. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-typography.cjs.entry.js +12 -4
  106. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  107. package/dist/cjs/{index-afe53465.js → index-4f8c900f.js} +14 -1
  108. package/dist/cjs/index-4f8c900f.js.map +1 -0
  109. package/dist/cjs/loader.cjs.js +2 -2
  110. package/dist/cjs/types-7d67439f.js.map +1 -1
  111. package/dist/collection/collection-manifest.json +3 -3
  112. package/dist/collection/components/ic-accordion/ic-accordion.js +4 -2
  113. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  114. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +0 -1
  115. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  116. package/dist/collection/components/ic-badge/ic-badge.js +41 -15
  117. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  118. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +92 -0
  119. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  120. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -4
  121. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  122. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +4 -2
  123. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  124. package/dist/collection/components/ic-button/ic-button.css +36 -19
  125. package/dist/collection/components/ic-button/ic-button.js +98 -62
  126. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  127. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +30 -2
  128. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  129. package/dist/collection/components/ic-card/ic-card.css +1 -0
  130. package/dist/collection/components/ic-card/ic-card.js +2 -1
  131. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  132. package/dist/collection/components/ic-checkbox/ic-checkbox.js +124 -22
  133. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  134. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +17 -4
  135. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  136. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +7 -0
  137. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  138. package/dist/collection/components/ic-chip/ic-chip.css +10 -5
  139. package/dist/collection/components/ic-chip/ic-chip.js +38 -7
  140. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  141. package/dist/collection/components/ic-data-entity/ic-data-entity.js +38 -7
  142. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  143. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +3 -3
  144. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
  145. package/dist/collection/components/ic-data-row/ic-data-row.js +33 -5
  146. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  147. package/dist/collection/components/ic-dialog/ic-dialog.css +2 -1
  148. package/dist/collection/components/ic-dialog/ic-dialog.js +111 -20
  149. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  150. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +4 -4
  151. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  152. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +74 -0
  153. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  154. package/dist/collection/components/ic-empty-state/ic-empty-state.js +8 -4
  155. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  156. package/dist/collection/components/ic-hero/ic-hero.js +38 -8
  157. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  158. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +24 -2
  159. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  160. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +61 -11
  161. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  162. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +2 -2
  163. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  164. package/dist/collection/components/ic-input-label/ic-input-label.js +26 -4
  165. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  166. package/dist/collection/components/ic-link/ic-link.js +1 -4
  167. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  168. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +6 -5
  169. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  170. package/dist/collection/components/ic-menu/ic-menu.js +62 -18
  171. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  172. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +19 -2
  173. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  174. package/dist/collection/components/ic-menu-group/ic-menu-group.js +2 -1
  175. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  176. package/dist/collection/components/ic-menu-item/ic-menu-item.js +10 -14
  177. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  178. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +3 -2
  179. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  180. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  181. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
  182. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -2
  183. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  184. package/dist/collection/components/ic-page-header/ic-page-header.js +35 -4
  185. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  186. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  187. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  188. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +20 -20
  189. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  190. package/dist/collection/components/ic-radio-group/ic-radio-group.js +37 -9
  191. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  192. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +7 -0
  193. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  194. package/dist/collection/components/ic-radio-option/ic-radio-option.js +125 -14
  195. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  196. package/dist/collection/components/ic-search-bar/ic-search-bar.js +54 -22
  197. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  198. package/dist/collection/components/ic-select/ic-select.css +1 -0
  199. package/dist/collection/components/ic-select/ic-select.js +169 -30
  200. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  201. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +24 -0
  202. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  203. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +17 -2
  204. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  205. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +226 -224
  206. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +39 -19
  207. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  208. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -1
  209. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  210. package/dist/collection/components/ic-skeleton/ic-skeleton.js +26 -4
  211. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  212. package/dist/collection/components/ic-status-tag/ic-status-tag.js +71 -10
  213. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  214. package/dist/collection/components/ic-step/ic-step.js +5 -4
  215. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  216. package/dist/collection/components/ic-switch/ic-switch.js +43 -6
  217. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  218. package/dist/collection/components/ic-tab/ic-tab.js +6 -6
  219. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  220. package/dist/collection/components/ic-tab-context/ic-tab-context.js +3 -3
  221. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  222. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +35 -0
  223. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  224. package/dist/collection/components/ic-tab-group/ic-tab-group.js +1 -2
  225. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  226. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +4 -3
  227. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  228. package/dist/collection/components/ic-text-field/ic-text-field.js +34 -8
  229. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  230. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +1 -1
  231. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  232. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +17 -17
  233. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  234. package/dist/collection/components/ic-toast/ic-toast.js +10 -6
  235. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  236. package/dist/collection/components/ic-toast-region/ic-toast-region.js +53 -17
  237. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  238. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +23 -1
  239. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
  240. package/dist/collection/components/ic-tooltip/ic-tooltip.css +7 -1
  241. package/dist/collection/components/ic-tooltip/ic-tooltip.js +25 -29
  242. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  243. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +0 -8
  244. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  245. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +10 -1
  246. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  247. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  248. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  249. package/dist/collection/components/ic-typography/ic-typography.js +10 -2
  250. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  251. package/dist/collection/utils/constants.js +2 -0
  252. package/dist/collection/utils/constants.js.map +1 -1
  253. package/dist/collection/utils/helpers.js +36 -101
  254. package/dist/collection/utils/helpers.js.map +1 -1
  255. package/dist/collection/utils/types.js.map +1 -1
  256. package/dist/components/helpers.js +39 -102
  257. package/dist/components/helpers.js.map +1 -1
  258. package/dist/components/ic-accordion-group.js.map +1 -1
  259. package/dist/components/ic-accordion.js +4 -2
  260. package/dist/components/ic-accordion.js.map +1 -1
  261. package/dist/components/ic-back-to-top.js +1 -1
  262. package/dist/components/ic-badge.js +10 -6
  263. package/dist/components/ic-badge.js.map +1 -1
  264. package/dist/components/ic-breadcrumb-group.js +5 -3
  265. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  266. package/dist/components/ic-breadcrumb2.js +4 -4
  267. package/dist/components/ic-breadcrumb2.js.map +1 -1
  268. package/dist/components/ic-button2.js +62 -42
  269. package/dist/components/ic-button2.js.map +1 -1
  270. package/dist/components/ic-card.js +2 -2
  271. package/dist/components/ic-card.js.map +1 -1
  272. package/dist/components/ic-checkbox-group.js +13 -6
  273. package/dist/components/ic-checkbox-group.js.map +1 -1
  274. package/dist/components/ic-checkbox.js +25 -22
  275. package/dist/components/ic-checkbox.js.map +1 -1
  276. package/dist/components/ic-chip.js +10 -4
  277. package/dist/components/ic-chip.js.map +1 -1
  278. package/dist/components/ic-data-entity.js +6 -4
  279. package/dist/components/ic-data-entity.js.map +1 -1
  280. package/dist/components/ic-data-row.js +5 -3
  281. package/dist/components/ic-data-row.js.map +1 -1
  282. package/dist/components/ic-dialog.js +51 -11
  283. package/dist/components/ic-dialog.js.map +1 -1
  284. package/dist/components/ic-divider2.js +1 -1
  285. package/dist/components/ic-empty-state.js +4 -3
  286. package/dist/components/ic-empty-state.js.map +1 -1
  287. package/dist/components/ic-footer-link-group.js +1 -1
  288. package/dist/components/ic-footer-link.js +1 -1
  289. package/dist/components/ic-footer.js +1 -1
  290. package/dist/components/ic-hero.js +9 -5
  291. package/dist/components/ic-hero.js.map +1 -1
  292. package/dist/components/ic-horizontal-scroll2.js +5 -3
  293. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  294. package/dist/components/ic-input-component-container2.js +11 -7
  295. package/dist/components/ic-input-component-container2.js.map +1 -1
  296. package/dist/components/ic-input-label2.js +5 -3
  297. package/dist/components/ic-input-label2.js.map +1 -1
  298. package/dist/components/ic-input-validation2.js +1 -1
  299. package/dist/components/ic-link2.js +1 -4
  300. package/dist/components/ic-link2.js.map +1 -1
  301. package/dist/components/ic-loading-indicator2.js +6 -5
  302. package/dist/components/ic-loading-indicator2.js.map +1 -1
  303. package/dist/components/ic-menu-group.js +2 -1
  304. package/dist/components/ic-menu-group.js.map +1 -1
  305. package/dist/components/ic-menu-item2.js +10 -14
  306. package/dist/components/ic-menu-item2.js.map +1 -1
  307. package/dist/components/ic-menu2.js +34 -16
  308. package/dist/components/ic-menu2.js.map +1 -1
  309. package/dist/components/ic-navigation-button.js +2 -2
  310. package/dist/components/ic-navigation-button.js.map +1 -1
  311. package/dist/components/ic-navigation-group.js +1 -1
  312. package/dist/components/ic-navigation-group.js.map +1 -1
  313. package/dist/components/ic-navigation-item.js +3 -3
  314. package/dist/components/ic-navigation-item.js.map +1 -1
  315. package/dist/components/ic-navigation-menu2.js +1 -1
  316. package/dist/components/ic-page-header.js +8 -3
  317. package/dist/components/ic-page-header.js.map +1 -1
  318. package/dist/components/ic-pagination.js +4 -4
  319. package/dist/components/ic-pagination.js.map +1 -1
  320. package/dist/components/ic-popover-menu.js +20 -20
  321. package/dist/components/ic-popover-menu.js.map +1 -1
  322. package/dist/components/ic-radio-group.js +9 -7
  323. package/dist/components/ic-radio-group.js.map +1 -1
  324. package/dist/components/ic-radio-option.js +26 -14
  325. package/dist/components/ic-radio-option.js.map +1 -1
  326. package/dist/components/ic-search-bar.js +27 -21
  327. package/dist/components/ic-search-bar.js.map +1 -1
  328. package/dist/components/ic-select.js +46 -29
  329. package/dist/components/ic-select.js.map +1 -1
  330. package/dist/components/ic-side-navigation.js +23 -20
  331. package/dist/components/ic-side-navigation.js.map +1 -1
  332. package/dist/components/ic-skeleton.js +4 -2
  333. package/dist/components/ic-skeleton.js.map +1 -1
  334. package/dist/components/ic-status-tag.js +15 -5
  335. package/dist/components/ic-status-tag.js.map +1 -1
  336. package/dist/components/ic-step.js +5 -4
  337. package/dist/components/ic-step.js.map +1 -1
  338. package/dist/components/ic-stepper.js +1 -1
  339. package/dist/components/ic-switch.js +15 -5
  340. package/dist/components/ic-switch.js.map +1 -1
  341. package/dist/components/ic-tab-context.js +3 -3
  342. package/dist/components/ic-tab-context.js.map +1 -1
  343. package/dist/components/ic-tab-group.js +1 -2
  344. package/dist/components/ic-tab-group.js.map +1 -1
  345. package/dist/components/ic-tab-panel.js +4 -3
  346. package/dist/components/ic-tab-panel.js.map +1 -1
  347. package/dist/components/ic-tab.js +6 -6
  348. package/dist/components/ic-tab.js.map +1 -1
  349. package/dist/components/ic-text-field2.js +6 -6
  350. package/dist/components/ic-text-field2.js.map +1 -1
  351. package/dist/components/ic-theme.js +1 -1
  352. package/dist/components/ic-toast-region.js +24 -9
  353. package/dist/components/ic-toast-region.js.map +1 -1
  354. package/dist/components/ic-toast.js +6 -5
  355. package/dist/components/ic-toast.js.map +1 -1
  356. package/dist/components/ic-tooltip2.js +9 -28
  357. package/dist/components/ic-tooltip2.js.map +1 -1
  358. package/dist/components/ic-top-navigation.js +4 -4
  359. package/dist/components/ic-top-navigation.js.map +1 -1
  360. package/dist/components/ic-typography2.js +10 -2
  361. package/dist/components/ic-typography2.js.map +1 -1
  362. package/dist/components/types.js.map +1 -1
  363. package/dist/core/core.esm.js +1 -1
  364. package/dist/core/core.esm.js.map +1 -1
  365. package/dist/core/{p-1db57a3f.entry.js → p-025f9d2a.entry.js} +2 -2
  366. package/dist/core/p-025f9d2a.entry.js.map +1 -0
  367. package/dist/core/p-03329fd0.entry.js +2 -0
  368. package/dist/core/p-03329fd0.entry.js.map +1 -0
  369. package/dist/core/p-08b59078.entry.js +2 -0
  370. package/dist/core/p-08b59078.entry.js.map +1 -0
  371. package/dist/core/p-0c82048e.entry.js +2 -0
  372. package/dist/core/p-0c82048e.entry.js.map +1 -0
  373. package/dist/core/{p-64999983.entry.js → p-0dc4f225.entry.js} +2 -2
  374. package/dist/core/p-0dc4f225.entry.js.map +1 -0
  375. package/dist/core/p-12124e24.entry.js +2 -0
  376. package/dist/core/p-12124e24.entry.js.map +1 -0
  377. package/dist/core/{p-1ed0a71d.entry.js → p-1cf2a6aa.entry.js} +2 -2
  378. package/dist/core/p-1cf2a6aa.entry.js.map +1 -0
  379. package/dist/core/{p-ca6e5474.entry.js → p-2265e418.entry.js} +2 -2
  380. package/dist/core/p-2265e418.entry.js.map +1 -0
  381. package/dist/core/{p-9ee852d9.entry.js → p-2c30b583.entry.js} +2 -2
  382. package/dist/core/p-345fe84a.entry.js +2 -0
  383. package/dist/core/p-345fe84a.entry.js.map +1 -0
  384. package/dist/core/p-39c8111d.entry.js +2 -0
  385. package/dist/core/p-39c8111d.entry.js.map +1 -0
  386. package/dist/core/p-3a15202f.entry.js +2 -0
  387. package/dist/core/p-3a15202f.entry.js.map +1 -0
  388. package/dist/core/{p-2d21de19.entry.js → p-3a814fc4.entry.js} +2 -2
  389. package/dist/core/p-3a814fc4.entry.js.map +1 -0
  390. package/dist/core/p-3fd897c9.entry.js +2 -0
  391. package/dist/core/p-3fd897c9.entry.js.map +1 -0
  392. package/dist/core/p-41c6eaa1.entry.js +2 -0
  393. package/dist/core/p-41c6eaa1.entry.js.map +1 -0
  394. package/dist/core/p-432f8ff0.entry.js +2 -0
  395. package/dist/core/p-432f8ff0.entry.js.map +1 -0
  396. package/dist/core/p-4559600a.entry.js +2 -0
  397. package/dist/core/p-4559600a.entry.js.map +1 -0
  398. package/dist/core/{p-913da6d0.entry.js → p-475b7bd2.entry.js} +2 -2
  399. package/dist/core/{p-913da6d0.entry.js.map → p-475b7bd2.entry.js.map} +1 -1
  400. package/dist/core/{p-0fdb1e52.entry.js → p-48525498.entry.js} +2 -2
  401. package/dist/core/p-536b3c97.entry.js +2 -0
  402. package/dist/core/p-536b3c97.entry.js.map +1 -0
  403. package/dist/core/p-59bdafff.entry.js +2 -0
  404. package/dist/core/p-59bdafff.entry.js.map +1 -0
  405. package/dist/core/p-5b487daa.entry.js +2 -0
  406. package/dist/core/p-5b487daa.entry.js.map +1 -0
  407. package/dist/core/{p-4f070381.entry.js → p-5bb6c79b.entry.js} +2 -2
  408. package/dist/core/p-5bb6c79b.entry.js.map +1 -0
  409. package/dist/core/p-5ca39ed5.entry.js +2 -0
  410. package/dist/core/p-5ca39ed5.entry.js.map +1 -0
  411. package/dist/core/p-5fcd202e.entry.js +2 -0
  412. package/dist/core/p-5fcd202e.entry.js.map +1 -0
  413. package/dist/core/p-613aa265.js.map +1 -1
  414. package/dist/core/{p-038601a3.entry.js → p-69948c3e.entry.js} +2 -2
  415. package/dist/core/{p-038601a3.entry.js.map → p-69948c3e.entry.js.map} +1 -1
  416. package/dist/core/{p-d9fc7243.entry.js → p-752f0f9a.entry.js} +2 -2
  417. package/dist/core/p-752f0f9a.entry.js.map +1 -0
  418. package/dist/core/p-763d0822.entry.js +2 -0
  419. package/dist/core/p-763d0822.entry.js.map +1 -0
  420. package/dist/core/{p-9bd160bb.entry.js → p-76563540.entry.js} +2 -2
  421. package/dist/core/p-76563540.entry.js.map +1 -0
  422. package/dist/core/{p-cf95dd66.entry.js → p-7bb3c340.entry.js} +2 -2
  423. package/dist/core/p-88ea1e49.entry.js +2 -0
  424. package/dist/core/p-8b18346a.entry.js +2 -0
  425. package/dist/core/p-8b18346a.entry.js.map +1 -0
  426. package/dist/core/p-8fb4f0c0.js +2 -0
  427. package/dist/core/p-8fb4f0c0.js.map +1 -0
  428. package/dist/core/{p-05249867.entry.js → p-932fb4b7.entry.js} +2 -2
  429. package/dist/core/p-9ccfb863.entry.js +2 -0
  430. package/dist/core/p-9ccfb863.entry.js.map +1 -0
  431. package/dist/core/{p-85903a81.js → p-9d124fc7.js} +3 -3
  432. package/dist/core/p-9d124fc7.js.map +1 -0
  433. package/dist/core/{p-e904d985.entry.js → p-a4397df4.entry.js} +2 -2
  434. package/dist/core/{p-4fbe1dc3.entry.js → p-a448d873.entry.js} +2 -2
  435. package/dist/core/p-a448d873.entry.js.map +1 -0
  436. package/dist/core/{p-a388750d.entry.js → p-af9f1caa.entry.js} +2 -2
  437. package/dist/core/p-af9f1caa.entry.js.map +1 -0
  438. package/dist/core/{p-4ef8342f.entry.js → p-b0ce60a0.entry.js} +2 -2
  439. package/dist/core/{p-0e1a4f8d.entry.js → p-b77ab20a.entry.js} +2 -2
  440. package/dist/core/p-b77ab20a.entry.js.map +1 -0
  441. package/dist/core/p-ba495175.entry.js +2 -0
  442. package/dist/core/p-ba495175.entry.js.map +1 -0
  443. package/dist/core/p-c0c62df4.entry.js +2 -0
  444. package/dist/core/p-c0c62df4.entry.js.map +1 -0
  445. package/dist/core/{p-60fef702.entry.js → p-c36cbd8a.entry.js} +2 -2
  446. package/dist/core/p-c36cbd8a.entry.js.map +1 -0
  447. package/dist/core/p-c9ef9f5c.entry.js +2 -0
  448. package/dist/core/p-c9ef9f5c.entry.js.map +1 -0
  449. package/dist/core/{p-e59d2d50.entry.js → p-ccac1730.entry.js} +2 -2
  450. package/dist/core/p-cf4bacee.entry.js +2 -0
  451. package/dist/core/p-cf4bacee.entry.js.map +1 -0
  452. package/dist/core/p-e2903ce9.entry.js +2 -0
  453. package/dist/core/p-e2903ce9.entry.js.map +1 -0
  454. package/dist/core/{p-b42b8ffa.entry.js → p-e2fd542e.entry.js} +2 -2
  455. package/dist/core/p-e2fd542e.entry.js.map +1 -0
  456. package/dist/core/{p-ac82781b.entry.js → p-e3bffcae.entry.js} +2 -2
  457. package/dist/core/p-ea6ad791.entry.js +2 -0
  458. package/dist/core/p-ea6ad791.entry.js.map +1 -0
  459. package/dist/core/{p-1650c1c2.entry.js → p-eb063498.entry.js} +2 -2
  460. package/dist/core/p-eb063498.entry.js.map +1 -0
  461. package/dist/core/p-ec82fa24.entry.js +2 -0
  462. package/dist/core/p-ec82fa24.entry.js.map +1 -0
  463. package/dist/core/{p-c1e8d13e.entry.js → p-ed256f1d.entry.js} +2 -2
  464. package/dist/core/{p-2184a72f.entry.js → p-f00e510b.entry.js} +2 -2
  465. package/dist/core/p-f00e510b.entry.js.map +1 -0
  466. package/dist/core/{p-482397ae.entry.js → p-f019219c.entry.js} +2 -2
  467. package/dist/core/p-f69fb26b.entry.js +2 -0
  468. package/dist/core/p-f69fb26b.entry.js.map +1 -0
  469. package/dist/core/{p-675fe4db.entry.js → p-fbc8a739.entry.js} +2 -2
  470. package/dist/core/p-fbc8a739.entry.js.map +1 -0
  471. package/dist/core/p-fe6e0c0e.entry.js +2 -0
  472. package/dist/core/p-fe6e0c0e.entry.js.map +1 -0
  473. package/dist/esm/core.js +3 -3
  474. package/dist/esm/{helpers-81a88a11.js → helpers-24f6e762.js} +40 -103
  475. package/dist/esm/helpers-24f6e762.js.map +1 -0
  476. package/dist/esm/ic-accordion-group.entry.js +1 -1
  477. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  478. package/dist/esm/ic-accordion.entry.js +6 -4
  479. package/dist/esm/ic-accordion.entry.js.map +1 -1
  480. package/dist/esm/ic-alert.entry.js +2 -2
  481. package/dist/esm/ic-back-to-top.entry.js +2 -2
  482. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  483. package/dist/esm/ic-badge.entry.js +10 -6
  484. package/dist/esm/ic-badge.entry.js.map +1 -1
  485. package/dist/esm/ic-breadcrumb-group.entry.js +6 -4
  486. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  487. package/dist/esm/ic-breadcrumb.entry.js +5 -5
  488. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  489. package/dist/esm/ic-button_3.entry.js +70 -71
  490. package/dist/esm/ic-button_3.entry.js.map +1 -1
  491. package/dist/esm/ic-card.entry.js +4 -4
  492. package/dist/esm/ic-card.entry.js.map +1 -1
  493. package/dist/esm/ic-checkbox-group.entry.js +13 -6
  494. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  495. package/dist/esm/ic-checkbox.entry.js +20 -23
  496. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  497. package/dist/esm/ic-chip.entry.js +11 -6
  498. package/dist/esm/ic-chip.entry.js.map +1 -1
  499. package/dist/esm/ic-classification-banner.entry.js +1 -1
  500. package/dist/esm/ic-data-entity.entry.js +6 -5
  501. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  502. package/dist/esm/ic-data-row.entry.js +5 -4
  503. package/dist/esm/ic-data-row.entry.js.map +1 -1
  504. package/dist/esm/ic-dialog.entry.js +49 -12
  505. package/dist/esm/ic-dialog.entry.js.map +1 -1
  506. package/dist/esm/ic-divider.entry.js +2 -2
  507. package/dist/esm/ic-empty-state.entry.js +5 -4
  508. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  509. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  510. package/dist/esm/ic-footer-link.entry.js +2 -2
  511. package/dist/esm/ic-footer.entry.js +2 -2
  512. package/dist/esm/ic-hero.entry.js +9 -6
  513. package/dist/esm/ic-hero.entry.js.map +1 -1
  514. package/dist/esm/ic-horizontal-scroll.entry.js +5 -4
  515. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  516. package/dist/esm/ic-input-component-container_3.entry.js +42 -23
  517. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  518. package/dist/esm/ic-input-label_2.entry.js +5 -4
  519. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  520. package/dist/esm/ic-link.entry.js +3 -6
  521. package/dist/esm/ic-link.entry.js.map +1 -1
  522. package/dist/esm/ic-menu-group.entry.js +4 -2
  523. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  524. package/dist/esm/ic-menu-item.entry.js +11 -15
  525. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  526. package/dist/esm/ic-navigation-button.entry.js +3 -3
  527. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  528. package/dist/esm/ic-navigation-group.entry.js +2 -2
  529. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  530. package/dist/esm/ic-navigation-item.entry.js +4 -4
  531. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  532. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  533. package/dist/esm/ic-page-header.entry.js +8 -4
  534. package/dist/esm/ic-page-header.entry.js.map +1 -1
  535. package/dist/esm/ic-pagination-item.entry.js +2 -2
  536. package/dist/esm/ic-pagination.entry.js +6 -6
  537. package/dist/esm/ic-pagination.entry.js.map +1 -1
  538. package/dist/esm/ic-popover-menu.entry.js +21 -21
  539. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  540. package/dist/esm/ic-radio-group.entry.js +9 -8
  541. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  542. package/dist/esm/ic-radio-option.entry.js +21 -15
  543. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  544. package/dist/esm/ic-search-bar.entry.js +27 -22
  545. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  546. package/dist/esm/ic-section-container.entry.js +1 -1
  547. package/dist/esm/ic-select.entry.js +40 -30
  548. package/dist/esm/ic-select.entry.js.map +1 -1
  549. package/dist/esm/ic-side-navigation.entry.js +23 -21
  550. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  551. package/dist/esm/ic-skeleton.entry.js +4 -3
  552. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  553. package/dist/esm/ic-status-tag.entry.js +14 -6
  554. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  555. package/dist/esm/ic-step.entry.js +7 -5
  556. package/dist/esm/ic-step.entry.js.map +1 -1
  557. package/dist/esm/ic-stepper.entry.js +2 -2
  558. package/dist/esm/ic-switch.entry.js +13 -6
  559. package/dist/esm/ic-switch.entry.js.map +1 -1
  560. package/dist/esm/ic-tab-context.entry.js +4 -4
  561. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  562. package/dist/esm/ic-tab-group.entry.js +3 -4
  563. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  564. package/dist/esm/ic-tab-panel.entry.js +5 -4
  565. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  566. package/dist/esm/ic-tab.entry.js +8 -8
  567. package/dist/esm/ic-tab.entry.js.map +1 -1
  568. package/dist/esm/ic-text-field.entry.js +5 -6
  569. package/dist/esm/ic-text-field.entry.js.map +1 -1
  570. package/dist/esm/ic-theme.entry.js +2 -2
  571. package/dist/esm/ic-toast-region.entry.js +21 -9
  572. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  573. package/dist/esm/ic-toast.entry.js +7 -6
  574. package/dist/esm/ic-toast.entry.js.map +1 -1
  575. package/dist/esm/ic-top-navigation.entry.js +5 -5
  576. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  577. package/dist/esm/ic-typography.entry.js +12 -4
  578. package/dist/esm/ic-typography.entry.js.map +1 -1
  579. package/dist/esm/{index-b006ae9d.js → index-813020f1.js} +14 -2
  580. package/dist/esm/index-813020f1.js.map +1 -0
  581. package/dist/esm/loader.js +3 -3
  582. package/dist/esm/types-b2398b37.js.map +1 -1
  583. package/dist/types/components/ic-accordion/ic-accordion.d.ts +1 -0
  584. package/dist/types/components/ic-badge/ic-badge.d.ts +10 -3
  585. package/dist/types/components/ic-button/ic-button.d.ts +12 -5
  586. package/dist/types/components/ic-card/ic-card.d.ts +1 -0
  587. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +28 -2
  588. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +2 -1
  589. package/dist/types/components/ic-chip/ic-chip.d.ts +6 -2
  590. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +10 -2
  591. package/dist/types/components/ic-data-row/ic-data-row.d.ts +7 -2
  592. package/dist/types/components/ic-dialog/ic-dialog.d.ts +15 -5
  593. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +4 -1
  594. package/dist/types/components/ic-hero/ic-hero.d.ts +7 -3
  595. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +4 -0
  596. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +13 -5
  597. package/dist/types/components/ic-input-label/ic-input-label.d.ts +5 -1
  598. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +1 -1
  599. package/dist/types/components/ic-menu/ic-menu.d.ts +8 -3
  600. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -0
  601. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -0
  602. package/dist/types/components/ic-page-header/ic-page-header.d.ts +6 -2
  603. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
  604. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -4
  605. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +28 -1
  606. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +6 -2
  607. package/dist/types/components/ic-select/ic-select.d.ts +34 -4
  608. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  609. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +5 -1
  610. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +12 -2
  611. package/dist/types/components/ic-switch/ic-switch.d.ts +7 -1
  612. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -1
  613. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -1
  614. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -1
  615. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +1 -1
  616. package/dist/types/components/ic-text-field/ic-text-field.d.ts +7 -3
  617. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -1
  618. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +7 -2
  619. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -3
  620. package/dist/types/components.d.ts +388 -60
  621. package/dist/types/utils/helpers.d.ts +2 -1
  622. package/dist/types/utils/types.d.ts +2 -0
  623. package/hydrate/index.js +581 -450
  624. package/package.json +5 -5
  625. package/dist/cjs/helpers-d166f875.js.map +0 -1
  626. package/dist/cjs/index-afe53465.js.map +0 -1
  627. package/dist/core/p-0353a1d8.entry.js +0 -2
  628. package/dist/core/p-0353a1d8.entry.js.map +0 -1
  629. package/dist/core/p-08c6119a.entry.js +0 -2
  630. package/dist/core/p-08c6119a.entry.js.map +0 -1
  631. package/dist/core/p-09004694.entry.js +0 -2
  632. package/dist/core/p-09004694.entry.js.map +0 -1
  633. package/dist/core/p-0d71a937.entry.js +0 -2
  634. package/dist/core/p-0d71a937.entry.js.map +0 -1
  635. package/dist/core/p-0e1a4f8d.entry.js.map +0 -1
  636. package/dist/core/p-10bfc292.entry.js +0 -2
  637. package/dist/core/p-10bfc292.entry.js.map +0 -1
  638. package/dist/core/p-1650c1c2.entry.js.map +0 -1
  639. package/dist/core/p-1db57a3f.entry.js.map +0 -1
  640. package/dist/core/p-1ed0a71d.entry.js.map +0 -1
  641. package/dist/core/p-2184a72f.entry.js.map +0 -1
  642. package/dist/core/p-293f4c5f.entry.js +0 -2
  643. package/dist/core/p-293f4c5f.entry.js.map +0 -1
  644. package/dist/core/p-2afa6d29.entry.js +0 -2
  645. package/dist/core/p-2afa6d29.entry.js.map +0 -1
  646. package/dist/core/p-2c09f9e0.entry.js +0 -2
  647. package/dist/core/p-2c09f9e0.entry.js.map +0 -1
  648. package/dist/core/p-2d21de19.entry.js.map +0 -1
  649. package/dist/core/p-32510505.entry.js +0 -2
  650. package/dist/core/p-32510505.entry.js.map +0 -1
  651. package/dist/core/p-4f070381.entry.js.map +0 -1
  652. package/dist/core/p-4fbe1dc3.entry.js.map +0 -1
  653. package/dist/core/p-5401863e.entry.js +0 -2
  654. package/dist/core/p-5401863e.entry.js.map +0 -1
  655. package/dist/core/p-59b24198.entry.js +0 -2
  656. package/dist/core/p-59b24198.entry.js.map +0 -1
  657. package/dist/core/p-5cc070c4.entry.js +0 -2
  658. package/dist/core/p-5cc070c4.entry.js.map +0 -1
  659. package/dist/core/p-5f881644.entry.js +0 -2
  660. package/dist/core/p-5f881644.entry.js.map +0 -1
  661. package/dist/core/p-60fef702.entry.js.map +0 -1
  662. package/dist/core/p-64999983.entry.js.map +0 -1
  663. package/dist/core/p-675fe4db.entry.js.map +0 -1
  664. package/dist/core/p-6aec6bce.entry.js +0 -2
  665. package/dist/core/p-6aec6bce.entry.js.map +0 -1
  666. package/dist/core/p-6ec3cd12.entry.js +0 -2
  667. package/dist/core/p-6ec3cd12.entry.js.map +0 -1
  668. package/dist/core/p-76daa5b0.entry.js +0 -2
  669. package/dist/core/p-777e5556.entry.js +0 -2
  670. package/dist/core/p-777e5556.entry.js.map +0 -1
  671. package/dist/core/p-7a61d94a.entry.js +0 -2
  672. package/dist/core/p-7a61d94a.entry.js.map +0 -1
  673. package/dist/core/p-85903a81.js.map +0 -1
  674. package/dist/core/p-932fe2a0.entry.js +0 -2
  675. package/dist/core/p-932fe2a0.entry.js.map +0 -1
  676. package/dist/core/p-9bd160bb.entry.js.map +0 -1
  677. package/dist/core/p-a388750d.entry.js.map +0 -1
  678. package/dist/core/p-a46c1690.entry.js +0 -2
  679. package/dist/core/p-a46c1690.entry.js.map +0 -1
  680. package/dist/core/p-abf60097.entry.js +0 -2
  681. package/dist/core/p-abf60097.entry.js.map +0 -1
  682. package/dist/core/p-ad520f36.entry.js +0 -2
  683. package/dist/core/p-ad520f36.entry.js.map +0 -1
  684. package/dist/core/p-b42b8ffa.entry.js.map +0 -1
  685. package/dist/core/p-b96bd8be.entry.js +0 -2
  686. package/dist/core/p-b96bd8be.entry.js.map +0 -1
  687. package/dist/core/p-c30d9b20.js +0 -2
  688. package/dist/core/p-c30d9b20.js.map +0 -1
  689. package/dist/core/p-ca6e5474.entry.js.map +0 -1
  690. package/dist/core/p-ceed0fee.entry.js +0 -2
  691. package/dist/core/p-ceed0fee.entry.js.map +0 -1
  692. package/dist/core/p-d005a71a.entry.js +0 -2
  693. package/dist/core/p-d005a71a.entry.js.map +0 -1
  694. package/dist/core/p-d5282ede.entry.js +0 -2
  695. package/dist/core/p-d5282ede.entry.js.map +0 -1
  696. package/dist/core/p-d9fc7243.entry.js.map +0 -1
  697. package/dist/core/p-db4a15bd.entry.js +0 -2
  698. package/dist/core/p-db4a15bd.entry.js.map +0 -1
  699. package/dist/core/p-e75b04af.entry.js +0 -2
  700. package/dist/core/p-e75b04af.entry.js.map +0 -1
  701. package/dist/core/p-ea55f25c.entry.js +0 -2
  702. package/dist/core/p-ea55f25c.entry.js.map +0 -1
  703. package/dist/esm/helpers-81a88a11.js.map +0 -1
  704. package/dist/esm/index-b006ae9d.js.map +0 -1
  705. /package/dist/core/{p-9ee852d9.entry.js.map → p-2c30b583.entry.js.map} +0 -0
  706. /package/dist/core/{p-0fdb1e52.entry.js.map → p-48525498.entry.js.map} +0 -0
  707. /package/dist/core/{p-cf95dd66.entry.js.map → p-7bb3c340.entry.js.map} +0 -0
  708. /package/dist/core/{p-76daa5b0.entry.js.map → p-88ea1e49.entry.js.map} +0 -0
  709. /package/dist/core/{p-05249867.entry.js.map → p-932fb4b7.entry.js.map} +0 -0
  710. /package/dist/core/{p-e904d985.entry.js.map → p-a4397df4.entry.js.map} +0 -0
  711. /package/dist/core/{p-4ef8342f.entry.js.map → p-b0ce60a0.entry.js.map} +0 -0
  712. /package/dist/core/{p-e59d2d50.entry.js.map → p-ccac1730.entry.js.map} +0 -0
  713. /package/dist/core/{p-ac82781b.entry.js.map → p-e3bffcae.entry.js.map} +0 -0
  714. /package/dist/core/{p-c1e8d13e.entry.js.map → p-ed256f1d.entry.js.map} +0 -0
  715. /package/dist/core/{p-482397ae.entry.js.map → p-f019219c.entry.js.map} +0 -0
@@ -1,10 +1,11 @@
1
1
  import { Host, h, } from "@stencil/core";
2
2
  import closeIcon from "../../assets/close-icon.svg";
3
- import { isSlotUsed, checkResizeObserver } from "../../utils/helpers";
3
+ import { isSlotUsed, checkResizeObserver, isPropDefined, } from "../../utils/helpers";
4
4
  /**
5
5
  * @slot dialog-controls - Content will be place at the bottom of the dialog.
6
6
  * @slot heading - Content will be placed at the top of the dialog.
7
7
  * @slot label - Content will be placed above the dialog heading.
8
+ * @slot alert - Content will be placed at the top of the content area of the dialog.
8
9
  */
9
10
  export class Dialog {
10
11
  constructor() {
@@ -67,13 +68,13 @@ export class Dialog {
67
68
  }
68
69
  };
69
70
  this.setAlertVariant = () => {
70
- if (this.status !== undefined && this.status !== null) {
71
+ if (isPropDefined(this.status) && this.status !== null) {
71
72
  const alert = this.el.shadowRoot.querySelector("ic-alert");
72
73
  alert.setAttribute("variant", this.status);
73
74
  }
74
75
  };
75
76
  this.closeIconClick = () => {
76
- this.hideDialog();
77
+ this.open = false;
77
78
  };
78
79
  this.getInteractiveElements = () => {
79
80
  this.interactiveElementList = Array.from(this.el.shadowRoot.querySelectorAll("ic-button"));
@@ -166,8 +167,10 @@ export class Dialog {
166
167
  this.closeOnBackdropClick = true;
167
168
  this.destructive = false;
168
169
  this.dismissLabel = "Dismiss";
170
+ this.hideCloseButton = false;
169
171
  this.heading = undefined;
170
172
  this.label = undefined;
173
+ this.open = undefined;
171
174
  this.size = "small";
172
175
  this.status = undefined;
173
176
  this.buttonProps = [
@@ -178,6 +181,38 @@ export class Dialog {
178
181
  { label: "Confirm", onclick: "this.confirmDialog();" },
179
182
  ];
180
183
  }
184
+ watchOpenHandler() {
185
+ if (this.open) {
186
+ this.dialogRendered = true;
187
+ this.dialogEl.showModal();
188
+ setTimeout(() => {
189
+ this.fadeIn = true;
190
+ }, 10);
191
+ setTimeout(() => {
192
+ this.setInitialFocus();
193
+ checkResizeObserver(this.runResizeObserver);
194
+ }, 75);
195
+ setTimeout(() => {
196
+ this.getFocusedElementIndex();
197
+ this.icDialogOpened.emit();
198
+ }, 80);
199
+ }
200
+ else {
201
+ this.fadeIn = false;
202
+ if (this.resizeObserver !== null) {
203
+ this.resizeObserver.disconnect();
204
+ }
205
+ setTimeout(() => {
206
+ var _a;
207
+ this.dialogRendered = false;
208
+ this.dialogEl.close();
209
+ (_a = this.sourceElement) === null || _a === void 0 ? void 0 : _a.focus();
210
+ this.el.removeAttribute(this.DATA_OVERFLOW);
211
+ this.dialogHeight = 0;
212
+ this.icDialogClosed.emit();
213
+ }, 80);
214
+ }
215
+ }
181
216
  watchPropHandler() {
182
217
  this.setButtonOnClick();
183
218
  }
@@ -196,7 +231,9 @@ export class Dialog {
196
231
  this.focusNextInteractiveElement(ev.shiftKey);
197
232
  break;
198
233
  case "Escape":
199
- !ev.repeat && this.hideDialog();
234
+ if (!ev.repeat) {
235
+ this.open = false;
236
+ }
200
237
  ev.stopImmediatePropagation();
201
238
  break;
202
239
  }
@@ -212,12 +249,12 @@ export class Dialog {
212
249
  rect.left <= ev.clientX &&
213
250
  ev.clientX <= rect.left + rect.width;
214
251
  if (!isInDialog) {
215
- this.hideDialog();
252
+ this.open = false;
216
253
  }
217
254
  }
218
255
  }
219
256
  /**
220
- * Use to show the dialog.
257
+ * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.
221
258
  */
222
259
  async showDialog() {
223
260
  this.dialogRendered = true;
@@ -235,7 +272,7 @@ export class Dialog {
235
272
  }, 80);
236
273
  }
237
274
  /**
238
- * Use to hide the dialog.
275
+ * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.
239
276
  */
240
277
  async hideDialog() {
241
278
  this.fadeIn = false;
@@ -257,7 +294,7 @@ export class Dialog {
257
294
  */
258
295
  async cancelDialog() {
259
296
  this.icDialogCancelled.emit();
260
- this.hideDialog();
297
+ this.open = false;
261
298
  }
262
299
  /**
263
300
  * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.
@@ -281,8 +318,8 @@ export class Dialog {
281
318
  }
282
319
  }
283
320
  render() {
284
- const { alertHeading, alertMessage, buttons, buttonProps, size, heading, label, status, destructive, dismissLabel, } = this;
285
- return (h(Host, { class: { ["hidden"]: !this.dialogRendered, ["fade-in"]: this.fadeIn } }, h("dialog", { class: { ["dialog"]: true, [`${size}`]: true }, "aria-labelledby": "dialog-label dialog-heading", "aria-describedby": "dialog-alert dialog-content", ref: (el) => (this.dialogEl = el) }, h("div", { class: "heading-area" }, h("div", { class: "heading-content" }, h("div", { class: "label" }, h("slot", { name: "label" }, h("ic-typography", { variant: "label", id: "dialog-label" }, label))), h("div", { class: "heading" }, h("slot", { name: "heading" }, h("ic-typography", { variant: "h4", id: "dialog-heading" }, heading)))), h("ic-button", { class: "close-icon", variant: "icon", "aria-label": dismissLabel, onClick: this.closeIconClick, "data-gets-focus": destructive || !buttons ? "" : null }, h("span", { class: "close-icon-svg", innerHTML: closeIcon }))), h("div", { class: "content-area" }, status && (h("ic-alert", { variant: status, heading: alertHeading, message: alertMessage, "title-above": true, class: "status-alert", id: "dialog-alert" })), h("div", { id: "dialog-content" }, h("slot", null))), (buttons || isSlotUsed(this.el, this.DIALOG_CONTROLS)) && (h("div", { class: {
321
+ const { alertHeading, alertMessage, buttons, buttonProps, size, heading, label, status, destructive, dismissLabel, hideCloseButton, } = this;
322
+ return (h(Host, { class: { ["hidden"]: !this.dialogRendered, ["fade-in"]: this.fadeIn } }, h("dialog", { class: { ["dialog"]: true, [`${size}`]: true }, "aria-labelledby": "dialog-label dialog-heading", "aria-describedby": "dialog-alert dialog-content", ref: (el) => (this.dialogEl = el) }, h("div", { class: "heading-area" }, h("div", { class: "heading-content" }, h("div", { class: "label" }, h("slot", { name: "label" }, h("ic-typography", { variant: "label", id: "dialog-label" }, label))), h("div", { class: "heading" }, h("slot", { name: "heading" }, h("ic-typography", { variant: "h4", id: "dialog-heading" }, heading)))), !hideCloseButton && (h("ic-button", { class: "close-icon", variant: "icon", "aria-label": dismissLabel, onClick: this.closeIconClick, "data-gets-focus": destructive || !buttons ? "" : null }, h("span", { class: "close-icon-svg", innerHTML: closeIcon })))), h("div", { class: "content-area" }, isSlotUsed(this.el, "alert") ? (h("slot", { name: "alert" })) : (status && (h("ic-alert", { variant: status, heading: alertHeading, message: alertMessage, "title-above": true, class: "status-alert", id: "dialog-alert" }))), h("div", { id: "dialog-content" }, h("slot", null))), (buttons || isSlotUsed(this.el, this.DIALOG_CONTROLS)) && (h("div", { class: {
286
323
  [this.DIALOG_CONTROLS]: true,
287
324
  ["triple-button"]: buttonProps.length === 3,
288
325
  } }, h("slot", { name: this.DIALOG_CONTROLS }, !isSlotUsed(this.el, this.DIALOG_CONTROLS) &&
@@ -322,8 +359,11 @@ export class Dialog {
322
359
  "required": false,
323
360
  "optional": true,
324
361
  "docs": {
325
- "tags": [],
326
- "text": "If a status is set, sets the heading for the displayed alert."
362
+ "tags": [{
363
+ "name": "deprecated",
364
+ "text": "This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a heading instead."
365
+ }],
366
+ "text": ""
327
367
  },
328
368
  "attribute": "alert-heading",
329
369
  "reflect": false
@@ -339,8 +379,11 @@ export class Dialog {
339
379
  "required": false,
340
380
  "optional": true,
341
381
  "docs": {
342
- "tags": [],
343
- "text": "If a status is set, sets the message for the displayed alert."
382
+ "tags": [{
383
+ "name": "deprecated",
384
+ "text": "This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a message instead."
385
+ }],
386
+ "text": ""
344
387
  },
345
388
  "attribute": "alert-message",
346
389
  "reflect": false
@@ -417,6 +460,24 @@ export class Dialog {
417
460
  "reflect": false,
418
461
  "defaultValue": "\"Dismiss\""
419
462
  },
463
+ "hideCloseButton": {
464
+ "type": "boolean",
465
+ "mutable": false,
466
+ "complexType": {
467
+ "original": "boolean",
468
+ "resolved": "boolean",
469
+ "references": {}
470
+ },
471
+ "required": false,
472
+ "optional": true,
473
+ "docs": {
474
+ "tags": [],
475
+ "text": "If `true`, the close button will not be displayed."
476
+ },
477
+ "attribute": "hide-close-button",
478
+ "reflect": false,
479
+ "defaultValue": "false"
480
+ },
420
481
  "heading": {
421
482
  "type": "string",
422
483
  "mutable": false,
@@ -451,6 +512,24 @@ export class Dialog {
451
512
  "attribute": "label",
452
513
  "reflect": false
453
514
  },
515
+ "open": {
516
+ "type": "boolean",
517
+ "mutable": true,
518
+ "complexType": {
519
+ "original": "boolean",
520
+ "resolved": "boolean",
521
+ "references": {}
522
+ },
523
+ "required": false,
524
+ "optional": false,
525
+ "docs": {
526
+ "tags": [],
527
+ "text": "If `true`, the dialog will be displayed."
528
+ },
529
+ "attribute": "open",
530
+ "reflect": true,
531
+ "defaultValue": "undefined"
532
+ },
454
533
  "size": {
455
534
  "type": "string",
456
535
  "mutable": false,
@@ -480,8 +559,11 @@ export class Dialog {
480
559
  "required": false,
481
560
  "optional": true,
482
561
  "docs": {
483
- "tags": [],
484
- "text": "If set, displays an alert of the corresponding variant below the heading."
562
+ "tags": [{
563
+ "name": "deprecated",
564
+ "text": "This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a variant instead."
565
+ }],
566
+ "text": ""
485
567
  },
486
568
  "attribute": "status",
487
569
  "reflect": false
@@ -588,8 +670,11 @@ export class Dialog {
588
670
  "return": "Promise<void>"
589
671
  },
590
672
  "docs": {
591
- "text": "Use to show the dialog.",
592
- "tags": []
673
+ "text": "",
674
+ "tags": [{
675
+ "name": "deprecated",
676
+ "text": "This method should not be used anymore. Use open prop to set dialog visibility."
677
+ }]
593
678
  }
594
679
  },
595
680
  "hideDialog": {
@@ -605,8 +690,11 @@ export class Dialog {
605
690
  "return": "Promise<void>"
606
691
  },
607
692
  "docs": {
608
- "text": "Use to hide the dialog.",
609
- "tags": []
693
+ "text": "",
694
+ "tags": [{
695
+ "name": "deprecated",
696
+ "text": "This method should not be used anymore. Use open prop to set dialog visibility."
697
+ }]
610
698
  }
611
699
  },
612
700
  "cancelDialog": {
@@ -648,6 +736,9 @@ export class Dialog {
648
736
  static get elementRef() { return "el"; }
649
737
  static get watchers() {
650
738
  return [{
739
+ "propName": "open",
740
+ "methodName": "watchOpenHandler"
741
+ }, {
651
742
  "propName": "buttonProps",
652
743
  "methodName": "watchPropHandler"
653
744
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"ic-dialog.js","sourceRoot":"","sources":["../../../src/components/ic-dialog/ic-dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Method,\n Listen,\n Watch,\n h,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, checkResizeObserver } from \"../../utils/helpers\";\n\n/**\n * @slot dialog-controls - Content will be place at the bottom of the dialog.\n * @slot heading - Content will be placed at the top of the dialog.\n * @slot label - Content will be placed above the dialog heading.\n */\n@Component({\n tag: \"ic-dialog\",\n styleUrl: \"ic-dialog.css\",\n shadow: true,\n})\nexport class Dialog {\n private DATA_OVERFLOW: string = \"data-overflow\";\n private DATA_GETS_FOCUS: string = \"data-gets-focus\";\n private DATA_GETS_FOCUS_SELECTOR: string = \"[data-gets-focus]\";\n private DIALOG_CONTROLS: string = \"dialog-controls\";\n private dialogEl: HTMLDialogElement;\n private dialogHeight: number = 0;\n private focusedElementIndex = 0;\n private IC_TEXT_FIELD: string = \"IC-TEXT-FIELD\";\n private IC_ACCORDION: string = \"IC-ACCORDION\";\n private interactiveElementList: HTMLElement[];\n private resizeObserver: ResizeObserver = null;\n private resizeTimeout: number;\n private sourceElement: HTMLElement;\n\n /* eslint-disable */\n\n private buttonOnclick0: Function;\n private buttonOnclick1: Function;\n private buttonOnclick2: Function;\n\n /* eslint-enable */\n\n @Element() el: HTMLIcDialogElement;\n\n @State() dialogRendered: boolean = false;\n @State() fadeIn: boolean = false;\n\n /**\n * If a status is set, sets the heading for the displayed alert.\n */\n @Prop() alertHeading?: string;\n\n /**\n * If a status is set, sets the message for the displayed alert.\n */\n @Prop() alertMessage?: string;\n\n /**\n * If set to `false`, dialog controls will not be displayed overriding buttonProps or slotted dialog controls.\n */\n @Prop() buttons?: boolean = true;\n\n /**\n * If set to `true`, the dialog will not close when the backdrop is clicked.\n */\n @Prop() closeOnBackdropClick?: boolean = true;\n\n /**\n * If default buttons are displayed, sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\n */\n @Prop() destructive?: boolean = false;\n\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n @Prop() dismissLabel?: string = \"Dismiss\";\n\n /**\n * Sets the heading for the dialog.\n */\n @Prop() heading!: string;\n\n /**\n * Sets the optional label for the dialog which appears above the heading.\n */\n @Prop() label?: string;\n\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n @Prop() size?: \"small\" | \"medium\" | \"large\" = \"small\";\n\n /**\n * If set, displays an alert of the corresponding variant below the heading.\n */\n @Prop() status?: \"neutral\" | \"info\" | \"warning\" | \"error\" | \"success\";\n\n /**\n * Sets the label and onclick functions for default buttons.\n */\n @Prop() buttonProps?: { label: string; onclick: string }[] = [\n {\n label: \"Cancel\",\n onclick: \"this.cancelDialog();\",\n },\n { label: \"Confirm\", onclick: \"this.confirmDialog();\" },\n ];\n\n @Watch(\"buttonProps\")\n watchPropHandler(): void {\n this.setButtonOnClick();\n }\n\n /**\n * Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\n */\n @Event() icDialogCancelled: EventEmitter<void>;\n\n /**\n * Emitted when dialog has closed.\n */\n @Event() icDialogClosed: EventEmitter<void>;\n\n /**\n * Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\n */\n @Event() icDialogConfirmed: EventEmitter<void>;\n\n /**\n * Emitted when dialog has opened.\n */\n @Event() icDialogOpened: EventEmitter<void>;\n\n componentWillLoad(): void {\n this.setButtonOnClick();\n }\n\n componentDidLoad(): void {\n this.getInteractiveElements();\n this.setAlertVariant();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.focusNextInteractiveElement(ev.shiftKey);\n break;\n case \"Escape\":\n !ev.repeat && this.hideDialog();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"click\", {})\n handleClick(ev: MouseEvent): void {\n const dialogElement = this.el.shadowRoot.querySelector(\"dialog\");\n if (\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(dialogElement) <= 0\n ) {\n const rect = this.dialogEl.getBoundingClientRect();\n const isInDialog =\n rect.top <= ev.clientY &&\n ev.clientY <= rect.top + rect.height &&\n rect.left <= ev.clientX &&\n ev.clientX <= rect.left + rect.width;\n if (!isInDialog) {\n this.hideDialog();\n }\n }\n }\n\n /**\n * Use to show the dialog.\n */\n @Method()\n async showDialog(): Promise<void> {\n this.dialogRendered = true;\n this.dialogEl.showModal();\n setTimeout(() => {\n this.fadeIn = true;\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.getFocusedElementIndex();\n this.icDialogOpened.emit();\n }, 80);\n }\n\n /**\n * Use to hide the dialog.\n */\n @Method()\n async hideDialog(): Promise<void> {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n this.dialogRendered = false;\n this.dialogEl.close();\n this.sourceElement?.focus();\n this.el.removeAttribute(this.DATA_OVERFLOW);\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n\n /**\n * Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\n */\n @Method()\n async cancelDialog(): Promise<void> {\n this.icDialogCancelled.emit();\n this.hideDialog();\n }\n\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n @Method()\n async confirmDialog(): Promise<void> {\n this.icDialogConfirmed.emit();\n }\n\n private setContentOverflow = (): void => {\n if (this.dialogEl.clientHeight < this.dialogEl.scrollHeight) {\n this.el.setAttribute(this.DATA_OVERFLOW, \"true\");\n } else {\n this.el.setAttribute(this.DATA_OVERFLOW, \"false\");\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);\n });\n this.resizeObserver.observe(this.dialogEl);\n };\n\n private resizeObserverCallback = () => {\n if (this.dialogEl.clientHeight !== this.dialogHeight) {\n this.el.setAttribute(this.DATA_OVERFLOW, \"false\");\n this.setContentOverflow();\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n\n private setInitialFocus = () => {\n this.sourceElement = document.activeElement as HTMLElement;\n\n let focusedElement;\n\n if (this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR) !== null) {\n focusedElement = this.el.querySelector(\n this.DATA_GETS_FOCUS_SELECTOR\n ) as HTMLElement;\n } else {\n focusedElement = this.el.shadowRoot.querySelector(\n this.DATA_GETS_FOCUS_SELECTOR\n ) as HTMLElement;\n }\n if (focusedElement.tagName === this.IC_TEXT_FIELD) {\n (focusedElement as HTMLIcTextFieldElement).setFocus();\n } else if (focusedElement.tagName === this.IC_ACCORDION) {\n (focusedElement as HTMLIcAccordionElement).setFocus();\n } else {\n focusedElement.focus();\n }\n };\n\n private getFocusedElementIndex = () => {\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (\n (this.interactiveElementList[i] as HTMLElement) ===\n (this.el.shadowRoot.activeElement || document.activeElement)\n ) {\n this.focusedElementIndex = i;\n }\n }\n };\n\n private setAlertVariant = () => {\n if (this.status !== undefined && this.status !== null) {\n const alert = this.el.shadowRoot.querySelector(\"ic-alert\");\n alert.setAttribute(\"variant\", this.status);\n }\n };\n\n private closeIconClick = () => {\n this.hideDialog();\n };\n\n private getInteractiveElements = () => {\n this.interactiveElementList = Array.from(\n this.el.shadowRoot.querySelectorAll(\"ic-button\")\n );\n const slottedInteractiveElements = Array.from(\n this.el.querySelectorAll(\n `a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex=\"-1\"]), \n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, ic-radio-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible=\"true\"], ic-footer-link, ic-link, ic-navigation-button, \n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion`\n )\n );\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n } else if (!this.destructive) {\n slottedInteractiveElements[\n slottedInteractiveElements.length - 1\n ].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(\n 1 + i,\n 0,\n slottedInteractiveElements[i] as HTMLElement\n );\n }\n };\n\n private getNextFocusEl = (focusedElementIndex: number) =>\n this.interactiveElementList[focusedElementIndex];\n\n private focusNextInteractiveElement = (shiftKey: boolean) => {\n this.getFocusedElementIndex();\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n let nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n\n const isHidden = getComputedStyle(nextFocusEl).visibility === \"hidden\";\n\n if (nextFocusEl.tagName === this.IC_TEXT_FIELD) {\n (nextFocusEl as HTMLIcTextFieldElement).setFocus();\n } else {\n if (isHidden) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n }\n if (nextFocusEl.tagName === this.IC_ACCORDION) {\n (nextFocusEl as HTMLIcAccordionElement).setFocus();\n } else {\n (nextFocusEl as HTMLElement).focus();\n }\n }\n };\n\n private setButtonOnClick = () => {\n if (this.buttons) {\n this.buttonOnclick0 = new Function(this.buttonProps[0]?.onclick);\n this.buttonOnclick1 = new Function(this.buttonProps[1]?.onclick);\n this.buttonOnclick2 = new Function(this.buttonProps[2]?.onclick);\n }\n };\n\n private getButtonOnclick = (index: number) => {\n if (index === 0) {\n return this.buttonOnclick0();\n } else if (index === 1) {\n return this.buttonOnclick1();\n } else {\n return this.buttonOnclick2();\n }\n };\n\n private getButtonVariant = (index: number) => {\n const mainVariant = this.destructive ? \"destructive\" : \"primary\";\n if (this.buttonProps.length === 1) {\n return mainVariant;\n } else if (this.buttonProps.length === 2) {\n if (index === 0) {\n return \"tertiary\";\n } else {\n return mainVariant;\n }\n } else {\n if (index === 2) {\n return mainVariant;\n } else {\n return \"secondary\";\n }\n }\n };\n\n private loopNextFocusIndexIfLastElement() {\n if (this.focusedElementIndex > this.interactiveElementList.length - 1)\n this.focusedElementIndex = 0;\n else if (this.focusedElementIndex < 0) {\n this.focusedElementIndex = this.interactiveElementList.length - 1;\n }\n }\n\n private setFocusIndexBasedOnShiftKey(shiftKey: boolean) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n } else {\n this.focusedElementIndex += 1;\n }\n }\n\n render() {\n const {\n alertHeading,\n alertMessage,\n buttons,\n buttonProps,\n size,\n heading,\n label,\n status,\n destructive,\n dismissLabel,\n } = this;\n\n return (\n <Host\n class={{ [\"hidden\"]: !this.dialogRendered, [\"fade-in\"]: this.fadeIn }}\n >\n <dialog\n class={{ [\"dialog\"]: true, [`${size}`]: true }}\n aria-labelledby=\"dialog-label dialog-heading\"\n aria-describedby=\"dialog-alert dialog-content\"\n ref={(el) => (this.dialogEl = el)}\n >\n <div class=\"heading-area\">\n <div class=\"heading-content\">\n <div class=\"label\">\n <slot name=\"label\">\n <ic-typography variant=\"label\" id=\"dialog-label\">\n {label}\n </ic-typography>\n </slot>\n </div>\n <div class=\"heading\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\" id=\"dialog-heading\">\n {heading}\n </ic-typography>\n </slot>\n </div>\n </div>\n <ic-button\n class=\"close-icon\"\n variant=\"icon\"\n aria-label={dismissLabel}\n onClick={this.closeIconClick}\n data-gets-focus={destructive || !buttons ? \"\" : null}\n >\n <span class=\"close-icon-svg\" innerHTML={closeIcon} />\n </ic-button>\n </div>\n <div class=\"content-area\">\n {status && (\n <ic-alert\n variant={status}\n heading={alertHeading}\n message={alertMessage}\n title-above\n class=\"status-alert\"\n id=\"dialog-alert\"\n ></ic-alert>\n )}\n <div id=\"dialog-content\">\n <slot></slot>\n </div>\n </div>\n {(buttons || isSlotUsed(this.el, this.DIALOG_CONTROLS)) && (\n <div\n class={{\n [this.DIALOG_CONTROLS]: true,\n [\"triple-button\"]: buttonProps.length === 3,\n }}\n >\n <slot name={this.DIALOG_CONTROLS}>\n {!isSlotUsed(this.el, this.DIALOG_CONTROLS) &&\n buttonProps.map((props, index) => {\n if (index > 2) {\n return;\n } else {\n return (\n <ic-button\n variant={this.getButtonVariant(index)}\n onClick={() => this.getButtonOnclick(index)}\n class=\"dialog-control-button\"\n full-width={buttonProps.length === 3}\n data-gets-focus={\n this.getButtonVariant(index) === \"primary\"\n ? \"\"\n : null\n }\n >\n {props.label}\n </ic-button>\n );\n }\n })}\n </slot>\n </div>\n )}\n </dialog>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-dialog.js","sourceRoot":"","sources":["../../../src/components/ic-dialog/ic-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,CAAC,GACF,MAAM,eAAe,CAAC;AACvB,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AAMH,MAAM,OAAO,MAAM;;IACT,kBAAa,GAAW,eAAe,CAAC;IACxC,oBAAe,GAAW,iBAAiB,CAAC;IAC5C,6BAAwB,GAAW,mBAAmB,CAAC;IACvD,oBAAe,GAAW,iBAAiB,CAAC;IAE5C,iBAAY,GAAW,CAAC,CAAC;IACzB,wBAAmB,GAAG,CAAC,CAAC;IACxB,kBAAa,GAAW,eAAe,CAAC;IACxC,iBAAY,GAAW,cAAc,CAAC;IAEtC,mBAAc,GAAmB,IAAI,CAAC;IAuPtC,uBAAkB,GAAG,GAAS,EAAE;MACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;QAC3D,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;OAClD;WAAM;QACL,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;OACnD;IACH,CAAC,CAAC;IAEM,sBAAiB,GAAG,GAAG,EAAE;MAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;QAC5C,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;MAC1E,CAAC,CAAC,CAAC;MACH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEM,2BAAsB,GAAG,GAAG,EAAE;MACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE;QACpD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;OAChD;IACH,CAAC,CAAC;IAEM,oBAAe,GAAG,GAAG,EAAE;MAC7B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAA4B,CAAC;MAE3D,IAAI,cAAc,CAAC;MAEnB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,IAAI,EAAE;QACjE,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CACpC,IAAI,CAAC,wBAAwB,CACf,CAAC;OAClB;WAAM;QACL,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAC/C,IAAI,CAAC,wBAAwB,CACf,CAAC;OAClB;MACD,IAAI,cAAc,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE;QAChD,cAAyC,CAAC,QAAQ,EAAE,CAAC;OACvD;WAAM,IAAI,cAAc,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE;QACtD,cAAyC,CAAC,QAAQ,EAAE,CAAC;OACvD;WAAM;QACL,cAAc,CAAC,KAAK,EAAE,CAAC;OACxB;IACH,CAAC,CAAC;IAEM,2BAAsB,GAAG,GAAG,EAAE;MACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC3D,IACG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAiB;UAC/C,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,EAC5D;UACA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;SAC9B;OACF;IACH,CAAC,CAAC;IAEM,oBAAe,GAAG,GAAG,EAAE;MAC7B,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3D,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;OAC5C;IACH,CAAC,CAAC;IAEM,mBAAc,GAAG,GAAG,EAAE;MAC5B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC,CAAC;IAEM,2BAAsB,GAAG,GAAG,EAAE;MACpC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,IAAI,CACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACjD,CAAC;MACF,MAAM,0BAA0B,GAAG,KAAK,CAAC,IAAI,CAC3C,IAAI,CAAC,EAAE,CAAC,gBAAgB,CACtB;;;yFAGiF,CAClF,CACF,CAAC;MACF,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE;QACzC,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE;UAC/D,0BAA0B,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;SACtE;aAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;UAC5B,0BAA0B,CACxB,0BAA0B,CAAC,MAAM,GAAG,CAAC,CACtC,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;SAC1C;OACF;MACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1D,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAChC,CAAC,GAAG,CAAC,EACL,CAAC,EACD,0BAA0B,CAAC,CAAC,CAAgB,CAC7C,CAAC;OACH;IACH,CAAC,CAAC;IAEM,mBAAc,GAAG,CAAC,mBAA2B,EAAE,EAAE,CACvD,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IAE3C,gCAA2B,GAAG,CAAC,QAAiB,EAAE,EAAE;MAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;MAC9B,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;MAC5C,IAAI,CAAC,+BAA+B,EAAE,CAAC;MAEvC,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;MAEhE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC;MAEvE,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE;QAC7C,WAAsC,CAAC,QAAQ,EAAE,CAAC;OACpD;WAAM;QACL,IAAI,QAAQ,EAAE;UACZ,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;UAC5C,IAAI,CAAC,+BAA+B,EAAE,CAAC;UAEvC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC7D;QACD,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE;UAC5C,WAAsC,CAAC,QAAQ,EAAE,CAAC;SACpD;aAAM;UACJ,WAA2B,CAAC,KAAK,EAAE,CAAC;SACtC;OACF;IACH,CAAC,CAAC;IAEM,qBAAgB,GAAG,GAAG,EAAE;;MAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,QAAQ,CAAC,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,IAAI,QAAQ,CAAC,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,IAAI,QAAQ,CAAC,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC;OAClE;IACH,CAAC,CAAC;IAEM,qBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;MAC3C,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;OAC9B;WAAM,IAAI,KAAK,KAAK,CAAC,EAAE;QACtB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;OAC9B;WAAM;QACL,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;OAC9B;IACH,CAAC,CAAC;IAEM,qBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;MAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;MACjE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,WAAW,CAAC;OACpB;WAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC,IAAI,KAAK,KAAK,CAAC,EAAE;UACf,OAAO,UAAU,CAAC;SACnB;aAAM;UACL,OAAO,WAAW,CAAC;SACpB;OACF;WAAM;QACL,IAAI,KAAK,KAAK,CAAC,EAAE;UACf,OAAO,WAAW,CAAC;SACpB;aAAM;UACL,OAAO,WAAW,CAAC;SACpB;OACF;IACH,CAAC,CAAC;0BA5YiC,KAAK;kBACb,KAAK;;;mBAeJ,IAAI;gCAKS,IAAI;uBAKb,KAAK;wBAKL,SAAS;2BAKL,KAAK;;;gBAee,SAAS;gBAqCnB,OAAO;;uBAUQ;MAC3D;QACE,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,sBAAsB;OAChC;MACD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,uBAAuB,EAAE;KACvD;;EAlDD,gBAAgB;IACd,IAAI,IAAI,CAAC,IAAI,EAAE;MACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;MAC3B,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;MAC1B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;MACrB,CAAC,EAAE,EAAE,CAAC,CAAC;MACP,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;MAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;MACP,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;MAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;SAAM;MACL,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;MACpB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;QAChC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;OAClC;MACD,UAAU,CAAC,GAAG,EAAE;;QACd,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,MAAA,IAAI,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;MAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;EACH,CAAC;EAwBD,gBAAgB;IACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAsBD,iBAAiB;IACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAED,gBAAgB;IACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;EACzB,CAAC;EAGD,cAAc,CAAC,EAAiB;IAC9B,IAAI,IAAI,CAAC,cAAc,EAAE;MACvB,QAAQ,EAAE,CAAC,GAAG,EAAE;QACd,KAAK,KAAK;UACR,EAAE,CAAC,cAAc,EAAE,CAAC;UACpB,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;UAC9C,MAAM;QACR,KAAK,QAAQ;UACX,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;WACnB;UACD,EAAE,CAAC,wBAAwB,EAAE,CAAC;UAC9B,MAAM;OACT;KACF;EACH,CAAC;EAGD,WAAW,CAAC,EAAc;IACxB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjE,IACE,IAAI,CAAC,oBAAoB;MACzB,EAAE,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAC7C;MACA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;MACnD,MAAM,UAAU,GACd,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,OAAO;QACtB,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM;QACpC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO;QACvB,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;MACvC,IAAI,CAAC,UAAU,EAAE;QACf,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;OACnB;KACF;EACH,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,UAAU;IACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC1B,UAAU,CAAC,GAAG,EAAE;MACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,UAAU,CAAC,GAAG,EAAE;MACd,IAAI,CAAC,eAAe,EAAE,CAAC;MACvB,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,UAAU,CAAC,GAAG,EAAE;MACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;MAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;EACT,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,UAAU;IACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;MAChC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;KAClC;IACD,UAAU,CAAC,GAAG,EAAE;;MACd,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;MAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;MACtB,MAAA,IAAI,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;MAC5B,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;MAC5C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;MACtB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;EACT,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,YAAY;IAChB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;EACpB,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,aAAa;IACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;EAChC,CAAC;EAuKO,+BAA+B;IACrC,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;MACnE,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;SAC1B,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;MACrC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC;KACnE;EACH,CAAC;EAEO,4BAA4B,CAAC,QAAiB;IACpD,IAAI,QAAQ,EAAE;MACZ,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;KAC/B;SAAM;MACL,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;KAC/B;EACH,CAAC;EAED,MAAM;IACJ,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,GAAG,IAAI,CAAC;IAET,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE;MAErE,cACE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,qBAC9B,6BAA6B,sBAC5B,6BAA6B,EAC9C,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEjC,WAAK,KAAK,EAAC,cAAc;UACvB,WAAK,KAAK,EAAC,iBAAiB;YAC1B,WAAK,KAAK,EAAC,OAAO;cAChB,YAAM,IAAI,EAAC,OAAO;gBAChB,qBAAe,OAAO,EAAC,OAAO,EAAC,EAAE,EAAC,cAAc,IAC7C,KAAK,CACQ,CACX,CACH;YACN,WAAK,KAAK,EAAC,SAAS;cAClB,YAAM,IAAI,EAAC,SAAS;gBAClB,qBAAe,OAAO,EAAC,IAAI,EAAC,EAAE,EAAC,gBAAgB,IAC5C,OAAO,CACM,CACX,CACH,CACF;UACL,CAAC,eAAe,IAAI,CACnB,iBACE,KAAK,EAAC,YAAY,EAClB,OAAO,EAAC,MAAM,gBACF,YAAY,EACxB,OAAO,EAAE,IAAI,CAAC,cAAc,qBACX,WAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YAEpD,YAAM,KAAK,EAAC,gBAAgB,EAAC,SAAS,EAAE,SAAS,GAAI,CAC3C,CACb,CACG;QACN,WAAK,KAAK,EAAC,cAAc;UACtB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAC9B,YAAM,IAAI,EAAC,OAAO,GAAQ,CAC3B,CAAC,CAAC,CAAC,CACF,MAAM,IAAI,CACR,gBACE,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,uBAErB,KAAK,EAAC,cAAc,EACpB,EAAE,EAAC,cAAc,GACP,CACb,CACF;UACD,WAAK,EAAE,EAAC,gBAAgB;YACtB,eAAa,CACT,CACF;QACL,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CACzD,WACE,KAAK,EAAE;YACL,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI;YAC5B,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;WAC5C;UAED,YAAM,IAAI,EAAE,IAAI,CAAC,eAAe,IAC7B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC;YACzC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;cAC/B,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,OAAO;eACR;mBAAM;gBACL,OAAO,CACL,iBACE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACrC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAC3C,KAAK,EAAC,uBAAuB,gBACjB,WAAW,CAAC,MAAM,KAAK,CAAC,qBAElC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,SAAS;oBACxC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,IAAI,IAGT,KAAK,CAAC,KAAK,CACF,CACb,CAAC;eACH;YACH,CAAC,CAAC,CACC,CACH,CACP,CACM,CACJ,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Method,\n Listen,\n Watch,\n h,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport {\n isSlotUsed,\n checkResizeObserver,\n isPropDefined,\n} from \"../../utils/helpers\";\n\n/**\n * @slot dialog-controls - Content will be place at the bottom of the dialog.\n * @slot heading - Content will be placed at the top of the dialog.\n * @slot label - Content will be placed above the dialog heading.\n * @slot alert - Content will be placed at the top of the content area of the dialog.\n */\n@Component({\n tag: \"ic-dialog\",\n styleUrl: \"ic-dialog.css\",\n shadow: true,\n})\nexport class Dialog {\n private DATA_OVERFLOW: string = \"data-overflow\";\n private DATA_GETS_FOCUS: string = \"data-gets-focus\";\n private DATA_GETS_FOCUS_SELECTOR: string = \"[data-gets-focus]\";\n private DIALOG_CONTROLS: string = \"dialog-controls\";\n private dialogEl: HTMLDialogElement;\n private dialogHeight: number = 0;\n private focusedElementIndex = 0;\n private IC_TEXT_FIELD: string = \"IC-TEXT-FIELD\";\n private IC_ACCORDION: string = \"IC-ACCORDION\";\n private interactiveElementList: HTMLElement[];\n private resizeObserver: ResizeObserver = null;\n private resizeTimeout: number;\n private sourceElement: HTMLElement;\n\n /* eslint-disable */\n\n private buttonOnclick0: Function;\n private buttonOnclick1: Function;\n private buttonOnclick2: Function;\n\n /* eslint-enable */\n\n @Element() el: HTMLIcDialogElement;\n\n @State() dialogRendered: boolean = false;\n @State() fadeIn: boolean = false;\n\n /**\n * @deprecated This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a heading instead.\n */\n @Prop() alertHeading?: string;\n\n /**\n * @deprecated This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a message instead.\n */\n @Prop() alertMessage?: string;\n\n /**\n * If set to `false`, dialog controls will not be displayed overriding buttonProps or slotted dialog controls.\n */\n @Prop() buttons?: boolean = true;\n\n /**\n * If set to `true`, the dialog will not close when the backdrop is clicked.\n */\n @Prop() closeOnBackdropClick?: boolean = true;\n\n /**\n * If default buttons are displayed, sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\n */\n @Prop() destructive?: boolean = false;\n\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n @Prop() dismissLabel?: string = \"Dismiss\";\n\n /**\n * If `true`, the close button will not be displayed.\n */\n @Prop() hideCloseButton?: boolean = false;\n\n /**\n * Sets the heading for the dialog.\n */\n @Prop() heading!: string;\n\n /**\n * Sets the optional label for the dialog which appears above the heading.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the dialog will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (this.open) {\n this.dialogRendered = true;\n this.dialogEl.showModal();\n setTimeout(() => {\n this.fadeIn = true;\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.getFocusedElementIndex();\n this.icDialogOpened.emit();\n }, 80);\n } else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n this.dialogRendered = false;\n this.dialogEl.close();\n this.sourceElement?.focus();\n this.el.removeAttribute(this.DATA_OVERFLOW);\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n @Prop() size?: \"small\" | \"medium\" | \"large\" = \"small\";\n\n /**\n * @deprecated This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a variant instead.\n */\n @Prop() status?: \"neutral\" | \"info\" | \"warning\" | \"error\" | \"success\";\n\n /**\n * Sets the label and onclick functions for default buttons.\n */\n @Prop() buttonProps?: { label: string; onclick: string }[] = [\n {\n label: \"Cancel\",\n onclick: \"this.cancelDialog();\",\n },\n { label: \"Confirm\", onclick: \"this.confirmDialog();\" },\n ];\n\n @Watch(\"buttonProps\")\n watchPropHandler(): void {\n this.setButtonOnClick();\n }\n\n /**\n * Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\n */\n @Event() icDialogCancelled: EventEmitter<void>;\n\n /**\n * Emitted when dialog has closed.\n */\n @Event() icDialogClosed: EventEmitter<void>;\n\n /**\n * Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\n */\n @Event() icDialogConfirmed: EventEmitter<void>;\n\n /**\n * Emitted when dialog has opened.\n */\n @Event() icDialogOpened: EventEmitter<void>;\n\n componentWillLoad(): void {\n this.setButtonOnClick();\n }\n\n componentDidLoad(): void {\n this.getInteractiveElements();\n this.setAlertVariant();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.focusNextInteractiveElement(ev.shiftKey);\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"click\", {})\n handleClick(ev: MouseEvent): void {\n const dialogElement = this.el.shadowRoot.querySelector(\"dialog\");\n if (\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(dialogElement) <= 0\n ) {\n const rect = this.dialogEl.getBoundingClientRect();\n const isInDialog =\n rect.top <= ev.clientY &&\n ev.clientY <= rect.top + rect.height &&\n rect.left <= ev.clientX &&\n ev.clientX <= rect.left + rect.width;\n if (!isInDialog) {\n this.open = false;\n }\n }\n }\n\n /**\n * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.\n */\n @Method()\n async showDialog(): Promise<void> {\n this.dialogRendered = true;\n this.dialogEl.showModal();\n setTimeout(() => {\n this.fadeIn = true;\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.getFocusedElementIndex();\n this.icDialogOpened.emit();\n }, 80);\n }\n\n /**\n * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.\n */\n @Method()\n async hideDialog(): Promise<void> {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n this.dialogRendered = false;\n this.dialogEl.close();\n this.sourceElement?.focus();\n this.el.removeAttribute(this.DATA_OVERFLOW);\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n\n /**\n * Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\n */\n @Method()\n async cancelDialog(): Promise<void> {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n @Method()\n async confirmDialog(): Promise<void> {\n this.icDialogConfirmed.emit();\n }\n\n private setContentOverflow = (): void => {\n if (this.dialogEl.clientHeight < this.dialogEl.scrollHeight) {\n this.el.setAttribute(this.DATA_OVERFLOW, \"true\");\n } else {\n this.el.setAttribute(this.DATA_OVERFLOW, \"false\");\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);\n });\n this.resizeObserver.observe(this.dialogEl);\n };\n\n private resizeObserverCallback = () => {\n if (this.dialogEl.clientHeight !== this.dialogHeight) {\n this.el.setAttribute(this.DATA_OVERFLOW, \"false\");\n this.setContentOverflow();\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n\n private setInitialFocus = () => {\n this.sourceElement = document.activeElement as HTMLElement;\n\n let focusedElement;\n\n if (this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR) !== null) {\n focusedElement = this.el.querySelector(\n this.DATA_GETS_FOCUS_SELECTOR\n ) as HTMLElement;\n } else {\n focusedElement = this.el.shadowRoot.querySelector(\n this.DATA_GETS_FOCUS_SELECTOR\n ) as HTMLElement;\n }\n if (focusedElement.tagName === this.IC_TEXT_FIELD) {\n (focusedElement as HTMLIcTextFieldElement).setFocus();\n } else if (focusedElement.tagName === this.IC_ACCORDION) {\n (focusedElement as HTMLIcAccordionElement).setFocus();\n } else {\n focusedElement.focus();\n }\n };\n\n private getFocusedElementIndex = () => {\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (\n (this.interactiveElementList[i] as HTMLElement) ===\n (this.el.shadowRoot.activeElement || document.activeElement)\n ) {\n this.focusedElementIndex = i;\n }\n }\n };\n\n private setAlertVariant = () => {\n if (isPropDefined(this.status) && this.status !== null) {\n const alert = this.el.shadowRoot.querySelector(\"ic-alert\");\n alert.setAttribute(\"variant\", this.status);\n }\n };\n\n private closeIconClick = () => {\n this.open = false;\n };\n\n private getInteractiveElements = () => {\n this.interactiveElementList = Array.from(\n this.el.shadowRoot.querySelectorAll(\"ic-button\")\n );\n const slottedInteractiveElements = Array.from(\n this.el.querySelectorAll(\n `a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex=\"-1\"]), \n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, ic-radio-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible=\"true\"], ic-footer-link, ic-link, ic-navigation-button, \n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion`\n )\n );\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n } else if (!this.destructive) {\n slottedInteractiveElements[\n slottedInteractiveElements.length - 1\n ].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(\n 1 + i,\n 0,\n slottedInteractiveElements[i] as HTMLElement\n );\n }\n };\n\n private getNextFocusEl = (focusedElementIndex: number) =>\n this.interactiveElementList[focusedElementIndex];\n\n private focusNextInteractiveElement = (shiftKey: boolean) => {\n this.getFocusedElementIndex();\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n let nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n\n const isHidden = getComputedStyle(nextFocusEl).visibility === \"hidden\";\n\n if (nextFocusEl.tagName === this.IC_TEXT_FIELD) {\n (nextFocusEl as HTMLIcTextFieldElement).setFocus();\n } else {\n if (isHidden) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n }\n if (nextFocusEl.tagName === this.IC_ACCORDION) {\n (nextFocusEl as HTMLIcAccordionElement).setFocus();\n } else {\n (nextFocusEl as HTMLElement).focus();\n }\n }\n };\n\n private setButtonOnClick = () => {\n if (this.buttons) {\n this.buttonOnclick0 = new Function(this.buttonProps[0]?.onclick);\n this.buttonOnclick1 = new Function(this.buttonProps[1]?.onclick);\n this.buttonOnclick2 = new Function(this.buttonProps[2]?.onclick);\n }\n };\n\n private getButtonOnclick = (index: number) => {\n if (index === 0) {\n return this.buttonOnclick0();\n } else if (index === 1) {\n return this.buttonOnclick1();\n } else {\n return this.buttonOnclick2();\n }\n };\n\n private getButtonVariant = (index: number) => {\n const mainVariant = this.destructive ? \"destructive\" : \"primary\";\n if (this.buttonProps.length === 1) {\n return mainVariant;\n } else if (this.buttonProps.length === 2) {\n if (index === 0) {\n return \"tertiary\";\n } else {\n return mainVariant;\n }\n } else {\n if (index === 2) {\n return mainVariant;\n } else {\n return \"secondary\";\n }\n }\n };\n\n private loopNextFocusIndexIfLastElement() {\n if (this.focusedElementIndex > this.interactiveElementList.length - 1)\n this.focusedElementIndex = 0;\n else if (this.focusedElementIndex < 0) {\n this.focusedElementIndex = this.interactiveElementList.length - 1;\n }\n }\n\n private setFocusIndexBasedOnShiftKey(shiftKey: boolean) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n } else {\n this.focusedElementIndex += 1;\n }\n }\n\n render() {\n const {\n alertHeading,\n alertMessage,\n buttons,\n buttonProps,\n size,\n heading,\n label,\n status,\n destructive,\n dismissLabel,\n hideCloseButton,\n } = this;\n\n return (\n <Host\n class={{ [\"hidden\"]: !this.dialogRendered, [\"fade-in\"]: this.fadeIn }}\n >\n <dialog\n class={{ [\"dialog\"]: true, [`${size}`]: true }}\n aria-labelledby=\"dialog-label dialog-heading\"\n aria-describedby=\"dialog-alert dialog-content\"\n ref={(el) => (this.dialogEl = el)}\n >\n <div class=\"heading-area\">\n <div class=\"heading-content\">\n <div class=\"label\">\n <slot name=\"label\">\n <ic-typography variant=\"label\" id=\"dialog-label\">\n {label}\n </ic-typography>\n </slot>\n </div>\n <div class=\"heading\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\" id=\"dialog-heading\">\n {heading}\n </ic-typography>\n </slot>\n </div>\n </div>\n {!hideCloseButton && (\n <ic-button\n class=\"close-icon\"\n variant=\"icon\"\n aria-label={dismissLabel}\n onClick={this.closeIconClick}\n data-gets-focus={destructive || !buttons ? \"\" : null}\n >\n <span class=\"close-icon-svg\" innerHTML={closeIcon} />\n </ic-button>\n )}\n </div>\n <div class=\"content-area\">\n {isSlotUsed(this.el, \"alert\") ? (\n <slot name=\"alert\"></slot>\n ) : (\n status && (\n <ic-alert\n variant={status}\n heading={alertHeading}\n message={alertMessage}\n title-above\n class=\"status-alert\"\n id=\"dialog-alert\"\n ></ic-alert>\n )\n )}\n <div id=\"dialog-content\">\n <slot></slot>\n </div>\n </div>\n {(buttons || isSlotUsed(this.el, this.DIALOG_CONTROLS)) && (\n <div\n class={{\n [this.DIALOG_CONTROLS]: true,\n [\"triple-button\"]: buttonProps.length === 3,\n }}\n >\n <slot name={this.DIALOG_CONTROLS}>\n {!isSlotUsed(this.el, this.DIALOG_CONTROLS) &&\n buttonProps.map((props, index) => {\n if (index > 2) {\n return;\n } else {\n return (\n <ic-button\n variant={this.getButtonVariant(index)}\n onClick={() => this.getButtonOnclick(index)}\n class=\"dialog-control-button\"\n full-width={buttonProps.length === 3}\n data-gets-focus={\n this.getButtonVariant(index) === \"primary\"\n ? \"\"\n : null\n }\n >\n {props.label}\n </ic-button>\n );\n }\n })}\n </slot>\n </div>\n )}\n </dialog>\n </Host>\n );\n }\n}\n"]}
@@ -10,7 +10,7 @@ describe("ic-dialog", () => {
10
10
  <script>
11
11
  function showDialog() {
12
12
  dialog = document.querySelector("ic-dialog");
13
- dialog.showDialog();
13
+ dialog.open = true;
14
14
  }
15
15
  </script>
16
16
  <ic-button id="showBtn" variant="primary" onclick="showDialog()"
@@ -78,7 +78,7 @@ describe("ic-dialog", () => {
78
78
  <script>
79
79
  function showDialog() {
80
80
  dialog = document.querySelector("ic-dialog");
81
- dialog.showDialog();
81
+ dialog.open = true;
82
82
  }
83
83
  </script>
84
84
  <ic-button id="showBtn" variant="primary" onclick="showDialog()"
@@ -114,7 +114,7 @@ describe("ic-dialog", () => {
114
114
  <script>
115
115
  function showDialog() {
116
116
  dialog = document.querySelector("ic-dialog");
117
- dialog.showDialog();
117
+ dialog.open = true;
118
118
  }
119
119
  </script>
120
120
  <ic-button id="showBtn" variant="primary" onclick="showDialog()"
@@ -151,7 +151,7 @@ describe("ic-dialog", () => {
151
151
  <script>
152
152
  function showDialog() {
153
153
  dialog = document.querySelector("ic-dialog");
154
- dialog.showDialog();
154
+ dialog.open = true;
155
155
  }
156
156
  </script>
157
157
  <ic-button id="showBtn" variant="primary" onclick="showDialog()"
@@ -1 +1 @@
1
- {"version":3,"file":"ic-dialog.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst DIALOG_DELAY_MS = 300;\n\ndescribe(\"ic-dialog\", () => {\n it(\"should test focus and tab key press\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.showDialog();\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n dismiss-label=\"Close\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.\n <ic-text-field id=\"text-field\" label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-select\n id=\"sel1\"\n label=\"What is your favourite coffee?\"\n placeholder=\"Placeholder goes here\"\n ></ic-select>\n <ic-checkbox-group\n style=\"margin: 8px 0\"\n hide-label\n label=\"confirm\"\n name=\"confirm-checkbox\"\n >\n <ic-checkbox label=\"Option\" value=\"confirm\" id=\"checkbox1\"></ic-checkbox>\n </ic-checkbox-group>\n </ic-dialog>\n `\n );\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"sel1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"checkbox1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n });\n\n it(\"should hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.showDialog();\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n });\n\n it(\"should not hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.showDialog();\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n close-on-backdrop-click=\"false\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n });\n\n it(\"should test dialog content overflow\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.showDialog();\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n dismiss-label=\"Close\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.\n <ic-text-field id=\"text-field\" label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-select\n id=\"sel1\"\n label=\"What is your favourite coffee?\"\n placeholder=\"Placeholder goes here\"\n ></ic-select>\n <ic-checkbox-group\n style=\"margin: 8px 0\"\n hide-label\n label=\"confirm\"\n name=\"confirm-checkbox\"\n >\n <ic-checkbox label=\"Option\" value=\"confirm\" id=\"checkbox1\"></ic-checkbox>\n </ic-checkbox-group>\n </ic-dialog>\n `\n );\n\n await page.setViewport({\n width: 800,\n height: 480,\n });\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let dialog = await page.find(\"ic-dialog\");\n\n let overflow = dialog.getAttribute(\"data-overflow\");\n expect(overflow).toBe(\"true\");\n\n await page.setViewport({\n width: 800,\n height: 800,\n });\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialog = await page.find(\"ic-dialog\");\n\n overflow = dialog.getAttribute(\"data-overflow\");\n expect(overflow).toBe(\"false\");\n });\n});\n"]}
1
+ {"version":3,"file":"ic-dialog.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst DIALOG_DELAY_MS = 300;\n\ndescribe(\"ic-dialog\", () => {\n it(\"should test focus and tab key press\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n dismiss-label=\"Close\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.\n <ic-text-field id=\"text-field\" label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-select\n id=\"sel1\"\n label=\"What is your favourite coffee?\"\n placeholder=\"Placeholder goes here\"\n ></ic-select>\n <ic-checkbox-group\n style=\"margin: 8px 0\"\n hide-label\n label=\"confirm\"\n name=\"confirm-checkbox\"\n >\n <ic-checkbox label=\"Option\" value=\"confirm\" id=\"checkbox1\"></ic-checkbox>\n </ic-checkbox-group>\n </ic-dialog>\n `\n );\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"sel1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"checkbox1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n });\n\n it(\"should hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n });\n\n it(\"should not hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n close-on-backdrop-click=\"false\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n });\n\n it(\"should test dialog content overflow\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n dismiss-label=\"Close\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.\n <ic-text-field id=\"text-field\" label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-select\n id=\"sel1\"\n label=\"What is your favourite coffee?\"\n placeholder=\"Placeholder goes here\"\n ></ic-select>\n <ic-checkbox-group\n style=\"margin: 8px 0\"\n hide-label\n label=\"confirm\"\n name=\"confirm-checkbox\"\n >\n <ic-checkbox label=\"Option\" value=\"confirm\" id=\"checkbox1\"></ic-checkbox>\n </ic-checkbox-group>\n </ic-dialog>\n `\n );\n\n await page.setViewport({\n width: 800,\n height: 480,\n });\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let dialog = await page.find(\"ic-dialog\");\n\n let overflow = dialog.getAttribute(\"data-overflow\");\n expect(overflow).toBe(\"true\");\n\n await page.setViewport({\n width: 800,\n height: 800,\n });\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialog = await page.find(\"ic-dialog\");\n\n overflow = dialog.getAttribute(\"data-overflow\");\n expect(overflow).toBe(\"false\");\n });\n});\n"]}