voyager-ionic-core 7.7.0 → 7.7.2

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 (354) hide show
  1. package/components/action-sheet.js +8 -4
  2. package/components/alert.js +6 -2
  3. package/components/ion-loading.js +6 -2
  4. package/components/ion-modal.js +8 -6
  5. package/components/ion-picker.js +6 -2
  6. package/components/ion-toast.js +6 -2
  7. package/components/item.js +3 -12
  8. package/components/overlays.js +54 -9
  9. package/components/popover.js +7 -3
  10. package/components/select-popover.js +2 -2
  11. package/dist/cjs/{app-globals-5a17c5e1.js → app-globals-92ad1b3d.js} +1 -1
  12. package/dist/cjs/{button-active-b8c3f603.js → button-active-2d6520ec.js} +1 -1
  13. package/dist/cjs/{hardware-back-button-d23873bb.js → hardware-back-button-2696acaf.js} +2 -2
  14. package/dist/cjs/{index-5a471146.js → index-0ffe376d.js} +25 -22
  15. package/dist/cjs/{index-8c679cbf.js → index-a43f7a0f.js} +2 -2
  16. package/dist/cjs/{index-84351d21.js → index-c3580a90.js} +3 -3
  17. package/dist/cjs/index.cjs.js +8 -8
  18. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  19. package/dist/cjs/ion-action-sheet.cjs.entry.js +13 -9
  20. package/dist/cjs/ion-alert.cjs.entry.js +11 -7
  21. package/dist/cjs/ion-app_8.cjs.entry.js +6 -6
  22. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  23. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -6
  33. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
  39. package/dist/cjs/ion-loading.cjs.entry.js +10 -6
  40. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  41. package/dist/cjs/ion-modal.cjs.entry.js +12 -10
  42. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  45. package/dist/cjs/ion-popover.cjs.entry.js +12 -8
  46. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  56. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  60. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-toast.cjs.entry.js +10 -6
  63. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  64. package/dist/cjs/{ionic-global-7358c23e.js → ionic-global-59a10130.js} +1 -1
  65. package/dist/cjs/ionic.cjs.js +6 -6
  66. package/dist/cjs/{ios.transition-8e40c54e.js → ios.transition-c3b11cc3.js} +2 -2
  67. package/dist/cjs/loader.cjs.js +5 -5
  68. package/dist/cjs/{md.transition-597a2479.js → md.transition-82a8c649.js} +2 -2
  69. package/dist/cjs/{overlays-eaf2075f.js → overlays-fb7ca451.js} +55 -11
  70. package/dist/cjs/{status-tap-b0bfea34.js → status-tap-692f6d32.js} +1 -1
  71. package/dist/collection/collection-manifest.json +1 -1
  72. package/dist/collection/components/action-sheet/action-sheet.ios.css +13 -1
  73. package/dist/collection/components/action-sheet/action-sheet.js +9 -5
  74. package/dist/collection/components/alert/alert.js +8 -4
  75. package/dist/collection/components/item/item.js +3 -12
  76. package/dist/collection/components/loading/loading.js +8 -4
  77. package/dist/collection/components/modal/modal.js +10 -8
  78. package/dist/collection/components/modal/test/animations/modal.e2e.js +36 -0
  79. package/dist/collection/components/picker/picker.js +8 -4
  80. package/dist/collection/components/popover/popover.ios.css +7 -0
  81. package/dist/collection/components/popover/popover.js +8 -4
  82. package/dist/collection/components/select-popover/select-popover.ios.css +10 -0
  83. package/dist/collection/components/select-popover/select-popover.md.css +10 -0
  84. package/dist/collection/components/toast/test/toast.spec.js +12 -0
  85. package/dist/collection/components/toast/toast.js +8 -4
  86. package/dist/collection/utils/overlays.js +53 -8
  87. package/dist/collection/utils/test/overlays/overlays.e2e.js +33 -0
  88. package/dist/collection/utils/test/overlays/overlays.spec.js +51 -0
  89. package/dist/docs.json +23 -23
  90. package/dist/esm/{app-globals-47226a12.js → app-globals-5cf6195b.js} +1 -1
  91. package/dist/esm/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  92. package/dist/esm/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +2 -2
  93. package/dist/esm/{index-4b98143d.js → index-0b4beb69.js} +3 -3
  94. package/dist/esm/{index-48209844.js → index-47b2066d.js} +2 -2
  95. package/dist/esm/{index-73881b51.js → index-4c30cddd.js} +25 -22
  96. package/dist/esm/index.js +8 -8
  97. package/dist/esm/ion-accordion_2.entry.js +2 -2
  98. package/dist/esm/ion-action-sheet.entry.js +13 -9
  99. package/dist/esm/ion-alert.entry.js +11 -7
  100. package/dist/esm/ion-app_8.entry.js +6 -6
  101. package/dist/esm/ion-avatar_3.entry.js +2 -2
  102. package/dist/esm/ion-back-button.entry.js +2 -2
  103. package/dist/esm/ion-backdrop.entry.js +2 -2
  104. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  105. package/dist/esm/ion-button_2.entry.js +2 -2
  106. package/dist/esm/ion-card_5.entry.js +2 -2
  107. package/dist/esm/ion-checkbox.entry.js +2 -2
  108. package/dist/esm/ion-chip.entry.js +2 -2
  109. package/dist/esm/ion-col_3.entry.js +2 -2
  110. package/dist/esm/ion-datetime-button.entry.js +2 -2
  111. package/dist/esm/ion-datetime_3.entry.js +10 -6
  112. package/dist/esm/ion-fab_3.entry.js +2 -2
  113. package/dist/esm/ion-img.entry.js +2 -2
  114. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  115. package/dist/esm/ion-input.entry.js +2 -2
  116. package/dist/esm/ion-item-option_3.entry.js +2 -2
  117. package/dist/esm/ion-item_8.entry.js +4 -4
  118. package/dist/esm/ion-loading.entry.js +10 -6
  119. package/dist/esm/ion-menu_3.entry.js +5 -5
  120. package/dist/esm/ion-modal.entry.js +12 -10
  121. package/dist/esm/ion-nav_2.entry.js +3 -3
  122. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  123. package/dist/esm/ion-picker-internal.entry.js +1 -1
  124. package/dist/esm/ion-popover.entry.js +12 -8
  125. package/dist/esm/ion-progress-bar.entry.js +2 -2
  126. package/dist/esm/ion-radio_2.entry.js +2 -2
  127. package/dist/esm/ion-range.entry.js +2 -2
  128. package/dist/esm/ion-refresher_2.entry.js +2 -2
  129. package/dist/esm/ion-reorder_2.entry.js +2 -2
  130. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  131. package/dist/esm/ion-route_4.entry.js +2 -2
  132. package/dist/esm/ion-searchbar.entry.js +2 -2
  133. package/dist/esm/ion-segment_2.entry.js +2 -2
  134. package/dist/esm/ion-select_3.entry.js +6 -6
  135. package/dist/esm/ion-spinner.entry.js +2 -2
  136. package/dist/esm/ion-split-pane.entry.js +2 -2
  137. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  138. package/dist/esm/ion-tab_2.entry.js +1 -1
  139. package/dist/esm/ion-text.entry.js +2 -2
  140. package/dist/esm/ion-textarea.entry.js +2 -2
  141. package/dist/esm/ion-toast.entry.js +10 -6
  142. package/dist/esm/ion-toggle.entry.js +2 -2
  143. package/dist/esm/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  144. package/dist/esm/ionic.js +7 -7
  145. package/dist/esm/{ios.transition-7ff7381d.js → ios.transition-b76c7020.js} +2 -2
  146. package/dist/esm/loader.js +6 -6
  147. package/dist/esm/{md.transition-28a9a26b.js → md.transition-564937a7.js} +2 -2
  148. package/dist/esm/{overlays-fad5fe01.js → overlays-04a9a43f.js} +56 -11
  149. package/dist/esm/{status-tap-2b335fb7.js → status-tap-5a95077d.js} +1 -1
  150. package/dist/esm-es5/app-globals-5cf6195b.js +4 -0
  151. package/dist/esm-es5/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  152. package/dist/esm-es5/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +1 -1
  153. package/dist/esm-es5/{index-4b98143d.js → index-0b4beb69.js} +1 -1
  154. package/dist/esm-es5/{index-48209844.js → index-47b2066d.js} +1 -1
  155. package/dist/esm-es5/{index-73881b51.js → index-4c30cddd.js} +1 -1
  156. package/dist/esm-es5/index.js +1 -1
  157. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  158. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  159. package/dist/esm-es5/ion-alert.entry.js +1 -1
  160. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  161. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  162. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  163. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  164. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  165. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  166. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  167. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  168. package/dist/esm-es5/ion-chip.entry.js +1 -1
  169. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  170. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  171. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  172. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  173. package/dist/esm-es5/ion-img.entry.js +1 -1
  174. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  175. package/dist/esm-es5/ion-input.entry.js +1 -1
  176. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  177. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  178. package/dist/esm-es5/ion-loading.entry.js +1 -1
  179. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-modal.entry.js +1 -1
  181. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  182. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  183. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  184. package/dist/esm-es5/ion-popover.entry.js +1 -1
  185. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  186. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  187. package/dist/esm-es5/ion-range.entry.js +1 -1
  188. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  189. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  190. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  191. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  192. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  193. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  195. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  196. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  197. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  198. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  199. package/dist/esm-es5/ion-text.entry.js +1 -1
  200. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  201. package/dist/esm-es5/ion-toast.entry.js +1 -1
  202. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  203. package/dist/esm-es5/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  204. package/dist/esm-es5/ionic.js +2 -2
  205. package/dist/esm-es5/{ios.transition-7ff7381d.js → ios.transition-b76c7020.js} +1 -1
  206. package/dist/esm-es5/loader.js +2 -2
  207. package/dist/esm-es5/md.transition-564937a7.js +4 -0
  208. package/dist/esm-es5/overlays-04a9a43f.js +4 -0
  209. package/dist/esm-es5/{status-tap-2b335fb7.js → status-tap-5a95077d.js} +1 -1
  210. package/dist/ionic/index.esm.js +1 -1
  211. package/dist/ionic/ionic.esm.js +1 -1
  212. package/dist/ionic/ionic.js +1 -1
  213. package/dist/ionic/{p-ce2eabd5.entry.js → p-027f3674.entry.js} +1 -1
  214. package/dist/ionic/{p-dce9bc53.entry.js → p-0457213c.entry.js} +1 -1
  215. package/dist/ionic/{p-9db1e4c5.entry.js → p-05d560ec.entry.js} +1 -1
  216. package/dist/ionic/p-0b34d3a7.system.js +4 -0
  217. package/dist/ionic/{p-eb1fdf9f.system.entry.js → p-0e23c289.system.entry.js} +1 -1
  218. package/dist/ionic/{p-8569d759.system.entry.js → p-1131946f.system.entry.js} +1 -1
  219. package/dist/ionic/{p-8ddc00f7.js → p-123b4809.js} +1 -1
  220. package/dist/ionic/{p-5eea8b4c.system.js → p-1636923f.system.js} +1 -1
  221. package/dist/ionic/{p-333f06ed.entry.js → p-16a61810.entry.js} +1 -1
  222. package/dist/ionic/p-18beebdf.system.entry.js +4 -0
  223. package/dist/ionic/{p-e6cfaa07.system.entry.js → p-1924f2e0.system.entry.js} +2 -2
  224. package/dist/ionic/{p-396c1a55.entry.js → p-1f16d040.entry.js} +1 -1
  225. package/dist/ionic/{p-e6aaff14.system.entry.js → p-1f19958f.system.entry.js} +1 -1
  226. package/dist/ionic/p-21ca1f1c.js +4 -0
  227. package/dist/ionic/{p-df468a8f.entry.js → p-2327064c.entry.js} +1 -1
  228. package/dist/ionic/{p-5a0c301f.entry.js → p-23c73017.entry.js} +1 -1
  229. package/dist/ionic/{p-3a98f8db.entry.js → p-275705e5.entry.js} +1 -1
  230. package/dist/ionic/{p-c6fef62b.system.js → p-2e14c533.system.js} +1 -1
  231. package/dist/ionic/{p-34947dff.system.entry.js → p-2e1f014a.system.entry.js} +1 -1
  232. package/dist/ionic/{p-aa7ae6aa.entry.js → p-3079950e.entry.js} +1 -1
  233. package/dist/ionic/{p-b4d8fe47.js → p-30cd5e7b.js} +1 -1
  234. package/dist/ionic/{p-b8c4df21.entry.js → p-337ac0f5.entry.js} +1 -1
  235. package/dist/ionic/{p-9eb4ea47.system.entry.js → p-3471a7c0.system.entry.js} +1 -1
  236. package/dist/ionic/{p-0e29919c.system.entry.js → p-3481d54e.system.entry.js} +1 -1
  237. package/dist/ionic/{p-51f08a9f.entry.js → p-396083cc.entry.js} +1 -1
  238. package/dist/ionic/{p-f88dd429.entry.js → p-3a7de59c.entry.js} +1 -1
  239. package/dist/ionic/{p-9f6397ce.entry.js → p-3d961d93.entry.js} +1 -1
  240. package/dist/ionic/p-3e9ad72a.system.entry.js +4 -0
  241. package/dist/ionic/{p-70026e8f.system.entry.js → p-42a9f663.system.entry.js} +1 -1
  242. package/dist/ionic/{p-400574bf.entry.js → p-43a5edee.entry.js} +1 -1
  243. package/dist/ionic/{p-3eb2da31.js → p-49aba878.js} +1 -1
  244. package/dist/ionic/{p-5e60dbc8.entry.js → p-4fda5c35.entry.js} +1 -1
  245. package/dist/ionic/{p-3cdbaa49.entry.js → p-502780e4.entry.js} +1 -1
  246. package/dist/ionic/{p-108f730a.entry.js → p-508a4c87.entry.js} +1 -1
  247. package/dist/ionic/{p-9f5b40c0.system.entry.js → p-5928fac9.system.entry.js} +1 -1
  248. package/dist/ionic/p-5b40d967.entry.js +4 -0
  249. package/dist/ionic/p-5c2ae448.js +4 -0
  250. package/dist/ionic/{p-a2ad515b.entry.js → p-5c580e89.entry.js} +1 -1
  251. package/dist/ionic/{p-a02b2d75.entry.js → p-5c6a04bd.entry.js} +1 -1
  252. package/dist/ionic/{p-30c9e049.system.entry.js → p-5cb5f63d.system.entry.js} +1 -1
  253. package/dist/ionic/{p-1aa7c019.js → p-5d7e32ce.js} +1 -1
  254. package/dist/ionic/{p-3a54c070.system.entry.js → p-5e23bea8.system.entry.js} +1 -1
  255. package/dist/ionic/{p-a114530c.entry.js → p-5f169eba.entry.js} +1 -1
  256. package/dist/ionic/{p-1c531ca2.entry.js → p-601e17b4.entry.js} +1 -1
  257. package/dist/ionic/{p-84f589e1.entry.js → p-64761c90.entry.js} +1 -1
  258. package/dist/ionic/{p-bc2c03d7.system.entry.js → p-64856c3c.system.entry.js} +1 -1
  259. package/dist/ionic/{p-d181166c.system.entry.js → p-6486e393.system.entry.js} +1 -1
  260. package/dist/ionic/{p-efe9180b.entry.js → p-64db1331.entry.js} +1 -1
  261. package/dist/ionic/{p-3f028207.system.js → p-6525a8cd.system.js} +1 -1
  262. package/dist/ionic/{p-d8607ede.entry.js → p-657ccdd6.entry.js} +1 -1
  263. package/dist/ionic/p-667e3e2d.entry.js +4 -0
  264. package/dist/ionic/{p-cd055d60.system.entry.js → p-68ba8e77.system.entry.js} +1 -1
  265. package/dist/ionic/{p-2f66e177.system.entry.js → p-70e34286.system.entry.js} +1 -1
  266. package/dist/ionic/{p-df281664.system.entry.js → p-7173ba59.system.entry.js} +1 -1
  267. package/dist/ionic/{p-20a6513f.system.entry.js → p-717e2526.system.entry.js} +1 -1
  268. package/dist/ionic/{p-76893257.system.js → p-72fa96bf.system.js} +1 -1
  269. package/dist/ionic/{p-25b08bc4.system.js → p-74deb358.system.js} +1 -1
  270. package/dist/ionic/{p-a1bfaa5c.system.entry.js → p-7b1ed642.system.entry.js} +1 -1
  271. package/dist/ionic/{p-fd3f475f.entry.js → p-7ce40e7b.entry.js} +1 -1
  272. package/dist/ionic/{p-58e3ae88.system.entry.js → p-86813176.system.entry.js} +1 -1
  273. package/dist/ionic/{p-0eef8b34.system.entry.js → p-8794fa00.system.entry.js} +1 -1
  274. package/dist/ionic/{p-a051c371.entry.js → p-88e9052d.entry.js} +1 -1
  275. package/dist/ionic/{p-b94882a9.system.js → p-89ca4c4b.system.js} +1 -1
  276. package/dist/ionic/{p-f46775e4.entry.js → p-8e651c29.entry.js} +1 -1
  277. package/dist/ionic/{p-f97b9cdd.system.entry.js → p-9056778e.system.entry.js} +1 -1
  278. package/dist/ionic/{p-594ead2f.entry.js → p-91cb3f9a.entry.js} +1 -1
  279. package/dist/ionic/{p-97eca294.entry.js → p-95d5a097.entry.js} +1 -1
  280. package/dist/ionic/{p-95c44e02.system.js → p-9cd7ba27.system.js} +1 -1
  281. package/dist/ionic/{p-fd36799d.system.js → p-9ec7208d.system.js} +1 -1
  282. package/dist/ionic/{p-4fc40349.system.entry.js → p-a022b684.system.entry.js} +1 -1
  283. package/dist/ionic/{p-078fd095.system.entry.js → p-a0b28c69.system.entry.js} +1 -1
  284. package/dist/ionic/{p-eda7a1db.system.entry.js → p-a3df16b9.system.entry.js} +1 -1
  285. package/dist/ionic/{p-62a3c609.system.js → p-a5951821.system.js} +1 -1
  286. package/dist/ionic/{p-c569d1c8.entry.js → p-a6e465f5.entry.js} +1 -1
  287. package/dist/ionic/{p-9a6ab80a.system.entry.js → p-a85d9047.system.entry.js} +1 -1
  288. package/dist/ionic/{p-88ca4854.entry.js → p-a8a56449.entry.js} +1 -1
  289. package/dist/ionic/{p-5615cf3f.system.entry.js → p-aaaa615c.system.entry.js} +1 -1
  290. package/dist/ionic/{p-ac20160b.system.entry.js → p-abcedc15.system.entry.js} +1 -1
  291. package/dist/ionic/{p-0ae25399.system.entry.js → p-ae35294f.system.entry.js} +1 -1
  292. package/dist/ionic/{p-6f38d0c5.system.entry.js → p-afd6d696.system.entry.js} +1 -1
  293. package/dist/ionic/{p-d7260b87.entry.js → p-b0ff8075.entry.js} +1 -1
  294. package/dist/ionic/{p-e68980ff.system.entry.js → p-b2595011.system.entry.js} +1 -1
  295. package/dist/ionic/{p-fe92da17.entry.js → p-b6279412.entry.js} +1 -1
  296. package/dist/ionic/{p-1d8c2cfc.system.entry.js → p-ba97a133.system.entry.js} +1 -1
  297. package/dist/ionic/{p-38a6fee7.entry.js → p-bd4787eb.entry.js} +1 -1
  298. package/dist/ionic/p-bdca4784.js +4 -0
  299. package/dist/ionic/{p-2da0a76c.entry.js → p-bf05cbc7.entry.js} +1 -1
  300. package/dist/ionic/{p-dbb4c012.entry.js → p-c11bab7e.entry.js} +1 -1
  301. package/dist/ionic/{p-78edc0cd.system.entry.js → p-c1797ec5.system.entry.js} +1 -1
  302. package/dist/ionic/{p-d95c8e90.entry.js → p-c308f773.entry.js} +1 -1
  303. package/dist/ionic/{p-f7b43141.system.entry.js → p-c39cc96d.system.entry.js} +1 -1
  304. package/dist/ionic/{p-92c2178e.system.entry.js → p-c747f89b.system.entry.js} +1 -1
  305. package/dist/ionic/{p-a19f5ae1.entry.js → p-cb9e71e0.entry.js} +1 -1
  306. package/dist/ionic/{p-5f456b3c.system.entry.js → p-cd9a7017.system.entry.js} +1 -1
  307. package/dist/ionic/{p-20f7a91e.system.entry.js → p-cde3ac34.system.entry.js} +1 -1
  308. package/dist/ionic/{p-4b2d5b9c.js → p-ceceac26.js} +1 -1
  309. package/dist/ionic/{p-89b5aff2.entry.js → p-d39ab63d.entry.js} +1 -1
  310. package/dist/ionic/{p-55d5cd00.system.js → p-d4cadd34.system.js} +1 -1
  311. package/dist/ionic/{p-c3d041af.entry.js → p-db30f71b.entry.js} +1 -1
  312. package/dist/ionic/p-dbcba5a2.js +4 -0
  313. package/dist/ionic/{p-ea8fbf09.entry.js → p-dcb5711d.entry.js} +1 -1
  314. package/dist/ionic/{p-341b4519.js → p-de55ec45.js} +1 -1
  315. package/dist/ionic/{p-001010b6.system.js → p-df504a37.system.js} +1 -1
  316. package/dist/ionic/{p-84879f61.system.entry.js → p-e04b9647.system.entry.js} +1 -1
  317. package/dist/ionic/{p-dd60faa5.system.entry.js → p-e81bf09e.system.entry.js} +1 -1
  318. package/dist/ionic/p-e9f9388e.system.js +4 -0
  319. package/dist/ionic/{p-1f6cdf2c.system.entry.js → p-ea25b4c8.system.entry.js} +1 -1
  320. package/dist/ionic/{p-8a671f16.entry.js → p-eb07b88f.entry.js} +1 -1
  321. package/dist/ionic/p-ed7a529f.js +5 -0
  322. package/dist/ionic/p-edcada2b.system.entry.js +4 -0
  323. package/dist/ionic/{p-7c32fb95.system.entry.js → p-f0194418.system.entry.js} +1 -1
  324. package/dist/ionic/{p-ef441122.entry.js → p-f460c7ae.entry.js} +1 -1
  325. package/dist/ionic/{p-680f96e8.system.entry.js → p-f53d074d.system.entry.js} +1 -1
  326. package/dist/ionic/{p-d74ca358.entry.js → p-f840d817.entry.js} +1 -1
  327. package/dist/ionic/{p-044ad008.system.entry.js → p-f8c96502.system.entry.js} +1 -1
  328. package/dist/ionic/{p-0fd295ef.system.entry.js → p-fb9f8495.system.entry.js} +1 -1
  329. package/dist/types/components/action-sheet/action-sheet.d.ts +4 -0
  330. package/dist/types/components/alert/alert.d.ts +4 -0
  331. package/dist/types/components/loading/loading.d.ts +4 -0
  332. package/dist/types/components/modal/modal.d.ts +4 -0
  333. package/dist/types/components/picker/picker.d.ts +4 -0
  334. package/dist/types/components/popover/popover.d.ts +4 -0
  335. package/dist/types/components/toast/toast.d.ts +4 -0
  336. package/dist/types/components.d.ts +7 -7
  337. package/hydrate/index.d.ts +1 -1
  338. package/hydrate/index.js +222 -44
  339. package/package.json +6 -6
  340. package/dist/esm-es5/app-globals-47226a12.js +0 -4
  341. package/dist/esm-es5/md.transition-28a9a26b.js +0 -4
  342. package/dist/esm-es5/overlays-fad5fe01.js +0 -4
  343. package/dist/ionic/p-0b955124.system.js +0 -4
  344. package/dist/ionic/p-1375f21f.js +0 -4
  345. package/dist/ionic/p-41fde260.entry.js +0 -4
  346. package/dist/ionic/p-52e02877.entry.js +0 -4
  347. package/dist/ionic/p-62067818.system.entry.js +0 -4
  348. package/dist/ionic/p-6b02edd6.js +0 -4
  349. package/dist/ionic/p-86670b91.system.js +0 -4
  350. package/dist/ionic/p-8f1ce253.js +0 -4
  351. package/dist/ionic/p-b1f0c48e.system.entry.js +0 -4
  352. package/dist/ionic/p-b4a95b80.system.entry.js +0 -4
  353. package/dist/ionic/p-c5c3710c.js +0 -4
  354. package/dist/ionic/p-e1271366.js +0 -5
@@ -5,13 +5,13 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-5a471146.js');
9
- const appGlobals = require('./app-globals-5a17c5e1.js');
10
- require('./ionic-global-7358c23e.js');
8
+ const index = require('./index-0ffe376d.js');
9
+ const appGlobals = require('./app-globals-92ad1b3d.js');
10
+ require('./ionic-global-59a10130.js');
11
11
 
12
- const defineCustomElements = (win, options) => {
12
+ const defineCustomElements = async (win, options) => {
13
13
  if (typeof window === 'undefined') return undefined;
14
- appGlobals.globalScripts();
14
+ await appGlobals.globalScripts();
15
15
  return index.bootstrapLazy(JSON.parse("[[\"ion-menu_3.cjs\",[[33,\"ion-menu-button\",{\"color\":[513],\"disabled\":[4],\"menu\":[1],\"autoHide\":[4,\"auto-hide\"],\"type\":[1],\"visible\":[32]},[[16,\"ionMenuChange\",\"visibilityChanged\"],[16,\"ionSplitPaneVisible\",\"visibilityChanged\"]]],[33,\"ion-menu\",{\"contentId\":[513,\"content-id\"],\"menuId\":[513,\"menu-id\"],\"type\":[1025],\"disabled\":[1028],\"side\":[513],\"swipeGesture\":[4,\"swipe-gesture\"],\"maxEdgeStart\":[2,\"max-edge-start\"],\"isPaneVisible\":[32],\"isEndSide\":[32],\"isOpen\":[64],\"isActive\":[64],\"open\":[64],\"close\":[64],\"toggle\":[64],\"setOpen\":[64]},[[16,\"ionSplitPaneVisible\",\"onSplitPaneChanged\"],[2,\"click\",\"onBackdropClick\"]],{\"type\":[\"typeChanged\"],\"disabled\":[\"disabledChanged\"],\"side\":[\"sideChanged\"],\"swipeGesture\":[\"swipeGestureChanged\"]}],[1,\"ion-menu-toggle\",{\"menu\":[1],\"autoHide\":[4,\"auto-hide\"],\"visible\":[32]},[[16,\"ionMenuChange\",\"visibilityChanged\"],[16,\"ionSplitPaneVisible\",\"visibilityChanged\"]]]]],[\"ion-fab_3.cjs\",[[33,\"ion-fab-button\",{\"color\":[513],\"activated\":[4],\"disabled\":[4],\"download\":[1],\"href\":[1],\"rel\":[1],\"routerDirection\":[1,\"router-direction\"],\"routerAnimation\":[16],\"target\":[1],\"show\":[4],\"translucent\":[4],\"type\":[1],\"size\":[1],\"closeIcon\":[1,\"close-icon\"]}],[1,\"ion-fab\",{\"horizontal\":[1],\"vertical\":[1],\"edge\":[4],\"activated\":[1028],\"close\":[64],\"toggle\":[64]},null,{\"activated\":[\"activatedChanged\"]}],[1,\"ion-fab-list\",{\"activated\":[4],\"side\":[1]},null,{\"activated\":[\"activatedChanged\"]}]]],[\"ion-refresher_2.cjs\",[[0,\"ion-refresher-content\",{\"pullingIcon\":[1025,\"pulling-icon\"],\"pullingText\":[1,\"pulling-text\"],\"refreshingSpinner\":[1025,\"refreshing-spinner\"],\"refreshingText\":[1,\"refreshing-text\"]}],[32,\"ion-refresher\",{\"pullMin\":[2,\"pull-min\"],\"pullMax\":[2,\"pull-max\"],\"closeDuration\":[1,\"close-duration\"],\"snapbackDuration\":[1,\"snapback-duration\"],\"pullFactor\":[2,\"pull-factor\"],\"disabled\":[4],\"nativeRefresher\":[32],\"state\":[32],\"complete\":[64],\"cancel\":[64],\"getProgress\":[64]},null,{\"disabled\":[\"disabledChanged\"]}]]],[\"ion-back-button.cjs\",[[33,\"ion-back-button\",{\"color\":[513],\"defaultHref\":[1025,\"default-href\"],\"disabled\":[516],\"icon\":[1],\"text\":[1],\"type\":[1],\"routerAnimation\":[16]}]]],[\"ion-toast.cjs\",[[33,\"ion-toast\",{\"overlayIndex\":[2,\"overlay-index\"],\"delegate\":[16],\"hasController\":[4,\"has-controller\"],\"color\":[513],\"enterAnimation\":[16],\"leaveAnimation\":[16],\"cssClass\":[1,\"css-class\"],\"duration\":[2],\"header\":[1],\"layout\":[1],\"message\":[1],\"keyboardClose\":[4,\"keyboard-close\"],\"position\":[1],\"positionAnchor\":[1,\"position-anchor\"],\"buttons\":[16],\"translucent\":[4],\"animated\":[4],\"icon\":[1],\"htmlAttributes\":[16],\"swipeGesture\":[1,\"swipe-gesture\"],\"isOpen\":[4,\"is-open\"],\"trigger\":[1],\"revealContentToScreenReader\":[32],\"present\":[64],\"dismiss\":[64],\"onDidDismiss\":[64],\"onWillDismiss\":[64]},null,{\"swipeGesture\":[\"swipeGestureChanged\"],\"isOpen\":[\"onIsOpenChange\"],\"trigger\":[\"triggerChanged\"]}]]],[\"ion-card_5.cjs\",[[33,\"ion-card\",{\"color\":[513],\"button\":[4],\"type\":[1],\"disabled\":[4],\"download\":[1],\"href\":[1],\"rel\":[1],\"routerDirection\":[1,\"router-direction\"],\"routerAnimation\":[16],\"target\":[1]}],[32,\"ion-card-content\"],[33,\"ion-card-header\",{\"color\":[513],\"translucent\":[4]}],[33,\"ion-card-subtitle\",{\"color\":[513]}],[33,\"ion-card-title\",{\"color\":[513]}]]],[\"ion-item-option_3.cjs\",[[33,\"ion-item-option\",{\"color\":[513],\"disabled\":[4],\"download\":[1],\"expandable\":[4],\"href\":[1],\"rel\":[1],\"target\":[1],\"type\":[1]}],[32,\"ion-item-options\",{\"side\":[1],\"fireSwipeEvent\":[64]}],[0,\"ion-item-sliding\",{\"disabled\":[4],\"state\":[32],\"getOpenAmount\":[64],\"getSlidingRatio\":[64],\"open\":[64],\"close\":[64],\"closeOpened\":[64]},null,{\"disabled\":[\"disabledChanged\"]}]]],[\"ion-accordion_2.cjs\",[[49,\"ion-accordion\",{\"value\":[1],\"disabled\":[4],\"readonly\":[4],\"toggleIcon\":[1,\"toggle-icon\"],\"toggleIconSlot\":[1,\"toggle-icon-slot\"],\"state\":[32],\"isNext\":[32],\"isPrevious\":[32]},null,{\"value\":[\"valueChanged\"]}],[33,\"ion-accordion-group\",{\"animated\":[4],\"multiple\":[4],\"value\":[1025],\"disabled\":[4],\"readonly\":[4],\"expand\":[1],\"requestAccordionToggle\":[64],\"getAccordions\":[64]},[[0,\"keydown\",\"onKeydown\"]],{\"value\":[\"valueChanged\"],\"disabled\":[\"disabledChanged\"],\"readonly\":[\"readonlyChanged\"]}]]],[\"ion-infinite-scroll_2.cjs\",[[32,\"ion-infinite-scroll-content\",{\"loadingSpinner\":[1025,\"loading-spinner\"],\"loadingText\":[1,\"loading-text\"]}],[0,\"ion-infinite-scroll\",{\"threshold\":[1],\"disabled\":[4],\"position\":[1],\"isLoading\":[32],\"complete\":[64]},null,{\"threshold\":[\"thresholdChanged\"],\"disabled\":[\"disabledChanged\"]}]]],[\"ion-reorder_2.cjs\",[[33,\"ion-reorder\",null,[[2,\"click\",\"onClick\"]]],[0,\"ion-reorder-group\",{\"disabled\":[4],\"state\":[32],\"complete\":[64]},null,{\"disabled\":[\"disabledChanged\"]}]]],[\"ion-segment_2.cjs\",[[33,\"ion-segment-button\",{\"disabled\":[1028],\"layout\":[1],\"type\":[1],\"value\":[8],\"checked\":[32],\"setFocus\":[64]},null,{\"value\":[\"valueChanged\"]}],[33,\"ion-segment\",{\"color\":[513],\"disabled\":[4],\"scrollable\":[4],\"swipeGesture\":[4,\"swipe-gesture\"],\"value\":[1032],\"selectOnFocus\":[4,\"select-on-focus\"],\"activated\":[32]},[[0,\"keydown\",\"onKeyDown\"]],{\"color\":[\"colorChanged\"],\"swipeGesture\":[\"swipeGestureChanged\"],\"value\":[\"valueChanged\"],\"disabled\":[\"disabledChanged\"]}]]],[\"ion-tab-bar_2.cjs\",[[33,\"ion-tab-button\",{\"disabled\":[4],\"download\":[1],\"href\":[1],\"rel\":[1],\"layout\":[1025],\"selected\":[1028],\"tab\":[1],\"target\":[1]},[[8,\"ionTabBarChanged\",\"onTabBarChanged\"]]],[33,\"ion-tab-bar\",{\"color\":[513],\"selectedTab\":[1,\"selected-tab\"],\"translucent\":[4],\"keyboardVisible\":[32]},null,{\"selectedTab\":[\"selectedTabChanged\"]}]]],[\"ion-chip.cjs\",[[33,\"ion-chip\",{\"color\":[513],\"outline\":[4],\"disabled\":[4]}]]],[\"ion-datetime-button.cjs\",[[33,\"ion-datetime-button\",{\"color\":[513],\"disabled\":[516],\"datetime\":[1],\"datetimePresentation\":[32],\"dateText\":[32],\"timeText\":[32],\"datetimeActive\":[32],\"selectedButton\":[32]}]]],[\"ion-input.cjs\",[[38,\"ion-input\",{\"color\":[513],\"accept\":[1],\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autofocus\":[4],\"clearInput\":[4,\"clear-input\"],\"clearOnEdit\":[4,\"clear-on-edit\"],\"counter\":[4],\"counterFormatter\":[16],\"debounce\":[2],\"disabled\":[4],\"enterkeyhint\":[1],\"errorText\":[1,\"error-text\"],\"fill\":[1],\"inputmode\":[1],\"helperText\":[1,\"helper-text\"],\"label\":[1],\"labelPlacement\":[1,\"label-placement\"],\"legacy\":[4],\"max\":[8],\"maxlength\":[2],\"min\":[8],\"minlength\":[2],\"multiple\":[4],\"name\":[1],\"pattern\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"shape\":[1],\"spellcheck\":[4],\"step\":[1],\"size\":[2],\"type\":[1],\"value\":[1032],\"hasFocus\":[32],\"setFocus\":[64],\"getInputElement\":[64]},null,{\"debounce\":[\"debounceChanged\"],\"disabled\":[\"disabledChanged\"],\"placeholder\":[\"placeholderChanged\"],\"value\":[\"valueChanged\"]}]]],[\"ion-searchbar.cjs\",[[34,\"ion-searchbar\",{\"color\":[513],\"animated\":[4],\"autocomplete\":[1],\"autocorrect\":[1],\"cancelButtonIcon\":[1,\"cancel-button-icon\"],\"cancelButtonText\":[1,\"cancel-button-text\"],\"clearIcon\":[1,\"clear-icon\"],\"debounce\":[2],\"disabled\":[4],\"inputmode\":[1],\"enterkeyhint\":[1],\"name\":[1],\"placeholder\":[1],\"searchIcon\":[1,\"search-icon\"],\"showCancelButton\":[1,\"show-cancel-button\"],\"showClearButton\":[1,\"show-clear-button\"],\"spellcheck\":[4],\"type\":[1],\"value\":[1025],\"focused\":[32],\"noAnimate\":[32],\"setFocus\":[64],\"getInputElement\":[64]},null,{\"debounce\":[\"debounceChanged\"],\"value\":[\"valueChanged\"],\"showCancelButton\":[\"showCancelButtonChanged\"]}]]],[\"ion-toggle.cjs\",[[33,\"ion-toggle\",{\"color\":[513],\"name\":[1],\"checked\":[1028],\"disabled\":[4],\"value\":[1],\"enableOnOffLabels\":[4,\"enable-on-off-labels\"],\"labelPlacement\":[1,\"label-placement\"],\"legacy\":[4],\"justify\":[1],\"alignment\":[1],\"activated\":[32]},null,{\"disabled\":[\"disabledChanged\"]}]]],[\"ion-nav_2.cjs\",[[1,\"ion-nav\",{\"delegate\":[16],\"swipeGesture\":[1028,\"swipe-gesture\"],\"animated\":[4],\"animation\":[16],\"rootParams\":[16],\"root\":[1],\"push\":[64],\"insert\":[64],\"insertPages\":[64],\"pop\":[64],\"popTo\":[64],\"popToRoot\":[64],\"removeIndex\":[64],\"setRoot\":[64],\"setPages\":[64],\"setRouteId\":[64],\"getRouteId\":[64],\"getActive\":[64],\"getByIndex\":[64],\"canGoBack\":[64],\"getPrevious\":[64]},null,{\"swipeGesture\":[\"swipeGestureChanged\"],\"root\":[\"rootChanged\"]}],[0,\"ion-nav-link\",{\"component\":[1],\"componentProps\":[16],\"routerDirection\":[1,\"router-direction\"],\"routerAnimation\":[16]}]]],[\"ion-textarea.cjs\",[[38,\"ion-textarea\",{\"color\":[513],\"autocapitalize\":[1],\"autofocus\":[4],\"clearOnEdit\":[4,\"clear-on-edit\"],\"debounce\":[2],\"disabled\":[4],\"fill\":[1],\"inputmode\":[1],\"enterkeyhint\":[1],\"maxlength\":[2],\"minlength\":[2],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"spellcheck\":[4],\"cols\":[514],\"rows\":[2],\"wrap\":[1],\"autoGrow\":[516,\"auto-grow\"],\"value\":[1025],\"counter\":[4],\"counterFormatter\":[16],\"errorText\":[1,\"error-text\"],\"helperText\":[1,\"helper-text\"],\"label\":[1],\"labelPlacement\":[1,\"label-placement\"],\"legacy\":[4],\"shape\":[1],\"hasFocus\":[32],\"setFocus\":[64],\"getInputElement\":[64]},null,{\"debounce\":[\"debounceChanged\"],\"disabled\":[\"disabledChanged\"],\"value\":[\"valueChanged\"]}]]],[\"ion-backdrop.cjs\",[[33,\"ion-backdrop\",{\"visible\":[4],\"tappable\":[4],\"stopPropagation\":[4,\"stop-propagation\"]},[[2,\"click\",\"onMouseDown\"]]]]],[\"ion-loading.cjs\",[[34,\"ion-loading\",{\"overlayIndex\":[2,\"overlay-index\"],\"delegate\":[16],\"hasController\":[4,\"has-controller\"],\"keyboardClose\":[4,\"keyboard-close\"],\"enterAnimation\":[16],\"leaveAnimation\":[16],\"message\":[1],\"cssClass\":[1,\"css-class\"],\"duration\":[2],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"showBackdrop\":[4,\"show-backdrop\"],\"spinner\":[1025],\"translucent\":[4],\"animated\":[4],\"htmlAttributes\":[16],\"isOpen\":[4,\"is-open\"],\"trigger\":[1],\"present\":[64],\"dismiss\":[64],\"onDidDismiss\":[64],\"onWillDismiss\":[64]},null,{\"isOpen\":[\"onIsOpenChange\"],\"trigger\":[\"triggerChanged\"]}]]],[\"ion-breadcrumb_2.cjs\",[[33,\"ion-breadcrumb\",{\"collapsed\":[4],\"last\":[4],\"showCollapsedIndicator\":[4,\"show-collapsed-indicator\"],\"color\":[1],\"active\":[4],\"disabled\":[4],\"download\":[1],\"href\":[1],\"rel\":[1],\"separator\":[4],\"target\":[1],\"routerDirection\":[1,\"router-direction\"],\"routerAnimation\":[16]}],[33,\"ion-breadcrumbs\",{\"color\":[513],\"maxItems\":[2,\"max-items\"],\"itemsBeforeCollapse\":[2,\"items-before-collapse\"],\"itemsAfterCollapse\":[2,\"items-after-collapse\"],\"collapsed\":[32],\"activeChanged\":[32]},[[0,\"collapsedClick\",\"onCollapsedClick\"]],{\"maxItems\":[\"maxItemsChanged\"],\"itemsBeforeCollapse\":[\"maxItemsChanged\"],\"itemsAfterCollapse\":[\"maxItemsChanged\"]}]]],[\"ion-modal.cjs\",[[33,\"ion-modal\",{\"hasController\":[4,\"has-controller\"],\"overlayIndex\":[2,\"overlay-index\"],\"delegate\":[16],\"keyboardClose\":[4,\"keyboard-close\"],\"enterAnimation\":[16],\"leaveAnimation\":[16],\"breakpoints\":[16],\"initialBreakpoint\":[2,\"initial-breakpoint\"],\"backdropBreakpoint\":[2,\"backdrop-breakpoint\"],\"handle\":[4],\"handleBehavior\":[1,\"handle-behavior\"],\"component\":[1],\"componentProps\":[16],\"cssClass\":[1,\"css-class\"],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"showBackdrop\":[4,\"show-backdrop\"],\"animated\":[4],\"presentingElement\":[16],\"htmlAttributes\":[16],\"isOpen\":[4,\"is-open\"],\"trigger\":[1],\"keepContentsMounted\":[4,\"keep-contents-mounted\"],\"canDismiss\":[4,\"can-dismiss\"],\"presented\":[32],\"present\":[64],\"dismiss\":[64],\"onDidDismiss\":[64],\"onWillDismiss\":[64],\"setCurrentBreakpoint\":[64],\"getCurrentBreakpoint\":[64]},null,{\"isOpen\":[\"onIsOpenChange\"],\"trigger\":[\"triggerChanged\"]}]]],[\"ion-route_4.cjs\",[[0,\"ion-route\",{\"url\":[1],\"component\":[1],\"componentProps\":[16],\"beforeLeave\":[16],\"beforeEnter\":[16]},null,{\"url\":[\"onUpdate\"],\"component\":[\"onUpdate\"],\"componentProps\":[\"onComponentProps\"]}],[0,\"ion-route-redirect\",{\"from\":[1],\"to\":[1]},null,{\"from\":[\"propDidChange\"],\"to\":[\"propDidChange\"]}],[0,\"ion-router\",{\"root\":[1],\"useHash\":[4,\"use-hash\"],\"canTransition\":[64],\"push\":[64],\"back\":[64],\"printDebug\":[64],\"navChanged\":[64]},[[8,\"popstate\",\"onPopState\"],[4,\"ionBackButton\",\"onBackButton\"]]],[1,\"ion-router-link\",{\"color\":[513],\"href\":[1],\"rel\":[1],\"routerDirection\":[1,\"router-direction\"],\"routerAnimation\":[16],\"target\":[1]}]]],[\"ion-avatar_3.cjs\",[[33,\"ion-avatar\"],[33,\"ion-badge\",{\"color\":[513]}],[1,\"ion-thumbnail\"]]],[\"ion-col_3.cjs\",[[1,\"ion-col\",{\"offset\":[1],\"offsetXs\":[1,\"offset-xs\"],\"offsetSm\":[1,\"offset-sm\"],\"offsetMd\":[1,\"offset-md\"],\"offsetLg\":[1,\"offset-lg\"],\"offsetXl\":[1,\"offset-xl\"],\"pull\":[1],\"pullXs\":[1,\"pull-xs\"],\"pullSm\":[1,\"pull-sm\"],\"pullMd\":[1,\"pull-md\"],\"pullLg\":[1,\"pull-lg\"],\"pullXl\":[1,\"pull-xl\"],\"push\":[1],\"pushXs\":[1,\"push-xs\"],\"pushSm\":[1,\"push-sm\"],\"pushMd\":[1,\"push-md\"],\"pushLg\":[1,\"push-lg\"],\"pushXl\":[1,\"push-xl\"],\"size\":[1],\"sizeXs\":[1,\"size-xs\"],\"sizeSm\":[1,\"size-sm\"],\"sizeMd\":[1,\"size-md\"],\"sizeLg\":[1,\"size-lg\"],\"sizeXl\":[1,\"size-xl\"]},[[9,\"resize\",\"onResize\"]]],[1,\"ion-grid\",{\"fixed\":[4]}],[1,\"ion-row\"]]],[\"ion-tab_2.cjs\",[[1,\"ion-tab\",{\"active\":[1028],\"delegate\":[16],\"tab\":[1],\"component\":[1],\"setActive\":[64]},null,{\"active\":[\"changeActive\"]}],[1,\"ion-tabs\",{\"useRouter\":[1028,\"use-router\"],\"selectedTab\":[32],\"select\":[64],\"getTab\":[64],\"getSelected\":[64],\"setRouteId\":[64],\"getRouteId\":[64]}]]],[\"ion-img.cjs\",[[1,\"ion-img\",{\"alt\":[1],\"src\":[1],\"loadSrc\":[32],\"loadError\":[32]},null,{\"src\":[\"srcChanged\"]}]]],[\"ion-progress-bar.cjs\",[[33,\"ion-progress-bar\",{\"type\":[1],\"reversed\":[4],\"value\":[2],\"buffer\":[2],\"color\":[513]}]]],[\"ion-range.cjs\",[[33,\"ion-range\",{\"color\":[513],\"debounce\":[2],\"name\":[1],\"label\":[1],\"dualKnobs\":[4,\"dual-knobs\"],\"min\":[2],\"max\":[2],\"pin\":[4],\"pinFormatter\":[16],\"snaps\":[4],\"step\":[2],\"ticks\":[4],\"activeBarStart\":[1026,\"active-bar-start\"],\"disabled\":[4],\"value\":[1026],\"labelPlacement\":[1,\"label-placement\"],\"legacy\":[4],\"ratioA\":[32],\"ratioB\":[32],\"pressedKnob\":[32]},null,{\"debounce\":[\"debounceChanged\"],\"min\":[\"minChanged\"],\"max\":[\"maxChanged\"],\"activeBarStart\":[\"activeBarStartChanged\"],\"disabled\":[\"disabledChanged\"],\"value\":[\"valueChanged\"]}]]],[\"ion-split-pane.cjs\",[[33,\"ion-split-pane\",{\"contentId\":[513,\"content-id\"],\"disabled\":[4],\"when\":[8],\"visible\":[32]},null,{\"visible\":[\"visibleChanged\"],\"disabled\":[\"updateState\"],\"when\":[\"updateState\"]}]]],[\"ion-text.cjs\",[[1,\"ion-text\",{\"color\":[513]}]]],[\"ion-item_8.cjs\",[[33,\"ion-item-divider\",{\"color\":[513],\"sticky\":[4]}],[32,\"ion-item-group\"],[1,\"ion-skeleton-text\",{\"animated\":[4]}],[32,\"ion-list\",{\"lines\":[1],\"inset\":[4],\"closeSlidingItems\":[64]}],[33,\"ion-list-header\",{\"color\":[513],\"lines\":[1]}],[33,\"ion-item\",{\"color\":[513],\"button\":[4],\"detail\":[4],\"detailIcon\":[1,\"detail-icon\"],\"disabled\":[4],\"download\":[1],\"fill\":[1],\"shape\":[1],\"href\":[1],\"rel\":[1],\"lines\":[1],\"counter\":[4],\"routerAnimation\":[16],\"routerDirection\":[1,\"router-direction\"],\"target\":[1],\"type\":[1],\"counterFormatter\":[16],\"multipleInputs\":[32],\"focusable\":[32],\"counterString\":[32]},[[0,\"ionInput\",\"handleIonInput\"],[0,\"ionColor\",\"labelColorChanged\"],[0,\"ionStyle\",\"itemStyle\"]],{\"button\":[\"buttonChanged\"],\"counterFormatter\":[\"counterFormatterChanged\"]}],[34,\"ion-label\",{\"color\":[513],\"position\":[1],\"noAnimate\":[32]},null,{\"color\":[\"colorChanged\"],\"position\":[\"positionChanged\"]}],[33,\"ion-note\",{\"color\":[513]}]]],[\"ion-select_3.cjs\",[[33,\"ion-select\",{\"cancelText\":[1,\"cancel-text\"],\"color\":[513],\"compareWith\":[1,\"compare-with\"],\"disabled\":[4],\"fill\":[1],\"interface\":[1],\"interfaceOptions\":[8,\"interface-options\"],\"justify\":[1],\"label\":[1],\"labelPlacement\":[1,\"label-placement\"],\"legacy\":[4],\"multiple\":[4],\"name\":[1],\"okText\":[1,\"ok-text\"],\"placeholder\":[1],\"selectedText\":[1,\"selected-text\"],\"toggleIcon\":[1,\"toggle-icon\"],\"expandedIcon\":[1,\"expanded-icon\"],\"shape\":[1],\"value\":[1032],\"isExpanded\":[32],\"open\":[64]},null,{\"disabled\":[\"styleChanged\"],\"isExpanded\":[\"styleChanged\"],\"placeholder\":[\"styleChanged\"],\"value\":[\"styleChanged\"]}],[1,\"ion-select-option\",{\"disabled\":[4],\"value\":[8]}],[34,\"ion-select-popover\",{\"header\":[1],\"subHeader\":[1,\"sub-header\"],\"message\":[1],\"multiple\":[4],\"options\":[16]}]]],[\"ion-picker-internal.cjs\",[[33,\"ion-picker-internal\",{\"exitInputMode\":[64]},[[1,\"touchstart\",\"preventTouchStartPropagation\"]]]]],[\"ion-datetime_3.cjs\",[[33,\"ion-datetime\",{\"color\":[1],\"name\":[1],\"disabled\":[4],\"readonly\":[4],\"isDateEnabled\":[16],\"min\":[1025],\"max\":[1025],\"presentation\":[1],\"cancelText\":[1,\"cancel-text\"],\"doneText\":[1,\"done-text\"],\"clearText\":[1,\"clear-text\"],\"yearValues\":[8,\"year-values\"],\"monthValues\":[8,\"month-values\"],\"dayValues\":[8,\"day-values\"],\"hourValues\":[8,\"hour-values\"],\"minuteValues\":[8,\"minute-values\"],\"locale\":[1],\"firstDayOfWeek\":[2,\"first-day-of-week\"],\"titleSelectedDatesFormatter\":[16],\"multiple\":[4],\"highlightedDates\":[16],\"value\":[1025],\"showDefaultTitle\":[4,\"show-default-title\"],\"showDefaultButtons\":[4,\"show-default-buttons\"],\"showClearButton\":[4,\"show-clear-button\"],\"showDefaultTimeLabel\":[4,\"show-default-time-label\"],\"hourCycle\":[1,\"hour-cycle\"],\"size\":[1],\"preferWheel\":[4,\"prefer-wheel\"],\"showMonthAndYear\":[32],\"activeParts\":[32],\"workingParts\":[32],\"isTimePopoverOpen\":[32],\"forceRenderDate\":[32],\"confirm\":[64],\"reset\":[64],\"cancel\":[64]},null,{\"disabled\":[\"disabledChanged\"],\"min\":[\"minChanged\"],\"max\":[\"maxChanged\"],\"yearValues\":[\"yearValuesChanged\"],\"monthValues\":[\"monthValuesChanged\"],\"dayValues\":[\"dayValuesChanged\"],\"hourValues\":[\"hourValuesChanged\"],\"minuteValues\":[\"minuteValuesChanged\"],\"value\":[\"valueChanged\"]}],[34,\"ion-picker\",{\"overlayIndex\":[2,\"overlay-index\"],\"delegate\":[16],\"hasController\":[4,\"has-controller\"],\"keyboardClose\":[4,\"keyboard-close\"],\"enterAnimation\":[16],\"leaveAnimation\":[16],\"buttons\":[16],\"columns\":[16],\"cssClass\":[1,\"css-class\"],\"duration\":[2],\"showBackdrop\":[4,\"show-backdrop\"],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"animated\":[4],\"htmlAttributes\":[16],\"isOpen\":[4,\"is-open\"],\"trigger\":[1],\"presented\":[32],\"present\":[64],\"dismiss\":[64],\"onDidDismiss\":[64],\"onWillDismiss\":[64],\"getColumn\":[64]},null,{\"isOpen\":[\"onIsOpenChange\"],\"trigger\":[\"triggerChanged\"]}],[32,\"ion-picker-column\",{\"col\":[16]},null,{\"col\":[\"colChanged\"]}]]],[\"ion-radio_2.cjs\",[[33,\"ion-radio\",{\"color\":[513],\"name\":[1],\"disabled\":[4],\"value\":[8],\"labelPlacement\":[1,\"label-placement\"],\"legacy\":[4],\"justify\":[1],\"alignment\":[1],\"checked\":[32],\"buttonTabindex\":[32],\"setFocus\":[64],\"setButtonTabindex\":[64]},null,{\"value\":[\"valueChanged\"],\"checked\":[\"styleChanged\"],\"color\":[\"styleChanged\"],\"disabled\":[\"styleChanged\"]}],[0,\"ion-radio-group\",{\"allowEmptySelection\":[4,\"allow-empty-selection\"],\"compareWith\":[1,\"compare-with\"],\"name\":[1],\"value\":[1032]},[[4,\"keydown\",\"onKeydown\"]],{\"value\":[\"valueChanged\"]}]]],[\"ion-ripple-effect.cjs\",[[1,\"ion-ripple-effect\",{\"type\":[1],\"addRipple\":[64]}]]],[\"ion-button_2.cjs\",[[33,\"ion-button\",{\"color\":[513],\"buttonType\":[1025,\"button-type\"],\"disabled\":[516],\"expand\":[513],\"fill\":[1537],\"routerDirection\":[1,\"router-direction\"],\"routerAnimation\":[16],\"download\":[1],\"href\":[1],\"rel\":[1],\"shape\":[513],\"size\":[513],\"strong\":[4],\"target\":[1],\"type\":[1],\"form\":[1]},null,{\"disabled\":[\"disabledChanged\"]}],[1,\"ion-icon\",{\"mode\":[1025],\"color\":[1],\"ios\":[1],\"md\":[1],\"flipRtl\":[4,\"flip-rtl\"],\"name\":[513],\"src\":[1],\"icon\":[8],\"size\":[1],\"lazy\":[4],\"sanitize\":[4],\"svgContent\":[32],\"isVisible\":[32]},null,{\"name\":[\"loadIcon\"],\"src\":[\"loadIcon\"],\"icon\":[\"loadIcon\"],\"ios\":[\"loadIcon\"],\"md\":[\"loadIcon\"]}]]],[\"ion-action-sheet.cjs\",[[34,\"ion-action-sheet\",{\"overlayIndex\":[2,\"overlay-index\"],\"delegate\":[16],\"hasController\":[4,\"has-controller\"],\"keyboardClose\":[4,\"keyboard-close\"],\"enterAnimation\":[16],\"leaveAnimation\":[16],\"buttons\":[16],\"cssClass\":[1,\"css-class\"],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"header\":[1],\"subHeader\":[1,\"sub-header\"],\"translucent\":[4],\"animated\":[4],\"htmlAttributes\":[16],\"isOpen\":[4,\"is-open\"],\"trigger\":[1],\"present\":[64],\"dismiss\":[64],\"onDidDismiss\":[64],\"onWillDismiss\":[64]},null,{\"isOpen\":[\"onIsOpenChange\"],\"trigger\":[\"triggerChanged\"]}]]],[\"ion-alert.cjs\",[[34,\"ion-alert\",{\"overlayIndex\":[2,\"overlay-index\"],\"delegate\":[16],\"hasController\":[4,\"has-controller\"],\"keyboardClose\":[4,\"keyboard-close\"],\"enterAnimation\":[16],\"leaveAnimation\":[16],\"cssClass\":[1,\"css-class\"],\"header\":[1],\"subHeader\":[1,\"sub-header\"],\"message\":[1],\"buttons\":[16],\"inputs\":[1040],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"translucent\":[4],\"animated\":[4],\"htmlAttributes\":[16],\"isOpen\":[4,\"is-open\"],\"trigger\":[1],\"present\":[64],\"dismiss\":[64],\"onDidDismiss\":[64],\"onWillDismiss\":[64]},[[4,\"keydown\",\"onKeydown\"]],{\"isOpen\":[\"onIsOpenChange\"],\"trigger\":[\"triggerChanged\"],\"buttons\":[\"buttonsChanged\"],\"inputs\":[\"inputsChanged\"]}]]],[\"ion-app_8.cjs\",[[0,\"ion-app\",{\"setFocus\":[64]}],[1,\"ion-content\",{\"color\":[513],\"fullscreen\":[4],\"forceOverscroll\":[1028,\"force-overscroll\"],\"scrollX\":[4,\"scroll-x\"],\"scrollY\":[4,\"scroll-y\"],\"scrollEvents\":[4,\"scroll-events\"],\"getScrollElement\":[64],\"getBackgroundElement\":[64],\"scrollToTop\":[64],\"scrollToBottom\":[64],\"scrollByPoint\":[64],\"scrollToPoint\":[64]},[[9,\"resize\",\"onResize\"]]],[36,\"ion-footer\",{\"collapse\":[1],\"translucent\":[4],\"keyboardVisible\":[32]}],[36,\"ion-header\",{\"collapse\":[1],\"translucent\":[4]}],[1,\"ion-router-outlet\",{\"mode\":[1025],\"delegate\":[16],\"animated\":[4],\"animation\":[16],\"swipeHandler\":[16],\"commit\":[64],\"setRouteId\":[64],\"getRouteId\":[64]},null,{\"swipeHandler\":[\"swipeHandlerChanged\"]}],[33,\"ion-title\",{\"color\":[513],\"size\":[1]},null,{\"size\":[\"sizeChanged\"]}],[33,\"ion-toolbar\",{\"color\":[513]},[[0,\"ionStyle\",\"childrenStyle\"]]],[34,\"ion-buttons\",{\"collapse\":[4]}]]],[\"ion-picker-column-internal.cjs\",[[33,\"ion-picker-column-internal\",{\"disabled\":[4],\"items\":[16],\"value\":[1032],\"color\":[513],\"numericInput\":[4,\"numeric-input\"],\"isActive\":[32],\"scrollActiveItemIntoView\":[64],\"setValue\":[64]},null,{\"value\":[\"valueChange\"]}]]],[\"ion-popover.cjs\",[[33,\"ion-popover\",{\"hasController\":[4,\"has-controller\"],\"delegate\":[16],\"overlayIndex\":[2,\"overlay-index\"],\"enterAnimation\":[16],\"leaveAnimation\":[16],\"component\":[1],\"componentProps\":[16],\"keyboardClose\":[4,\"keyboard-close\"],\"cssClass\":[1,\"css-class\"],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"event\":[8],\"showBackdrop\":[4,\"show-backdrop\"],\"translucent\":[4],\"animated\":[4],\"htmlAttributes\":[16],\"triggerAction\":[1,\"trigger-action\"],\"trigger\":[1],\"size\":[1],\"dismissOnSelect\":[4,\"dismiss-on-select\"],\"reference\":[1],\"side\":[1],\"alignment\":[1025],\"arrow\":[4],\"isOpen\":[4,\"is-open\"],\"keyboardEvents\":[4,\"keyboard-events\"],\"keepContentsMounted\":[4,\"keep-contents-mounted\"],\"presented\":[32],\"presentFromTrigger\":[64],\"present\":[64],\"dismiss\":[64],\"getParentPopover\":[64],\"onDidDismiss\":[64],\"onWillDismiss\":[64]},null,{\"trigger\":[\"onTriggerChange\"],\"triggerAction\":[\"onTriggerChange\"],\"isOpen\":[\"onIsOpenChange\"]}]]],[\"ion-checkbox.cjs\",[[33,\"ion-checkbox\",{\"color\":[513],\"name\":[1],\"checked\":[1028],\"indeterminate\":[1028],\"disabled\":[4],\"value\":[8],\"labelPlacement\":[1,\"label-placement\"],\"justify\":[1],\"alignment\":[1],\"legacy\":[4]},null,{\"checked\":[\"styleChanged\"],\"disabled\":[\"styleChanged\"]}]]],[\"ion-spinner.cjs\",[[1,\"ion-spinner\",{\"color\":[513],\"duration\":[2],\"name\":[1],\"paused\":[4]}]]]]"), options);
16
16
  };
17
17
 
@@ -4,10 +4,10 @@
4
4
  'use strict';
5
5
 
6
6
  const animation = require('./animation-fdab9de5.js');
7
- const index = require('./index-84351d21.js');
7
+ const index = require('./index-c3580a90.js');
8
8
  require('./index-c8d52405.js');
9
9
  require('./helpers-2e1028fa.js');
10
- require('./index-5a471146.js');
10
+ require('./index-0ffe376d.js');
11
11
 
12
12
  const mdTransitionAnimation = (_, opts) => {
13
13
  var _a, _b, _c;
@@ -4,8 +4,8 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const hardwareBackButton = require('./hardware-back-button-d23873bb.js');
8
- const ionicGlobal = require('./ionic-global-7358c23e.js');
7
+ const hardwareBackButton = require('./hardware-back-button-2696acaf.js');
8
+ const ionicGlobal = require('./ionic-global-59a10130.js');
9
9
  const frameworkDelegate = require('./framework-delegate-a3e6d060.js');
10
10
  const helpers = require('./helpers-2e1028fa.js');
11
11
  const index$1 = require('./index-5915f9b3.js');
@@ -410,6 +410,15 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
410
410
  return;
411
411
  }
412
412
  setRootAriaHidden(true);
413
+ /**
414
+ * Hide all other overlays from screen readers so only this one
415
+ * can be read. Note that presenting an overlay always makes
416
+ * it the topmost one.
417
+ */
418
+ if (index.doc !== undefined) {
419
+ const presentedOverlays = getPresentedOverlays(index.doc);
420
+ presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
421
+ }
413
422
  overlay.presented = true;
414
423
  overlay.willPresent.emit();
415
424
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -432,7 +441,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
432
441
  * from returning focus as a result.
433
442
  */
434
443
  if (overlay.el.tagName !== 'ION-TOAST') {
435
- focusPreviousElementOnDismissIfNeeded(overlay.el);
444
+ restoreElementFocus(overlay.el);
436
445
  }
437
446
  /**
438
447
  * If the focused element is already
@@ -443,6 +452,14 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
443
452
  if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
444
453
  overlay.el.focus();
445
454
  }
455
+ /**
456
+ * If this overlay was previously dismissed without being
457
+ * the topmost one (such as by manually calling dismiss()),
458
+ * it would still have aria-hidden on being presented again.
459
+ * Removing it here ensures the overlay is visible to screen
460
+ * readers.
461
+ */
462
+ overlay.el.removeAttribute('aria-hidden');
446
463
  };
447
464
  /**
448
465
  * When an overlay component is dismissed,
@@ -454,7 +471,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
454
471
  * to where they were before they
455
472
  * opened the overlay.
456
473
  */
457
- const focusPreviousElementOnDismissIfNeeded = async (overlayEl) => {
474
+ const restoreElementFocus = async (overlayEl) => {
458
475
  let previousElement = document.activeElement;
459
476
  if (!previousElement) {
460
477
  return;
@@ -466,18 +483,35 @@ const focusPreviousElementOnDismissIfNeeded = async (overlayEl) => {
466
483
  }
467
484
  await overlayEl.onDidDismiss();
468
485
  /**
469
- * If the user has already removed focus
470
- * from the overlay (For example, focusing
471
- * a text box after tapping a button in an
472
- * action sheet) then don't restore focus
473
- * to previous element
486
+ * After onDidDismiss, the overlay loses focus
487
+ * because it is removed from the document
488
+ *
489
+ * > An element will also lose focus [...]
490
+ * > if the element is removed from the document)
491
+ *
492
+ * https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event
493
+ *
494
+ * Additionally, `document.activeElement` returns:
495
+ *
496
+ * > The Element which currently has focus,
497
+ * > `<body>` or null if there is
498
+ * > no focused element.
499
+ *
500
+ * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement#value
501
+ *
502
+ * However, if the user has already focused
503
+ * an element sometime between onWillDismiss
504
+ * and onDidDismiss (for example, focusing a
505
+ * text box after tapping a button in an
506
+ * action sheet) then don't restore focus to
507
+ * previous element
474
508
  */
475
509
  if (document.activeElement === null || document.activeElement === document.body) {
476
510
  previousElement.focus();
477
511
  }
478
512
  };
479
513
  const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
480
- var _a, _b;
514
+ var _a, _b, _c;
481
515
  if (!overlay.presented) {
482
516
  return false;
483
517
  }
@@ -504,6 +538,10 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
504
538
  }
505
539
  overlay.didDismiss.emit({ data, role });
506
540
  (_b = overlay.didDismissShorthand) === null || _b === void 0 ? void 0 : _b.emit({ data, role });
541
+ // Get a reference to all animations currently assigned to this overlay
542
+ // Then tear them down to return the overlay to its initial visual state
543
+ const animations = activeAnimations.get(overlay) || [];
544
+ animations.forEach((ani) => ani.destroy());
507
545
  activeAnimations.delete(overlay);
508
546
  /**
509
547
  * Make overlay hidden again in case it is being reused.
@@ -524,6 +562,13 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
524
562
  console.error(err);
525
563
  }
526
564
  overlay.el.remove();
565
+ /**
566
+ * If there are other overlays presented, unhide the new
567
+ * topmost one from screen readers.
568
+ */
569
+ if (index.doc !== undefined) {
570
+ (_c = getPresentedOverlay(index.doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
571
+ }
527
572
  return true;
528
573
  };
529
574
  const getAppRoot = (doc) => {
@@ -724,7 +769,6 @@ exports.BACKDROP = BACKDROP;
724
769
  exports.GESTURE = GESTURE;
725
770
  exports.OVERLAY_GESTURE_PRIORITY = OVERLAY_GESTURE_PRIORITY;
726
771
  exports.actionSheetController = actionSheetController;
727
- exports.activeAnimations = activeAnimations;
728
772
  exports.alertController = alertController;
729
773
  exports.createDelegateController = createDelegateController;
730
774
  exports.createTriggerController = createTriggerController;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-5a471146.js');
6
+ const index = require('./index-0ffe376d.js');
7
7
  const index$1 = require('./index-53d162b2.js');
8
8
  const helpers = require('./helpers-2e1028fa.js');
9
9
  require('./index-5915f9b3.js');
@@ -94,7 +94,7 @@
94
94
  ],
95
95
  "compiler": {
96
96
  "name": "@stencil/core",
97
- "version": "4.12.0",
97
+ "version": "4.12.2",
98
98
  "typescriptVersion": "5.3.3"
99
99
  },
100
100
  "collections": [
@@ -318,7 +318,19 @@
318
318
  -webkit-margin-end: auto;
319
319
  margin-inline-end: auto;
320
320
  margin-top: var(--ion-safe-area-top, 0);
321
- margin-bottom: var(--ion-safe-area-bottom, 0);
321
+ /**
322
+ * Bottom safe area is applied as padding so that it impacts the bounding box.
323
+ * When the action sheet is shown/hidden, this element is transformed by translating
324
+ * 100% of its height. This translation needs to include the bottom safe area
325
+ * otherwise part of the action sheet will still be visible at the end of
326
+ * the show transition.
327
+ *
328
+ * If this code is changed, reviewers should verify that the action
329
+ * sheet still translates out of the viewport completely when the bottom
330
+ * safe area is a positive value.
331
+ */
332
+ padding-bottom: var(--ion-safe-area-bottom, 0);
333
+ box-sizing: content-box;
322
334
  }
323
335
 
324
336
  .action-sheet-container {
@@ -79,6 +79,10 @@ export class ActionSheet {
79
79
  * This can be useful in a button handler for determining which button was
80
80
  * clicked to dismiss the action sheet.
81
81
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
82
+ *
83
+ * This is a no-op if the overlay has not been presented yet. If you want
84
+ * to remove an overlay from the DOM that was never presented, use the
85
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
82
86
  */
83
87
  async dismiss(data, role) {
84
88
  const unlock = await this.lockController.lock();
@@ -187,12 +191,12 @@ export class ActionSheet {
187
191
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
188
192
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
189
193
  const headerID = `action-sheet-${overlayIndex}-header`;
190
- return (h(Host, Object.assign({ key: '98851ef73ef85bb1e364111f090480102929a197', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
194
+ return (h(Host, Object.assign({ key: 'cd141d12d7d86d3402fd220c4afb61cdbf064c04', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
191
195
  zIndex: `${20000 + this.overlayIndex}`,
192
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'e2520342ca16aae4dac0bd7bff59b2150aeb2171', tappable: this.backdropDismiss }), h("div", { key: 'c95f2ec4edde1dc3a8860e68b4a86b82f6797aee', tabindex: "0" }), h("div", { key: '7af9edad368e308508801c8ef2225928ced63159', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: 'd1d92b4d1814d34eb7d8134ff77ee260ca521a6d', class: "action-sheet-container" }, h("div", { key: 'cc774b45a9992e95bfee788cb484d99364b76d22', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (h("div", { id: headerID, class: {
196
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'b6a051e2cf5e101edbf59c8a40a04d8f7107fb3c', tappable: this.backdropDismiss }), h("div", { key: '5bfa2b37a417aaff3776f06d92a8544dfcbf714f', tabindex: "0" }), h("div", { key: '77d5a217803fd7be8f8dbedcd0ef5e59f0fd9800', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '3901d56215f05cdab074e2ec321391281a165097', class: "action-sheet-container" }, h("div", { key: '275f5c7981b2ee44fb632b3d137c7209cbfcf45c', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (h("div", { id: headerID, class: {
193
197
  'action-sheet-title': true,
194
198
  'action-sheet-has-sub-title': this.subHeader !== undefined,
195
- } }, header, this.subHeader && h("div", { class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (h("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass(b), onClick: () => this.buttonClick(b) }), h("span", { class: "action-sheet-button-inner" }, b.icon && h("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && h("ion-ripple-effect", null))))), cancelButton && (h("div", { class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({}, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", null)))))), h("div", { key: '9a013adda7dec101cf0c90feb02f5b7f5582a0b3', tabindex: "0" })));
199
+ } }, header, this.subHeader && h("div", { class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (h("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass(b), onClick: () => this.buttonClick(b) }), h("span", { class: "action-sheet-button-inner" }, b.icon && h("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && h("ion-ripple-effect", null))))), cancelButton && (h("div", { class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({}, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", null)))))), h("div", { key: '4285893438675be9b40838a93c2ff382a1074cd3', tabindex: "0" })));
196
200
  }
197
201
  static get is() { return "ion-action-sheet"; }
198
202
  static get encapsulation() { return "scoped"; }
@@ -690,7 +694,7 @@ export class ActionSheet {
690
694
  }, {
691
695
  "name": "role",
692
696
  "type": "string | undefined",
693
- "docs": "The role of the element that is dismissing the action sheet.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the action sheet.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
697
+ "docs": "The role of the element that is dismissing the action sheet.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the action sheet.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
694
698
  }],
695
699
  "references": {
696
700
  "Promise": {
@@ -707,7 +711,7 @@ export class ActionSheet {
707
711
  "text": "data Any data to emit in the dismiss events."
708
712
  }, {
709
713
  "name": "param",
710
- "text": "role The role of the element that is dismissing the action sheet.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the action sheet.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
714
+ "text": "role The role of the element that is dismissing the action sheet.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the action sheet.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
711
715
  }]
712
716
  }
713
717
  },
@@ -220,6 +220,10 @@ export class Alert {
220
220
  * This can be useful in a button handler for determining which button was
221
221
  * clicked to dismiss the alert.
222
222
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
223
+ *
224
+ * This is a no-op if the overlay has not been presented yet. If you want
225
+ * to remove an overlay from the DOM that was never presented, use the
226
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
223
227
  */
224
228
  async dismiss(data, role) {
225
229
  const unlock = await this.lockController.lock();
@@ -387,9 +391,9 @@ export class Alert {
387
391
  * If neither is defined, don't set aria-labelledby.
388
392
  */
389
393
  const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
390
- return (h(Host, Object.assign({ key: '8327e1aef6c404c2021d43aaa542d86e839817f5', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
394
+ return (h(Host, Object.assign({ key: '4b7f7880dc5f39aa9b61981af0a821ac0350af7f', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
391
395
  zIndex: `${20000 + overlayIndex}`,
392
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '814a4e1b4f7560026b089b762c68401b6277355e', tappable: this.backdropDismiss }), h("div", { key: 'b31ce08019e7223a098d18cb857f72eddc245e98', tabindex: "0" }), h("div", { key: '77efa4b9f7062f55ba0998a09a24550ec0b9b4f5', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '648e0768610ee57f9e5c84b8955da497ec9b0b82', class: "alert-head" }, header && (h("h2", { id: hdrId, class: "alert-title" }, header)), subHeader && (h("h2", { id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'f3d752cce77ca021dc959611ad5078b94b7f3cec', tabindex: "0" })));
396
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '961a2684013ac61d59882914fd8d759ddb542fe7', tappable: this.backdropDismiss }), h("div", { key: '2ec08c3719b3cd8a4cae09d2c6ac778ffad5f940', tabindex: "0" }), h("div", { key: 'ee543683d20693c9a9497aca4d41f032aa580c9c', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '55015102b67d080249a8859fc8788f3a82d5ead9', class: "alert-head" }, header && (h("h2", { id: hdrId, class: "alert-title" }, header)), subHeader && (h("h2", { id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'df7bcfb0cb41965f169de05edd631a050d5ce648', tabindex: "0" })));
393
397
  }
394
398
  static get is() { return "ion-alert"; }
395
399
  static get encapsulation() { return "scoped"; }
@@ -932,7 +936,7 @@ export class Alert {
932
936
  }, {
933
937
  "name": "role",
934
938
  "type": "string | undefined",
935
- "docs": "The role of the element that is dismissing the alert.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the alert.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
939
+ "docs": "The role of the element that is dismissing the alert.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the alert.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
936
940
  }],
937
941
  "references": {
938
942
  "Promise": {
@@ -949,7 +953,7 @@ export class Alert {
949
953
  "text": "data Any data to emit in the dismiss events."
950
954
  }, {
951
955
  "name": "param",
952
- "text": "role The role of the element that is dismissing the alert.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the alert.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
956
+ "text": "role The role of the element that is dismissing the alert.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the alert.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
953
957
  }]
954
958
  }
955
959
  },
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Build, Host, forceUpdate, h } from "@stencil/core";
4
+ import { Host, forceUpdate, h } from "@stencil/core";
5
5
  import { inheritAttributes, raf } from "../../utils/helpers";
6
6
  import { printIonError, printIonWarning } from "../../utils/logging/index";
7
7
  import { createColorClasses, hostContext, openURL } from "../../utils/theme";
@@ -199,15 +199,6 @@ export class Item {
199
199
  }
200
200
  }
201
201
  getFirstInteractive() {
202
- if (Build.isTesting) {
203
- /**
204
- * Pseudo selectors can't be tested in unit tests.
205
- * It will cause an error when running the tests.
206
- *
207
- * TODO: FW-5205 - Remove the build conditional when this is fixed in Stencil
208
- */
209
- return undefined;
210
- }
211
202
  const controls = this.el.querySelectorAll('ion-toggle:not([disabled]), ion-checkbox:not([disabled]), ion-radio:not([disabled]), ion-select:not([disabled])');
212
203
  return controls[0];
213
204
  }
@@ -264,7 +255,7 @@ export class Item {
264
255
  const ariaDisabled = disabled || childStyles['item-interactive-disabled'] ? 'true' : null;
265
256
  const fillValue = fill || 'none';
266
257
  const inList = hostContext('ion-list', this.el) && !hostContext('ion-radio-group', this.el);
267
- return (h(Host, { key: '3930f26d52eda4034d42313cc0a0b6d04fcd0207', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
258
+ return (h(Host, { key: 'd614b53347383fd36db2044ef605060a496cf0e3', "aria-disabled": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {
268
259
  item: true,
269
260
  [mode]: true,
270
261
  'item-lines-default': lines === undefined,
@@ -278,7 +269,7 @@ export class Item {
278
269
  'ion-activatable': canActivate,
279
270
  'ion-focusable': this.focusable,
280
271
  'item-rtl': document.dir === 'rtl',
281
- })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: 'df7163aa8dd09e0d673be0559fe662d4ca484fc6' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: '7aedeb350eb4a696a653a8dea512547c8cae3642', name: "start" }), h("div", { key: '7c857fc6bfc7930633736181429856cf3f63e515', class: "item-inner" }, h("div", { key: '42a8d34d3d68c281afe53dcefc3a673f066b6fde', class: "input-wrapper" }, h("slot", { key: 'e973256fdebc582072aa5767dcb3b48a34ab4afa' })), h("slot", { key: 'b4407dbe381f11177f369d4d5baa638e8cfb624d', name: "end" }), showDetail && (h("ion-icon", { icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward })), h("div", { key: '6d769eeb4443c34005a78b732ee62497997083be', class: "item-inner-highlight" })), canActivate && mode === 'md' && h("ion-ripple-effect", null), h("div", { key: '02481875de55eb6d58e66ad495ecefd46480808a', class: "item-highlight" })), h("div", { key: '1f73891b7f670253784f5b146fc01955ea2190fe', class: "item-bottom" }, h("slot", { key: '23b3d4c1e1f712f18340155dda8623c88d025c40', name: "error" }), h("slot", { key: 'fac325a8a6ce0280b6abac92b2b2352de218a50f', name: "helper" }), counterString && h("ion-note", { class: "item-counter" }, counterString))));
272
+ })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: '1f9e61b627fc94d646cccbfd8be24df745080c2c' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: '6690445e14e6f0614beae23b6cc2a2b9cd668934', name: "start" }), h("div", { key: 'cc36ee6ad3f3c04b7fe907f7c63e81fa43938b28', class: "item-inner" }, h("div", { key: '502eff7a3d237fa5658e505b3d2f74cdfdef16af', class: "input-wrapper" }, h("slot", { key: '750d23dcab6844acb92c9636f21dff04c91d2b22' })), h("slot", { key: 'ed16f6bce4ea5a76a181597b879f9bb55c909612', name: "end" }), showDetail && (h("ion-icon", { icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward })), h("div", { key: '29f89d1996f99a0d600c710e1b4bcd6975db7caf', class: "item-inner-highlight" })), canActivate && mode === 'md' && h("ion-ripple-effect", null), h("div", { key: '111ccb2ab79b9975d6f66714866ff4cc20a7b4da', class: "item-highlight" })), h("div", { key: 'd2ea55be7686ffdd95f0b53d7e8e386983cd0c8e', class: "item-bottom" }, h("slot", { key: '20adbe497dd62b23a169a5194947513a32f5c3a0', name: "error" }), h("slot", { key: '52587f1f2b9056e76ad9be8ccd7754cbeaefdc71', name: "helper" }), counterString && h("ion-note", { class: "item-counter" }, counterString))));
282
273
  }
283
274
  static get is() { return "ion-item"; }
284
275
  static get encapsulation() { return "shadow"; }
@@ -113,6 +113,10 @@ export class Loading {
113
113
  * This can be useful in a button handler for determining which button was
114
114
  * clicked to dismiss the loading.
115
115
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
116
+ *
117
+ * This is a no-op if the overlay has not been presented yet. If you want
118
+ * to remove an overlay from the DOM that was never presented, use the
119
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
116
120
  */
117
121
  async dismiss(data, role) {
118
122
  const unlock = await this.lockController.lock();
@@ -154,9 +158,9 @@ export class Loading {
154
158
  * Otherwise, don't set aria-labelledby.
155
159
  */
156
160
  const ariaLabelledBy = message !== undefined ? msgId : null;
157
- return (h(Host, Object.assign({ key: '81295894ca6e047124918420f2483c092ebf91b9', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
161
+ return (h(Host, Object.assign({ key: '95123f54ba1db5e59563d79db075315b43ed20f7', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
158
162
  zIndex: `${40000 + this.overlayIndex}`,
159
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'db9fbd946cf3eb03c3a70f2e71c49ab233df1879', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'd27b03de0b450c0668d4b4077d76bc5b283f03cf', tabindex: "0" }), h("div", { key: '7112719ddd487365c1e36fc4dec32aac888dbb52', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '5715dd7dae209ae58e5557cb60f3ae514752b822', tabindex: "0" })));
163
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'e113bf123eaad38f2dafce8ea5d2ebef409d0c0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '1268c9480854383c7883a79d597350540ade93c2', tabindex: "0" }), h("div", { key: 'e86fc71504ebd578117dea2232d9740a087d1249', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '3b91e2492e06aa65ebe77ed2b6ffb9d2f84bdd9c', tabindex: "0" })));
160
164
  }
161
165
  static get is() { return "ion-loading"; }
162
166
  static get encapsulation() { return "scoped"; }
@@ -680,7 +684,7 @@ export class Loading {
680
684
  }, {
681
685
  "name": "role",
682
686
  "type": "string | undefined",
683
- "docs": "The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
687
+ "docs": "The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
684
688
  }],
685
689
  "references": {
686
690
  "Promise": {
@@ -697,7 +701,7 @@ export class Loading {
697
701
  "text": "data Any data to emit in the dismiss events."
698
702
  }, {
699
703
  "name": "param",
700
- "text": "role The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
704
+ "text": "role The role of the element that is dismissing the loading.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the loading.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
701
705
  }]
702
706
  }
703
707
  },
@@ -8,7 +8,7 @@ import { raf, inheritAttributes, hasLazyBuild } from "../../utils/helpers";
8
8
  import { createLockController } from "../../utils/lock-controller";
9
9
  import { printIonWarning } from "../../utils/logging/index";
10
10
  import { Style as StatusBarStyle, StatusBar } from "../../utils/native/status-bar";
11
- import { GESTURE, BACKDROP, activeAnimations, dismiss, eventMethod, prepareOverlay, present, createTriggerController, setOverlayId, } from "../../utils/overlays";
11
+ import { GESTURE, BACKDROP, dismiss, eventMethod, prepareOverlay, present, createTriggerController, setOverlayId, } from "../../utils/overlays";
12
12
  import { getClassMap } from "../../utils/theme";
13
13
  import { deepReady, waitForMount } from "../../utils/transition/index";
14
14
  import { config } from "../../global/config";
@@ -396,6 +396,10 @@ export class Modal {
396
396
  *
397
397
  * @param data Any data to emit in the dismiss events.
398
398
  * @param role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.
399
+ *
400
+ * This is a no-op if the overlay has not been presented yet. If you want
401
+ * to remove an overlay from the DOM that was never presented, use the
402
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
399
403
  */
400
404
  async dismiss(data, role) {
401
405
  var _a;
@@ -432,7 +436,6 @@ export class Modal {
432
436
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
433
437
  this.keyboardOpenCallback = undefined;
434
438
  }
435
- const enteringAnimation = activeAnimations.get(this) || [];
436
439
  const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
437
440
  presentingEl: presentingElement,
438
441
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
@@ -448,7 +451,6 @@ export class Modal {
448
451
  if (this.gesture) {
449
452
  this.gesture.destroy();
450
453
  }
451
- enteringAnimation.forEach((ani) => ani.destroy());
452
454
  }
453
455
  this.currentBreakpoint = undefined;
454
456
  this.animation = undefined;
@@ -528,9 +530,9 @@ export class Modal {
528
530
  const mode = getIonMode(this);
529
531
  const isCardModal = presentingElement !== undefined && mode === 'ios';
530
532
  const isHandleCycle = handleBehavior === 'cycle';
531
- return (h(Host, Object.assign({ key: '8c163f4f59429227cab3a1cafb5612994939a629', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
533
+ return (h(Host, Object.assign({ key: '0c2c4369ab2df4ef4660addea5e927c6a0232864', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
532
534
  zIndex: `${20000 + this.overlayIndex}`,
533
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '6908bdf9462d940eff6607b626a499eedc66dc9c', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: 'ac224394e19b9e8c7dd902f2836fa25787663455',
535
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'd044383a776c2ee1703f996caedaedca47f2948f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '8d23b6a3cc9069e4d46fa0645cde9db3e6f89507',
534
536
  /*
535
537
  role and aria-modal must be used on the
536
538
  same element. They must also be set inside the
@@ -539,7 +541,7 @@ export class Modal {
539
541
  */
540
542
  role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { class: "modal-handle",
541
543
  // Prevents the handle from receiving keyboard focus when it does not cycle
542
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '9c3c5ec797b6415110a3275c6ff33277291a6e21' }))));
544
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '3fbb689e4bf5575fbb26ad1000f6ac5993f3bf8f' }))));
543
545
  }
544
546
  static get is() { return "ion-modal"; }
545
547
  static get encapsulation() { return "shadow"; }
@@ -1234,7 +1236,7 @@ export class Modal {
1234
1236
  }, {
1235
1237
  "name": "role",
1236
1238
  "type": "string | undefined",
1237
- "docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
1239
+ "docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1238
1240
  }],
1239
1241
  "references": {
1240
1242
  "Promise": {
@@ -1255,7 +1257,7 @@ export class Modal {
1255
1257
  "text": "data Any data to emit in the dismiss events."
1256
1258
  }, {
1257
1259
  "name": "param",
1258
- "text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
1260
+ "text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.\n\nThis is a no-op if the overlay has not been presented yet. If you want\nto remove an overlay from the DOM that was never presented, use the\n[remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method."
1259
1261
  }]
1260
1262
  }
1261
1263
  },
@@ -0,0 +1,36 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ config, title }) => {
7
+ test.describe(title('modal: animations'), () => {
8
+ test.beforeEach(async ({ page }) => {
9
+ await page.setContent(`
10
+ <ion-modal is-open="true" trigger="open-modal"></ion-modal>
11
+ `, config);
12
+ });
13
+ test('card modal should clean up animations on dismiss', async ({ page }, testInfo) => {
14
+ testInfo.annotations.push({
15
+ type: 'issue',
16
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28352',
17
+ });
18
+ const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss');
19
+ const modal = page.locator('ion-modal');
20
+ const initialAnimations = await modal.evaluate((el) => {
21
+ return el.shadowRoot.getAnimations();
22
+ });
23
+ // While the modal is open, it should have animations
24
+ expect(initialAnimations.length).toBeGreaterThan(0);
25
+ await modal.evaluate((el) => {
26
+ el.dismiss();
27
+ });
28
+ await ionModalDidDismiss.next();
29
+ const currentAnimations = await modal.evaluate((el) => {
30
+ return el.shadowRoot.getAnimations();
31
+ });
32
+ // Once the modal has finished closing, there should be no animations
33
+ expect(currentAnimations.length).toBe(0);
34
+ });
35
+ });
36
+ });