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.mjs CHANGED
@@ -396,7 +396,7 @@ const appGlobalScript = initialize || (() => {});
396
396
  const globalScripts = appGlobalScript;
397
397
 
398
398
  /*
399
- Stencil Hydrate Platform v4.43.0 | MIT Licensed | https://stenciljs.com
399
+ Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
400
400
  */
401
401
  var __create = Object.create;
402
402
  var __defProp = Object.defineProperty;
@@ -431,7 +431,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
431
431
  __defProp(target, "default", { value: mod, enumerable: true }) ,
432
432
  mod
433
433
  ));
434
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
434
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
435
435
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
436
436
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
437
437
  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);
@@ -673,15 +673,26 @@ var TYPE_CONSTANT = "type";
673
673
  var VALUE_CONSTANT = "value";
674
674
  var SERIALIZED_PREFIX = "serialized:";
675
675
 
676
+ // src/utils/get-prop-descriptor.ts
677
+ function getPropertyDescriptor(obj, memberName, getOnly) {
678
+ const stopAt = typeof HTMLElement !== "undefined" ? HTMLElement.prototype : null;
679
+ while (obj && obj !== stopAt) {
680
+ const desc = Object.getOwnPropertyDescriptor(obj, memberName);
681
+ if (desc && (!getOnly || desc.get)) return desc;
682
+ obj = Object.getPrototypeOf(obj);
683
+ }
684
+ return void 0;
685
+ }
686
+
676
687
  // src/utils/es2022-rewire-class-members.ts
677
688
  var reWireGetterSetter = (instance, hostRef) => {
678
- var _a;
689
+ var _a2;
679
690
  const cmpMeta = hostRef.$cmpMeta$;
680
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
691
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
681
692
  members.map(([memberName, [memberFlags]]) => {
682
693
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
683
694
  const ogValue = instance[memberName];
684
- const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);
695
+ const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName, true) || Object.getOwnPropertyDescriptor(instance, memberName);
685
696
  if (ogDescriptor) {
686
697
  Object.defineProperty(instance, memberName, {
687
698
  get() {
@@ -694,18 +705,14 @@ var reWireGetterSetter = (instance, hostRef) => {
694
705
  enumerable: true
695
706
  });
696
707
  }
697
- instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;
708
+ if (hostRef.$instanceValues$.has(memberName)) {
709
+ instance[memberName] = hostRef.$instanceValues$.get(memberName);
710
+ } else if (ogValue !== void 0) {
711
+ instance[memberName] = ogValue;
712
+ }
698
713
  }
699
714
  });
700
715
  };
701
- function getPropertyDescriptor(obj, memberName) {
702
- while (obj) {
703
- const desc = Object.getOwnPropertyDescriptor(obj, memberName);
704
- if (desc == null ? void 0 : desc.get) return desc;
705
- obj = Object.getPrototypeOf(obj);
706
- }
707
- return void 0;
708
- }
709
716
 
710
717
  // src/runtime/runtime-constants.ts
711
718
  var CONTENT_REF_ID = "r";
@@ -733,13 +740,13 @@ function createStyleSheetIfNeededAndSupported(styles2) {
733
740
  // src/utils/shadow-root.ts
734
741
  var globalStyleSheet;
735
742
  function createShadowRoot(cmpMeta) {
736
- var _a;
743
+ var _a2;
737
744
  const opts = { mode: "open" };
738
745
  {
739
746
  opts.delegatesFocus = !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */);
740
747
  }
741
748
  const shadowRoot = this.attachShadow(opts);
742
- if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
749
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a2 = createStyleSheetIfNeededAndSupported()) != null ? _a2 : null;
743
750
  if (globalStyleSheet) {
744
751
  {
745
752
  shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
@@ -875,8 +882,8 @@ function dispatchSlotChangeEvent(elm) {
875
882
  elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
876
883
  }
877
884
  function findSlotFromSlottedNode(slottedNode, parentHost) {
878
- var _a;
879
- parentHost = parentHost || ((_a = slottedNode["s-ol"]) == null ? void 0 : _a.parentElement);
885
+ var _a2;
886
+ parentHost = parentHost || ((_a2 = slottedNode["s-ol"]) == null ? void 0 : _a2.parentElement);
880
887
  if (!parentHost) return { slotNode: null, slotName: "" };
881
888
  const slotName = slottedNode["s-sn"] = getSlotName(slottedNode) || "";
882
889
  const childNodes = internalCall(parentHost, "childNodes");
@@ -910,8 +917,8 @@ var uniqueTime = (key, measureText) => {
910
917
 
911
918
  // src/utils/query-nonce-meta-tag-content.ts
912
919
  function queryNonceMetaTagContent(doc) {
913
- var _a, _b, _c;
914
- 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;
920
+ var _a2, _b, _c;
921
+ 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;
915
922
  }
916
923
 
917
924
  // src/runtime/styles.ts
@@ -924,7 +931,7 @@ var registerStyle = (scopeId2, cssText, allowCS) => {
924
931
  styles.set(scopeId2, style);
925
932
  };
926
933
  var addStyle = (styleContainerNode, cmpMeta, mode) => {
927
- var _a;
934
+ var _a2;
928
935
  const scopeId2 = getScopeId(cmpMeta, mode);
929
936
  const style = styles.get(scopeId2);
930
937
  if (!win$2.document) {
@@ -945,7 +952,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
945
952
  } else if (!appliedStyles.has(scopeId2)) {
946
953
  styleElm = win$2.document.createElement("style");
947
954
  styleElm.textContent = style;
948
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win$2.document);
955
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win$2.document);
949
956
  if (nonce != null) {
950
957
  styleElm.setAttribute("nonce", nonce);
951
958
  }
@@ -963,7 +970,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
963
970
  } else if ("host" in styleContainerNode) {
964
971
  {
965
972
  const existingStyleContainer = styleContainerNode.querySelector("style");
966
- if (existingStyleContainer) {
973
+ if (existingStyleContainer && true) {
967
974
  existingStyleContainer.textContent = style + existingStyleContainer.textContent;
968
975
  } else {
969
976
  styleContainerNode.prepend(styleElm);
@@ -1131,7 +1138,7 @@ var convertToPrivate = (node) => {
1131
1138
 
1132
1139
  // src/runtime/client-hydrate.ts
1133
1140
  var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1134
- var _a, _b, _c, _d;
1141
+ var _a2, _b, _c, _d;
1135
1142
  const endHydrate = createTime("hydrateClient", tagName);
1136
1143
  const shadowRoot = hostElm.shadowRoot;
1137
1144
  const childRenderNodes = [];
@@ -1178,7 +1185,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1178
1185
  if (childRenderNode.$tag$ === "slot") {
1179
1186
  node["s-cr"] = hostElm["s-cr"];
1180
1187
  }
1181
- } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1188
+ } else if (((_a2 = childRenderNode.$tag$) == null ? void 0 : _a2.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1182
1189
  const cmpMeta = getHostRef(childRenderNode.$elm$);
1183
1190
  if (cmpMeta) {
1184
1191
  const scopeId3 = getScopeId(
@@ -1525,10 +1532,10 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1525
1532
  parentVNode.$children$[childVNode.$index$] = childVNode;
1526
1533
  }
1527
1534
  var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1528
- var _a, _b;
1535
+ var _a2, _b;
1529
1536
  let slottedNode = slotNode.nextSibling;
1530
1537
  slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
1531
- if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + "."))) return;
1538
+ if (!slottedNode || ((_a2 = slottedNode.nodeValue) == null ? void 0 : _a2.startsWith(SLOT_NODE_ID + "."))) return;
1532
1539
  do {
1533
1540
  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 */))) {
1534
1541
  slottedNode["s-sn"] = slotName;
@@ -1960,8 +1967,33 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
1960
1967
  var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
1961
1968
  var setMode = (handler) => modeResolutionChain.push(handler);
1962
1969
  var getMode = (ref) => {
1963
- var _a;
1964
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$modeName$;
1970
+ var _a2;
1971
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$modeName$;
1972
+ };
1973
+
1974
+ // src/runtime/normalize-watchers.ts
1975
+ var normalizeWatchers = (raw) => {
1976
+ if (!raw) return void 0;
1977
+ const keys = Object.keys(raw);
1978
+ if (keys.length === 0) return void 0;
1979
+ let hasLegacy = false;
1980
+ for (const propName of keys) {
1981
+ if (hasLegacy) break;
1982
+ for (const h2 of raw[propName]) {
1983
+ if (typeof h2 === "string") {
1984
+ hasLegacy = true;
1985
+ break;
1986
+ }
1987
+ }
1988
+ }
1989
+ if (!hasLegacy) return raw;
1990
+ const out = {};
1991
+ for (const propName of keys) {
1992
+ out[propName] = raw[propName].map(
1993
+ (h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
1994
+ );
1995
+ }
1996
+ return out;
1965
1997
  };
1966
1998
 
1967
1999
  // src/utils/remote-value.ts
@@ -2060,11 +2092,19 @@ var RemoteValue = class _RemoteValue {
2060
2092
  };
2061
2093
 
2062
2094
  // src/utils/serialize.ts
2095
+ function decodeBase64Unicode(base64) {
2096
+ const binary = atob(base64);
2097
+ const bytes = new Uint8Array(binary.length);
2098
+ for (let i2 = 0; i2 < binary.length; i2++) {
2099
+ bytes[i2] = binary.charCodeAt(i2);
2100
+ }
2101
+ return new TextDecoder().decode(bytes);
2102
+ }
2063
2103
  function deserializeProperty(value) {
2064
2104
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
2065
2105
  return value;
2066
2106
  }
2067
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
2107
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
2068
2108
  }
2069
2109
 
2070
2110
  // src/runtime/parse-property-value.ts
@@ -2090,8 +2130,8 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
2090
2130
  return propValue;
2091
2131
  };
2092
2132
  var getElement = (ref) => {
2093
- var _a;
2094
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ ;
2133
+ var _a2;
2134
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$hostElement$ ;
2095
2135
  };
2096
2136
 
2097
2137
  // src/runtime/event-emitter.ts
@@ -2316,7 +2356,7 @@ var isSvgMode = false;
2316
2356
  var refCallbacksToRemove = [];
2317
2357
  var refCallbacksToAttach = [];
2318
2358
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2319
- var _a;
2359
+ var _a2;
2320
2360
  const newVNode2 = newParentVNode.$children$[childIndex];
2321
2361
  let i2 = 0;
2322
2362
  let elm;
@@ -2387,7 +2427,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2387
2427
  elm["s-sr"] = true;
2388
2428
  elm["s-cr"] = contentRef;
2389
2429
  elm["s-sn"] = newVNode2.$name$ || "";
2390
- elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
2430
+ elm["s-rf"] = (_a2 = newVNode2.$attrs$) == null ? void 0 : _a2.ref;
2391
2431
  patchSlotNode(elm);
2392
2432
  oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
2393
2433
  if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
@@ -2729,12 +2769,12 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
2729
2769
  }
2730
2770
  };
2731
2771
  function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2732
- var _a, _b;
2772
+ var _a2, _b;
2733
2773
  let scopeId2;
2734
2774
  if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
2735
2775
  const scopeName = slotNode["s-sn"];
2736
2776
  const hostName = slotNode["s-hn"];
2737
- (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
2777
+ (_a2 = newParent.classList) == null ? void 0 : _a2.add(scopeId2 + "-s");
2738
2778
  if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
2739
2779
  let child = (oldParent.__childNodes || oldParent.childNodes)[0];
2740
2780
  let found = false;
@@ -2750,7 +2790,7 @@ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2750
2790
  }
2751
2791
  }
2752
2792
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2753
- var _a, _d, _e;
2793
+ var _a2, _d, _e;
2754
2794
  const hostElm = hostRef.$hostElement$;
2755
2795
  const cmpMeta = hostRef.$cmpMeta$;
2756
2796
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -2806,7 +2846,7 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2806
2846
  const nodeToRelocate = relocateData.$nodeToRelocate$;
2807
2847
  const slotRefNode = relocateData.$slotRefNode$;
2808
2848
  if (nodeToRelocate.nodeType === 1 /* ElementNode */ && isInitialLoad) {
2809
- nodeToRelocate["s-ih"] = (_a = nodeToRelocate.hidden) != null ? _a : false;
2849
+ nodeToRelocate["s-ih"] = (_a2 = nodeToRelocate.hidden) != null ? _a2 : false;
2810
2850
  }
2811
2851
  if (slotRefNode) {
2812
2852
  const parentNodeRef = slotRefNode.parentNode;
@@ -2866,14 +2906,14 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2866
2906
  flushQueuedRefCallbacks();
2867
2907
  };
2868
2908
  var slotReferenceDebugNode = (slotVNode) => {
2869
- var _a;
2870
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2909
+ var _a2;
2910
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2871
2911
  `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
2872
2912
  );
2873
2913
  };
2874
2914
  var originalLocationDebugNode = (nodeToRelocate) => {
2875
- var _a;
2876
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2915
+ var _a2;
2916
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2877
2917
  `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
2878
2918
  );
2879
2919
  };
@@ -2950,7 +2990,7 @@ var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then
2950
2990
  }) : fn();
2951
2991
  var isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === "function";
2952
2992
  var updateComponent = async (hostRef, instance, isInitialLoad) => {
2953
- var _a;
2993
+ var _a2;
2954
2994
  const elm = hostRef.$hostElement$;
2955
2995
  const endUpdate = createTime("update", hostRef.$cmpMeta$.$tagName$);
2956
2996
  const rc = elm["s-rc"];
@@ -2982,7 +3022,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
2982
3022
  endRender();
2983
3023
  endUpdate();
2984
3024
  {
2985
- const childrenPromises = (_a = elm["s-p"]) != null ? _a : [];
3025
+ const childrenPromises = (_a2 = elm["s-p"]) != null ? _a2 : [];
2986
3026
  const postUpdate = () => postUpdateComponent(hostRef);
2987
3027
  if (childrenPromises.length === 0) {
2988
3028
  postUpdate();
@@ -3056,13 +3096,13 @@ var forceUpdate = (ref) => {
3056
3096
  return false;
3057
3097
  };
3058
3098
  var appDidLoad = (who) => {
3059
- var _a;
3099
+ var _a2;
3060
3100
  if (BUILD.asyncQueue) {
3061
3101
  plt.$flags$ |= 2 /* appLoaded */;
3062
3102
  }
3063
3103
  nextTick(() => emitEvent(win$2, "appload", { detail: { namespace: NAMESPACE } }));
3064
3104
  {
3065
- if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {
3105
+ if ((_a2 = plt.$orgLocNodes$) == null ? void 0 : _a2.size) {
3066
3106
  plt.$orgLocNodes$.clear();
3067
3107
  }
3068
3108
  }
@@ -3078,8 +3118,8 @@ var safeCall$1 = (instance, method, arg, elm) => {
3078
3118
  return void 0;
3079
3119
  };
3080
3120
  var addHydratedFlag = (elm) => {
3081
- var _a;
3082
- return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") ;
3121
+ var _a2;
3122
+ return elm.classList.add((_a2 = BUILD.hydratedSelectorName) != null ? _a2 : "hydrated") ;
3083
3123
  };
3084
3124
  var serverSideConnected = (elm) => {
3085
3125
  const children = elm.children;
@@ -3154,12 +3194,12 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3154
3194
 
3155
3195
  // src/runtime/proxy-component.ts
3156
3196
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3157
- var _a;
3197
+ var _a2;
3158
3198
  const prototype = Cstr.prototype;
3159
3199
  {
3160
3200
  {
3161
3201
  if (Cstr.watchers && !cmpMeta.$watchers$) {
3162
- cmpMeta.$watchers$ = Cstr.watchers;
3202
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3163
3203
  }
3164
3204
  if (Cstr.deserializers && !cmpMeta.$deserializers$) {
3165
3205
  cmpMeta.$deserializers$ = Cstr.deserializers;
@@ -3168,10 +3208,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3168
3208
  cmpMeta.$serializers$ = Cstr.serializers;
3169
3209
  }
3170
3210
  }
3171
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
3211
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
3172
3212
  members.map(([memberName, [memberFlags]]) => {
3173
3213
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
3174
- const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
3214
+ const { get: origGetter, set: origSetter } = getPropertyDescriptor(prototype, memberName) || {};
3175
3215
  if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
3176
3216
  if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
3177
3217
  if (!origGetter) {
@@ -3246,7 +3286,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3246
3286
  }
3247
3287
  if (!Cstr.isProxied) {
3248
3288
  {
3249
- cmpMeta.$watchers$ = Cstr.watchers;
3289
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3250
3290
  cmpMeta.$serializers$ = Cstr.serializers;
3251
3291
  cmpMeta.$deserializers$ = Cstr.deserializers;
3252
3292
  }
@@ -3412,11 +3452,11 @@ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) =>
3412
3452
  }
3413
3453
  };
3414
3454
  var hostListenerProxy = (hostRef, methodName) => (ev) => {
3415
- var _a;
3455
+ var _a2;
3416
3456
  try {
3417
3457
  {
3418
3458
  if (hostRef.$flags$ & 256 /* isListenReady */) {
3419
- (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
3459
+ (_a2 = hostRef.$lazyInstance$) == null ? void 0 : _a2[methodName](ev);
3420
3460
  } else {
3421
3461
  (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
3422
3462
  }
@@ -3450,7 +3490,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3450
3490
  const orgLocationNodes = [];
3451
3491
  parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);
3452
3492
  orgLocationNodes.forEach((orgLocationNode) => {
3453
- var _a;
3493
+ var _a2;
3454
3494
  if (orgLocationNode != null && orgLocationNode["s-nr"]) {
3455
3495
  const nodeRef = orgLocationNode["s-nr"];
3456
3496
  let hostId = nodeRef["s-host-id"];
@@ -3468,7 +3508,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3468
3508
  }
3469
3509
  } else if (nodeRef.nodeType === 3 /* TextNode */) {
3470
3510
  if (hostId === 0) {
3471
- const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();
3511
+ const textContent = (_a2 = nodeRef.nodeValue) == null ? void 0 : _a2.trim();
3472
3512
  if (textContent === "") {
3473
3513
  orgLocationNode.remove();
3474
3514
  return;
@@ -3498,7 +3538,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3498
3538
  }
3499
3539
  };
3500
3540
  var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3501
- var _a;
3541
+ var _a2;
3502
3542
  if (node == null) {
3503
3543
  return;
3504
3544
  }
@@ -3506,7 +3546,7 @@ var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3506
3546
  orgLocationNodes.push(node);
3507
3547
  }
3508
3548
  if (node.nodeType === 1 /* ElementNode */) {
3509
- const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];
3549
+ const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a2 = node.shadowRoot) == null ? void 0 : _a2.childNodes) || [])];
3510
3550
  childNodes.forEach((childNode) => {
3511
3551
  const hostRef = getHostRef(childNode);
3512
3552
  if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {
@@ -3732,8 +3772,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
3732
3772
  };
3733
3773
 
3734
3774
  // node_modules/minimatch/dist/esm/ast.js
3775
+ var _a;
3735
3776
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
3736
3777
  var isExtglobType = (c) => types.has(c);
3778
+ var isExtglobAST = (c) => isExtglobType(c.type);
3779
+ var adoptionMap = /* @__PURE__ */ new Map([
3780
+ ["!", ["@"]],
3781
+ ["?", ["?", "@"]],
3782
+ ["@", ["@"]],
3783
+ ["*", ["*", "+", "?", "@"]],
3784
+ ["+", ["+", "@"]]
3785
+ ]);
3786
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
3787
+ ["!", ["?"]],
3788
+ ["@", ["?"]],
3789
+ ["+", ["?", "*"]]
3790
+ ]);
3791
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
3792
+ ["!", ["?", "@"]],
3793
+ ["?", ["?", "@"]],
3794
+ ["@", ["?", "@"]],
3795
+ ["*", ["*", "+", "?", "@"]],
3796
+ ["+", ["+", "@", "?", "*"]]
3797
+ ]);
3798
+ var usurpMap = /* @__PURE__ */ new Map([
3799
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
3800
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
3801
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
3802
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
3803
+ ]);
3737
3804
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
3738
3805
  var startNoDot = "(?!\\.)";
3739
3806
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -3743,8 +3810,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
3743
3810
  var qmark = "[^/]";
3744
3811
  var star = qmark + "*?";
3745
3812
  var starNoEmpty = qmark + "+?";
3746
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
3747
- var _AST = class _AST {
3813
+ 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;
3814
+ var AST = class {
3748
3815
  constructor(type, parent, options = {}) {
3749
3816
  __privateAdd(this, _AST_instances);
3750
3817
  __publicField(this, "type");
@@ -3797,44 +3864,44 @@ var _AST = class _AST {
3797
3864
  for (const p of parts) {
3798
3865
  if (p === "")
3799
3866
  continue;
3800
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
3867
+ if (typeof p !== "string" && !(p instanceof _a && __privateGet(p, _parent) === this)) {
3801
3868
  throw new Error("invalid part: " + p);
3802
3869
  }
3803
3870
  __privateGet(this, _parts).push(p);
3804
3871
  }
3805
3872
  }
3806
3873
  toJSON() {
3807
- var _a;
3874
+ var _a2;
3808
3875
  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())];
3809
3876
  if (this.isStart() && !this.type)
3810
3877
  ret.unshift([]);
3811
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")) {
3878
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
3812
3879
  ret.push({});
3813
3880
  }
3814
3881
  return ret;
3815
3882
  }
3816
3883
  isStart() {
3817
- var _a;
3884
+ var _a2;
3818
3885
  if (__privateGet(this, _root) === this)
3819
3886
  return true;
3820
- if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))
3887
+ if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
3821
3888
  return false;
3822
3889
  if (__privateGet(this, _parentIndex) === 0)
3823
3890
  return true;
3824
3891
  const p = __privateGet(this, _parent);
3825
3892
  for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {
3826
3893
  const pp = __privateGet(p, _parts)[i2];
3827
- if (!(pp instanceof _AST && pp.type === "!")) {
3894
+ if (!(pp instanceof _a && pp.type === "!")) {
3828
3895
  return false;
3829
3896
  }
3830
3897
  }
3831
3898
  return true;
3832
3899
  }
3833
3900
  isEnd() {
3834
- var _a, _b, _c;
3901
+ var _a2, _b, _c;
3835
3902
  if (__privateGet(this, _root) === this)
3836
3903
  return true;
3837
- if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")
3904
+ if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
3838
3905
  return true;
3839
3906
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
3840
3907
  return false;
@@ -3850,16 +3917,16 @@ var _AST = class _AST {
3850
3917
  this.push(part.clone(this));
3851
3918
  }
3852
3919
  clone(parent) {
3853
- const c = new _AST(this.type, parent);
3920
+ const c = new _a(this.type, parent);
3854
3921
  for (const p of __privateGet(this, _parts)) {
3855
3922
  c.copyIn(p);
3856
3923
  }
3857
3924
  return c;
3858
3925
  }
3859
3926
  static fromGlob(pattern, options = {}) {
3860
- var _a;
3861
- const ast = new _AST(null, void 0, options);
3862
- __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);
3927
+ var _a2;
3928
+ const ast = new _a(null, void 0, options);
3929
+ __privateMethod(_a2 = _a, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options, 0);
3863
3930
  return ast;
3864
3931
  }
3865
3932
  // returns the regular expression if there's magic, or the unescaped
@@ -3952,15 +4019,17 @@ var _AST = class _AST {
3952
4019
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
3953
4020
  // or start or whatever) and prepend ^ or / at the Regexp construction.
3954
4021
  toRegExpSource(allowDot) {
3955
- var _a;
4022
+ var _a2;
3956
4023
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
3957
- if (__privateGet(this, _root) === this)
4024
+ if (__privateGet(this, _root) === this) {
4025
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
3958
4026
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
3959
- if (!this.type) {
4027
+ }
4028
+ if (!isExtglobAST(this)) {
3960
4029
  const noEmpty = this.isStart() && this.isEnd();
3961
4030
  const src = __privateGet(this, _parts).map((p) => {
3962
- var _a2;
3963
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
4031
+ var _a3;
4032
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _a, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
3964
4033
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
3965
4034
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
3966
4035
  return re;
@@ -3983,7 +4052,7 @@ var _AST = class _AST {
3983
4052
  }
3984
4053
  }
3985
4054
  let end = "";
3986
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!") {
4055
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
3987
4056
  end = "(?:$|\\/)";
3988
4057
  }
3989
4058
  const final2 = start2 + src + end;
@@ -3999,12 +4068,13 @@ var _AST = class _AST {
3999
4068
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
4000
4069
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
4001
4070
  const s = this.toString();
4002
- __privateSet(this, _parts, [s]);
4003
- this.type = null;
4004
- __privateSet(this, _hasMagic, void 0);
4071
+ const me = this;
4072
+ __privateSet(me, _parts, [s]);
4073
+ me.type = null;
4074
+ __privateSet(me, _hasMagic, void 0);
4005
4075
  return [s, unescape(this.toString()), false, false];
4006
4076
  }
4007
- let bodyDotAllowed = !repeated || allowDot || dot || false ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4077
+ let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4008
4078
  if (bodyDotAllowed === body) {
4009
4079
  bodyDotAllowed = "";
4010
4080
  }
@@ -4070,8 +4140,9 @@ fillNegs_fn = function() {
4070
4140
  return this;
4071
4141
  };
4072
4142
  _AST_static = new WeakSet();
4073
- parseAST_fn = function(str, ast, pos, opt) {
4074
- var _a, _b;
4143
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
4144
+ var _a2, _b, _c, _d, _e;
4145
+ const maxDepth = (_a2 = opt.maxExtglobRecursion) != null ? _a2 : 2;
4075
4146
  let escaping = false;
4076
4147
  let inBrace = false;
4077
4148
  let braceStart = -1;
@@ -4103,11 +4174,12 @@ parseAST_fn = function(str, ast, pos, opt) {
4103
4174
  acc2 += c;
4104
4175
  continue;
4105
4176
  }
4106
- if (!opt.noext && isExtglobType(c) && str.charAt(i3) === "(") {
4177
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i3) === "(" && extDepth <= maxDepth;
4178
+ if (doRecurse) {
4107
4179
  ast.push(acc2);
4108
4180
  acc2 = "";
4109
- const ext2 = new _AST(c, ast);
4110
- i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);
4181
+ const ext2 = new _a(c, ast);
4182
+ i3 = __privateMethod(_b = _a, _AST_static, parseAST_fn).call(_b, str, ext2, i3, opt, extDepth + 1);
4111
4183
  ast.push(ext2);
4112
4184
  continue;
4113
4185
  }
@@ -4117,7 +4189,7 @@ parseAST_fn = function(str, ast, pos, opt) {
4117
4189
  return i3;
4118
4190
  }
4119
4191
  let i2 = pos + 1;
4120
- let part = new _AST(null, ast);
4192
+ let part = new _a(null, ast);
4121
4193
  const parts = [];
4122
4194
  let acc = "";
4123
4195
  while (i2 < str.length) {
@@ -4144,19 +4216,22 @@ parseAST_fn = function(str, ast, pos, opt) {
4144
4216
  acc += c;
4145
4217
  continue;
4146
4218
  }
4147
- if (isExtglobType(c) && str.charAt(i2) === "(") {
4219
+ const doRecurse = isExtglobType(c) && str.charAt(i2) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
4220
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
4221
+ if (doRecurse) {
4222
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
4148
4223
  part.push(acc);
4149
4224
  acc = "";
4150
- const ext2 = new _AST(c, part);
4225
+ const ext2 = new _a(c, part);
4151
4226
  part.push(ext2);
4152
- i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);
4227
+ i2 = __privateMethod(_e = _a, _AST_static, parseAST_fn).call(_e, str, ext2, i2, opt, extDepth + depthAdd);
4153
4228
  continue;
4154
4229
  }
4155
4230
  if (c === "|") {
4156
4231
  part.push(acc);
4157
4232
  acc = "";
4158
4233
  parts.push(part);
4159
- part = new _AST(null, ast);
4234
+ part = new _a(null, ast);
4160
4235
  continue;
4161
4236
  }
4162
4237
  if (c === ")") {
@@ -4175,6 +4250,100 @@ parseAST_fn = function(str, ast, pos, opt) {
4175
4250
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
4176
4251
  return i2;
4177
4252
  };
4253
+ canAdoptWithSpace_fn = function(child) {
4254
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
4255
+ };
4256
+ canAdopt_fn = function(child, map2 = adoptionMap) {
4257
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
4258
+ return false;
4259
+ }
4260
+ const gc = __privateGet(child, _parts)[0];
4261
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4262
+ return false;
4263
+ }
4264
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
4265
+ };
4266
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
4267
+ var _a2;
4268
+ return !!((_a2 = map2.get(this.type)) == null ? void 0 : _a2.includes(c));
4269
+ };
4270
+ adoptWithSpace_fn = function(child, index) {
4271
+ const gc = __privateGet(child, _parts)[0];
4272
+ const blank = new _a(null, gc, this.options);
4273
+ __privateGet(blank, _parts).push("");
4274
+ gc.push(blank);
4275
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
4276
+ };
4277
+ adopt_fn = function(child, index) {
4278
+ const gc = __privateGet(child, _parts)[0];
4279
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
4280
+ for (const p of __privateGet(gc, _parts)) {
4281
+ if (typeof p === "object")
4282
+ __privateSet(p, _parent, this);
4283
+ }
4284
+ __privateSet(this, _toString, void 0);
4285
+ };
4286
+ canUsurpType_fn = function(c) {
4287
+ const m = usurpMap.get(this.type);
4288
+ return !!(m == null ? void 0 : m.has(c));
4289
+ };
4290
+ canUsurp_fn = function(child) {
4291
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
4292
+ return false;
4293
+ }
4294
+ const gc = __privateGet(child, _parts)[0];
4295
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4296
+ return false;
4297
+ }
4298
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
4299
+ };
4300
+ usurp_fn = function(child) {
4301
+ const m = usurpMap.get(this.type);
4302
+ const gc = __privateGet(child, _parts)[0];
4303
+ const nt = m == null ? void 0 : m.get(gc.type);
4304
+ if (!nt)
4305
+ return false;
4306
+ __privateSet(this, _parts, __privateGet(gc, _parts));
4307
+ for (const p of __privateGet(this, _parts)) {
4308
+ if (typeof p === "object")
4309
+ __privateSet(p, _parent, this);
4310
+ }
4311
+ this.type = nt;
4312
+ __privateSet(this, _toString, void 0);
4313
+ __privateSet(this, _emptyExt, false);
4314
+ };
4315
+ flatten_fn = function() {
4316
+ var _a2, _b;
4317
+ if (!isExtglobAST(this)) {
4318
+ for (const p of __privateGet(this, _parts)) {
4319
+ if (typeof p === "object")
4320
+ __privateMethod(_a2 = p, _AST_instances, flatten_fn).call(_a2);
4321
+ }
4322
+ } else {
4323
+ let iterations = 0;
4324
+ let done = false;
4325
+ do {
4326
+ done = true;
4327
+ for (let i2 = 0; i2 < __privateGet(this, _parts).length; i2++) {
4328
+ const c = __privateGet(this, _parts)[i2];
4329
+ if (typeof c === "object") {
4330
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
4331
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
4332
+ done = false;
4333
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i2);
4334
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
4335
+ done = false;
4336
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i2);
4337
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
4338
+ done = false;
4339
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
4340
+ }
4341
+ }
4342
+ }
4343
+ } while (!done && ++iterations < 10);
4344
+ }
4345
+ __privateSet(this, _toString, void 0);
4346
+ };
4178
4347
  partsToRegExp_fn = function(dot) {
4179
4348
  return __privateGet(this, _parts).map((p) => {
4180
4349
  if (typeof p === "string") {
@@ -4189,11 +4358,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4189
4358
  let escaping = false;
4190
4359
  let re = "";
4191
4360
  let uflag = false;
4361
+ let inStar = false;
4192
4362
  for (let i2 = 0; i2 < glob.length; i2++) {
4193
4363
  const c = glob.charAt(i2);
4194
4364
  if (escaping) {
4195
4365
  escaping = false;
4196
4366
  re += (reSpecials.has(c) ? "\\" : "") + c;
4367
+ inStar = false;
4197
4368
  continue;
4198
4369
  }
4199
4370
  if (c === "\\") {
@@ -4211,16 +4382,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4211
4382
  uflag = uflag || needUflag;
4212
4383
  i2 += consumed - 1;
4213
4384
  hasMagic = hasMagic || magic;
4385
+ inStar = false;
4214
4386
  continue;
4215
4387
  }
4216
4388
  }
4217
4389
  if (c === "*") {
4218
- if (noEmpty && glob === "*")
4219
- re += starNoEmpty;
4220
- else
4221
- re += star;
4390
+ if (inStar)
4391
+ continue;
4392
+ inStar = true;
4393
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
4222
4394
  hasMagic = true;
4223
4395
  continue;
4396
+ } else {
4397
+ inStar = false;
4224
4398
  }
4225
4399
  if (c === "?") {
4226
4400
  re += qmark;
@@ -4231,8 +4405,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4231
4405
  }
4232
4406
  return [re, unescape(glob), !!hasMagic, uflag];
4233
4407
  };
4234
- __privateAdd(_AST, _AST_static);
4235
- var AST = _AST;
4408
+ __privateAdd(AST, _AST_static);
4409
+ _a = AST;
4236
4410
 
4237
4411
  // node_modules/minimatch/dist/esm/escape.js
4238
4412
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -4371,28 +4545,33 @@ var match = (list, pattern, options = {}) => {
4371
4545
  minimatch.match = match;
4372
4546
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
4373
4547
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
4548
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
4374
4549
  var Minimatch = class {
4375
- options;
4376
- set;
4377
- pattern;
4378
- windowsPathsNoEscape;
4379
- nonegate;
4380
- negate;
4381
- comment;
4382
- empty;
4383
- preserveMultipleSlashes;
4384
- partial;
4385
- globSet;
4386
- globParts;
4387
- nocase;
4388
- isWindows;
4389
- platform;
4390
- windowsNoMagicRoot;
4391
- regexp;
4392
4550
  constructor(pattern, options = {}) {
4551
+ __privateAdd(this, _Minimatch_instances);
4552
+ __publicField(this, "options");
4553
+ __publicField(this, "set");
4554
+ __publicField(this, "pattern");
4555
+ __publicField(this, "windowsPathsNoEscape");
4556
+ __publicField(this, "nonegate");
4557
+ __publicField(this, "negate");
4558
+ __publicField(this, "comment");
4559
+ __publicField(this, "empty");
4560
+ __publicField(this, "preserveMultipleSlashes");
4561
+ __publicField(this, "partial");
4562
+ __publicField(this, "globSet");
4563
+ __publicField(this, "globParts");
4564
+ __publicField(this, "nocase");
4565
+ __publicField(this, "isWindows");
4566
+ __publicField(this, "platform");
4567
+ __publicField(this, "windowsNoMagicRoot");
4568
+ __publicField(this, "maxGlobstarRecursion");
4569
+ __publicField(this, "regexp");
4570
+ var _a2;
4393
4571
  assertValidPattern(pattern);
4394
4572
  options = options || {};
4395
4573
  this.options = options;
4574
+ this.maxGlobstarRecursion = (_a2 = options.maxGlobstarRecursion) != null ? _a2 : 200;
4396
4575
  this.pattern = pattern;
4397
4576
  this.platform = options.platform || defaultPlatform;
4398
4577
  this.isWindows = this.platform === "win32";
@@ -4660,10 +4839,11 @@ var Minimatch = class {
4660
4839
  for (let i2 = 0; i2 < globParts.length - 1; i2++) {
4661
4840
  for (let j = i2 + 1; j < globParts.length; j++) {
4662
4841
  const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);
4663
- if (!matched)
4664
- continue;
4665
- globParts[i2] = matched;
4666
- globParts[j] = [];
4842
+ if (matched) {
4843
+ globParts[i2] = [];
4844
+ globParts[j] = matched;
4845
+ break;
4846
+ }
4667
4847
  }
4668
4848
  }
4669
4849
  return globParts.filter((gs) => gs.length);
@@ -4724,7 +4904,8 @@ var Minimatch = class {
4724
4904
  // out of pattern, then that's fine, as long as all
4725
4905
  // the parts match.
4726
4906
  matchOne(file, pattern, partial = false) {
4727
- const options = this.options;
4907
+ let fileStartIndex = 0;
4908
+ let patternStartIndex = 0;
4728
4909
  if (this.isWindows) {
4729
4910
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
4730
4911
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -4733,14 +4914,14 @@ var Minimatch = class {
4733
4914
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
4734
4915
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
4735
4916
  if (typeof fdi === "number" && typeof pdi === "number") {
4736
- const [fd, pd] = [file[fdi], pattern[pdi]];
4917
+ const [fd, pd] = [
4918
+ file[fdi],
4919
+ pattern[pdi]
4920
+ ];
4737
4921
  if (fd.toLowerCase() === pd.toLowerCase()) {
4738
4922
  pattern[pdi] = fd;
4739
- if (pdi > fdi) {
4740
- pattern = pattern.slice(pdi);
4741
- } else if (fdi > pdi) {
4742
- file = file.slice(fdi);
4743
- }
4923
+ patternStartIndex = pdi;
4924
+ fileStartIndex = fdi;
4744
4925
  }
4745
4926
  }
4746
4927
  }
@@ -4748,71 +4929,10 @@ var Minimatch = class {
4748
4929
  if (optimizationLevel >= 2) {
4749
4930
  file = this.levelTwoFileOptimize(file);
4750
4931
  }
4751
- this.debug("matchOne", this, { file, pattern });
4752
- this.debug("matchOne", file.length, pattern.length);
4753
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
4754
- this.debug("matchOne loop");
4755
- var p = pattern[pi];
4756
- var f = file[fi];
4757
- this.debug(pattern, p, f);
4758
- if (p === false) {
4759
- return false;
4760
- }
4761
- if (p === GLOBSTAR) {
4762
- this.debug("GLOBSTAR", [pattern, p, f]);
4763
- var fr = fi;
4764
- var pr = pi + 1;
4765
- if (pr === pl) {
4766
- this.debug("** at the end");
4767
- for (; fi < fl; fi++) {
4768
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
4769
- return false;
4770
- }
4771
- return true;
4772
- }
4773
- while (fr < fl) {
4774
- var swallowee = file[fr];
4775
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
4776
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
4777
- this.debug("globstar found match!", fr, fl, swallowee);
4778
- return true;
4779
- } else {
4780
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
4781
- this.debug("dot detected!", file, fr, pattern, pr);
4782
- break;
4783
- }
4784
- this.debug("globstar swallow a segment, and continue");
4785
- fr++;
4786
- }
4787
- }
4788
- if (partial) {
4789
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
4790
- if (fr === fl) {
4791
- return true;
4792
- }
4793
- }
4794
- return false;
4795
- }
4796
- let hit;
4797
- if (typeof p === "string") {
4798
- hit = f === p;
4799
- this.debug("string match", p, f, hit);
4800
- } else {
4801
- hit = p.test(f);
4802
- this.debug("pattern match", p, f, hit);
4803
- }
4804
- if (!hit)
4805
- return false;
4806
- }
4807
- if (fi === fl && pi === pl) {
4808
- return true;
4809
- } else if (fi === fl) {
4810
- return partial;
4811
- } else if (pi === pl) {
4812
- return fi === fl - 1 && file[fi] === "";
4813
- } else {
4814
- throw new Error("wtf?");
4932
+ if (pattern.includes(GLOBSTAR)) {
4933
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4815
4934
  }
4935
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4816
4936
  }
4817
4937
  braceExpand() {
4818
4938
  return braceExpand(this.pattern, this.options);
@@ -4951,6 +5071,135 @@ var Minimatch = class {
4951
5071
  return minimatch.defaults(def).Minimatch;
4952
5072
  }
4953
5073
  };
5074
+ _Minimatch_instances = new WeakSet();
5075
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5076
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
5077
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
5078
+ const [head, body, tail] = partial ? [
5079
+ pattern.slice(patternIndex, firstgs),
5080
+ pattern.slice(firstgs + 1),
5081
+ []
5082
+ ] : [
5083
+ pattern.slice(patternIndex, firstgs),
5084
+ pattern.slice(firstgs + 1, lastgs),
5085
+ pattern.slice(lastgs + 1)
5086
+ ];
5087
+ if (head.length) {
5088
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
5089
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
5090
+ return false;
5091
+ fileIndex += head.length;
5092
+ }
5093
+ let fileTailMatch = 0;
5094
+ if (tail.length) {
5095
+ if (tail.length + fileIndex > file.length)
5096
+ return false;
5097
+ let tailStart = file.length - tail.length;
5098
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
5099
+ fileTailMatch = tail.length;
5100
+ } else {
5101
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
5102
+ return false;
5103
+ }
5104
+ tailStart--;
5105
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
5106
+ return false;
5107
+ fileTailMatch = tail.length + 1;
5108
+ }
5109
+ }
5110
+ if (!body.length) {
5111
+ let sawSome = !!fileTailMatch;
5112
+ for (let i3 = fileIndex; i3 < file.length - fileTailMatch; i3++) {
5113
+ const f = String(file[i3]);
5114
+ sawSome = true;
5115
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5116
+ return false;
5117
+ }
5118
+ }
5119
+ return partial || sawSome;
5120
+ }
5121
+ const bodySegments = [[[], 0]];
5122
+ let currentBody = bodySegments[0];
5123
+ let nonGsParts = 0;
5124
+ const nonGsPartsSums = [0];
5125
+ for (const b of body) {
5126
+ if (b === GLOBSTAR) {
5127
+ nonGsPartsSums.push(nonGsParts);
5128
+ currentBody = [[], 0];
5129
+ bodySegments.push(currentBody);
5130
+ } else {
5131
+ currentBody[0].push(b);
5132
+ nonGsParts++;
5133
+ }
5134
+ }
5135
+ let i2 = bodySegments.length - 1;
5136
+ const fileLength = file.length - fileTailMatch;
5137
+ for (const b of bodySegments) {
5138
+ b[1] = fileLength - (nonGsPartsSums[i2--] + b[0].length);
5139
+ }
5140
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
5141
+ };
5142
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
5143
+ const bs = bodySegments[bodyIndex];
5144
+ if (!bs) {
5145
+ for (let i2 = fileIndex; i2 < file.length; i2++) {
5146
+ sawTail = true;
5147
+ const f = file[i2];
5148
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5149
+ return false;
5150
+ }
5151
+ }
5152
+ return sawTail;
5153
+ }
5154
+ const [body, after] = bs;
5155
+ while (fileIndex <= after) {
5156
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
5157
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
5158
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
5159
+ if (sub !== false)
5160
+ return sub;
5161
+ }
5162
+ const f = file[fileIndex];
5163
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5164
+ return false;
5165
+ }
5166
+ fileIndex++;
5167
+ }
5168
+ return partial || null;
5169
+ };
5170
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5171
+ let fi;
5172
+ let pi;
5173
+ let pl;
5174
+ let fl;
5175
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
5176
+ this.debug("matchOne loop");
5177
+ let p = pattern[pi];
5178
+ let f = file[fi];
5179
+ this.debug(pattern, p, f);
5180
+ if (p === false || p === GLOBSTAR)
5181
+ return false;
5182
+ let hit;
5183
+ if (typeof p === "string") {
5184
+ hit = f === p;
5185
+ this.debug("string match", p, f, hit);
5186
+ } else {
5187
+ hit = p.test(f);
5188
+ this.debug("pattern match", p, f, hit);
5189
+ }
5190
+ if (!hit)
5191
+ return false;
5192
+ }
5193
+ if (fi === fl && pi === pl) {
5194
+ return true;
5195
+ } else if (fi === fl) {
5196
+ return partial;
5197
+ } else if (pi === pl) {
5198
+ return fi === fl - 1 && file[fi] === "";
5199
+ } else {
5200
+ throw new Error("wtf?");
5201
+ }
5202
+ };
4954
5203
  minimatch.AST = AST;
4955
5204
  minimatch.Minimatch = Minimatch;
4956
5205
  minimatch.escape = escape;
@@ -5024,7 +5273,7 @@ function proxyHostElement(elm, cstr) {
5024
5273
  const hostRef = getHostRef(elm);
5025
5274
  const members = Object.entries(cmpMeta.$members$);
5026
5275
  members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
5027
- var _a, _b;
5276
+ var _a2, _b;
5028
5277
  if (memberFlags & 31 /* Prop */) {
5029
5278
  const attributeName = metaAttributeName || memberName;
5030
5279
  const attrValue = elm.getAttribute(attributeName);
@@ -5032,7 +5281,7 @@ function proxyHostElement(elm, cstr) {
5032
5281
  let attrPropVal;
5033
5282
  const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(cstr.prototype, memberName) || {};
5034
5283
  if (attrValue != null) {
5035
- if ((_a = cmpMeta.$deserializers$) == null ? void 0 : _a[memberName]) {
5284
+ if ((_a2 = cmpMeta.$deserializers$) == null ? void 0 : _a2[memberName]) {
5036
5285
  for (const deserializer of cmpMeta.$deserializers$[memberName]) {
5037
5286
  const [[methodName]] = Object.entries(deserializer);
5038
5287
  attrPropVal = cstr.prototype[methodName](attrValue, memberName);
@@ -5065,8 +5314,8 @@ function proxyHostElement(elm, cstr) {
5065
5314
  Object.defineProperty(elm, memberName, getterSetterDescriptor);
5066
5315
  Object.defineProperty(elm, metaAttributeName, getterSetterDescriptor);
5067
5316
  hostRef.$fetchedCbList$.push(() => {
5068
- var _a2;
5069
- if (!((_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.has(memberName))) {
5317
+ var _a3;
5318
+ if (!((_a3 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a3.has(memberName))) {
5070
5319
  setValue(
5071
5320
  elm,
5072
5321
  memberName,
@@ -5079,11 +5328,11 @@ function proxyHostElement(elm, cstr) {
5079
5328
  } else if (memberFlags & 64 /* Method */) {
5080
5329
  Object.defineProperty(elm, memberName, {
5081
5330
  value(...args) {
5082
- var _a2;
5331
+ var _a3;
5083
5332
  const ref = getHostRef(this);
5084
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
5085
- var _a3;
5086
- return (_a3 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
5333
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
5334
+ var _a4;
5335
+ return (_a4 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
5087
5336
  }).catch((e) => {
5088
5337
  consoleError(e, this);
5089
5338
  });
@@ -5094,8 +5343,8 @@ function proxyHostElement(elm, cstr) {
5094
5343
  }
5095
5344
  }
5096
5345
  function componentOnReady$1() {
5097
- var _a;
5098
- return (_a = getHostRef(this)) == null ? void 0 : _a.$onReadyPromise$;
5346
+ var _a2;
5347
+ return (_a2 = getHostRef(this)) == null ? void 0 : _a2.$onReadyPromise$;
5099
5348
  }
5100
5349
  function forceUpdate2() {
5101
5350
  }
@@ -20183,7 +20432,7 @@ class InputOTP {
20183
20432
  const tabbableIndex = this.getTabbableIndex();
20184
20433
  const pattern = this.getPattern();
20185
20434
  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()) !== '';
20186
- return (hAsync(Host, { key: '5c1386ae6b8038ec33ca94fd818c9353b1b37f75', class: createColorClasses$1(color, {
20435
+ return (hAsync(Host, { key: 'ffeec6d07b5d3cd375b72d4c9f4fe755d80ac094', class: createColorClasses$1(color, {
20187
20436
  [mode]: true,
20188
20437
  'has-focus': hasFocus,
20189
20438
  [`input-otp-size-${size}`]: true,
@@ -20191,10 +20440,10 @@ class InputOTP {
20191
20440
  [`input-otp-fill-${fill}`]: true,
20192
20441
  'input-otp-disabled': disabled,
20193
20442
  'input-otp-readonly': readonly,
20194
- }) }, 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: {
20443
+ }) }, 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: {
20195
20444
  'input-otp-description': true,
20196
20445
  'input-otp-description-hidden': !hasDescription,
20197
- } }, hAsync("slot", { key: 'f4674d47d3d3991f21a0a79321ebc323968071dc' }))));
20446
+ } }, hAsync("slot", { key: '5bf9e7dc365f6caf0d4b13ae26e5559cdbbd162c' }))));
20198
20447
  }
20199
20448
  get el() { return getElement(this); }
20200
20449
  static get watchers() { return {
@@ -26408,20 +26657,20 @@ class Modal {
26408
26657
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26409
26658
  const isHandleCycle = handleBehavior === 'cycle';
26410
26659
  const isSheetModalWithHandle = isSheetModal && showHandle;
26411
- return (hAsync(Host, Object.assign({ key: 'd6a271ace939c33703966a1425ab32b7a30bf246', "no-router": true,
26660
+ return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26412
26661
  // Allow the modal to be navigable when the handle is focusable
26413
26662
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26414
26663
  zIndex: `${20000 + this.overlayIndex}`,
26415
- }, 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',
26664
+ }, 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',
26416
26665
  /*
26417
26666
  role and aria-modal must be used on the
26418
26667
  same element. They must also be set inside the
26419
26668
  shadow DOM otherwise ion-button will not be highlighted
26420
26669
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26421
26670
  */
26422
- 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",
26671
+ 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",
26423
26672
  // Prevents the handle from receiving keyboard focus when it does not cycle
26424
- 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 }))));
26673
+ 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 }))));
26425
26674
  }
26426
26675
  get el() { return getElement(this); }
26427
26676
  static get watchers() { return {
@@ -26430,6 +26679,9 @@ class Modal {
26430
26679
  }],
26431
26680
  "trigger": [{
26432
26681
  "triggerChanged": 0
26682
+ }],
26683
+ "breakpoints": [{
26684
+ "breakpointsChanged": 0
26433
26685
  }]
26434
26686
  }; }
26435
26687
  static get style() { return {
@@ -29161,7 +29413,7 @@ class PickerColumnCmp {
29161
29413
  this.emitColChange();
29162
29414
  return;
29163
29415
  }
29164
- this.velocity = clamp(-90, detail.velocityY * 23, MAX_PICKER_SPEED);
29416
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29165
29417
  if (this.velocity === 0 && detail.deltaY === 0) {
29166
29418
  const opt = detail.event.target.closest('.picker-opt');
29167
29419
  if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
@@ -29256,7 +29508,7 @@ const TRANSITION_DURATION = 150;
29256
29508
 
29257
29509
  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}`;
29258
29510
 
29259
- 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)}`;
29511
+ 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)}`;
29260
29512
 
29261
29513
  class PickerColumnOption {
29262
29514
  constructor(hostRef) {
@@ -33934,7 +34186,7 @@ class ReorderGroup {
33934
34186
  }
33935
34187
  let amount = 0;
33936
34188
  if (posY < this.scrollElTop) {
33937
- amount = -10;
34189
+ amount = -SCROLL_JUMP;
33938
34190
  }
33939
34191
  else if (posY > this.scrollElBottom) {
33940
34192
  amount = SCROLL_JUMP;
@@ -34196,7 +34448,7 @@ const generatePath = (segments) => {
34196
34448
  const path = segments.filter((s) => s.length > 0).join('/');
34197
34449
  return '/' + path;
34198
34450
  };
34199
- const generateUrl = (segments, useHash, queryString) => {
34451
+ const generateUrl = (segments, useHash, queryString, fragment) => {
34200
34452
  let url = generatePath(segments);
34201
34453
  if (useHash) {
34202
34454
  url = '#' + url;
@@ -34204,10 +34456,13 @@ const generateUrl = (segments, useHash, queryString) => {
34204
34456
  if (queryString !== undefined) {
34205
34457
  url += '?' + queryString;
34206
34458
  }
34459
+ if (fragment !== undefined) {
34460
+ url += '#' + fragment;
34461
+ }
34207
34462
  return url;
34208
34463
  };
34209
- const writeSegments = (history, root, useHash, segments, direction, state, queryString) => {
34210
- const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString);
34464
+ const writeSegments = (history, root, useHash, segments, direction, state, queryString, fragment) => {
34465
+ const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString, fragment);
34211
34466
  if (direction === ROUTER_INTENT_FORWARD) {
34212
34467
  history.pushState(state, '', url);
34213
34468
  }
@@ -34274,12 +34529,21 @@ const readSegments = (loc, root, useHash) => {
34274
34529
  /**
34275
34530
  * Parses the path to:
34276
34531
  * - segments an array of '/' separated parts,
34277
- * - queryString (undefined when no query string).
34532
+ * - queryString (undefined when no query string),
34533
+ * - fragment (undefined when no `#`).
34278
34534
  */
34279
34535
  const parsePath = (path) => {
34280
34536
  let segments = [''];
34281
34537
  let queryString;
34538
+ let fragment;
34282
34539
  if (path != null) {
34540
+ // The fragment ("#") starts a section that runs to the end of the URL.
34541
+ // Anything inside it (including "?") is part of the fragment per RFC 3986.
34542
+ const fragStart = path.indexOf('#');
34543
+ if (fragStart > -1) {
34544
+ fragment = path.substring(fragStart + 1);
34545
+ path = path.substring(0, fragStart);
34546
+ }
34283
34547
  const qsStart = path.indexOf('?');
34284
34548
  if (qsStart > -1) {
34285
34549
  queryString = path.substring(qsStart + 1);
@@ -34293,7 +34557,7 @@ const parsePath = (path) => {
34293
34557
  segments = [''];
34294
34558
  }
34295
34559
  }
34296
- return { segments, queryString };
34560
+ return { segments, queryString, fragment };
34297
34561
  };
34298
34562
 
34299
34563
  const printRoutes = (routes) => {
@@ -34378,6 +34642,118 @@ const readNavState = async (root) => {
34378
34642
  }
34379
34643
  return { ids, outlet };
34380
34644
  };
34645
+ /** Max animation frames `scrollToFragment` polls while waiting for the target to mount. */
34646
+ const FRAGMENT_POLL_FRAMES = 30;
34647
+ /** Duration (ms) of the smooth-scroll animation that lands on the fragment target. */
34648
+ const FRAGMENT_SCROLL_DURATION = 300;
34649
+ const nextFrame = () => new Promise((resolve) => raf(() => resolve()));
34650
+ /**
34651
+ * Returns true when `el` lives inside an active `.ion-page`. `ion-page-hidden`
34652
+ * marks nav back-stack entries; `tab-hidden` marks inactive `ion-tab` elements.
34653
+ * Either class on the page's ancestor chain disqualifies it. When no `.ion-page`
34654
+ * exists in the document at all (non-router pages), the candidate is accepted
34655
+ * so plain anchors still work.
34656
+ */
34657
+ const isInActivePage = (el) => {
34658
+ const page = el.closest('.ion-page');
34659
+ if (page === null) {
34660
+ return document.querySelector('.ion-page') === null;
34661
+ }
34662
+ return page.closest('.ion-page-hidden, .tab-hidden') === null;
34663
+ };
34664
+ /**
34665
+ * Polls across animation frames for an element matching `fragment` that lives
34666
+ * in the active page. Scoping by "last `.ion-page:not(.ion-page-hidden)`" is
34667
+ * unreliable: inactive `ion-tab` siblings carry `.ion-page` (gated by
34668
+ * `.tab-hidden`, not `.ion-page-hidden`) and can be ordered after the leaf.
34669
+ * Instead, locate candidates globally and walk them from last to first,
34670
+ * accepting the deepest one whose `.ion-page` ancestor is not hidden. The
34671
+ * last-to-first order preserves leaf-most preference for nested outlets.
34672
+ */
34673
+ const findFragmentTarget = async (fragment, shouldContinue) => {
34674
+ // CSS.escape is unavailable on very old WebViews; the fallback path uses
34675
+ // `getElementById` and drops the legacy `<a name>` branch.
34676
+ const canEscape = typeof CSS !== 'undefined' && typeof CSS.escape === 'function';
34677
+ const escaped = canEscape ? CSS.escape(fragment) : null;
34678
+ for (let i = 0; i < FRAGMENT_POLL_FRAMES; i++) {
34679
+ if (!shouldContinue())
34680
+ return null;
34681
+ let candidates = [];
34682
+ if (escaped !== null) {
34683
+ try {
34684
+ candidates = [...document.querySelectorAll(`#${escaped}, a[name="${escaped}"]`)];
34685
+ }
34686
+ catch (_a) {
34687
+ candidates = [...document.querySelectorAll(`#${escaped}`)];
34688
+ }
34689
+ }
34690
+ else {
34691
+ const byId = document.getElementById(fragment);
34692
+ if (byId !== null)
34693
+ candidates = [byId];
34694
+ }
34695
+ for (let j = candidates.length - 1; j >= 0; j--) {
34696
+ if (isInActivePage(candidates[j])) {
34697
+ return candidates[j];
34698
+ }
34699
+ }
34700
+ await nextFrame();
34701
+ }
34702
+ return null;
34703
+ };
34704
+ /**
34705
+ * Scrolls to the element whose id matches `fragment`, falling back to a legacy
34706
+ * `<a name="...">` target. When the target lives inside an `ion-content`, the
34707
+ * scroll uses its smooth-animated scroll API; otherwise it falls back to
34708
+ * `Element.scrollIntoView`.
34709
+ *
34710
+ * `shouldContinue` lets callers cancel in-flight scrolls when a newer
34711
+ * navigation supersedes this one. It is checked between async steps.
34712
+ */
34713
+ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
34714
+ if (fragment == null || fragment === '') {
34715
+ return false;
34716
+ }
34717
+ // URL fragments are percent-encoded but element ids are not; decode for
34718
+ // matching per the HTML spec's indicated-element resolution.
34719
+ let decoded;
34720
+ try {
34721
+ decoded = decodeURIComponent(fragment);
34722
+ }
34723
+ catch (_a) {
34724
+ decoded = fragment;
34725
+ }
34726
+ const target = await findFragmentTarget(decoded, shouldContinue);
34727
+ if (!target || !shouldContinue()) {
34728
+ return false;
34729
+ }
34730
+ // Best-effort scroll: swallow exceptions if the page tears down mid-animation.
34731
+ try {
34732
+ const contentHost = findClosestIonContent(target);
34733
+ if (contentHost && isIonContent(contentHost)) {
34734
+ const content = contentHost;
34735
+ const scrollEl = await getScrollElement(content);
34736
+ // Yield one frame so the newly mounted target's layout is stable
34737
+ // before we measure its rect.
34738
+ await nextFrame();
34739
+ if (!shouldContinue())
34740
+ return false;
34741
+ const targetRect = target.getBoundingClientRect();
34742
+ const scrollRect = scrollEl.getBoundingClientRect();
34743
+ const top = targetRect.top - scrollRect.top + scrollEl.scrollTop;
34744
+ // Preserve scrollLeft so RTL and horizontally-scrolling pages aren't reset.
34745
+ await content.scrollToPoint(scrollEl.scrollLeft, top, FRAGMENT_SCROLL_DURATION);
34746
+ }
34747
+ else {
34748
+ target.scrollIntoView({ behavior: 'smooth' });
34749
+ }
34750
+ return true;
34751
+ }
34752
+ catch (e) {
34753
+ printIonError('[ion-router] - Exception in scrollToFragment:', e);
34754
+ return false;
34755
+ }
34756
+ };
34381
34757
  const waitUntilNavNode = () => {
34382
34758
  if (searchNavNode(document.body)) {
34383
34759
  return Promise.resolve();
@@ -34719,6 +35095,7 @@ class Router {
34719
35095
  this.busy = false;
34720
35096
  this.state = 0;
34721
35097
  this.lastState = 0;
35098
+ this.fragmentScrollToken = 0;
34722
35099
  /**
34723
35100
  * The root path to use when matching URLs. By default, this is set to "/", but you can specify
34724
35101
  * an alternate prefix for all URL paths.
@@ -34747,12 +35124,17 @@ class Router {
34747
35124
  if (typeof canProceed === 'object') {
34748
35125
  const { redirect } = canProceed;
34749
35126
  const path = parsePath(redirect);
34750
- this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString);
34751
- await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35127
+ this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString, path.fragment);
35128
+ const result = await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35129
+ if (result) {
35130
+ this.maybeScrollToFragment();
35131
+ }
34752
35132
  }
35133
+ return;
34753
35134
  }
34754
- else {
34755
- await this.onRoutesChanged();
35135
+ const result = await this.onRoutesChanged();
35136
+ if (result) {
35137
+ this.maybeScrollToFragment();
34756
35138
  }
34757
35139
  }
34758
35140
  componentDidLoad() {
@@ -34771,7 +35153,11 @@ class Router {
34771
35153
  return false;
34772
35154
  }
34773
35155
  }
34774
- return this.writeNavStateRoot(segments, direction);
35156
+ const result = await this.writeNavStateRoot(segments, direction);
35157
+ if (result) {
35158
+ this.maybeScrollToFragment();
35159
+ }
35160
+ return result;
34775
35161
  }
34776
35162
  onBackButton(ev) {
34777
35163
  ev.detail.register(0, (processNextHandler) => {
@@ -34805,7 +35191,7 @@ class Router {
34805
35191
  const currentPath = (_a = this.previousPath) !== null && _a !== void 0 ? _a : '/';
34806
35192
  // Convert currentPath to an URL by pre-pending a protocol and a host to resolve the relative path.
34807
35193
  const url = new URL(path, `https://host/${currentPath}`);
34808
- path = url.pathname + url.search;
35194
+ path = url.pathname + url.search + url.hash;
34809
35195
  }
34810
35196
  let parsedPath = parsePath(path);
34811
35197
  const canProceed = await this.runGuards(parsedPath.segments);
@@ -34817,8 +35203,12 @@ class Router {
34817
35203
  return false;
34818
35204
  }
34819
35205
  }
34820
- this.setSegments(parsedPath.segments, direction, parsedPath.queryString);
34821
- return this.writeNavStateRoot(parsedPath.segments, direction, animation);
35206
+ this.setSegments(parsedPath.segments, direction, parsedPath.queryString, parsedPath.fragment);
35207
+ const result = await this.writeNavStateRoot(parsedPath.segments, direction, animation);
35208
+ if (result) {
35209
+ this.maybeScrollToFragment();
35210
+ }
35211
+ return result;
34822
35212
  }
34823
35213
  /** Go back to previous page in the window.history. */
34824
35214
  back() {
@@ -34848,7 +35238,12 @@ class Router {
34848
35238
  printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
34849
35239
  return false;
34850
35240
  }
34851
- this.setSegments(segments, direction);
35241
+ // navChanged is an outlet-driven URL sync. Only keep the fragment when
35242
+ // the path is unchanged; on a real navigation it refers to an anchor on
35243
+ // the page being left and would be stale.
35244
+ const newPath = generatePath(segments);
35245
+ const fragment = newPath === this.previousPath ? this.getFragment() : undefined;
35246
+ this.setSegments(segments, direction, undefined, fragment);
34852
35247
  await this.safeWriteNavState(outlet, chain, ROUTER_INTENT_NONE, segments, null, ids.length);
34853
35248
  return true;
34854
35249
  }
@@ -34891,8 +35286,8 @@ class Router {
34891
35286
  const redirect = findRouteRedirect(segments, redirects);
34892
35287
  let redirectFrom = null;
34893
35288
  if (redirect) {
34894
- const { segments: toSegments, queryString } = redirect.to;
34895
- this.setSegments(toSegments, direction, queryString);
35289
+ const { segments: toSegments, queryString, fragment } = redirect.to;
35290
+ this.setSegments(toSegments, direction, queryString, fragment);
34896
35291
  redirectFrom = redirect.from;
34897
35292
  segments = toSegments;
34898
35293
  }
@@ -34972,13 +35367,35 @@ class Router {
34972
35367
  }
34973
35368
  return changed;
34974
35369
  }
34975
- setSegments(segments, direction, queryString) {
35370
+ setSegments(segments, direction, queryString, fragment) {
34976
35371
  this.state++;
34977
- writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString);
35372
+ // Every URL write invalidates any in-flight fragment scroll: a newer nav
35373
+ // (with or without a fragment, successful or not) should always supersede.
35374
+ this.fragmentScrollToken++;
35375
+ writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString, fragment);
34978
35376
  }
34979
35377
  getSegments() {
34980
35378
  return readSegments(window.location, this.root, this.useHash);
34981
35379
  }
35380
+ getFragment() {
35381
+ // In hash mode the URL fragment trails a second `#` (e.g. `#/path#anchor`);
35382
+ // parse the routing portion to extract it.
35383
+ const raw = this.useHash ? parsePath(window.location.hash.slice(1)).fragment : window.location.hash.slice(1);
35384
+ return raw ? raw : undefined;
35385
+ }
35386
+ /**
35387
+ * Fires a best-effort scroll to the current URL fragment. The scroll bails
35388
+ * if a newer `setSegments` advances `fragmentScrollToken` mid-flight.
35389
+ */
35390
+ maybeScrollToFragment() {
35391
+ const fragment = this.getFragment();
35392
+ if (!fragment)
35393
+ return;
35394
+ const token = this.fragmentScrollToken;
35395
+ // Fire-and-forget; the returned promise resolves only after the scroll
35396
+ // animation completes, which the caller does not need to await.
35397
+ scrollToFragment(fragment, () => token === this.fragmentScrollToken).catch(() => { });
35398
+ }
34982
35399
  routeChangeEvent(toSegments, redirectFromSegments) {
34983
35400
  const from = this.previousPath;
34984
35401
  const to = generatePath(toSegments);
@@ -35526,12 +35943,14 @@ class Searchbar {
35526
35943
  }, 300);
35527
35944
  }
35528
35945
  disconnectedCallback() {
35946
+ var _a;
35529
35947
  if (this.loadTimeout) {
35530
35948
  clearTimeout(this.loadTimeout);
35531
35949
  }
35532
35950
  if (this.clearTimeout) {
35533
35951
  clearTimeout(this.clearTimeout);
35534
35952
  }
35953
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
35535
35954
  }
35536
35955
  emitStyle() {
35537
35956
  this.ionStyle.emit({
@@ -35629,6 +36048,7 @@ class Searchbar {
35629
36048
  doc.body.appendChild(tempSpan);
35630
36049
  // Get the width of the span then remove it
35631
36050
  raf(() => {
36051
+ var _a, _b;
35632
36052
  const textWidth = tempSpan.offsetWidth;
35633
36053
  tempSpan.remove();
35634
36054
  // Calculate the input padding
@@ -35640,7 +36060,25 @@ class Searchbar {
35640
36060
  * such as Dynamic Type on iOS as well as 8px
35641
36061
  * of padding.
35642
36062
  */
35643
- const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconEl.clientWidth + 8) + 'px)';
36063
+ const iconWidth = iconEl.clientWidth;
36064
+ /**
36065
+ * Fix for https://github.com/ionic-team/ionic-framework/issues/30434:
36066
+ * iconEl.clientWidth can very briefly be 0 when this is called from componentDidLoad.
36067
+ * If it is zero, set up a ResizeObserver and call this function when it observes a width greater than 0.
36068
+ */
36069
+ if (iconWidth === 0) {
36070
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
36071
+ this.searchIconResizeObserver = new ResizeObserver((entries) => {
36072
+ var _a;
36073
+ if (entries[0].contentRect.width > 0) {
36074
+ (_a = this.searchIconResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
36075
+ this.positionPlaceholder();
36076
+ }
36077
+ });
36078
+ (_b = this.searchIconResizeObserver) === null || _b === void 0 ? void 0 : _b.observe(iconEl);
36079
+ return;
36080
+ }
36081
+ const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconWidth + 8) + 'px)';
35644
36082
  // Set the input padding start and icon margin start
35645
36083
  if (rtl) {
35646
36084
  inputEl.style.paddingRight = inputLeft;
@@ -35721,8 +36159,8 @@ class Searchbar {
35721
36159
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
35722
36160
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
35723
36161
  const shouldShowCancelButton = this.shouldShowCancelButton();
35724
- 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))));
35725
- return (hAsync(Host, { key: '219c263c1f3cc63e18bc2d2ba5d672b7806eddd0', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36162
+ 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))));
36163
+ return (hAsync(Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35726
36164
  [mode]: true,
35727
36165
  'searchbar-animated': animated,
35728
36166
  'searchbar-disabled': this.disabled,
@@ -35732,14 +36170,14 @@ class Searchbar {
35732
36170
  'searchbar-has-focus': this.focused,
35733
36171
  'searchbar-should-show-clear': this.shouldShowClearButton(),
35734
36172
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
35735
- }) }, 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) => {
36173
+ }) }, 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) => {
35736
36174
  /**
35737
36175
  * This prevents mobile browsers from
35738
36176
  * blurring the input when the clear
35739
36177
  * button is activated.
35740
36178
  */
35741
36179
  ev.preventDefault();
35742
- }, 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));
36180
+ }, 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));
35743
36181
  }
35744
36182
  get el() { return getElement(this); }
35745
36183
  static get watchers() { return {
@@ -39428,7 +39866,7 @@ const createSwipeToDismissGesture = (el, toastPosition, onDismiss) => {
39428
39866
  * consider when the threshold is a negative in the event the
39429
39867
  * user drags up (since the deltaY will also be negative).
39430
39868
  */
39431
- shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -0.5 / 2;
39869
+ shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -DISMISS_THRESHOLD / 2;
39432
39870
  /**
39433
39871
  * Since we are replacing the keyframes
39434
39872
  * below the animation always starts from
@@ -40333,10 +40771,10 @@ class Toggle {
40333
40771
  }
40334
40772
  const shouldToggle = (rtl, checked, deltaX, margin) => {
40335
40773
  if (checked) {
40336
- return (!rtl && margin > deltaX) || (rtl && 10 < deltaX);
40774
+ return (!rtl && margin > deltaX) || (rtl && -margin < deltaX);
40337
40775
  }
40338
40776
  else {
40339
- return (!rtl && 10 < deltaX) || (rtl && margin > deltaX);
40777
+ return (!rtl && -margin < deltaX) || (rtl && margin > deltaX);
40340
40778
  }
40341
40779
  };
40342
40780
  let toggleIds = 0;
@@ -41485,7 +41923,7 @@ var NAMESPACE = (
41485
41923
  );
41486
41924
 
41487
41925
  /*
41488
- Stencil Hydrate Runner v4.43.0 | MIT Licensed | https://stenciljs.com
41926
+ Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
41489
41927
  */
41490
41928
  var __create = Object.create;
41491
41929
  var __defProp = Object.defineProperty;
@@ -42816,11 +43254,11 @@ var fromCodePoint = (
42816
43254
  }
42817
43255
  );
42818
43256
  function replaceCodePoint(codePoint) {
42819
- var _a2;
43257
+ var _a3;
42820
43258
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
42821
43259
  return 65533;
42822
43260
  }
42823
- return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint;
43261
+ return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
42824
43262
  }
42825
43263
 
42826
43264
  // node_modules/entities/lib/esm/decode.js
@@ -43017,9 +43455,9 @@ var EntityDecoder = class {
43017
43455
  * @returns The number of characters that were consumed.
43018
43456
  */
43019
43457
  emitNumericEntity(lastCp, expectedLength) {
43020
- var _a2;
43458
+ var _a3;
43021
43459
  if (this.consumed <= expectedLength) {
43022
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43460
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
43023
43461
  return 0;
43024
43462
  }
43025
43463
  if (lastCp === CharCodes.SEMI) {
@@ -43079,11 +43517,11 @@ var EntityDecoder = class {
43079
43517
  * @returns The number of characters consumed.
43080
43518
  */
43081
43519
  emitNotTerminatedNamedEntity() {
43082
- var _a2;
43520
+ var _a3;
43083
43521
  const { result, decodeTree } = this;
43084
43522
  const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
43085
43523
  this.emitNamedEntityData(result, valueLength, this.consumed);
43086
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
43524
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
43087
43525
  return this.consumed;
43088
43526
  }
43089
43527
  /**
@@ -43111,7 +43549,7 @@ var EntityDecoder = class {
43111
43549
  * @returns The number of characters consumed.
43112
43550
  */
43113
43551
  end() {
43114
- var _a2;
43552
+ var _a3;
43115
43553
  switch (this.state) {
43116
43554
  case EntityDecoderState.NamedEntity: {
43117
43555
  return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
@@ -43124,7 +43562,7 @@ var EntityDecoder = class {
43124
43562
  return this.emitNumericEntity(0, 3);
43125
43563
  }
43126
43564
  case EntityDecoderState.NumericStart: {
43127
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43565
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
43128
43566
  return 0;
43129
43567
  }
43130
43568
  case EntityDecoderState.EntityStart: {
@@ -43605,8 +44043,8 @@ var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
43605
44043
  [TAG_NAMES.XMP, TAG_ID.XMP]
43606
44044
  ]);
43607
44045
  function getTagID(tagName) {
43608
- var _a2;
43609
- return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN;
44046
+ var _a3;
44047
+ return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== void 0 ? _a3 : TAG_ID.UNKNOWN;
43610
44048
  }
43611
44049
  var $ = TAG_ID;
43612
44050
  var SPECIAL_ELEMENTS = {
@@ -43873,8 +44311,8 @@ var Tokenizer = class {
43873
44311
  }
43874
44312
  //Errors
43875
44313
  _err(code, cpOffset = 0) {
43876
- var _a2, _b;
43877
- (_b = (_a2 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a2, this.preprocessor.getError(code, cpOffset));
44314
+ var _a3, _b;
44315
+ (_b = (_a3 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a3, this.preprocessor.getError(code, cpOffset));
43878
44316
  }
43879
44317
  // NOTE: `offset` may never run across line boundaries.
43880
44318
  getCurrentLocation(offset) {
@@ -44016,13 +44454,13 @@ var Tokenizer = class {
44016
44454
  this.currentLocation = this.getCurrentLocation(0);
44017
44455
  }
44018
44456
  _leaveAttrName() {
44019
- var _a2;
44457
+ var _a3;
44020
44458
  var _b;
44021
44459
  const token = this.currentToken;
44022
44460
  if (getTokenAttr(token, this.currentAttr.name) === null) {
44023
44461
  token.attrs.push(this.currentAttr);
44024
44462
  if (token.location && this.currentLocation) {
44025
- const attrLocations = (_a2 = (_b = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b.attrs = /* @__PURE__ */ Object.create(null);
44463
+ const attrLocations = (_a3 = (_b = token.location).attrs) !== null && _a3 !== void 0 ? _a3 : _b.attrs = /* @__PURE__ */ Object.create(null);
44026
44464
  attrLocations[this.currentAttr.name] = this.currentLocation;
44027
44465
  this._leaveAttrValue();
44028
44466
  }
@@ -47370,10 +47808,10 @@ var Parser = class {
47370
47808
  //Errors
47371
47809
  /** @internal */
47372
47810
  _err(token, code, beforeToken) {
47373
- var _a2;
47811
+ var _a3;
47374
47812
  if (!this.onParseError)
47375
47813
  return;
47376
- const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC;
47814
+ const loc = (_a3 = token.location) !== null && _a3 !== void 0 ? _a3 : BASE_LOC;
47377
47815
  const err2 = {
47378
47816
  code,
47379
47817
  startLine: loc.startLine,
@@ -47388,18 +47826,18 @@ var Parser = class {
47388
47826
  //Stack events
47389
47827
  /** @internal */
47390
47828
  onItemPush(node, tid, isTop) {
47391
- var _a2, _b;
47392
- (_b = (_a2 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a2, node);
47829
+ var _a3, _b;
47830
+ (_b = (_a3 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a3, node);
47393
47831
  if (isTop && this.openElements.stackTop > 0)
47394
47832
  this._setContextModes(node, tid);
47395
47833
  }
47396
47834
  /** @internal */
47397
47835
  onItemPop(node, isTop) {
47398
- var _a2, _b;
47836
+ var _a3, _b;
47399
47837
  if (this.options.sourceCodeLocationInfo) {
47400
47838
  this._setEndLocation(node, this.currentToken);
47401
47839
  }
47402
- (_b = (_a2 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a2, node, this.openElements.current);
47840
+ (_b = (_a3 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a3, node, this.openElements.current);
47403
47841
  if (isTop) {
47404
47842
  let current;
47405
47843
  let currentTagId;
@@ -49473,9 +49911,9 @@ function eofInBody(p, token) {
49473
49911
  }
49474
49912
  }
49475
49913
  function endTagInText(p, token) {
49476
- var _a2;
49914
+ var _a3;
49477
49915
  if (token.tagID === TAG_ID.SCRIPT) {
49478
- (_a2 = p.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p, p.openElements.current);
49916
+ (_a3 = p.scriptHandler) === null || _a3 === void 0 ? void 0 : _a3.call(p, p.openElements.current);
49479
49917
  }
49480
49918
  p.openElements.pop();
49481
49919
  p.insertionMode = p.originalInsertionMode;
@@ -50137,7 +50575,7 @@ function startTagAfterBody(p, token) {
50137
50575
  }
50138
50576
  }
50139
50577
  function endTagAfterBody(p, token) {
50140
- var _a2;
50578
+ var _a3;
50141
50579
  if (token.tagID === TAG_ID.HTML) {
50142
50580
  if (!p.fragmentContext) {
50143
50581
  p.insertionMode = InsertionMode.AFTER_AFTER_BODY;
@@ -50145,7 +50583,7 @@ function endTagAfterBody(p, token) {
50145
50583
  if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === TAG_ID.HTML) {
50146
50584
  p._setEndLocation(p.openElements.items[0], token);
50147
50585
  const bodyElement = p.openElements.items[1];
50148
- if (bodyElement && !((_a2 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) {
50586
+ if (bodyElement && !((_a3 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a3 === void 0 ? void 0 : _a3.endTag)) {
50149
50587
  p._setEndLocation(bodyElement, token);
50150
50588
  }
50151
50589
  }
@@ -52009,7 +52447,7 @@ function serializeNodeToHtml(elm, serializationOptions = {}) {
52009
52447
  }
52010
52448
  var shadowRootTag = "mock:shadow-root";
52011
52449
  function* streamToHtml(node, opts, output) {
52012
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
52450
+ var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
52013
52451
  const isShadowRoot = node.nodeType === 11 /* DOCUMENT_FRAGMENT_NODE */;
52014
52452
  if (node.nodeType === 1 /* ELEMENT_NODE */ || isShadowRoot) {
52015
52453
  const tagName = isShadowRoot ? shadowRootTag : getTagName(node);
@@ -52018,7 +52456,7 @@ function* streamToHtml(node, opts, output) {
52018
52456
  }
52019
52457
  const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
52020
52458
  if (ignoreTag === false) {
52021
- const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a2 = opts.indentSpaces) != null ? _a2 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
52459
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a3 = opts.indentSpaces) != null ? _a3 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
52022
52460
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
52023
52461
  yield "\n";
52024
52462
  output.currentLineWidth = 0;
@@ -52537,9 +52975,7 @@ var MockNode2 = class {
52537
52975
  const firstChild = this.firstChild;
52538
52976
  items.forEach((item) => {
52539
52977
  const isNode = typeof item === "object" && item !== null && "nodeType" in item;
52540
- if (firstChild) {
52541
- this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52542
- }
52978
+ this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52543
52979
  });
52544
52980
  }
52545
52981
  cloneNode(deep) {
@@ -52588,8 +53024,8 @@ var MockNode2 = class {
52588
53024
  return null;
52589
53025
  }
52590
53026
  get nodeValue() {
52591
- var _a2;
52592
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53027
+ var _a3;
53028
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52593
53029
  }
52594
53030
  set nodeValue(value) {
52595
53031
  this._nodeValue = value;
@@ -52649,8 +53085,8 @@ var MockNode2 = class {
52649
53085
  return null;
52650
53086
  }
52651
53087
  get textContent() {
52652
- var _a2;
52653
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53088
+ var _a3;
53089
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52654
53090
  }
52655
53091
  set textContent(value) {
52656
53092
  this._nodeValue = String(value);
@@ -52709,9 +53145,9 @@ var MockElement = class extends MockNode2 {
52709
53145
  addEventListener(this, type, handler);
52710
53146
  }
52711
53147
  attachShadow(_opts) {
52712
- var _a2;
53148
+ var _a3;
52713
53149
  const shadowRoot = this.ownerDocument.createDocumentFragment();
52714
- shadowRoot.delegatesFocus = (_a2 = _opts.delegatesFocus) != null ? _a2 : false;
53150
+ shadowRoot.delegatesFocus = (_a3 = _opts.delegatesFocus) != null ? _a3 : false;
52715
53151
  this.shadowRoot = shadowRoot;
52716
53152
  return shadowRoot;
52717
53153
  }
@@ -52782,6 +53218,9 @@ var MockElement = class extends MockNode2 {
52782
53218
  get part() {
52783
53219
  return new MockTokenList(this, "part");
52784
53220
  }
53221
+ set part(value) {
53222
+ this.setAttributeNS(null, "part", String(value));
53223
+ }
52785
53224
  click() {
52786
53225
  dispatchEvent(this, new MockEvent("click", { bubbles: true, cancelable: true, composed: true }));
52787
53226
  }
@@ -52884,8 +53323,8 @@ var MockElement = class extends MockNode2 {
52884
53323
  });
52885
53324
  }
52886
53325
  set innerHTML(html) {
52887
- var _a2;
52888
- if (NON_ESCAPABLE_CONTENT.has((_a2 = this.nodeName) != null ? _a2 : "") === true) {
53326
+ var _a3;
53327
+ if (NON_ESCAPABLE_CONTENT.has((_a3 = this.nodeName) != null ? _a3 : "") === true) {
52889
53328
  setTextContent(this, html);
52890
53329
  } else {
52891
53330
  for (let i = this.childNodes.length - 1; i >= 0; i--) {
@@ -53128,8 +53567,8 @@ var MockElement = class extends MockNode2 {
53128
53567
  this.setAttributeNS(null, "tabindex", value);
53129
53568
  }
53130
53569
  get tagName() {
53131
- var _a2;
53132
- return (_a2 = this.nodeName) != null ? _a2 : "";
53570
+ var _a3;
53571
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53133
53572
  }
53134
53573
  set tagName(value) {
53135
53574
  this.nodeName = value;
@@ -53351,11 +53790,11 @@ function getElementsByClassName(elm, classNames, foundElms) {
53351
53790
  }
53352
53791
  }
53353
53792
  function getElementsByTagName(elm, tagName, foundElms) {
53354
- var _a2;
53793
+ var _a3;
53355
53794
  const children = elm.children;
53356
53795
  for (let i = 0, ii = children.length; i < ii; i++) {
53357
53796
  const childElm = children[i];
53358
- if (tagName === "*" || ((_a2 = childElm.nodeName) != null ? _a2 : "").toLowerCase() === tagName) {
53797
+ if (tagName === "*" || ((_a3 = childElm.nodeName) != null ? _a3 : "").toLowerCase() === tagName) {
53359
53798
  foundElms.push(childElm);
53360
53799
  }
53361
53800
  getElementsByTagName(childElm, tagName, foundElms);
@@ -53392,8 +53831,8 @@ var MockHTMLElement = class extends MockElement {
53392
53831
  super(ownerDocument, typeof nodeName === "string" ? nodeName.toUpperCase() : null);
53393
53832
  }
53394
53833
  get tagName() {
53395
- var _a2;
53396
- return (_a2 = this.nodeName) != null ? _a2 : "";
53834
+ var _a3;
53835
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53397
53836
  }
53398
53837
  set tagName(value) {
53399
53838
  this.nodeName = value;
@@ -53851,10 +54290,10 @@ var MockLabelElement = class extends MockHTMLElement {
53851
54290
  this.setAttributeNS(null, "for", value);
53852
54291
  }
53853
54292
  get control() {
53854
- var _a2, _b;
54293
+ var _a3, _b;
53855
54294
  const forAttr = this.htmlFor;
53856
54295
  if (forAttr) {
53857
- return (_b = (_a2 = this.ownerDocument) == null ? void 0 : _a2.getElementById(forAttr)) != null ? _b : null;
54296
+ return (_b = (_a3 = this.ownerDocument) == null ? void 0 : _a3.getElementById(forAttr)) != null ? _b : null;
53858
54297
  }
53859
54298
  const labelableSelector = 'button, input:not([type="hidden"]), meter, output, progress, select, textarea';
53860
54299
  return this.querySelector(labelableSelector);
@@ -56362,18 +56801,34 @@ var RemoteValue = class _RemoteValue {
56362
56801
  };
56363
56802
 
56364
56803
  // src/utils/serialize.ts
56804
+ function encodeBase64Unicode(str) {
56805
+ const utf8Bytes = new TextEncoder().encode(str);
56806
+ let binary = "";
56807
+ for (let i = 0; i < utf8Bytes.length; i++) {
56808
+ binary += String.fromCharCode(utf8Bytes[i]);
56809
+ }
56810
+ return btoa(binary);
56811
+ }
56812
+ function decodeBase64Unicode(base64) {
56813
+ const binary = atob(base64);
56814
+ const bytes = new Uint8Array(binary.length);
56815
+ for (let i = 0; i < binary.length; i++) {
56816
+ bytes[i] = binary.charCodeAt(i);
56817
+ }
56818
+ return new TextDecoder().decode(bytes);
56819
+ }
56365
56820
  function serializeProperty(value) {
56366
56821
  if (["string", "boolean", "undefined"].includes(typeof value) || typeof value === "number" && value !== Infinity && value !== -Infinity && !isNaN(value)) {
56367
56822
  return value;
56368
56823
  }
56369
56824
  const arg = LocalValue.getArgument(value);
56370
- return SERIALIZED_PREFIX + btoa(JSON.stringify(arg));
56825
+ return SERIALIZED_PREFIX + encodeBase64Unicode(JSON.stringify(arg));
56371
56826
  }
56372
56827
  function deserializeProperty(value) {
56373
56828
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
56374
56829
  return value;
56375
56830
  }
56376
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
56831
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
56377
56832
  }
56378
56833
  var CAPTURE_EVENT_SUFFIX = "Capture";
56379
56834
  var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
@@ -56567,8 +57022,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
56567
57022
  };
56568
57023
 
56569
57024
  // node_modules/minimatch/dist/esm/ast.js
57025
+ var _a2;
56570
57026
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
56571
57027
  var isExtglobType = (c) => types.has(c);
57028
+ var isExtglobAST = (c) => isExtglobType(c.type);
57029
+ var adoptionMap = /* @__PURE__ */ new Map([
57030
+ ["!", ["@"]],
57031
+ ["?", ["?", "@"]],
57032
+ ["@", ["@"]],
57033
+ ["*", ["*", "+", "?", "@"]],
57034
+ ["+", ["+", "@"]]
57035
+ ]);
57036
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
57037
+ ["!", ["?"]],
57038
+ ["@", ["?"]],
57039
+ ["+", ["?", "*"]]
57040
+ ]);
57041
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
57042
+ ["!", ["?", "@"]],
57043
+ ["?", ["?", "@"]],
57044
+ ["@", ["?", "@"]],
57045
+ ["*", ["*", "+", "?", "@"]],
57046
+ ["+", ["+", "@", "?", "*"]]
57047
+ ]);
57048
+ var usurpMap = /* @__PURE__ */ new Map([
57049
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
57050
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
57051
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
57052
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
57053
+ ]);
56572
57054
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
56573
57055
  var startNoDot = "(?!\\.)";
56574
57056
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -56578,8 +57060,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
56578
57060
  var qmark = "[^/]";
56579
57061
  var star = qmark + "*?";
56580
57062
  var starNoEmpty = qmark + "+?";
56581
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
56582
- var _AST = class _AST {
57063
+ 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;
57064
+ var AST = class {
56583
57065
  constructor(type, parent, options = {}) {
56584
57066
  __privateAdd(this, _AST_instances);
56585
57067
  __publicField(this, "type");
@@ -56632,44 +57114,44 @@ var _AST = class _AST {
56632
57114
  for (const p of parts) {
56633
57115
  if (p === "")
56634
57116
  continue;
56635
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
57117
+ if (typeof p !== "string" && !(p instanceof _a2 && __privateGet(p, _parent) === this)) {
56636
57118
  throw new Error("invalid part: " + p);
56637
57119
  }
56638
57120
  __privateGet(this, _parts).push(p);
56639
57121
  }
56640
57122
  }
56641
57123
  toJSON() {
56642
- var _a2;
57124
+ var _a3;
56643
57125
  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())];
56644
57126
  if (this.isStart() && !this.type)
56645
57127
  ret.unshift([]);
56646
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
57128
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")) {
56647
57129
  ret.push({});
56648
57130
  }
56649
57131
  return ret;
56650
57132
  }
56651
57133
  isStart() {
56652
- var _a2;
57134
+ var _a3;
56653
57135
  if (__privateGet(this, _root) === this)
56654
57136
  return true;
56655
- if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
57137
+ if (!((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.isStart()))
56656
57138
  return false;
56657
57139
  if (__privateGet(this, _parentIndex) === 0)
56658
57140
  return true;
56659
57141
  const p = __privateGet(this, _parent);
56660
57142
  for (let i = 0; i < __privateGet(this, _parentIndex); i++) {
56661
57143
  const pp = __privateGet(p, _parts)[i];
56662
- if (!(pp instanceof _AST && pp.type === "!")) {
57144
+ if (!(pp instanceof _a2 && pp.type === "!")) {
56663
57145
  return false;
56664
57146
  }
56665
57147
  }
56666
57148
  return true;
56667
57149
  }
56668
57150
  isEnd() {
56669
- var _a2, _b, _c;
57151
+ var _a3, _b, _c;
56670
57152
  if (__privateGet(this, _root) === this)
56671
57153
  return true;
56672
- if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
57154
+ if (((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")
56673
57155
  return true;
56674
57156
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
56675
57157
  return false;
@@ -56685,16 +57167,16 @@ var _AST = class _AST {
56685
57167
  this.push(part.clone(this));
56686
57168
  }
56687
57169
  clone(parent) {
56688
- const c = new _AST(this.type, parent);
57170
+ const c = new _a2(this.type, parent);
56689
57171
  for (const p of __privateGet(this, _parts)) {
56690
57172
  c.copyIn(p);
56691
57173
  }
56692
57174
  return c;
56693
57175
  }
56694
57176
  static fromGlob(pattern, options = {}) {
56695
- var _a2;
56696
- const ast = new _AST(null, void 0, options);
56697
- __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options);
57177
+ var _a3;
57178
+ const ast = new _a2(null, void 0, options);
57179
+ __privateMethod(_a3 = _a2, _AST_static, parseAST_fn).call(_a3, pattern, ast, 0, options, 0);
56698
57180
  return ast;
56699
57181
  }
56700
57182
  // returns the regular expression if there's magic, or the unescaped
@@ -56787,15 +57269,17 @@ var _AST = class _AST {
56787
57269
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
56788
57270
  // or start or whatever) and prepend ^ or / at the Regexp construction.
56789
57271
  toRegExpSource(allowDot) {
56790
- var _a2;
57272
+ var _a3;
56791
57273
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
56792
- if (__privateGet(this, _root) === this)
57274
+ if (__privateGet(this, _root) === this) {
57275
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
56793
57276
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
56794
- if (!this.type) {
57277
+ }
57278
+ if (!isExtglobAST(this)) {
56795
57279
  const noEmpty = this.isStart() && this.isEnd();
56796
57280
  const src = __privateGet(this, _parts).map((p) => {
56797
- var _a3;
56798
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _AST, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
57281
+ var _a4;
57282
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a4 = _a2, _AST_static, parseGlob_fn).call(_a4, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
56799
57283
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
56800
57284
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
56801
57285
  return re;
@@ -56818,7 +57302,7 @@ var _AST = class _AST {
56818
57302
  }
56819
57303
  }
56820
57304
  let end = "";
56821
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
57305
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!") {
56822
57306
  end = "(?:$|\\/)";
56823
57307
  }
56824
57308
  const final2 = start2 + src + end;
@@ -56834,9 +57318,10 @@ var _AST = class _AST {
56834
57318
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
56835
57319
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
56836
57320
  const s = this.toString();
56837
- __privateSet(this, _parts, [s]);
56838
- this.type = null;
56839
- __privateSet(this, _hasMagic, void 0);
57321
+ const me = this;
57322
+ __privateSet(me, _parts, [s]);
57323
+ me.type = null;
57324
+ __privateSet(me, _hasMagic, void 0);
56840
57325
  return [s, unescape(this.toString()), false, false];
56841
57326
  }
56842
57327
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -56905,8 +57390,9 @@ fillNegs_fn = function() {
56905
57390
  return this;
56906
57391
  };
56907
57392
  _AST_static = new WeakSet();
56908
- parseAST_fn = function(str, ast, pos, opt) {
56909
- var _a2, _b;
57393
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
57394
+ var _a3, _b, _c, _d, _e;
57395
+ const maxDepth = (_a3 = opt.maxExtglobRecursion) != null ? _a3 : 2;
56910
57396
  let escaping = false;
56911
57397
  let inBrace = false;
56912
57398
  let braceStart = -1;
@@ -56938,11 +57424,12 @@ parseAST_fn = function(str, ast, pos, opt) {
56938
57424
  acc2 += c;
56939
57425
  continue;
56940
57426
  }
56941
- if (!opt.noext && isExtglobType(c) && str.charAt(i2) === "(") {
57427
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i2) === "(" && extDepth <= maxDepth;
57428
+ if (doRecurse) {
56942
57429
  ast.push(acc2);
56943
57430
  acc2 = "";
56944
- const ext2 = new _AST(c, ast);
56945
- i2 = __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, str, ext2, i2, opt);
57431
+ const ext2 = new _a2(c, ast);
57432
+ i2 = __privateMethod(_b = _a2, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt, extDepth + 1);
56946
57433
  ast.push(ext2);
56947
57434
  continue;
56948
57435
  }
@@ -56952,7 +57439,7 @@ parseAST_fn = function(str, ast, pos, opt) {
56952
57439
  return i2;
56953
57440
  }
56954
57441
  let i = pos + 1;
56955
- let part = new _AST(null, ast);
57442
+ let part = new _a2(null, ast);
56956
57443
  const parts = [];
56957
57444
  let acc = "";
56958
57445
  while (i < str.length) {
@@ -56979,19 +57466,22 @@ parseAST_fn = function(str, ast, pos, opt) {
56979
57466
  acc += c;
56980
57467
  continue;
56981
57468
  }
56982
- if (isExtglobType(c) && str.charAt(i) === "(") {
57469
+ const doRecurse = isExtglobType(c) && str.charAt(i) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
57470
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
57471
+ if (doRecurse) {
57472
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
56983
57473
  part.push(acc);
56984
57474
  acc = "";
56985
- const ext2 = new _AST(c, part);
57475
+ const ext2 = new _a2(c, part);
56986
57476
  part.push(ext2);
56987
- i = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i, opt);
57477
+ i = __privateMethod(_e = _a2, _AST_static, parseAST_fn).call(_e, str, ext2, i, opt, extDepth + depthAdd);
56988
57478
  continue;
56989
57479
  }
56990
57480
  if (c === "|") {
56991
57481
  part.push(acc);
56992
57482
  acc = "";
56993
57483
  parts.push(part);
56994
- part = new _AST(null, ast);
57484
+ part = new _a2(null, ast);
56995
57485
  continue;
56996
57486
  }
56997
57487
  if (c === ")") {
@@ -57010,6 +57500,100 @@ parseAST_fn = function(str, ast, pos, opt) {
57010
57500
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
57011
57501
  return i;
57012
57502
  };
57503
+ canAdoptWithSpace_fn = function(child) {
57504
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
57505
+ };
57506
+ canAdopt_fn = function(child, map2 = adoptionMap) {
57507
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
57508
+ return false;
57509
+ }
57510
+ const gc = __privateGet(child, _parts)[0];
57511
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57512
+ return false;
57513
+ }
57514
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
57515
+ };
57516
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
57517
+ var _a3;
57518
+ return !!((_a3 = map2.get(this.type)) == null ? void 0 : _a3.includes(c));
57519
+ };
57520
+ adoptWithSpace_fn = function(child, index) {
57521
+ const gc = __privateGet(child, _parts)[0];
57522
+ const blank = new _a2(null, gc, this.options);
57523
+ __privateGet(blank, _parts).push("");
57524
+ gc.push(blank);
57525
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
57526
+ };
57527
+ adopt_fn = function(child, index) {
57528
+ const gc = __privateGet(child, _parts)[0];
57529
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
57530
+ for (const p of __privateGet(gc, _parts)) {
57531
+ if (typeof p === "object")
57532
+ __privateSet(p, _parent, this);
57533
+ }
57534
+ __privateSet(this, _toString, void 0);
57535
+ };
57536
+ canUsurpType_fn = function(c) {
57537
+ const m = usurpMap.get(this.type);
57538
+ return !!(m == null ? void 0 : m.has(c));
57539
+ };
57540
+ canUsurp_fn = function(child) {
57541
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
57542
+ return false;
57543
+ }
57544
+ const gc = __privateGet(child, _parts)[0];
57545
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57546
+ return false;
57547
+ }
57548
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
57549
+ };
57550
+ usurp_fn = function(child) {
57551
+ const m = usurpMap.get(this.type);
57552
+ const gc = __privateGet(child, _parts)[0];
57553
+ const nt = m == null ? void 0 : m.get(gc.type);
57554
+ if (!nt)
57555
+ return false;
57556
+ __privateSet(this, _parts, __privateGet(gc, _parts));
57557
+ for (const p of __privateGet(this, _parts)) {
57558
+ if (typeof p === "object")
57559
+ __privateSet(p, _parent, this);
57560
+ }
57561
+ this.type = nt;
57562
+ __privateSet(this, _toString, void 0);
57563
+ __privateSet(this, _emptyExt, false);
57564
+ };
57565
+ flatten_fn = function() {
57566
+ var _a3, _b;
57567
+ if (!isExtglobAST(this)) {
57568
+ for (const p of __privateGet(this, _parts)) {
57569
+ if (typeof p === "object")
57570
+ __privateMethod(_a3 = p, _AST_instances, flatten_fn).call(_a3);
57571
+ }
57572
+ } else {
57573
+ let iterations = 0;
57574
+ let done = false;
57575
+ do {
57576
+ done = true;
57577
+ for (let i = 0; i < __privateGet(this, _parts).length; i++) {
57578
+ const c = __privateGet(this, _parts)[i];
57579
+ if (typeof c === "object") {
57580
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
57581
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
57582
+ done = false;
57583
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i);
57584
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
57585
+ done = false;
57586
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i);
57587
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
57588
+ done = false;
57589
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
57590
+ }
57591
+ }
57592
+ }
57593
+ } while (!done && ++iterations < 10);
57594
+ }
57595
+ __privateSet(this, _toString, void 0);
57596
+ };
57013
57597
  partsToRegExp_fn = function(dot) {
57014
57598
  return __privateGet(this, _parts).map((p) => {
57015
57599
  if (typeof p === "string") {
@@ -57024,11 +57608,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57024
57608
  let escaping = false;
57025
57609
  let re = "";
57026
57610
  let uflag = false;
57611
+ let inStar = false;
57027
57612
  for (let i = 0; i < glob.length; i++) {
57028
57613
  const c = glob.charAt(i);
57029
57614
  if (escaping) {
57030
57615
  escaping = false;
57031
57616
  re += (reSpecials.has(c) ? "\\" : "") + c;
57617
+ inStar = false;
57032
57618
  continue;
57033
57619
  }
57034
57620
  if (c === "\\") {
@@ -57046,16 +57632,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57046
57632
  uflag = uflag || needUflag;
57047
57633
  i += consumed - 1;
57048
57634
  hasMagic = hasMagic || magic;
57635
+ inStar = false;
57049
57636
  continue;
57050
57637
  }
57051
57638
  }
57052
57639
  if (c === "*") {
57053
- if (noEmpty && glob === "*")
57054
- re += starNoEmpty;
57055
- else
57056
- re += star;
57640
+ if (inStar)
57641
+ continue;
57642
+ inStar = true;
57643
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
57057
57644
  hasMagic = true;
57058
57645
  continue;
57646
+ } else {
57647
+ inStar = false;
57059
57648
  }
57060
57649
  if (c === "?") {
57061
57650
  re += qmark;
@@ -57066,8 +57655,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57066
57655
  }
57067
57656
  return [re, unescape(glob), !!hasMagic, uflag];
57068
57657
  };
57069
- __privateAdd(_AST, _AST_static);
57070
- var AST = _AST;
57658
+ __privateAdd(AST, _AST_static);
57659
+ _a2 = AST;
57071
57660
 
57072
57661
  // node_modules/minimatch/dist/esm/escape.js
57073
57662
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -57206,28 +57795,33 @@ var match = (list, pattern, options = {}) => {
57206
57795
  minimatch.match = match;
57207
57796
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
57208
57797
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
57798
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
57209
57799
  var Minimatch = class {
57210
- options;
57211
- set;
57212
- pattern;
57213
- windowsPathsNoEscape;
57214
- nonegate;
57215
- negate;
57216
- comment;
57217
- empty;
57218
- preserveMultipleSlashes;
57219
- partial;
57220
- globSet;
57221
- globParts;
57222
- nocase;
57223
- isWindows;
57224
- platform;
57225
- windowsNoMagicRoot;
57226
- regexp;
57227
57800
  constructor(pattern, options = {}) {
57801
+ __privateAdd(this, _Minimatch_instances);
57802
+ __publicField(this, "options");
57803
+ __publicField(this, "set");
57804
+ __publicField(this, "pattern");
57805
+ __publicField(this, "windowsPathsNoEscape");
57806
+ __publicField(this, "nonegate");
57807
+ __publicField(this, "negate");
57808
+ __publicField(this, "comment");
57809
+ __publicField(this, "empty");
57810
+ __publicField(this, "preserveMultipleSlashes");
57811
+ __publicField(this, "partial");
57812
+ __publicField(this, "globSet");
57813
+ __publicField(this, "globParts");
57814
+ __publicField(this, "nocase");
57815
+ __publicField(this, "isWindows");
57816
+ __publicField(this, "platform");
57817
+ __publicField(this, "windowsNoMagicRoot");
57818
+ __publicField(this, "maxGlobstarRecursion");
57819
+ __publicField(this, "regexp");
57820
+ var _a3;
57228
57821
  assertValidPattern(pattern);
57229
57822
  options = options || {};
57230
57823
  this.options = options;
57824
+ this.maxGlobstarRecursion = (_a3 = options.maxGlobstarRecursion) != null ? _a3 : 200;
57231
57825
  this.pattern = pattern;
57232
57826
  this.platform = options.platform || defaultPlatform;
57233
57827
  this.isWindows = this.platform === "win32";
@@ -57495,10 +58089,11 @@ var Minimatch = class {
57495
58089
  for (let i = 0; i < globParts.length - 1; i++) {
57496
58090
  for (let j = i + 1; j < globParts.length; j++) {
57497
58091
  const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
57498
- if (!matched)
57499
- continue;
57500
- globParts[i] = matched;
57501
- globParts[j] = [];
58092
+ if (matched) {
58093
+ globParts[i] = [];
58094
+ globParts[j] = matched;
58095
+ break;
58096
+ }
57502
58097
  }
57503
58098
  }
57504
58099
  return globParts.filter((gs) => gs.length);
@@ -57559,7 +58154,8 @@ var Minimatch = class {
57559
58154
  // out of pattern, then that's fine, as long as all
57560
58155
  // the parts match.
57561
58156
  matchOne(file, pattern, partial = false) {
57562
- const options = this.options;
58157
+ let fileStartIndex = 0;
58158
+ let patternStartIndex = 0;
57563
58159
  if (this.isWindows) {
57564
58160
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
57565
58161
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -57568,14 +58164,14 @@ var Minimatch = class {
57568
58164
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
57569
58165
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
57570
58166
  if (typeof fdi === "number" && typeof pdi === "number") {
57571
- const [fd, pd] = [file[fdi], pattern[pdi]];
58167
+ const [fd, pd] = [
58168
+ file[fdi],
58169
+ pattern[pdi]
58170
+ ];
57572
58171
  if (fd.toLowerCase() === pd.toLowerCase()) {
57573
58172
  pattern[pdi] = fd;
57574
- if (pdi > fdi) {
57575
- pattern = pattern.slice(pdi);
57576
- } else if (fdi > pdi) {
57577
- file = file.slice(fdi);
57578
- }
58173
+ patternStartIndex = pdi;
58174
+ fileStartIndex = fdi;
57579
58175
  }
57580
58176
  }
57581
58177
  }
@@ -57583,71 +58179,10 @@ var Minimatch = class {
57583
58179
  if (optimizationLevel >= 2) {
57584
58180
  file = this.levelTwoFileOptimize(file);
57585
58181
  }
57586
- this.debug("matchOne", this, { file, pattern });
57587
- this.debug("matchOne", file.length, pattern.length);
57588
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
57589
- this.debug("matchOne loop");
57590
- var p = pattern[pi];
57591
- var f = file[fi];
57592
- this.debug(pattern, p, f);
57593
- if (p === false) {
57594
- return false;
57595
- }
57596
- if (p === GLOBSTAR) {
57597
- this.debug("GLOBSTAR", [pattern, p, f]);
57598
- var fr = fi;
57599
- var pr = pi + 1;
57600
- if (pr === pl) {
57601
- this.debug("** at the end");
57602
- for (; fi < fl; fi++) {
57603
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
57604
- return false;
57605
- }
57606
- return true;
57607
- }
57608
- while (fr < fl) {
57609
- var swallowee = file[fr];
57610
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
57611
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
57612
- this.debug("globstar found match!", fr, fl, swallowee);
57613
- return true;
57614
- } else {
57615
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
57616
- this.debug("dot detected!", file, fr, pattern, pr);
57617
- break;
57618
- }
57619
- this.debug("globstar swallow a segment, and continue");
57620
- fr++;
57621
- }
57622
- }
57623
- if (partial) {
57624
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
57625
- if (fr === fl) {
57626
- return true;
57627
- }
57628
- }
57629
- return false;
57630
- }
57631
- let hit;
57632
- if (typeof p === "string") {
57633
- hit = f === p;
57634
- this.debug("string match", p, f, hit);
57635
- } else {
57636
- hit = p.test(f);
57637
- this.debug("pattern match", p, f, hit);
57638
- }
57639
- if (!hit)
57640
- return false;
57641
- }
57642
- if (fi === fl && pi === pl) {
57643
- return true;
57644
- } else if (fi === fl) {
57645
- return partial;
57646
- } else if (pi === pl) {
57647
- return fi === fl - 1 && file[fi] === "";
57648
- } else {
57649
- throw new Error("wtf?");
58182
+ if (pattern.includes(GLOBSTAR)) {
58183
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57650
58184
  }
58185
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57651
58186
  }
57652
58187
  braceExpand() {
57653
58188
  return braceExpand(this.pattern, this.options);
@@ -57786,6 +58321,135 @@ var Minimatch = class {
57786
58321
  return minimatch.defaults(def).Minimatch;
57787
58322
  }
57788
58323
  };
58324
+ _Minimatch_instances = new WeakSet();
58325
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58326
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
58327
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
58328
+ const [head, body, tail] = partial ? [
58329
+ pattern.slice(patternIndex, firstgs),
58330
+ pattern.slice(firstgs + 1),
58331
+ []
58332
+ ] : [
58333
+ pattern.slice(patternIndex, firstgs),
58334
+ pattern.slice(firstgs + 1, lastgs),
58335
+ pattern.slice(lastgs + 1)
58336
+ ];
58337
+ if (head.length) {
58338
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
58339
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
58340
+ return false;
58341
+ fileIndex += head.length;
58342
+ }
58343
+ let fileTailMatch = 0;
58344
+ if (tail.length) {
58345
+ if (tail.length + fileIndex > file.length)
58346
+ return false;
58347
+ let tailStart = file.length - tail.length;
58348
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
58349
+ fileTailMatch = tail.length;
58350
+ } else {
58351
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
58352
+ return false;
58353
+ }
58354
+ tailStart--;
58355
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
58356
+ return false;
58357
+ fileTailMatch = tail.length + 1;
58358
+ }
58359
+ }
58360
+ if (!body.length) {
58361
+ let sawSome = !!fileTailMatch;
58362
+ for (let i2 = fileIndex; i2 < file.length - fileTailMatch; i2++) {
58363
+ const f = String(file[i2]);
58364
+ sawSome = true;
58365
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58366
+ return false;
58367
+ }
58368
+ }
58369
+ return partial || sawSome;
58370
+ }
58371
+ const bodySegments = [[[], 0]];
58372
+ let currentBody = bodySegments[0];
58373
+ let nonGsParts = 0;
58374
+ const nonGsPartsSums = [0];
58375
+ for (const b of body) {
58376
+ if (b === GLOBSTAR) {
58377
+ nonGsPartsSums.push(nonGsParts);
58378
+ currentBody = [[], 0];
58379
+ bodySegments.push(currentBody);
58380
+ } else {
58381
+ currentBody[0].push(b);
58382
+ nonGsParts++;
58383
+ }
58384
+ }
58385
+ let i = bodySegments.length - 1;
58386
+ const fileLength = file.length - fileTailMatch;
58387
+ for (const b of bodySegments) {
58388
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
58389
+ }
58390
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
58391
+ };
58392
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
58393
+ const bs = bodySegments[bodyIndex];
58394
+ if (!bs) {
58395
+ for (let i = fileIndex; i < file.length; i++) {
58396
+ sawTail = true;
58397
+ const f = file[i];
58398
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58399
+ return false;
58400
+ }
58401
+ }
58402
+ return sawTail;
58403
+ }
58404
+ const [body, after] = bs;
58405
+ while (fileIndex <= after) {
58406
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
58407
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
58408
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
58409
+ if (sub !== false)
58410
+ return sub;
58411
+ }
58412
+ const f = file[fileIndex];
58413
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58414
+ return false;
58415
+ }
58416
+ fileIndex++;
58417
+ }
58418
+ return partial || null;
58419
+ };
58420
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58421
+ let fi;
58422
+ let pi;
58423
+ let pl;
58424
+ let fl;
58425
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
58426
+ this.debug("matchOne loop");
58427
+ let p = pattern[pi];
58428
+ let f = file[fi];
58429
+ this.debug(pattern, p, f);
58430
+ if (p === false || p === GLOBSTAR)
58431
+ return false;
58432
+ let hit;
58433
+ if (typeof p === "string") {
58434
+ hit = f === p;
58435
+ this.debug("string match", p, f, hit);
58436
+ } else {
58437
+ hit = p.test(f);
58438
+ this.debug("pattern match", p, f, hit);
58439
+ }
58440
+ if (!hit)
58441
+ return false;
58442
+ }
58443
+ if (fi === fl && pi === pl) {
58444
+ return true;
58445
+ } else if (fi === fl) {
58446
+ return partial;
58447
+ } else if (pi === pl) {
58448
+ return fi === fl - 1 && file[fi] === "";
58449
+ } else {
58450
+ throw new Error("wtf?");
58451
+ }
58452
+ };
57789
58453
  minimatch.AST = AST;
57790
58454
  minimatch.Minimatch = Minimatch;
57791
58455
  minimatch.escape = escape;
@@ -57856,7 +58520,7 @@ var isJsFile = lowerPathParam((p) => p.endsWith(".js") || p.endsWith(".mjs") ||
57856
58520
 
57857
58521
  // src/compiler/html/canonical-link.ts
57858
58522
  var updateCanonicalLink = (doc, href) => {
57859
- var _a2;
58523
+ var _a3;
57860
58524
  let canonicalLinkElm = doc.head.querySelector('link[rel="canonical"]');
57861
58525
  if (typeof href === "string") {
57862
58526
  if (canonicalLinkElm == null) {
@@ -57869,7 +58533,7 @@ var updateCanonicalLink = (doc, href) => {
57869
58533
  if (canonicalLinkElm != null) {
57870
58534
  const existingHref = canonicalLinkElm.getAttribute("href");
57871
58535
  if (!existingHref) {
57872
- (_a2 = canonicalLinkElm.parentNode) == null ? void 0 : _a2.removeChild(canonicalLinkElm);
58536
+ (_a3 = canonicalLinkElm.parentNode) == null ? void 0 : _a3.removeChild(canonicalLinkElm);
57873
58537
  }
57874
58538
  }
57875
58539
  }
@@ -58381,7 +59045,7 @@ var serializeCss = (stylesheet, serializeOpts) => {
58381
59045
  return out.join("");
58382
59046
  };
58383
59047
  var serializeCssVisitNode = (opts, node, index, len) => {
58384
- var _a2;
59048
+ var _a3;
58385
59049
  const nodeType = node.type;
58386
59050
  if (nodeType === 4 /* Declaration */) {
58387
59051
  return serializeCssDeclaration(node, index, len);
@@ -58390,7 +59054,7 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58390
59054
  return serializeCssRule(opts, node);
58391
59055
  }
58392
59056
  if (nodeType === 1 /* Comment */) {
58393
- if (((_a2 = node.comment) == null ? void 0 : _a2[0]) === "!") {
59057
+ if (((_a3 = node.comment) == null ? void 0 : _a3[0]) === "!") {
58394
59058
  return `/*${node.comment}*/`;
58395
59059
  } else {
58396
59060
  return "";
@@ -58438,10 +59102,10 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58438
59102
  return "";
58439
59103
  };
58440
59104
  var serializeCssRule = (opts, node) => {
58441
- var _a2, _b;
59105
+ var _a3, _b;
58442
59106
  const decls = node.declarations;
58443
59107
  const usedSelectors = opts.usedSelectors;
58444
- const selectors = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.slice()) != null ? _b : [];
59108
+ const selectors = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.slice()) != null ? _b : [];
58445
59109
  const hasDecls = decls != null && decls.length > 0;
58446
59110
  const hasNestedRules = node.rules != null && node.rules.length > 0;
58447
59111
  if (!hasDecls && !hasNestedRules) {
@@ -58545,8 +59209,8 @@ var serializeCssKeyframes = (opts, node) => {
58545
59209
  return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + keyframesCss + "}";
58546
59210
  };
58547
59211
  var serializeCssKeyframe = (opts, node) => {
58548
- var _a2, _b;
58549
- return ((_b = (_a2 = node.values) == null ? void 0 : _a2.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
59212
+ var _a3, _b;
59213
+ return ((_b = (_a3 = node.values) == null ? void 0 : _a3.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58550
59214
  };
58551
59215
  var serializeCssFontFace = (opts, node) => {
58552
59216
  const fontCss = serializeCssMapVisit(opts, node.declarations);
@@ -58570,8 +59234,8 @@ var serializeCssContainer = (opts, node) => {
58570
59234
  return "@container " + removeMediaWhitespace(node.media) + "{" + containerCss + "}";
58571
59235
  };
58572
59236
  var serializeCssPage = (opts, node) => {
58573
- var _a2, _b;
58574
- const sel = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.join(", ")) != null ? _b : "";
59237
+ var _a3, _b;
59238
+ const sel = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.join(", ")) != null ? _b : "";
58575
59239
  return "@page " + sel + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58576
59240
  };
58577
59241
  var serializeCssDocument = (opts, node) => {
@@ -58618,10 +59282,10 @@ var removeSelectorWhitespace = (selector) => {
58618
59282
  return rtn;
58619
59283
  };
58620
59284
  var removeMediaWhitespace = (media) => {
58621
- var _a2;
59285
+ var _a3;
58622
59286
  let rtn = "";
58623
59287
  let char = "";
58624
- media = (_a2 = media == null ? void 0 : media.trim()) != null ? _a2 : "";
59288
+ media = (_a3 = media == null ? void 0 : media.trim()) != null ? _a3 : "";
58625
59289
  for (let i = 0, l = media.length; i < l; i++) {
58626
59290
  char = media[i];
58627
59291
  if (CSS_WS_REG.test(char)) {