@ukic/canary-web-components 3.0.0-canary.19 → 3.0.0-canary.20

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 (554) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-f4e7322b.js → helpers-274ac318.js} +30 -32
  3. package/dist/cjs/helpers-274ac318.js.map +1 -0
  4. package/dist/cjs/{helpers-a5405964.js → helpers-da852478.js} +4 -2
  5. package/dist/cjs/helpers-da852478.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +135 -142
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -5
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox_3.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-data-table.cjs.entry.js +91 -48
  28. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-date-input.cjs.entry.js +5 -5
  30. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-date-picker.cjs.entry.js +11 -11
  32. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  38. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  41. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  43. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +19 -14
  45. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-input-label_2.cjs.entry.js +36 -13
  47. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-navigation-button.cjs.entry.js +31 -39
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-group.cjs.entry.js +7 -4
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  62. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-pagination_4.cjs.entry.js +20 -20
  64. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
  68. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  70. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-search-bar.cjs.entry.js +28 -12
  72. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  74. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-side-navigation.cjs.entry.js +16 -17
  76. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  78. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  80. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  82. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  84. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  86. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  88. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  90. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  92. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  94. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  96. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  97. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  99. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  101. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  103. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  105. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ic-top-navigation.cjs.entry.js +15 -9
  107. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ic-tree-item.cjs.entry.js +31 -33
  109. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ic-tree-view.cjs.entry.js +4 -15
  111. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  113. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  114. package/dist/cjs/loader.cjs.js +1 -1
  115. package/dist/collection/components/ic-data-table/ic-data-table.css +12 -6
  116. package/dist/collection/components/ic-data-table/ic-data-table.js +119 -46
  117. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  118. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +15 -1
  119. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
  120. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  121. package/dist/collection/components/ic-data-table/story-data.js +121 -6
  122. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  123. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js +5 -1
  124. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js.map +1 -1
  125. package/dist/collection/components/ic-date-input/ic-date-input.js +7 -4
  126. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  127. package/dist/collection/components/ic-date-input/ic-date-input.stories.js +13 -4
  128. package/dist/collection/components/ic-date-input/ic-date-input.stories.js.map +1 -1
  129. package/dist/collection/components/ic-date-picker/ic-date-picker.js +13 -10
  130. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  131. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +9 -1
  132. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -1
  133. package/dist/collection/components/ic-date-picker/story-data.js +25 -0
  134. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  135. package/dist/collection/components/ic-tree-item/ic-tree-item.css +12 -21
  136. package/dist/collection/components/ic-tree-item/ic-tree-item.js +50 -56
  137. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  138. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -36
  139. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  140. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js +29 -54
  141. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js.map +1 -1
  142. package/dist/collection/components/ic-tree-view/ic-tree-view.types.js.map +1 -1
  143. package/dist/collection/utils/helpers.js +3 -1
  144. package/dist/collection/utils/helpers.js.map +1 -1
  145. package/dist/components/helpers.js +29 -32
  146. package/dist/components/helpers.js.map +1 -1
  147. package/dist/components/helpers2.js +3 -1
  148. package/dist/components/helpers2.js.map +1 -1
  149. package/dist/components/ic-button2.js +3 -3
  150. package/dist/components/ic-button2.js.map +1 -1
  151. package/dist/components/ic-checkbox-group.js +4 -4
  152. package/dist/components/ic-checkbox-group.js.map +1 -1
  153. package/dist/components/ic-data-list.js +2 -2
  154. package/dist/components/ic-data-list.js.map +1 -1
  155. package/dist/components/ic-data-row.js +2 -2
  156. package/dist/components/ic-data-row.js.map +1 -1
  157. package/dist/components/ic-data-table.js +91 -47
  158. package/dist/components/ic-data-table.js.map +1 -1
  159. package/dist/components/ic-date-input2.js +4 -4
  160. package/dist/components/ic-date-input2.js.map +1 -1
  161. package/dist/components/ic-date-picker.js +10 -10
  162. package/dist/components/ic-date-picker.js.map +1 -1
  163. package/dist/components/ic-dialog.js +1 -1
  164. package/dist/components/ic-dialog.js.map +1 -1
  165. package/dist/components/ic-empty-state2.js +2 -2
  166. package/dist/components/ic-empty-state2.js.map +1 -1
  167. package/dist/components/ic-footer-link.js +2 -2
  168. package/dist/components/ic-footer-link.js.map +1 -1
  169. package/dist/components/ic-hero.js +4 -4
  170. package/dist/components/ic-hero.js.map +1 -1
  171. package/dist/components/ic-horizontal-scroll2.js +5 -5
  172. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  173. package/dist/components/ic-input-component-container2.js +3 -3
  174. package/dist/components/ic-input-component-container2.js.map +1 -1
  175. package/dist/components/ic-input-container2.js +2 -2
  176. package/dist/components/ic-input-container2.js.map +1 -1
  177. package/dist/components/ic-input-label2.js +33 -10
  178. package/dist/components/ic-input-label2.js.map +1 -1
  179. package/dist/components/ic-input-validation2.js +3 -3
  180. package/dist/components/ic-input-validation2.js.map +1 -1
  181. package/dist/components/ic-link2.js +1 -1
  182. package/dist/components/ic-link2.js.map +1 -1
  183. package/dist/components/ic-loading-indicator2.js +139 -143
  184. package/dist/components/ic-loading-indicator2.js.map +1 -1
  185. package/dist/components/ic-menu-group.js +1 -1
  186. package/dist/components/ic-menu-group.js.map +1 -1
  187. package/dist/components/ic-menu2.js +16 -9
  188. package/dist/components/ic-menu2.js.map +1 -1
  189. package/dist/components/ic-navigation-button.js +32 -41
  190. package/dist/components/ic-navigation-button.js.map +1 -1
  191. package/dist/components/ic-navigation-group.js +8 -5
  192. package/dist/components/ic-navigation-group.js.map +1 -1
  193. package/dist/components/ic-navigation-item.js +2 -2
  194. package/dist/components/ic-navigation-item.js.map +1 -1
  195. package/dist/components/ic-navigation-menu2.js +5 -5
  196. package/dist/components/ic-navigation-menu2.js.map +1 -1
  197. package/dist/components/ic-page-header.js +6 -6
  198. package/dist/components/ic-page-header.js.map +1 -1
  199. package/dist/components/ic-pagination-item2.js +1 -1
  200. package/dist/components/ic-pagination-item2.js.map +1 -1
  201. package/dist/components/ic-pagination2.js +4 -4
  202. package/dist/components/ic-pagination2.js.map +1 -1
  203. package/dist/components/ic-popover-menu.js +4 -4
  204. package/dist/components/ic-popover-menu.js.map +1 -1
  205. package/dist/components/ic-radio-group.js +5 -5
  206. package/dist/components/ic-radio-group.js.map +1 -1
  207. package/dist/components/ic-radio-option.js +4 -4
  208. package/dist/components/ic-radio-option.js.map +1 -1
  209. package/dist/components/ic-search-bar.js +31 -12
  210. package/dist/components/ic-search-bar.js.map +1 -1
  211. package/dist/components/ic-section-container2.js +2 -2
  212. package/dist/components/ic-section-container2.js.map +1 -1
  213. package/dist/components/ic-select2.js +7 -7
  214. package/dist/components/ic-select2.js.map +1 -1
  215. package/dist/components/ic-side-navigation.js +16 -17
  216. package/dist/components/ic-side-navigation.js.map +1 -1
  217. package/dist/components/ic-skeleton.js +2 -2
  218. package/dist/components/ic-skeleton.js.map +1 -1
  219. package/dist/components/ic-skip-link.js +2 -2
  220. package/dist/components/ic-skip-link.js.map +1 -1
  221. package/dist/components/ic-status-tag.js +2 -2
  222. package/dist/components/ic-status-tag.js.map +1 -1
  223. package/dist/components/ic-step.js +13 -13
  224. package/dist/components/ic-step.js.map +1 -1
  225. package/dist/components/ic-stepper.js +2 -2
  226. package/dist/components/ic-stepper.js.map +1 -1
  227. package/dist/components/ic-switch.js +5 -5
  228. package/dist/components/ic-switch.js.map +1 -1
  229. package/dist/components/ic-tab-context.js +1 -1
  230. package/dist/components/ic-tab-context.js.map +1 -1
  231. package/dist/components/ic-tab-group.js +2 -2
  232. package/dist/components/ic-tab-group.js.map +1 -1
  233. package/dist/components/ic-tab-panel.js +2 -2
  234. package/dist/components/ic-tab-panel.js.map +1 -1
  235. package/dist/components/ic-text-field2.js +7 -7
  236. package/dist/components/ic-text-field2.js.map +1 -1
  237. package/dist/components/ic-theme.js +2 -2
  238. package/dist/components/ic-theme.js.map +1 -1
  239. package/dist/components/ic-toast-region.js +1 -1
  240. package/dist/components/ic-toast-region.js.map +1 -1
  241. package/dist/components/ic-toast.js +4 -4
  242. package/dist/components/ic-toast.js.map +1 -1
  243. package/dist/components/ic-toggle-button-group.js +2 -2
  244. package/dist/components/ic-toggle-button-group.js.map +1 -1
  245. package/dist/components/ic-toggle-button.js +3 -3
  246. package/dist/components/ic-toggle-button.js.map +1 -1
  247. package/dist/components/ic-top-navigation.js +15 -9
  248. package/dist/components/ic-top-navigation.js.map +1 -1
  249. package/dist/components/ic-tree-item.js +31 -33
  250. package/dist/components/ic-tree-item.js.map +1 -1
  251. package/dist/components/ic-tree-view.js +3 -16
  252. package/dist/components/ic-tree-view.js.map +1 -1
  253. package/dist/components/ic-typography2.js +2 -2
  254. package/dist/components/ic-typography2.js.map +1 -1
  255. package/dist/core/core.css +29 -25
  256. package/dist/core/core.esm.js +1 -1
  257. package/dist/core/core.esm.js.map +1 -1
  258. package/dist/core/{p-b7d117e8.entry.js → p-09acf70a.entry.js} +2 -2
  259. package/dist/core/{p-578a02ff.entry.js → p-0bc8652d.entry.js} +2 -2
  260. package/dist/core/{p-578a02ff.entry.js.map → p-0bc8652d.entry.js.map} +1 -1
  261. package/dist/core/{p-c5ffe2cf.entry.js → p-0f86ea09.entry.js} +2 -2
  262. package/dist/core/{p-c5ffe2cf.entry.js.map → p-0f86ea09.entry.js.map} +1 -1
  263. package/dist/core/p-13f52d7b.js +2 -0
  264. package/dist/core/p-13f52d7b.js.map +1 -0
  265. package/dist/core/{p-e38dd019.entry.js → p-28b10396.entry.js} +2 -2
  266. package/dist/core/{p-1fd22368.entry.js → p-29601c16.entry.js} +2 -2
  267. package/dist/core/{p-1673d010.entry.js → p-2c27c85b.entry.js} +2 -2
  268. package/dist/core/{p-1673d010.entry.js.map → p-2c27c85b.entry.js.map} +1 -1
  269. package/dist/core/{p-976f4280.entry.js → p-301131d6.entry.js} +2 -2
  270. package/dist/core/{p-976f4280.entry.js.map → p-301131d6.entry.js.map} +1 -1
  271. package/dist/core/{p-887b1302.entry.js → p-304c6a01.entry.js} +2 -2
  272. package/dist/core/p-304c6a01.entry.js.map +1 -0
  273. package/dist/core/{p-8d2d9e11.entry.js → p-3352cb6c.entry.js} +2 -2
  274. package/dist/core/{p-8d2d9e11.entry.js.map → p-3352cb6c.entry.js.map} +1 -1
  275. package/dist/core/{p-dee21f6d.entry.js → p-3448c713.entry.js} +2 -2
  276. package/dist/core/{p-dee21f6d.entry.js.map → p-3448c713.entry.js.map} +1 -1
  277. package/dist/core/{p-e003ad46.entry.js → p-3b994e61.entry.js} +2 -2
  278. package/dist/core/{p-e003ad46.entry.js.map → p-3b994e61.entry.js.map} +1 -1
  279. package/dist/core/{p-1f18bbf6.entry.js → p-3f45c7ce.entry.js} +2 -2
  280. package/dist/core/{p-1f18bbf6.entry.js.map → p-3f45c7ce.entry.js.map} +1 -1
  281. package/dist/core/{p-f9e78341.entry.js → p-4150f333.entry.js} +2 -2
  282. package/dist/core/p-4150f333.entry.js.map +1 -0
  283. package/dist/core/{p-16e78c1d.entry.js → p-4271e7f4.entry.js} +2 -2
  284. package/dist/core/{p-16e78c1d.entry.js.map → p-4271e7f4.entry.js.map} +1 -1
  285. package/dist/core/{p-6e0f4278.entry.js → p-4d5dfb71.entry.js} +2 -2
  286. package/dist/core/{p-ba5e1b21.entry.js → p-4e2ef907.entry.js} +2 -2
  287. package/dist/core/p-4f941e4c.entry.js +2 -0
  288. package/dist/core/p-4f941e4c.entry.js.map +1 -0
  289. package/dist/core/{p-920f6480.entry.js → p-57e881b4.entry.js} +2 -2
  290. package/dist/core/{p-920f6480.entry.js.map → p-57e881b4.entry.js.map} +1 -1
  291. package/dist/core/p-5f8b09e4.entry.js +2 -0
  292. package/dist/core/p-5f8b09e4.entry.js.map +1 -0
  293. package/dist/core/{p-8ae0fd6f.entry.js → p-6938e1d9.entry.js} +2 -2
  294. package/dist/core/{p-671acf27.entry.js → p-693a568b.entry.js} +2 -2
  295. package/dist/core/{p-29a49ea2.entry.js → p-6c97db37.entry.js} +2 -2
  296. package/dist/core/{p-29a49ea2.entry.js.map → p-6c97db37.entry.js.map} +1 -1
  297. package/dist/core/{p-d4903dcd.entry.js → p-6dd73165.entry.js} +2 -2
  298. package/dist/core/{p-d4903dcd.entry.js.map → p-6dd73165.entry.js.map} +1 -1
  299. package/dist/core/{p-5926c2b2.entry.js → p-6f7e8b3e.entry.js} +2 -2
  300. package/dist/core/{p-5926c2b2.entry.js.map → p-6f7e8b3e.entry.js.map} +1 -1
  301. package/dist/core/p-7001f1c1.entry.js +2 -0
  302. package/dist/core/p-7001f1c1.entry.js.map +1 -0
  303. package/dist/core/p-704c5fee.entry.js +2 -0
  304. package/dist/core/{p-b92727c0.entry.js.map → p-704c5fee.entry.js.map} +1 -1
  305. package/dist/core/{p-a894ddb6.entry.js → p-7436d8de.entry.js} +2 -2
  306. package/dist/core/p-795afeb2.entry.js +2 -0
  307. package/dist/core/p-795afeb2.entry.js.map +1 -0
  308. package/dist/core/p-7dcdb89b.entry.js +2 -0
  309. package/dist/core/p-7dcdb89b.entry.js.map +1 -0
  310. package/dist/core/p-826a4e46.entry.js +2 -0
  311. package/dist/core/p-826a4e46.entry.js.map +1 -0
  312. package/dist/core/{p-9989ec00.entry.js → p-82941d0a.entry.js} +2 -2
  313. package/dist/core/{p-9989ec00.entry.js.map → p-82941d0a.entry.js.map} +1 -1
  314. package/dist/core/{p-7e4f5717.entry.js → p-856e0cda.entry.js} +2 -2
  315. package/dist/core/{p-7e4f5717.entry.js.map → p-856e0cda.entry.js.map} +1 -1
  316. package/dist/core/p-8e70b907.entry.js +2 -0
  317. package/dist/core/p-8e70b907.entry.js.map +1 -0
  318. package/dist/core/{p-7eaa223b.entry.js → p-91eacea5.entry.js} +2 -2
  319. package/dist/core/{p-7eaa223b.entry.js.map → p-91eacea5.entry.js.map} +1 -1
  320. package/dist/core/{p-8112444e.entry.js → p-95d3ff68.entry.js} +2 -2
  321. package/dist/core/{p-c3be8a0f.entry.js → p-961d7718.entry.js} +2 -2
  322. package/dist/core/p-961d7718.entry.js.map +1 -0
  323. package/dist/core/{p-b92e5fb3.entry.js → p-972f21fa.entry.js} +2 -2
  324. package/dist/core/{p-3cb4ecef.entry.js → p-9e051db4.entry.js} +2 -2
  325. package/dist/core/{p-3cb4ecef.entry.js.map → p-9e051db4.entry.js.map} +1 -1
  326. package/dist/core/{p-9aecbfe9.entry.js → p-9e19560f.entry.js} +2 -2
  327. package/dist/core/{p-9aecbfe9.entry.js.map → p-9e19560f.entry.js.map} +1 -1
  328. package/dist/core/p-a34c894b.entry.js +2 -0
  329. package/dist/core/p-a34c894b.entry.js.map +1 -0
  330. package/dist/core/{p-abcaf14d.entry.js → p-a6b573c0.entry.js} +2 -2
  331. package/dist/core/p-a6b573c0.entry.js.map +1 -0
  332. package/dist/core/{p-6a63a73a.entry.js → p-acc884bc.entry.js} +2 -2
  333. package/dist/core/{p-6a63a73a.entry.js.map → p-acc884bc.entry.js.map} +1 -1
  334. package/dist/core/{p-f6eaec92.entry.js → p-afff5652.entry.js} +2 -2
  335. package/dist/core/{p-864e337f.entry.js → p-b093cecd.entry.js} +2 -2
  336. package/dist/core/{p-864e337f.entry.js.map → p-b093cecd.entry.js.map} +1 -1
  337. package/dist/core/{p-e2629bfe.entry.js → p-b1b27b7e.entry.js} +2 -2
  338. package/dist/core/{p-e2629bfe.entry.js.map → p-b1b27b7e.entry.js.map} +1 -1
  339. package/dist/core/{p-fedfd000.entry.js → p-b3509380.entry.js} +2 -2
  340. package/dist/core/{p-e546d477.entry.js → p-b401ff42.entry.js} +2 -2
  341. package/dist/core/{p-9a78f449.entry.js → p-b522ce0a.entry.js} +2 -2
  342. package/dist/core/{p-9a78f449.entry.js.map → p-b522ce0a.entry.js.map} +1 -1
  343. package/dist/core/{p-2667c808.entry.js → p-b9369ce5.entry.js} +2 -2
  344. package/dist/core/p-b9369ce5.entry.js.map +1 -0
  345. package/dist/core/{p-eb74cab5.entry.js → p-c21317e5.entry.js} +2 -2
  346. package/dist/core/{p-28611f52.entry.js → p-c6bd71e5.entry.js} +2 -2
  347. package/dist/core/p-c6bd71e5.entry.js.map +1 -0
  348. package/dist/core/p-c73418dc.entry.js +2 -0
  349. package/dist/core/p-c73418dc.entry.js.map +1 -0
  350. package/dist/core/p-cd21aee7.entry.js +2 -0
  351. package/dist/core/p-cd21aee7.entry.js.map +1 -0
  352. package/dist/core/{p-de1e04ac.entry.js → p-d281c3cf.entry.js} +2 -2
  353. package/dist/core/{p-de1e04ac.entry.js.map → p-d281c3cf.entry.js.map} +1 -1
  354. package/dist/core/{p-9687e929.entry.js → p-da82bbef.entry.js} +2 -2
  355. package/dist/core/{p-9687e929.entry.js.map → p-da82bbef.entry.js.map} +1 -1
  356. package/dist/core/{p-ca7e1219.entry.js → p-e04d2e51.entry.js} +2 -2
  357. package/dist/core/p-e04d2e51.entry.js.map +1 -0
  358. package/dist/core/p-e253a857.js +2 -0
  359. package/dist/core/p-e253a857.js.map +1 -0
  360. package/dist/core/{p-4444e787.entry.js → p-e3059589.entry.js} +2 -2
  361. package/dist/core/{p-4444e787.entry.js.map → p-e3059589.entry.js.map} +1 -1
  362. package/dist/core/p-e4bff243.entry.js +2 -0
  363. package/dist/core/p-e4bff243.entry.js.map +1 -0
  364. package/dist/core/{p-85a17585.entry.js → p-ead0acc3.entry.js} +2 -2
  365. package/dist/core/{p-6bfff7ba.entry.js → p-ef444b18.entry.js} +2 -2
  366. package/dist/core/{p-6bfff7ba.entry.js.map → p-ef444b18.entry.js.map} +1 -1
  367. package/dist/core/{p-e64e27be.entry.js → p-f35563a0.entry.js} +2 -2
  368. package/dist/core/{p-bf3b853e.entry.js → p-fc5661ac.entry.js} +2 -2
  369. package/dist/core/{p-bf3b853e.entry.js.map → p-fc5661ac.entry.js.map} +1 -1
  370. package/dist/esm/core.js +1 -1
  371. package/dist/esm/{helpers-ef2db990.js → helpers-d9387cd3.js} +4 -2
  372. package/dist/esm/helpers-d9387cd3.js.map +1 -0
  373. package/dist/esm/{helpers-fc03923c.js → helpers-f094ef64.js} +30 -33
  374. package/dist/esm/helpers-f094ef64.js.map +1 -0
  375. package/dist/esm/ic-accordion-group.entry.js +1 -1
  376. package/dist/esm/ic-accordion.entry.js +1 -1
  377. package/dist/esm/ic-alert.entry.js +1 -1
  378. package/dist/esm/ic-back-to-top.entry.js +1 -1
  379. package/dist/esm/ic-badge.entry.js +1 -1
  380. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  381. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  382. package/dist/esm/ic-button_3.entry.js +135 -142
  383. package/dist/esm/ic-button_3.entry.js.map +1 -1
  384. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  385. package/dist/esm/ic-card-vertical.entry.js +1 -1
  386. package/dist/esm/ic-checkbox-group.entry.js +5 -5
  387. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  388. package/dist/esm/ic-checkbox_3.entry.js +4 -4
  389. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  390. package/dist/esm/ic-chip.entry.js +1 -1
  391. package/dist/esm/ic-data-list.entry.js +2 -2
  392. package/dist/esm/ic-data-list.entry.js.map +1 -1
  393. package/dist/esm/ic-data-row.entry.js +3 -3
  394. package/dist/esm/ic-data-row.entry.js.map +1 -1
  395. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  396. package/dist/esm/ic-data-table.entry.js +91 -48
  397. package/dist/esm/ic-data-table.entry.js.map +1 -1
  398. package/dist/esm/ic-date-input.entry.js +5 -5
  399. package/dist/esm/ic-date-input.entry.js.map +1 -1
  400. package/dist/esm/ic-date-picker.entry.js +11 -11
  401. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  402. package/dist/esm/ic-dialog.entry.js +2 -2
  403. package/dist/esm/ic-dialog.entry.js.map +1 -1
  404. package/dist/esm/ic-divider.entry.js +1 -1
  405. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  406. package/dist/esm/ic-footer-link.entry.js +3 -3
  407. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  408. package/dist/esm/ic-footer.entry.js +1 -1
  409. package/dist/esm/ic-hero.entry.js +5 -5
  410. package/dist/esm/ic-hero.entry.js.map +1 -1
  411. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  412. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  413. package/dist/esm/ic-input-component-container_3.entry.js +19 -14
  414. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  415. package/dist/esm/ic-input-label_2.entry.js +36 -13
  416. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  417. package/dist/esm/ic-link.entry.js +2 -2
  418. package/dist/esm/ic-link.entry.js.map +1 -1
  419. package/dist/esm/ic-menu-group.entry.js +2 -2
  420. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  421. package/dist/esm/ic-menu-item.entry.js +1 -1
  422. package/dist/esm/ic-navigation-button.entry.js +31 -39
  423. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  424. package/dist/esm/ic-navigation-group.entry.js +7 -4
  425. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  426. package/dist/esm/ic-navigation-item.entry.js +2 -2
  427. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  428. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  429. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  430. package/dist/esm/ic-page-header.entry.js +7 -7
  431. package/dist/esm/ic-page-header.entry.js.map +1 -1
  432. package/dist/esm/ic-pagination_4.entry.js +20 -20
  433. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  434. package/dist/esm/ic-popover-menu.entry.js +5 -5
  435. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  436. package/dist/esm/ic-radio-group.entry.js +6 -6
  437. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  438. package/dist/esm/ic-radio-option.entry.js +5 -5
  439. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  440. package/dist/esm/ic-search-bar.entry.js +28 -12
  441. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  442. package/dist/esm/ic-section-container.entry.js +2 -2
  443. package/dist/esm/ic-section-container.entry.js.map +1 -1
  444. package/dist/esm/ic-side-navigation.entry.js +16 -17
  445. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  446. package/dist/esm/ic-skeleton.entry.js +2 -2
  447. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  448. package/dist/esm/ic-skip-link.entry.js +2 -2
  449. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  450. package/dist/esm/ic-status-tag.entry.js +3 -3
  451. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  452. package/dist/esm/ic-step.entry.js +14 -14
  453. package/dist/esm/ic-step.entry.js.map +1 -1
  454. package/dist/esm/ic-stepper.entry.js +3 -3
  455. package/dist/esm/ic-stepper.entry.js.map +1 -1
  456. package/dist/esm/ic-switch.entry.js +6 -6
  457. package/dist/esm/ic-switch.entry.js.map +1 -1
  458. package/dist/esm/ic-tab-context.entry.js +1 -1
  459. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  460. package/dist/esm/ic-tab-group.entry.js +3 -3
  461. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  462. package/dist/esm/ic-tab-panel.entry.js +2 -2
  463. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  464. package/dist/esm/ic-tab.entry.js +1 -1
  465. package/dist/esm/ic-theme.entry.js +2 -2
  466. package/dist/esm/ic-theme.entry.js.map +1 -1
  467. package/dist/esm/ic-toast-region.entry.js +1 -1
  468. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  469. package/dist/esm/ic-toast.entry.js +4 -4
  470. package/dist/esm/ic-toast.entry.js.map +1 -1
  471. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  472. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  473. package/dist/esm/ic-toggle-button.entry.js +3 -3
  474. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  475. package/dist/esm/ic-top-navigation.entry.js +15 -9
  476. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  477. package/dist/esm/ic-tree-item.entry.js +31 -33
  478. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  479. package/dist/esm/ic-tree-view.entry.js +4 -15
  480. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  481. package/dist/esm/ic-typography.entry.js +3 -3
  482. package/dist/esm/ic-typography.entry.js.map +1 -1
  483. package/dist/esm/loader.js +1 -1
  484. package/dist/types/components/ic-data-table/ic-data-table.d.ts +13 -1
  485. package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +44 -32
  486. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +2 -0
  487. package/dist/types/components/ic-data-table/story-data.d.ts +4 -0
  488. package/dist/types/components/ic-date-input/ic-date-input.d.ts +3 -0
  489. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +3 -0
  490. package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +26 -18
  491. package/dist/types/components/ic-date-picker/story-data.d.ts +3 -0
  492. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +5 -5
  493. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +0 -5
  494. package/dist/types/components/ic-tree-view/ic-tree-view.stories.d.ts +22 -22
  495. package/dist/types/components/ic-tree-view/ic-tree-view.types.d.ts +1 -0
  496. package/dist/types/components.d.ts +26 -11
  497. package/dist/types/utils/helpers.d.ts +1 -1
  498. package/hydrate/index.js +592 -506
  499. package/hydrate/index.mjs +592 -506
  500. package/package.json +4 -6
  501. package/dist/cjs/helpers-a5405964.js.map +0 -1
  502. package/dist/cjs/helpers-f4e7322b.js.map +0 -1
  503. package/dist/core/p-0c9c6c31.entry.js +0 -2
  504. package/dist/core/p-0c9c6c31.entry.js.map +0 -1
  505. package/dist/core/p-0e0e0942.js +0 -2
  506. package/dist/core/p-0e0e0942.js.map +0 -1
  507. package/dist/core/p-17926ee3.entry.js +0 -2
  508. package/dist/core/p-17926ee3.entry.js.map +0 -1
  509. package/dist/core/p-188ba287.entry.js +0 -2
  510. package/dist/core/p-188ba287.entry.js.map +0 -1
  511. package/dist/core/p-2667c808.entry.js.map +0 -1
  512. package/dist/core/p-28611f52.entry.js.map +0 -1
  513. package/dist/core/p-4aaf10a5.entry.js +0 -2
  514. package/dist/core/p-4aaf10a5.entry.js.map +0 -1
  515. package/dist/core/p-582da938.entry.js +0 -2
  516. package/dist/core/p-582da938.entry.js.map +0 -1
  517. package/dist/core/p-61e78ce0.entry.js +0 -2
  518. package/dist/core/p-61e78ce0.entry.js.map +0 -1
  519. package/dist/core/p-7c3cd0b8.entry.js +0 -2
  520. package/dist/core/p-7c3cd0b8.entry.js.map +0 -1
  521. package/dist/core/p-887b1302.entry.js.map +0 -1
  522. package/dist/core/p-abcaf14d.entry.js.map +0 -1
  523. package/dist/core/p-aeeff0e5.entry.js +0 -2
  524. package/dist/core/p-aeeff0e5.entry.js.map +0 -1
  525. package/dist/core/p-b92727c0.entry.js +0 -2
  526. package/dist/core/p-c3be8a0f.entry.js.map +0 -1
  527. package/dist/core/p-c8d207e1.entry.js +0 -2
  528. package/dist/core/p-c8d207e1.entry.js.map +0 -1
  529. package/dist/core/p-ca7e1219.entry.js.map +0 -1
  530. package/dist/core/p-d0c38d58.entry.js +0 -2
  531. package/dist/core/p-d0c38d58.entry.js.map +0 -1
  532. package/dist/core/p-ead9900a.entry.js +0 -2
  533. package/dist/core/p-ead9900a.entry.js.map +0 -1
  534. package/dist/core/p-eca2fea1.js +0 -2
  535. package/dist/core/p-eca2fea1.js.map +0 -1
  536. package/dist/core/p-f9e78341.entry.js.map +0 -1
  537. package/dist/esm/helpers-ef2db990.js.map +0 -1
  538. package/dist/esm/helpers-fc03923c.js.map +0 -1
  539. /package/dist/core/{p-b7d117e8.entry.js.map → p-09acf70a.entry.js.map} +0 -0
  540. /package/dist/core/{p-e38dd019.entry.js.map → p-28b10396.entry.js.map} +0 -0
  541. /package/dist/core/{p-1fd22368.entry.js.map → p-29601c16.entry.js.map} +0 -0
  542. /package/dist/core/{p-6e0f4278.entry.js.map → p-4d5dfb71.entry.js.map} +0 -0
  543. /package/dist/core/{p-ba5e1b21.entry.js.map → p-4e2ef907.entry.js.map} +0 -0
  544. /package/dist/core/{p-8ae0fd6f.entry.js.map → p-6938e1d9.entry.js.map} +0 -0
  545. /package/dist/core/{p-671acf27.entry.js.map → p-693a568b.entry.js.map} +0 -0
  546. /package/dist/core/{p-a894ddb6.entry.js.map → p-7436d8de.entry.js.map} +0 -0
  547. /package/dist/core/{p-8112444e.entry.js.map → p-95d3ff68.entry.js.map} +0 -0
  548. /package/dist/core/{p-b92e5fb3.entry.js.map → p-972f21fa.entry.js.map} +0 -0
  549. /package/dist/core/{p-f6eaec92.entry.js.map → p-afff5652.entry.js.map} +0 -0
  550. /package/dist/core/{p-fedfd000.entry.js.map → p-b3509380.entry.js.map} +0 -0
  551. /package/dist/core/{p-e546d477.entry.js.map → p-b401ff42.entry.js.map} +0 -0
  552. /package/dist/core/{p-eb74cab5.entry.js.map → p-c21317e5.entry.js.map} +0 -0
  553. /package/dist/core/{p-85a17585.entry.js.map → p-ead0acc3.entry.js.map} +0 -0
  554. /package/dist/core/{p-e64e27be.entry.js.map → p-f35563a0.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["icDialogCss","IcDialogStyle0","Dialog","constructor","hostRef","this","contentAreaMutationObserver","DATA_GETS_FOCUS","DIALOG_CONTROLS","dialogHeight","focusedElementIndex","IC_TEXT_FIELD","IC_ACCORDION","IC_ACCORDION_GROUP","IC_CHECKBOX","IC_SEARCH_BAR","resizeObserver","dialogRendered","fadeIn","closeOnBackdropClick","destructive","dismissLabel","disableHeightConstraint","disableWidthConstraint","hideCloseButton","hideDefaultControls","open","size","theme","dialogOpened","_a","_b","dialogEl","show","showModal","setTimeout","backdropEl","scrollTop","setInitialFocus","checkResizeObserver","runResizeObserver","icDialogOpened","emit","ResizeObserver","clearTimeout","resizeTimeout","window","resizeObserverCallback","observe","clientHeight","refreshInteractiveElementsOnSlotChange","_c","contentWrapper","el","shadowRoot","querySelector","contentArea","addEventListener","getInteractiveElements","MutationObserver","getSlotElements","forEach","childList","subtree","removeSlotChangeListener","removeEventListener","disconnect","sourceElement","document","activeElement","interactiveElementList","findIndex","element","hasAttribute","focusElement","getFocusedElementIndex","i","length","closeIconClick","Array","from","querySelectorAll","slottedInteractiveElements","slot","setAttribute","splice","getNextFocusEl","onTabKeyPress","shiftKey","tagName","setFocusIndexBasedOnShiftKey","loopNextFocusIndexIfLastElement","shouldSkipElement","isHidden","getComputedStyle","visibility","offsetHeight","radioEl","closest","getAttribute","nextFocusEl","setFocus","focus","renderDialog","heading","label","controlsSlotUsed","isSlotUsed","h","class","dialog","ref","name","variant","id","innerHTML","closeIcon","onClick","Fragment","cancelDialog","confirmDialog","watchOpenHandler","close","icDialogClosed","disconnectedCallback","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","body","style","overflow","display","handleKeyboard","ev","key","preventDefault","repeat","stopImmediatePropagation","handleClick","composedPath","indexOf","top","height","left","width","getBoundingClientRect","isInDialog","clientY","clientX","icDialogCancelled","icDialogConfirmed","render","Host"],"sources":["../web-components/dist/collection/components/ic-dialog/ic-dialog.css?tag=ic-dialog&encapsulation=shadow","../web-components/dist/collection/components/ic-dialog/ic-dialog.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-dialog: z-index of dialog \n */\n\n:host {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100% !important;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n opacity: 0;\n}\n\n:host(.ic-dialog-fade-in) {\n opacity: 1;\n}\n\n:host(.disable-height-constraint) {\n background: none;\n justify-content: unset;\n align-items: unset;\n}\n\n.dialog.disable-height-constraint {\n max-height: none;\n position: relative;\n}\n\n.dialog.disable-height-constraint .content-area {\n overflow-y: visible;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n transition: opacity var(--ic-easing-transition-slow);\n }\n\n .dialog {\n transform: translateY(-3rem);\n transition: transform 1000s;\n }\n\n :host(.ic-dialog-fade-in) .dialog {\n transform: translateY(0);\n transition: transform var(--ic-easing-transition-slow);\n }\n}\n\n:host(.ic-dialog-hidden) {\n display: none;\n}\n\n.dialog {\n background-color: var(--ic-dialog-background);\n color: var(--ic-dialog-text-primary);\n\n --ic-typography-color: var(--ic-dialog-text-primary);\n\n border: var(--ic-space-1px) solid var(--ic-dialog-border);\n border-radius: var(--ic-border-radius);\n padding: var(--ic-space-xs) 0 var(--ic-space-md);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow-x: visible;\n}\n\n.small {\n width: 50%;\n max-width: 25rem;\n min-height: 11rem;\n max-height: 70vh;\n}\n\n.medium {\n width: 70vw;\n max-width: 44rem;\n min-height: 12.5rem;\n max-height: 70vh;\n}\n\n.large {\n width: 90vw;\n max-width: 62.5rem;\n min-height: 12.5rem;\n max-height: 90vh;\n}\n\n.heading-area {\n display: flex;\n margin-bottom: var(--ic-space-xs);\n padding: 0 var(--ic-space-md);\n}\n\n.heading {\n overflow-wrap: break-word;\n}\n\n.close-icon {\n margin-left: auto;\n}\n\n.close-icon > svg {\n color: var(--ic-dialog-clear-button);\n}\n\n.content-area {\n padding: 0 var(--ic-space-md);\n margin: 0;\n overflow-y: auto;\n}\n\n#dialog-content {\n margin-bottom: var(--ic-space-sm);\n}\n\n#dialog-content ::slotted(ic-typography) {\n overflow-wrap: break-word;\n}\n\n#dialog-content ::slotted(*) {\n position: relative;\n}\n\n.dialog-controls {\n margin-top: auto;\n padding: var(--ic-space-xs) var(--ic-space-md) 0;\n display: flex;\n justify-content: flex-end;\n gap: var(--ic-space-md);\n}\n\n.dialog-control-button {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.backdrop {\n overflow-y: auto;\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n padding-top: 16px;\n padding-bottom: 16px;\n}\n\n.heading ic-typography {\n --ic-typography-color: var(--ic-dialog-text-primary);\n}\n\n.label ic-typography {\n --ic-typography-color: var(--ic-dialog-label);\n}\n\n@media (min-width: 800px) {\n :host([size=\"large\"]) .dialog:not(.disable-width-constraint) > .content-area {\n width: 75%;\n }\n}\n\n@media (max-width: 576px) {\n .dialog {\n width: 100vw;\n height: 100vh;\n max-width: none;\n max-height: none;\n box-sizing: border-box;\n }\n\n .backdrop {\n padding: 0;\n }\n\n .dialog.disable-height-constraint {\n height: auto;\n min-height: 100vh;\n }\n}\n\n@media (max-width: 364px) {\n .dialog-control-button {\n width: unset;\n }\n}\n","import { Host, h, Fragment, } from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, checkResizeObserver, onComponentRequiredPropUndefined, getSlotElements, } from \"../../utils/helpers\";\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 */\nexport class Dialog {\n constructor() {\n this.contentAreaMutationObserver = null;\n this.DATA_GETS_FOCUS = \"data-gets-focus\";\n this.DIALOG_CONTROLS = \"dialog-controls\";\n this.dialogHeight = 0;\n this.focusedElementIndex = 0;\n this.IC_TEXT_FIELD = \"IC-TEXT-FIELD\";\n this.IC_ACCORDION = \"IC-ACCORDION\";\n this.IC_ACCORDION_GROUP = \"IC-ACCORDION-GROUP\";\n this.IC_CHECKBOX = \"IC-CHECKBOX\";\n this.IC_SEARCH_BAR = \"IC-SEARCH-BAR\";\n this.resizeObserver = null;\n this.dialogRendered = false;\n this.fadeIn = false;\n /**\n * If set to `false`, the dialog will not close when the backdrop is clicked.\n */\n this.closeOnBackdropClick = true;\n /**\n * If 'true', 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 this.destructive = false;\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n this.dismissLabel = \"Dismiss\";\n /**\n * If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\n * This prop also prevents popover elements from being cut off within the content area.\n */\n this.disableHeightConstraint = false;\n /**\n * If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\n */\n this.disableWidthConstraint = false;\n /**\n * If `true`, the close button will not be displayed.\n */\n this.hideCloseButton = false;\n /**\n * If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\n */\n this.hideDefaultControls = false;\n /**\n * If `true`, the dialog will be displayed.\n */\n this.open = false;\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n this.size = \"small\";\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n this.dialogOpened = () => {\n var _a, _b;\n this.dialogRendered = true;\n if (this.disableHeightConstraint) {\n (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.show();\n }\n else {\n (_b = this.dialogEl) === null || _b === void 0 ? void 0 : _b.showModal();\n }\n setTimeout(() => {\n this.fadeIn = true;\n /**\n * This is required to set scroll back to top if:\n * - dialog content goes below the fold\n * - is closed using cancel or confirm and reopened.\n *\n * Without this, the scroll bar will start from the dialog's last scroll-x coordinate.\n */\n if (this.backdropEl &&\n this.disableHeightConstraint &&\n this.backdropEl.scrollTop !== 0) {\n this.backdropEl.scrollTop = 0;\n }\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.icDialogOpened.emit();\n }, 80);\n };\n this.runResizeObserver = () => {\n if (this.dialogEl) {\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 this.resizeObserverCallback = () => {\n if (this.dialogEl && this.dialogEl.clientHeight !== this.dialogHeight) {\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n this.refreshInteractiveElementsOnSlotChange = () => {\n var _a, _b, _c;\n const contentWrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"#dialog-content\");\n if (contentWrapper) {\n this.contentArea = contentWrapper.querySelector(\"slot\");\n // Detect changes to slotted elements\n (_b = this.contentArea) === null || _b === void 0 ? void 0 : _b.addEventListener(\"slotchange\", this.getInteractiveElements);\n this.contentAreaMutationObserver = new MutationObserver(() => {\n this.getInteractiveElements();\n });\n // Detect changes to children of slotted elements\n (_c = getSlotElements(contentWrapper)) === null || _c === void 0 ? void 0 : _c.forEach((el) => {\n var _a;\n (_a = this.contentAreaMutationObserver) === null || _a === void 0 ? void 0 : _a.observe(el, {\n childList: true,\n subtree: true,\n });\n });\n }\n };\n this.removeSlotChangeListener = () => {\n var _a;\n if (this.contentArea) {\n this.contentArea.removeEventListener(\"slotchange\", this.getInteractiveElements);\n (_a = this.contentAreaMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n };\n this.setInitialFocus = () => {\n this.sourceElement = document.activeElement;\n this.focusedElementIndex = this.interactiveElementList\n ? this.interactiveElementList.findIndex((element) => element.hasAttribute(this.DATA_GETS_FOCUS))\n : 0;\n this.focusElement(this.interactiveElementList[this.focusedElementIndex]);\n };\n this.getFocusedElementIndex = () => {\n var _a;\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (this.interactiveElementList[i] ===\n (((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) || document.activeElement)) {\n this.focusedElementIndex = i;\n }\n }\n };\n this.closeIconClick = () => {\n this.open = false;\n };\n this.getInteractiveElements = () => {\n var _a;\n this.interactiveElementList = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"ic-button\")) || []);\n const slottedInteractiveElements = Array.from(this.el.querySelectorAll(`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, \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, ic-date-input, ic-date-picker`));\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n else if (!this.destructive) {\n slottedInteractiveElements[slottedInteractiveElements.length - 1].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(1 + i, 0, slottedInteractiveElements[i]);\n }\n };\n this.getNextFocusEl = (focusedElementIndex) => this.interactiveElementList[focusedElementIndex];\n this.onTabKeyPress = (shiftKey) => {\n this.getFocusedElementIndex();\n if (this.interactiveElementList[this.focusedElementIndex].tagName ===\n this.IC_SEARCH_BAR) {\n return false;\n }\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n this.focusElement(this.getNextFocusEl(this.focusedElementIndex), shiftKey);\n return true;\n };\n this.shouldSkipElement = (element) => {\n const isHidden = getComputedStyle(element).visibility === \"hidden\" ||\n element.offsetHeight === 0 ||\n element.hasAttribute(\"disabled\") ||\n (element.tagName === this.IC_ACCORDION_GROUP &&\n element.hasAttribute(\"single-expansion\"));\n const radioEl = element.closest(\"ic-radio-option\");\n return (isHidden ||\n (element.getAttribute(\"type\") === \"radio\" &&\n !!radioEl &&\n !radioEl.hasAttribute(\"selected\")));\n };\n this.focusElement = (element, shiftKey = false) => {\n let nextFocusEl = element;\n if (this.shouldSkipElement(element)) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n this.focusElement(nextFocusEl, shiftKey);\n }\n else {\n switch (element.tagName) {\n case this.IC_ACCORDION_GROUP:\n case this.IC_ACCORDION:\n case this.IC_SEARCH_BAR:\n case this.IC_TEXT_FIELD:\n case this.IC_CHECKBOX:\n element.setFocus();\n break;\n default:\n element.focus();\n }\n }\n };\n this.renderDialog = () => {\n const { hideDefaultControls, size, heading, label, destructive, dismissLabel, hideCloseButton, disableHeightConstraint, disableWidthConstraint, closeIconClick, DIALOG_CONTROLS, } = this;\n const controlsSlotUsed = isSlotUsed(this.el, DIALOG_CONTROLS);\n return (h(\"dialog\", { class: {\n dialog: true,\n [`${size}`]: true,\n \"disable-height-constraint\": !!disableHeightConstraint,\n \"disable-width-constraint\": !!disableWidthConstraint,\n }, \"aria-labelledby\": \"dialog-label dialog-heading\", \"aria-describedby\": \"dialog-alert dialog-content\", ref: (el) => (this.dialogEl = el) }, h(\"div\", { class: \"heading-area\" }, h(\"div\", { class: \"heading-content\" }, h(\"div\", { class: \"label\" }, h(\"slot\", { name: \"label\" }, h(\"ic-typography\", { variant: \"label\", id: \"dialog-label\" }, label))), h(\"div\", { class: \"heading\" }, h(\"slot\", { name: \"heading\" }, h(\"ic-typography\", { variant: \"h4\", id: \"dialog-heading\" }, heading)))), !hideCloseButton && (h(\"ic-button\", { class: \"close-icon\", variant: \"icon\", innerHTML: closeIcon, \"aria-label\": dismissLabel, onClick: closeIconClick, \"data-gets-focus\": destructive || (hideDefaultControls && !controlsSlotUsed)\n ? \"\"\n : null }))), h(\"div\", { class: \"content-area\" }, isSlotUsed(this.el, \"alert\") && h(\"slot\", { name: \"alert\" }), h(\"div\", { id: \"dialog-content\" }, h(\"slot\", null))), (controlsSlotUsed || !hideDefaultControls) && (h(\"div\", { class: {\n [DIALOG_CONTROLS]: true,\n } }, controlsSlotUsed ? (h(\"slot\", { name: DIALOG_CONTROLS })) : (h(Fragment, null, h(\"ic-button\", { variant: \"tertiary\", onClick: () => this.cancelDialog(), class: \"dialog-control-button\", \"data-gets-focus\": null }, \"Cancel\"), h(\"ic-button\", { variant: destructive ? \"destructive\" : \"primary\", onClick: () => this.confirmDialog(), class: \"dialog-control-button\", \"data-gets-focus\": \"\" }, \"Confirm\")))))));\n };\n }\n watchOpenHandler() {\n if (this.open) {\n this.dialogOpened();\n }\n else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n var _a, _b;\n this.dialogRendered = false;\n (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.close();\n (_b = this.sourceElement) === null || _b === void 0 ? void 0 : _b.focus();\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n disconnectedCallback() {\n this.removeSlotChangeListener();\n }\n componentDidLoad() {\n this.getInteractiveElements();\n this.refreshInteractiveElementsOnSlotChange();\n if (this.open) {\n this.dialogOpened();\n }\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Dialog\");\n }\n componentDidRender() {\n document.body.style.overflow =\n getComputedStyle(this.el).display !== \"none\" &&\n this.disableHeightConstraint\n ? \"hidden\"\n : \"auto\";\n }\n handleKeyboard(ev) {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n if (this.onTabKeyPress(ev.shiftKey)) {\n ev.preventDefault();\n }\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n handleClick(ev) {\n if (this.dialogEl &&\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(this.dialogEl) <= 0) {\n const { top, height, left, width } = this.dialogEl.getBoundingClientRect();\n const isInDialog = top <= ev.clientY &&\n ev.clientY <= top + height &&\n left <= ev.clientX &&\n ev.clientX <= left + width;\n if (!isInDialog) {\n this.open = false;\n }\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 async cancelDialog() {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n async confirmDialog() {\n this.icDialogConfirmed.emit();\n }\n 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 setFocusIndexBasedOnShiftKey(shiftKey) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n }\n else {\n this.focusedElementIndex += 1;\n }\n }\n render() {\n const { dialogRendered, disableHeightConstraint, fadeIn, theme } = this;\n return (h(Host, { key: '87a6c4970c26fdc12f1aed7bc3bd95b4e2f21810', class: {\n \"ic-dialog-hidden\": !dialogRendered,\n \"ic-dialog-fade-in\": fadeIn,\n \"disable-height-constraint\": !!disableHeightConstraint,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, disableHeightConstraint ? (h(\"div\", { class: \"backdrop\", ref: (el) => (this.backdropEl = el) }, this.renderDialog())) : (this.renderDialog())));\n }\n static get is() { return \"ic-dialog\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get properties() {\n return {\n \"closeOnBackdropClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `false`, the dialog will not close when the backdrop is clicked.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"close-on-backdrop-click\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"destructive\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If 'true', 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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"destructive\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dismissLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the dismiss label tooltip and aria label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"dismiss-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Dismiss\\\"\"\n },\n \"disableHeightConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\\nThis prop also prevents popover elements from being cut off within the content area.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-height-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableWidthConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-width-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideCloseButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the close button will not be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-close-button\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideDefaultControls\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-default-controls\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the heading for the dialog.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the optional label for the dialog which appears above the heading.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the dialog will be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"open\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"small\\\" | \\\"medium\\\" | \\\"large\\\"\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the maximum and minimum height and width for the dialog.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"small\\\"\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"dialogRendered\": {},\n \"fadeIn\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icDialogCancelled\",\n \"name\": \"icDialogCancelled\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogClosed\",\n \"name\": \"icDialogClosed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has closed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogConfirmed\",\n \"name\": \"icDialogConfirmed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogOpened\",\n \"name\": \"icDialogOpened\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has opened.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"cancelDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\",\n \"tags\": []\n }\n },\n \"confirmDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"keydown\",\n \"method\": \"handleKeyboard\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-dialog.js.map\n"],"mappings":"oKAAA,MAAMA,EAAc,89JACpB,MAAAC,EAAeD,E,MCQFE,EAAM,MACf,WAAAC,CAAAC,G,kNACIC,KAAKC,4BAA8B,KACnCD,KAAKE,gBAAkB,kBACvBF,KAAKG,gBAAkB,kBACvBH,KAAKI,aAAe,EACpBJ,KAAKK,oBAAsB,EAC3BL,KAAKM,cAAgB,gBACrBN,KAAKO,aAAe,eACpBP,KAAKQ,mBAAqB,qBAC1BR,KAAKS,YAAc,cACnBT,KAAKU,cAAgB,gBACrBV,KAAKW,eAAiB,KACtBX,KAAKY,eAAiB,MACtBZ,KAAKa,OAAS,MAIdb,KAAKc,qBAAuB,KAI5Bd,KAAKe,YAAc,MAInBf,KAAKgB,aAAe,UAKpBhB,KAAKiB,wBAA0B,MAI/BjB,KAAKkB,uBAAyB,MAI9BlB,KAAKmB,gBAAkB,MAIvBnB,KAAKoB,oBAAsB,MAI3BpB,KAAKqB,KAAO,MAIZrB,KAAKsB,KAAO,QAIZtB,KAAKuB,MAAQ,UACbvB,KAAKwB,aAAe,KAChB,IAAIC,EAAIC,EACR1B,KAAKY,eAAiB,KACtB,GAAIZ,KAAKiB,wBAAyB,EAC7BQ,EAAKzB,KAAK2B,YAAc,MAAQF,SAAY,OAAS,EAAIA,EAAGG,M,KAE5D,EACAF,EAAK1B,KAAK2B,YAAc,MAAQD,SAAY,OAAS,EAAIA,EAAGG,W,CAEjEC,YAAW,KACP9B,KAAKa,OAAS,KAQd,GAAIb,KAAK+B,YACL/B,KAAKiB,yBACLjB,KAAK+B,WAAWC,YAAc,EAAG,CACjChC,KAAK+B,WAAWC,UAAY,C,IAEjC,IACHF,YAAW,KACP9B,KAAKiC,kBACLC,EAAoBlC,KAAKmC,kBAAkB,GAC5C,IACHL,YAAW,KACP9B,KAAKoC,eAAeC,MAAM,GAC3B,GAAG,EAEVrC,KAAKmC,kBAAoB,KACrB,GAAInC,KAAK2B,SAAU,CACf3B,KAAKW,eAAiB,IAAI2B,gBAAe,KACrCC,aAAavC,KAAKwC,eAClBxC,KAAKwC,cAAgBC,OAAOX,WAAW9B,KAAK0C,uBAAwB,GAAG,IAE3E1C,KAAKW,eAAegC,QAAQ3C,KAAK2B,S,GAGzC3B,KAAK0C,uBAAyB,KAC1B,GAAI1C,KAAK2B,UAAY3B,KAAK2B,SAASiB,eAAiB5C,KAAKI,aAAc,CACnEJ,KAAKI,aAAeJ,KAAK2B,SAASiB,Y,GAG1C5C,KAAK6C,uCAAyC,KAC1C,IAAIpB,EAAIC,EAAIoB,EACZ,MAAMC,GAAkBtB,EAAKzB,KAAKgD,GAAGC,cAAgB,MAAQxB,SAAY,OAAS,EAAIA,EAAGyB,cAAc,mBACvG,GAAIH,EAAgB,CAChB/C,KAAKmD,YAAcJ,EAAeG,cAAc,SAE/CxB,EAAK1B,KAAKmD,eAAiB,MAAQzB,SAAY,OAAS,EAAIA,EAAG0B,iBAAiB,aAAcpD,KAAKqD,wBACpGrD,KAAKC,4BAA8B,IAAIqD,kBAAiB,KACpDtD,KAAKqD,wBAAwB,KAGhCP,EAAKS,EAAgBR,MAAqB,MAAQD,SAAY,OAAS,EAAIA,EAAGU,SAASR,IACpF,IAAIvB,GACHA,EAAKzB,KAAKC,+BAAiC,MAAQwB,SAAY,OAAS,EAAIA,EAAGkB,QAAQK,EAAI,CACxFS,UAAW,KACXC,QAAS,MACX,G,GAId1D,KAAK2D,yBAA2B,KAC5B,IAAIlC,EACJ,GAAIzB,KAAKmD,YAAa,CAClBnD,KAAKmD,YAAYS,oBAAoB,aAAc5D,KAAKqD,yBACvD5B,EAAKzB,KAAKC,+BAAiC,MAAQwB,SAAY,OAAS,EAAIA,EAAGoC,Y,GAGxF7D,KAAKiC,gBAAkB,KACnBjC,KAAK8D,cAAgBC,SAASC,cAC9BhE,KAAKK,oBAAsBL,KAAKiE,uBAC1BjE,KAAKiE,uBAAuBC,WAAWC,GAAYA,EAAQC,aAAapE,KAAKE,mBAC7E,EACNF,KAAKqE,aAAarE,KAAKiE,uBAAuBjE,KAAKK,qBAAqB,EAE5EL,KAAKsE,uBAAyB,KAC1B,IAAI7C,EACJ,IAAK,IAAI8C,EAAI,EAAGA,EAAIvE,KAAKiE,uBAAuBO,OAAQD,IAAK,CACzD,GAAIvE,KAAKiE,uBAAuBM,QACzB9C,EAAKzB,KAAKgD,GAAGC,cAAgB,MAAQxB,SAAY,OAAS,EAAIA,EAAGuC,gBAAkBD,SAASC,eAAgB,CAC/GhE,KAAKK,oBAAsBkE,C,IAIvCvE,KAAKyE,eAAiB,KAClBzE,KAAKqB,KAAO,KAAK,EAErBrB,KAAKqD,uBAAyB,KAC1B,IAAI5B,EACJzB,KAAKiE,uBAAyBS,MAAMC,OAAOlD,EAAKzB,KAAKgD,GAAGC,cAAgB,MAAQxB,SAAY,OAAS,EAAIA,EAAGmD,iBAAiB,eAAiB,IAC9I,MAAMC,EAA6BH,MAAMC,KAAK3E,KAAKgD,GAAG4B,iBAAiB,kaAIvE,GAAIC,EAA2BL,OAAS,EAAG,CACvC,GAAIK,EAA2B,GAAGC,OAAS9E,KAAKG,gBAAiB,CAC7D0E,EAA2B,GAAGE,aAAa/E,KAAKE,gBAAiB,G,MAEhE,IAAKF,KAAKe,YAAa,CACxB8D,EAA2BA,EAA2BL,OAAS,GAAGO,aAAa/E,KAAKE,gBAAiB,G,EAG7G,IAAK,IAAIqE,EAAI,EAAGA,EAAIM,EAA2BL,OAAQD,IAAK,CACxDvE,KAAKiE,uBAAuBe,OAAO,EAAIT,EAAG,EAAGM,EAA2BN,G,GAGhFvE,KAAKiF,eAAkB5E,GAAwBL,KAAKiE,uBAAuB5D,GAC3EL,KAAKkF,cAAiBC,IAClBnF,KAAKsE,yBACL,GAAItE,KAAKiE,uBAAuBjE,KAAKK,qBAAqB+E,UACtDpF,KAAKU,cAAe,CACpB,OAAO,K,CAEXV,KAAKqF,6BAA6BF,GAClCnF,KAAKsF,kCACLtF,KAAKqE,aAAarE,KAAKiF,eAAejF,KAAKK,qBAAsB8E,GACjE,OAAO,IAAI,EAEfnF,KAAKuF,kBAAqBpB,IACtB,MAAMqB,EAAWC,iBAAiBtB,GAASuB,aAAe,UACtDvB,EAAQwB,eAAiB,GACzBxB,EAAQC,aAAa,aACpBD,EAAQiB,UAAYpF,KAAKQ,oBACtB2D,EAAQC,aAAa,oBAC7B,MAAMwB,EAAUzB,EAAQ0B,QAAQ,mBAChC,OAAQL,GACHrB,EAAQ2B,aAAa,UAAY,WAC5BF,IACDA,EAAQxB,aAAa,WAAY,EAE9CpE,KAAKqE,aAAe,CAACF,EAASgB,EAAW,SACrC,IAAIY,EAAc5B,EAClB,GAAInE,KAAKuF,kBAAkBpB,GAAU,CACjCnE,KAAKqF,6BAA6BF,GAClCnF,KAAKsF,kCACLS,EAAc/F,KAAKiF,eAAejF,KAAKK,qBACvCL,KAAKqE,aAAa0B,EAAaZ,E,KAE9B,CACD,OAAQhB,EAAQiB,SACZ,KAAKpF,KAAKQ,mBACV,KAAKR,KAAKO,aACV,KAAKP,KAAKU,cACV,KAAKV,KAAKM,cACV,KAAKN,KAAKS,YACN0D,EAAQ6B,WACR,MACJ,QACI7B,EAAQ8B,Q,GAIxBjG,KAAKkG,aAAe,KAChB,MAAM9E,oBAAEA,EAAmBE,KAAEA,EAAI6E,QAAEA,EAAOC,MAAEA,EAAKrF,YAAEA,EAAWC,aAAEA,EAAYG,gBAAEA,EAAeF,wBAAEA,EAAuBC,uBAAEA,EAAsBuD,eAAEA,EAActE,gBAAEA,GAAqBH,KACrL,MAAMqG,EAAmBC,EAAWtG,KAAKgD,GAAI7C,GAC7C,OAAQoG,EAAE,SAAU,CAAEC,MAAO,CACrBC,OAAQ,KACR,CAAC,GAAGnF,KAAS,KACb,8BAA+BL,EAC/B,6BAA8BC,GAC/B,kBAAmB,8BAA+B,mBAAoB,8BAA+BwF,IAAM1D,GAAQhD,KAAK2B,SAAWqB,GAAOuD,EAAE,MAAO,CAAEC,MAAO,gBAAkBD,EAAE,MAAO,CAAEC,MAAO,mBAAqBD,EAAE,MAAO,CAAEC,MAAO,SAAWD,EAAE,OAAQ,CAAEI,KAAM,SAAWJ,EAAE,gBAAiB,CAAEK,QAAS,QAASC,GAAI,gBAAkBT,KAAUG,EAAE,MAAO,CAAEC,MAAO,WAAaD,EAAE,OAAQ,CAAEI,KAAM,WAAaJ,EAAE,gBAAiB,CAAEK,QAAS,KAAMC,GAAI,kBAAoBV,OAAchF,GAAoBoF,EAAE,YAAa,CAAEC,MAAO,aAAcI,QAAS,OAAQE,UAAWC,EAAW,aAAc/F,EAAcgG,QAASvC,EAAgB,kBAAmB1D,GAAgBK,IAAwBiF,EAC5qB,GACA,QAAWE,EAAE,MAAO,CAAEC,MAAO,gBAAkBF,EAAWtG,KAAKgD,GAAI,UAAYuD,EAAE,OAAQ,CAAEI,KAAM,UAAYJ,EAAE,MAAO,CAAEM,GAAI,kBAAoBN,EAAE,OAAQ,SAAUF,IAAqBjF,IAAyBmF,EAAE,MAAO,CAAEC,MAAO,CACtOrG,CAACA,GAAkB,OAClBkG,EAAoBE,EAAE,OAAQ,CAAEI,KAAMxG,IAAuBoG,EAAEU,EAAU,KAAMV,EAAE,YAAa,CAAEK,QAAS,WAAYI,QAAS,IAAMhH,KAAKkH,eAAgBV,MAAO,wBAAyB,kBAAmB,MAAQ,UAAWD,EAAE,YAAa,CAAEK,QAAS7F,EAAc,cAAgB,UAAWiG,QAAS,IAAMhH,KAAKmH,gBAAiBX,MAAO,wBAAyB,kBAAmB,IAAM,aAAe,C,CAGha,gBAAAY,GACI,GAAIpH,KAAKqB,KAAM,CACXrB,KAAKwB,c,KAEJ,CACDxB,KAAKa,OAAS,MACd,GAAIb,KAAKW,iBAAmB,KAAM,CAC9BX,KAAKW,eAAekD,Y,CAExB/B,YAAW,KACP,IAAIL,EAAIC,EACR1B,KAAKY,eAAiB,OACrBa,EAAKzB,KAAK2B,YAAc,MAAQF,SAAY,OAAS,EAAIA,EAAG4F,SAC5D3F,EAAK1B,KAAK8D,iBAAmB,MAAQpC,SAAY,OAAS,EAAIA,EAAGuE,QAClEjG,KAAKI,aAAe,EACpBJ,KAAKsH,eAAejF,MAAM,GAC3B,G,EAGX,oBAAAkF,GACIvH,KAAK2D,0B,CAET,gBAAA6D,GACIxH,KAAKqD,yBACLrD,KAAK6C,yCACL,GAAI7C,KAAKqB,KAAM,CACXrB,KAAKwB,c,EAER8E,EAAWtG,KAAKgD,GAAI,YACjByE,EAAiC,CAAC,CAAEC,KAAM1H,KAAKmG,QAASwB,SAAU,YAAc,S,CAExF,kBAAAC,GACI7D,SAAS8D,KAAKC,MAAMC,SAChBtC,iBAAiBzF,KAAKgD,IAAIgF,UAAY,QAClChI,KAAKiB,wBACH,SACA,M,CAEd,cAAAgH,CAAeC,GACX,GAAIlI,KAAKY,eAAgB,CACrB,OAAQsH,EAAGC,KACP,IAAK,MACD,GAAInI,KAAKkF,cAAcgD,EAAG/C,UAAW,CACjC+C,EAAGE,gB,CAEP,MACJ,IAAK,SACD,IAAKF,EAAGG,OAAQ,CACZrI,KAAKqB,KAAO,K,CAEhB6G,EAAGI,2BACH,M,EAIhB,WAAAC,CAAYL,GACR,GAAIlI,KAAK2B,UACL3B,KAAKc,sBACLoH,EAAGM,eAAeC,QAAQzI,KAAK2B,WAAa,EAAG,CAC/C,MAAM+G,IAAEA,EAAGC,OAAEA,EAAMC,KAAEA,EAAIC,MAAEA,GAAU7I,KAAK2B,SAASmH,wBACnD,MAAMC,EAAaL,GAAOR,EAAGc,SACzBd,EAAGc,SAAWN,EAAMC,GACpBC,GAAQV,EAAGe,SACXf,EAAGe,SAAWL,EAAOC,EACzB,IAAKE,EAAY,CACb/I,KAAKqB,KAAO,K,GAOxB,kBAAM6F,GACFlH,KAAKkJ,kBAAkB7G,OACvBrC,KAAKqB,KAAO,K,CAKhB,mBAAM8F,GACFnH,KAAKmJ,kBAAkB9G,M,CAE3B,+BAAAiD,GACI,GAAItF,KAAKK,oBAAsBL,KAAKiE,uBAAuBO,OAAS,EAChExE,KAAKK,oBAAsB,OAC1B,GAAIL,KAAKK,oBAAsB,EAAG,CACnCL,KAAKK,oBAAsBL,KAAKiE,uBAAuBO,OAAS,C,EAGxE,4BAAAa,CAA6BF,GACzB,GAAIA,EAAU,CACVnF,KAAKK,qBAAuB,C,KAE3B,CACDL,KAAKK,qBAAuB,C,EAGpC,MAAA+I,GACI,MAAMxI,eAAEA,EAAcK,wBAAEA,EAAuBJ,OAAEA,EAAMU,MAAEA,GAAUvB,KACnE,OAAQuG,EAAE8C,EAAM,CAAElB,IAAK,2CAA4C3B,MAAO,CAClE,oBAAqB5F,EACrB,oBAAqBC,EACrB,8BAA+BI,EAC/B,CAAC,YAAYM,KAAUA,IAAU,YAChCN,EAA2BsF,EAAE,MAAO,CAAEC,MAAO,WAAYE,IAAM1D,GAAQhD,KAAK+B,WAAaiB,GAAOhD,KAAKkG,gBAAoBlG,KAAKkG,e","ignoreList":[]}
1
+ {"version":3,"names":["icDialogCss","IcDialogStyle0","Dialog","constructor","hostRef","this","contentAreaMutationObserver","DATA_GETS_FOCUS","DIALOG_CONTROLS","dialogHeight","focusedElementIndex","IC_TEXT_FIELD","IC_ACCORDION","IC_ACCORDION_GROUP","IC_CHECKBOX","IC_SEARCH_BAR","resizeObserver","dialogRendered","fadeIn","closeOnBackdropClick","destructive","dismissLabel","disableHeightConstraint","disableWidthConstraint","hideCloseButton","hideDefaultControls","open","size","theme","dialogOpened","_a","_b","dialogEl","show","showModal","setTimeout","backdropEl","scrollTop","setInitialFocus","checkResizeObserver","runResizeObserver","icDialogOpened","emit","ResizeObserver","clearTimeout","resizeTimeout","window","resizeObserverCallback","observe","clientHeight","refreshInteractiveElementsOnSlotChange","_c","contentWrapper","el","shadowRoot","querySelector","contentArea","addEventListener","getInteractiveElements","MutationObserver","getSlotElements","forEach","childList","subtree","removeSlotChangeListener","removeEventListener","disconnect","sourceElement","document","activeElement","interactiveElementList","findIndex","element","hasAttribute","focusElement","getFocusedElementIndex","i","length","closeIconClick","Array","from","querySelectorAll","slottedInteractiveElements","slot","setAttribute","splice","getNextFocusEl","onTabKeyPress","shiftKey","tagName","setFocusIndexBasedOnShiftKey","loopNextFocusIndexIfLastElement","shouldSkipElement","isHidden","getComputedStyle","visibility","offsetHeight","radioEl","closest","getAttribute","nextFocusEl","setFocus","focus","renderDialog","heading","label","controlsSlotUsed","isSlotUsed","h","class","dialog","ref","name","variant","id","innerHTML","closeIcon","onClick","Fragment","cancelDialog","confirmDialog","watchOpenHandler","close","icDialogClosed","disconnectedCallback","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","body","style","overflow","display","handleKeyboard","ev","key","preventDefault","repeat","stopImmediatePropagation","handleClick","composedPath","indexOf","top","height","left","width","getBoundingClientRect","isInDialog","clientY","clientX","icDialogCancelled","icDialogConfirmed","render","Host"],"sources":["../web-components/dist/collection/components/ic-dialog/ic-dialog.css?tag=ic-dialog&encapsulation=shadow","../web-components/dist/collection/components/ic-dialog/ic-dialog.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-dialog: z-index of dialog \n */\n\n:host {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100% !important;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n opacity: 0;\n}\n\n:host(.ic-dialog-fade-in) {\n opacity: 1;\n}\n\n:host(.disable-height-constraint) {\n background: none;\n justify-content: unset;\n align-items: unset;\n}\n\n.dialog.disable-height-constraint {\n max-height: none;\n position: relative;\n}\n\n.dialog.disable-height-constraint .content-area {\n overflow-y: visible;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n transition: opacity var(--ic-easing-transition-slow);\n }\n\n .dialog {\n transform: translateY(-3rem);\n transition: transform 1000s;\n }\n\n :host(.ic-dialog-fade-in) .dialog {\n transform: translateY(0);\n transition: transform var(--ic-easing-transition-slow);\n }\n}\n\n:host(.ic-dialog-hidden) {\n display: none;\n}\n\n.dialog {\n background-color: var(--ic-dialog-background);\n color: var(--ic-dialog-text-primary);\n\n --ic-typography-color: var(--ic-dialog-text-primary);\n\n border: var(--ic-space-1px) solid var(--ic-dialog-border);\n border-radius: var(--ic-border-radius);\n padding: var(--ic-space-xs) 0 var(--ic-space-md);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow-x: visible;\n}\n\n.small {\n width: 50%;\n max-width: 25rem;\n min-height: 11rem;\n max-height: 70vh;\n}\n\n.medium {\n width: 70vw;\n max-width: 44rem;\n min-height: 12.5rem;\n max-height: 70vh;\n}\n\n.large {\n width: 90vw;\n max-width: 62.5rem;\n min-height: 12.5rem;\n max-height: 90vh;\n}\n\n.heading-area {\n display: flex;\n margin-bottom: var(--ic-space-xs);\n padding: 0 var(--ic-space-md);\n}\n\n.heading {\n overflow-wrap: break-word;\n}\n\n.close-icon {\n margin-left: auto;\n}\n\n.close-icon > svg {\n color: var(--ic-dialog-clear-button);\n}\n\n.content-area {\n padding: 0 var(--ic-space-md);\n margin: 0;\n overflow-y: auto;\n}\n\n#dialog-content {\n margin-bottom: var(--ic-space-sm);\n}\n\n#dialog-content ::slotted(ic-typography) {\n overflow-wrap: break-word;\n}\n\n#dialog-content ::slotted(*) {\n position: relative;\n}\n\n.dialog-controls {\n margin-top: auto;\n padding: var(--ic-space-xs) var(--ic-space-md) 0;\n display: flex;\n justify-content: flex-end;\n gap: var(--ic-space-md);\n}\n\n.dialog-control-button {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.backdrop {\n overflow-y: auto;\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n padding-top: 16px;\n padding-bottom: 16px;\n}\n\n.heading ic-typography {\n --ic-typography-color: var(--ic-dialog-text-primary);\n}\n\n.label ic-typography {\n --ic-typography-color: var(--ic-dialog-label);\n}\n\n@media (min-width: 800px) {\n :host([size=\"large\"]) .dialog:not(.disable-width-constraint) > .content-area {\n width: 75%;\n }\n}\n\n@media (max-width: 576px) {\n .dialog {\n width: 100vw;\n height: 100vh;\n max-width: none;\n max-height: none;\n box-sizing: border-box;\n }\n\n .backdrop {\n padding: 0;\n }\n\n .dialog.disable-height-constraint {\n height: auto;\n min-height: 100vh;\n }\n}\n\n@media (max-width: 364px) {\n .dialog-control-button {\n width: unset;\n }\n}\n","import { Host, h, Fragment, } from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, checkResizeObserver, onComponentRequiredPropUndefined, getSlotElements, } from \"../../utils/helpers\";\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 */\nexport class Dialog {\n constructor() {\n this.contentAreaMutationObserver = null;\n this.DATA_GETS_FOCUS = \"data-gets-focus\";\n this.DIALOG_CONTROLS = \"dialog-controls\";\n this.dialogHeight = 0;\n this.focusedElementIndex = 0;\n this.IC_TEXT_FIELD = \"IC-TEXT-FIELD\";\n this.IC_ACCORDION = \"IC-ACCORDION\";\n this.IC_ACCORDION_GROUP = \"IC-ACCORDION-GROUP\";\n this.IC_CHECKBOX = \"IC-CHECKBOX\";\n this.IC_SEARCH_BAR = \"IC-SEARCH-BAR\";\n this.resizeObserver = null;\n this.dialogRendered = false;\n this.fadeIn = false;\n /**\n * If set to `false`, the dialog will not close when the backdrop is clicked.\n */\n this.closeOnBackdropClick = true;\n /**\n * If 'true', 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 this.destructive = false;\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n this.dismissLabel = \"Dismiss\";\n /**\n * If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\n * This prop also prevents popover elements from being cut off within the content area.\n */\n this.disableHeightConstraint = false;\n /**\n * If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\n */\n this.disableWidthConstraint = false;\n /**\n * If `true`, the close button will not be displayed.\n */\n this.hideCloseButton = false;\n /**\n * If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\n */\n this.hideDefaultControls = false;\n /**\n * If `true`, the dialog will be displayed.\n */\n this.open = false;\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n this.size = \"small\";\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n this.dialogOpened = () => {\n var _a, _b;\n this.dialogRendered = true;\n if (this.disableHeightConstraint) {\n (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.show();\n }\n else {\n (_b = this.dialogEl) === null || _b === void 0 ? void 0 : _b.showModal();\n }\n setTimeout(() => {\n this.fadeIn = true;\n /**\n * This is required to set scroll back to top if:\n * - dialog content goes below the fold\n * - is closed using cancel or confirm and reopened.\n *\n * Without this, the scroll bar will start from the dialog's last scroll-x coordinate.\n */\n if (this.backdropEl &&\n this.disableHeightConstraint &&\n this.backdropEl.scrollTop !== 0) {\n this.backdropEl.scrollTop = 0;\n }\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.icDialogOpened.emit();\n }, 80);\n };\n this.runResizeObserver = () => {\n if (this.dialogEl) {\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 this.resizeObserverCallback = () => {\n if (this.dialogEl && this.dialogEl.clientHeight !== this.dialogHeight) {\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n this.refreshInteractiveElementsOnSlotChange = () => {\n var _a, _b, _c;\n const contentWrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"#dialog-content\");\n if (contentWrapper) {\n this.contentArea = contentWrapper.querySelector(\"slot\");\n // Detect changes to slotted elements\n (_b = this.contentArea) === null || _b === void 0 ? void 0 : _b.addEventListener(\"slotchange\", this.getInteractiveElements);\n this.contentAreaMutationObserver = new MutationObserver(() => {\n this.getInteractiveElements();\n });\n // Detect changes to children of slotted elements\n (_c = getSlotElements(contentWrapper)) === null || _c === void 0 ? void 0 : _c.forEach((el) => {\n var _a;\n (_a = this.contentAreaMutationObserver) === null || _a === void 0 ? void 0 : _a.observe(el, {\n childList: true,\n subtree: true,\n });\n });\n }\n };\n this.removeSlotChangeListener = () => {\n var _a;\n if (this.contentArea) {\n this.contentArea.removeEventListener(\"slotchange\", this.getInteractiveElements);\n (_a = this.contentAreaMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n };\n this.setInitialFocus = () => {\n this.sourceElement = document.activeElement;\n this.focusedElementIndex = this.interactiveElementList\n ? this.interactiveElementList.findIndex((element) => element.hasAttribute(this.DATA_GETS_FOCUS))\n : 0;\n this.focusElement(this.interactiveElementList[this.focusedElementIndex]);\n };\n this.getFocusedElementIndex = () => {\n var _a;\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (this.interactiveElementList[i] ===\n (((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) || document.activeElement)) {\n this.focusedElementIndex = i;\n }\n }\n };\n this.closeIconClick = () => {\n this.open = false;\n };\n this.getInteractiveElements = () => {\n var _a;\n this.interactiveElementList = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"ic-button\")) || []);\n const slottedInteractiveElements = Array.from(this.el.querySelectorAll(`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, \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, ic-date-input, ic-date-picker`));\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n else if (!this.destructive) {\n slottedInteractiveElements[slottedInteractiveElements.length - 1].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(1 + i, 0, slottedInteractiveElements[i]);\n }\n };\n this.getNextFocusEl = (focusedElementIndex) => this.interactiveElementList[focusedElementIndex];\n this.onTabKeyPress = (shiftKey) => {\n this.getFocusedElementIndex();\n if (this.interactiveElementList[this.focusedElementIndex].tagName ===\n this.IC_SEARCH_BAR) {\n return false;\n }\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n this.focusElement(this.getNextFocusEl(this.focusedElementIndex), shiftKey);\n return true;\n };\n this.shouldSkipElement = (element) => {\n const isHidden = getComputedStyle(element).visibility === \"hidden\" ||\n element.offsetHeight === 0 ||\n element.hasAttribute(\"disabled\") ||\n (element.tagName === this.IC_ACCORDION_GROUP &&\n element.hasAttribute(\"single-expansion\"));\n const radioEl = element.closest(\"ic-radio-option\");\n return (isHidden ||\n (element.getAttribute(\"type\") === \"radio\" &&\n !!radioEl &&\n !radioEl.hasAttribute(\"selected\")));\n };\n this.focusElement = (element, shiftKey = false) => {\n let nextFocusEl = element;\n if (this.shouldSkipElement(element)) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n this.focusElement(nextFocusEl, shiftKey);\n }\n else {\n switch (element.tagName) {\n case this.IC_ACCORDION_GROUP:\n case this.IC_ACCORDION:\n case this.IC_SEARCH_BAR:\n case this.IC_TEXT_FIELD:\n case this.IC_CHECKBOX:\n element.setFocus();\n break;\n default:\n element.focus();\n }\n }\n };\n this.renderDialog = () => {\n const { hideDefaultControls, size, heading, label, destructive, dismissLabel, hideCloseButton, disableHeightConstraint, disableWidthConstraint, closeIconClick, DIALOG_CONTROLS, } = this;\n const controlsSlotUsed = isSlotUsed(this.el, DIALOG_CONTROLS);\n return (h(\"dialog\", { class: {\n dialog: true,\n [`${size}`]: true,\n \"disable-height-constraint\": !!disableHeightConstraint,\n \"disable-width-constraint\": !!disableWidthConstraint,\n }, \"aria-labelledby\": \"dialog-label dialog-heading\", \"aria-describedby\": \"dialog-alert dialog-content\", ref: (el) => (this.dialogEl = el) }, h(\"div\", { class: \"heading-area\" }, h(\"div\", { class: \"heading-content\" }, h(\"div\", { class: \"label\" }, h(\"slot\", { name: \"label\" }, h(\"ic-typography\", { variant: \"label\", id: \"dialog-label\" }, label))), h(\"div\", { class: \"heading\" }, h(\"slot\", { name: \"heading\" }, h(\"ic-typography\", { variant: \"h4\", id: \"dialog-heading\" }, heading)))), !hideCloseButton && (h(\"ic-button\", { class: \"close-icon\", variant: \"icon\", innerHTML: closeIcon, \"aria-label\": dismissLabel, onClick: closeIconClick, \"data-gets-focus\": destructive || (hideDefaultControls && !controlsSlotUsed)\n ? \"\"\n : null }))), h(\"div\", { class: \"content-area\" }, isSlotUsed(this.el, \"alert\") && h(\"slot\", { name: \"alert\" }), h(\"div\", { id: \"dialog-content\" }, h(\"slot\", null))), (controlsSlotUsed || !hideDefaultControls) && (h(\"div\", { class: {\n [DIALOG_CONTROLS]: true,\n } }, controlsSlotUsed ? (h(\"slot\", { name: DIALOG_CONTROLS })) : (h(Fragment, null, h(\"ic-button\", { variant: \"tertiary\", onClick: () => this.cancelDialog(), class: \"dialog-control-button\", \"data-gets-focus\": null }, \"Cancel\"), h(\"ic-button\", { variant: destructive ? \"destructive\" : \"primary\", onClick: () => this.confirmDialog(), class: \"dialog-control-button\", \"data-gets-focus\": \"\" }, \"Confirm\")))))));\n };\n }\n watchOpenHandler() {\n if (this.open) {\n this.dialogOpened();\n }\n else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n var _a, _b;\n this.dialogRendered = false;\n (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.close();\n (_b = this.sourceElement) === null || _b === void 0 ? void 0 : _b.focus();\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n disconnectedCallback() {\n this.removeSlotChangeListener();\n }\n componentDidLoad() {\n this.getInteractiveElements();\n this.refreshInteractiveElementsOnSlotChange();\n if (this.open) {\n this.dialogOpened();\n }\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Dialog\");\n }\n componentDidRender() {\n document.body.style.overflow =\n getComputedStyle(this.el).display !== \"none\" &&\n this.disableHeightConstraint\n ? \"hidden\"\n : \"auto\";\n }\n handleKeyboard(ev) {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n if (this.onTabKeyPress(ev.shiftKey)) {\n ev.preventDefault();\n }\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n handleClick(ev) {\n if (this.dialogEl &&\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(this.dialogEl) <= 0) {\n const { top, height, left, width } = this.dialogEl.getBoundingClientRect();\n const isInDialog = top <= ev.clientY &&\n ev.clientY <= top + height &&\n left <= ev.clientX &&\n ev.clientX <= left + width;\n if (!isInDialog) {\n this.open = false;\n }\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 async cancelDialog() {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n async confirmDialog() {\n this.icDialogConfirmed.emit();\n }\n 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 setFocusIndexBasedOnShiftKey(shiftKey) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n }\n else {\n this.focusedElementIndex += 1;\n }\n }\n render() {\n const { dialogRendered, disableHeightConstraint, fadeIn, theme } = this;\n return (h(Host, { key: 'e8517bd103f365705b664f80c494df70972dd9c4', class: {\n \"ic-dialog-hidden\": !dialogRendered,\n \"ic-dialog-fade-in\": fadeIn,\n \"disable-height-constraint\": !!disableHeightConstraint,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, disableHeightConstraint ? (h(\"div\", { class: \"backdrop\", ref: (el) => (this.backdropEl = el) }, this.renderDialog())) : (this.renderDialog())));\n }\n static get is() { return \"ic-dialog\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get properties() {\n return {\n \"closeOnBackdropClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `false`, the dialog will not close when the backdrop is clicked.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"close-on-backdrop-click\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"destructive\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If 'true', 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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"destructive\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dismissLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the dismiss label tooltip and aria label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"dismiss-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Dismiss\\\"\"\n },\n \"disableHeightConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\\nThis prop also prevents popover elements from being cut off within the content area.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-height-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableWidthConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-width-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideCloseButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the close button will not be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-close-button\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideDefaultControls\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-default-controls\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the heading for the dialog.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the optional label for the dialog which appears above the heading.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the dialog will be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"open\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"small\\\" | \\\"medium\\\" | \\\"large\\\"\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the maximum and minimum height and width for the dialog.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"small\\\"\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"dialogRendered\": {},\n \"fadeIn\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icDialogCancelled\",\n \"name\": \"icDialogCancelled\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogClosed\",\n \"name\": \"icDialogClosed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has closed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogConfirmed\",\n \"name\": \"icDialogConfirmed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogOpened\",\n \"name\": \"icDialogOpened\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has opened.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"cancelDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\",\n \"tags\": []\n }\n },\n \"confirmDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"keydown\",\n \"method\": \"handleKeyboard\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-dialog.js.map\n"],"mappings":"oKAAA,MAAMA,EAAc,89JACpB,MAAAC,EAAeD,E,MCQFE,EAAM,MACf,WAAAC,CAAAC,G,kNACIC,KAAKC,4BAA8B,KACnCD,KAAKE,gBAAkB,kBACvBF,KAAKG,gBAAkB,kBACvBH,KAAKI,aAAe,EACpBJ,KAAKK,oBAAsB,EAC3BL,KAAKM,cAAgB,gBACrBN,KAAKO,aAAe,eACpBP,KAAKQ,mBAAqB,qBAC1BR,KAAKS,YAAc,cACnBT,KAAKU,cAAgB,gBACrBV,KAAKW,eAAiB,KACtBX,KAAKY,eAAiB,MACtBZ,KAAKa,OAAS,MAIdb,KAAKc,qBAAuB,KAI5Bd,KAAKe,YAAc,MAInBf,KAAKgB,aAAe,UAKpBhB,KAAKiB,wBAA0B,MAI/BjB,KAAKkB,uBAAyB,MAI9BlB,KAAKmB,gBAAkB,MAIvBnB,KAAKoB,oBAAsB,MAI3BpB,KAAKqB,KAAO,MAIZrB,KAAKsB,KAAO,QAIZtB,KAAKuB,MAAQ,UACbvB,KAAKwB,aAAe,KAChB,IAAIC,EAAIC,EACR1B,KAAKY,eAAiB,KACtB,GAAIZ,KAAKiB,wBAAyB,EAC7BQ,EAAKzB,KAAK2B,YAAc,MAAQF,SAAY,OAAS,EAAIA,EAAGG,M,KAE5D,EACAF,EAAK1B,KAAK2B,YAAc,MAAQD,SAAY,OAAS,EAAIA,EAAGG,W,CAEjEC,YAAW,KACP9B,KAAKa,OAAS,KAQd,GAAIb,KAAK+B,YACL/B,KAAKiB,yBACLjB,KAAK+B,WAAWC,YAAc,EAAG,CACjChC,KAAK+B,WAAWC,UAAY,C,IAEjC,IACHF,YAAW,KACP9B,KAAKiC,kBACLC,EAAoBlC,KAAKmC,kBAAkB,GAC5C,IACHL,YAAW,KACP9B,KAAKoC,eAAeC,MAAM,GAC3B,GAAG,EAEVrC,KAAKmC,kBAAoB,KACrB,GAAInC,KAAK2B,SAAU,CACf3B,KAAKW,eAAiB,IAAI2B,gBAAe,KACrCC,aAAavC,KAAKwC,eAClBxC,KAAKwC,cAAgBC,OAAOX,WAAW9B,KAAK0C,uBAAwB,GAAG,IAE3E1C,KAAKW,eAAegC,QAAQ3C,KAAK2B,S,GAGzC3B,KAAK0C,uBAAyB,KAC1B,GAAI1C,KAAK2B,UAAY3B,KAAK2B,SAASiB,eAAiB5C,KAAKI,aAAc,CACnEJ,KAAKI,aAAeJ,KAAK2B,SAASiB,Y,GAG1C5C,KAAK6C,uCAAyC,KAC1C,IAAIpB,EAAIC,EAAIoB,EACZ,MAAMC,GAAkBtB,EAAKzB,KAAKgD,GAAGC,cAAgB,MAAQxB,SAAY,OAAS,EAAIA,EAAGyB,cAAc,mBACvG,GAAIH,EAAgB,CAChB/C,KAAKmD,YAAcJ,EAAeG,cAAc,SAE/CxB,EAAK1B,KAAKmD,eAAiB,MAAQzB,SAAY,OAAS,EAAIA,EAAG0B,iBAAiB,aAAcpD,KAAKqD,wBACpGrD,KAAKC,4BAA8B,IAAIqD,kBAAiB,KACpDtD,KAAKqD,wBAAwB,KAGhCP,EAAKS,EAAgBR,MAAqB,MAAQD,SAAY,OAAS,EAAIA,EAAGU,SAASR,IACpF,IAAIvB,GACHA,EAAKzB,KAAKC,+BAAiC,MAAQwB,SAAY,OAAS,EAAIA,EAAGkB,QAAQK,EAAI,CACxFS,UAAW,KACXC,QAAS,MACX,G,GAId1D,KAAK2D,yBAA2B,KAC5B,IAAIlC,EACJ,GAAIzB,KAAKmD,YAAa,CAClBnD,KAAKmD,YAAYS,oBAAoB,aAAc5D,KAAKqD,yBACvD5B,EAAKzB,KAAKC,+BAAiC,MAAQwB,SAAY,OAAS,EAAIA,EAAGoC,Y,GAGxF7D,KAAKiC,gBAAkB,KACnBjC,KAAK8D,cAAgBC,SAASC,cAC9BhE,KAAKK,oBAAsBL,KAAKiE,uBAC1BjE,KAAKiE,uBAAuBC,WAAWC,GAAYA,EAAQC,aAAapE,KAAKE,mBAC7E,EACNF,KAAKqE,aAAarE,KAAKiE,uBAAuBjE,KAAKK,qBAAqB,EAE5EL,KAAKsE,uBAAyB,KAC1B,IAAI7C,EACJ,IAAK,IAAI8C,EAAI,EAAGA,EAAIvE,KAAKiE,uBAAuBO,OAAQD,IAAK,CACzD,GAAIvE,KAAKiE,uBAAuBM,QACzB9C,EAAKzB,KAAKgD,GAAGC,cAAgB,MAAQxB,SAAY,OAAS,EAAIA,EAAGuC,gBAAkBD,SAASC,eAAgB,CAC/GhE,KAAKK,oBAAsBkE,C,IAIvCvE,KAAKyE,eAAiB,KAClBzE,KAAKqB,KAAO,KAAK,EAErBrB,KAAKqD,uBAAyB,KAC1B,IAAI5B,EACJzB,KAAKiE,uBAAyBS,MAAMC,OAAOlD,EAAKzB,KAAKgD,GAAGC,cAAgB,MAAQxB,SAAY,OAAS,EAAIA,EAAGmD,iBAAiB,eAAiB,IAC9I,MAAMC,EAA6BH,MAAMC,KAAK3E,KAAKgD,GAAG4B,iBAAiB,kaAIvE,GAAIC,EAA2BL,OAAS,EAAG,CACvC,GAAIK,EAA2B,GAAGC,OAAS9E,KAAKG,gBAAiB,CAC7D0E,EAA2B,GAAGE,aAAa/E,KAAKE,gBAAiB,G,MAEhE,IAAKF,KAAKe,YAAa,CACxB8D,EAA2BA,EAA2BL,OAAS,GAAGO,aAAa/E,KAAKE,gBAAiB,G,EAG7G,IAAK,IAAIqE,EAAI,EAAGA,EAAIM,EAA2BL,OAAQD,IAAK,CACxDvE,KAAKiE,uBAAuBe,OAAO,EAAIT,EAAG,EAAGM,EAA2BN,G,GAGhFvE,KAAKiF,eAAkB5E,GAAwBL,KAAKiE,uBAAuB5D,GAC3EL,KAAKkF,cAAiBC,IAClBnF,KAAKsE,yBACL,GAAItE,KAAKiE,uBAAuBjE,KAAKK,qBAAqB+E,UACtDpF,KAAKU,cAAe,CACpB,OAAO,K,CAEXV,KAAKqF,6BAA6BF,GAClCnF,KAAKsF,kCACLtF,KAAKqE,aAAarE,KAAKiF,eAAejF,KAAKK,qBAAsB8E,GACjE,OAAO,IAAI,EAEfnF,KAAKuF,kBAAqBpB,IACtB,MAAMqB,EAAWC,iBAAiBtB,GAASuB,aAAe,UACtDvB,EAAQwB,eAAiB,GACzBxB,EAAQC,aAAa,aACpBD,EAAQiB,UAAYpF,KAAKQ,oBACtB2D,EAAQC,aAAa,oBAC7B,MAAMwB,EAAUzB,EAAQ0B,QAAQ,mBAChC,OAAQL,GACHrB,EAAQ2B,aAAa,UAAY,WAC5BF,IACDA,EAAQxB,aAAa,WAAY,EAE9CpE,KAAKqE,aAAe,CAACF,EAASgB,EAAW,SACrC,IAAIY,EAAc5B,EAClB,GAAInE,KAAKuF,kBAAkBpB,GAAU,CACjCnE,KAAKqF,6BAA6BF,GAClCnF,KAAKsF,kCACLS,EAAc/F,KAAKiF,eAAejF,KAAKK,qBACvCL,KAAKqE,aAAa0B,EAAaZ,E,KAE9B,CACD,OAAQhB,EAAQiB,SACZ,KAAKpF,KAAKQ,mBACV,KAAKR,KAAKO,aACV,KAAKP,KAAKU,cACV,KAAKV,KAAKM,cACV,KAAKN,KAAKS,YACN0D,EAAQ6B,WACR,MACJ,QACI7B,EAAQ8B,Q,GAIxBjG,KAAKkG,aAAe,KAChB,MAAM9E,oBAAEA,EAAmBE,KAAEA,EAAI6E,QAAEA,EAAOC,MAAEA,EAAKrF,YAAEA,EAAWC,aAAEA,EAAYG,gBAAEA,EAAeF,wBAAEA,EAAuBC,uBAAEA,EAAsBuD,eAAEA,EAActE,gBAAEA,GAAqBH,KACrL,MAAMqG,EAAmBC,EAAWtG,KAAKgD,GAAI7C,GAC7C,OAAQoG,EAAE,SAAU,CAAEC,MAAO,CACrBC,OAAQ,KACR,CAAC,GAAGnF,KAAS,KACb,8BAA+BL,EAC/B,6BAA8BC,GAC/B,kBAAmB,8BAA+B,mBAAoB,8BAA+BwF,IAAM1D,GAAQhD,KAAK2B,SAAWqB,GAAOuD,EAAE,MAAO,CAAEC,MAAO,gBAAkBD,EAAE,MAAO,CAAEC,MAAO,mBAAqBD,EAAE,MAAO,CAAEC,MAAO,SAAWD,EAAE,OAAQ,CAAEI,KAAM,SAAWJ,EAAE,gBAAiB,CAAEK,QAAS,QAASC,GAAI,gBAAkBT,KAAUG,EAAE,MAAO,CAAEC,MAAO,WAAaD,EAAE,OAAQ,CAAEI,KAAM,WAAaJ,EAAE,gBAAiB,CAAEK,QAAS,KAAMC,GAAI,kBAAoBV,OAAchF,GAAoBoF,EAAE,YAAa,CAAEC,MAAO,aAAcI,QAAS,OAAQE,UAAWC,EAAW,aAAc/F,EAAcgG,QAASvC,EAAgB,kBAAmB1D,GAAgBK,IAAwBiF,EAC5qB,GACA,QAAWE,EAAE,MAAO,CAAEC,MAAO,gBAAkBF,EAAWtG,KAAKgD,GAAI,UAAYuD,EAAE,OAAQ,CAAEI,KAAM,UAAYJ,EAAE,MAAO,CAAEM,GAAI,kBAAoBN,EAAE,OAAQ,SAAUF,IAAqBjF,IAAyBmF,EAAE,MAAO,CAAEC,MAAO,CACtOrG,CAACA,GAAkB,OAClBkG,EAAoBE,EAAE,OAAQ,CAAEI,KAAMxG,IAAuBoG,EAAEU,EAAU,KAAMV,EAAE,YAAa,CAAEK,QAAS,WAAYI,QAAS,IAAMhH,KAAKkH,eAAgBV,MAAO,wBAAyB,kBAAmB,MAAQ,UAAWD,EAAE,YAAa,CAAEK,QAAS7F,EAAc,cAAgB,UAAWiG,QAAS,IAAMhH,KAAKmH,gBAAiBX,MAAO,wBAAyB,kBAAmB,IAAM,aAAe,C,CAGha,gBAAAY,GACI,GAAIpH,KAAKqB,KAAM,CACXrB,KAAKwB,c,KAEJ,CACDxB,KAAKa,OAAS,MACd,GAAIb,KAAKW,iBAAmB,KAAM,CAC9BX,KAAKW,eAAekD,Y,CAExB/B,YAAW,KACP,IAAIL,EAAIC,EACR1B,KAAKY,eAAiB,OACrBa,EAAKzB,KAAK2B,YAAc,MAAQF,SAAY,OAAS,EAAIA,EAAG4F,SAC5D3F,EAAK1B,KAAK8D,iBAAmB,MAAQpC,SAAY,OAAS,EAAIA,EAAGuE,QAClEjG,KAAKI,aAAe,EACpBJ,KAAKsH,eAAejF,MAAM,GAC3B,G,EAGX,oBAAAkF,GACIvH,KAAK2D,0B,CAET,gBAAA6D,GACIxH,KAAKqD,yBACLrD,KAAK6C,yCACL,GAAI7C,KAAKqB,KAAM,CACXrB,KAAKwB,c,EAER8E,EAAWtG,KAAKgD,GAAI,YACjByE,EAAiC,CAAC,CAAEC,KAAM1H,KAAKmG,QAASwB,SAAU,YAAc,S,CAExF,kBAAAC,GACI7D,SAAS8D,KAAKC,MAAMC,SAChBtC,iBAAiBzF,KAAKgD,IAAIgF,UAAY,QAClChI,KAAKiB,wBACH,SACA,M,CAEd,cAAAgH,CAAeC,GACX,GAAIlI,KAAKY,eAAgB,CACrB,OAAQsH,EAAGC,KACP,IAAK,MACD,GAAInI,KAAKkF,cAAcgD,EAAG/C,UAAW,CACjC+C,EAAGE,gB,CAEP,MACJ,IAAK,SACD,IAAKF,EAAGG,OAAQ,CACZrI,KAAKqB,KAAO,K,CAEhB6G,EAAGI,2BACH,M,EAIhB,WAAAC,CAAYL,GACR,GAAIlI,KAAK2B,UACL3B,KAAKc,sBACLoH,EAAGM,eAAeC,QAAQzI,KAAK2B,WAAa,EAAG,CAC/C,MAAM+G,IAAEA,EAAGC,OAAEA,EAAMC,KAAEA,EAAIC,MAAEA,GAAU7I,KAAK2B,SAASmH,wBACnD,MAAMC,EAAaL,GAAOR,EAAGc,SACzBd,EAAGc,SAAWN,EAAMC,GACpBC,GAAQV,EAAGe,SACXf,EAAGe,SAAWL,EAAOC,EACzB,IAAKE,EAAY,CACb/I,KAAKqB,KAAO,K,GAOxB,kBAAM6F,GACFlH,KAAKkJ,kBAAkB7G,OACvBrC,KAAKqB,KAAO,K,CAKhB,mBAAM8F,GACFnH,KAAKmJ,kBAAkB9G,M,CAE3B,+BAAAiD,GACI,GAAItF,KAAKK,oBAAsBL,KAAKiE,uBAAuBO,OAAS,EAChExE,KAAKK,oBAAsB,OAC1B,GAAIL,KAAKK,oBAAsB,EAAG,CACnCL,KAAKK,oBAAsBL,KAAKiE,uBAAuBO,OAAS,C,EAGxE,4BAAAa,CAA6BF,GACzB,GAAIA,EAAU,CACVnF,KAAKK,qBAAuB,C,KAE3B,CACDL,KAAKK,qBAAuB,C,EAGpC,MAAA+I,GACI,MAAMxI,eAAEA,EAAcK,wBAAEA,EAAuBJ,OAAEA,EAAMU,MAAEA,GAAUvB,KACnE,OAAQuG,EAAE8C,EAAM,CAAElB,IAAK,2CAA4C3B,MAAO,CAClE,oBAAqB5F,EACrB,oBAAqBC,EACrB,8BAA+BI,EAC/B,CAAC,YAAYM,KAAUA,IAAU,YAChCN,EAA2BsF,EAAE,MAAO,CAAEC,MAAO,WAAYE,IAAM1D,GAAQhD,KAAK+B,WAAaiB,GAAOhD,KAAKkG,gBAAoBlG,KAAKkG,e","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as e,h as i,H as s,g as o}from"./p-8e4e97b4.js";import{r,i as c,o as a,a as l}from"./p-e253a857.js";const n=`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor"/>\n</svg>`;const h=':host{display:block;border:none;position:relative}:host .tree-item-content{display:flex;align-items:center;min-height:var(--ic-space-xl);padding:var(--ic-space-xxs) var(--ic-space-xs);text-decoration:none;color:var(--ic-tree-view-text);--ic-typography-color:var(--ic-tree-view-text)}::slotted([slot="router-item"]){display:flex;align-items:center;min-height:var(--ic-space-xl);text-decoration:none;font-family:var(--ic-font-body-family);color:var(--ic-tree-view-text);padding:var(--ic-space-xxs) var(--ic-space-xs) !important}:host(.ic-tree-item-truncate) .tree-item-content,:host(.ic-tree-item-truncate) ::slotted([slot="router-item"]){height:calc(var(--ic-space-xl) + var(--ic-space-xs))}::slotted([slot="router-item"].ic-tree-item-single){padding-left:calc(var(--ic-space-xl) + var(--ic-space-xs)) !important}:host .tree-item-content:focus,::slotted([slot="router-item"]:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);transition:var(--ic-transition-duration-fast);outline:none}:host .tree-item-content:hover,::slotted([slot="router-item"]:hover){background-color:var(--ic-tree-view-hover) !important;cursor:pointer}:host .tree-item-content:active,::slotted([slot="router-item"]:active){background-color:var(--ic-tree-view-pressed) !important}:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){background-color:var(--ic-tree-view-selected) !important}:host(.ic-tree-item-small) .tree-item-content,:host(.ic-tree-item-small) ::slotted([slot="router-item"]){min-height:var(--ic-space-lg)}:host(.ic-tree-item-large) .tree-item-content,:host(.ic-tree-item-large) ::slotted([slot="router-item"]){min-height:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-tree-item-truncate.ic-tree-item-small) .tree-item-content,:host(.ic-tree-item-truncate.ic-tree-item-small) ::slotted([slot="router-item"]){height:var(--ic-space-lg)}:host(.ic-tree-item-truncate.ic-tree-item-large) .tree-item-content,:host(.ic-tree-item-truncate.ic-tree-item-large) ::slotted([slot="router-item"]){height:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-tree-item-disabled){pointer-events:none}:host(.ic-tree-item-disabled) .tree-item-content,:host(.ic-tree-item-disabled) ::slotted([slot="icon"]),:host(.ic-tree-item-disabled) ::slotted([slot="router-item"]){color:var(--ic-tree-view-text-disabled) !important;--ic-typography-color:var(--ic-tree-view-text-disabled) !important;fill:var(--ic-tree-view-icon-disabled);pointer-events:none}:host .arrow-dropdown{color:var(--ic-tree-view-dropdown-arrow);margin-right:var(--ic-space-xs);margin-bottom:calc(var(--ic-space-xxs) * -1)}:host(.ic-tree-item-disabled) .arrow-dropdown{color:var(--ic-tree-view-dropdown-arrow-disabled)}:host(.ic-tree-item-small) .arrow-dropdown{margin-right:var(--ic-space-xxs)}:host .tree-item-expanded{transform:rotate(180deg);margin-top:calc(-1 * var(--ic-space-xxs));margin-bottom:0}:host .ic-tree-item-single{padding-left:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-tree-item-small) .ic-tree-item-single{padding-left:calc(var(--ic-space-xl) + var(--ic-space-xxs))}.icon-container{min-width:var(--ic-space-lg);width:var(--ic-space-lg);height:var(--ic-space-lg);margin:0 var(--ic-space-xs) 0 0}:host(.ic-tree-item-small) .icon-container{margin:0 var(--ic-space-xxs) 0 0}.ic-text-overflow{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ic-tooltip-overflow{overflow:hidden}::slotted([slot="icon"]){fill:var(--ic-tree-view-icon)}@media (forced-colors: active){::slotted([slot="icon"]){fill:currentcolor}:host .tree-item-content:hover,::slotted([slot="router-item"]:hover),:host .tree-item-content:active,::slotted([slot="router-item"]:active),:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){background-color:none !important}:host(.ic-tree-item-disabled) .tree-item-content,:host(.ic-tree-item-disabled) .arrow-dropdown,:host(.ic-tree-item-disabled) ::slotted([slot="icon"]),:host(.ic-tree-item-disabled) ::slotted([slot="router-item"]){color:GrayText !important;--ic-typography-color:GrayText !important;fill:GrayText !important}:host .tree-item-content:focus,::slotted([slot="router-item"]:focus){border:var(--ic-border-hc) !important}:host(.ic-tree-item-selected) .tree-item-content,:host(.ic-tree-item-selected) ::slotted([slot="router-item"]){color:Highlight !important;--ic-typography-color:Highlight !important}}';const d=h;let m=0;const v=class{constructor(i){t(this,i);this.icTreeItemSelected=e(this,"icTreeItemSelected",7);this.icTreeItemExpanded=e(this,"icTreeItemExpanded",7);this.treeItemTag="IC-TREE-ITEM";this.hostMutationObserver=null;this.TOOLTIP="ic-tooltip";this.TREE_ITEM_LABEL_CLASS_SELECTOR=".tree-item-label";this.TREE_ITEM_CONTENT_CLASS_SELECTOR=".tree-item-content";this.disabled=false;this.expanded=false;this.hasParentExpanded=false;this.hreflang="";this.isParent=false;this.label="";this.selected=false;this.size="medium";this.theme="inherit";this.handleTreeItemClicked=()=>{if(this.isParent){this.expanded=!this.expanded;this.hasParentExpanded=true}this.updateAriaLabel();this.selected=true;this.watchSelectedHandler()};this.setTreeItemPadding=()=>{var t;let e=1;let i=this.el.parentElement;const s=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(this.TREE_ITEM_CONTENT_CLASS_SELECTOR);if(!i){return}const o=Array.from(i.children).some((t=>t!==this.el&&!t.querySelector('[slot="router-item"]')&&!t.querySelector('[slot="label"]')&&t.children.length>0));if(o&&!this.el.isParent||i.tagName===this.treeItemTag&&!this.el.isParent){if(this.hasRouterSlot()){this.routerSlot.classList.add("ic-tree-item-single")}else{s.classList.add("ic-tree-item-single")}}while(i){if(i.tagName===this.treeItemTag){e++;s.style.paddingLeft=!this.el.isParent?`calc(var(--ic-space-${o?"xl":"xs"}) + ${e*(o?16:24)}px)`:`${e*16}px`}i=i.parentElement}};this.truncateTreeItemLabel=t=>{var e,i;let s=(e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);const o=t.querySelector("[slot='router-item']");let r=o===null||o===void 0?void 0:o.scrollHeight;if(!s&&o){const t=document.createElement("ic-typography");t.innerHTML=o.textContent;t.classList.add("tree-item-label");o.replaceChild(t,o.firstChild);s=t}else if(s){r=s.scrollHeight}const c=!!(s===null||s===void 0?void 0:s.closest(this.TOOLTIP));const a=((i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector(this.TREE_ITEM_CONTENT_CLASS_SELECTOR))||o;if(a){const t=parseFloat(getComputedStyle(a).height);if(r&&t&&r>t&&!c&&s){const t=document.createElement("ic-tooltip");t.setAttribute("target",this.el.id);t.setAttribute("label",s.textContent);t.setAttribute("placement","right");if(a===o){a.addEventListener("focus",(()=>this.handleDisplayTooltip(true)));a.addEventListener("blur",(()=>this.handleDisplayTooltip(false)));t.setAttribute("style","overflow:hidden;");s.setAttribute("style","overflow:hidden;text-overflow:ellipsis;white-space:nowrap;")}else{t.classList.add("ic-tooltip-overflow");s.classList.add("ic-text-overflow")}a.appendChild(t);t.appendChild(s)}}};this.removeTreeItemTruncation=t=>{var e,i;const s=t.querySelector("[slot='router-item']");const o=((e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR))||s.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);const r=o===null||o===void 0?void 0:o.closest(this.TOOLTIP);const c=((i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector(this.TREE_ITEM_CONTENT_CLASS_SELECTOR))||s;if(r){o.classList.remove("ic-text-overflow");c.replaceChild(c===s?o.firstChild:o,r)}};this.handleDisplayTooltip=t=>{var e;const i=((e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR))||this.el.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);const s=i===null||i===void 0?void 0:i.closest(this.TOOLTIP);s===null||s===void 0?void 0:s.displayTooltip(t)}}watchDisabledHandler(){r(this.disabled,this.el)}watchExpandedHandler(){this.icTreeItemExpanded.emit({isExpanded:this.expanded,id:this.el.id})}watchSelectedHandler(){if(this.selected){this.icTreeItemSelected.emit({id:this.el.id})}this.updateAriaLabel()}disconnectedCallback(){var t;(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentWillLoad(){r(this.disabled,this.el);this.childTreeItems=Array.from(this.el.children).filter((t=>t.tagName===this.treeItemTag));if(this.childTreeItems.length>0){this.isParent=true}}componentDidLoad(){this.setTreeItemPadding();this.updateAriaLabel();!c(this.el,"label")&&a([{prop:this.label,propName:"label"}],"Tree item");this.hostMutationObserver=new MutationObserver((t=>l(t,"icon",this)));this.hostMutationObserver.observe(this.el,{childList:true})}componentDidRender(){this.truncateTreeItem?this.truncateTreeItemLabel(this.el):this.removeTreeItemTruncation(this.el);if(this.expanded){this.childTreeItems.forEach((t=>{t.truncateTreeItem?this.truncateTreeItemLabel(t):this.removeTreeItemTruncation(t)}))}}componentDidUpdate(){if(this.hasParentExpanded){this.childTreeItems.forEach((t=>{t.truncateTreeItem?this.truncateTreeItemLabel(t):this.removeTreeItemTruncation(t)}));this.hasParentExpanded=false}}handleKeyDown(t){if(t.key==="Enter"||t.key===" "){t.stopImmediatePropagation();this.handleTreeItemClicked()}}async setFocus(){var t,e;if(this.hasRouterSlot()){(t=this.routerSlot)===null||t===void 0?void 0:t.focus()}else{(e=this.treeItemElement)===null||e===void 0?void 0:e.focus()}}async updateAriaLabel(){let t;if(this.hasRouterSlot()){t=this.routerSlot.textContent}else if(c(this.el,"label")){t=this.el.querySelector('[slot="label"]').textContent}else{t=this.label}if(this.isParent){t=`${t}, triggers submenu, ${this.expanded?"expanded":"collapsed"}`}if(this.el.parentElement){const e=Array.from(this.el.parentElement.children).filter((t=>t.tagName===this.treeItemTag));const i=e.indexOf(this.el)+1;const s=e.length;t=`${t}, ${i} of ${s}`}if(this.selected){t=`${t}, active`}if(this.disabled){t=`${t}, dimmed`}if(this.hasRouterSlot()){this.routerSlot.ariaLabel=t}else{this.treeItemElement.ariaLabel=t}}hasRouterSlot(){this.routerSlot=this.el.querySelector('[slot="router-item"]');return!!this.routerSlot}render(){var t;const{disabled:e,label:o,selected:r,size:a,expanded:l,theme:h}=this;const d=this.href&&!this.disabled?"a":"div";const v=d=="a"&&{href:this.href,hrefLang:this.hreflang,referrerPolicy:this.referrerpolicy,rel:this.rel,target:this.target};return i(s,{key:"14eade7c0b23b1c2c2918dda4f011953d6463ec6",class:{"ic-tree-item-disabled":e,"ic-tree-item-selected":!e&&r,[`ic-tree-item-${a}`]:a!=="medium",[`ic-theme-${h}`]:h!=="inherit","ic-tree-item-truncate":!!this.truncateTreeItem},id:(t=this.treeItemId)!==null&&t!==void 0?t:`ic-tree-item-${m++}`},this.hasRouterSlot()?i("slot",{name:"router-item"}):i(d,Object.assign({class:{"tree-item-content":true},tabIndex:e?-1:0,onClick:this.handleTreeItemClicked,ref:t=>this.treeItemElement=t,"aria-disabled":e?"true":"false","aria-live":"polite"},v,{onFocus:()=>this.handleDisplayTooltip(true),onBlur:()=>this.handleDisplayTooltip(false)}),this.isParent&&i("span",{class:{["arrow-dropdown"]:true,["tree-item-expanded"]:l},"aria-hidden":"true",innerHTML:n}),c(this.el,"icon")&&i("div",{class:"icon-container"},i("slot",{name:"icon"})),i("ic-typography",{class:"tree-item-label"},c(this.el,"label")?i("slot",{name:"label"}):o)),l&&i("div",{key:"0a7704d93ccba8640265eacd9c81971d3717a233","aria-hidden":`${!l}`},i("slot",{key:"27eb9361c885e589eac4a3bd6cfd303efb60e1fb"})))}get el(){return o(this)}static get watchers(){return{disabled:["watchDisabledHandler"],expanded:["watchExpandedHandler"],selected:["watchSelectedHandler"]}}};v.style=d;export{v as ic_tree_item};
2
+ //# sourceMappingURL=p-7001f1c1.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icTreeItemCss","IcTreeItemStyle0","treeItemIds","TreeItem","constructor","hostRef","this","treeItemTag","hostMutationObserver","TOOLTIP","TREE_ITEM_LABEL_CLASS_SELECTOR","TREE_ITEM_CONTENT_CLASS_SELECTOR","disabled","expanded","hasParentExpanded","hreflang","isParent","label","selected","size","theme","handleTreeItemClicked","updateAriaLabel","watchSelectedHandler","setTreeItemPadding","level","parentElement","el","treeItemContent","_a","shadowRoot","querySelector","isSiblingOfParent","Array","from","children","some","sibling","length","tagName","hasRouterSlot","routerSlot","classList","add","style","paddingLeft","truncateTreeItemLabel","treeItem","typographyEl","slottedContent","contentHeight","scrollHeight","newTypographyEl","document","createElement","innerHTML","textContent","replaceChild","firstChild","tooltipAlreadyExists","closest","treeContent","_b","computedHeight","parseFloat","getComputedStyle","height","tooltipEl","setAttribute","id","addEventListener","handleDisplayTooltip","appendChild","removeTreeItemTruncation","remove","display","tooltip","displayTooltip","watchDisabledHandler","removeDisabledFalse","watchExpandedHandler","icTreeItemExpanded","emit","isExpanded","icTreeItemSelected","disconnectedCallback","disconnect","componentWillLoad","childTreeItems","filter","child","componentDidLoad","isSlotUsed","onComponentRequiredPropUndefined","prop","propName","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","componentDidRender","truncateTreeItem","forEach","componentDidUpdate","handleKeyDown","ev","key","stopImmediatePropagation","setFocus","focus","treeItemElement","ariaLabel","treeItems","index","indexOf","parentChildren","render","Component","href","attrs","hrefLang","referrerPolicy","referrerpolicy","rel","target","h","Host","class","treeItemId","name","Object","assign","tabIndex","onClick","ref","onFocus","onBlur","arrowDropdown"],"sources":["src/components/ic-tree-item/ic-tree-item.css?tag=ic-tree-item&encapsulation=shadow","src/components/ic-tree-item/ic-tree-item.tsx"],"sourcesContent":[":host {\n display: block;\n border: none;\n position: relative;\n}\n\n:host .tree-item-content {\n display: flex;\n align-items: center;\n min-height: var(--ic-space-xl);\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n text-decoration: none;\n color: var(--ic-tree-view-text);\n\n --ic-typography-color: var(--ic-tree-view-text);\n}\n\n::slotted([slot=\"router-item\"]) {\n display: flex;\n align-items: center;\n min-height: var(--ic-space-xl);\n text-decoration: none;\n font-family: var(--ic-font-body-family);\n color: var(--ic-tree-view-text);\n padding: var(--ic-space-xxs) var(--ic-space-xs) !important;\n}\n\n:host(.ic-tree-item-truncate) .tree-item-content,\n:host(.ic-tree-item-truncate) ::slotted([slot=\"router-item\"]) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n::slotted([slot=\"router-item\"].ic-tree-item-single) {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xs)) !important;\n}\n\n:host .tree-item-content:focus,\n::slotted([slot=\"router-item\"]:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n:host .tree-item-content:hover,\n::slotted([slot=\"router-item\"]:hover) {\n background-color: var(--ic-tree-view-hover) !important;\n cursor: pointer;\n}\n\n:host .tree-item-content:active,\n::slotted([slot=\"router-item\"]:active) {\n background-color: var(--ic-tree-view-pressed) !important;\n}\n\n:host(.ic-tree-item-selected) .tree-item-content,\n:host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n background-color: var(--ic-tree-view-selected) !important;\n}\n\n:host(.ic-tree-item-small) .tree-item-content,\n:host(.ic-tree-item-small) ::slotted([slot=\"router-item\"]) {\n min-height: var(--ic-space-lg);\n}\n\n:host(.ic-tree-item-large) .tree-item-content,\n:host(.ic-tree-item-large) ::slotted([slot=\"router-item\"]) {\n min-height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-tree-item-truncate.ic-tree-item-small) .tree-item-content,\n:host(.ic-tree-item-truncate.ic-tree-item-small)\n ::slotted([slot=\"router-item\"]) {\n height: var(--ic-space-lg);\n}\n\n:host(.ic-tree-item-truncate.ic-tree-item-large) .tree-item-content,\n:host(.ic-tree-item-truncate.ic-tree-item-large)\n ::slotted([slot=\"router-item\"]) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-tree-item-disabled) {\n pointer-events: none;\n}\n\n:host(.ic-tree-item-disabled) .tree-item-content,\n:host(.ic-tree-item-disabled) ::slotted([slot=\"icon\"]),\n:host(.ic-tree-item-disabled) ::slotted([slot=\"router-item\"]) {\n color: var(--ic-tree-view-text-disabled) !important;\n\n --ic-typography-color: var(--ic-tree-view-text-disabled) !important;\n\n fill: var(--ic-tree-view-icon-disabled);\n pointer-events: none;\n}\n\n:host .arrow-dropdown {\n color: var(--ic-tree-view-dropdown-arrow);\n margin-right: var(--ic-space-xs);\n margin-bottom: calc(var(--ic-space-xxs) * -1);\n}\n\n:host(.ic-tree-item-disabled) .arrow-dropdown {\n color: var(--ic-tree-view-dropdown-arrow-disabled);\n}\n\n:host(.ic-tree-item-small) .arrow-dropdown {\n margin-right: var(--ic-space-xxs);\n}\n\n:host .tree-item-expanded {\n transform: rotate(180deg);\n margin-top: calc(-1 * var(--ic-space-xxs));\n margin-bottom: 0;\n}\n\n:host .ic-tree-item-single {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-tree-item-small) .ic-tree-item-single {\n padding-left: calc(var(--ic-space-xl) + var(--ic-space-xxs));\n}\n\n.icon-container {\n min-width: var(--ic-space-lg);\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin: 0 var(--ic-space-xs) 0 0;\n}\n\n:host(.ic-tree-item-small) .icon-container {\n margin: 0 var(--ic-space-xxs) 0 0;\n}\n\n.ic-text-overflow {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ic-tooltip-overflow {\n overflow: hidden;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-tree-view-icon);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n\n :host .tree-item-content:hover,\n ::slotted([slot=\"router-item\"]:hover),\n :host .tree-item-content:active,\n ::slotted([slot=\"router-item\"]:active),\n :host(.ic-tree-item-selected) .tree-item-content,\n :host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n background-color: none !important;\n }\n\n :host(.ic-tree-item-disabled) .tree-item-content,\n :host(.ic-tree-item-disabled) .arrow-dropdown,\n :host(.ic-tree-item-disabled) ::slotted([slot=\"icon\"]),\n :host(.ic-tree-item-disabled) ::slotted([slot=\"router-item\"]) {\n color: GrayText !important;\n\n --ic-typography-color: GrayText !important;\n\n fill: GrayText !important;\n }\n\n :host .tree-item-content:focus,\n ::slotted([slot=\"router-item\"]:focus) {\n border: var(--ic-border-hc) !important;\n }\n\n :host(.ic-tree-item-selected) .tree-item-content,\n :host(.ic-tree-item-selected) ::slotted([slot=\"router-item\"]) {\n color: Highlight !important;\n\n --ic-typography-color: Highlight !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n State,\n Listen,\n Method,\n} from \"@stencil/core\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet treeItemIds = 0;\n\n/**\n * @slot label - Content is set as the tree item label.\n * @slot icon - Content is placed to the left of the label.\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n@Component({\n tag: \"ic-tree-item\",\n styleUrl: \"ic-tree-item.css\",\n shadow: true,\n})\nexport class TreeItem {\n private treeItemElement: HTMLElement | undefined;\n private treeItemTag = \"IC-TREE-ITEM\";\n private routerSlot: HTMLElement | null;\n private hostMutationObserver: MutationObserver | null = null;\n private TOOLTIP = \"ic-tooltip\";\n private TREE_ITEM_LABEL_CLASS_SELECTOR = \".tree-item-label\";\n private TREE_ITEM_CONTENT_CLASS_SELECTOR = \".tree-item-content\";\n\n @Element() el: HTMLIcTreeItemElement;\n\n @State() childTreeItems: HTMLIcTreeItemElement[];\n\n /**\n * If `true`, the tree item appears in the disabled state.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the tree item appears in the expanded state.\n */\n @Prop({ mutable: true }) expanded: boolean = false;\n @Watch(\"expanded\")\n watchExpandedHandler(): void {\n this.icTreeItemExpanded.emit({ isExpanded: this.expanded, id: this.el.id });\n }\n\n /**\n * @internal Determines if the parent tree item has been expanded.\n */\n @Prop({ mutable: true }) hasParentExpanded: boolean = false;\n\n /**\n * The URL that the tree item link points to. If set, the tree item will render as an \"a\" tag, otherwise it will render as a div.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * @internal If `true`, the tree item is a parent of other tree items.\n */\n @Prop({ mutable: true }) isParent: boolean = false;\n\n /**\n * The label of the tree item.\n */\n @Prop() label: string = \"\";\n\n /**\n * @internal Holds the previous truncation state before the screen switches to a small viewport, so it can be reset when screen size changes again.\n */\n @Prop() previousTruncateTreeItem?: boolean;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * If `true`, the tree item appears in the selected state.\n */\n @Prop({ mutable: true }) selected: boolean = false;\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n if (this.selected) {\n this.icTreeItemSelected.emit({ id: this.el.id });\n }\n this.updateAriaLabel();\n }\n\n /**\n * @internal Determines the size of the tree item.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the tree item id. Must be unique.\n */\n @Prop() treeItemId?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * If `true`, the tree item label will be truncated instead of text wrapping.\n */\n @Prop() truncateTreeItem?: boolean;\n\n /**\n * Emitted when tree item is selected.\n */\n @Event() icTreeItemSelected: EventEmitter<{ id: string }>;\n\n /**\n * Emitted when tree item is expanded.\n */\n @Event() icTreeItemExpanded: EventEmitter<{\n isExpanded: boolean;\n id: string;\n }>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n this.childTreeItems = Array.from((this.el as HTMLElement).children).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n if (this.childTreeItems.length > 0) {\n this.isParent = true;\n }\n }\n\n componentDidLoad(): void {\n this.setTreeItemPadding();\n\n this.updateAriaLabel();\n\n !isSlotUsed(this.el, \"label\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tree item\"\n );\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"icon\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n componentDidRender(): void {\n this.truncateTreeItem\n ? this.truncateTreeItemLabel(this.el)\n : this.removeTreeItemTruncation(this.el);\n if (this.expanded) {\n this.childTreeItems.forEach((child: HTMLIcTreeItemElement) => {\n child.truncateTreeItem\n ? this.truncateTreeItemLabel(child)\n : this.removeTreeItemTruncation(child);\n });\n }\n }\n\n componentDidUpdate(): void {\n if (this.hasParentExpanded) {\n this.childTreeItems.forEach((child: HTMLIcTreeItemElement) => {\n child.truncateTreeItem\n ? this.truncateTreeItemLabel(child)\n : this.removeTreeItemTruncation(child);\n });\n this.hasParentExpanded = false;\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.stopImmediatePropagation();\n this.handleTreeItemClicked();\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.hasRouterSlot()) {\n this.routerSlot?.focus();\n } else {\n this.treeItemElement?.focus();\n }\n }\n\n private handleTreeItemClicked = (): void => {\n if (this.isParent) {\n this.expanded = !this.expanded;\n this.hasParentExpanded = true;\n }\n\n this.updateAriaLabel();\n this.selected = true;\n this.watchSelectedHandler();\n };\n\n /**\n * @internal Updates the aria-label of the tree item.\n */\n @Method()\n async updateAriaLabel(): Promise<void> {\n let ariaLabel;\n\n if (this.hasRouterSlot()) {\n ariaLabel = this.routerSlot!.textContent;\n } else if (isSlotUsed(this.el, \"label\")) {\n ariaLabel = this.el.querySelector('[slot=\"label\"]')!.textContent;\n } else {\n ariaLabel = this.label;\n }\n\n if (this.isParent) {\n ariaLabel = `${ariaLabel}, triggers submenu, ${\n this.expanded ? \"expanded\" : \"collapsed\"\n }`;\n }\n\n if (this.el.parentElement) {\n const treeItems = Array.from(\n (this.el.parentElement as HTMLElement).children\n ).filter(\n (child) => child.tagName === this.treeItemTag\n ) as HTMLIcTreeItemElement[];\n\n const index = treeItems.indexOf(this.el) + 1;\n const parentChildren = treeItems.length;\n\n ariaLabel = `${ariaLabel}, ${index} of ${parentChildren}`;\n }\n\n if (this.selected) {\n ariaLabel = `${ariaLabel}, active`;\n }\n\n if (this.disabled) {\n ariaLabel = `${ariaLabel}, dimmed`;\n }\n\n if (this.hasRouterSlot()) {\n this.routerSlot!.ariaLabel = ariaLabel;\n } else {\n this.treeItemElement!.ariaLabel = ariaLabel;\n }\n }\n\n private setTreeItemPadding = () => {\n let level = 1;\n let parentElement = this.el.parentElement;\n const treeItemContent = this.el.shadowRoot?.querySelector(\n this.TREE_ITEM_CONTENT_CLASS_SELECTOR\n ) as HTMLElement;\n\n if (!parentElement) {\n return;\n }\n\n const isSiblingOfParent = Array.from(parentElement.children).some(\n (sibling) =>\n sibling !== this.el &&\n !sibling.querySelector('[slot=\"router-item\"]') &&\n !sibling.querySelector('[slot=\"label\"]') &&\n sibling.children.length > 0\n );\n\n if (\n (isSiblingOfParent && !this.el.isParent) ||\n (parentElement.tagName === this.treeItemTag && !this.el.isParent)\n ) {\n if (this.hasRouterSlot()) {\n this.routerSlot!.classList.add(\"ic-tree-item-single\");\n } else {\n treeItemContent.classList.add(\"ic-tree-item-single\");\n }\n }\n\n while (parentElement) {\n if (parentElement.tagName === this.treeItemTag) {\n level++;\n treeItemContent.style.paddingLeft = !this.el.isParent\n ? `calc(var(--ic-space-${isSiblingOfParent ? \"xl\" : \"xs\"}) + ${\n level * (isSiblingOfParent ? 16 : 24)\n }px)`\n : `${level * 16}px`;\n }\n parentElement = parentElement.parentElement;\n }\n };\n\n private truncateTreeItemLabel = (treeItem: HTMLIcTreeItemElement) => {\n let typographyEl =\n treeItem.shadowRoot?.querySelector<HTMLIcTypographyElement>(\n this.TREE_ITEM_LABEL_CLASS_SELECTOR\n );\n const slottedContent = treeItem.querySelector(\"[slot='router-item']\");\n let contentHeight = slottedContent?.scrollHeight;\n\n if (!typographyEl && slottedContent) {\n const newTypographyEl = document.createElement(\"ic-typography\");\n newTypographyEl.innerHTML = slottedContent.textContent!;\n newTypographyEl.classList.add(\"tree-item-label\");\n slottedContent.replaceChild(newTypographyEl, slottedContent.firstChild!);\n typographyEl = newTypographyEl;\n } else if (typographyEl) {\n contentHeight = typographyEl.scrollHeight;\n }\n\n const tooltipAlreadyExists = !!typographyEl?.closest(this.TOOLTIP);\n const treeContent =\n treeItem.shadowRoot?.querySelector(\n this.TREE_ITEM_CONTENT_CLASS_SELECTOR\n ) || slottedContent;\n\n if (treeContent) {\n const computedHeight = parseFloat(getComputedStyle(treeContent).height);\n if (\n contentHeight &&\n computedHeight &&\n contentHeight > computedHeight &&\n !tooltipAlreadyExists &&\n typographyEl\n ) {\n const tooltipEl = document.createElement(\"ic-tooltip\");\n tooltipEl.setAttribute(\"target\", this.el.id);\n tooltipEl.setAttribute(\"label\", typographyEl.textContent!);\n tooltipEl.setAttribute(\"placement\", \"right\");\n\n if (treeContent === slottedContent) {\n treeContent.addEventListener(\"focus\", () =>\n this.handleDisplayTooltip(true)\n );\n treeContent.addEventListener(\"blur\", () =>\n this.handleDisplayTooltip(false)\n );\n tooltipEl.setAttribute(\"style\", \"overflow:hidden;\");\n typographyEl.setAttribute(\n \"style\",\n \"overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\"\n );\n } else {\n tooltipEl.classList.add(\"ic-tooltip-overflow\");\n typographyEl.classList.add(\"ic-text-overflow\");\n }\n\n treeContent.appendChild(tooltipEl);\n tooltipEl.appendChild(typographyEl);\n }\n }\n };\n\n private removeTreeItemTruncation = (treeItem: HTMLIcTreeItemElement) => {\n const slottedContent = treeItem.querySelector(\"[slot='router-item']\");\n const typographyEl: HTMLIcTypographyElement =\n treeItem.shadowRoot?.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR) ||\n slottedContent!.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR)!;\n const tooltipEl = typographyEl?.closest<HTMLIcTooltipElement>(this.TOOLTIP);\n const treeContent =\n treeItem.shadowRoot?.querySelector(\n this.TREE_ITEM_CONTENT_CLASS_SELECTOR\n ) || slottedContent!;\n\n if (tooltipEl) {\n typographyEl.classList.remove(\"ic-text-overflow\");\n treeContent.replaceChild(\n treeContent === slottedContent\n ? typographyEl.firstChild!\n : typographyEl,\n tooltipEl\n );\n }\n };\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n return !!this.routerSlot;\n }\n\n private handleDisplayTooltip = (display: boolean) => {\n const typographyEl =\n this.el.shadowRoot?.querySelector<HTMLIcTypographyElement>(\n this.TREE_ITEM_LABEL_CLASS_SELECTOR\n ) || this.el.querySelector(this.TREE_ITEM_LABEL_CLASS_SELECTOR);\n const tooltip = typographyEl?.closest<HTMLIcTooltipElement>(this.TOOLTIP);\n\n tooltip?.displayTooltip(display);\n };\n\n render() {\n const { disabled, label, selected, size, expanded, theme } = this;\n\n const Component = this.href && !this.disabled ? \"a\" : \"div\";\n\n const attrs = Component == \"a\" && {\n href: this.href,\n hrefLang: this.hreflang,\n referrerPolicy: this.referrerpolicy,\n rel: this.rel,\n target: this.target,\n };\n\n return (\n <Host\n class={{\n \"ic-tree-item-disabled\": disabled,\n \"ic-tree-item-selected\": !disabled && selected,\n [`ic-tree-item-${size}`]: size !== \"medium\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-tree-item-truncate\": !!this.truncateTreeItem,\n }}\n id={this.treeItemId ?? `ic-tree-item-${treeItemIds++}`}\n >\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\" />\n ) : (\n <Component\n class={{\n \"tree-item-content\": true,\n }}\n tabIndex={disabled ? -1 : 0}\n onClick={this.handleTreeItemClicked}\n ref={(el) => (this.treeItemElement = el)}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-live=\"polite\"\n {...attrs}\n onFocus={() => this.handleDisplayTooltip(true)}\n onBlur={() => this.handleDisplayTooltip(false)}\n >\n {this.isParent && (\n <span\n class={{\n [\"arrow-dropdown\"]: true,\n [\"tree-item-expanded\"]: expanded,\n }}\n aria-hidden=\"true\"\n innerHTML={arrowDropdown}\n />\n )}\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography class=\"tree-item-label\">\n {isSlotUsed(this.el, \"label\") ? <slot name=\"label\" /> : label}\n </ic-typography>\n </Component>\n )}\n {expanded && (\n <div aria-hidden={`${!expanded}`}>\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"oSAAA,MAAMA,EAAgB,k3IACtB,MAAAC,EAAeD,ECqBf,IAAIE,EAAc,E,MAYLC,EAAQ,MALrB,WAAAC,CAAAC,G,wHAOUC,KAAAC,YAAc,eAEdD,KAAAE,qBAAgD,KAChDF,KAAAG,QAAU,aACVH,KAAAI,+BAAiC,mBACjCJ,KAAAK,iCAAmC,qBASnCL,KAAAM,SAAoB,MASHN,KAAAO,SAAoB,MASpBP,KAAAQ,kBAA6B,MAU9CR,KAAAS,SAAoB,GAKHT,KAAAU,SAAoB,MAKrCV,KAAAW,MAAgB,GAoBCX,KAAAY,SAAoB,MAYrCZ,KAAAa,KAAiB,SAejBb,KAAAc,MAAsB,UAkGtBd,KAAAe,sBAAwB,KAC9B,GAAIf,KAAKU,SAAU,CACjBV,KAAKO,UAAYP,KAAKO,SACtBP,KAAKQ,kBAAoB,I,CAG3BR,KAAKgB,kBACLhB,KAAKY,SAAW,KAChBZ,KAAKiB,sBAAsB,EAoDrBjB,KAAAkB,mBAAqB,K,MAC3B,IAAIC,EAAQ,EACZ,IAAIC,EAAgBpB,KAAKqB,GAAGD,cAC5B,MAAME,GAAkBC,EAAAvB,KAAKqB,GAAGG,cAAU,MAAAD,SAAA,SAAAA,EAAEE,cAC1CzB,KAAKK,kCAGP,IAAKe,EAAe,CAClB,M,CAGF,MAAMM,EAAoBC,MAAMC,KAAKR,EAAcS,UAAUC,MAC1DC,GACCA,IAAY/B,KAAKqB,KAChBU,EAAQN,cAAc,0BACtBM,EAAQN,cAAc,mBACvBM,EAAQF,SAASG,OAAS,IAG9B,GACGN,IAAsB1B,KAAKqB,GAAGX,UAC9BU,EAAca,UAAYjC,KAAKC,cAAgBD,KAAKqB,GAAGX,SACxD,CACA,GAAIV,KAAKkC,gBAAiB,CACxBlC,KAAKmC,WAAYC,UAAUC,IAAI,sB,KAC1B,CACLf,EAAgBc,UAAUC,IAAI,sB,EAIlC,MAAOjB,EAAe,CACpB,GAAIA,EAAca,UAAYjC,KAAKC,YAAa,CAC9CkB,IACAG,EAAgBgB,MAAMC,aAAevC,KAAKqB,GAAGX,SACzC,uBAAuBgB,EAAoB,KAAO,WAChDP,GAASO,EAAoB,GAAK,SAEpC,GAAGP,EAAQ,M,CAEjBC,EAAgBA,EAAcA,a,GAI1BpB,KAAAwC,sBAAyBC,I,QAC/B,IAAIC,GACFnB,EAAAkB,EAASjB,cAAU,MAAAD,SAAA,SAAAA,EAAEE,cACnBzB,KAAKI,gCAET,MAAMuC,EAAiBF,EAAShB,cAAc,wBAC9C,IAAImB,EAAgBD,IAAc,MAAdA,SAAc,SAAdA,EAAgBE,aAEpC,IAAKH,GAAgBC,EAAgB,CACnC,MAAMG,EAAkBC,SAASC,cAAc,iBAC/CF,EAAgBG,UAAYN,EAAeO,YAC3CJ,EAAgBV,UAAUC,IAAI,mBAC9BM,EAAeQ,aAAaL,EAAiBH,EAAeS,YAC5DV,EAAeI,C,MACV,GAAIJ,EAAc,CACvBE,EAAgBF,EAAaG,Y,CAG/B,MAAMQ,KAAyBX,IAAY,MAAZA,SAAY,SAAZA,EAAcY,QAAQtD,KAAKG,UAC1D,MAAMoD,IACJC,EAAAf,EAASjB,cAAU,MAAAgC,SAAA,SAAAA,EAAE/B,cACnBzB,KAAKK,oCACFsC,EAEP,GAAIY,EAAa,CACf,MAAME,EAAiBC,WAAWC,iBAAiBJ,GAAaK,QAChE,GACEhB,GACAa,GACAb,EAAgBa,IACfJ,GACDX,EACA,CACA,MAAMmB,EAAYd,SAASC,cAAc,cACzCa,EAAUC,aAAa,SAAU9D,KAAKqB,GAAG0C,IACzCF,EAAUC,aAAa,QAASpB,EAAaQ,aAC7CW,EAAUC,aAAa,YAAa,SAEpC,GAAIP,IAAgBZ,EAAgB,CAClCY,EAAYS,iBAAiB,SAAS,IACpChE,KAAKiE,qBAAqB,QAE5BV,EAAYS,iBAAiB,QAAQ,IACnChE,KAAKiE,qBAAqB,SAE5BJ,EAAUC,aAAa,QAAS,oBAChCpB,EAAaoB,aACX,QACA,6D,KAEG,CACLD,EAAUzB,UAAUC,IAAI,uBACxBK,EAAaN,UAAUC,IAAI,mB,CAG7BkB,EAAYW,YAAYL,GACxBA,EAAUK,YAAYxB,E,IAKpB1C,KAAAmE,yBAA4B1B,I,QAClC,MAAME,EAAiBF,EAAShB,cAAc,wBAC9C,MAAMiB,IACJnB,EAAAkB,EAASjB,cAAU,MAAAD,SAAA,SAAAA,EAAEE,cAAczB,KAAKI,kCACxCuC,EAAgBlB,cAAczB,KAAKI,gCACrC,MAAMyD,EAAYnB,IAAY,MAAZA,SAAY,SAAZA,EAAcY,QAA8BtD,KAAKG,SACnE,MAAMoD,IACJC,EAAAf,EAASjB,cAAU,MAAAgC,SAAA,SAAAA,EAAE/B,cACnBzB,KAAKK,oCACFsC,EAEP,GAAIkB,EAAW,CACbnB,EAAaN,UAAUgC,OAAO,oBAC9Bb,EAAYJ,aACVI,IAAgBZ,EACZD,EAAaU,WACbV,EACJmB,E,GAUE7D,KAAAiE,qBAAwBI,I,MAC9B,MAAM3B,IACJnB,EAAAvB,KAAKqB,GAAGG,cAAU,MAAAD,SAAA,SAAAA,EAAEE,cAClBzB,KAAKI,kCACFJ,KAAKqB,GAAGI,cAAczB,KAAKI,gCAClC,MAAMkE,EAAU5B,IAAY,MAAZA,SAAY,SAAZA,EAAcY,QAA8BtD,KAAKG,SAEjEmE,IAAO,MAAPA,SAAO,SAAPA,EAASC,eAAeF,EAAQ,C,CA3XlC,oBAAAG,GACEC,EAAoBzE,KAAKM,SAAUN,KAAKqB,G,CAQ1C,oBAAAqD,GACE1E,KAAK2E,mBAAmBC,KAAK,CAAEC,WAAY7E,KAAKO,SAAUwD,GAAI/D,KAAKqB,GAAG0C,I,CAgDxE,oBAAA9C,GACE,GAAIjB,KAAKY,SAAU,CACjBZ,KAAK8E,mBAAmBF,KAAK,CAAEb,GAAI/D,KAAKqB,GAAG0C,I,CAE7C/D,KAAKgB,iB,CAyCP,oBAAA+D,G,OACExD,EAAAvB,KAAKE,wBAAoB,MAAAqB,SAAA,SAAAA,EAAEyD,Y,CAG7B,iBAAAC,GACER,EAAoBzE,KAAKM,SAAUN,KAAKqB,IAExCrB,KAAKkF,eAAiBvD,MAAMC,KAAM5B,KAAKqB,GAAmBQ,UAAUsD,QACjEC,GAAUA,EAAMnD,UAAYjC,KAAKC,cAGpC,GAAID,KAAKkF,eAAelD,OAAS,EAAG,CAClChC,KAAKU,SAAW,I,EAIpB,gBAAA2E,GACErF,KAAKkB,qBAELlB,KAAKgB,mBAEJsE,EAAWtF,KAAKqB,GAAI,UACnBkE,EACE,CAAC,CAAEC,KAAMxF,KAAKW,MAAO8E,SAAU,UAC/B,aAGJzF,KAAKE,qBAAuB,IAAIwF,kBAAkBC,GAChDC,EAAwBD,EAAc,OAAQ3F,QAEhDA,KAAKE,qBAAqB2F,QAAQ7F,KAAKqB,GAAI,CACzCyE,UAAW,M,CAGf,kBAAAC,GACE/F,KAAKgG,iBACDhG,KAAKwC,sBAAsBxC,KAAKqB,IAChCrB,KAAKmE,yBAAyBnE,KAAKqB,IACvC,GAAIrB,KAAKO,SAAU,CACjBP,KAAKkF,eAAee,SAASb,IAC3BA,EAAMY,iBACFhG,KAAKwC,sBAAsB4C,GAC3BpF,KAAKmE,yBAAyBiB,EAAM,G,EAK9C,kBAAAc,GACE,GAAIlG,KAAKQ,kBAAmB,CAC1BR,KAAKkF,eAAee,SAASb,IAC3BA,EAAMY,iBACFhG,KAAKwC,sBAAsB4C,GAC3BpF,KAAKmE,yBAAyBiB,EAAM,IAE1CpF,KAAKQ,kBAAoB,K,EAK7B,aAAA2F,CAAcC,GACZ,GAAIA,EAAGC,MAAQ,SAAWD,EAAGC,MAAQ,IAAK,CACxCD,EAAGE,2BACHtG,KAAKe,uB,EAQT,cAAMwF,G,QACJ,GAAIvG,KAAKkC,gBAAiB,EACxBX,EAAAvB,KAAKmC,cAAU,MAAAZ,SAAA,SAAAA,EAAEiF,O,KACZ,EACLhD,EAAAxD,KAAKyG,mBAAe,MAAAjD,SAAA,SAAAA,EAAEgD,O,EAmB1B,qBAAMxF,GACJ,IAAI0F,EAEJ,GAAI1G,KAAKkC,gBAAiB,CACxBwE,EAAY1G,KAAKmC,WAAYe,W,MACxB,GAAIoC,EAAWtF,KAAKqB,GAAI,SAAU,CACvCqF,EAAY1G,KAAKqB,GAAGI,cAAc,kBAAmByB,W,KAChD,CACLwD,EAAY1G,KAAKW,K,CAGnB,GAAIX,KAAKU,SAAU,CACjBgG,EAAY,GAAGA,wBACb1G,KAAKO,SAAW,WAAa,a,CAIjC,GAAIP,KAAKqB,GAAGD,cAAe,CACzB,MAAMuF,EAAYhF,MAAMC,KACrB5B,KAAKqB,GAAGD,cAA8BS,UACvCsD,QACCC,GAAUA,EAAMnD,UAAYjC,KAAKC,cAGpC,MAAM2G,EAAQD,EAAUE,QAAQ7G,KAAKqB,IAAM,EAC3C,MAAMyF,EAAiBH,EAAU3E,OAEjC0E,EAAY,GAAGA,MAAcE,QAAYE,G,CAG3C,GAAI9G,KAAKY,SAAU,CACjB8F,EAAY,GAAGA,W,CAGjB,GAAI1G,KAAKM,SAAU,CACjBoG,EAAY,GAAGA,W,CAGjB,GAAI1G,KAAKkC,gBAAiB,CACxBlC,KAAKmC,WAAYuE,UAAYA,C,KACxB,CACL1G,KAAKyG,gBAAiBC,UAAYA,C,EAkI9B,aAAAxE,GACNlC,KAAKmC,WAAanC,KAAKqB,GAAGI,cAAc,wBACxC,QAASzB,KAAKmC,U,CAahB,MAAA4E,G,MACE,MAAMzG,SAAEA,EAAQK,MAAEA,EAAKC,SAAEA,EAAQC,KAAEA,EAAIN,SAAEA,EAAQO,MAAEA,GAAUd,KAE7D,MAAMgH,EAAYhH,KAAKiH,OAASjH,KAAKM,SAAW,IAAM,MAEtD,MAAM4G,EAAQF,GAAa,KAAO,CAChCC,KAAMjH,KAAKiH,KACXE,SAAUnH,KAAKS,SACf2G,eAAgBpH,KAAKqH,eACrBC,IAAKtH,KAAKsH,IACVC,OAAQvH,KAAKuH,QAGf,OACEC,EAACC,EAAI,CAAApB,IAAA,2CACHqB,MAAO,CACL,wBAAyBpH,EACzB,yBAA0BA,GAAYM,EACtC,CAAC,gBAAgBC,KAASA,IAAS,SACnC,CAAC,YAAYC,KAAUA,IAAU,UACjC,0BAA2Bd,KAAKgG,kBAElCjC,IAAIxC,EAAAvB,KAAK2H,cAAU,MAAApG,SAAA,EAAAA,EAAI,gBAAgB3B,OAEtCI,KAAKkC,gBACJsF,EAAA,QAAMI,KAAK,gBAEXJ,EAACR,EAASa,OAAAC,OAAA,CACRJ,MAAO,CACL,oBAAqB,MAEvBK,SAAUzH,GAAY,EAAI,EAC1B0H,QAAShI,KAAKe,sBACdkH,IAAM5G,GAAQrB,KAAKyG,gBAAkBpF,EAAG,gBACzBf,EAAW,OAAS,QAAO,YAChC,UACN4G,EAAK,CACTgB,QAAS,IAAMlI,KAAKiE,qBAAqB,MACzCkE,OAAQ,IAAMnI,KAAKiE,qBAAqB,SAEvCjE,KAAKU,UACJ8G,EAAA,QACEE,MAAO,CACL,CAAC,kBAAmB,KACpB,CAAC,sBAAuBnH,GACzB,cACW,OACZ0C,UAAWmF,IAGd9C,EAAWtF,KAAKqB,GAAI,SACnBmG,EAAA,OAAKE,MAAM,kBACTF,EAAA,QAAMI,KAAK,UAGfJ,EAAA,iBAAeE,MAAM,mBAClBpC,EAAWtF,KAAKqB,GAAI,SAAWmG,EAAA,QAAMI,KAAK,UAAajH,IAI7DJ,GACCiH,EAAA,OAAAnB,IAAA,yDAAkB,IAAI9F,KACpBiH,EAAA,QAAAnB,IAAA,8C","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as o,c as t,h as r,H as e}from"./p-8e4e97b4.js";import{H as s,J as i,W as a,c as h,g as c}from"./p-13f52d7b.js";const n=class{constructor(r){o(this,r);this.brandChange=t(this,"brandChange",7);this.icThemeChange=t(this,"icThemeChange",7);this.themeClass="";this.brandColor=null;this.theme="light";this.darkModeChangeHandler=()=>{if(this.theme==="system"){this.themeClass=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"ic-theme-dark":"ic-theme-light"}else{this.themeClass=`ic-theme-${this.theme}`}this.icThemeChange.emit(this.theme)};this.checkBrandColorContrast=()=>{if(s()<i&&s()>a){console.warn(`The brand colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`)}};this.setBrandColor=()=>{const o=this.brandColor?h(this.brandColor):null;if(o){const{r:t,g:r,b:e,a:s}=o;const{style:i}=document.documentElement;i.setProperty("--ic-brand-color-primary-r",`${t}`);i.setProperty("--ic-brand-color-primary-g",`${r}`);i.setProperty("--ic-brand-color-primary-b",`${e}`);i.setProperty("--ic-brand-color-primary-a",`${s}`);this.checkBrandColorContrast();this.brandChange.emit({mode:c(),color:o})}}}watchBrandColorPropHandler(){this.setBrandColor()}watchThemePropHandler(){this.darkModeChangeHandler()}componentWillLoad(){this.darkModeChangeHandler();this.setBrandColor();window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",this.darkModeChangeHandler)}render(){const{themeClass:o}=this;return r(e,{key:"b49257f527c4a26eca25d04500d822785cba320b",class:o},r("slot",{key:"09782aca70372e6897e9032b66a166335778a6fe"}))}static get watchers(){return{brandColor:["watchBrandColorPropHandler"],theme:["watchThemePropHandler"]}}};export{n as ic_theme};
2
+ //# sourceMappingURL=p-704c5fee.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Theme","constructor","hostRef","this","themeClass","brandColor","theme","darkModeChangeHandler","window","matchMedia","matches","icThemeChange","emit","checkBrandColorContrast","getBrandColorBrightness","BLACK_MIN_COLOR_BRIGHTNESS","WHITE_MAX_COLOR_BRIGHTNESS","console","warn","setBrandColor","colorRGBA","convertToRGBA","r","g","b","a","style","document","documentElement","setProperty","brandChange","mode","getBrandForegroundAppearance","color","watchBrandColorPropHandler","watchThemePropHandler","componentWillLoad","addEventListener","render","h","Host","key","class"],"sources":["../web-components/dist/collection/components/ic-theme/ic-theme.js"],"sourcesContent":["import { Host, h, } from \"@stencil/core\";\nimport { convertToRGBA, getBrandForegroundAppearance, } from \"../../utils/helpers\";\nimport { getBrandColorBrightness } from \"../../utils/helpers\";\nimport { BLACK_MIN_COLOR_BRIGHTNESS, WHITE_MAX_COLOR_BRIGHTNESS, } from \"../../utils/constants\";\nexport class Theme {\n constructor() {\n this.themeClass = \"\";\n /**\n * The brand colour. Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n this.brandColor = null;\n /**\n * The theme mode. Can be \"dark\", \"light\", or \"system\". \"system\" will use the device or browser settings.\n */\n this.theme = \"light\";\n this.darkModeChangeHandler = () => {\n if (this.theme === \"system\") {\n this.themeClass =\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"ic-theme-dark\"\n : \"ic-theme-light\";\n }\n else {\n this.themeClass = `ic-theme-${this.theme}`;\n }\n this.icThemeChange.emit(this.theme);\n };\n this.checkBrandColorContrast = () => {\n if (getBrandColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&\n getBrandColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS) {\n console.warn(`The brand colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`);\n }\n };\n this.setBrandColor = () => {\n const colorRGBA = this.brandColor ? convertToRGBA(this.brandColor) : null;\n if (colorRGBA) {\n const { r, g, b, a } = colorRGBA;\n const { style } = document.documentElement;\n style.setProperty(\"--ic-brand-color-primary-r\", `${r}`);\n style.setProperty(\"--ic-brand-color-primary-g\", `${g}`);\n style.setProperty(\"--ic-brand-color-primary-b\", `${b}`);\n style.setProperty(\"--ic-brand-color-primary-a\", `${a}`);\n this.checkBrandColorContrast();\n this.brandChange.emit({\n mode: getBrandForegroundAppearance(),\n color: colorRGBA,\n });\n }\n };\n }\n watchBrandColorPropHandler() {\n this.setBrandColor();\n }\n watchThemePropHandler() {\n this.darkModeChangeHandler();\n }\n componentWillLoad() {\n this.darkModeChangeHandler();\n this.setBrandColor();\n window.matchMedia &&\n window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", this.darkModeChangeHandler);\n }\n render() {\n const { themeClass } = this;\n return (h(Host, { key: 'e353f7e1a95badecf478559b39cb0ecc20bd4c75', class: themeClass }, h(\"slot\", { key: '727a7e7a3240118efbc8b00dea9ff51f80a94878' })));\n }\n static get is() { return \"ic-theme\"; }\n static get properties() {\n return {\n \"brandColor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcColor | null\",\n \"resolved\": \"`#${string}` | `rgb(${string})` | `rgba(${string})` | null | undefined\",\n \"references\": {\n \"IcColor\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcColor\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The brand colour. Can be a hex value e.g. \\\"#ff0000\\\", RGB e.g. \\\"rgb(255, 0, 0)\\\", or RGBA e.g. \\\"rgba(255, 0, 0, 1)\\\".\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"brand-color\",\n \"reflect\": false,\n \"defaultValue\": \"null\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeSettings\",\n \"resolved\": \"\\\"dark\\\" | \\\"light\\\" | \\\"system\\\" | undefined\",\n \"references\": {\n \"IcThemeSettings\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeSettings\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The theme mode. Can be \\\"dark\\\", \\\"light\\\", or \\\"system\\\". \\\"system\\\" will use the device or browser settings.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"light\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"themeClass\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"brandChange\",\n \"name\": \"brandChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the brand color is changed.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcBrand\",\n \"resolved\": \"{ mode: IcBrandForeground; color: IcColorRGB; }\",\n \"references\": {\n \"IcBrand\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcBrand\"\n }\n }\n }\n }, {\n \"method\": \"icThemeChange\",\n \"name\": \"icThemeChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the theme is changed.\"\n },\n \"complexType\": {\n \"original\": \"IcThemeSettings\",\n \"resolved\": \"\\\"dark\\\" | \\\"light\\\" | \\\"system\\\"\",\n \"references\": {\n \"IcThemeSettings\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeSettings\"\n }\n }\n }\n }];\n }\n static get watchers() {\n return [{\n \"propName\": \"brandColor\",\n \"methodName\": \"watchBrandColorPropHandler\"\n }, {\n \"propName\": \"theme\",\n \"methodName\": \"watchThemePropHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-theme.js.map\n"],"mappings":"0HAIaA,EAAK,MACd,WAAAC,CAAAC,G,gGACIC,KAAKC,WAAa,GAIlBD,KAAKE,WAAa,KAIlBF,KAAKG,MAAQ,QACbH,KAAKI,sBAAwB,KACzB,GAAIJ,KAAKG,QAAU,SAAU,CACzBH,KAAKC,WACDI,OAAOC,YACHD,OAAOC,WAAW,gCAAgCC,QAChD,gBACA,gB,KAET,CACDP,KAAKC,WAAa,YAAYD,KAAKG,O,CAEvCH,KAAKQ,cAAcC,KAAKT,KAAKG,MAAM,EAEvCH,KAAKU,wBAA0B,KAC3B,GAAIC,IAA4BC,GAC5BD,IAA4BE,EAA4B,CACxDC,QAAQC,KAAK,4T,GAGrBf,KAAKgB,cAAgB,KACjB,MAAMC,EAAYjB,KAAKE,WAAagB,EAAclB,KAAKE,YAAc,KACrE,GAAIe,EAAW,CACX,MAAME,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,GAAML,EACvB,MAAMM,MAAEA,GAAUC,SAASC,gBAC3BF,EAAMG,YAAY,6BAA8B,GAAGP,KACnDI,EAAMG,YAAY,6BAA8B,GAAGN,KACnDG,EAAMG,YAAY,6BAA8B,GAAGL,KACnDE,EAAMG,YAAY,6BAA8B,GAAGJ,KACnDtB,KAAKU,0BACLV,KAAK2B,YAAYlB,KAAK,CAClBmB,KAAMC,IACNC,MAAOb,G,GAKvB,0BAAAc,GACI/B,KAAKgB,e,CAET,qBAAAgB,GACIhC,KAAKI,uB,CAET,iBAAA6B,GACIjC,KAAKI,wBACLJ,KAAKgB,gBACLX,OAAOC,YACHD,OACKC,WAAW,gCACX4B,iBAAiB,SAAUlC,KAAKI,sB,CAE7C,MAAA+B,GACI,MAAMlC,WAAEA,GAAeD,KACvB,OAAQoC,EAAEC,EAAM,CAAEC,IAAK,2CAA4CC,MAAOtC,GAAcmC,EAAE,OAAQ,CAAEE,IAAK,6C","ignoreList":[]}
1
+ {"version":3,"names":["Theme","constructor","hostRef","this","themeClass","brandColor","theme","darkModeChangeHandler","window","matchMedia","matches","icThemeChange","emit","checkBrandColorContrast","getBrandColorBrightness","BLACK_MIN_COLOR_BRIGHTNESS","WHITE_MAX_COLOR_BRIGHTNESS","console","warn","setBrandColor","colorRGBA","convertToRGBA","r","g","b","a","style","document","documentElement","setProperty","brandChange","mode","getBrandForegroundAppearance","color","watchBrandColorPropHandler","watchThemePropHandler","componentWillLoad","addEventListener","render","h","Host","key","class"],"sources":["../web-components/dist/collection/components/ic-theme/ic-theme.js"],"sourcesContent":["import { Host, h, } from \"@stencil/core\";\nimport { convertToRGBA, getBrandForegroundAppearance, } from \"../../utils/helpers\";\nimport { getBrandColorBrightness } from \"../../utils/helpers\";\nimport { BLACK_MIN_COLOR_BRIGHTNESS, WHITE_MAX_COLOR_BRIGHTNESS, } from \"../../utils/constants\";\nexport class Theme {\n constructor() {\n this.themeClass = \"\";\n /**\n * The brand colour. Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n this.brandColor = null;\n /**\n * The theme mode. Can be \"dark\", \"light\", or \"system\". \"system\" will use the device or browser settings.\n */\n this.theme = \"light\";\n this.darkModeChangeHandler = () => {\n if (this.theme === \"system\") {\n this.themeClass =\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"ic-theme-dark\"\n : \"ic-theme-light\";\n }\n else {\n this.themeClass = `ic-theme-${this.theme}`;\n }\n this.icThemeChange.emit(this.theme);\n };\n this.checkBrandColorContrast = () => {\n if (getBrandColorBrightness() < BLACK_MIN_COLOR_BRIGHTNESS &&\n getBrandColorBrightness() > WHITE_MAX_COLOR_BRIGHTNESS) {\n console.warn(`The brand colour does not provide enough contrast with either of the ICDS black or white foreground colours. Consider choosing a colour with a different brightness to achieve sufficient colour contrast for good visibility. See https://www.w3.org/TR/AERT/#color-contrast for more information about colour contrast.`);\n }\n };\n this.setBrandColor = () => {\n const colorRGBA = this.brandColor ? convertToRGBA(this.brandColor) : null;\n if (colorRGBA) {\n const { r, g, b, a } = colorRGBA;\n const { style } = document.documentElement;\n style.setProperty(\"--ic-brand-color-primary-r\", `${r}`);\n style.setProperty(\"--ic-brand-color-primary-g\", `${g}`);\n style.setProperty(\"--ic-brand-color-primary-b\", `${b}`);\n style.setProperty(\"--ic-brand-color-primary-a\", `${a}`);\n this.checkBrandColorContrast();\n this.brandChange.emit({\n mode: getBrandForegroundAppearance(),\n color: colorRGBA,\n });\n }\n };\n }\n watchBrandColorPropHandler() {\n this.setBrandColor();\n }\n watchThemePropHandler() {\n this.darkModeChangeHandler();\n }\n componentWillLoad() {\n this.darkModeChangeHandler();\n this.setBrandColor();\n window.matchMedia &&\n window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", this.darkModeChangeHandler);\n }\n render() {\n const { themeClass } = this;\n return (h(Host, { key: 'b49257f527c4a26eca25d04500d822785cba320b', class: themeClass }, h(\"slot\", { key: '09782aca70372e6897e9032b66a166335778a6fe' })));\n }\n static get is() { return \"ic-theme\"; }\n static get properties() {\n return {\n \"brandColor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcColor | null\",\n \"resolved\": \"`#${string}` | `rgb(${string})` | `rgba(${string})` | null | undefined\",\n \"references\": {\n \"IcColor\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcColor\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The brand colour. Can be a hex value e.g. \\\"#ff0000\\\", RGB e.g. \\\"rgb(255, 0, 0)\\\", or RGBA e.g. \\\"rgba(255, 0, 0, 1)\\\".\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"brand-color\",\n \"reflect\": false,\n \"defaultValue\": \"null\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeSettings\",\n \"resolved\": \"\\\"dark\\\" | \\\"light\\\" | \\\"system\\\" | undefined\",\n \"references\": {\n \"IcThemeSettings\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeSettings\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The theme mode. Can be \\\"dark\\\", \\\"light\\\", or \\\"system\\\". \\\"system\\\" will use the device or browser settings.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"light\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"themeClass\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"brandChange\",\n \"name\": \"brandChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the brand color is changed.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcBrand\",\n \"resolved\": \"{ mode: IcBrandForeground; color: IcColorRGB; }\",\n \"references\": {\n \"IcBrand\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcBrand\"\n }\n }\n }\n }, {\n \"method\": \"icThemeChange\",\n \"name\": \"icThemeChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the theme is changed.\"\n },\n \"complexType\": {\n \"original\": \"IcThemeSettings\",\n \"resolved\": \"\\\"dark\\\" | \\\"light\\\" | \\\"system\\\"\",\n \"references\": {\n \"IcThemeSettings\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeSettings\"\n }\n }\n }\n }];\n }\n static get watchers() {\n return [{\n \"propName\": \"brandColor\",\n \"methodName\": \"watchBrandColorPropHandler\"\n }, {\n \"propName\": \"theme\",\n \"methodName\": \"watchThemePropHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-theme.js.map\n"],"mappings":"+HAIaA,EAAK,MACd,WAAAC,CAAAC,G,gGACIC,KAAKC,WAAa,GAIlBD,KAAKE,WAAa,KAIlBF,KAAKG,MAAQ,QACbH,KAAKI,sBAAwB,KACzB,GAAIJ,KAAKG,QAAU,SAAU,CACzBH,KAAKC,WACDI,OAAOC,YACHD,OAAOC,WAAW,gCAAgCC,QAChD,gBACA,gB,KAET,CACDP,KAAKC,WAAa,YAAYD,KAAKG,O,CAEvCH,KAAKQ,cAAcC,KAAKT,KAAKG,MAAM,EAEvCH,KAAKU,wBAA0B,KAC3B,GAAIC,IAA4BC,GAC5BD,IAA4BE,EAA4B,CACxDC,QAAQC,KAAK,4T,GAGrBf,KAAKgB,cAAgB,KACjB,MAAMC,EAAYjB,KAAKE,WAAagB,EAAclB,KAAKE,YAAc,KACrE,GAAIe,EAAW,CACX,MAAME,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,GAAML,EACvB,MAAMM,MAAEA,GAAUC,SAASC,gBAC3BF,EAAMG,YAAY,6BAA8B,GAAGP,KACnDI,EAAMG,YAAY,6BAA8B,GAAGN,KACnDG,EAAMG,YAAY,6BAA8B,GAAGL,KACnDE,EAAMG,YAAY,6BAA8B,GAAGJ,KACnDtB,KAAKU,0BACLV,KAAK2B,YAAYlB,KAAK,CAClBmB,KAAMC,IACNC,MAAOb,G,GAKvB,0BAAAc,GACI/B,KAAKgB,e,CAET,qBAAAgB,GACIhC,KAAKI,uB,CAET,iBAAA6B,GACIjC,KAAKI,wBACLJ,KAAKgB,gBACLX,OAAOC,YACHD,OACKC,WAAW,gCACX4B,iBAAiB,SAAUlC,KAAKI,sB,CAE7C,MAAA+B,GACI,MAAMlC,WAAEA,GAAeD,KACvB,OAAQoC,EAAEC,EAAM,CAAEC,IAAK,2CAA4CC,MAAOtC,GAAcmC,EAAE,OAAQ,CAAEE,IAAK,6C","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as e,c as t,h as i,H as o,g as n}from"./p-8e4e97b4.js";import{r as a,i as s}from"./p-eca2fea1.js";import{C as r}from"./p-170ddfc2.js";const c='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;border-bottom:var(--ic-space-1px) solid var(--ic-accordion-divider)}:host .expand-chevron{color:var(--ic-accordion-chevron)}:host(.ic-accordion-disabled) .expand-chevron{color:var(--ic-accordion-chevron-disabled)}.section-button.small{padding:var(--ic-space-xxs) var(--ic-space-xs)}.section-button.large{padding:var(--ic-space-sm) var(--ic-space-xs)}:host(:first-of-type){border-top:var(--ic-space-1px) solid var(--ic-accordion-divider)}:focus{outline:none}.section-button{background-color:transparent;display:flex;align-items:center;width:100%;padding:var(--ic-space-xs);font-weight:var(--ic-font-weight-bold);border:none}.section-header{--ic-typography-color:var(--ic-accordion-heading-text);color:var(--ic-accordion-heading-text);text-align:left;flex:1 0}:host(.ic-accordion-disabled) .section-header{--ic-typography-color:var(--ic-accordion-heading-text-disabled);color:var(--ic-accordion-heading-text-disabled)}button:hover{background-color:var(--ic-accordion-background-hover);cursor:pointer}button:active{background-color:var(--ic-accordion-background-pressed)}button:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast)}button:disabled{pointer-events:none}.icon-container{margin:0 var(--ic-space-xs) 0 0;display:flex;align-items:center;width:var(--ic-space-lg);height:var(--ic-space-lg);color:var(--ic-accordion-icon)}:host(.ic-accordion-disabled) .icon-container{color:var(--ic-accordion-icon-disabled)}::slotted(svg){width:var(--ic-space-md);height:var(--ic-space-md)}.expand-chevron{width:var(--ic-space-lg);height:var(--ic-space-lg);margin-left:calc(var(--ic-space-xl) + var(--ic-space-xs));transform:rotate(90deg);justify-self:end}.content-expanded-chevron{transform:rotate(-90deg)}.expanded-content{--ic-typography-color:var(--ic-accordion-body-text);color:var(--ic-accordion-body-text);height:0;overflow:hidden;display:flex;flex-direction:column;visibility:var(--ic-expanded-content-visibility, hidden)}.expanded-content-inner{padding:var(--ic-space-xs)}.expanded-content-opened{overflow:visible}@media (forced-colors: active){button:focus{border:var(--ic-border-hc) !important}}';const d=c;let l=0;const h="expanded-content-opened";const b=class{constructor(i){e(this,i);this.accordionClicked=t(this,"accordionClicked",7);this.accordionId=`ic-accordion-${l++}`;this.CONTENT_VISIBILITY_PROPERTY="--ic-expanded-content-visibility";this.disabled=false;this.expanded=false;this.heading="";this.message="";this.size="medium";this.theme="inherit";this.toggleExpanded=()=>{this.expanded=!this.expanded;this.accordionClicked.emit({id:this.accordionId})};this.setAccordionAnimation=(e,t,i,o)=>{e.style.transitionDuration=`${t}ms`;e.style.transitionProperty=i;e.style.transitionDelay=o};this.setExpandedContentStyle=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight>0){t.classList.add(h);t.style.height="auto"}};this.hideExpandedContent=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight===0){t.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"hidden")}};this.animateExpandedContent=()=>{if(this.expandedContentEl){const e=this.expandedContentEl;const t=e.scrollHeight;if(t>0&&this.expanded){e.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");e.style.height=`${t}px`;this.setAccordionAnimation(e,"300","height","ease-out");e.addEventListener("transitionend",(t=>{this.setExpandedContentStyle(t,e)}))}else if(!this.expanded){const e=this.expandedContentEl;e.style.height=`${e.scrollHeight}px`;if(e.scrollHeight>0&&!this.expanded){e.style.height="0";this.setAccordionAnimation(e,"300","height","ease-in");e.classList.remove(h)}e.addEventListener("transitionend",(t=>{this.hideExpandedContent(t,e)}))}}}}watchDisabledHandler(){a(this.disabled,this.el)}handleExpandedWatch(){this.animateExpandedContent()}async setFocus(){var e;(e=this.accordionBtnHeading)===null||e===void 0?void 0:e.focus()}componentWillLoad(){a(this.disabled,this.el)}disconnectedCallback(){const e=this.expandedContentEl;if(e){e.removeEventListener("transitionend",(t=>this.setExpandedContentStyle(t,e)),true);e.removeEventListener("transitionend",(t=>this.hideExpandedContent(t,e)),true)}}componentDidLoad(){if(this.expanded&&this.expandedContentEl){this.expandedContentEl.style.height="auto";this.expandedContentEl.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");this.expandedContentEl.classList.add(h)}}render(){const{size:e,disabled:t,expanded:n,theme:a}=this;return i(o,{key:"9fff7c4dc37187f9a2d03ae477c48012ff17c870",id:this.accordionId,class:{["ic-accordion-disabled"]:!!t,[`ic-theme-${a}`]:a!=="inherit"},"aria-disabled":t?"true":"false"},i("button",{key:"0f83275fbfc435eb5b640bd76b9a9582fcb3dca0",ref:e=>this.accordionBtnHeading=e,id:`${this.accordionId}-button`,disabled:t,tabindex:t?-1:0,class:{[`${e}`]:true,["section-button"]:true,["section-button-open"]:!!n&&!t},"aria-expanded":`${n}`,"aria-controls":"expanded-content-area",onClick:this.toggleExpanded},s(this.el,"icon")&&i("div",{key:"41c88884df97917d026fbecb500c35b393045c7d",class:"icon-container"},i("slot",{key:"ddc6894db8ab81e27c971350e261d99b51759756",name:"icon"})),i("ic-typography",{key:"e0ca73dbe5a2d46dbe2f893d4405e3d82fd2a862",variant:"subtitle-large",class:"section-header"},s(this.el,"heading")?i("slot",{name:"heading"}):this.heading),i("span",{key:"a95fad35c3e3f38415da026a93112079f74de4d7",class:{["expand-chevron"]:true,["content-expanded-chevron"]:!!n&&!t},"aria-hidden":"true",innerHTML:r})),i("div",{key:"65b6322d5dde677528891631ecd9b95189948771",class:{["expanded-content"]:true},"aria-labelledby":`${this.accordionId}-button`,role:"region","aria-hidden":`${!n}`,id:"expanded-content-area",ref:e=>this.expandedContentEl=e},i("div",{key:"de9ec00d55757be20c097082817529b652200263",class:"expanded-content-inner"},this.message?i("ic-typography",{variant:"body"},this.message):i("slot",null))))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],expanded:["handleExpandedWatch"]}}};b.style=d;export{b as ic_accordion};
2
- //# sourceMappingURL=p-a894ddb6.entry.js.map
1
+ import{r as e,c as t,h as i,H as o,g as n}from"./p-8e4e97b4.js";import{r as a,i as s}from"./p-13f52d7b.js";import{C as r}from"./p-170ddfc2.js";const c='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;border-bottom:var(--ic-space-1px) solid var(--ic-accordion-divider)}:host .expand-chevron{color:var(--ic-accordion-chevron)}:host(.ic-accordion-disabled) .expand-chevron{color:var(--ic-accordion-chevron-disabled)}.section-button.small{padding:var(--ic-space-xxs) var(--ic-space-xs)}.section-button.large{padding:var(--ic-space-sm) var(--ic-space-xs)}:host(:first-of-type){border-top:var(--ic-space-1px) solid var(--ic-accordion-divider)}:focus{outline:none}.section-button{background-color:transparent;display:flex;align-items:center;width:100%;padding:var(--ic-space-xs);font-weight:var(--ic-font-weight-bold);border:none}.section-header{--ic-typography-color:var(--ic-accordion-heading-text);color:var(--ic-accordion-heading-text);text-align:left;flex:1 0}:host(.ic-accordion-disabled) .section-header{--ic-typography-color:var(--ic-accordion-heading-text-disabled);color:var(--ic-accordion-heading-text-disabled)}button:hover{background-color:var(--ic-accordion-background-hover);cursor:pointer}button:active{background-color:var(--ic-accordion-background-pressed)}button:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast)}button:disabled{pointer-events:none}.icon-container{margin:0 var(--ic-space-xs) 0 0;display:flex;align-items:center;width:var(--ic-space-lg);height:var(--ic-space-lg);color:var(--ic-accordion-icon)}:host(.ic-accordion-disabled) .icon-container{color:var(--ic-accordion-icon-disabled)}::slotted(svg){width:var(--ic-space-md);height:var(--ic-space-md)}.expand-chevron{width:var(--ic-space-lg);height:var(--ic-space-lg);margin-left:calc(var(--ic-space-xl) + var(--ic-space-xs));transform:rotate(90deg);justify-self:end}.content-expanded-chevron{transform:rotate(-90deg)}.expanded-content{--ic-typography-color:var(--ic-accordion-body-text);color:var(--ic-accordion-body-text);height:0;overflow:hidden;display:flex;flex-direction:column;visibility:var(--ic-expanded-content-visibility, hidden)}.expanded-content-inner{padding:var(--ic-space-xs)}.expanded-content-opened{overflow:visible}@media (forced-colors: active){button:focus{border:var(--ic-border-hc) !important}}';const d=c;let l=0;const h="expanded-content-opened";const b=class{constructor(i){e(this,i);this.accordionClicked=t(this,"accordionClicked",7);this.accordionId=`ic-accordion-${l++}`;this.CONTENT_VISIBILITY_PROPERTY="--ic-expanded-content-visibility";this.disabled=false;this.expanded=false;this.heading="";this.message="";this.size="medium";this.theme="inherit";this.toggleExpanded=()=>{this.expanded=!this.expanded;this.accordionClicked.emit({id:this.accordionId})};this.setAccordionAnimation=(e,t,i,o)=>{e.style.transitionDuration=`${t}ms`;e.style.transitionProperty=i;e.style.transitionDelay=o};this.setExpandedContentStyle=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight>0){t.classList.add(h);t.style.height="auto"}};this.hideExpandedContent=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight===0){t.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"hidden")}};this.animateExpandedContent=()=>{if(this.expandedContentEl){const e=this.expandedContentEl;const t=e.scrollHeight;if(t>0&&this.expanded){e.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");e.style.height=`${t}px`;this.setAccordionAnimation(e,"300","height","ease-out");e.addEventListener("transitionend",(t=>{this.setExpandedContentStyle(t,e)}))}else if(!this.expanded){const e=this.expandedContentEl;e.style.height=`${e.scrollHeight}px`;if(e.scrollHeight>0&&!this.expanded){e.style.height="0";this.setAccordionAnimation(e,"300","height","ease-in");e.classList.remove(h)}e.addEventListener("transitionend",(t=>{this.hideExpandedContent(t,e)}))}}}}watchDisabledHandler(){a(this.disabled,this.el)}handleExpandedWatch(){this.animateExpandedContent()}async setFocus(){var e;(e=this.accordionBtnHeading)===null||e===void 0?void 0:e.focus()}componentWillLoad(){a(this.disabled,this.el)}disconnectedCallback(){const e=this.expandedContentEl;if(e){e.removeEventListener("transitionend",(t=>this.setExpandedContentStyle(t,e)),true);e.removeEventListener("transitionend",(t=>this.hideExpandedContent(t,e)),true)}}componentDidLoad(){if(this.expanded&&this.expandedContentEl){this.expandedContentEl.style.height="auto";this.expandedContentEl.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");this.expandedContentEl.classList.add(h)}}render(){const{size:e,disabled:t,expanded:n,theme:a}=this;return i(o,{key:"9fff7c4dc37187f9a2d03ae477c48012ff17c870",id:this.accordionId,class:{["ic-accordion-disabled"]:!!t,[`ic-theme-${a}`]:a!=="inherit"},"aria-disabled":t?"true":"false"},i("button",{key:"0f83275fbfc435eb5b640bd76b9a9582fcb3dca0",ref:e=>this.accordionBtnHeading=e,id:`${this.accordionId}-button`,disabled:t,tabindex:t?-1:0,class:{[`${e}`]:true,["section-button"]:true,["section-button-open"]:!!n&&!t},"aria-expanded":`${n}`,"aria-controls":"expanded-content-area",onClick:this.toggleExpanded},s(this.el,"icon")&&i("div",{key:"41c88884df97917d026fbecb500c35b393045c7d",class:"icon-container"},i("slot",{key:"ddc6894db8ab81e27c971350e261d99b51759756",name:"icon"})),i("ic-typography",{key:"e0ca73dbe5a2d46dbe2f893d4405e3d82fd2a862",variant:"subtitle-large",class:"section-header"},s(this.el,"heading")?i("slot",{name:"heading"}):this.heading),i("span",{key:"a95fad35c3e3f38415da026a93112079f74de4d7",class:{["expand-chevron"]:true,["content-expanded-chevron"]:!!n&&!t},"aria-hidden":"true",innerHTML:r})),i("div",{key:"65b6322d5dde677528891631ecd9b95189948771",class:{["expanded-content"]:true},"aria-labelledby":`${this.accordionId}-button`,role:"region","aria-hidden":`${!n}`,id:"expanded-content-area",ref:e=>this.expandedContentEl=e},i("div",{key:"de9ec00d55757be20c097082817529b652200263",class:"expanded-content-inner"},this.message?i("ic-typography",{variant:"body"},this.message):i("slot",null))))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],expanded:["handleExpandedWatch"]}}};b.style=d;export{b as ic_accordion};
2
+ //# sourceMappingURL=p-7436d8de.entry.js.map