voyager-ionic-core 8.8.8 → 8.8.12

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 (423) 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-legacy-column.js +1 -1
  59. package/components/ion-picker-legacy.js +1 -1
  60. package/components/ion-picker.js +1 -1
  61. package/components/ion-popover.js +1 -1
  62. package/components/ion-progress-bar.js +1 -1
  63. package/components/ion-radio-group.js +1 -1
  64. package/components/ion-radio.js +1 -1
  65. package/components/ion-range.js +1 -1
  66. package/components/ion-refresher-content.js +1 -1
  67. package/components/ion-refresher.js +1 -1
  68. package/components/ion-reorder-group.js +1 -1
  69. package/components/ion-reorder.js +1 -1
  70. package/components/ion-ripple-effect.js +1 -1
  71. package/components/ion-route-redirect.js +1 -1
  72. package/components/ion-route.js +1 -1
  73. package/components/ion-router-link.js +1 -1
  74. package/components/ion-router-outlet.js +1 -1
  75. package/components/ion-router.js +1 -1
  76. package/components/ion-row.js +1 -1
  77. package/components/ion-searchbar.js +1 -1
  78. package/components/ion-segment-button.js +1 -1
  79. package/components/ion-segment-content.js +1 -1
  80. package/components/ion-segment-view.js +1 -1
  81. package/components/ion-segment.js +1 -1
  82. package/components/ion-select-modal.js +1 -1
  83. package/components/ion-select-option.js +1 -1
  84. package/components/ion-select-popover.js +1 -1
  85. package/components/ion-select.js +1 -1
  86. package/components/ion-skeleton-text.js +1 -1
  87. package/components/ion-spinner.js +1 -1
  88. package/components/ion-split-pane.js +1 -1
  89. package/components/ion-tab-bar.js +1 -1
  90. package/components/ion-tab-button.js +1 -1
  91. package/components/ion-tab.js +1 -1
  92. package/components/ion-tabs.js +1 -1
  93. package/components/ion-text.js +1 -1
  94. package/components/ion-textarea.js +1 -1
  95. package/components/ion-thumbnail.js +1 -1
  96. package/components/ion-title.js +1 -1
  97. package/components/ion-toast.js +1 -1
  98. package/components/ion-toggle.js +1 -1
  99. package/components/ion-toolbar.js +1 -1
  100. package/components/{p-CoA-aqGF.js → p--JUspHvy.js} +1 -1
  101. package/components/{p-DHsZWn1l.js → p-0NRupjzW.js} +1 -1
  102. package/components/{p-BSB38Tek.js → p-5bE_Wz4Y.js} +1 -1
  103. package/components/{p-kvaDs24J.js → p-B60hm8Qv.js} +1 -1
  104. package/components/{p-B6FQ0cKR.js → p-B9jFTlwE.js} +1 -1
  105. package/{dist/ionic/p-BvFYtOdE.js → components/p-BAYYcg3o.js} +1 -1
  106. package/components/{p-DJMZehmW.js → p-BLmJ0zRm.js} +1 -1
  107. package/components/{p-Cyxa_4PV.js → p-BSEgsdFI.js} +1 -1
  108. package/components/{p-B6HaBl3o.js → p-BTPfOxsU.js} +1 -1
  109. package/{dist/ionic/p-DjriolRs.js → components/p-BT_5jSqG.js} +1 -1
  110. package/components/{p-DgbT0exM.js → p-Baq1XyAy.js} +1 -1
  111. package/components/{p-BYDc3hSE.js → p-BirPFsRD.js} +1 -1
  112. package/components/{p-FBcnjE5W.js → p-BjfgFSSR.js} +1 -1
  113. package/components/p-BjoEPDW5.js +4 -0
  114. package/{dist/ionic/p-DLbbmF9h.js → components/p-BnqQlm7c.js} +1 -1
  115. package/components/{p-BxwWvu-b.js → p-BsPelv04.js} +1 -1
  116. package/components/{p-DZhbcvo5.js → p-Bth-EzJ0.js} +1 -1
  117. package/components/{p-vEbVo2hO.js → p-Bz0dSlXZ.js} +1 -1
  118. package/components/{p-CBzELu-H.js → p-C1aScSTo.js} +1 -1
  119. package/components/{p-BTeL5HCK.js → p-C2lKgrXx.js} +1 -1
  120. package/components/{p-BgwEQWW6.js → p-C4t5ymfq.js} +1 -1
  121. package/components/p-CHqRYvYm.js +4 -0
  122. package/components/{p-Q1-Xy3As.js → p-CI3ncNZm.js} +1 -1
  123. package/components/{p-DYdpXONG.js → p-CSZf8_j0.js} +1 -1
  124. package/components/p-CU5rbWAW.js +4 -0
  125. package/components/p-C_xFdyXe.js +4 -0
  126. package/components/{p-CgfaEEem.js → p-Cfx4M1Bn.js} +1 -1
  127. package/{dist/ionic/p-C0JvVFMv.js → components/p-Ciz1-FuE.js} +1 -1
  128. package/components/p-CmR5uXej.js +4 -0
  129. package/components/p-CtukzcyX.js +4 -0
  130. package/components/{p-CEmXdzGo.js → p-D5Ubpm7D.js} +1 -1
  131. package/components/p-D7bSXQD3.js +4 -0
  132. package/components/{p-Cf6Z1pmL.js → p-DDWp95gH.js} +1 -1
  133. package/components/p-DIE4pXMl.js +4 -0
  134. package/components/p-DNQI6d-L.js +4 -0
  135. package/components/{p-CDfQnFrd.js → p-DOFCbuQR.js} +1 -1
  136. package/components/{p-BR3tZJmu.js → p-DnL1c9_X.js} +1 -1
  137. package/components/{p-YLXPWgVj.js → p-DqLB8yFQ.js} +1 -1
  138. package/components/{p-BagjAGC0.js → p-DqZAXv2t.js} +1 -1
  139. package/components/p-W5nO8mX_.js +4 -0
  140. package/components/{p-Cq8cQ0NL.js → p-W9CZ2mWX.js} +1 -1
  141. package/components/p-XlSIJDJ-.js +4 -0
  142. package/components/{p-ZuZOauwD.js → p-dhLYXa7A.js} +1 -1
  143. package/components/p-ijF0iCrA.js +4 -0
  144. package/components/{p-B8b1Ukl9.js → p-j5IxBIan.js} +1 -1
  145. package/components/{p-BUbsoBOV.js → p-k_E4tX5Z.js} +1 -1
  146. package/components/{p-DvOO1fxp.js → p-lE_JGpHD.js} +1 -1
  147. package/components/{p-D-cP12ZN.js → p-nQi4oKcG.js} +1 -1
  148. package/components/{p-fpbh6w3f.js → p-rCa2eL0j.js} +1 -1
  149. package/components/{p-SBseW5KJ.js → p-ryqmO0B-.js} +1 -1
  150. package/dist/cjs/{animation-Dg4yiuR2.js → animation-BJq0kcy2.js} +1 -1
  151. package/dist/cjs/{app-globals-CLI8xCmk.js → app-globals-BlqrqKTN.js} +1 -1
  152. package/dist/cjs/{button-active-FscMI17-.js → button-active-0mPOKmV2.js} +1 -1
  153. package/dist/cjs/{config-BukYi_pW.js → config-xninhj0J.js} +1 -1
  154. package/dist/cjs/{data-BYlBjkMU.js → data-DLTUw-KF.js} +1 -1
  155. package/dist/cjs/{framework-delegate-CRgp8o_p.js → framework-delegate-BtICZDHr.js} +1 -1
  156. package/dist/cjs/{hardware-back-button-C4rMJ5uI.js → hardware-back-button-iUuF_76h.js} +1 -1
  157. package/dist/cjs/{helpers-CxTYJdbT.js → helpers-Cv23MFHM.js} +1 -1
  158. package/dist/cjs/{index-C845Ti6K.js → index-BERfRao3.js} +4 -4
  159. package/dist/cjs/{index-MbaBbWXk.js → index-CIrkNXqJ.js} +2 -2
  160. package/dist/cjs/{index-CqT-2gKy.js → index-Ct7gcRif.js} +67 -23
  161. package/dist/cjs/{index-YcSftOMz.js → index-D81eLYUM.js} +2 -2
  162. package/dist/cjs/{index-CFUwM5x_.js → index-aC4x3Fk3.js} +5 -5
  163. package/dist/cjs/index.cjs.js +12 -12
  164. package/dist/cjs/{input-shims-CPL2J8F-.js → input-shims-CFLg7uzj.js} +3 -3
  165. package/dist/cjs/{input.utils-DmeJ8dmo.js → input.utils-DetjmtH2.js} +2 -2
  166. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  167. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  168. package/dist/cjs/ion-alert.cjs.entry.js +9 -9
  169. package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
  170. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  171. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  172. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  173. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  174. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  175. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  176. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -3
  177. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  178. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  179. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  180. package/dist/cjs/ion-datetime_3.cjs.entry.js +9 -9
  181. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  182. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  183. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  184. package/dist/cjs/ion-input-otp.cjs.entry.js +6 -6
  185. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  186. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  187. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  188. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  189. package/dist/cjs/ion-loading.cjs.entry.js +8 -8
  190. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  191. package/dist/cjs/ion-modal.cjs.entry.js +16 -13
  192. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  193. package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -4
  194. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  195. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  196. package/dist/cjs/ion-popover.cjs.entry.js +8 -8
  197. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  198. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  199. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  200. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  201. package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -5
  202. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  203. package/dist/cjs/ion-route_4.cjs.entry.js +187 -21
  204. package/dist/cjs/ion-searchbar.cjs.entry.js +29 -8
  205. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  206. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  207. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  208. package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
  209. package/dist/cjs/ion-select_3.cjs.entry.js +7 -7
  210. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  211. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  212. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  213. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  214. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  215. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  216. package/dist/cjs/ion-toast.cjs.entry.js +9 -9
  217. package/dist/cjs/ion-toggle.cjs.entry.js +5 -5
  218. package/dist/cjs/{ionic-global-Bc3kJi1Z.js → ionic-global-B-cA6LkY.js} +1 -1
  219. package/dist/cjs/ionic.cjs.js +5 -5
  220. package/dist/cjs/{ios.transition-trBiC95R.js → ios.transition-BOSWOaiK.js} +4 -4
  221. package/dist/cjs/loader.cjs.js +4 -4
  222. package/dist/cjs/{md.transition-CUQECuvD.js → md.transition-B8-wBZqt.js} +4 -4
  223. package/dist/cjs/{notch-controller-sD-lTpdc.js → notch-controller-18PzRGXd.js} +1 -1
  224. package/dist/cjs/{overlays-C2jiBSNQ.js → overlays-TbKsuC-K.js} +5 -5
  225. package/dist/cjs/{status-tap-CCJk5VgT.js → status-tap-BXX8H8_Y.js} +3 -3
  226. package/dist/cjs/{swipe-back-CCpyQb6R.js → swipe-back-CCMaNiP2.js} +2 -2
  227. package/dist/collection/collection-manifest.json +2 -1
  228. package/dist/collection/components/input-otp/input-otp.js +3 -3
  229. package/dist/collection/components/modal/modal.js +7 -4
  230. package/dist/collection/components/picker-column-option/picker-column-option.md.css +13 -1
  231. package/dist/collection/components/router/router.js +55 -14
  232. package/dist/collection/components/router/utils/dom.js +114 -1
  233. package/dist/collection/components/router/utils/path.js +17 -5
  234. package/dist/collection/components/searchbar/searchbar.js +26 -5
  235. package/dist/collection/components/split-pane/split-pane.js +1 -1
  236. package/dist/docs.json +4 -4
  237. package/dist/esm/{animation-CnGMT4ji.js → animation-DLJpuoEz.js} +1 -1
  238. package/dist/esm/{app-globals-DhZjtldk.js → app-globals-D0C5S4hU.js} +1 -1
  239. package/dist/esm/{button-active-BBx21brx.js → button-active-BSpTQmS9.js} +1 -1
  240. package/dist/esm/{config-TO1rZH52.js → config-DQCONYYp.js} +1 -1
  241. package/dist/esm/{data-B9iGR5YO.js → data-DZI70dKr.js} +1 -1
  242. package/dist/esm/{framework-delegate-CyxE1S_P.js → framework-delegate-FnPGymXL.js} +1 -1
  243. package/dist/esm/{hardware-back-button-CTe4XmL7.js → hardware-back-button-B93Gru0Y.js} +1 -1
  244. package/dist/esm/{helpers-Tl8jw6S2.js → helpers-HEqiOzXb.js} +1 -1
  245. package/dist/esm/{index-BtUdxPjv.js → index-BRHzoo00.js} +2 -2
  246. package/dist/esm/{index-B-hkiOUh.js → index-B_dQk_WE.js} +4 -4
  247. package/dist/esm/{index-hW6eNZ3o.js → index-MEDq2S8l.js} +2 -2
  248. package/dist/esm/{index-B2KwgBLx.js → index-Q6UPU0Ay.js} +5 -5
  249. package/dist/esm/{index-IGIE5vDm.js → index-tcQvqkiX.js} +67 -23
  250. package/dist/esm/index.js +12 -12
  251. package/dist/esm/{input-shims-DbrgeeNb.js → input-shims-D10mwcw1.js} +3 -3
  252. package/dist/esm/{input.utils-Bxa_DQ7-.js → input.utils-Y6NgW8bw.js} +2 -2
  253. package/dist/esm/ion-accordion_2.entry.js +3 -3
  254. package/dist/esm/ion-action-sheet.entry.js +8 -8
  255. package/dist/esm/ion-alert.entry.js +9 -9
  256. package/dist/esm/ion-app_8.entry.js +12 -12
  257. package/dist/esm/ion-avatar_3.entry.js +2 -2
  258. package/dist/esm/ion-back-button.entry.js +3 -3
  259. package/dist/esm/ion-backdrop.entry.js +2 -2
  260. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  261. package/dist/esm/ion-button_2.entry.js +3 -3
  262. package/dist/esm/ion-card_5.entry.js +3 -3
  263. package/dist/esm/ion-checkbox.entry.js +3 -3
  264. package/dist/esm/ion-chip.entry.js +2 -2
  265. package/dist/esm/ion-col_3.entry.js +2 -2
  266. package/dist/esm/ion-datetime-button.entry.js +4 -4
  267. package/dist/esm/ion-datetime_3.entry.js +9 -9
  268. package/dist/esm/ion-fab_3.entry.js +3 -3
  269. package/dist/esm/ion-img.entry.js +3 -3
  270. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  271. package/dist/esm/ion-input-otp.entry.js +6 -6
  272. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  273. package/dist/esm/ion-input.entry.js +5 -5
  274. package/dist/esm/ion-item-option_3.entry.js +4 -4
  275. package/dist/esm/ion-item_8.entry.js +3 -3
  276. package/dist/esm/ion-loading.entry.js +8 -8
  277. package/dist/esm/ion-menu_3.entry.js +8 -8
  278. package/dist/esm/ion-modal.entry.js +16 -13
  279. package/dist/esm/ion-nav_2.entry.js +6 -6
  280. package/dist/esm/ion-picker-column-option.entry.js +4 -4
  281. package/dist/esm/ion-picker-column.entry.js +3 -3
  282. package/dist/esm/ion-picker.entry.js +2 -2
  283. package/dist/esm/ion-popover.entry.js +8 -8
  284. package/dist/esm/ion-progress-bar.entry.js +3 -3
  285. package/dist/esm/ion-radio_2.entry.js +3 -3
  286. package/dist/esm/ion-range.entry.js +4 -4
  287. package/dist/esm/ion-refresher_2.entry.js +6 -6
  288. package/dist/esm/ion-reorder_2.entry.js +5 -5
  289. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  290. package/dist/esm/ion-route_4.entry.js +187 -21
  291. package/dist/esm/ion-searchbar.entry.js +29 -8
  292. package/dist/esm/ion-segment-content.entry.js +1 -1
  293. package/dist/esm/ion-segment-view.entry.js +1 -1
  294. package/dist/esm/ion-segment_2.entry.js +3 -3
  295. package/dist/esm/ion-select-modal.entry.js +6 -6
  296. package/dist/esm/ion-select_3.entry.js +7 -7
  297. package/dist/esm/ion-spinner.entry.js +2 -2
  298. package/dist/esm/ion-split-pane.entry.js +2 -2
  299. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  300. package/dist/esm/ion-tab_2.entry.js +3 -3
  301. package/dist/esm/ion-text.entry.js +2 -2
  302. package/dist/esm/ion-textarea.entry.js +5 -5
  303. package/dist/esm/ion-toast.entry.js +9 -9
  304. package/dist/esm/ion-toggle.entry.js +5 -5
  305. package/dist/esm/{ionic-global-DfbeLwcV.js → ionic-global-Cp_eT4sZ.js} +1 -1
  306. package/dist/esm/ionic.js +6 -6
  307. package/dist/esm/{ios.transition--aMF-pDH.js → ios.transition-ClFrsIrS.js} +4 -4
  308. package/dist/esm/loader.js +5 -5
  309. package/dist/esm/{md.transition-BEVbfm8j.js → md.transition-D0msQmzI.js} +4 -4
  310. package/dist/esm/{notch-controller-DAcvKU57.js → notch-controller-DKDjU_O7.js} +1 -1
  311. package/dist/esm/{overlays-F8GHPo-e.js → overlays-TbiM4mdr.js} +5 -5
  312. package/dist/esm/{status-tap-BfJqFSLF.js → status-tap-Kan2W7sh.js} +3 -3
  313. package/dist/esm/{swipe-back-D6Ce7Ca3.js → swipe-back-ZUWwA-KF.js} +2 -2
  314. package/dist/ionic/index.esm.js +1 -1
  315. package/dist/ionic/ionic.esm.js +1 -1
  316. package/dist/ionic/{p-f3e7b155.entry.js → p-00dbb17e.entry.js} +1 -1
  317. package/dist/ionic/{p-f2deaceb.entry.js → p-01f81ea5.entry.js} +1 -1
  318. package/dist/ionic/{p-078037da.entry.js → p-06c232a4.entry.js} +1 -1
  319. package/dist/ionic/{p-1ca9c36b.entry.js → p-0d005398.entry.js} +1 -1
  320. package/dist/ionic/{p-b325a113.entry.js → p-0fa9c382.entry.js} +1 -1
  321. package/dist/ionic/{p-6b97f2a3.entry.js → p-1ae21e4c.entry.js} +1 -1
  322. package/dist/ionic/{p-a805674e.entry.js → p-20b1a044.entry.js} +1 -1
  323. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  324. package/dist/ionic/{p-164f79c4.entry.js → p-2394a9a6.entry.js} +1 -1
  325. package/dist/ionic/{p-6b701daa.entry.js → p-27d30585.entry.js} +1 -1
  326. package/dist/ionic/{p-f8186550.entry.js → p-2bb2cb18.entry.js} +1 -1
  327. package/dist/ionic/{p-8fda6a62.entry.js → p-2f55dc1a.entry.js} +1 -1
  328. package/dist/ionic/p-30bf9737.entry.js +4 -0
  329. package/dist/ionic/{p-031b76f7.entry.js → p-3353c229.entry.js} +1 -1
  330. package/dist/ionic/p-33704f20.entry.js +4 -0
  331. package/dist/ionic/{p-e863ffe8.entry.js → p-37e720da.entry.js} +1 -1
  332. package/dist/ionic/{p-d4e8b473.entry.js → p-390ca786.entry.js} +1 -1
  333. package/dist/ionic/{p-084c25b2.entry.js → p-3a126bca.entry.js} +1 -1
  334. package/dist/ionic/{p-7761ef65.entry.js → p-3a541154.entry.js} +1 -1
  335. package/dist/ionic/{p-2a68388b.entry.js → p-3a7d1e91.entry.js} +1 -1
  336. package/dist/ionic/{p-a893c61c.entry.js → p-3ae5f277.entry.js} +1 -1
  337. package/dist/ionic/{p-87125490.entry.js → p-4745f534.entry.js} +1 -1
  338. package/dist/ionic/{p-294f4bb5.entry.js → p-4858af1f.entry.js} +1 -1
  339. package/dist/ionic/{p-53f750a5.entry.js → p-4baa5b82.entry.js} +1 -1
  340. package/dist/ionic/{p-7ca71c83.entry.js → p-4dc1c33c.entry.js} +1 -1
  341. package/dist/ionic/{p-e663bc5a.entry.js → p-4e92a11f.entry.js} +1 -1
  342. package/dist/ionic/{p-6af16209.entry.js → p-50e1194a.entry.js} +1 -1
  343. package/dist/ionic/{p-c3cce9d8.entry.js → p-5d1da0a2.entry.js} +1 -1
  344. package/dist/ionic/{p-a84f2d21.entry.js → p-75dc25ba.entry.js} +1 -1
  345. package/dist/ionic/{p-f5dfb9a3.entry.js → p-81ea5652.entry.js} +1 -1
  346. package/dist/ionic/{p-1b169fb6.entry.js → p-84d5ce05.entry.js} +1 -1
  347. package/dist/ionic/{p-2fd110aa.entry.js → p-874b4bd8.entry.js} +1 -1
  348. package/dist/ionic/{p-23ec35e4.entry.js → p-8c8eee7d.entry.js} +1 -1
  349. package/dist/ionic/{p-301c43f8.entry.js → p-8eb8ee76.entry.js} +1 -1
  350. package/dist/ionic/p-8fce95d5.entry.js +4 -0
  351. package/dist/ionic/{p-7620be24.entry.js → p-94f2a736.entry.js} +1 -1
  352. package/dist/ionic/{p-aa812c4b.entry.js → p-9a65ac7f.entry.js} +1 -1
  353. package/dist/ionic/{p-bcaa827e.entry.js → p-9f1103ce.entry.js} +1 -1
  354. package/dist/ionic/{p-BAt5H1ac.js → p-BGqMS-oh.js} +1 -1
  355. package/dist/ionic/{p-DB_iPQC-.js → p-BUFIpxKM.js} +1 -1
  356. package/dist/ionic/{p-CmFz1Mjc.js → p-CFlfIb2g.js} +1 -1
  357. package/dist/ionic/p-CwdymDLH.js +4 -0
  358. package/dist/ionic/p-Cx3IXROA.js +4 -0
  359. package/{components/p-BS1TtEiJ.js → dist/ionic/p-DAAFkPFT.js} +1 -1
  360. package/{components/p-ak_d-z48.js → dist/ionic/p-DC3RagnA.js} +1 -1
  361. package/dist/ionic/{p-CGmVTdWh.js → p-DIuEbVLu.js} +1 -1
  362. package/dist/ionic/p-DSG2s2Eb.js +4 -0
  363. package/dist/ionic/{p-DcSNwXfb.js → p-Dfbt-q2k.js} +1 -1
  364. package/dist/ionic/p-DoJvtrbw.js +4 -0
  365. package/dist/ionic/{p-gbVXD275.js → p-DzWaWHGc.js} +1 -1
  366. package/{components/p-D6NJwNJN.js → dist/ionic/p-KjNvRoEp.js} +1 -1
  367. package/dist/ionic/{p-NFFyoJ4Q.js → p-Nqf6uvGh.js} +1 -1
  368. package/dist/ionic/p-SNAkTDfm.js +4 -0
  369. package/{components/p-9VcRUwdB.js → dist/ionic/p-VAemlbDS.js} +1 -1
  370. package/dist/ionic/{p-B8xlpH8p.js → p-Wk5HzclC.js} +1 -1
  371. package/dist/ionic/{p-9cbc6f1f.entry.js → p-a21add2f.entry.js} +1 -1
  372. package/dist/ionic/{p-370a60ee.entry.js → p-a3bdcae6.entry.js} +1 -1
  373. package/dist/ionic/{p-28a9e720.entry.js → p-aa5d6b8f.entry.js} +1 -1
  374. package/dist/ionic/{p-045a6a42.entry.js → p-c0fb8edd.entry.js} +1 -1
  375. package/dist/ionic/{p-80cac7a2.entry.js → p-c4d8641b.entry.js} +1 -1
  376. package/dist/ionic/{p-9833cf63.entry.js → p-c6e49f3f.entry.js} +1 -1
  377. package/dist/ionic/{p-ca31010f.entry.js → p-dfa8d673.entry.js} +1 -1
  378. package/dist/ionic/{p-0d8b5c38.entry.js → p-e0be05c5.entry.js} +1 -1
  379. package/dist/ionic/{p-f69a5f71.entry.js → p-e847a888.entry.js} +1 -1
  380. package/dist/ionic/{p-16813ce7.entry.js → p-ec090e0a.entry.js} +1 -1
  381. package/dist/ionic/{p-07506134.entry.js → p-ef4c3bee.entry.js} +1 -1
  382. package/dist/ionic/{p-fdbc90d4.entry.js → p-fabcce6c.entry.js} +1 -1
  383. package/dist/ionic/{p-050873ec.entry.js → p-facfde02.entry.js} +1 -1
  384. package/dist/ionic/{p-9a851035.entry.js → p-fd7eebc4.entry.js} +1 -1
  385. package/dist/ionic/p-mjKAFv89.js +4 -0
  386. package/dist/ionic/p-tcQvqkiX.js +5 -0
  387. package/{components/p-Cy5XSfIk.js → dist/ionic/p-viFHDgRs.js} +1 -1
  388. package/dist/ionic/{p-DTPR1Wpn.js → p-xOfi7-Zn.js} +1 -1
  389. package/dist/ionic/p-xWb6fgfq.js +4 -0
  390. package/dist/types/components/router/router.d.ts +7 -0
  391. package/dist/types/components/router/utils/dom.d.ts +10 -0
  392. package/dist/types/components/router/utils/interface.d.ts +2 -0
  393. package/dist/types/components/router/utils/path.d.ts +3 -2
  394. package/dist/types/components/searchbar/searchbar.d.ts +1 -0
  395. package/dist/types/components.d.ts +2 -2
  396. package/dist/types/stencil-public-runtime.d.ts +4 -1
  397. package/hydrate/index.js +1092 -428
  398. package/hydrate/index.mjs +1092 -428
  399. package/package.json +4 -4
  400. package/components/p-BJoMtgfR.js +0 -4
  401. package/components/p-BNAG-aVv.js +0 -4
  402. package/components/p-BeXMwcl5.js +0 -4
  403. package/components/p-BegtE7nr.js +0 -4
  404. package/components/p-C4jPsTQa.js +0 -4
  405. package/components/p-C59ryAuS.js +0 -4
  406. package/components/p-CU1SSH8_.js +0 -4
  407. package/components/p-CgqKJg96.js +0 -4
  408. package/components/p-CneGxKsZ.js +0 -4
  409. package/components/p-Csw8xuz4.js +0 -4
  410. package/components/p-DVJHuxRx.js +0 -4
  411. package/dist/ionic/p-23fac490.entry.js +0 -4
  412. package/dist/ionic/p-2f5a8140.entry.js +0 -4
  413. package/dist/ionic/p-771b27a5.entry.js +0 -4
  414. package/dist/ionic/p-BW_TRJm8.js +0 -4
  415. package/dist/ionic/p-Bum7H1fw.js +0 -4
  416. package/dist/ionic/p-BxIcPWoV.js +0 -4
  417. package/dist/ionic/p-CYbRmDdy.js +0 -4
  418. package/dist/ionic/p-CtA-yJYy.js +0 -4
  419. package/dist/ionic/p-Dt1wGZdq.js +0 -4
  420. package/dist/ionic/p-DtVZDHlS.js +0 -4
  421. package/dist/ionic/p-IGIE5vDm.js +0 -5
  422. package/dist/ionic/p-cbe95f72.entry.js +0 -4
  423. package/dist/ionic/p-hNN3VvaC.js +0 -4
package/hydrate/index.js CHANGED
@@ -398,7 +398,7 @@ const appGlobalScript = initialize || (() => {});
398
398
  const globalScripts = appGlobalScript;
399
399
 
400
400
  /*
401
- Stencil Hydrate Platform v4.43.0 | MIT Licensed | https://stenciljs.com
401
+ Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
402
402
  */
403
403
  var __create = Object.create;
404
404
  var __defProp = Object.defineProperty;
@@ -433,7 +433,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
433
433
  __defProp(target, "default", { value: mod, enumerable: true }) ,
434
434
  mod
435
435
  ));
436
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
436
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
437
437
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
438
438
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
439
439
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
@@ -675,15 +675,26 @@ var TYPE_CONSTANT = "type";
675
675
  var VALUE_CONSTANT = "value";
676
676
  var SERIALIZED_PREFIX = "serialized:";
677
677
 
678
+ // src/utils/get-prop-descriptor.ts
679
+ function getPropertyDescriptor(obj, memberName, getOnly) {
680
+ const stopAt = typeof HTMLElement !== "undefined" ? HTMLElement.prototype : null;
681
+ while (obj && obj !== stopAt) {
682
+ const desc = Object.getOwnPropertyDescriptor(obj, memberName);
683
+ if (desc && (!getOnly || desc.get)) return desc;
684
+ obj = Object.getPrototypeOf(obj);
685
+ }
686
+ return void 0;
687
+ }
688
+
678
689
  // src/utils/es2022-rewire-class-members.ts
679
690
  var reWireGetterSetter = (instance, hostRef) => {
680
- var _a;
691
+ var _a2;
681
692
  const cmpMeta = hostRef.$cmpMeta$;
682
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
693
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
683
694
  members.map(([memberName, [memberFlags]]) => {
684
695
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
685
696
  const ogValue = instance[memberName];
686
- const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);
697
+ const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName, true) || Object.getOwnPropertyDescriptor(instance, memberName);
687
698
  if (ogDescriptor) {
688
699
  Object.defineProperty(instance, memberName, {
689
700
  get() {
@@ -696,18 +707,14 @@ var reWireGetterSetter = (instance, hostRef) => {
696
707
  enumerable: true
697
708
  });
698
709
  }
699
- instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;
710
+ if (hostRef.$instanceValues$.has(memberName)) {
711
+ instance[memberName] = hostRef.$instanceValues$.get(memberName);
712
+ } else if (ogValue !== void 0) {
713
+ instance[memberName] = ogValue;
714
+ }
700
715
  }
701
716
  });
702
717
  };
703
- function getPropertyDescriptor(obj, memberName) {
704
- while (obj) {
705
- const desc = Object.getOwnPropertyDescriptor(obj, memberName);
706
- if (desc == null ? void 0 : desc.get) return desc;
707
- obj = Object.getPrototypeOf(obj);
708
- }
709
- return void 0;
710
- }
711
718
 
712
719
  // src/runtime/runtime-constants.ts
713
720
  var CONTENT_REF_ID = "r";
@@ -735,13 +742,13 @@ function createStyleSheetIfNeededAndSupported(styles2) {
735
742
  // src/utils/shadow-root.ts
736
743
  var globalStyleSheet;
737
744
  function createShadowRoot(cmpMeta) {
738
- var _a;
745
+ var _a2;
739
746
  const opts = { mode: "open" };
740
747
  {
741
748
  opts.delegatesFocus = !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */);
742
749
  }
743
750
  const shadowRoot = this.attachShadow(opts);
744
- if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
751
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a2 = createStyleSheetIfNeededAndSupported()) != null ? _a2 : null;
745
752
  if (globalStyleSheet) {
746
753
  {
747
754
  shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
@@ -877,8 +884,8 @@ function dispatchSlotChangeEvent(elm) {
877
884
  elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
878
885
  }
879
886
  function findSlotFromSlottedNode(slottedNode, parentHost) {
880
- var _a;
881
- parentHost = parentHost || ((_a = slottedNode["s-ol"]) == null ? void 0 : _a.parentElement);
887
+ var _a2;
888
+ parentHost = parentHost || ((_a2 = slottedNode["s-ol"]) == null ? void 0 : _a2.parentElement);
882
889
  if (!parentHost) return { slotNode: null, slotName: "" };
883
890
  const slotName = slottedNode["s-sn"] = getSlotName(slottedNode) || "";
884
891
  const childNodes = internalCall(parentHost, "childNodes");
@@ -912,8 +919,8 @@ var uniqueTime = (key, measureText) => {
912
919
 
913
920
  // src/utils/query-nonce-meta-tag-content.ts
914
921
  function queryNonceMetaTagContent(doc) {
915
- var _a, _b, _c;
916
- return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
922
+ var _a2, _b, _c;
923
+ return (_c = (_b = (_a2 = doc.head) == null ? void 0 : _a2.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
917
924
  }
918
925
 
919
926
  // src/runtime/styles.ts
@@ -926,7 +933,7 @@ var registerStyle = (scopeId2, cssText, allowCS) => {
926
933
  styles.set(scopeId2, style);
927
934
  };
928
935
  var addStyle = (styleContainerNode, cmpMeta, mode) => {
929
- var _a;
936
+ var _a2;
930
937
  const scopeId2 = getScopeId(cmpMeta, mode);
931
938
  const style = styles.get(scopeId2);
932
939
  if (!win$2.document) {
@@ -947,7 +954,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
947
954
  } else if (!appliedStyles.has(scopeId2)) {
948
955
  styleElm = win$2.document.createElement("style");
949
956
  styleElm.textContent = style;
950
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win$2.document);
957
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win$2.document);
951
958
  if (nonce != null) {
952
959
  styleElm.setAttribute("nonce", nonce);
953
960
  }
@@ -965,7 +972,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
965
972
  } else if ("host" in styleContainerNode) {
966
973
  {
967
974
  const existingStyleContainer = styleContainerNode.querySelector("style");
968
- if (existingStyleContainer) {
975
+ if (existingStyleContainer && true) {
969
976
  existingStyleContainer.textContent = style + existingStyleContainer.textContent;
970
977
  } else {
971
978
  styleContainerNode.prepend(styleElm);
@@ -1133,7 +1140,7 @@ var convertToPrivate = (node) => {
1133
1140
 
1134
1141
  // src/runtime/client-hydrate.ts
1135
1142
  var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1136
- var _a, _b, _c, _d;
1143
+ var _a2, _b, _c, _d;
1137
1144
  const endHydrate = createTime("hydrateClient", tagName);
1138
1145
  const shadowRoot = hostElm.shadowRoot;
1139
1146
  const childRenderNodes = [];
@@ -1180,7 +1187,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1180
1187
  if (childRenderNode.$tag$ === "slot") {
1181
1188
  node["s-cr"] = hostElm["s-cr"];
1182
1189
  }
1183
- } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1190
+ } else if (((_a2 = childRenderNode.$tag$) == null ? void 0 : _a2.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1184
1191
  const cmpMeta = getHostRef(childRenderNode.$elm$);
1185
1192
  if (cmpMeta) {
1186
1193
  const scopeId3 = getScopeId(
@@ -1527,10 +1534,10 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1527
1534
  parentVNode.$children$[childVNode.$index$] = childVNode;
1528
1535
  }
1529
1536
  var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1530
- var _a, _b;
1537
+ var _a2, _b;
1531
1538
  let slottedNode = slotNode.nextSibling;
1532
1539
  slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
1533
- if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + "."))) return;
1540
+ if (!slottedNode || ((_a2 = slottedNode.nodeValue) == null ? void 0 : _a2.startsWith(SLOT_NODE_ID + "."))) return;
1534
1541
  do {
1535
1542
  if (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (!slottedNode["getAttribute"] || !slottedNode.getAttribute("slot")) && (slottedNode.nodeType === 8 /* CommentNode */ || slottedNode.nodeType === 3 /* TextNode */))) {
1536
1543
  slottedNode["s-sn"] = slotName;
@@ -1962,8 +1969,33 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
1962
1969
  var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
1963
1970
  var setMode = (handler) => modeResolutionChain.push(handler);
1964
1971
  var getMode = (ref) => {
1965
- var _a;
1966
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$modeName$;
1972
+ var _a2;
1973
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$modeName$;
1974
+ };
1975
+
1976
+ // src/runtime/normalize-watchers.ts
1977
+ var normalizeWatchers = (raw) => {
1978
+ if (!raw) return void 0;
1979
+ const keys = Object.keys(raw);
1980
+ if (keys.length === 0) return void 0;
1981
+ let hasLegacy = false;
1982
+ for (const propName of keys) {
1983
+ if (hasLegacy) break;
1984
+ for (const h2 of raw[propName]) {
1985
+ if (typeof h2 === "string") {
1986
+ hasLegacy = true;
1987
+ break;
1988
+ }
1989
+ }
1990
+ }
1991
+ if (!hasLegacy) return raw;
1992
+ const out = {};
1993
+ for (const propName of keys) {
1994
+ out[propName] = raw[propName].map(
1995
+ (h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
1996
+ );
1997
+ }
1998
+ return out;
1967
1999
  };
1968
2000
 
1969
2001
  // src/utils/remote-value.ts
@@ -2062,11 +2094,19 @@ var RemoteValue = class _RemoteValue {
2062
2094
  };
2063
2095
 
2064
2096
  // src/utils/serialize.ts
2097
+ function decodeBase64Unicode(base64) {
2098
+ const binary = atob(base64);
2099
+ const bytes = new Uint8Array(binary.length);
2100
+ for (let i2 = 0; i2 < binary.length; i2++) {
2101
+ bytes[i2] = binary.charCodeAt(i2);
2102
+ }
2103
+ return new TextDecoder().decode(bytes);
2104
+ }
2065
2105
  function deserializeProperty(value) {
2066
2106
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
2067
2107
  return value;
2068
2108
  }
2069
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
2109
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
2070
2110
  }
2071
2111
 
2072
2112
  // src/runtime/parse-property-value.ts
@@ -2092,8 +2132,8 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
2092
2132
  return propValue;
2093
2133
  };
2094
2134
  var getElement = (ref) => {
2095
- var _a;
2096
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ ;
2135
+ var _a2;
2136
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$hostElement$ ;
2097
2137
  };
2098
2138
 
2099
2139
  // src/runtime/event-emitter.ts
@@ -2318,7 +2358,7 @@ var isSvgMode = false;
2318
2358
  var refCallbacksToRemove = [];
2319
2359
  var refCallbacksToAttach = [];
2320
2360
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2321
- var _a;
2361
+ var _a2;
2322
2362
  const newVNode2 = newParentVNode.$children$[childIndex];
2323
2363
  let i2 = 0;
2324
2364
  let elm;
@@ -2389,7 +2429,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2389
2429
  elm["s-sr"] = true;
2390
2430
  elm["s-cr"] = contentRef;
2391
2431
  elm["s-sn"] = newVNode2.$name$ || "";
2392
- elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
2432
+ elm["s-rf"] = (_a2 = newVNode2.$attrs$) == null ? void 0 : _a2.ref;
2393
2433
  patchSlotNode(elm);
2394
2434
  oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
2395
2435
  if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
@@ -2731,12 +2771,12 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
2731
2771
  }
2732
2772
  };
2733
2773
  function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2734
- var _a, _b;
2774
+ var _a2, _b;
2735
2775
  let scopeId2;
2736
2776
  if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
2737
2777
  const scopeName = slotNode["s-sn"];
2738
2778
  const hostName = slotNode["s-hn"];
2739
- (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
2779
+ (_a2 = newParent.classList) == null ? void 0 : _a2.add(scopeId2 + "-s");
2740
2780
  if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
2741
2781
  let child = (oldParent.__childNodes || oldParent.childNodes)[0];
2742
2782
  let found = false;
@@ -2752,7 +2792,7 @@ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2752
2792
  }
2753
2793
  }
2754
2794
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2755
- var _a, _d, _e;
2795
+ var _a2, _d, _e;
2756
2796
  const hostElm = hostRef.$hostElement$;
2757
2797
  const cmpMeta = hostRef.$cmpMeta$;
2758
2798
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -2808,7 +2848,7 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2808
2848
  const nodeToRelocate = relocateData.$nodeToRelocate$;
2809
2849
  const slotRefNode = relocateData.$slotRefNode$;
2810
2850
  if (nodeToRelocate.nodeType === 1 /* ElementNode */ && isInitialLoad) {
2811
- nodeToRelocate["s-ih"] = (_a = nodeToRelocate.hidden) != null ? _a : false;
2851
+ nodeToRelocate["s-ih"] = (_a2 = nodeToRelocate.hidden) != null ? _a2 : false;
2812
2852
  }
2813
2853
  if (slotRefNode) {
2814
2854
  const parentNodeRef = slotRefNode.parentNode;
@@ -2868,14 +2908,14 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2868
2908
  flushQueuedRefCallbacks();
2869
2909
  };
2870
2910
  var slotReferenceDebugNode = (slotVNode) => {
2871
- var _a;
2872
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2911
+ var _a2;
2912
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2873
2913
  `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
2874
2914
  );
2875
2915
  };
2876
2916
  var originalLocationDebugNode = (nodeToRelocate) => {
2877
- var _a;
2878
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2917
+ var _a2;
2918
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2879
2919
  `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
2880
2920
  );
2881
2921
  };
@@ -2952,7 +2992,7 @@ var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then
2952
2992
  }) : fn();
2953
2993
  var isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === "function";
2954
2994
  var updateComponent = async (hostRef, instance, isInitialLoad) => {
2955
- var _a;
2995
+ var _a2;
2956
2996
  const elm = hostRef.$hostElement$;
2957
2997
  const endUpdate = createTime("update", hostRef.$cmpMeta$.$tagName$);
2958
2998
  const rc = elm["s-rc"];
@@ -2984,7 +3024,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
2984
3024
  endRender();
2985
3025
  endUpdate();
2986
3026
  {
2987
- const childrenPromises = (_a = elm["s-p"]) != null ? _a : [];
3027
+ const childrenPromises = (_a2 = elm["s-p"]) != null ? _a2 : [];
2988
3028
  const postUpdate = () => postUpdateComponent(hostRef);
2989
3029
  if (childrenPromises.length === 0) {
2990
3030
  postUpdate();
@@ -3058,13 +3098,13 @@ var forceUpdate = (ref) => {
3058
3098
  return false;
3059
3099
  };
3060
3100
  var appDidLoad = (who) => {
3061
- var _a;
3101
+ var _a2;
3062
3102
  if (BUILD.asyncQueue) {
3063
3103
  plt.$flags$ |= 2 /* appLoaded */;
3064
3104
  }
3065
3105
  nextTick(() => emitEvent(win$2, "appload", { detail: { namespace: NAMESPACE } }));
3066
3106
  {
3067
- if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {
3107
+ if ((_a2 = plt.$orgLocNodes$) == null ? void 0 : _a2.size) {
3068
3108
  plt.$orgLocNodes$.clear();
3069
3109
  }
3070
3110
  }
@@ -3080,8 +3120,8 @@ var safeCall$1 = (instance, method, arg, elm) => {
3080
3120
  return void 0;
3081
3121
  };
3082
3122
  var addHydratedFlag = (elm) => {
3083
- var _a;
3084
- return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") ;
3123
+ var _a2;
3124
+ return elm.classList.add((_a2 = BUILD.hydratedSelectorName) != null ? _a2 : "hydrated") ;
3085
3125
  };
3086
3126
  var serverSideConnected = (elm) => {
3087
3127
  const children = elm.children;
@@ -3156,12 +3196,12 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3156
3196
 
3157
3197
  // src/runtime/proxy-component.ts
3158
3198
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3159
- var _a;
3199
+ var _a2;
3160
3200
  const prototype = Cstr.prototype;
3161
3201
  {
3162
3202
  {
3163
3203
  if (Cstr.watchers && !cmpMeta.$watchers$) {
3164
- cmpMeta.$watchers$ = Cstr.watchers;
3204
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3165
3205
  }
3166
3206
  if (Cstr.deserializers && !cmpMeta.$deserializers$) {
3167
3207
  cmpMeta.$deserializers$ = Cstr.deserializers;
@@ -3170,10 +3210,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3170
3210
  cmpMeta.$serializers$ = Cstr.serializers;
3171
3211
  }
3172
3212
  }
3173
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
3213
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
3174
3214
  members.map(([memberName, [memberFlags]]) => {
3175
3215
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
3176
- const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
3216
+ const { get: origGetter, set: origSetter } = getPropertyDescriptor(prototype, memberName) || {};
3177
3217
  if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
3178
3218
  if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
3179
3219
  if (!origGetter) {
@@ -3248,7 +3288,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3248
3288
  }
3249
3289
  if (!Cstr.isProxied) {
3250
3290
  {
3251
- cmpMeta.$watchers$ = Cstr.watchers;
3291
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3252
3292
  cmpMeta.$serializers$ = Cstr.serializers;
3253
3293
  cmpMeta.$deserializers$ = Cstr.deserializers;
3254
3294
  }
@@ -3414,11 +3454,11 @@ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) =>
3414
3454
  }
3415
3455
  };
3416
3456
  var hostListenerProxy = (hostRef, methodName) => (ev) => {
3417
- var _a;
3457
+ var _a2;
3418
3458
  try {
3419
3459
  {
3420
3460
  if (hostRef.$flags$ & 256 /* isListenReady */) {
3421
- (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
3461
+ (_a2 = hostRef.$lazyInstance$) == null ? void 0 : _a2[methodName](ev);
3422
3462
  } else {
3423
3463
  (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
3424
3464
  }
@@ -3452,7 +3492,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3452
3492
  const orgLocationNodes = [];
3453
3493
  parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);
3454
3494
  orgLocationNodes.forEach((orgLocationNode) => {
3455
- var _a;
3495
+ var _a2;
3456
3496
  if (orgLocationNode != null && orgLocationNode["s-nr"]) {
3457
3497
  const nodeRef = orgLocationNode["s-nr"];
3458
3498
  let hostId = nodeRef["s-host-id"];
@@ -3470,7 +3510,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3470
3510
  }
3471
3511
  } else if (nodeRef.nodeType === 3 /* TextNode */) {
3472
3512
  if (hostId === 0) {
3473
- const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();
3513
+ const textContent = (_a2 = nodeRef.nodeValue) == null ? void 0 : _a2.trim();
3474
3514
  if (textContent === "") {
3475
3515
  orgLocationNode.remove();
3476
3516
  return;
@@ -3500,7 +3540,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3500
3540
  }
3501
3541
  };
3502
3542
  var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3503
- var _a;
3543
+ var _a2;
3504
3544
  if (node == null) {
3505
3545
  return;
3506
3546
  }
@@ -3508,7 +3548,7 @@ var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3508
3548
  orgLocationNodes.push(node);
3509
3549
  }
3510
3550
  if (node.nodeType === 1 /* ElementNode */) {
3511
- const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];
3551
+ const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a2 = node.shadowRoot) == null ? void 0 : _a2.childNodes) || [])];
3512
3552
  childNodes.forEach((childNode) => {
3513
3553
  const hostRef = getHostRef(childNode);
3514
3554
  if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {
@@ -3734,8 +3774,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
3734
3774
  };
3735
3775
 
3736
3776
  // node_modules/minimatch/dist/esm/ast.js
3777
+ var _a;
3737
3778
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
3738
3779
  var isExtglobType = (c) => types.has(c);
3780
+ var isExtglobAST = (c) => isExtglobType(c.type);
3781
+ var adoptionMap = /* @__PURE__ */ new Map([
3782
+ ["!", ["@"]],
3783
+ ["?", ["?", "@"]],
3784
+ ["@", ["@"]],
3785
+ ["*", ["*", "+", "?", "@"]],
3786
+ ["+", ["+", "@"]]
3787
+ ]);
3788
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
3789
+ ["!", ["?"]],
3790
+ ["@", ["?"]],
3791
+ ["+", ["?", "*"]]
3792
+ ]);
3793
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
3794
+ ["!", ["?", "@"]],
3795
+ ["?", ["?", "@"]],
3796
+ ["@", ["?", "@"]],
3797
+ ["*", ["*", "+", "?", "@"]],
3798
+ ["+", ["+", "@", "?", "*"]]
3799
+ ]);
3800
+ var usurpMap = /* @__PURE__ */ new Map([
3801
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
3802
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
3803
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
3804
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
3805
+ ]);
3739
3806
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
3740
3807
  var startNoDot = "(?!\\.)";
3741
3808
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -3745,8 +3812,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
3745
3812
  var qmark = "[^/]";
3746
3813
  var star = qmark + "*?";
3747
3814
  var starNoEmpty = qmark + "+?";
3748
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
3749
- var _AST = class _AST {
3815
+ var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn;
3816
+ var AST = class {
3750
3817
  constructor(type, parent, options = {}) {
3751
3818
  __privateAdd(this, _AST_instances);
3752
3819
  __publicField(this, "type");
@@ -3799,44 +3866,44 @@ var _AST = class _AST {
3799
3866
  for (const p of parts) {
3800
3867
  if (p === "")
3801
3868
  continue;
3802
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
3869
+ if (typeof p !== "string" && !(p instanceof _a && __privateGet(p, _parent) === this)) {
3803
3870
  throw new Error("invalid part: " + p);
3804
3871
  }
3805
3872
  __privateGet(this, _parts).push(p);
3806
3873
  }
3807
3874
  }
3808
3875
  toJSON() {
3809
- var _a;
3876
+ var _a2;
3810
3877
  const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];
3811
3878
  if (this.isStart() && !this.type)
3812
3879
  ret.unshift([]);
3813
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")) {
3880
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
3814
3881
  ret.push({});
3815
3882
  }
3816
3883
  return ret;
3817
3884
  }
3818
3885
  isStart() {
3819
- var _a;
3886
+ var _a2;
3820
3887
  if (__privateGet(this, _root) === this)
3821
3888
  return true;
3822
- if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))
3889
+ if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
3823
3890
  return false;
3824
3891
  if (__privateGet(this, _parentIndex) === 0)
3825
3892
  return true;
3826
3893
  const p = __privateGet(this, _parent);
3827
3894
  for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {
3828
3895
  const pp = __privateGet(p, _parts)[i2];
3829
- if (!(pp instanceof _AST && pp.type === "!")) {
3896
+ if (!(pp instanceof _a && pp.type === "!")) {
3830
3897
  return false;
3831
3898
  }
3832
3899
  }
3833
3900
  return true;
3834
3901
  }
3835
3902
  isEnd() {
3836
- var _a, _b, _c;
3903
+ var _a2, _b, _c;
3837
3904
  if (__privateGet(this, _root) === this)
3838
3905
  return true;
3839
- if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")
3906
+ if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
3840
3907
  return true;
3841
3908
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
3842
3909
  return false;
@@ -3852,16 +3919,16 @@ var _AST = class _AST {
3852
3919
  this.push(part.clone(this));
3853
3920
  }
3854
3921
  clone(parent) {
3855
- const c = new _AST(this.type, parent);
3922
+ const c = new _a(this.type, parent);
3856
3923
  for (const p of __privateGet(this, _parts)) {
3857
3924
  c.copyIn(p);
3858
3925
  }
3859
3926
  return c;
3860
3927
  }
3861
3928
  static fromGlob(pattern, options = {}) {
3862
- var _a;
3863
- const ast = new _AST(null, void 0, options);
3864
- __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);
3929
+ var _a2;
3930
+ const ast = new _a(null, void 0, options);
3931
+ __privateMethod(_a2 = _a, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options, 0);
3865
3932
  return ast;
3866
3933
  }
3867
3934
  // returns the regular expression if there's magic, or the unescaped
@@ -3954,15 +4021,17 @@ var _AST = class _AST {
3954
4021
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
3955
4022
  // or start or whatever) and prepend ^ or / at the Regexp construction.
3956
4023
  toRegExpSource(allowDot) {
3957
- var _a;
4024
+ var _a2;
3958
4025
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
3959
- if (__privateGet(this, _root) === this)
4026
+ if (__privateGet(this, _root) === this) {
4027
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
3960
4028
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
3961
- if (!this.type) {
4029
+ }
4030
+ if (!isExtglobAST(this)) {
3962
4031
  const noEmpty = this.isStart() && this.isEnd();
3963
4032
  const src = __privateGet(this, _parts).map((p) => {
3964
- var _a2;
3965
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
4033
+ var _a3;
4034
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _a, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
3966
4035
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
3967
4036
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
3968
4037
  return re;
@@ -3985,7 +4054,7 @@ var _AST = class _AST {
3985
4054
  }
3986
4055
  }
3987
4056
  let end = "";
3988
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!") {
4057
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
3989
4058
  end = "(?:$|\\/)";
3990
4059
  }
3991
4060
  const final2 = start2 + src + end;
@@ -4001,12 +4070,13 @@ var _AST = class _AST {
4001
4070
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
4002
4071
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
4003
4072
  const s = this.toString();
4004
- __privateSet(this, _parts, [s]);
4005
- this.type = null;
4006
- __privateSet(this, _hasMagic, void 0);
4073
+ const me = this;
4074
+ __privateSet(me, _parts, [s]);
4075
+ me.type = null;
4076
+ __privateSet(me, _hasMagic, void 0);
4007
4077
  return [s, unescape(this.toString()), false, false];
4008
4078
  }
4009
- let bodyDotAllowed = !repeated || allowDot || dot || false ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4079
+ let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4010
4080
  if (bodyDotAllowed === body) {
4011
4081
  bodyDotAllowed = "";
4012
4082
  }
@@ -4072,8 +4142,9 @@ fillNegs_fn = function() {
4072
4142
  return this;
4073
4143
  };
4074
4144
  _AST_static = new WeakSet();
4075
- parseAST_fn = function(str, ast, pos, opt) {
4076
- var _a, _b;
4145
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
4146
+ var _a2, _b, _c, _d, _e;
4147
+ const maxDepth = (_a2 = opt.maxExtglobRecursion) != null ? _a2 : 2;
4077
4148
  let escaping = false;
4078
4149
  let inBrace = false;
4079
4150
  let braceStart = -1;
@@ -4105,11 +4176,12 @@ parseAST_fn = function(str, ast, pos, opt) {
4105
4176
  acc2 += c;
4106
4177
  continue;
4107
4178
  }
4108
- if (!opt.noext && isExtglobType(c) && str.charAt(i3) === "(") {
4179
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i3) === "(" && extDepth <= maxDepth;
4180
+ if (doRecurse) {
4109
4181
  ast.push(acc2);
4110
4182
  acc2 = "";
4111
- const ext2 = new _AST(c, ast);
4112
- i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);
4183
+ const ext2 = new _a(c, ast);
4184
+ i3 = __privateMethod(_b = _a, _AST_static, parseAST_fn).call(_b, str, ext2, i3, opt, extDepth + 1);
4113
4185
  ast.push(ext2);
4114
4186
  continue;
4115
4187
  }
@@ -4119,7 +4191,7 @@ parseAST_fn = function(str, ast, pos, opt) {
4119
4191
  return i3;
4120
4192
  }
4121
4193
  let i2 = pos + 1;
4122
- let part = new _AST(null, ast);
4194
+ let part = new _a(null, ast);
4123
4195
  const parts = [];
4124
4196
  let acc = "";
4125
4197
  while (i2 < str.length) {
@@ -4146,19 +4218,22 @@ parseAST_fn = function(str, ast, pos, opt) {
4146
4218
  acc += c;
4147
4219
  continue;
4148
4220
  }
4149
- if (isExtglobType(c) && str.charAt(i2) === "(") {
4221
+ const doRecurse = isExtglobType(c) && str.charAt(i2) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
4222
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
4223
+ if (doRecurse) {
4224
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
4150
4225
  part.push(acc);
4151
4226
  acc = "";
4152
- const ext2 = new _AST(c, part);
4227
+ const ext2 = new _a(c, part);
4153
4228
  part.push(ext2);
4154
- i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);
4229
+ i2 = __privateMethod(_e = _a, _AST_static, parseAST_fn).call(_e, str, ext2, i2, opt, extDepth + depthAdd);
4155
4230
  continue;
4156
4231
  }
4157
4232
  if (c === "|") {
4158
4233
  part.push(acc);
4159
4234
  acc = "";
4160
4235
  parts.push(part);
4161
- part = new _AST(null, ast);
4236
+ part = new _a(null, ast);
4162
4237
  continue;
4163
4238
  }
4164
4239
  if (c === ")") {
@@ -4177,6 +4252,100 @@ parseAST_fn = function(str, ast, pos, opt) {
4177
4252
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
4178
4253
  return i2;
4179
4254
  };
4255
+ canAdoptWithSpace_fn = function(child) {
4256
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
4257
+ };
4258
+ canAdopt_fn = function(child, map2 = adoptionMap) {
4259
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
4260
+ return false;
4261
+ }
4262
+ const gc = __privateGet(child, _parts)[0];
4263
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4264
+ return false;
4265
+ }
4266
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
4267
+ };
4268
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
4269
+ var _a2;
4270
+ return !!((_a2 = map2.get(this.type)) == null ? void 0 : _a2.includes(c));
4271
+ };
4272
+ adoptWithSpace_fn = function(child, index) {
4273
+ const gc = __privateGet(child, _parts)[0];
4274
+ const blank = new _a(null, gc, this.options);
4275
+ __privateGet(blank, _parts).push("");
4276
+ gc.push(blank);
4277
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
4278
+ };
4279
+ adopt_fn = function(child, index) {
4280
+ const gc = __privateGet(child, _parts)[0];
4281
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
4282
+ for (const p of __privateGet(gc, _parts)) {
4283
+ if (typeof p === "object")
4284
+ __privateSet(p, _parent, this);
4285
+ }
4286
+ __privateSet(this, _toString, void 0);
4287
+ };
4288
+ canUsurpType_fn = function(c) {
4289
+ const m = usurpMap.get(this.type);
4290
+ return !!(m == null ? void 0 : m.has(c));
4291
+ };
4292
+ canUsurp_fn = function(child) {
4293
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
4294
+ return false;
4295
+ }
4296
+ const gc = __privateGet(child, _parts)[0];
4297
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4298
+ return false;
4299
+ }
4300
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
4301
+ };
4302
+ usurp_fn = function(child) {
4303
+ const m = usurpMap.get(this.type);
4304
+ const gc = __privateGet(child, _parts)[0];
4305
+ const nt = m == null ? void 0 : m.get(gc.type);
4306
+ if (!nt)
4307
+ return false;
4308
+ __privateSet(this, _parts, __privateGet(gc, _parts));
4309
+ for (const p of __privateGet(this, _parts)) {
4310
+ if (typeof p === "object")
4311
+ __privateSet(p, _parent, this);
4312
+ }
4313
+ this.type = nt;
4314
+ __privateSet(this, _toString, void 0);
4315
+ __privateSet(this, _emptyExt, false);
4316
+ };
4317
+ flatten_fn = function() {
4318
+ var _a2, _b;
4319
+ if (!isExtglobAST(this)) {
4320
+ for (const p of __privateGet(this, _parts)) {
4321
+ if (typeof p === "object")
4322
+ __privateMethod(_a2 = p, _AST_instances, flatten_fn).call(_a2);
4323
+ }
4324
+ } else {
4325
+ let iterations = 0;
4326
+ let done = false;
4327
+ do {
4328
+ done = true;
4329
+ for (let i2 = 0; i2 < __privateGet(this, _parts).length; i2++) {
4330
+ const c = __privateGet(this, _parts)[i2];
4331
+ if (typeof c === "object") {
4332
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
4333
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
4334
+ done = false;
4335
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i2);
4336
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
4337
+ done = false;
4338
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i2);
4339
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
4340
+ done = false;
4341
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
4342
+ }
4343
+ }
4344
+ }
4345
+ } while (!done && ++iterations < 10);
4346
+ }
4347
+ __privateSet(this, _toString, void 0);
4348
+ };
4180
4349
  partsToRegExp_fn = function(dot) {
4181
4350
  return __privateGet(this, _parts).map((p) => {
4182
4351
  if (typeof p === "string") {
@@ -4191,11 +4360,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4191
4360
  let escaping = false;
4192
4361
  let re = "";
4193
4362
  let uflag = false;
4363
+ let inStar = false;
4194
4364
  for (let i2 = 0; i2 < glob.length; i2++) {
4195
4365
  const c = glob.charAt(i2);
4196
4366
  if (escaping) {
4197
4367
  escaping = false;
4198
4368
  re += (reSpecials.has(c) ? "\\" : "") + c;
4369
+ inStar = false;
4199
4370
  continue;
4200
4371
  }
4201
4372
  if (c === "\\") {
@@ -4213,16 +4384,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4213
4384
  uflag = uflag || needUflag;
4214
4385
  i2 += consumed - 1;
4215
4386
  hasMagic = hasMagic || magic;
4387
+ inStar = false;
4216
4388
  continue;
4217
4389
  }
4218
4390
  }
4219
4391
  if (c === "*") {
4220
- if (noEmpty && glob === "*")
4221
- re += starNoEmpty;
4222
- else
4223
- re += star;
4392
+ if (inStar)
4393
+ continue;
4394
+ inStar = true;
4395
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
4224
4396
  hasMagic = true;
4225
4397
  continue;
4398
+ } else {
4399
+ inStar = false;
4226
4400
  }
4227
4401
  if (c === "?") {
4228
4402
  re += qmark;
@@ -4233,8 +4407,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4233
4407
  }
4234
4408
  return [re, unescape(glob), !!hasMagic, uflag];
4235
4409
  };
4236
- __privateAdd(_AST, _AST_static);
4237
- var AST = _AST;
4410
+ __privateAdd(AST, _AST_static);
4411
+ _a = AST;
4238
4412
 
4239
4413
  // node_modules/minimatch/dist/esm/escape.js
4240
4414
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -4373,28 +4547,33 @@ var match = (list, pattern, options = {}) => {
4373
4547
  minimatch.match = match;
4374
4548
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
4375
4549
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
4550
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
4376
4551
  var Minimatch = class {
4377
- options;
4378
- set;
4379
- pattern;
4380
- windowsPathsNoEscape;
4381
- nonegate;
4382
- negate;
4383
- comment;
4384
- empty;
4385
- preserveMultipleSlashes;
4386
- partial;
4387
- globSet;
4388
- globParts;
4389
- nocase;
4390
- isWindows;
4391
- platform;
4392
- windowsNoMagicRoot;
4393
- regexp;
4394
4552
  constructor(pattern, options = {}) {
4553
+ __privateAdd(this, _Minimatch_instances);
4554
+ __publicField(this, "options");
4555
+ __publicField(this, "set");
4556
+ __publicField(this, "pattern");
4557
+ __publicField(this, "windowsPathsNoEscape");
4558
+ __publicField(this, "nonegate");
4559
+ __publicField(this, "negate");
4560
+ __publicField(this, "comment");
4561
+ __publicField(this, "empty");
4562
+ __publicField(this, "preserveMultipleSlashes");
4563
+ __publicField(this, "partial");
4564
+ __publicField(this, "globSet");
4565
+ __publicField(this, "globParts");
4566
+ __publicField(this, "nocase");
4567
+ __publicField(this, "isWindows");
4568
+ __publicField(this, "platform");
4569
+ __publicField(this, "windowsNoMagicRoot");
4570
+ __publicField(this, "maxGlobstarRecursion");
4571
+ __publicField(this, "regexp");
4572
+ var _a2;
4395
4573
  assertValidPattern(pattern);
4396
4574
  options = options || {};
4397
4575
  this.options = options;
4576
+ this.maxGlobstarRecursion = (_a2 = options.maxGlobstarRecursion) != null ? _a2 : 200;
4398
4577
  this.pattern = pattern;
4399
4578
  this.platform = options.platform || defaultPlatform;
4400
4579
  this.isWindows = this.platform === "win32";
@@ -4662,10 +4841,11 @@ var Minimatch = class {
4662
4841
  for (let i2 = 0; i2 < globParts.length - 1; i2++) {
4663
4842
  for (let j = i2 + 1; j < globParts.length; j++) {
4664
4843
  const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);
4665
- if (!matched)
4666
- continue;
4667
- globParts[i2] = matched;
4668
- globParts[j] = [];
4844
+ if (matched) {
4845
+ globParts[i2] = [];
4846
+ globParts[j] = matched;
4847
+ break;
4848
+ }
4669
4849
  }
4670
4850
  }
4671
4851
  return globParts.filter((gs) => gs.length);
@@ -4726,7 +4906,8 @@ var Minimatch = class {
4726
4906
  // out of pattern, then that's fine, as long as all
4727
4907
  // the parts match.
4728
4908
  matchOne(file, pattern, partial = false) {
4729
- const options = this.options;
4909
+ let fileStartIndex = 0;
4910
+ let patternStartIndex = 0;
4730
4911
  if (this.isWindows) {
4731
4912
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
4732
4913
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -4735,14 +4916,14 @@ var Minimatch = class {
4735
4916
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
4736
4917
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
4737
4918
  if (typeof fdi === "number" && typeof pdi === "number") {
4738
- const [fd, pd] = [file[fdi], pattern[pdi]];
4919
+ const [fd, pd] = [
4920
+ file[fdi],
4921
+ pattern[pdi]
4922
+ ];
4739
4923
  if (fd.toLowerCase() === pd.toLowerCase()) {
4740
4924
  pattern[pdi] = fd;
4741
- if (pdi > fdi) {
4742
- pattern = pattern.slice(pdi);
4743
- } else if (fdi > pdi) {
4744
- file = file.slice(fdi);
4745
- }
4925
+ patternStartIndex = pdi;
4926
+ fileStartIndex = fdi;
4746
4927
  }
4747
4928
  }
4748
4929
  }
@@ -4750,71 +4931,10 @@ var Minimatch = class {
4750
4931
  if (optimizationLevel >= 2) {
4751
4932
  file = this.levelTwoFileOptimize(file);
4752
4933
  }
4753
- this.debug("matchOne", this, { file, pattern });
4754
- this.debug("matchOne", file.length, pattern.length);
4755
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
4756
- this.debug("matchOne loop");
4757
- var p = pattern[pi];
4758
- var f = file[fi];
4759
- this.debug(pattern, p, f);
4760
- if (p === false) {
4761
- return false;
4762
- }
4763
- if (p === GLOBSTAR) {
4764
- this.debug("GLOBSTAR", [pattern, p, f]);
4765
- var fr = fi;
4766
- var pr = pi + 1;
4767
- if (pr === pl) {
4768
- this.debug("** at the end");
4769
- for (; fi < fl; fi++) {
4770
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
4771
- return false;
4772
- }
4773
- return true;
4774
- }
4775
- while (fr < fl) {
4776
- var swallowee = file[fr];
4777
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
4778
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
4779
- this.debug("globstar found match!", fr, fl, swallowee);
4780
- return true;
4781
- } else {
4782
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
4783
- this.debug("dot detected!", file, fr, pattern, pr);
4784
- break;
4785
- }
4786
- this.debug("globstar swallow a segment, and continue");
4787
- fr++;
4788
- }
4789
- }
4790
- if (partial) {
4791
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
4792
- if (fr === fl) {
4793
- return true;
4794
- }
4795
- }
4796
- return false;
4797
- }
4798
- let hit;
4799
- if (typeof p === "string") {
4800
- hit = f === p;
4801
- this.debug("string match", p, f, hit);
4802
- } else {
4803
- hit = p.test(f);
4804
- this.debug("pattern match", p, f, hit);
4805
- }
4806
- if (!hit)
4807
- return false;
4808
- }
4809
- if (fi === fl && pi === pl) {
4810
- return true;
4811
- } else if (fi === fl) {
4812
- return partial;
4813
- } else if (pi === pl) {
4814
- return fi === fl - 1 && file[fi] === "";
4815
- } else {
4816
- throw new Error("wtf?");
4934
+ if (pattern.includes(GLOBSTAR)) {
4935
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4817
4936
  }
4937
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4818
4938
  }
4819
4939
  braceExpand() {
4820
4940
  return braceExpand(this.pattern, this.options);
@@ -4953,6 +5073,135 @@ var Minimatch = class {
4953
5073
  return minimatch.defaults(def).Minimatch;
4954
5074
  }
4955
5075
  };
5076
+ _Minimatch_instances = new WeakSet();
5077
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5078
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
5079
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
5080
+ const [head, body, tail] = partial ? [
5081
+ pattern.slice(patternIndex, firstgs),
5082
+ pattern.slice(firstgs + 1),
5083
+ []
5084
+ ] : [
5085
+ pattern.slice(patternIndex, firstgs),
5086
+ pattern.slice(firstgs + 1, lastgs),
5087
+ pattern.slice(lastgs + 1)
5088
+ ];
5089
+ if (head.length) {
5090
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
5091
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
5092
+ return false;
5093
+ fileIndex += head.length;
5094
+ }
5095
+ let fileTailMatch = 0;
5096
+ if (tail.length) {
5097
+ if (tail.length + fileIndex > file.length)
5098
+ return false;
5099
+ let tailStart = file.length - tail.length;
5100
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
5101
+ fileTailMatch = tail.length;
5102
+ } else {
5103
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
5104
+ return false;
5105
+ }
5106
+ tailStart--;
5107
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
5108
+ return false;
5109
+ fileTailMatch = tail.length + 1;
5110
+ }
5111
+ }
5112
+ if (!body.length) {
5113
+ let sawSome = !!fileTailMatch;
5114
+ for (let i3 = fileIndex; i3 < file.length - fileTailMatch; i3++) {
5115
+ const f = String(file[i3]);
5116
+ sawSome = true;
5117
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5118
+ return false;
5119
+ }
5120
+ }
5121
+ return partial || sawSome;
5122
+ }
5123
+ const bodySegments = [[[], 0]];
5124
+ let currentBody = bodySegments[0];
5125
+ let nonGsParts = 0;
5126
+ const nonGsPartsSums = [0];
5127
+ for (const b of body) {
5128
+ if (b === GLOBSTAR) {
5129
+ nonGsPartsSums.push(nonGsParts);
5130
+ currentBody = [[], 0];
5131
+ bodySegments.push(currentBody);
5132
+ } else {
5133
+ currentBody[0].push(b);
5134
+ nonGsParts++;
5135
+ }
5136
+ }
5137
+ let i2 = bodySegments.length - 1;
5138
+ const fileLength = file.length - fileTailMatch;
5139
+ for (const b of bodySegments) {
5140
+ b[1] = fileLength - (nonGsPartsSums[i2--] + b[0].length);
5141
+ }
5142
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
5143
+ };
5144
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
5145
+ const bs = bodySegments[bodyIndex];
5146
+ if (!bs) {
5147
+ for (let i2 = fileIndex; i2 < file.length; i2++) {
5148
+ sawTail = true;
5149
+ const f = file[i2];
5150
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5151
+ return false;
5152
+ }
5153
+ }
5154
+ return sawTail;
5155
+ }
5156
+ const [body, after] = bs;
5157
+ while (fileIndex <= after) {
5158
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
5159
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
5160
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
5161
+ if (sub !== false)
5162
+ return sub;
5163
+ }
5164
+ const f = file[fileIndex];
5165
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5166
+ return false;
5167
+ }
5168
+ fileIndex++;
5169
+ }
5170
+ return partial || null;
5171
+ };
5172
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5173
+ let fi;
5174
+ let pi;
5175
+ let pl;
5176
+ let fl;
5177
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
5178
+ this.debug("matchOne loop");
5179
+ let p = pattern[pi];
5180
+ let f = file[fi];
5181
+ this.debug(pattern, p, f);
5182
+ if (p === false || p === GLOBSTAR)
5183
+ return false;
5184
+ let hit;
5185
+ if (typeof p === "string") {
5186
+ hit = f === p;
5187
+ this.debug("string match", p, f, hit);
5188
+ } else {
5189
+ hit = p.test(f);
5190
+ this.debug("pattern match", p, f, hit);
5191
+ }
5192
+ if (!hit)
5193
+ return false;
5194
+ }
5195
+ if (fi === fl && pi === pl) {
5196
+ return true;
5197
+ } else if (fi === fl) {
5198
+ return partial;
5199
+ } else if (pi === pl) {
5200
+ return fi === fl - 1 && file[fi] === "";
5201
+ } else {
5202
+ throw new Error("wtf?");
5203
+ }
5204
+ };
4956
5205
  minimatch.AST = AST;
4957
5206
  minimatch.Minimatch = Minimatch;
4958
5207
  minimatch.escape = escape;
@@ -5026,7 +5275,7 @@ function proxyHostElement(elm, cstr) {
5026
5275
  const hostRef = getHostRef(elm);
5027
5276
  const members = Object.entries(cmpMeta.$members$);
5028
5277
  members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
5029
- var _a, _b;
5278
+ var _a2, _b;
5030
5279
  if (memberFlags & 31 /* Prop */) {
5031
5280
  const attributeName = metaAttributeName || memberName;
5032
5281
  const attrValue = elm.getAttribute(attributeName);
@@ -5034,7 +5283,7 @@ function proxyHostElement(elm, cstr) {
5034
5283
  let attrPropVal;
5035
5284
  const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(cstr.prototype, memberName) || {};
5036
5285
  if (attrValue != null) {
5037
- if ((_a = cmpMeta.$deserializers$) == null ? void 0 : _a[memberName]) {
5286
+ if ((_a2 = cmpMeta.$deserializers$) == null ? void 0 : _a2[memberName]) {
5038
5287
  for (const deserializer of cmpMeta.$deserializers$[memberName]) {
5039
5288
  const [[methodName]] = Object.entries(deserializer);
5040
5289
  attrPropVal = cstr.prototype[methodName](attrValue, memberName);
@@ -5067,8 +5316,8 @@ function proxyHostElement(elm, cstr) {
5067
5316
  Object.defineProperty(elm, memberName, getterSetterDescriptor);
5068
5317
  Object.defineProperty(elm, metaAttributeName, getterSetterDescriptor);
5069
5318
  hostRef.$fetchedCbList$.push(() => {
5070
- var _a2;
5071
- if (!((_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.has(memberName))) {
5319
+ var _a3;
5320
+ if (!((_a3 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a3.has(memberName))) {
5072
5321
  setValue(
5073
5322
  elm,
5074
5323
  memberName,
@@ -5081,11 +5330,11 @@ function proxyHostElement(elm, cstr) {
5081
5330
  } else if (memberFlags & 64 /* Method */) {
5082
5331
  Object.defineProperty(elm, memberName, {
5083
5332
  value(...args) {
5084
- var _a2;
5333
+ var _a3;
5085
5334
  const ref = getHostRef(this);
5086
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
5087
- var _a3;
5088
- return (_a3 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
5335
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
5336
+ var _a4;
5337
+ return (_a4 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
5089
5338
  }).catch((e) => {
5090
5339
  consoleError(e, this);
5091
5340
  });
@@ -5096,8 +5345,8 @@ function proxyHostElement(elm, cstr) {
5096
5345
  }
5097
5346
  }
5098
5347
  function componentOnReady$1() {
5099
- var _a;
5100
- return (_a = getHostRef(this)) == null ? void 0 : _a.$onReadyPromise$;
5348
+ var _a2;
5349
+ return (_a2 = getHostRef(this)) == null ? void 0 : _a2.$onReadyPromise$;
5101
5350
  }
5102
5351
  function forceUpdate2() {
5103
5352
  }
@@ -20185,7 +20434,7 @@ class InputOTP {
20185
20434
  const tabbableIndex = this.getTabbableIndex();
20186
20435
  const pattern = this.getPattern();
20187
20436
  const hasDescription = ((_b = (_a = el.querySelector('.input-otp-description')) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== '';
20188
- return (hAsync(Host, { key: '5c1386ae6b8038ec33ca94fd818c9353b1b37f75', class: createColorClasses$1(color, {
20437
+ return (hAsync(Host, { key: 'ffeec6d07b5d3cd375b72d4c9f4fe755d80ac094', class: createColorClasses$1(color, {
20189
20438
  [mode]: true,
20190
20439
  'has-focus': hasFocus,
20191
20440
  [`input-otp-size-${size}`]: true,
@@ -20193,10 +20442,10 @@ class InputOTP {
20193
20442
  [`input-otp-fill-${fill}`]: true,
20194
20443
  'input-otp-disabled': disabled,
20195
20444
  'input-otp-readonly': readonly,
20196
- }) }, hAsync("div", Object.assign({ key: '9a19129688e55095f8386826c73ef3f9744becff', 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: '7853819c3610c4691191f1836b947bf4ec17939d', class: {
20445
+ }) }, hAsync("div", Object.assign({ key: 'f42471e4ed8054f07162a52b42a0ca49c3d57bb0', 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: 'b06461605b2404476b856785b7116e18b4dbaeaa', class: {
20197
20446
  'input-otp-description': true,
20198
20447
  'input-otp-description-hidden': !hasDescription,
20199
- } }, hAsync("slot", { key: 'f4674d47d3d3991f21a0a79321ebc323968071dc' }))));
20448
+ } }, hAsync("slot", { key: '5bf9e7dc365f6caf0d4b13ae26e5559cdbbd162c' }))));
20200
20449
  }
20201
20450
  get el() { return getElement(this); }
20202
20451
  static get watchers() { return {
@@ -26410,20 +26659,20 @@ class Modal {
26410
26659
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26411
26660
  const isHandleCycle = handleBehavior === 'cycle';
26412
26661
  const isSheetModalWithHandle = isSheetModal && showHandle;
26413
- return (hAsync(Host, Object.assign({ key: 'd6a271ace939c33703966a1425ab32b7a30bf246', "no-router": true,
26662
+ return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26414
26663
  // Allow the modal to be navigable when the handle is focusable
26415
26664
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26416
26665
  zIndex: `${20000 + this.overlayIndex}`,
26417
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '51e29823c1444059edc1299e2f8509dda4c39008', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '4292a849e82b83570b18b95e3cbdf05af0a4e170', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'd3131150733c13cd6658545207e4ab49094672b7',
26666
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3f6c61ba60b063592784d76a9594073b3bf210a9',
26418
26667
  /*
26419
26668
  role and aria-modal must be used on the
26420
26669
  same element. They must also be set inside the
26421
26670
  shadow DOM otherwise ion-button will not be highlighted
26422
26671
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26423
26672
  */
26424
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '3da13bff87602c8c0aa8e3db54375b40d96d3b83', class: "modal-handle",
26673
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7f66b4fdb3dec61a2b9aec4e9dbacf5d013d637c', class: "modal-handle",
26425
26674
  // Prevents the handle from receiving keyboard focus when it does not cycle
26426
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '73b22a4eb7ca2e499b9f843b66751a1dbfef69a9', onSlotchange: this.onSlotChange }))));
26675
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '2dfaaebe3d0b2a46be1224c25f9ab89bf1744332', onSlotchange: this.onSlotChange }))));
26427
26676
  }
26428
26677
  get el() { return getElement(this); }
26429
26678
  static get watchers() { return {
@@ -26432,6 +26681,9 @@ class Modal {
26432
26681
  }],
26433
26682
  "trigger": [{
26434
26683
  "triggerChanged": 0
26684
+ }],
26685
+ "breakpoints": [{
26686
+ "breakpointsChanged": 0
26435
26687
  }]
26436
26688
  }; }
26437
26689
  static get style() { return {
@@ -29163,7 +29415,7 @@ class PickerColumnCmp {
29163
29415
  this.emitColChange();
29164
29416
  return;
29165
29417
  }
29166
- this.velocity = clamp(-90, detail.velocityY * 23, MAX_PICKER_SPEED);
29418
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29167
29419
  if (this.velocity === 0 && detail.deltaY === 0) {
29168
29420
  const opt = detail.event.target.closest('.picker-opt');
29169
29421
  if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
@@ -29258,7 +29510,7 @@ const TRANSITION_DURATION = 150;
29258
29510
 
29259
29511
  const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
29260
29512
 
29261
- const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active){color:var(--ion-color-base)}`;
29513
+ const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active),:host([part~=active]){color:var(--ion-color-base)}`;
29262
29514
 
29263
29515
  class PickerColumnOption {
29264
29516
  constructor(hostRef) {
@@ -33936,7 +34188,7 @@ class ReorderGroup {
33936
34188
  }
33937
34189
  let amount = 0;
33938
34190
  if (posY < this.scrollElTop) {
33939
- amount = -10;
34191
+ amount = -SCROLL_JUMP;
33940
34192
  }
33941
34193
  else if (posY > this.scrollElBottom) {
33942
34194
  amount = SCROLL_JUMP;
@@ -34198,7 +34450,7 @@ const generatePath = (segments) => {
34198
34450
  const path = segments.filter((s) => s.length > 0).join('/');
34199
34451
  return '/' + path;
34200
34452
  };
34201
- const generateUrl = (segments, useHash, queryString) => {
34453
+ const generateUrl = (segments, useHash, queryString, fragment) => {
34202
34454
  let url = generatePath(segments);
34203
34455
  if (useHash) {
34204
34456
  url = '#' + url;
@@ -34206,10 +34458,13 @@ const generateUrl = (segments, useHash, queryString) => {
34206
34458
  if (queryString !== undefined) {
34207
34459
  url += '?' + queryString;
34208
34460
  }
34461
+ if (fragment !== undefined) {
34462
+ url += '#' + fragment;
34463
+ }
34209
34464
  return url;
34210
34465
  };
34211
- const writeSegments = (history, root, useHash, segments, direction, state, queryString) => {
34212
- const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString);
34466
+ const writeSegments = (history, root, useHash, segments, direction, state, queryString, fragment) => {
34467
+ const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString, fragment);
34213
34468
  if (direction === ROUTER_INTENT_FORWARD) {
34214
34469
  history.pushState(state, '', url);
34215
34470
  }
@@ -34276,12 +34531,21 @@ const readSegments = (loc, root, useHash) => {
34276
34531
  /**
34277
34532
  * Parses the path to:
34278
34533
  * - segments an array of '/' separated parts,
34279
- * - queryString (undefined when no query string).
34534
+ * - queryString (undefined when no query string),
34535
+ * - fragment (undefined when no `#`).
34280
34536
  */
34281
34537
  const parsePath = (path) => {
34282
34538
  let segments = [''];
34283
34539
  let queryString;
34540
+ let fragment;
34284
34541
  if (path != null) {
34542
+ // The fragment ("#") starts a section that runs to the end of the URL.
34543
+ // Anything inside it (including "?") is part of the fragment per RFC 3986.
34544
+ const fragStart = path.indexOf('#');
34545
+ if (fragStart > -1) {
34546
+ fragment = path.substring(fragStart + 1);
34547
+ path = path.substring(0, fragStart);
34548
+ }
34285
34549
  const qsStart = path.indexOf('?');
34286
34550
  if (qsStart > -1) {
34287
34551
  queryString = path.substring(qsStart + 1);
@@ -34295,7 +34559,7 @@ const parsePath = (path) => {
34295
34559
  segments = [''];
34296
34560
  }
34297
34561
  }
34298
- return { segments, queryString };
34562
+ return { segments, queryString, fragment };
34299
34563
  };
34300
34564
 
34301
34565
  const printRoutes = (routes) => {
@@ -34380,6 +34644,118 @@ const readNavState = async (root) => {
34380
34644
  }
34381
34645
  return { ids, outlet };
34382
34646
  };
34647
+ /** Max animation frames `scrollToFragment` polls while waiting for the target to mount. */
34648
+ const FRAGMENT_POLL_FRAMES = 30;
34649
+ /** Duration (ms) of the smooth-scroll animation that lands on the fragment target. */
34650
+ const FRAGMENT_SCROLL_DURATION = 300;
34651
+ const nextFrame = () => new Promise((resolve) => raf(() => resolve()));
34652
+ /**
34653
+ * Returns true when `el` lives inside an active `.ion-page`. `ion-page-hidden`
34654
+ * marks nav back-stack entries; `tab-hidden` marks inactive `ion-tab` elements.
34655
+ * Either class on the page's ancestor chain disqualifies it. When no `.ion-page`
34656
+ * exists in the document at all (non-router pages), the candidate is accepted
34657
+ * so plain anchors still work.
34658
+ */
34659
+ const isInActivePage = (el) => {
34660
+ const page = el.closest('.ion-page');
34661
+ if (page === null) {
34662
+ return document.querySelector('.ion-page') === null;
34663
+ }
34664
+ return page.closest('.ion-page-hidden, .tab-hidden') === null;
34665
+ };
34666
+ /**
34667
+ * Polls across animation frames for an element matching `fragment` that lives
34668
+ * in the active page. Scoping by "last `.ion-page:not(.ion-page-hidden)`" is
34669
+ * unreliable: inactive `ion-tab` siblings carry `.ion-page` (gated by
34670
+ * `.tab-hidden`, not `.ion-page-hidden`) and can be ordered after the leaf.
34671
+ * Instead, locate candidates globally and walk them from last to first,
34672
+ * accepting the deepest one whose `.ion-page` ancestor is not hidden. The
34673
+ * last-to-first order preserves leaf-most preference for nested outlets.
34674
+ */
34675
+ const findFragmentTarget = async (fragment, shouldContinue) => {
34676
+ // CSS.escape is unavailable on very old WebViews; the fallback path uses
34677
+ // `getElementById` and drops the legacy `<a name>` branch.
34678
+ const canEscape = typeof CSS !== 'undefined' && typeof CSS.escape === 'function';
34679
+ const escaped = canEscape ? CSS.escape(fragment) : null;
34680
+ for (let i = 0; i < FRAGMENT_POLL_FRAMES; i++) {
34681
+ if (!shouldContinue())
34682
+ return null;
34683
+ let candidates = [];
34684
+ if (escaped !== null) {
34685
+ try {
34686
+ candidates = [...document.querySelectorAll(`#${escaped}, a[name="${escaped}"]`)];
34687
+ }
34688
+ catch (_a) {
34689
+ candidates = [...document.querySelectorAll(`#${escaped}`)];
34690
+ }
34691
+ }
34692
+ else {
34693
+ const byId = document.getElementById(fragment);
34694
+ if (byId !== null)
34695
+ candidates = [byId];
34696
+ }
34697
+ for (let j = candidates.length - 1; j >= 0; j--) {
34698
+ if (isInActivePage(candidates[j])) {
34699
+ return candidates[j];
34700
+ }
34701
+ }
34702
+ await nextFrame();
34703
+ }
34704
+ return null;
34705
+ };
34706
+ /**
34707
+ * Scrolls to the element whose id matches `fragment`, falling back to a legacy
34708
+ * `<a name="...">` target. When the target lives inside an `ion-content`, the
34709
+ * scroll uses its smooth-animated scroll API; otherwise it falls back to
34710
+ * `Element.scrollIntoView`.
34711
+ *
34712
+ * `shouldContinue` lets callers cancel in-flight scrolls when a newer
34713
+ * navigation supersedes this one. It is checked between async steps.
34714
+ */
34715
+ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
34716
+ if (fragment == null || fragment === '') {
34717
+ return false;
34718
+ }
34719
+ // URL fragments are percent-encoded but element ids are not; decode for
34720
+ // matching per the HTML spec's indicated-element resolution.
34721
+ let decoded;
34722
+ try {
34723
+ decoded = decodeURIComponent(fragment);
34724
+ }
34725
+ catch (_a) {
34726
+ decoded = fragment;
34727
+ }
34728
+ const target = await findFragmentTarget(decoded, shouldContinue);
34729
+ if (!target || !shouldContinue()) {
34730
+ return false;
34731
+ }
34732
+ // Best-effort scroll: swallow exceptions if the page tears down mid-animation.
34733
+ try {
34734
+ const contentHost = findClosestIonContent(target);
34735
+ if (contentHost && isIonContent(contentHost)) {
34736
+ const content = contentHost;
34737
+ const scrollEl = await getScrollElement(content);
34738
+ // Yield one frame so the newly mounted target's layout is stable
34739
+ // before we measure its rect.
34740
+ await nextFrame();
34741
+ if (!shouldContinue())
34742
+ return false;
34743
+ const targetRect = target.getBoundingClientRect();
34744
+ const scrollRect = scrollEl.getBoundingClientRect();
34745
+ const top = targetRect.top - scrollRect.top + scrollEl.scrollTop;
34746
+ // Preserve scrollLeft so RTL and horizontally-scrolling pages aren't reset.
34747
+ await content.scrollToPoint(scrollEl.scrollLeft, top, FRAGMENT_SCROLL_DURATION);
34748
+ }
34749
+ else {
34750
+ target.scrollIntoView({ behavior: 'smooth' });
34751
+ }
34752
+ return true;
34753
+ }
34754
+ catch (e) {
34755
+ printIonError('[ion-router] - Exception in scrollToFragment:', e);
34756
+ return false;
34757
+ }
34758
+ };
34383
34759
  const waitUntilNavNode = () => {
34384
34760
  if (searchNavNode(document.body)) {
34385
34761
  return Promise.resolve();
@@ -34721,6 +35097,7 @@ class Router {
34721
35097
  this.busy = false;
34722
35098
  this.state = 0;
34723
35099
  this.lastState = 0;
35100
+ this.fragmentScrollToken = 0;
34724
35101
  /**
34725
35102
  * The root path to use when matching URLs. By default, this is set to "/", but you can specify
34726
35103
  * an alternate prefix for all URL paths.
@@ -34749,12 +35126,17 @@ class Router {
34749
35126
  if (typeof canProceed === 'object') {
34750
35127
  const { redirect } = canProceed;
34751
35128
  const path = parsePath(redirect);
34752
- this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString);
34753
- await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35129
+ this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString, path.fragment);
35130
+ const result = await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35131
+ if (result) {
35132
+ this.maybeScrollToFragment();
35133
+ }
34754
35134
  }
35135
+ return;
34755
35136
  }
34756
- else {
34757
- await this.onRoutesChanged();
35137
+ const result = await this.onRoutesChanged();
35138
+ if (result) {
35139
+ this.maybeScrollToFragment();
34758
35140
  }
34759
35141
  }
34760
35142
  componentDidLoad() {
@@ -34773,7 +35155,11 @@ class Router {
34773
35155
  return false;
34774
35156
  }
34775
35157
  }
34776
- return this.writeNavStateRoot(segments, direction);
35158
+ const result = await this.writeNavStateRoot(segments, direction);
35159
+ if (result) {
35160
+ this.maybeScrollToFragment();
35161
+ }
35162
+ return result;
34777
35163
  }
34778
35164
  onBackButton(ev) {
34779
35165
  ev.detail.register(0, (processNextHandler) => {
@@ -34807,7 +35193,7 @@ class Router {
34807
35193
  const currentPath = (_a = this.previousPath) !== null && _a !== void 0 ? _a : '/';
34808
35194
  // Convert currentPath to an URL by pre-pending a protocol and a host to resolve the relative path.
34809
35195
  const url = new URL(path, `https://host/${currentPath}`);
34810
- path = url.pathname + url.search;
35196
+ path = url.pathname + url.search + url.hash;
34811
35197
  }
34812
35198
  let parsedPath = parsePath(path);
34813
35199
  const canProceed = await this.runGuards(parsedPath.segments);
@@ -34819,8 +35205,12 @@ class Router {
34819
35205
  return false;
34820
35206
  }
34821
35207
  }
34822
- this.setSegments(parsedPath.segments, direction, parsedPath.queryString);
34823
- return this.writeNavStateRoot(parsedPath.segments, direction, animation);
35208
+ this.setSegments(parsedPath.segments, direction, parsedPath.queryString, parsedPath.fragment);
35209
+ const result = await this.writeNavStateRoot(parsedPath.segments, direction, animation);
35210
+ if (result) {
35211
+ this.maybeScrollToFragment();
35212
+ }
35213
+ return result;
34824
35214
  }
34825
35215
  /** Go back to previous page in the window.history. */
34826
35216
  back() {
@@ -34850,7 +35240,12 @@ class Router {
34850
35240
  printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
34851
35241
  return false;
34852
35242
  }
34853
- this.setSegments(segments, direction);
35243
+ // navChanged is an outlet-driven URL sync. Only keep the fragment when
35244
+ // the path is unchanged; on a real navigation it refers to an anchor on
35245
+ // the page being left and would be stale.
35246
+ const newPath = generatePath(segments);
35247
+ const fragment = newPath === this.previousPath ? this.getFragment() : undefined;
35248
+ this.setSegments(segments, direction, undefined, fragment);
34854
35249
  await this.safeWriteNavState(outlet, chain, ROUTER_INTENT_NONE, segments, null, ids.length);
34855
35250
  return true;
34856
35251
  }
@@ -34893,8 +35288,8 @@ class Router {
34893
35288
  const redirect = findRouteRedirect(segments, redirects);
34894
35289
  let redirectFrom = null;
34895
35290
  if (redirect) {
34896
- const { segments: toSegments, queryString } = redirect.to;
34897
- this.setSegments(toSegments, direction, queryString);
35291
+ const { segments: toSegments, queryString, fragment } = redirect.to;
35292
+ this.setSegments(toSegments, direction, queryString, fragment);
34898
35293
  redirectFrom = redirect.from;
34899
35294
  segments = toSegments;
34900
35295
  }
@@ -34974,13 +35369,35 @@ class Router {
34974
35369
  }
34975
35370
  return changed;
34976
35371
  }
34977
- setSegments(segments, direction, queryString) {
35372
+ setSegments(segments, direction, queryString, fragment) {
34978
35373
  this.state++;
34979
- writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString);
35374
+ // Every URL write invalidates any in-flight fragment scroll: a newer nav
35375
+ // (with or without a fragment, successful or not) should always supersede.
35376
+ this.fragmentScrollToken++;
35377
+ writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString, fragment);
34980
35378
  }
34981
35379
  getSegments() {
34982
35380
  return readSegments(window.location, this.root, this.useHash);
34983
35381
  }
35382
+ getFragment() {
35383
+ // In hash mode the URL fragment trails a second `#` (e.g. `#/path#anchor`);
35384
+ // parse the routing portion to extract it.
35385
+ const raw = this.useHash ? parsePath(window.location.hash.slice(1)).fragment : window.location.hash.slice(1);
35386
+ return raw ? raw : undefined;
35387
+ }
35388
+ /**
35389
+ * Fires a best-effort scroll to the current URL fragment. The scroll bails
35390
+ * if a newer `setSegments` advances `fragmentScrollToken` mid-flight.
35391
+ */
35392
+ maybeScrollToFragment() {
35393
+ const fragment = this.getFragment();
35394
+ if (!fragment)
35395
+ return;
35396
+ const token = this.fragmentScrollToken;
35397
+ // Fire-and-forget; the returned promise resolves only after the scroll
35398
+ // animation completes, which the caller does not need to await.
35399
+ scrollToFragment(fragment, () => token === this.fragmentScrollToken).catch(() => { });
35400
+ }
34984
35401
  routeChangeEvent(toSegments, redirectFromSegments) {
34985
35402
  const from = this.previousPath;
34986
35403
  const to = generatePath(toSegments);
@@ -35528,12 +35945,14 @@ class Searchbar {
35528
35945
  }, 300);
35529
35946
  }
35530
35947
  disconnectedCallback() {
35948
+ var _a;
35531
35949
  if (this.loadTimeout) {
35532
35950
  clearTimeout(this.loadTimeout);
35533
35951
  }
35534
35952
  if (this.clearTimeout) {
35535
35953
  clearTimeout(this.clearTimeout);
35536
35954
  }
35955
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
35537
35956
  }
35538
35957
  emitStyle() {
35539
35958
  this.ionStyle.emit({
@@ -35631,6 +36050,7 @@ class Searchbar {
35631
36050
  doc.body.appendChild(tempSpan);
35632
36051
  // Get the width of the span then remove it
35633
36052
  raf(() => {
36053
+ var _a, _b;
35634
36054
  const textWidth = tempSpan.offsetWidth;
35635
36055
  tempSpan.remove();
35636
36056
  // Calculate the input padding
@@ -35642,7 +36062,25 @@ class Searchbar {
35642
36062
  * such as Dynamic Type on iOS as well as 8px
35643
36063
  * of padding.
35644
36064
  */
35645
- const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconEl.clientWidth + 8) + 'px)';
36065
+ const iconWidth = iconEl.clientWidth;
36066
+ /**
36067
+ * Fix for https://github.com/ionic-team/ionic-framework/issues/30434:
36068
+ * iconEl.clientWidth can very briefly be 0 when this is called from componentDidLoad.
36069
+ * If it is zero, set up a ResizeObserver and call this function when it observes a width greater than 0.
36070
+ */
36071
+ if (iconWidth === 0) {
36072
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
36073
+ this.searchIconResizeObserver = new ResizeObserver((entries) => {
36074
+ var _a;
36075
+ if (entries[0].contentRect.width > 0) {
36076
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
36077
+ this.positionPlaceholder();
36078
+ }
36079
+ });
36080
+ (_b = this.searchIconResizeObserver) === null || _b === void 0 ? void 0 : _b.observe(iconEl);
36081
+ return;
36082
+ }
36083
+ const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconWidth + 8) + 'px)';
35646
36084
  // Set the input padding start and icon margin start
35647
36085
  if (rtl) {
35648
36086
  inputEl.style.paddingRight = inputLeft;
@@ -35723,8 +36161,8 @@ class Searchbar {
35723
36161
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
35724
36162
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
35725
36163
  const shouldShowCancelButton = this.shouldShowCancelButton();
35726
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '9e9f3a7f6ee66140181f8c3cfa42bbeee75adafc', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '5f83fbcc0708830637815e8c0b69356cad381870', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
35727
- return (hAsync(Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36164
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '226b7a676b4819cda4062b8334fa8d4c4cee6f1a', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '89adb4efa17a78c973bbd5527cfac91d99ceb9bb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
36165
+ return (hAsync(Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35728
36166
  [mode]: true,
35729
36167
  'searchbar-animated': animated,
35730
36168
  'searchbar-disabled': this.disabled,
@@ -35734,14 +36172,14 @@ class Searchbar {
35734
36172
  'searchbar-has-focus': this.focused,
35735
36173
  'searchbar-should-show-clear': this.shouldShowClearButton(),
35736
36174
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
35737
- }) }, hAsync("div", { key: '3f1c25442d6d87c0df67f79482a925b80dcc403d', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'a386fecafda0fab449ea1488906ba6cfc55e2b5c', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '5f81642628335def39a14f0726e0fafdc7203776', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'da3073646f2d7f639261b556517fbadabc3c10e9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
36175
+ }) }, hAsync("div", { key: '5b4bdf7280bea710304b6975e76390fe6ceb7417', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '01a0820a2cf904aec1c7d84b542ab7918d435632', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: 'cd64973206b1cc59d221112861733b7ee25f0323', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '2061fa8449bbc576cf8c5130ea613378ea492944', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
35738
36176
  /**
35739
36177
  * This prevents mobile browsers from
35740
36178
  * blurring the input when the clear
35741
36179
  * button is activated.
35742
36180
  */
35743
36181
  ev.preventDefault();
35744
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '065cd6c707ae462c0767df1bab04ce8045f340a4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
36182
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '00df6f7742bff70b1b088d544b8c00e962e7216c', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
35745
36183
  }
35746
36184
  get el() { return getElement(this); }
35747
36185
  static get watchers() { return {
@@ -39430,7 +39868,7 @@ const createSwipeToDismissGesture = (el, toastPosition, onDismiss) => {
39430
39868
  * consider when the threshold is a negative in the event the
39431
39869
  * user drags up (since the deltaY will also be negative).
39432
39870
  */
39433
- shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -0.5 / 2;
39871
+ shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -DISMISS_THRESHOLD / 2;
39434
39872
  /**
39435
39873
  * Since we are replacing the keyframes
39436
39874
  * below the animation always starts from
@@ -40335,10 +40773,10 @@ class Toggle {
40335
40773
  }
40336
40774
  const shouldToggle = (rtl, checked, deltaX, margin) => {
40337
40775
  if (checked) {
40338
- return (!rtl && margin > deltaX) || (rtl && 10 < deltaX);
40776
+ return (!rtl && margin > deltaX) || (rtl && -margin < deltaX);
40339
40777
  }
40340
40778
  else {
40341
- return (!rtl && 10 < deltaX) || (rtl && margin > deltaX);
40779
+ return (!rtl && -margin < deltaX) || (rtl && margin > deltaX);
40342
40780
  }
40343
40781
  };
40344
40782
  let toggleIds = 0;
@@ -41487,7 +41925,7 @@ var NAMESPACE = (
41487
41925
  );
41488
41926
 
41489
41927
  /*
41490
- Stencil Hydrate Runner v4.43.0 | MIT Licensed | https://stenciljs.com
41928
+ Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
41491
41929
  */
41492
41930
  var __create = Object.create;
41493
41931
  var __defProp = Object.defineProperty;
@@ -42818,11 +43256,11 @@ var fromCodePoint = (
42818
43256
  }
42819
43257
  );
42820
43258
  function replaceCodePoint(codePoint) {
42821
- var _a2;
43259
+ var _a3;
42822
43260
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
42823
43261
  return 65533;
42824
43262
  }
42825
- return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint;
43263
+ return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
42826
43264
  }
42827
43265
 
42828
43266
  // node_modules/entities/lib/esm/decode.js
@@ -43019,9 +43457,9 @@ var EntityDecoder = class {
43019
43457
  * @returns The number of characters that were consumed.
43020
43458
  */
43021
43459
  emitNumericEntity(lastCp, expectedLength) {
43022
- var _a2;
43460
+ var _a3;
43023
43461
  if (this.consumed <= expectedLength) {
43024
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43462
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
43025
43463
  return 0;
43026
43464
  }
43027
43465
  if (lastCp === CharCodes.SEMI) {
@@ -43081,11 +43519,11 @@ var EntityDecoder = class {
43081
43519
  * @returns The number of characters consumed.
43082
43520
  */
43083
43521
  emitNotTerminatedNamedEntity() {
43084
- var _a2;
43522
+ var _a3;
43085
43523
  const { result, decodeTree } = this;
43086
43524
  const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
43087
43525
  this.emitNamedEntityData(result, valueLength, this.consumed);
43088
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
43526
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
43089
43527
  return this.consumed;
43090
43528
  }
43091
43529
  /**
@@ -43113,7 +43551,7 @@ var EntityDecoder = class {
43113
43551
  * @returns The number of characters consumed.
43114
43552
  */
43115
43553
  end() {
43116
- var _a2;
43554
+ var _a3;
43117
43555
  switch (this.state) {
43118
43556
  case EntityDecoderState.NamedEntity: {
43119
43557
  return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
@@ -43126,7 +43564,7 @@ var EntityDecoder = class {
43126
43564
  return this.emitNumericEntity(0, 3);
43127
43565
  }
43128
43566
  case EntityDecoderState.NumericStart: {
43129
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43567
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
43130
43568
  return 0;
43131
43569
  }
43132
43570
  case EntityDecoderState.EntityStart: {
@@ -43607,8 +44045,8 @@ var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
43607
44045
  [TAG_NAMES.XMP, TAG_ID.XMP]
43608
44046
  ]);
43609
44047
  function getTagID(tagName) {
43610
- var _a2;
43611
- return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN;
44048
+ var _a3;
44049
+ return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== void 0 ? _a3 : TAG_ID.UNKNOWN;
43612
44050
  }
43613
44051
  var $ = TAG_ID;
43614
44052
  var SPECIAL_ELEMENTS = {
@@ -43875,8 +44313,8 @@ var Tokenizer = class {
43875
44313
  }
43876
44314
  //Errors
43877
44315
  _err(code, cpOffset = 0) {
43878
- var _a2, _b;
43879
- (_b = (_a2 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a2, this.preprocessor.getError(code, cpOffset));
44316
+ var _a3, _b;
44317
+ (_b = (_a3 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a3, this.preprocessor.getError(code, cpOffset));
43880
44318
  }
43881
44319
  // NOTE: `offset` may never run across line boundaries.
43882
44320
  getCurrentLocation(offset) {
@@ -44018,13 +44456,13 @@ var Tokenizer = class {
44018
44456
  this.currentLocation = this.getCurrentLocation(0);
44019
44457
  }
44020
44458
  _leaveAttrName() {
44021
- var _a2;
44459
+ var _a3;
44022
44460
  var _b;
44023
44461
  const token = this.currentToken;
44024
44462
  if (getTokenAttr(token, this.currentAttr.name) === null) {
44025
44463
  token.attrs.push(this.currentAttr);
44026
44464
  if (token.location && this.currentLocation) {
44027
- const attrLocations = (_a2 = (_b = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b.attrs = /* @__PURE__ */ Object.create(null);
44465
+ const attrLocations = (_a3 = (_b = token.location).attrs) !== null && _a3 !== void 0 ? _a3 : _b.attrs = /* @__PURE__ */ Object.create(null);
44028
44466
  attrLocations[this.currentAttr.name] = this.currentLocation;
44029
44467
  this._leaveAttrValue();
44030
44468
  }
@@ -47372,10 +47810,10 @@ var Parser = class {
47372
47810
  //Errors
47373
47811
  /** @internal */
47374
47812
  _err(token, code, beforeToken) {
47375
- var _a2;
47813
+ var _a3;
47376
47814
  if (!this.onParseError)
47377
47815
  return;
47378
- const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC;
47816
+ const loc = (_a3 = token.location) !== null && _a3 !== void 0 ? _a3 : BASE_LOC;
47379
47817
  const err2 = {
47380
47818
  code,
47381
47819
  startLine: loc.startLine,
@@ -47390,18 +47828,18 @@ var Parser = class {
47390
47828
  //Stack events
47391
47829
  /** @internal */
47392
47830
  onItemPush(node, tid, isTop) {
47393
- var _a2, _b;
47394
- (_b = (_a2 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a2, node);
47831
+ var _a3, _b;
47832
+ (_b = (_a3 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a3, node);
47395
47833
  if (isTop && this.openElements.stackTop > 0)
47396
47834
  this._setContextModes(node, tid);
47397
47835
  }
47398
47836
  /** @internal */
47399
47837
  onItemPop(node, isTop) {
47400
- var _a2, _b;
47838
+ var _a3, _b;
47401
47839
  if (this.options.sourceCodeLocationInfo) {
47402
47840
  this._setEndLocation(node, this.currentToken);
47403
47841
  }
47404
- (_b = (_a2 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a2, node, this.openElements.current);
47842
+ (_b = (_a3 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a3, node, this.openElements.current);
47405
47843
  if (isTop) {
47406
47844
  let current;
47407
47845
  let currentTagId;
@@ -49475,9 +49913,9 @@ function eofInBody(p, token) {
49475
49913
  }
49476
49914
  }
49477
49915
  function endTagInText(p, token) {
49478
- var _a2;
49916
+ var _a3;
49479
49917
  if (token.tagID === TAG_ID.SCRIPT) {
49480
- (_a2 = p.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p, p.openElements.current);
49918
+ (_a3 = p.scriptHandler) === null || _a3 === void 0 ? void 0 : _a3.call(p, p.openElements.current);
49481
49919
  }
49482
49920
  p.openElements.pop();
49483
49921
  p.insertionMode = p.originalInsertionMode;
@@ -50139,7 +50577,7 @@ function startTagAfterBody(p, token) {
50139
50577
  }
50140
50578
  }
50141
50579
  function endTagAfterBody(p, token) {
50142
- var _a2;
50580
+ var _a3;
50143
50581
  if (token.tagID === TAG_ID.HTML) {
50144
50582
  if (!p.fragmentContext) {
50145
50583
  p.insertionMode = InsertionMode.AFTER_AFTER_BODY;
@@ -50147,7 +50585,7 @@ function endTagAfterBody(p, token) {
50147
50585
  if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === TAG_ID.HTML) {
50148
50586
  p._setEndLocation(p.openElements.items[0], token);
50149
50587
  const bodyElement = p.openElements.items[1];
50150
- if (bodyElement && !((_a2 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) {
50588
+ if (bodyElement && !((_a3 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a3 === void 0 ? void 0 : _a3.endTag)) {
50151
50589
  p._setEndLocation(bodyElement, token);
50152
50590
  }
50153
50591
  }
@@ -52011,7 +52449,7 @@ function serializeNodeToHtml(elm, serializationOptions = {}) {
52011
52449
  }
52012
52450
  var shadowRootTag = "mock:shadow-root";
52013
52451
  function* streamToHtml(node, opts, output) {
52014
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
52452
+ var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
52015
52453
  const isShadowRoot = node.nodeType === 11 /* DOCUMENT_FRAGMENT_NODE */;
52016
52454
  if (node.nodeType === 1 /* ELEMENT_NODE */ || isShadowRoot) {
52017
52455
  const tagName = isShadowRoot ? shadowRootTag : getTagName(node);
@@ -52020,7 +52458,7 @@ function* streamToHtml(node, opts, output) {
52020
52458
  }
52021
52459
  const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
52022
52460
  if (ignoreTag === false) {
52023
- const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a2 = opts.indentSpaces) != null ? _a2 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
52461
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a3 = opts.indentSpaces) != null ? _a3 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
52024
52462
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
52025
52463
  yield "\n";
52026
52464
  output.currentLineWidth = 0;
@@ -52539,9 +52977,7 @@ var MockNode2 = class {
52539
52977
  const firstChild = this.firstChild;
52540
52978
  items.forEach((item) => {
52541
52979
  const isNode = typeof item === "object" && item !== null && "nodeType" in item;
52542
- if (firstChild) {
52543
- this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52544
- }
52980
+ this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52545
52981
  });
52546
52982
  }
52547
52983
  cloneNode(deep) {
@@ -52590,8 +53026,8 @@ var MockNode2 = class {
52590
53026
  return null;
52591
53027
  }
52592
53028
  get nodeValue() {
52593
- var _a2;
52594
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53029
+ var _a3;
53030
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52595
53031
  }
52596
53032
  set nodeValue(value) {
52597
53033
  this._nodeValue = value;
@@ -52651,8 +53087,8 @@ var MockNode2 = class {
52651
53087
  return null;
52652
53088
  }
52653
53089
  get textContent() {
52654
- var _a2;
52655
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53090
+ var _a3;
53091
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52656
53092
  }
52657
53093
  set textContent(value) {
52658
53094
  this._nodeValue = String(value);
@@ -52711,9 +53147,9 @@ var MockElement = class extends MockNode2 {
52711
53147
  addEventListener(this, type, handler);
52712
53148
  }
52713
53149
  attachShadow(_opts) {
52714
- var _a2;
53150
+ var _a3;
52715
53151
  const shadowRoot = this.ownerDocument.createDocumentFragment();
52716
- shadowRoot.delegatesFocus = (_a2 = _opts.delegatesFocus) != null ? _a2 : false;
53152
+ shadowRoot.delegatesFocus = (_a3 = _opts.delegatesFocus) != null ? _a3 : false;
52717
53153
  this.shadowRoot = shadowRoot;
52718
53154
  return shadowRoot;
52719
53155
  }
@@ -52784,6 +53220,9 @@ var MockElement = class extends MockNode2 {
52784
53220
  get part() {
52785
53221
  return new MockTokenList(this, "part");
52786
53222
  }
53223
+ set part(value) {
53224
+ this.setAttributeNS(null, "part", String(value));
53225
+ }
52787
53226
  click() {
52788
53227
  dispatchEvent(this, new MockEvent("click", { bubbles: true, cancelable: true, composed: true }));
52789
53228
  }
@@ -52886,8 +53325,8 @@ var MockElement = class extends MockNode2 {
52886
53325
  });
52887
53326
  }
52888
53327
  set innerHTML(html) {
52889
- var _a2;
52890
- if (NON_ESCAPABLE_CONTENT.has((_a2 = this.nodeName) != null ? _a2 : "") === true) {
53328
+ var _a3;
53329
+ if (NON_ESCAPABLE_CONTENT.has((_a3 = this.nodeName) != null ? _a3 : "") === true) {
52891
53330
  setTextContent(this, html);
52892
53331
  } else {
52893
53332
  for (let i = this.childNodes.length - 1; i >= 0; i--) {
@@ -53130,8 +53569,8 @@ var MockElement = class extends MockNode2 {
53130
53569
  this.setAttributeNS(null, "tabindex", value);
53131
53570
  }
53132
53571
  get tagName() {
53133
- var _a2;
53134
- return (_a2 = this.nodeName) != null ? _a2 : "";
53572
+ var _a3;
53573
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53135
53574
  }
53136
53575
  set tagName(value) {
53137
53576
  this.nodeName = value;
@@ -53353,11 +53792,11 @@ function getElementsByClassName(elm, classNames, foundElms) {
53353
53792
  }
53354
53793
  }
53355
53794
  function getElementsByTagName(elm, tagName, foundElms) {
53356
- var _a2;
53795
+ var _a3;
53357
53796
  const children = elm.children;
53358
53797
  for (let i = 0, ii = children.length; i < ii; i++) {
53359
53798
  const childElm = children[i];
53360
- if (tagName === "*" || ((_a2 = childElm.nodeName) != null ? _a2 : "").toLowerCase() === tagName) {
53799
+ if (tagName === "*" || ((_a3 = childElm.nodeName) != null ? _a3 : "").toLowerCase() === tagName) {
53361
53800
  foundElms.push(childElm);
53362
53801
  }
53363
53802
  getElementsByTagName(childElm, tagName, foundElms);
@@ -53394,8 +53833,8 @@ var MockHTMLElement = class extends MockElement {
53394
53833
  super(ownerDocument, typeof nodeName === "string" ? nodeName.toUpperCase() : null);
53395
53834
  }
53396
53835
  get tagName() {
53397
- var _a2;
53398
- return (_a2 = this.nodeName) != null ? _a2 : "";
53836
+ var _a3;
53837
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53399
53838
  }
53400
53839
  set tagName(value) {
53401
53840
  this.nodeName = value;
@@ -53853,10 +54292,10 @@ var MockLabelElement = class extends MockHTMLElement {
53853
54292
  this.setAttributeNS(null, "for", value);
53854
54293
  }
53855
54294
  get control() {
53856
- var _a2, _b;
54295
+ var _a3, _b;
53857
54296
  const forAttr = this.htmlFor;
53858
54297
  if (forAttr) {
53859
- return (_b = (_a2 = this.ownerDocument) == null ? void 0 : _a2.getElementById(forAttr)) != null ? _b : null;
54298
+ return (_b = (_a3 = this.ownerDocument) == null ? void 0 : _a3.getElementById(forAttr)) != null ? _b : null;
53860
54299
  }
53861
54300
  const labelableSelector = 'button, input:not([type="hidden"]), meter, output, progress, select, textarea';
53862
54301
  return this.querySelector(labelableSelector);
@@ -56364,18 +56803,34 @@ var RemoteValue = class _RemoteValue {
56364
56803
  };
56365
56804
 
56366
56805
  // src/utils/serialize.ts
56806
+ function encodeBase64Unicode(str) {
56807
+ const utf8Bytes = new TextEncoder().encode(str);
56808
+ let binary = "";
56809
+ for (let i = 0; i < utf8Bytes.length; i++) {
56810
+ binary += String.fromCharCode(utf8Bytes[i]);
56811
+ }
56812
+ return btoa(binary);
56813
+ }
56814
+ function decodeBase64Unicode(base64) {
56815
+ const binary = atob(base64);
56816
+ const bytes = new Uint8Array(binary.length);
56817
+ for (let i = 0; i < binary.length; i++) {
56818
+ bytes[i] = binary.charCodeAt(i);
56819
+ }
56820
+ return new TextDecoder().decode(bytes);
56821
+ }
56367
56822
  function serializeProperty(value) {
56368
56823
  if (["string", "boolean", "undefined"].includes(typeof value) || typeof value === "number" && value !== Infinity && value !== -Infinity && !isNaN(value)) {
56369
56824
  return value;
56370
56825
  }
56371
56826
  const arg = LocalValue.getArgument(value);
56372
- return SERIALIZED_PREFIX + btoa(JSON.stringify(arg));
56827
+ return SERIALIZED_PREFIX + encodeBase64Unicode(JSON.stringify(arg));
56373
56828
  }
56374
56829
  function deserializeProperty(value) {
56375
56830
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
56376
56831
  return value;
56377
56832
  }
56378
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
56833
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
56379
56834
  }
56380
56835
  var CAPTURE_EVENT_SUFFIX = "Capture";
56381
56836
  var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
@@ -56569,8 +57024,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
56569
57024
  };
56570
57025
 
56571
57026
  // node_modules/minimatch/dist/esm/ast.js
57027
+ var _a2;
56572
57028
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
56573
57029
  var isExtglobType = (c) => types.has(c);
57030
+ var isExtglobAST = (c) => isExtglobType(c.type);
57031
+ var adoptionMap = /* @__PURE__ */ new Map([
57032
+ ["!", ["@"]],
57033
+ ["?", ["?", "@"]],
57034
+ ["@", ["@"]],
57035
+ ["*", ["*", "+", "?", "@"]],
57036
+ ["+", ["+", "@"]]
57037
+ ]);
57038
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
57039
+ ["!", ["?"]],
57040
+ ["@", ["?"]],
57041
+ ["+", ["?", "*"]]
57042
+ ]);
57043
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
57044
+ ["!", ["?", "@"]],
57045
+ ["?", ["?", "@"]],
57046
+ ["@", ["?", "@"]],
57047
+ ["*", ["*", "+", "?", "@"]],
57048
+ ["+", ["+", "@", "?", "*"]]
57049
+ ]);
57050
+ var usurpMap = /* @__PURE__ */ new Map([
57051
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
57052
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
57053
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
57054
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
57055
+ ]);
56574
57056
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
56575
57057
  var startNoDot = "(?!\\.)";
56576
57058
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -56580,8 +57062,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
56580
57062
  var qmark = "[^/]";
56581
57063
  var star = qmark + "*?";
56582
57064
  var starNoEmpty = qmark + "+?";
56583
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
56584
- var _AST = class _AST {
57065
+ var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn;
57066
+ var AST = class {
56585
57067
  constructor(type, parent, options = {}) {
56586
57068
  __privateAdd(this, _AST_instances);
56587
57069
  __publicField(this, "type");
@@ -56634,44 +57116,44 @@ var _AST = class _AST {
56634
57116
  for (const p of parts) {
56635
57117
  if (p === "")
56636
57118
  continue;
56637
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
57119
+ if (typeof p !== "string" && !(p instanceof _a2 && __privateGet(p, _parent) === this)) {
56638
57120
  throw new Error("invalid part: " + p);
56639
57121
  }
56640
57122
  __privateGet(this, _parts).push(p);
56641
57123
  }
56642
57124
  }
56643
57125
  toJSON() {
56644
- var _a2;
57126
+ var _a3;
56645
57127
  const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];
56646
57128
  if (this.isStart() && !this.type)
56647
57129
  ret.unshift([]);
56648
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
57130
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")) {
56649
57131
  ret.push({});
56650
57132
  }
56651
57133
  return ret;
56652
57134
  }
56653
57135
  isStart() {
56654
- var _a2;
57136
+ var _a3;
56655
57137
  if (__privateGet(this, _root) === this)
56656
57138
  return true;
56657
- if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
57139
+ if (!((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.isStart()))
56658
57140
  return false;
56659
57141
  if (__privateGet(this, _parentIndex) === 0)
56660
57142
  return true;
56661
57143
  const p = __privateGet(this, _parent);
56662
57144
  for (let i = 0; i < __privateGet(this, _parentIndex); i++) {
56663
57145
  const pp = __privateGet(p, _parts)[i];
56664
- if (!(pp instanceof _AST && pp.type === "!")) {
57146
+ if (!(pp instanceof _a2 && pp.type === "!")) {
56665
57147
  return false;
56666
57148
  }
56667
57149
  }
56668
57150
  return true;
56669
57151
  }
56670
57152
  isEnd() {
56671
- var _a2, _b, _c;
57153
+ var _a3, _b, _c;
56672
57154
  if (__privateGet(this, _root) === this)
56673
57155
  return true;
56674
- if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
57156
+ if (((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")
56675
57157
  return true;
56676
57158
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
56677
57159
  return false;
@@ -56687,16 +57169,16 @@ var _AST = class _AST {
56687
57169
  this.push(part.clone(this));
56688
57170
  }
56689
57171
  clone(parent) {
56690
- const c = new _AST(this.type, parent);
57172
+ const c = new _a2(this.type, parent);
56691
57173
  for (const p of __privateGet(this, _parts)) {
56692
57174
  c.copyIn(p);
56693
57175
  }
56694
57176
  return c;
56695
57177
  }
56696
57178
  static fromGlob(pattern, options = {}) {
56697
- var _a2;
56698
- const ast = new _AST(null, void 0, options);
56699
- __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options);
57179
+ var _a3;
57180
+ const ast = new _a2(null, void 0, options);
57181
+ __privateMethod(_a3 = _a2, _AST_static, parseAST_fn).call(_a3, pattern, ast, 0, options, 0);
56700
57182
  return ast;
56701
57183
  }
56702
57184
  // returns the regular expression if there's magic, or the unescaped
@@ -56789,15 +57271,17 @@ var _AST = class _AST {
56789
57271
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
56790
57272
  // or start or whatever) and prepend ^ or / at the Regexp construction.
56791
57273
  toRegExpSource(allowDot) {
56792
- var _a2;
57274
+ var _a3;
56793
57275
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
56794
- if (__privateGet(this, _root) === this)
57276
+ if (__privateGet(this, _root) === this) {
57277
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
56795
57278
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
56796
- if (!this.type) {
57279
+ }
57280
+ if (!isExtglobAST(this)) {
56797
57281
  const noEmpty = this.isStart() && this.isEnd();
56798
57282
  const src = __privateGet(this, _parts).map((p) => {
56799
- var _a3;
56800
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _AST, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
57283
+ var _a4;
57284
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a4 = _a2, _AST_static, parseGlob_fn).call(_a4, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
56801
57285
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
56802
57286
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
56803
57287
  return re;
@@ -56820,7 +57304,7 @@ var _AST = class _AST {
56820
57304
  }
56821
57305
  }
56822
57306
  let end = "";
56823
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
57307
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!") {
56824
57308
  end = "(?:$|\\/)";
56825
57309
  }
56826
57310
  const final2 = start2 + src + end;
@@ -56836,9 +57320,10 @@ var _AST = class _AST {
56836
57320
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
56837
57321
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
56838
57322
  const s = this.toString();
56839
- __privateSet(this, _parts, [s]);
56840
- this.type = null;
56841
- __privateSet(this, _hasMagic, void 0);
57323
+ const me = this;
57324
+ __privateSet(me, _parts, [s]);
57325
+ me.type = null;
57326
+ __privateSet(me, _hasMagic, void 0);
56842
57327
  return [s, unescape(this.toString()), false, false];
56843
57328
  }
56844
57329
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -56907,8 +57392,9 @@ fillNegs_fn = function() {
56907
57392
  return this;
56908
57393
  };
56909
57394
  _AST_static = new WeakSet();
56910
- parseAST_fn = function(str, ast, pos, opt) {
56911
- var _a2, _b;
57395
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
57396
+ var _a3, _b, _c, _d, _e;
57397
+ const maxDepth = (_a3 = opt.maxExtglobRecursion) != null ? _a3 : 2;
56912
57398
  let escaping = false;
56913
57399
  let inBrace = false;
56914
57400
  let braceStart = -1;
@@ -56940,11 +57426,12 @@ parseAST_fn = function(str, ast, pos, opt) {
56940
57426
  acc2 += c;
56941
57427
  continue;
56942
57428
  }
56943
- if (!opt.noext && isExtglobType(c) && str.charAt(i2) === "(") {
57429
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i2) === "(" && extDepth <= maxDepth;
57430
+ if (doRecurse) {
56944
57431
  ast.push(acc2);
56945
57432
  acc2 = "";
56946
- const ext2 = new _AST(c, ast);
56947
- i2 = __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, str, ext2, i2, opt);
57433
+ const ext2 = new _a2(c, ast);
57434
+ i2 = __privateMethod(_b = _a2, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt, extDepth + 1);
56948
57435
  ast.push(ext2);
56949
57436
  continue;
56950
57437
  }
@@ -56954,7 +57441,7 @@ parseAST_fn = function(str, ast, pos, opt) {
56954
57441
  return i2;
56955
57442
  }
56956
57443
  let i = pos + 1;
56957
- let part = new _AST(null, ast);
57444
+ let part = new _a2(null, ast);
56958
57445
  const parts = [];
56959
57446
  let acc = "";
56960
57447
  while (i < str.length) {
@@ -56981,19 +57468,22 @@ parseAST_fn = function(str, ast, pos, opt) {
56981
57468
  acc += c;
56982
57469
  continue;
56983
57470
  }
56984
- if (isExtglobType(c) && str.charAt(i) === "(") {
57471
+ const doRecurse = isExtglobType(c) && str.charAt(i) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
57472
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
57473
+ if (doRecurse) {
57474
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
56985
57475
  part.push(acc);
56986
57476
  acc = "";
56987
- const ext2 = new _AST(c, part);
57477
+ const ext2 = new _a2(c, part);
56988
57478
  part.push(ext2);
56989
- i = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i, opt);
57479
+ i = __privateMethod(_e = _a2, _AST_static, parseAST_fn).call(_e, str, ext2, i, opt, extDepth + depthAdd);
56990
57480
  continue;
56991
57481
  }
56992
57482
  if (c === "|") {
56993
57483
  part.push(acc);
56994
57484
  acc = "";
56995
57485
  parts.push(part);
56996
- part = new _AST(null, ast);
57486
+ part = new _a2(null, ast);
56997
57487
  continue;
56998
57488
  }
56999
57489
  if (c === ")") {
@@ -57012,6 +57502,100 @@ parseAST_fn = function(str, ast, pos, opt) {
57012
57502
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
57013
57503
  return i;
57014
57504
  };
57505
+ canAdoptWithSpace_fn = function(child) {
57506
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
57507
+ };
57508
+ canAdopt_fn = function(child, map2 = adoptionMap) {
57509
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
57510
+ return false;
57511
+ }
57512
+ const gc = __privateGet(child, _parts)[0];
57513
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57514
+ return false;
57515
+ }
57516
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
57517
+ };
57518
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
57519
+ var _a3;
57520
+ return !!((_a3 = map2.get(this.type)) == null ? void 0 : _a3.includes(c));
57521
+ };
57522
+ adoptWithSpace_fn = function(child, index) {
57523
+ const gc = __privateGet(child, _parts)[0];
57524
+ const blank = new _a2(null, gc, this.options);
57525
+ __privateGet(blank, _parts).push("");
57526
+ gc.push(blank);
57527
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
57528
+ };
57529
+ adopt_fn = function(child, index) {
57530
+ const gc = __privateGet(child, _parts)[0];
57531
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
57532
+ for (const p of __privateGet(gc, _parts)) {
57533
+ if (typeof p === "object")
57534
+ __privateSet(p, _parent, this);
57535
+ }
57536
+ __privateSet(this, _toString, void 0);
57537
+ };
57538
+ canUsurpType_fn = function(c) {
57539
+ const m = usurpMap.get(this.type);
57540
+ return !!(m == null ? void 0 : m.has(c));
57541
+ };
57542
+ canUsurp_fn = function(child) {
57543
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
57544
+ return false;
57545
+ }
57546
+ const gc = __privateGet(child, _parts)[0];
57547
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57548
+ return false;
57549
+ }
57550
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
57551
+ };
57552
+ usurp_fn = function(child) {
57553
+ const m = usurpMap.get(this.type);
57554
+ const gc = __privateGet(child, _parts)[0];
57555
+ const nt = m == null ? void 0 : m.get(gc.type);
57556
+ if (!nt)
57557
+ return false;
57558
+ __privateSet(this, _parts, __privateGet(gc, _parts));
57559
+ for (const p of __privateGet(this, _parts)) {
57560
+ if (typeof p === "object")
57561
+ __privateSet(p, _parent, this);
57562
+ }
57563
+ this.type = nt;
57564
+ __privateSet(this, _toString, void 0);
57565
+ __privateSet(this, _emptyExt, false);
57566
+ };
57567
+ flatten_fn = function() {
57568
+ var _a3, _b;
57569
+ if (!isExtglobAST(this)) {
57570
+ for (const p of __privateGet(this, _parts)) {
57571
+ if (typeof p === "object")
57572
+ __privateMethod(_a3 = p, _AST_instances, flatten_fn).call(_a3);
57573
+ }
57574
+ } else {
57575
+ let iterations = 0;
57576
+ let done = false;
57577
+ do {
57578
+ done = true;
57579
+ for (let i = 0; i < __privateGet(this, _parts).length; i++) {
57580
+ const c = __privateGet(this, _parts)[i];
57581
+ if (typeof c === "object") {
57582
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
57583
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
57584
+ done = false;
57585
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i);
57586
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
57587
+ done = false;
57588
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i);
57589
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
57590
+ done = false;
57591
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
57592
+ }
57593
+ }
57594
+ }
57595
+ } while (!done && ++iterations < 10);
57596
+ }
57597
+ __privateSet(this, _toString, void 0);
57598
+ };
57015
57599
  partsToRegExp_fn = function(dot) {
57016
57600
  return __privateGet(this, _parts).map((p) => {
57017
57601
  if (typeof p === "string") {
@@ -57026,11 +57610,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57026
57610
  let escaping = false;
57027
57611
  let re = "";
57028
57612
  let uflag = false;
57613
+ let inStar = false;
57029
57614
  for (let i = 0; i < glob.length; i++) {
57030
57615
  const c = glob.charAt(i);
57031
57616
  if (escaping) {
57032
57617
  escaping = false;
57033
57618
  re += (reSpecials.has(c) ? "\\" : "") + c;
57619
+ inStar = false;
57034
57620
  continue;
57035
57621
  }
57036
57622
  if (c === "\\") {
@@ -57048,16 +57634,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57048
57634
  uflag = uflag || needUflag;
57049
57635
  i += consumed - 1;
57050
57636
  hasMagic = hasMagic || magic;
57637
+ inStar = false;
57051
57638
  continue;
57052
57639
  }
57053
57640
  }
57054
57641
  if (c === "*") {
57055
- if (noEmpty && glob === "*")
57056
- re += starNoEmpty;
57057
- else
57058
- re += star;
57642
+ if (inStar)
57643
+ continue;
57644
+ inStar = true;
57645
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
57059
57646
  hasMagic = true;
57060
57647
  continue;
57648
+ } else {
57649
+ inStar = false;
57061
57650
  }
57062
57651
  if (c === "?") {
57063
57652
  re += qmark;
@@ -57068,8 +57657,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57068
57657
  }
57069
57658
  return [re, unescape(glob), !!hasMagic, uflag];
57070
57659
  };
57071
- __privateAdd(_AST, _AST_static);
57072
- var AST = _AST;
57660
+ __privateAdd(AST, _AST_static);
57661
+ _a2 = AST;
57073
57662
 
57074
57663
  // node_modules/minimatch/dist/esm/escape.js
57075
57664
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -57208,28 +57797,33 @@ var match = (list, pattern, options = {}) => {
57208
57797
  minimatch.match = match;
57209
57798
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
57210
57799
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
57800
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
57211
57801
  var Minimatch = class {
57212
- options;
57213
- set;
57214
- pattern;
57215
- windowsPathsNoEscape;
57216
- nonegate;
57217
- negate;
57218
- comment;
57219
- empty;
57220
- preserveMultipleSlashes;
57221
- partial;
57222
- globSet;
57223
- globParts;
57224
- nocase;
57225
- isWindows;
57226
- platform;
57227
- windowsNoMagicRoot;
57228
- regexp;
57229
57802
  constructor(pattern, options = {}) {
57803
+ __privateAdd(this, _Minimatch_instances);
57804
+ __publicField(this, "options");
57805
+ __publicField(this, "set");
57806
+ __publicField(this, "pattern");
57807
+ __publicField(this, "windowsPathsNoEscape");
57808
+ __publicField(this, "nonegate");
57809
+ __publicField(this, "negate");
57810
+ __publicField(this, "comment");
57811
+ __publicField(this, "empty");
57812
+ __publicField(this, "preserveMultipleSlashes");
57813
+ __publicField(this, "partial");
57814
+ __publicField(this, "globSet");
57815
+ __publicField(this, "globParts");
57816
+ __publicField(this, "nocase");
57817
+ __publicField(this, "isWindows");
57818
+ __publicField(this, "platform");
57819
+ __publicField(this, "windowsNoMagicRoot");
57820
+ __publicField(this, "maxGlobstarRecursion");
57821
+ __publicField(this, "regexp");
57822
+ var _a3;
57230
57823
  assertValidPattern(pattern);
57231
57824
  options = options || {};
57232
57825
  this.options = options;
57826
+ this.maxGlobstarRecursion = (_a3 = options.maxGlobstarRecursion) != null ? _a3 : 200;
57233
57827
  this.pattern = pattern;
57234
57828
  this.platform = options.platform || defaultPlatform;
57235
57829
  this.isWindows = this.platform === "win32";
@@ -57497,10 +58091,11 @@ var Minimatch = class {
57497
58091
  for (let i = 0; i < globParts.length - 1; i++) {
57498
58092
  for (let j = i + 1; j < globParts.length; j++) {
57499
58093
  const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
57500
- if (!matched)
57501
- continue;
57502
- globParts[i] = matched;
57503
- globParts[j] = [];
58094
+ if (matched) {
58095
+ globParts[i] = [];
58096
+ globParts[j] = matched;
58097
+ break;
58098
+ }
57504
58099
  }
57505
58100
  }
57506
58101
  return globParts.filter((gs) => gs.length);
@@ -57561,7 +58156,8 @@ var Minimatch = class {
57561
58156
  // out of pattern, then that's fine, as long as all
57562
58157
  // the parts match.
57563
58158
  matchOne(file, pattern, partial = false) {
57564
- const options = this.options;
58159
+ let fileStartIndex = 0;
58160
+ let patternStartIndex = 0;
57565
58161
  if (this.isWindows) {
57566
58162
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
57567
58163
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -57570,14 +58166,14 @@ var Minimatch = class {
57570
58166
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
57571
58167
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
57572
58168
  if (typeof fdi === "number" && typeof pdi === "number") {
57573
- const [fd, pd] = [file[fdi], pattern[pdi]];
58169
+ const [fd, pd] = [
58170
+ file[fdi],
58171
+ pattern[pdi]
58172
+ ];
57574
58173
  if (fd.toLowerCase() === pd.toLowerCase()) {
57575
58174
  pattern[pdi] = fd;
57576
- if (pdi > fdi) {
57577
- pattern = pattern.slice(pdi);
57578
- } else if (fdi > pdi) {
57579
- file = file.slice(fdi);
57580
- }
58175
+ patternStartIndex = pdi;
58176
+ fileStartIndex = fdi;
57581
58177
  }
57582
58178
  }
57583
58179
  }
@@ -57585,71 +58181,10 @@ var Minimatch = class {
57585
58181
  if (optimizationLevel >= 2) {
57586
58182
  file = this.levelTwoFileOptimize(file);
57587
58183
  }
57588
- this.debug("matchOne", this, { file, pattern });
57589
- this.debug("matchOne", file.length, pattern.length);
57590
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
57591
- this.debug("matchOne loop");
57592
- var p = pattern[pi];
57593
- var f = file[fi];
57594
- this.debug(pattern, p, f);
57595
- if (p === false) {
57596
- return false;
57597
- }
57598
- if (p === GLOBSTAR) {
57599
- this.debug("GLOBSTAR", [pattern, p, f]);
57600
- var fr = fi;
57601
- var pr = pi + 1;
57602
- if (pr === pl) {
57603
- this.debug("** at the end");
57604
- for (; fi < fl; fi++) {
57605
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
57606
- return false;
57607
- }
57608
- return true;
57609
- }
57610
- while (fr < fl) {
57611
- var swallowee = file[fr];
57612
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
57613
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
57614
- this.debug("globstar found match!", fr, fl, swallowee);
57615
- return true;
57616
- } else {
57617
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
57618
- this.debug("dot detected!", file, fr, pattern, pr);
57619
- break;
57620
- }
57621
- this.debug("globstar swallow a segment, and continue");
57622
- fr++;
57623
- }
57624
- }
57625
- if (partial) {
57626
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
57627
- if (fr === fl) {
57628
- return true;
57629
- }
57630
- }
57631
- return false;
57632
- }
57633
- let hit;
57634
- if (typeof p === "string") {
57635
- hit = f === p;
57636
- this.debug("string match", p, f, hit);
57637
- } else {
57638
- hit = p.test(f);
57639
- this.debug("pattern match", p, f, hit);
57640
- }
57641
- if (!hit)
57642
- return false;
57643
- }
57644
- if (fi === fl && pi === pl) {
57645
- return true;
57646
- } else if (fi === fl) {
57647
- return partial;
57648
- } else if (pi === pl) {
57649
- return fi === fl - 1 && file[fi] === "";
57650
- } else {
57651
- throw new Error("wtf?");
58184
+ if (pattern.includes(GLOBSTAR)) {
58185
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57652
58186
  }
58187
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57653
58188
  }
57654
58189
  braceExpand() {
57655
58190
  return braceExpand(this.pattern, this.options);
@@ -57788,6 +58323,135 @@ var Minimatch = class {
57788
58323
  return minimatch.defaults(def).Minimatch;
57789
58324
  }
57790
58325
  };
58326
+ _Minimatch_instances = new WeakSet();
58327
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58328
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
58329
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
58330
+ const [head, body, tail] = partial ? [
58331
+ pattern.slice(patternIndex, firstgs),
58332
+ pattern.slice(firstgs + 1),
58333
+ []
58334
+ ] : [
58335
+ pattern.slice(patternIndex, firstgs),
58336
+ pattern.slice(firstgs + 1, lastgs),
58337
+ pattern.slice(lastgs + 1)
58338
+ ];
58339
+ if (head.length) {
58340
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
58341
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
58342
+ return false;
58343
+ fileIndex += head.length;
58344
+ }
58345
+ let fileTailMatch = 0;
58346
+ if (tail.length) {
58347
+ if (tail.length + fileIndex > file.length)
58348
+ return false;
58349
+ let tailStart = file.length - tail.length;
58350
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
58351
+ fileTailMatch = tail.length;
58352
+ } else {
58353
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
58354
+ return false;
58355
+ }
58356
+ tailStart--;
58357
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
58358
+ return false;
58359
+ fileTailMatch = tail.length + 1;
58360
+ }
58361
+ }
58362
+ if (!body.length) {
58363
+ let sawSome = !!fileTailMatch;
58364
+ for (let i2 = fileIndex; i2 < file.length - fileTailMatch; i2++) {
58365
+ const f = String(file[i2]);
58366
+ sawSome = true;
58367
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58368
+ return false;
58369
+ }
58370
+ }
58371
+ return partial || sawSome;
58372
+ }
58373
+ const bodySegments = [[[], 0]];
58374
+ let currentBody = bodySegments[0];
58375
+ let nonGsParts = 0;
58376
+ const nonGsPartsSums = [0];
58377
+ for (const b of body) {
58378
+ if (b === GLOBSTAR) {
58379
+ nonGsPartsSums.push(nonGsParts);
58380
+ currentBody = [[], 0];
58381
+ bodySegments.push(currentBody);
58382
+ } else {
58383
+ currentBody[0].push(b);
58384
+ nonGsParts++;
58385
+ }
58386
+ }
58387
+ let i = bodySegments.length - 1;
58388
+ const fileLength = file.length - fileTailMatch;
58389
+ for (const b of bodySegments) {
58390
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
58391
+ }
58392
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
58393
+ };
58394
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
58395
+ const bs = bodySegments[bodyIndex];
58396
+ if (!bs) {
58397
+ for (let i = fileIndex; i < file.length; i++) {
58398
+ sawTail = true;
58399
+ const f = file[i];
58400
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58401
+ return false;
58402
+ }
58403
+ }
58404
+ return sawTail;
58405
+ }
58406
+ const [body, after] = bs;
58407
+ while (fileIndex <= after) {
58408
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
58409
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
58410
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
58411
+ if (sub !== false)
58412
+ return sub;
58413
+ }
58414
+ const f = file[fileIndex];
58415
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58416
+ return false;
58417
+ }
58418
+ fileIndex++;
58419
+ }
58420
+ return partial || null;
58421
+ };
58422
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58423
+ let fi;
58424
+ let pi;
58425
+ let pl;
58426
+ let fl;
58427
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
58428
+ this.debug("matchOne loop");
58429
+ let p = pattern[pi];
58430
+ let f = file[fi];
58431
+ this.debug(pattern, p, f);
58432
+ if (p === false || p === GLOBSTAR)
58433
+ return false;
58434
+ let hit;
58435
+ if (typeof p === "string") {
58436
+ hit = f === p;
58437
+ this.debug("string match", p, f, hit);
58438
+ } else {
58439
+ hit = p.test(f);
58440
+ this.debug("pattern match", p, f, hit);
58441
+ }
58442
+ if (!hit)
58443
+ return false;
58444
+ }
58445
+ if (fi === fl && pi === pl) {
58446
+ return true;
58447
+ } else if (fi === fl) {
58448
+ return partial;
58449
+ } else if (pi === pl) {
58450
+ return fi === fl - 1 && file[fi] === "";
58451
+ } else {
58452
+ throw new Error("wtf?");
58453
+ }
58454
+ };
57791
58455
  minimatch.AST = AST;
57792
58456
  minimatch.Minimatch = Minimatch;
57793
58457
  minimatch.escape = escape;
@@ -57858,7 +58522,7 @@ var isJsFile = lowerPathParam((p) => p.endsWith(".js") || p.endsWith(".mjs") ||
57858
58522
 
57859
58523
  // src/compiler/html/canonical-link.ts
57860
58524
  var updateCanonicalLink = (doc, href) => {
57861
- var _a2;
58525
+ var _a3;
57862
58526
  let canonicalLinkElm = doc.head.querySelector('link[rel="canonical"]');
57863
58527
  if (typeof href === "string") {
57864
58528
  if (canonicalLinkElm == null) {
@@ -57871,7 +58535,7 @@ var updateCanonicalLink = (doc, href) => {
57871
58535
  if (canonicalLinkElm != null) {
57872
58536
  const existingHref = canonicalLinkElm.getAttribute("href");
57873
58537
  if (!existingHref) {
57874
- (_a2 = canonicalLinkElm.parentNode) == null ? void 0 : _a2.removeChild(canonicalLinkElm);
58538
+ (_a3 = canonicalLinkElm.parentNode) == null ? void 0 : _a3.removeChild(canonicalLinkElm);
57875
58539
  }
57876
58540
  }
57877
58541
  }
@@ -58383,7 +59047,7 @@ var serializeCss = (stylesheet, serializeOpts) => {
58383
59047
  return out.join("");
58384
59048
  };
58385
59049
  var serializeCssVisitNode = (opts, node, index, len) => {
58386
- var _a2;
59050
+ var _a3;
58387
59051
  const nodeType = node.type;
58388
59052
  if (nodeType === 4 /* Declaration */) {
58389
59053
  return serializeCssDeclaration(node, index, len);
@@ -58392,7 +59056,7 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58392
59056
  return serializeCssRule(opts, node);
58393
59057
  }
58394
59058
  if (nodeType === 1 /* Comment */) {
58395
- if (((_a2 = node.comment) == null ? void 0 : _a2[0]) === "!") {
59059
+ if (((_a3 = node.comment) == null ? void 0 : _a3[0]) === "!") {
58396
59060
  return `/*${node.comment}*/`;
58397
59061
  } else {
58398
59062
  return "";
@@ -58440,10 +59104,10 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58440
59104
  return "";
58441
59105
  };
58442
59106
  var serializeCssRule = (opts, node) => {
58443
- var _a2, _b;
59107
+ var _a3, _b;
58444
59108
  const decls = node.declarations;
58445
59109
  const usedSelectors = opts.usedSelectors;
58446
- const selectors = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.slice()) != null ? _b : [];
59110
+ const selectors = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.slice()) != null ? _b : [];
58447
59111
  const hasDecls = decls != null && decls.length > 0;
58448
59112
  const hasNestedRules = node.rules != null && node.rules.length > 0;
58449
59113
  if (!hasDecls && !hasNestedRules) {
@@ -58547,8 +59211,8 @@ var serializeCssKeyframes = (opts, node) => {
58547
59211
  return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + keyframesCss + "}";
58548
59212
  };
58549
59213
  var serializeCssKeyframe = (opts, node) => {
58550
- var _a2, _b;
58551
- return ((_b = (_a2 = node.values) == null ? void 0 : _a2.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
59214
+ var _a3, _b;
59215
+ return ((_b = (_a3 = node.values) == null ? void 0 : _a3.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58552
59216
  };
58553
59217
  var serializeCssFontFace = (opts, node) => {
58554
59218
  const fontCss = serializeCssMapVisit(opts, node.declarations);
@@ -58572,8 +59236,8 @@ var serializeCssContainer = (opts, node) => {
58572
59236
  return "@container " + removeMediaWhitespace(node.media) + "{" + containerCss + "}";
58573
59237
  };
58574
59238
  var serializeCssPage = (opts, node) => {
58575
- var _a2, _b;
58576
- const sel = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.join(", ")) != null ? _b : "";
59239
+ var _a3, _b;
59240
+ const sel = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.join(", ")) != null ? _b : "";
58577
59241
  return "@page " + sel + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58578
59242
  };
58579
59243
  var serializeCssDocument = (opts, node) => {
@@ -58620,10 +59284,10 @@ var removeSelectorWhitespace = (selector) => {
58620
59284
  return rtn;
58621
59285
  };
58622
59286
  var removeMediaWhitespace = (media) => {
58623
- var _a2;
59287
+ var _a3;
58624
59288
  let rtn = "";
58625
59289
  let char = "";
58626
- media = (_a2 = media == null ? void 0 : media.trim()) != null ? _a2 : "";
59290
+ media = (_a3 = media == null ? void 0 : media.trim()) != null ? _a3 : "";
58627
59291
  for (let i = 0, l = media.length; i < l; i++) {
58628
59292
  char = media[i];
58629
59293
  if (CSS_WS_REG.test(char)) {