voyager-ionic-core 8.8.6 → 8.8.10

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 (429) 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-BGHGpkPX.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-D5Ubpm7D.js +4 -0
  131. package/components/p-D7bSXQD3.js +4 -0
  132. package/components/{p-BlNv564p.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-dhLYXa7A.js +4 -0
  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-Dl5cnc_e.js → input-shims-CFLg7uzj.js} +3 -9
  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 +75 -13
  169. package/dist/cjs/ion-app_8.cjs.entry.js +13 -13
  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 +3 -3
  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 +21 -18
  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 +3 -3
  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/alert/alert.js +71 -4
  229. package/dist/collection/components/content/content.css +1 -1
  230. package/dist/collection/components/modal/modal.js +12 -9
  231. package/dist/collection/components/picker-column-option/picker-column-option.md.css +13 -1
  232. package/dist/collection/components/router/router.js +55 -14
  233. package/dist/collection/components/router/utils/dom.js +114 -1
  234. package/dist/collection/components/router/utils/path.js +17 -5
  235. package/dist/collection/components/split-pane/split-pane.js +1 -1
  236. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +0 -7
  237. package/dist/docs.json +4 -4
  238. package/dist/esm/{animation-CnGMT4ji.js → animation-DLJpuoEz.js} +1 -1
  239. package/dist/esm/{app-globals-DhZjtldk.js → app-globals-D0C5S4hU.js} +1 -1
  240. package/dist/esm/{button-active-BBx21brx.js → button-active-BSpTQmS9.js} +1 -1
  241. package/dist/esm/{config-TO1rZH52.js → config-DQCONYYp.js} +1 -1
  242. package/dist/esm/{data-B9iGR5YO.js → data-DZI70dKr.js} +1 -1
  243. package/dist/esm/{framework-delegate-CyxE1S_P.js → framework-delegate-FnPGymXL.js} +1 -1
  244. package/dist/esm/{hardware-back-button-CTe4XmL7.js → hardware-back-button-B93Gru0Y.js} +1 -1
  245. package/dist/esm/{helpers-Tl8jw6S2.js → helpers-HEqiOzXb.js} +1 -1
  246. package/dist/esm/{index-BtUdxPjv.js → index-BRHzoo00.js} +2 -2
  247. package/dist/esm/{index-B-hkiOUh.js → index-B_dQk_WE.js} +4 -4
  248. package/dist/esm/{index-hW6eNZ3o.js → index-MEDq2S8l.js} +2 -2
  249. package/dist/esm/{index-B2KwgBLx.js → index-Q6UPU0Ay.js} +5 -5
  250. package/dist/esm/{index-IGIE5vDm.js → index-tcQvqkiX.js} +67 -23
  251. package/dist/esm/index.js +12 -12
  252. package/dist/esm/{input-shims-AaDhOpKN.js → input-shims-D10mwcw1.js} +3 -9
  253. package/dist/esm/{input.utils-Bxa_DQ7-.js → input.utils-Y6NgW8bw.js} +2 -2
  254. package/dist/esm/ion-accordion_2.entry.js +3 -3
  255. package/dist/esm/ion-action-sheet.entry.js +8 -8
  256. package/dist/esm/ion-alert.entry.js +75 -13
  257. package/dist/esm/ion-app_8.entry.js +13 -13
  258. package/dist/esm/ion-avatar_3.entry.js +2 -2
  259. package/dist/esm/ion-back-button.entry.js +3 -3
  260. package/dist/esm/ion-backdrop.entry.js +2 -2
  261. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  262. package/dist/esm/ion-button_2.entry.js +3 -3
  263. package/dist/esm/ion-card_5.entry.js +3 -3
  264. package/dist/esm/ion-checkbox.entry.js +3 -3
  265. package/dist/esm/ion-chip.entry.js +2 -2
  266. package/dist/esm/ion-col_3.entry.js +2 -2
  267. package/dist/esm/ion-datetime-button.entry.js +4 -4
  268. package/dist/esm/ion-datetime_3.entry.js +9 -9
  269. package/dist/esm/ion-fab_3.entry.js +3 -3
  270. package/dist/esm/ion-img.entry.js +3 -3
  271. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  272. package/dist/esm/ion-input-otp.entry.js +3 -3
  273. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  274. package/dist/esm/ion-input.entry.js +5 -5
  275. package/dist/esm/ion-item-option_3.entry.js +4 -4
  276. package/dist/esm/ion-item_8.entry.js +3 -3
  277. package/dist/esm/ion-loading.entry.js +8 -8
  278. package/dist/esm/ion-menu_3.entry.js +8 -8
  279. package/dist/esm/ion-modal.entry.js +21 -18
  280. package/dist/esm/ion-nav_2.entry.js +6 -6
  281. package/dist/esm/ion-picker-column-option.entry.js +4 -4
  282. package/dist/esm/ion-picker-column.entry.js +3 -3
  283. package/dist/esm/ion-picker.entry.js +2 -2
  284. package/dist/esm/ion-popover.entry.js +8 -8
  285. package/dist/esm/ion-progress-bar.entry.js +3 -3
  286. package/dist/esm/ion-radio_2.entry.js +3 -3
  287. package/dist/esm/ion-range.entry.js +4 -4
  288. package/dist/esm/ion-refresher_2.entry.js +6 -6
  289. package/dist/esm/ion-reorder_2.entry.js +5 -5
  290. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  291. package/dist/esm/ion-route_4.entry.js +187 -21
  292. package/dist/esm/ion-searchbar.entry.js +3 -3
  293. package/dist/esm/ion-segment-content.entry.js +1 -1
  294. package/dist/esm/ion-segment-view.entry.js +1 -1
  295. package/dist/esm/ion-segment_2.entry.js +3 -3
  296. package/dist/esm/ion-select-modal.entry.js +6 -6
  297. package/dist/esm/ion-select_3.entry.js +7 -7
  298. package/dist/esm/ion-spinner.entry.js +2 -2
  299. package/dist/esm/ion-split-pane.entry.js +2 -2
  300. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  301. package/dist/esm/ion-tab_2.entry.js +3 -3
  302. package/dist/esm/ion-text.entry.js +2 -2
  303. package/dist/esm/ion-textarea.entry.js +5 -5
  304. package/dist/esm/ion-toast.entry.js +9 -9
  305. package/dist/esm/ion-toggle.entry.js +5 -5
  306. package/dist/esm/{ionic-global-DfbeLwcV.js → ionic-global-Cp_eT4sZ.js} +1 -1
  307. package/dist/esm/ionic.js +6 -6
  308. package/dist/esm/{ios.transition--aMF-pDH.js → ios.transition-ClFrsIrS.js} +4 -4
  309. package/dist/esm/loader.js +5 -5
  310. package/dist/esm/{md.transition-BEVbfm8j.js → md.transition-D0msQmzI.js} +4 -4
  311. package/dist/esm/{notch-controller-DAcvKU57.js → notch-controller-DKDjU_O7.js} +1 -1
  312. package/dist/esm/{overlays-F8GHPo-e.js → overlays-TbiM4mdr.js} +5 -5
  313. package/dist/esm/{status-tap-BfJqFSLF.js → status-tap-Kan2W7sh.js} +3 -3
  314. package/dist/esm/{swipe-back-D6Ce7Ca3.js → swipe-back-ZUWwA-KF.js} +2 -2
  315. package/dist/ionic/index.esm.js +1 -1
  316. package/dist/ionic/ionic.esm.js +1 -1
  317. package/dist/ionic/p-00dbb17e.entry.js +4 -0
  318. package/dist/ionic/{p-f2deaceb.entry.js → p-01f81ea5.entry.js} +1 -1
  319. package/dist/ionic/{p-078037da.entry.js → p-06c232a4.entry.js} +1 -1
  320. package/dist/ionic/{p-1ca9c36b.entry.js → p-0d005398.entry.js} +1 -1
  321. package/dist/ionic/{p-b325a113.entry.js → p-0fa9c382.entry.js} +1 -1
  322. package/dist/ionic/{p-6b97f2a3.entry.js → p-1ae21e4c.entry.js} +1 -1
  323. package/dist/ionic/{p-a805674e.entry.js → p-20b1a044.entry.js} +1 -1
  324. package/dist/ionic/p-2394a9a6.entry.js +4 -0
  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-294f4bb5.entry.js → p-4858af1f.entry.js} +1 -1
  338. package/dist/ionic/{p-53f750a5.entry.js → p-4baa5b82.entry.js} +1 -1
  339. package/dist/ionic/{p-7ca71c83.entry.js → p-4dc1c33c.entry.js} +1 -1
  340. package/dist/ionic/{p-e663bc5a.entry.js → p-4e92a11f.entry.js} +1 -1
  341. package/dist/ionic/{p-6af16209.entry.js → p-50e1194a.entry.js} +1 -1
  342. package/dist/ionic/{p-c3cce9d8.entry.js → p-5d1da0a2.entry.js} +1 -1
  343. package/dist/ionic/{p-a84f2d21.entry.js → p-75dc25ba.entry.js} +1 -1
  344. package/dist/ionic/{p-f5dfb9a3.entry.js → p-81ea5652.entry.js} +1 -1
  345. package/dist/ionic/{p-1b169fb6.entry.js → p-84d5ce05.entry.js} +1 -1
  346. package/dist/ionic/{p-2fd110aa.entry.js → p-874b4bd8.entry.js} +1 -1
  347. package/dist/ionic/{p-23ec35e4.entry.js → p-8c8eee7d.entry.js} +1 -1
  348. package/dist/ionic/{p-87125490.entry.js → p-8d6fd502.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-Dfbt-q2k.js +4 -0
  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/dist/ionic/{p-BW_TRJm8.js → 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-2f5a8140.entry.js → p-e686695b.entry.js} +1 -1
  380. package/dist/ionic/{p-f69a5f71.entry.js → p-e847a888.entry.js} +1 -1
  381. package/dist/ionic/{p-16813ce7.entry.js → p-ec090e0a.entry.js} +1 -1
  382. package/dist/ionic/{p-07506134.entry.js → p-ef4c3bee.entry.js} +1 -1
  383. package/dist/ionic/{p-fdbc90d4.entry.js → p-fabcce6c.entry.js} +1 -1
  384. package/dist/ionic/{p-cb27fe68.entry.js → p-facfde02.entry.js} +1 -1
  385. package/dist/ionic/{p-9a851035.entry.js → p-fd7eebc4.entry.js} +1 -1
  386. package/dist/ionic/p-mjKAFv89.js +4 -0
  387. package/dist/ionic/p-tcQvqkiX.js +5 -0
  388. package/{components/p-Cy5XSfIk.js → dist/ionic/p-viFHDgRs.js} +1 -1
  389. package/dist/ionic/{p-DTPR1Wpn.js → p-xOfi7-Zn.js} +1 -1
  390. package/dist/ionic/p-xWb6fgfq.js +4 -0
  391. package/dist/types/components/alert/alert.d.ts +5 -0
  392. package/dist/types/components/modal/modal.d.ts +3 -3
  393. package/dist/types/components/router/router.d.ts +7 -0
  394. package/dist/types/components/router/utils/dom.d.ts +10 -0
  395. package/dist/types/components/router/utils/interface.d.ts +2 -0
  396. package/dist/types/components/router/utils/path.d.ts +3 -2
  397. package/dist/types/components.d.ts +2 -2
  398. package/dist/types/stencil-public-runtime.d.ts +4 -1
  399. package/hydrate/index.js +1136 -430
  400. package/hydrate/index.mjs +1136 -430
  401. package/package.json +5 -5
  402. package/components/p-0z8QSI5b.js +0 -4
  403. package/components/p-9VcRUwdB.js +0 -4
  404. package/components/p-BJoMtgfR.js +0 -4
  405. package/components/p-BNAG-aVv.js +0 -4
  406. package/components/p-BegtE7nr.js +0 -4
  407. package/components/p-C4jPsTQa.js +0 -4
  408. package/components/p-C59ryAuS.js +0 -4
  409. package/components/p-CH0NYjKq.js +0 -4
  410. package/components/p-CU1SSH8_.js +0 -4
  411. package/components/p-CgqKJg96.js +0 -4
  412. package/components/p-CneGxKsZ.js +0 -4
  413. package/components/p-Csw8xuz4.js +0 -4
  414. package/components/p-Cwv-vmkN.js +0 -4
  415. package/components/p-DVJHuxRx.js +0 -4
  416. package/dist/ionic/p-1b02923f.entry.js +0 -4
  417. package/dist/ionic/p-23fac490.entry.js +0 -4
  418. package/dist/ionic/p-771b27a5.entry.js +0 -4
  419. package/dist/ionic/p-Bum7H1fw.js +0 -4
  420. package/dist/ionic/p-BxIcPWoV.js +0 -4
  421. package/dist/ionic/p-CYbRmDdy.js +0 -4
  422. package/dist/ionic/p-CYvM5g3q.js +0 -4
  423. package/dist/ionic/p-CtA-yJYy.js +0 -4
  424. package/dist/ionic/p-Dt1wGZdq.js +0 -4
  425. package/dist/ionic/p-DtVZDHlS.js +0 -4
  426. package/dist/ionic/p-IGIE5vDm.js +0 -5
  427. package/dist/ionic/p-cbe95f72.entry.js +0 -4
  428. package/dist/ionic/p-ce2edb36.entry.js +0 -4
  429. package/dist/ionic/p-hNN3VvaC.js +0 -4
package/hydrate/index.js CHANGED
@@ -398,7 +398,7 @@ const appGlobalScript = initialize || (() => {});
398
398
  const globalScripts = appGlobalScript;
399
399
 
400
400
  /*
401
- Stencil Hydrate Platform v4.43.0 | MIT Licensed | https://stenciljs.com
401
+ Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
402
402
  */
403
403
  var __create = Object.create;
404
404
  var __defProp = Object.defineProperty;
@@ -433,7 +433,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
433
433
  __defProp(target, "default", { value: mod, enumerable: true }) ,
434
434
  mod
435
435
  ));
436
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
436
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
437
437
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
438
438
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
439
439
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
@@ -675,15 +675,26 @@ var TYPE_CONSTANT = "type";
675
675
  var VALUE_CONSTANT = "value";
676
676
  var SERIALIZED_PREFIX = "serialized:";
677
677
 
678
+ // src/utils/get-prop-descriptor.ts
679
+ function getPropertyDescriptor(obj, memberName, getOnly) {
680
+ const stopAt = typeof HTMLElement !== "undefined" ? HTMLElement.prototype : null;
681
+ while (obj && obj !== stopAt) {
682
+ const desc = Object.getOwnPropertyDescriptor(obj, memberName);
683
+ if (desc && (!getOnly || desc.get)) return desc;
684
+ obj = Object.getPrototypeOf(obj);
685
+ }
686
+ return void 0;
687
+ }
688
+
678
689
  // src/utils/es2022-rewire-class-members.ts
679
690
  var reWireGetterSetter = (instance, hostRef) => {
680
- var _a;
691
+ var _a2;
681
692
  const cmpMeta = hostRef.$cmpMeta$;
682
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
693
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
683
694
  members.map(([memberName, [memberFlags]]) => {
684
695
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
685
696
  const ogValue = instance[memberName];
686
- const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);
697
+ const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName, true) || Object.getOwnPropertyDescriptor(instance, memberName);
687
698
  if (ogDescriptor) {
688
699
  Object.defineProperty(instance, memberName, {
689
700
  get() {
@@ -696,18 +707,14 @@ var reWireGetterSetter = (instance, hostRef) => {
696
707
  enumerable: true
697
708
  });
698
709
  }
699
- instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;
710
+ if (hostRef.$instanceValues$.has(memberName)) {
711
+ instance[memberName] = hostRef.$instanceValues$.get(memberName);
712
+ } else if (ogValue !== void 0) {
713
+ instance[memberName] = ogValue;
714
+ }
700
715
  }
701
716
  });
702
717
  };
703
- function getPropertyDescriptor(obj, memberName) {
704
- while (obj) {
705
- const desc = Object.getOwnPropertyDescriptor(obj, memberName);
706
- if (desc == null ? void 0 : desc.get) return desc;
707
- obj = Object.getPrototypeOf(obj);
708
- }
709
- return void 0;
710
- }
711
718
 
712
719
  // src/runtime/runtime-constants.ts
713
720
  var CONTENT_REF_ID = "r";
@@ -735,13 +742,13 @@ function createStyleSheetIfNeededAndSupported(styles2) {
735
742
  // src/utils/shadow-root.ts
736
743
  var globalStyleSheet;
737
744
  function createShadowRoot(cmpMeta) {
738
- var _a;
745
+ var _a2;
739
746
  const opts = { mode: "open" };
740
747
  {
741
748
  opts.delegatesFocus = !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */);
742
749
  }
743
750
  const shadowRoot = this.attachShadow(opts);
744
- if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
751
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a2 = createStyleSheetIfNeededAndSupported()) != null ? _a2 : null;
745
752
  if (globalStyleSheet) {
746
753
  {
747
754
  shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
@@ -877,8 +884,8 @@ function dispatchSlotChangeEvent(elm) {
877
884
  elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
878
885
  }
879
886
  function findSlotFromSlottedNode(slottedNode, parentHost) {
880
- var _a;
881
- parentHost = parentHost || ((_a = slottedNode["s-ol"]) == null ? void 0 : _a.parentElement);
887
+ var _a2;
888
+ parentHost = parentHost || ((_a2 = slottedNode["s-ol"]) == null ? void 0 : _a2.parentElement);
882
889
  if (!parentHost) return { slotNode: null, slotName: "" };
883
890
  const slotName = slottedNode["s-sn"] = getSlotName(slottedNode) || "";
884
891
  const childNodes = internalCall(parentHost, "childNodes");
@@ -912,8 +919,8 @@ var uniqueTime = (key, measureText) => {
912
919
 
913
920
  // src/utils/query-nonce-meta-tag-content.ts
914
921
  function queryNonceMetaTagContent(doc) {
915
- var _a, _b, _c;
916
- return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
922
+ var _a2, _b, _c;
923
+ return (_c = (_b = (_a2 = doc.head) == null ? void 0 : _a2.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
917
924
  }
918
925
 
919
926
  // src/runtime/styles.ts
@@ -926,7 +933,7 @@ var registerStyle = (scopeId2, cssText, allowCS) => {
926
933
  styles.set(scopeId2, style);
927
934
  };
928
935
  var addStyle = (styleContainerNode, cmpMeta, mode) => {
929
- var _a;
936
+ var _a2;
930
937
  const scopeId2 = getScopeId(cmpMeta, mode);
931
938
  const style = styles.get(scopeId2);
932
939
  if (!win$2.document) {
@@ -947,7 +954,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
947
954
  } else if (!appliedStyles.has(scopeId2)) {
948
955
  styleElm = win$2.document.createElement("style");
949
956
  styleElm.textContent = style;
950
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win$2.document);
957
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win$2.document);
951
958
  if (nonce != null) {
952
959
  styleElm.setAttribute("nonce", nonce);
953
960
  }
@@ -965,7 +972,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
965
972
  } else if ("host" in styleContainerNode) {
966
973
  {
967
974
  const existingStyleContainer = styleContainerNode.querySelector("style");
968
- if (existingStyleContainer) {
975
+ if (existingStyleContainer && true) {
969
976
  existingStyleContainer.textContent = style + existingStyleContainer.textContent;
970
977
  } else {
971
978
  styleContainerNode.prepend(styleElm);
@@ -1133,7 +1140,7 @@ var convertToPrivate = (node) => {
1133
1140
 
1134
1141
  // src/runtime/client-hydrate.ts
1135
1142
  var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1136
- var _a, _b, _c, _d;
1143
+ var _a2, _b, _c, _d;
1137
1144
  const endHydrate = createTime("hydrateClient", tagName);
1138
1145
  const shadowRoot = hostElm.shadowRoot;
1139
1146
  const childRenderNodes = [];
@@ -1180,7 +1187,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1180
1187
  if (childRenderNode.$tag$ === "slot") {
1181
1188
  node["s-cr"] = hostElm["s-cr"];
1182
1189
  }
1183
- } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1190
+ } else if (((_a2 = childRenderNode.$tag$) == null ? void 0 : _a2.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1184
1191
  const cmpMeta = getHostRef(childRenderNode.$elm$);
1185
1192
  if (cmpMeta) {
1186
1193
  const scopeId3 = getScopeId(
@@ -1527,10 +1534,10 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1527
1534
  parentVNode.$children$[childVNode.$index$] = childVNode;
1528
1535
  }
1529
1536
  var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1530
- var _a, _b;
1537
+ var _a2, _b;
1531
1538
  let slottedNode = slotNode.nextSibling;
1532
1539
  slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
1533
- if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + "."))) return;
1540
+ if (!slottedNode || ((_a2 = slottedNode.nodeValue) == null ? void 0 : _a2.startsWith(SLOT_NODE_ID + "."))) return;
1534
1541
  do {
1535
1542
  if (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (!slottedNode["getAttribute"] || !slottedNode.getAttribute("slot")) && (slottedNode.nodeType === 8 /* CommentNode */ || slottedNode.nodeType === 3 /* TextNode */))) {
1536
1543
  slottedNode["s-sn"] = slotName;
@@ -1962,8 +1969,33 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
1962
1969
  var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
1963
1970
  var setMode = (handler) => modeResolutionChain.push(handler);
1964
1971
  var getMode = (ref) => {
1965
- var _a;
1966
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$modeName$;
1972
+ var _a2;
1973
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$modeName$;
1974
+ };
1975
+
1976
+ // src/runtime/normalize-watchers.ts
1977
+ var normalizeWatchers = (raw) => {
1978
+ if (!raw) return void 0;
1979
+ const keys = Object.keys(raw);
1980
+ if (keys.length === 0) return void 0;
1981
+ let hasLegacy = false;
1982
+ for (const propName of keys) {
1983
+ if (hasLegacy) break;
1984
+ for (const h2 of raw[propName]) {
1985
+ if (typeof h2 === "string") {
1986
+ hasLegacy = true;
1987
+ break;
1988
+ }
1989
+ }
1990
+ }
1991
+ if (!hasLegacy) return raw;
1992
+ const out = {};
1993
+ for (const propName of keys) {
1994
+ out[propName] = raw[propName].map(
1995
+ (h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
1996
+ );
1997
+ }
1998
+ return out;
1967
1999
  };
1968
2000
 
1969
2001
  // src/utils/remote-value.ts
@@ -2062,11 +2094,19 @@ var RemoteValue = class _RemoteValue {
2062
2094
  };
2063
2095
 
2064
2096
  // src/utils/serialize.ts
2097
+ function decodeBase64Unicode(base64) {
2098
+ const binary = atob(base64);
2099
+ const bytes = new Uint8Array(binary.length);
2100
+ for (let i2 = 0; i2 < binary.length; i2++) {
2101
+ bytes[i2] = binary.charCodeAt(i2);
2102
+ }
2103
+ return new TextDecoder().decode(bytes);
2104
+ }
2065
2105
  function deserializeProperty(value) {
2066
2106
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
2067
2107
  return value;
2068
2108
  }
2069
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
2109
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
2070
2110
  }
2071
2111
 
2072
2112
  // src/runtime/parse-property-value.ts
@@ -2092,8 +2132,8 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
2092
2132
  return propValue;
2093
2133
  };
2094
2134
  var getElement = (ref) => {
2095
- var _a;
2096
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ ;
2135
+ var _a2;
2136
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$hostElement$ ;
2097
2137
  };
2098
2138
 
2099
2139
  // src/runtime/event-emitter.ts
@@ -2318,7 +2358,7 @@ var isSvgMode = false;
2318
2358
  var refCallbacksToRemove = [];
2319
2359
  var refCallbacksToAttach = [];
2320
2360
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2321
- var _a;
2361
+ var _a2;
2322
2362
  const newVNode2 = newParentVNode.$children$[childIndex];
2323
2363
  let i2 = 0;
2324
2364
  let elm;
@@ -2389,7 +2429,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2389
2429
  elm["s-sr"] = true;
2390
2430
  elm["s-cr"] = contentRef;
2391
2431
  elm["s-sn"] = newVNode2.$name$ || "";
2392
- elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
2432
+ elm["s-rf"] = (_a2 = newVNode2.$attrs$) == null ? void 0 : _a2.ref;
2393
2433
  patchSlotNode(elm);
2394
2434
  oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
2395
2435
  if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
@@ -2731,12 +2771,12 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
2731
2771
  }
2732
2772
  };
2733
2773
  function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2734
- var _a, _b;
2774
+ var _a2, _b;
2735
2775
  let scopeId2;
2736
2776
  if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
2737
2777
  const scopeName = slotNode["s-sn"];
2738
2778
  const hostName = slotNode["s-hn"];
2739
- (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
2779
+ (_a2 = newParent.classList) == null ? void 0 : _a2.add(scopeId2 + "-s");
2740
2780
  if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
2741
2781
  let child = (oldParent.__childNodes || oldParent.childNodes)[0];
2742
2782
  let found = false;
@@ -2752,7 +2792,7 @@ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2752
2792
  }
2753
2793
  }
2754
2794
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2755
- var _a, _d, _e;
2795
+ var _a2, _d, _e;
2756
2796
  const hostElm = hostRef.$hostElement$;
2757
2797
  const cmpMeta = hostRef.$cmpMeta$;
2758
2798
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -2808,7 +2848,7 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2808
2848
  const nodeToRelocate = relocateData.$nodeToRelocate$;
2809
2849
  const slotRefNode = relocateData.$slotRefNode$;
2810
2850
  if (nodeToRelocate.nodeType === 1 /* ElementNode */ && isInitialLoad) {
2811
- nodeToRelocate["s-ih"] = (_a = nodeToRelocate.hidden) != null ? _a : false;
2851
+ nodeToRelocate["s-ih"] = (_a2 = nodeToRelocate.hidden) != null ? _a2 : false;
2812
2852
  }
2813
2853
  if (slotRefNode) {
2814
2854
  const parentNodeRef = slotRefNode.parentNode;
@@ -2868,14 +2908,14 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2868
2908
  flushQueuedRefCallbacks();
2869
2909
  };
2870
2910
  var slotReferenceDebugNode = (slotVNode) => {
2871
- var _a;
2872
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2911
+ var _a2;
2912
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2873
2913
  `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
2874
2914
  );
2875
2915
  };
2876
2916
  var originalLocationDebugNode = (nodeToRelocate) => {
2877
- var _a;
2878
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2917
+ var _a2;
2918
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2879
2919
  `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
2880
2920
  );
2881
2921
  };
@@ -2952,7 +2992,7 @@ var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then
2952
2992
  }) : fn();
2953
2993
  var isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === "function";
2954
2994
  var updateComponent = async (hostRef, instance, isInitialLoad) => {
2955
- var _a;
2995
+ var _a2;
2956
2996
  const elm = hostRef.$hostElement$;
2957
2997
  const endUpdate = createTime("update", hostRef.$cmpMeta$.$tagName$);
2958
2998
  const rc = elm["s-rc"];
@@ -2984,7 +3024,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
2984
3024
  endRender();
2985
3025
  endUpdate();
2986
3026
  {
2987
- const childrenPromises = (_a = elm["s-p"]) != null ? _a : [];
3027
+ const childrenPromises = (_a2 = elm["s-p"]) != null ? _a2 : [];
2988
3028
  const postUpdate = () => postUpdateComponent(hostRef);
2989
3029
  if (childrenPromises.length === 0) {
2990
3030
  postUpdate();
@@ -3058,13 +3098,13 @@ var forceUpdate = (ref) => {
3058
3098
  return false;
3059
3099
  };
3060
3100
  var appDidLoad = (who) => {
3061
- var _a;
3101
+ var _a2;
3062
3102
  if (BUILD.asyncQueue) {
3063
3103
  plt.$flags$ |= 2 /* appLoaded */;
3064
3104
  }
3065
3105
  nextTick(() => emitEvent(win$2, "appload", { detail: { namespace: NAMESPACE } }));
3066
3106
  {
3067
- if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {
3107
+ if ((_a2 = plt.$orgLocNodes$) == null ? void 0 : _a2.size) {
3068
3108
  plt.$orgLocNodes$.clear();
3069
3109
  }
3070
3110
  }
@@ -3080,8 +3120,8 @@ var safeCall$1 = (instance, method, arg, elm) => {
3080
3120
  return void 0;
3081
3121
  };
3082
3122
  var addHydratedFlag = (elm) => {
3083
- var _a;
3084
- return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") ;
3123
+ var _a2;
3124
+ return elm.classList.add((_a2 = BUILD.hydratedSelectorName) != null ? _a2 : "hydrated") ;
3085
3125
  };
3086
3126
  var serverSideConnected = (elm) => {
3087
3127
  const children = elm.children;
@@ -3156,12 +3196,12 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3156
3196
 
3157
3197
  // src/runtime/proxy-component.ts
3158
3198
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3159
- var _a;
3199
+ var _a2;
3160
3200
  const prototype = Cstr.prototype;
3161
3201
  {
3162
3202
  {
3163
3203
  if (Cstr.watchers && !cmpMeta.$watchers$) {
3164
- cmpMeta.$watchers$ = Cstr.watchers;
3204
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3165
3205
  }
3166
3206
  if (Cstr.deserializers && !cmpMeta.$deserializers$) {
3167
3207
  cmpMeta.$deserializers$ = Cstr.deserializers;
@@ -3170,10 +3210,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3170
3210
  cmpMeta.$serializers$ = Cstr.serializers;
3171
3211
  }
3172
3212
  }
3173
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
3213
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
3174
3214
  members.map(([memberName, [memberFlags]]) => {
3175
3215
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
3176
- const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
3216
+ const { get: origGetter, set: origSetter } = getPropertyDescriptor(prototype, memberName) || {};
3177
3217
  if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
3178
3218
  if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
3179
3219
  if (!origGetter) {
@@ -3248,7 +3288,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3248
3288
  }
3249
3289
  if (!Cstr.isProxied) {
3250
3290
  {
3251
- cmpMeta.$watchers$ = Cstr.watchers;
3291
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3252
3292
  cmpMeta.$serializers$ = Cstr.serializers;
3253
3293
  cmpMeta.$deserializers$ = Cstr.deserializers;
3254
3294
  }
@@ -3414,11 +3454,11 @@ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) =>
3414
3454
  }
3415
3455
  };
3416
3456
  var hostListenerProxy = (hostRef, methodName) => (ev) => {
3417
- var _a;
3457
+ var _a2;
3418
3458
  try {
3419
3459
  {
3420
3460
  if (hostRef.$flags$ & 256 /* isListenReady */) {
3421
- (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
3461
+ (_a2 = hostRef.$lazyInstance$) == null ? void 0 : _a2[methodName](ev);
3422
3462
  } else {
3423
3463
  (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
3424
3464
  }
@@ -3452,7 +3492,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3452
3492
  const orgLocationNodes = [];
3453
3493
  parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);
3454
3494
  orgLocationNodes.forEach((orgLocationNode) => {
3455
- var _a;
3495
+ var _a2;
3456
3496
  if (orgLocationNode != null && orgLocationNode["s-nr"]) {
3457
3497
  const nodeRef = orgLocationNode["s-nr"];
3458
3498
  let hostId = nodeRef["s-host-id"];
@@ -3470,7 +3510,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3470
3510
  }
3471
3511
  } else if (nodeRef.nodeType === 3 /* TextNode */) {
3472
3512
  if (hostId === 0) {
3473
- const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();
3513
+ const textContent = (_a2 = nodeRef.nodeValue) == null ? void 0 : _a2.trim();
3474
3514
  if (textContent === "") {
3475
3515
  orgLocationNode.remove();
3476
3516
  return;
@@ -3500,7 +3540,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3500
3540
  }
3501
3541
  };
3502
3542
  var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3503
- var _a;
3543
+ var _a2;
3504
3544
  if (node == null) {
3505
3545
  return;
3506
3546
  }
@@ -3508,7 +3548,7 @@ var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3508
3548
  orgLocationNodes.push(node);
3509
3549
  }
3510
3550
  if (node.nodeType === 1 /* ElementNode */) {
3511
- const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];
3551
+ const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a2 = node.shadowRoot) == null ? void 0 : _a2.childNodes) || [])];
3512
3552
  childNodes.forEach((childNode) => {
3513
3553
  const hostRef = getHostRef(childNode);
3514
3554
  if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {
@@ -3734,8 +3774,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
3734
3774
  };
3735
3775
 
3736
3776
  // node_modules/minimatch/dist/esm/ast.js
3777
+ var _a;
3737
3778
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
3738
3779
  var isExtglobType = (c) => types.has(c);
3780
+ var isExtglobAST = (c) => isExtglobType(c.type);
3781
+ var adoptionMap = /* @__PURE__ */ new Map([
3782
+ ["!", ["@"]],
3783
+ ["?", ["?", "@"]],
3784
+ ["@", ["@"]],
3785
+ ["*", ["*", "+", "?", "@"]],
3786
+ ["+", ["+", "@"]]
3787
+ ]);
3788
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
3789
+ ["!", ["?"]],
3790
+ ["@", ["?"]],
3791
+ ["+", ["?", "*"]]
3792
+ ]);
3793
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
3794
+ ["!", ["?", "@"]],
3795
+ ["?", ["?", "@"]],
3796
+ ["@", ["?", "@"]],
3797
+ ["*", ["*", "+", "?", "@"]],
3798
+ ["+", ["+", "@", "?", "*"]]
3799
+ ]);
3800
+ var usurpMap = /* @__PURE__ */ new Map([
3801
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
3802
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
3803
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
3804
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
3805
+ ]);
3739
3806
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
3740
3807
  var startNoDot = "(?!\\.)";
3741
3808
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -3745,8 +3812,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
3745
3812
  var qmark = "[^/]";
3746
3813
  var star = qmark + "*?";
3747
3814
  var starNoEmpty = qmark + "+?";
3748
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
3749
- var _AST = class _AST {
3815
+ var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn;
3816
+ var AST = class {
3750
3817
  constructor(type, parent, options = {}) {
3751
3818
  __privateAdd(this, _AST_instances);
3752
3819
  __publicField(this, "type");
@@ -3799,44 +3866,44 @@ var _AST = class _AST {
3799
3866
  for (const p of parts) {
3800
3867
  if (p === "")
3801
3868
  continue;
3802
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
3869
+ if (typeof p !== "string" && !(p instanceof _a && __privateGet(p, _parent) === this)) {
3803
3870
  throw new Error("invalid part: " + p);
3804
3871
  }
3805
3872
  __privateGet(this, _parts).push(p);
3806
3873
  }
3807
3874
  }
3808
3875
  toJSON() {
3809
- var _a;
3876
+ var _a2;
3810
3877
  const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];
3811
3878
  if (this.isStart() && !this.type)
3812
3879
  ret.unshift([]);
3813
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")) {
3880
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
3814
3881
  ret.push({});
3815
3882
  }
3816
3883
  return ret;
3817
3884
  }
3818
3885
  isStart() {
3819
- var _a;
3886
+ var _a2;
3820
3887
  if (__privateGet(this, _root) === this)
3821
3888
  return true;
3822
- if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))
3889
+ if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
3823
3890
  return false;
3824
3891
  if (__privateGet(this, _parentIndex) === 0)
3825
3892
  return true;
3826
3893
  const p = __privateGet(this, _parent);
3827
3894
  for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {
3828
3895
  const pp = __privateGet(p, _parts)[i2];
3829
- if (!(pp instanceof _AST && pp.type === "!")) {
3896
+ if (!(pp instanceof _a && pp.type === "!")) {
3830
3897
  return false;
3831
3898
  }
3832
3899
  }
3833
3900
  return true;
3834
3901
  }
3835
3902
  isEnd() {
3836
- var _a, _b, _c;
3903
+ var _a2, _b, _c;
3837
3904
  if (__privateGet(this, _root) === this)
3838
3905
  return true;
3839
- if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")
3906
+ if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
3840
3907
  return true;
3841
3908
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
3842
3909
  return false;
@@ -3852,16 +3919,16 @@ var _AST = class _AST {
3852
3919
  this.push(part.clone(this));
3853
3920
  }
3854
3921
  clone(parent) {
3855
- const c = new _AST(this.type, parent);
3922
+ const c = new _a(this.type, parent);
3856
3923
  for (const p of __privateGet(this, _parts)) {
3857
3924
  c.copyIn(p);
3858
3925
  }
3859
3926
  return c;
3860
3927
  }
3861
3928
  static fromGlob(pattern, options = {}) {
3862
- var _a;
3863
- const ast = new _AST(null, void 0, options);
3864
- __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);
3929
+ var _a2;
3930
+ const ast = new _a(null, void 0, options);
3931
+ __privateMethod(_a2 = _a, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options, 0);
3865
3932
  return ast;
3866
3933
  }
3867
3934
  // returns the regular expression if there's magic, or the unescaped
@@ -3954,15 +4021,17 @@ var _AST = class _AST {
3954
4021
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
3955
4022
  // or start or whatever) and prepend ^ or / at the Regexp construction.
3956
4023
  toRegExpSource(allowDot) {
3957
- var _a;
4024
+ var _a2;
3958
4025
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
3959
- if (__privateGet(this, _root) === this)
4026
+ if (__privateGet(this, _root) === this) {
4027
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
3960
4028
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
3961
- if (!this.type) {
4029
+ }
4030
+ if (!isExtglobAST(this)) {
3962
4031
  const noEmpty = this.isStart() && this.isEnd();
3963
4032
  const src = __privateGet(this, _parts).map((p) => {
3964
- var _a2;
3965
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
4033
+ var _a3;
4034
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _a, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
3966
4035
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
3967
4036
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
3968
4037
  return re;
@@ -3985,7 +4054,7 @@ var _AST = class _AST {
3985
4054
  }
3986
4055
  }
3987
4056
  let end = "";
3988
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!") {
4057
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
3989
4058
  end = "(?:$|\\/)";
3990
4059
  }
3991
4060
  const final2 = start2 + src + end;
@@ -4001,12 +4070,13 @@ var _AST = class _AST {
4001
4070
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
4002
4071
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
4003
4072
  const s = this.toString();
4004
- __privateSet(this, _parts, [s]);
4005
- this.type = null;
4006
- __privateSet(this, _hasMagic, void 0);
4073
+ const me = this;
4074
+ __privateSet(me, _parts, [s]);
4075
+ me.type = null;
4076
+ __privateSet(me, _hasMagic, void 0);
4007
4077
  return [s, unescape(this.toString()), false, false];
4008
4078
  }
4009
- let bodyDotAllowed = !repeated || allowDot || dot || false ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4079
+ let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4010
4080
  if (bodyDotAllowed === body) {
4011
4081
  bodyDotAllowed = "";
4012
4082
  }
@@ -4072,8 +4142,9 @@ fillNegs_fn = function() {
4072
4142
  return this;
4073
4143
  };
4074
4144
  _AST_static = new WeakSet();
4075
- parseAST_fn = function(str, ast, pos, opt) {
4076
- var _a, _b;
4145
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
4146
+ var _a2, _b, _c, _d, _e;
4147
+ const maxDepth = (_a2 = opt.maxExtglobRecursion) != null ? _a2 : 2;
4077
4148
  let escaping = false;
4078
4149
  let inBrace = false;
4079
4150
  let braceStart = -1;
@@ -4105,11 +4176,12 @@ parseAST_fn = function(str, ast, pos, opt) {
4105
4176
  acc2 += c;
4106
4177
  continue;
4107
4178
  }
4108
- if (!opt.noext && isExtglobType(c) && str.charAt(i3) === "(") {
4179
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i3) === "(" && extDepth <= maxDepth;
4180
+ if (doRecurse) {
4109
4181
  ast.push(acc2);
4110
4182
  acc2 = "";
4111
- const ext2 = new _AST(c, ast);
4112
- i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);
4183
+ const ext2 = new _a(c, ast);
4184
+ i3 = __privateMethod(_b = _a, _AST_static, parseAST_fn).call(_b, str, ext2, i3, opt, extDepth + 1);
4113
4185
  ast.push(ext2);
4114
4186
  continue;
4115
4187
  }
@@ -4119,7 +4191,7 @@ parseAST_fn = function(str, ast, pos, opt) {
4119
4191
  return i3;
4120
4192
  }
4121
4193
  let i2 = pos + 1;
4122
- let part = new _AST(null, ast);
4194
+ let part = new _a(null, ast);
4123
4195
  const parts = [];
4124
4196
  let acc = "";
4125
4197
  while (i2 < str.length) {
@@ -4146,19 +4218,22 @@ parseAST_fn = function(str, ast, pos, opt) {
4146
4218
  acc += c;
4147
4219
  continue;
4148
4220
  }
4149
- if (isExtglobType(c) && str.charAt(i2) === "(") {
4221
+ const doRecurse = isExtglobType(c) && str.charAt(i2) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
4222
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
4223
+ if (doRecurse) {
4224
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
4150
4225
  part.push(acc);
4151
4226
  acc = "";
4152
- const ext2 = new _AST(c, part);
4227
+ const ext2 = new _a(c, part);
4153
4228
  part.push(ext2);
4154
- i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);
4229
+ i2 = __privateMethod(_e = _a, _AST_static, parseAST_fn).call(_e, str, ext2, i2, opt, extDepth + depthAdd);
4155
4230
  continue;
4156
4231
  }
4157
4232
  if (c === "|") {
4158
4233
  part.push(acc);
4159
4234
  acc = "";
4160
4235
  parts.push(part);
4161
- part = new _AST(null, ast);
4236
+ part = new _a(null, ast);
4162
4237
  continue;
4163
4238
  }
4164
4239
  if (c === ")") {
@@ -4177,6 +4252,100 @@ parseAST_fn = function(str, ast, pos, opt) {
4177
4252
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
4178
4253
  return i2;
4179
4254
  };
4255
+ canAdoptWithSpace_fn = function(child) {
4256
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
4257
+ };
4258
+ canAdopt_fn = function(child, map2 = adoptionMap) {
4259
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
4260
+ return false;
4261
+ }
4262
+ const gc = __privateGet(child, _parts)[0];
4263
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4264
+ return false;
4265
+ }
4266
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
4267
+ };
4268
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
4269
+ var _a2;
4270
+ return !!((_a2 = map2.get(this.type)) == null ? void 0 : _a2.includes(c));
4271
+ };
4272
+ adoptWithSpace_fn = function(child, index) {
4273
+ const gc = __privateGet(child, _parts)[0];
4274
+ const blank = new _a(null, gc, this.options);
4275
+ __privateGet(blank, _parts).push("");
4276
+ gc.push(blank);
4277
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
4278
+ };
4279
+ adopt_fn = function(child, index) {
4280
+ const gc = __privateGet(child, _parts)[0];
4281
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
4282
+ for (const p of __privateGet(gc, _parts)) {
4283
+ if (typeof p === "object")
4284
+ __privateSet(p, _parent, this);
4285
+ }
4286
+ __privateSet(this, _toString, void 0);
4287
+ };
4288
+ canUsurpType_fn = function(c) {
4289
+ const m = usurpMap.get(this.type);
4290
+ return !!(m == null ? void 0 : m.has(c));
4291
+ };
4292
+ canUsurp_fn = function(child) {
4293
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
4294
+ return false;
4295
+ }
4296
+ const gc = __privateGet(child, _parts)[0];
4297
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4298
+ return false;
4299
+ }
4300
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
4301
+ };
4302
+ usurp_fn = function(child) {
4303
+ const m = usurpMap.get(this.type);
4304
+ const gc = __privateGet(child, _parts)[0];
4305
+ const nt = m == null ? void 0 : m.get(gc.type);
4306
+ if (!nt)
4307
+ return false;
4308
+ __privateSet(this, _parts, __privateGet(gc, _parts));
4309
+ for (const p of __privateGet(this, _parts)) {
4310
+ if (typeof p === "object")
4311
+ __privateSet(p, _parent, this);
4312
+ }
4313
+ this.type = nt;
4314
+ __privateSet(this, _toString, void 0);
4315
+ __privateSet(this, _emptyExt, false);
4316
+ };
4317
+ flatten_fn = function() {
4318
+ var _a2, _b;
4319
+ if (!isExtglobAST(this)) {
4320
+ for (const p of __privateGet(this, _parts)) {
4321
+ if (typeof p === "object")
4322
+ __privateMethod(_a2 = p, _AST_instances, flatten_fn).call(_a2);
4323
+ }
4324
+ } else {
4325
+ let iterations = 0;
4326
+ let done = false;
4327
+ do {
4328
+ done = true;
4329
+ for (let i2 = 0; i2 < __privateGet(this, _parts).length; i2++) {
4330
+ const c = __privateGet(this, _parts)[i2];
4331
+ if (typeof c === "object") {
4332
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
4333
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
4334
+ done = false;
4335
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i2);
4336
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
4337
+ done = false;
4338
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i2);
4339
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
4340
+ done = false;
4341
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
4342
+ }
4343
+ }
4344
+ }
4345
+ } while (!done && ++iterations < 10);
4346
+ }
4347
+ __privateSet(this, _toString, void 0);
4348
+ };
4180
4349
  partsToRegExp_fn = function(dot) {
4181
4350
  return __privateGet(this, _parts).map((p) => {
4182
4351
  if (typeof p === "string") {
@@ -4191,11 +4360,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4191
4360
  let escaping = false;
4192
4361
  let re = "";
4193
4362
  let uflag = false;
4363
+ let inStar = false;
4194
4364
  for (let i2 = 0; i2 < glob.length; i2++) {
4195
4365
  const c = glob.charAt(i2);
4196
4366
  if (escaping) {
4197
4367
  escaping = false;
4198
4368
  re += (reSpecials.has(c) ? "\\" : "") + c;
4369
+ inStar = false;
4199
4370
  continue;
4200
4371
  }
4201
4372
  if (c === "\\") {
@@ -4213,16 +4384,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4213
4384
  uflag = uflag || needUflag;
4214
4385
  i2 += consumed - 1;
4215
4386
  hasMagic = hasMagic || magic;
4387
+ inStar = false;
4216
4388
  continue;
4217
4389
  }
4218
4390
  }
4219
4391
  if (c === "*") {
4220
- if (noEmpty && glob === "*")
4221
- re += starNoEmpty;
4222
- else
4223
- re += star;
4392
+ if (inStar)
4393
+ continue;
4394
+ inStar = true;
4395
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
4224
4396
  hasMagic = true;
4225
4397
  continue;
4398
+ } else {
4399
+ inStar = false;
4226
4400
  }
4227
4401
  if (c === "?") {
4228
4402
  re += qmark;
@@ -4233,8 +4407,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4233
4407
  }
4234
4408
  return [re, unescape(glob), !!hasMagic, uflag];
4235
4409
  };
4236
- __privateAdd(_AST, _AST_static);
4237
- var AST = _AST;
4410
+ __privateAdd(AST, _AST_static);
4411
+ _a = AST;
4238
4412
 
4239
4413
  // node_modules/minimatch/dist/esm/escape.js
4240
4414
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -4373,28 +4547,33 @@ var match = (list, pattern, options = {}) => {
4373
4547
  minimatch.match = match;
4374
4548
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
4375
4549
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
4550
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
4376
4551
  var Minimatch = class {
4377
- options;
4378
- set;
4379
- pattern;
4380
- windowsPathsNoEscape;
4381
- nonegate;
4382
- negate;
4383
- comment;
4384
- empty;
4385
- preserveMultipleSlashes;
4386
- partial;
4387
- globSet;
4388
- globParts;
4389
- nocase;
4390
- isWindows;
4391
- platform;
4392
- windowsNoMagicRoot;
4393
- regexp;
4394
4552
  constructor(pattern, options = {}) {
4553
+ __privateAdd(this, _Minimatch_instances);
4554
+ __publicField(this, "options");
4555
+ __publicField(this, "set");
4556
+ __publicField(this, "pattern");
4557
+ __publicField(this, "windowsPathsNoEscape");
4558
+ __publicField(this, "nonegate");
4559
+ __publicField(this, "negate");
4560
+ __publicField(this, "comment");
4561
+ __publicField(this, "empty");
4562
+ __publicField(this, "preserveMultipleSlashes");
4563
+ __publicField(this, "partial");
4564
+ __publicField(this, "globSet");
4565
+ __publicField(this, "globParts");
4566
+ __publicField(this, "nocase");
4567
+ __publicField(this, "isWindows");
4568
+ __publicField(this, "platform");
4569
+ __publicField(this, "windowsNoMagicRoot");
4570
+ __publicField(this, "maxGlobstarRecursion");
4571
+ __publicField(this, "regexp");
4572
+ var _a2;
4395
4573
  assertValidPattern(pattern);
4396
4574
  options = options || {};
4397
4575
  this.options = options;
4576
+ this.maxGlobstarRecursion = (_a2 = options.maxGlobstarRecursion) != null ? _a2 : 200;
4398
4577
  this.pattern = pattern;
4399
4578
  this.platform = options.platform || defaultPlatform;
4400
4579
  this.isWindows = this.platform === "win32";
@@ -4662,10 +4841,11 @@ var Minimatch = class {
4662
4841
  for (let i2 = 0; i2 < globParts.length - 1; i2++) {
4663
4842
  for (let j = i2 + 1; j < globParts.length; j++) {
4664
4843
  const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);
4665
- if (!matched)
4666
- continue;
4667
- globParts[i2] = matched;
4668
- globParts[j] = [];
4844
+ if (matched) {
4845
+ globParts[i2] = [];
4846
+ globParts[j] = matched;
4847
+ break;
4848
+ }
4669
4849
  }
4670
4850
  }
4671
4851
  return globParts.filter((gs) => gs.length);
@@ -4726,7 +4906,8 @@ var Minimatch = class {
4726
4906
  // out of pattern, then that's fine, as long as all
4727
4907
  // the parts match.
4728
4908
  matchOne(file, pattern, partial = false) {
4729
- const options = this.options;
4909
+ let fileStartIndex = 0;
4910
+ let patternStartIndex = 0;
4730
4911
  if (this.isWindows) {
4731
4912
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
4732
4913
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -4735,14 +4916,14 @@ var Minimatch = class {
4735
4916
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
4736
4917
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
4737
4918
  if (typeof fdi === "number" && typeof pdi === "number") {
4738
- const [fd, pd] = [file[fdi], pattern[pdi]];
4919
+ const [fd, pd] = [
4920
+ file[fdi],
4921
+ pattern[pdi]
4922
+ ];
4739
4923
  if (fd.toLowerCase() === pd.toLowerCase()) {
4740
4924
  pattern[pdi] = fd;
4741
- if (pdi > fdi) {
4742
- pattern = pattern.slice(pdi);
4743
- } else if (fdi > pdi) {
4744
- file = file.slice(fdi);
4745
- }
4925
+ patternStartIndex = pdi;
4926
+ fileStartIndex = fdi;
4746
4927
  }
4747
4928
  }
4748
4929
  }
@@ -4750,71 +4931,10 @@ var Minimatch = class {
4750
4931
  if (optimizationLevel >= 2) {
4751
4932
  file = this.levelTwoFileOptimize(file);
4752
4933
  }
4753
- this.debug("matchOne", this, { file, pattern });
4754
- this.debug("matchOne", file.length, pattern.length);
4755
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
4756
- this.debug("matchOne loop");
4757
- var p = pattern[pi];
4758
- var f = file[fi];
4759
- this.debug(pattern, p, f);
4760
- if (p === false) {
4761
- return false;
4762
- }
4763
- if (p === GLOBSTAR) {
4764
- this.debug("GLOBSTAR", [pattern, p, f]);
4765
- var fr = fi;
4766
- var pr = pi + 1;
4767
- if (pr === pl) {
4768
- this.debug("** at the end");
4769
- for (; fi < fl; fi++) {
4770
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
4771
- return false;
4772
- }
4773
- return true;
4774
- }
4775
- while (fr < fl) {
4776
- var swallowee = file[fr];
4777
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
4778
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
4779
- this.debug("globstar found match!", fr, fl, swallowee);
4780
- return true;
4781
- } else {
4782
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
4783
- this.debug("dot detected!", file, fr, pattern, pr);
4784
- break;
4785
- }
4786
- this.debug("globstar swallow a segment, and continue");
4787
- fr++;
4788
- }
4789
- }
4790
- if (partial) {
4791
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
4792
- if (fr === fl) {
4793
- return true;
4794
- }
4795
- }
4796
- return false;
4797
- }
4798
- let hit;
4799
- if (typeof p === "string") {
4800
- hit = f === p;
4801
- this.debug("string match", p, f, hit);
4802
- } else {
4803
- hit = p.test(f);
4804
- this.debug("pattern match", p, f, hit);
4805
- }
4806
- if (!hit)
4807
- return false;
4808
- }
4809
- if (fi === fl && pi === pl) {
4810
- return true;
4811
- } else if (fi === fl) {
4812
- return partial;
4813
- } else if (pi === pl) {
4814
- return fi === fl - 1 && file[fi] === "";
4815
- } else {
4816
- throw new Error("wtf?");
4934
+ if (pattern.includes(GLOBSTAR)) {
4935
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4817
4936
  }
4937
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4818
4938
  }
4819
4939
  braceExpand() {
4820
4940
  return braceExpand(this.pattern, this.options);
@@ -4953,6 +5073,135 @@ var Minimatch = class {
4953
5073
  return minimatch.defaults(def).Minimatch;
4954
5074
  }
4955
5075
  };
5076
+ _Minimatch_instances = new WeakSet();
5077
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5078
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
5079
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
5080
+ const [head, body, tail] = partial ? [
5081
+ pattern.slice(patternIndex, firstgs),
5082
+ pattern.slice(firstgs + 1),
5083
+ []
5084
+ ] : [
5085
+ pattern.slice(patternIndex, firstgs),
5086
+ pattern.slice(firstgs + 1, lastgs),
5087
+ pattern.slice(lastgs + 1)
5088
+ ];
5089
+ if (head.length) {
5090
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
5091
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
5092
+ return false;
5093
+ fileIndex += head.length;
5094
+ }
5095
+ let fileTailMatch = 0;
5096
+ if (tail.length) {
5097
+ if (tail.length + fileIndex > file.length)
5098
+ return false;
5099
+ let tailStart = file.length - tail.length;
5100
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
5101
+ fileTailMatch = tail.length;
5102
+ } else {
5103
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
5104
+ return false;
5105
+ }
5106
+ tailStart--;
5107
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
5108
+ return false;
5109
+ fileTailMatch = tail.length + 1;
5110
+ }
5111
+ }
5112
+ if (!body.length) {
5113
+ let sawSome = !!fileTailMatch;
5114
+ for (let i3 = fileIndex; i3 < file.length - fileTailMatch; i3++) {
5115
+ const f = String(file[i3]);
5116
+ sawSome = true;
5117
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5118
+ return false;
5119
+ }
5120
+ }
5121
+ return partial || sawSome;
5122
+ }
5123
+ const bodySegments = [[[], 0]];
5124
+ let currentBody = bodySegments[0];
5125
+ let nonGsParts = 0;
5126
+ const nonGsPartsSums = [0];
5127
+ for (const b of body) {
5128
+ if (b === GLOBSTAR) {
5129
+ nonGsPartsSums.push(nonGsParts);
5130
+ currentBody = [[], 0];
5131
+ bodySegments.push(currentBody);
5132
+ } else {
5133
+ currentBody[0].push(b);
5134
+ nonGsParts++;
5135
+ }
5136
+ }
5137
+ let i2 = bodySegments.length - 1;
5138
+ const fileLength = file.length - fileTailMatch;
5139
+ for (const b of bodySegments) {
5140
+ b[1] = fileLength - (nonGsPartsSums[i2--] + b[0].length);
5141
+ }
5142
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
5143
+ };
5144
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
5145
+ const bs = bodySegments[bodyIndex];
5146
+ if (!bs) {
5147
+ for (let i2 = fileIndex; i2 < file.length; i2++) {
5148
+ sawTail = true;
5149
+ const f = file[i2];
5150
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5151
+ return false;
5152
+ }
5153
+ }
5154
+ return sawTail;
5155
+ }
5156
+ const [body, after] = bs;
5157
+ while (fileIndex <= after) {
5158
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
5159
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
5160
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
5161
+ if (sub !== false)
5162
+ return sub;
5163
+ }
5164
+ const f = file[fileIndex];
5165
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5166
+ return false;
5167
+ }
5168
+ fileIndex++;
5169
+ }
5170
+ return partial || null;
5171
+ };
5172
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5173
+ let fi;
5174
+ let pi;
5175
+ let pl;
5176
+ let fl;
5177
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
5178
+ this.debug("matchOne loop");
5179
+ let p = pattern[pi];
5180
+ let f = file[fi];
5181
+ this.debug(pattern, p, f);
5182
+ if (p === false || p === GLOBSTAR)
5183
+ return false;
5184
+ let hit;
5185
+ if (typeof p === "string") {
5186
+ hit = f === p;
5187
+ this.debug("string match", p, f, hit);
5188
+ } else {
5189
+ hit = p.test(f);
5190
+ this.debug("pattern match", p, f, hit);
5191
+ }
5192
+ if (!hit)
5193
+ return false;
5194
+ }
5195
+ if (fi === fl && pi === pl) {
5196
+ return true;
5197
+ } else if (fi === fl) {
5198
+ return partial;
5199
+ } else if (pi === pl) {
5200
+ return fi === fl - 1 && file[fi] === "";
5201
+ } else {
5202
+ throw new Error("wtf?");
5203
+ }
5204
+ };
4956
5205
  minimatch.AST = AST;
4957
5206
  minimatch.Minimatch = Minimatch;
4958
5207
  minimatch.escape = escape;
@@ -5026,7 +5275,7 @@ function proxyHostElement(elm, cstr) {
5026
5275
  const hostRef = getHostRef(elm);
5027
5276
  const members = Object.entries(cmpMeta.$members$);
5028
5277
  members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
5029
- var _a, _b;
5278
+ var _a2, _b;
5030
5279
  if (memberFlags & 31 /* Prop */) {
5031
5280
  const attributeName = metaAttributeName || memberName;
5032
5281
  const attrValue = elm.getAttribute(attributeName);
@@ -5034,7 +5283,7 @@ function proxyHostElement(elm, cstr) {
5034
5283
  let attrPropVal;
5035
5284
  const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(cstr.prototype, memberName) || {};
5036
5285
  if (attrValue != null) {
5037
- if ((_a = cmpMeta.$deserializers$) == null ? void 0 : _a[memberName]) {
5286
+ if ((_a2 = cmpMeta.$deserializers$) == null ? void 0 : _a2[memberName]) {
5038
5287
  for (const deserializer of cmpMeta.$deserializers$[memberName]) {
5039
5288
  const [[methodName]] = Object.entries(deserializer);
5040
5289
  attrPropVal = cstr.prototype[methodName](attrValue, memberName);
@@ -5067,8 +5316,8 @@ function proxyHostElement(elm, cstr) {
5067
5316
  Object.defineProperty(elm, memberName, getterSetterDescriptor);
5068
5317
  Object.defineProperty(elm, metaAttributeName, getterSetterDescriptor);
5069
5318
  hostRef.$fetchedCbList$.push(() => {
5070
- var _a2;
5071
- if (!((_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.has(memberName))) {
5319
+ var _a3;
5320
+ if (!((_a3 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a3.has(memberName))) {
5072
5321
  setValue(
5073
5322
  elm,
5074
5323
  memberName,
@@ -5081,11 +5330,11 @@ function proxyHostElement(elm, cstr) {
5081
5330
  } else if (memberFlags & 64 /* Method */) {
5082
5331
  Object.defineProperty(elm, memberName, {
5083
5332
  value(...args) {
5084
- var _a2;
5333
+ var _a3;
5085
5334
  const ref = getHostRef(this);
5086
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
5087
- var _a3;
5088
- return (_a3 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
5335
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
5336
+ var _a4;
5337
+ return (_a4 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
5089
5338
  }).catch((e) => {
5090
5339
  consoleError(e, this);
5091
5340
  });
@@ -5096,8 +5345,8 @@ function proxyHostElement(elm, cstr) {
5096
5345
  }
5097
5346
  }
5098
5347
  function componentOnReady$1() {
5099
- var _a;
5100
- return (_a = getHostRef(this)) == null ? void 0 : _a.$onReadyPromise$;
5348
+ var _a2;
5349
+ return (_a2 = getHostRef(this)) == null ? void 0 : _a2.$onReadyPromise$;
5101
5350
  }
5102
5351
  function forceUpdate2() {
5103
5352
  }
@@ -10145,6 +10394,7 @@ class Alert {
10145
10394
  this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
10146
10395
  this.processedInputs = [];
10147
10396
  this.processedButtons = [];
10397
+ this.isButtonGroupWrapped = false;
10148
10398
  this.presented = false;
10149
10399
  /** @internal */
10150
10400
  this.hasController = false;
@@ -10269,6 +10519,13 @@ class Alert {
10269
10519
  this.processedButtons = buttons.map((btn) => {
10270
10520
  return typeof btn === 'string' ? { text: btn, role: btn.toLowerCase() === 'cancel' ? 'cancel' : undefined } : btn;
10271
10521
  });
10522
+ /**
10523
+ * Reset wrap state so the new button set can be re-evaluated. Without this,
10524
+ * a previously-latched vertical layout would persist even if the new buttons
10525
+ * fit horizontally.
10526
+ */
10527
+ this.isButtonGroupWrapped = false;
10528
+ this.checkButtonGroupWrap();
10272
10529
  }
10273
10530
  inputsChanged() {
10274
10531
  const inputs = this.inputs;
@@ -10309,6 +10566,12 @@ class Alert {
10309
10566
  connectedCallback() {
10310
10567
  prepareOverlay(this.el);
10311
10568
  this.triggerChanged();
10569
+ /**
10570
+ * If the alert was previously connected and is being reattached, the
10571
+ * ResizeObserver was disconnected. componentDidLoad only fires once per
10572
+ * instance, so re-establish the observer here on reconnect.
10573
+ */
10574
+ this.setupButtonGroupResizeObserver();
10312
10575
  }
10313
10576
  componentWillLoad() {
10314
10577
  var _a;
@@ -10319,11 +10582,14 @@ class Alert {
10319
10582
  this.buttonsChanged();
10320
10583
  }
10321
10584
  disconnectedCallback() {
10585
+ var _a;
10322
10586
  this.triggerController.removeClickListener();
10323
10587
  if (this.gesture) {
10324
10588
  this.gesture.destroy();
10325
10589
  this.gesture = undefined;
10326
10590
  }
10591
+ (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10592
+ this.buttonGroupResizeObserver = undefined;
10327
10593
  }
10328
10594
  componentDidLoad() {
10329
10595
  /**
@@ -10336,6 +10602,7 @@ class Alert {
10336
10602
  this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
10337
10603
  this.gesture.enable(true);
10338
10604
  }
10605
+ this.setupButtonGroupResizeObserver();
10339
10606
  /**
10340
10607
  * If alert was rendered with isOpen="true"
10341
10608
  * then we should open alert immediately.
@@ -10525,14 +10792,58 @@ class Alert {
10525
10792
  }
10526
10793
  })));
10527
10794
  }
10795
+ setupButtonGroupResizeObserver() {
10796
+ var _a;
10797
+ /**
10798
+ * Re-evaluate vertical layout when the button group resizes so a 2-button
10799
+ * group with long text wraps cleanly instead of leaving a stray right-edge
10800
+ * border on the first button.
10801
+ */
10802
+ if (!this.buttonGroupEl || typeof ResizeObserver === 'undefined') {
10803
+ return;
10804
+ }
10805
+ (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10806
+ this.buttonGroupResizeObserver = new ResizeObserver(() => this.checkButtonGroupWrap());
10807
+ this.buttonGroupResizeObserver.observe(this.buttonGroupEl);
10808
+ this.checkButtonGroupWrap();
10809
+ }
10810
+ checkButtonGroupWrap() {
10811
+ /**
10812
+ * Defer the layout read out of the ResizeObserver callback so we don't
10813
+ * force synchronous layout and avoid "ResizeObserver loop" warnings when
10814
+ * applying the vertical-layout class itself triggers another resize.
10815
+ */
10816
+ raf(() => {
10817
+ /**
10818
+ * Bail if the alert was disconnected after this raf was queued.
10819
+ * `buttonGroupEl` persists across disconnect so the observer can be
10820
+ * re-attached on reconnect; the observer reference is the disconnect
10821
+ * sentinel.
10822
+ */
10823
+ if (!this.buttonGroupResizeObserver) {
10824
+ return;
10825
+ }
10826
+ const groupEl = this.buttonGroupEl;
10827
+ if (!groupEl) {
10828
+ return;
10829
+ }
10830
+ const buttons = Array.from(groupEl.querySelectorAll('.alert-button'));
10831
+ if (buttons.length < 2) {
10832
+ this.isButtonGroupWrapped = false;
10833
+ return;
10834
+ }
10835
+ const firstTop = buttons[0].offsetTop;
10836
+ this.isButtonGroupWrapped = buttons.some((btn) => btn.offsetTop !== firstTop);
10837
+ });
10838
+ }
10528
10839
  renderAlertButtons() {
10529
10840
  const buttons = this.processedButtons;
10530
10841
  const mode = getIonMode$1(this);
10531
10842
  const alertButtonGroupClass = {
10532
10843
  'alert-button-group': true,
10533
- 'alert-button-group-vertical': buttons.length > 2,
10844
+ 'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
10534
10845
  };
10535
- return (hAsync("div", { class: alertButtonGroupClass }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10846
+ return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10536
10847
  }
10537
10848
  renderAlertMessage(msgId) {
10538
10849
  const { customHTMLEnabled, message } = this;
@@ -10555,9 +10866,9 @@ class Alert {
10555
10866
  * If neither are defined, do not set aria-labelledby.
10556
10867
  */
10557
10868
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10558
- return (hAsync(Host, { key: '6025440b9cd369d4fac89e7e4296c84a10a0b8e0', tabindex: "-1", style: {
10869
+ return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
10559
10870
  zIndex: `${20000 + overlayIndex}`,
10560
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '3cd5ca8b99cb95b11dd22ab41a820d841142896f', tappable: this.backdropDismiss }), hAsync("div", { key: '4cc62ae6e21424057d22aeef1e8fc77011e77cd5', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '364057a69f25aa88904df17bdcf7e5bf714e7830', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '78694e3c0db2d408df3899fb1a90859bcc8d14cc', class: "alert-head" }, header && (hAsync("h2", { key: 'ec88ff3e4e1ea871b5975133fdcf4cac38b05e0f', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '9b09bc8bb68af255ef8b7d22587acc946148e544', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '99abe815f75d2df7f1b77c0df9f3436724fea76f', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'a43d0c22c0e46b1ef911f92ffeb253d7911b85f7', tabindex: "0", "aria-hidden": "true" })));
10871
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
10561
10872
  }
10562
10873
  get el() { return getElement(this); }
10563
10874
  static get watchers() { return {
@@ -10600,6 +10911,7 @@ class Alert {
10600
10911
  "htmlAttributes": [16],
10601
10912
  "isOpen": [4, "is-open"],
10602
10913
  "trigger": [1],
10914
+ "isButtonGroupWrapped": [32],
10603
10915
  "present": [64],
10604
10916
  "dismiss": [64],
10605
10917
  "onDidDismiss": [64],
@@ -12367,7 +12679,7 @@ const isRTL$1 = (hostEl) => {
12367
12679
  return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
12368
12680
  };
12369
12681
 
12370
- const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--ion-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}`;
12682
+ const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}`;
12371
12683
 
12372
12684
  /**
12373
12685
  * @slot - Content is placed in the scrollable area if provided without a slot.
@@ -26273,12 +26585,12 @@ class Modal {
26273
26585
  this.applyFullscreenSafeAreaTo(contentEl, hasFooter);
26274
26586
  }
26275
26587
  /**
26276
- * Sets --ion-content-safe-area-padding-bottom on the given ion-content
26588
+ * Sets --internal-content-safe-area-padding-bottom on the given ion-content
26277
26589
  * when no footer is present, so ion-content's .inner-scroll includes
26278
26590
  * safe-area-bottom in its scroll padding. This keeps the modal background
26279
26591
  * edge-to-edge while ensuring content scrolls clear of the system nav bar.
26280
26592
  *
26281
- * --ion-content-safe-area-padding-bottom is an internal CSS property used
26593
+ * --internal-content-safe-area-padding-bottom is an internal CSS property used
26282
26594
  * only by this code path. It is not part of ion-content's public API and
26283
26595
  * should not be set by consumers. The default of 0px makes it a no-op
26284
26596
  * when unset, which is the expected state for ion-content used outside of
@@ -26290,17 +26602,17 @@ class Modal {
26290
26602
  // padding. Custom modals with raw HTML are developer-controlled.
26291
26603
  if (!contentEl || hasFooter)
26292
26604
  return;
26293
- contentEl.style.setProperty('--ion-content-safe-area-padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
26605
+ contentEl.style.setProperty('--internal-content-safe-area-padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
26294
26606
  }
26295
26607
  /**
26296
- * Removes the internal --ion-content-safe-area-padding-bottom property
26608
+ * Removes the internal --internal-content-safe-area-padding-bottom property
26297
26609
  * from an already-located ion-content. Callers do their own
26298
26610
  * findContentAndFooter() so they can also read hasFooter if needed.
26299
26611
  */
26300
26612
  clearContentSafeAreaPadding(contentEl) {
26301
26613
  if (!contentEl)
26302
26614
  return;
26303
- contentEl.style.removeProperty('--ion-content-safe-area-padding-bottom');
26615
+ contentEl.style.removeProperty('--internal-content-safe-area-padding-bottom');
26304
26616
  }
26305
26617
  /**
26306
26618
  * Finds ion-content and ion-footer among direct children and one level of
@@ -26347,20 +26659,20 @@ class Modal {
26347
26659
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26348
26660
  const isHandleCycle = handleBehavior === 'cycle';
26349
26661
  const isSheetModalWithHandle = isSheetModal && showHandle;
26350
- return (hAsync(Host, Object.assign({ key: '4bf38aa67df9a3f977163bba5423960bbafd16de', "no-router": true,
26662
+ return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26351
26663
  // Allow the modal to be navigable when the handle is focusable
26352
26664
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26353
26665
  zIndex: `${20000 + this.overlayIndex}`,
26354
- }, 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: '866da40cc5fc8d3e36637098fb3066a5bc9f4e0f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '5a2a05514ea8592c8feb0465e504aa7c7af17963', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '4d327115306451f57d190b06ab8cbb6191a6f1d7',
26666
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3f6c61ba60b063592784d76a9594073b3bf210a9',
26355
26667
  /*
26356
26668
  role and aria-modal must be used on the
26357
26669
  same element. They must also be set inside the
26358
26670
  shadow DOM otherwise ion-button will not be highlighted
26359
26671
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26360
26672
  */
26361
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'd1882835cc049232c0d957e3ba1e79676a07d179', class: "modal-handle",
26673
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7f66b4fdb3dec61a2b9aec4e9dbacf5d013d637c', class: "modal-handle",
26362
26674
  // Prevents the handle from receiving keyboard focus when it does not cycle
26363
- 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: '81dc58b09cf7d7022b04cd170f53113604364d5e', onSlotchange: this.onSlotChange }))));
26675
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '2dfaaebe3d0b2a46be1224c25f9ab89bf1744332', onSlotchange: this.onSlotChange }))));
26364
26676
  }
26365
26677
  get el() { return getElement(this); }
26366
26678
  static get watchers() { return {
@@ -26369,6 +26681,9 @@ class Modal {
26369
26681
  }],
26370
26682
  "trigger": [{
26371
26683
  "triggerChanged": 0
26684
+ }],
26685
+ "breakpoints": [{
26686
+ "breakpointsChanged": 0
26372
26687
  }]
26373
26688
  }; }
26374
26689
  static get style() { return {
@@ -29100,7 +29415,7 @@ class PickerColumnCmp {
29100
29415
  this.emitColChange();
29101
29416
  return;
29102
29417
  }
29103
- this.velocity = clamp(-90, detail.velocityY * 23, MAX_PICKER_SPEED);
29418
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29104
29419
  if (this.velocity === 0 && detail.deltaY === 0) {
29105
29420
  const opt = detail.event.target.closest('.picker-opt');
29106
29421
  if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
@@ -29195,7 +29510,7 @@ const TRANSITION_DURATION = 150;
29195
29510
 
29196
29511
  const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
29197
29512
 
29198
- const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active){color:var(--ion-color-base)}`;
29513
+ const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active),:host([part~=active]){color:var(--ion-color-base)}`;
29199
29514
 
29200
29515
  class PickerColumnOption {
29201
29516
  constructor(hostRef) {
@@ -33873,7 +34188,7 @@ class ReorderGroup {
33873
34188
  }
33874
34189
  let amount = 0;
33875
34190
  if (posY < this.scrollElTop) {
33876
- amount = -10;
34191
+ amount = -SCROLL_JUMP;
33877
34192
  }
33878
34193
  else if (posY > this.scrollElBottom) {
33879
34194
  amount = SCROLL_JUMP;
@@ -34135,7 +34450,7 @@ const generatePath = (segments) => {
34135
34450
  const path = segments.filter((s) => s.length > 0).join('/');
34136
34451
  return '/' + path;
34137
34452
  };
34138
- const generateUrl = (segments, useHash, queryString) => {
34453
+ const generateUrl = (segments, useHash, queryString, fragment) => {
34139
34454
  let url = generatePath(segments);
34140
34455
  if (useHash) {
34141
34456
  url = '#' + url;
@@ -34143,10 +34458,13 @@ const generateUrl = (segments, useHash, queryString) => {
34143
34458
  if (queryString !== undefined) {
34144
34459
  url += '?' + queryString;
34145
34460
  }
34461
+ if (fragment !== undefined) {
34462
+ url += '#' + fragment;
34463
+ }
34146
34464
  return url;
34147
34465
  };
34148
- const writeSegments = (history, root, useHash, segments, direction, state, queryString) => {
34149
- const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString);
34466
+ const writeSegments = (history, root, useHash, segments, direction, state, queryString, fragment) => {
34467
+ const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString, fragment);
34150
34468
  if (direction === ROUTER_INTENT_FORWARD) {
34151
34469
  history.pushState(state, '', url);
34152
34470
  }
@@ -34213,12 +34531,21 @@ const readSegments = (loc, root, useHash) => {
34213
34531
  /**
34214
34532
  * Parses the path to:
34215
34533
  * - segments an array of '/' separated parts,
34216
- * - queryString (undefined when no query string).
34534
+ * - queryString (undefined when no query string),
34535
+ * - fragment (undefined when no `#`).
34217
34536
  */
34218
34537
  const parsePath = (path) => {
34219
34538
  let segments = [''];
34220
34539
  let queryString;
34540
+ let fragment;
34221
34541
  if (path != null) {
34542
+ // The fragment ("#") starts a section that runs to the end of the URL.
34543
+ // Anything inside it (including "?") is part of the fragment per RFC 3986.
34544
+ const fragStart = path.indexOf('#');
34545
+ if (fragStart > -1) {
34546
+ fragment = path.substring(fragStart + 1);
34547
+ path = path.substring(0, fragStart);
34548
+ }
34222
34549
  const qsStart = path.indexOf('?');
34223
34550
  if (qsStart > -1) {
34224
34551
  queryString = path.substring(qsStart + 1);
@@ -34232,7 +34559,7 @@ const parsePath = (path) => {
34232
34559
  segments = [''];
34233
34560
  }
34234
34561
  }
34235
- return { segments, queryString };
34562
+ return { segments, queryString, fragment };
34236
34563
  };
34237
34564
 
34238
34565
  const printRoutes = (routes) => {
@@ -34317,6 +34644,118 @@ const readNavState = async (root) => {
34317
34644
  }
34318
34645
  return { ids, outlet };
34319
34646
  };
34647
+ /** Max animation frames `scrollToFragment` polls while waiting for the target to mount. */
34648
+ const FRAGMENT_POLL_FRAMES = 30;
34649
+ /** Duration (ms) of the smooth-scroll animation that lands on the fragment target. */
34650
+ const FRAGMENT_SCROLL_DURATION = 300;
34651
+ const nextFrame = () => new Promise((resolve) => raf(() => resolve()));
34652
+ /**
34653
+ * Returns true when `el` lives inside an active `.ion-page`. `ion-page-hidden`
34654
+ * marks nav back-stack entries; `tab-hidden` marks inactive `ion-tab` elements.
34655
+ * Either class on the page's ancestor chain disqualifies it. When no `.ion-page`
34656
+ * exists in the document at all (non-router pages), the candidate is accepted
34657
+ * so plain anchors still work.
34658
+ */
34659
+ const isInActivePage = (el) => {
34660
+ const page = el.closest('.ion-page');
34661
+ if (page === null) {
34662
+ return document.querySelector('.ion-page') === null;
34663
+ }
34664
+ return page.closest('.ion-page-hidden, .tab-hidden') === null;
34665
+ };
34666
+ /**
34667
+ * Polls across animation frames for an element matching `fragment` that lives
34668
+ * in the active page. Scoping by "last `.ion-page:not(.ion-page-hidden)`" is
34669
+ * unreliable: inactive `ion-tab` siblings carry `.ion-page` (gated by
34670
+ * `.tab-hidden`, not `.ion-page-hidden`) and can be ordered after the leaf.
34671
+ * Instead, locate candidates globally and walk them from last to first,
34672
+ * accepting the deepest one whose `.ion-page` ancestor is not hidden. The
34673
+ * last-to-first order preserves leaf-most preference for nested outlets.
34674
+ */
34675
+ const findFragmentTarget = async (fragment, shouldContinue) => {
34676
+ // CSS.escape is unavailable on very old WebViews; the fallback path uses
34677
+ // `getElementById` and drops the legacy `<a name>` branch.
34678
+ const canEscape = typeof CSS !== 'undefined' && typeof CSS.escape === 'function';
34679
+ const escaped = canEscape ? CSS.escape(fragment) : null;
34680
+ for (let i = 0; i < FRAGMENT_POLL_FRAMES; i++) {
34681
+ if (!shouldContinue())
34682
+ return null;
34683
+ let candidates = [];
34684
+ if (escaped !== null) {
34685
+ try {
34686
+ candidates = [...document.querySelectorAll(`#${escaped}, a[name="${escaped}"]`)];
34687
+ }
34688
+ catch (_a) {
34689
+ candidates = [...document.querySelectorAll(`#${escaped}`)];
34690
+ }
34691
+ }
34692
+ else {
34693
+ const byId = document.getElementById(fragment);
34694
+ if (byId !== null)
34695
+ candidates = [byId];
34696
+ }
34697
+ for (let j = candidates.length - 1; j >= 0; j--) {
34698
+ if (isInActivePage(candidates[j])) {
34699
+ return candidates[j];
34700
+ }
34701
+ }
34702
+ await nextFrame();
34703
+ }
34704
+ return null;
34705
+ };
34706
+ /**
34707
+ * Scrolls to the element whose id matches `fragment`, falling back to a legacy
34708
+ * `<a name="...">` target. When the target lives inside an `ion-content`, the
34709
+ * scroll uses its smooth-animated scroll API; otherwise it falls back to
34710
+ * `Element.scrollIntoView`.
34711
+ *
34712
+ * `shouldContinue` lets callers cancel in-flight scrolls when a newer
34713
+ * navigation supersedes this one. It is checked between async steps.
34714
+ */
34715
+ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
34716
+ if (fragment == null || fragment === '') {
34717
+ return false;
34718
+ }
34719
+ // URL fragments are percent-encoded but element ids are not; decode for
34720
+ // matching per the HTML spec's indicated-element resolution.
34721
+ let decoded;
34722
+ try {
34723
+ decoded = decodeURIComponent(fragment);
34724
+ }
34725
+ catch (_a) {
34726
+ decoded = fragment;
34727
+ }
34728
+ const target = await findFragmentTarget(decoded, shouldContinue);
34729
+ if (!target || !shouldContinue()) {
34730
+ return false;
34731
+ }
34732
+ // Best-effort scroll: swallow exceptions if the page tears down mid-animation.
34733
+ try {
34734
+ const contentHost = findClosestIonContent(target);
34735
+ if (contentHost && isIonContent(contentHost)) {
34736
+ const content = contentHost;
34737
+ const scrollEl = await getScrollElement(content);
34738
+ // Yield one frame so the newly mounted target's layout is stable
34739
+ // before we measure its rect.
34740
+ await nextFrame();
34741
+ if (!shouldContinue())
34742
+ return false;
34743
+ const targetRect = target.getBoundingClientRect();
34744
+ const scrollRect = scrollEl.getBoundingClientRect();
34745
+ const top = targetRect.top - scrollRect.top + scrollEl.scrollTop;
34746
+ // Preserve scrollLeft so RTL and horizontally-scrolling pages aren't reset.
34747
+ await content.scrollToPoint(scrollEl.scrollLeft, top, FRAGMENT_SCROLL_DURATION);
34748
+ }
34749
+ else {
34750
+ target.scrollIntoView({ behavior: 'smooth' });
34751
+ }
34752
+ return true;
34753
+ }
34754
+ catch (e) {
34755
+ printIonError('[ion-router] - Exception in scrollToFragment:', e);
34756
+ return false;
34757
+ }
34758
+ };
34320
34759
  const waitUntilNavNode = () => {
34321
34760
  if (searchNavNode(document.body)) {
34322
34761
  return Promise.resolve();
@@ -34658,6 +35097,7 @@ class Router {
34658
35097
  this.busy = false;
34659
35098
  this.state = 0;
34660
35099
  this.lastState = 0;
35100
+ this.fragmentScrollToken = 0;
34661
35101
  /**
34662
35102
  * The root path to use when matching URLs. By default, this is set to "/", but you can specify
34663
35103
  * an alternate prefix for all URL paths.
@@ -34686,12 +35126,17 @@ class Router {
34686
35126
  if (typeof canProceed === 'object') {
34687
35127
  const { redirect } = canProceed;
34688
35128
  const path = parsePath(redirect);
34689
- this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString);
34690
- await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35129
+ this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString, path.fragment);
35130
+ const result = await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35131
+ if (result) {
35132
+ this.maybeScrollToFragment();
35133
+ }
34691
35134
  }
35135
+ return;
34692
35136
  }
34693
- else {
34694
- await this.onRoutesChanged();
35137
+ const result = await this.onRoutesChanged();
35138
+ if (result) {
35139
+ this.maybeScrollToFragment();
34695
35140
  }
34696
35141
  }
34697
35142
  componentDidLoad() {
@@ -34710,7 +35155,11 @@ class Router {
34710
35155
  return false;
34711
35156
  }
34712
35157
  }
34713
- return this.writeNavStateRoot(segments, direction);
35158
+ const result = await this.writeNavStateRoot(segments, direction);
35159
+ if (result) {
35160
+ this.maybeScrollToFragment();
35161
+ }
35162
+ return result;
34714
35163
  }
34715
35164
  onBackButton(ev) {
34716
35165
  ev.detail.register(0, (processNextHandler) => {
@@ -34744,7 +35193,7 @@ class Router {
34744
35193
  const currentPath = (_a = this.previousPath) !== null && _a !== void 0 ? _a : '/';
34745
35194
  // Convert currentPath to an URL by pre-pending a protocol and a host to resolve the relative path.
34746
35195
  const url = new URL(path, `https://host/${currentPath}`);
34747
- path = url.pathname + url.search;
35196
+ path = url.pathname + url.search + url.hash;
34748
35197
  }
34749
35198
  let parsedPath = parsePath(path);
34750
35199
  const canProceed = await this.runGuards(parsedPath.segments);
@@ -34756,8 +35205,12 @@ class Router {
34756
35205
  return false;
34757
35206
  }
34758
35207
  }
34759
- this.setSegments(parsedPath.segments, direction, parsedPath.queryString);
34760
- return this.writeNavStateRoot(parsedPath.segments, direction, animation);
35208
+ this.setSegments(parsedPath.segments, direction, parsedPath.queryString, parsedPath.fragment);
35209
+ const result = await this.writeNavStateRoot(parsedPath.segments, direction, animation);
35210
+ if (result) {
35211
+ this.maybeScrollToFragment();
35212
+ }
35213
+ return result;
34761
35214
  }
34762
35215
  /** Go back to previous page in the window.history. */
34763
35216
  back() {
@@ -34787,7 +35240,12 @@ class Router {
34787
35240
  printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
34788
35241
  return false;
34789
35242
  }
34790
- this.setSegments(segments, direction);
35243
+ // navChanged is an outlet-driven URL sync. Only keep the fragment when
35244
+ // the path is unchanged; on a real navigation it refers to an anchor on
35245
+ // the page being left and would be stale.
35246
+ const newPath = generatePath(segments);
35247
+ const fragment = newPath === this.previousPath ? this.getFragment() : undefined;
35248
+ this.setSegments(segments, direction, undefined, fragment);
34791
35249
  await this.safeWriteNavState(outlet, chain, ROUTER_INTENT_NONE, segments, null, ids.length);
34792
35250
  return true;
34793
35251
  }
@@ -34830,8 +35288,8 @@ class Router {
34830
35288
  const redirect = findRouteRedirect(segments, redirects);
34831
35289
  let redirectFrom = null;
34832
35290
  if (redirect) {
34833
- const { segments: toSegments, queryString } = redirect.to;
34834
- this.setSegments(toSegments, direction, queryString);
35291
+ const { segments: toSegments, queryString, fragment } = redirect.to;
35292
+ this.setSegments(toSegments, direction, queryString, fragment);
34835
35293
  redirectFrom = redirect.from;
34836
35294
  segments = toSegments;
34837
35295
  }
@@ -34911,13 +35369,35 @@ class Router {
34911
35369
  }
34912
35370
  return changed;
34913
35371
  }
34914
- setSegments(segments, direction, queryString) {
35372
+ setSegments(segments, direction, queryString, fragment) {
34915
35373
  this.state++;
34916
- writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString);
35374
+ // Every URL write invalidates any in-flight fragment scroll: a newer nav
35375
+ // (with or without a fragment, successful or not) should always supersede.
35376
+ this.fragmentScrollToken++;
35377
+ writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString, fragment);
34917
35378
  }
34918
35379
  getSegments() {
34919
35380
  return readSegments(window.location, this.root, this.useHash);
34920
35381
  }
35382
+ getFragment() {
35383
+ // In hash mode the URL fragment trails a second `#` (e.g. `#/path#anchor`);
35384
+ // parse the routing portion to extract it.
35385
+ const raw = this.useHash ? parsePath(window.location.hash.slice(1)).fragment : window.location.hash.slice(1);
35386
+ return raw ? raw : undefined;
35387
+ }
35388
+ /**
35389
+ * Fires a best-effort scroll to the current URL fragment. The scroll bails
35390
+ * if a newer `setSegments` advances `fragmentScrollToken` mid-flight.
35391
+ */
35392
+ maybeScrollToFragment() {
35393
+ const fragment = this.getFragment();
35394
+ if (!fragment)
35395
+ return;
35396
+ const token = this.fragmentScrollToken;
35397
+ // Fire-and-forget; the returned promise resolves only after the scroll
35398
+ // animation completes, which the caller does not need to await.
35399
+ scrollToFragment(fragment, () => token === this.fragmentScrollToken).catch(() => { });
35400
+ }
34921
35401
  routeChangeEvent(toSegments, redirectFromSegments) {
34922
35402
  const from = this.previousPath;
34923
35403
  const to = generatePath(toSegments);
@@ -39367,7 +39847,7 @@ const createSwipeToDismissGesture = (el, toastPosition, onDismiss) => {
39367
39847
  * consider when the threshold is a negative in the event the
39368
39848
  * user drags up (since the deltaY will also be negative).
39369
39849
  */
39370
- shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -0.5 / 2;
39850
+ shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -DISMISS_THRESHOLD / 2;
39371
39851
  /**
39372
39852
  * Since we are replacing the keyframes
39373
39853
  * below the animation always starts from
@@ -40272,10 +40752,10 @@ class Toggle {
40272
40752
  }
40273
40753
  const shouldToggle = (rtl, checked, deltaX, margin) => {
40274
40754
  if (checked) {
40275
- return (!rtl && margin > deltaX) || (rtl && 10 < deltaX);
40755
+ return (!rtl && margin > deltaX) || (rtl && -margin < deltaX);
40276
40756
  }
40277
40757
  else {
40278
- return (!rtl && 10 < deltaX) || (rtl && margin > deltaX);
40758
+ return (!rtl && -margin < deltaX) || (rtl && margin > deltaX);
40279
40759
  }
40280
40760
  };
40281
40761
  let toggleIds = 0;
@@ -41424,7 +41904,7 @@ var NAMESPACE = (
41424
41904
  );
41425
41905
 
41426
41906
  /*
41427
- Stencil Hydrate Runner v4.43.0 | MIT Licensed | https://stenciljs.com
41907
+ Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
41428
41908
  */
41429
41909
  var __create = Object.create;
41430
41910
  var __defProp = Object.defineProperty;
@@ -42755,11 +43235,11 @@ var fromCodePoint = (
42755
43235
  }
42756
43236
  );
42757
43237
  function replaceCodePoint(codePoint) {
42758
- var _a2;
43238
+ var _a3;
42759
43239
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
42760
43240
  return 65533;
42761
43241
  }
42762
- return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint;
43242
+ return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
42763
43243
  }
42764
43244
 
42765
43245
  // node_modules/entities/lib/esm/decode.js
@@ -42956,9 +43436,9 @@ var EntityDecoder = class {
42956
43436
  * @returns The number of characters that were consumed.
42957
43437
  */
42958
43438
  emitNumericEntity(lastCp, expectedLength) {
42959
- var _a2;
43439
+ var _a3;
42960
43440
  if (this.consumed <= expectedLength) {
42961
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43441
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
42962
43442
  return 0;
42963
43443
  }
42964
43444
  if (lastCp === CharCodes.SEMI) {
@@ -43018,11 +43498,11 @@ var EntityDecoder = class {
43018
43498
  * @returns The number of characters consumed.
43019
43499
  */
43020
43500
  emitNotTerminatedNamedEntity() {
43021
- var _a2;
43501
+ var _a3;
43022
43502
  const { result, decodeTree } = this;
43023
43503
  const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
43024
43504
  this.emitNamedEntityData(result, valueLength, this.consumed);
43025
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
43505
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
43026
43506
  return this.consumed;
43027
43507
  }
43028
43508
  /**
@@ -43050,7 +43530,7 @@ var EntityDecoder = class {
43050
43530
  * @returns The number of characters consumed.
43051
43531
  */
43052
43532
  end() {
43053
- var _a2;
43533
+ var _a3;
43054
43534
  switch (this.state) {
43055
43535
  case EntityDecoderState.NamedEntity: {
43056
43536
  return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
@@ -43063,7 +43543,7 @@ var EntityDecoder = class {
43063
43543
  return this.emitNumericEntity(0, 3);
43064
43544
  }
43065
43545
  case EntityDecoderState.NumericStart: {
43066
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43546
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
43067
43547
  return 0;
43068
43548
  }
43069
43549
  case EntityDecoderState.EntityStart: {
@@ -43544,8 +44024,8 @@ var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
43544
44024
  [TAG_NAMES.XMP, TAG_ID.XMP]
43545
44025
  ]);
43546
44026
  function getTagID(tagName) {
43547
- var _a2;
43548
- return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN;
44027
+ var _a3;
44028
+ return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== void 0 ? _a3 : TAG_ID.UNKNOWN;
43549
44029
  }
43550
44030
  var $ = TAG_ID;
43551
44031
  var SPECIAL_ELEMENTS = {
@@ -43812,8 +44292,8 @@ var Tokenizer = class {
43812
44292
  }
43813
44293
  //Errors
43814
44294
  _err(code, cpOffset = 0) {
43815
- var _a2, _b;
43816
- (_b = (_a2 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a2, this.preprocessor.getError(code, cpOffset));
44295
+ var _a3, _b;
44296
+ (_b = (_a3 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a3, this.preprocessor.getError(code, cpOffset));
43817
44297
  }
43818
44298
  // NOTE: `offset` may never run across line boundaries.
43819
44299
  getCurrentLocation(offset) {
@@ -43955,13 +44435,13 @@ var Tokenizer = class {
43955
44435
  this.currentLocation = this.getCurrentLocation(0);
43956
44436
  }
43957
44437
  _leaveAttrName() {
43958
- var _a2;
44438
+ var _a3;
43959
44439
  var _b;
43960
44440
  const token = this.currentToken;
43961
44441
  if (getTokenAttr(token, this.currentAttr.name) === null) {
43962
44442
  token.attrs.push(this.currentAttr);
43963
44443
  if (token.location && this.currentLocation) {
43964
- const attrLocations = (_a2 = (_b = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b.attrs = /* @__PURE__ */ Object.create(null);
44444
+ const attrLocations = (_a3 = (_b = token.location).attrs) !== null && _a3 !== void 0 ? _a3 : _b.attrs = /* @__PURE__ */ Object.create(null);
43965
44445
  attrLocations[this.currentAttr.name] = this.currentLocation;
43966
44446
  this._leaveAttrValue();
43967
44447
  }
@@ -47309,10 +47789,10 @@ var Parser = class {
47309
47789
  //Errors
47310
47790
  /** @internal */
47311
47791
  _err(token, code, beforeToken) {
47312
- var _a2;
47792
+ var _a3;
47313
47793
  if (!this.onParseError)
47314
47794
  return;
47315
- const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC;
47795
+ const loc = (_a3 = token.location) !== null && _a3 !== void 0 ? _a3 : BASE_LOC;
47316
47796
  const err2 = {
47317
47797
  code,
47318
47798
  startLine: loc.startLine,
@@ -47327,18 +47807,18 @@ var Parser = class {
47327
47807
  //Stack events
47328
47808
  /** @internal */
47329
47809
  onItemPush(node, tid, isTop) {
47330
- var _a2, _b;
47331
- (_b = (_a2 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a2, node);
47810
+ var _a3, _b;
47811
+ (_b = (_a3 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a3, node);
47332
47812
  if (isTop && this.openElements.stackTop > 0)
47333
47813
  this._setContextModes(node, tid);
47334
47814
  }
47335
47815
  /** @internal */
47336
47816
  onItemPop(node, isTop) {
47337
- var _a2, _b;
47817
+ var _a3, _b;
47338
47818
  if (this.options.sourceCodeLocationInfo) {
47339
47819
  this._setEndLocation(node, this.currentToken);
47340
47820
  }
47341
- (_b = (_a2 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a2, node, this.openElements.current);
47821
+ (_b = (_a3 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a3, node, this.openElements.current);
47342
47822
  if (isTop) {
47343
47823
  let current;
47344
47824
  let currentTagId;
@@ -49412,9 +49892,9 @@ function eofInBody(p, token) {
49412
49892
  }
49413
49893
  }
49414
49894
  function endTagInText(p, token) {
49415
- var _a2;
49895
+ var _a3;
49416
49896
  if (token.tagID === TAG_ID.SCRIPT) {
49417
- (_a2 = p.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p, p.openElements.current);
49897
+ (_a3 = p.scriptHandler) === null || _a3 === void 0 ? void 0 : _a3.call(p, p.openElements.current);
49418
49898
  }
49419
49899
  p.openElements.pop();
49420
49900
  p.insertionMode = p.originalInsertionMode;
@@ -50076,7 +50556,7 @@ function startTagAfterBody(p, token) {
50076
50556
  }
50077
50557
  }
50078
50558
  function endTagAfterBody(p, token) {
50079
- var _a2;
50559
+ var _a3;
50080
50560
  if (token.tagID === TAG_ID.HTML) {
50081
50561
  if (!p.fragmentContext) {
50082
50562
  p.insertionMode = InsertionMode.AFTER_AFTER_BODY;
@@ -50084,7 +50564,7 @@ function endTagAfterBody(p, token) {
50084
50564
  if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === TAG_ID.HTML) {
50085
50565
  p._setEndLocation(p.openElements.items[0], token);
50086
50566
  const bodyElement = p.openElements.items[1];
50087
- if (bodyElement && !((_a2 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) {
50567
+ if (bodyElement && !((_a3 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a3 === void 0 ? void 0 : _a3.endTag)) {
50088
50568
  p._setEndLocation(bodyElement, token);
50089
50569
  }
50090
50570
  }
@@ -51948,7 +52428,7 @@ function serializeNodeToHtml(elm, serializationOptions = {}) {
51948
52428
  }
51949
52429
  var shadowRootTag = "mock:shadow-root";
51950
52430
  function* streamToHtml(node, opts, output) {
51951
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
52431
+ var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
51952
52432
  const isShadowRoot = node.nodeType === 11 /* DOCUMENT_FRAGMENT_NODE */;
51953
52433
  if (node.nodeType === 1 /* ELEMENT_NODE */ || isShadowRoot) {
51954
52434
  const tagName = isShadowRoot ? shadowRootTag : getTagName(node);
@@ -51957,7 +52437,7 @@ function* streamToHtml(node, opts, output) {
51957
52437
  }
51958
52438
  const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
51959
52439
  if (ignoreTag === false) {
51960
- const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a2 = opts.indentSpaces) != null ? _a2 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
52440
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a3 = opts.indentSpaces) != null ? _a3 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
51961
52441
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
51962
52442
  yield "\n";
51963
52443
  output.currentLineWidth = 0;
@@ -52476,9 +52956,7 @@ var MockNode2 = class {
52476
52956
  const firstChild = this.firstChild;
52477
52957
  items.forEach((item) => {
52478
52958
  const isNode = typeof item === "object" && item !== null && "nodeType" in item;
52479
- if (firstChild) {
52480
- this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52481
- }
52959
+ this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52482
52960
  });
52483
52961
  }
52484
52962
  cloneNode(deep) {
@@ -52527,8 +53005,8 @@ var MockNode2 = class {
52527
53005
  return null;
52528
53006
  }
52529
53007
  get nodeValue() {
52530
- var _a2;
52531
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53008
+ var _a3;
53009
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52532
53010
  }
52533
53011
  set nodeValue(value) {
52534
53012
  this._nodeValue = value;
@@ -52588,8 +53066,8 @@ var MockNode2 = class {
52588
53066
  return null;
52589
53067
  }
52590
53068
  get textContent() {
52591
- var _a2;
52592
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53069
+ var _a3;
53070
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52593
53071
  }
52594
53072
  set textContent(value) {
52595
53073
  this._nodeValue = String(value);
@@ -52648,9 +53126,9 @@ var MockElement = class extends MockNode2 {
52648
53126
  addEventListener(this, type, handler);
52649
53127
  }
52650
53128
  attachShadow(_opts) {
52651
- var _a2;
53129
+ var _a3;
52652
53130
  const shadowRoot = this.ownerDocument.createDocumentFragment();
52653
- shadowRoot.delegatesFocus = (_a2 = _opts.delegatesFocus) != null ? _a2 : false;
53131
+ shadowRoot.delegatesFocus = (_a3 = _opts.delegatesFocus) != null ? _a3 : false;
52654
53132
  this.shadowRoot = shadowRoot;
52655
53133
  return shadowRoot;
52656
53134
  }
@@ -52721,6 +53199,9 @@ var MockElement = class extends MockNode2 {
52721
53199
  get part() {
52722
53200
  return new MockTokenList(this, "part");
52723
53201
  }
53202
+ set part(value) {
53203
+ this.setAttributeNS(null, "part", String(value));
53204
+ }
52724
53205
  click() {
52725
53206
  dispatchEvent(this, new MockEvent("click", { bubbles: true, cancelable: true, composed: true }));
52726
53207
  }
@@ -52823,8 +53304,8 @@ var MockElement = class extends MockNode2 {
52823
53304
  });
52824
53305
  }
52825
53306
  set innerHTML(html) {
52826
- var _a2;
52827
- if (NON_ESCAPABLE_CONTENT.has((_a2 = this.nodeName) != null ? _a2 : "") === true) {
53307
+ var _a3;
53308
+ if (NON_ESCAPABLE_CONTENT.has((_a3 = this.nodeName) != null ? _a3 : "") === true) {
52828
53309
  setTextContent(this, html);
52829
53310
  } else {
52830
53311
  for (let i = this.childNodes.length - 1; i >= 0; i--) {
@@ -53067,8 +53548,8 @@ var MockElement = class extends MockNode2 {
53067
53548
  this.setAttributeNS(null, "tabindex", value);
53068
53549
  }
53069
53550
  get tagName() {
53070
- var _a2;
53071
- return (_a2 = this.nodeName) != null ? _a2 : "";
53551
+ var _a3;
53552
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53072
53553
  }
53073
53554
  set tagName(value) {
53074
53555
  this.nodeName = value;
@@ -53290,11 +53771,11 @@ function getElementsByClassName(elm, classNames, foundElms) {
53290
53771
  }
53291
53772
  }
53292
53773
  function getElementsByTagName(elm, tagName, foundElms) {
53293
- var _a2;
53774
+ var _a3;
53294
53775
  const children = elm.children;
53295
53776
  for (let i = 0, ii = children.length; i < ii; i++) {
53296
53777
  const childElm = children[i];
53297
- if (tagName === "*" || ((_a2 = childElm.nodeName) != null ? _a2 : "").toLowerCase() === tagName) {
53778
+ if (tagName === "*" || ((_a3 = childElm.nodeName) != null ? _a3 : "").toLowerCase() === tagName) {
53298
53779
  foundElms.push(childElm);
53299
53780
  }
53300
53781
  getElementsByTagName(childElm, tagName, foundElms);
@@ -53331,8 +53812,8 @@ var MockHTMLElement = class extends MockElement {
53331
53812
  super(ownerDocument, typeof nodeName === "string" ? nodeName.toUpperCase() : null);
53332
53813
  }
53333
53814
  get tagName() {
53334
- var _a2;
53335
- return (_a2 = this.nodeName) != null ? _a2 : "";
53815
+ var _a3;
53816
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53336
53817
  }
53337
53818
  set tagName(value) {
53338
53819
  this.nodeName = value;
@@ -53790,10 +54271,10 @@ var MockLabelElement = class extends MockHTMLElement {
53790
54271
  this.setAttributeNS(null, "for", value);
53791
54272
  }
53792
54273
  get control() {
53793
- var _a2, _b;
54274
+ var _a3, _b;
53794
54275
  const forAttr = this.htmlFor;
53795
54276
  if (forAttr) {
53796
- return (_b = (_a2 = this.ownerDocument) == null ? void 0 : _a2.getElementById(forAttr)) != null ? _b : null;
54277
+ return (_b = (_a3 = this.ownerDocument) == null ? void 0 : _a3.getElementById(forAttr)) != null ? _b : null;
53797
54278
  }
53798
54279
  const labelableSelector = 'button, input:not([type="hidden"]), meter, output, progress, select, textarea';
53799
54280
  return this.querySelector(labelableSelector);
@@ -56301,18 +56782,34 @@ var RemoteValue = class _RemoteValue {
56301
56782
  };
56302
56783
 
56303
56784
  // src/utils/serialize.ts
56785
+ function encodeBase64Unicode(str) {
56786
+ const utf8Bytes = new TextEncoder().encode(str);
56787
+ let binary = "";
56788
+ for (let i = 0; i < utf8Bytes.length; i++) {
56789
+ binary += String.fromCharCode(utf8Bytes[i]);
56790
+ }
56791
+ return btoa(binary);
56792
+ }
56793
+ function decodeBase64Unicode(base64) {
56794
+ const binary = atob(base64);
56795
+ const bytes = new Uint8Array(binary.length);
56796
+ for (let i = 0; i < binary.length; i++) {
56797
+ bytes[i] = binary.charCodeAt(i);
56798
+ }
56799
+ return new TextDecoder().decode(bytes);
56800
+ }
56304
56801
  function serializeProperty(value) {
56305
56802
  if (["string", "boolean", "undefined"].includes(typeof value) || typeof value === "number" && value !== Infinity && value !== -Infinity && !isNaN(value)) {
56306
56803
  return value;
56307
56804
  }
56308
56805
  const arg = LocalValue.getArgument(value);
56309
- return SERIALIZED_PREFIX + btoa(JSON.stringify(arg));
56806
+ return SERIALIZED_PREFIX + encodeBase64Unicode(JSON.stringify(arg));
56310
56807
  }
56311
56808
  function deserializeProperty(value) {
56312
56809
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
56313
56810
  return value;
56314
56811
  }
56315
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
56812
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
56316
56813
  }
56317
56814
  var CAPTURE_EVENT_SUFFIX = "Capture";
56318
56815
  var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
@@ -56506,8 +57003,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
56506
57003
  };
56507
57004
 
56508
57005
  // node_modules/minimatch/dist/esm/ast.js
57006
+ var _a2;
56509
57007
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
56510
57008
  var isExtglobType = (c) => types.has(c);
57009
+ var isExtglobAST = (c) => isExtglobType(c.type);
57010
+ var adoptionMap = /* @__PURE__ */ new Map([
57011
+ ["!", ["@"]],
57012
+ ["?", ["?", "@"]],
57013
+ ["@", ["@"]],
57014
+ ["*", ["*", "+", "?", "@"]],
57015
+ ["+", ["+", "@"]]
57016
+ ]);
57017
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
57018
+ ["!", ["?"]],
57019
+ ["@", ["?"]],
57020
+ ["+", ["?", "*"]]
57021
+ ]);
57022
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
57023
+ ["!", ["?", "@"]],
57024
+ ["?", ["?", "@"]],
57025
+ ["@", ["?", "@"]],
57026
+ ["*", ["*", "+", "?", "@"]],
57027
+ ["+", ["+", "@", "?", "*"]]
57028
+ ]);
57029
+ var usurpMap = /* @__PURE__ */ new Map([
57030
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
57031
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
57032
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
57033
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
57034
+ ]);
56511
57035
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
56512
57036
  var startNoDot = "(?!\\.)";
56513
57037
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -56517,8 +57041,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
56517
57041
  var qmark = "[^/]";
56518
57042
  var star = qmark + "*?";
56519
57043
  var starNoEmpty = qmark + "+?";
56520
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
56521
- var _AST = class _AST {
57044
+ 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;
57045
+ var AST = class {
56522
57046
  constructor(type, parent, options = {}) {
56523
57047
  __privateAdd(this, _AST_instances);
56524
57048
  __publicField(this, "type");
@@ -56571,44 +57095,44 @@ var _AST = class _AST {
56571
57095
  for (const p of parts) {
56572
57096
  if (p === "")
56573
57097
  continue;
56574
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
57098
+ if (typeof p !== "string" && !(p instanceof _a2 && __privateGet(p, _parent) === this)) {
56575
57099
  throw new Error("invalid part: " + p);
56576
57100
  }
56577
57101
  __privateGet(this, _parts).push(p);
56578
57102
  }
56579
57103
  }
56580
57104
  toJSON() {
56581
- var _a2;
57105
+ var _a3;
56582
57106
  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())];
56583
57107
  if (this.isStart() && !this.type)
56584
57108
  ret.unshift([]);
56585
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
57109
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")) {
56586
57110
  ret.push({});
56587
57111
  }
56588
57112
  return ret;
56589
57113
  }
56590
57114
  isStart() {
56591
- var _a2;
57115
+ var _a3;
56592
57116
  if (__privateGet(this, _root) === this)
56593
57117
  return true;
56594
- if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
57118
+ if (!((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.isStart()))
56595
57119
  return false;
56596
57120
  if (__privateGet(this, _parentIndex) === 0)
56597
57121
  return true;
56598
57122
  const p = __privateGet(this, _parent);
56599
57123
  for (let i = 0; i < __privateGet(this, _parentIndex); i++) {
56600
57124
  const pp = __privateGet(p, _parts)[i];
56601
- if (!(pp instanceof _AST && pp.type === "!")) {
57125
+ if (!(pp instanceof _a2 && pp.type === "!")) {
56602
57126
  return false;
56603
57127
  }
56604
57128
  }
56605
57129
  return true;
56606
57130
  }
56607
57131
  isEnd() {
56608
- var _a2, _b, _c;
57132
+ var _a3, _b, _c;
56609
57133
  if (__privateGet(this, _root) === this)
56610
57134
  return true;
56611
- if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
57135
+ if (((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")
56612
57136
  return true;
56613
57137
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
56614
57138
  return false;
@@ -56624,16 +57148,16 @@ var _AST = class _AST {
56624
57148
  this.push(part.clone(this));
56625
57149
  }
56626
57150
  clone(parent) {
56627
- const c = new _AST(this.type, parent);
57151
+ const c = new _a2(this.type, parent);
56628
57152
  for (const p of __privateGet(this, _parts)) {
56629
57153
  c.copyIn(p);
56630
57154
  }
56631
57155
  return c;
56632
57156
  }
56633
57157
  static fromGlob(pattern, options = {}) {
56634
- var _a2;
56635
- const ast = new _AST(null, void 0, options);
56636
- __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options);
57158
+ var _a3;
57159
+ const ast = new _a2(null, void 0, options);
57160
+ __privateMethod(_a3 = _a2, _AST_static, parseAST_fn).call(_a3, pattern, ast, 0, options, 0);
56637
57161
  return ast;
56638
57162
  }
56639
57163
  // returns the regular expression if there's magic, or the unescaped
@@ -56726,15 +57250,17 @@ var _AST = class _AST {
56726
57250
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
56727
57251
  // or start or whatever) and prepend ^ or / at the Regexp construction.
56728
57252
  toRegExpSource(allowDot) {
56729
- var _a2;
57253
+ var _a3;
56730
57254
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
56731
- if (__privateGet(this, _root) === this)
57255
+ if (__privateGet(this, _root) === this) {
57256
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
56732
57257
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
56733
- if (!this.type) {
57258
+ }
57259
+ if (!isExtglobAST(this)) {
56734
57260
  const noEmpty = this.isStart() && this.isEnd();
56735
57261
  const src = __privateGet(this, _parts).map((p) => {
56736
- var _a3;
56737
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _AST, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
57262
+ var _a4;
57263
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a4 = _a2, _AST_static, parseGlob_fn).call(_a4, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
56738
57264
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
56739
57265
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
56740
57266
  return re;
@@ -56757,7 +57283,7 @@ var _AST = class _AST {
56757
57283
  }
56758
57284
  }
56759
57285
  let end = "";
56760
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
57286
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!") {
56761
57287
  end = "(?:$|\\/)";
56762
57288
  }
56763
57289
  const final2 = start2 + src + end;
@@ -56773,9 +57299,10 @@ var _AST = class _AST {
56773
57299
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
56774
57300
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
56775
57301
  const s = this.toString();
56776
- __privateSet(this, _parts, [s]);
56777
- this.type = null;
56778
- __privateSet(this, _hasMagic, void 0);
57302
+ const me = this;
57303
+ __privateSet(me, _parts, [s]);
57304
+ me.type = null;
57305
+ __privateSet(me, _hasMagic, void 0);
56779
57306
  return [s, unescape(this.toString()), false, false];
56780
57307
  }
56781
57308
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -56844,8 +57371,9 @@ fillNegs_fn = function() {
56844
57371
  return this;
56845
57372
  };
56846
57373
  _AST_static = new WeakSet();
56847
- parseAST_fn = function(str, ast, pos, opt) {
56848
- var _a2, _b;
57374
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
57375
+ var _a3, _b, _c, _d, _e;
57376
+ const maxDepth = (_a3 = opt.maxExtglobRecursion) != null ? _a3 : 2;
56849
57377
  let escaping = false;
56850
57378
  let inBrace = false;
56851
57379
  let braceStart = -1;
@@ -56877,11 +57405,12 @@ parseAST_fn = function(str, ast, pos, opt) {
56877
57405
  acc2 += c;
56878
57406
  continue;
56879
57407
  }
56880
- if (!opt.noext && isExtglobType(c) && str.charAt(i2) === "(") {
57408
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i2) === "(" && extDepth <= maxDepth;
57409
+ if (doRecurse) {
56881
57410
  ast.push(acc2);
56882
57411
  acc2 = "";
56883
- const ext2 = new _AST(c, ast);
56884
- i2 = __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, str, ext2, i2, opt);
57412
+ const ext2 = new _a2(c, ast);
57413
+ i2 = __privateMethod(_b = _a2, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt, extDepth + 1);
56885
57414
  ast.push(ext2);
56886
57415
  continue;
56887
57416
  }
@@ -56891,7 +57420,7 @@ parseAST_fn = function(str, ast, pos, opt) {
56891
57420
  return i2;
56892
57421
  }
56893
57422
  let i = pos + 1;
56894
- let part = new _AST(null, ast);
57423
+ let part = new _a2(null, ast);
56895
57424
  const parts = [];
56896
57425
  let acc = "";
56897
57426
  while (i < str.length) {
@@ -56918,19 +57447,22 @@ parseAST_fn = function(str, ast, pos, opt) {
56918
57447
  acc += c;
56919
57448
  continue;
56920
57449
  }
56921
- if (isExtglobType(c) && str.charAt(i) === "(") {
57450
+ const doRecurse = isExtglobType(c) && str.charAt(i) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
57451
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
57452
+ if (doRecurse) {
57453
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
56922
57454
  part.push(acc);
56923
57455
  acc = "";
56924
- const ext2 = new _AST(c, part);
57456
+ const ext2 = new _a2(c, part);
56925
57457
  part.push(ext2);
56926
- i = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i, opt);
57458
+ i = __privateMethod(_e = _a2, _AST_static, parseAST_fn).call(_e, str, ext2, i, opt, extDepth + depthAdd);
56927
57459
  continue;
56928
57460
  }
56929
57461
  if (c === "|") {
56930
57462
  part.push(acc);
56931
57463
  acc = "";
56932
57464
  parts.push(part);
56933
- part = new _AST(null, ast);
57465
+ part = new _a2(null, ast);
56934
57466
  continue;
56935
57467
  }
56936
57468
  if (c === ")") {
@@ -56949,6 +57481,100 @@ parseAST_fn = function(str, ast, pos, opt) {
56949
57481
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
56950
57482
  return i;
56951
57483
  };
57484
+ canAdoptWithSpace_fn = function(child) {
57485
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
57486
+ };
57487
+ canAdopt_fn = function(child, map2 = adoptionMap) {
57488
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
57489
+ return false;
57490
+ }
57491
+ const gc = __privateGet(child, _parts)[0];
57492
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57493
+ return false;
57494
+ }
57495
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
57496
+ };
57497
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
57498
+ var _a3;
57499
+ return !!((_a3 = map2.get(this.type)) == null ? void 0 : _a3.includes(c));
57500
+ };
57501
+ adoptWithSpace_fn = function(child, index) {
57502
+ const gc = __privateGet(child, _parts)[0];
57503
+ const blank = new _a2(null, gc, this.options);
57504
+ __privateGet(blank, _parts).push("");
57505
+ gc.push(blank);
57506
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
57507
+ };
57508
+ adopt_fn = function(child, index) {
57509
+ const gc = __privateGet(child, _parts)[0];
57510
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
57511
+ for (const p of __privateGet(gc, _parts)) {
57512
+ if (typeof p === "object")
57513
+ __privateSet(p, _parent, this);
57514
+ }
57515
+ __privateSet(this, _toString, void 0);
57516
+ };
57517
+ canUsurpType_fn = function(c) {
57518
+ const m = usurpMap.get(this.type);
57519
+ return !!(m == null ? void 0 : m.has(c));
57520
+ };
57521
+ canUsurp_fn = function(child) {
57522
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
57523
+ return false;
57524
+ }
57525
+ const gc = __privateGet(child, _parts)[0];
57526
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57527
+ return false;
57528
+ }
57529
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
57530
+ };
57531
+ usurp_fn = function(child) {
57532
+ const m = usurpMap.get(this.type);
57533
+ const gc = __privateGet(child, _parts)[0];
57534
+ const nt = m == null ? void 0 : m.get(gc.type);
57535
+ if (!nt)
57536
+ return false;
57537
+ __privateSet(this, _parts, __privateGet(gc, _parts));
57538
+ for (const p of __privateGet(this, _parts)) {
57539
+ if (typeof p === "object")
57540
+ __privateSet(p, _parent, this);
57541
+ }
57542
+ this.type = nt;
57543
+ __privateSet(this, _toString, void 0);
57544
+ __privateSet(this, _emptyExt, false);
57545
+ };
57546
+ flatten_fn = function() {
57547
+ var _a3, _b;
57548
+ if (!isExtglobAST(this)) {
57549
+ for (const p of __privateGet(this, _parts)) {
57550
+ if (typeof p === "object")
57551
+ __privateMethod(_a3 = p, _AST_instances, flatten_fn).call(_a3);
57552
+ }
57553
+ } else {
57554
+ let iterations = 0;
57555
+ let done = false;
57556
+ do {
57557
+ done = true;
57558
+ for (let i = 0; i < __privateGet(this, _parts).length; i++) {
57559
+ const c = __privateGet(this, _parts)[i];
57560
+ if (typeof c === "object") {
57561
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
57562
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
57563
+ done = false;
57564
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i);
57565
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
57566
+ done = false;
57567
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i);
57568
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
57569
+ done = false;
57570
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
57571
+ }
57572
+ }
57573
+ }
57574
+ } while (!done && ++iterations < 10);
57575
+ }
57576
+ __privateSet(this, _toString, void 0);
57577
+ };
56952
57578
  partsToRegExp_fn = function(dot) {
56953
57579
  return __privateGet(this, _parts).map((p) => {
56954
57580
  if (typeof p === "string") {
@@ -56963,11 +57589,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
56963
57589
  let escaping = false;
56964
57590
  let re = "";
56965
57591
  let uflag = false;
57592
+ let inStar = false;
56966
57593
  for (let i = 0; i < glob.length; i++) {
56967
57594
  const c = glob.charAt(i);
56968
57595
  if (escaping) {
56969
57596
  escaping = false;
56970
57597
  re += (reSpecials.has(c) ? "\\" : "") + c;
57598
+ inStar = false;
56971
57599
  continue;
56972
57600
  }
56973
57601
  if (c === "\\") {
@@ -56985,16 +57613,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
56985
57613
  uflag = uflag || needUflag;
56986
57614
  i += consumed - 1;
56987
57615
  hasMagic = hasMagic || magic;
57616
+ inStar = false;
56988
57617
  continue;
56989
57618
  }
56990
57619
  }
56991
57620
  if (c === "*") {
56992
- if (noEmpty && glob === "*")
56993
- re += starNoEmpty;
56994
- else
56995
- re += star;
57621
+ if (inStar)
57622
+ continue;
57623
+ inStar = true;
57624
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
56996
57625
  hasMagic = true;
56997
57626
  continue;
57627
+ } else {
57628
+ inStar = false;
56998
57629
  }
56999
57630
  if (c === "?") {
57000
57631
  re += qmark;
@@ -57005,8 +57636,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57005
57636
  }
57006
57637
  return [re, unescape(glob), !!hasMagic, uflag];
57007
57638
  };
57008
- __privateAdd(_AST, _AST_static);
57009
- var AST = _AST;
57639
+ __privateAdd(AST, _AST_static);
57640
+ _a2 = AST;
57010
57641
 
57011
57642
  // node_modules/minimatch/dist/esm/escape.js
57012
57643
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -57145,28 +57776,33 @@ var match = (list, pattern, options = {}) => {
57145
57776
  minimatch.match = match;
57146
57777
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
57147
57778
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
57779
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
57148
57780
  var Minimatch = class {
57149
- options;
57150
- set;
57151
- pattern;
57152
- windowsPathsNoEscape;
57153
- nonegate;
57154
- negate;
57155
- comment;
57156
- empty;
57157
- preserveMultipleSlashes;
57158
- partial;
57159
- globSet;
57160
- globParts;
57161
- nocase;
57162
- isWindows;
57163
- platform;
57164
- windowsNoMagicRoot;
57165
- regexp;
57166
57781
  constructor(pattern, options = {}) {
57782
+ __privateAdd(this, _Minimatch_instances);
57783
+ __publicField(this, "options");
57784
+ __publicField(this, "set");
57785
+ __publicField(this, "pattern");
57786
+ __publicField(this, "windowsPathsNoEscape");
57787
+ __publicField(this, "nonegate");
57788
+ __publicField(this, "negate");
57789
+ __publicField(this, "comment");
57790
+ __publicField(this, "empty");
57791
+ __publicField(this, "preserveMultipleSlashes");
57792
+ __publicField(this, "partial");
57793
+ __publicField(this, "globSet");
57794
+ __publicField(this, "globParts");
57795
+ __publicField(this, "nocase");
57796
+ __publicField(this, "isWindows");
57797
+ __publicField(this, "platform");
57798
+ __publicField(this, "windowsNoMagicRoot");
57799
+ __publicField(this, "maxGlobstarRecursion");
57800
+ __publicField(this, "regexp");
57801
+ var _a3;
57167
57802
  assertValidPattern(pattern);
57168
57803
  options = options || {};
57169
57804
  this.options = options;
57805
+ this.maxGlobstarRecursion = (_a3 = options.maxGlobstarRecursion) != null ? _a3 : 200;
57170
57806
  this.pattern = pattern;
57171
57807
  this.platform = options.platform || defaultPlatform;
57172
57808
  this.isWindows = this.platform === "win32";
@@ -57434,10 +58070,11 @@ var Minimatch = class {
57434
58070
  for (let i = 0; i < globParts.length - 1; i++) {
57435
58071
  for (let j = i + 1; j < globParts.length; j++) {
57436
58072
  const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
57437
- if (!matched)
57438
- continue;
57439
- globParts[i] = matched;
57440
- globParts[j] = [];
58073
+ if (matched) {
58074
+ globParts[i] = [];
58075
+ globParts[j] = matched;
58076
+ break;
58077
+ }
57441
58078
  }
57442
58079
  }
57443
58080
  return globParts.filter((gs) => gs.length);
@@ -57498,7 +58135,8 @@ var Minimatch = class {
57498
58135
  // out of pattern, then that's fine, as long as all
57499
58136
  // the parts match.
57500
58137
  matchOne(file, pattern, partial = false) {
57501
- const options = this.options;
58138
+ let fileStartIndex = 0;
58139
+ let patternStartIndex = 0;
57502
58140
  if (this.isWindows) {
57503
58141
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
57504
58142
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -57507,14 +58145,14 @@ var Minimatch = class {
57507
58145
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
57508
58146
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
57509
58147
  if (typeof fdi === "number" && typeof pdi === "number") {
57510
- const [fd, pd] = [file[fdi], pattern[pdi]];
58148
+ const [fd, pd] = [
58149
+ file[fdi],
58150
+ pattern[pdi]
58151
+ ];
57511
58152
  if (fd.toLowerCase() === pd.toLowerCase()) {
57512
58153
  pattern[pdi] = fd;
57513
- if (pdi > fdi) {
57514
- pattern = pattern.slice(pdi);
57515
- } else if (fdi > pdi) {
57516
- file = file.slice(fdi);
57517
- }
58154
+ patternStartIndex = pdi;
58155
+ fileStartIndex = fdi;
57518
58156
  }
57519
58157
  }
57520
58158
  }
@@ -57522,71 +58160,10 @@ var Minimatch = class {
57522
58160
  if (optimizationLevel >= 2) {
57523
58161
  file = this.levelTwoFileOptimize(file);
57524
58162
  }
57525
- this.debug("matchOne", this, { file, pattern });
57526
- this.debug("matchOne", file.length, pattern.length);
57527
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
57528
- this.debug("matchOne loop");
57529
- var p = pattern[pi];
57530
- var f = file[fi];
57531
- this.debug(pattern, p, f);
57532
- if (p === false) {
57533
- return false;
57534
- }
57535
- if (p === GLOBSTAR) {
57536
- this.debug("GLOBSTAR", [pattern, p, f]);
57537
- var fr = fi;
57538
- var pr = pi + 1;
57539
- if (pr === pl) {
57540
- this.debug("** at the end");
57541
- for (; fi < fl; fi++) {
57542
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
57543
- return false;
57544
- }
57545
- return true;
57546
- }
57547
- while (fr < fl) {
57548
- var swallowee = file[fr];
57549
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
57550
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
57551
- this.debug("globstar found match!", fr, fl, swallowee);
57552
- return true;
57553
- } else {
57554
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
57555
- this.debug("dot detected!", file, fr, pattern, pr);
57556
- break;
57557
- }
57558
- this.debug("globstar swallow a segment, and continue");
57559
- fr++;
57560
- }
57561
- }
57562
- if (partial) {
57563
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
57564
- if (fr === fl) {
57565
- return true;
57566
- }
57567
- }
57568
- return false;
57569
- }
57570
- let hit;
57571
- if (typeof p === "string") {
57572
- hit = f === p;
57573
- this.debug("string match", p, f, hit);
57574
- } else {
57575
- hit = p.test(f);
57576
- this.debug("pattern match", p, f, hit);
57577
- }
57578
- if (!hit)
57579
- return false;
57580
- }
57581
- if (fi === fl && pi === pl) {
57582
- return true;
57583
- } else if (fi === fl) {
57584
- return partial;
57585
- } else if (pi === pl) {
57586
- return fi === fl - 1 && file[fi] === "";
57587
- } else {
57588
- throw new Error("wtf?");
58163
+ if (pattern.includes(GLOBSTAR)) {
58164
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57589
58165
  }
58166
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57590
58167
  }
57591
58168
  braceExpand() {
57592
58169
  return braceExpand(this.pattern, this.options);
@@ -57725,6 +58302,135 @@ var Minimatch = class {
57725
58302
  return minimatch.defaults(def).Minimatch;
57726
58303
  }
57727
58304
  };
58305
+ _Minimatch_instances = new WeakSet();
58306
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58307
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
58308
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
58309
+ const [head, body, tail] = partial ? [
58310
+ pattern.slice(patternIndex, firstgs),
58311
+ pattern.slice(firstgs + 1),
58312
+ []
58313
+ ] : [
58314
+ pattern.slice(patternIndex, firstgs),
58315
+ pattern.slice(firstgs + 1, lastgs),
58316
+ pattern.slice(lastgs + 1)
58317
+ ];
58318
+ if (head.length) {
58319
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
58320
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
58321
+ return false;
58322
+ fileIndex += head.length;
58323
+ }
58324
+ let fileTailMatch = 0;
58325
+ if (tail.length) {
58326
+ if (tail.length + fileIndex > file.length)
58327
+ return false;
58328
+ let tailStart = file.length - tail.length;
58329
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
58330
+ fileTailMatch = tail.length;
58331
+ } else {
58332
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
58333
+ return false;
58334
+ }
58335
+ tailStart--;
58336
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
58337
+ return false;
58338
+ fileTailMatch = tail.length + 1;
58339
+ }
58340
+ }
58341
+ if (!body.length) {
58342
+ let sawSome = !!fileTailMatch;
58343
+ for (let i2 = fileIndex; i2 < file.length - fileTailMatch; i2++) {
58344
+ const f = String(file[i2]);
58345
+ sawSome = true;
58346
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58347
+ return false;
58348
+ }
58349
+ }
58350
+ return partial || sawSome;
58351
+ }
58352
+ const bodySegments = [[[], 0]];
58353
+ let currentBody = bodySegments[0];
58354
+ let nonGsParts = 0;
58355
+ const nonGsPartsSums = [0];
58356
+ for (const b of body) {
58357
+ if (b === GLOBSTAR) {
58358
+ nonGsPartsSums.push(nonGsParts);
58359
+ currentBody = [[], 0];
58360
+ bodySegments.push(currentBody);
58361
+ } else {
58362
+ currentBody[0].push(b);
58363
+ nonGsParts++;
58364
+ }
58365
+ }
58366
+ let i = bodySegments.length - 1;
58367
+ const fileLength = file.length - fileTailMatch;
58368
+ for (const b of bodySegments) {
58369
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
58370
+ }
58371
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
58372
+ };
58373
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
58374
+ const bs = bodySegments[bodyIndex];
58375
+ if (!bs) {
58376
+ for (let i = fileIndex; i < file.length; i++) {
58377
+ sawTail = true;
58378
+ const f = file[i];
58379
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58380
+ return false;
58381
+ }
58382
+ }
58383
+ return sawTail;
58384
+ }
58385
+ const [body, after] = bs;
58386
+ while (fileIndex <= after) {
58387
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
58388
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
58389
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
58390
+ if (sub !== false)
58391
+ return sub;
58392
+ }
58393
+ const f = file[fileIndex];
58394
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58395
+ return false;
58396
+ }
58397
+ fileIndex++;
58398
+ }
58399
+ return partial || null;
58400
+ };
58401
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58402
+ let fi;
58403
+ let pi;
58404
+ let pl;
58405
+ let fl;
58406
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
58407
+ this.debug("matchOne loop");
58408
+ let p = pattern[pi];
58409
+ let f = file[fi];
58410
+ this.debug(pattern, p, f);
58411
+ if (p === false || p === GLOBSTAR)
58412
+ return false;
58413
+ let hit;
58414
+ if (typeof p === "string") {
58415
+ hit = f === p;
58416
+ this.debug("string match", p, f, hit);
58417
+ } else {
58418
+ hit = p.test(f);
58419
+ this.debug("pattern match", p, f, hit);
58420
+ }
58421
+ if (!hit)
58422
+ return false;
58423
+ }
58424
+ if (fi === fl && pi === pl) {
58425
+ return true;
58426
+ } else if (fi === fl) {
58427
+ return partial;
58428
+ } else if (pi === pl) {
58429
+ return fi === fl - 1 && file[fi] === "";
58430
+ } else {
58431
+ throw new Error("wtf?");
58432
+ }
58433
+ };
57728
58434
  minimatch.AST = AST;
57729
58435
  minimatch.Minimatch = Minimatch;
57730
58436
  minimatch.escape = escape;
@@ -57795,7 +58501,7 @@ var isJsFile = lowerPathParam((p) => p.endsWith(".js") || p.endsWith(".mjs") ||
57795
58501
 
57796
58502
  // src/compiler/html/canonical-link.ts
57797
58503
  var updateCanonicalLink = (doc, href) => {
57798
- var _a2;
58504
+ var _a3;
57799
58505
  let canonicalLinkElm = doc.head.querySelector('link[rel="canonical"]');
57800
58506
  if (typeof href === "string") {
57801
58507
  if (canonicalLinkElm == null) {
@@ -57808,7 +58514,7 @@ var updateCanonicalLink = (doc, href) => {
57808
58514
  if (canonicalLinkElm != null) {
57809
58515
  const existingHref = canonicalLinkElm.getAttribute("href");
57810
58516
  if (!existingHref) {
57811
- (_a2 = canonicalLinkElm.parentNode) == null ? void 0 : _a2.removeChild(canonicalLinkElm);
58517
+ (_a3 = canonicalLinkElm.parentNode) == null ? void 0 : _a3.removeChild(canonicalLinkElm);
57812
58518
  }
57813
58519
  }
57814
58520
  }
@@ -58320,7 +59026,7 @@ var serializeCss = (stylesheet, serializeOpts) => {
58320
59026
  return out.join("");
58321
59027
  };
58322
59028
  var serializeCssVisitNode = (opts, node, index, len) => {
58323
- var _a2;
59029
+ var _a3;
58324
59030
  const nodeType = node.type;
58325
59031
  if (nodeType === 4 /* Declaration */) {
58326
59032
  return serializeCssDeclaration(node, index, len);
@@ -58329,7 +59035,7 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58329
59035
  return serializeCssRule(opts, node);
58330
59036
  }
58331
59037
  if (nodeType === 1 /* Comment */) {
58332
- if (((_a2 = node.comment) == null ? void 0 : _a2[0]) === "!") {
59038
+ if (((_a3 = node.comment) == null ? void 0 : _a3[0]) === "!") {
58333
59039
  return `/*${node.comment}*/`;
58334
59040
  } else {
58335
59041
  return "";
@@ -58377,10 +59083,10 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58377
59083
  return "";
58378
59084
  };
58379
59085
  var serializeCssRule = (opts, node) => {
58380
- var _a2, _b;
59086
+ var _a3, _b;
58381
59087
  const decls = node.declarations;
58382
59088
  const usedSelectors = opts.usedSelectors;
58383
- const selectors = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.slice()) != null ? _b : [];
59089
+ const selectors = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.slice()) != null ? _b : [];
58384
59090
  const hasDecls = decls != null && decls.length > 0;
58385
59091
  const hasNestedRules = node.rules != null && node.rules.length > 0;
58386
59092
  if (!hasDecls && !hasNestedRules) {
@@ -58484,8 +59190,8 @@ var serializeCssKeyframes = (opts, node) => {
58484
59190
  return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + keyframesCss + "}";
58485
59191
  };
58486
59192
  var serializeCssKeyframe = (opts, node) => {
58487
- var _a2, _b;
58488
- return ((_b = (_a2 = node.values) == null ? void 0 : _a2.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
59193
+ var _a3, _b;
59194
+ return ((_b = (_a3 = node.values) == null ? void 0 : _a3.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58489
59195
  };
58490
59196
  var serializeCssFontFace = (opts, node) => {
58491
59197
  const fontCss = serializeCssMapVisit(opts, node.declarations);
@@ -58509,8 +59215,8 @@ var serializeCssContainer = (opts, node) => {
58509
59215
  return "@container " + removeMediaWhitespace(node.media) + "{" + containerCss + "}";
58510
59216
  };
58511
59217
  var serializeCssPage = (opts, node) => {
58512
- var _a2, _b;
58513
- const sel = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.join(", ")) != null ? _b : "";
59218
+ var _a3, _b;
59219
+ const sel = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.join(", ")) != null ? _b : "";
58514
59220
  return "@page " + sel + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58515
59221
  };
58516
59222
  var serializeCssDocument = (opts, node) => {
@@ -58557,10 +59263,10 @@ var removeSelectorWhitespace = (selector) => {
58557
59263
  return rtn;
58558
59264
  };
58559
59265
  var removeMediaWhitespace = (media) => {
58560
- var _a2;
59266
+ var _a3;
58561
59267
  let rtn = "";
58562
59268
  let char = "";
58563
- media = (_a2 = media == null ? void 0 : media.trim()) != null ? _a2 : "";
59269
+ media = (_a3 = media == null ? void 0 : media.trim()) != null ? _a3 : "";
58564
59270
  for (let i = 0, l = media.length; i < l; i++) {
58565
59271
  char = media[i];
58566
59272
  if (CSS_WS_REG.test(char)) {