@ukic/web-components 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (684) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/{helpers-d166f875.js → helpers-498eb0e2.js} +8 -1
  3. package/dist/cjs/helpers-498eb0e2.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 +2 -2
  7. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +10 -6
  11. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +6 -4
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -5
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-button_3.cjs.entry.js +70 -71
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card.cjs.entry.js +4 -4
  19. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +6 -6
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox.cjs.entry.js +22 -16
  23. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-chip.cjs.entry.js +11 -6
  25. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-data-entity.cjs.entry.js +6 -5
  28. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-data-row.cjs.entry.js +5 -4
  30. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-dialog.cjs.entry.js +46 -10
  32. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-empty-state.cjs.entry.js +5 -4
  35. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-hero.cjs.entry.js +9 -6
  40. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +42 -23
  43. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
  45. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-link.cjs.entry.js +3 -6
  47. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-menu-group.cjs.entry.js +4 -2
  49. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-menu-item.cjs.entry.js +11 -15
  51. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  53. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  55. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  57. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-page-header.cjs.entry.js +8 -4
  60. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  62. package/dist/cjs/ic-pagination.cjs.entry.js +6 -6
  63. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-popover-menu.cjs.entry.js +21 -21
  65. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-radio-group.cjs.entry.js +9 -8
  67. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-radio-option.cjs.entry.js +21 -15
  69. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-search-bar.cjs.entry.js +27 -22
  71. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-select.cjs.entry.js +24 -17
  74. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-side-navigation.cjs.entry.js +23 -21
  76. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -3
  78. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-status-tag.cjs.entry.js +14 -6
  80. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-step.cjs.entry.js +7 -5
  82. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  84. package/dist/cjs/ic-switch.cjs.entry.js +7 -6
  85. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-tab-context.cjs.entry.js +4 -4
  87. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -3
  89. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -4
  91. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab.cjs.entry.js +8 -8
  93. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-text-field.cjs.entry.js +5 -6
  95. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  97. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  98. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  99. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  101. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-typography.cjs.entry.js +12 -4
  103. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  104. package/dist/cjs/{index-afe53465.js → index-4f8c900f.js} +14 -1
  105. package/dist/cjs/index-4f8c900f.js.map +1 -0
  106. package/dist/cjs/loader.cjs.js +2 -2
  107. package/dist/cjs/types-7d67439f.js.map +1 -1
  108. package/dist/collection/collection-manifest.json +3 -3
  109. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +0 -1
  110. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  111. package/dist/collection/components/ic-badge/ic-badge.js +38 -15
  112. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  113. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +92 -0
  114. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  115. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -4
  116. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  117. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +4 -2
  118. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  119. package/dist/collection/components/ic-button/ic-button.css +36 -19
  120. package/dist/collection/components/ic-button/ic-button.js +98 -62
  121. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  122. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +30 -2
  123. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  124. package/dist/collection/components/ic-card/ic-card.css +1 -0
  125. package/dist/collection/components/ic-card/ic-card.js +2 -1
  126. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  127. package/dist/collection/components/ic-checkbox/ic-checkbox.js +126 -15
  128. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  129. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -4
  130. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  131. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +7 -0
  132. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  133. package/dist/collection/components/ic-chip/ic-chip.css +10 -5
  134. package/dist/collection/components/ic-chip/ic-chip.js +38 -7
  135. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  136. package/dist/collection/components/ic-data-entity/ic-data-entity.js +38 -7
  137. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  138. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +3 -3
  139. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
  140. package/dist/collection/components/ic-data-row/ic-data-row.js +33 -5
  141. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  142. package/dist/collection/components/ic-dialog/ic-dialog.js +91 -19
  143. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  144. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +4 -4
  145. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  146. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +58 -0
  147. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  148. package/dist/collection/components/ic-empty-state/ic-empty-state.js +8 -4
  149. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  150. package/dist/collection/components/ic-hero/ic-hero.js +38 -8
  151. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  152. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +61 -11
  153. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  154. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +2 -2
  155. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  156. package/dist/collection/components/ic-input-label/ic-input-label.js +26 -4
  157. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  158. package/dist/collection/components/ic-link/ic-link.js +1 -4
  159. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  160. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +6 -5
  161. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  162. package/dist/collection/components/ic-menu/ic-menu.js +62 -18
  163. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  164. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +19 -2
  165. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  166. package/dist/collection/components/ic-menu-group/ic-menu-group.js +2 -1
  167. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  168. package/dist/collection/components/ic-menu-item/ic-menu-item.js +10 -14
  169. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  170. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +3 -2
  171. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  172. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  173. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
  174. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -2
  175. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  176. package/dist/collection/components/ic-page-header/ic-page-header.js +35 -4
  177. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  178. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  179. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  180. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +20 -20
  181. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  182. package/dist/collection/components/ic-radio-group/ic-radio-group.js +37 -9
  183. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  184. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +7 -0
  185. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  186. package/dist/collection/components/ic-radio-option/ic-radio-option.js +125 -14
  187. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  188. package/dist/collection/components/ic-search-bar/ic-search-bar.js +54 -22
  189. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  190. package/dist/collection/components/ic-select/ic-select.js +154 -18
  191. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  192. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +7 -0
  193. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  194. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +226 -224
  195. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +39 -19
  196. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  197. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -1
  198. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  199. package/dist/collection/components/ic-skeleton/ic-skeleton.js +26 -4
  200. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  201. package/dist/collection/components/ic-status-tag/ic-status-tag.js +71 -10
  202. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  203. package/dist/collection/components/ic-step/ic-step.js +5 -4
  204. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  205. package/dist/collection/components/ic-switch/ic-switch.js +34 -6
  206. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  207. package/dist/collection/components/ic-tab/ic-tab.js +6 -6
  208. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  209. package/dist/collection/components/ic-tab-context/ic-tab-context.js +3 -3
  210. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  211. package/dist/collection/components/ic-tab-group/ic-tab-group.js +0 -1
  212. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  213. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +4 -3
  214. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  215. package/dist/collection/components/ic-text-field/ic-text-field.js +34 -8
  216. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  217. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +1 -1
  218. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  219. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +17 -17
  220. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  221. package/dist/collection/components/ic-toast/ic-toast.js +2 -2
  222. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  223. package/dist/collection/components/ic-tooltip/ic-tooltip.css +7 -1
  224. package/dist/collection/components/ic-tooltip/ic-tooltip.js +25 -29
  225. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  226. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +0 -8
  227. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  228. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +10 -1
  229. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  230. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  231. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  232. package/dist/collection/components/ic-typography/ic-typography.js +10 -2
  233. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  234. package/dist/collection/utils/constants.js +2 -0
  235. package/dist/collection/utils/constants.js.map +1 -1
  236. package/dist/collection/utils/helpers.js +4 -0
  237. package/dist/collection/utils/helpers.js.map +1 -1
  238. package/dist/collection/utils/types.js.map +1 -1
  239. package/dist/components/helpers.js +7 -1
  240. package/dist/components/helpers.js.map +1 -1
  241. package/dist/components/ic-accordion-group.js.map +1 -1
  242. package/dist/components/ic-back-to-top.js +1 -1
  243. package/dist/components/ic-badge.js +10 -6
  244. package/dist/components/ic-badge.js.map +1 -1
  245. package/dist/components/ic-breadcrumb-group.js +5 -3
  246. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  247. package/dist/components/ic-breadcrumb2.js +4 -4
  248. package/dist/components/ic-breadcrumb2.js.map +1 -1
  249. package/dist/components/ic-button2.js +62 -42
  250. package/dist/components/ic-button2.js.map +1 -1
  251. package/dist/components/ic-card.js +2 -2
  252. package/dist/components/ic-card.js.map +1 -1
  253. package/dist/components/ic-checkbox-group.js +5 -5
  254. package/dist/components/ic-checkbox-group.js.map +1 -1
  255. package/dist/components/ic-checkbox.js +27 -15
  256. package/dist/components/ic-checkbox.js.map +1 -1
  257. package/dist/components/ic-chip.js +10 -4
  258. package/dist/components/ic-chip.js.map +1 -1
  259. package/dist/components/ic-data-entity.js +6 -4
  260. package/dist/components/ic-data-entity.js.map +1 -1
  261. package/dist/components/ic-data-row.js +5 -3
  262. package/dist/components/ic-data-row.js.map +1 -1
  263. package/dist/components/ic-dialog.js +47 -9
  264. package/dist/components/ic-dialog.js.map +1 -1
  265. package/dist/components/ic-divider2.js +1 -1
  266. package/dist/components/ic-empty-state.js +4 -3
  267. package/dist/components/ic-empty-state.js.map +1 -1
  268. package/dist/components/ic-footer-link-group.js +1 -1
  269. package/dist/components/ic-footer-link.js +1 -1
  270. package/dist/components/ic-footer.js +1 -1
  271. package/dist/components/ic-hero.js +9 -5
  272. package/dist/components/ic-hero.js.map +1 -1
  273. package/dist/components/ic-horizontal-scroll2.js +1 -1
  274. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  275. package/dist/components/ic-input-component-container2.js +11 -7
  276. package/dist/components/ic-input-component-container2.js.map +1 -1
  277. package/dist/components/ic-input-label2.js +5 -3
  278. package/dist/components/ic-input-label2.js.map +1 -1
  279. package/dist/components/ic-input-validation2.js +1 -1
  280. package/dist/components/ic-link2.js +1 -4
  281. package/dist/components/ic-link2.js.map +1 -1
  282. package/dist/components/ic-loading-indicator2.js +6 -5
  283. package/dist/components/ic-loading-indicator2.js.map +1 -1
  284. package/dist/components/ic-menu-group.js +2 -1
  285. package/dist/components/ic-menu-group.js.map +1 -1
  286. package/dist/components/ic-menu-item2.js +10 -14
  287. package/dist/components/ic-menu-item2.js.map +1 -1
  288. package/dist/components/ic-menu2.js +34 -16
  289. package/dist/components/ic-menu2.js.map +1 -1
  290. package/dist/components/ic-navigation-button.js +2 -2
  291. package/dist/components/ic-navigation-button.js.map +1 -1
  292. package/dist/components/ic-navigation-group.js +1 -1
  293. package/dist/components/ic-navigation-group.js.map +1 -1
  294. package/dist/components/ic-navigation-item.js +3 -3
  295. package/dist/components/ic-navigation-item.js.map +1 -1
  296. package/dist/components/ic-navigation-menu2.js +1 -1
  297. package/dist/components/ic-page-header.js +8 -3
  298. package/dist/components/ic-page-header.js.map +1 -1
  299. package/dist/components/ic-pagination.js +4 -4
  300. package/dist/components/ic-pagination.js.map +1 -1
  301. package/dist/components/ic-popover-menu.js +20 -20
  302. package/dist/components/ic-popover-menu.js.map +1 -1
  303. package/dist/components/ic-radio-group.js +9 -7
  304. package/dist/components/ic-radio-group.js.map +1 -1
  305. package/dist/components/ic-radio-option.js +26 -14
  306. package/dist/components/ic-radio-option.js.map +1 -1
  307. package/dist/components/ic-search-bar.js +27 -21
  308. package/dist/components/ic-search-bar.js.map +1 -1
  309. package/dist/components/ic-select.js +30 -16
  310. package/dist/components/ic-select.js.map +1 -1
  311. package/dist/components/ic-side-navigation.js +23 -20
  312. package/dist/components/ic-side-navigation.js.map +1 -1
  313. package/dist/components/ic-skeleton.js +4 -2
  314. package/dist/components/ic-skeleton.js.map +1 -1
  315. package/dist/components/ic-status-tag.js +15 -5
  316. package/dist/components/ic-status-tag.js.map +1 -1
  317. package/dist/components/ic-step.js +5 -4
  318. package/dist/components/ic-step.js.map +1 -1
  319. package/dist/components/ic-stepper.js +1 -1
  320. package/dist/components/ic-switch.js +7 -5
  321. package/dist/components/ic-switch.js.map +1 -1
  322. package/dist/components/ic-tab-context.js +3 -3
  323. package/dist/components/ic-tab-context.js.map +1 -1
  324. package/dist/components/ic-tab-group.js +0 -1
  325. package/dist/components/ic-tab-group.js.map +1 -1
  326. package/dist/components/ic-tab-panel.js +4 -3
  327. package/dist/components/ic-tab-panel.js.map +1 -1
  328. package/dist/components/ic-tab.js +6 -6
  329. package/dist/components/ic-tab.js.map +1 -1
  330. package/dist/components/ic-text-field2.js +6 -6
  331. package/dist/components/ic-text-field2.js.map +1 -1
  332. package/dist/components/ic-theme.js +1 -1
  333. package/dist/components/ic-toast.js +2 -2
  334. package/dist/components/ic-toast.js.map +1 -1
  335. package/dist/components/ic-tooltip2.js +9 -28
  336. package/dist/components/ic-tooltip2.js.map +1 -1
  337. package/dist/components/ic-top-navigation.js +4 -4
  338. package/dist/components/ic-top-navigation.js.map +1 -1
  339. package/dist/components/ic-typography2.js +10 -2
  340. package/dist/components/ic-typography2.js.map +1 -1
  341. package/dist/components/types.js.map +1 -1
  342. package/dist/core/core.esm.js +1 -1
  343. package/dist/core/core.esm.js.map +1 -1
  344. package/dist/core/p-027ea4ff.entry.js +2 -0
  345. package/dist/core/{p-9ee852d9.entry.js → p-09022de8.entry.js} +2 -2
  346. package/dist/core/{p-ac82781b.entry.js → p-09eb825d.entry.js} +2 -2
  347. package/dist/core/p-0baa2141.entry.js +2 -0
  348. package/dist/core/p-0baa2141.entry.js.map +1 -0
  349. package/dist/core/p-0dd70d92.entry.js +2 -0
  350. package/dist/core/p-0dd70d92.entry.js.map +1 -0
  351. package/dist/core/p-134b407d.entry.js +2 -0
  352. package/dist/core/p-134b407d.entry.js.map +1 -0
  353. package/dist/core/p-1a5353ed.entry.js +2 -0
  354. package/dist/core/p-1a5353ed.entry.js.map +1 -0
  355. package/dist/core/{p-675fe4db.entry.js → p-27b46a68.entry.js} +2 -2
  356. package/dist/core/p-27b46a68.entry.js.map +1 -0
  357. package/dist/core/{p-64999983.entry.js → p-30f9fabc.entry.js} +2 -2
  358. package/dist/core/p-30f9fabc.entry.js.map +1 -0
  359. package/dist/core/{p-4fbe1dc3.entry.js → p-31236329.entry.js} +2 -2
  360. package/dist/core/p-31236329.entry.js.map +1 -0
  361. package/dist/core/{p-4ef8342f.entry.js → p-3758c2b5.entry.js} +2 -2
  362. package/dist/core/{p-60fef702.entry.js → p-39db6642.entry.js} +2 -2
  363. package/dist/core/p-39db6642.entry.js.map +1 -0
  364. package/dist/core/p-409e437f.js +2 -0
  365. package/dist/core/p-409e437f.js.map +1 -0
  366. package/dist/core/{p-e904d985.entry.js → p-4164e7d5.entry.js} +2 -2
  367. package/dist/core/{p-0e1a4f8d.entry.js → p-46053a32.entry.js} +2 -2
  368. package/dist/core/p-46053a32.entry.js.map +1 -0
  369. package/dist/core/{p-0fdb1e52.entry.js → p-48525498.entry.js} +2 -2
  370. package/dist/core/p-4af7cb4c.entry.js +2 -0
  371. package/dist/core/p-4af7cb4c.entry.js.map +1 -0
  372. package/dist/core/{p-cf95dd66.entry.js → p-500e8584.entry.js} +2 -2
  373. package/dist/core/{p-1650c1c2.entry.js → p-522947f5.entry.js} +2 -2
  374. package/dist/core/p-522947f5.entry.js.map +1 -0
  375. package/dist/core/{p-b42b8ffa.entry.js → p-53533992.entry.js} +2 -2
  376. package/dist/core/p-536b3c97.entry.js +2 -0
  377. package/dist/core/p-536b3c97.entry.js.map +1 -0
  378. package/dist/core/{p-4f070381.entry.js → p-5bb6c79b.entry.js} +2 -2
  379. package/dist/core/p-5bb6c79b.entry.js.map +1 -0
  380. package/dist/core/{p-913da6d0.entry.js → p-5c722379.entry.js} +2 -2
  381. package/dist/core/{p-913da6d0.entry.js.map → p-5c722379.entry.js.map} +1 -1
  382. package/dist/core/p-5c9457e2.entry.js +2 -0
  383. package/dist/core/p-5c9457e2.entry.js.map +1 -0
  384. package/dist/core/p-613aa265.js.map +1 -1
  385. package/dist/core/p-6286ad7b.entry.js +2 -0
  386. package/dist/core/p-6286ad7b.entry.js.map +1 -0
  387. package/dist/core/p-65715458.entry.js +2 -0
  388. package/dist/core/p-65715458.entry.js.map +1 -0
  389. package/dist/core/p-667711a8.entry.js +2 -0
  390. package/dist/core/p-667711a8.entry.js.map +1 -0
  391. package/dist/core/p-6991655b.entry.js +2 -0
  392. package/dist/core/p-6991655b.entry.js.map +1 -0
  393. package/dist/core/{p-038601a3.entry.js → p-69948c3e.entry.js} +2 -2
  394. package/dist/core/{p-038601a3.entry.js.map → p-69948c3e.entry.js.map} +1 -1
  395. package/dist/core/p-6ce0a089.entry.js +2 -0
  396. package/dist/core/p-6ce0a089.entry.js.map +1 -0
  397. package/dist/core/{p-0d71a937.entry.js → p-700559ee.entry.js} +2 -2
  398. package/dist/core/{p-05249867.entry.js → p-72d6619c.entry.js} +2 -2
  399. package/dist/core/{p-2184a72f.entry.js → p-78f0118c.entry.js} +2 -2
  400. package/dist/core/p-78f0118c.entry.js.map +1 -0
  401. package/dist/core/{p-ca6e5474.entry.js → p-7bc6eb83.entry.js} +2 -2
  402. package/dist/core/p-7c913098.entry.js +2 -0
  403. package/dist/core/p-7c913098.entry.js.map +1 -0
  404. package/dist/core/p-8ae11ca6.entry.js +2 -0
  405. package/dist/core/p-8ae11ca6.entry.js.map +1 -0
  406. package/dist/core/p-8fc9b82b.entry.js +2 -0
  407. package/dist/core/p-8fc9b82b.entry.js.map +1 -0
  408. package/dist/core/{p-85903a81.js → p-9d124fc7.js} +3 -3
  409. package/dist/core/p-9d124fc7.js.map +1 -0
  410. package/dist/core/p-9ea62161.entry.js +2 -0
  411. package/dist/core/p-9ea62161.entry.js.map +1 -0
  412. package/dist/core/p-a69c8001.entry.js +2 -0
  413. package/dist/core/p-a69c8001.entry.js.map +1 -0
  414. package/dist/core/p-ae1ed418.entry.js +2 -0
  415. package/dist/core/p-ae1ed418.entry.js.map +1 -0
  416. package/dist/core/{p-a388750d.entry.js → p-af9f1caa.entry.js} +2 -2
  417. package/dist/core/p-af9f1caa.entry.js.map +1 -0
  418. package/dist/core/{p-482397ae.entry.js → p-b80520e9.entry.js} +2 -2
  419. package/dist/core/p-ba25f08a.entry.js +2 -0
  420. package/dist/core/p-ba25f08a.entry.js.map +1 -0
  421. package/dist/core/p-bb085716.entry.js +2 -0
  422. package/dist/core/p-bb085716.entry.js.map +1 -0
  423. package/dist/core/{p-2d21de19.entry.js → p-bb3e7ce5.entry.js} +2 -2
  424. package/dist/core/p-bb3e7ce5.entry.js.map +1 -0
  425. package/dist/core/p-c01d43cf.entry.js +2 -0
  426. package/dist/core/p-c01d43cf.entry.js.map +1 -0
  427. package/dist/core/{p-d9fc7243.entry.js → p-c08b5a9a.entry.js} +2 -2
  428. package/dist/core/p-c08b5a9a.entry.js.map +1 -0
  429. package/dist/core/p-c5b6d645.entry.js +2 -0
  430. package/dist/core/p-c5b6d645.entry.js.map +1 -0
  431. package/dist/core/p-d4522596.entry.js +2 -0
  432. package/dist/core/p-d4522596.entry.js.map +1 -0
  433. package/dist/core/p-d8022cec.entry.js +2 -0
  434. package/dist/core/p-d8022cec.entry.js.map +1 -0
  435. package/dist/core/{p-e59d2d50.entry.js → p-e465a208.entry.js} +2 -2
  436. package/dist/core/{p-1db57a3f.entry.js → p-e71ec1fe.entry.js} +2 -2
  437. package/dist/core/p-e71ec1fe.entry.js.map +1 -0
  438. package/dist/core/{p-c1e8d13e.entry.js → p-ed256f1d.entry.js} +2 -2
  439. package/dist/core/p-f2f8e4aa.entry.js +2 -0
  440. package/dist/core/p-f2f8e4aa.entry.js.map +1 -0
  441. package/dist/core/p-f5947c60.entry.js +2 -0
  442. package/dist/core/p-f5947c60.entry.js.map +1 -0
  443. package/dist/core/p-f5d1a0d7.entry.js +2 -0
  444. package/dist/core/p-f5d1a0d7.entry.js.map +1 -0
  445. package/dist/core/{p-9bd160bb.entry.js → p-f62c902b.entry.js} +2 -2
  446. package/dist/core/p-f62c902b.entry.js.map +1 -0
  447. package/dist/core/p-fee7caf1.entry.js +2 -0
  448. package/dist/core/p-fee7caf1.entry.js.map +1 -0
  449. package/dist/esm/core.js +3 -3
  450. package/dist/esm/{helpers-81a88a11.js → helpers-c325e537.js} +8 -2
  451. package/dist/esm/helpers-c325e537.js.map +1 -0
  452. package/dist/esm/ic-accordion-group.entry.js +1 -1
  453. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  454. package/dist/esm/ic-accordion.entry.js +2 -2
  455. package/dist/esm/ic-alert.entry.js +2 -2
  456. package/dist/esm/ic-back-to-top.entry.js +2 -2
  457. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  458. package/dist/esm/ic-badge.entry.js +10 -6
  459. package/dist/esm/ic-badge.entry.js.map +1 -1
  460. package/dist/esm/ic-breadcrumb-group.entry.js +6 -4
  461. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  462. package/dist/esm/ic-breadcrumb.entry.js +5 -5
  463. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  464. package/dist/esm/ic-button_3.entry.js +70 -71
  465. package/dist/esm/ic-button_3.entry.js.map +1 -1
  466. package/dist/esm/ic-card.entry.js +4 -4
  467. package/dist/esm/ic-card.entry.js.map +1 -1
  468. package/dist/esm/ic-checkbox-group.entry.js +6 -6
  469. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  470. package/dist/esm/ic-checkbox.entry.js +22 -16
  471. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  472. package/dist/esm/ic-chip.entry.js +11 -6
  473. package/dist/esm/ic-chip.entry.js.map +1 -1
  474. package/dist/esm/ic-classification-banner.entry.js +1 -1
  475. package/dist/esm/ic-data-entity.entry.js +6 -5
  476. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  477. package/dist/esm/ic-data-row.entry.js +5 -4
  478. package/dist/esm/ic-data-row.entry.js.map +1 -1
  479. package/dist/esm/ic-dialog.entry.js +46 -10
  480. package/dist/esm/ic-dialog.entry.js.map +1 -1
  481. package/dist/esm/ic-divider.entry.js +2 -2
  482. package/dist/esm/ic-empty-state.entry.js +5 -4
  483. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  484. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  485. package/dist/esm/ic-footer-link.entry.js +2 -2
  486. package/dist/esm/ic-footer.entry.js +2 -2
  487. package/dist/esm/ic-hero.entry.js +9 -6
  488. package/dist/esm/ic-hero.entry.js.map +1 -1
  489. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  490. package/dist/esm/ic-input-component-container_3.entry.js +42 -23
  491. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  492. package/dist/esm/ic-input-label_2.entry.js +5 -4
  493. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  494. package/dist/esm/ic-link.entry.js +3 -6
  495. package/dist/esm/ic-link.entry.js.map +1 -1
  496. package/dist/esm/ic-menu-group.entry.js +4 -2
  497. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  498. package/dist/esm/ic-menu-item.entry.js +11 -15
  499. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  500. package/dist/esm/ic-navigation-button.entry.js +3 -3
  501. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  502. package/dist/esm/ic-navigation-group.entry.js +2 -2
  503. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  504. package/dist/esm/ic-navigation-item.entry.js +4 -4
  505. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  506. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  507. package/dist/esm/ic-page-header.entry.js +8 -4
  508. package/dist/esm/ic-page-header.entry.js.map +1 -1
  509. package/dist/esm/ic-pagination-item.entry.js +2 -2
  510. package/dist/esm/ic-pagination.entry.js +6 -6
  511. package/dist/esm/ic-pagination.entry.js.map +1 -1
  512. package/dist/esm/ic-popover-menu.entry.js +21 -21
  513. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  514. package/dist/esm/ic-radio-group.entry.js +9 -8
  515. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  516. package/dist/esm/ic-radio-option.entry.js +21 -15
  517. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  518. package/dist/esm/ic-search-bar.entry.js +27 -22
  519. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  520. package/dist/esm/ic-section-container.entry.js +1 -1
  521. package/dist/esm/ic-select.entry.js +24 -17
  522. package/dist/esm/ic-select.entry.js.map +1 -1
  523. package/dist/esm/ic-side-navigation.entry.js +23 -21
  524. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  525. package/dist/esm/ic-skeleton.entry.js +4 -3
  526. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  527. package/dist/esm/ic-status-tag.entry.js +14 -6
  528. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  529. package/dist/esm/ic-step.entry.js +7 -5
  530. package/dist/esm/ic-step.entry.js.map +1 -1
  531. package/dist/esm/ic-stepper.entry.js +2 -2
  532. package/dist/esm/ic-switch.entry.js +7 -6
  533. package/dist/esm/ic-switch.entry.js.map +1 -1
  534. package/dist/esm/ic-tab-context.entry.js +4 -4
  535. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  536. package/dist/esm/ic-tab-group.entry.js +2 -3
  537. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  538. package/dist/esm/ic-tab-panel.entry.js +5 -4
  539. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  540. package/dist/esm/ic-tab.entry.js +8 -8
  541. package/dist/esm/ic-tab.entry.js.map +1 -1
  542. package/dist/esm/ic-text-field.entry.js +5 -6
  543. package/dist/esm/ic-text-field.entry.js.map +1 -1
  544. package/dist/esm/ic-theme.entry.js +2 -2
  545. package/dist/esm/ic-toast-region.entry.js +1 -1
  546. package/dist/esm/ic-toast.entry.js +3 -3
  547. package/dist/esm/ic-toast.entry.js.map +1 -1
  548. package/dist/esm/ic-top-navigation.entry.js +5 -5
  549. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  550. package/dist/esm/ic-typography.entry.js +12 -4
  551. package/dist/esm/ic-typography.entry.js.map +1 -1
  552. package/dist/esm/{index-b006ae9d.js → index-813020f1.js} +14 -2
  553. package/dist/esm/index-813020f1.js.map +1 -0
  554. package/dist/esm/loader.js +3 -3
  555. package/dist/esm/types-b2398b37.js.map +1 -1
  556. package/dist/types/components/ic-badge/ic-badge.d.ts +7 -3
  557. package/dist/types/components/ic-button/ic-button.d.ts +12 -5
  558. package/dist/types/components/ic-card/ic-card.d.ts +1 -0
  559. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +28 -1
  560. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -1
  561. package/dist/types/components/ic-chip/ic-chip.d.ts +6 -2
  562. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +10 -2
  563. package/dist/types/components/ic-data-row/ic-data-row.d.ts +7 -2
  564. package/dist/types/components/ic-dialog/ic-dialog.d.ts +11 -5
  565. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +4 -1
  566. package/dist/types/components/ic-hero/ic-hero.d.ts +7 -3
  567. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +13 -5
  568. package/dist/types/components/ic-input-label/ic-input-label.d.ts +5 -1
  569. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +1 -1
  570. package/dist/types/components/ic-menu/ic-menu.d.ts +8 -3
  571. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -0
  572. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -0
  573. package/dist/types/components/ic-page-header/ic-page-header.d.ts +6 -2
  574. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
  575. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -4
  576. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +28 -1
  577. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +6 -2
  578. package/dist/types/components/ic-select/ic-select.d.ts +34 -4
  579. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  580. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +5 -1
  581. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +12 -2
  582. package/dist/types/components/ic-switch/ic-switch.d.ts +6 -1
  583. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -1
  584. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -1
  585. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -1
  586. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +1 -1
  587. package/dist/types/components/ic-text-field/ic-text-field.d.ts +7 -3
  588. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -3
  589. package/dist/types/components.d.ts +370 -57
  590. package/dist/types/utils/helpers.d.ts +1 -0
  591. package/dist/types/utils/types.d.ts +2 -0
  592. package/hydrate/index.js +480 -310
  593. package/package.json +5 -5
  594. package/dist/cjs/helpers-d166f875.js.map +0 -1
  595. package/dist/cjs/index-afe53465.js.map +0 -1
  596. package/dist/core/p-0353a1d8.entry.js +0 -2
  597. package/dist/core/p-0353a1d8.entry.js.map +0 -1
  598. package/dist/core/p-08c6119a.entry.js +0 -2
  599. package/dist/core/p-08c6119a.entry.js.map +0 -1
  600. package/dist/core/p-09004694.entry.js +0 -2
  601. package/dist/core/p-09004694.entry.js.map +0 -1
  602. package/dist/core/p-0e1a4f8d.entry.js.map +0 -1
  603. package/dist/core/p-10bfc292.entry.js +0 -2
  604. package/dist/core/p-10bfc292.entry.js.map +0 -1
  605. package/dist/core/p-1650c1c2.entry.js.map +0 -1
  606. package/dist/core/p-1db57a3f.entry.js.map +0 -1
  607. package/dist/core/p-1ed0a71d.entry.js +0 -2
  608. package/dist/core/p-1ed0a71d.entry.js.map +0 -1
  609. package/dist/core/p-2184a72f.entry.js.map +0 -1
  610. package/dist/core/p-293f4c5f.entry.js +0 -2
  611. package/dist/core/p-293f4c5f.entry.js.map +0 -1
  612. package/dist/core/p-2afa6d29.entry.js +0 -2
  613. package/dist/core/p-2afa6d29.entry.js.map +0 -1
  614. package/dist/core/p-2c09f9e0.entry.js +0 -2
  615. package/dist/core/p-2c09f9e0.entry.js.map +0 -1
  616. package/dist/core/p-2d21de19.entry.js.map +0 -1
  617. package/dist/core/p-32510505.entry.js +0 -2
  618. package/dist/core/p-32510505.entry.js.map +0 -1
  619. package/dist/core/p-4f070381.entry.js.map +0 -1
  620. package/dist/core/p-4fbe1dc3.entry.js.map +0 -1
  621. package/dist/core/p-5401863e.entry.js +0 -2
  622. package/dist/core/p-5401863e.entry.js.map +0 -1
  623. package/dist/core/p-59b24198.entry.js +0 -2
  624. package/dist/core/p-59b24198.entry.js.map +0 -1
  625. package/dist/core/p-5cc070c4.entry.js +0 -2
  626. package/dist/core/p-5cc070c4.entry.js.map +0 -1
  627. package/dist/core/p-5f881644.entry.js +0 -2
  628. package/dist/core/p-5f881644.entry.js.map +0 -1
  629. package/dist/core/p-60fef702.entry.js.map +0 -1
  630. package/dist/core/p-64999983.entry.js.map +0 -1
  631. package/dist/core/p-675fe4db.entry.js.map +0 -1
  632. package/dist/core/p-6aec6bce.entry.js +0 -2
  633. package/dist/core/p-6aec6bce.entry.js.map +0 -1
  634. package/dist/core/p-6ec3cd12.entry.js +0 -2
  635. package/dist/core/p-6ec3cd12.entry.js.map +0 -1
  636. package/dist/core/p-76daa5b0.entry.js +0 -2
  637. package/dist/core/p-777e5556.entry.js +0 -2
  638. package/dist/core/p-777e5556.entry.js.map +0 -1
  639. package/dist/core/p-7a61d94a.entry.js +0 -2
  640. package/dist/core/p-7a61d94a.entry.js.map +0 -1
  641. package/dist/core/p-85903a81.js.map +0 -1
  642. package/dist/core/p-932fe2a0.entry.js +0 -2
  643. package/dist/core/p-932fe2a0.entry.js.map +0 -1
  644. package/dist/core/p-9bd160bb.entry.js.map +0 -1
  645. package/dist/core/p-a388750d.entry.js.map +0 -1
  646. package/dist/core/p-a46c1690.entry.js +0 -2
  647. package/dist/core/p-a46c1690.entry.js.map +0 -1
  648. package/dist/core/p-abf60097.entry.js +0 -2
  649. package/dist/core/p-abf60097.entry.js.map +0 -1
  650. package/dist/core/p-ad520f36.entry.js +0 -2
  651. package/dist/core/p-ad520f36.entry.js.map +0 -1
  652. package/dist/core/p-b96bd8be.entry.js +0 -2
  653. package/dist/core/p-b96bd8be.entry.js.map +0 -1
  654. package/dist/core/p-c30d9b20.js +0 -2
  655. package/dist/core/p-c30d9b20.js.map +0 -1
  656. package/dist/core/p-ceed0fee.entry.js +0 -2
  657. package/dist/core/p-ceed0fee.entry.js.map +0 -1
  658. package/dist/core/p-d005a71a.entry.js +0 -2
  659. package/dist/core/p-d005a71a.entry.js.map +0 -1
  660. package/dist/core/p-d5282ede.entry.js +0 -2
  661. package/dist/core/p-d5282ede.entry.js.map +0 -1
  662. package/dist/core/p-d9fc7243.entry.js.map +0 -1
  663. package/dist/core/p-db4a15bd.entry.js +0 -2
  664. package/dist/core/p-db4a15bd.entry.js.map +0 -1
  665. package/dist/core/p-e75b04af.entry.js +0 -2
  666. package/dist/core/p-e75b04af.entry.js.map +0 -1
  667. package/dist/core/p-ea55f25c.entry.js +0 -2
  668. package/dist/core/p-ea55f25c.entry.js.map +0 -1
  669. package/dist/esm/helpers-81a88a11.js.map +0 -1
  670. package/dist/esm/index-b006ae9d.js.map +0 -1
  671. /package/dist/core/{p-76daa5b0.entry.js.map → p-027ea4ff.entry.js.map} +0 -0
  672. /package/dist/core/{p-9ee852d9.entry.js.map → p-09022de8.entry.js.map} +0 -0
  673. /package/dist/core/{p-ac82781b.entry.js.map → p-09eb825d.entry.js.map} +0 -0
  674. /package/dist/core/{p-4ef8342f.entry.js.map → p-3758c2b5.entry.js.map} +0 -0
  675. /package/dist/core/{p-e904d985.entry.js.map → p-4164e7d5.entry.js.map} +0 -0
  676. /package/dist/core/{p-0fdb1e52.entry.js.map → p-48525498.entry.js.map} +0 -0
  677. /package/dist/core/{p-cf95dd66.entry.js.map → p-500e8584.entry.js.map} +0 -0
  678. /package/dist/core/{p-b42b8ffa.entry.js.map → p-53533992.entry.js.map} +0 -0
  679. /package/dist/core/{p-0d71a937.entry.js.map → p-700559ee.entry.js.map} +0 -0
  680. /package/dist/core/{p-05249867.entry.js.map → p-72d6619c.entry.js.map} +0 -0
  681. /package/dist/core/{p-ca6e5474.entry.js.map → p-7bc6eb83.entry.js.map} +0 -0
  682. /package/dist/core/{p-482397ae.entry.js.map → p-b80520e9.entry.js.map} +0 -0
  683. /package/dist/core/{p-e59d2d50.entry.js.map → p-e465a208.entry.js.map} +0 -0
  684. /package/dist/core/{p-c1e8d13e.entry.js.map → p-ed256f1d.entry.js.map} +0 -0
@@ -32,6 +32,7 @@ export class DataRow {
32
32
  this.deviceSize = DEVICE_SIZES.XL;
33
33
  this.entitySize = undefined;
34
34
  this.label = undefined;
35
+ this.size = "default";
35
36
  this.small = false;
36
37
  this.value = undefined;
37
38
  }
@@ -71,9 +72,9 @@ export class DataRow {
71
72
  component.forEach((child) => child.setAttribute("aria-label", "for " + this.label + " row"));
72
73
  }
73
74
  render() {
74
- const { label, value, small } = this;
75
+ const { label, value, small, size } = this;
75
76
  return (h(Host, { class: {
76
- ["small"]: small,
77
+ ["small"]: small || size === "small",
77
78
  ["breakpoint-medium"]: this.entitySize === "m",
78
79
  ["breakpoint-xs"]: this.entitySize === "xs",
79
80
  }, role: "listitem" }, h("div", { class: "data" }, h("div", { class: "text-cells" }, this.renderLabel(label), h("div", { class: "value" }, h("slot", { name: "value" }, h("ic-typography", { variant: "body" }, value)))), this.hasEndComponent && (h("div", { class: "end-component" }, h("div", { role: "cell" }, h("slot", { name: "end-component" }))))), h("div", { class: "divider" })));
@@ -109,6 +110,30 @@ export class DataRow {
109
110
  "attribute": "label",
110
111
  "reflect": false
111
112
  },
113
+ "size": {
114
+ "type": "string",
115
+ "mutable": false,
116
+ "complexType": {
117
+ "original": "IcSizesNoLarge",
118
+ "resolved": "\"default\" | \"small\"",
119
+ "references": {
120
+ "IcSizesNoLarge": {
121
+ "location": "import",
122
+ "path": "../../utils/types",
123
+ "id": "src/utils/types.ts::IcSizesNoLarge"
124
+ }
125
+ }
126
+ },
127
+ "required": false,
128
+ "optional": true,
129
+ "docs": {
130
+ "tags": [],
131
+ "text": "The size of the data row component."
132
+ },
133
+ "attribute": "size",
134
+ "reflect": false,
135
+ "defaultValue": "\"default\""
136
+ },
112
137
  "small": {
113
138
  "type": "boolean",
114
139
  "mutable": false,
@@ -118,10 +143,13 @@ export class DataRow {
118
143
  "references": {}
119
144
  },
120
145
  "required": false,
121
- "optional": false,
146
+ "optional": true,
122
147
  "docs": {
123
- "tags": [],
124
- "text": "If `true`, the small styling will be applied to the row. This is automatically applied if small is set on the parent data heading."
148
+ "tags": [{
149
+ "name": "deprecated",
150
+ "text": "This prop should not be used anymore. Set prop `size` to \"small\" instead."
151
+ }],
152
+ "text": ""
125
153
  },
126
154
  "attribute": "small",
127
155
  "reflect": false,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-data-row.js","sourceRoot":"","sources":["../../../src/components/ic-data-row/ic-data-row.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() entitySize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label: string;\n\n /**\n * If `true`, the small styling will be applied to the row. This is automatically applied if small is set on the parent data heading.\n */\n @Prop() small: boolean = false;\n\n /**\n * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value: string;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) {\n this.labelEndComponent();\n }\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const rowSize = this.el.shadowRoot.querySelector(\".data\")?.clientWidth;\n if (rowSize) {\n if (rowSize + 46 < DEVICE_SIZES.S) {\n this.entitySize = \"xs\";\n } else if (rowSize + 46 < DEVICE_SIZES.M) {\n this.entitySize = \"m\";\n } else {\n this.entitySize = \"xl\";\n }\n }\n }\n\n /**\n * Renders the label either as a ic-typography or slot. Slotted content takes precedence.\n * @param label string - label of value\n * @returns HTMLDivElement - returns label as slot or ic-typography with label as textContent\n */\n private renderLabel = (label: string) => {\n if (isSlotUsed(this.el, \"label\")) {\n return (\n <div class=\"label\">\n <slot name=\"label\"></slot>\n </div>\n );\n } else if (label) {\n return (\n <div class=\"label\">\n <ic-typography\n variant={this.entitySize === \"xs\" ? \"label\" : \"subtitle-large\"}\n >\n {label}\n </ic-typography>\n </div>\n );\n }\n\n return null;\n };\n\n private labelEndComponent(): void {\n const component = this.el.shadowRoot.querySelectorAll(\n \"slot[name=end-component]\"\n );\n\n component.forEach((child: HTMLElement) =>\n child.setAttribute(\"aria-label\", \"for \" + this.label + \" row\")\n );\n }\n\n render() {\n const { label, value, small } = this;\n\n return (\n <Host\n class={{\n [\"small\"]: small,\n [\"breakpoint-medium\"]: this.entitySize === \"m\",\n [\"breakpoint-xs\"]: this.entitySize === \"xs\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {this.renderLabel(label)}\n <div class=\"value\">\n <slot name=\"value\">\n <ic-typography variant=\"body\">{value}</ic-typography>\n </slot>\n </div>\n </div>\n {this.hasEndComponent && (\n <div class=\"end-component\">\n <div role=\"cell\">\n <slot name=\"end-component\"></slot>\n </div>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-data-row.js","sourceRoot":"","sources":["../../../src/components/ic-data-row/ic-data-row.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\nimport { IcSizesNoLarge } from \"../../utils/types\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() entitySize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label: string;\n\n /**\n * The size of the data row component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value: string;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) {\n this.labelEndComponent();\n }\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const rowSize = this.el.shadowRoot.querySelector(\".data\")?.clientWidth;\n if (rowSize) {\n if (rowSize + 46 < DEVICE_SIZES.S) {\n this.entitySize = \"xs\";\n } else if (rowSize + 46 < DEVICE_SIZES.M) {\n this.entitySize = \"m\";\n } else {\n this.entitySize = \"xl\";\n }\n }\n }\n\n /**\n * Renders the label either as a ic-typography or slot. Slotted content takes precedence.\n * @param label string - label of value\n * @returns HTMLDivElement - returns label as slot or ic-typography with label as textContent\n */\n private renderLabel = (label: string) => {\n if (isSlotUsed(this.el, \"label\")) {\n return (\n <div class=\"label\">\n <slot name=\"label\"></slot>\n </div>\n );\n } else if (label) {\n return (\n <div class=\"label\">\n <ic-typography\n variant={this.entitySize === \"xs\" ? \"label\" : \"subtitle-large\"}\n >\n {label}\n </ic-typography>\n </div>\n );\n }\n\n return null;\n };\n\n private labelEndComponent(): void {\n const component = this.el.shadowRoot.querySelectorAll(\n \"slot[name=end-component]\"\n );\n\n component.forEach((child: HTMLElement) =>\n child.setAttribute(\"aria-label\", \"for \" + this.label + \" row\")\n );\n }\n\n render() {\n const { label, value, small, size } = this;\n\n return (\n <Host\n class={{\n [\"small\"]: small || size === \"small\",\n [\"breakpoint-medium\"]: this.entitySize === \"m\",\n [\"breakpoint-xs\"]: this.entitySize === \"xs\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {this.renderLabel(label)}\n <div class=\"value\">\n <slot name=\"value\">\n <ic-typography variant=\"body\">{value}</ic-typography>\n </slot>\n </div>\n </div>\n {this.hasEndComponent && (\n <div class=\"end-component\">\n <div role=\"cell\">\n <slot name=\"end-component\"></slot>\n </div>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"]}
@@ -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"));
@@ -168,6 +169,7 @@ export class Dialog {
168
169
  this.dismissLabel = "Dismiss";
169
170
  this.heading = undefined;
170
171
  this.label = undefined;
172
+ this.open = undefined;
171
173
  this.size = "small";
172
174
  this.status = undefined;
173
175
  this.buttonProps = [
@@ -178,6 +180,38 @@ export class Dialog {
178
180
  { label: "Confirm", onclick: "this.confirmDialog();" },
179
181
  ];
180
182
  }
183
+ watchOpenHandler() {
184
+ if (this.open) {
185
+ this.dialogRendered = true;
186
+ this.dialogEl.showModal();
187
+ setTimeout(() => {
188
+ this.fadeIn = true;
189
+ }, 10);
190
+ setTimeout(() => {
191
+ this.setInitialFocus();
192
+ checkResizeObserver(this.runResizeObserver);
193
+ }, 75);
194
+ setTimeout(() => {
195
+ this.getFocusedElementIndex();
196
+ this.icDialogOpened.emit();
197
+ }, 80);
198
+ }
199
+ else {
200
+ this.fadeIn = false;
201
+ if (this.resizeObserver !== null) {
202
+ this.resizeObserver.disconnect();
203
+ }
204
+ setTimeout(() => {
205
+ var _a;
206
+ this.dialogRendered = false;
207
+ this.dialogEl.close();
208
+ (_a = this.sourceElement) === null || _a === void 0 ? void 0 : _a.focus();
209
+ this.el.removeAttribute(this.DATA_OVERFLOW);
210
+ this.dialogHeight = 0;
211
+ this.icDialogClosed.emit();
212
+ }, 80);
213
+ }
214
+ }
181
215
  watchPropHandler() {
182
216
  this.setButtonOnClick();
183
217
  }
@@ -196,7 +230,9 @@ export class Dialog {
196
230
  this.focusNextInteractiveElement(ev.shiftKey);
197
231
  break;
198
232
  case "Escape":
199
- !ev.repeat && this.hideDialog();
233
+ if (!ev.repeat) {
234
+ this.open = false;
235
+ }
200
236
  ev.stopImmediatePropagation();
201
237
  break;
202
238
  }
@@ -212,12 +248,12 @@ export class Dialog {
212
248
  rect.left <= ev.clientX &&
213
249
  ev.clientX <= rect.left + rect.width;
214
250
  if (!isInDialog) {
215
- this.hideDialog();
251
+ this.open = false;
216
252
  }
217
253
  }
218
254
  }
219
255
  /**
220
- * Use to show the dialog.
256
+ * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.
221
257
  */
222
258
  async showDialog() {
223
259
  this.dialogRendered = true;
@@ -235,7 +271,7 @@ export class Dialog {
235
271
  }, 80);
236
272
  }
237
273
  /**
238
- * Use to hide the dialog.
274
+ * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.
239
275
  */
240
276
  async hideDialog() {
241
277
  this.fadeIn = false;
@@ -257,7 +293,7 @@ export class Dialog {
257
293
  */
258
294
  async cancelDialog() {
259
295
  this.icDialogCancelled.emit();
260
- this.hideDialog();
296
+ this.open = false;
261
297
  }
262
298
  /**
263
299
  * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.
@@ -282,7 +318,7 @@ export class Dialog {
282
318
  }
283
319
  render() {
284
320
  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
+ 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" }, 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
322
  [this.DIALOG_CONTROLS]: true,
287
323
  ["triple-button"]: buttonProps.length === 3,
288
324
  } }, h("slot", { name: this.DIALOG_CONTROLS }, !isSlotUsed(this.el, this.DIALOG_CONTROLS) &&
@@ -322,8 +358,11 @@ export class Dialog {
322
358
  "required": false,
323
359
  "optional": true,
324
360
  "docs": {
325
- "tags": [],
326
- "text": "If a status is set, sets the heading for the displayed alert."
361
+ "tags": [{
362
+ "name": "deprecated",
363
+ "text": "This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a heading instead."
364
+ }],
365
+ "text": ""
327
366
  },
328
367
  "attribute": "alert-heading",
329
368
  "reflect": false
@@ -339,8 +378,11 @@ export class Dialog {
339
378
  "required": false,
340
379
  "optional": true,
341
380
  "docs": {
342
- "tags": [],
343
- "text": "If a status is set, sets the message for the displayed alert."
381
+ "tags": [{
382
+ "name": "deprecated",
383
+ "text": "This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a message instead."
384
+ }],
385
+ "text": ""
344
386
  },
345
387
  "attribute": "alert-message",
346
388
  "reflect": false
@@ -451,6 +493,24 @@ export class Dialog {
451
493
  "attribute": "label",
452
494
  "reflect": false
453
495
  },
496
+ "open": {
497
+ "type": "boolean",
498
+ "mutable": true,
499
+ "complexType": {
500
+ "original": "boolean",
501
+ "resolved": "boolean",
502
+ "references": {}
503
+ },
504
+ "required": false,
505
+ "optional": false,
506
+ "docs": {
507
+ "tags": [],
508
+ "text": "If `true`, the dialog will be displayed."
509
+ },
510
+ "attribute": "open",
511
+ "reflect": true,
512
+ "defaultValue": "undefined"
513
+ },
454
514
  "size": {
455
515
  "type": "string",
456
516
  "mutable": false,
@@ -480,8 +540,11 @@ export class Dialog {
480
540
  "required": false,
481
541
  "optional": true,
482
542
  "docs": {
483
- "tags": [],
484
- "text": "If set, displays an alert of the corresponding variant below the heading."
543
+ "tags": [{
544
+ "name": "deprecated",
545
+ "text": "This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a variant instead."
546
+ }],
547
+ "text": ""
485
548
  },
486
549
  "attribute": "status",
487
550
  "reflect": false
@@ -588,8 +651,11 @@ export class Dialog {
588
651
  "return": "Promise<void>"
589
652
  },
590
653
  "docs": {
591
- "text": "Use to show the dialog.",
592
- "tags": []
654
+ "text": "",
655
+ "tags": [{
656
+ "name": "deprecated",
657
+ "text": "This method should not be used anymore. Use open prop to set dialog visibility."
658
+ }]
593
659
  }
594
660
  },
595
661
  "hideDialog": {
@@ -605,8 +671,11 @@ export class Dialog {
605
671
  "return": "Promise<void>"
606
672
  },
607
673
  "docs": {
608
- "text": "Use to hide the dialog.",
609
- "tags": []
674
+ "text": "",
675
+ "tags": [{
676
+ "name": "deprecated",
677
+ "text": "This method should not be used anymore. Use open prop to set dialog visibility."
678
+ }]
610
679
  }
611
680
  },
612
681
  "cancelDialog": {
@@ -648,6 +717,9 @@ export class Dialog {
648
717
  static get elementRef() { return "el"; }
649
718
  static get watchers() {
650
719
  return [{
720
+ "propName": "open",
721
+ "methodName": "watchOpenHandler"
722
+ }, {
651
723
  "propName": "buttonProps",
652
724
  "methodName": "watchPropHandler"
653
725
  }];
@@ -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;IAkPtC,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;0BAvYiC,KAAK;kBACb,KAAK;;;mBAeJ,IAAI;gCAKS,IAAI;uBAKb,KAAK;wBAKL,SAAS;;;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,GACb,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;UACN,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,CACR;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 * 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 } = 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 {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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAS,CAAC,GAAG,EAAE;EACb,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;EACzB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCD,CACA,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;EAC9C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB;;;;;;;;;;;;;;;;;;KAkBD,CACA,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB;;;;;;;;;;;;;;;;;;;KAmBD,CACA,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCD,CACA,CAAC;IAEF,MAAM,IAAI,CAAC,WAAW,CAAC;MACrB,KAAK,EAAE,GAAG;MACV,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE1C,IAAI,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,IAAI,CAAC,WAAW,CAAC;MACrB,KAAK,EAAE,GAAG;MACV,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEtC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","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"]}