@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.js CHANGED
@@ -468,7 +468,7 @@ const appGlobalScript = initialize || (() => {});
468
468
  const globalScripts = appGlobalScript;
469
469
 
470
470
  /*
471
- Stencil Hydrate Platform v4.45.2 | MIT Licensed | https://stenciljs.com
471
+ Stencil Hydrate Platform v4.45.1 | MIT Licensed | https://stenciljs.com
472
472
  */
473
473
  var __create = Object.create;
474
474
  var __defProp = Object.defineProperty;
@@ -577,10 +577,6 @@ var require_brace_expansion = __commonJS({
577
577
  var escClose = "\0CLOSE" + Math.random() + "\0";
578
578
  var escComma = "\0COMMA" + Math.random() + "\0";
579
579
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
580
- var EXPANSION_MAX = 1e5;
581
- var EXPANSION_MAX_LENGTH = 4e6;
582
- var EXPANSION_MAX_DEPTH = 1e3;
583
- var EXPANSION_MAX_REWRITES = 1e3;
584
580
  function numeric(str) {
585
581
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
586
582
  }
@@ -590,49 +586,33 @@ var require_brace_expansion = __commonJS({
590
586
  function unescapeBraces(str) {
591
587
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
592
588
  }
593
- function pushAll(target, items) {
594
- for (var i2 = 0; i2 < items.length; i2++) {
595
- target.push(items[i2]);
596
- }
597
- }
598
589
  function parseCommaParts(str) {
590
+ if (!str)
591
+ return [""];
599
592
  var parts = [];
600
- var carry = "";
601
- for (; ; ) {
602
- var m = balanced("{", "}", str);
603
- if (!m) {
604
- var tail = str.split(",");
605
- tail[0] = carry + tail[0];
606
- pushAll(parts, tail);
607
- return parts;
608
- }
609
- var pre = m.pre;
610
- var body = m.body;
611
- var post = m.post;
612
- var p = pre.split(",");
613
- p[0] = carry + p[0];
614
- p[p.length - 1] += "{" + body + "}";
615
- if (!post.length) {
616
- pushAll(parts, p);
617
- return parts;
618
- }
619
- carry = p.pop();
620
- pushAll(parts, p);
621
- str = post;
622
- }
623
- }
624
- function expandTop(str, options) {
593
+ var m = balanced("{", "}", str);
594
+ if (!m)
595
+ return str.split(",");
596
+ var pre = m.pre;
597
+ var body = m.body;
598
+ var post = m.post;
599
+ var p = pre.split(",");
600
+ p[p.length - 1] += "{" + body + "}";
601
+ var postParts = parseCommaParts(post);
602
+ if (post.length) {
603
+ p[p.length - 1] += postParts.shift();
604
+ p.push.apply(p, postParts);
605
+ }
606
+ parts.push.apply(parts, p);
607
+ return parts;
608
+ }
609
+ function expandTop(str) {
625
610
  if (!str)
626
611
  return [];
627
- options = options || {};
628
- var max = options.max == null ? EXPANSION_MAX : options.max;
629
- var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
630
- var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
631
- var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
632
612
  if (str.substr(0, 2) === "{}") {
633
613
  str = "\\{\\}" + str.substr(2);
634
614
  }
635
- return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
615
+ return expand2(escapeBraces(str), true).map(unescapeBraces);
636
616
  }
637
617
  function embrace(str) {
638
618
  return "{" + str + "}";
@@ -646,165 +626,93 @@ var require_brace_expansion = __commonJS({
646
626
  function gte(i2, y) {
647
627
  return i2 >= y;
648
628
  }
649
- function combine(acc, pre, values, max, maxLength, dropEmpties) {
650
- var out = [];
651
- var length = 0;
652
- for (var a = 0; a < acc.length; a++) {
653
- for (var v = 0; v < values.length; v++) {
654
- if (out.length >= max) return out;
655
- var expansion = acc[a] + pre + values[v];
656
- if (dropEmpties && !expansion) continue;
657
- if (length + expansion.length > maxLength) return out;
658
- out.push(expansion);
659
- length += expansion.length;
660
- }
661
- }
662
- return out;
663
- }
664
- function expandSequence(body, isAlphaSequence, max, maxLength) {
665
- var n = body.split(/\.\./);
666
- var N = [];
667
- if (n[0] === void 0 || n[1] === void 0) {
668
- return N;
669
- }
670
- var x = numeric(n[0]);
671
- var y = numeric(n[1]);
672
- var width = Math.max(n[0].length, n[1].length);
673
- var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
674
- var test = lte;
675
- var reverse = y < x;
676
- if (reverse) {
677
- incr *= -1;
678
- test = gte;
679
- }
680
- var pad = n.some(isPadded);
681
- var length = 0;
682
- for (var i2 = x; test(i2, y) && N.length < max; i2 += incr) {
683
- var c;
684
- if (isAlphaSequence) {
685
- c = String.fromCharCode(i2);
686
- if (c === "\\") {
687
- c = "";
688
- }
689
- } else {
690
- c = String(i2);
691
- if (pad) {
692
- var need = width - c.length;
693
- if (need > 0) {
694
- var z = new Array(need + 1).join("0");
695
- if (i2 < 0) {
696
- c = "-" + z + c.slice(1);
697
- } else {
698
- c = z + c;
699
- }
700
- }
701
- }
702
- }
703
- if (length + c.length > maxLength) break;
704
- N.push(c);
705
- length += c.length;
706
- }
707
- return N;
708
- }
709
- function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
710
- if (depth > maxDepth) {
711
- return [str];
712
- }
713
- var acc = [""];
714
- var rewrites = 0;
715
- var dropEmpties = false;
716
- var firstGroup = true;
717
- for (; ; ) {
718
- const m = balanced("{", "}", str);
719
- if (!m) {
720
- return combine(acc, str, [""], max, maxLength, dropEmpties);
721
- }
722
- const pre = m.pre;
723
- if (/\$$/.test(pre)) {
724
- acc = combine(
725
- acc,
726
- pre + "{" + m.body + "}",
727
- [""],
728
- max,
729
- maxLength,
730
- dropEmpties && !m.post.length
731
- );
732
- firstGroup = false;
733
- if (!m.post.length) break;
734
- str = m.post;
735
- continue;
629
+ function expand2(str, isTop) {
630
+ var expansions = [];
631
+ var m = balanced("{", "}", str);
632
+ if (!m) return [str];
633
+ var pre = m.pre;
634
+ var post = m.post.length ? expand2(m.post, false) : [""];
635
+ if (/\$$/.test(m.pre)) {
636
+ for (var k = 0; k < post.length; k++) {
637
+ var expansion = pre + "{" + m.body + "}" + post[k];
638
+ expansions.push(expansion);
736
639
  }
640
+ } else {
737
641
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
738
642
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
739
643
  var isSequence = isNumericSequence || isAlphaSequence;
740
644
  var isOptions = m.body.indexOf(",") >= 0;
741
645
  if (!isSequence && !isOptions) {
742
- if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
743
- rewrites++;
646
+ if (m.post.match(/,(?!,).*\}/)) {
744
647
  str = m.pre + "{" + m.body + escClose + m.post;
745
- isTop = true;
746
- continue;
648
+ return expand2(str);
747
649
  }
748
- return combine(
749
- acc,
750
- pre + "{" + m.body + "}" + m.post,
751
- [""],
752
- max,
753
- maxLength,
754
- dropEmpties
755
- );
650
+ return [str];
756
651
  }
757
- if (firstGroup) {
758
- dropEmpties = isTop && !isSequence;
759
- firstGroup = false;
760
- }
761
- var values;
652
+ var n;
762
653
  if (isSequence) {
763
- values = expandSequence(m.body, isAlphaSequence, max, maxLength);
654
+ n = m.body.split(/\.\./);
764
655
  } else {
765
- var n = parseCommaParts(m.body);
766
- if (n.length === 1 && n[0] !== void 0) {
767
- n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
656
+ n = parseCommaParts(m.body);
657
+ if (n.length === 1) {
658
+ n = expand2(n[0], false).map(embrace);
768
659
  if (n.length === 1) {
769
- acc = combine(
770
- acc,
771
- pre + n[0],
772
- [""],
773
- max,
774
- maxLength,
775
- dropEmpties && !m.post.length
776
- );
777
- if (!m.post.length) break;
778
- str = m.post;
779
- continue;
660
+ return post.map(function(p) {
661
+ return m.pre + n[0] + p;
662
+ });
780
663
  }
781
664
  }
782
- var dropsEmpties = dropEmpties && !m.post.length && !pre;
783
- for (var d = 0; dropsEmpties && d < acc.length; d++) {
784
- if (acc[d]) {
785
- dropsEmpties = false;
786
- }
665
+ }
666
+ var N;
667
+ if (isSequence) {
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 ? Math.abs(numeric(n[2])) : 1;
672
+ var test = lte;
673
+ var reverse = y < x;
674
+ if (reverse) {
675
+ incr *= -1;
676
+ test = gte;
787
677
  }
788
- values = [];
789
- var valuesLength = 0;
790
- outer: for (var j = 0; j < n.length; j++) {
791
- var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
792
- for (var k = 0; k < expanded.length; k++) {
793
- var v = expanded[k];
794
- if (dropsEmpties && !v) continue;
795
- if (values.length >= max || valuesLength + v.length > maxLength) {
796
- break outer;
678
+ var pad = n.some(isPadded);
679
+ N = [];
680
+ for (var i2 = x; test(i2, y); i2 += incr) {
681
+ var c;
682
+ if (isAlphaSequence) {
683
+ c = String.fromCharCode(i2);
684
+ if (c === "\\")
685
+ c = "";
686
+ } else {
687
+ c = String(i2);
688
+ if (pad) {
689
+ var need = width - c.length;
690
+ if (need > 0) {
691
+ var z = new Array(need + 1).join("0");
692
+ if (i2 < 0)
693
+ c = "-" + z + c.slice(1);
694
+ else
695
+ c = z + c;
696
+ }
797
697
  }
798
- values.push(v);
799
- valuesLength += v.length;
800
698
  }
699
+ N.push(c);
700
+ }
701
+ } else {
702
+ N = [];
703
+ for (var j = 0; j < n.length; j++) {
704
+ N.push.apply(N, expand2(n[j], false));
705
+ }
706
+ }
707
+ for (var j = 0; j < N.length; j++) {
708
+ for (var k = 0; k < post.length; k++) {
709
+ var expansion = pre + N[j] + post[k];
710
+ if (!isTop || isSequence || expansion)
711
+ expansions.push(expansion);
801
712
  }
802
713
  }
803
- acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
804
- if (!m.post.length) break;
805
- str = m.post;
806
714
  }
807
- return acc;
715
+ return expansions;
808
716
  }
809
717
  }
810
718
  });
@@ -2024,7 +1932,7 @@ var scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) =>
2024
1932
  }
2025
1933
  }).join(", ");
2026
1934
  };
2027
- var isScopableAtRule = (selector) => selector.startsWith("@media") || selector.startsWith("@supports") || selector.startsWith("@page") || selector.startsWith("@document") || selector.startsWith("@layer") || selector.startsWith("@container");
1935
+ var isScopableAtRule = (selector) => selector.startsWith("@media") || selector.startsWith("@supports") || selector.startsWith("@page") || selector.startsWith("@document") || selector.startsWith("@layer");
2028
1936
  var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {
2029
1937
  return processRules(cssText, (rule) => {
2030
1938
  let selector = rule.selector;
@@ -2348,12 +2256,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2348
2256
  newClasses = [...new Set(newClasses)].filter((c) => c);
2349
2257
  classList.add(...newClasses);
2350
2258
  } else {
2351
- let removedClasses = oldClasses.filter((c) => c && !newClasses.includes(c));
2352
- if (initialRender && !(flags & 4 /* isHost */)) {
2353
- const ownClasses = getOwnHostClasses(elm);
2354
- removedClasses = removedClasses.filter((c) => !ownClasses.includes(c));
2355
- }
2356
- classList.remove(...removedClasses);
2259
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
2357
2260
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
2358
2261
  }
2359
2262
  } else if (memberName === "style") {
@@ -2474,18 +2377,6 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
2474
2377
  var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
2475
2378
  var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
2476
2379
  var parseClassListRegex = /\s/;
2477
- var getOwnHostClasses = (elm) => {
2478
- var _a2, _b, _c;
2479
- const hostRef = getHostRef(elm);
2480
- if (!hostRef || !(hostRef.$flags$ & 2 /* hasRendered */)) {
2481
- return [];
2482
- }
2483
- const ownClasses = parseClassList((_b = (_a2 = hostRef.$vnode$) == null ? void 0 : _a2.$attrs$) == null ? void 0 : _b.class);
2484
- {
2485
- ownClasses.push((_c = BUILD.hydratedSelectorName) != null ? _c : "hydrated");
2486
- }
2487
- return ownClasses;
2488
- };
2489
2380
  var parseClassList = (value) => {
2490
2381
  if (typeof value === "object" && value && "baseVal" in value) {
2491
2382
  value = value.baseVal;
@@ -3389,19 +3280,6 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3389
3280
  }
3390
3281
  }
3391
3282
  };
3392
- var replayPendingSetterValues = (hostRef, cmpMeta) => {
3393
- var _a2;
3394
- const instance = hostRef.$lazyInstance$;
3395
- if (!instance) return;
3396
- for (const [memberName, [memberFlags]] of Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {})) {
3397
- if (memberFlags & 4096 /* Setter */ && hostRef.$instanceValues$.has(memberName)) {
3398
- const pendingValue = hostRef.$instanceValues$.get(memberName);
3399
- if (instance[memberName] !== pendingValue) {
3400
- instance[memberName] = pendingValue;
3401
- }
3402
- }
3403
- }
3404
- };
3405
3283
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3406
3284
  var _a2;
3407
3285
  const prototype = Cstr.prototype;
@@ -3431,8 +3309,9 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3431
3309
  return getValue(this, memberName);
3432
3310
  }
3433
3311
  const ref = getHostRef(this);
3434
- if (!ref) return prototype[memberName];
3435
- return ref.$lazyInstance$ ? ref.$lazyInstance$[memberName] : getValue(this, memberName);
3312
+ const instance = ref ? ref.$lazyInstance$ : prototype;
3313
+ if (!instance) return;
3314
+ return instance[memberName];
3436
3315
  }
3437
3316
  },
3438
3317
  configurable: true,
@@ -3519,7 +3398,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3519
3398
  }
3520
3399
  {
3521
3400
  hostRef.$flags$ &= -9 /* isConstructingInstance */;
3522
- replayPendingSetterValues(hostRef, cmpMeta);
3523
3401
  }
3524
3402
  {
3525
3403
  hostRef.$flags$ |= 128 /* isWatchReady */;
@@ -8205,11 +8083,6 @@ const CoreDelegate = () => {
8205
8083
 
8206
8084
  let lastOverlayIndex = 0;
8207
8085
  let lastId = 0;
8208
- /**
8209
- * Every overlay except toast, which doesn't trap
8210
- * focus or close on back.
8211
- */
8212
- const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
8213
8086
  const activeAnimations = new WeakMap();
8214
8087
  /**
8215
8088
  * Determines if the overlay's backdrop is always blocking (no background interaction).
@@ -8334,7 +8207,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8334
8207
  * Should NOT include: Toast
8335
8208
  */
8336
8209
  const trapKeyboardFocus = (ev, doc) => {
8337
- const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
8210
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8338
8211
  const target = ev.target;
8339
8212
  /**
8340
8213
  * If no active overlay, ignore this event.
@@ -8640,8 +8513,7 @@ const setRootAriaHidden = (hidden = false) => {
8640
8513
  * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8641
8514
  * an overlay is removed from the DOM without going through
8642
8515
  * the `dismiss()` flow (e.g., when a framework unmounts the
8643
- * overlay during a route change). Also releases the
8644
- * CloseWatcher if nothing is left to close.
8516
+ * overlay during a route change).
8645
8517
  *
8646
8518
  * Should be called from an overlay's `disconnectedCallback`
8647
8519
  * when the overlay was still presented at the time of removal.
@@ -8671,9 +8543,7 @@ const applyRootLock = (el) => {
8671
8543
  };
8672
8544
  /**
8673
8545
  * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
8674
- * Call from `connectedCallback` when the overlay is still presented. Also
8675
- * re-arms the CloseWatcher, which every overlay needs, so that happens
8676
- * before the `locksAppRoot` check.
8546
+ * Call from `connectedCallback` when the overlay is still presented.
8677
8547
  *
8678
8548
  * A synchronous move keeps the overlay connected, so the lock survives. A
8679
8549
  * detach with a re-insert in a later task releases it, which is the shape a
@@ -21384,11 +21254,6 @@ class InputOTP {
21384
21254
  * focus behavior when an input box is focused.
21385
21255
  */
21386
21256
  this.isKeyboardNavigation = false;
21387
- /**
21388
- * The `length` watcher runs before new inputs render, so
21389
- * `componentDidRender` updates their tab indexes instead.
21390
- */
21391
- this.updateTabIndexesAfterRender = false;
21392
21257
  this.inputValues = [];
21393
21258
  this.hasFocus = false;
21394
21259
  this.previousInputValues = [];
@@ -21748,10 +21613,6 @@ class InputOTP {
21748
21613
  this.initializeValues();
21749
21614
  this.updateTabIndexes();
21750
21615
  }
21751
- lengthChanged() {
21752
- this.initializeValues();
21753
- this.updateTabIndexesAfterRender = true;
21754
- }
21755
21616
  /**
21756
21617
  * Processes the separators prop into an array of numbers.
21757
21618
  *
@@ -21808,12 +21669,6 @@ class InputOTP {
21808
21669
  componentDidLoad() {
21809
21670
  this.updateTabIndexes();
21810
21671
  }
21811
- componentDidRender() {
21812
- if (this.updateTabIndexesAfterRender) {
21813
- this.updateTabIndexesAfterRender = false;
21814
- this.updateTabIndexes();
21815
- }
21816
- }
21817
21672
  /**
21818
21673
  * Get the regex pattern for allowed characters.
21819
21674
  * If a pattern is provided, use it to create a regex pattern
@@ -21991,7 +21846,7 @@ class InputOTP {
21991
21846
  const tabbableIndex = this.getTabbableIndex();
21992
21847
  const pattern = this.getPattern();
21993
21848
  const hasDescription = el.querySelector('.input-otp-description')?.textContent?.trim() !== '';
21994
- return (hAsync(Host, { key: 'def9fbd4fa135e6f435380c6ea86ac1621b4a111', class: createColorClasses$1(color, {
21849
+ return (hAsync(Host, { key: 'bd37661e13cde21feff30c663e6813ce3fff0d9a', class: createColorClasses$1(color, {
21995
21850
  [mode]: true,
21996
21851
  'has-focus': hasFocus,
21997
21852
  [`input-otp-size-${size}`]: true,
@@ -21999,30 +21854,20 @@ class InputOTP {
21999
21854
  [`input-otp-fill-${fill}`]: true,
22000
21855
  'input-otp-disabled': disabled,
22001
21856
  'input-otp-readonly': readonly,
22002
- }) }, 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) => {
22003
- if (el) {
22004
- inputRefs[index] = el;
22005
- }
22006
- else {
22007
- // The input was removed, so drop its ref and any after it.
22008
- inputRefs.splice(index);
22009
- }
22010
- }, 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: {
21857
+ }) }, 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: {
22011
21858
  'input-otp-description': true,
22012
21859
  'input-otp-description-hidden': !hasDescription,
22013
- } }, hAsync("slot", { key: '7deb3373c0d4e5deac22fa51577d271b9bb3a6d2' }))));
21860
+ } }, hAsync("slot", { key: 'c0736359b26f609b795e399fc1ad9b540632af18' }))));
22014
21861
  }
22015
21862
  get el() { return getElement(this); }
22016
21863
  static get watchers() { return {
22017
21864
  "value": [{
22018
21865
  "valueChanged": 0
22019
21866
  }],
22020
- "length": [{
22021
- "lengthChanged": 0
22022
- }, {
21867
+ "separators": [{
22023
21868
  "processSeparators": 0
22024
21869
  }],
22025
- "separators": [{
21870
+ "length": [{
22026
21871
  "processSeparators": 0
22027
21872
  }]
22028
21873
  }; }
@@ -24734,14 +24579,14 @@ class Menu {
24734
24579
  * the ionBackButton listener in the menu controller
24735
24580
  * will handle closing the menu when Escape is pressed.
24736
24581
  */
24737
- return (hAsync(Host, { key: '5cf26df26d4e539860cbeaea98ec621b98c3fcfc', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24582
+ return (hAsync(Host, { key: '1208ba437fa58680325408d3d4c8580950da1d68', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24738
24583
  [mode]: true,
24739
24584
  [`menu-type-${type}`]: true,
24740
24585
  'menu-enabled': !disabled,
24741
24586
  [`menu-side-${side}`]: true,
24742
24587
  'menu-pane-visible': isPaneVisible,
24743
24588
  'split-pane-side': hostContext('ion-split-pane', el),
24744
- } }, 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" })));
24589
+ } }, 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" })));
24745
24590
  }
24746
24591
  get el() { return getElement(this); }
24747
24592
  static get watchers() { return {
@@ -35652,6 +35497,14 @@ class Route {
35652
35497
  *
35653
35498
  * Accepts paths similar to expressjs so that you can define parameters
35654
35499
  * in the url /foo/:bar where bar would be available in incoming props.
35500
+ *
35501
+ * A url ending in `*`, such as `*` or `/admin/*`, matches any remaining path,
35502
+ * including none, so `/admin/*` also matches `/admin`. It only wins over a
35503
+ * route that matches the whole path when it has more fixed segments, so
35504
+ * `/admin/*` wins over `/:section/:id` but not over `/admin/:id`. It always
35505
+ * wins over a route that matches by ignoring trailing segments, such as
35506
+ * `/admin` for `/admin/users`. The matched path is passed in the `pathMatch`
35507
+ * prop without a leading `/`. A `*` on a route with child routes is ignored.
35655
35508
  */
35656
35509
  this.url = '';
35657
35510
  }
@@ -35740,6 +35593,8 @@ class RouteRedirect {
35740
35593
  const ROUTER_INTENT_NONE = 'root';
35741
35594
  const ROUTER_INTENT_FORWARD = 'forward';
35742
35595
  const ROUTER_INTENT_BACK = 'back';
35596
+ /** Param that holds the path matched by a trailing `*` in an `ion-route` url. */
35597
+ const WILDCARD_PARAM = 'pathMatch';
35743
35598
 
35744
35599
  /** Join the non empty segments with "/". */
35745
35600
  const generatePath = (segments) => {
@@ -35773,12 +35628,13 @@ const writeSegments = (history, root, useHash, segments, direction, state, query
35773
35628
  *
35774
35629
  * Notes:
35775
35630
  * - parameter segments of the form :param are replaced with their value,
35776
- * - null is returned when a value is missing for any parameter segment.
35631
+ * - null is returned when a value is missing for any parameter segment,
35632
+ * - a trailing wildcard is replaced with the path it matched.
35777
35633
  */
35778
35634
  const chainToSegments = (chain) => {
35779
35635
  const segments = [];
35780
35636
  for (const route of chain) {
35781
- for (const segment of route.segments) {
35637
+ for (const segment of withoutWildcard(route.segments)) {
35782
35638
  if (segment[0] === ':') {
35783
35639
  const param = route.params && route.params[segment.slice(1)];
35784
35640
  if (!param) {
@@ -35790,9 +35646,22 @@ const chainToSegments = (chain) => {
35790
35646
  segments.push(segment);
35791
35647
  }
35792
35648
  }
35649
+ segments.push(...wildcardSegments(route));
35793
35650
  }
35794
35651
  return segments;
35795
35652
  };
35653
+ /** Only a `*` in the last segment of a route url is a wildcard. Elsewhere it's matched literally. */
35654
+ const endsWithWildcard = (segments) => {
35655
+ return segments[segments.length - 1] === '*';
35656
+ };
35657
+ /** Returns the path segments matched by the trailing wildcard of the route. */
35658
+ const wildcardSegments = (route) => {
35659
+ const pathMatch = endsWithWildcard(route.segments) ? route.params?.[WILDCARD_PARAM] : undefined;
35660
+ return pathMatch ? pathMatch.split('/').filter((s) => s.length > 0) : [];
35661
+ };
35662
+ const withoutWildcard = (segments) => {
35663
+ return endsWithWildcard(segments) ? segments.slice(0, -1) : segments;
35664
+ };
35796
35665
  /**
35797
35666
  * Removes the prefix segments from the path segments.
35798
35667
  *
@@ -36125,6 +35994,10 @@ const matchesIDs = (ids, chain) => {
36125
35994
  if (routeId.id.toLowerCase() !== routeChain.id) {
36126
35995
  break;
36127
35996
  }
35997
+ // Weight a wildcard route when the outlet reports its `pathMatch`
35998
+ if (routeId.params?.[WILDCARD_PARAM] !== undefined && endsWithWildcard(routeChain.segments)) {
35999
+ score++;
36000
+ }
36128
36001
  if (routeId.params) {
36129
36002
  const routeIdParams = Object.keys(routeId.params);
36130
36003
  // Only compare routes with the chain that have the same number of parameters.
@@ -36180,21 +36053,28 @@ const matchesSegments = (segments, chain) => {
36180
36053
  matchesDefault = true;
36181
36054
  }
36182
36055
  else {
36183
- for (const segment of chainSegments) {
36056
+ const params = {};
36057
+ for (const segment of withoutWildcard(chainSegments)) {
36184
36058
  const data = inputSegments.next();
36185
36059
  // data param
36186
36060
  if (segment[0] === ':') {
36187
36061
  if (data === '') {
36188
36062
  return null;
36189
36063
  }
36190
- allparams = allparams || [];
36191
- const params = allparams[i] || (allparams[i] = {});
36192
36064
  params[segment.slice(1)] = data;
36193
36065
  }
36194
36066
  else if (data !== segment) {
36195
36067
  return null;
36196
36068
  }
36197
36069
  }
36070
+ // A trailing `*` on a parent route has no effect. Its children match the rest of the path.
36071
+ if (i === chain.length - 1 && endsWithWildcard(chainSegments)) {
36072
+ params[WILDCARD_PARAM] = inputSegments.rest().join('/');
36073
+ }
36074
+ if (Object.keys(params).length > 0) {
36075
+ allparams = allparams || [];
36076
+ allparams[i] = params;
36077
+ }
36198
36078
  matchesDefault = false;
36199
36079
  }
36200
36080
  }
@@ -36226,25 +36106,38 @@ const mergeParams = (a, b) => {
36226
36106
  * Returns the best match or null when no match is found.
36227
36107
  * When a chain is returned the parameters are updated from the RouteIDs.
36228
36108
  * That is they contain both the componentProps of the <ion-route> and the parameter segment.
36109
+ *
36110
+ * When a wildcard route ties with other routes, a route without a wildcard that can build a url wins,
36111
+ * then the wildcard route. Otherwise the first route declared wins a tie.
36229
36112
  */
36230
36113
  const findChainForIDs = (ids, chains) => {
36231
- let match = null;
36232
36114
  let maxMatches = 0;
36115
+ let tied = [];
36233
36116
  for (const chain of chains) {
36234
36117
  const score = matchesIDs(ids, chain);
36235
36118
  if (score > maxMatches) {
36236
- match = chain;
36237
36119
  maxMatches = score;
36120
+ tied = [chain];
36121
+ }
36122
+ else if (score > 0 && score === maxMatches) {
36123
+ tied.push(chain);
36238
36124
  }
36239
36125
  }
36240
- if (match) {
36241
- return match.map((route, i) => ({
36242
- id: route.id,
36243
- segments: route.segments,
36244
- params: mergeParams(route.params, ids[i]?.params),
36245
- }));
36126
+ const matches = tied.map((chain) => chain.map((route, i) => ({
36127
+ id: route.id,
36128
+ segments: route.segments,
36129
+ params: mergeParams(route.params, ids[i]?.params),
36130
+ })));
36131
+ if (!matches.some(chainEndsWithWildcard)) {
36132
+ return matches.length > 0 ? matches[0] : null;
36246
36133
  }
36247
- return null;
36134
+ return matches.reduce((best, chain) => (tieRank(chain) > tieRank(best) ? chain : best));
36135
+ };
36136
+ const tieRank = (chain) => {
36137
+ if (chainEndsWithWildcard(chain)) {
36138
+ return 1;
36139
+ }
36140
+ return chainToSegments(chain) !== null ? 2 : 0;
36248
36141
  };
36249
36142
  /**
36250
36143
  * Finds the best match for the segments in the chains.
@@ -36252,10 +36145,17 @@ const findChainForIDs = (ids, chains) => {
36252
36145
  * Returns the best match or null when no match is found.
36253
36146
  * When a chain is returned the parameters are updated from the segments.
36254
36147
  * That is they contain both the componentProps of the <ion-route> and the parameter segments.
36148
+ *
36149
+ * When wildcard routes match, the one with the most fixed segments wins if it has more fixed segments than every
36150
+ * route that matched the whole path. Routes that only matched by ignoring trailing segments don't count.
36255
36151
  */
36256
36152
  const findChainForSegments = (segments, chains) => {
36257
36153
  let match = null;
36258
36154
  let bestScore = 0;
36155
+ let fullMatch = null;
36156
+ let bestFullScore = 0;
36157
+ let maxFullFixed = -1;
36158
+ let wildcard = null;
36259
36159
  for (const chain of chains) {
36260
36160
  const matchedChain = matchesSegments(segments, chain);
36261
36161
  if (matchedChain !== null) {
@@ -36264,9 +36164,51 @@ const findChainForSegments = (segments, chains) => {
36264
36164
  bestScore = score;
36265
36165
  match = matchedChain;
36266
36166
  }
36167
+ if (chainEndsWithWildcard(matchedChain)) {
36168
+ if (wildcard === null || winsWildcard(matchedChain, wildcard)) {
36169
+ wildcard = matchedChain;
36170
+ }
36171
+ }
36172
+ else if (!isPartialMatch(segments, matchedChain)) {
36173
+ if (score > bestFullScore) {
36174
+ bestFullScore = score;
36175
+ fullMatch = matchedChain;
36176
+ }
36177
+ maxFullFixed = Math.max(maxFullFixed, countFixedSegments(matchedChain));
36178
+ }
36179
+ }
36180
+ }
36181
+ // Without a wildcard to match the rest of the path, routes can still ignore trailing segments.
36182
+ if (wildcard === null) {
36183
+ return match;
36184
+ }
36185
+ // Compare fixed segments rather than priority, since nesting under default routes raises the priority
36186
+ return countFixedSegments(wildcard) > maxFullFixed ? wildcard : fullMatch;
36187
+ };
36188
+ /** Returns whether the chain matched the path segments only by ignoring some trailing segments. */
36189
+ const isPartialMatch = (segments, chain) => {
36190
+ const matched = chainToSegments(chain);
36191
+ return matched !== null && matched.length < segments.filter((s) => s !== '').length;
36192
+ };
36193
+ const chainEndsWithWildcard = (chain) => {
36194
+ return endsWithWildcard(chain[chain.length - 1].segments);
36195
+ };
36196
+ /** Returns whether the wildcard chain beats `best` by fixed segments, then by priority. */
36197
+ const winsWildcard = (chain, best) => {
36198
+ const chainFixed = countFixedSegments(chain);
36199
+ const bestFixed = countFixedSegments(best);
36200
+ return chainFixed > bestFixed || (chainFixed === bestFixed && computePriority(chain) > computePriority(best));
36201
+ };
36202
+ const countFixedSegments = (chain) => {
36203
+ let count = 0;
36204
+ for (const route of chain) {
36205
+ for (const segment of withoutWildcard(route.segments)) {
36206
+ if (segment !== '' && segment[0] !== ':') {
36207
+ count++;
36208
+ }
36267
36209
  }
36268
36210
  }
36269
- return match;
36211
+ return count;
36270
36212
  };
36271
36213
  /**
36272
36214
  * Computes the priority of a chain.
@@ -36278,12 +36220,14 @@ const findChainForSegments = (segments, chains) => {
36278
36220
  * - /path/to/page
36279
36221
  *
36280
36222
  * The second one will be given a higher priority because "page" is a fixed segment (vs ":where", a parameter segment).
36223
+ *
36224
+ * A trailing wildcard is not counted.
36281
36225
  */
36282
36226
  const computePriority = (chain) => {
36283
36227
  let score = 1;
36284
36228
  let level = 1;
36285
36229
  for (const route of chain) {
36286
- for (const segment of route.segments) {
36230
+ for (const segment of withoutWildcard(route.segments)) {
36287
36231
  if (segment[0] === ':') {
36288
36232
  score += Math.pow(1, level);
36289
36233
  }
@@ -36305,6 +36249,12 @@ class RouterSegments {
36305
36249
  }
36306
36250
  return '';
36307
36251
  }
36252
+ /** Consumes and returns the remaining non empty segments. */
36253
+ rest() {
36254
+ const rest = this.segments.filter((s) => s !== '');
36255
+ this.segments = [];
36256
+ return rest;
36257
+ }
36308
36258
  }
36309
36259
 
36310
36260
  const readProp = (el, prop) => {
@@ -43714,7 +43664,7 @@ var NAMESPACE = (
43714
43664
  );
43715
43665
 
43716
43666
  /*
43717
- Stencil Hydrate Runner v4.45.2 | MIT Licensed | https://stenciljs.com
43667
+ Stencil Hydrate Runner v4.45.1 | MIT Licensed | https://stenciljs.com
43718
43668
  */
43719
43669
  var __create = Object.create;
43720
43670
  var __defProp = Object.defineProperty;
@@ -43824,10 +43774,6 @@ var require_brace_expansion = __commonJS({
43824
43774
  var escClose = "\0CLOSE" + Math.random() + "\0";
43825
43775
  var escComma = "\0COMMA" + Math.random() + "\0";
43826
43776
  var escPeriod = "\0PERIOD" + Math.random() + "\0";
43827
- var EXPANSION_MAX = 1e5;
43828
- var EXPANSION_MAX_LENGTH = 4e6;
43829
- var EXPANSION_MAX_DEPTH = 1e3;
43830
- var EXPANSION_MAX_REWRITES = 1e3;
43831
43777
  function numeric(str) {
43832
43778
  return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
43833
43779
  }
@@ -43837,49 +43783,33 @@ var require_brace_expansion = __commonJS({
43837
43783
  function unescapeBraces(str) {
43838
43784
  return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
43839
43785
  }
43840
- function pushAll(target, items) {
43841
- for (var i = 0; i < items.length; i++) {
43842
- target.push(items[i]);
43843
- }
43844
- }
43845
43786
  function parseCommaParts(str) {
43787
+ if (!str)
43788
+ return [""];
43846
43789
  var parts = [];
43847
- var carry = "";
43848
- for (; ; ) {
43849
- var m = balanced("{", "}", str);
43850
- if (!m) {
43851
- var tail = str.split(",");
43852
- tail[0] = carry + tail[0];
43853
- pushAll(parts, tail);
43854
- return parts;
43855
- }
43856
- var pre = m.pre;
43857
- var body = m.body;
43858
- var post = m.post;
43859
- var p = pre.split(",");
43860
- p[0] = carry + p[0];
43861
- p[p.length - 1] += "{" + body + "}";
43862
- if (!post.length) {
43863
- pushAll(parts, p);
43864
- return parts;
43865
- }
43866
- carry = p.pop();
43867
- pushAll(parts, p);
43868
- str = post;
43869
- }
43870
- }
43871
- function expandTop(str, options) {
43790
+ var m = balanced("{", "}", str);
43791
+ if (!m)
43792
+ return str.split(",");
43793
+ var pre = m.pre;
43794
+ var body = m.body;
43795
+ var post = m.post;
43796
+ var p = pre.split(",");
43797
+ p[p.length - 1] += "{" + body + "}";
43798
+ var postParts = parseCommaParts(post);
43799
+ if (post.length) {
43800
+ p[p.length - 1] += postParts.shift();
43801
+ p.push.apply(p, postParts);
43802
+ }
43803
+ parts.push.apply(parts, p);
43804
+ return parts;
43805
+ }
43806
+ function expandTop(str) {
43872
43807
  if (!str)
43873
43808
  return [];
43874
- options = options || {};
43875
- var max = options.max == null ? EXPANSION_MAX : options.max;
43876
- var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
43877
- var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
43878
- var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
43879
43809
  if (str.substr(0, 2) === "{}") {
43880
43810
  str = "\\{\\}" + str.substr(2);
43881
43811
  }
43882
- return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
43812
+ return expand2(escapeBraces(str), true).map(unescapeBraces);
43883
43813
  }
43884
43814
  function embrace(str) {
43885
43815
  return "{" + str + "}";
@@ -43893,165 +43823,93 @@ var require_brace_expansion = __commonJS({
43893
43823
  function gte(i, y) {
43894
43824
  return i >= y;
43895
43825
  }
43896
- function combine(acc, pre, values, max, maxLength, dropEmpties) {
43897
- var out = [];
43898
- var length = 0;
43899
- for (var a = 0; a < acc.length; a++) {
43900
- for (var v = 0; v < values.length; v++) {
43901
- if (out.length >= max) return out;
43902
- var expansion = acc[a] + pre + values[v];
43903
- if (dropEmpties && !expansion) continue;
43904
- if (length + expansion.length > maxLength) return out;
43905
- out.push(expansion);
43906
- length += expansion.length;
43907
- }
43908
- }
43909
- return out;
43910
- }
43911
- function expandSequence(body, isAlphaSequence, max, maxLength) {
43912
- var n = body.split(/\.\./);
43913
- var N = [];
43914
- if (n[0] === void 0 || n[1] === void 0) {
43915
- return N;
43916
- }
43917
- var x = numeric(n[0]);
43918
- var y = numeric(n[1]);
43919
- var width = Math.max(n[0].length, n[1].length);
43920
- var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
43921
- var test = lte;
43922
- var reverse = y < x;
43923
- if (reverse) {
43924
- incr *= -1;
43925
- test = gte;
43926
- }
43927
- var pad = n.some(isPadded);
43928
- var length = 0;
43929
- for (var i = x; test(i, y) && N.length < max; i += incr) {
43930
- var c;
43931
- if (isAlphaSequence) {
43932
- c = String.fromCharCode(i);
43933
- if (c === "\\") {
43934
- c = "";
43935
- }
43936
- } else {
43937
- c = String(i);
43938
- if (pad) {
43939
- var need = width - c.length;
43940
- if (need > 0) {
43941
- var z = new Array(need + 1).join("0");
43942
- if (i < 0) {
43943
- c = "-" + z + c.slice(1);
43944
- } else {
43945
- c = z + c;
43946
- }
43947
- }
43948
- }
43949
- }
43950
- if (length + c.length > maxLength) break;
43951
- N.push(c);
43952
- length += c.length;
43953
- }
43954
- return N;
43955
- }
43956
- function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
43957
- if (depth > maxDepth) {
43958
- return [str];
43959
- }
43960
- var acc = [""];
43961
- var rewrites = 0;
43962
- var dropEmpties = false;
43963
- var firstGroup = true;
43964
- for (; ; ) {
43965
- const m = balanced("{", "}", str);
43966
- if (!m) {
43967
- return combine(acc, str, [""], max, maxLength, dropEmpties);
43968
- }
43969
- const pre = m.pre;
43970
- if (/\$$/.test(pre)) {
43971
- acc = combine(
43972
- acc,
43973
- pre + "{" + m.body + "}",
43974
- [""],
43975
- max,
43976
- maxLength,
43977
- dropEmpties && !m.post.length
43978
- );
43979
- firstGroup = false;
43980
- if (!m.post.length) break;
43981
- str = m.post;
43982
- continue;
43826
+ function expand2(str, isTop) {
43827
+ var expansions = [];
43828
+ var m = balanced("{", "}", str);
43829
+ if (!m) return [str];
43830
+ var pre = m.pre;
43831
+ var post = m.post.length ? expand2(m.post, false) : [""];
43832
+ if (/\$$/.test(m.pre)) {
43833
+ for (var k = 0; k < post.length; k++) {
43834
+ var expansion = pre + "{" + m.body + "}" + post[k];
43835
+ expansions.push(expansion);
43983
43836
  }
43837
+ } else {
43984
43838
  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
43985
43839
  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
43986
43840
  var isSequence = isNumericSequence || isAlphaSequence;
43987
43841
  var isOptions = m.body.indexOf(",") >= 0;
43988
43842
  if (!isSequence && !isOptions) {
43989
- if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
43990
- rewrites++;
43843
+ if (m.post.match(/,(?!,).*\}/)) {
43991
43844
  str = m.pre + "{" + m.body + escClose + m.post;
43992
- isTop = true;
43993
- continue;
43845
+ return expand2(str);
43994
43846
  }
43995
- return combine(
43996
- acc,
43997
- pre + "{" + m.body + "}" + m.post,
43998
- [""],
43999
- max,
44000
- maxLength,
44001
- dropEmpties
44002
- );
43847
+ return [str];
44003
43848
  }
44004
- if (firstGroup) {
44005
- dropEmpties = isTop && !isSequence;
44006
- firstGroup = false;
44007
- }
44008
- var values;
43849
+ var n;
44009
43850
  if (isSequence) {
44010
- values = expandSequence(m.body, isAlphaSequence, max, maxLength);
43851
+ n = m.body.split(/\.\./);
44011
43852
  } else {
44012
- var n = parseCommaParts(m.body);
44013
- if (n.length === 1 && n[0] !== void 0) {
44014
- n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
43853
+ n = parseCommaParts(m.body);
43854
+ if (n.length === 1) {
43855
+ n = expand2(n[0], false).map(embrace);
44015
43856
  if (n.length === 1) {
44016
- acc = combine(
44017
- acc,
44018
- pre + n[0],
44019
- [""],
44020
- max,
44021
- maxLength,
44022
- dropEmpties && !m.post.length
44023
- );
44024
- if (!m.post.length) break;
44025
- str = m.post;
44026
- continue;
43857
+ return post.map(function(p) {
43858
+ return m.pre + n[0] + p;
43859
+ });
44027
43860
  }
44028
43861
  }
44029
- var dropsEmpties = dropEmpties && !m.post.length && !pre;
44030
- for (var d = 0; dropsEmpties && d < acc.length; d++) {
44031
- if (acc[d]) {
44032
- dropsEmpties = false;
44033
- }
43862
+ }
43863
+ var N;
43864
+ if (isSequence) {
43865
+ var x = numeric(n[0]);
43866
+ var y = numeric(n[1]);
43867
+ var width = Math.max(n[0].length, n[1].length);
43868
+ var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
43869
+ var test = lte;
43870
+ var reverse = y < x;
43871
+ if (reverse) {
43872
+ incr *= -1;
43873
+ test = gte;
44034
43874
  }
44035
- values = [];
44036
- var valuesLength = 0;
44037
- outer: for (var j = 0; j < n.length; j++) {
44038
- var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
44039
- for (var k = 0; k < expanded.length; k++) {
44040
- var v = expanded[k];
44041
- if (dropsEmpties && !v) continue;
44042
- if (values.length >= max || valuesLength + v.length > maxLength) {
44043
- break outer;
43875
+ var pad = n.some(isPadded);
43876
+ N = [];
43877
+ for (var i = x; test(i, y); i += incr) {
43878
+ var c;
43879
+ if (isAlphaSequence) {
43880
+ c = String.fromCharCode(i);
43881
+ if (c === "\\")
43882
+ c = "";
43883
+ } else {
43884
+ c = String(i);
43885
+ if (pad) {
43886
+ var need = width - c.length;
43887
+ if (need > 0) {
43888
+ var z = new Array(need + 1).join("0");
43889
+ if (i < 0)
43890
+ c = "-" + z + c.slice(1);
43891
+ else
43892
+ c = z + c;
43893
+ }
44044
43894
  }
44045
- values.push(v);
44046
- valuesLength += v.length;
44047
43895
  }
43896
+ N.push(c);
43897
+ }
43898
+ } else {
43899
+ N = [];
43900
+ for (var j = 0; j < n.length; j++) {
43901
+ N.push.apply(N, expand2(n[j], false));
43902
+ }
43903
+ }
43904
+ for (var j = 0; j < N.length; j++) {
43905
+ for (var k = 0; k < post.length; k++) {
43906
+ var expansion = pre + N[j] + post[k];
43907
+ if (!isTop || isSequence || expansion)
43908
+ expansions.push(expansion);
44048
43909
  }
44049
43910
  }
44050
- acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
44051
- if (!m.post.length) break;
44052
- str = m.post;
44053
43911
  }
44054
- return acc;
43912
+ return expansions;
44055
43913
  }
44056
43914
  }
44057
43915
  });
@@ -54779,15 +54637,13 @@ var MockTokenList = class {
54779
54637
  token = String(token);
54780
54638
  return getItems(this.elm, this.attr).includes(token);
54781
54639
  }
54782
- toggle(token, force) {
54640
+ toggle(token) {
54783
54641
  token = String(token);
54784
- const shouldAdd = force === void 0 ? !this.contains(token) : !!force;
54785
- if (shouldAdd) {
54786
- this.add(token);
54787
- } else {
54642
+ if (this.contains(token) === true) {
54788
54643
  this.remove(token);
54644
+ } else {
54645
+ this.add(token);
54789
54646
  }
54790
- return shouldAdd;
54791
54647
  }
54792
54648
  get length() {
54793
54649
  return getItems(this.elm, this.attr).length;