voyager-ionic-core 7.7.0 → 7.7.3

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 (421) hide show
  1. package/components/action-sheet.js +8 -4
  2. package/components/alert.js +6 -2
  3. package/components/helpers.js +2 -2
  4. package/components/ion-loading.js +6 -2
  5. package/components/ion-modal.js +8 -6
  6. package/components/ion-picker.js +6 -2
  7. package/components/ion-select.js +3 -3
  8. package/components/ion-toast.js +6 -2
  9. package/components/item.js +3 -12
  10. package/components/label.js +2 -2
  11. package/components/overlays.js +120 -29
  12. package/components/popover.js +7 -3
  13. package/components/select-popover.js +2 -2
  14. package/dist/cjs/{animation-fdab9de5.js → animation-c2840aea.js} +1 -1
  15. package/dist/cjs/{app-globals-5a17c5e1.js → app-globals-92ad1b3d.js} +1 -1
  16. package/dist/cjs/{button-active-b8c3f603.js → button-active-2d6520ec.js} +1 -1
  17. package/dist/cjs/{form-controller-7b90d7b7.js → form-controller-c83330c0.js} +1 -1
  18. package/dist/cjs/{framework-delegate-a3e6d060.js → framework-delegate-e0e13baa.js} +1 -1
  19. package/dist/cjs/{hardware-back-button-d23873bb.js → hardware-back-button-2696acaf.js} +2 -2
  20. package/dist/cjs/{helpers-2e1028fa.js → helpers-da4c0ed1.js} +2 -2
  21. package/dist/cjs/{index-5a471146.js → index-0ffe376d.js} +25 -22
  22. package/dist/cjs/{index-8c679cbf.js → index-4c96691f.js} +4 -4
  23. package/dist/cjs/{index-10da82ce.js → index-62290fec.js} +1 -1
  24. package/dist/cjs/{index-84351d21.js → index-9bfcb6e8.js} +4 -4
  25. package/dist/cjs/{index-53d162b2.js → index-bef98850.js} +1 -1
  26. package/dist/cjs/index.cjs.js +11 -11
  27. package/dist/cjs/{input-shims-6f804705.js → input-shims-a9a85bb9.js} +2 -2
  28. package/dist/cjs/{input.utils-d693d18a.js → input.utils-d7dca90f.js} +1 -1
  29. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  30. package/dist/cjs/ion-action-sheet.cjs.entry.js +16 -12
  31. package/dist/cjs/ion-alert.cjs.entry.js +14 -10
  32. package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
  33. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  37. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  39. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  40. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-datetime_3.cjs.entry.js +13 -9
  44. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  45. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
  47. package/dist/cjs/ion-input.cjs.entry.js +6 -6
  48. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  49. package/dist/cjs/ion-item_8.cjs.entry.js +7 -7
  50. package/dist/cjs/ion-loading.cjs.entry.js +13 -9
  51. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  52. package/dist/cjs/ion-modal.cjs.entry.js +16 -14
  53. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  54. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-picker-internal.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-popover.cjs.entry.js +15 -11
  57. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  58. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  60. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  61. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-select_3.cjs.entry.js +12 -12
  67. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  70. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-textarea.cjs.entry.js +6 -6
  73. package/dist/cjs/ion-toast.cjs.entry.js +13 -9
  74. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  75. package/dist/cjs/{ionic-global-7358c23e.js → ionic-global-59a10130.js} +1 -1
  76. package/dist/cjs/ionic.cjs.js +6 -6
  77. package/dist/cjs/{ios.transition-8e40c54e.js → ios.transition-96679580.js} +4 -4
  78. package/dist/cjs/loader.cjs.js +5 -5
  79. package/dist/cjs/{md.transition-597a2479.js → md.transition-d6c98822.js} +4 -4
  80. package/dist/cjs/{notch-controller-db0127c4.js → notch-controller-bfbcbb7a.js} +1 -1
  81. package/dist/cjs/{overlays-eaf2075f.js → overlays-db5d96f3.js} +122 -32
  82. package/dist/cjs/{status-tap-b0bfea34.js → status-tap-7ad5f0fb.js} +3 -3
  83. package/dist/cjs/{swipe-back-7a848bb8.js → swipe-back-dcd0d4a9.js} +1 -1
  84. package/dist/collection/collection-manifest.json +1 -1
  85. package/dist/collection/components/action-sheet/action-sheet.ios.css +13 -1
  86. package/dist/collection/components/action-sheet/action-sheet.js +9 -5
  87. package/dist/collection/components/alert/alert.js +8 -4
  88. package/dist/collection/components/item/item.js +3 -12
  89. package/dist/collection/components/label/label.ios.css +0 -4
  90. package/dist/collection/components/label/label.md.css +0 -4
  91. package/dist/collection/components/label/test/item/item.e2e.js +24 -0
  92. package/dist/collection/components/loading/loading.js +8 -4
  93. package/dist/collection/components/modal/modal.js +10 -8
  94. package/dist/collection/components/modal/test/animations/modal.e2e.js +36 -0
  95. package/dist/collection/components/picker/picker.js +8 -4
  96. package/dist/collection/components/popover/popover.ios.css +7 -0
  97. package/dist/collection/components/popover/popover.js +8 -4
  98. package/dist/collection/components/select/select.js +3 -3
  99. package/dist/collection/components/select-popover/select-popover.ios.css +10 -0
  100. package/dist/collection/components/select-popover/select-popover.md.css +10 -0
  101. package/dist/collection/components/toast/test/toast.spec.js +12 -0
  102. package/dist/collection/components/toast/toast.js +8 -4
  103. package/dist/collection/utils/helpers.js +1 -1
  104. package/dist/collection/utils/overlays.js +119 -28
  105. package/dist/collection/utils/test/overlays/overlays.e2e.js +122 -0
  106. package/dist/collection/utils/test/overlays/overlays.spec.js +51 -0
  107. package/dist/docs.json +23 -23
  108. package/dist/esm/{animation-60dbdd13.js → animation-6a0c5338.js} +1 -1
  109. package/dist/esm/{app-globals-47226a12.js → app-globals-5cf6195b.js} +1 -1
  110. package/dist/esm/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  111. package/dist/esm/{form-controller-014aa89f.js → form-controller-21dd62b1.js} +1 -1
  112. package/dist/esm/{framework-delegate-fed7fe7c.js → framework-delegate-ed4ba327.js} +1 -1
  113. package/dist/esm/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +2 -2
  114. package/dist/esm/{helpers-c0b9ca37.js → helpers-be245865.js} +2 -2
  115. package/dist/esm/{index-d64f34ea.js → index-020f5464.js} +1 -1
  116. package/dist/esm/{index-4b98143d.js → index-348ed70a.js} +4 -4
  117. package/dist/esm/{index-73881b51.js → index-4c30cddd.js} +25 -22
  118. package/dist/esm/{index-48209844.js → index-e1b622e3.js} +4 -4
  119. package/dist/esm/{index-eb12ef92.js → index-f3946ac1.js} +1 -1
  120. package/dist/esm/index.js +11 -11
  121. package/dist/esm/{input-shims-b90ca55f.js → input-shims-5329bbe8.js} +2 -2
  122. package/dist/esm/{input.utils-6e9b0046.js → input.utils-a445f677.js} +1 -1
  123. package/dist/esm/ion-accordion_2.entry.js +3 -3
  124. package/dist/esm/ion-action-sheet.entry.js +16 -12
  125. package/dist/esm/ion-alert.entry.js +14 -10
  126. package/dist/esm/ion-app_8.entry.js +12 -12
  127. package/dist/esm/ion-avatar_3.entry.js +2 -2
  128. package/dist/esm/ion-back-button.entry.js +3 -3
  129. package/dist/esm/ion-backdrop.entry.js +2 -2
  130. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  131. package/dist/esm/ion-button_2.entry.js +3 -3
  132. package/dist/esm/ion-card_5.entry.js +3 -3
  133. package/dist/esm/ion-checkbox.entry.js +4 -4
  134. package/dist/esm/ion-chip.entry.js +2 -2
  135. package/dist/esm/ion-col_3.entry.js +2 -2
  136. package/dist/esm/ion-datetime-button.entry.js +3 -3
  137. package/dist/esm/ion-datetime_3.entry.js +13 -9
  138. package/dist/esm/ion-fab_3.entry.js +3 -3
  139. package/dist/esm/ion-img.entry.js +3 -3
  140. package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
  141. package/dist/esm/ion-input.entry.js +6 -6
  142. package/dist/esm/ion-item-option_3.entry.js +4 -4
  143. package/dist/esm/ion-item_8.entry.js +7 -7
  144. package/dist/esm/ion-loading.entry.js +13 -9
  145. package/dist/esm/ion-menu_3.entry.js +8 -8
  146. package/dist/esm/ion-modal.entry.js +16 -14
  147. package/dist/esm/ion-nav_2.entry.js +6 -6
  148. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  149. package/dist/esm/ion-picker-internal.entry.js +2 -2
  150. package/dist/esm/ion-popover.entry.js +15 -11
  151. package/dist/esm/ion-progress-bar.entry.js +3 -3
  152. package/dist/esm/ion-radio_2.entry.js +4 -4
  153. package/dist/esm/ion-range.entry.js +5 -5
  154. package/dist/esm/ion-refresher_2.entry.js +5 -5
  155. package/dist/esm/ion-reorder_2.entry.js +4 -4
  156. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  157. package/dist/esm/ion-route_4.entry.js +3 -3
  158. package/dist/esm/ion-searchbar.entry.js +3 -3
  159. package/dist/esm/ion-segment_2.entry.js +3 -3
  160. package/dist/esm/ion-select_3.entry.js +12 -12
  161. package/dist/esm/ion-spinner.entry.js +2 -2
  162. package/dist/esm/ion-split-pane.entry.js +2 -2
  163. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  164. package/dist/esm/ion-tab_2.entry.js +3 -3
  165. package/dist/esm/ion-text.entry.js +2 -2
  166. package/dist/esm/ion-textarea.entry.js +6 -6
  167. package/dist/esm/ion-toast.entry.js +13 -9
  168. package/dist/esm/ion-toggle.entry.js +4 -4
  169. package/dist/esm/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  170. package/dist/esm/ionic.js +7 -7
  171. package/dist/esm/{ios.transition-7ff7381d.js → ios.transition-7459f819.js} +4 -4
  172. package/dist/esm/loader.js +6 -6
  173. package/dist/esm/{md.transition-28a9a26b.js → md.transition-b8224313.js} +4 -4
  174. package/dist/esm/{notch-controller-15d281a4.js → notch-controller-6bd3e0f9.js} +1 -1
  175. package/dist/esm/{overlays-fad5fe01.js → overlays-19b26885.js} +123 -32
  176. package/dist/esm/{status-tap-2b335fb7.js → status-tap-b41ece3c.js} +3 -3
  177. package/dist/esm/{swipe-back-fa0ec5cd.js → swipe-back-c6d0e5d9.js} +1 -1
  178. package/dist/esm-es5/{animation-60dbdd13.js → animation-6a0c5338.js} +1 -1
  179. package/dist/esm-es5/app-globals-5cf6195b.js +4 -0
  180. package/dist/esm-es5/{button-active-4bee452c.js → button-active-47ac8092.js} +1 -1
  181. package/dist/esm-es5/{form-controller-014aa89f.js → form-controller-21dd62b1.js} +1 -1
  182. package/dist/esm-es5/{framework-delegate-fed7fe7c.js → framework-delegate-ed4ba327.js} +1 -1
  183. package/dist/esm-es5/{hardware-back-button-f42b9c80.js → hardware-back-button-b410a047.js} +1 -1
  184. package/dist/esm-es5/helpers-be245865.js +4 -0
  185. package/dist/esm-es5/index-020f5464.js +4 -0
  186. package/dist/esm-es5/{index-4b98143d.js → index-348ed70a.js} +1 -1
  187. package/dist/esm-es5/{index-73881b51.js → index-4c30cddd.js} +1 -1
  188. package/dist/esm-es5/{index-48209844.js → index-e1b622e3.js} +1 -1
  189. package/dist/esm-es5/{index-eb12ef92.js → index-f3946ac1.js} +1 -1
  190. package/dist/esm-es5/index.js +1 -1
  191. package/dist/esm-es5/{input-shims-b90ca55f.js → input-shims-5329bbe8.js} +1 -1
  192. package/dist/esm-es5/{input.utils-6e9b0046.js → input.utils-a445f677.js} +1 -1
  193. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  195. package/dist/esm-es5/ion-alert.entry.js +1 -1
  196. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  197. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  198. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  199. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  200. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  201. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  202. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  203. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  204. package/dist/esm-es5/ion-chip.entry.js +1 -1
  205. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  206. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  207. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  208. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-img.entry.js +1 -1
  210. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  211. package/dist/esm-es5/ion-input.entry.js +1 -1
  212. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  213. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  214. package/dist/esm-es5/ion-loading.entry.js +1 -1
  215. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  216. package/dist/esm-es5/ion-modal.entry.js +1 -1
  217. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  218. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  219. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  220. package/dist/esm-es5/ion-popover.entry.js +1 -1
  221. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  222. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-range.entry.js +1 -1
  224. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  225. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  226. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  227. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  228. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  229. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  231. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  232. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  233. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  234. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  235. package/dist/esm-es5/ion-text.entry.js +1 -1
  236. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  237. package/dist/esm-es5/ion-toast.entry.js +1 -1
  238. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  239. package/dist/esm-es5/{ionic-global-778b7863.js → ionic-global-ad9a1810.js} +1 -1
  240. package/dist/esm-es5/ionic.js +2 -2
  241. package/dist/esm-es5/{ios.transition-7ff7381d.js → ios.transition-7459f819.js} +1 -1
  242. package/dist/esm-es5/loader.js +2 -2
  243. package/dist/esm-es5/md.transition-b8224313.js +4 -0
  244. package/dist/esm-es5/{notch-controller-15d281a4.js → notch-controller-6bd3e0f9.js} +1 -1
  245. package/dist/esm-es5/overlays-19b26885.js +4 -0
  246. package/dist/esm-es5/{status-tap-2b335fb7.js → status-tap-b41ece3c.js} +1 -1
  247. package/dist/esm-es5/{swipe-back-fa0ec5cd.js → swipe-back-c6d0e5d9.js} +1 -1
  248. package/dist/ionic/index.esm.js +1 -1
  249. package/dist/ionic/ionic.esm.js +1 -1
  250. package/dist/ionic/ionic.js +1 -1
  251. package/dist/ionic/{p-38a6fee7.entry.js → p-021f9d72.entry.js} +1 -1
  252. package/dist/ionic/{p-680f96e8.system.entry.js → p-02542247.system.entry.js} +1 -1
  253. package/dist/ionic/p-02ad4bbe.js +4 -0
  254. package/dist/ionic/{p-b4d8fe47.js → p-05253db9.js} +1 -1
  255. package/dist/ionic/{p-efe9180b.entry.js → p-079da3df.entry.js} +1 -1
  256. package/dist/ionic/p-0b34d3a7.system.js +4 -0
  257. package/dist/ionic/{p-51f08a9f.entry.js → p-12527c4b.entry.js} +1 -1
  258. package/dist/ionic/{p-c6fef62b.system.js → p-125f8cdd.system.js} +1 -1
  259. package/dist/ionic/{p-b253ad7f.js → p-12a8643e.js} +1 -1
  260. package/dist/ionic/{p-f7b43141.system.entry.js → p-15a40a0b.system.entry.js} +1 -1
  261. package/dist/ionic/{p-5eea8b4c.system.js → p-1636923f.system.js} +1 -1
  262. package/dist/ionic/{p-333f06ed.entry.js → p-16a61810.entry.js} +1 -1
  263. package/dist/ionic/p-1846513c.js +4 -0
  264. package/dist/ionic/{p-6f38d0c5.system.entry.js → p-18918a24.system.entry.js} +1 -1
  265. package/dist/ionic/{p-ce2eabd5.entry.js → p-1a680496.entry.js} +1 -1
  266. package/dist/ionic/{p-b8c685a7.system.js → p-1bc9b5f5.system.js} +1 -1
  267. package/dist/ionic/{p-396c1a55.entry.js → p-1f16d040.entry.js} +1 -1
  268. package/dist/ionic/{p-e6aaff14.system.entry.js → p-1f19958f.system.entry.js} +1 -1
  269. package/dist/ionic/{p-d7260b87.entry.js → p-2178329b.entry.js} +1 -1
  270. package/dist/ionic/p-257046d2.system.js +4 -0
  271. package/dist/ionic/p-262024fd.entry.js +4 -0
  272. package/dist/ionic/{p-9f5b40c0.system.entry.js → p-2765a571.system.entry.js} +1 -1
  273. package/dist/ionic/{p-7c32fb95.system.entry.js → p-288649db.system.entry.js} +1 -1
  274. package/dist/ionic/{p-94be3ad7.js → p-2c118b1e.js} +1 -1
  275. package/dist/ionic/{p-3a98f8db.entry.js → p-2c4bfe1c.entry.js} +1 -1
  276. package/dist/ionic/{p-25b08bc4.system.js → p-2c86025e.system.js} +1 -1
  277. package/dist/ionic/{p-8569d759.system.entry.js → p-2ea71956.system.entry.js} +1 -1
  278. package/dist/ionic/{p-9db1e4c5.entry.js → p-2fd3c3dd.entry.js} +1 -1
  279. package/dist/ionic/{p-aa7ae6aa.entry.js → p-3079950e.entry.js} +1 -1
  280. package/dist/ionic/{p-b8c4df21.entry.js → p-337ac0f5.entry.js} +1 -1
  281. package/dist/ionic/p-36be3332.js +4 -0
  282. package/dist/ionic/{p-9eb4ea47.system.entry.js → p-437f4d02.system.entry.js} +1 -1
  283. package/dist/ionic/{p-c858f685.js → p-46bcc2f5.js} +1 -1
  284. package/dist/ionic/{p-108f730a.entry.js → p-4788693d.entry.js} +1 -1
  285. package/dist/ionic/{p-5f456b3c.system.entry.js → p-479f5926.system.entry.js} +1 -1
  286. package/dist/ionic/{p-34947dff.system.entry.js → p-482ea916.system.entry.js} +1 -1
  287. package/dist/ionic/p-49f481cc.system.entry.js +4 -0
  288. package/dist/ionic/{p-0eef8b34.system.entry.js → p-4b8a620f.system.entry.js} +1 -1
  289. package/dist/ionic/{p-df468a8f.entry.js → p-521b3971.entry.js} +1 -1
  290. package/dist/ionic/{p-31c495c2.js → p-56ee6d9a.js} +1 -1
  291. package/dist/ionic/{p-30c9e049.system.entry.js → p-5cb5f63d.system.entry.js} +1 -1
  292. package/dist/ionic/{p-1aa7c019.js → p-5d7e32ce.js} +1 -1
  293. package/dist/ionic/{p-4fc40349.system.entry.js → p-5de920f4.system.entry.js} +1 -1
  294. package/dist/ionic/{p-6871553b.system.js → p-62b7320a.system.js} +1 -1
  295. package/dist/ionic/{p-bc2c03d7.system.entry.js → p-644d03d7.system.entry.js} +1 -1
  296. package/dist/ionic/{p-3f028207.system.js → p-6525a8cd.system.js} +1 -1
  297. package/dist/ionic/{p-d8607ede.entry.js → p-657ccdd6.entry.js} +1 -1
  298. package/dist/ionic/p-6812d37d.js +4 -0
  299. package/dist/ionic/{p-61ba2137.system.js → p-6afef6c1.system.js} +1 -1
  300. package/dist/ionic/p-6b6ca3f5.system.entry.js +4 -0
  301. package/dist/ionic/p-6c45c617.js +4 -0
  302. package/dist/ionic/{p-8a671f16.entry.js → p-6e23d039.entry.js} +1 -1
  303. package/dist/ionic/p-6f59cdbc.system.entry.js +4 -0
  304. package/dist/ionic/{p-dce9bc53.entry.js → p-70fbf4e2.entry.js} +1 -1
  305. package/dist/ionic/{p-20a6513f.system.entry.js → p-717e2526.system.entry.js} +1 -1
  306. package/dist/ionic/{p-76893257.system.js → p-72fa96bf.system.js} +1 -1
  307. package/dist/ionic/{p-0fd295ef.system.entry.js → p-741a0f0d.system.entry.js} +1 -1
  308. package/dist/ionic/{p-1c531ca2.entry.js → p-7670acd8.entry.js} +1 -1
  309. package/dist/ionic/{p-84879f61.system.entry.js → p-76b8bcb8.system.entry.js} +1 -1
  310. package/dist/ionic/{p-a3f572a7.js → p-779aede8.js} +1 -1
  311. package/dist/ionic/{p-9f6397ce.entry.js → p-7a615a5a.entry.js} +1 -1
  312. package/dist/ionic/{p-89b5aff2.entry.js → p-7e16220b.entry.js} +1 -1
  313. package/dist/ionic/{p-a1bfaa5c.system.entry.js → p-7e838f43.system.entry.js} +1 -1
  314. package/dist/ionic/{p-2da0a76c.entry.js → p-7f30ad48.entry.js} +1 -1
  315. package/dist/ionic/{p-70026e8f.system.entry.js → p-80aed9fb.system.entry.js} +1 -1
  316. package/dist/ionic/{p-a2ad515b.entry.js → p-822730c4.entry.js} +1 -1
  317. package/dist/ionic/{p-dbb4c012.entry.js → p-84b85535.entry.js} +1 -1
  318. package/dist/ionic/p-85f66c3c.entry.js +4 -0
  319. package/dist/ionic/{p-d181166c.system.entry.js → p-860e2539.system.entry.js} +1 -1
  320. package/dist/ionic/{p-58e3ae88.system.entry.js → p-86813176.system.entry.js} +1 -1
  321. package/dist/ionic/{p-a051c371.entry.js → p-88e9052d.entry.js} +1 -1
  322. package/dist/ionic/{p-b94882a9.system.js → p-89ca4c4b.system.js} +1 -1
  323. package/dist/ionic/{p-c569d1c8.entry.js → p-8cc34120.entry.js} +1 -1
  324. package/dist/ionic/{p-f46775e4.entry.js → p-8e651c29.entry.js} +1 -1
  325. package/dist/ionic/{p-f97b9cdd.system.entry.js → p-9056778e.system.entry.js} +1 -1
  326. package/dist/ionic/{p-92c2178e.system.entry.js → p-91f4e611.system.entry.js} +1 -1
  327. package/dist/ionic/{p-9393a49f.js → p-942a9358.js} +1 -1
  328. package/dist/ionic/{p-ef441122.entry.js → p-96084f36.entry.js} +1 -1
  329. package/dist/ionic/{p-a114530c.entry.js → p-973b4db3.entry.js} +1 -1
  330. package/dist/ionic/{p-3c6f02cf.system.js → p-97ca0cb9.system.js} +1 -1
  331. package/dist/ionic/{p-a02b2d75.entry.js → p-98aa0553.entry.js} +1 -1
  332. package/dist/ionic/{p-1f6cdf2c.system.entry.js → p-9998cb62.system.entry.js} +1 -1
  333. package/dist/ionic/{p-5615cf3f.system.entry.js → p-9de75bac.system.entry.js} +1 -1
  334. package/dist/ionic/{p-3cdbaa49.entry.js → p-a02ea777.entry.js} +1 -1
  335. package/dist/ionic/{p-c2289cd1.js → p-a1036ce7.js} +1 -1
  336. package/dist/ionic/{p-fd3f475f.entry.js → p-a1222c24.entry.js} +1 -1
  337. package/dist/ionic/{p-eda7a1db.system.entry.js → p-a3df16b9.system.entry.js} +1 -1
  338. package/dist/ionic/{p-dd60faa5.system.entry.js → p-a4aa6dd2.system.entry.js} +1 -1
  339. package/dist/ionic/{p-49543c9c.system.js → p-a667dd1f.system.js} +1 -1
  340. package/dist/ionic/{p-8ddc00f7.js → p-a6c0a380.js} +1 -1
  341. package/dist/ionic/{p-5e60dbc8.entry.js → p-a8459bfb.entry.js} +1 -1
  342. package/dist/ionic/{p-9a6ab80a.system.entry.js → p-a85d9047.system.entry.js} +1 -1
  343. package/dist/ionic/{p-ac20160b.system.entry.js → p-abcedc15.system.entry.js} +1 -1
  344. package/dist/ionic/{p-e68980ff.system.entry.js → p-ae2b3a7a.system.entry.js} +1 -1
  345. package/dist/ionic/{p-eb1fdf9f.system.entry.js → p-ae828bd9.system.entry.js} +1 -1
  346. package/dist/ionic/{p-20f7a91e.system.entry.js → p-b0aa3806.system.entry.js} +1 -1
  347. package/dist/ionic/{p-078fd095.system.entry.js → p-b27bba38.system.entry.js} +1 -1
  348. package/dist/ionic/p-b4d2f43c.system.js +4 -0
  349. package/dist/ionic/{p-594ead2f.entry.js → p-b58686e0.entry.js} +1 -1
  350. package/dist/ionic/{p-fe92da17.entry.js → p-b6279412.entry.js} +1 -1
  351. package/dist/ionic/{p-400574bf.entry.js → p-b727af6a.entry.js} +1 -1
  352. package/dist/ionic/{p-a19f5ae1.entry.js → p-ba0fbecc.entry.js} +1 -1
  353. package/dist/ionic/{p-0e29919c.system.entry.js → p-baf8eeac.system.entry.js} +1 -1
  354. package/dist/ionic/{p-95c44e02.system.js → p-bcd9cad8.system.js} +1 -1
  355. package/dist/ionic/{p-37c33319.system.js → p-bd313b73.system.js} +1 -1
  356. package/dist/ionic/p-bdca4784.js +4 -0
  357. package/dist/ionic/{p-0ae25399.system.entry.js → p-c1a871ff.system.entry.js} +1 -1
  358. package/dist/ionic/{p-c3d041af.entry.js → p-c1c7309e.entry.js} +1 -1
  359. package/dist/ionic/{p-e6cfaa07.system.entry.js → p-c7288e78.system.entry.js} +1 -1
  360. package/dist/ionic/{p-d74ca358.entry.js → p-cb3065b8.entry.js} +1 -1
  361. package/dist/ionic/{p-5a0c301f.entry.js → p-cb9812f7.entry.js} +1 -1
  362. package/dist/ionic/{p-55d5cd00.system.js → p-cbcffe6e.system.js} +1 -1
  363. package/dist/ionic/{p-df281664.system.entry.js → p-ce1c0a0e.system.entry.js} +1 -1
  364. package/dist/ionic/{p-4b2d5b9c.js → p-ceceac26.js} +1 -1
  365. package/dist/ionic/p-cfb4d7e0.js +4 -0
  366. package/dist/ionic/{p-3a54c070.system.entry.js → p-d143fefa.system.entry.js} +1 -1
  367. package/dist/ionic/{p-97eca294.entry.js → p-d425b1de.entry.js} +1 -1
  368. package/dist/ionic/{p-78edc0cd.system.entry.js → p-d6c6541b.system.entry.js} +1 -1
  369. package/dist/ionic/{p-341b4519.js → p-de55ec45.js} +1 -1
  370. package/dist/ionic/{p-001010b6.system.js → p-df504a37.system.js} +1 -1
  371. package/dist/ionic/{p-ea8fbf09.entry.js → p-dff97cfa.entry.js} +1 -1
  372. package/dist/ionic/{p-d95c8e90.entry.js → p-e1c52dc6.entry.js} +1 -1
  373. package/dist/ionic/{p-044ad008.system.entry.js → p-e4e74b5f.system.entry.js} +1 -1
  374. package/dist/ionic/{p-cd055d60.system.entry.js → p-e626800f.system.entry.js} +1 -1
  375. package/dist/ionic/{p-84f589e1.entry.js → p-e94c1402.entry.js} +1 -1
  376. package/dist/ionic/{p-30d77a91.system.js → p-ebc1ca90.system.js} +1 -1
  377. package/dist/ionic/{p-2f66e177.system.entry.js → p-ebc86ce9.system.entry.js} +1 -1
  378. package/dist/ionic/{p-88ca4854.entry.js → p-ed4760ef.entry.js} +1 -1
  379. package/dist/ionic/p-ed7a529f.js +5 -0
  380. package/dist/ionic/{p-fd36799d.system.js → p-f02c41af.system.js} +1 -1
  381. package/dist/ionic/{p-1d8c2cfc.system.entry.js → p-f0e54781.system.entry.js} +1 -1
  382. package/dist/ionic/{p-f88dd429.entry.js → p-fa8d3b01.entry.js} +1 -1
  383. package/dist/ionic/p-fbd01db3.system.js +4 -0
  384. package/dist/ionic/{p-e2bb92ed.system.js → p-fe320051.system.js} +1 -1
  385. package/dist/types/components/action-sheet/action-sheet.d.ts +4 -0
  386. package/dist/types/components/alert/alert.d.ts +4 -0
  387. package/dist/types/components/loading/loading.d.ts +4 -0
  388. package/dist/types/components/modal/modal.d.ts +4 -0
  389. package/dist/types/components/picker/picker.d.ts +4 -0
  390. package/dist/types/components/popover/popover.d.ts +4 -0
  391. package/dist/types/components/toast/toast.d.ts +4 -0
  392. package/dist/types/components.d.ts +7 -7
  393. package/dist/types/utils/helpers.d.ts +1 -1
  394. package/dist/types/utils/overlays.d.ts +5 -0
  395. package/hydrate/index.d.ts +1 -1
  396. package/hydrate/index.js +292 -68
  397. package/package.json +6 -6
  398. package/dist/esm-es5/app-globals-47226a12.js +0 -4
  399. package/dist/esm-es5/helpers-c0b9ca37.js +0 -4
  400. package/dist/esm-es5/index-d64f34ea.js +0 -4
  401. package/dist/esm-es5/md.transition-28a9a26b.js +0 -4
  402. package/dist/esm-es5/overlays-fad5fe01.js +0 -4
  403. package/dist/ionic/p-0b955124.system.js +0 -4
  404. package/dist/ionic/p-1375f21f.js +0 -4
  405. package/dist/ionic/p-3eb2da31.js +0 -4
  406. package/dist/ionic/p-41fde260.entry.js +0 -4
  407. package/dist/ionic/p-4f777b5e.js +0 -4
  408. package/dist/ionic/p-52e02877.entry.js +0 -4
  409. package/dist/ionic/p-62067818.system.entry.js +0 -4
  410. package/dist/ionic/p-62a3c609.system.js +0 -4
  411. package/dist/ionic/p-6b02edd6.js +0 -4
  412. package/dist/ionic/p-86670b91.system.js +0 -4
  413. package/dist/ionic/p-8f1ce253.js +0 -4
  414. package/dist/ionic/p-b1f0c48e.system.entry.js +0 -4
  415. package/dist/ionic/p-b4a95b80.system.entry.js +0 -4
  416. package/dist/ionic/p-c5c3710c.js +0 -4
  417. package/dist/ionic/p-c80c7e90.system.js +0 -4
  418. package/dist/ionic/p-e1271366.js +0 -5
  419. package/dist/ionic/p-fd2aa50c.js +0 -4
  420. /package/dist/ionic/{p-b5839dc2.js → p-1b3ffb2f.js} +0 -0
  421. /package/dist/ionic/{p-fd8ced99.system.js → p-5fc8d5ef.system.js} +0 -0
@@ -5,7 +5,7 @@ import { d as doc } from './index5.js';
5
5
  import { OVERLAY_BACK_BUTTON_PRIORITY, shoudUseCloseWatcher } from './hardware-back-button.js';
6
6
  import { b as getIonMode, c as config } from './ionic-global.js';
7
7
  import { C as CoreDelegate } from './framework-delegate.js';
8
- import { c as componentOnReady, f as focusElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
8
+ import { c as componentOnReady, f as focusVisibleElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
9
9
  import { p as printIonWarning } from './index6.js';
10
10
 
11
11
  let lastOverlayIndex = 0;
@@ -98,32 +98,48 @@ const createOverlay = (tagName, opts) => {
98
98
  * valid usage for the disabled property on ion-button.
99
99
  */
100
100
  const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
101
+ const isOverlayHidden = (overlay) => overlay.classList.contains('overlay-hidden');
102
+ /**
103
+ * Focuses the first descendant in an overlay
104
+ * that can receive focus. If none exists,
105
+ * the entire overlay will be focused.
106
+ */
101
107
  const focusFirstDescendant = (ref, overlay) => {
102
- let firstInput = ref.querySelector(focusableQueryString);
103
- const shadowRoot = firstInput === null || firstInput === void 0 ? void 0 : firstInput.shadowRoot;
104
- if (shadowRoot) {
105
- // If there are no inner focusable elements, just focus the host element.
106
- firstInput = shadowRoot.querySelector(focusableQueryString) || firstInput;
107
- }
108
- if (firstInput) {
109
- focusElement(firstInput);
110
- }
111
- else {
112
- // Focus overlay instead of letting focus escape
113
- overlay.focus();
114
- }
108
+ const firstInput = ref.querySelector(focusableQueryString);
109
+ focusElementInOverlay(firstInput, overlay);
115
110
  };
116
- const isOverlayHidden = (overlay) => overlay.classList.contains('overlay-hidden');
111
+ /**
112
+ * Focuses the last descendant in an overlay
113
+ * that can receive focus. If none exists,
114
+ * the entire overlay will be focused.
115
+ */
117
116
  const focusLastDescendant = (ref, overlay) => {
118
117
  const inputs = Array.from(ref.querySelectorAll(focusableQueryString));
119
- let lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
120
- const shadowRoot = lastInput === null || lastInput === void 0 ? void 0 : lastInput.shadowRoot;
118
+ const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
119
+ focusElementInOverlay(lastInput, overlay);
120
+ };
121
+ /**
122
+ * Focuses a particular element in an overlay. If the element
123
+ * doesn't have anything focusable associated with it then
124
+ * the overlay itself will be focused.
125
+ * This should be used instead of the focus() method
126
+ * on most elements because the focusable element
127
+ * may not be the host element.
128
+ *
129
+ * For example, if an ion-button should be focused
130
+ * then we should actually focus the native <button>
131
+ * element inside of ion-button's shadow root, not
132
+ * the host element itself.
133
+ */
134
+ const focusElementInOverlay = (hostToFocus, overlay) => {
135
+ let elementToFocus = hostToFocus;
136
+ const shadowRoot = hostToFocus === null || hostToFocus === void 0 ? void 0 : hostToFocus.shadowRoot;
121
137
  if (shadowRoot) {
122
138
  // If there are no inner focusable elements, just focus the host element.
123
- lastInput = shadowRoot.querySelector(focusableQueryString) || lastInput;
139
+ elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
124
140
  }
125
- if (lastInput) {
126
- lastInput.focus();
141
+ if (elementToFocus) {
142
+ focusVisibleElement(elementToFocus);
127
143
  }
128
144
  else {
129
145
  // Focus overlay instead of letting focus escape
@@ -174,6 +190,21 @@ const trapKeyboardFocus = (ev, doc) => {
174
190
  */
175
191
  if (lastOverlay === target) {
176
192
  lastOverlay.lastFocus = undefined;
193
+ /**
194
+ * Toasts can be presented from an overlay.
195
+ * However, focus should still be returned to
196
+ * the overlay when clicking a toast. Normally,
197
+ * focus would be returned to the last focusable
198
+ * descendant in the overlay which may not always be
199
+ * the button that the toast was presented from. In this case,
200
+ * the focus may be returned to an unexpected element.
201
+ * To account for this, we make sure to return focus to the
202
+ * last focused element in the overlay if focus is
203
+ * moved to the toast.
204
+ */
205
+ }
206
+ else if (target.tagName === 'ION-TOAST') {
207
+ focusElementInOverlay(lastOverlay.lastFocus, lastOverlay);
177
208
  /**
178
209
  * Otherwise, we must be focusing an element
179
210
  * inside of the overlay. The two possible options
@@ -245,6 +276,21 @@ const trapKeyboardFocus = (ev, doc) => {
245
276
  */
246
277
  if (lastOverlay.contains(target)) {
247
278
  lastOverlay.lastFocus = target;
279
+ /**
280
+ * Toasts can be presented from an overlay.
281
+ * However, focus should still be returned to
282
+ * the overlay when clicking a toast. Normally,
283
+ * focus would be returned to the last focusable
284
+ * descendant in the overlay which may not always be
285
+ * the button that the toast was presented from. In this case,
286
+ * the focus may be returned to an unexpected element.
287
+ * To account for this, we make sure to return focus to the
288
+ * last focused element in the overlay if focus is
289
+ * moved to the toast.
290
+ */
291
+ }
292
+ else if (target.tagName === 'ION-TOAST') {
293
+ focusElementInOverlay(lastOverlay.lastFocus, lastOverlay);
248
294
  }
249
295
  else {
250
296
  /**
@@ -408,6 +454,15 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
408
454
  return;
409
455
  }
410
456
  setRootAriaHidden(true);
457
+ /**
458
+ * Hide all other overlays from screen readers so only this one
459
+ * can be read. Note that presenting an overlay always makes
460
+ * it the topmost one.
461
+ */
462
+ if (doc !== undefined) {
463
+ const presentedOverlays = getPresentedOverlays(doc);
464
+ presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
465
+ }
411
466
  overlay.presented = true;
412
467
  overlay.willPresent.emit();
413
468
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -430,7 +485,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
430
485
  * from returning focus as a result.
431
486
  */
432
487
  if (overlay.el.tagName !== 'ION-TOAST') {
433
- focusPreviousElementOnDismissIfNeeded(overlay.el);
488
+ restoreElementFocus(overlay.el);
434
489
  }
435
490
  /**
436
491
  * If the focused element is already
@@ -441,6 +496,14 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
441
496
  if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
442
497
  overlay.el.focus();
443
498
  }
499
+ /**
500
+ * If this overlay was previously dismissed without being
501
+ * the topmost one (such as by manually calling dismiss()),
502
+ * it would still have aria-hidden on being presented again.
503
+ * Removing it here ensures the overlay is visible to screen
504
+ * readers.
505
+ */
506
+ overlay.el.removeAttribute('aria-hidden');
444
507
  };
445
508
  /**
446
509
  * When an overlay component is dismissed,
@@ -452,7 +515,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
452
515
  * to where they were before they
453
516
  * opened the overlay.
454
517
  */
455
- const focusPreviousElementOnDismissIfNeeded = async (overlayEl) => {
518
+ const restoreElementFocus = async (overlayEl) => {
456
519
  let previousElement = document.activeElement;
457
520
  if (!previousElement) {
458
521
  return;
@@ -464,18 +527,35 @@ const focusPreviousElementOnDismissIfNeeded = async (overlayEl) => {
464
527
  }
465
528
  await overlayEl.onDidDismiss();
466
529
  /**
467
- * If the user has already removed focus
468
- * from the overlay (For example, focusing
469
- * a text box after tapping a button in an
470
- * action sheet) then don't restore focus
471
- * to previous element
530
+ * After onDidDismiss, the overlay loses focus
531
+ * because it is removed from the document
532
+ *
533
+ * > An element will also lose focus [...]
534
+ * > if the element is removed from the document)
535
+ *
536
+ * https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event
537
+ *
538
+ * Additionally, `document.activeElement` returns:
539
+ *
540
+ * > The Element which currently has focus,
541
+ * > `<body>` or null if there is
542
+ * > no focused element.
543
+ *
544
+ * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement#value
545
+ *
546
+ * However, if the user has already focused
547
+ * an element sometime between onWillDismiss
548
+ * and onDidDismiss (for example, focusing a
549
+ * text box after tapping a button in an
550
+ * action sheet) then don't restore focus to
551
+ * previous element
472
552
  */
473
553
  if (document.activeElement === null || document.activeElement === document.body) {
474
554
  previousElement.focus();
475
555
  }
476
556
  };
477
557
  const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
478
- var _a, _b;
558
+ var _a, _b, _c;
479
559
  if (!overlay.presented) {
480
560
  return false;
481
561
  }
@@ -502,6 +582,10 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
502
582
  }
503
583
  overlay.didDismiss.emit({ data, role });
504
584
  (_b = overlay.didDismissShorthand) === null || _b === void 0 ? void 0 : _b.emit({ data, role });
585
+ // Get a reference to all animations currently assigned to this overlay
586
+ // Then tear them down to return the overlay to its initial visual state
587
+ const animations = activeAnimations.get(overlay) || [];
588
+ animations.forEach((ani) => ani.destroy());
505
589
  activeAnimations.delete(overlay);
506
590
  /**
507
591
  * Make overlay hidden again in case it is being reused.
@@ -522,6 +606,13 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
522
606
  console.error(err);
523
607
  }
524
608
  overlay.el.remove();
609
+ /**
610
+ * If there are other overlays presented, unhide the new
611
+ * topmost one from screen readers.
612
+ */
613
+ if (doc !== undefined) {
614
+ (_c = getPresentedOverlay(doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
615
+ }
525
616
  return true;
526
617
  };
527
618
  const getAppRoot = (doc) => {
@@ -718,4 +809,4 @@ const createTriggerController = () => {
718
809
  };
719
810
  };
720
811
 
721
- export { BACKDROP as B, GESTURE as G, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, popoverController as c, createDelegateController as d, createTriggerController as e, present as f, dismiss as g, eventMethod as h, isCancel as i, prepareOverlay as j, setOverlayId as k, loadingController as l, modalController as m, focusFirstDescendant as n, getPresentedOverlay as o, pickerController as p, activeAnimations as q, safeCall as s, toastController as t };
812
+ export { BACKDROP as B, GESTURE as G, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, popoverController as c, createDelegateController as d, createTriggerController as e, present as f, dismiss as g, eventMethod as h, isCancel as i, prepareOverlay as j, setOverlayId as k, loadingController as l, modalController as m, focusFirstDescendant as n, getPresentedOverlay as o, pickerController as p, safeCall as s, toastController as t };
@@ -965,7 +965,7 @@ const mdLeaveAnimation = (baseEl) => {
965
965
  .addAnimation([backdropAnimation, wrapperAnimation]);
966
966
  };
967
967
 
968
- const popoverIosCss = ":host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, #e6e6e6)}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:\"\";z-index:10}@supports (inset-inline-start: 0){.popover-arrow::after{inset-inline-start:3px}}@supports not (inset-inline-start: 0){.popover-arrow::after{left:3px}:host-context([dir=rtl]) .popover-arrow::after{left:unset;right:unset;right:3px}[dir=rtl] .popover-arrow::after{left:unset;right:unset;right:3px}@supports selector(:dir(rtl)){.popover-arrow::after:dir(rtl){left:unset;right:unset;right:3px}}}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}";
968
+ const popoverIosCss = ":host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, #e6e6e6)}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:\"\";z-index:10}@supports (inset-inline-start: 0){.popover-arrow::after{inset-inline-start:3px}}@supports not (inset-inline-start: 0){.popover-arrow::after{left:3px}:host-context([dir=rtl]) .popover-arrow::after{left:unset;right:unset;right:3px}[dir=rtl] .popover-arrow::after{left:unset;right:unset;right:3px}@supports selector(:dir(rtl)){.popover-arrow::after:dir(rtl){left:unset;right:unset;right:3px}}}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}";
969
969
  const IonPopoverIosStyle0 = popoverIosCss;
970
970
 
971
971
  const popoverMdCss = ":host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}";
@@ -1237,6 +1237,10 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
1237
1237
  * @param role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'.
1238
1238
  * @param dismissParentPopover If `true`, dismissing this popover will also dismiss
1239
1239
  * a parent popover if this popover is nested. Defaults to `true`.
1240
+ *
1241
+ * This is a no-op if the overlay has not been presented yet. If you want
1242
+ * to remove an overlay from the DOM that was never presented, use the
1243
+ * [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
1240
1244
  */
1241
1245
  async dismiss(data, role, dismissParentPopover = true) {
1242
1246
  const unlock = await this.lockController.lock();
@@ -1288,9 +1292,9 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
1288
1292
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
1289
1293
  const desktop = isPlatform('desktop');
1290
1294
  const enableArrow = arrow && !parentPopover;
1291
- return (h(Host, Object.assign({ key: 'f335ae001173483e6a973b2084f8a7b6b895ae5d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1295
+ return (h(Host, Object.assign({ key: '104a5bf92a9bbd2efc71d499a8500e5d55f81711', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1292
1296
  zIndex: `${20000 + this.overlayIndex}`,
1293
- }, 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' })))));
1297
+ }, 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' })))));
1294
1298
  }
1295
1299
  get el() { return this; }
1296
1300
  static get watchers() { return {
@@ -16,10 +16,10 @@ import { d as defineCustomElement$3 } from './radio.js';
16
16
  import { d as defineCustomElement$2 } from './radio-group.js';
17
17
  import { d as defineCustomElement$1 } from './ripple-effect.js';
18
18
 
19
- const selectPopoverIosCss = ".sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}";
19
+ const selectPopoverIosCss = ".sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ios-h{overflow-y:auto}";
20
20
  const IonSelectPopoverIosStyle0 = selectPopoverIosCss;
21
21
 
22
- const selectPopoverMdCss = ".sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container){opacity:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08);--background-focused:var(--ion-color-primary, #3880ff);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #3880ff);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #3880ff)}";
22
+ const selectPopoverMdCss = ".sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-md-h{overflow-y:auto}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container){opacity:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08);--background-focused:var(--ion-color-primary, #3880ff);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #3880ff);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #3880ff)}";
23
23
  const IonSelectPopoverMdStyle0 = selectPopoverMdCss;
24
24
 
25
25
  const SelectPopover = /*@__PURE__*/ proxyCustomElement(class SelectPopover extends HTMLElement {
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-2e1028fa.js');
7
+ const helpers = require('./helpers-da4c0ed1.js');
8
8
 
9
9
  let animationPrefix;
10
10
  /**
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const ionicGlobal = require('./ionic-global-7358c23e.js');
6
+ const ionicGlobal = require('./ionic-global-59a10130.js');
7
7
 
8
8
  const globalScripts = ionicGlobal.initialize;
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index$1 = require('./index-5a471146.js');
6
+ const index$1 = require('./index-0ffe376d.js');
7
7
  const haptic = require('./haptic-b882e0bb.js');
8
8
  const index = require('./index-d1b59ffa.js');
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const helpers = require('./helpers-2e1028fa.js');
6
+ const helpers = require('./helpers-da4c0ed1.js');
7
7
 
8
8
  /**
9
9
  * Creates a controller that tracks whether a form control is using the legacy or modern syntax. This should be removed when the legacy form control syntax is removed.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const helpers = require('./helpers-2e1028fa.js');
6
+ const helpers = require('./helpers-da4c0ed1.js');
7
7
 
8
8
  // TODO(FW-2832): types
9
9
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -4,8 +4,8 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const ionicGlobal = require('./ionic-global-7358c23e.js');
8
- require('./index-5a471146.js');
7
+ const ionicGlobal = require('./ionic-global-59a10130.js');
8
+ require('./index-0ffe376d.js');
9
9
 
10
10
  /**
11
11
  * CloseWatcher is a newer API that lets
@@ -239,7 +239,7 @@ const findItemLabel = (componentEl) => {
239
239
  }
240
240
  return null;
241
241
  };
242
- const focusElement = (el) => {
242
+ const focusVisibleElement = (el) => {
243
243
  el.focus();
244
244
  /**
245
245
  * When programmatically focusing an element,
@@ -424,7 +424,7 @@ exports.componentOnReady = componentOnReady;
424
424
  exports.debounce = debounce;
425
425
  exports.debounceEvent = debounceEvent;
426
426
  exports.findItemLabel = findItemLabel;
427
- exports.focusElement = focusElement;
427
+ exports.focusVisibleElement = focusVisibleElement;
428
428
  exports.getAriaLabel = getAriaLabel;
429
429
  exports.getElementRoot = getElementRoot;
430
430
  exports.hasLazyBuild = hasLazyBuild;
@@ -1410,8 +1410,7 @@ const patch = (oldVNode, newVNode, isInitialRender = false) => {
1410
1410
  isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;
1411
1411
  }
1412
1412
  {
1413
- if (tag === 'slot')
1414
- ;
1413
+ if (tag === 'slot' && !useNativeShadowDom) ;
1415
1414
  else {
1416
1415
  // either this is the first render of an element OR it's an update
1417
1416
  // AND we already know it's possible it could have changed
@@ -1698,9 +1697,9 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1698
1697
  {
1699
1698
  scopeId = hostElm['s-sc'];
1700
1699
  }
1700
+ useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;
1701
1701
  {
1702
1702
  contentRef = hostElm['s-cr'];
1703
- useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;
1704
1703
  // always reset
1705
1704
  checkSlotFallbackVisibility = false;
1706
1705
  }
@@ -2587,25 +2586,29 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2587
2586
  }
2588
2587
  });
2589
2588
  });
2590
- // Add styles for `slot-fb` elements if any of our components are using slots outside the Shadow DOM
2591
- if (hasSlotRelocation) {
2592
- dataStyles.innerHTML += SLOT_FB_CSS;
2593
- }
2594
- // Add hydration styles
2595
- {
2596
- dataStyles.innerHTML += cmpTags + HYDRATED_CSS;
2597
- }
2598
- // If we have styles, add them to the DOM
2599
- if (dataStyles.innerHTML.length) {
2600
- dataStyles.setAttribute('data-styles', '');
2601
- // Apply CSP nonce to the style tag if it exists
2602
- const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
2603
- if (nonce != null) {
2604
- dataStyles.setAttribute('nonce', nonce);
2605
- }
2606
- // Insert the styles into the document head
2607
- // NOTE: this _needs_ to happen last so we can ensure the nonce (and other attributes) are applied
2608
- head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
2589
+ // Only bother generating CSS if we have components
2590
+ // TODO(STENCIL-1118): Add test cases for CSS content based on conditionals
2591
+ if (cmpTags.length > 0) {
2592
+ // Add styles for `slot-fb` elements if any of our components are using slots outside the Shadow DOM
2593
+ if (hasSlotRelocation) {
2594
+ dataStyles.innerHTML += SLOT_FB_CSS;
2595
+ }
2596
+ // Add hydration styles
2597
+ {
2598
+ dataStyles.innerHTML += cmpTags + HYDRATED_CSS;
2599
+ }
2600
+ // If we have styles, add them to the DOM
2601
+ if (dataStyles.innerHTML.length) {
2602
+ dataStyles.setAttribute('data-styles', '');
2603
+ // Apply CSP nonce to the style tag if it exists
2604
+ const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
2605
+ if (nonce != null) {
2606
+ dataStyles.setAttribute('nonce', nonce);
2607
+ }
2608
+ // Insert the styles into the document head
2609
+ // NOTE: this _needs_ to happen last so we can ensure the nonce (and other attributes) are applied
2610
+ head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
2611
+ }
2609
2612
  }
2610
2613
  // Process deferred connectedCallbacks now all components have been registered
2611
2614
  isBootstrapping = false;
@@ -4,11 +4,11 @@
4
4
  'use strict';
5
5
 
6
6
  const index$1 = require('./index-c8d52405.js');
7
- const hardwareBackButton = require('./hardware-back-button-d23873bb.js');
7
+ const hardwareBackButton = require('./hardware-back-button-2696acaf.js');
8
8
  const index = require('./index-5915f9b3.js');
9
- const helpers = require('./helpers-2e1028fa.js');
10
- const ionicGlobal = require('./ionic-global-7358c23e.js');
11
- const animation = require('./animation-fdab9de5.js');
9
+ const helpers = require('./helpers-da4c0ed1.js');
10
+ const ionicGlobal = require('./ionic-global-59a10130.js');
11
+ const animation = require('./animation-c2840aea.js');
12
12
 
13
13
  /**
14
14
  * baseAnimation
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-2e1028fa.js');
7
+ const helpers = require('./helpers-da4c0ed1.js');
8
8
 
9
9
  const startTapClick = (config) => {
10
10
  if (index.doc === undefined) {
@@ -3,8 +3,8 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-5a471146.js');
7
- const helpers = require('./helpers-2e1028fa.js');
6
+ const index = require('./index-0ffe376d.js');
7
+ const helpers = require('./helpers-da4c0ed1.js');
8
8
 
9
9
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
10
10
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -12,8 +12,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
12
12
  const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
13
13
  const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
14
14
 
15
- const iosTransitionAnimation = () => Promise.resolve().then(function () { return require('./ios.transition-8e40c54e.js'); });
16
- const mdTransitionAnimation = () => Promise.resolve().then(function () { return require('./md.transition-597a2479.js'); });
15
+ const iosTransitionAnimation = () => Promise.resolve().then(function () { return require('./ios.transition-96679580.js'); });
16
+ const mdTransitionAnimation = () => Promise.resolve().then(function () { return require('./md.transition-d6c98822.js'); });
17
17
  // TODO(FW-2832): types
18
18
  const transition = (opts) => {
19
19
  return new Promise((resolve, reject) => {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const helpers = require('./helpers-2e1028fa.js');
6
+ const helpers = require('./helpers-da4c0ed1.js');
7
7
  const index = require('./index-5915f9b3.js');
8
8
 
9
9
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
@@ -5,24 +5,24 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const animation = require('./animation-fdab9de5.js');
9
- const index = require('./index-84351d21.js');
10
- const ios_transition = require('./ios.transition-8e40c54e.js');
11
- const md_transition = require('./md.transition-597a2479.js');
8
+ const animation = require('./animation-c2840aea.js');
9
+ const index = require('./index-9bfcb6e8.js');
10
+ const ios_transition = require('./ios.transition-96679580.js');
11
+ const md_transition = require('./md.transition-d6c98822.js');
12
12
  const cubicBezier = require('./cubic-bezier-f2dccc53.js');
13
13
  const index$1 = require('./index-d1b59ffa.js');
14
- const ionicGlobal = require('./ionic-global-7358c23e.js');
15
- const helpers = require('./helpers-2e1028fa.js');
14
+ const ionicGlobal = require('./ionic-global-59a10130.js');
15
+ const helpers = require('./helpers-da4c0ed1.js');
16
16
  const config = require('./config-4f60b98a.js');
17
17
  const theme = require('./theme-d1c573d2.js');
18
- const index$2 = require('./index-8c679cbf.js');
19
- const overlays = require('./overlays-eaf2075f.js');
18
+ const index$2 = require('./index-4c96691f.js');
19
+ const overlays = require('./overlays-db5d96f3.js');
20
20
  require('./index-c8d52405.js');
21
- require('./index-5a471146.js');
21
+ require('./index-0ffe376d.js');
22
22
  require('./gesture-controller-c40c045a.js');
23
- require('./hardware-back-button-d23873bb.js');
23
+ require('./hardware-back-button-2696acaf.js');
24
24
  require('./index-5915f9b3.js');
25
- require('./framework-delegate-a3e6d060.js');
25
+ require('./framework-delegate-e0e13baa.js');
26
26
 
27
27
  const IonicSlides = (opts) => {
28
28
  const { swiper, extendParams } = opts;
@@ -4,8 +4,8 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const index$1 = require('./index-53d162b2.js');
8
- const helpers = require('./helpers-2e1028fa.js');
7
+ const index$1 = require('./index-bef98850.js');
8
+ const helpers = require('./helpers-da4c0ed1.js');
9
9
  const keyboard = require('./keyboard-0272231f.js');
10
10
  require('./index-5915f9b3.js');
11
11
  require('./capacitor-c04564bf.js');
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-2e1028fa.js');
7
+ const helpers = require('./helpers-da4c0ed1.js');
8
8
  const index$1 = require('./index-5915f9b3.js');
9
9
 
10
10
  /**
@@ -5,10 +5,10 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-5a471146.js');
9
- const helpers = require('./helpers-2e1028fa.js');
8
+ const index = require('./index-0ffe376d.js');
9
+ const helpers = require('./helpers-da4c0ed1.js');
10
10
  const index$1 = require('./index-f52c6d38.js');
11
- const ionicGlobal = require('./ionic-global-7358c23e.js');
11
+ const ionicGlobal = require('./ionic-global-59a10130.js');
12
12
  const index$2 = require('./index-5915f9b3.js');
13
13
 
14
14
  const accordionIosCss = ":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}";