@ionic/core 8.3.1-dev.11726241210.1ab7a0ab → 8.3.1-dev.11727899155.103c4afc

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 (571) hide show
  1. package/components/animation.js +1 -1
  2. package/components/button.js +1 -2
  3. package/components/capacitor.js +1 -1
  4. package/components/data.js +1 -1
  5. package/components/focus-visible.js +8 -1
  6. package/components/framework-delegate.js +1 -1
  7. package/components/helpers.js +1 -1
  8. package/components/index2.js +1 -2
  9. package/components/index4.js +1 -4
  10. package/components/index5.js +27 -3
  11. package/components/index6.js +114 -20
  12. package/components/index7.js +163 -27
  13. package/components/input-shims.js +2 -2
  14. package/components/input.utils.js +1 -2
  15. package/components/ion-accordion-group.js +1 -2
  16. package/components/ion-accordion.js +1 -1
  17. package/components/ion-app.js +6 -75
  18. package/components/ion-back-button.js +1 -1
  19. package/components/ion-breadcrumb.js +1 -1
  20. package/components/ion-content.js +1 -1
  21. package/components/ion-datetime-button.js +1 -2
  22. package/components/ion-datetime.js +2 -3
  23. package/components/ion-fab-button.js +1 -1
  24. package/components/ion-footer.js +4 -4
  25. package/components/ion-header.js +5 -5
  26. package/components/ion-infinite-scroll.js +1 -1
  27. package/components/ion-input-password-toggle.js +2 -3
  28. package/components/ion-input.js +1 -1
  29. package/components/ion-item-sliding.js +1 -1
  30. package/components/ion-menu-button.js +1 -1
  31. package/components/ion-menu.js +1 -2
  32. package/components/ion-modal.js +2 -4
  33. package/components/ion-nav.js +1 -2
  34. package/components/ion-picker-legacy.js +1 -2
  35. package/components/ion-range.js +2 -3
  36. package/components/ion-refresher-content.js +1 -1
  37. package/components/ion-refresher.js +1 -1
  38. package/components/ion-reorder-group.js +1 -1
  39. package/components/ion-reorder.js +1 -1
  40. package/components/ion-searchbar.js +1 -1
  41. package/components/ion-select.js +1 -1
  42. package/components/ion-toast.js +1 -3
  43. package/components/ion-toggle.js +1 -1
  44. package/components/ionic-global.js +219 -2
  45. package/components/item.js +1 -1
  46. package/components/keyboard-controller.js +2 -2
  47. package/components/notch-controller.js +1 -1
  48. package/components/overlays.js +2 -5
  49. package/components/picker-column.js +1 -2
  50. package/components/popover.js +1 -2
  51. package/components/status-tap.js +1 -1
  52. package/dist/cjs/{animation-b4fdf128.js → animation-1b5076f1.js} +2 -2
  53. package/dist/cjs/{app-globals-2cfd442b.js → app-globals-7adfb8dd.js} +1 -1
  54. package/dist/cjs/{button-active-1a40c735.js → button-active-0f66de25.js} +1 -1
  55. package/dist/cjs/{capacitor-c04564bf.js → capacitor-618d05d6.js} +3 -3
  56. package/dist/cjs/{data-21dc0f81.js → data-5d4f17b4.js} +3 -3
  57. package/dist/cjs/{focus-visible-7a0ce04f.js → focus-visible-9aa87fa3.js} +8 -0
  58. package/dist/cjs/{framework-delegate-55f5683a.js → framework-delegate-d1e05576.js} +2 -2
  59. package/dist/cjs/{haptic-f6b37aa3.js → haptic-2bdd48c1.js} +1 -1
  60. package/dist/cjs/{helpers-afaa9001.js → helpers-acd6c477.js} +1 -1
  61. package/dist/cjs/{index-5b6a7459.js → index-3eb98cb9.js} +3 -3
  62. package/dist/cjs/{index-9bdd4f2a.js → index-686a2ab7.js} +8 -9
  63. package/dist/cjs/{index-9509ecad.js → index-c17dd541.js} +8 -7
  64. package/dist/cjs/{index-c170694d.js → index-d683cd69.js} +7 -10
  65. package/dist/cjs/index.cjs.js +9 -12
  66. package/dist/cjs/{input-shims-9e59ef62.js → input-shims-f41730e2.js} +17 -17
  67. package/dist/cjs/{input.utils-611cde0b.js → input.utils-1215e537.js} +4 -5
  68. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -4
  69. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -11
  70. package/dist/cjs/ion-alert.cjs.entry.js +8 -11
  71. package/dist/cjs/ion-app_8.cjs.entry.js +31 -101
  72. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  73. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-button_2.cjs.entry.js +5 -6
  77. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  79. package/dist/cjs/ion-chip.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-datetime-button.cjs.entry.js +7 -8
  82. package/dist/cjs/ion-datetime_3.cjs.entry.js +96 -99
  83. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  85. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -4
  86. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +6 -7
  87. package/dist/cjs/ion-input.cjs.entry.js +4 -6
  88. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -4
  89. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-loading.cjs.entry.js +5 -8
  91. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -10
  92. package/dist/cjs/ion-modal.cjs.entry.js +49 -52
  93. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -6
  94. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  95. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -6
  96. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  97. package/dist/cjs/ion-popover.cjs.entry.js +9 -12
  98. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-range.cjs.entry.js +8 -9
  101. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -8
  102. package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -7
  103. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  104. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  105. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  106. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-select_3.cjs.entry.js +5 -8
  108. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  109. package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
  110. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +5 -6
  111. package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
  112. package/dist/cjs/ion-text.cjs.entry.js +1 -1
  113. package/dist/cjs/ion-textarea.cjs.entry.js +4 -6
  114. package/dist/cjs/ion-toast.cjs.entry.js +31 -34
  115. package/dist/cjs/ion-toggle.cjs.entry.js +4 -5
  116. package/dist/cjs/ionic-global-7b45fd73.js +462 -0
  117. package/dist/cjs/ionic.cjs.js +2 -2
  118. package/dist/cjs/{ios.transition-ac67e283.js → ios.transition-1ee349d9.js} +4 -6
  119. package/dist/cjs/{keyboard-af1bb365.js → keyboard-49920cbd.js} +4 -3
  120. package/dist/cjs/{keyboard-controller-c05e747a.js → keyboard-controller-5b01bcd9.js} +9 -9
  121. package/dist/cjs/{keyboard-0272231f.js → keyboard-d77ef081.js} +1 -1
  122. package/dist/cjs/loader.cjs.js +2 -2
  123. package/dist/cjs/{md.transition-8ceb4e1a.js → md.transition-719e7e1c.js} +4 -6
  124. package/dist/cjs/{notch-controller-d69150f5.js → notch-controller-a8eaed3b.js} +4 -4
  125. package/dist/cjs/{overlays-4451d3fc.js → overlays-14f167fc.js} +12 -15
  126. package/dist/cjs/{status-tap-e52a48f8.js → status-tap-e7029c0d.js} +3 -3
  127. package/dist/cjs/{swipe-back-0303a5e4.js → swipe-back-13234294.js} +1 -1
  128. package/dist/collection/components/app/app.js +5 -75
  129. package/dist/collection/components/content/content.js +1 -1
  130. package/dist/collection/components/footer/footer.js +3 -3
  131. package/dist/collection/components/header/header.js +4 -4
  132. package/dist/collection/components/input/input.js +1 -1
  133. package/dist/collection/components/searchbar/searchbar.js +1 -1
  134. package/dist/collection/global/ionic-global.js +70 -1
  135. package/dist/collection/utils/focus-visible.js +7 -0
  136. package/dist/collection/utils/framework-delegate.js +1 -1
  137. package/dist/collection/utils/helpers.js +1 -1
  138. package/dist/collection/utils/keyboard/keyboard-controller.js +1 -1
  139. package/dist/collection/utils/overlays.js +1 -1
  140. package/dist/docs.json +107 -107
  141. package/dist/esm/{animation-eab5a4ca.js → animation-4833cc82.js} +1 -1
  142. package/dist/esm/{app-globals-b9f6e516.js → app-globals-120fc59a.js} +1 -1
  143. package/dist/esm/{button-active-13c37337.js → button-active-99997f21.js} +1 -1
  144. package/dist/esm/{capacitor-59395cbd.js → capacitor-90256979.js} +1 -1
  145. package/dist/esm/{data-ae11fd43.js → data-ef61a6bc.js} +1 -1
  146. package/dist/esm/{focus-visible-dd40d69f.js → focus-visible-501aff19.js} +8 -1
  147. package/dist/esm/{framework-delegate-63d1a679.js → framework-delegate-3b8e3146.js} +2 -2
  148. package/dist/esm/{haptic-ac164e4c.js → haptic-2a877838.js} +1 -1
  149. package/dist/esm/{helpers-da915de8.js → helpers-b96cdeb7.js} +1 -1
  150. package/dist/esm/{index-97b0ab3f.js → index-462343ab.js} +3 -6
  151. package/{components/index9.js → dist/esm/index-4b965271.js} +3 -2
  152. package/dist/esm/{index-5cc724f3.js → index-57058cbb.js} +2 -2
  153. package/dist/esm/{index-8579e7fd.js → index-ea559016.js} +4 -5
  154. package/dist/esm/index.js +9 -12
  155. package/dist/esm/{input-shims-0314bbe5.js → input-shims-3803b8f3.js} +6 -6
  156. package/dist/esm/{input.utils-09c71bc7.js → input.utils-40cda890.js} +2 -3
  157. package/dist/esm/ion-accordion_2.entry.js +2 -3
  158. package/dist/esm/ion-action-sheet.entry.js +8 -11
  159. package/dist/esm/ion-alert.entry.js +8 -11
  160. package/dist/esm/ion-app_8.entry.js +21 -91
  161. package/dist/esm/ion-avatar_3.entry.js +1 -1
  162. package/dist/esm/ion-back-button.entry.js +2 -2
  163. package/dist/esm/ion-backdrop.entry.js +1 -1
  164. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  165. package/dist/esm/ion-button_2.entry.js +2 -3
  166. package/dist/esm/ion-card_5.entry.js +2 -2
  167. package/dist/esm/ion-checkbox.entry.js +2 -2
  168. package/dist/esm/ion-chip.entry.js +1 -1
  169. package/dist/esm/ion-col_3.entry.js +1 -1
  170. package/dist/esm/ion-datetime-button.entry.js +3 -4
  171. package/dist/esm/ion-datetime_3.entry.js +9 -12
  172. package/dist/esm/ion-fab_3.entry.js +2 -2
  173. package/dist/esm/ion-img.entry.js +2 -2
  174. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -4
  175. package/dist/esm/ion-input-password-toggle.entry.js +1 -2
  176. package/dist/esm/ion-input.entry.js +4 -6
  177. package/dist/esm/ion-item-option_3.entry.js +3 -4
  178. package/dist/esm/ion-item_8.entry.js +2 -2
  179. package/dist/esm/ion-loading.entry.js +5 -8
  180. package/dist/esm/ion-menu_3.entry.js +6 -9
  181. package/dist/esm/ion-modal.entry.js +10 -13
  182. package/dist/esm/ion-nav_2.entry.js +5 -6
  183. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  184. package/dist/esm/ion-picker-column.entry.js +4 -5
  185. package/dist/esm/ion-picker.entry.js +1 -1
  186. package/dist/esm/ion-popover.entry.js +6 -9
  187. package/dist/esm/ion-progress-bar.entry.js +2 -2
  188. package/dist/esm/ion-radio_2.entry.js +2 -2
  189. package/dist/esm/ion-range.entry.js +3 -4
  190. package/dist/esm/ion-refresher_2.entry.js +6 -8
  191. package/dist/esm/ion-reorder_2.entry.js +5 -7
  192. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  193. package/dist/esm/ion-route_4.entry.js +2 -2
  194. package/dist/esm/ion-searchbar.entry.js +2 -2
  195. package/dist/esm/ion-segment_2.entry.js +2 -2
  196. package/dist/esm/ion-select_3.entry.js +5 -8
  197. package/dist/esm/ion-spinner.entry.js +1 -1
  198. package/dist/esm/ion-split-pane.entry.js +1 -1
  199. package/dist/esm/ion-tab-bar_2.entry.js +5 -6
  200. package/dist/esm/ion-tab_2.entry.js +2 -2
  201. package/dist/esm/ion-text.entry.js +1 -1
  202. package/dist/esm/ion-textarea.entry.js +4 -6
  203. package/dist/esm/ion-toast.entry.js +5 -8
  204. package/dist/esm/ion-toggle.entry.js +4 -5
  205. package/dist/esm/ionic-global-03ec9636.js +448 -0
  206. package/dist/esm/ionic.js +2 -2
  207. package/dist/esm/{ios.transition-beb96e76.js → ios.transition-974d0663.js} +4 -6
  208. package/dist/esm/{keyboard-73175e24.js → keyboard-2f90c451.js} +1 -1
  209. package/dist/esm/{keyboard-52278bd7.js → keyboard-4a5eec96.js} +4 -3
  210. package/dist/esm/{keyboard-controller-ec5c2bfa.js → keyboard-controller-bf0b9670.js} +3 -3
  211. package/dist/esm/loader.js +2 -2
  212. package/dist/esm/{md.transition-d5aa5703.js → md.transition-a592d042.js} +4 -6
  213. package/dist/esm/{notch-controller-55b09e11.js → notch-controller-8d28ece6.js} +2 -2
  214. package/dist/esm/{overlays-2ea57630.js → overlays-7d2c4725.js} +4 -7
  215. package/dist/esm/{status-tap-a264a37f.js → status-tap-eee70591.js} +3 -3
  216. package/dist/esm/{swipe-back-e5394307.js → swipe-back-1c5e6095.js} +1 -1
  217. package/dist/esm-es5/animation-4833cc82.js +4 -0
  218. package/dist/esm-es5/app-globals-120fc59a.js +4 -0
  219. package/dist/esm-es5/{button-active-13c37337.js → button-active-99997f21.js} +1 -1
  220. package/dist/esm-es5/capacitor-90256979.js +4 -0
  221. package/dist/esm-es5/data-ef61a6bc.js +4 -0
  222. package/dist/esm-es5/focus-visible-501aff19.js +4 -0
  223. package/dist/esm-es5/{framework-delegate-63d1a679.js → framework-delegate-3b8e3146.js} +1 -1
  224. package/dist/esm-es5/{haptic-ac164e4c.js → haptic-2a877838.js} +1 -1
  225. package/dist/esm-es5/{helpers-da915de8.js → helpers-b96cdeb7.js} +1 -1
  226. package/dist/esm-es5/index-462343ab.js +4 -0
  227. package/dist/esm-es5/index-4b965271.js +4 -0
  228. package/dist/esm-es5/index-57058cbb.js +4 -0
  229. package/dist/esm-es5/index-ea559016.js +4 -0
  230. package/dist/esm-es5/index.js +1 -1
  231. package/dist/esm-es5/input-shims-3803b8f3.js +4 -0
  232. package/dist/esm-es5/input.utils-40cda890.js +4 -0
  233. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  234. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  235. package/dist/esm-es5/ion-alert.entry.js +1 -1
  236. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  237. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  238. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  239. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  240. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  241. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  242. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  243. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  244. package/dist/esm-es5/ion-chip.entry.js +1 -1
  245. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  246. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  247. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  248. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  249. package/dist/esm-es5/ion-img.entry.js +1 -1
  250. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  251. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  252. package/dist/esm-es5/ion-input.entry.js +1 -1
  253. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  254. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  255. package/dist/esm-es5/ion-loading.entry.js +1 -1
  256. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  257. package/dist/esm-es5/ion-modal.entry.js +1 -1
  258. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  259. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  260. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  261. package/dist/esm-es5/ion-picker.entry.js +1 -1
  262. package/dist/esm-es5/ion-popover.entry.js +1 -1
  263. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  264. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  265. package/dist/esm-es5/ion-range.entry.js +1 -1
  266. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  267. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  268. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  269. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  270. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  271. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  273. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  274. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  275. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  276. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  277. package/dist/esm-es5/ion-text.entry.js +1 -1
  278. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  279. package/dist/esm-es5/ion-toast.entry.js +1 -1
  280. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  281. package/dist/esm-es5/ionic-global-03ec9636.js +4 -0
  282. package/dist/esm-es5/ionic.js +1 -1
  283. package/dist/esm-es5/ios.transition-974d0663.js +4 -0
  284. package/dist/esm-es5/{keyboard-73175e24.js → keyboard-2f90c451.js} +1 -1
  285. package/dist/esm-es5/keyboard-4a5eec96.js +4 -0
  286. package/dist/esm-es5/keyboard-controller-bf0b9670.js +4 -0
  287. package/dist/esm-es5/loader.js +1 -1
  288. package/dist/esm-es5/md.transition-a592d042.js +4 -0
  289. package/dist/esm-es5/notch-controller-8d28ece6.js +4 -0
  290. package/dist/esm-es5/overlays-7d2c4725.js +4 -0
  291. package/dist/esm-es5/status-tap-eee70591.js +4 -0
  292. package/dist/esm-es5/{swipe-back-e5394307.js → swipe-back-1c5e6095.js} +1 -1
  293. package/dist/html.html-data.json +102 -102
  294. package/dist/ionic/index.esm.js +1 -1
  295. package/dist/ionic/ionic.esm.js +1 -1
  296. package/dist/ionic/ionic.js +1 -1
  297. package/dist/ionic/p-0323014f.entry.js +4 -0
  298. package/dist/ionic/{p-89611183.system.js → p-0363123b.system.js} +1 -1
  299. package/dist/ionic/{p-fca0933c.system.entry.js → p-092161ab.system.entry.js} +1 -1
  300. package/dist/ionic/{p-e00617fb.entry.js → p-09854f4b.entry.js} +1 -1
  301. package/dist/ionic/p-0b886ca7.entry.js +4 -0
  302. package/dist/ionic/p-0e48d764.entry.js +4 -0
  303. package/dist/ionic/p-10bc5191.system.entry.js +4 -0
  304. package/dist/ionic/p-10f5df89.system.entry.js +4 -0
  305. package/dist/ionic/{p-3d9ecf70.entry.js → p-128849bc.entry.js} +1 -1
  306. package/dist/ionic/{p-b0fbe12b.entry.js → p-134b5dad.entry.js} +1 -1
  307. package/dist/ionic/{p-89d17c48.system.entry.js → p-1883a8fa.system.entry.js} +1 -1
  308. package/dist/ionic/{p-dc65c03b.js → p-19b78761.js} +1 -1
  309. package/dist/ionic/{p-19ea7bff.system.js → p-1d57f288.system.js} +1 -1
  310. package/dist/ionic/p-1d5a1bf5.entry.js +4 -0
  311. package/dist/ionic/p-1d6f8fab.system.js +4 -0
  312. package/dist/ionic/p-1dcb0d05.entry.js +4 -0
  313. package/dist/ionic/p-1e89c2ed.js +4 -0
  314. package/dist/ionic/{p-fd70cb80.system.entry.js → p-1e98f497.system.entry.js} +1 -1
  315. package/dist/ionic/p-29085dc1.system.js +4 -0
  316. package/dist/ionic/{p-b51e4004.js → p-2f5f9e37.js} +1 -1
  317. package/dist/ionic/{p-f4d568f8.entry.js → p-33e29f21.entry.js} +1 -1
  318. package/dist/ionic/p-34726df4.system.entry.js +4 -0
  319. package/dist/ionic/p-3616a3e7.system.entry.js +4 -0
  320. package/dist/ionic/p-364105d1.system.entry.js +4 -0
  321. package/dist/ionic/{p-4440f5b4.entry.js → p-36474df6.entry.js} +1 -1
  322. package/dist/ionic/{p-491deb33.entry.js → p-368133aa.entry.js} +1 -1
  323. package/dist/ionic/p-3996cc2f.js +4 -0
  324. package/dist/ionic/p-3aa92b96.system.entry.js +4 -0
  325. package/dist/ionic/{p-cf6bad6d.entry.js → p-3dbf1af2.entry.js} +1 -1
  326. package/dist/ionic/{p-8b3ff142.entry.js → p-3ec5731b.entry.js} +1 -1
  327. package/dist/ionic/{p-83f7a890.system.entry.js → p-3fb02efa.system.entry.js} +1 -1
  328. package/dist/ionic/p-414b9a61.entry.js +4 -0
  329. package/dist/ionic/p-41dd8be3.entry.js +4 -0
  330. package/dist/ionic/p-421796ce.js +4 -0
  331. package/dist/ionic/{p-a93873de.system.js → p-43f1441e.system.js} +1 -1
  332. package/dist/ionic/{p-e02807c4.entry.js → p-4407067a.entry.js} +1 -1
  333. package/dist/ionic/p-46787abb.system.js +4 -0
  334. package/dist/ionic/p-48096596.entry.js +4 -0
  335. package/dist/ionic/p-4c4de719.entry.js +4 -0
  336. package/dist/ionic/{p-3ad285e3.system.js → p-4e970f1c.system.js} +1 -1
  337. package/dist/ionic/p-4efa1a1d.system.entry.js +4 -0
  338. package/dist/ionic/{p-aa5358cb.system.entry.js → p-511c01d3.system.entry.js} +1 -1
  339. package/dist/ionic/p-51d13493.entry.js +4 -0
  340. package/dist/ionic/p-55dbf33b.entry.js +4 -0
  341. package/dist/ionic/p-5605b84f.js +4 -0
  342. package/dist/ionic/p-566c88f6.system.js +4 -0
  343. package/dist/ionic/{p-21904499.entry.js → p-5786ea53.entry.js} +1 -1
  344. package/dist/ionic/p-5821285e.system.entry.js +4 -0
  345. package/dist/ionic/{p-6d857105.system.entry.js → p-58d23d7a.system.entry.js} +1 -1
  346. package/dist/ionic/p-5abd61c9.js +4 -0
  347. package/dist/ionic/p-5ada7868.system.js +4 -0
  348. package/dist/ionic/p-5ce35a03.js +4 -0
  349. package/dist/ionic/p-5d672083.system.entry.js +4 -0
  350. package/dist/ionic/p-62bd2e43.system.entry.js +4 -0
  351. package/dist/ionic/p-6455b864.system.entry.js +4 -0
  352. package/dist/ionic/p-651766ac.entry.js +4 -0
  353. package/dist/ionic/{p-b06ac4a5.system.js → p-6596229d.system.js} +1 -1
  354. package/dist/ionic/{p-289d16f5.system.js → p-67c8dcfd.system.js} +1 -1
  355. package/dist/ionic/p-6ae88498.js +4 -0
  356. package/dist/ionic/p-6cf3857f.system.entry.js +4 -0
  357. package/dist/ionic/p-6d8c0944.system.js +4 -0
  358. package/dist/ionic/p-6e2918f3.system.entry.js +4 -0
  359. package/dist/ionic/p-707236b4.system.entry.js +4 -0
  360. package/dist/ionic/{p-98203dbd.system.entry.js → p-718726b0.system.entry.js} +1 -1
  361. package/dist/ionic/p-73f6766e.system.entry.js +4 -0
  362. package/dist/ionic/p-7539a724.system.entry.js +4 -0
  363. package/dist/ionic/{p-0065a3d0.system.entry.js → p-759b8d9a.system.entry.js} +1 -1
  364. package/dist/ionic/{p-f687573e.system.js → p-7767ca8a.system.js} +1 -1
  365. package/dist/ionic/p-7774e10d.entry.js +4 -0
  366. package/dist/ionic/p-77aab69d.js +4 -0
  367. package/dist/ionic/p-78c10d41.entry.js +4 -0
  368. package/dist/ionic/p-7931413d.entry.js +4 -0
  369. package/dist/ionic/{p-9146695e.system.js → p-7e56e6cc.system.js} +1 -1
  370. package/dist/ionic/p-7ffef389.system.entry.js +4 -0
  371. package/dist/ionic/{p-7de39857.system.entry.js → p-80487596.system.entry.js} +1 -1
  372. package/dist/ionic/{p-8985cdb6.system.js → p-80fa15f7.system.js} +1 -1
  373. package/dist/ionic/p-8133332f.entry.js +4 -0
  374. package/dist/ionic/p-83c633c8.js +4 -0
  375. package/dist/ionic/{p-8cab6a5c.system.entry.js → p-84b1b6f7.system.entry.js} +1 -1
  376. package/dist/ionic/p-84d72d1d.entry.js +4 -0
  377. package/dist/ionic/p-86391425.js +4 -0
  378. package/dist/ionic/{p-4a963829.system.entry.js → p-8655c143.system.entry.js} +1 -1
  379. package/dist/ionic/p-86a12c6d.js +4 -0
  380. package/dist/ionic/{p-89b61afc.js → p-86fabcac.js} +1 -1
  381. package/dist/ionic/p-870c2d06.system.entry.js +4 -0
  382. package/dist/ionic/p-8857f3ce.js +4 -0
  383. package/dist/ionic/{p-27281edd.js → p-89d820c6.js} +1 -1
  384. package/dist/ionic/{p-3ba261ac.entry.js → p-8bf061c5.entry.js} +1 -1
  385. package/dist/ionic/{p-b6fbbe81.system.entry.js → p-8dd188b5.system.entry.js} +1 -1
  386. package/dist/ionic/{p-dfb78785.system.js → p-8f6462ed.system.js} +1 -1
  387. package/dist/ionic/p-90671ced.system.js +4 -0
  388. package/dist/ionic/p-92341215.system.js +4 -0
  389. package/dist/ionic/{p-3cc276f4.js → p-97e18d86.js} +1 -1
  390. package/dist/ionic/p-9a2dfb2a.system.entry.js +4 -0
  391. package/dist/ionic/p-9eb18e77.system.js +4 -0
  392. package/dist/ionic/{p-c6181d52.system.js → p-a09d82d3.system.js} +1 -1
  393. package/dist/ionic/p-a4cb22d4.entry.js +4 -0
  394. package/dist/ionic/p-a69ae8cf.js +4 -0
  395. package/dist/ionic/p-a798933c.system.js +4 -0
  396. package/dist/ionic/{p-7f375f5a.entry.js → p-a845b317.entry.js} +1 -1
  397. package/dist/ionic/p-a8ab986c.entry.js +4 -0
  398. package/dist/ionic/{p-4fbf3556.system.entry.js → p-a97c0ad2.system.entry.js} +1 -1
  399. package/dist/ionic/{p-23e0cd37.entry.js → p-ac3cefed.entry.js} +1 -1
  400. package/dist/ionic/{p-2b37f5bd.entry.js → p-ae371c25.entry.js} +1 -1
  401. package/dist/ionic/p-b6839dbe.entry.js +4 -0
  402. package/dist/ionic/p-b7bef03d.system.js +4 -0
  403. package/dist/ionic/{p-acaa514f.system.entry.js → p-b7e1017a.system.entry.js} +1 -1
  404. package/dist/ionic/{p-1e1b3d99.system.entry.js → p-b8ed1419.system.entry.js} +1 -1
  405. package/dist/ionic/p-ba3a434f.system.entry.js +4 -0
  406. package/dist/ionic/p-bd9cd14e.system.js +4 -0
  407. package/dist/ionic/p-be5cf9f9.system.entry.js +4 -0
  408. package/dist/ionic/{p-c7e16491.js → p-be81d4c0.js} +1 -1
  409. package/dist/ionic/p-c160c3e1.system.entry.js +4 -0
  410. package/dist/ionic/p-c2c4da88.entry.js +4 -0
  411. package/dist/ionic/{p-97f6c01c.system.entry.js → p-c7137d57.system.entry.js} +1 -1
  412. package/dist/ionic/p-c7914648.entry.js +4 -0
  413. package/dist/ionic/{p-eecf3a84.entry.js → p-c7e23c59.entry.js} +1 -1
  414. package/dist/ionic/p-ca48f040.js +4 -0
  415. package/dist/ionic/{p-86deab17.system.entry.js → p-cc984799.system.entry.js} +1 -1
  416. package/dist/ionic/{p-2690b1de.js → p-cf0e9e1e.js} +1 -1
  417. package/dist/ionic/{p-34b11c24.js → p-d16139c2.js} +1 -1
  418. package/dist/ionic/{p-d60342e3.js → p-d24f5d16.js} +1 -1
  419. package/dist/ionic/p-d9a384b9.entry.js +4 -0
  420. package/dist/ionic/p-ddda4235.system.js +4 -0
  421. package/dist/ionic/p-e5be3dfb.js +4 -0
  422. package/dist/ionic/p-e9fc0e09.system.entry.js +4 -0
  423. package/dist/ionic/{p-1f772e46.entry.js → p-eb660bf2.entry.js} +1 -1
  424. package/dist/ionic/{p-76256933.system.entry.js → p-ebcb711f.system.entry.js} +1 -1
  425. package/dist/ionic/{p-444c76ee.system.entry.js → p-ec46d513.system.entry.js} +1 -1
  426. package/dist/ionic/{p-8635f5e6.system.js → p-ec680233.system.js} +1 -1
  427. package/dist/ionic/{p-8884ee37.system.entry.js → p-ec85f7f5.system.entry.js} +1 -1
  428. package/dist/ionic/{p-9ea607bd.system.js → p-ed6d9792.system.js} +2 -2
  429. package/dist/ionic/{p-d4a694c5.system.entry.js → p-edd8f5f9.system.entry.js} +1 -1
  430. package/dist/ionic/p-ee9841a3.js +4 -0
  431. package/dist/ionic/{p-62bb4a33.system.entry.js → p-ef0b1f01.system.entry.js} +1 -1
  432. package/dist/ionic/{p-cc35239f.entry.js → p-f0e78055.entry.js} +1 -1
  433. package/dist/ionic/p-f0fe3aa8.system.js +4 -0
  434. package/dist/ionic/p-f1cc6c18.system.entry.js +4 -0
  435. package/dist/ionic/{p-505121c4.entry.js → p-f32b396b.entry.js} +1 -1
  436. package/dist/ionic/{p-1b57577b.entry.js → p-f4519e12.entry.js} +1 -1
  437. package/dist/ionic/{p-d7cde2c6.entry.js → p-f48ea493.entry.js} +1 -1
  438. package/dist/ionic/{p-4384e5de.system.entry.js → p-f4e225e1.system.entry.js} +1 -1
  439. package/dist/ionic/{p-96503a77.entry.js → p-f9286a3b.entry.js} +1 -1
  440. package/dist/ionic/p-fa23b5f4.entry.js +4 -0
  441. package/dist/ionic/p-fb229af3.entry.js +4 -0
  442. package/dist/ionic/p-fe4b96e6.entry.js +4 -0
  443. package/dist/ionic/p-fe66d1a5.entry.js +4 -0
  444. package/dist/ionic/p-ffd50854.system.entry.js +4 -0
  445. package/dist/types/components/app/app.d.ts +0 -2
  446. package/dist/types/global/ionic-global.d.ts +2 -0
  447. package/dist/types/utils/focus-visible.d.ts +1 -0
  448. package/hydrate/index.js +142 -138
  449. package/hydrate/index.mjs +142 -138
  450. package/package.json +1 -1
  451. package/components/hardware-back-button.js +0 -115
  452. package/components/index8.js +0 -128
  453. package/dist/cjs/hardware-back-button-1f867b1e.js +0 -122
  454. package/dist/cjs/index-5915f9b3.js +0 -38
  455. package/dist/cjs/index-c8d52405.js +0 -10
  456. package/dist/cjs/ionic-global-86430f67.js +0 -237
  457. package/dist/esm/hardware-back-button-8e2c1354.js +0 -116
  458. package/dist/esm/index-79b30591.js +0 -167
  459. package/dist/esm/index-9b0d46f4.js +0 -34
  460. package/dist/esm/index-a5d50daf.js +0 -7
  461. package/dist/esm/ionic-global-8f9440ec.js +0 -231
  462. package/dist/esm-es5/animation-eab5a4ca.js +0 -4
  463. package/dist/esm-es5/app-globals-b9f6e516.js +0 -4
  464. package/dist/esm-es5/capacitor-59395cbd.js +0 -4
  465. package/dist/esm-es5/data-ae11fd43.js +0 -4
  466. package/dist/esm-es5/focus-visible-dd40d69f.js +0 -4
  467. package/dist/esm-es5/hardware-back-button-8e2c1354.js +0 -4
  468. package/dist/esm-es5/index-5cc724f3.js +0 -4
  469. package/dist/esm-es5/index-79b30591.js +0 -4
  470. package/dist/esm-es5/index-8579e7fd.js +0 -4
  471. package/dist/esm-es5/index-97b0ab3f.js +0 -4
  472. package/dist/esm-es5/index-9b0d46f4.js +0 -4
  473. package/dist/esm-es5/index-a5d50daf.js +0 -4
  474. package/dist/esm-es5/input-shims-0314bbe5.js +0 -4
  475. package/dist/esm-es5/input.utils-09c71bc7.js +0 -4
  476. package/dist/esm-es5/ionic-global-8f9440ec.js +0 -4
  477. package/dist/esm-es5/ios.transition-beb96e76.js +0 -4
  478. package/dist/esm-es5/keyboard-52278bd7.js +0 -4
  479. package/dist/esm-es5/keyboard-controller-ec5c2bfa.js +0 -4
  480. package/dist/esm-es5/md.transition-d5aa5703.js +0 -4
  481. package/dist/esm-es5/notch-controller-55b09e11.js +0 -4
  482. package/dist/esm-es5/overlays-2ea57630.js +0 -4
  483. package/dist/esm-es5/status-tap-a264a37f.js +0 -4
  484. package/dist/ionic/p-06e58c4e.js +0 -4
  485. package/dist/ionic/p-06fbb310.entry.js +0 -4
  486. package/dist/ionic/p-06fee233.js +0 -4
  487. package/dist/ionic/p-08cfccad.js +0 -4
  488. package/dist/ionic/p-0c06e09b.system.js +0 -4
  489. package/dist/ionic/p-11810112.system.entry.js +0 -4
  490. package/dist/ionic/p-1277436d.system.entry.js +0 -4
  491. package/dist/ionic/p-14c81a66.system.js +0 -4
  492. package/dist/ionic/p-15ef22b3.system.entry.js +0 -4
  493. package/dist/ionic/p-16917251.entry.js +0 -4
  494. package/dist/ionic/p-184f2f63.system.entry.js +0 -4
  495. package/dist/ionic/p-1cacb881.system.entry.js +0 -4
  496. package/dist/ionic/p-1d3ea8c1.entry.js +0 -4
  497. package/dist/ionic/p-1dfc11b3.system.js +0 -4
  498. package/dist/ionic/p-1dfe9aa7.entry.js +0 -4
  499. package/dist/ionic/p-1e4371bd.js +0 -4
  500. package/dist/ionic/p-2056f176.js +0 -4
  501. package/dist/ionic/p-2afb9310.entry.js +0 -4
  502. package/dist/ionic/p-2b7827c7.js +0 -4
  503. package/dist/ionic/p-2d93a7e5.system.js +0 -4
  504. package/dist/ionic/p-2de64a3f.system.entry.js +0 -4
  505. package/dist/ionic/p-303f64cd.entry.js +0 -4
  506. package/dist/ionic/p-330d7e08.entry.js +0 -4
  507. package/dist/ionic/p-34a6b5a7.entry.js +0 -4
  508. package/dist/ionic/p-382345db.system.entry.js +0 -4
  509. package/dist/ionic/p-46121609.entry.js +0 -4
  510. package/dist/ionic/p-49ffacc0.system.entry.js +0 -4
  511. package/dist/ionic/p-4ad3a2de.entry.js +0 -4
  512. package/dist/ionic/p-4c2d5b80.system.js +0 -4
  513. package/dist/ionic/p-4e6aa78c.entry.js +0 -4
  514. package/dist/ionic/p-4fa22b8c.entry.js +0 -4
  515. package/dist/ionic/p-50c38a28.system.entry.js +0 -4
  516. package/dist/ionic/p-52fce436.entry.js +0 -4
  517. package/dist/ionic/p-5749f245.system.entry.js +0 -4
  518. package/dist/ionic/p-586fa05c.system.js +0 -4
  519. package/dist/ionic/p-5ae3649f.system.entry.js +0 -4
  520. package/dist/ionic/p-669c0566.system.js +0 -4
  521. package/dist/ionic/p-66aa91c8.js +0 -4
  522. package/dist/ionic/p-6be871f6.system.entry.js +0 -4
  523. package/dist/ionic/p-6e444bfa.entry.js +0 -4
  524. package/dist/ionic/p-6e4ff107.system.entry.js +0 -4
  525. package/dist/ionic/p-7123a4b9.system.js +0 -4
  526. package/dist/ionic/p-72812e99.js +0 -4
  527. package/dist/ionic/p-72bc8a1c.js +0 -4
  528. package/dist/ionic/p-792919fd.system.js +0 -4
  529. package/dist/ionic/p-7b30edcc.js +0 -4
  530. package/dist/ionic/p-82ad7191.entry.js +0 -4
  531. package/dist/ionic/p-8302d21c.system.entry.js +0 -4
  532. package/dist/ionic/p-840cdfe8.entry.js +0 -4
  533. package/dist/ionic/p-86895ed7.system.js +0 -4
  534. package/dist/ionic/p-8c1f6a17.entry.js +0 -4
  535. package/dist/ionic/p-8d460677.entry.js +0 -4
  536. package/dist/ionic/p-8ed4381f.js +0 -4
  537. package/dist/ionic/p-96cc4814.js +0 -4
  538. package/dist/ionic/p-985f06f3.entry.js +0 -4
  539. package/dist/ionic/p-98a7aade.js +0 -4
  540. package/dist/ionic/p-9a64afc9.entry.js +0 -4
  541. package/dist/ionic/p-9a957058.system.entry.js +0 -4
  542. package/dist/ionic/p-9beb3fad.js +0 -4
  543. package/dist/ionic/p-9cd1f569.system.js +0 -4
  544. package/dist/ionic/p-a15ddedb.system.js +0 -4
  545. package/dist/ionic/p-ab44e74e.entry.js +0 -4
  546. package/dist/ionic/p-abe101da.system.js +0 -4
  547. package/dist/ionic/p-b032d7ad.system.entry.js +0 -4
  548. package/dist/ionic/p-b0d099be.js +0 -4
  549. package/dist/ionic/p-b0fea0ab.system.entry.js +0 -4
  550. package/dist/ionic/p-b6f09d60.system.entry.js +0 -4
  551. package/dist/ionic/p-bb013b6c.system.entry.js +0 -4
  552. package/dist/ionic/p-be11fb42.system.js +0 -4
  553. package/dist/ionic/p-be32a527.entry.js +0 -4
  554. package/dist/ionic/p-c468af8a.system.js +0 -4
  555. package/dist/ionic/p-c61cc894.js +0 -4
  556. package/dist/ionic/p-c655f9cc.js +0 -4
  557. package/dist/ionic/p-c7b3353c.entry.js +0 -4
  558. package/dist/ionic/p-ccfe13f3.entry.js +0 -4
  559. package/dist/ionic/p-cdb1dc2f.system.entry.js +0 -4
  560. package/dist/ionic/p-d232cc6e.system.entry.js +0 -4
  561. package/dist/ionic/p-d47265c8.js +0 -4
  562. package/dist/ionic/p-d690dc50.system.entry.js +0 -4
  563. package/dist/ionic/p-d6b5bfa3.entry.js +0 -4
  564. package/dist/ionic/p-d81e5138.entry.js +0 -4
  565. package/dist/ionic/p-da5af268.system.entry.js +0 -4
  566. package/dist/ionic/p-e8cd5bde.js +0 -4
  567. package/dist/ionic/p-ebe1326c.system.js +0 -4
  568. package/dist/ionic/p-ed76b287.entry.js +0 -4
  569. package/dist/ionic/p-f8fbf20f.system.entry.js +0 -4
  570. package/dist/ionic/p-ff417d5d.system.entry.js +0 -4
  571. package/dist/ionic/p-ff4b7e40.system.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -2610,7 +2610,7 @@ const focusVisibleElement = (el) => {
2610
2610
  * which will let us explicitly set the elements to focus.
2611
2611
  */
2612
2612
  if (el.classList.contains('ion-focusable')) {
2613
- const app = el.closest('ion-app');
2613
+ const app = el.closest('ion-app, .ion-app');
2614
2614
  if (app) {
2615
2615
  app.setFocus([el]);
2616
2616
  }
@@ -2772,6 +2772,55 @@ class Config {
2772
2772
  }
2773
2773
  const config = /*@__PURE__*/ new Config();
2774
2774
 
2775
+ const win$1 = typeof window !== 'undefined' ? window : undefined;
2776
+ const doc = typeof document !== 'undefined' ? document : undefined;
2777
+
2778
+ /**
2779
+ * CloseWatcher is a newer API that lets
2780
+ * use detect the hardware back button event
2781
+ * in a web browser: https://caniuse.com/?search=closewatcher
2782
+ * However, not every browser supports it yet.
2783
+ *
2784
+ * This needs to be a function so that we can
2785
+ * check the config once it has been set.
2786
+ * Otherwise, this code would be evaluated the
2787
+ * moment this file is evaluated which could be
2788
+ * before the config is set.
2789
+ */
2790
+ const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win$1 !== undefined && 'CloseWatcher' in win$1;
2791
+ const OVERLAY_BACK_BUTTON_PRIORITY = 100;
2792
+ const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
2793
+
2794
+ /**
2795
+ * Logs a warning to the console with an Ionic prefix
2796
+ * to indicate the library that is warning the developer.
2797
+ *
2798
+ * @param message - The string message to be logged to the console.
2799
+ */
2800
+ const printIonWarning = (message, ...params) => {
2801
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
2802
+ };
2803
+ /*
2804
+ * Logs an error to the console with an Ionic prefix
2805
+ * to indicate the library that is warning the developer.
2806
+ *
2807
+ * @param message - The string message to be logged to the console.
2808
+ * @param params - Additional arguments to supply to the console.error.
2809
+ */
2810
+ const printIonError = (message, ...params) => {
2811
+ return console.error(`[Ionic Error]: ${message}`, ...params);
2812
+ };
2813
+ /**
2814
+ * Prints an error informing developers that an implementation requires an element to be used
2815
+ * within a specific selector.
2816
+ *
2817
+ * @param el The web component element this is requiring the element.
2818
+ * @param targetSelectors The selector or selectors that were not found.
2819
+ */
2820
+ const printRequiredElementError = (el, ...targetSelectors) => {
2821
+ return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);
2822
+ };
2823
+
2775
2824
  const getPlatforms = (win) => setupPlatforms(win);
2776
2825
  const isPlatform = (winOrPlatform, platform) => {
2777
2826
  if (typeof winOrPlatform === 'string') {
@@ -3212,36 +3261,6 @@ class Accordion {
3212
3261
  }
3213
3262
  let accordionIds = 0;
3214
3263
 
3215
- /**
3216
- * Logs a warning to the console with an Ionic prefix
3217
- * to indicate the library that is warning the developer.
3218
- *
3219
- * @param message - The string message to be logged to the console.
3220
- */
3221
- const printIonWarning = (message, ...params) => {
3222
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3223
- };
3224
- /*
3225
- * Logs an error to the console with an Ionic prefix
3226
- * to indicate the library that is warning the developer.
3227
- *
3228
- * @param message - The string message to be logged to the console.
3229
- * @param params - Additional arguments to supply to the console.error.
3230
- */
3231
- const printIonError = (message, ...params) => {
3232
- return console.error(`[Ionic Error]: ${message}`, ...params);
3233
- };
3234
- /**
3235
- * Prints an error informing developers that an implementation requires an element to be used
3236
- * within a specific selector.
3237
- *
3238
- * @param el The web component element this is requiring the element.
3239
- * @param targetSelectors The selector or selectors that were not found.
3240
- */
3241
- const printRequiredElementError = (el, ...targetSelectors) => {
3242
- return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);
3243
- };
3244
-
3245
3264
  const accordionGroupIosCss = ":host{display:block}:host(.accordion-group-expand-inset){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:16px;margin-bottom:16px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){border-bottom:none}";
3246
3265
  var IonAccordionGroupIosStyle0 = accordionGroupIosCss;
3247
3266
 
@@ -3480,9 +3499,6 @@ class AccordionGroup {
3480
3499
  }; }
3481
3500
  }
3482
3501
 
3483
- const win$1 = typeof window !== 'undefined' ? window : undefined;
3484
- const doc = typeof document !== 'undefined' ? document : undefined;
3485
-
3486
3502
  const getCapacitor = () => {
3487
3503
  if (win$1 !== undefined) {
3488
3504
  return win$1.Capacitor;
@@ -4457,22 +4473,6 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
4457
4473
  }
4458
4474
  };
4459
4475
 
4460
- /**
4461
- * CloseWatcher is a newer API that lets
4462
- * use detect the hardware back button event
4463
- * in a web browser: https://caniuse.com/?search=closewatcher
4464
- * However, not every browser supports it yet.
4465
- *
4466
- * This needs to be a function so that we can
4467
- * check the config once it has been set.
4468
- * Otherwise, this code would be evaluated the
4469
- * moment this file is evaluated which could be
4470
- * before the config is set.
4471
- */
4472
- const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win$1 !== undefined && 'CloseWatcher' in win$1;
4473
- const OVERLAY_BACK_BUTTON_PRIORITY = 100;
4474
- const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
4475
-
4476
4476
  // TODO(FW-2832): types
4477
4477
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
4478
4478
  var _a;
@@ -4572,7 +4572,7 @@ const CoreDelegate = () => {
4572
4572
  * Get the root of the app and
4573
4573
  * add the overlay there.
4574
4574
  */
4575
- const app = document.querySelector('ion-app') || document.body;
4575
+ const app = document.querySelector('ion-app, .ion-app') || document.body;
4576
4576
  /**
4577
4577
  * Create a placeholder comment so that
4578
4578
  * we can return this component to where
@@ -5168,7 +5168,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
5168
5168
  return true;
5169
5169
  };
5170
5170
  const getAppRoot = (doc) => {
5171
- return doc.querySelector('ion-app') || doc.body;
5171
+ return doc.querySelector('ion-app, .ion-app') || doc.body;
5172
5172
  };
5173
5173
  const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
5174
5174
  // Make overlay visible in case it's hidden
@@ -7297,6 +7297,84 @@ const buttonClass$2 = (button) => {
7297
7297
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
7298
7298
  };
7299
7299
 
7300
+ const ION_FOCUSED = 'ion-focused';
7301
+ const ION_FOCUSABLE = 'ion-focusable';
7302
+ const FOCUS_KEYS = [
7303
+ 'Tab',
7304
+ 'ArrowDown',
7305
+ 'Space',
7306
+ 'Escape',
7307
+ ' ',
7308
+ 'Shift',
7309
+ 'Enter',
7310
+ 'ArrowLeft',
7311
+ 'ArrowRight',
7312
+ 'ArrowUp',
7313
+ 'Home',
7314
+ 'End',
7315
+ ];
7316
+ let focusVisibleUtility = null;
7317
+ const getOrInitFocusVisibleUtility = () => {
7318
+ if (!focusVisibleUtility) {
7319
+ focusVisibleUtility = startFocusVisible();
7320
+ }
7321
+ return focusVisibleUtility;
7322
+ };
7323
+ const startFocusVisible = (rootEl) => {
7324
+ let currentFocus = [];
7325
+ let keyboardMode = true;
7326
+ const ref = rootEl ? rootEl.shadowRoot : document;
7327
+ const root = rootEl ? rootEl : document.body;
7328
+ const setFocus = (elements) => {
7329
+ currentFocus.forEach((el) => el.classList.remove(ION_FOCUSED));
7330
+ elements.forEach((el) => el.classList.add(ION_FOCUSED));
7331
+ currentFocus = elements;
7332
+ };
7333
+ const pointerDown = () => {
7334
+ keyboardMode = false;
7335
+ setFocus([]);
7336
+ };
7337
+ const onKeydown = (ev) => {
7338
+ keyboardMode = FOCUS_KEYS.includes(ev.key);
7339
+ if (!keyboardMode) {
7340
+ setFocus([]);
7341
+ }
7342
+ };
7343
+ const onFocusin = (ev) => {
7344
+ if (keyboardMode && ev.composedPath !== undefined) {
7345
+ const toFocus = ev.composedPath().filter((el) => {
7346
+ // TODO(FW-2832): type
7347
+ if (el.classList) {
7348
+ return el.classList.contains(ION_FOCUSABLE);
7349
+ }
7350
+ return false;
7351
+ });
7352
+ setFocus(toFocus);
7353
+ }
7354
+ };
7355
+ const onFocusout = () => {
7356
+ if (ref.activeElement === root) {
7357
+ setFocus([]);
7358
+ }
7359
+ };
7360
+ ref.addEventListener('keydown', onKeydown);
7361
+ ref.addEventListener('focusin', onFocusin);
7362
+ ref.addEventListener('focusout', onFocusout);
7363
+ ref.addEventListener('touchstart', pointerDown, { passive: true });
7364
+ ref.addEventListener('mousedown', pointerDown);
7365
+ const destroy = () => {
7366
+ ref.removeEventListener('keydown', onKeydown);
7367
+ ref.removeEventListener('focusin', onFocusin);
7368
+ ref.removeEventListener('focusout', onFocusout);
7369
+ ref.removeEventListener('touchstart', pointerDown);
7370
+ ref.removeEventListener('mousedown', pointerDown);
7371
+ };
7372
+ return {
7373
+ destroy,
7374
+ setFocus,
7375
+ };
7376
+ };
7377
+
7300
7378
  const appCss = "html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}";
7301
7379
  var IonAppStyle0 = appCss;
7302
7380
 
@@ -7304,8 +7382,6 @@ class App {
7304
7382
  constructor(hostRef) {
7305
7383
  registerInstance(this, hostRef);
7306
7384
  }
7307
- componentDidLoad() {
7308
- }
7309
7385
  /**
7310
7386
  * @internal
7311
7387
  * Used to set focus on an element that uses `ion-focusable`.
@@ -7317,13 +7393,12 @@ class App {
7317
7393
  * presented as a result of keyboard action.)
7318
7394
  */
7319
7395
  async setFocus(elements) {
7320
- if (this.focusVisible) {
7321
- this.focusVisible.setFocus(elements);
7322
- }
7396
+ const focusVisible = getOrInitFocusVisibleUtility();
7397
+ focusVisible.setFocus(elements);
7323
7398
  }
7324
7399
  render() {
7325
7400
  const mode = getIonMode$1(this);
7326
- return (hAsync(Host, { key: 'a562850f242d9d45573e35efdd4bd178254677ef', class: {
7401
+ return (hAsync(Host, { key: '4773923a95e44577ff634c0ae6f1a56f41b54088', class: {
7327
7402
  [mode]: true,
7328
7403
  'ion-page': true,
7329
7404
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -9095,7 +9170,7 @@ const getPageElement = (el) => {
9095
9170
  * between the popover and the edges of the screen. But if the popover contains
9096
9171
  * its own page element, we should use that instead.
9097
9172
  */
9098
- const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
9173
+ const page = el.closest('ion-app, .ion-app, ion-page, .ion-page, page-inner, .popover-content');
9099
9174
  if (page) {
9100
9175
  return page;
9101
9176
  }
@@ -9129,77 +9204,6 @@ const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
9129
9204
  }
9130
9205
  };
9131
9206
 
9132
- const ION_FOCUSED = 'ion-focused';
9133
- const ION_FOCUSABLE = 'ion-focusable';
9134
- const FOCUS_KEYS = [
9135
- 'Tab',
9136
- 'ArrowDown',
9137
- 'Space',
9138
- 'Escape',
9139
- ' ',
9140
- 'Shift',
9141
- 'Enter',
9142
- 'ArrowLeft',
9143
- 'ArrowRight',
9144
- 'ArrowUp',
9145
- 'Home',
9146
- 'End',
9147
- ];
9148
- const startFocusVisible = (rootEl) => {
9149
- let currentFocus = [];
9150
- let keyboardMode = true;
9151
- const ref = rootEl ? rootEl.shadowRoot : document;
9152
- const root = rootEl ? rootEl : document.body;
9153
- const setFocus = (elements) => {
9154
- currentFocus.forEach((el) => el.classList.remove(ION_FOCUSED));
9155
- elements.forEach((el) => el.classList.add(ION_FOCUSED));
9156
- currentFocus = elements;
9157
- };
9158
- const pointerDown = () => {
9159
- keyboardMode = false;
9160
- setFocus([]);
9161
- };
9162
- const onKeydown = (ev) => {
9163
- keyboardMode = FOCUS_KEYS.includes(ev.key);
9164
- if (!keyboardMode) {
9165
- setFocus([]);
9166
- }
9167
- };
9168
- const onFocusin = (ev) => {
9169
- if (keyboardMode && ev.composedPath !== undefined) {
9170
- const toFocus = ev.composedPath().filter((el) => {
9171
- // TODO(FW-2832): type
9172
- if (el.classList) {
9173
- return el.classList.contains(ION_FOCUSABLE);
9174
- }
9175
- return false;
9176
- });
9177
- setFocus(toFocus);
9178
- }
9179
- };
9180
- const onFocusout = () => {
9181
- if (ref.activeElement === root) {
9182
- setFocus([]);
9183
- }
9184
- };
9185
- ref.addEventListener('keydown', onKeydown);
9186
- ref.addEventListener('focusin', onFocusin);
9187
- ref.addEventListener('focusout', onFocusout);
9188
- ref.addEventListener('touchstart', pointerDown, { passive: true });
9189
- ref.addEventListener('mousedown', pointerDown);
9190
- const destroy = () => {
9191
- ref.removeEventListener('keydown', onKeydown);
9192
- ref.removeEventListener('focusin', onFocusin);
9193
- ref.removeEventListener('focusout', onFocusout);
9194
- ref.removeEventListener('touchstart', pointerDown);
9195
- ref.removeEventListener('mousedown', pointerDown);
9196
- };
9197
- return {
9198
- destroy,
9199
- setFocus,
9200
- };
9201
- };
9202
-
9203
9207
  /**
9204
9208
  * Returns true if the selected day is equal to the reference day
9205
9209
  */
@@ -13430,7 +13434,7 @@ const getResizeContainer = (resizeMode) => {
13430
13434
  * on that. In the event `ion-app` is not available then
13431
13435
  * we can fall back to `body`.
13432
13436
  */
13433
- const ionApp = doc.querySelector('ion-app');
13437
+ const ionApp = doc.querySelector('ion-app, .ion-app');
13434
13438
  return ionApp !== null && ionApp !== void 0 ? ionApp : doc.body;
13435
13439
  };
13436
13440
  /**
@@ -13617,7 +13621,7 @@ class Footer {
13617
13621
  const hasFade = collapse === 'fade';
13618
13622
  this.destroyCollapsibleFooter();
13619
13623
  if (hasFade) {
13620
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
13624
+ const pageEl = this.el.closest('ion-app,.ion-app,ion-page,.ion-page,page-inner');
13621
13625
  const contentEl = pageEl ? findIonContent(pageEl) : null;
13622
13626
  if (!contentEl) {
13623
13627
  printIonContentErrorMsg(this.el);
@@ -13676,7 +13680,7 @@ class Footer {
13676
13680
  const mode = getIonMode$1(this);
13677
13681
  const tabs = this.el.closest('ion-tabs');
13678
13682
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
13679
- return (hAsync(Host, { key: '5da19dc38ba73e1ddfd1bef3ebd485105d77c751', role: "contentinfo", class: {
13683
+ return (hAsync(Host, { key: '1ccb49da6f7c9f1f883904ae4b931fac5f341216', role: "contentinfo", class: {
13680
13684
  [mode]: true,
13681
13685
  // Used internally for styling
13682
13686
  [`footer-${mode}`]: true,
@@ -13684,7 +13688,7 @@ class Footer {
13684
13688
  [`footer-translucent-${mode}`]: translucent,
13685
13689
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
13686
13690
  [`footer-collapse-${collapse}`]: collapse !== undefined,
13687
- } }, mode === 'ios' && translucent && hAsync("div", { key: 'fafad08090a33d8c4e8a5b63d61929dcb89aab47', class: "footer-background" }), hAsync("slot", { key: 'e0a443d346afa55e4317c0bc1263fdbe3c619559' })));
13691
+ } }, mode === 'ios' && translucent && hAsync("div", { key: 'a910070df4e5faee7b135d10364510c612cd2587', class: "footer-background" }), hAsync("slot", { key: '1507567059072ecf7243d6a304079c52eb58455f' })));
13688
13692
  }
13689
13693
  get el() { return getElement(this); }
13690
13694
  static get style() { return {
@@ -13958,7 +13962,7 @@ class Header {
13958
13962
  const hasFade = collapse === 'fade';
13959
13963
  this.destroyCollapsibleHeader();
13960
13964
  if (hasCondense) {
13961
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
13965
+ const pageEl = this.el.closest('ion-app,.ion-app,ion-page,.ion-page,page-inner');
13962
13966
  const contentEl = pageEl ? findIonContent(pageEl) : null;
13963
13967
  // Cloned elements are always needed in iOS transition
13964
13968
  writeTask(() => {
@@ -13969,7 +13973,7 @@ class Header {
13969
13973
  await this.setupCondenseHeader(contentEl, pageEl);
13970
13974
  }
13971
13975
  else if (hasFade) {
13972
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
13976
+ const pageEl = this.el.closest('ion-app,.ion-app,ion-page,.ion-page,page-inner');
13973
13977
  const contentEl = pageEl ? findIonContent(pageEl) : null;
13974
13978
  if (!contentEl) {
13975
13979
  printIonContentErrorMsg(this.el);
@@ -14049,14 +14053,14 @@ class Header {
14049
14053
  const collapse = this.collapse || 'none';
14050
14054
  // banner role must be at top level, so remove role if inside a menu
14051
14055
  const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
14052
- return (hAsync(Host, Object.assign({ key: 'c687314ef290793a9d633ad20cfc5eeb47621e31', role: roleType, class: {
14056
+ return (hAsync(Host, Object.assign({ key: '6a248ea9b21b1122084069ba99477cdde3322158', role: roleType, class: {
14053
14057
  [mode]: true,
14054
14058
  // Used internally for styling
14055
14059
  [`header-${mode}`]: true,
14056
14060
  [`header-translucent`]: this.translucent,
14057
14061
  [`header-collapse-${collapse}`]: true,
14058
14062
  [`header-translucent-${mode}`]: this.translucent,
14059
- } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: 'b429996046082405a91e7c23f95516db0b736f12', class: "header-background" }), hAsync("slot", { key: 'e17a8965f8d3a33c1bfcb056c153d8242e5229fa' })));
14063
+ } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: 'c3e8bc6dfacd2df1a2611a660dcabc3b876dd3f9', class: "header-background" }), hAsync("slot", { key: '6f4829f92a05b97ae7d6e1ac2141934ee6041c4a' })));
14060
14064
  }
14061
14065
  get el() { return getElement(this); }
14062
14066
  static get style() { return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.3.1-dev.11726241210.1ab7a0ab",
3
+ "version": "8.3.1-dev.11727899155.103c4afc",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -1,115 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { w as win } from './index5.js';
5
- import { c as config } from './ionic-global.js';
6
-
7
- /**
8
- * CloseWatcher is a newer API that lets
9
- * use detect the hardware back button event
10
- * in a web browser: https://caniuse.com/?search=closewatcher
11
- * However, not every browser supports it yet.
12
- *
13
- * This needs to be a function so that we can
14
- * check the config once it has been set.
15
- * Otherwise, this code would be evaluated the
16
- * moment this file is evaluated which could be
17
- * before the config is set.
18
- */
19
- const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
20
- /**
21
- * When hardwareBackButton: false in config,
22
- * we need to make sure we also block the default
23
- * webview behavior. If we don't then it will be
24
- * possible for users to navigate backward while
25
- * an overlay is still open. Additionally, it will
26
- * give the appearance that the hardwareBackButton
27
- * config is not working as the page transition
28
- * will still happen.
29
- */
30
- const blockHardwareBackButton = () => {
31
- document.addEventListener('backbutton', () => { }); // eslint-disable-line
32
- };
33
- const startHardwareBackButton = () => {
34
- const doc = document;
35
- let busy = false;
36
- const backButtonCallback = () => {
37
- if (busy) {
38
- return;
39
- }
40
- let index = 0;
41
- let handlers = [];
42
- const ev = new CustomEvent('ionBackButton', {
43
- bubbles: false,
44
- detail: {
45
- register(priority, handler) {
46
- handlers.push({ priority, handler, id: index++ });
47
- },
48
- },
49
- });
50
- doc.dispatchEvent(ev);
51
- const executeAction = async (handlerRegister) => {
52
- try {
53
- if (handlerRegister === null || handlerRegister === void 0 ? void 0 : handlerRegister.handler) {
54
- const result = handlerRegister.handler(processHandlers);
55
- if (result != null) {
56
- await result;
57
- }
58
- }
59
- }
60
- catch (e) {
61
- console.error(e);
62
- }
63
- };
64
- const processHandlers = () => {
65
- if (handlers.length > 0) {
66
- let selectedHandler = {
67
- priority: Number.MIN_SAFE_INTEGER,
68
- handler: () => undefined,
69
- id: -1,
70
- };
71
- handlers.forEach((handler) => {
72
- if (handler.priority >= selectedHandler.priority) {
73
- selectedHandler = handler;
74
- }
75
- });
76
- busy = true;
77
- handlers = handlers.filter((handler) => handler.id !== selectedHandler.id);
78
- executeAction(selectedHandler).then(() => (busy = false));
79
- }
80
- };
81
- processHandlers();
82
- };
83
- /**
84
- * If the CloseWatcher is defined then
85
- * we don't want to also listen for the native
86
- * backbutton event otherwise we may get duplicate
87
- * events firing.
88
- */
89
- if (shouldUseCloseWatcher()) {
90
- let watcher;
91
- const configureWatcher = () => {
92
- watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
93
- watcher = new win.CloseWatcher();
94
- /**
95
- * Once a close request happens
96
- * the watcher gets destroyed.
97
- * As a result, we need to re-configure
98
- * the watcher so we can respond to other
99
- * close requests.
100
- */
101
- watcher.onclose = () => {
102
- backButtonCallback();
103
- configureWatcher();
104
- };
105
- };
106
- configureWatcher();
107
- }
108
- else {
109
- doc.addEventListener('backbutton', backButtonCallback);
110
- }
111
- };
112
- const OVERLAY_BACK_BUTTON_PRIORITY = 100;
113
- const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
114
-
115
- export { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, shouldUseCloseWatcher, startHardwareBackButton };
@@ -1,128 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { c as componentOnReady } from './helpers.js';
5
- import { b as printRequiredElementError } from './index6.js';
6
-
7
- const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
8
- const ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';
9
- const ION_CONTENT_CLASS_SELECTOR = '.ion-content-scroll-host';
10
- /**
11
- * Selector used for implementations reliant on `<ion-content>` for scroll event changes.
12
- *
13
- * Developers should use the `.ion-content-scroll-host` selector to target the element emitting
14
- * scroll events. With virtual scroll implementations this will be the host element for
15
- * the scroll viewport.
16
- */
17
- const ION_CONTENT_SELECTOR = `${ION_CONTENT_ELEMENT_SELECTOR}, ${ION_CONTENT_CLASS_SELECTOR}`;
18
- const isIonContent = (el) => el.tagName === ION_CONTENT_TAG_NAME;
19
- /**
20
- * Waits for the element host fully initialize before
21
- * returning the inner scroll element.
22
- *
23
- * For `ion-content` the scroll target will be the result
24
- * of the `getScrollElement` function.
25
- *
26
- * For custom implementations it will be the element host
27
- * or a selector within the host, if supplied through `scrollTarget`.
28
- */
29
- const getScrollElement = async (el) => {
30
- if (isIonContent(el)) {
31
- await new Promise((resolve) => componentOnReady(el, resolve));
32
- return el.getScrollElement();
33
- }
34
- return el;
35
- };
36
- /**
37
- * Queries the element matching the selector for IonContent.
38
- * See ION_CONTENT_SELECTOR for the selector used.
39
- */
40
- const findIonContent = (el) => {
41
- /**
42
- * First we try to query the custom scroll host selector in cases where
43
- * the implementation is using an outer `ion-content` with an inner custom
44
- * scroll container.
45
- */
46
- const customContentHost = el.querySelector(ION_CONTENT_CLASS_SELECTOR);
47
- if (customContentHost) {
48
- return customContentHost;
49
- }
50
- return el.querySelector(ION_CONTENT_SELECTOR);
51
- };
52
- /**
53
- * Queries the closest element matching the selector for IonContent.
54
- */
55
- const findClosestIonContent = (el) => {
56
- return el.closest(ION_CONTENT_SELECTOR);
57
- };
58
- /**
59
- * Scrolls to the top of the element. If an `ion-content` is found, it will scroll
60
- * using the public API `scrollToTop` with a duration.
61
- */
62
- const scrollToTop = (el, durationMs) => {
63
- if (isIonContent(el)) {
64
- const content = el;
65
- return content.scrollToTop(durationMs);
66
- }
67
- return Promise.resolve(el.scrollTo({
68
- top: 0,
69
- left: 0,
70
- behavior: durationMs > 0 ? 'smooth' : 'auto',
71
- }));
72
- };
73
- /**
74
- * Scrolls by a specified X/Y distance in the component. If an `ion-content` is found, it will scroll
75
- * using the public API `scrollByPoint` with a duration.
76
- */
77
- const scrollByPoint = (el, x, y, durationMs) => {
78
- if (isIonContent(el)) {
79
- const content = el;
80
- return content.scrollByPoint(x, y, durationMs);
81
- }
82
- return Promise.resolve(el.scrollBy({
83
- top: y,
84
- left: x,
85
- behavior: durationMs > 0 ? 'smooth' : 'auto',
86
- }));
87
- };
88
- /**
89
- * Prints an error informing developers that an implementation requires an element to be used
90
- * within either the `ion-content` selector or the `.ion-content-scroll-host` class.
91
- */
92
- const printIonContentErrorMsg = (el) => {
93
- return printRequiredElementError(el, ION_CONTENT_ELEMENT_SELECTOR);
94
- };
95
- /**
96
- * Several components in Ionic need to prevent scrolling
97
- * during a gesture (card modal, range, item sliding, etc).
98
- * Use this utility to account for ion-content and custom content hosts.
99
- */
100
- const disableContentScrollY = (contentEl) => {
101
- if (isIonContent(contentEl)) {
102
- const ionContent = contentEl;
103
- const initialScrollY = ionContent.scrollY;
104
- ionContent.scrollY = false;
105
- /**
106
- * This should be passed into resetContentScrollY
107
- * so that we can revert ion-content's scrollY to the
108
- * correct state. For example, if scrollY = false
109
- * initially, we do not want to enable scrolling
110
- * when we call resetContentScrollY.
111
- */
112
- return initialScrollY;
113
- }
114
- else {
115
- contentEl.style.setProperty('overflow', 'hidden');
116
- return true;
117
- }
118
- };
119
- const resetContentScrollY = (contentEl, initialScrollY) => {
120
- if (isIonContent(contentEl)) {
121
- contentEl.scrollY = initialScrollY;
122
- }
123
- else {
124
- contentEl.style.removeProperty('overflow');
125
- }
126
- };
127
-
128
- export { ION_CONTENT_CLASS_SELECTOR as I, findClosestIonContent as a, ION_CONTENT_ELEMENT_SELECTOR as b, scrollByPoint as c, disableContentScrollY as d, findIonContent as f, getScrollElement as g, isIonContent as i, printIonContentErrorMsg as p, resetContentScrollY as r, scrollToTop as s };