@ionic/core 7.7.2-dev.11707840956.16e27b4c → 7.7.2-dev.11707926434.1affaed4

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 (366) hide show
  1. package/components/action-sheet.js +3 -7
  2. package/components/alert.js +2 -6
  3. package/components/data.js +28 -38
  4. package/components/ion-datetime-button.js +11 -10
  5. package/components/ion-datetime.js +68 -7
  6. package/components/ion-loading.js +2 -6
  7. package/components/ion-modal.js +3 -7
  8. package/components/ion-picker.js +2 -6
  9. package/components/ion-toast.js +2 -6
  10. package/components/label.js +2 -2
  11. package/components/overlays.js +4 -54
  12. package/components/popover.js +2 -6
  13. package/dist/cjs/{app-globals-92ad1b3d.js → app-globals-5a17c5e1.js} +1 -1
  14. package/dist/cjs/{button-active-2d6520ec.js → button-active-b8c3f603.js} +1 -1
  15. package/dist/cjs/{data-a5109f09.js → data-6246812e.js} +27 -39
  16. package/dist/cjs/{hardware-back-button-2696acaf.js → hardware-back-button-d23873bb.js} +2 -2
  17. package/dist/cjs/{index-0ffe376d.js → index-5a471146.js} +22 -25
  18. package/dist/cjs/{index-c3580a90.js → index-84351d21.js} +3 -3
  19. package/dist/cjs/{index-a43f7a0f.js → index-8c679cbf.js} +2 -2
  20. package/dist/cjs/index.cjs.js +8 -8
  21. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -12
  23. package/dist/cjs/ion-alert.cjs.entry.js +7 -11
  24. package/dist/cjs/ion-app_8.cjs.entry.js +6 -6
  25. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-datetime-button.cjs.entry.js +13 -12
  35. package/dist/cjs/ion-datetime_3.cjs.entry.js +71 -17
  36. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
  42. package/dist/cjs/ion-loading.cjs.entry.js +6 -10
  43. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  44. package/dist/cjs/ion-modal.cjs.entry.js +8 -12
  45. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  48. package/dist/cjs/ion-popover.cjs.entry.js +7 -11
  49. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  63. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-toast.cjs.entry.js +6 -10
  66. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  67. package/dist/cjs/{ionic-global-59a10130.js → ionic-global-7358c23e.js} +1 -1
  68. package/dist/cjs/ionic.cjs.js +7 -7
  69. package/dist/cjs/{ios.transition-c3b11cc3.js → ios.transition-8e40c54e.js} +2 -2
  70. package/dist/cjs/loader.cjs.js +6 -6
  71. package/dist/cjs/{md.transition-82a8c649.js → md.transition-597a2479.js} +2 -2
  72. package/dist/cjs/{overlays-fb7ca451.js → overlays-330df245.js} +6 -56
  73. package/dist/cjs/{status-tap-692f6d32.js → status-tap-b0bfea34.js} +1 -1
  74. package/dist/collection/collection-manifest.json +1 -1
  75. package/dist/collection/components/action-sheet/action-sheet.js +5 -9
  76. package/dist/collection/components/alert/alert.js +4 -8
  77. package/dist/collection/components/datetime/datetime.js +90 -7
  78. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +79 -0
  79. package/dist/collection/components/datetime/test/format.spec.js +65 -1
  80. package/dist/collection/components/datetime/utils/format.js +28 -20
  81. package/dist/collection/components/datetime-button/datetime-button.js +11 -10
  82. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +66 -0
  83. package/dist/collection/components/label/label.ios.css +4 -0
  84. package/dist/collection/components/label/label.md.css +4 -0
  85. package/dist/collection/components/loading/loading.js +4 -8
  86. package/dist/collection/components/modal/modal.js +5 -9
  87. package/dist/collection/components/picker/picker.js +4 -8
  88. package/dist/collection/components/popover/popover.js +4 -8
  89. package/dist/collection/components/toast/test/toast.spec.js +0 -12
  90. package/dist/collection/components/toast/toast.js +4 -8
  91. package/dist/collection/utils/overlays.js +4 -54
  92. package/dist/collection/utils/test/overlays/overlays.e2e.js +0 -33
  93. package/dist/collection/utils/test/overlays/overlays.spec.js +0 -51
  94. package/dist/docs.json +66 -23
  95. package/dist/esm/{app-globals-5cf6195b.js → app-globals-47226a12.js} +1 -1
  96. package/dist/esm/{button-active-47ac8092.js → button-active-4bee452c.js} +1 -1
  97. package/dist/esm/{data-0f3ab200.js → data-25d50209.js} +28 -38
  98. package/dist/esm/{hardware-back-button-b410a047.js → hardware-back-button-f42b9c80.js} +2 -2
  99. package/dist/esm/{index-47b2066d.js → index-48209844.js} +2 -2
  100. package/dist/esm/{index-0b4beb69.js → index-4b98143d.js} +3 -3
  101. package/dist/esm/{index-4c30cddd.js → index-73881b51.js} +22 -25
  102. package/dist/esm/index.js +8 -8
  103. package/dist/esm/ion-accordion_2.entry.js +2 -2
  104. package/dist/esm/ion-action-sheet.entry.js +8 -12
  105. package/dist/esm/ion-alert.entry.js +7 -11
  106. package/dist/esm/ion-app_8.entry.js +6 -6
  107. package/dist/esm/ion-avatar_3.entry.js +2 -2
  108. package/dist/esm/ion-back-button.entry.js +2 -2
  109. package/dist/esm/ion-backdrop.entry.js +2 -2
  110. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  111. package/dist/esm/ion-button_2.entry.js +2 -2
  112. package/dist/esm/ion-card_5.entry.js +2 -2
  113. package/dist/esm/ion-checkbox.entry.js +2 -2
  114. package/dist/esm/ion-chip.entry.js +2 -2
  115. package/dist/esm/ion-col_3.entry.js +2 -2
  116. package/dist/esm/ion-datetime-button.entry.js +13 -12
  117. package/dist/esm/ion-datetime_3.entry.js +71 -17
  118. package/dist/esm/ion-fab_3.entry.js +2 -2
  119. package/dist/esm/ion-img.entry.js +2 -2
  120. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  121. package/dist/esm/ion-input.entry.js +2 -2
  122. package/dist/esm/ion-item-option_3.entry.js +2 -2
  123. package/dist/esm/ion-item_8.entry.js +4 -4
  124. package/dist/esm/ion-loading.entry.js +6 -10
  125. package/dist/esm/ion-menu_3.entry.js +5 -5
  126. package/dist/esm/ion-modal.entry.js +8 -12
  127. package/dist/esm/ion-nav_2.entry.js +3 -3
  128. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  129. package/dist/esm/ion-picker-internal.entry.js +1 -1
  130. package/dist/esm/ion-popover.entry.js +7 -11
  131. package/dist/esm/ion-progress-bar.entry.js +2 -2
  132. package/dist/esm/ion-radio_2.entry.js +2 -2
  133. package/dist/esm/ion-range.entry.js +2 -2
  134. package/dist/esm/ion-refresher_2.entry.js +2 -2
  135. package/dist/esm/ion-reorder_2.entry.js +2 -2
  136. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  137. package/dist/esm/ion-route_4.entry.js +2 -2
  138. package/dist/esm/ion-searchbar.entry.js +2 -2
  139. package/dist/esm/ion-segment_2.entry.js +2 -2
  140. package/dist/esm/ion-select_3.entry.js +4 -4
  141. package/dist/esm/ion-spinner.entry.js +2 -2
  142. package/dist/esm/ion-split-pane.entry.js +2 -2
  143. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  144. package/dist/esm/ion-tab_2.entry.js +1 -1
  145. package/dist/esm/ion-text.entry.js +2 -2
  146. package/dist/esm/ion-textarea.entry.js +2 -2
  147. package/dist/esm/ion-toast.entry.js +6 -10
  148. package/dist/esm/ion-toggle.entry.js +2 -2
  149. package/dist/esm/{ionic-global-ad9a1810.js → ionic-global-778b7863.js} +1 -1
  150. package/dist/esm/ionic.js +8 -8
  151. package/dist/esm/{ios.transition-b76c7020.js → ios.transition-7ff7381d.js} +2 -2
  152. package/dist/esm/loader.js +7 -7
  153. package/dist/esm/{md.transition-564937a7.js → md.transition-28a9a26b.js} +2 -2
  154. package/dist/esm/{overlays-04a9a43f.js → overlays-33ae3ea0.js} +6 -56
  155. package/dist/esm/{status-tap-5a95077d.js → status-tap-2b335fb7.js} +1 -1
  156. package/dist/esm-es5/app-globals-47226a12.js +4 -0
  157. package/dist/esm-es5/{button-active-47ac8092.js → button-active-4bee452c.js} +1 -1
  158. package/dist/esm-es5/data-25d50209.js +4 -0
  159. package/dist/esm-es5/{hardware-back-button-b410a047.js → hardware-back-button-f42b9c80.js} +1 -1
  160. package/dist/esm-es5/{index-47b2066d.js → index-48209844.js} +1 -1
  161. package/dist/esm-es5/{index-0b4beb69.js → index-4b98143d.js} +1 -1
  162. package/dist/esm-es5/{index-4c30cddd.js → index-73881b51.js} +1 -1
  163. package/dist/esm-es5/index.js +1 -1
  164. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  165. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  166. package/dist/esm-es5/ion-alert.entry.js +1 -1
  167. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  168. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  169. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  170. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  171. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  172. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  174. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  175. package/dist/esm-es5/ion-chip.entry.js +1 -1
  176. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  177. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  178. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  179. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-img.entry.js +1 -1
  181. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  182. package/dist/esm-es5/ion-input.entry.js +1 -1
  183. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  184. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  185. package/dist/esm-es5/ion-loading.entry.js +1 -1
  186. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  187. package/dist/esm-es5/ion-modal.entry.js +1 -1
  188. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  189. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  190. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  191. package/dist/esm-es5/ion-popover.entry.js +1 -1
  192. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  193. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-range.entry.js +1 -1
  195. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  196. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  197. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  198. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  199. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  200. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  201. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  202. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  203. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  204. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  205. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  206. package/dist/esm-es5/ion-text.entry.js +1 -1
  207. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  208. package/dist/esm-es5/ion-toast.entry.js +1 -1
  209. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  210. package/dist/esm-es5/{ionic-global-ad9a1810.js → ionic-global-778b7863.js} +1 -1
  211. package/dist/esm-es5/ionic.js +2 -2
  212. package/dist/esm-es5/{ios.transition-b76c7020.js → ios.transition-7ff7381d.js} +1 -1
  213. package/dist/esm-es5/loader.js +2 -2
  214. package/dist/esm-es5/md.transition-28a9a26b.js +4 -0
  215. package/dist/esm-es5/{overlays-04a9a43f.js → overlays-33ae3ea0.js} +1 -1
  216. package/dist/esm-es5/{status-tap-5a95077d.js → status-tap-2b335fb7.js} +1 -1
  217. package/dist/ionic/index.esm.js +1 -1
  218. package/dist/ionic/ionic.esm.js +1 -1
  219. package/dist/ionic/ionic.js +1 -1
  220. package/dist/ionic/{p-df504a37.system.js → p-001010b6.system.js} +1 -1
  221. package/dist/ionic/{p-1924f2e0.system.entry.js → p-016976a7.system.entry.js} +2 -2
  222. package/dist/ionic/{p-a0b28c69.system.entry.js → p-078fd095.system.entry.js} +1 -1
  223. package/dist/ionic/{p-ae35294f.system.entry.js → p-0ae25399.system.entry.js} +1 -1
  224. package/dist/ionic/p-0b955124.system.js +4 -0
  225. package/dist/ionic/{p-3481d54e.system.entry.js → p-0e29919c.system.entry.js} +1 -1
  226. package/dist/ionic/{p-8794fa00.system.entry.js → p-0eef8b34.system.entry.js} +1 -1
  227. package/dist/ionic/{p-fb9f8495.system.entry.js → p-0fd295ef.system.entry.js} +1 -1
  228. package/dist/ionic/{p-508a4c87.entry.js → p-108f730a.entry.js} +1 -1
  229. package/dist/ionic/{p-5d7e32ce.js → p-1aa7c019.js} +1 -1
  230. package/dist/ionic/{p-601e17b4.entry.js → p-1c531ca2.entry.js} +1 -1
  231. package/dist/ionic/{p-91cb3f9a.entry.js → p-1f583f73.entry.js} +1 -1
  232. package/dist/ionic/{p-ea25b4c8.system.entry.js → p-1f6cdf2c.system.entry.js} +1 -1
  233. package/dist/ionic/{p-717e2526.system.entry.js → p-20a6513f.system.entry.js} +1 -1
  234. package/dist/ionic/{p-cde3ac34.system.entry.js → p-20f7a91e.system.entry.js} +1 -1
  235. package/dist/ionic/{p-74deb358.system.js → p-25b08bc4.system.js} +1 -1
  236. package/dist/ionic/p-26138fed.js +4 -0
  237. package/dist/ionic/{p-bf05cbc7.entry.js → p-2da0a76c.entry.js} +1 -1
  238. package/dist/ionic/{p-70e34286.system.entry.js → p-2f66e177.system.entry.js} +1 -1
  239. package/dist/ionic/{p-5cb5f63d.system.entry.js → p-30c9e049.system.entry.js} +1 -1
  240. package/dist/ionic/{p-16a61810.entry.js → p-333f06ed.entry.js} +1 -1
  241. package/dist/ionic/{p-de55ec45.js → p-341b4519.js} +1 -1
  242. package/dist/ionic/{p-bd314f1e.system.entry.js → p-389ff4d2.system.entry.js} +1 -1
  243. package/dist/ionic/{p-1f16d040.entry.js → p-396c1a55.entry.js} +1 -1
  244. package/dist/ionic/{p-5e23bea8.system.entry.js → p-3a54c070.system.entry.js} +1 -1
  245. package/dist/ionic/{p-275705e5.entry.js → p-3a98f8db.entry.js} +1 -1
  246. package/dist/ionic/{p-502780e4.entry.js → p-3cdbaa49.entry.js} +1 -1
  247. package/dist/ionic/{p-49aba878.js → p-3eb2da31.js} +1 -1
  248. package/dist/ionic/{p-6525a8cd.system.js → p-3f028207.system.js} +1 -1
  249. package/dist/ionic/{p-43a5edee.entry.js → p-400574bf.entry.js} +1 -1
  250. package/dist/ionic/{p-18beebdf.system.entry.js → p-48af4316.system.entry.js} +2 -2
  251. package/dist/ionic/{p-ceceac26.js → p-4b2d5b9c.js} +1 -1
  252. package/dist/ionic/{p-a022b684.system.entry.js → p-4c256bc2.system.entry.js} +1 -1
  253. package/dist/ionic/{p-b7efc743.system.entry.js → p-4dfc27eb.system.entry.js} +1 -1
  254. package/dist/ionic/{p-396083cc.entry.js → p-51f08a9f.entry.js} +1 -1
  255. package/dist/ionic/{p-86813176.system.entry.js → p-58e3ae88.system.entry.js} +1 -1
  256. package/dist/ionic/{p-31450f73.entry.js → p-5b6aa59a.entry.js} +1 -1
  257. package/dist/ionic/{p-4fda5c35.entry.js → p-5e60dbc8.entry.js} +1 -1
  258. package/dist/ionic/{p-1636923f.system.js → p-5eea8b4c.system.js} +1 -1
  259. package/dist/ionic/{p-cd9a7017.system.entry.js → p-5f456b3c.system.entry.js} +1 -1
  260. package/dist/ionic/{p-2e1f014a.system.entry.js → p-61c0f8bf.system.entry.js} +1 -1
  261. package/dist/ionic/{p-a5951821.system.js → p-62a3c609.system.js} +1 -1
  262. package/dist/ionic/{p-f53d074d.system.entry.js → p-680f96e8.system.entry.js} +1 -1
  263. package/dist/ionic/p-68ae6719.system.entry.js +4 -0
  264. package/dist/ionic/{p-5b40d967.entry.js → p-6a34980d.entry.js} +1 -1
  265. package/dist/ionic/p-6b02edd6.js +4 -0
  266. package/dist/ionic/{p-afd6d696.system.entry.js → p-6f38d0c5.system.entry.js} +1 -1
  267. package/dist/ionic/{p-42a9f663.system.entry.js → p-70026e8f.system.entry.js} +1 -1
  268. package/dist/ionic/{p-72fa96bf.system.js → p-76893257.system.js} +1 -1
  269. package/dist/ionic/{p-c1797ec5.system.entry.js → p-78edc0cd.system.entry.js} +1 -1
  270. package/dist/ionic/{p-f0194418.system.entry.js → p-7c32fb95.system.entry.js} +1 -1
  271. package/dist/ionic/p-7c5e8706.entry.js +4 -0
  272. package/dist/ionic/{p-05d560ec.entry.js → p-7dc7514a.entry.js} +1 -1
  273. package/dist/ionic/{p-bd4787eb.entry.js → p-84513dfb.entry.js} +1 -1
  274. package/dist/ionic/{p-e04b9647.system.entry.js → p-84879f61.system.entry.js} +1 -1
  275. package/dist/ionic/{p-1131946f.system.entry.js → p-8569d759.system.entry.js} +1 -1
  276. package/dist/ionic/p-87ae4f6c.system.entry.js +4 -0
  277. package/dist/ionic/{p-eb07b88f.entry.js → p-8a671f16.entry.js} +1 -1
  278. package/dist/ionic/{p-123b4809.js → p-8ddc00f7.js} +1 -1
  279. package/dist/ionic/p-8e16390d.system.js +4 -0
  280. package/dist/ionic/{p-a8a56449.entry.js → p-8ebd9951.entry.js} +1 -1
  281. package/dist/ionic/p-8f1ce253.js +4 -0
  282. package/dist/ionic/{p-c747f89b.system.entry.js → p-92c2178e.system.entry.js} +1 -1
  283. package/dist/ionic/{p-9cd7ba27.system.js → p-95c44e02.system.js} +1 -1
  284. package/dist/ionic/{p-95d5a097.entry.js → p-97eca294.entry.js} +1 -1
  285. package/dist/ionic/{p-a85d9047.system.entry.js → p-9a6ab80a.system.entry.js} +1 -1
  286. package/dist/ionic/{p-e9f9388e.system.js → p-9beb5039.system.js} +1 -1
  287. package/dist/ionic/{p-5928fac9.system.entry.js → p-9f5b40c0.system.entry.js} +1 -1
  288. package/dist/ionic/{p-3d961d93.entry.js → p-9f6397ce.entry.js} +1 -1
  289. package/dist/ionic/{p-5c6a04bd.entry.js → p-a02b2d75.entry.js} +1 -1
  290. package/dist/ionic/{p-88e9052d.entry.js → p-a051c371.entry.js} +1 -1
  291. package/dist/ionic/{p-cb9e71e0.entry.js → p-a19f5ae1.entry.js} +1 -1
  292. package/dist/ionic/{p-7b1ed642.system.entry.js → p-a1bfaa5c.system.entry.js} +1 -1
  293. package/dist/ionic/{p-5c580e89.entry.js → p-a2ad515b.entry.js} +1 -1
  294. package/dist/ionic/{p-3079950e.entry.js → p-aa7ae6aa.entry.js} +1 -1
  295. package/dist/ionic/{p-69973389.system.entry.js → p-aaa4ffb3.system.entry.js} +1 -1
  296. package/dist/ionic/{p-abcedc15.system.entry.js → p-ac20160b.system.entry.js} +1 -1
  297. package/dist/ionic/{p-ba97a133.system.entry.js → p-ac979ebf.system.entry.js} +1 -1
  298. package/dist/ionic/{p-dbd70d97.system.entry.js → p-b37e4ee5.system.entry.js} +1 -1
  299. package/dist/ionic/{p-c771a6ef.entry.js → p-b498de69.entry.js} +1 -1
  300. package/dist/ionic/{p-30cd5e7b.js → p-b4d8fe47.js} +1 -1
  301. package/dist/ionic/{p-337ac0f5.entry.js → p-b8c4df21.entry.js} +1 -1
  302. package/dist/ionic/{p-89ca4c4b.system.js → p-b94882a9.system.js} +1 -1
  303. package/dist/ionic/{p-edcada2b.system.entry.js → p-b96699d3.system.entry.js} +1 -1
  304. package/dist/ionic/{p-64856c3c.system.entry.js → p-bc2c03d7.system.entry.js} +1 -1
  305. package/dist/ionic/{p-8f872991.entry.js → p-c3790581.entry.js} +1 -1
  306. package/dist/ionic/p-c5c3710c.js +4 -0
  307. package/dist/ionic/{p-2e14c533.system.js → p-c6fef62b.system.js} +1 -1
  308. package/dist/ionic/{p-aaaa615c.system.entry.js → p-c851b204.system.entry.js} +1 -1
  309. package/dist/ionic/{p-d39ab63d.entry.js → p-ccd419ae.entry.js} +1 -1
  310. package/dist/ionic/{p-68ba8e77.system.entry.js → p-cd055d60.system.entry.js} +1 -1
  311. package/dist/ionic/{p-027f3674.entry.js → p-ce2eabd5.entry.js} +1 -1
  312. package/dist/ionic/{p-b0ff8075.entry.js → p-d7260b87.entry.js} +1 -1
  313. package/dist/ionic/{p-f840d817.entry.js → p-d74ca358.entry.js} +1 -1
  314. package/dist/ionic/{p-657ccdd6.entry.js → p-d8607ede.entry.js} +1 -1
  315. package/dist/ionic/{p-c308f773.entry.js → p-d95c8e90.entry.js} +1 -1
  316. package/dist/ionic/{p-c11bab7e.entry.js → p-dbb4c012.entry.js} +1 -1
  317. package/dist/ionic/{p-0457213c.entry.js → p-dce9bc53.entry.js} +1 -1
  318. package/dist/ionic/{p-7173ba59.system.entry.js → p-df281664.system.entry.js} +1 -1
  319. package/dist/ionic/{p-2327064c.entry.js → p-df468a8f.entry.js} +1 -1
  320. package/dist/ionic/p-e1271366.js +5 -0
  321. package/dist/ionic/{p-b2595011.system.entry.js → p-e68980ff.system.entry.js} +1 -1
  322. package/dist/ionic/{p-1f19958f.system.entry.js → p-e6aaff14.system.entry.js} +1 -1
  323. package/dist/ionic/{p-dcb5711d.entry.js → p-ea8fbf09.entry.js} +1 -1
  324. package/dist/ionic/{p-a3df16b9.system.entry.js → p-eda7a1db.system.entry.js} +1 -1
  325. package/dist/ionic/{p-64db1331.entry.js → p-efe9180b.entry.js} +1 -1
  326. package/dist/ionic/{p-64761c90.entry.js → p-f1ad3b3d.entry.js} +1 -1
  327. package/dist/ionic/{p-45841d37.entry.js → p-f1cc690e.entry.js} +1 -1
  328. package/dist/ionic/{p-8e651c29.entry.js → p-f46775e4.entry.js} +1 -1
  329. package/dist/ionic/p-f74afe3b.entry.js +4 -0
  330. package/dist/ionic/{p-c39cc96d.system.entry.js → p-f7b43141.system.entry.js} +1 -1
  331. package/dist/ionic/{p-3a7de59c.entry.js → p-f88dd429.entry.js} +1 -1
  332. package/dist/ionic/p-f89ae259.js +4 -0
  333. package/dist/ionic/{p-9056778e.system.entry.js → p-f97b9cdd.system.entry.js} +1 -1
  334. package/dist/ionic/{p-9ec7208d.system.js → p-fd36799d.system.js} +1 -1
  335. package/dist/ionic/{p-7ce40e7b.entry.js → p-fd3f475f.entry.js} +1 -1
  336. package/dist/ionic/{p-d4cadd34.system.js → p-fd9a9db3.system.js} +1 -1
  337. package/dist/ionic/{p-b6279412.entry.js → p-fe92da17.entry.js} +1 -1
  338. package/dist/types/components/action-sheet/action-sheet.d.ts +0 -4
  339. package/dist/types/components/alert/alert.d.ts +0 -4
  340. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  341. package/dist/types/components/datetime/datetime.d.ts +16 -1
  342. package/dist/types/components/datetime/utils/format.d.ts +7 -1
  343. package/dist/types/components/loading/loading.d.ts +0 -4
  344. package/dist/types/components/modal/modal.d.ts +0 -4
  345. package/dist/types/components/picker/picker.d.ts +0 -4
  346. package/dist/types/components/popover/popover.d.ts +0 -4
  347. package/dist/types/components/toast/toast.d.ts +0 -4
  348. package/dist/types/components.d.ts +17 -9
  349. package/hydrate/index.d.ts +1 -1
  350. package/hydrate/index.js +136 -271
  351. package/package.json +3 -3
  352. package/dist/esm-es5/app-globals-5cf6195b.js +0 -4
  353. package/dist/esm-es5/data-0f3ab200.js +0 -4
  354. package/dist/esm-es5/md.transition-564937a7.js +0 -4
  355. package/dist/ionic/p-0b34d3a7.system.js +0 -4
  356. package/dist/ionic/p-0e23c289.system.entry.js +0 -4
  357. package/dist/ionic/p-21ca1f1c.js +0 -4
  358. package/dist/ionic/p-23c73017.entry.js +0 -4
  359. package/dist/ionic/p-5c2ae448.js +0 -4
  360. package/dist/ionic/p-7330c044.system.js +0 -4
  361. package/dist/ionic/p-a6e465f5.entry.js +0 -4
  362. package/dist/ionic/p-bdca4784.js +0 -4
  363. package/dist/ionic/p-dbcba5a2.js +0 -4
  364. package/dist/ionic/p-e81bf09e.system.entry.js +0 -4
  365. package/dist/ionic/p-ed7a529f.js +0 -5
  366. package/dist/ionic/p-f7dce541.js +0 -4
@@ -396,10 +396,6 @@ 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.
403
399
  */
404
400
  async dismiss(data, role) {
405
401
  var _a;
@@ -530,9 +526,9 @@ export class Modal {
530
526
  const mode = getIonMode(this);
531
527
  const isCardModal = presentingElement !== undefined && mode === 'ios';
532
528
  const isHandleCycle = handleBehavior === 'cycle';
533
- return (h(Host, Object.assign({ key: '0c2c4369ab2df4ef4660addea5e927c6a0232864', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
529
+ return (h(Host, Object.assign({ key: '9a305d82f123283b6200c42d67393b378bb309a8', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
534
530
  zIndex: `${20000 + this.overlayIndex}`,
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',
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',
536
532
  /*
537
533
  role and aria-modal must be used on the
538
534
  same element. They must also be set inside the
@@ -541,7 +537,7 @@ export class Modal {
541
537
  */
542
538
  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",
543
539
  // Prevents the handle from receiving keyboard focus when it does not cycle
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' }))));
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' }))));
545
541
  }
546
542
  static get is() { return "ion-modal"; }
547
543
  static get encapsulation() { return "shadow"; }
@@ -1236,7 +1232,7 @@ export class Modal {
1236
1232
  }, {
1237
1233
  "name": "role",
1238
1234
  "type": "string | undefined",
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."
1235
+ "docs": "The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
1240
1236
  }],
1241
1237
  "references": {
1242
1238
  "Promise": {
@@ -1257,7 +1253,7 @@ export class Modal {
1257
1253
  "text": "data Any data to emit in the dismiss events."
1258
1254
  }, {
1259
1255
  "name": "param",
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."
1256
+ "text": "role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'."
1261
1257
  }]
1262
1258
  }
1263
1259
  },
@@ -109,10 +109,6 @@ 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.
116
112
  */
117
113
  async dismiss(data, role) {
118
114
  const unlock = await this.lockController.lock();
@@ -184,11 +180,11 @@ export class Picker {
184
180
  render() {
185
181
  const { htmlAttributes } = this;
186
182
  const mode = getIonMode(this);
187
- return (h(Host, Object.assign({ key: 'c266cc072afaba2da22f70d8b62dc4bc6756d188', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
183
+ return (h(Host, Object.assign({ key: '8b9049c5315e701dff3f7457be646941bb3cc0df', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
188
184
  zIndex: `${20000 + this.overlayIndex}`,
189
185
  }, class: Object.assign({ [mode]: true,
190
186
  // Used internally for styling
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" })));
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" })));
192
188
  }
193
189
  static get is() { return "ion-picker"; }
194
190
  static get encapsulation() { return "scoped"; }
@@ -697,7 +693,7 @@ export class Picker {
697
693
  }, {
698
694
  "name": "role",
699
695
  "type": "string | undefined",
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."
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\"`."
701
697
  }],
702
698
  "references": {
703
699
  "Promise": {
@@ -714,7 +710,7 @@ export class Picker {
714
710
  "text": "data Any data to emit in the dismiss events."
715
711
  }, {
716
712
  "name": "param",
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."
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\"`."
718
714
  }]
719
715
  }
720
716
  },
@@ -280,10 +280,6 @@ 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.
287
283
  */
288
284
  async dismiss(data, role, dismissParentPopover = true) {
289
285
  const unlock = await this.lockController.lock();
@@ -335,9 +331,9 @@ export class Popover {
335
331
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
336
332
  const desktop = isPlatform('desktop');
337
333
  const enableArrow = arrow && !parentPopover;
338
- return (h(Host, Object.assign({ key: '104a5bf92a9bbd2efc71d499a8500e5d55f81711', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
334
+ return (h(Host, Object.assign({ key: 'f335ae001173483e6a973b2084f8a7b6b895ae5d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
339
335
  zIndex: `${20000 + this.overlayIndex}`,
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' })))));
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' })))));
341
337
  }
342
338
  static get is() { return "ion-popover"; }
343
339
  static get encapsulation() { return "shadow"; }
@@ -1134,7 +1130,7 @@ export class Popover {
1134
1130
  }, {
1135
1131
  "name": "dismissParentPopover",
1136
1132
  "type": "boolean",
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."
1133
+ "docs": "If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
1138
1134
  }],
1139
1135
  "references": {
1140
1136
  "Promise": {
@@ -1158,7 +1154,7 @@ export class Popover {
1158
1154
  "text": "role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'."
1159
1155
  }, {
1160
1156
  "name": "param",
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."
1157
+ "text": "dismissParentPopover If `true`, dismissing this popover will also dismiss\na parent popover if this popover is nested. Defaults to `true`."
1162
1158
  }]
1163
1159
  }
1164
1160
  },
@@ -80,18 +80,6 @@ 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
- });
95
83
  it('should have duration set to 0', async () => {
96
84
  const page = await newSpecPage({
97
85
  components: [Toast],
@@ -217,10 +217,6 @@ 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.
224
220
  */
225
221
  async dismiss(data, role) {
226
222
  var _a, _b;
@@ -388,9 +384,9 @@ export class Toast {
388
384
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
389
385
  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);
390
386
  }
391
- return (h(Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
387
+ return (h(Host, Object.assign({ key: '15a5c3e8d475435c838b70c55ef2e7cc12d6abfb', tabindex: "-1" }, this.htmlAttributes, { style: {
392
388
  zIndex: `${60000 + this.overlayIndex}`,
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')))));
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')))));
394
390
  }
395
391
  static get is() { return "ion-toast"; }
396
392
  static get encapsulation() { return "shadow"; }
@@ -1036,7 +1032,7 @@ export class Toast {
1036
1032
  }, {
1037
1033
  "name": "role",
1038
1034
  "type": "string | undefined",
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."
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\"`."
1040
1036
  }],
1041
1037
  "references": {
1042
1038
  "Promise": {
@@ -1058,7 +1054,7 @@ export class Toast {
1058
1054
  "text": "data Any data to emit in the dismiss events."
1059
1055
  }, {
1060
1056
  "name": "param",
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."
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\"`."
1062
1058
  }]
1063
1059
  }
1064
1060
  },
@@ -409,15 +409,6 @@ 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
- }
421
412
  overlay.presented = true;
422
413
  overlay.willPresent.emit();
423
414
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -440,7 +431,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
440
431
  * from returning focus as a result.
441
432
  */
442
433
  if (overlay.el.tagName !== 'ION-TOAST') {
443
- restoreElementFocus(overlay.el);
434
+ focusPreviousElementOnDismiss(overlay.el);
444
435
  }
445
436
  /**
446
437
  * If the focused element is already
@@ -451,14 +442,6 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
451
442
  if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
452
443
  overlay.el.focus();
453
444
  }
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');
462
445
  };
463
446
  /**
464
447
  * When an overlay component is dismissed,
@@ -470,7 +453,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
470
453
  * to where they were before they
471
454
  * opened the overlay.
472
455
  */
473
- const restoreElementFocus = async (overlayEl) => {
456
+ const focusPreviousElementOnDismiss = async (overlayEl) => {
474
457
  let previousElement = document.activeElement;
475
458
  if (!previousElement) {
476
459
  return;
@@ -481,36 +464,10 @@ const restoreElementFocus = async (overlayEl) => {
481
464
  previousElement = shadowRoot.querySelector(focusableQueryString) || previousElement;
482
465
  }
483
466
  await overlayEl.onDidDismiss();
484
- /**
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
507
- */
508
- if (document.activeElement === null || document.activeElement === document.body) {
509
- previousElement.focus();
510
- }
467
+ previousElement.focus();
511
468
  };
512
469
  export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
513
- var _a, _b, _c;
470
+ var _a, _b;
514
471
  if (!overlay.presented) {
515
472
  return false;
516
473
  }
@@ -561,13 +518,6 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
561
518
  console.error(err);
562
519
  }
563
520
  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
- }
571
521
  return true;
572
522
  };
573
523
  const getAppRoot = (doc) => {
@@ -175,38 +175,5 @@ 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
- });
211
178
  });
212
179
  });
@@ -100,54 +100,3 @@ 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
- });