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
@@ -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
  },
@@ -68,6 +68,16 @@ ion-label {
68
68
  margin-bottom: 0;
69
69
  }
70
70
 
71
+ /**
72
+ * The main content inside of a popover has overflow: hidden
73
+ * so that a descendant ion-content can be scrolled.
74
+ * However, select-popover does not use ion-content so we need
75
+ * to explicitly make this container scrollable.
76
+ */
77
+ :host {
78
+ overflow-y: auto;
79
+ }
80
+
71
81
  /**
72
82
  * Convert a font size to a dynamic font size.
73
83
  * Fonts that participate in Dynamic Type should use
@@ -68,6 +68,16 @@ ion-label {
68
68
  margin-bottom: 0;
69
69
  }
70
70
 
71
+ /**
72
+ * The main content inside of a popover has overflow: hidden
73
+ * so that a descendant ion-content can be scrolled.
74
+ * However, select-popover does not use ion-content so we need
75
+ * to explicitly make this container scrollable.
76
+ */
77
+ :host {
78
+ overflow-y: auto;
79
+ }
80
+
71
81
  /**
72
82
  * Convert a font size to a dynamic font size.
73
83
  * Fonts that participate in Dynamic Type should use
@@ -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
  },
@@ -409,6 +409,15 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
409
409
  return;
410
410
  }
411
411
  setRootAriaHidden(true);
412
+ /**
413
+ * Hide all other overlays from screen readers so only this one
414
+ * can be read. Note that presenting an overlay always makes
415
+ * it the topmost one.
416
+ */
417
+ if (doc !== undefined) {
418
+ const presentedOverlays = getPresentedOverlays(doc);
419
+ presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
420
+ }
412
421
  overlay.presented = true;
413
422
  overlay.willPresent.emit();
414
423
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -431,7 +440,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
431
440
  * from returning focus as a result.
432
441
  */
433
442
  if (overlay.el.tagName !== 'ION-TOAST') {
434
- focusPreviousElementOnDismissIfNeeded(overlay.el);
443
+ restoreElementFocus(overlay.el);
435
444
  }
436
445
  /**
437
446
  * If the focused element is already
@@ -442,6 +451,14 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
442
451
  if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
443
452
  overlay.el.focus();
444
453
  }
454
+ /**
455
+ * If this overlay was previously dismissed without being
456
+ * the topmost one (such as by manually calling dismiss()),
457
+ * it would still have aria-hidden on being presented again.
458
+ * Removing it here ensures the overlay is visible to screen
459
+ * readers.
460
+ */
461
+ overlay.el.removeAttribute('aria-hidden');
445
462
  };
446
463
  /**
447
464
  * When an overlay component is dismissed,
@@ -453,7 +470,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
453
470
  * to where they were before they
454
471
  * opened the overlay.
455
472
  */
456
- const focusPreviousElementOnDismissIfNeeded = async (overlayEl) => {
473
+ const restoreElementFocus = async (overlayEl) => {
457
474
  let previousElement = document.activeElement;
458
475
  if (!previousElement) {
459
476
  return;
@@ -465,18 +482,35 @@ const focusPreviousElementOnDismissIfNeeded = async (overlayEl) => {
465
482
  }
466
483
  await overlayEl.onDidDismiss();
467
484
  /**
468
- * If the user has already removed focus
469
- * from the overlay (For example, focusing
470
- * a text box after tapping a button in an
471
- * action sheet) then don't restore focus
472
- * to previous element
485
+ * After onDidDismiss, the overlay loses focus
486
+ * because it is removed from the document
487
+ *
488
+ * > An element will also lose focus [...]
489
+ * > if the element is removed from the document)
490
+ *
491
+ * https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event
492
+ *
493
+ * Additionally, `document.activeElement` returns:
494
+ *
495
+ * > The Element which currently has focus,
496
+ * > `<body>` or null if there is
497
+ * > no focused element.
498
+ *
499
+ * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement#value
500
+ *
501
+ * However, if the user has already focused
502
+ * an element sometime between onWillDismiss
503
+ * and onDidDismiss (for example, focusing a
504
+ * text box after tapping a button in an
505
+ * action sheet) then don't restore focus to
506
+ * previous element
473
507
  */
474
508
  if (document.activeElement === null || document.activeElement === document.body) {
475
509
  previousElement.focus();
476
510
  }
477
511
  };
478
512
  export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
479
- var _a, _b;
513
+ var _a, _b, _c;
480
514
  if (!overlay.presented) {
481
515
  return false;
482
516
  }
@@ -503,6 +537,10 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
503
537
  }
504
538
  overlay.didDismiss.emit({ data, role });
505
539
  (_b = overlay.didDismissShorthand) === null || _b === void 0 ? void 0 : _b.emit({ data, role });
540
+ // Get a reference to all animations currently assigned to this overlay
541
+ // Then tear them down to return the overlay to its initial visual state
542
+ const animations = activeAnimations.get(overlay) || [];
543
+ animations.forEach((ani) => ani.destroy());
506
544
  activeAnimations.delete(overlay);
507
545
  /**
508
546
  * Make overlay hidden again in case it is being reused.
@@ -523,6 +561,13 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
523
561
  console.error(err);
524
562
  }
525
563
  overlay.el.remove();
564
+ /**
565
+ * If there are other overlays presented, unhide the new
566
+ * topmost one from screen readers.
567
+ */
568
+ if (doc !== undefined) {
569
+ (_c = getPresentedOverlay(doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
570
+ }
526
571
  return true;
527
572
  };
528
573
  const getAppRoot = (doc) => {
@@ -175,5 +175,38 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
175
175
  await modalInputOne.click();
176
176
  await expect(modalInputOne).toBeFocused();
177
177
  });
178
+ test('should not return focus to another element if focus already manually returned', async ({ page, skip, }, testInfo) => {
179
+ skip.browser('webkit', 'WebKit does not consider buttons to be focusable, so this test always passes since the input is the only focusable element.');
180
+ testInfo.annotations.push({
181
+ type: 'issue',
182
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28849',
183
+ });
184
+ await page.setContent(`
185
+ <button id="open-action-sheet">open</button>
186
+ <ion-action-sheet trigger="open-action-sheet"></ion-action-sheet>
187
+ <input id="test-input" />
188
+
189
+ <script>
190
+ const actionSheet = document.querySelector('ion-action-sheet');
191
+
192
+ actionSheet.addEventListener('ionActionSheetWillDismiss', () => {
193
+ requestAnimationFrame(() => {
194
+ document.querySelector('#test-input').focus();
195
+ });
196
+ });
197
+ </script>
198
+ `, config);
199
+ const ionActionSheetDidPresent = await page.spyOnEvent('ionActionSheetDidPresent');
200
+ const actionSheet = page.locator('ion-action-sheet');
201
+ const input = page.locator('#test-input');
202
+ const trigger = page.locator('#open-action-sheet');
203
+ // present action sheet
204
+ await trigger.click();
205
+ await ionActionSheetDidPresent.next();
206
+ // dismiss action sheet
207
+ await actionSheet.evaluate((el) => el.dismiss());
208
+ // verify focus is in correct location
209
+ await expect(input).toBeFocused();
210
+ });
178
211
  });
179
212
  });
@@ -100,3 +100,54 @@ describe('setRootAriaHidden()', () => {
100
100
  expect(routerOutlet.hasAttribute('aria-hidden')).toEqual(false);
101
101
  });
102
102
  });
103
+ describe('aria-hidden on individual overlays', () => {
104
+ it('should hide non-topmost overlays from screen readers', async () => {
105
+ const page = await newSpecPage({
106
+ components: [Modal],
107
+ html: `
108
+ <ion-modal id="one"></ion-modal>
109
+ <ion-modal id="two"></ion-modal>
110
+ `,
111
+ });
112
+ const modalOne = page.body.querySelector('ion-modal#one');
113
+ const modalTwo = page.body.querySelector('ion-modal#two');
114
+ await modalOne.present();
115
+ await modalTwo.present();
116
+ expect(modalOne.hasAttribute('aria-hidden')).toEqual(true);
117
+ expect(modalTwo.hasAttribute('aria-hidden')).toEqual(false);
118
+ });
119
+ it('should unhide new topmost overlay from screen readers when topmost is dismissed', async () => {
120
+ const page = await newSpecPage({
121
+ components: [Modal],
122
+ html: `
123
+ <ion-modal id="one"></ion-modal>
124
+ <ion-modal id="two"></ion-modal>
125
+ `,
126
+ });
127
+ const modalOne = page.body.querySelector('ion-modal#one');
128
+ const modalTwo = page.body.querySelector('ion-modal#two');
129
+ await modalOne.present();
130
+ await modalTwo.present();
131
+ // dismiss modalTwo so that modalOne becomes the new topmost overlay
132
+ await modalTwo.dismiss();
133
+ expect(modalOne.hasAttribute('aria-hidden')).toEqual(false);
134
+ });
135
+ it('should not keep overlays hidden from screen readers if presented after being dismissed while non-topmost', async () => {
136
+ const page = await newSpecPage({
137
+ components: [Modal],
138
+ html: `
139
+ <ion-modal id="one"></ion-modal>
140
+ <ion-modal id="two"></ion-modal>
141
+ `,
142
+ });
143
+ const modalOne = page.body.querySelector('ion-modal#one');
144
+ const modalTwo = page.body.querySelector('ion-modal#two');
145
+ await modalOne.present();
146
+ await modalTwo.present();
147
+ // modalOne is not the topmost overlay at this point and is hidden from screen readers
148
+ await modalOne.dismiss();
149
+ // modalOne will become the topmost overlay; ensure it isn't still hidden from screen readers
150
+ await modalOne.present();
151
+ expect(modalOne.hasAttribute('aria-hidden')).toEqual(false);
152
+ });
153
+ });
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2024-02-02T00:56:23",
2
+ "timestamp": "2024-02-15T03:07:15",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.12.0",
5
+ "version": "4.12.2",
6
6
  "typescriptVersion": "5.3.3"
7
7
  },
8
8
  "components": [
@@ -806,7 +806,7 @@
806
806
  {
807
807
  "name": "role",
808
808
  "type": "string | undefined",
809
- "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\"`."
809
+ "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."
810
810
  }
811
811
  ],
812
812
  "references": {
@@ -827,7 +827,7 @@
827
827
  {
828
828
  "name": "role",
829
829
  "type": "string | undefined",
830
- "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\"`."
830
+ "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."
831
831
  }
832
832
  ],
833
833
  "docs": "Dismiss the action sheet overlay after it has been presented.",
@@ -838,7 +838,7 @@
838
838
  },
839
839
  {
840
840
  "name": "param",
841
- "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\"`."
841
+ "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."
842
842
  }
843
843
  ]
844
844
  },
@@ -1637,7 +1637,7 @@
1637
1637
  {
1638
1638
  "name": "role",
1639
1639
  "type": "string | undefined",
1640
- "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\"`."
1640
+ "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."
1641
1641
  }
1642
1642
  ],
1643
1643
  "references": {
@@ -1658,7 +1658,7 @@
1658
1658
  {
1659
1659
  "name": "role",
1660
1660
  "type": "string | undefined",
1661
- "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\"`."
1661
+ "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."
1662
1662
  }
1663
1663
  ],
1664
1664
  "docs": "Dismiss the alert overlay after it has been presented.",
@@ -1669,7 +1669,7 @@
1669
1669
  },
1670
1670
  {
1671
1671
  "name": "param",
1672
- "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\"`."
1672
+ "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."
1673
1673
  }
1674
1674
  ]
1675
1675
  },
@@ -13797,7 +13797,7 @@
13797
13797
  {
13798
13798
  "name": "role",
13799
13799
  "type": "string | undefined",
13800
- "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\"`."
13800
+ "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."
13801
13801
  }
13802
13802
  ],
13803
13803
  "references": {
@@ -13818,7 +13818,7 @@
13818
13818
  {
13819
13819
  "name": "role",
13820
13820
  "type": "string | undefined",
13821
- "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\"`."
13821
+ "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."
13822
13822
  }
13823
13823
  ],
13824
13824
  "docs": "Dismiss the loading overlay after it has been presented.",
@@ -13829,7 +13829,7 @@
13829
13829
  },
13830
13830
  {
13831
13831
  "name": "param",
13832
- "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\"`."
13832
+ "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."
13833
13833
  }
13834
13834
  ]
13835
13835
  },
@@ -15526,7 +15526,7 @@
15526
15526
  {
15527
15527
  "name": "role",
15528
15528
  "type": "string | undefined",
15529
- "docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
15529
+ "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."
15530
15530
  }
15531
15531
  ],
15532
15532
  "references": {
@@ -15551,7 +15551,7 @@
15551
15551
  {
15552
15552
  "name": "role",
15553
15553
  "type": "string | undefined",
15554
- "docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
15554
+ "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."
15555
15555
  }
15556
15556
  ],
15557
15557
  "docs": "Dismiss the modal overlay after it has been presented.",
@@ -15562,7 +15562,7 @@
15562
15562
  },
15563
15563
  {
15564
15564
  "name": "param",
15565
- "text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
15565
+ "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."
15566
15566
  }
15567
15567
  ]
15568
15568
  },
@@ -17787,7 +17787,7 @@
17787
17787
  {
17788
17788
  "name": "role",
17789
17789
  "type": "string | undefined",
17790
- "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\"`."
17790
+ "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."
17791
17791
  }
17792
17792
  ],
17793
17793
  "references": {
@@ -17808,7 +17808,7 @@
17808
17808
  {
17809
17809
  "name": "role",
17810
17810
  "type": "string | undefined",
17811
- "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\"`."
17811
+ "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."
17812
17812
  }
17813
17813
  ],
17814
17814
  "docs": "Dismiss the picker overlay after it has been presented.",
@@ -17819,7 +17819,7 @@
17819
17819
  },
17820
17820
  {
17821
17821
  "name": "param",
17822
- "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\"`."
17822
+ "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."
17823
17823
  }
17824
17824
  ]
17825
17825
  },
@@ -18829,7 +18829,7 @@
18829
18829
  {
18830
18830
  "name": "dismissParentPopover",
18831
18831
  "type": "boolean",
18832
- "docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
18832
+ "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."
18833
18833
  }
18834
18834
  ],
18835
18835
  "references": {
@@ -18859,7 +18859,7 @@
18859
18859
  {
18860
18860
  "name": "dismissParentPopover",
18861
18861
  "type": "boolean",
18862
- "docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
18862
+ "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."
18863
18863
  }
18864
18864
  ],
18865
18865
  "docs": "Dismiss the popover overlay after it has been presented.",
@@ -18874,7 +18874,7 @@
18874
18874
  },
18875
18875
  {
18876
18876
  "name": "param",
18877
- "text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
18877
+ "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."
18878
18878
  }
18879
18879
  ]
18880
18880
  },
@@ -28180,7 +28180,7 @@
28180
28180
  {
28181
28181
  "name": "role",
28182
28182
  "type": "string | undefined",
28183
- "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\"`."
28183
+ "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."
28184
28184
  }
28185
28185
  ],
28186
28186
  "references": {
@@ -28206,7 +28206,7 @@
28206
28206
  {
28207
28207
  "name": "role",
28208
28208
  "type": "string | undefined",
28209
- "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\"`."
28209
+ "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."
28210
28210
  }
28211
28211
  ],
28212
28212
  "docs": "Dismiss the toast overlay after it has been presented.",
@@ -28217,7 +28217,7 @@
28217
28217
  },
28218
28218
  {
28219
28219
  "name": "param",
28220
- "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\"`."
28220
+ "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."
28221
28221
  }
28222
28222
  ]
28223
28223
  },