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.mjs CHANGED
@@ -396,7 +396,7 @@ const appGlobalScript = initialize || (() => {});
396
396
  const globalScripts = appGlobalScript;
397
397
 
398
398
  /*
399
- Stencil Hydrate Platform v4.43.0 | MIT Licensed | https://stenciljs.com
399
+ Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
400
400
  */
401
401
  var __create = Object.create;
402
402
  var __defProp = Object.defineProperty;
@@ -431,7 +431,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
431
431
  __defProp(target, "default", { value: mod, enumerable: true }) ,
432
432
  mod
433
433
  ));
434
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
434
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
435
435
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
436
436
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
437
437
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
@@ -673,15 +673,26 @@ var TYPE_CONSTANT = "type";
673
673
  var VALUE_CONSTANT = "value";
674
674
  var SERIALIZED_PREFIX = "serialized:";
675
675
 
676
+ // src/utils/get-prop-descriptor.ts
677
+ function getPropertyDescriptor(obj, memberName, getOnly) {
678
+ const stopAt = typeof HTMLElement !== "undefined" ? HTMLElement.prototype : null;
679
+ while (obj && obj !== stopAt) {
680
+ const desc = Object.getOwnPropertyDescriptor(obj, memberName);
681
+ if (desc && (!getOnly || desc.get)) return desc;
682
+ obj = Object.getPrototypeOf(obj);
683
+ }
684
+ return void 0;
685
+ }
686
+
676
687
  // src/utils/es2022-rewire-class-members.ts
677
688
  var reWireGetterSetter = (instance, hostRef) => {
678
- var _a;
689
+ var _a2;
679
690
  const cmpMeta = hostRef.$cmpMeta$;
680
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
691
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
681
692
  members.map(([memberName, [memberFlags]]) => {
682
693
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
683
694
  const ogValue = instance[memberName];
684
- const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);
695
+ const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName, true) || Object.getOwnPropertyDescriptor(instance, memberName);
685
696
  if (ogDescriptor) {
686
697
  Object.defineProperty(instance, memberName, {
687
698
  get() {
@@ -694,18 +705,14 @@ var reWireGetterSetter = (instance, hostRef) => {
694
705
  enumerable: true
695
706
  });
696
707
  }
697
- instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;
708
+ if (hostRef.$instanceValues$.has(memberName)) {
709
+ instance[memberName] = hostRef.$instanceValues$.get(memberName);
710
+ } else if (ogValue !== void 0) {
711
+ instance[memberName] = ogValue;
712
+ }
698
713
  }
699
714
  });
700
715
  };
701
- function getPropertyDescriptor(obj, memberName) {
702
- while (obj) {
703
- const desc = Object.getOwnPropertyDescriptor(obj, memberName);
704
- if (desc == null ? void 0 : desc.get) return desc;
705
- obj = Object.getPrototypeOf(obj);
706
- }
707
- return void 0;
708
- }
709
716
 
710
717
  // src/runtime/runtime-constants.ts
711
718
  var CONTENT_REF_ID = "r";
@@ -733,13 +740,13 @@ function createStyleSheetIfNeededAndSupported(styles2) {
733
740
  // src/utils/shadow-root.ts
734
741
  var globalStyleSheet;
735
742
  function createShadowRoot(cmpMeta) {
736
- var _a;
743
+ var _a2;
737
744
  const opts = { mode: "open" };
738
745
  {
739
746
  opts.delegatesFocus = !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */);
740
747
  }
741
748
  const shadowRoot = this.attachShadow(opts);
742
- if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
749
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a2 = createStyleSheetIfNeededAndSupported()) != null ? _a2 : null;
743
750
  if (globalStyleSheet) {
744
751
  {
745
752
  shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
@@ -875,8 +882,8 @@ function dispatchSlotChangeEvent(elm) {
875
882
  elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
876
883
  }
877
884
  function findSlotFromSlottedNode(slottedNode, parentHost) {
878
- var _a;
879
- parentHost = parentHost || ((_a = slottedNode["s-ol"]) == null ? void 0 : _a.parentElement);
885
+ var _a2;
886
+ parentHost = parentHost || ((_a2 = slottedNode["s-ol"]) == null ? void 0 : _a2.parentElement);
880
887
  if (!parentHost) return { slotNode: null, slotName: "" };
881
888
  const slotName = slottedNode["s-sn"] = getSlotName(slottedNode) || "";
882
889
  const childNodes = internalCall(parentHost, "childNodes");
@@ -910,8 +917,8 @@ var uniqueTime = (key, measureText) => {
910
917
 
911
918
  // src/utils/query-nonce-meta-tag-content.ts
912
919
  function queryNonceMetaTagContent(doc) {
913
- var _a, _b, _c;
914
- return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
920
+ var _a2, _b, _c;
921
+ return (_c = (_b = (_a2 = doc.head) == null ? void 0 : _a2.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
915
922
  }
916
923
 
917
924
  // src/runtime/styles.ts
@@ -924,7 +931,7 @@ var registerStyle = (scopeId2, cssText, allowCS) => {
924
931
  styles.set(scopeId2, style);
925
932
  };
926
933
  var addStyle = (styleContainerNode, cmpMeta, mode) => {
927
- var _a;
934
+ var _a2;
928
935
  const scopeId2 = getScopeId(cmpMeta, mode);
929
936
  const style = styles.get(scopeId2);
930
937
  if (!win$2.document) {
@@ -945,7 +952,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
945
952
  } else if (!appliedStyles.has(scopeId2)) {
946
953
  styleElm = win$2.document.createElement("style");
947
954
  styleElm.textContent = style;
948
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win$2.document);
955
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win$2.document);
949
956
  if (nonce != null) {
950
957
  styleElm.setAttribute("nonce", nonce);
951
958
  }
@@ -963,7 +970,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
963
970
  } else if ("host" in styleContainerNode) {
964
971
  {
965
972
  const existingStyleContainer = styleContainerNode.querySelector("style");
966
- if (existingStyleContainer) {
973
+ if (existingStyleContainer && true) {
967
974
  existingStyleContainer.textContent = style + existingStyleContainer.textContent;
968
975
  } else {
969
976
  styleContainerNode.prepend(styleElm);
@@ -1131,7 +1138,7 @@ var convertToPrivate = (node) => {
1131
1138
 
1132
1139
  // src/runtime/client-hydrate.ts
1133
1140
  var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1134
- var _a, _b, _c, _d;
1141
+ var _a2, _b, _c, _d;
1135
1142
  const endHydrate = createTime("hydrateClient", tagName);
1136
1143
  const shadowRoot = hostElm.shadowRoot;
1137
1144
  const childRenderNodes = [];
@@ -1178,7 +1185,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1178
1185
  if (childRenderNode.$tag$ === "slot") {
1179
1186
  node["s-cr"] = hostElm["s-cr"];
1180
1187
  }
1181
- } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1188
+ } else if (((_a2 = childRenderNode.$tag$) == null ? void 0 : _a2.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1182
1189
  const cmpMeta = getHostRef(childRenderNode.$elm$);
1183
1190
  if (cmpMeta) {
1184
1191
  const scopeId3 = getScopeId(
@@ -1525,10 +1532,10 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1525
1532
  parentVNode.$children$[childVNode.$index$] = childVNode;
1526
1533
  }
1527
1534
  var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1528
- var _a, _b;
1535
+ var _a2, _b;
1529
1536
  let slottedNode = slotNode.nextSibling;
1530
1537
  slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
1531
- if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + "."))) return;
1538
+ if (!slottedNode || ((_a2 = slottedNode.nodeValue) == null ? void 0 : _a2.startsWith(SLOT_NODE_ID + "."))) return;
1532
1539
  do {
1533
1540
  if (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (!slottedNode["getAttribute"] || !slottedNode.getAttribute("slot")) && (slottedNode.nodeType === 8 /* CommentNode */ || slottedNode.nodeType === 3 /* TextNode */))) {
1534
1541
  slottedNode["s-sn"] = slotName;
@@ -1960,8 +1967,33 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
1960
1967
  var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
1961
1968
  var setMode = (handler) => modeResolutionChain.push(handler);
1962
1969
  var getMode = (ref) => {
1963
- var _a;
1964
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$modeName$;
1970
+ var _a2;
1971
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$modeName$;
1972
+ };
1973
+
1974
+ // src/runtime/normalize-watchers.ts
1975
+ var normalizeWatchers = (raw) => {
1976
+ if (!raw) return void 0;
1977
+ const keys = Object.keys(raw);
1978
+ if (keys.length === 0) return void 0;
1979
+ let hasLegacy = false;
1980
+ for (const propName of keys) {
1981
+ if (hasLegacy) break;
1982
+ for (const h2 of raw[propName]) {
1983
+ if (typeof h2 === "string") {
1984
+ hasLegacy = true;
1985
+ break;
1986
+ }
1987
+ }
1988
+ }
1989
+ if (!hasLegacy) return raw;
1990
+ const out = {};
1991
+ for (const propName of keys) {
1992
+ out[propName] = raw[propName].map(
1993
+ (h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
1994
+ );
1995
+ }
1996
+ return out;
1965
1997
  };
1966
1998
 
1967
1999
  // src/utils/remote-value.ts
@@ -2060,11 +2092,19 @@ var RemoteValue = class _RemoteValue {
2060
2092
  };
2061
2093
 
2062
2094
  // src/utils/serialize.ts
2095
+ function decodeBase64Unicode(base64) {
2096
+ const binary = atob(base64);
2097
+ const bytes = new Uint8Array(binary.length);
2098
+ for (let i2 = 0; i2 < binary.length; i2++) {
2099
+ bytes[i2] = binary.charCodeAt(i2);
2100
+ }
2101
+ return new TextDecoder().decode(bytes);
2102
+ }
2063
2103
  function deserializeProperty(value) {
2064
2104
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
2065
2105
  return value;
2066
2106
  }
2067
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
2107
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
2068
2108
  }
2069
2109
 
2070
2110
  // src/runtime/parse-property-value.ts
@@ -2090,8 +2130,8 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
2090
2130
  return propValue;
2091
2131
  };
2092
2132
  var getElement = (ref) => {
2093
- var _a;
2094
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ ;
2133
+ var _a2;
2134
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$hostElement$ ;
2095
2135
  };
2096
2136
 
2097
2137
  // src/runtime/event-emitter.ts
@@ -2316,7 +2356,7 @@ var isSvgMode = false;
2316
2356
  var refCallbacksToRemove = [];
2317
2357
  var refCallbacksToAttach = [];
2318
2358
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2319
- var _a;
2359
+ var _a2;
2320
2360
  const newVNode2 = newParentVNode.$children$[childIndex];
2321
2361
  let i2 = 0;
2322
2362
  let elm;
@@ -2387,7 +2427,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2387
2427
  elm["s-sr"] = true;
2388
2428
  elm["s-cr"] = contentRef;
2389
2429
  elm["s-sn"] = newVNode2.$name$ || "";
2390
- elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
2430
+ elm["s-rf"] = (_a2 = newVNode2.$attrs$) == null ? void 0 : _a2.ref;
2391
2431
  patchSlotNode(elm);
2392
2432
  oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
2393
2433
  if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
@@ -2729,12 +2769,12 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
2729
2769
  }
2730
2770
  };
2731
2771
  function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2732
- var _a, _b;
2772
+ var _a2, _b;
2733
2773
  let scopeId2;
2734
2774
  if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
2735
2775
  const scopeName = slotNode["s-sn"];
2736
2776
  const hostName = slotNode["s-hn"];
2737
- (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
2777
+ (_a2 = newParent.classList) == null ? void 0 : _a2.add(scopeId2 + "-s");
2738
2778
  if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
2739
2779
  let child = (oldParent.__childNodes || oldParent.childNodes)[0];
2740
2780
  let found = false;
@@ -2750,7 +2790,7 @@ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
2750
2790
  }
2751
2791
  }
2752
2792
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2753
- var _a, _d, _e;
2793
+ var _a2, _d, _e;
2754
2794
  const hostElm = hostRef.$hostElement$;
2755
2795
  const cmpMeta = hostRef.$cmpMeta$;
2756
2796
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -2806,7 +2846,7 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2806
2846
  const nodeToRelocate = relocateData.$nodeToRelocate$;
2807
2847
  const slotRefNode = relocateData.$slotRefNode$;
2808
2848
  if (nodeToRelocate.nodeType === 1 /* ElementNode */ && isInitialLoad) {
2809
- nodeToRelocate["s-ih"] = (_a = nodeToRelocate.hidden) != null ? _a : false;
2849
+ nodeToRelocate["s-ih"] = (_a2 = nodeToRelocate.hidden) != null ? _a2 : false;
2810
2850
  }
2811
2851
  if (slotRefNode) {
2812
2852
  const parentNodeRef = slotRefNode.parentNode;
@@ -2866,14 +2906,14 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2866
2906
  flushQueuedRefCallbacks();
2867
2907
  };
2868
2908
  var slotReferenceDebugNode = (slotVNode) => {
2869
- var _a;
2870
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2909
+ var _a2;
2910
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2871
2911
  `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
2872
2912
  );
2873
2913
  };
2874
2914
  var originalLocationDebugNode = (nodeToRelocate) => {
2875
- var _a;
2876
- return (_a = win$2.document) == null ? void 0 : _a.createComment(
2915
+ var _a2;
2916
+ return (_a2 = win$2.document) == null ? void 0 : _a2.createComment(
2877
2917
  `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
2878
2918
  );
2879
2919
  };
@@ -2950,7 +2990,7 @@ var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then
2950
2990
  }) : fn();
2951
2991
  var isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === "function";
2952
2992
  var updateComponent = async (hostRef, instance, isInitialLoad) => {
2953
- var _a;
2993
+ var _a2;
2954
2994
  const elm = hostRef.$hostElement$;
2955
2995
  const endUpdate = createTime("update", hostRef.$cmpMeta$.$tagName$);
2956
2996
  const rc = elm["s-rc"];
@@ -2982,7 +3022,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
2982
3022
  endRender();
2983
3023
  endUpdate();
2984
3024
  {
2985
- const childrenPromises = (_a = elm["s-p"]) != null ? _a : [];
3025
+ const childrenPromises = (_a2 = elm["s-p"]) != null ? _a2 : [];
2986
3026
  const postUpdate = () => postUpdateComponent(hostRef);
2987
3027
  if (childrenPromises.length === 0) {
2988
3028
  postUpdate();
@@ -3056,13 +3096,13 @@ var forceUpdate = (ref) => {
3056
3096
  return false;
3057
3097
  };
3058
3098
  var appDidLoad = (who) => {
3059
- var _a;
3099
+ var _a2;
3060
3100
  if (BUILD.asyncQueue) {
3061
3101
  plt.$flags$ |= 2 /* appLoaded */;
3062
3102
  }
3063
3103
  nextTick(() => emitEvent(win$2, "appload", { detail: { namespace: NAMESPACE } }));
3064
3104
  {
3065
- if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {
3105
+ if ((_a2 = plt.$orgLocNodes$) == null ? void 0 : _a2.size) {
3066
3106
  plt.$orgLocNodes$.clear();
3067
3107
  }
3068
3108
  }
@@ -3078,8 +3118,8 @@ var safeCall$1 = (instance, method, arg, elm) => {
3078
3118
  return void 0;
3079
3119
  };
3080
3120
  var addHydratedFlag = (elm) => {
3081
- var _a;
3082
- return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") ;
3121
+ var _a2;
3122
+ return elm.classList.add((_a2 = BUILD.hydratedSelectorName) != null ? _a2 : "hydrated") ;
3083
3123
  };
3084
3124
  var serverSideConnected = (elm) => {
3085
3125
  const children = elm.children;
@@ -3154,12 +3194,12 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3154
3194
 
3155
3195
  // src/runtime/proxy-component.ts
3156
3196
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3157
- var _a;
3197
+ var _a2;
3158
3198
  const prototype = Cstr.prototype;
3159
3199
  {
3160
3200
  {
3161
3201
  if (Cstr.watchers && !cmpMeta.$watchers$) {
3162
- cmpMeta.$watchers$ = Cstr.watchers;
3202
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3163
3203
  }
3164
3204
  if (Cstr.deserializers && !cmpMeta.$deserializers$) {
3165
3205
  cmpMeta.$deserializers$ = Cstr.deserializers;
@@ -3168,10 +3208,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3168
3208
  cmpMeta.$serializers$ = Cstr.serializers;
3169
3209
  }
3170
3210
  }
3171
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
3211
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
3172
3212
  members.map(([memberName, [memberFlags]]) => {
3173
3213
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
3174
- const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
3214
+ const { get: origGetter, set: origSetter } = getPropertyDescriptor(prototype, memberName) || {};
3175
3215
  if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
3176
3216
  if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
3177
3217
  if (!origGetter) {
@@ -3246,7 +3286,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3246
3286
  }
3247
3287
  if (!Cstr.isProxied) {
3248
3288
  {
3249
- cmpMeta.$watchers$ = Cstr.watchers;
3289
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3250
3290
  cmpMeta.$serializers$ = Cstr.serializers;
3251
3291
  cmpMeta.$deserializers$ = Cstr.deserializers;
3252
3292
  }
@@ -3412,11 +3452,11 @@ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) =>
3412
3452
  }
3413
3453
  };
3414
3454
  var hostListenerProxy = (hostRef, methodName) => (ev) => {
3415
- var _a;
3455
+ var _a2;
3416
3456
  try {
3417
3457
  {
3418
3458
  if (hostRef.$flags$ & 256 /* isListenReady */) {
3419
- (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
3459
+ (_a2 = hostRef.$lazyInstance$) == null ? void 0 : _a2[methodName](ev);
3420
3460
  } else {
3421
3461
  (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
3422
3462
  }
@@ -3450,7 +3490,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3450
3490
  const orgLocationNodes = [];
3451
3491
  parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);
3452
3492
  orgLocationNodes.forEach((orgLocationNode) => {
3453
- var _a;
3493
+ var _a2;
3454
3494
  if (orgLocationNode != null && orgLocationNode["s-nr"]) {
3455
3495
  const nodeRef = orgLocationNode["s-nr"];
3456
3496
  let hostId = nodeRef["s-host-id"];
@@ -3468,7 +3508,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3468
3508
  }
3469
3509
  } else if (nodeRef.nodeType === 3 /* TextNode */) {
3470
3510
  if (hostId === 0) {
3471
- const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();
3511
+ const textContent = (_a2 = nodeRef.nodeValue) == null ? void 0 : _a2.trim();
3472
3512
  if (textContent === "") {
3473
3513
  orgLocationNode.remove();
3474
3514
  return;
@@ -3498,7 +3538,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
3498
3538
  }
3499
3539
  };
3500
3540
  var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3501
- var _a;
3541
+ var _a2;
3502
3542
  if (node == null) {
3503
3543
  return;
3504
3544
  }
@@ -3506,7 +3546,7 @@ var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
3506
3546
  orgLocationNodes.push(node);
3507
3547
  }
3508
3548
  if (node.nodeType === 1 /* ElementNode */) {
3509
- const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];
3549
+ const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a2 = node.shadowRoot) == null ? void 0 : _a2.childNodes) || [])];
3510
3550
  childNodes.forEach((childNode) => {
3511
3551
  const hostRef = getHostRef(childNode);
3512
3552
  if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {
@@ -3732,8 +3772,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
3732
3772
  };
3733
3773
 
3734
3774
  // node_modules/minimatch/dist/esm/ast.js
3775
+ var _a;
3735
3776
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
3736
3777
  var isExtglobType = (c) => types.has(c);
3778
+ var isExtglobAST = (c) => isExtglobType(c.type);
3779
+ var adoptionMap = /* @__PURE__ */ new Map([
3780
+ ["!", ["@"]],
3781
+ ["?", ["?", "@"]],
3782
+ ["@", ["@"]],
3783
+ ["*", ["*", "+", "?", "@"]],
3784
+ ["+", ["+", "@"]]
3785
+ ]);
3786
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
3787
+ ["!", ["?"]],
3788
+ ["@", ["?"]],
3789
+ ["+", ["?", "*"]]
3790
+ ]);
3791
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
3792
+ ["!", ["?", "@"]],
3793
+ ["?", ["?", "@"]],
3794
+ ["@", ["?", "@"]],
3795
+ ["*", ["*", "+", "?", "@"]],
3796
+ ["+", ["+", "@", "?", "*"]]
3797
+ ]);
3798
+ var usurpMap = /* @__PURE__ */ new Map([
3799
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
3800
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
3801
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
3802
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
3803
+ ]);
3737
3804
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
3738
3805
  var startNoDot = "(?!\\.)";
3739
3806
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -3743,8 +3810,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
3743
3810
  var qmark = "[^/]";
3744
3811
  var star = qmark + "*?";
3745
3812
  var starNoEmpty = qmark + "+?";
3746
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
3747
- var _AST = class _AST {
3813
+ var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn;
3814
+ var AST = class {
3748
3815
  constructor(type, parent, options = {}) {
3749
3816
  __privateAdd(this, _AST_instances);
3750
3817
  __publicField(this, "type");
@@ -3797,44 +3864,44 @@ var _AST = class _AST {
3797
3864
  for (const p of parts) {
3798
3865
  if (p === "")
3799
3866
  continue;
3800
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
3867
+ if (typeof p !== "string" && !(p instanceof _a && __privateGet(p, _parent) === this)) {
3801
3868
  throw new Error("invalid part: " + p);
3802
3869
  }
3803
3870
  __privateGet(this, _parts).push(p);
3804
3871
  }
3805
3872
  }
3806
3873
  toJSON() {
3807
- var _a;
3874
+ var _a2;
3808
3875
  const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];
3809
3876
  if (this.isStart() && !this.type)
3810
3877
  ret.unshift([]);
3811
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")) {
3878
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
3812
3879
  ret.push({});
3813
3880
  }
3814
3881
  return ret;
3815
3882
  }
3816
3883
  isStart() {
3817
- var _a;
3884
+ var _a2;
3818
3885
  if (__privateGet(this, _root) === this)
3819
3886
  return true;
3820
- if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))
3887
+ if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
3821
3888
  return false;
3822
3889
  if (__privateGet(this, _parentIndex) === 0)
3823
3890
  return true;
3824
3891
  const p = __privateGet(this, _parent);
3825
3892
  for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {
3826
3893
  const pp = __privateGet(p, _parts)[i2];
3827
- if (!(pp instanceof _AST && pp.type === "!")) {
3894
+ if (!(pp instanceof _a && pp.type === "!")) {
3828
3895
  return false;
3829
3896
  }
3830
3897
  }
3831
3898
  return true;
3832
3899
  }
3833
3900
  isEnd() {
3834
- var _a, _b, _c;
3901
+ var _a2, _b, _c;
3835
3902
  if (__privateGet(this, _root) === this)
3836
3903
  return true;
3837
- if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")
3904
+ if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
3838
3905
  return true;
3839
3906
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
3840
3907
  return false;
@@ -3850,16 +3917,16 @@ var _AST = class _AST {
3850
3917
  this.push(part.clone(this));
3851
3918
  }
3852
3919
  clone(parent) {
3853
- const c = new _AST(this.type, parent);
3920
+ const c = new _a(this.type, parent);
3854
3921
  for (const p of __privateGet(this, _parts)) {
3855
3922
  c.copyIn(p);
3856
3923
  }
3857
3924
  return c;
3858
3925
  }
3859
3926
  static fromGlob(pattern, options = {}) {
3860
- var _a;
3861
- const ast = new _AST(null, void 0, options);
3862
- __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);
3927
+ var _a2;
3928
+ const ast = new _a(null, void 0, options);
3929
+ __privateMethod(_a2 = _a, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options, 0);
3863
3930
  return ast;
3864
3931
  }
3865
3932
  // returns the regular expression if there's magic, or the unescaped
@@ -3952,15 +4019,17 @@ var _AST = class _AST {
3952
4019
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
3953
4020
  // or start or whatever) and prepend ^ or / at the Regexp construction.
3954
4021
  toRegExpSource(allowDot) {
3955
- var _a;
4022
+ var _a2;
3956
4023
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
3957
- if (__privateGet(this, _root) === this)
4024
+ if (__privateGet(this, _root) === this) {
4025
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
3958
4026
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
3959
- if (!this.type) {
4027
+ }
4028
+ if (!isExtglobAST(this)) {
3960
4029
  const noEmpty = this.isStart() && this.isEnd();
3961
4030
  const src = __privateGet(this, _parts).map((p) => {
3962
- var _a2;
3963
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
4031
+ var _a3;
4032
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _a, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
3964
4033
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
3965
4034
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
3966
4035
  return re;
@@ -3983,7 +4052,7 @@ var _AST = class _AST {
3983
4052
  }
3984
4053
  }
3985
4054
  let end = "";
3986
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!") {
4055
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
3987
4056
  end = "(?:$|\\/)";
3988
4057
  }
3989
4058
  const final2 = start2 + src + end;
@@ -3999,12 +4068,13 @@ var _AST = class _AST {
3999
4068
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
4000
4069
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
4001
4070
  const s = this.toString();
4002
- __privateSet(this, _parts, [s]);
4003
- this.type = null;
4004
- __privateSet(this, _hasMagic, void 0);
4071
+ const me = this;
4072
+ __privateSet(me, _parts, [s]);
4073
+ me.type = null;
4074
+ __privateSet(me, _hasMagic, void 0);
4005
4075
  return [s, unescape(this.toString()), false, false];
4006
4076
  }
4007
- let bodyDotAllowed = !repeated || allowDot || dot || false ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4077
+ let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
4008
4078
  if (bodyDotAllowed === body) {
4009
4079
  bodyDotAllowed = "";
4010
4080
  }
@@ -4070,8 +4140,9 @@ fillNegs_fn = function() {
4070
4140
  return this;
4071
4141
  };
4072
4142
  _AST_static = new WeakSet();
4073
- parseAST_fn = function(str, ast, pos, opt) {
4074
- var _a, _b;
4143
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
4144
+ var _a2, _b, _c, _d, _e;
4145
+ const maxDepth = (_a2 = opt.maxExtglobRecursion) != null ? _a2 : 2;
4075
4146
  let escaping = false;
4076
4147
  let inBrace = false;
4077
4148
  let braceStart = -1;
@@ -4103,11 +4174,12 @@ parseAST_fn = function(str, ast, pos, opt) {
4103
4174
  acc2 += c;
4104
4175
  continue;
4105
4176
  }
4106
- if (!opt.noext && isExtglobType(c) && str.charAt(i3) === "(") {
4177
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i3) === "(" && extDepth <= maxDepth;
4178
+ if (doRecurse) {
4107
4179
  ast.push(acc2);
4108
4180
  acc2 = "";
4109
- const ext2 = new _AST(c, ast);
4110
- i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);
4181
+ const ext2 = new _a(c, ast);
4182
+ i3 = __privateMethod(_b = _a, _AST_static, parseAST_fn).call(_b, str, ext2, i3, opt, extDepth + 1);
4111
4183
  ast.push(ext2);
4112
4184
  continue;
4113
4185
  }
@@ -4117,7 +4189,7 @@ parseAST_fn = function(str, ast, pos, opt) {
4117
4189
  return i3;
4118
4190
  }
4119
4191
  let i2 = pos + 1;
4120
- let part = new _AST(null, ast);
4192
+ let part = new _a(null, ast);
4121
4193
  const parts = [];
4122
4194
  let acc = "";
4123
4195
  while (i2 < str.length) {
@@ -4144,19 +4216,22 @@ parseAST_fn = function(str, ast, pos, opt) {
4144
4216
  acc += c;
4145
4217
  continue;
4146
4218
  }
4147
- if (isExtglobType(c) && str.charAt(i2) === "(") {
4219
+ const doRecurse = isExtglobType(c) && str.charAt(i2) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
4220
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
4221
+ if (doRecurse) {
4222
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
4148
4223
  part.push(acc);
4149
4224
  acc = "";
4150
- const ext2 = new _AST(c, part);
4225
+ const ext2 = new _a(c, part);
4151
4226
  part.push(ext2);
4152
- i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);
4227
+ i2 = __privateMethod(_e = _a, _AST_static, parseAST_fn).call(_e, str, ext2, i2, opt, extDepth + depthAdd);
4153
4228
  continue;
4154
4229
  }
4155
4230
  if (c === "|") {
4156
4231
  part.push(acc);
4157
4232
  acc = "";
4158
4233
  parts.push(part);
4159
- part = new _AST(null, ast);
4234
+ part = new _a(null, ast);
4160
4235
  continue;
4161
4236
  }
4162
4237
  if (c === ")") {
@@ -4175,6 +4250,100 @@ parseAST_fn = function(str, ast, pos, opt) {
4175
4250
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
4176
4251
  return i2;
4177
4252
  };
4253
+ canAdoptWithSpace_fn = function(child) {
4254
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
4255
+ };
4256
+ canAdopt_fn = function(child, map2 = adoptionMap) {
4257
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
4258
+ return false;
4259
+ }
4260
+ const gc = __privateGet(child, _parts)[0];
4261
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4262
+ return false;
4263
+ }
4264
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
4265
+ };
4266
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
4267
+ var _a2;
4268
+ return !!((_a2 = map2.get(this.type)) == null ? void 0 : _a2.includes(c));
4269
+ };
4270
+ adoptWithSpace_fn = function(child, index) {
4271
+ const gc = __privateGet(child, _parts)[0];
4272
+ const blank = new _a(null, gc, this.options);
4273
+ __privateGet(blank, _parts).push("");
4274
+ gc.push(blank);
4275
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
4276
+ };
4277
+ adopt_fn = function(child, index) {
4278
+ const gc = __privateGet(child, _parts)[0];
4279
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
4280
+ for (const p of __privateGet(gc, _parts)) {
4281
+ if (typeof p === "object")
4282
+ __privateSet(p, _parent, this);
4283
+ }
4284
+ __privateSet(this, _toString, void 0);
4285
+ };
4286
+ canUsurpType_fn = function(c) {
4287
+ const m = usurpMap.get(this.type);
4288
+ return !!(m == null ? void 0 : m.has(c));
4289
+ };
4290
+ canUsurp_fn = function(child) {
4291
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
4292
+ return false;
4293
+ }
4294
+ const gc = __privateGet(child, _parts)[0];
4295
+ if (!gc || typeof gc !== "object" || gc.type === null) {
4296
+ return false;
4297
+ }
4298
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
4299
+ };
4300
+ usurp_fn = function(child) {
4301
+ const m = usurpMap.get(this.type);
4302
+ const gc = __privateGet(child, _parts)[0];
4303
+ const nt = m == null ? void 0 : m.get(gc.type);
4304
+ if (!nt)
4305
+ return false;
4306
+ __privateSet(this, _parts, __privateGet(gc, _parts));
4307
+ for (const p of __privateGet(this, _parts)) {
4308
+ if (typeof p === "object")
4309
+ __privateSet(p, _parent, this);
4310
+ }
4311
+ this.type = nt;
4312
+ __privateSet(this, _toString, void 0);
4313
+ __privateSet(this, _emptyExt, false);
4314
+ };
4315
+ flatten_fn = function() {
4316
+ var _a2, _b;
4317
+ if (!isExtglobAST(this)) {
4318
+ for (const p of __privateGet(this, _parts)) {
4319
+ if (typeof p === "object")
4320
+ __privateMethod(_a2 = p, _AST_instances, flatten_fn).call(_a2);
4321
+ }
4322
+ } else {
4323
+ let iterations = 0;
4324
+ let done = false;
4325
+ do {
4326
+ done = true;
4327
+ for (let i2 = 0; i2 < __privateGet(this, _parts).length; i2++) {
4328
+ const c = __privateGet(this, _parts)[i2];
4329
+ if (typeof c === "object") {
4330
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
4331
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
4332
+ done = false;
4333
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i2);
4334
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
4335
+ done = false;
4336
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i2);
4337
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
4338
+ done = false;
4339
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
4340
+ }
4341
+ }
4342
+ }
4343
+ } while (!done && ++iterations < 10);
4344
+ }
4345
+ __privateSet(this, _toString, void 0);
4346
+ };
4178
4347
  partsToRegExp_fn = function(dot) {
4179
4348
  return __privateGet(this, _parts).map((p) => {
4180
4349
  if (typeof p === "string") {
@@ -4189,11 +4358,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4189
4358
  let escaping = false;
4190
4359
  let re = "";
4191
4360
  let uflag = false;
4361
+ let inStar = false;
4192
4362
  for (let i2 = 0; i2 < glob.length; i2++) {
4193
4363
  const c = glob.charAt(i2);
4194
4364
  if (escaping) {
4195
4365
  escaping = false;
4196
4366
  re += (reSpecials.has(c) ? "\\" : "") + c;
4367
+ inStar = false;
4197
4368
  continue;
4198
4369
  }
4199
4370
  if (c === "\\") {
@@ -4211,16 +4382,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4211
4382
  uflag = uflag || needUflag;
4212
4383
  i2 += consumed - 1;
4213
4384
  hasMagic = hasMagic || magic;
4385
+ inStar = false;
4214
4386
  continue;
4215
4387
  }
4216
4388
  }
4217
4389
  if (c === "*") {
4218
- if (noEmpty && glob === "*")
4219
- re += starNoEmpty;
4220
- else
4221
- re += star;
4390
+ if (inStar)
4391
+ continue;
4392
+ inStar = true;
4393
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
4222
4394
  hasMagic = true;
4223
4395
  continue;
4396
+ } else {
4397
+ inStar = false;
4224
4398
  }
4225
4399
  if (c === "?") {
4226
4400
  re += qmark;
@@ -4231,8 +4405,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
4231
4405
  }
4232
4406
  return [re, unescape(glob), !!hasMagic, uflag];
4233
4407
  };
4234
- __privateAdd(_AST, _AST_static);
4235
- var AST = _AST;
4408
+ __privateAdd(AST, _AST_static);
4409
+ _a = AST;
4236
4410
 
4237
4411
  // node_modules/minimatch/dist/esm/escape.js
4238
4412
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -4371,28 +4545,33 @@ var match = (list, pattern, options = {}) => {
4371
4545
  minimatch.match = match;
4372
4546
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
4373
4547
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
4548
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
4374
4549
  var Minimatch = class {
4375
- options;
4376
- set;
4377
- pattern;
4378
- windowsPathsNoEscape;
4379
- nonegate;
4380
- negate;
4381
- comment;
4382
- empty;
4383
- preserveMultipleSlashes;
4384
- partial;
4385
- globSet;
4386
- globParts;
4387
- nocase;
4388
- isWindows;
4389
- platform;
4390
- windowsNoMagicRoot;
4391
- regexp;
4392
4550
  constructor(pattern, options = {}) {
4551
+ __privateAdd(this, _Minimatch_instances);
4552
+ __publicField(this, "options");
4553
+ __publicField(this, "set");
4554
+ __publicField(this, "pattern");
4555
+ __publicField(this, "windowsPathsNoEscape");
4556
+ __publicField(this, "nonegate");
4557
+ __publicField(this, "negate");
4558
+ __publicField(this, "comment");
4559
+ __publicField(this, "empty");
4560
+ __publicField(this, "preserveMultipleSlashes");
4561
+ __publicField(this, "partial");
4562
+ __publicField(this, "globSet");
4563
+ __publicField(this, "globParts");
4564
+ __publicField(this, "nocase");
4565
+ __publicField(this, "isWindows");
4566
+ __publicField(this, "platform");
4567
+ __publicField(this, "windowsNoMagicRoot");
4568
+ __publicField(this, "maxGlobstarRecursion");
4569
+ __publicField(this, "regexp");
4570
+ var _a2;
4393
4571
  assertValidPattern(pattern);
4394
4572
  options = options || {};
4395
4573
  this.options = options;
4574
+ this.maxGlobstarRecursion = (_a2 = options.maxGlobstarRecursion) != null ? _a2 : 200;
4396
4575
  this.pattern = pattern;
4397
4576
  this.platform = options.platform || defaultPlatform;
4398
4577
  this.isWindows = this.platform === "win32";
@@ -4660,10 +4839,11 @@ var Minimatch = class {
4660
4839
  for (let i2 = 0; i2 < globParts.length - 1; i2++) {
4661
4840
  for (let j = i2 + 1; j < globParts.length; j++) {
4662
4841
  const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);
4663
- if (!matched)
4664
- continue;
4665
- globParts[i2] = matched;
4666
- globParts[j] = [];
4842
+ if (matched) {
4843
+ globParts[i2] = [];
4844
+ globParts[j] = matched;
4845
+ break;
4846
+ }
4667
4847
  }
4668
4848
  }
4669
4849
  return globParts.filter((gs) => gs.length);
@@ -4724,7 +4904,8 @@ var Minimatch = class {
4724
4904
  // out of pattern, then that's fine, as long as all
4725
4905
  // the parts match.
4726
4906
  matchOne(file, pattern, partial = false) {
4727
- const options = this.options;
4907
+ let fileStartIndex = 0;
4908
+ let patternStartIndex = 0;
4728
4909
  if (this.isWindows) {
4729
4910
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
4730
4911
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -4733,14 +4914,14 @@ var Minimatch = class {
4733
4914
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
4734
4915
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
4735
4916
  if (typeof fdi === "number" && typeof pdi === "number") {
4736
- const [fd, pd] = [file[fdi], pattern[pdi]];
4917
+ const [fd, pd] = [
4918
+ file[fdi],
4919
+ pattern[pdi]
4920
+ ];
4737
4921
  if (fd.toLowerCase() === pd.toLowerCase()) {
4738
4922
  pattern[pdi] = fd;
4739
- if (pdi > fdi) {
4740
- pattern = pattern.slice(pdi);
4741
- } else if (fdi > pdi) {
4742
- file = file.slice(fdi);
4743
- }
4923
+ patternStartIndex = pdi;
4924
+ fileStartIndex = fdi;
4744
4925
  }
4745
4926
  }
4746
4927
  }
@@ -4748,71 +4929,10 @@ var Minimatch = class {
4748
4929
  if (optimizationLevel >= 2) {
4749
4930
  file = this.levelTwoFileOptimize(file);
4750
4931
  }
4751
- this.debug("matchOne", this, { file, pattern });
4752
- this.debug("matchOne", file.length, pattern.length);
4753
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
4754
- this.debug("matchOne loop");
4755
- var p = pattern[pi];
4756
- var f = file[fi];
4757
- this.debug(pattern, p, f);
4758
- if (p === false) {
4759
- return false;
4760
- }
4761
- if (p === GLOBSTAR) {
4762
- this.debug("GLOBSTAR", [pattern, p, f]);
4763
- var fr = fi;
4764
- var pr = pi + 1;
4765
- if (pr === pl) {
4766
- this.debug("** at the end");
4767
- for (; fi < fl; fi++) {
4768
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
4769
- return false;
4770
- }
4771
- return true;
4772
- }
4773
- while (fr < fl) {
4774
- var swallowee = file[fr];
4775
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
4776
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
4777
- this.debug("globstar found match!", fr, fl, swallowee);
4778
- return true;
4779
- } else {
4780
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
4781
- this.debug("dot detected!", file, fr, pattern, pr);
4782
- break;
4783
- }
4784
- this.debug("globstar swallow a segment, and continue");
4785
- fr++;
4786
- }
4787
- }
4788
- if (partial) {
4789
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
4790
- if (fr === fl) {
4791
- return true;
4792
- }
4793
- }
4794
- return false;
4795
- }
4796
- let hit;
4797
- if (typeof p === "string") {
4798
- hit = f === p;
4799
- this.debug("string match", p, f, hit);
4800
- } else {
4801
- hit = p.test(f);
4802
- this.debug("pattern match", p, f, hit);
4803
- }
4804
- if (!hit)
4805
- return false;
4806
- }
4807
- if (fi === fl && pi === pl) {
4808
- return true;
4809
- } else if (fi === fl) {
4810
- return partial;
4811
- } else if (pi === pl) {
4812
- return fi === fl - 1 && file[fi] === "";
4813
- } else {
4814
- throw new Error("wtf?");
4932
+ if (pattern.includes(GLOBSTAR)) {
4933
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4815
4934
  }
4935
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
4816
4936
  }
4817
4937
  braceExpand() {
4818
4938
  return braceExpand(this.pattern, this.options);
@@ -4951,6 +5071,135 @@ var Minimatch = class {
4951
5071
  return minimatch.defaults(def).Minimatch;
4952
5072
  }
4953
5073
  };
5074
+ _Minimatch_instances = new WeakSet();
5075
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5076
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
5077
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
5078
+ const [head, body, tail] = partial ? [
5079
+ pattern.slice(patternIndex, firstgs),
5080
+ pattern.slice(firstgs + 1),
5081
+ []
5082
+ ] : [
5083
+ pattern.slice(patternIndex, firstgs),
5084
+ pattern.slice(firstgs + 1, lastgs),
5085
+ pattern.slice(lastgs + 1)
5086
+ ];
5087
+ if (head.length) {
5088
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
5089
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
5090
+ return false;
5091
+ fileIndex += head.length;
5092
+ }
5093
+ let fileTailMatch = 0;
5094
+ if (tail.length) {
5095
+ if (tail.length + fileIndex > file.length)
5096
+ return false;
5097
+ let tailStart = file.length - tail.length;
5098
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
5099
+ fileTailMatch = tail.length;
5100
+ } else {
5101
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
5102
+ return false;
5103
+ }
5104
+ tailStart--;
5105
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
5106
+ return false;
5107
+ fileTailMatch = tail.length + 1;
5108
+ }
5109
+ }
5110
+ if (!body.length) {
5111
+ let sawSome = !!fileTailMatch;
5112
+ for (let i3 = fileIndex; i3 < file.length - fileTailMatch; i3++) {
5113
+ const f = String(file[i3]);
5114
+ sawSome = true;
5115
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5116
+ return false;
5117
+ }
5118
+ }
5119
+ return partial || sawSome;
5120
+ }
5121
+ const bodySegments = [[[], 0]];
5122
+ let currentBody = bodySegments[0];
5123
+ let nonGsParts = 0;
5124
+ const nonGsPartsSums = [0];
5125
+ for (const b of body) {
5126
+ if (b === GLOBSTAR) {
5127
+ nonGsPartsSums.push(nonGsParts);
5128
+ currentBody = [[], 0];
5129
+ bodySegments.push(currentBody);
5130
+ } else {
5131
+ currentBody[0].push(b);
5132
+ nonGsParts++;
5133
+ }
5134
+ }
5135
+ let i2 = bodySegments.length - 1;
5136
+ const fileLength = file.length - fileTailMatch;
5137
+ for (const b of bodySegments) {
5138
+ b[1] = fileLength - (nonGsPartsSums[i2--] + b[0].length);
5139
+ }
5140
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
5141
+ };
5142
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
5143
+ const bs = bodySegments[bodyIndex];
5144
+ if (!bs) {
5145
+ for (let i2 = fileIndex; i2 < file.length; i2++) {
5146
+ sawTail = true;
5147
+ const f = file[i2];
5148
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5149
+ return false;
5150
+ }
5151
+ }
5152
+ return sawTail;
5153
+ }
5154
+ const [body, after] = bs;
5155
+ while (fileIndex <= after) {
5156
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
5157
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
5158
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
5159
+ if (sub !== false)
5160
+ return sub;
5161
+ }
5162
+ const f = file[fileIndex];
5163
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
5164
+ return false;
5165
+ }
5166
+ fileIndex++;
5167
+ }
5168
+ return partial || null;
5169
+ };
5170
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
5171
+ let fi;
5172
+ let pi;
5173
+ let pl;
5174
+ let fl;
5175
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
5176
+ this.debug("matchOne loop");
5177
+ let p = pattern[pi];
5178
+ let f = file[fi];
5179
+ this.debug(pattern, p, f);
5180
+ if (p === false || p === GLOBSTAR)
5181
+ return false;
5182
+ let hit;
5183
+ if (typeof p === "string") {
5184
+ hit = f === p;
5185
+ this.debug("string match", p, f, hit);
5186
+ } else {
5187
+ hit = p.test(f);
5188
+ this.debug("pattern match", p, f, hit);
5189
+ }
5190
+ if (!hit)
5191
+ return false;
5192
+ }
5193
+ if (fi === fl && pi === pl) {
5194
+ return true;
5195
+ } else if (fi === fl) {
5196
+ return partial;
5197
+ } else if (pi === pl) {
5198
+ return fi === fl - 1 && file[fi] === "";
5199
+ } else {
5200
+ throw new Error("wtf?");
5201
+ }
5202
+ };
4954
5203
  minimatch.AST = AST;
4955
5204
  minimatch.Minimatch = Minimatch;
4956
5205
  minimatch.escape = escape;
@@ -5024,7 +5273,7 @@ function proxyHostElement(elm, cstr) {
5024
5273
  const hostRef = getHostRef(elm);
5025
5274
  const members = Object.entries(cmpMeta.$members$);
5026
5275
  members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
5027
- var _a, _b;
5276
+ var _a2, _b;
5028
5277
  if (memberFlags & 31 /* Prop */) {
5029
5278
  const attributeName = metaAttributeName || memberName;
5030
5279
  const attrValue = elm.getAttribute(attributeName);
@@ -5032,7 +5281,7 @@ function proxyHostElement(elm, cstr) {
5032
5281
  let attrPropVal;
5033
5282
  const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(cstr.prototype, memberName) || {};
5034
5283
  if (attrValue != null) {
5035
- if ((_a = cmpMeta.$deserializers$) == null ? void 0 : _a[memberName]) {
5284
+ if ((_a2 = cmpMeta.$deserializers$) == null ? void 0 : _a2[memberName]) {
5036
5285
  for (const deserializer of cmpMeta.$deserializers$[memberName]) {
5037
5286
  const [[methodName]] = Object.entries(deserializer);
5038
5287
  attrPropVal = cstr.prototype[methodName](attrValue, memberName);
@@ -5065,8 +5314,8 @@ function proxyHostElement(elm, cstr) {
5065
5314
  Object.defineProperty(elm, memberName, getterSetterDescriptor);
5066
5315
  Object.defineProperty(elm, metaAttributeName, getterSetterDescriptor);
5067
5316
  hostRef.$fetchedCbList$.push(() => {
5068
- var _a2;
5069
- if (!((_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.has(memberName))) {
5317
+ var _a3;
5318
+ if (!((_a3 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a3.has(memberName))) {
5070
5319
  setValue(
5071
5320
  elm,
5072
5321
  memberName,
@@ -5079,11 +5328,11 @@ function proxyHostElement(elm, cstr) {
5079
5328
  } else if (memberFlags & 64 /* Method */) {
5080
5329
  Object.defineProperty(elm, memberName, {
5081
5330
  value(...args) {
5082
- var _a2;
5331
+ var _a3;
5083
5332
  const ref = getHostRef(this);
5084
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
5085
- var _a3;
5086
- return (_a3 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
5333
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
5334
+ var _a4;
5335
+ return (_a4 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
5087
5336
  }).catch((e) => {
5088
5337
  consoleError(e, this);
5089
5338
  });
@@ -5094,8 +5343,8 @@ function proxyHostElement(elm, cstr) {
5094
5343
  }
5095
5344
  }
5096
5345
  function componentOnReady$1() {
5097
- var _a;
5098
- return (_a = getHostRef(this)) == null ? void 0 : _a.$onReadyPromise$;
5346
+ var _a2;
5347
+ return (_a2 = getHostRef(this)) == null ? void 0 : _a2.$onReadyPromise$;
5099
5348
  }
5100
5349
  function forceUpdate2() {
5101
5350
  }
@@ -10143,6 +10392,7 @@ class Alert {
10143
10392
  this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
10144
10393
  this.processedInputs = [];
10145
10394
  this.processedButtons = [];
10395
+ this.isButtonGroupWrapped = false;
10146
10396
  this.presented = false;
10147
10397
  /** @internal */
10148
10398
  this.hasController = false;
@@ -10267,6 +10517,13 @@ class Alert {
10267
10517
  this.processedButtons = buttons.map((btn) => {
10268
10518
  return typeof btn === 'string' ? { text: btn, role: btn.toLowerCase() === 'cancel' ? 'cancel' : undefined } : btn;
10269
10519
  });
10520
+ /**
10521
+ * Reset wrap state so the new button set can be re-evaluated. Without this,
10522
+ * a previously-latched vertical layout would persist even if the new buttons
10523
+ * fit horizontally.
10524
+ */
10525
+ this.isButtonGroupWrapped = false;
10526
+ this.checkButtonGroupWrap();
10270
10527
  }
10271
10528
  inputsChanged() {
10272
10529
  const inputs = this.inputs;
@@ -10307,6 +10564,12 @@ class Alert {
10307
10564
  connectedCallback() {
10308
10565
  prepareOverlay(this.el);
10309
10566
  this.triggerChanged();
10567
+ /**
10568
+ * If the alert was previously connected and is being reattached, the
10569
+ * ResizeObserver was disconnected. componentDidLoad only fires once per
10570
+ * instance, so re-establish the observer here on reconnect.
10571
+ */
10572
+ this.setupButtonGroupResizeObserver();
10310
10573
  }
10311
10574
  componentWillLoad() {
10312
10575
  var _a;
@@ -10317,11 +10580,14 @@ class Alert {
10317
10580
  this.buttonsChanged();
10318
10581
  }
10319
10582
  disconnectedCallback() {
10583
+ var _a;
10320
10584
  this.triggerController.removeClickListener();
10321
10585
  if (this.gesture) {
10322
10586
  this.gesture.destroy();
10323
10587
  this.gesture = undefined;
10324
10588
  }
10589
+ (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10590
+ this.buttonGroupResizeObserver = undefined;
10325
10591
  }
10326
10592
  componentDidLoad() {
10327
10593
  /**
@@ -10334,6 +10600,7 @@ class Alert {
10334
10600
  this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
10335
10601
  this.gesture.enable(true);
10336
10602
  }
10603
+ this.setupButtonGroupResizeObserver();
10337
10604
  /**
10338
10605
  * If alert was rendered with isOpen="true"
10339
10606
  * then we should open alert immediately.
@@ -10523,14 +10790,58 @@ class Alert {
10523
10790
  }
10524
10791
  })));
10525
10792
  }
10793
+ setupButtonGroupResizeObserver() {
10794
+ var _a;
10795
+ /**
10796
+ * Re-evaluate vertical layout when the button group resizes so a 2-button
10797
+ * group with long text wraps cleanly instead of leaving a stray right-edge
10798
+ * border on the first button.
10799
+ */
10800
+ if (!this.buttonGroupEl || typeof ResizeObserver === 'undefined') {
10801
+ return;
10802
+ }
10803
+ (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10804
+ this.buttonGroupResizeObserver = new ResizeObserver(() => this.checkButtonGroupWrap());
10805
+ this.buttonGroupResizeObserver.observe(this.buttonGroupEl);
10806
+ this.checkButtonGroupWrap();
10807
+ }
10808
+ checkButtonGroupWrap() {
10809
+ /**
10810
+ * Defer the layout read out of the ResizeObserver callback so we don't
10811
+ * force synchronous layout and avoid "ResizeObserver loop" warnings when
10812
+ * applying the vertical-layout class itself triggers another resize.
10813
+ */
10814
+ raf(() => {
10815
+ /**
10816
+ * Bail if the alert was disconnected after this raf was queued.
10817
+ * `buttonGroupEl` persists across disconnect so the observer can be
10818
+ * re-attached on reconnect; the observer reference is the disconnect
10819
+ * sentinel.
10820
+ */
10821
+ if (!this.buttonGroupResizeObserver) {
10822
+ return;
10823
+ }
10824
+ const groupEl = this.buttonGroupEl;
10825
+ if (!groupEl) {
10826
+ return;
10827
+ }
10828
+ const buttons = Array.from(groupEl.querySelectorAll('.alert-button'));
10829
+ if (buttons.length < 2) {
10830
+ this.isButtonGroupWrapped = false;
10831
+ return;
10832
+ }
10833
+ const firstTop = buttons[0].offsetTop;
10834
+ this.isButtonGroupWrapped = buttons.some((btn) => btn.offsetTop !== firstTop);
10835
+ });
10836
+ }
10526
10837
  renderAlertButtons() {
10527
10838
  const buttons = this.processedButtons;
10528
10839
  const mode = getIonMode$1(this);
10529
10840
  const alertButtonGroupClass = {
10530
10841
  'alert-button-group': true,
10531
- 'alert-button-group-vertical': buttons.length > 2,
10842
+ 'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
10532
10843
  };
10533
- 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))))));
10844
+ 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))))));
10534
10845
  }
10535
10846
  renderAlertMessage(msgId) {
10536
10847
  const { customHTMLEnabled, message } = this;
@@ -10553,9 +10864,9 @@ class Alert {
10553
10864
  * If neither are defined, do not set aria-labelledby.
10554
10865
  */
10555
10866
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10556
- return (hAsync(Host, { key: '6025440b9cd369d4fac89e7e4296c84a10a0b8e0', tabindex: "-1", style: {
10867
+ return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
10557
10868
  zIndex: `${20000 + overlayIndex}`,
10558
- }, 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" })));
10869
+ }, 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" })));
10559
10870
  }
10560
10871
  get el() { return getElement(this); }
10561
10872
  static get watchers() { return {
@@ -10598,6 +10909,7 @@ class Alert {
10598
10909
  "htmlAttributes": [16],
10599
10910
  "isOpen": [4, "is-open"],
10600
10911
  "trigger": [1],
10912
+ "isButtonGroupWrapped": [32],
10601
10913
  "present": [64],
10602
10914
  "dismiss": [64],
10603
10915
  "onDidDismiss": [64],
@@ -12365,7 +12677,7 @@ const isRTL$1 = (hostEl) => {
12365
12677
  return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
12366
12678
  };
12367
12679
 
12368
- 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)}`;
12680
+ 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)}`;
12369
12681
 
12370
12682
  /**
12371
12683
  * @slot - Content is placed in the scrollable area if provided without a slot.
@@ -26271,12 +26583,12 @@ class Modal {
26271
26583
  this.applyFullscreenSafeAreaTo(contentEl, hasFooter);
26272
26584
  }
26273
26585
  /**
26274
- * Sets --ion-content-safe-area-padding-bottom on the given ion-content
26586
+ * Sets --internal-content-safe-area-padding-bottom on the given ion-content
26275
26587
  * when no footer is present, so ion-content's .inner-scroll includes
26276
26588
  * safe-area-bottom in its scroll padding. This keeps the modal background
26277
26589
  * edge-to-edge while ensuring content scrolls clear of the system nav bar.
26278
26590
  *
26279
- * --ion-content-safe-area-padding-bottom is an internal CSS property used
26591
+ * --internal-content-safe-area-padding-bottom is an internal CSS property used
26280
26592
  * only by this code path. It is not part of ion-content's public API and
26281
26593
  * should not be set by consumers. The default of 0px makes it a no-op
26282
26594
  * when unset, which is the expected state for ion-content used outside of
@@ -26288,17 +26600,17 @@ class Modal {
26288
26600
  // padding. Custom modals with raw HTML are developer-controlled.
26289
26601
  if (!contentEl || hasFooter)
26290
26602
  return;
26291
- contentEl.style.setProperty('--ion-content-safe-area-padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
26603
+ contentEl.style.setProperty('--internal-content-safe-area-padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
26292
26604
  }
26293
26605
  /**
26294
- * Removes the internal --ion-content-safe-area-padding-bottom property
26606
+ * Removes the internal --internal-content-safe-area-padding-bottom property
26295
26607
  * from an already-located ion-content. Callers do their own
26296
26608
  * findContentAndFooter() so they can also read hasFooter if needed.
26297
26609
  */
26298
26610
  clearContentSafeAreaPadding(contentEl) {
26299
26611
  if (!contentEl)
26300
26612
  return;
26301
- contentEl.style.removeProperty('--ion-content-safe-area-padding-bottom');
26613
+ contentEl.style.removeProperty('--internal-content-safe-area-padding-bottom');
26302
26614
  }
26303
26615
  /**
26304
26616
  * Finds ion-content and ion-footer among direct children and one level of
@@ -26345,20 +26657,20 @@ class Modal {
26345
26657
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26346
26658
  const isHandleCycle = handleBehavior === 'cycle';
26347
26659
  const isSheetModalWithHandle = isSheetModal && showHandle;
26348
- return (hAsync(Host, Object.assign({ key: '4bf38aa67df9a3f977163bba5423960bbafd16de', "no-router": true,
26660
+ return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
26349
26661
  // Allow the modal to be navigable when the handle is focusable
26350
26662
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26351
26663
  zIndex: `${20000 + this.overlayIndex}`,
26352
- }, 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',
26664
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3f6c61ba60b063592784d76a9594073b3bf210a9',
26353
26665
  /*
26354
26666
  role and aria-modal must be used on the
26355
26667
  same element. They must also be set inside the
26356
26668
  shadow DOM otherwise ion-button will not be highlighted
26357
26669
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26358
26670
  */
26359
- 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",
26671
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7f66b4fdb3dec61a2b9aec4e9dbacf5d013d637c', class: "modal-handle",
26360
26672
  // Prevents the handle from receiving keyboard focus when it does not cycle
26361
- 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 }))));
26673
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '2dfaaebe3d0b2a46be1224c25f9ab89bf1744332', onSlotchange: this.onSlotChange }))));
26362
26674
  }
26363
26675
  get el() { return getElement(this); }
26364
26676
  static get watchers() { return {
@@ -26367,6 +26679,9 @@ class Modal {
26367
26679
  }],
26368
26680
  "trigger": [{
26369
26681
  "triggerChanged": 0
26682
+ }],
26683
+ "breakpoints": [{
26684
+ "breakpointsChanged": 0
26370
26685
  }]
26371
26686
  }; }
26372
26687
  static get style() { return {
@@ -29098,7 +29413,7 @@ class PickerColumnCmp {
29098
29413
  this.emitColChange();
29099
29414
  return;
29100
29415
  }
29101
- this.velocity = clamp(-90, detail.velocityY * 23, MAX_PICKER_SPEED);
29416
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29102
29417
  if (this.velocity === 0 && detail.deltaY === 0) {
29103
29418
  const opt = detail.event.target.closest('.picker-opt');
29104
29419
  if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
@@ -29193,7 +29508,7 @@ const TRANSITION_DURATION = 150;
29193
29508
 
29194
29509
  const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
29195
29510
 
29196
- const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active){color:var(--ion-color-base)}`;
29511
+ const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active),:host([part~=active]){color:var(--ion-color-base)}`;
29197
29512
 
29198
29513
  class PickerColumnOption {
29199
29514
  constructor(hostRef) {
@@ -33871,7 +34186,7 @@ class ReorderGroup {
33871
34186
  }
33872
34187
  let amount = 0;
33873
34188
  if (posY < this.scrollElTop) {
33874
- amount = -10;
34189
+ amount = -SCROLL_JUMP;
33875
34190
  }
33876
34191
  else if (posY > this.scrollElBottom) {
33877
34192
  amount = SCROLL_JUMP;
@@ -34133,7 +34448,7 @@ const generatePath = (segments) => {
34133
34448
  const path = segments.filter((s) => s.length > 0).join('/');
34134
34449
  return '/' + path;
34135
34450
  };
34136
- const generateUrl = (segments, useHash, queryString) => {
34451
+ const generateUrl = (segments, useHash, queryString, fragment) => {
34137
34452
  let url = generatePath(segments);
34138
34453
  if (useHash) {
34139
34454
  url = '#' + url;
@@ -34141,10 +34456,13 @@ const generateUrl = (segments, useHash, queryString) => {
34141
34456
  if (queryString !== undefined) {
34142
34457
  url += '?' + queryString;
34143
34458
  }
34459
+ if (fragment !== undefined) {
34460
+ url += '#' + fragment;
34461
+ }
34144
34462
  return url;
34145
34463
  };
34146
- const writeSegments = (history, root, useHash, segments, direction, state, queryString) => {
34147
- const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString);
34464
+ const writeSegments = (history, root, useHash, segments, direction, state, queryString, fragment) => {
34465
+ const url = generateUrl([...parsePath(root).segments, ...segments], useHash, queryString, fragment);
34148
34466
  if (direction === ROUTER_INTENT_FORWARD) {
34149
34467
  history.pushState(state, '', url);
34150
34468
  }
@@ -34211,12 +34529,21 @@ const readSegments = (loc, root, useHash) => {
34211
34529
  /**
34212
34530
  * Parses the path to:
34213
34531
  * - segments an array of '/' separated parts,
34214
- * - queryString (undefined when no query string).
34532
+ * - queryString (undefined when no query string),
34533
+ * - fragment (undefined when no `#`).
34215
34534
  */
34216
34535
  const parsePath = (path) => {
34217
34536
  let segments = [''];
34218
34537
  let queryString;
34538
+ let fragment;
34219
34539
  if (path != null) {
34540
+ // The fragment ("#") starts a section that runs to the end of the URL.
34541
+ // Anything inside it (including "?") is part of the fragment per RFC 3986.
34542
+ const fragStart = path.indexOf('#');
34543
+ if (fragStart > -1) {
34544
+ fragment = path.substring(fragStart + 1);
34545
+ path = path.substring(0, fragStart);
34546
+ }
34220
34547
  const qsStart = path.indexOf('?');
34221
34548
  if (qsStart > -1) {
34222
34549
  queryString = path.substring(qsStart + 1);
@@ -34230,7 +34557,7 @@ const parsePath = (path) => {
34230
34557
  segments = [''];
34231
34558
  }
34232
34559
  }
34233
- return { segments, queryString };
34560
+ return { segments, queryString, fragment };
34234
34561
  };
34235
34562
 
34236
34563
  const printRoutes = (routes) => {
@@ -34315,6 +34642,118 @@ const readNavState = async (root) => {
34315
34642
  }
34316
34643
  return { ids, outlet };
34317
34644
  };
34645
+ /** Max animation frames `scrollToFragment` polls while waiting for the target to mount. */
34646
+ const FRAGMENT_POLL_FRAMES = 30;
34647
+ /** Duration (ms) of the smooth-scroll animation that lands on the fragment target. */
34648
+ const FRAGMENT_SCROLL_DURATION = 300;
34649
+ const nextFrame = () => new Promise((resolve) => raf(() => resolve()));
34650
+ /**
34651
+ * Returns true when `el` lives inside an active `.ion-page`. `ion-page-hidden`
34652
+ * marks nav back-stack entries; `tab-hidden` marks inactive `ion-tab` elements.
34653
+ * Either class on the page's ancestor chain disqualifies it. When no `.ion-page`
34654
+ * exists in the document at all (non-router pages), the candidate is accepted
34655
+ * so plain anchors still work.
34656
+ */
34657
+ const isInActivePage = (el) => {
34658
+ const page = el.closest('.ion-page');
34659
+ if (page === null) {
34660
+ return document.querySelector('.ion-page') === null;
34661
+ }
34662
+ return page.closest('.ion-page-hidden, .tab-hidden') === null;
34663
+ };
34664
+ /**
34665
+ * Polls across animation frames for an element matching `fragment` that lives
34666
+ * in the active page. Scoping by "last `.ion-page:not(.ion-page-hidden)`" is
34667
+ * unreliable: inactive `ion-tab` siblings carry `.ion-page` (gated by
34668
+ * `.tab-hidden`, not `.ion-page-hidden`) and can be ordered after the leaf.
34669
+ * Instead, locate candidates globally and walk them from last to first,
34670
+ * accepting the deepest one whose `.ion-page` ancestor is not hidden. The
34671
+ * last-to-first order preserves leaf-most preference for nested outlets.
34672
+ */
34673
+ const findFragmentTarget = async (fragment, shouldContinue) => {
34674
+ // CSS.escape is unavailable on very old WebViews; the fallback path uses
34675
+ // `getElementById` and drops the legacy `<a name>` branch.
34676
+ const canEscape = typeof CSS !== 'undefined' && typeof CSS.escape === 'function';
34677
+ const escaped = canEscape ? CSS.escape(fragment) : null;
34678
+ for (let i = 0; i < FRAGMENT_POLL_FRAMES; i++) {
34679
+ if (!shouldContinue())
34680
+ return null;
34681
+ let candidates = [];
34682
+ if (escaped !== null) {
34683
+ try {
34684
+ candidates = [...document.querySelectorAll(`#${escaped}, a[name="${escaped}"]`)];
34685
+ }
34686
+ catch (_a) {
34687
+ candidates = [...document.querySelectorAll(`#${escaped}`)];
34688
+ }
34689
+ }
34690
+ else {
34691
+ const byId = document.getElementById(fragment);
34692
+ if (byId !== null)
34693
+ candidates = [byId];
34694
+ }
34695
+ for (let j = candidates.length - 1; j >= 0; j--) {
34696
+ if (isInActivePage(candidates[j])) {
34697
+ return candidates[j];
34698
+ }
34699
+ }
34700
+ await nextFrame();
34701
+ }
34702
+ return null;
34703
+ };
34704
+ /**
34705
+ * Scrolls to the element whose id matches `fragment`, falling back to a legacy
34706
+ * `<a name="...">` target. When the target lives inside an `ion-content`, the
34707
+ * scroll uses its smooth-animated scroll API; otherwise it falls back to
34708
+ * `Element.scrollIntoView`.
34709
+ *
34710
+ * `shouldContinue` lets callers cancel in-flight scrolls when a newer
34711
+ * navigation supersedes this one. It is checked between async steps.
34712
+ */
34713
+ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
34714
+ if (fragment == null || fragment === '') {
34715
+ return false;
34716
+ }
34717
+ // URL fragments are percent-encoded but element ids are not; decode for
34718
+ // matching per the HTML spec's indicated-element resolution.
34719
+ let decoded;
34720
+ try {
34721
+ decoded = decodeURIComponent(fragment);
34722
+ }
34723
+ catch (_a) {
34724
+ decoded = fragment;
34725
+ }
34726
+ const target = await findFragmentTarget(decoded, shouldContinue);
34727
+ if (!target || !shouldContinue()) {
34728
+ return false;
34729
+ }
34730
+ // Best-effort scroll: swallow exceptions if the page tears down mid-animation.
34731
+ try {
34732
+ const contentHost = findClosestIonContent(target);
34733
+ if (contentHost && isIonContent(contentHost)) {
34734
+ const content = contentHost;
34735
+ const scrollEl = await getScrollElement(content);
34736
+ // Yield one frame so the newly mounted target's layout is stable
34737
+ // before we measure its rect.
34738
+ await nextFrame();
34739
+ if (!shouldContinue())
34740
+ return false;
34741
+ const targetRect = target.getBoundingClientRect();
34742
+ const scrollRect = scrollEl.getBoundingClientRect();
34743
+ const top = targetRect.top - scrollRect.top + scrollEl.scrollTop;
34744
+ // Preserve scrollLeft so RTL and horizontally-scrolling pages aren't reset.
34745
+ await content.scrollToPoint(scrollEl.scrollLeft, top, FRAGMENT_SCROLL_DURATION);
34746
+ }
34747
+ else {
34748
+ target.scrollIntoView({ behavior: 'smooth' });
34749
+ }
34750
+ return true;
34751
+ }
34752
+ catch (e) {
34753
+ printIonError('[ion-router] - Exception in scrollToFragment:', e);
34754
+ return false;
34755
+ }
34756
+ };
34318
34757
  const waitUntilNavNode = () => {
34319
34758
  if (searchNavNode(document.body)) {
34320
34759
  return Promise.resolve();
@@ -34656,6 +35095,7 @@ class Router {
34656
35095
  this.busy = false;
34657
35096
  this.state = 0;
34658
35097
  this.lastState = 0;
35098
+ this.fragmentScrollToken = 0;
34659
35099
  /**
34660
35100
  * The root path to use when matching URLs. By default, this is set to "/", but you can specify
34661
35101
  * an alternate prefix for all URL paths.
@@ -34684,12 +35124,17 @@ class Router {
34684
35124
  if (typeof canProceed === 'object') {
34685
35125
  const { redirect } = canProceed;
34686
35126
  const path = parsePath(redirect);
34687
- this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString);
34688
- await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35127
+ this.setSegments(path.segments, ROUTER_INTENT_NONE, path.queryString, path.fragment);
35128
+ const result = await this.writeNavStateRoot(path.segments, ROUTER_INTENT_NONE);
35129
+ if (result) {
35130
+ this.maybeScrollToFragment();
35131
+ }
34689
35132
  }
35133
+ return;
34690
35134
  }
34691
- else {
34692
- await this.onRoutesChanged();
35135
+ const result = await this.onRoutesChanged();
35136
+ if (result) {
35137
+ this.maybeScrollToFragment();
34693
35138
  }
34694
35139
  }
34695
35140
  componentDidLoad() {
@@ -34708,7 +35153,11 @@ class Router {
34708
35153
  return false;
34709
35154
  }
34710
35155
  }
34711
- return this.writeNavStateRoot(segments, direction);
35156
+ const result = await this.writeNavStateRoot(segments, direction);
35157
+ if (result) {
35158
+ this.maybeScrollToFragment();
35159
+ }
35160
+ return result;
34712
35161
  }
34713
35162
  onBackButton(ev) {
34714
35163
  ev.detail.register(0, (processNextHandler) => {
@@ -34742,7 +35191,7 @@ class Router {
34742
35191
  const currentPath = (_a = this.previousPath) !== null && _a !== void 0 ? _a : '/';
34743
35192
  // Convert currentPath to an URL by pre-pending a protocol and a host to resolve the relative path.
34744
35193
  const url = new URL(path, `https://host/${currentPath}`);
34745
- path = url.pathname + url.search;
35194
+ path = url.pathname + url.search + url.hash;
34746
35195
  }
34747
35196
  let parsedPath = parsePath(path);
34748
35197
  const canProceed = await this.runGuards(parsedPath.segments);
@@ -34754,8 +35203,12 @@ class Router {
34754
35203
  return false;
34755
35204
  }
34756
35205
  }
34757
- this.setSegments(parsedPath.segments, direction, parsedPath.queryString);
34758
- return this.writeNavStateRoot(parsedPath.segments, direction, animation);
35206
+ this.setSegments(parsedPath.segments, direction, parsedPath.queryString, parsedPath.fragment);
35207
+ const result = await this.writeNavStateRoot(parsedPath.segments, direction, animation);
35208
+ if (result) {
35209
+ this.maybeScrollToFragment();
35210
+ }
35211
+ return result;
34759
35212
  }
34760
35213
  /** Go back to previous page in the window.history. */
34761
35214
  back() {
@@ -34785,7 +35238,12 @@ class Router {
34785
35238
  printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
34786
35239
  return false;
34787
35240
  }
34788
- this.setSegments(segments, direction);
35241
+ // navChanged is an outlet-driven URL sync. Only keep the fragment when
35242
+ // the path is unchanged; on a real navigation it refers to an anchor on
35243
+ // the page being left and would be stale.
35244
+ const newPath = generatePath(segments);
35245
+ const fragment = newPath === this.previousPath ? this.getFragment() : undefined;
35246
+ this.setSegments(segments, direction, undefined, fragment);
34789
35247
  await this.safeWriteNavState(outlet, chain, ROUTER_INTENT_NONE, segments, null, ids.length);
34790
35248
  return true;
34791
35249
  }
@@ -34828,8 +35286,8 @@ class Router {
34828
35286
  const redirect = findRouteRedirect(segments, redirects);
34829
35287
  let redirectFrom = null;
34830
35288
  if (redirect) {
34831
- const { segments: toSegments, queryString } = redirect.to;
34832
- this.setSegments(toSegments, direction, queryString);
35289
+ const { segments: toSegments, queryString, fragment } = redirect.to;
35290
+ this.setSegments(toSegments, direction, queryString, fragment);
34833
35291
  redirectFrom = redirect.from;
34834
35292
  segments = toSegments;
34835
35293
  }
@@ -34909,13 +35367,35 @@ class Router {
34909
35367
  }
34910
35368
  return changed;
34911
35369
  }
34912
- setSegments(segments, direction, queryString) {
35370
+ setSegments(segments, direction, queryString, fragment) {
34913
35371
  this.state++;
34914
- writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString);
35372
+ // Every URL write invalidates any in-flight fragment scroll: a newer nav
35373
+ // (with or without a fragment, successful or not) should always supersede.
35374
+ this.fragmentScrollToken++;
35375
+ writeSegments(window.history, this.root, this.useHash, segments, direction, this.state, queryString, fragment);
34915
35376
  }
34916
35377
  getSegments() {
34917
35378
  return readSegments(window.location, this.root, this.useHash);
34918
35379
  }
35380
+ getFragment() {
35381
+ // In hash mode the URL fragment trails a second `#` (e.g. `#/path#anchor`);
35382
+ // parse the routing portion to extract it.
35383
+ const raw = this.useHash ? parsePath(window.location.hash.slice(1)).fragment : window.location.hash.slice(1);
35384
+ return raw ? raw : undefined;
35385
+ }
35386
+ /**
35387
+ * Fires a best-effort scroll to the current URL fragment. The scroll bails
35388
+ * if a newer `setSegments` advances `fragmentScrollToken` mid-flight.
35389
+ */
35390
+ maybeScrollToFragment() {
35391
+ const fragment = this.getFragment();
35392
+ if (!fragment)
35393
+ return;
35394
+ const token = this.fragmentScrollToken;
35395
+ // Fire-and-forget; the returned promise resolves only after the scroll
35396
+ // animation completes, which the caller does not need to await.
35397
+ scrollToFragment(fragment, () => token === this.fragmentScrollToken).catch(() => { });
35398
+ }
34919
35399
  routeChangeEvent(toSegments, redirectFromSegments) {
34920
35400
  const from = this.previousPath;
34921
35401
  const to = generatePath(toSegments);
@@ -39365,7 +39845,7 @@ const createSwipeToDismissGesture = (el, toastPosition, onDismiss) => {
39365
39845
  * consider when the threshold is a negative in the event the
39366
39846
  * user drags up (since the deltaY will also be negative).
39367
39847
  */
39368
- shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -0.5 / 2;
39848
+ shouldDismiss = threshold >= DISMISS_THRESHOLD / 2 || threshold <= -DISMISS_THRESHOLD / 2;
39369
39849
  /**
39370
39850
  * Since we are replacing the keyframes
39371
39851
  * below the animation always starts from
@@ -40270,10 +40750,10 @@ class Toggle {
40270
40750
  }
40271
40751
  const shouldToggle = (rtl, checked, deltaX, margin) => {
40272
40752
  if (checked) {
40273
- return (!rtl && margin > deltaX) || (rtl && 10 < deltaX);
40753
+ return (!rtl && margin > deltaX) || (rtl && -margin < deltaX);
40274
40754
  }
40275
40755
  else {
40276
- return (!rtl && 10 < deltaX) || (rtl && margin > deltaX);
40756
+ return (!rtl && -margin < deltaX) || (rtl && margin > deltaX);
40277
40757
  }
40278
40758
  };
40279
40759
  let toggleIds = 0;
@@ -41422,7 +41902,7 @@ var NAMESPACE = (
41422
41902
  );
41423
41903
 
41424
41904
  /*
41425
- Stencil Hydrate Runner v4.43.0 | MIT Licensed | https://stenciljs.com
41905
+ Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
41426
41906
  */
41427
41907
  var __create = Object.create;
41428
41908
  var __defProp = Object.defineProperty;
@@ -42753,11 +43233,11 @@ var fromCodePoint = (
42753
43233
  }
42754
43234
  );
42755
43235
  function replaceCodePoint(codePoint) {
42756
- var _a2;
43236
+ var _a3;
42757
43237
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
42758
43238
  return 65533;
42759
43239
  }
42760
- return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint;
43240
+ return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
42761
43241
  }
42762
43242
 
42763
43243
  // node_modules/entities/lib/esm/decode.js
@@ -42954,9 +43434,9 @@ var EntityDecoder = class {
42954
43434
  * @returns The number of characters that were consumed.
42955
43435
  */
42956
43436
  emitNumericEntity(lastCp, expectedLength) {
42957
- var _a2;
43437
+ var _a3;
42958
43438
  if (this.consumed <= expectedLength) {
42959
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43439
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
42960
43440
  return 0;
42961
43441
  }
42962
43442
  if (lastCp === CharCodes.SEMI) {
@@ -43016,11 +43496,11 @@ var EntityDecoder = class {
43016
43496
  * @returns The number of characters consumed.
43017
43497
  */
43018
43498
  emitNotTerminatedNamedEntity() {
43019
- var _a2;
43499
+ var _a3;
43020
43500
  const { result, decodeTree } = this;
43021
43501
  const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
43022
43502
  this.emitNamedEntityData(result, valueLength, this.consumed);
43023
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
43503
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
43024
43504
  return this.consumed;
43025
43505
  }
43026
43506
  /**
@@ -43048,7 +43528,7 @@ var EntityDecoder = class {
43048
43528
  * @returns The number of characters consumed.
43049
43529
  */
43050
43530
  end() {
43051
- var _a2;
43531
+ var _a3;
43052
43532
  switch (this.state) {
43053
43533
  case EntityDecoderState.NamedEntity: {
43054
43534
  return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
@@ -43061,7 +43541,7 @@ var EntityDecoder = class {
43061
43541
  return this.emitNumericEntity(0, 3);
43062
43542
  }
43063
43543
  case EntityDecoderState.NumericStart: {
43064
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
43544
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
43065
43545
  return 0;
43066
43546
  }
43067
43547
  case EntityDecoderState.EntityStart: {
@@ -43542,8 +44022,8 @@ var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
43542
44022
  [TAG_NAMES.XMP, TAG_ID.XMP]
43543
44023
  ]);
43544
44024
  function getTagID(tagName) {
43545
- var _a2;
43546
- return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN;
44025
+ var _a3;
44026
+ return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== void 0 ? _a3 : TAG_ID.UNKNOWN;
43547
44027
  }
43548
44028
  var $ = TAG_ID;
43549
44029
  var SPECIAL_ELEMENTS = {
@@ -43810,8 +44290,8 @@ var Tokenizer = class {
43810
44290
  }
43811
44291
  //Errors
43812
44292
  _err(code, cpOffset = 0) {
43813
- var _a2, _b;
43814
- (_b = (_a2 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a2, this.preprocessor.getError(code, cpOffset));
44293
+ var _a3, _b;
44294
+ (_b = (_a3 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a3, this.preprocessor.getError(code, cpOffset));
43815
44295
  }
43816
44296
  // NOTE: `offset` may never run across line boundaries.
43817
44297
  getCurrentLocation(offset) {
@@ -43953,13 +44433,13 @@ var Tokenizer = class {
43953
44433
  this.currentLocation = this.getCurrentLocation(0);
43954
44434
  }
43955
44435
  _leaveAttrName() {
43956
- var _a2;
44436
+ var _a3;
43957
44437
  var _b;
43958
44438
  const token = this.currentToken;
43959
44439
  if (getTokenAttr(token, this.currentAttr.name) === null) {
43960
44440
  token.attrs.push(this.currentAttr);
43961
44441
  if (token.location && this.currentLocation) {
43962
- const attrLocations = (_a2 = (_b = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b.attrs = /* @__PURE__ */ Object.create(null);
44442
+ const attrLocations = (_a3 = (_b = token.location).attrs) !== null && _a3 !== void 0 ? _a3 : _b.attrs = /* @__PURE__ */ Object.create(null);
43963
44443
  attrLocations[this.currentAttr.name] = this.currentLocation;
43964
44444
  this._leaveAttrValue();
43965
44445
  }
@@ -47307,10 +47787,10 @@ var Parser = class {
47307
47787
  //Errors
47308
47788
  /** @internal */
47309
47789
  _err(token, code, beforeToken) {
47310
- var _a2;
47790
+ var _a3;
47311
47791
  if (!this.onParseError)
47312
47792
  return;
47313
- const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC;
47793
+ const loc = (_a3 = token.location) !== null && _a3 !== void 0 ? _a3 : BASE_LOC;
47314
47794
  const err2 = {
47315
47795
  code,
47316
47796
  startLine: loc.startLine,
@@ -47325,18 +47805,18 @@ var Parser = class {
47325
47805
  //Stack events
47326
47806
  /** @internal */
47327
47807
  onItemPush(node, tid, isTop) {
47328
- var _a2, _b;
47329
- (_b = (_a2 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a2, node);
47808
+ var _a3, _b;
47809
+ (_b = (_a3 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a3, node);
47330
47810
  if (isTop && this.openElements.stackTop > 0)
47331
47811
  this._setContextModes(node, tid);
47332
47812
  }
47333
47813
  /** @internal */
47334
47814
  onItemPop(node, isTop) {
47335
- var _a2, _b;
47815
+ var _a3, _b;
47336
47816
  if (this.options.sourceCodeLocationInfo) {
47337
47817
  this._setEndLocation(node, this.currentToken);
47338
47818
  }
47339
- (_b = (_a2 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a2, node, this.openElements.current);
47819
+ (_b = (_a3 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a3, node, this.openElements.current);
47340
47820
  if (isTop) {
47341
47821
  let current;
47342
47822
  let currentTagId;
@@ -49410,9 +49890,9 @@ function eofInBody(p, token) {
49410
49890
  }
49411
49891
  }
49412
49892
  function endTagInText(p, token) {
49413
- var _a2;
49893
+ var _a3;
49414
49894
  if (token.tagID === TAG_ID.SCRIPT) {
49415
- (_a2 = p.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p, p.openElements.current);
49895
+ (_a3 = p.scriptHandler) === null || _a3 === void 0 ? void 0 : _a3.call(p, p.openElements.current);
49416
49896
  }
49417
49897
  p.openElements.pop();
49418
49898
  p.insertionMode = p.originalInsertionMode;
@@ -50074,7 +50554,7 @@ function startTagAfterBody(p, token) {
50074
50554
  }
50075
50555
  }
50076
50556
  function endTagAfterBody(p, token) {
50077
- var _a2;
50557
+ var _a3;
50078
50558
  if (token.tagID === TAG_ID.HTML) {
50079
50559
  if (!p.fragmentContext) {
50080
50560
  p.insertionMode = InsertionMode.AFTER_AFTER_BODY;
@@ -50082,7 +50562,7 @@ function endTagAfterBody(p, token) {
50082
50562
  if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === TAG_ID.HTML) {
50083
50563
  p._setEndLocation(p.openElements.items[0], token);
50084
50564
  const bodyElement = p.openElements.items[1];
50085
- if (bodyElement && !((_a2 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) {
50565
+ if (bodyElement && !((_a3 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a3 === void 0 ? void 0 : _a3.endTag)) {
50086
50566
  p._setEndLocation(bodyElement, token);
50087
50567
  }
50088
50568
  }
@@ -51946,7 +52426,7 @@ function serializeNodeToHtml(elm, serializationOptions = {}) {
51946
52426
  }
51947
52427
  var shadowRootTag = "mock:shadow-root";
51948
52428
  function* streamToHtml(node, opts, output) {
51949
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
52429
+ var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
51950
52430
  const isShadowRoot = node.nodeType === 11 /* DOCUMENT_FRAGMENT_NODE */;
51951
52431
  if (node.nodeType === 1 /* ELEMENT_NODE */ || isShadowRoot) {
51952
52432
  const tagName = isShadowRoot ? shadowRootTag : getTagName(node);
@@ -51955,7 +52435,7 @@ function* streamToHtml(node, opts, output) {
51955
52435
  }
51956
52436
  const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
51957
52437
  if (ignoreTag === false) {
51958
- const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a2 = opts.indentSpaces) != null ? _a2 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
52438
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a3 = opts.indentSpaces) != null ? _a3 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
51959
52439
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
51960
52440
  yield "\n";
51961
52441
  output.currentLineWidth = 0;
@@ -52474,9 +52954,7 @@ var MockNode2 = class {
52474
52954
  const firstChild = this.firstChild;
52475
52955
  items.forEach((item) => {
52476
52956
  const isNode = typeof item === "object" && item !== null && "nodeType" in item;
52477
- if (firstChild) {
52478
- this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52479
- }
52957
+ this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
52480
52958
  });
52481
52959
  }
52482
52960
  cloneNode(deep) {
@@ -52525,8 +53003,8 @@ var MockNode2 = class {
52525
53003
  return null;
52526
53004
  }
52527
53005
  get nodeValue() {
52528
- var _a2;
52529
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53006
+ var _a3;
53007
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52530
53008
  }
52531
53009
  set nodeValue(value) {
52532
53010
  this._nodeValue = value;
@@ -52586,8 +53064,8 @@ var MockNode2 = class {
52586
53064
  return null;
52587
53065
  }
52588
53066
  get textContent() {
52589
- var _a2;
52590
- return (_a2 = this._nodeValue) != null ? _a2 : "";
53067
+ var _a3;
53068
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
52591
53069
  }
52592
53070
  set textContent(value) {
52593
53071
  this._nodeValue = String(value);
@@ -52646,9 +53124,9 @@ var MockElement = class extends MockNode2 {
52646
53124
  addEventListener(this, type, handler);
52647
53125
  }
52648
53126
  attachShadow(_opts) {
52649
- var _a2;
53127
+ var _a3;
52650
53128
  const shadowRoot = this.ownerDocument.createDocumentFragment();
52651
- shadowRoot.delegatesFocus = (_a2 = _opts.delegatesFocus) != null ? _a2 : false;
53129
+ shadowRoot.delegatesFocus = (_a3 = _opts.delegatesFocus) != null ? _a3 : false;
52652
53130
  this.shadowRoot = shadowRoot;
52653
53131
  return shadowRoot;
52654
53132
  }
@@ -52719,6 +53197,9 @@ var MockElement = class extends MockNode2 {
52719
53197
  get part() {
52720
53198
  return new MockTokenList(this, "part");
52721
53199
  }
53200
+ set part(value) {
53201
+ this.setAttributeNS(null, "part", String(value));
53202
+ }
52722
53203
  click() {
52723
53204
  dispatchEvent(this, new MockEvent("click", { bubbles: true, cancelable: true, composed: true }));
52724
53205
  }
@@ -52821,8 +53302,8 @@ var MockElement = class extends MockNode2 {
52821
53302
  });
52822
53303
  }
52823
53304
  set innerHTML(html) {
52824
- var _a2;
52825
- if (NON_ESCAPABLE_CONTENT.has((_a2 = this.nodeName) != null ? _a2 : "") === true) {
53305
+ var _a3;
53306
+ if (NON_ESCAPABLE_CONTENT.has((_a3 = this.nodeName) != null ? _a3 : "") === true) {
52826
53307
  setTextContent(this, html);
52827
53308
  } else {
52828
53309
  for (let i = this.childNodes.length - 1; i >= 0; i--) {
@@ -53065,8 +53546,8 @@ var MockElement = class extends MockNode2 {
53065
53546
  this.setAttributeNS(null, "tabindex", value);
53066
53547
  }
53067
53548
  get tagName() {
53068
- var _a2;
53069
- return (_a2 = this.nodeName) != null ? _a2 : "";
53549
+ var _a3;
53550
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53070
53551
  }
53071
53552
  set tagName(value) {
53072
53553
  this.nodeName = value;
@@ -53288,11 +53769,11 @@ function getElementsByClassName(elm, classNames, foundElms) {
53288
53769
  }
53289
53770
  }
53290
53771
  function getElementsByTagName(elm, tagName, foundElms) {
53291
- var _a2;
53772
+ var _a3;
53292
53773
  const children = elm.children;
53293
53774
  for (let i = 0, ii = children.length; i < ii; i++) {
53294
53775
  const childElm = children[i];
53295
- if (tagName === "*" || ((_a2 = childElm.nodeName) != null ? _a2 : "").toLowerCase() === tagName) {
53776
+ if (tagName === "*" || ((_a3 = childElm.nodeName) != null ? _a3 : "").toLowerCase() === tagName) {
53296
53777
  foundElms.push(childElm);
53297
53778
  }
53298
53779
  getElementsByTagName(childElm, tagName, foundElms);
@@ -53329,8 +53810,8 @@ var MockHTMLElement = class extends MockElement {
53329
53810
  super(ownerDocument, typeof nodeName === "string" ? nodeName.toUpperCase() : null);
53330
53811
  }
53331
53812
  get tagName() {
53332
- var _a2;
53333
- return (_a2 = this.nodeName) != null ? _a2 : "";
53813
+ var _a3;
53814
+ return (_a3 = this.nodeName) != null ? _a3 : "";
53334
53815
  }
53335
53816
  set tagName(value) {
53336
53817
  this.nodeName = value;
@@ -53788,10 +54269,10 @@ var MockLabelElement = class extends MockHTMLElement {
53788
54269
  this.setAttributeNS(null, "for", value);
53789
54270
  }
53790
54271
  get control() {
53791
- var _a2, _b;
54272
+ var _a3, _b;
53792
54273
  const forAttr = this.htmlFor;
53793
54274
  if (forAttr) {
53794
- return (_b = (_a2 = this.ownerDocument) == null ? void 0 : _a2.getElementById(forAttr)) != null ? _b : null;
54275
+ return (_b = (_a3 = this.ownerDocument) == null ? void 0 : _a3.getElementById(forAttr)) != null ? _b : null;
53795
54276
  }
53796
54277
  const labelableSelector = 'button, input:not([type="hidden"]), meter, output, progress, select, textarea';
53797
54278
  return this.querySelector(labelableSelector);
@@ -56299,18 +56780,34 @@ var RemoteValue = class _RemoteValue {
56299
56780
  };
56300
56781
 
56301
56782
  // src/utils/serialize.ts
56783
+ function encodeBase64Unicode(str) {
56784
+ const utf8Bytes = new TextEncoder().encode(str);
56785
+ let binary = "";
56786
+ for (let i = 0; i < utf8Bytes.length; i++) {
56787
+ binary += String.fromCharCode(utf8Bytes[i]);
56788
+ }
56789
+ return btoa(binary);
56790
+ }
56791
+ function decodeBase64Unicode(base64) {
56792
+ const binary = atob(base64);
56793
+ const bytes = new Uint8Array(binary.length);
56794
+ for (let i = 0; i < binary.length; i++) {
56795
+ bytes[i] = binary.charCodeAt(i);
56796
+ }
56797
+ return new TextDecoder().decode(bytes);
56798
+ }
56302
56799
  function serializeProperty(value) {
56303
56800
  if (["string", "boolean", "undefined"].includes(typeof value) || typeof value === "number" && value !== Infinity && value !== -Infinity && !isNaN(value)) {
56304
56801
  return value;
56305
56802
  }
56306
56803
  const arg = LocalValue.getArgument(value);
56307
- return SERIALIZED_PREFIX + btoa(JSON.stringify(arg));
56804
+ return SERIALIZED_PREFIX + encodeBase64Unicode(JSON.stringify(arg));
56308
56805
  }
56309
56806
  function deserializeProperty(value) {
56310
56807
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
56311
56808
  return value;
56312
56809
  }
56313
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
56810
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
56314
56811
  }
56315
56812
  var CAPTURE_EVENT_SUFFIX = "Capture";
56316
56813
  var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
@@ -56504,8 +57001,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
56504
57001
  };
56505
57002
 
56506
57003
  // node_modules/minimatch/dist/esm/ast.js
57004
+ var _a2;
56507
57005
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
56508
57006
  var isExtglobType = (c) => types.has(c);
57007
+ var isExtglobAST = (c) => isExtglobType(c.type);
57008
+ var adoptionMap = /* @__PURE__ */ new Map([
57009
+ ["!", ["@"]],
57010
+ ["?", ["?", "@"]],
57011
+ ["@", ["@"]],
57012
+ ["*", ["*", "+", "?", "@"]],
57013
+ ["+", ["+", "@"]]
57014
+ ]);
57015
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
57016
+ ["!", ["?"]],
57017
+ ["@", ["?"]],
57018
+ ["+", ["?", "*"]]
57019
+ ]);
57020
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
57021
+ ["!", ["?", "@"]],
57022
+ ["?", ["?", "@"]],
57023
+ ["@", ["?", "@"]],
57024
+ ["*", ["*", "+", "?", "@"]],
57025
+ ["+", ["+", "@", "?", "*"]]
57026
+ ]);
57027
+ var usurpMap = /* @__PURE__ */ new Map([
57028
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
57029
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
57030
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
57031
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
57032
+ ]);
56509
57033
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
56510
57034
  var startNoDot = "(?!\\.)";
56511
57035
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -56515,8 +57039,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
56515
57039
  var qmark = "[^/]";
56516
57040
  var star = qmark + "*?";
56517
57041
  var starNoEmpty = qmark + "+?";
56518
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
56519
- var _AST = class _AST {
57042
+ 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;
57043
+ var AST = class {
56520
57044
  constructor(type, parent, options = {}) {
56521
57045
  __privateAdd(this, _AST_instances);
56522
57046
  __publicField(this, "type");
@@ -56569,44 +57093,44 @@ var _AST = class _AST {
56569
57093
  for (const p of parts) {
56570
57094
  if (p === "")
56571
57095
  continue;
56572
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
57096
+ if (typeof p !== "string" && !(p instanceof _a2 && __privateGet(p, _parent) === this)) {
56573
57097
  throw new Error("invalid part: " + p);
56574
57098
  }
56575
57099
  __privateGet(this, _parts).push(p);
56576
57100
  }
56577
57101
  }
56578
57102
  toJSON() {
56579
- var _a2;
57103
+ var _a3;
56580
57104
  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())];
56581
57105
  if (this.isStart() && !this.type)
56582
57106
  ret.unshift([]);
56583
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
57107
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")) {
56584
57108
  ret.push({});
56585
57109
  }
56586
57110
  return ret;
56587
57111
  }
56588
57112
  isStart() {
56589
- var _a2;
57113
+ var _a3;
56590
57114
  if (__privateGet(this, _root) === this)
56591
57115
  return true;
56592
- if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
57116
+ if (!((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.isStart()))
56593
57117
  return false;
56594
57118
  if (__privateGet(this, _parentIndex) === 0)
56595
57119
  return true;
56596
57120
  const p = __privateGet(this, _parent);
56597
57121
  for (let i = 0; i < __privateGet(this, _parentIndex); i++) {
56598
57122
  const pp = __privateGet(p, _parts)[i];
56599
- if (!(pp instanceof _AST && pp.type === "!")) {
57123
+ if (!(pp instanceof _a2 && pp.type === "!")) {
56600
57124
  return false;
56601
57125
  }
56602
57126
  }
56603
57127
  return true;
56604
57128
  }
56605
57129
  isEnd() {
56606
- var _a2, _b, _c;
57130
+ var _a3, _b, _c;
56607
57131
  if (__privateGet(this, _root) === this)
56608
57132
  return true;
56609
- if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
57133
+ if (((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")
56610
57134
  return true;
56611
57135
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
56612
57136
  return false;
@@ -56622,16 +57146,16 @@ var _AST = class _AST {
56622
57146
  this.push(part.clone(this));
56623
57147
  }
56624
57148
  clone(parent) {
56625
- const c = new _AST(this.type, parent);
57149
+ const c = new _a2(this.type, parent);
56626
57150
  for (const p of __privateGet(this, _parts)) {
56627
57151
  c.copyIn(p);
56628
57152
  }
56629
57153
  return c;
56630
57154
  }
56631
57155
  static fromGlob(pattern, options = {}) {
56632
- var _a2;
56633
- const ast = new _AST(null, void 0, options);
56634
- __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options);
57156
+ var _a3;
57157
+ const ast = new _a2(null, void 0, options);
57158
+ __privateMethod(_a3 = _a2, _AST_static, parseAST_fn).call(_a3, pattern, ast, 0, options, 0);
56635
57159
  return ast;
56636
57160
  }
56637
57161
  // returns the regular expression if there's magic, or the unescaped
@@ -56724,15 +57248,17 @@ var _AST = class _AST {
56724
57248
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
56725
57249
  // or start or whatever) and prepend ^ or / at the Regexp construction.
56726
57250
  toRegExpSource(allowDot) {
56727
- var _a2;
57251
+ var _a3;
56728
57252
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
56729
- if (__privateGet(this, _root) === this)
57253
+ if (__privateGet(this, _root) === this) {
57254
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
56730
57255
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
56731
- if (!this.type) {
57256
+ }
57257
+ if (!isExtglobAST(this)) {
56732
57258
  const noEmpty = this.isStart() && this.isEnd();
56733
57259
  const src = __privateGet(this, _parts).map((p) => {
56734
- var _a3;
56735
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _AST, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
57260
+ var _a4;
57261
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a4 = _a2, _AST_static, parseGlob_fn).call(_a4, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
56736
57262
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
56737
57263
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
56738
57264
  return re;
@@ -56755,7 +57281,7 @@ var _AST = class _AST {
56755
57281
  }
56756
57282
  }
56757
57283
  let end = "";
56758
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
57284
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!") {
56759
57285
  end = "(?:$|\\/)";
56760
57286
  }
56761
57287
  const final2 = start2 + src + end;
@@ -56771,9 +57297,10 @@ var _AST = class _AST {
56771
57297
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
56772
57298
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
56773
57299
  const s = this.toString();
56774
- __privateSet(this, _parts, [s]);
56775
- this.type = null;
56776
- __privateSet(this, _hasMagic, void 0);
57300
+ const me = this;
57301
+ __privateSet(me, _parts, [s]);
57302
+ me.type = null;
57303
+ __privateSet(me, _hasMagic, void 0);
56777
57304
  return [s, unescape(this.toString()), false, false];
56778
57305
  }
56779
57306
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -56842,8 +57369,9 @@ fillNegs_fn = function() {
56842
57369
  return this;
56843
57370
  };
56844
57371
  _AST_static = new WeakSet();
56845
- parseAST_fn = function(str, ast, pos, opt) {
56846
- var _a2, _b;
57372
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
57373
+ var _a3, _b, _c, _d, _e;
57374
+ const maxDepth = (_a3 = opt.maxExtglobRecursion) != null ? _a3 : 2;
56847
57375
  let escaping = false;
56848
57376
  let inBrace = false;
56849
57377
  let braceStart = -1;
@@ -56875,11 +57403,12 @@ parseAST_fn = function(str, ast, pos, opt) {
56875
57403
  acc2 += c;
56876
57404
  continue;
56877
57405
  }
56878
- if (!opt.noext && isExtglobType(c) && str.charAt(i2) === "(") {
57406
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i2) === "(" && extDepth <= maxDepth;
57407
+ if (doRecurse) {
56879
57408
  ast.push(acc2);
56880
57409
  acc2 = "";
56881
- const ext2 = new _AST(c, ast);
56882
- i2 = __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, str, ext2, i2, opt);
57410
+ const ext2 = new _a2(c, ast);
57411
+ i2 = __privateMethod(_b = _a2, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt, extDepth + 1);
56883
57412
  ast.push(ext2);
56884
57413
  continue;
56885
57414
  }
@@ -56889,7 +57418,7 @@ parseAST_fn = function(str, ast, pos, opt) {
56889
57418
  return i2;
56890
57419
  }
56891
57420
  let i = pos + 1;
56892
- let part = new _AST(null, ast);
57421
+ let part = new _a2(null, ast);
56893
57422
  const parts = [];
56894
57423
  let acc = "";
56895
57424
  while (i < str.length) {
@@ -56916,19 +57445,22 @@ parseAST_fn = function(str, ast, pos, opt) {
56916
57445
  acc += c;
56917
57446
  continue;
56918
57447
  }
56919
- if (isExtglobType(c) && str.charAt(i) === "(") {
57448
+ const doRecurse = isExtglobType(c) && str.charAt(i) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
57449
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
57450
+ if (doRecurse) {
57451
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
56920
57452
  part.push(acc);
56921
57453
  acc = "";
56922
- const ext2 = new _AST(c, part);
57454
+ const ext2 = new _a2(c, part);
56923
57455
  part.push(ext2);
56924
- i = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i, opt);
57456
+ i = __privateMethod(_e = _a2, _AST_static, parseAST_fn).call(_e, str, ext2, i, opt, extDepth + depthAdd);
56925
57457
  continue;
56926
57458
  }
56927
57459
  if (c === "|") {
56928
57460
  part.push(acc);
56929
57461
  acc = "";
56930
57462
  parts.push(part);
56931
- part = new _AST(null, ast);
57463
+ part = new _a2(null, ast);
56932
57464
  continue;
56933
57465
  }
56934
57466
  if (c === ")") {
@@ -56947,6 +57479,100 @@ parseAST_fn = function(str, ast, pos, opt) {
56947
57479
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
56948
57480
  return i;
56949
57481
  };
57482
+ canAdoptWithSpace_fn = function(child) {
57483
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
57484
+ };
57485
+ canAdopt_fn = function(child, map2 = adoptionMap) {
57486
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
57487
+ return false;
57488
+ }
57489
+ const gc = __privateGet(child, _parts)[0];
57490
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57491
+ return false;
57492
+ }
57493
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
57494
+ };
57495
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
57496
+ var _a3;
57497
+ return !!((_a3 = map2.get(this.type)) == null ? void 0 : _a3.includes(c));
57498
+ };
57499
+ adoptWithSpace_fn = function(child, index) {
57500
+ const gc = __privateGet(child, _parts)[0];
57501
+ const blank = new _a2(null, gc, this.options);
57502
+ __privateGet(blank, _parts).push("");
57503
+ gc.push(blank);
57504
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
57505
+ };
57506
+ adopt_fn = function(child, index) {
57507
+ const gc = __privateGet(child, _parts)[0];
57508
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
57509
+ for (const p of __privateGet(gc, _parts)) {
57510
+ if (typeof p === "object")
57511
+ __privateSet(p, _parent, this);
57512
+ }
57513
+ __privateSet(this, _toString, void 0);
57514
+ };
57515
+ canUsurpType_fn = function(c) {
57516
+ const m = usurpMap.get(this.type);
57517
+ return !!(m == null ? void 0 : m.has(c));
57518
+ };
57519
+ canUsurp_fn = function(child) {
57520
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
57521
+ return false;
57522
+ }
57523
+ const gc = __privateGet(child, _parts)[0];
57524
+ if (!gc || typeof gc !== "object" || gc.type === null) {
57525
+ return false;
57526
+ }
57527
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
57528
+ };
57529
+ usurp_fn = function(child) {
57530
+ const m = usurpMap.get(this.type);
57531
+ const gc = __privateGet(child, _parts)[0];
57532
+ const nt = m == null ? void 0 : m.get(gc.type);
57533
+ if (!nt)
57534
+ return false;
57535
+ __privateSet(this, _parts, __privateGet(gc, _parts));
57536
+ for (const p of __privateGet(this, _parts)) {
57537
+ if (typeof p === "object")
57538
+ __privateSet(p, _parent, this);
57539
+ }
57540
+ this.type = nt;
57541
+ __privateSet(this, _toString, void 0);
57542
+ __privateSet(this, _emptyExt, false);
57543
+ };
57544
+ flatten_fn = function() {
57545
+ var _a3, _b;
57546
+ if (!isExtglobAST(this)) {
57547
+ for (const p of __privateGet(this, _parts)) {
57548
+ if (typeof p === "object")
57549
+ __privateMethod(_a3 = p, _AST_instances, flatten_fn).call(_a3);
57550
+ }
57551
+ } else {
57552
+ let iterations = 0;
57553
+ let done = false;
57554
+ do {
57555
+ done = true;
57556
+ for (let i = 0; i < __privateGet(this, _parts).length; i++) {
57557
+ const c = __privateGet(this, _parts)[i];
57558
+ if (typeof c === "object") {
57559
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
57560
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
57561
+ done = false;
57562
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i);
57563
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
57564
+ done = false;
57565
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i);
57566
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
57567
+ done = false;
57568
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
57569
+ }
57570
+ }
57571
+ }
57572
+ } while (!done && ++iterations < 10);
57573
+ }
57574
+ __privateSet(this, _toString, void 0);
57575
+ };
56950
57576
  partsToRegExp_fn = function(dot) {
56951
57577
  return __privateGet(this, _parts).map((p) => {
56952
57578
  if (typeof p === "string") {
@@ -56961,11 +57587,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
56961
57587
  let escaping = false;
56962
57588
  let re = "";
56963
57589
  let uflag = false;
57590
+ let inStar = false;
56964
57591
  for (let i = 0; i < glob.length; i++) {
56965
57592
  const c = glob.charAt(i);
56966
57593
  if (escaping) {
56967
57594
  escaping = false;
56968
57595
  re += (reSpecials.has(c) ? "\\" : "") + c;
57596
+ inStar = false;
56969
57597
  continue;
56970
57598
  }
56971
57599
  if (c === "\\") {
@@ -56983,16 +57611,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
56983
57611
  uflag = uflag || needUflag;
56984
57612
  i += consumed - 1;
56985
57613
  hasMagic = hasMagic || magic;
57614
+ inStar = false;
56986
57615
  continue;
56987
57616
  }
56988
57617
  }
56989
57618
  if (c === "*") {
56990
- if (noEmpty && glob === "*")
56991
- re += starNoEmpty;
56992
- else
56993
- re += star;
57619
+ if (inStar)
57620
+ continue;
57621
+ inStar = true;
57622
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
56994
57623
  hasMagic = true;
56995
57624
  continue;
57625
+ } else {
57626
+ inStar = false;
56996
57627
  }
56997
57628
  if (c === "?") {
56998
57629
  re += qmark;
@@ -57003,8 +57634,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
57003
57634
  }
57004
57635
  return [re, unescape(glob), !!hasMagic, uflag];
57005
57636
  };
57006
- __privateAdd(_AST, _AST_static);
57007
- var AST = _AST;
57637
+ __privateAdd(AST, _AST_static);
57638
+ _a2 = AST;
57008
57639
 
57009
57640
  // node_modules/minimatch/dist/esm/escape.js
57010
57641
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -57143,28 +57774,33 @@ var match = (list, pattern, options = {}) => {
57143
57774
  minimatch.match = match;
57144
57775
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
57145
57776
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
57777
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
57146
57778
  var Minimatch = class {
57147
- options;
57148
- set;
57149
- pattern;
57150
- windowsPathsNoEscape;
57151
- nonegate;
57152
- negate;
57153
- comment;
57154
- empty;
57155
- preserveMultipleSlashes;
57156
- partial;
57157
- globSet;
57158
- globParts;
57159
- nocase;
57160
- isWindows;
57161
- platform;
57162
- windowsNoMagicRoot;
57163
- regexp;
57164
57779
  constructor(pattern, options = {}) {
57780
+ __privateAdd(this, _Minimatch_instances);
57781
+ __publicField(this, "options");
57782
+ __publicField(this, "set");
57783
+ __publicField(this, "pattern");
57784
+ __publicField(this, "windowsPathsNoEscape");
57785
+ __publicField(this, "nonegate");
57786
+ __publicField(this, "negate");
57787
+ __publicField(this, "comment");
57788
+ __publicField(this, "empty");
57789
+ __publicField(this, "preserveMultipleSlashes");
57790
+ __publicField(this, "partial");
57791
+ __publicField(this, "globSet");
57792
+ __publicField(this, "globParts");
57793
+ __publicField(this, "nocase");
57794
+ __publicField(this, "isWindows");
57795
+ __publicField(this, "platform");
57796
+ __publicField(this, "windowsNoMagicRoot");
57797
+ __publicField(this, "maxGlobstarRecursion");
57798
+ __publicField(this, "regexp");
57799
+ var _a3;
57165
57800
  assertValidPattern(pattern);
57166
57801
  options = options || {};
57167
57802
  this.options = options;
57803
+ this.maxGlobstarRecursion = (_a3 = options.maxGlobstarRecursion) != null ? _a3 : 200;
57168
57804
  this.pattern = pattern;
57169
57805
  this.platform = options.platform || defaultPlatform;
57170
57806
  this.isWindows = this.platform === "win32";
@@ -57432,10 +58068,11 @@ var Minimatch = class {
57432
58068
  for (let i = 0; i < globParts.length - 1; i++) {
57433
58069
  for (let j = i + 1; j < globParts.length; j++) {
57434
58070
  const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
57435
- if (!matched)
57436
- continue;
57437
- globParts[i] = matched;
57438
- globParts[j] = [];
58071
+ if (matched) {
58072
+ globParts[i] = [];
58073
+ globParts[j] = matched;
58074
+ break;
58075
+ }
57439
58076
  }
57440
58077
  }
57441
58078
  return globParts.filter((gs) => gs.length);
@@ -57496,7 +58133,8 @@ var Minimatch = class {
57496
58133
  // out of pattern, then that's fine, as long as all
57497
58134
  // the parts match.
57498
58135
  matchOne(file, pattern, partial = false) {
57499
- const options = this.options;
58136
+ let fileStartIndex = 0;
58137
+ let patternStartIndex = 0;
57500
58138
  if (this.isWindows) {
57501
58139
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
57502
58140
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -57505,14 +58143,14 @@ var Minimatch = class {
57505
58143
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
57506
58144
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
57507
58145
  if (typeof fdi === "number" && typeof pdi === "number") {
57508
- const [fd, pd] = [file[fdi], pattern[pdi]];
58146
+ const [fd, pd] = [
58147
+ file[fdi],
58148
+ pattern[pdi]
58149
+ ];
57509
58150
  if (fd.toLowerCase() === pd.toLowerCase()) {
57510
58151
  pattern[pdi] = fd;
57511
- if (pdi > fdi) {
57512
- pattern = pattern.slice(pdi);
57513
- } else if (fdi > pdi) {
57514
- file = file.slice(fdi);
57515
- }
58152
+ patternStartIndex = pdi;
58153
+ fileStartIndex = fdi;
57516
58154
  }
57517
58155
  }
57518
58156
  }
@@ -57520,71 +58158,10 @@ var Minimatch = class {
57520
58158
  if (optimizationLevel >= 2) {
57521
58159
  file = this.levelTwoFileOptimize(file);
57522
58160
  }
57523
- this.debug("matchOne", this, { file, pattern });
57524
- this.debug("matchOne", file.length, pattern.length);
57525
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
57526
- this.debug("matchOne loop");
57527
- var p = pattern[pi];
57528
- var f = file[fi];
57529
- this.debug(pattern, p, f);
57530
- if (p === false) {
57531
- return false;
57532
- }
57533
- if (p === GLOBSTAR) {
57534
- this.debug("GLOBSTAR", [pattern, p, f]);
57535
- var fr = fi;
57536
- var pr = pi + 1;
57537
- if (pr === pl) {
57538
- this.debug("** at the end");
57539
- for (; fi < fl; fi++) {
57540
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
57541
- return false;
57542
- }
57543
- return true;
57544
- }
57545
- while (fr < fl) {
57546
- var swallowee = file[fr];
57547
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
57548
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
57549
- this.debug("globstar found match!", fr, fl, swallowee);
57550
- return true;
57551
- } else {
57552
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
57553
- this.debug("dot detected!", file, fr, pattern, pr);
57554
- break;
57555
- }
57556
- this.debug("globstar swallow a segment, and continue");
57557
- fr++;
57558
- }
57559
- }
57560
- if (partial) {
57561
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
57562
- if (fr === fl) {
57563
- return true;
57564
- }
57565
- }
57566
- return false;
57567
- }
57568
- let hit;
57569
- if (typeof p === "string") {
57570
- hit = f === p;
57571
- this.debug("string match", p, f, hit);
57572
- } else {
57573
- hit = p.test(f);
57574
- this.debug("pattern match", p, f, hit);
57575
- }
57576
- if (!hit)
57577
- return false;
57578
- }
57579
- if (fi === fl && pi === pl) {
57580
- return true;
57581
- } else if (fi === fl) {
57582
- return partial;
57583
- } else if (pi === pl) {
57584
- return fi === fl - 1 && file[fi] === "";
57585
- } else {
57586
- throw new Error("wtf?");
58161
+ if (pattern.includes(GLOBSTAR)) {
58162
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57587
58163
  }
58164
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
57588
58165
  }
57589
58166
  braceExpand() {
57590
58167
  return braceExpand(this.pattern, this.options);
@@ -57723,6 +58300,135 @@ var Minimatch = class {
57723
58300
  return minimatch.defaults(def).Minimatch;
57724
58301
  }
57725
58302
  };
58303
+ _Minimatch_instances = new WeakSet();
58304
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58305
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
58306
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
58307
+ const [head, body, tail] = partial ? [
58308
+ pattern.slice(patternIndex, firstgs),
58309
+ pattern.slice(firstgs + 1),
58310
+ []
58311
+ ] : [
58312
+ pattern.slice(patternIndex, firstgs),
58313
+ pattern.slice(firstgs + 1, lastgs),
58314
+ pattern.slice(lastgs + 1)
58315
+ ];
58316
+ if (head.length) {
58317
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
58318
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
58319
+ return false;
58320
+ fileIndex += head.length;
58321
+ }
58322
+ let fileTailMatch = 0;
58323
+ if (tail.length) {
58324
+ if (tail.length + fileIndex > file.length)
58325
+ return false;
58326
+ let tailStart = file.length - tail.length;
58327
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
58328
+ fileTailMatch = tail.length;
58329
+ } else {
58330
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
58331
+ return false;
58332
+ }
58333
+ tailStart--;
58334
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
58335
+ return false;
58336
+ fileTailMatch = tail.length + 1;
58337
+ }
58338
+ }
58339
+ if (!body.length) {
58340
+ let sawSome = !!fileTailMatch;
58341
+ for (let i2 = fileIndex; i2 < file.length - fileTailMatch; i2++) {
58342
+ const f = String(file[i2]);
58343
+ sawSome = true;
58344
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58345
+ return false;
58346
+ }
58347
+ }
58348
+ return partial || sawSome;
58349
+ }
58350
+ const bodySegments = [[[], 0]];
58351
+ let currentBody = bodySegments[0];
58352
+ let nonGsParts = 0;
58353
+ const nonGsPartsSums = [0];
58354
+ for (const b of body) {
58355
+ if (b === GLOBSTAR) {
58356
+ nonGsPartsSums.push(nonGsParts);
58357
+ currentBody = [[], 0];
58358
+ bodySegments.push(currentBody);
58359
+ } else {
58360
+ currentBody[0].push(b);
58361
+ nonGsParts++;
58362
+ }
58363
+ }
58364
+ let i = bodySegments.length - 1;
58365
+ const fileLength = file.length - fileTailMatch;
58366
+ for (const b of bodySegments) {
58367
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
58368
+ }
58369
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
58370
+ };
58371
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
58372
+ const bs = bodySegments[bodyIndex];
58373
+ if (!bs) {
58374
+ for (let i = fileIndex; i < file.length; i++) {
58375
+ sawTail = true;
58376
+ const f = file[i];
58377
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58378
+ return false;
58379
+ }
58380
+ }
58381
+ return sawTail;
58382
+ }
58383
+ const [body, after] = bs;
58384
+ while (fileIndex <= after) {
58385
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
58386
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
58387
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
58388
+ if (sub !== false)
58389
+ return sub;
58390
+ }
58391
+ const f = file[fileIndex];
58392
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
58393
+ return false;
58394
+ }
58395
+ fileIndex++;
58396
+ }
58397
+ return partial || null;
58398
+ };
58399
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
58400
+ let fi;
58401
+ let pi;
58402
+ let pl;
58403
+ let fl;
58404
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
58405
+ this.debug("matchOne loop");
58406
+ let p = pattern[pi];
58407
+ let f = file[fi];
58408
+ this.debug(pattern, p, f);
58409
+ if (p === false || p === GLOBSTAR)
58410
+ return false;
58411
+ let hit;
58412
+ if (typeof p === "string") {
58413
+ hit = f === p;
58414
+ this.debug("string match", p, f, hit);
58415
+ } else {
58416
+ hit = p.test(f);
58417
+ this.debug("pattern match", p, f, hit);
58418
+ }
58419
+ if (!hit)
58420
+ return false;
58421
+ }
58422
+ if (fi === fl && pi === pl) {
58423
+ return true;
58424
+ } else if (fi === fl) {
58425
+ return partial;
58426
+ } else if (pi === pl) {
58427
+ return fi === fl - 1 && file[fi] === "";
58428
+ } else {
58429
+ throw new Error("wtf?");
58430
+ }
58431
+ };
57726
58432
  minimatch.AST = AST;
57727
58433
  minimatch.Minimatch = Minimatch;
57728
58434
  minimatch.escape = escape;
@@ -57793,7 +58499,7 @@ var isJsFile = lowerPathParam((p) => p.endsWith(".js") || p.endsWith(".mjs") ||
57793
58499
 
57794
58500
  // src/compiler/html/canonical-link.ts
57795
58501
  var updateCanonicalLink = (doc, href) => {
57796
- var _a2;
58502
+ var _a3;
57797
58503
  let canonicalLinkElm = doc.head.querySelector('link[rel="canonical"]');
57798
58504
  if (typeof href === "string") {
57799
58505
  if (canonicalLinkElm == null) {
@@ -57806,7 +58512,7 @@ var updateCanonicalLink = (doc, href) => {
57806
58512
  if (canonicalLinkElm != null) {
57807
58513
  const existingHref = canonicalLinkElm.getAttribute("href");
57808
58514
  if (!existingHref) {
57809
- (_a2 = canonicalLinkElm.parentNode) == null ? void 0 : _a2.removeChild(canonicalLinkElm);
58515
+ (_a3 = canonicalLinkElm.parentNode) == null ? void 0 : _a3.removeChild(canonicalLinkElm);
57810
58516
  }
57811
58517
  }
57812
58518
  }
@@ -58318,7 +59024,7 @@ var serializeCss = (stylesheet, serializeOpts) => {
58318
59024
  return out.join("");
58319
59025
  };
58320
59026
  var serializeCssVisitNode = (opts, node, index, len) => {
58321
- var _a2;
59027
+ var _a3;
58322
59028
  const nodeType = node.type;
58323
59029
  if (nodeType === 4 /* Declaration */) {
58324
59030
  return serializeCssDeclaration(node, index, len);
@@ -58327,7 +59033,7 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58327
59033
  return serializeCssRule(opts, node);
58328
59034
  }
58329
59035
  if (nodeType === 1 /* Comment */) {
58330
- if (((_a2 = node.comment) == null ? void 0 : _a2[0]) === "!") {
59036
+ if (((_a3 = node.comment) == null ? void 0 : _a3[0]) === "!") {
58331
59037
  return `/*${node.comment}*/`;
58332
59038
  } else {
58333
59039
  return "";
@@ -58375,10 +59081,10 @@ var serializeCssVisitNode = (opts, node, index, len) => {
58375
59081
  return "";
58376
59082
  };
58377
59083
  var serializeCssRule = (opts, node) => {
58378
- var _a2, _b;
59084
+ var _a3, _b;
58379
59085
  const decls = node.declarations;
58380
59086
  const usedSelectors = opts.usedSelectors;
58381
- const selectors = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.slice()) != null ? _b : [];
59087
+ const selectors = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.slice()) != null ? _b : [];
58382
59088
  const hasDecls = decls != null && decls.length > 0;
58383
59089
  const hasNestedRules = node.rules != null && node.rules.length > 0;
58384
59090
  if (!hasDecls && !hasNestedRules) {
@@ -58482,8 +59188,8 @@ var serializeCssKeyframes = (opts, node) => {
58482
59188
  return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + keyframesCss + "}";
58483
59189
  };
58484
59190
  var serializeCssKeyframe = (opts, node) => {
58485
- var _a2, _b;
58486
- return ((_b = (_a2 = node.values) == null ? void 0 : _a2.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
59191
+ var _a3, _b;
59192
+ return ((_b = (_a3 = node.values) == null ? void 0 : _a3.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58487
59193
  };
58488
59194
  var serializeCssFontFace = (opts, node) => {
58489
59195
  const fontCss = serializeCssMapVisit(opts, node.declarations);
@@ -58507,8 +59213,8 @@ var serializeCssContainer = (opts, node) => {
58507
59213
  return "@container " + removeMediaWhitespace(node.media) + "{" + containerCss + "}";
58508
59214
  };
58509
59215
  var serializeCssPage = (opts, node) => {
58510
- var _a2, _b;
58511
- const sel = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.join(", ")) != null ? _b : "";
59216
+ var _a3, _b;
59217
+ const sel = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.join(", ")) != null ? _b : "";
58512
59218
  return "@page " + sel + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
58513
59219
  };
58514
59220
  var serializeCssDocument = (opts, node) => {
@@ -58555,10 +59261,10 @@ var removeSelectorWhitespace = (selector) => {
58555
59261
  return rtn;
58556
59262
  };
58557
59263
  var removeMediaWhitespace = (media) => {
58558
- var _a2;
59264
+ var _a3;
58559
59265
  let rtn = "";
58560
59266
  let char = "";
58561
- media = (_a2 = media == null ? void 0 : media.trim()) != null ? _a2 : "";
59267
+ media = (_a3 = media == null ? void 0 : media.trim()) != null ? _a3 : "";
58562
59268
  for (let i = 0, l = media.length; i < l; i++) {
58563
59269
  char = media[i];
58564
59270
  if (CSS_WS_REG.test(char)) {