@ionic/core 9.0.7-dev.11791478996.1b854592 → 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 (477) 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-D0nwlsl_.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-Bd8hg9FK.js → p-CJgshb3W.js} +1 -1
  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/components/p-CVVUo4J1.js +4 -0
  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-CJdQ1u7W.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-CQKWzUsE.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-DCfr5hz-.js → index-CgXTRA_-.js} +4 -16
  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 +18 -46
  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 +7 -29
  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-Ca6XODo9.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-D8SfNYEp.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/nav/nav.js +2 -24
  253. package/dist/collection/components/route/route.js +9 -1
  254. package/dist/collection/components/route-redirect/route-redirect.js +1 -1
  255. package/dist/collection/components/router/utils/constants.js +2 -0
  256. package/dist/collection/components/router/utils/matching.js +97 -14
  257. package/dist/collection/components/router/utils/path.js +17 -3
  258. package/dist/collection/components/router-outlet/router-outlet.js +3 -31
  259. package/dist/collection/utils/hardware-back-button.js +12 -41
  260. package/dist/collection/utils/menu-controller/index.js +1 -2
  261. package/dist/collection/utils/overlays.js +4 -30
  262. package/dist/collection/utils/transition/index.js +0 -11
  263. package/dist/docs.json +4 -4
  264. package/dist/esm/{animation-DmtJpz89.js → animation-CFd8Olt3.js} +2 -2
  265. package/dist/esm/{app-globals-CNfpAPW6.js → app-globals-7GHLBkwd.js} +1 -1
  266. package/dist/esm/{attribute-controller-DPMIcbef.js → attribute-controller-Cn665x42.js} +1 -1
  267. package/dist/esm/{button-active-DVk40Sjl.js → button-active-DMuYeDQN.js} +2 -2
  268. package/dist/esm/{capacitor-CHJaJ9aX.js → capacitor-CoEgIpR9.js} +1 -1
  269. package/dist/esm/{format-Ck1cw5z7.js → format-C9zPmwKU.js} +1 -1
  270. package/dist/esm/{framework-delegate-CDjM1vRH.js → framework-delegate-DeT5pmPB.js} +1 -1
  271. package/dist/esm/{haptic-WXfMCob9.js → haptic-Dxm7ZmT5.js} +1 -1
  272. package/dist/esm/{helpers-BJqKF1pr.js → helpers-B54ynME_.js} +1 -1
  273. package/dist/esm/{index-TkLga3ma.js → index--21qeSt0.js} +2 -2
  274. package/dist/esm/{index-z9vdZN7I.js → index-B8iieOdw.js} +5 -16
  275. package/dist/esm/{index-DIouXecD.js → index-B9jhwvmO.js} +5 -6
  276. package/dist/esm/{index-CK8uF0iB.js → index-D4ZMZz_3.js} +1 -1
  277. package/dist/esm/{index-BpRUsN_W.js → index-D9OR05yj.js} +27 -40
  278. package/dist/esm/{index-Clv8QC5L.js → index-D_xZtbw6.js} +2 -2
  279. package/dist/esm/index.js +11 -11
  280. package/dist/esm/{input-shims-C1iYF5JK.js → input-shims-MCrhq67U.js} +5 -5
  281. package/dist/esm/{input.utils-DZY_K8Po.js → input.utils-B-IIWrwT.js} +1 -1
  282. package/dist/esm/ion-accordion_2.entry.js +3 -3
  283. package/dist/esm/ion-action-sheet.entry.js +11 -11
  284. package/dist/esm/ion-alert.entry.js +11 -11
  285. package/dist/esm/ion-app_8.entry.js +18 -46
  286. package/dist/esm/ion-avatar_3.entry.js +2 -2
  287. package/dist/esm/ion-back-button.entry.js +3 -3
  288. package/dist/esm/ion-backdrop.entry.js +2 -2
  289. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  290. package/dist/esm/ion-button_2.entry.js +4 -4
  291. package/dist/esm/ion-card_5.entry.js +4 -4
  292. package/dist/esm/ion-checkbox.entry.js +4 -4
  293. package/dist/esm/ion-chip.entry.js +2 -2
  294. package/dist/esm/ion-col_3.entry.js +2 -2
  295. package/dist/esm/ion-datetime-button.entry.js +4 -4
  296. package/dist/esm/ion-datetime.entry.js +6 -6
  297. package/dist/esm/ion-fab_3.entry.js +3 -3
  298. package/dist/esm/ion-img.entry.js +3 -3
  299. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  300. package/dist/esm/ion-input-otp.entry.js +8 -33
  301. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  302. package/dist/esm/ion-input.entry.js +5 -5
  303. package/dist/esm/ion-item-option_3.entry.js +4 -4
  304. package/dist/esm/ion-item_8.entry.js +4 -4
  305. package/dist/esm/ion-loading.entry.js +7 -7
  306. package/dist/esm/ion-menu_3.entry.js +9 -10
  307. package/dist/esm/ion-modal.entry.js +11 -11
  308. package/dist/esm/ion-nav_2.entry.js +7 -29
  309. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  310. package/dist/esm/ion-picker-column.entry.js +5 -5
  311. package/dist/esm/ion-picker.entry.js +2 -2
  312. package/dist/esm/ion-popover.entry.js +7 -7
  313. package/dist/esm/ion-progress-bar.entry.js +3 -3
  314. package/dist/esm/ion-radio_2.entry.js +4 -4
  315. package/dist/esm/ion-range.entry.js +4 -4
  316. package/dist/esm/ion-refresher_2.entry.js +8 -8
  317. package/dist/esm/ion-reorder_2.entry.js +6 -6
  318. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  319. package/dist/esm/ion-route_4.entry.js +125 -20
  320. package/dist/esm/ion-searchbar.entry.js +3 -3
  321. package/dist/esm/ion-segment-content.entry.js +1 -1
  322. package/dist/esm/ion-segment-view.entry.js +1 -1
  323. package/dist/esm/ion-segment_2.entry.js +3 -3
  324. package/dist/esm/ion-select-modal.entry.js +7 -7
  325. package/dist/esm/ion-select_3.entry.js +8 -8
  326. package/dist/esm/ion-spinner.entry.js +2 -2
  327. package/dist/esm/ion-split-pane.entry.js +2 -2
  328. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  329. package/dist/esm/ion-tab_2.entry.js +3 -3
  330. package/dist/esm/ion-text.entry.js +2 -2
  331. package/dist/esm/ion-textarea.entry.js +5 -5
  332. package/dist/esm/ion-toast.entry.js +7 -7
  333. package/dist/esm/ion-toggle.entry.js +6 -6
  334. package/dist/esm/{ionic-global-Cep6oYzK.js → ionic-global-B-G43ddm.js} +1 -1
  335. package/dist/esm/ionic.js +6 -6
  336. package/dist/esm/{ios.transition-BkUGiDUz.js → ios.transition-CRfGj4Mo.js} +4 -4
  337. package/dist/esm/{item-multiple-inputs-Bd2LO7qK.js → item-multiple-inputs-BSD9wGHO.js} +1 -1
  338. package/dist/esm/{keyboard-B4Y-Gph8.js → keyboard-DDw62P0D.js} +4 -4
  339. package/dist/esm/{keyboard-controller-B2NoF7bV.js → keyboard-controller-Dzjet5wD.js} +2 -2
  340. package/dist/esm/{keyboard-Cmqp5iZD.js → keyboard-ly3M0GO7.js} +1 -1
  341. package/dist/esm/loader.js +5 -5
  342. package/dist/esm/{md.transition-B6hlrWjR.js → md.transition-wqThNy_C.js} +4 -4
  343. package/dist/esm/{overlays-DmDY-El7.js → overlays-BQnV0HAU.js} +21 -78
  344. package/dist/esm/{select-option-render-BSDT9oSA.js → select-option-render-CGxPejmz.js} +2 -2
  345. package/dist/esm/{slot-mutation-controller-hAS2uJ7c.js → slot-mutation-controller-C3s4-_YN.js} +1 -1
  346. package/dist/esm/{status-tap-VGRBYwiC.js → status-tap-DRx9wSD_.js} +3 -3
  347. package/dist/esm/{swipe-back-DV3UpWzz.js → swipe-back-Ch3UU_US.js} +2 -2
  348. package/dist/html.html-data.json +2 -2
  349. package/dist/ionic/index.esm.js +1 -1
  350. package/dist/ionic/ionic.esm.js +1 -1
  351. package/dist/ionic/{p-7db20410.entry.js → p-0517aec4.entry.js} +1 -1
  352. package/dist/ionic/{p-9ffccbf1.entry.js → p-083b1119.entry.js} +1 -1
  353. package/dist/ionic/{p-d0e374f8.entry.js → p-0ab133d6.entry.js} +1 -1
  354. package/dist/ionic/{p-4d785062.entry.js → p-1213b719.entry.js} +1 -1
  355. package/dist/ionic/{p-0c32c626.entry.js → p-150f350e.entry.js} +1 -1
  356. package/dist/ionic/{p-c293f854.entry.js → p-20d1ac29.entry.js} +1 -1
  357. package/dist/ionic/{p-d72accc4.entry.js → p-24b0a961.entry.js} +1 -1
  358. package/dist/ionic/{p-d2406889.entry.js → p-28f506ce.entry.js} +1 -1
  359. package/dist/ionic/{p-930c3538.entry.js → p-2e6e933d.entry.js} +1 -1
  360. package/dist/ionic/{p-0f97175e.entry.js → p-30dcf43b.entry.js} +1 -1
  361. package/dist/ionic/{p-00cd107d.entry.js → p-378341d1.entry.js} +1 -1
  362. package/dist/ionic/{p-6c7b5930.entry.js → p-37f46670.entry.js} +1 -1
  363. package/dist/ionic/{p-b9ed3a52.entry.js → p-3a5faaa8.entry.js} +1 -1
  364. package/dist/ionic/p-3bd7e5df.entry.js +4 -0
  365. package/dist/ionic/{p-4e4e5919.entry.js → p-3c4b0ba7.entry.js} +1 -1
  366. package/dist/ionic/{p-4bd80334.entry.js → p-42b2a992.entry.js} +1 -1
  367. package/dist/ionic/p-52449f1f.entry.js +4 -0
  368. package/dist/ionic/p-52dc3309.entry.js +4 -0
  369. package/dist/ionic/{p-64ac3864.entry.js → p-58f914ee.entry.js} +1 -1
  370. package/dist/ionic/{p-b3aadfe8.entry.js → p-5b9666be.entry.js} +1 -1
  371. package/dist/ionic/{p-a4389f13.entry.js → p-5c19330c.entry.js} +1 -1
  372. package/dist/ionic/{p-bfdbe24b.entry.js → p-61b304c8.entry.js} +1 -1
  373. package/dist/ionic/{p-0b09c60e.entry.js → p-624f2fa8.entry.js} +1 -1
  374. package/dist/ionic/{p-d9a3dfd1.entry.js → p-636349e2.entry.js} +1 -1
  375. package/dist/ionic/{p-4f25b926.entry.js → p-6865f0e1.entry.js} +1 -1
  376. package/dist/ionic/{p-27d96a9b.entry.js → p-7441ed2b.entry.js} +1 -1
  377. package/dist/ionic/{p-91f3cd8b.entry.js → p-76309bab.entry.js} +1 -1
  378. package/dist/ionic/p-83448626.entry.js +4 -0
  379. package/dist/ionic/{p-7e9c2a97.entry.js → p-834afcf7.entry.js} +1 -1
  380. package/dist/ionic/{p-362dcd86.entry.js → p-93cd738b.entry.js} +1 -1
  381. package/dist/ionic/{p-eb989dc9.entry.js → p-9b78fedf.entry.js} +1 -1
  382. package/dist/ionic/{p-5bb24bce.entry.js → p-9dd9788c.entry.js} +1 -1
  383. package/dist/ionic/{p-nCAPr1Ah.js → p-B4ELlbJE.js} +1 -1
  384. package/dist/ionic/p-B4wzg4z4.js +4 -0
  385. package/dist/ionic/{p-Co7eql8D.js → p-B4xjg_Qu.js} +1 -1
  386. package/dist/ionic/{p-DPNVo1nr.js → p-BCgqWm-V.js} +1 -1
  387. package/dist/ionic/p-BChRVdVv.js +4 -0
  388. package/dist/ionic/{p-BO10QT9r.js → p-BUB5OrpU.js} +1 -1
  389. package/dist/ionic/{p-BZTgGzGK.js → p-BVEsh7-M.js} +1 -1
  390. package/dist/ionic/p-Ba6ZV-qU.js +4 -0
  391. package/dist/ionic/{p-DxftXYZp.js → p-BhMQahM6.js} +1 -1
  392. package/dist/ionic/{p-D926OmIX.js → p-BtHAx8im.js} +1 -1
  393. package/{components/p-Dbi3KqKm.js → dist/ionic/p-Bv-6401R.js} +1 -1
  394. package/dist/ionic/{p-DfvWlTdB.js → p-CCik51Nv.js} +1 -1
  395. package/dist/ionic/p-CTmJSZcs.js +4 -0
  396. package/dist/ionic/{p-CngfKMRU.js → p-CTrwMl44.js} +1 -1
  397. package/dist/ionic/p-CVwXN07G.js +4 -0
  398. package/dist/ionic/p-CgQdInM0.js +4 -0
  399. package/dist/ionic/{p-SEecsUh7.js → p-CrAPHbJ3.js} +1 -1
  400. package/dist/ionic/{p-Bx5x5GJV.js → p-CsWrz1c2.js} +1 -1
  401. package/dist/ionic/p-D5akOqD0.js +4 -0
  402. package/dist/ionic/p-D9OR05yj.js +6 -0
  403. package/dist/ionic/p-DHf9V6zI.js +4 -0
  404. package/dist/ionic/{p-CXs4J83x.js → p-DNxEB9-T.js} +1 -1
  405. package/dist/ionic/p-DZUqAr_6.js +4 -0
  406. package/dist/ionic/{p-BY4FwwBp.js → p-DxvRP6ld.js} +1 -1
  407. package/dist/ionic/p-Dzew6Qv7.js +4 -0
  408. package/dist/ionic/p-PkaVMJga.js +4 -0
  409. package/dist/ionic/{p-c250b6b0.entry.js → p-b0a3dd1a.entry.js} +1 -1
  410. package/dist/ionic/{p-ec259ac5.entry.js → p-b1164028.entry.js} +1 -1
  411. package/dist/ionic/{p-230f510c.entry.js → p-b710b4b8.entry.js} +1 -1
  412. package/dist/ionic/{p-8c85e250.entry.js → p-b9659d21.entry.js} +1 -1
  413. package/dist/ionic/p-ba7bd621.entry.js +4 -0
  414. package/dist/ionic/{p-82abf431.entry.js → p-daaecea3.entry.js} +1 -1
  415. package/dist/ionic/{p-e7ab4def.entry.js → p-e05073f6.entry.js} +1 -1
  416. package/dist/ionic/{p-8d651adb.entry.js → p-e137f724.entry.js} +1 -1
  417. package/dist/ionic/{p-107a81a6.entry.js → p-e1969fd1.entry.js} +1 -1
  418. package/dist/ionic/{p-77252596.entry.js → p-e338693a.entry.js} +1 -1
  419. package/dist/ionic/{p-8b79061e.entry.js → p-e4c3f17f.entry.js} +1 -1
  420. package/dist/ionic/{p-01b7e3f2.entry.js → p-e7414c33.entry.js} +1 -1
  421. package/dist/ionic/{p-8db08782.entry.js → p-eb762f80.entry.js} +1 -1
  422. package/dist/ionic/p-edcb63e5.entry.js +4 -0
  423. package/dist/ionic/{p-c97e4c00.entry.js → p-efa00ce5.entry.js} +1 -1
  424. package/dist/ionic/{p-60780b88.entry.js → p-f19e50f8.entry.js} +1 -1
  425. package/dist/ionic/{p-8d2ccf0c.entry.js → p-f20b6a9b.entry.js} +1 -1
  426. package/dist/ionic/{p-f2116a54.entry.js → p-f9057f70.entry.js} +1 -1
  427. package/dist/ionic/{p-0a789930.entry.js → p-f99cf5aa.entry.js} +1 -1
  428. package/dist/ionic/{p-62c87f3d.entry.js → p-fee863dc.entry.js} +1 -1
  429. package/dist/ionic/{p-CgcGX08t.js → p-kKvGoaEe.js} +1 -1
  430. package/dist/ionic/{p-B8IuTu_r.js → p-tXpzvta8.js} +1 -1
  431. package/dist/ionic/p-vPo3vRFc.js +4 -0
  432. package/dist/types/components/input-otp/input-otp.d.ts +0 -7
  433. package/dist/types/components/nav/nav.d.ts +0 -1
  434. package/dist/types/components/route/route.d.ts +8 -0
  435. package/dist/types/components/route-redirect/route-redirect.d.ts +3 -1
  436. package/dist/types/components/router/utils/constants.d.ts +2 -0
  437. package/dist/types/components/router/utils/matching.d.ts +10 -0
  438. package/dist/types/components/router/utils/path.d.ts +5 -1
  439. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -1
  440. package/dist/types/components.d.ts +4 -4
  441. package/dist/types/utils/config.d.ts +1 -4
  442. package/dist/types/utils/hardware-back-button.d.ts +0 -11
  443. package/dist/types/utils/overlays.d.ts +2 -5
  444. package/dist/types/utils/transition/index.d.ts +0 -6
  445. package/hydrate/index.js +319 -524
  446. package/hydrate/index.mjs +319 -524
  447. package/package.json +1 -1
  448. package/components/p-B02CcbPD.js +0 -4
  449. package/components/p-CohRJRIu.js +0 -4
  450. package/components/p-Ct2aBEue.js +0 -4
  451. package/components/p-CwEis84J.js +0 -4
  452. package/components/p-CxEV3Vwy.js +0 -4
  453. package/components/p-Cyajikho.js +0 -4
  454. package/components/p-DD92Fw3n.js +0 -4
  455. package/components/p-DfDIY2oP.js +0 -4
  456. package/components/p-IQN1T5zw.js +0 -4
  457. package/components/p-ODGeXc3M.js +0 -4
  458. package/components/p-R4UxBukQ.js +0 -4
  459. package/dist/ionic/p-52a16f94.entry.js +0 -4
  460. package/dist/ionic/p-539d6c8e.entry.js +0 -4
  461. package/dist/ionic/p-7ce9c6f8.entry.js +0 -4
  462. package/dist/ionic/p-7l6ENjIV.js +0 -4
  463. package/dist/ionic/p-BNXIurCt.js +0 -4
  464. package/dist/ionic/p-BOLqP2-V.js +0 -4
  465. package/dist/ionic/p-BdHBcCZF.js +0 -4
  466. package/dist/ionic/p-BexAj0yw.js +0 -4
  467. package/dist/ionic/p-BpRUsN_W.js +0 -6
  468. package/dist/ionic/p-BuLlVedw.js +0 -4
  469. package/dist/ionic/p-C1WYZOZj.js +0 -4
  470. package/dist/ionic/p-C2LaBx3E.js +0 -4
  471. package/dist/ionic/p-D13gXhdC.js +0 -4
  472. package/dist/ionic/p-DXXGkPA8.js +0 -4
  473. package/dist/ionic/p-Dk4Mdaru.js +0 -4
  474. package/dist/ionic/p-DriE1ZAo.js +0 -4
  475. package/dist/ionic/p-af11d3c6.entry.js +0 -4
  476. package/dist/ionic/p-b5bcbbc1.entry.js +0 -4
  477. package/dist/ionic/p-c83dbc12.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -466,7 +466,7 @@ const appGlobalScript = initialize || (() => {});
466
466
  const globalScripts = appGlobalScript;
467
467
 
468
468
  /*
469
- Stencil Hydrate Platform v4.45.2 | MIT Licensed | https://stenciljs.com
469
+ Stencil Hydrate Platform v4.45.1 | MIT Licensed | https://stenciljs.com
470
470
  */
471
471
  var __create = Object.create;
472
472
  var __defProp = Object.defineProperty;
@@ -575,10 +575,6 @@ var require_brace_expansion = __commonJS({
575
575
  var escClose = "\0CLOSE" + Math.random() + "\0";
576
576
  var escComma = "\0COMMA" + Math.random() + "\0";
577
577
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
578
- var EXPANSION_MAX = 1e5;
579
- var EXPANSION_MAX_LENGTH = 4e6;
580
- var EXPANSION_MAX_DEPTH = 1e3;
581
- var EXPANSION_MAX_REWRITES = 1e3;
582
578
  function numeric(str) {
583
579
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
584
580
  }
@@ -588,49 +584,33 @@ var require_brace_expansion = __commonJS({
588
584
  function unescapeBraces(str) {
589
585
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
590
586
  }
591
- function pushAll(target, items) {
592
- for (var i2 = 0; i2 < items.length; i2++) {
593
- target.push(items[i2]);
594
- }
595
- }
596
587
  function parseCommaParts(str) {
588
+ if (!str)
589
+ return [""];
597
590
  var parts = [];
598
- var carry = "";
599
- for (; ; ) {
600
- var m = balanced("{", "}", str);
601
- if (!m) {
602
- var tail = str.split(",");
603
- tail[0] = carry + tail[0];
604
- pushAll(parts, tail);
605
- return parts;
606
- }
607
- var pre = m.pre;
608
- var body = m.body;
609
- var post = m.post;
610
- var p = pre.split(",");
611
- p[0] = carry + p[0];
612
- p[p.length - 1] += "{" + body + "}";
613
- if (!post.length) {
614
- pushAll(parts, p);
615
- return parts;
616
- }
617
- carry = p.pop();
618
- pushAll(parts, p);
619
- str = post;
620
- }
621
- }
622
- function expandTop(str, options) {
591
+ var m = balanced("{", "}", str);
592
+ if (!m)
593
+ return str.split(",");
594
+ var pre = m.pre;
595
+ var body = m.body;
596
+ var post = m.post;
597
+ var p = pre.split(",");
598
+ p[p.length - 1] += "{" + body + "}";
599
+ var postParts = parseCommaParts(post);
600
+ if (post.length) {
601
+ p[p.length - 1] += postParts.shift();
602
+ p.push.apply(p, postParts);
603
+ }
604
+ parts.push.apply(parts, p);
605
+ return parts;
606
+ }
607
+ function expandTop(str) {
623
608
  if (!str)
624
609
  return [];
625
- options = options || {};
626
- var max = options.max == null ? EXPANSION_MAX : options.max;
627
- var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
628
- var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
629
- var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
630
610
  if (str.substr(0, 2) === "{}") {
631
611
  str = "\\{\\}" + str.substr(2);
632
612
  }
633
- return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
613
+ return expand2(escapeBraces(str), true).map(unescapeBraces);
634
614
  }
635
615
  function embrace(str) {
636
616
  return "{" + str + "}";
@@ -644,165 +624,93 @@ var require_brace_expansion = __commonJS({
644
624
  function gte(i2, y) {
645
625
  return i2 >= y;
646
626
  }
647
- function combine(acc, pre, values, max, maxLength, dropEmpties) {
648
- var out = [];
649
- var length = 0;
650
- for (var a = 0; a < acc.length; a++) {
651
- for (var v = 0; v < values.length; v++) {
652
- if (out.length >= max) return out;
653
- var expansion = acc[a] + pre + values[v];
654
- if (dropEmpties && !expansion) continue;
655
- if (length + expansion.length > maxLength) return out;
656
- out.push(expansion);
657
- length += expansion.length;
658
- }
659
- }
660
- return out;
661
- }
662
- function expandSequence(body, isAlphaSequence, max, maxLength) {
663
- var n = body.split(/\.\./);
664
- var N = [];
665
- if (n[0] === void 0 || n[1] === void 0) {
666
- return N;
667
- }
668
- var x = numeric(n[0]);
669
- var y = numeric(n[1]);
670
- var width = Math.max(n[0].length, n[1].length);
671
- var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
672
- var test = lte;
673
- var reverse = y < x;
674
- if (reverse) {
675
- incr *= -1;
676
- test = gte;
677
- }
678
- var pad = n.some(isPadded);
679
- var length = 0;
680
- for (var i2 = x; test(i2, y) && N.length < max; i2 += incr) {
681
- var c;
682
- if (isAlphaSequence) {
683
- c = String.fromCharCode(i2);
684
- if (c === "\\") {
685
- c = "";
686
- }
687
- } else {
688
- c = String(i2);
689
- if (pad) {
690
- var need = width - c.length;
691
- if (need > 0) {
692
- var z = new Array(need + 1).join("0");
693
- if (i2 < 0) {
694
- c = "-" + z + c.slice(1);
695
- } else {
696
- c = z + c;
697
- }
698
- }
699
- }
700
- }
701
- if (length + c.length > maxLength) break;
702
- N.push(c);
703
- length += c.length;
704
- }
705
- return N;
706
- }
707
- function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
708
- if (depth > maxDepth) {
709
- return [str];
710
- }
711
- var acc = [""];
712
- var rewrites = 0;
713
- var dropEmpties = false;
714
- var firstGroup = true;
715
- for (; ; ) {
716
- const m = balanced("{", "}", str);
717
- if (!m) {
718
- return combine(acc, str, [""], max, maxLength, dropEmpties);
719
- }
720
- const pre = m.pre;
721
- if (/\$$/.test(pre)) {
722
- acc = combine(
723
- acc,
724
- pre + "{" + m.body + "}",
725
- [""],
726
- max,
727
- maxLength,
728
- dropEmpties && !m.post.length
729
- );
730
- firstGroup = false;
731
- if (!m.post.length) break;
732
- str = m.post;
733
- continue;
627
+ function expand2(str, isTop) {
628
+ var expansions = [];
629
+ var m = balanced("{", "}", str);
630
+ if (!m) return [str];
631
+ var pre = m.pre;
632
+ var post = m.post.length ? expand2(m.post, false) : [""];
633
+ if (/\$$/.test(m.pre)) {
634
+ for (var k = 0; k < post.length; k++) {
635
+ var expansion = pre + "{" + m.body + "}" + post[k];
636
+ expansions.push(expansion);
734
637
  }
638
+ } else {
735
639
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
736
640
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
737
641
  var isSequence = isNumericSequence || isAlphaSequence;
738
642
  var isOptions = m.body.indexOf(",") >= 0;
739
643
  if (!isSequence && !isOptions) {
740
- if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
741
- rewrites++;
644
+ if (m.post.match(/,(?!,).*\}/)) {
742
645
  str = m.pre + "{" + m.body + escClose + m.post;
743
- isTop = true;
744
- continue;
646
+ return expand2(str);
745
647
  }
746
- return combine(
747
- acc,
748
- pre + "{" + m.body + "}" + m.post,
749
- [""],
750
- max,
751
- maxLength,
752
- dropEmpties
753
- );
754
- }
755
- if (firstGroup) {
756
- dropEmpties = isTop && !isSequence;
757
- firstGroup = false;
648
+ return [str];
758
649
  }
759
- var values;
650
+ var n;
760
651
  if (isSequence) {
761
- values = expandSequence(m.body, isAlphaSequence, max, maxLength);
652
+ n = m.body.split(/\.\./);
762
653
  } else {
763
- var n = parseCommaParts(m.body);
764
- if (n.length === 1 && n[0] !== void 0) {
765
- n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
654
+ n = parseCommaParts(m.body);
655
+ if (n.length === 1) {
656
+ n = expand2(n[0], false).map(embrace);
766
657
  if (n.length === 1) {
767
- acc = combine(
768
- acc,
769
- pre + n[0],
770
- [""],
771
- max,
772
- maxLength,
773
- dropEmpties && !m.post.length
774
- );
775
- if (!m.post.length) break;
776
- str = m.post;
777
- continue;
658
+ return post.map(function(p) {
659
+ return m.pre + n[0] + p;
660
+ });
778
661
  }
779
662
  }
780
- var dropsEmpties = dropEmpties && !m.post.length && !pre;
781
- for (var d = 0; dropsEmpties && d < acc.length; d++) {
782
- if (acc[d]) {
783
- dropsEmpties = false;
784
- }
663
+ }
664
+ var N;
665
+ if (isSequence) {
666
+ var x = numeric(n[0]);
667
+ var y = numeric(n[1]);
668
+ var width = Math.max(n[0].length, n[1].length);
669
+ var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
670
+ var test = lte;
671
+ var reverse = y < x;
672
+ if (reverse) {
673
+ incr *= -1;
674
+ test = gte;
785
675
  }
786
- values = [];
787
- var valuesLength = 0;
788
- outer: for (var j = 0; j < n.length; j++) {
789
- var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
790
- for (var k = 0; k < expanded.length; k++) {
791
- var v = expanded[k];
792
- if (dropsEmpties && !v) continue;
793
- if (values.length >= max || valuesLength + v.length > maxLength) {
794
- break outer;
676
+ var pad = n.some(isPadded);
677
+ N = [];
678
+ for (var i2 = x; test(i2, y); i2 += incr) {
679
+ var c;
680
+ if (isAlphaSequence) {
681
+ c = String.fromCharCode(i2);
682
+ if (c === "\\")
683
+ c = "";
684
+ } else {
685
+ c = String(i2);
686
+ if (pad) {
687
+ var need = width - c.length;
688
+ if (need > 0) {
689
+ var z = new Array(need + 1).join("0");
690
+ if (i2 < 0)
691
+ c = "-" + z + c.slice(1);
692
+ else
693
+ c = z + c;
694
+ }
795
695
  }
796
- values.push(v);
797
- valuesLength += v.length;
798
696
  }
697
+ N.push(c);
698
+ }
699
+ } else {
700
+ N = [];
701
+ for (var j = 0; j < n.length; j++) {
702
+ N.push.apply(N, expand2(n[j], false));
703
+ }
704
+ }
705
+ for (var j = 0; j < N.length; j++) {
706
+ for (var k = 0; k < post.length; k++) {
707
+ var expansion = pre + N[j] + post[k];
708
+ if (!isTop || isSequence || expansion)
709
+ expansions.push(expansion);
799
710
  }
800
711
  }
801
- acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
802
- if (!m.post.length) break;
803
- str = m.post;
804
712
  }
805
- return acc;
713
+ return expansions;
806
714
  }
807
715
  }
808
716
  });
@@ -2022,7 +1930,7 @@ var scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) =>
2022
1930
  }
2023
1931
  }).join(", ");
2024
1932
  };
2025
- var isScopableAtRule = (selector) => selector.startsWith("@media") || selector.startsWith("@supports") || selector.startsWith("@page") || selector.startsWith("@document") || selector.startsWith("@layer") || selector.startsWith("@container");
1933
+ var isScopableAtRule = (selector) => selector.startsWith("@media") || selector.startsWith("@supports") || selector.startsWith("@page") || selector.startsWith("@document") || selector.startsWith("@layer");
2026
1934
  var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {
2027
1935
  return processRules(cssText, (rule) => {
2028
1936
  let selector = rule.selector;
@@ -2346,12 +2254,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2346
2254
  newClasses = [...new Set(newClasses)].filter((c) => c);
2347
2255
  classList.add(...newClasses);
2348
2256
  } else {
2349
- let removedClasses = oldClasses.filter((c) => c && !newClasses.includes(c));
2350
- if (initialRender && !(flags & 4 /* isHost */)) {
2351
- const ownClasses = getOwnHostClasses(elm);
2352
- removedClasses = removedClasses.filter((c) => !ownClasses.includes(c));
2353
- }
2354
- classList.remove(...removedClasses);
2257
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
2355
2258
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
2356
2259
  }
2357
2260
  } else if (memberName === "style") {
@@ -2472,18 +2375,6 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2472
2375
  var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
2473
2376
  var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
2474
2377
  var parseClassListRegex = /\s/;
2475
- var getOwnHostClasses = (elm) => {
2476
- var _a2, _b, _c;
2477
- const hostRef = getHostRef(elm);
2478
- if (!hostRef || !(hostRef.$flags$ & 2 /* hasRendered */)) {
2479
- return [];
2480
- }
2481
- const ownClasses = parseClassList((_b = (_a2 = hostRef.$vnode$) == null ? void 0 : _a2.$attrs$) == null ? void 0 : _b.class);
2482
- {
2483
- ownClasses.push((_c = BUILD.hydratedSelectorName) != null ? _c : "hydrated");
2484
- }
2485
- return ownClasses;
2486
- };
2487
2378
  var parseClassList = (value) => {
2488
2379
  if (typeof value === "object" && value && "baseVal" in value) {
2489
2380
  value = value.baseVal;
@@ -3387,19 +3278,6 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3387
3278
  }
3388
3279
  }
3389
3280
  };
3390
- var replayPendingSetterValues = (hostRef, cmpMeta) => {
3391
- var _a2;
3392
- const instance = hostRef.$lazyInstance$;
3393
- if (!instance) return;
3394
- for (const [memberName, [memberFlags]] of Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {})) {
3395
- if (memberFlags & 4096 /* Setter */ && hostRef.$instanceValues$.has(memberName)) {
3396
- const pendingValue = hostRef.$instanceValues$.get(memberName);
3397
- if (instance[memberName] !== pendingValue) {
3398
- instance[memberName] = pendingValue;
3399
- }
3400
- }
3401
- }
3402
- };
3403
3281
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3404
3282
  var _a2;
3405
3283
  const prototype = Cstr.prototype;
@@ -3429,8 +3307,9 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3429
3307
  return getValue(this, memberName);
3430
3308
  }
3431
3309
  const ref = getHostRef(this);
3432
- if (!ref) return prototype[memberName];
3433
- return ref.$lazyInstance$ ? ref.$lazyInstance$[memberName] : getValue(this, memberName);
3310
+ const instance = ref ? ref.$lazyInstance$ : prototype;
3311
+ if (!instance) return;
3312
+ return instance[memberName];
3434
3313
  }
3435
3314
  },
3436
3315
  configurable: true,
@@ -3517,7 +3396,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3517
3396
  }
3518
3397
  {
3519
3398
  hostRef.$flags$ &= -9 /* isConstructingInstance */;
3520
- replayPendingSetterValues(hostRef, cmpMeta);
3521
3399
  }
3522
3400
  {
3523
3401
  hostRef.$flags$ |= 128 /* isWatchReady */;
@@ -8203,11 +8081,6 @@ const CoreDelegate = () => {
8203
8081
 
8204
8082
  let lastOverlayIndex = 0;
8205
8083
  let lastId = 0;
8206
- /**
8207
- * Every overlay except toast, which doesn't trap
8208
- * focus or close on back.
8209
- */
8210
- const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
8211
8084
  const activeAnimations = new WeakMap();
8212
8085
  /**
8213
8086
  * Determines if the overlay's backdrop is always blocking (no background interaction).
@@ -8332,7 +8205,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8332
8205
  * Should NOT include: Toast
8333
8206
  */
8334
8207
  const trapKeyboardFocus = (ev, doc) => {
8335
- const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
8208
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8336
8209
  const target = ev.target;
8337
8210
  /**
8338
8211
  * If no active overlay, ignore this event.
@@ -8638,8 +8511,7 @@ const setRootAriaHidden = (hidden = false) => {
8638
8511
  * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8639
8512
  * an overlay is removed from the DOM without going through
8640
8513
  * the `dismiss()` flow (e.g., when a framework unmounts the
8641
- * overlay during a route change). Also releases the
8642
- * CloseWatcher if nothing is left to close.
8514
+ * overlay during a route change).
8643
8515
  *
8644
8516
  * Should be called from an overlay's `disconnectedCallback`
8645
8517
  * when the overlay was still presented at the time of removal.
@@ -8669,9 +8541,7 @@ const applyRootLock = (el) => {
8669
8541
  };
8670
8542
  /**
8671
8543
  * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
8672
- * Call from `connectedCallback` when the overlay is still presented. Also
8673
- * re-arms the CloseWatcher, which every overlay needs, so that happens
8674
- * before the `locksAppRoot` check.
8544
+ * Call from `connectedCallback` when the overlay is still presented.
8675
8545
  *
8676
8546
  * A synchronous move keeps the overlay connected, so the lock survives. A
8677
8547
  * detach with a re-insert in a later task releases it, which is the shape a
@@ -21382,11 +21252,6 @@ class InputOTP {
21382
21252
  * focus behavior when an input box is focused.
21383
21253
  */
21384
21254
  this.isKeyboardNavigation = false;
21385
- /**
21386
- * The `length` watcher runs before new inputs render, so
21387
- * `componentDidRender` updates their tab indexes instead.
21388
- */
21389
- this.updateTabIndexesAfterRender = false;
21390
21255
  this.inputValues = [];
21391
21256
  this.hasFocus = false;
21392
21257
  this.previousInputValues = [];
@@ -21746,10 +21611,6 @@ class InputOTP {
21746
21611
  this.initializeValues();
21747
21612
  this.updateTabIndexes();
21748
21613
  }
21749
- lengthChanged() {
21750
- this.initializeValues();
21751
- this.updateTabIndexesAfterRender = true;
21752
- }
21753
21614
  /**
21754
21615
  * Processes the separators prop into an array of numbers.
21755
21616
  *
@@ -21806,12 +21667,6 @@ class InputOTP {
21806
21667
  componentDidLoad() {
21807
21668
  this.updateTabIndexes();
21808
21669
  }
21809
- componentDidRender() {
21810
- if (this.updateTabIndexesAfterRender) {
21811
- this.updateTabIndexesAfterRender = false;
21812
- this.updateTabIndexes();
21813
- }
21814
- }
21815
21670
  /**
21816
21671
  * Get the regex pattern for allowed characters.
21817
21672
  * If a pattern is provided, use it to create a regex pattern
@@ -21989,7 +21844,7 @@ class InputOTP {
21989
21844
  const tabbableIndex = this.getTabbableIndex();
21990
21845
  const pattern = this.getPattern();
21991
21846
  const hasDescription = el.querySelector('.input-otp-description')?.textContent?.trim() !== '';
21992
- return (hAsync(Host, { key: 'def9fbd4fa135e6f435380c6ea86ac1621b4a111', class: createColorClasses$1(color, {
21847
+ return (hAsync(Host, { key: 'bd37661e13cde21feff30c663e6813ce3fff0d9a', class: createColorClasses$1(color, {
21993
21848
  [mode]: true,
21994
21849
  'has-focus': hasFocus,
21995
21850
  [`input-otp-size-${size}`]: true,
@@ -21997,30 +21852,20 @@ class InputOTP {
21997
21852
  [`input-otp-fill-${fill}`]: true,
21998
21853
  'input-otp-disabled': disabled,
21999
21854
  'input-otp-readonly': readonly,
22000
- }) }, hAsync("div", { key: '5d3d7646a3d4fc856b7b2e1f53d29fca47b10baf', role: "group", "aria-label": "One-time password input", class: "input-otp-group", ...inheritedAttributes }, Array.from({ length }).map((_, index) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper" }, hAsync("input", { class: "native-input", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => {
22001
- if (el) {
22002
- inputRefs[index] = el;
22003
- }
22004
- else {
22005
- // The input was removed, so drop its ref and any after it.
22006
- inputRefs.splice(index);
22007
- }
22008
- }, onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator" }))))), hAsync("div", { key: '9d72a4ab35b5fdd6bba9701050c385ed253b310f', class: {
21855
+ }) }, hAsync("div", { key: '5e206f870024f1ecfebda999ff31e6e815774deb', role: "group", "aria-label": "One-time password input", class: "input-otp-group", ...inheritedAttributes }, Array.from({ length }).map((_, index) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper" }, hAsync("input", { class: "native-input", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator" }))))), hAsync("div", { key: 'c268f838ddab2c8d6a612a11c7d38e6ca076436d', class: {
22009
21856
  'input-otp-description': true,
22010
21857
  'input-otp-description-hidden': !hasDescription,
22011
- } }, hAsync("slot", { key: '7deb3373c0d4e5deac22fa51577d271b9bb3a6d2' }))));
21858
+ } }, hAsync("slot", { key: 'c0736359b26f609b795e399fc1ad9b540632af18' }))));
22012
21859
  }
22013
21860
  get el() { return getElement(this); }
22014
21861
  static get watchers() { return {
22015
21862
  "value": [{
22016
21863
  "valueChanged": 0
22017
21864
  }],
22018
- "length": [{
22019
- "lengthChanged": 0
22020
- }, {
21865
+ "separators": [{
22021
21866
  "processSeparators": 0
22022
21867
  }],
22023
- "separators": [{
21868
+ "length": [{
22024
21869
  "processSeparators": 0
22025
21870
  }]
22026
21871
  }; }
@@ -24732,14 +24577,14 @@ class Menu {
24732
24577
  * the ionBackButton listener in the menu controller
24733
24578
  * will handle closing the menu when Escape is pressed.
24734
24579
  */
24735
- return (hAsync(Host, { key: '5cf26df26d4e539860cbeaea98ec621b98c3fcfc', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24580
+ return (hAsync(Host, { key: '1208ba437fa58680325408d3d4c8580950da1d68', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24736
24581
  [mode]: true,
24737
24582
  [`menu-type-${type}`]: true,
24738
24583
  'menu-enabled': !disabled,
24739
24584
  [`menu-side-${side}`]: true,
24740
24585
  'menu-pane-visible': isPaneVisible,
24741
24586
  'split-pane-side': hostContext('ion-split-pane', el),
24742
- } }, hAsync("div", { key: 'f337016e293bb8665c99762e0c389dd6c372bb33', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '4c3fe331aa42cd57d7ad9bd1f5910f8eeb62d7da' })), hAsync("ion-backdrop", { key: '61af7ea876d81574841e1dd3e81e2352e555d096', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
24587
+ } }, hAsync("div", { key: 'c0ddc957b7a7956b41901d77ae02d91e73071c55', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '6e44c56116431a024f114ab85ded1b822c942fac' })), hAsync("ion-backdrop", { key: '5f4bbcf84444d96ec6b02bf567e1aaf95f59078d', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
24743
24588
  }
24744
24589
  get el() { return getElement(this); }
24745
24590
  static get watchers() { return {
@@ -25305,17 +25150,6 @@ const setPageHidden = (el, hidden) => {
25305
25150
  el.classList.remove('ion-page-hidden');
25306
25151
  }
25307
25152
  };
25308
- /**
25309
- * Blocks clicks on `el` during a swipe to go back without animations,
25310
- * so releasing the pointer doesn't click whatever is under it. Returns
25311
- * a function that unblocks it after the release click.
25312
- */
25313
- const blockSwipeClicks = (el) => {
25314
- el.style.setProperty('pointer-events', 'none');
25315
- return () => {
25316
- setTimeout(() => el.style.removeProperty('pointer-events'));
25317
- };
25318
- };
25319
25153
  const setZIndex = (enteringEl, leavingEl, direction) => {
25320
25154
  if (enteringEl !== undefined) {
25321
25155
  enteringEl.style.zIndex = direction === 'back' ? '99' : '101';
@@ -28666,12 +28500,6 @@ class Nav {
28666
28500
  this.gesture.destroy();
28667
28501
  this.gesture = undefined;
28668
28502
  }
28669
- // Destroying the gesture skips onEnd, so end a deferred swipe here.
28670
- if (this.unblockSwipeClicks) {
28671
- this.unblockSwipeClicks();
28672
- this.unblockSwipeClicks = undefined;
28673
- this.gestureOrAnimationInProgress = false;
28674
- }
28675
28503
  this.transInstr.length = 0;
28676
28504
  this.views.length = 0;
28677
28505
  this.destroyed = true;
@@ -29292,14 +29120,6 @@ class Nav {
29292
29120
  }
29293
29121
  onStart() {
29294
29122
  this.gestureOrAnimationInProgress = true;
29295
- /**
29296
- * Without animations there's nothing for the swipe to drive, so
29297
- * wait until the gesture ends to decide whether to go back.
29298
- */
29299
- if (!(this.animated && config.getBoolean('animated', true))) {
29300
- this.unblockSwipeClicks = blockSwipeClicks(this.el);
29301
- return;
29302
- }
29303
29123
  this.pop({ direction: 'back', progressAnimation: true });
29304
29124
  }
29305
29125
  onMove(stepValue) {
@@ -29333,18 +29153,10 @@ class Nav {
29333
29153
  }
29334
29154
  else {
29335
29155
  this.gestureOrAnimationInProgress = false;
29336
- const { unblockSwipeClicks } = this;
29337
- if (unblockSwipeClicks) {
29338
- this.unblockSwipeClicks = undefined;
29339
- if (shouldComplete) {
29340
- this.pop({ direction: 'back' });
29341
- }
29342
- unblockSwipeClicks();
29343
- }
29344
29156
  }
29345
29157
  }
29346
29158
  render() {
29347
- return hAsync("slot", { key: '0aea554c0cf00dd3829757ec74c3855eccf1e068' });
29159
+ return hAsync("slot", { key: '1886154d3c2fa8511af4d641d269aaa4c0f45c05' });
29348
29160
  }
29349
29161
  get el() { return getElement(this); }
29350
29162
  static get watchers() { return {
@@ -35683,6 +35495,14 @@ class Route {
35683
35495
  *
35684
35496
  * Accepts paths similar to expressjs so that you can define parameters
35685
35497
  * in the url /foo/:bar where bar would be available in incoming props.
35498
+ *
35499
+ * A url ending in `*`, such as `*` or `/admin/*`, matches any remaining path,
35500
+ * including none, so `/admin/*` also matches `/admin`. It only wins over a
35501
+ * route that matches the whole path when it has more fixed segments, so
35502
+ * `/admin/*` wins over `/:section/:id` but not over `/admin/:id`. It always
35503
+ * wins over a route that matches by ignoring trailing segments, such as
35504
+ * `/admin` for `/admin/users`. The matched path is passed in the `pathMatch`
35505
+ * prop without a leading `/`. A `*` on a route with child routes is ignored.
35686
35506
  */
35687
35507
  this.url = '';
35688
35508
  }
@@ -35771,6 +35591,8 @@ class RouteRedirect {
35771
35591
  const ROUTER_INTENT_NONE = 'root';
35772
35592
  const ROUTER_INTENT_FORWARD = 'forward';
35773
35593
  const ROUTER_INTENT_BACK = 'back';
35594
+ /** Param that holds the path matched by a trailing `*` in an `ion-route` url. */
35595
+ const WILDCARD_PARAM = 'pathMatch';
35774
35596
 
35775
35597
  /** Join the non empty segments with "/". */
35776
35598
  const generatePath = (segments) => {
@@ -35804,12 +35626,13 @@ const writeSegments = (history, root, useHash, segments, direction, state, query
35804
35626
  *
35805
35627
  * Notes:
35806
35628
  * - parameter segments of the form :param are replaced with their value,
35807
- * - null is returned when a value is missing for any parameter segment.
35629
+ * - null is returned when a value is missing for any parameter segment,
35630
+ * - a trailing wildcard is replaced with the path it matched.
35808
35631
  */
35809
35632
  const chainToSegments = (chain) => {
35810
35633
  const segments = [];
35811
35634
  for (const route of chain) {
35812
- for (const segment of route.segments) {
35635
+ for (const segment of withoutWildcard(route.segments)) {
35813
35636
  if (segment[0] === ':') {
35814
35637
  const param = route.params && route.params[segment.slice(1)];
35815
35638
  if (!param) {
@@ -35821,9 +35644,22 @@ const chainToSegments = (chain) => {
35821
35644
  segments.push(segment);
35822
35645
  }
35823
35646
  }
35647
+ segments.push(...wildcardSegments(route));
35824
35648
  }
35825
35649
  return segments;
35826
35650
  };
35651
+ /** Only a `*` in the last segment of a route url is a wildcard. Elsewhere it's matched literally. */
35652
+ const endsWithWildcard = (segments) => {
35653
+ return segments[segments.length - 1] === '*';
35654
+ };
35655
+ /** Returns the path segments matched by the trailing wildcard of the route. */
35656
+ const wildcardSegments = (route) => {
35657
+ const pathMatch = endsWithWildcard(route.segments) ? route.params?.[WILDCARD_PARAM] : undefined;
35658
+ return pathMatch ? pathMatch.split('/').filter((s) => s.length > 0) : [];
35659
+ };
35660
+ const withoutWildcard = (segments) => {
35661
+ return endsWithWildcard(segments) ? segments.slice(0, -1) : segments;
35662
+ };
35827
35663
  /**
35828
35664
  * Removes the prefix segments from the path segments.
35829
35665
  *
@@ -36156,6 +35992,10 @@ const matchesIDs = (ids, chain) => {
36156
35992
  if (routeId.id.toLowerCase() !== routeChain.id) {
36157
35993
  break;
36158
35994
  }
35995
+ // Weight a wildcard route when the outlet reports its `pathMatch`
35996
+ if (routeId.params?.[WILDCARD_PARAM] !== undefined && endsWithWildcard(routeChain.segments)) {
35997
+ score++;
35998
+ }
36159
35999
  if (routeId.params) {
36160
36000
  const routeIdParams = Object.keys(routeId.params);
36161
36001
  // Only compare routes with the chain that have the same number of parameters.
@@ -36211,21 +36051,28 @@ const matchesSegments = (segments, chain) => {
36211
36051
  matchesDefault = true;
36212
36052
  }
36213
36053
  else {
36214
- for (const segment of chainSegments) {
36054
+ const params = {};
36055
+ for (const segment of withoutWildcard(chainSegments)) {
36215
36056
  const data = inputSegments.next();
36216
36057
  // data param
36217
36058
  if (segment[0] === ':') {
36218
36059
  if (data === '') {
36219
36060
  return null;
36220
36061
  }
36221
- allparams = allparams || [];
36222
- const params = allparams[i] || (allparams[i] = {});
36223
36062
  params[segment.slice(1)] = data;
36224
36063
  }
36225
36064
  else if (data !== segment) {
36226
36065
  return null;
36227
36066
  }
36228
36067
  }
36068
+ // A trailing `*` on a parent route has no effect. Its children match the rest of the path.
36069
+ if (i === chain.length - 1 && endsWithWildcard(chainSegments)) {
36070
+ params[WILDCARD_PARAM] = inputSegments.rest().join('/');
36071
+ }
36072
+ if (Object.keys(params).length > 0) {
36073
+ allparams = allparams || [];
36074
+ allparams[i] = params;
36075
+ }
36229
36076
  matchesDefault = false;
36230
36077
  }
36231
36078
  }
@@ -36257,25 +36104,38 @@ const mergeParams = (a, b) => {
36257
36104
  * Returns the best match or null when no match is found.
36258
36105
  * When a chain is returned the parameters are updated from the RouteIDs.
36259
36106
  * That is they contain both the componentProps of the <ion-route> and the parameter segment.
36107
+ *
36108
+ * When a wildcard route ties with other routes, a route without a wildcard that can build a url wins,
36109
+ * then the wildcard route. Otherwise the first route declared wins a tie.
36260
36110
  */
36261
36111
  const findChainForIDs = (ids, chains) => {
36262
- let match = null;
36263
36112
  let maxMatches = 0;
36113
+ let tied = [];
36264
36114
  for (const chain of chains) {
36265
36115
  const score = matchesIDs(ids, chain);
36266
36116
  if (score > maxMatches) {
36267
- match = chain;
36268
36117
  maxMatches = score;
36118
+ tied = [chain];
36119
+ }
36120
+ else if (score > 0 && score === maxMatches) {
36121
+ tied.push(chain);
36269
36122
  }
36270
36123
  }
36271
- if (match) {
36272
- return match.map((route, i) => ({
36273
- id: route.id,
36274
- segments: route.segments,
36275
- params: mergeParams(route.params, ids[i]?.params),
36276
- }));
36124
+ const matches = tied.map((chain) => chain.map((route, i) => ({
36125
+ id: route.id,
36126
+ segments: route.segments,
36127
+ params: mergeParams(route.params, ids[i]?.params),
36128
+ })));
36129
+ if (!matches.some(chainEndsWithWildcard)) {
36130
+ return matches.length > 0 ? matches[0] : null;
36277
36131
  }
36278
- return null;
36132
+ return matches.reduce((best, chain) => (tieRank(chain) > tieRank(best) ? chain : best));
36133
+ };
36134
+ const tieRank = (chain) => {
36135
+ if (chainEndsWithWildcard(chain)) {
36136
+ return 1;
36137
+ }
36138
+ return chainToSegments(chain) !== null ? 2 : 0;
36279
36139
  };
36280
36140
  /**
36281
36141
  * Finds the best match for the segments in the chains.
@@ -36283,10 +36143,17 @@ const findChainForIDs = (ids, chains) => {
36283
36143
  * Returns the best match or null when no match is found.
36284
36144
  * When a chain is returned the parameters are updated from the segments.
36285
36145
  * That is they contain both the componentProps of the <ion-route> and the parameter segments.
36146
+ *
36147
+ * When wildcard routes match, the one with the most fixed segments wins if it has more fixed segments than every
36148
+ * route that matched the whole path. Routes that only matched by ignoring trailing segments don't count.
36286
36149
  */
36287
36150
  const findChainForSegments = (segments, chains) => {
36288
36151
  let match = null;
36289
36152
  let bestScore = 0;
36153
+ let fullMatch = null;
36154
+ let bestFullScore = 0;
36155
+ let maxFullFixed = -1;
36156
+ let wildcard = null;
36290
36157
  for (const chain of chains) {
36291
36158
  const matchedChain = matchesSegments(segments, chain);
36292
36159
  if (matchedChain !== null) {
@@ -36295,9 +36162,51 @@ const findChainForSegments = (segments, chains) => {
36295
36162
  bestScore = score;
36296
36163
  match = matchedChain;
36297
36164
  }
36165
+ if (chainEndsWithWildcard(matchedChain)) {
36166
+ if (wildcard === null || winsWildcard(matchedChain, wildcard)) {
36167
+ wildcard = matchedChain;
36168
+ }
36169
+ }
36170
+ else if (!isPartialMatch(segments, matchedChain)) {
36171
+ if (score > bestFullScore) {
36172
+ bestFullScore = score;
36173
+ fullMatch = matchedChain;
36174
+ }
36175
+ maxFullFixed = Math.max(maxFullFixed, countFixedSegments(matchedChain));
36176
+ }
36177
+ }
36178
+ }
36179
+ // Without a wildcard to match the rest of the path, routes can still ignore trailing segments.
36180
+ if (wildcard === null) {
36181
+ return match;
36182
+ }
36183
+ // Compare fixed segments rather than priority, since nesting under default routes raises the priority
36184
+ return countFixedSegments(wildcard) > maxFullFixed ? wildcard : fullMatch;
36185
+ };
36186
+ /** Returns whether the chain matched the path segments only by ignoring some trailing segments. */
36187
+ const isPartialMatch = (segments, chain) => {
36188
+ const matched = chainToSegments(chain);
36189
+ return matched !== null && matched.length < segments.filter((s) => s !== '').length;
36190
+ };
36191
+ const chainEndsWithWildcard = (chain) => {
36192
+ return endsWithWildcard(chain[chain.length - 1].segments);
36193
+ };
36194
+ /** Returns whether the wildcard chain beats `best` by fixed segments, then by priority. */
36195
+ const winsWildcard = (chain, best) => {
36196
+ const chainFixed = countFixedSegments(chain);
36197
+ const bestFixed = countFixedSegments(best);
36198
+ return chainFixed > bestFixed || (chainFixed === bestFixed && computePriority(chain) > computePriority(best));
36199
+ };
36200
+ const countFixedSegments = (chain) => {
36201
+ let count = 0;
36202
+ for (const route of chain) {
36203
+ for (const segment of withoutWildcard(route.segments)) {
36204
+ if (segment !== '' && segment[0] !== ':') {
36205
+ count++;
36206
+ }
36298
36207
  }
36299
36208
  }
36300
- return match;
36209
+ return count;
36301
36210
  };
36302
36211
  /**
36303
36212
  * Computes the priority of a chain.
@@ -36309,12 +36218,14 @@ const findChainForSegments = (segments, chains) => {
36309
36218
  * - /path/to/page
36310
36219
  *
36311
36220
  * The second one will be given a higher priority because "page" is a fixed segment (vs ":where", a parameter segment).
36221
+ *
36222
+ * A trailing wildcard is not counted.
36312
36223
  */
36313
36224
  const computePriority = (chain) => {
36314
36225
  let score = 1;
36315
36226
  let level = 1;
36316
36227
  for (const route of chain) {
36317
- for (const segment of route.segments) {
36228
+ for (const segment of withoutWildcard(route.segments)) {
36318
36229
  if (segment[0] === ':') {
36319
36230
  score += Math.pow(1, level);
36320
36231
  }
@@ -36336,6 +36247,12 @@ class RouterSegments {
36336
36247
  }
36337
36248
  return '';
36338
36249
  }
36250
+ /** Consumes and returns the remaining non empty segments. */
36251
+ rest() {
36252
+ const rest = this.segments.filter((s) => s !== '');
36253
+ this.segments = [];
36254
+ return rest;
36255
+ }
36339
36256
  }
36340
36257
 
36341
36258
  const readProp = (el, prop) => {
@@ -36835,14 +36752,6 @@ class RouterOutlet {
36835
36752
  async connectedCallback() {
36836
36753
  const onStart = () => {
36837
36754
  this.gestureOrAnimationInProgress = true;
36838
- /**
36839
- * Without animations there's nothing for the swipe to drive, so
36840
- * wait until the gesture ends to decide whether to go back.
36841
- */
36842
- if (!(this.animated && config.getBoolean('animated', true))) {
36843
- this.unblockSwipeClicks = blockSwipeClicks(this.el);
36844
- return;
36845
- }
36846
36755
  if (this.swipeHandler) {
36847
36756
  this.swipeHandler.onStart();
36848
36757
  }
@@ -36875,21 +36784,7 @@ class RouterOutlet {
36875
36784
  this.ani.progressEnd(shouldComplete ? 1 : 0, newStepValue, dur);
36876
36785
  }
36877
36786
  else {
36878
- const { swipeHandler, unblockSwipeClicks: unblock } = this;
36879
- this.unblockSwipeClicks = undefined;
36880
- // The stack can change during the swipe, so check that going back is still possible.
36881
- if (unblock && shouldComplete && swipeHandler?.canStart()) {
36882
- new Promise((resolve) => resolve(swipeHandler.onStart()))
36883
- .then(() => swipeHandler.onEnd(true))
36884
- .finally(() => {
36885
- this.gestureOrAnimationInProgress = false;
36886
- unblock();
36887
- });
36888
- }
36889
- else {
36890
- this.gestureOrAnimationInProgress = false;
36891
- unblock?.();
36892
- }
36787
+ this.gestureOrAnimationInProgress = false;
36893
36788
  }
36894
36789
  });
36895
36790
  if (this.swipeGesture === undefined) {
@@ -36912,12 +36807,6 @@ class RouterOutlet {
36912
36807
  this.gesture.destroy();
36913
36808
  this.gesture = undefined;
36914
36809
  }
36915
- // Destroying the gesture skips onEnd, so end a deferred swipe here.
36916
- if (this.unblockSwipeClicks) {
36917
- this.unblockSwipeClicks();
36918
- this.unblockSwipeClicks = undefined;
36919
- this.gestureOrAnimationInProgress = false;
36920
- }
36921
36810
  }
36922
36811
  /** @internal */
36923
36812
  async commit(enteringEl, leavingEl, opts) {
@@ -37029,7 +36918,7 @@ class RouterOutlet {
37029
36918
  return true;
37030
36919
  }
37031
36920
  render() {
37032
- return hAsync("slot", { key: '078cdc7a63b98570746409fc08c4af80f8d7da4d' });
36921
+ return hAsync("slot", { key: '249e7d8a063c781db52fa535e42d648c7bf2909a' });
37033
36922
  }
37034
36923
  get el() { return getElement(this); }
37035
36924
  static get watchers() { return {
@@ -43773,7 +43662,7 @@ var NAMESPACE = (
43773
43662
  );
43774
43663
 
43775
43664
  /*
43776
- Stencil Hydrate Runner v4.45.2 | MIT Licensed | https://stenciljs.com
43665
+ Stencil Hydrate Runner v4.45.1 | MIT Licensed | https://stenciljs.com
43777
43666
  */
43778
43667
  var __create = Object.create;
43779
43668
  var __defProp = Object.defineProperty;
@@ -43883,10 +43772,6 @@ var require_brace_expansion = __commonJS({
43883
43772
  var escClose = "\0CLOSE" + Math.random() + "\0";
43884
43773
  var escComma = "\0COMMA" + Math.random() + "\0";
43885
43774
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
43886
- var EXPANSION_MAX = 1e5;
43887
- var EXPANSION_MAX_LENGTH = 4e6;
43888
- var EXPANSION_MAX_DEPTH = 1e3;
43889
- var EXPANSION_MAX_REWRITES = 1e3;
43890
43775
  function numeric(str) {
43891
43776
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
43892
43777
  }
@@ -43896,49 +43781,33 @@ var require_brace_expansion = __commonJS({
43896
43781
  function unescapeBraces(str) {
43897
43782
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
43898
43783
  }
43899
- function pushAll(target, items) {
43900
- for (var i = 0; i < items.length; i++) {
43901
- target.push(items[i]);
43902
- }
43903
- }
43904
43784
  function parseCommaParts(str) {
43785
+ if (!str)
43786
+ return [""];
43905
43787
  var parts = [];
43906
- var carry = "";
43907
- for (; ; ) {
43908
- var m = balanced("{", "}", str);
43909
- if (!m) {
43910
- var tail = str.split(",");
43911
- tail[0] = carry + tail[0];
43912
- pushAll(parts, tail);
43913
- return parts;
43914
- }
43915
- var pre = m.pre;
43916
- var body = m.body;
43917
- var post = m.post;
43918
- var p = pre.split(",");
43919
- p[0] = carry + p[0];
43920
- p[p.length - 1] += "{" + body + "}";
43921
- if (!post.length) {
43922
- pushAll(parts, p);
43923
- return parts;
43924
- }
43925
- carry = p.pop();
43926
- pushAll(parts, p);
43927
- str = post;
43928
- }
43929
- }
43930
- function expandTop(str, options) {
43788
+ var m = balanced("{", "}", str);
43789
+ if (!m)
43790
+ return str.split(",");
43791
+ var pre = m.pre;
43792
+ var body = m.body;
43793
+ var post = m.post;
43794
+ var p = pre.split(",");
43795
+ p[p.length - 1] += "{" + body + "}";
43796
+ var postParts = parseCommaParts(post);
43797
+ if (post.length) {
43798
+ p[p.length - 1] += postParts.shift();
43799
+ p.push.apply(p, postParts);
43800
+ }
43801
+ parts.push.apply(parts, p);
43802
+ return parts;
43803
+ }
43804
+ function expandTop(str) {
43931
43805
  if (!str)
43932
43806
  return [];
43933
- options = options || {};
43934
- var max = options.max == null ? EXPANSION_MAX : options.max;
43935
- var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
43936
- var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
43937
- var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
43938
43807
  if (str.substr(0, 2) === "{}") {
43939
43808
  str = "\\{\\}" + str.substr(2);
43940
43809
  }
43941
- return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
43810
+ return expand2(escapeBraces(str), true).map(unescapeBraces);
43942
43811
  }
43943
43812
  function embrace(str) {
43944
43813
  return "{" + str + "}";
@@ -43952,165 +43821,93 @@ var require_brace_expansion = __commonJS({
43952
43821
  function gte(i, y) {
43953
43822
  return i >= y;
43954
43823
  }
43955
- function combine(acc, pre, values, max, maxLength, dropEmpties) {
43956
- var out = [];
43957
- var length = 0;
43958
- for (var a = 0; a < acc.length; a++) {
43959
- for (var v = 0; v < values.length; v++) {
43960
- if (out.length >= max) return out;
43961
- var expansion = acc[a] + pre + values[v];
43962
- if (dropEmpties && !expansion) continue;
43963
- if (length + expansion.length > maxLength) return out;
43964
- out.push(expansion);
43965
- length += expansion.length;
43966
- }
43967
- }
43968
- return out;
43969
- }
43970
- function expandSequence(body, isAlphaSequence, max, maxLength) {
43971
- var n = body.split(/\.\./);
43972
- var N = [];
43973
- if (n[0] === void 0 || n[1] === void 0) {
43974
- return N;
43975
- }
43976
- var x = numeric(n[0]);
43977
- var y = numeric(n[1]);
43978
- var width = Math.max(n[0].length, n[1].length);
43979
- var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
43980
- var test = lte;
43981
- var reverse = y < x;
43982
- if (reverse) {
43983
- incr *= -1;
43984
- test = gte;
43985
- }
43986
- var pad = n.some(isPadded);
43987
- var length = 0;
43988
- for (var i = x; test(i, y) && N.length < max; i += incr) {
43989
- var c;
43990
- if (isAlphaSequence) {
43991
- c = String.fromCharCode(i);
43992
- if (c === "\\") {
43993
- c = "";
43994
- }
43995
- } else {
43996
- c = String(i);
43997
- if (pad) {
43998
- var need = width - c.length;
43999
- if (need > 0) {
44000
- var z = new Array(need + 1).join("0");
44001
- if (i < 0) {
44002
- c = "-" + z + c.slice(1);
44003
- } else {
44004
- c = z + c;
44005
- }
44006
- }
44007
- }
44008
- }
44009
- if (length + c.length > maxLength) break;
44010
- N.push(c);
44011
- length += c.length;
44012
- }
44013
- return N;
44014
- }
44015
- function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
44016
- if (depth > maxDepth) {
44017
- return [str];
44018
- }
44019
- var acc = [""];
44020
- var rewrites = 0;
44021
- var dropEmpties = false;
44022
- var firstGroup = true;
44023
- for (; ; ) {
44024
- const m = balanced("{", "}", str);
44025
- if (!m) {
44026
- return combine(acc, str, [""], max, maxLength, dropEmpties);
44027
- }
44028
- const pre = m.pre;
44029
- if (/\$$/.test(pre)) {
44030
- acc = combine(
44031
- acc,
44032
- pre + "{" + m.body + "}",
44033
- [""],
44034
- max,
44035
- maxLength,
44036
- dropEmpties && !m.post.length
44037
- );
44038
- firstGroup = false;
44039
- if (!m.post.length) break;
44040
- str = m.post;
44041
- continue;
43824
+ function expand2(str, isTop) {
43825
+ var expansions = [];
43826
+ var m = balanced("{", "}", str);
43827
+ if (!m) return [str];
43828
+ var pre = m.pre;
43829
+ var post = m.post.length ? expand2(m.post, false) : [""];
43830
+ if (/\$$/.test(m.pre)) {
43831
+ for (var k = 0; k < post.length; k++) {
43832
+ var expansion = pre + "{" + m.body + "}" + post[k];
43833
+ expansions.push(expansion);
44042
43834
  }
43835
+ } else {
44043
43836
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
44044
43837
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
44045
43838
  var isSequence = isNumericSequence || isAlphaSequence;
44046
43839
  var isOptions = m.body.indexOf(",") >= 0;
44047
43840
  if (!isSequence && !isOptions) {
44048
- if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
44049
- rewrites++;
43841
+ if (m.post.match(/,(?!,).*\}/)) {
44050
43842
  str = m.pre + "{" + m.body + escClose + m.post;
44051
- isTop = true;
44052
- continue;
43843
+ return expand2(str);
44053
43844
  }
44054
- return combine(
44055
- acc,
44056
- pre + "{" + m.body + "}" + m.post,
44057
- [""],
44058
- max,
44059
- maxLength,
44060
- dropEmpties
44061
- );
44062
- }
44063
- if (firstGroup) {
44064
- dropEmpties = isTop && !isSequence;
44065
- firstGroup = false;
43845
+ return [str];
44066
43846
  }
44067
- var values;
43847
+ var n;
44068
43848
  if (isSequence) {
44069
- values = expandSequence(m.body, isAlphaSequence, max, maxLength);
43849
+ n = m.body.split(/\.\./);
44070
43850
  } else {
44071
- var n = parseCommaParts(m.body);
44072
- if (n.length === 1 && n[0] !== void 0) {
44073
- n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
43851
+ n = parseCommaParts(m.body);
43852
+ if (n.length === 1) {
43853
+ n = expand2(n[0], false).map(embrace);
44074
43854
  if (n.length === 1) {
44075
- acc = combine(
44076
- acc,
44077
- pre + n[0],
44078
- [""],
44079
- max,
44080
- maxLength,
44081
- dropEmpties && !m.post.length
44082
- );
44083
- if (!m.post.length) break;
44084
- str = m.post;
44085
- continue;
43855
+ return post.map(function(p) {
43856
+ return m.pre + n[0] + p;
43857
+ });
44086
43858
  }
44087
43859
  }
44088
- var dropsEmpties = dropEmpties && !m.post.length && !pre;
44089
- for (var d = 0; dropsEmpties && d < acc.length; d++) {
44090
- if (acc[d]) {
44091
- dropsEmpties = false;
44092
- }
43860
+ }
43861
+ var N;
43862
+ if (isSequence) {
43863
+ var x = numeric(n[0]);
43864
+ var y = numeric(n[1]);
43865
+ var width = Math.max(n[0].length, n[1].length);
43866
+ var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
43867
+ var test = lte;
43868
+ var reverse = y < x;
43869
+ if (reverse) {
43870
+ incr *= -1;
43871
+ test = gte;
44093
43872
  }
44094
- values = [];
44095
- var valuesLength = 0;
44096
- outer: for (var j = 0; j < n.length; j++) {
44097
- var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
44098
- for (var k = 0; k < expanded.length; k++) {
44099
- var v = expanded[k];
44100
- if (dropsEmpties && !v) continue;
44101
- if (values.length >= max || valuesLength + v.length > maxLength) {
44102
- break outer;
43873
+ var pad = n.some(isPadded);
43874
+ N = [];
43875
+ for (var i = x; test(i, y); i += incr) {
43876
+ var c;
43877
+ if (isAlphaSequence) {
43878
+ c = String.fromCharCode(i);
43879
+ if (c === "\\")
43880
+ c = "";
43881
+ } else {
43882
+ c = String(i);
43883
+ if (pad) {
43884
+ var need = width - c.length;
43885
+ if (need > 0) {
43886
+ var z = new Array(need + 1).join("0");
43887
+ if (i < 0)
43888
+ c = "-" + z + c.slice(1);
43889
+ else
43890
+ c = z + c;
43891
+ }
44103
43892
  }
44104
- values.push(v);
44105
- valuesLength += v.length;
44106
43893
  }
43894
+ N.push(c);
43895
+ }
43896
+ } else {
43897
+ N = [];
43898
+ for (var j = 0; j < n.length; j++) {
43899
+ N.push.apply(N, expand2(n[j], false));
43900
+ }
43901
+ }
43902
+ for (var j = 0; j < N.length; j++) {
43903
+ for (var k = 0; k < post.length; k++) {
43904
+ var expansion = pre + N[j] + post[k];
43905
+ if (!isTop || isSequence || expansion)
43906
+ expansions.push(expansion);
44107
43907
  }
44108
43908
  }
44109
- acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
44110
- if (!m.post.length) break;
44111
- str = m.post;
44112
43909
  }
44113
- return acc;
43910
+ return expansions;
44114
43911
  }
44115
43912
  }
44116
43913
  });
@@ -54838,15 +54635,13 @@ var MockTokenList = class {
54838
54635
  token = String(token);
54839
54636
  return getItems(this.elm, this.attr).includes(token);
54840
54637
  }
54841
- toggle(token, force) {
54638
+ toggle(token) {
54842
54639
  token = String(token);
54843
- const shouldAdd = force === void 0 ? !this.contains(token) : !!force;
54844
- if (shouldAdd) {
54845
- this.add(token);
54846
- } else {
54640
+ if (this.contains(token) === true) {
54847
54641
  this.remove(token);
54642
+ } else {
54643
+ this.add(token);
54848
54644
  }
54849
- return shouldAdd;
54850
54645
  }
54851
54646
  get length() {
54852
54647
  return getItems(this.elm, this.attr).length;