@ionic/core 7.7.1 → 7.7.2-dev.11707840956.16e27b4c

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 (344) hide show
  1. package/components/action-sheet.js +7 -3
  2. package/components/alert.js +6 -2
  3. package/components/ion-loading.js +6 -2
  4. package/components/ion-modal.js +7 -3
  5. package/components/ion-picker.js +6 -2
  6. package/components/ion-toast.js +6 -2
  7. package/components/label.js +2 -2
  8. package/components/overlays.js +54 -4
  9. package/components/popover.js +7 -3
  10. package/dist/cjs/{app-globals-5a17c5e1.js → app-globals-92ad1b3d.js} +1 -1
  11. package/dist/cjs/{button-active-b8c3f603.js → button-active-2d6520ec.js} +1 -1
  12. package/dist/cjs/{hardware-back-button-d23873bb.js → hardware-back-button-2696acaf.js} +2 -2
  13. package/dist/cjs/{index-5a471146.js → index-0ffe376d.js} +25 -22
  14. package/dist/cjs/{index-8c679cbf.js → index-a43f7a0f.js} +2 -2
  15. package/dist/cjs/{index-84351d21.js → index-c3580a90.js} +3 -3
  16. package/dist/cjs/index.cjs.js +8 -8
  17. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +12 -8
  19. package/dist/cjs/ion-alert.cjs.entry.js +11 -7
  20. package/dist/cjs/ion-app_8.cjs.entry.js +6 -6
  21. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  23. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -6
  32. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
  38. package/dist/cjs/ion-loading.cjs.entry.js +10 -6
  39. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  40. package/dist/cjs/ion-modal.cjs.entry.js +12 -8
  41. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  42. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  44. package/dist/cjs/ion-popover.cjs.entry.js +12 -8
  45. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  55. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-toast.cjs.entry.js +10 -6
  62. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  63. package/dist/cjs/{ionic-global-7358c23e.js → ionic-global-59a10130.js} +1 -1
  64. package/dist/cjs/ionic.cjs.js +6 -6
  65. package/dist/cjs/{ios.transition-8e40c54e.js → ios.transition-c3b11cc3.js} +2 -2
  66. package/dist/cjs/loader.cjs.js +5 -5
  67. package/dist/cjs/{md.transition-597a2479.js → md.transition-82a8c649.js} +2 -2
  68. package/dist/cjs/{overlays-330df245.js → overlays-fb7ca451.js} +56 -6
  69. package/dist/cjs/{status-tap-b0bfea34.js → status-tap-692f6d32.js} +1 -1
  70. package/dist/collection/collection-manifest.json +1 -1
  71. package/dist/collection/components/action-sheet/action-sheet.js +9 -5
  72. package/dist/collection/components/alert/alert.js +8 -4
  73. package/dist/collection/components/label/label.ios.css +0 -4
  74. package/dist/collection/components/label/label.md.css +0 -4
  75. package/dist/collection/components/loading/loading.js +8 -4
  76. package/dist/collection/components/modal/modal.js +9 -5
  77. package/dist/collection/components/picker/picker.js +8 -4
  78. package/dist/collection/components/popover/popover.ios.css +7 -0
  79. package/dist/collection/components/popover/popover.js +8 -4
  80. package/dist/collection/components/toast/test/toast.spec.js +12 -0
  81. package/dist/collection/components/toast/toast.js +8 -4
  82. package/dist/collection/utils/overlays.js +54 -4
  83. package/dist/collection/utils/test/overlays/overlays.e2e.js +33 -0
  84. package/dist/collection/utils/test/overlays/overlays.spec.js +51 -0
  85. package/dist/docs.json +23 -23
  86. package/dist/esm/{app-globals-47226a12.js → app-globals-5cf6195b.js} +1 -1
  87. package/dist/esm/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  88. package/dist/esm/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +2 -2
  89. package/dist/esm/{index-4b98143d.js → index-0b4beb69.js} +3 -3
  90. package/dist/esm/{index-48209844.js → index-47b2066d.js} +2 -2
  91. package/dist/esm/{index-73881b51.js → index-4c30cddd.js} +25 -22
  92. package/dist/esm/index.js +8 -8
  93. package/dist/esm/ion-accordion_2.entry.js +2 -2
  94. package/dist/esm/ion-action-sheet.entry.js +12 -8
  95. package/dist/esm/ion-alert.entry.js +11 -7
  96. package/dist/esm/ion-app_8.entry.js +6 -6
  97. package/dist/esm/ion-avatar_3.entry.js +2 -2
  98. package/dist/esm/ion-back-button.entry.js +2 -2
  99. package/dist/esm/ion-backdrop.entry.js +2 -2
  100. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  101. package/dist/esm/ion-button_2.entry.js +2 -2
  102. package/dist/esm/ion-card_5.entry.js +2 -2
  103. package/dist/esm/ion-checkbox.entry.js +2 -2
  104. package/dist/esm/ion-chip.entry.js +2 -2
  105. package/dist/esm/ion-col_3.entry.js +2 -2
  106. package/dist/esm/ion-datetime-button.entry.js +2 -2
  107. package/dist/esm/ion-datetime_3.entry.js +10 -6
  108. package/dist/esm/ion-fab_3.entry.js +2 -2
  109. package/dist/esm/ion-img.entry.js +2 -2
  110. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  111. package/dist/esm/ion-input.entry.js +2 -2
  112. package/dist/esm/ion-item-option_3.entry.js +2 -2
  113. package/dist/esm/ion-item_8.entry.js +4 -4
  114. package/dist/esm/ion-loading.entry.js +10 -6
  115. package/dist/esm/ion-menu_3.entry.js +5 -5
  116. package/dist/esm/ion-modal.entry.js +12 -8
  117. package/dist/esm/ion-nav_2.entry.js +3 -3
  118. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  119. package/dist/esm/ion-picker-internal.entry.js +1 -1
  120. package/dist/esm/ion-popover.entry.js +12 -8
  121. package/dist/esm/ion-progress-bar.entry.js +2 -2
  122. package/dist/esm/ion-radio_2.entry.js +2 -2
  123. package/dist/esm/ion-range.entry.js +2 -2
  124. package/dist/esm/ion-refresher_2.entry.js +2 -2
  125. package/dist/esm/ion-reorder_2.entry.js +2 -2
  126. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  127. package/dist/esm/ion-route_4.entry.js +2 -2
  128. package/dist/esm/ion-searchbar.entry.js +2 -2
  129. package/dist/esm/ion-segment_2.entry.js +2 -2
  130. package/dist/esm/ion-select_3.entry.js +4 -4
  131. package/dist/esm/ion-spinner.entry.js +2 -2
  132. package/dist/esm/ion-split-pane.entry.js +2 -2
  133. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  134. package/dist/esm/ion-tab_2.entry.js +1 -1
  135. package/dist/esm/ion-text.entry.js +2 -2
  136. package/dist/esm/ion-textarea.entry.js +2 -2
  137. package/dist/esm/ion-toast.entry.js +10 -6
  138. package/dist/esm/ion-toggle.entry.js +2 -2
  139. package/dist/esm/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  140. package/dist/esm/ionic.js +7 -7
  141. package/dist/esm/{ios.transition-7ff7381d.js → ios.transition-b76c7020.js} +2 -2
  142. package/dist/esm/loader.js +6 -6
  143. package/dist/esm/{md.transition-28a9a26b.js → md.transition-564937a7.js} +2 -2
  144. package/dist/esm/{overlays-33ae3ea0.js → overlays-04a9a43f.js} +56 -6
  145. package/dist/esm/{status-tap-2b335fb7.js → status-tap-5a95077d.js} +1 -1
  146. package/dist/esm-es5/app-globals-5cf6195b.js +4 -0
  147. package/dist/esm-es5/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  148. package/dist/esm-es5/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +1 -1
  149. package/dist/esm-es5/{index-4b98143d.js → index-0b4beb69.js} +1 -1
  150. package/dist/esm-es5/{index-48209844.js → index-47b2066d.js} +1 -1
  151. package/dist/esm-es5/{index-73881b51.js → index-4c30cddd.js} +1 -1
  152. package/dist/esm-es5/index.js +1 -1
  153. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  154. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  155. package/dist/esm-es5/ion-alert.entry.js +1 -1
  156. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  157. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  158. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  159. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  160. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  161. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  162. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  163. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  164. package/dist/esm-es5/ion-chip.entry.js +1 -1
  165. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  166. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  167. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  168. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  169. package/dist/esm-es5/ion-img.entry.js +1 -1
  170. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  171. package/dist/esm-es5/ion-input.entry.js +1 -1
  172. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  173. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  174. package/dist/esm-es5/ion-loading.entry.js +1 -1
  175. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  176. package/dist/esm-es5/ion-modal.entry.js +1 -1
  177. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  178. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  179. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  180. package/dist/esm-es5/ion-popover.entry.js +1 -1
  181. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  182. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  183. package/dist/esm-es5/ion-range.entry.js +1 -1
  184. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  185. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  186. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  187. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  188. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  189. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  190. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  191. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  192. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  193. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  195. package/dist/esm-es5/ion-text.entry.js +1 -1
  196. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  197. package/dist/esm-es5/ion-toast.entry.js +1 -1
  198. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  199. package/dist/esm-es5/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  200. package/dist/esm-es5/ionic.js +2 -2
  201. package/dist/esm-es5/{ios.transition-7ff7381d.js → ios.transition-b76c7020.js} +1 -1
  202. package/dist/esm-es5/loader.js +2 -2
  203. package/dist/esm-es5/md.transition-564937a7.js +4 -0
  204. package/dist/esm-es5/{overlays-33ae3ea0.js → overlays-04a9a43f.js} +1 -1
  205. package/dist/esm-es5/{status-tap-2b335fb7.js → status-tap-5a95077d.js} +1 -1
  206. package/dist/ionic/index.esm.js +1 -1
  207. package/dist/ionic/ionic.esm.js +1 -1
  208. package/dist/ionic/ionic.js +1 -1
  209. package/dist/ionic/{p-ce2eabd5.entry.js → p-027f3674.entry.js} +1 -1
  210. package/dist/ionic/{p-dce9bc53.entry.js → p-0457213c.entry.js} +1 -1
  211. package/dist/ionic/{p-7dc7514a.entry.js → p-05d560ec.entry.js} +1 -1
  212. package/dist/ionic/p-0b34d3a7.system.js +4 -0
  213. package/dist/ionic/{p-f9d0e6f4.system.entry.js → p-0e23c289.system.entry.js} +1 -1
  214. package/dist/ionic/{p-8569d759.system.entry.js → p-1131946f.system.entry.js} +1 -1
  215. package/dist/ionic/{p-8ddc00f7.js → p-123b4809.js} +1 -1
  216. package/dist/ionic/{p-5eea8b4c.system.js → p-1636923f.system.js} +1 -1
  217. package/dist/ionic/{p-333f06ed.entry.js → p-16a61810.entry.js} +1 -1
  218. package/dist/ionic/{p-48af4316.system.entry.js → p-18beebdf.system.entry.js} +2 -2
  219. package/dist/ionic/{p-016976a7.system.entry.js → p-1924f2e0.system.entry.js} +2 -2
  220. package/dist/ionic/{p-396c1a55.entry.js → p-1f16d040.entry.js} +1 -1
  221. package/dist/ionic/{p-e6aaff14.system.entry.js → p-1f19958f.system.entry.js} +1 -1
  222. package/dist/ionic/p-21ca1f1c.js +4 -0
  223. package/dist/ionic/{p-df468a8f.entry.js → p-2327064c.entry.js} +1 -1
  224. package/dist/ionic/{p-5a0c301f.entry.js → p-23c73017.entry.js} +1 -1
  225. package/dist/ionic/{p-3a98f8db.entry.js → p-275705e5.entry.js} +1 -1
  226. package/dist/ionic/{p-c6fef62b.system.js → p-2e14c533.system.js} +1 -1
  227. package/dist/ionic/{p-61c0f8bf.system.entry.js → p-2e1f014a.system.entry.js} +1 -1
  228. package/dist/ionic/{p-aa7ae6aa.entry.js → p-3079950e.entry.js} +1 -1
  229. package/dist/ionic/{p-b4d8fe47.js → p-30cd5e7b.js} +1 -1
  230. package/dist/ionic/{p-5b6aa59a.entry.js → p-31450f73.entry.js} +1 -1
  231. package/dist/ionic/{p-b8c4df21.entry.js → p-337ac0f5.entry.js} +1 -1
  232. package/dist/ionic/{p-0e29919c.system.entry.js → p-3481d54e.system.entry.js} +1 -1
  233. package/dist/ionic/{p-51f08a9f.entry.js → p-396083cc.entry.js} +1 -1
  234. package/dist/ionic/{p-f88dd429.entry.js → p-3a7de59c.entry.js} +1 -1
  235. package/dist/ionic/{p-9f6397ce.entry.js → p-3d961d93.entry.js} +1 -1
  236. package/dist/ionic/{p-70026e8f.system.entry.js → p-42a9f663.system.entry.js} +1 -1
  237. package/dist/ionic/{p-400574bf.entry.js → p-43a5edee.entry.js} +1 -1
  238. package/dist/ionic/{p-f1cc690e.entry.js → p-45841d37.entry.js} +1 -1
  239. package/dist/ionic/{p-3eb2da31.js → p-49aba878.js} +1 -1
  240. package/dist/ionic/{p-5e60dbc8.entry.js → p-4fda5c35.entry.js} +1 -1
  241. package/dist/ionic/{p-3cdbaa49.entry.js → p-502780e4.entry.js} +1 -1
  242. package/dist/ionic/{p-108f730a.entry.js → p-508a4c87.entry.js} +1 -1
  243. package/dist/ionic/{p-9f5b40c0.system.entry.js → p-5928fac9.system.entry.js} +1 -1
  244. package/dist/ionic/{p-6a34980d.entry.js → p-5b40d967.entry.js} +1 -1
  245. package/dist/ionic/p-5c2ae448.js +4 -0
  246. package/dist/ionic/{p-a2ad515b.entry.js → p-5c580e89.entry.js} +1 -1
  247. package/dist/ionic/{p-a02b2d75.entry.js → p-5c6a04bd.entry.js} +1 -1
  248. package/dist/ionic/{p-30c9e049.system.entry.js → p-5cb5f63d.system.entry.js} +1 -1
  249. package/dist/ionic/{p-1aa7c019.js → p-5d7e32ce.js} +1 -1
  250. package/dist/ionic/{p-3a54c070.system.entry.js → p-5e23bea8.system.entry.js} +1 -1
  251. package/dist/ionic/{p-1c531ca2.entry.js → p-601e17b4.entry.js} +1 -1
  252. package/dist/ionic/{p-f1ad3b3d.entry.js → p-64761c90.entry.js} +1 -1
  253. package/dist/ionic/{p-bc2c03d7.system.entry.js → p-64856c3c.system.entry.js} +1 -1
  254. package/dist/ionic/{p-efe9180b.entry.js → p-64db1331.entry.js} +1 -1
  255. package/dist/ionic/{p-3f028207.system.js → p-6525a8cd.system.js} +1 -1
  256. package/dist/ionic/{p-d8607ede.entry.js → p-657ccdd6.entry.js} +1 -1
  257. package/dist/ionic/{p-cd055d60.system.entry.js → p-68ba8e77.system.entry.js} +1 -1
  258. package/dist/ionic/{p-aaa4ffb3.system.entry.js → p-69973389.system.entry.js} +1 -1
  259. package/dist/ionic/{p-2f66e177.system.entry.js → p-70e34286.system.entry.js} +1 -1
  260. package/dist/ionic/{p-df281664.system.entry.js → p-7173ba59.system.entry.js} +1 -1
  261. package/dist/ionic/{p-20a6513f.system.entry.js → p-717e2526.system.entry.js} +1 -1
  262. package/dist/ionic/{p-76893257.system.js → p-72fa96bf.system.js} +1 -1
  263. package/dist/ionic/{p-25b08bc4.system.js → p-74deb358.system.js} +1 -1
  264. package/dist/ionic/{p-a1bfaa5c.system.entry.js → p-7b1ed642.system.entry.js} +1 -1
  265. package/dist/ionic/{p-fd3f475f.entry.js → p-7ce40e7b.entry.js} +1 -1
  266. package/dist/ionic/{p-58e3ae88.system.entry.js → p-86813176.system.entry.js} +1 -1
  267. package/dist/ionic/{p-0eef8b34.system.entry.js → p-8794fa00.system.entry.js} +1 -1
  268. package/dist/ionic/{p-a051c371.entry.js → p-88e9052d.entry.js} +1 -1
  269. package/dist/ionic/{p-b94882a9.system.js → p-89ca4c4b.system.js} +1 -1
  270. package/dist/ionic/{p-f46775e4.entry.js → p-8e651c29.entry.js} +1 -1
  271. package/dist/ionic/{p-c3790581.entry.js → p-8f872991.entry.js} +1 -1
  272. package/dist/ionic/{p-f97b9cdd.system.entry.js → p-9056778e.system.entry.js} +1 -1
  273. package/dist/ionic/{p-1f583f73.entry.js → p-91cb3f9a.entry.js} +1 -1
  274. package/dist/ionic/{p-97eca294.entry.js → p-95d5a097.entry.js} +1 -1
  275. package/dist/ionic/{p-95c44e02.system.js → p-9cd7ba27.system.js} +1 -1
  276. package/dist/ionic/{p-fd36799d.system.js → p-9ec7208d.system.js} +1 -1
  277. package/dist/ionic/{p-4c256bc2.system.entry.js → p-a022b684.system.entry.js} +1 -1
  278. package/dist/ionic/{p-078fd095.system.entry.js → p-a0b28c69.system.entry.js} +1 -1
  279. package/dist/ionic/{p-eda7a1db.system.entry.js → p-a3df16b9.system.entry.js} +1 -1
  280. package/dist/ionic/{p-62a3c609.system.js → p-a5951821.system.js} +1 -1
  281. package/dist/ionic/{p-e0569db4.entry.js → p-a6e465f5.entry.js} +1 -1
  282. package/dist/ionic/{p-9a6ab80a.system.entry.js → p-a85d9047.system.entry.js} +1 -1
  283. package/dist/ionic/{p-8ebd9951.entry.js → p-a8a56449.entry.js} +1 -1
  284. package/dist/ionic/{p-c851b204.system.entry.js → p-aaaa615c.system.entry.js} +1 -1
  285. package/dist/ionic/{p-ac20160b.system.entry.js → p-abcedc15.system.entry.js} +1 -1
  286. package/dist/ionic/{p-0ae25399.system.entry.js → p-ae35294f.system.entry.js} +1 -1
  287. package/dist/ionic/{p-6f38d0c5.system.entry.js → p-afd6d696.system.entry.js} +1 -1
  288. package/dist/ionic/{p-d7260b87.entry.js → p-b0ff8075.entry.js} +1 -1
  289. package/dist/ionic/{p-e68980ff.system.entry.js → p-b2595011.system.entry.js} +1 -1
  290. package/dist/ionic/{p-fe92da17.entry.js → p-b6279412.entry.js} +1 -1
  291. package/dist/ionic/{p-4dfc27eb.system.entry.js → p-b7efc743.system.entry.js} +1 -1
  292. package/dist/ionic/{p-ac979ebf.system.entry.js → p-ba97a133.system.entry.js} +1 -1
  293. package/dist/ionic/{p-389ff4d2.system.entry.js → p-bd314f1e.system.entry.js} +1 -1
  294. package/dist/ionic/{p-84513dfb.entry.js → p-bd4787eb.entry.js} +1 -1
  295. package/dist/ionic/p-bdca4784.js +4 -0
  296. package/dist/ionic/{p-2da0a76c.entry.js → p-bf05cbc7.entry.js} +1 -1
  297. package/dist/ionic/{p-dbb4c012.entry.js → p-c11bab7e.entry.js} +1 -1
  298. package/dist/ionic/{p-78edc0cd.system.entry.js → p-c1797ec5.system.entry.js} +1 -1
  299. package/dist/ionic/{p-d95c8e90.entry.js → p-c308f773.entry.js} +1 -1
  300. package/dist/ionic/{p-f7b43141.system.entry.js → p-c39cc96d.system.entry.js} +1 -1
  301. package/dist/ionic/{p-92c2178e.system.entry.js → p-c747f89b.system.entry.js} +1 -1
  302. package/dist/ionic/{p-b498de69.entry.js → p-c771a6ef.entry.js} +1 -1
  303. package/dist/ionic/{p-a19f5ae1.entry.js → p-cb9e71e0.entry.js} +1 -1
  304. package/dist/ionic/{p-5f456b3c.system.entry.js → p-cd9a7017.system.entry.js} +1 -1
  305. package/dist/ionic/{p-20f7a91e.system.entry.js → p-cde3ac34.system.entry.js} +1 -1
  306. package/dist/ionic/{p-4b2d5b9c.js → p-ceceac26.js} +1 -1
  307. package/dist/ionic/{p-3cb2ab30.entry.js → p-d39ab63d.entry.js} +1 -1
  308. package/dist/ionic/{p-fd9a9db3.system.js → p-d4cadd34.system.js} +1 -1
  309. package/dist/ionic/p-dbcba5a2.js +4 -0
  310. package/dist/ionic/{p-b37e4ee5.system.entry.js → p-dbd70d97.system.entry.js} +1 -1
  311. package/dist/ionic/{p-ea8fbf09.entry.js → p-dcb5711d.entry.js} +1 -1
  312. package/dist/ionic/{p-341b4519.js → p-de55ec45.js} +1 -1
  313. package/dist/ionic/{p-001010b6.system.js → p-df504a37.system.js} +1 -1
  314. package/dist/ionic/{p-84879f61.system.entry.js → p-e04b9647.system.entry.js} +1 -1
  315. package/dist/ionic/{p-dd60faa5.system.entry.js → p-e81bf09e.system.entry.js} +1 -1
  316. package/dist/ionic/{p-9beb5039.system.js → p-e9f9388e.system.js} +1 -1
  317. package/dist/ionic/{p-1f6cdf2c.system.entry.js → p-ea25b4c8.system.entry.js} +1 -1
  318. package/dist/ionic/{p-8a671f16.entry.js → p-eb07b88f.entry.js} +1 -1
  319. package/dist/ionic/p-ed7a529f.js +5 -0
  320. package/dist/ionic/p-edcada2b.system.entry.js +4 -0
  321. package/dist/ionic/{p-7c32fb95.system.entry.js → p-f0194418.system.entry.js} +1 -1
  322. package/dist/ionic/{p-680f96e8.system.entry.js → p-f53d074d.system.entry.js} +1 -1
  323. package/dist/ionic/{p-d74ca358.entry.js → p-f840d817.entry.js} +1 -1
  324. package/dist/ionic/{p-0fd295ef.system.entry.js → p-fb9f8495.system.entry.js} +1 -1
  325. package/dist/types/components/action-sheet/action-sheet.d.ts +4 -0
  326. package/dist/types/components/alert/alert.d.ts +4 -0
  327. package/dist/types/components/loading/loading.d.ts +4 -0
  328. package/dist/types/components/modal/modal.d.ts +4 -0
  329. package/dist/types/components/picker/picker.d.ts +4 -0
  330. package/dist/types/components/popover/popover.d.ts +4 -0
  331. package/dist/types/components/toast/toast.d.ts +4 -0
  332. package/dist/types/components.d.ts +7 -7
  333. package/hydrate/index.d.ts +1 -1
  334. package/hydrate/index.js +220 -35
  335. package/package.json +3 -3
  336. package/dist/esm-es5/app-globals-47226a12.js +0 -4
  337. package/dist/esm-es5/md.transition-28a9a26b.js +0 -4
  338. package/dist/ionic/p-0b955124.system.js +0 -4
  339. package/dist/ionic/p-6b02edd6.js +0 -4
  340. package/dist/ionic/p-8f1ce253.js +0 -4
  341. package/dist/ionic/p-bd259c65.system.entry.js +0 -4
  342. package/dist/ionic/p-c5c3710c.js +0 -4
  343. package/dist/ionic/p-e1271366.js +0 -5
  344. package/dist/ionic/p-f89ae259.js +0 -4
@@ -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
- focusPreviousElementOnDismiss(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 focusPreviousElementOnDismiss = async (overlayEl) => {
474
+ const restoreElementFocus = async (overlayEl) => {
458
475
  let previousElement = document.activeElement;
459
476
  if (!previousElement) {
460
477
  return;
@@ -465,10 +482,36 @@ const focusPreviousElementOnDismiss = async (overlayEl) => {
465
482
  previousElement = shadowRoot.querySelector(focusableQueryString) || previousElement;
466
483
  }
467
484
  await overlayEl.onDidDismiss();
468
- previousElement.focus();
485
+ /**
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
508
+ */
509
+ if (document.activeElement === null || document.activeElement === document.body) {
510
+ previousElement.focus();
511
+ }
469
512
  };
470
513
  const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
471
- var _a, _b;
514
+ var _a, _b, _c;
472
515
  if (!overlay.presented) {
473
516
  return false;
474
517
  }
@@ -519,6 +562,13 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
519
562
  console.error(err);
520
563
  }
521
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
+ }
522
572
  return true;
523
573
  };
524
574
  const getAppRoot = (doc) => {
@@ -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": [
@@ -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
  },
@@ -71,10 +71,6 @@
71
71
  overflow: hidden;
72
72
  }
73
73
 
74
- :host-context(.item:not(.item-input):not(.item-legacy)) {
75
- flex-grow: 1;
76
- }
77
-
78
74
  :host(.ion-color) {
79
75
  color: var(--ion-color-base);
80
76
  }
@@ -71,10 +71,6 @@
71
71
  overflow: hidden;
72
72
  }
73
73
 
74
- :host-context(.item:not(.item-input):not(.item-legacy)) {
75
- flex-grow: 1;
76
- }
77
-
78
74
  :host(.ion-color) {
79
75
  color: var(--ion-color-base);
80
76
  }
@@ -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
  },
@@ -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;
@@ -526,9 +530,9 @@ export class Modal {
526
530
  const mode = getIonMode(this);
527
531
  const isCardModal = presentingElement !== undefined && mode === 'ios';
528
532
  const isHandleCycle = handleBehavior === 'cycle';
529
- return (h(Host, Object.assign({ key: '9a305d82f123283b6200c42d67393b378bb309a8', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
533
+ return (h(Host, Object.assign({ key: '0c2c4369ab2df4ef4660addea5e927c6a0232864', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
530
534
  zIndex: `${20000 + this.overlayIndex}`,
531
- }, 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: '85e8dc6f19b30fd95db518445929fb0c1d5cdef0', 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: '893a0202d91828e60099311442c2677bee5464e2',
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',
532
536
  /*
533
537
  role and aria-modal must be used on the
534
538
  same element. They must also be set inside the
@@ -537,7 +541,7 @@ export class Modal {
537
541
  */
538
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",
539
543
  // Prevents the handle from receiving keyboard focus when it does not cycle
540
- 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: '25187bf4c69d9022930227b8b8748a294176be5f' }))));
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' }))));
541
545
  }
542
546
  static get is() { return "ion-modal"; }
543
547
  static get encapsulation() { return "shadow"; }
@@ -1232,7 +1236,7 @@ export class Modal {
1232
1236
  }, {
1233
1237
  "name": "role",
1234
1238
  "type": "string | undefined",
1235
- "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."
1236
1240
  }],
1237
1241
  "references": {
1238
1242
  "Promise": {
@@ -1253,7 +1257,7 @@ export class Modal {
1253
1257
  "text": "data Any data to emit in the dismiss events."
1254
1258
  }, {
1255
1259
  "name": "param",
1256
- "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."
1257
1261
  }]
1258
1262
  }
1259
1263
  },
@@ -109,6 +109,10 @@ export class Picker {
109
109
  * This can be useful in a button handler for determining which button was
110
110
  * clicked to dismiss the picker.
111
111
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
112
+ *
113
+ * This is a no-op if the overlay has not been presented yet. If you want
114
+ * to remove an overlay from the DOM that was never presented, use the
115
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
112
116
  */
113
117
  async dismiss(data, role) {
114
118
  const unlock = await this.lockController.lock();
@@ -180,11 +184,11 @@ export class Picker {
180
184
  render() {
181
185
  const { htmlAttributes } = this;
182
186
  const mode = getIonMode(this);
183
- return (h(Host, Object.assign({ key: '8b9049c5315e701dff3f7457be646941bb3cc0df', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
187
+ return (h(Host, Object.assign({ key: 'c266cc072afaba2da22f70d8b62dc4bc6756d188', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
184
188
  zIndex: `${20000 + this.overlayIndex}`,
185
189
  }, class: Object.assign({ [mode]: true,
186
190
  // Used internally for styling
187
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '4f62ae6c088108189bfab18b680f0ae50b4cc395', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'c5fd2584ca4470c69bf61582cef2ac72289addba', tabindex: "0" }), h("div", { key: '2e68572dd5ddc4911c1e6bca57a2157b47477348', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: '218526e531998a4d5a6377499acb42f99b347729', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: '4dd711f1fa1f2a4bd24696ae1633da16bbf55879', class: "picker-columns" }, h("div", { key: '440ebd807ca3675b0055e67e0354ac4625ae375d', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { key: '5cdceda410904470e3742ab416ed3d3a661b6859', class: "picker-below-highlight" }))), h("div", { key: '0c96e8a43a6d4cd4b8b7c9e81c54414eb1d989bf', tabindex: "0" })));
191
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '35ee3e5028028835580e28ac2c8db65a924d5d6a', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '8b454e6edbcfc45c57d3d8baf7c14b7905921a6e', tabindex: "0" }), h("div", { key: 'e0fee78ec6d097bf0963190f748e5daad602e0f7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: 'ce66bca18fc3e982ad7d6660f27cb1a03fb8247b', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: 'a58b9523fe16f109dd6de0610717c5077fed964b', class: "picker-columns" }, h("div", { key: 'acd54c0314cff51e8513a08dd9755c4b847c0617', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { key: '604730bd87582d048d850c6e0a0f29ba33258918', class: "picker-below-highlight" }))), h("div", { key: '93baf5e6e57aec5f084d7d5b24af14e7d8126b5a', tabindex: "0" })));
188
192
  }
189
193
  static get is() { return "ion-picker"; }
190
194
  static get encapsulation() { return "scoped"; }
@@ -693,7 +697,7 @@ export class Picker {
693
697
  }, {
694
698
  "name": "role",
695
699
  "type": "string | undefined",
696
- "docs": "The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
700
+ "docs": "The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\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."
697
701
  }],
698
702
  "references": {
699
703
  "Promise": {
@@ -710,7 +714,7 @@ export class Picker {
710
714
  "text": "data Any data to emit in the dismiss events."
711
715
  }, {
712
716
  "name": "param",
713
- "text": "role The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
717
+ "text": "role The role of the element that is dismissing the picker.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the picker.\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."
714
718
  }]
715
719
  }
716
720
  },
@@ -258,6 +258,13 @@
258
258
  width: 20px;
259
259
  height: 10px;
260
260
  overflow: hidden;
261
+ /*
262
+ * Required for the arrow to render above the backdrop.
263
+ * Otherwise, the arrow will appear slightly transparent.
264
+ * The value is set to 11 since it's the minimum value that
265
+ * will allow the arrow to render above the backdrop.
266
+ */
267
+ z-index: 11;
261
268
  }
262
269
 
263
270
  .popover-arrow::after {
@@ -280,6 +280,10 @@ export class Popover {
280
280
  * @param role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'.
281
281
  * @param dismissParentPopover If `true`, dismissing this popover will also dismiss
282
282
  * a parent popover if this popover is nested. Defaults to `true`.
283
+ *
284
+ * This is a no-op if the overlay has not been presented yet. If you want
285
+ * to remove an overlay from the DOM that was never presented, use the
286
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
283
287
  */
284
288
  async dismiss(data, role, dismissParentPopover = true) {
285
289
  const unlock = await this.lockController.lock();
@@ -331,9 +335,9 @@ export class Popover {
331
335
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
332
336
  const desktop = isPlatform('desktop');
333
337
  const enableArrow = arrow && !parentPopover;
334
- return (h(Host, Object.assign({ key: 'f335ae001173483e6a973b2084f8a7b6b895ae5d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
338
+ return (h(Host, Object.assign({ key: '104a5bf92a9bbd2efc71d499a8500e5d55f81711', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
335
339
  zIndex: `${20000 + this.overlayIndex}`,
336
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '8468f39b0a0f30b42ae9cac51950e5f0b9be1069', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: 'cb4eeaef385187f3c8e566931844e30edd5451c4', class: "popover-content", part: "content" }, h("slot", { key: '80a5739a4beb6eba150503e426104701954c90b9' })))));
340
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'ef0baa04c22444d4bc705220235a892308d67586', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '5cc5f5c353de614e484e9cfeacecfca9fbfde0e0', class: "popover-content", part: "content" }, h("slot", { key: '2d85c591cdc85efa98afbf40f676525f1402efcf' })))));
337
341
  }
338
342
  static get is() { return "ion-popover"; }
339
343
  static get encapsulation() { return "shadow"; }
@@ -1130,7 +1134,7 @@ export class Popover {
1130
1134
  }, {
1131
1135
  "name": "dismissParentPopover",
1132
1136
  "type": "boolean",
1133
- "docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
1137
+ "docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`.\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."
1134
1138
  }],
1135
1139
  "references": {
1136
1140
  "Promise": {
@@ -1154,7 +1158,7 @@ export class Popover {
1154
1158
  "text": "role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'."
1155
1159
  }, {
1156
1160
  "name": "param",
1157
- "text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
1161
+ "text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`.\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."
1158
1162
  }]
1159
1163
  }
1160
1164
  },
@@ -80,6 +80,18 @@ describe('toast: a11y smoke test', () => {
80
80
  });
81
81
  });
82
82
  describe('toast: duration config', () => {
83
+ afterEach(() => {
84
+ /**
85
+ * Important: Reset the config
86
+ * after each test as it is not
87
+ * automatically reset.
88
+ * Otherwise, toasts in other tests
89
+ * will take on any toastDuration value
90
+ * set and timeouts will potentially run
91
+ * after tests are finished.
92
+ */
93
+ config.reset({});
94
+ });
83
95
  it('should have duration set to 0', async () => {
84
96
  const page = await newSpecPage({
85
97
  components: [Toast],
@@ -217,6 +217,10 @@ export class Toast {
217
217
  * This can be useful in a button handler for determining which button was
218
218
  * clicked to dismiss the toast.
219
219
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
220
+ *
221
+ * This is a no-op if the overlay has not been presented yet. If you want
222
+ * to remove an overlay from the DOM that was never presented, use the
223
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
220
224
  */
221
225
  async dismiss(data, role) {
222
226
  var _a, _b;
@@ -384,9 +388,9 @@ export class Toast {
384
388
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
385
389
  printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
386
390
  }
387
- return (h(Host, Object.assign({ key: '15a5c3e8d475435c838b70c55ef2e7cc12d6abfb', tabindex: "-1" }, this.htmlAttributes, { style: {
391
+ return (h(Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
388
392
  zIndex: `${60000 + this.overlayIndex}`,
389
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'a6ed7fb75ab098dc632d1a546b4d5298675c14c1', class: wrapperClass }, h("div", { key: '68ff7219e9abae0b7c2030369ebffd2fe0edf7de', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '6b45ca5e283d3507c682cbe733e27a94460a7f69', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
393
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '27c0feeb89c4efb47c42623a4b036ed84338ed10', class: wrapperClass }, h("div", { key: '41d5a3069f92e4a6acef2793fa4e236cdbdaae88', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '176f497bc990ef2ecc14c7fa90dd3a54a912030a', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
390
394
  }
391
395
  static get is() { return "ion-toast"; }
392
396
  static get encapsulation() { return "shadow"; }
@@ -1032,7 +1036,7 @@ export class Toast {
1032
1036
  }, {
1033
1037
  "name": "role",
1034
1038
  "type": "string | undefined",
1035
- "docs": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
1039
+ "docs": "The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\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."
1036
1040
  }],
1037
1041
  "references": {
1038
1042
  "Promise": {
@@ -1054,7 +1058,7 @@ export class Toast {
1054
1058
  "text": "data Any data to emit in the dismiss events."
1055
1059
  }, {
1056
1060
  "name": "param",
1057
- "text": "role The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\nSome examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`."
1061
+ "text": "role The role of the element that is dismissing the toast.\nThis can be useful in a button handler for determining which button was\nclicked to dismiss the toast.\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."
1058
1062
  }]
1059
1063
  }
1060
1064
  },