@ionic/core 9.0.7-dev.11791381676.118a7a15 → 9.0.7-dev.11792524803.14f0e7d2

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 (470) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/{p-CvyvLbPe.js → p-6sKRBFnK.js} +1 -1
  99. package/components/{p-V1THdfzs.js → p-B8HBLiYi.js} +1 -1
  100. package/components/{p-HthJZjZ6.js → p-BEiYs-sz.js} +1 -1
  101. package/components/p-BKeulLTJ.js +4 -0
  102. package/components/{p-Dvyv9SMk.js → p-BKxLivx4.js} +1 -1
  103. package/components/{p-BMHdI-wb.js → p-BLjEwM6v.js} +1 -1
  104. package/components/p-BNnmwjuy.js +4 -0
  105. package/components/{p-DMPsc_0r.js → p-BSJriPuC.js} +1 -1
  106. package/components/p-BUVGbkSc.js +4 -0
  107. package/components/{p-KbMCbGRA.js → p-B_tZQKpS.js} +1 -1
  108. package/components/{p-DhfJAkyd.js → p-BinR4_P7.js} +1 -1
  109. package/components/{p-CqvARtmt.js → p-BrOSQhkA.js} +1 -1
  110. package/components/p-BriaEJK8.js +4 -0
  111. package/components/p-BsLM9eQu.js +4 -0
  112. package/components/p-Bu6O-veK.js +4 -0
  113. package/{dist/ionic/p-e1haAYzm.js → components/p-C7rB-0-1.js} +1 -1
  114. package/components/{p-CdrNHfZl.js → p-C9ioHZq-.js} +1 -1
  115. package/components/{p-BODcC-C0.js → p-CAQG0btC.js} +1 -1
  116. package/components/{p-BqyLLYLm.js → p-CHHkdXfP.js} +1 -1
  117. package/components/p-CJgshb3W.js +4 -0
  118. package/components/{p-jsVMT15X.js → p-CQjNc-Pz.js} +1 -1
  119. package/components/{p-Drpw2dyl.js → p-CTUMJM0R.js} +1 -1
  120. package/{dist/ionic/p-DQXtveHv.js → components/p-CVVUo4J1.js} +1 -1
  121. package/components/{p-DBtFJlTi.js → p-CXy2v7GI.js} +1 -1
  122. package/components/{p-C1AxSUnp.js → p-C_NQIzjP.js} +1 -1
  123. package/components/{p-Ba9_OzSY.js → p-Canp1qah.js} +1 -1
  124. package/components/p-CcQQ8oRo.js +4 -0
  125. package/components/{p-hLu-eIbb.js → p-CiFFeRH9.js} +1 -1
  126. package/components/{p-DnGlmM4u.js → p-CiXOsJF2.js} +1 -1
  127. package/components/p-Ctw69DyZ.js +4 -0
  128. package/components/{p-C_gnmBt2.js → p-CvzE7FFp.js} +1 -1
  129. package/components/{p-r59A3wQk.js → p-CzykzqAO.js} +1 -1
  130. package/components/{p--cshUOAU.js → p-D0jSx7rE.js} +1 -1
  131. package/components/{p-YNnH1_Hs.js → p-D4NOsSCE.js} +1 -1
  132. package/components/{p-BG2lMobd.js → p-DGLuPe1e.js} +1 -1
  133. package/components/{p-CjPRDxby.js → p-DGUed0uX.js} +1 -1
  134. package/components/{p-DDI6VLW9.js → p-DM2jMsSO.js} +1 -1
  135. package/components/{p-yGD6MBgf.js → p-DPyjiKOq.js} +1 -1
  136. package/components/{p-7KepMw9O.js → p-DSmHJ2DH.js} +1 -1
  137. package/components/{p-DHo45oj7.js → p-DWGgvN5e.js} +1 -1
  138. package/components/{p-B4IBdPVJ.js → p-DlUdjUlf.js} +1 -1
  139. package/components/{p-ChkSQqfP.js → p-Dlr7b3_2.js} +1 -1
  140. package/components/{p-ChsJlFCQ.js → p-LH1I_Zhd.js} +1 -1
  141. package/components/{p-D64Tyi-z.js → p-PPagT42x.js} +1 -1
  142. package/components/{p-ZrYBjOcc.js → p-RJT5zTbD.js} +1 -1
  143. package/components/{p-GpqwNbxf.js → p-T2dnrBya.js} +1 -1
  144. package/components/p-WMQuK_Tj.js +4 -0
  145. package/components/{p-_y7kwBO8.js → p-eJpG4UbM.js} +1 -1
  146. package/components/{p-TLtgwTFF.js → p-fFx6WCTj.js} +1 -1
  147. package/components/p-q2WJ5Igc.js +4 -0
  148. package/components/{p-CKiqp4Vl.js → p-y7Nhe3de.js} +1 -1
  149. package/components/{p-BVNUhOOf.js → p-yjLe0sN2.js} +1 -1
  150. package/css/core.css.map +1 -1
  151. package/css/display.css.map +1 -1
  152. package/css/flex-utils.css.map +1 -1
  153. package/css/float-elements.css +1 -1
  154. package/css/float-elements.css.map +1 -1
  155. package/css/global.bundle.css.map +1 -1
  156. package/css/ionic.bundle.css +1 -1
  157. package/css/ionic.bundle.css.map +1 -1
  158. package/css/padding.css.map +1 -1
  159. package/css/structure.css.map +1 -1
  160. package/css/text-alignment.css.map +1 -1
  161. package/css/text-transformation.css.map +1 -1
  162. package/css/typography.css.map +1 -1
  163. package/css/utils.bundle.css +1 -1
  164. package/css/utils.bundle.css.map +1 -1
  165. package/dist/cjs/{animation-DcgLg_PI.js → animation-BFKyYY11.js} +2 -2
  166. package/dist/cjs/{app-globals-BoFCZq0K.js → app-globals-BLTzqkrC.js} +1 -1
  167. package/dist/cjs/{attribute-controller-BjTE2TOf.js → attribute-controller-CXIeB0Mn.js} +1 -1
  168. package/dist/cjs/{button-active-FdsfRDY_.js → button-active-CEQaiV9N.js} +2 -2
  169. package/dist/cjs/{capacitor-C6Pp4Z7A.js → capacitor-BMzmHhwe.js} +1 -1
  170. package/dist/cjs/{format-CVjpvAl1.js → format-CdRlDqPs.js} +1 -1
  171. package/dist/cjs/{framework-delegate-JbKIVMzR.js → framework-delegate-DTLbqaaO.js} +1 -1
  172. package/dist/cjs/{haptic--4QteuuM.js → haptic-CJVUv_GB.js} +1 -1
  173. package/dist/cjs/{helpers-Cqr69qxA.js → helpers-Crluoxqu.js} +1 -1
  174. package/dist/cjs/{index-CNaZ6SYM.js → index-BAM4223M.js} +2 -2
  175. package/dist/cjs/{index-BQpSekmz.js → index-BKpybYNI.js} +2 -2
  176. package/dist/cjs/{index-B4ONUQRp.js → index-BSD7toMO.js} +1 -1
  177. package/dist/cjs/{index-BhWiDK25.js → index-CElfU-dK.js} +5 -6
  178. package/dist/cjs/{index-DUiuw_fH.js → index-CgXTRA_-.js} +4 -4
  179. package/dist/cjs/{index-BiQyIvoc.js → index-SAR1xwtW.js} +27 -40
  180. package/dist/cjs/index.cjs.js +11 -11
  181. package/dist/cjs/{input-shims-2AsXPZ5m.js → input-shims-CHghGZe-.js} +5 -5
  182. package/dist/cjs/{input.utils-Becpo0ax.js → input.utils-BBZr0wjw.js} +1 -1
  183. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  184. package/dist/cjs/ion-action-sheet.cjs.entry.js +11 -11
  185. package/dist/cjs/ion-alert.cjs.entry.js +11 -11
  186. package/dist/cjs/ion-app_8.cjs.entry.js +16 -16
  187. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  188. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  189. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  190. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  191. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  192. package/dist/cjs/ion-card_5.cjs.entry.js +4 -4
  193. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  194. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  195. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  196. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  197. package/dist/cjs/ion-datetime.cjs.entry.js +6 -6
  198. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  199. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  200. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  201. package/dist/cjs/ion-input-otp.cjs.entry.js +8 -33
  202. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  203. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  204. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  205. package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
  206. package/dist/cjs/ion-loading.cjs.entry.js +7 -7
  207. package/dist/cjs/ion-menu_3.cjs.entry.js +9 -10
  208. package/dist/cjs/ion-modal.cjs.entry.js +11 -11
  209. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  210. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  211. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
  212. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  213. package/dist/cjs/ion-popover.cjs.entry.js +7 -7
  214. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  215. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  216. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  217. package/dist/cjs/ion-refresher_2.cjs.entry.js +8 -8
  218. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  219. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  220. package/dist/cjs/ion-route_4.cjs.entry.js +125 -20
  221. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  222. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  223. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  224. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  225. package/dist/cjs/ion-select-modal.cjs.entry.js +7 -7
  226. package/dist/cjs/ion-select_3.cjs.entry.js +8 -8
  227. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  228. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  229. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  230. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  231. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  232. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  233. package/dist/cjs/ion-toast.cjs.entry.js +7 -7
  234. package/dist/cjs/ion-toggle.cjs.entry.js +6 -6
  235. package/dist/cjs/{ionic-global-48ceLiJ6.js → ionic-global-C1h8Yi_K.js} +1 -1
  236. package/dist/cjs/ionic.cjs.js +5 -5
  237. package/dist/cjs/{ios.transition-D85_rHf5.js → ios.transition-YFSxiyP_.js} +4 -4
  238. package/dist/cjs/{item-multiple-inputs-C-hz7xrh.js → item-multiple-inputs-h2PyAFzG.js} +1 -1
  239. package/dist/cjs/{keyboard-BlHp4a_c.js → keyboard-C-C7xMKk.js} +1 -1
  240. package/dist/cjs/{keyboard-c2_I35b-.js → keyboard-Cv-LNReK.js} +4 -4
  241. package/dist/cjs/{keyboard-controller-DHS0BgXp.js → keyboard-controller-CLcFxSnb.js} +2 -2
  242. package/dist/cjs/loader.cjs.js +4 -4
  243. package/dist/cjs/{md.transition-Ce9X1WXr.js → md.transition-Cm8yg0UK.js} +4 -4
  244. package/dist/cjs/{overlays-CLld3axA.js → overlays-C68wNDWY.js} +20 -79
  245. package/dist/cjs/{select-option-render-CzyhrkOu.js → select-option-render-C-Yh9yZG.js} +2 -2
  246. package/dist/cjs/{slot-mutation-controller-ClDxh3EK.js → slot-mutation-controller-zixZ5LyH.js} +1 -1
  247. package/dist/cjs/{status-tap-CDA0Y3Ad.js → status-tap-C3frTJ4c.js} +3 -3
  248. package/dist/cjs/{swipe-back-Idb4gqUk.js → swipe-back-BigumsQ1.js} +2 -2
  249. package/dist/collection/collection-manifest.json +1 -1
  250. package/dist/collection/components/input-otp/input-otp.js +3 -29
  251. package/dist/collection/components/menu/menu.js +3 -4
  252. package/dist/collection/components/route/route.js +9 -1
  253. package/dist/collection/components/route-redirect/route-redirect.js +1 -1
  254. package/dist/collection/components/router/utils/constants.js +2 -0
  255. package/dist/collection/components/router/utils/matching.js +97 -14
  256. package/dist/collection/components/router/utils/path.js +17 -3
  257. package/dist/collection/utils/hardware-back-button.js +12 -41
  258. package/dist/collection/utils/menu-controller/index.js +1 -2
  259. package/dist/collection/utils/overlays.js +4 -30
  260. package/dist/docs.json +4 -4
  261. package/dist/esm/{animation-DmtJpz89.js → animation-CFd8Olt3.js} +2 -2
  262. package/dist/esm/{app-globals-CNfpAPW6.js → app-globals-7GHLBkwd.js} +1 -1
  263. package/dist/esm/{attribute-controller-DPMIcbef.js → attribute-controller-Cn665x42.js} +1 -1
  264. package/dist/esm/{button-active-DVk40Sjl.js → button-active-DMuYeDQN.js} +2 -2
  265. package/dist/esm/{capacitor-CHJaJ9aX.js → capacitor-CoEgIpR9.js} +1 -1
  266. package/dist/esm/{format-Ck1cw5z7.js → format-C9zPmwKU.js} +1 -1
  267. package/dist/esm/{framework-delegate-CDjM1vRH.js → framework-delegate-DeT5pmPB.js} +1 -1
  268. package/dist/esm/{haptic-WXfMCob9.js → haptic-Dxm7ZmT5.js} +1 -1
  269. package/dist/esm/{helpers-BJqKF1pr.js → helpers-B54ynME_.js} +1 -1
  270. package/dist/esm/{index-TkLga3ma.js → index--21qeSt0.js} +2 -2
  271. package/dist/esm/{index-BBASprVu.js → index-B8iieOdw.js} +4 -4
  272. package/dist/esm/{index-DIouXecD.js → index-B9jhwvmO.js} +5 -6
  273. package/dist/esm/{index-CK8uF0iB.js → index-D4ZMZz_3.js} +1 -1
  274. package/dist/esm/{index-BpRUsN_W.js → index-D9OR05yj.js} +27 -40
  275. package/dist/esm/{index-Clv8QC5L.js → index-D_xZtbw6.js} +2 -2
  276. package/dist/esm/index.js +11 -11
  277. package/dist/esm/{input-shims-C1iYF5JK.js → input-shims-MCrhq67U.js} +5 -5
  278. package/dist/esm/{input.utils-DZY_K8Po.js → input.utils-B-IIWrwT.js} +1 -1
  279. package/dist/esm/ion-accordion_2.entry.js +3 -3
  280. package/dist/esm/ion-action-sheet.entry.js +11 -11
  281. package/dist/esm/ion-alert.entry.js +11 -11
  282. package/dist/esm/ion-app_8.entry.js +16 -16
  283. package/dist/esm/ion-avatar_3.entry.js +2 -2
  284. package/dist/esm/ion-back-button.entry.js +3 -3
  285. package/dist/esm/ion-backdrop.entry.js +2 -2
  286. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  287. package/dist/esm/ion-button_2.entry.js +4 -4
  288. package/dist/esm/ion-card_5.entry.js +4 -4
  289. package/dist/esm/ion-checkbox.entry.js +4 -4
  290. package/dist/esm/ion-chip.entry.js +2 -2
  291. package/dist/esm/ion-col_3.entry.js +2 -2
  292. package/dist/esm/ion-datetime-button.entry.js +4 -4
  293. package/dist/esm/ion-datetime.entry.js +6 -6
  294. package/dist/esm/ion-fab_3.entry.js +3 -3
  295. package/dist/esm/ion-img.entry.js +3 -3
  296. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  297. package/dist/esm/ion-input-otp.entry.js +8 -33
  298. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  299. package/dist/esm/ion-input.entry.js +5 -5
  300. package/dist/esm/ion-item-option_3.entry.js +4 -4
  301. package/dist/esm/ion-item_8.entry.js +4 -4
  302. package/dist/esm/ion-loading.entry.js +7 -7
  303. package/dist/esm/ion-menu_3.entry.js +9 -10
  304. package/dist/esm/ion-modal.entry.js +11 -11
  305. package/dist/esm/ion-nav_2.entry.js +6 -6
  306. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  307. package/dist/esm/ion-picker-column.entry.js +5 -5
  308. package/dist/esm/ion-picker.entry.js +2 -2
  309. package/dist/esm/ion-popover.entry.js +7 -7
  310. package/dist/esm/ion-progress-bar.entry.js +3 -3
  311. package/dist/esm/ion-radio_2.entry.js +4 -4
  312. package/dist/esm/ion-range.entry.js +4 -4
  313. package/dist/esm/ion-refresher_2.entry.js +8 -8
  314. package/dist/esm/ion-reorder_2.entry.js +6 -6
  315. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  316. package/dist/esm/ion-route_4.entry.js +125 -20
  317. package/dist/esm/ion-searchbar.entry.js +3 -3
  318. package/dist/esm/ion-segment-content.entry.js +1 -1
  319. package/dist/esm/ion-segment-view.entry.js +1 -1
  320. package/dist/esm/ion-segment_2.entry.js +3 -3
  321. package/dist/esm/ion-select-modal.entry.js +7 -7
  322. package/dist/esm/ion-select_3.entry.js +8 -8
  323. package/dist/esm/ion-spinner.entry.js +2 -2
  324. package/dist/esm/ion-split-pane.entry.js +2 -2
  325. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  326. package/dist/esm/ion-tab_2.entry.js +3 -3
  327. package/dist/esm/ion-text.entry.js +2 -2
  328. package/dist/esm/ion-textarea.entry.js +5 -5
  329. package/dist/esm/ion-toast.entry.js +7 -7
  330. package/dist/esm/ion-toggle.entry.js +6 -6
  331. package/dist/esm/{ionic-global-Cep6oYzK.js → ionic-global-B-G43ddm.js} +1 -1
  332. package/dist/esm/ionic.js +6 -6
  333. package/dist/esm/{ios.transition-B8netzsb.js → ios.transition-CRfGj4Mo.js} +4 -4
  334. package/dist/esm/{item-multiple-inputs-Bd2LO7qK.js → item-multiple-inputs-BSD9wGHO.js} +1 -1
  335. package/dist/esm/{keyboard-B4Y-Gph8.js → keyboard-DDw62P0D.js} +4 -4
  336. package/dist/esm/{keyboard-controller-B2NoF7bV.js → keyboard-controller-Dzjet5wD.js} +2 -2
  337. package/dist/esm/{keyboard-Cmqp5iZD.js → keyboard-ly3M0GO7.js} +1 -1
  338. package/dist/esm/loader.js +5 -5
  339. package/dist/esm/{md.transition-DNCSSiXk.js → md.transition-wqThNy_C.js} +4 -4
  340. package/dist/esm/{overlays-DmDY-El7.js → overlays-BQnV0HAU.js} +21 -78
  341. package/dist/esm/{select-option-render-BSDT9oSA.js → select-option-render-CGxPejmz.js} +2 -2
  342. package/dist/esm/{slot-mutation-controller-hAS2uJ7c.js → slot-mutation-controller-C3s4-_YN.js} +1 -1
  343. package/dist/esm/{status-tap-VGRBYwiC.js → status-tap-DRx9wSD_.js} +3 -3
  344. package/dist/esm/{swipe-back-DV3UpWzz.js → swipe-back-Ch3UU_US.js} +2 -2
  345. package/dist/html.html-data.json +2 -2
  346. package/dist/ionic/index.esm.js +1 -1
  347. package/dist/ionic/ionic.esm.js +1 -1
  348. package/dist/ionic/{p-7db20410.entry.js → p-0517aec4.entry.js} +1 -1
  349. package/dist/ionic/{p-9ffccbf1.entry.js → p-083b1119.entry.js} +1 -1
  350. package/dist/ionic/{p-d0e374f8.entry.js → p-0ab133d6.entry.js} +1 -1
  351. package/dist/ionic/{p-4d785062.entry.js → p-1213b719.entry.js} +1 -1
  352. package/dist/ionic/{p-0c32c626.entry.js → p-150f350e.entry.js} +1 -1
  353. package/dist/ionic/{p-c293f854.entry.js → p-20d1ac29.entry.js} +1 -1
  354. package/dist/ionic/{p-d72accc4.entry.js → p-24b0a961.entry.js} +1 -1
  355. package/dist/ionic/{p-2124fd4f.entry.js → p-28f506ce.entry.js} +1 -1
  356. package/dist/ionic/{p-930c3538.entry.js → p-2e6e933d.entry.js} +1 -1
  357. package/dist/ionic/{p-0f97175e.entry.js → p-30dcf43b.entry.js} +1 -1
  358. package/dist/ionic/{p-00cd107d.entry.js → p-378341d1.entry.js} +1 -1
  359. package/dist/ionic/{p-6c7b5930.entry.js → p-37f46670.entry.js} +1 -1
  360. package/dist/ionic/{p-b9ed3a52.entry.js → p-3a5faaa8.entry.js} +1 -1
  361. package/dist/ionic/{p-fcb04fb5.entry.js → p-3bd7e5df.entry.js} +1 -1
  362. package/dist/ionic/{p-4e4e5919.entry.js → p-3c4b0ba7.entry.js} +1 -1
  363. package/dist/ionic/{p-4bd80334.entry.js → p-42b2a992.entry.js} +1 -1
  364. package/dist/ionic/p-52449f1f.entry.js +4 -0
  365. package/dist/ionic/p-52dc3309.entry.js +4 -0
  366. package/dist/ionic/{p-64ac3864.entry.js → p-58f914ee.entry.js} +1 -1
  367. package/dist/ionic/{p-b3aadfe8.entry.js → p-5b9666be.entry.js} +1 -1
  368. package/dist/ionic/{p-a4389f13.entry.js → p-5c19330c.entry.js} +1 -1
  369. package/dist/ionic/{p-bfdbe24b.entry.js → p-61b304c8.entry.js} +1 -1
  370. package/dist/ionic/{p-0b09c60e.entry.js → p-624f2fa8.entry.js} +1 -1
  371. package/dist/ionic/{p-d9a3dfd1.entry.js → p-636349e2.entry.js} +1 -1
  372. package/dist/ionic/{p-4f25b926.entry.js → p-6865f0e1.entry.js} +1 -1
  373. package/dist/ionic/{p-27d96a9b.entry.js → p-7441ed2b.entry.js} +1 -1
  374. package/dist/ionic/{p-91f3cd8b.entry.js → p-76309bab.entry.js} +1 -1
  375. package/dist/ionic/p-83448626.entry.js +4 -0
  376. package/dist/ionic/{p-7e9c2a97.entry.js → p-834afcf7.entry.js} +1 -1
  377. package/dist/ionic/{p-362dcd86.entry.js → p-93cd738b.entry.js} +1 -1
  378. package/dist/ionic/{p-eb989dc9.entry.js → p-9b78fedf.entry.js} +1 -1
  379. package/dist/ionic/{p-5bb24bce.entry.js → p-9dd9788c.entry.js} +1 -1
  380. package/dist/ionic/{p-nCAPr1Ah.js → p-B4ELlbJE.js} +1 -1
  381. package/dist/ionic/p-B4wzg4z4.js +4 -0
  382. package/dist/ionic/{p-Co7eql8D.js → p-B4xjg_Qu.js} +1 -1
  383. package/dist/ionic/{p-DPNVo1nr.js → p-BCgqWm-V.js} +1 -1
  384. package/dist/ionic/p-BChRVdVv.js +4 -0
  385. package/dist/ionic/{p-BO10QT9r.js → p-BUB5OrpU.js} +1 -1
  386. package/dist/ionic/p-BVEsh7-M.js +4 -0
  387. package/dist/ionic/p-Ba6ZV-qU.js +4 -0
  388. package/dist/ionic/{p-DxftXYZp.js → p-BhMQahM6.js} +1 -1
  389. package/dist/ionic/{p-D926OmIX.js → p-BtHAx8im.js} +1 -1
  390. package/{components/p-Dbi3KqKm.js → dist/ionic/p-Bv-6401R.js} +1 -1
  391. package/dist/ionic/{p-DfvWlTdB.js → p-CCik51Nv.js} +1 -1
  392. package/dist/ionic/p-CTmJSZcs.js +4 -0
  393. package/dist/ionic/{p-CngfKMRU.js → p-CTrwMl44.js} +1 -1
  394. package/dist/ionic/p-CVwXN07G.js +4 -0
  395. package/dist/ionic/p-CgQdInM0.js +4 -0
  396. package/dist/ionic/{p-SEecsUh7.js → p-CrAPHbJ3.js} +1 -1
  397. package/dist/ionic/{p-Bx5x5GJV.js → p-CsWrz1c2.js} +1 -1
  398. package/dist/ionic/p-D5akOqD0.js +4 -0
  399. package/dist/ionic/p-D9OR05yj.js +6 -0
  400. package/dist/ionic/p-DHf9V6zI.js +4 -0
  401. package/dist/ionic/{p-CXs4J83x.js → p-DNxEB9-T.js} +1 -1
  402. package/dist/ionic/p-DZUqAr_6.js +4 -0
  403. package/dist/ionic/{p-BY4FwwBp.js → p-DxvRP6ld.js} +1 -1
  404. package/dist/ionic/p-Dzew6Qv7.js +4 -0
  405. package/{components/p-C7r5Gja6.js → dist/ionic/p-PkaVMJga.js} +1 -1
  406. package/dist/ionic/{p-c250b6b0.entry.js → p-b0a3dd1a.entry.js} +1 -1
  407. package/dist/ionic/{p-ec259ac5.entry.js → p-b1164028.entry.js} +1 -1
  408. package/dist/ionic/{p-230f510c.entry.js → p-b710b4b8.entry.js} +1 -1
  409. package/dist/ionic/{p-8c85e250.entry.js → p-b9659d21.entry.js} +1 -1
  410. package/dist/ionic/p-ba7bd621.entry.js +4 -0
  411. package/dist/ionic/{p-82abf431.entry.js → p-daaecea3.entry.js} +1 -1
  412. package/dist/ionic/{p-e7ab4def.entry.js → p-e05073f6.entry.js} +1 -1
  413. package/dist/ionic/{p-8d651adb.entry.js → p-e137f724.entry.js} +1 -1
  414. package/dist/ionic/{p-107a81a6.entry.js → p-e1969fd1.entry.js} +1 -1
  415. package/dist/ionic/{p-77252596.entry.js → p-e338693a.entry.js} +1 -1
  416. package/dist/ionic/{p-8b79061e.entry.js → p-e4c3f17f.entry.js} +1 -1
  417. package/dist/ionic/{p-01b7e3f2.entry.js → p-e7414c33.entry.js} +1 -1
  418. package/dist/ionic/{p-8db08782.entry.js → p-eb762f80.entry.js} +1 -1
  419. package/dist/ionic/p-edcb63e5.entry.js +4 -0
  420. package/dist/ionic/{p-f6fcd4f8.entry.js → p-efa00ce5.entry.js} +1 -1
  421. package/dist/ionic/{p-60780b88.entry.js → p-f19e50f8.entry.js} +1 -1
  422. package/dist/ionic/{p-8d2ccf0c.entry.js → p-f20b6a9b.entry.js} +1 -1
  423. package/dist/ionic/{p-af56702e.entry.js → p-f9057f70.entry.js} +1 -1
  424. package/dist/ionic/{p-0a789930.entry.js → p-f99cf5aa.entry.js} +1 -1
  425. package/dist/ionic/{p-62c87f3d.entry.js → p-fee863dc.entry.js} +1 -1
  426. package/dist/ionic/{p-Bnc1L7Rk.js → p-kKvGoaEe.js} +1 -1
  427. package/dist/ionic/{p-B8IuTu_r.js → p-tXpzvta8.js} +1 -1
  428. package/dist/ionic/p-vPo3vRFc.js +4 -0
  429. package/dist/types/components/input-otp/input-otp.d.ts +0 -7
  430. package/dist/types/components/route/route.d.ts +8 -0
  431. package/dist/types/components/route-redirect/route-redirect.d.ts +3 -1
  432. package/dist/types/components/router/utils/constants.d.ts +2 -0
  433. package/dist/types/components/router/utils/matching.d.ts +10 -0
  434. package/dist/types/components/router/utils/path.d.ts +5 -1
  435. package/dist/types/components.d.ts +4 -4
  436. package/dist/types/utils/config.d.ts +1 -4
  437. package/dist/types/utils/hardware-back-button.d.ts +0 -11
  438. package/dist/types/utils/overlays.d.ts +2 -5
  439. package/hydrate/index.js +316 -460
  440. package/hydrate/index.mjs +316 -460
  441. package/package.json +1 -1
  442. package/components/p-B02CcbPD.js +0 -4
  443. package/components/p-CohRJRIu.js +0 -4
  444. package/components/p-Ct2aBEue.js +0 -4
  445. package/components/p-CwEis84J.js +0 -4
  446. package/components/p-CxEV3Vwy.js +0 -4
  447. package/components/p-Cyajikho.js +0 -4
  448. package/components/p-DD92Fw3n.js +0 -4
  449. package/components/p-IQN1T5zw.js +0 -4
  450. package/components/p-ODGeXc3M.js +0 -4
  451. package/components/p-R4UxBukQ.js +0 -4
  452. package/components/p-Uk13YgEc.js +0 -4
  453. package/dist/ionic/p-539d6c8e.entry.js +0 -4
  454. package/dist/ionic/p-7ce9c6f8.entry.js +0 -4
  455. package/dist/ionic/p-7l6ENjIV.js +0 -4
  456. package/dist/ionic/p-BNXIurCt.js +0 -4
  457. package/dist/ionic/p-BOLqP2-V.js +0 -4
  458. package/dist/ionic/p-BdHBcCZF.js +0 -4
  459. package/dist/ionic/p-BexAj0yw.js +0 -4
  460. package/dist/ionic/p-BpRUsN_W.js +0 -6
  461. package/dist/ionic/p-Bppj2PE0.js +0 -4
  462. package/dist/ionic/p-BuLlVedw.js +0 -4
  463. package/dist/ionic/p-C1WYZOZj.js +0 -4
  464. package/dist/ionic/p-C2LaBx3E.js +0 -4
  465. package/dist/ionic/p-D13gXhdC.js +0 -4
  466. package/dist/ionic/p-DXXGkPA8.js +0 -4
  467. package/dist/ionic/p-DriE1ZAo.js +0 -4
  468. package/dist/ionic/p-af11d3c6.entry.js +0 -4
  469. package/dist/ionic/p-b5bcbbc1.entry.js +0 -4
  470. package/dist/ionic/p-c83dbc12.entry.js +0 -4
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { ROUTER_INTENT_FORWARD } from "./constants";
4
+ import { ROUTER_INTENT_FORWARD, WILDCARD_PARAM } from "./constants";
5
5
  /** Join the non empty segments with "/". */
6
6
  export const generatePath = (segments) => {
7
7
  const path = segments.filter((s) => s.length > 0).join('/');
@@ -34,12 +34,13 @@ export const writeSegments = (history, root, useHash, segments, direction, state
34
34
  *
35
35
  * Notes:
36
36
  * - parameter segments of the form :param are replaced with their value,
37
- * - null is returned when a value is missing for any parameter segment.
37
+ * - null is returned when a value is missing for any parameter segment,
38
+ * - a trailing wildcard is replaced with the path it matched.
38
39
  */
39
40
  export const chainToSegments = (chain) => {
40
41
  const segments = [];
41
42
  for (const route of chain) {
42
- for (const segment of route.segments) {
43
+ for (const segment of withoutWildcard(route.segments)) {
43
44
  if (segment[0] === ':') {
44
45
  const param = route.params && route.params[segment.slice(1)];
45
46
  if (!param) {
@@ -51,9 +52,22 @@ export const chainToSegments = (chain) => {
51
52
  segments.push(segment);
52
53
  }
53
54
  }
55
+ segments.push(...wildcardSegments(route));
54
56
  }
55
57
  return segments;
56
58
  };
59
+ /** Only a `*` in the last segment of a route url is a wildcard. Elsewhere it's matched literally. */
60
+ export const endsWithWildcard = (segments) => {
61
+ return segments[segments.length - 1] === '*';
62
+ };
63
+ /** Returns the path segments matched by the trailing wildcard of the route. */
64
+ const wildcardSegments = (route) => {
65
+ const pathMatch = endsWithWildcard(route.segments) ? route.params?.[WILDCARD_PARAM] : undefined;
66
+ return pathMatch ? pathMatch.split('/').filter((s) => s.length > 0) : [];
67
+ };
68
+ export const withoutWildcard = (segments) => {
69
+ return endsWithWildcard(segments) ? segments.slice(0, -1) : segments;
70
+ };
57
71
  /**
58
72
  * Removes the prefix segments from the path segments.
59
73
  *
@@ -30,23 +30,6 @@ export const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher'
30
30
  export const blockHardwareBackButton = () => {
31
31
  document.addEventListener('backbutton', () => { });
32
32
  };
33
- const closeWatcherConditions = [];
34
- let syncCloseWatcher;
35
- /**
36
- * Registers a check for whether the back button
37
- * has something to close. The CloseWatcher is only
38
- * active while one of these checks passes.
39
- */
40
- export const addCloseWatcherCondition = (condition) => {
41
- closeWatcherConditions.push(condition);
42
- };
43
- /**
44
- * Call this whenever something the back button
45
- * can close opens or closes.
46
- */
47
- export const updateCloseWatcher = () => {
48
- syncCloseWatcher?.();
49
- };
50
33
  export const startHardwareBackButton = () => {
51
34
  const doc = document;
52
35
  let busy = false;
@@ -98,44 +81,32 @@ export const startHardwareBackButton = () => {
98
81
  processHandlers();
99
82
  };
100
83
  /**
101
- * Android WebView never sends the hardware back
102
- * button to a CloseWatcher, so hybrid apps still
103
- * need this. Browsers never fire backbutton.
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.
104
88
  */
105
- doc.addEventListener('backbutton', backButtonCallback);
106
89
  if (shouldUseCloseWatcher()) {
107
90
  let watcher;
108
- /**
109
- * An active CloseWatcher stops the back button from
110
- * navigating, so only keep one while there's something to close.
111
- */
112
- syncCloseWatcher = () => {
113
- const canClose = closeWatcherConditions.some((condition) => condition());
114
- if (!canClose) {
115
- watcher?.destroy();
116
- watcher = undefined;
117
- return;
118
- }
119
- if (watcher !== undefined) {
120
- return;
121
- }
91
+ const configureWatcher = () => {
92
+ watcher?.destroy();
122
93
  watcher = new win.CloseWatcher();
123
94
  /**
124
95
  * Once a close request happens
125
96
  * the watcher gets destroyed.
126
97
  * As a result, we need to re-configure
127
98
  * the watcher so we can respond to other
128
- * close requests, including after one that
129
- * closed nothing, like a modal whose canDismiss
130
- * returned false.
99
+ * close requests.
131
100
  */
132
101
  watcher.onclose = () => {
133
- watcher = undefined;
134
102
  backButtonCallback();
135
- syncCloseWatcher?.();
103
+ configureWatcher();
136
104
  };
137
105
  };
138
- syncCloseWatcher();
106
+ configureWatcher();
107
+ }
108
+ else {
109
+ doc.addEventListener('backbutton', backButtonCallback);
139
110
  }
140
111
  };
141
112
  export const OVERLAY_BACK_BUTTON_PRIORITY = 100;
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { doc } from "../browser/index";
5
- import { MENU_BACK_BUTTON_PRIORITY, addCloseWatcherCondition } from "../hardware-back-button";
5
+ import { MENU_BACK_BUTTON_PRIORITY } from "../hardware-back-button";
6
6
  import { printIonWarning } from "../logging/index";
7
7
  import { componentOnReady } from "../helpers";
8
8
  import { menuOverlayAnimation } from "./animations/overlay";
@@ -184,7 +184,6 @@ const createMenuController = () => {
184
184
  registerAnimation('reveal', menuRevealAnimation);
185
185
  registerAnimation('push', menuPushAnimation);
186
186
  registerAnimation('overlay', menuOverlayAnimation);
187
- addCloseWatcherCondition(() => _getOpenSync() !== undefined);
188
187
  doc?.addEventListener('ionBackButton', (ev) => {
189
188
  const openMenu = _getOpenSync();
190
189
  if (openMenu) {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { doc } from "./browser/index";
5
5
  import { focusFirstDescendant, focusLastDescendant, focusableQueryString } from "./focus-trap";
6
- import { addCloseWatcherCondition, shouldUseCloseWatcher, updateCloseWatcher } from "./hardware-back-button";
6
+ import { shouldUseCloseWatcher } from "./hardware-back-button";
7
7
  import { printIonError, printIonWarning } from "./logging/index";
8
8
  import { config } from "../global/config";
9
9
  import { getIonMode } from "../global/ionic-global";
@@ -13,11 +13,6 @@ import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
13
13
  import { addEventListener, componentOnReady, focusVisibleElement, getElementRoot, removeEventListener, } from "./helpers";
14
14
  let lastOverlayIndex = 0;
15
15
  let lastId = 0;
16
- /**
17
- * Every overlay except toast, which doesn't trap
18
- * focus or close on back.
19
- */
20
- const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
21
16
  export const activeAnimations = new WeakMap();
22
17
  /**
23
18
  * Determines if the overlay's backdrop is always blocking (no background interaction).
@@ -144,7 +139,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
144
139
  * Should NOT include: Toast
145
140
  */
146
141
  const trapKeyboardFocus = (ev, doc) => {
147
- const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
142
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
148
143
  const target = ev.target;
149
144
  /**
150
145
  * If no active overlay, ignore this event.
@@ -327,11 +322,6 @@ const connectListeners = (doc) => {
327
322
  doc.addEventListener('focus', (ev) => {
328
323
  trapKeyboardFocus(ev, doc);
329
324
  }, true);
330
- /**
331
- * Whether the overlay actually dismisses is checked at press time,
332
- * since `backdropDismiss` can change while it's open.
333
- */
334
- addCloseWatcherCondition(() => getPresentedOverlay(doc, NON_TOAST_OVERLAYS) !== undefined);
335
325
  // handle back-button click
336
326
  doc.addEventListener('ionBackButton', (ev) => {
337
327
  const lastOverlay = getPresentedOverlay(doc);
@@ -455,8 +445,7 @@ export const setRootAriaHidden = (hidden = false) => {
455
445
  * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
456
446
  * an overlay is removed from the DOM without going through
457
447
  * the `dismiss()` flow (e.g., when a framework unmounts the
458
- * overlay during a route change). Also releases the
459
- * CloseWatcher if nothing is left to close.
448
+ * overlay during a route change).
460
449
  *
461
450
  * Should be called from an overlay's `disconnectedCallback`
462
451
  * when the overlay was still presented at the time of removal.
@@ -465,7 +454,6 @@ export const cleanupRootFocusTrapAccessibility = () => {
465
454
  if (typeof document === 'undefined') {
466
455
  return;
467
456
  }
468
- updateCloseWatcher();
469
457
  const remainingOverlays = getPresentedOverlays(document);
470
458
  const hasRemainingLocking = remainingOverlays.some((o) => locksAppRoot(o));
471
459
  if (!hasRemainingLocking) {
@@ -487,9 +475,7 @@ const applyRootLock = (el) => {
487
475
  };
488
476
  /**
489
477
  * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
490
- * Call from `connectedCallback` when the overlay is still presented. Also
491
- * re-arms the CloseWatcher, which every overlay needs, so that happens
492
- * before the `locksAppRoot` check.
478
+ * Call from `connectedCallback` when the overlay is still presented.
493
479
  *
494
480
  * A synchronous move keeps the overlay connected, so the lock survives. A
495
481
  * detach with a re-insert in a later task releases it, which is the shape a
@@ -499,7 +485,6 @@ export const restoreRootFocusTrapAccessibility = (overlayEl) => {
499
485
  if (typeof document === 'undefined') {
500
486
  return;
501
487
  }
502
- updateCloseWatcher();
503
488
  const el = overlayEl;
504
489
  if (!locksAppRoot(el)) {
505
490
  return;
@@ -713,11 +698,6 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
713
698
  printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
714
699
  }
715
700
  overlay.el.remove();
716
- /**
717
- * Release the back button if nothing
718
- * else is left to close.
719
- */
720
- updateCloseWatcher();
721
701
  return true;
722
702
  };
723
703
  const getAppRoot = (doc) => {
@@ -726,12 +706,6 @@ const getAppRoot = (doc) => {
726
706
  const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
727
707
  // Make overlay visible in case it's hidden
728
708
  baseEl.classList.remove('overlay-hidden');
729
- /**
730
- * Removing `overlay-hidden` makes the overlay count
731
- * as presented, so back can dismiss it while it
732
- * animates in.
733
- */
734
- updateCloseWatcher();
735
709
  const aniRoot = overlay.el;
736
710
  const animation = animationBuilder(aniRoot, opts);
737
711
  if (!overlay.animated || !config.getBoolean('animated', true)) {
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2026-10-07T14:03:17",
2
+ "timestamp": "2026-10-20T19:35:25",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.45.2",
5
+ "version": "4.45.1",
6
6
  "typescriptVersion": "5.8.3"
7
7
  },
8
8
  "components": [
@@ -27325,7 +27325,7 @@
27325
27325
  "mutable": false,
27326
27326
  "attr": "url",
27327
27327
  "reflectToAttr": false,
27328
- "docs": "Relative path that needs to match in order for this route to apply.\n\nAccepts paths similar to expressjs so that you can define parameters\nin the url /foo/:bar where bar would be available in incoming props.",
27328
+ "docs": "Relative path that needs to match in order for this route to apply.\n\nAccepts paths similar to expressjs so that you can define parameters\nin the url /foo/:bar where bar would be available in incoming props.\n\nA url ending in `*`, such as `*` or `/admin/*`, matches any remaining path,\nincluding none, so `/admin/*` also matches `/admin`. It only wins over a\nroute that matches the whole path when it has more fixed segments, so\n`/admin/*` wins over `/:section/:id` but not over `/admin/:id`. It always\nwins over a route that matches by ignoring trailing segments, such as\n`/admin` for `/admin/users`. The matched path is passed in the `pathMatch`\nprop without a leading `/`. A `*` on a route with child routes is ignored.",
27329
27329
  "docsTags": [
27330
27330
  {
27331
27331
  "name": "default",
@@ -27389,7 +27389,7 @@
27389
27389
  "mutable": false,
27390
27390
  "attr": "from",
27391
27391
  "reflectToAttr": false,
27392
- "docs": "A redirect route, redirects \"from\" a URL \"to\" another URL. This property is that \"from\" URL.\nIt needs to be an exact match of the navigated URL in order to apply.\n\nThe path specified in this value is always an absolute path, even if the initial `/` slash\nis not specified.",
27392
+ "docs": "A redirect route, redirects \"from\" a URL \"to\" another URL. This property is that \"from\" URL.\nIt needs to be an exact match of the navigated URL in order to apply, unless it ends in `*`.\nA `from` that ends in `*` matches any path below it, but not the path itself, so `/admin/*`\nmatches `/admin/posts` but not `/admin`.\n\nThe path specified in this value is always an absolute path, even if the initial `/` slash\nis not specified.",
27393
27393
  "docsTags": [],
27394
27394
  "values": [
27395
27395
  {
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as printIonError } from './index-BpRUsN_W.js';
5
- import { w as win } from './helpers-BJqKF1pr.js';
4
+ import { c as printIonError } from './index-D9OR05yj.js';
5
+ import { w as win } from './helpers-B54ynME_.js';
6
6
 
7
7
  let animationPrefix;
8
8
  const getAnimationPrefix = (el) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-Cep6oYzK.js';
4
+ import { i as initialize } from './ionic-global-B-G43ddm.js';
5
5
 
6
6
  const appGlobalScript = initialize || (() => {});
7
7
  const globalScripts = appGlobalScript;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { b as inheritAttributes, w as win, q as ariaAttributes } from './helpers-BJqKF1pr.js';
4
+ import { b as inheritAttributes, w as win, q as ariaAttributes } from './helpers-B54ynME_.js';
5
5
 
6
6
  /**
7
7
  * Copies a set of attributes off the host element so they can be applied to an element
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-BpRUsN_W.js';
5
- import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-WXfMCob9.js';
4
+ import { w as writeTask } from './index-D9OR05yj.js';
5
+ import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-Dxm7ZmT5.js';
6
6
  import { createGesture } from './index-BmLuEdV7.js';
7
7
 
8
8
  const createButtonActiveGesture = (el, isButton) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as win } from './helpers-BJqKF1pr.js';
4
+ import { w as win } from './helpers-B54ynME_.js';
5
5
 
6
6
  const getCapacitor = () => {
7
7
  if (win !== undefined) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { a as printIonWarning } from './index-BpRUsN_W.js';
4
+ import { a as printIonWarning } from './index-D9OR05yj.js';
5
5
 
6
6
  /**
7
7
  * Returns true if the selected day is equal to the reference day
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-BJqKF1pr.js';
4
+ import { c as componentOnReady } from './helpers-B54ynME_.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { g as getCapacitor } from './capacitor-CHJaJ9aX.js';
4
+ import { g as getCapacitor } from './capacitor-CoEgIpR9.js';
5
5
 
6
6
  var ImpactStyle;
7
7
  (function (ImpactStyle) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as printIonError } from './index-BpRUsN_W.js';
4
+ import { c as printIonError } from './index-D9OR05yj.js';
5
5
  import { i as isRTL } from './dir-Dojwmvde.js';
6
6
 
7
7
  const win = typeof window !== 'undefined' ? window : undefined;
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-BJqKF1pr.js';
5
- import { t as printRequiredElementError } from './index-BpRUsN_W.js';
4
+ import { c as componentOnReady } from './helpers-B54ynME_.js';
5
+ import { t as printRequiredElementError } from './index-D9OR05yj.js';
6
6
 
7
7
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
8
8
  const ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as config, a as printIonWarning, w as writeTask, B as Build } from './index-BpRUsN_W.js';
5
- import { r as raf } from './helpers-BJqKF1pr.js';
4
+ import { i as config, a as printIonWarning, w as writeTask, B as Build } from './index-D9OR05yj.js';
5
+ import { r as raf } from './helpers-B54ynME_.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
8
8
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -118,8 +118,8 @@ const createFocusController = () => {
118
118
  };
119
119
  const LAST_FOCUS = 'ion-last-focus';
120
120
 
121
- const iosTransitionAnimation = () => import('./ios.transition-B8netzsb.js');
122
- const mdTransitionAnimation = () => import('./md.transition-DNCSSiXk.js');
121
+ const iosTransitionAnimation = () => import('./ios.transition-CRfGj4Mo.js');
122
+ const mdTransitionAnimation = () => import('./md.transition-wqThNy_C.js');
123
123
  const focusController = createFocusController();
124
124
  // TODO(FW-2832): types
125
125
  /**
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { n as doc, c as componentOnReady } from './helpers-BJqKF1pr.js';
5
- import { M as MENU_BACK_BUTTON_PRIORITY, q as addCloseWatcherCondition } from './overlays-DmDY-El7.js';
6
- import { a as printIonWarning } from './index-BpRUsN_W.js';
7
- import { b as getIonMode } from './ionic-global-Cep6oYzK.js';
8
- import { c as createAnimation } from './animation-DmtJpz89.js';
4
+ import { n as doc, c as componentOnReady } from './helpers-B54ynME_.js';
5
+ import { M as MENU_BACK_BUTTON_PRIORITY } from './overlays-BQnV0HAU.js';
6
+ import { a as printIonWarning } from './index-D9OR05yj.js';
7
+ import { b as getIonMode } from './ionic-global-B-G43ddm.js';
8
+ import { c as createAnimation } from './animation-CFd8Olt3.js';
9
9
 
10
10
  /**
11
11
  * baseAnimation
@@ -271,7 +271,6 @@ const createMenuController = () => {
271
271
  registerAnimation('reveal', menuRevealAnimation);
272
272
  registerAnimation('push', menuPushAnimation);
273
273
  registerAnimation('overlay', menuOverlayAnimation);
274
- addCloseWatcherCondition(() => _getOpenSync() !== undefined);
275
274
  doc?.addEventListener('ionBackButton', (ev) => {
276
275
  const openMenu = _getOpenSync();
277
276
  if (openMenu) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { a as printIonWarning, c as printIonError } from './index-BpRUsN_W.js';
4
+ import { a as printIonWarning, c as printIonError } from './index-D9OR05yj.js';
5
5
 
6
6
  /**
7
7
  * Sanitize an untrusted HTML string.
@@ -145,7 +145,7 @@ const printRequiredElementError = (el, ...targetSelectors) => {
145
145
  };
146
146
 
147
147
  /*
148
- Stencil Client Platform v4.45.2 | MIT Licensed | https://stenciljs.com
148
+ Stencil Client Platform v4.45.1 | MIT Licensed | https://stenciljs.com
149
149
  */
150
150
 
151
151
  var Build = {
@@ -585,7 +585,7 @@ var queueDomReads = [];
585
585
  var queueDomWrites = [];
586
586
  var scheduleFlush = () => {
587
587
  var _a;
588
- return ((_a = win.document) == null ? void 0 : _a.hidden) ? setTimeout(flush, 16) : plt.raf(flush);
588
+ return ((_a = win.document) == null ? void 0 : _a.hidden) ? nextTick(flush) : plt.raf(flush);
589
589
  };
590
590
  var queueTask = (queue, write) => (cb) => {
591
591
  queue.push(cb);
@@ -2099,12 +2099,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2099
2099
  newClasses = [...new Set(newClasses)].filter((c) => c);
2100
2100
  classList.add(...newClasses);
2101
2101
  } else {
2102
- let removedClasses = oldClasses.filter((c) => c && !newClasses.includes(c));
2103
- if (initialRender && !(flags & 4 /* isHost */)) {
2104
- const ownClasses = getOwnHostClasses(elm);
2105
- removedClasses = removedClasses.filter((c) => !ownClasses.includes(c));
2106
- }
2107
- classList.remove(...removedClasses);
2102
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
2108
2103
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
2109
2104
  }
2110
2105
  } else if (memberName === "style") {
@@ -2229,18 +2224,6 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2229
2224
  var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
2230
2225
  var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
2231
2226
  var parseClassListRegex = /\s/;
2232
- var getOwnHostClasses = (elm) => {
2233
- var _a, _b, _c;
2234
- const hostRef = getHostRef(elm);
2235
- if (!hostRef || !(hostRef.$flags$ & 2 /* hasRendered */)) {
2236
- return [];
2237
- }
2238
- const ownClasses = parseClassList((_b = (_a = hostRef.$vnode$) == null ? void 0 : _a.$attrs$) == null ? void 0 : _b.class);
2239
- {
2240
- ownClasses.push((_c = BUILD.hydratedSelectorName) != null ? _c : "hydrated");
2241
- }
2242
- return ownClasses;
2243
- };
2244
2227
  var parseClassList = (value) => {
2245
2228
  if (typeof value === "object" && value && "baseVal" in value) {
2246
2229
  value = value.baseVal;
@@ -3134,19 +3117,6 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3134
3117
 
3135
3118
  // src/runtime/proxy-component.ts
3136
3119
  var reflectedAttrValue = (propValue) => propValue == null || propValue === false ? null : propValue === true ? "" : String(propValue);
3137
- var replayPendingSetterValues = (hostRef, cmpMeta) => {
3138
- var _a;
3139
- const instance = hostRef.$lazyInstance$;
3140
- if (!instance) return;
3141
- for (const [memberName, [memberFlags]] of Object.entries((_a = cmpMeta.$members$) != null ? _a : {})) {
3142
- if (memberFlags & 4096 /* Setter */ && hostRef.$instanceValues$.has(memberName)) {
3143
- const pendingValue = hostRef.$instanceValues$.get(memberName);
3144
- if (instance[memberName] !== pendingValue) {
3145
- instance[memberName] = pendingValue;
3146
- }
3147
- }
3148
- }
3149
- };
3150
3120
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3151
3121
  var _a, _b;
3152
3122
  const prototype = Cstr.prototype;
@@ -3176,8 +3146,9 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3176
3146
  return getValue(this, memberName);
3177
3147
  }
3178
3148
  const ref = getHostRef(this);
3179
- if (!ref) return prototype[memberName];
3180
- return ref.$lazyInstance$ ? ref.$lazyInstance$[memberName] : getValue(this, memberName);
3149
+ const instance = ref ? ref.$lazyInstance$ : prototype;
3150
+ if (!instance) return;
3151
+ return instance[memberName];
3181
3152
  }
3182
3153
  },
3183
3154
  configurable: true,
@@ -3207,20 +3178,36 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3207
3178
  {
3208
3179
  if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {
3209
3180
  setValue(this, memberName, newValue, cmpMeta);
3181
+ if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {
3182
+ ref.$fetchedCbList$.push(() => {
3183
+ if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {
3184
+ ref.$lazyInstance$[memberName] = newValue;
3185
+ }
3186
+ });
3187
+ }
3210
3188
  return;
3211
3189
  }
3212
3190
  const parsedValue = parsePropertyValue(
3213
3191
  newValue,
3214
3192
  memberFlags);
3215
- if (ref.$lazyInstance$) {
3193
+ const setterSetVal = (val) => {
3216
3194
  const currentValue = ref.$lazyInstance$[memberName];
3217
3195
  if (!ref.$instanceValues$.get(memberName) && currentValue) {
3218
3196
  ref.$instanceValues$.set(memberName, currentValue);
3219
3197
  }
3220
- ref.$lazyInstance$[memberName] = parsedValue;
3198
+ ref.$lazyInstance$[memberName] = val;
3221
3199
  setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
3200
+ };
3201
+ if (ref.$lazyInstance$) {
3202
+ setterSetVal(parsedValue);
3222
3203
  } else {
3223
3204
  ref.$instanceValues$.set(memberName, parsedValue);
3205
+ ref.$fetchedCbList$.push(() => {
3206
+ const pendingValue = ref.$instanceValues$.get(memberName);
3207
+ if (ref.$lazyInstance$[memberName] !== pendingValue) {
3208
+ setterSetVal(pendingValue);
3209
+ }
3210
+ });
3224
3211
  }
3225
3212
  }
3226
3213
  }
@@ -3276,10 +3263,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3276
3263
  }
3277
3264
  const isSpuriousBooleanRemoval = isBooleanTarget && newValue === null && this[propName] === void 0;
3278
3265
  if (isBooleanTarget) {
3279
- newValue = newValue === null || newValue === "false" && true ? false : true;
3266
+ newValue = newValue === null || newValue === "false" ? false : true;
3280
3267
  }
3268
+ const currentValue = propMemberFlags & 4096 /* Setter */ ? hostRef.$instanceValues$.get(propName) : this[propName];
3281
3269
  const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
3282
- if (!isSpuriousBooleanRemoval && newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
3270
+ if (!isSpuriousBooleanRemoval && newValue != currentValue && (!propDesc.get || !!propDesc.set)) {
3283
3271
  this[propName] = newValue;
3284
3272
  }
3285
3273
  });
@@ -3349,7 +3337,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3349
3337
  }
3350
3338
  {
3351
3339
  hostRef.$flags$ &= -9 /* isConstructingInstance */;
3352
- replayPendingSetterValues(hostRef, cmpMeta);
3353
3340
  }
3354
3341
  {
3355
3342
  hostRef.$flags$ |= 128 /* isWatchReady */;
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { n as doc, x as pointerCoord } from './helpers-BJqKF1pr.js';
5
- import './index-BpRUsN_W.js';
4
+ import { n as doc, x as pointerCoord } from './helpers-B54ynME_.js';
5
+ import './index-D9OR05yj.js';
6
6
  import './dir-Dojwmvde.js';
7
7
 
8
8
  const startTapClick = (config) => {
package/dist/esm/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export { c as createAnimation } from './animation-DmtJpz89.js';
5
- export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-BBASprVu.js';
6
- export { iosTransitionAnimation } from './ios.transition-B8netzsb.js';
7
- export { mdTransitionAnimation } from './md.transition-DNCSSiXk.js';
4
+ export { c as createAnimation } from './animation-CFd8Olt3.js';
5
+ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-B8iieOdw.js';
6
+ export { iosTransitionAnimation } from './ios.transition-CRfGj4Mo.js';
7
+ export { mdTransitionAnimation } from './md.transition-wqThNy_C.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
9
9
  export { createGesture } from './index-BmLuEdV7.js';
10
- export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-Cep6oYzK.js';
11
- export { c as componentOnReady } from './helpers-BJqKF1pr.js';
12
- export { L as LogLevel, c as printIonError, a as printIonWarning } from './index-BpRUsN_W.js';
13
- export { I as IonicSafeString } from './index-CK8uF0iB.js';
10
+ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-B-G43ddm.js';
11
+ export { c as componentOnReady } from './helpers-B54ynME_.js';
12
+ export { L as LogLevel, c as printIonError, a as printIonWarning } from './index-D9OR05yj.js';
13
+ export { I as IonicSafeString } from './index-D4ZMZz_3.js';
14
14
  export { g as getMode, s as setupConfig } from './config-DWCzVL3Y.js';
15
15
  export { o as openURL } from './theme-byZM6qHV.js';
16
- export { m as menuController } from './index-DIouXecD.js';
17
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as popoverController, t as toastController } from './overlays-DmDY-El7.js';
16
+ export { m as menuController } from './index-B9jhwvmO.js';
17
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as popoverController, t as toastController } from './overlays-BQnV0HAU.js';
18
18
  import './gesture-controller-B_gJaBk0.js';
19
19
  import './dir-Dojwmvde.js';
20
- import './framework-delegate-CDjM1vRH.js';
20
+ import './framework-delegate-DeT5pmPB.js';
21
21
 
22
22
  const IonicSlides = (opts) => {
23
23
  const { swiper, extendParams } = opts;