@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
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
- );
648
+ return [str];
754
649
  }
755
- if (firstGroup) {
756
- dropEmpties = isTop && !isSequence;
757
- firstGroup = false;
758
- }
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 {
@@ -35650,6 +35495,14 @@ class Route {
35650
35495
  *
35651
35496
  * Accepts paths similar to expressjs so that you can define parameters
35652
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.
35653
35506
  */
35654
35507
  this.url = '';
35655
35508
  }
@@ -35738,6 +35591,8 @@ class RouteRedirect {
35738
35591
  const ROUTER_INTENT_NONE = 'root';
35739
35592
  const ROUTER_INTENT_FORWARD = 'forward';
35740
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';
35741
35596
 
35742
35597
  /** Join the non empty segments with "/". */
35743
35598
  const generatePath = (segments) => {
@@ -35771,12 +35626,13 @@ const writeSegments = (history, root, useHash, segments, direction, state, query
35771
35626
  *
35772
35627
  * Notes:
35773
35628
  * - parameter segments of the form :param are replaced with their value,
35774
- * - 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.
35775
35631
  */
35776
35632
  const chainToSegments = (chain) => {
35777
35633
  const segments = [];
35778
35634
  for (const route of chain) {
35779
- for (const segment of route.segments) {
35635
+ for (const segment of withoutWildcard(route.segments)) {
35780
35636
  if (segment[0] === ':') {
35781
35637
  const param = route.params && route.params[segment.slice(1)];
35782
35638
  if (!param) {
@@ -35788,9 +35644,22 @@ const chainToSegments = (chain) => {
35788
35644
  segments.push(segment);
35789
35645
  }
35790
35646
  }
35647
+ segments.push(...wildcardSegments(route));
35791
35648
  }
35792
35649
  return segments;
35793
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
+ };
35794
35663
  /**
35795
35664
  * Removes the prefix segments from the path segments.
35796
35665
  *
@@ -36123,6 +35992,10 @@ const matchesIDs = (ids, chain) => {
36123
35992
  if (routeId.id.toLowerCase() !== routeChain.id) {
36124
35993
  break;
36125
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
+ }
36126
35999
  if (routeId.params) {
36127
36000
  const routeIdParams = Object.keys(routeId.params);
36128
36001
  // Only compare routes with the chain that have the same number of parameters.
@@ -36178,21 +36051,28 @@ const matchesSegments = (segments, chain) => {
36178
36051
  matchesDefault = true;
36179
36052
  }
36180
36053
  else {
36181
- for (const segment of chainSegments) {
36054
+ const params = {};
36055
+ for (const segment of withoutWildcard(chainSegments)) {
36182
36056
  const data = inputSegments.next();
36183
36057
  // data param
36184
36058
  if (segment[0] === ':') {
36185
36059
  if (data === '') {
36186
36060
  return null;
36187
36061
  }
36188
- allparams = allparams || [];
36189
- const params = allparams[i] || (allparams[i] = {});
36190
36062
  params[segment.slice(1)] = data;
36191
36063
  }
36192
36064
  else if (data !== segment) {
36193
36065
  return null;
36194
36066
  }
36195
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
+ }
36196
36076
  matchesDefault = false;
36197
36077
  }
36198
36078
  }
@@ -36224,25 +36104,38 @@ const mergeParams = (a, b) => {
36224
36104
  * Returns the best match or null when no match is found.
36225
36105
  * When a chain is returned the parameters are updated from the RouteIDs.
36226
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.
36227
36110
  */
36228
36111
  const findChainForIDs = (ids, chains) => {
36229
- let match = null;
36230
36112
  let maxMatches = 0;
36113
+ let tied = [];
36231
36114
  for (const chain of chains) {
36232
36115
  const score = matchesIDs(ids, chain);
36233
36116
  if (score > maxMatches) {
36234
- match = chain;
36235
36117
  maxMatches = score;
36118
+ tied = [chain];
36119
+ }
36120
+ else if (score > 0 && score === maxMatches) {
36121
+ tied.push(chain);
36236
36122
  }
36237
36123
  }
36238
- if (match) {
36239
- return match.map((route, i) => ({
36240
- id: route.id,
36241
- segments: route.segments,
36242
- params: mergeParams(route.params, ids[i]?.params),
36243
- }));
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;
36244
36131
  }
36245
- 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;
36246
36139
  };
36247
36140
  /**
36248
36141
  * Finds the best match for the segments in the chains.
@@ -36250,10 +36143,17 @@ const findChainForIDs = (ids, chains) => {
36250
36143
  * Returns the best match or null when no match is found.
36251
36144
  * When a chain is returned the parameters are updated from the segments.
36252
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.
36253
36149
  */
36254
36150
  const findChainForSegments = (segments, chains) => {
36255
36151
  let match = null;
36256
36152
  let bestScore = 0;
36153
+ let fullMatch = null;
36154
+ let bestFullScore = 0;
36155
+ let maxFullFixed = -1;
36156
+ let wildcard = null;
36257
36157
  for (const chain of chains) {
36258
36158
  const matchedChain = matchesSegments(segments, chain);
36259
36159
  if (matchedChain !== null) {
@@ -36262,9 +36162,51 @@ const findChainForSegments = (segments, chains) => {
36262
36162
  bestScore = score;
36263
36163
  match = matchedChain;
36264
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
+ }
36265
36207
  }
36266
36208
  }
36267
- return match;
36209
+ return count;
36268
36210
  };
36269
36211
  /**
36270
36212
  * Computes the priority of a chain.
@@ -36276,12 +36218,14 @@ const findChainForSegments = (segments, chains) => {
36276
36218
  * - /path/to/page
36277
36219
  *
36278
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.
36279
36223
  */
36280
36224
  const computePriority = (chain) => {
36281
36225
  let score = 1;
36282
36226
  let level = 1;
36283
36227
  for (const route of chain) {
36284
- for (const segment of route.segments) {
36228
+ for (const segment of withoutWildcard(route.segments)) {
36285
36229
  if (segment[0] === ':') {
36286
36230
  score += Math.pow(1, level);
36287
36231
  }
@@ -36303,6 +36247,12 @@ class RouterSegments {
36303
36247
  }
36304
36248
  return '';
36305
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
+ }
36306
36256
  }
36307
36257
 
36308
36258
  const readProp = (el, prop) => {
@@ -43712,7 +43662,7 @@ var NAMESPACE = (
43712
43662
  );
43713
43663
 
43714
43664
  /*
43715
- Stencil Hydrate Runner v4.45.2 | MIT Licensed | https://stenciljs.com
43665
+ Stencil Hydrate Runner v4.45.1 | MIT Licensed | https://stenciljs.com
43716
43666
  */
43717
43667
  var __create = Object.create;
43718
43668
  var __defProp = Object.defineProperty;
@@ -43822,10 +43772,6 @@ var require_brace_expansion = __commonJS({
43822
43772
  var escClose = "\0CLOSE" + Math.random() + "\0";
43823
43773
  var escComma = "\0COMMA" + Math.random() + "\0";
43824
43774
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
43825
- var EXPANSION_MAX = 1e5;
43826
- var EXPANSION_MAX_LENGTH = 4e6;
43827
- var EXPANSION_MAX_DEPTH = 1e3;
43828
- var EXPANSION_MAX_REWRITES = 1e3;
43829
43775
  function numeric(str) {
43830
43776
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
43831
43777
  }
@@ -43835,49 +43781,33 @@ var require_brace_expansion = __commonJS({
43835
43781
  function unescapeBraces(str) {
43836
43782
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
43837
43783
  }
43838
- function pushAll(target, items) {
43839
- for (var i = 0; i < items.length; i++) {
43840
- target.push(items[i]);
43841
- }
43842
- }
43843
43784
  function parseCommaParts(str) {
43785
+ if (!str)
43786
+ return [""];
43844
43787
  var parts = [];
43845
- var carry = "";
43846
- for (; ; ) {
43847
- var m = balanced("{", "}", str);
43848
- if (!m) {
43849
- var tail = str.split(",");
43850
- tail[0] = carry + tail[0];
43851
- pushAll(parts, tail);
43852
- return parts;
43853
- }
43854
- var pre = m.pre;
43855
- var body = m.body;
43856
- var post = m.post;
43857
- var p = pre.split(",");
43858
- p[0] = carry + p[0];
43859
- p[p.length - 1] += "{" + body + "}";
43860
- if (!post.length) {
43861
- pushAll(parts, p);
43862
- return parts;
43863
- }
43864
- carry = p.pop();
43865
- pushAll(parts, p);
43866
- str = post;
43867
- }
43868
- }
43869
- 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) {
43870
43805
  if (!str)
43871
43806
  return [];
43872
- options = options || {};
43873
- var max = options.max == null ? EXPANSION_MAX : options.max;
43874
- var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
43875
- var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
43876
- var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
43877
43807
  if (str.substr(0, 2) === "{}") {
43878
43808
  str = "\\{\\}" + str.substr(2);
43879
43809
  }
43880
- return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
43810
+ return expand2(escapeBraces(str), true).map(unescapeBraces);
43881
43811
  }
43882
43812
  function embrace(str) {
43883
43813
  return "{" + str + "}";
@@ -43891,165 +43821,93 @@ var require_brace_expansion = __commonJS({
43891
43821
  function gte(i, y) {
43892
43822
  return i >= y;
43893
43823
  }
43894
- function combine(acc, pre, values, max, maxLength, dropEmpties) {
43895
- var out = [];
43896
- var length = 0;
43897
- for (var a = 0; a < acc.length; a++) {
43898
- for (var v = 0; v < values.length; v++) {
43899
- if (out.length >= max) return out;
43900
- var expansion = acc[a] + pre + values[v];
43901
- if (dropEmpties && !expansion) continue;
43902
- if (length + expansion.length > maxLength) return out;
43903
- out.push(expansion);
43904
- length += expansion.length;
43905
- }
43906
- }
43907
- return out;
43908
- }
43909
- function expandSequence(body, isAlphaSequence, max, maxLength) {
43910
- var n = body.split(/\.\./);
43911
- var N = [];
43912
- if (n[0] === void 0 || n[1] === void 0) {
43913
- return N;
43914
- }
43915
- var x = numeric(n[0]);
43916
- var y = numeric(n[1]);
43917
- var width = Math.max(n[0].length, n[1].length);
43918
- var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
43919
- var test = lte;
43920
- var reverse = y < x;
43921
- if (reverse) {
43922
- incr *= -1;
43923
- test = gte;
43924
- }
43925
- var pad = n.some(isPadded);
43926
- var length = 0;
43927
- for (var i = x; test(i, y) && N.length < max; i += incr) {
43928
- var c;
43929
- if (isAlphaSequence) {
43930
- c = String.fromCharCode(i);
43931
- if (c === "\\") {
43932
- c = "";
43933
- }
43934
- } else {
43935
- c = String(i);
43936
- if (pad) {
43937
- var need = width - c.length;
43938
- if (need > 0) {
43939
- var z = new Array(need + 1).join("0");
43940
- if (i < 0) {
43941
- c = "-" + z + c.slice(1);
43942
- } else {
43943
- c = z + c;
43944
- }
43945
- }
43946
- }
43947
- }
43948
- if (length + c.length > maxLength) break;
43949
- N.push(c);
43950
- length += c.length;
43951
- }
43952
- return N;
43953
- }
43954
- function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
43955
- if (depth > maxDepth) {
43956
- return [str];
43957
- }
43958
- var acc = [""];
43959
- var rewrites = 0;
43960
- var dropEmpties = false;
43961
- var firstGroup = true;
43962
- for (; ; ) {
43963
- const m = balanced("{", "}", str);
43964
- if (!m) {
43965
- return combine(acc, str, [""], max, maxLength, dropEmpties);
43966
- }
43967
- const pre = m.pre;
43968
- if (/\$$/.test(pre)) {
43969
- acc = combine(
43970
- acc,
43971
- pre + "{" + m.body + "}",
43972
- [""],
43973
- max,
43974
- maxLength,
43975
- dropEmpties && !m.post.length
43976
- );
43977
- firstGroup = false;
43978
- if (!m.post.length) break;
43979
- str = m.post;
43980
- 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);
43981
43834
  }
43835
+ } else {
43982
43836
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
43983
43837
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
43984
43838
  var isSequence = isNumericSequence || isAlphaSequence;
43985
43839
  var isOptions = m.body.indexOf(",") >= 0;
43986
43840
  if (!isSequence && !isOptions) {
43987
- if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
43988
- rewrites++;
43841
+ if (m.post.match(/,(?!,).*\}/)) {
43989
43842
  str = m.pre + "{" + m.body + escClose + m.post;
43990
- isTop = true;
43991
- continue;
43843
+ return expand2(str);
43992
43844
  }
43993
- return combine(
43994
- acc,
43995
- pre + "{" + m.body + "}" + m.post,
43996
- [""],
43997
- max,
43998
- maxLength,
43999
- dropEmpties
44000
- );
43845
+ return [str];
44001
43846
  }
44002
- if (firstGroup) {
44003
- dropEmpties = isTop && !isSequence;
44004
- firstGroup = false;
44005
- }
44006
- var values;
43847
+ var n;
44007
43848
  if (isSequence) {
44008
- values = expandSequence(m.body, isAlphaSequence, max, maxLength);
43849
+ n = m.body.split(/\.\./);
44009
43850
  } else {
44010
- var n = parseCommaParts(m.body);
44011
- if (n.length === 1 && n[0] !== void 0) {
44012
- 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);
44013
43854
  if (n.length === 1) {
44014
- acc = combine(
44015
- acc,
44016
- pre + n[0],
44017
- [""],
44018
- max,
44019
- maxLength,
44020
- dropEmpties && !m.post.length
44021
- );
44022
- if (!m.post.length) break;
44023
- str = m.post;
44024
- continue;
43855
+ return post.map(function(p) {
43856
+ return m.pre + n[0] + p;
43857
+ });
44025
43858
  }
44026
43859
  }
44027
- var dropsEmpties = dropEmpties && !m.post.length && !pre;
44028
- for (var d = 0; dropsEmpties && d < acc.length; d++) {
44029
- if (acc[d]) {
44030
- dropsEmpties = false;
44031
- }
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;
44032
43872
  }
44033
- values = [];
44034
- var valuesLength = 0;
44035
- outer: for (var j = 0; j < n.length; j++) {
44036
- var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
44037
- for (var k = 0; k < expanded.length; k++) {
44038
- var v = expanded[k];
44039
- if (dropsEmpties && !v) continue;
44040
- if (values.length >= max || valuesLength + v.length > maxLength) {
44041
- 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
+ }
44042
43892
  }
44043
- values.push(v);
44044
- valuesLength += v.length;
44045
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);
44046
43907
  }
44047
43908
  }
44048
- acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
44049
- if (!m.post.length) break;
44050
- str = m.post;
44051
43909
  }
44052
- return acc;
43910
+ return expansions;
44053
43911
  }
44054
43912
  }
44055
43913
  });
@@ -54777,15 +54635,13 @@ var MockTokenList = class {
54777
54635
  token = String(token);
54778
54636
  return getItems(this.elm, this.attr).includes(token);
54779
54637
  }
54780
- toggle(token, force) {
54638
+ toggle(token) {
54781
54639
  token = String(token);
54782
- const shouldAdd = force === void 0 ? !this.contains(token) : !!force;
54783
- if (shouldAdd) {
54784
- this.add(token);
54785
- } else {
54640
+ if (this.contains(token) === true) {
54786
54641
  this.remove(token);
54642
+ } else {
54643
+ this.add(token);
54787
54644
  }
54788
- return shouldAdd;
54789
54645
  }
54790
54646
  get length() {
54791
54647
  return getItems(this.elm, this.attr).length;