@piwitests/server 0.19.0 → 0.21.0

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 (732) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{279D2RYp.js → 9ti9eNH9.js} +1 -1
  3. package/.output/public/_nuxt/{DcmZRa_F.js → B-zdP-D4.js} +1 -1
  4. package/.output/public/_nuxt/{eaVkJRSa.js → B1RmmOsM.js} +1 -1
  5. package/.output/public/_nuxt/{DprVVyUQ.js → B3Fsod9X.js} +1 -1
  6. package/.output/public/_nuxt/{HXerICAi.js → B3rirOqU.js} +34 -34
  7. package/.output/public/_nuxt/B3zmIJYb.js +1 -0
  8. package/.output/public/_nuxt/{CDk0q2hV.js → BAKUqW95.js} +2 -2
  9. package/.output/public/_nuxt/BG0KKQiT.js +7 -0
  10. package/.output/public/_nuxt/BGL_V7Y4.js +1 -0
  11. package/.output/public/_nuxt/{Jo8kRmHz.js → BGusFAvZ.js} +1 -1
  12. package/.output/public/_nuxt/{CGNkHojN.js → BNurUTla.js} +3 -3
  13. package/.output/public/_nuxt/BR5cR2Ot.js +1 -0
  14. package/.output/public/_nuxt/BTCh_0zN.js +1 -0
  15. package/.output/public/_nuxt/{ZFiQCMUB.js → BTVqMsA3.js} +1 -1
  16. package/.output/public/_nuxt/{BqV0l12c.js → B_13C0GF.js} +1 -1
  17. package/.output/public/_nuxt/BeDIjhoR.js +44 -0
  18. package/.output/public/_nuxt/{BDicZ1gQ.js → BerCW7Ug.js} +1 -1
  19. package/.output/public/_nuxt/BfTNbVc_.js +1 -0
  20. package/.output/public/_nuxt/BnbSEpXX.js +1 -0
  21. package/.output/public/_nuxt/Bo_dxehb.js +1 -0
  22. package/.output/public/_nuxt/{ClOqkAcc.js → BpBHls4-.js} +1 -1
  23. package/.output/public/_nuxt/{C7P1UCO2.js → BpM6ZPIG.js} +1 -1
  24. package/.output/public/_nuxt/BqGumsDo.js +4 -0
  25. package/.output/public/_nuxt/{DS636elg.js → BrxtP_cN.js} +1 -1
  26. package/.output/public/_nuxt/{YVN7WG7q.js → C2hNxjjz.js} +1 -1
  27. package/.output/public/_nuxt/C5PSqfKi.js +2 -0
  28. package/.output/public/_nuxt/C5vsaU4G.js +1 -0
  29. package/.output/public/_nuxt/C9sdHaXd.js +1 -0
  30. package/.output/public/_nuxt/{SfMRXW25.js → CAxgBYIt.js} +2 -2
  31. package/.output/public/_nuxt/{CZfMdzfk.js → CES2i5Pl.js} +1 -1
  32. package/.output/public/_nuxt/{BX9ZXe98.js → CFEdRqaj.js} +1 -1
  33. package/.output/public/_nuxt/{B44A4LSJ.js → CFTZwazK.js} +1 -1
  34. package/.output/public/_nuxt/CIBS7ye6.js +1 -0
  35. package/.output/public/_nuxt/CIEceDOw.js +1 -0
  36. package/.output/public/_nuxt/{DHDtnj7p.js → CJBhojV6.js} +1 -1
  37. package/.output/public/_nuxt/{BPQoBGg5.js → CKYddHa6.js} +1 -1
  38. package/.output/public/_nuxt/{BccXfBfI.js → CLVWiCds.js} +1 -1
  39. package/.output/public/_nuxt/{DX-MDGb3.js → CMYAryzi.js} +1 -1
  40. package/.output/public/_nuxt/{BuMC3WjZ.js → COhdybDy.js} +1 -1
  41. package/.output/public/_nuxt/{Bu2aaVIY.js → CRBXM2d6.js} +2 -2
  42. package/.output/public/_nuxt/{BYDaY0Z7.js → CTD_pJ_v.js} +1 -1
  43. package/.output/public/_nuxt/{C9_jrmk9.js → CTP8Pw0-.js} +2 -2
  44. package/.output/public/_nuxt/{D55D4EYo.js → CV8iF2kG.js} +1 -1
  45. package/.output/public/_nuxt/{BCMuIgP5.js → CWKmbYlT.js} +1 -1
  46. package/.output/public/_nuxt/C_NfGMTd.js +9 -0
  47. package/.output/public/_nuxt/Cejoebel.js +6 -0
  48. package/.output/public/_nuxt/{Dnpkl-1q.js → Chpah_7l.js} +1 -1
  49. package/.output/public/_nuxt/Ci9d8YVV.js +1 -0
  50. package/.output/public/_nuxt/{C95YAaJq.js → CifRHVaR.js} +1 -1
  51. package/.output/public/_nuxt/{BMvCSA6h.js → Ckgsh9AT.js} +1 -1
  52. package/.output/public/_nuxt/{eptP4pGv.js → Cpsq-kYE.js} +1 -1
  53. package/.output/public/_nuxt/Cqc-DSTF.js +1 -0
  54. package/.output/public/_nuxt/{KnfsST6Y.js → CsHulb12.js} +1 -1
  55. package/.output/public/_nuxt/Ctb2CqUf.js +5 -0
  56. package/.output/public/_nuxt/CtstIQSh.js +1 -0
  57. package/.output/public/_nuxt/{DGfAxLHV.js → CvMzDKvu.js} +1 -1
  58. package/.output/public/_nuxt/{fVcG504p.js → D2pBhsH8.js} +1 -1
  59. package/.output/public/_nuxt/{rWNTSFD6.js → D8gX1Jde.js} +3 -3
  60. package/.output/public/_nuxt/D9knOn6D.js +1 -0
  61. package/.output/public/_nuxt/DAPTVdvA.js +1 -0
  62. package/.output/public/_nuxt/{NQikbhmK.js → DCFbQvIN.js} +44 -43
  63. package/.output/public/_nuxt/DCoJlz_q.js +1 -0
  64. package/.output/public/_nuxt/DGnQ69wW.js +64 -0
  65. package/.output/public/_nuxt/{CTxDO9fB.js → DHzij16p.js} +1 -1
  66. package/.output/public/_nuxt/DJMCXRuW.js +5 -0
  67. package/.output/public/_nuxt/DJXcGkJP.js +2 -0
  68. package/.output/public/_nuxt/{CK_2LZBS.js → DKFXZdWZ.js} +1 -1
  69. package/.output/public/_nuxt/{tvgqrYDd.js → DL24AjfW.js} +1 -1
  70. package/.output/public/_nuxt/DON74Yh6.js +1 -0
  71. package/.output/public/_nuxt/{CHEFCN8Q.js → DQM62mxB.js} +1 -1
  72. package/.output/public/_nuxt/DSe8DxMl.js +1 -0
  73. package/.output/public/_nuxt/DWwiVTZX.js +24 -0
  74. package/.output/public/_nuxt/DX4tAP78.js +1 -0
  75. package/.output/public/_nuxt/{DLSrtpsA.js → D_eDAIsT.js} +1 -1
  76. package/.output/public/_nuxt/Da8A92cF.js +1 -0
  77. package/.output/public/_nuxt/{BxCKKeYs.js → DdH3op4b.js} +1 -1
  78. package/.output/public/_nuxt/DepFDZO3.js +1 -0
  79. package/.output/public/_nuxt/{CV9-fTmY.js → DfSBKzrC.js} +1 -1
  80. package/.output/public/_nuxt/{DT53RWbC.js → DfnKh3dZ.js} +1 -1
  81. package/.output/public/_nuxt/{ndShiWE8.js → DhpTfeip.js} +1 -1
  82. package/.output/public/_nuxt/{ybDYeNxd.js → Dk9nD32g.js} +1 -1
  83. package/.output/public/_nuxt/{D0HNloZ9.js → DkT2nCqn.js} +1 -1
  84. package/.output/public/_nuxt/DlW85lQq.js +4 -0
  85. package/.output/public/_nuxt/DnNio-ut.js +1 -0
  86. package/.output/public/_nuxt/{BfTuX0wq.js → DnQv_hst.js} +1 -1
  87. package/.output/public/_nuxt/{FUXhyidq.js → DqEOMteW.js} +1 -1
  88. package/.output/public/_nuxt/{Bti38m-M.js → Dsvu7YJT.js} +1 -1
  89. package/.output/public/_nuxt/DvhCDBrR.js +2 -0
  90. package/.output/public/_nuxt/DwQaVMZR.js +1 -0
  91. package/.output/public/_nuxt/E-_n_6vi.js +1 -0
  92. package/.output/public/_nuxt/{DP8hfJ9h.js → Ebw5l7n8.js} +1 -1
  93. package/.output/public/_nuxt/{nv9-6vBK.js → IPePdbzl.js} +1 -1
  94. package/.output/public/_nuxt/{BPRffDuo.js → LHoUGrfi.js} +1 -1
  95. package/.output/public/_nuxt/{CYsTqbBS.js → NERLHpOL.js} +1 -1
  96. package/.output/public/_nuxt/RAdNGxcF.js +1 -0
  97. package/.output/public/_nuxt/Vxyo_mU9.js +1 -0
  98. package/.output/public/_nuxt/{IvQlbZk6.js → YE1kAkU9.js} +1 -1
  99. package/.output/public/_nuxt/{DgE2YE3R.js → YmT5WiN5.js} +1 -1
  100. package/.output/public/_nuxt/ZcAfCxWE.js +17 -0
  101. package/.output/public/_nuxt/{cHAnlQbv.js → _rglcvXN.js} +1 -1
  102. package/.output/public/_nuxt/bFU9Y1Vw.js +10 -0
  103. package/.output/public/_nuxt/bfecIH89.js +1 -0
  104. package/.output/public/_nuxt/builds/latest.json +1 -1
  105. package/.output/public/_nuxt/builds/meta/31ca2be4-a949-4df6-9818-773fc085557a.json +1 -0
  106. package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
  107. package/.output/public/_nuxt/four-S1Y.js +1 -0
  108. package/.output/public/_nuxt/{DiOLdHBC.js → gV2U_Gqd.js} +1 -1
  109. package/.output/public/_nuxt/{C-elpgyr.js → lGC893pn.js} +1 -1
  110. package/.output/public/_nuxt/nOfj-ar8.js +1 -0
  111. package/.output/public/_nuxt/oKrbs1XK.js +1 -0
  112. package/.output/public/_nuxt/oSJFAC38.js +1 -0
  113. package/.output/public/_nuxt/rL4C0HV5.js +1 -0
  114. package/.output/public/_nuxt/{Cdff9XNh.js → tQoyVPCE.js} +1 -1
  115. package/.output/public/_nuxt/{DEFEpYzn.js → uSPCvASp.js} +1 -1
  116. package/.output/public/_nuxt/{y17lMTFy.js → wkz5-1SO.js} +1 -1
  117. package/.output/public/_nuxt/yYlVYKCz.js +34 -0
  118. package/.output/public/_nuxt/{B9WhzpKO.js → zv8WdMx0.js} +1 -1
  119. package/.output/server/chunks/_/collect.mjs +1 -1
  120. package/.output/server/chunks/_/markers.mjs +1 -1
  121. package/.output/server/chunks/_/quarantine.mjs +1 -1
  122. package/.output/server/chunks/_/scope.mjs +43 -27
  123. package/.output/server/chunks/_/scope.mjs.map +1 -1
  124. package/.output/server/chunks/_/users.mjs +1 -1
  125. package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-3itRZ1uz.mjs} +2 -2
  126. package/.output/server/chunks/build/Breadcrumb-3itRZ1uz.mjs.map +1 -0
  127. package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-GnjBvXuT.mjs} +2 -2
  128. package/.output/server/chunks/build/BreadcrumbNav-GnjBvXuT.mjs.map +1 -0
  129. package/.output/server/chunks/build/{BrowserBadge-D33lqUcj.mjs → BrowserBadge-DQqJS9CV.mjs} +66 -6
  130. package/.output/server/chunks/build/BrowserBadge-DQqJS9CV.mjs.map +1 -0
  131. package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-D0rzMf-N.mjs} +2 -2
  132. package/.output/server/chunks/build/ChartCard-D0rzMf-N.mjs.map +1 -0
  133. package/.output/server/chunks/build/{Checkbox-DvUBGagc.mjs → Checkbox-DmRKG-0s.mjs} +5 -5
  134. package/.output/server/chunks/build/Checkbox-DmRKG-0s.mjs.map +1 -0
  135. package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-DGhKVFad.mjs} +4 -4
  136. package/.output/server/chunks/build/CodeBlock-DGhKVFad.mjs.map +1 -0
  137. package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DCr10nxL.mjs} +2 -2
  138. package/.output/server/chunks/build/DashboardNavbar-DCr10nxL.mjs.map +1 -0
  139. package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-8EpBhX0R.mjs} +3 -3
  140. package/.output/server/chunks/build/DashboardSidebarToggle-8EpBhX0R.mjs.map +1 -0
  141. package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-rzS-pgCP.mjs} +5 -5
  142. package/.output/server/chunks/build/DataLocationCard-rzS-pgCP.mjs.map +1 -0
  143. package/.output/server/chunks/build/{DiagnosisPanel-B646dK4p.mjs → DiagnosisPanel-BWTpoCKy.mjs} +8 -7
  144. package/.output/server/chunks/build/DiagnosisPanel-BWTpoCKy.mjs.map +1 -0
  145. package/.output/server/chunks/build/{useAiStatus-CWvIo32Q.mjs → DiagnosisResult-Br3qBLXe.mjs} +14 -36
  146. package/.output/server/chunks/build/DiagnosisResult-Br3qBLXe.mjs.map +1 -0
  147. package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-CWKfjIF2.mjs} +2 -2
  148. package/.output/server/chunks/build/DurationValue-CWKfjIF2.mjs.map +1 -0
  149. package/.output/server/chunks/build/{EmptyState-Dtlab7S9.mjs → EmptyState-DC2q_7TD.mjs} +3 -3
  150. package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +1 -0
  151. package/.output/server/chunks/build/{EntityLinks-D3fp57pR.mjs → EntityLinks-CF0xG3Y8.mjs} +6 -6
  152. package/.output/server/chunks/build/EntityLinks-CF0xG3Y8.mjs.map +1 -0
  153. package/.output/server/chunks/build/{EnvManagedBadge-Bg3FSiU1.mjs → EnvManagedBadge-UwD2b9v2.mjs} +3 -3
  154. package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +1 -0
  155. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs +83 -0
  156. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs.map +1 -0
  157. package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-e7OnSKPM.mjs} +2 -2
  158. package/.output/server/chunks/build/FormField-e7OnSKPM.mjs.map +1 -0
  159. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs +510 -0
  160. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs.map +1 -0
  161. package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-DjGrGFA7.mjs} +3 -3
  162. package/.output/server/chunks/build/HelpHint-DjGrGFA7.mjs.map +1 -0
  163. package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-B8v1nWJt.mjs} +3 -3
  164. package/.output/server/chunks/build/LoadingState-B8v1nWJt.mjs.map +1 -0
  165. package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs +1205 -0
  166. package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs.map +1 -0
  167. package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
  168. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
  169. package/.output/server/chunks/build/{Modal-Ck2XLt8d.mjs → Modal-pSDlXzT3.mjs} +2 -2
  170. package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +1 -0
  171. package/.output/server/chunks/build/{useSettingsNav-C3O866KC.mjs → NavigationMenu-cqpt11Ce.mjs} +6 -29
  172. package/.output/server/chunks/build/NavigationMenu-cqpt11Ce.mjs.map +1 -0
  173. package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs → OpenInIdeLink-B9wvQkhy.mjs} +5 -5
  174. package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs.map → OpenInIdeLink-B9wvQkhy.mjs.map} +1 -1
  175. package/.output/server/chunks/build/{ProjectTestCasesTable-CxfQ5wtN.mjs → ProjectTestCasesTable-BwHEtZTz.mjs} +19 -19
  176. package/.output/server/chunks/build/ProjectTestCasesTable-BwHEtZTz.mjs.map +1 -0
  177. package/.output/server/chunks/build/{RovingFocusItem-BJSzTBjy.mjs → RovingFocusItem--OEHI2P3.mjs} +2 -2
  178. package/.output/server/chunks/build/RovingFocusItem--OEHI2P3.mjs.map +1 -0
  179. package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-BDRIWn3o.mjs} +3 -3
  180. package/.output/server/chunks/build/RunReports-BDRIWn3o.mjs.map +1 -0
  181. package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CuTDknRJ.mjs} +2 -2
  182. package/.output/server/chunks/build/RunStatusBadge-CuTDknRJ.mjs.map +1 -0
  183. package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-BW5Lynrr.mjs} +2 -2
  184. package/.output/server/chunks/build/SectionCard-BW5Lynrr.mjs.map +1 -0
  185. package/.output/server/chunks/build/{Select-CUqj50wi.mjs → Select-CVctwpib.mjs} +3 -3
  186. package/.output/server/chunks/build/Select-CVctwpib.mjs.map +1 -0
  187. package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs → SelectMenu-XLVBEa11.mjs} +939 -7
  188. package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs.map → SelectMenu-XLVBEa11.mjs.map} +1 -1
  189. package/.output/server/chunks/build/{SettingsField-D6iEYbEc.mjs → SettingsField-DvtRvI6O.mjs} +4 -4
  190. package/.output/server/chunks/build/SettingsField-DvtRvI6O.mjs.map +1 -0
  191. package/.output/server/chunks/build/{Slideover-DgCa80mf.mjs → Slideover-D270EZZD.mjs} +3 -3
  192. package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +1 -0
  193. package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
  194. package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
  195. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
  196. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
  197. package/.output/server/chunks/build/{Switch-CgUioOYB.mjs → Switch-8zWfwI5B.mjs} +3 -3
  198. package/.output/server/chunks/build/Switch-8zWfwI5B.mjs.map +1 -0
  199. package/.output/server/chunks/build/Table-BRk04Hd2.mjs +1 -1
  200. package/.output/server/chunks/build/{Tabs-Bbsg9wag.mjs → Tabs-BkSOnbaB.mjs} +2 -2
  201. package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +1 -0
  202. package/.output/server/chunks/build/{TestCaseHistoryChart-nMLPhdvD.mjs → TestCaseHistoryChart-C6t5RrCG.mjs} +6 -6
  203. package/.output/server/chunks/build/TestCaseHistoryChart-C6t5RrCG.mjs.map +1 -0
  204. package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
  205. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
  206. package/.output/server/chunks/build/{TestStatusBar-j6h2Jp6A.mjs → TestStatusBar-DhbrM_rQ.mjs} +4 -4
  207. package/.output/server/chunks/build/TestStatusBar-DhbrM_rQ.mjs.map +1 -0
  208. package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-vkMKVQTJ.mjs} +2 -2
  209. package/.output/server/chunks/build/Textarea-vkMKVQTJ.mjs.map +1 -0
  210. package/.output/server/chunks/build/{Tooltip-BOazooWP.mjs → Tooltip-Dv4htNP6.mjs} +3 -3
  211. package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +1 -0
  212. package/.output/server/chunks/build/{VisuallyHiddenInput-D6kBJxVd.mjs → VisuallyHiddenInput-BHvzNumK.mjs} +2 -2
  213. package/.output/server/chunks/build/VisuallyHiddenInput-BHvzNumK.mjs.map +1 -0
  214. package/.output/server/chunks/build/{_id_-z5N6HPyC.mjs → _id_-2PMH6rl8.mjs} +26 -25
  215. package/.output/server/chunks/build/_id_-2PMH6rl8.mjs.map +1 -0
  216. package/.output/server/chunks/build/{_id_-BHh65pfg.mjs → _id_-8cGIgeg6.mjs} +1912 -1098
  217. package/.output/server/chunks/build/_id_-8cGIgeg6.mjs.map +1 -0
  218. package/.output/server/chunks/build/{_id_-Rzkqx55x.mjs → _id_-CUZ5S6y5.mjs} +43 -44
  219. package/.output/server/chunks/build/_id_-CUZ5S6y5.mjs.map +1 -0
  220. package/.output/server/chunks/build/{_id_-B78ky13D.mjs → _id_-DMkgWSLZ.mjs} +956 -429
  221. package/.output/server/chunks/build/_id_-DMkgWSLZ.mjs.map +1 -0
  222. package/.output/server/chunks/build/about-D3WXTDro.mjs +696 -0
  223. package/.output/server/chunks/build/about-D3WXTDro.mjs.map +1 -0
  224. package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-BslDNCoo.mjs} +6 -6
  225. package/.output/server/chunks/build/account-BslDNCoo.mjs.map +1 -0
  226. package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs → ai-C23R9l94.mjs} +18 -18
  227. package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs.map → ai-C23R9l94.mjs.map} +1 -1
  228. package/.output/server/chunks/build/{analytics-CJPC6t4L.mjs → analytics-DQHeToK0.mjs} +106 -80
  229. package/.output/server/chunks/build/analytics-DQHeToK0.mjs.map +1 -0
  230. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  231. package/.output/server/chunks/build/compare-RxHSOdsO.mjs +1 -0
  232. package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-D74DghqX.mjs} +38 -2
  233. package/.output/server/chunks/build/db.client-D74DghqX.mjs.map +1 -0
  234. package/.output/server/chunks/build/{default-zvbFgDJG.mjs → default-CeyePZ5I.mjs} +624 -79
  235. package/.output/server/chunks/build/default-CeyePZ5I.mjs.map +1 -0
  236. package/.output/server/chunks/build/{docs-DyuVEgtB.mjs → docs-f_bnC75q.mjs} +17 -17
  237. package/.output/server/chunks/build/{docs-DyuVEgtB.mjs.map → docs-f_bnC75q.mjs.map} +1 -1
  238. package/.output/server/chunks/build/{edit-CFR5g2Qf.mjs → edit-BOC4zWuH.mjs} +13 -15
  239. package/.output/server/chunks/build/edit-BOC4zWuH.mjs.map +1 -0
  240. package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-BQg_fhX0.mjs} +32 -4
  241. package/.output/server/chunks/build/fetch-BQg_fhX0.mjs.map +1 -0
  242. package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CxuVbGWy.mjs} +4 -3
  243. package/.output/server/chunks/build/forgot-password-CxuVbGWy.mjs.map +1 -0
  244. package/.output/server/chunks/build/{import-CZo3djDi.mjs → import-CC27wEIu.mjs} +14 -14
  245. package/.output/server/chunks/build/import-CC27wEIu.mjs.map +1 -0
  246. package/.output/server/chunks/build/{index-gCw_y4ZJ.mjs → index-B6PjfyTY.mjs} +44 -543
  247. package/.output/server/chunks/build/index-B6PjfyTY.mjs.map +1 -0
  248. package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-BOK1aJk9.mjs} +2 -1
  249. package/.output/server/chunks/build/index-BOK1aJk9.mjs.map +1 -0
  250. package/.output/server/chunks/build/{index-D7fe97l3.mjs → index-BhS1DuCr.mjs} +400 -151
  251. package/.output/server/chunks/build/index-BhS1DuCr.mjs.map +1 -0
  252. package/.output/server/chunks/build/{index-Stqw0dEI.mjs → index-DUmjP3Gr.mjs} +18 -19
  253. package/.output/server/chunks/build/index-DUmjP3Gr.mjs.map +1 -0
  254. package/.output/server/chunks/build/index-jvF53f7_.mjs +91 -0
  255. package/.output/server/chunks/build/index-jvF53f7_.mjs.map +1 -0
  256. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
  257. package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-CdpOhiP8.mjs} +8 -7
  258. package/.output/server/chunks/build/login-CdpOhiP8.mjs.map +1 -0
  259. package/.output/server/chunks/build/{mcp-B3IUvRgD.mjs → mcp-WTeO5WRo.mjs} +528 -16
  260. package/.output/server/chunks/build/mcp-WTeO5WRo.mjs.map +1 -0
  261. package/.output/server/chunks/build/{notifications-abDv0id8.mjs → notifications-yY6ik-fi.mjs} +11 -11
  262. package/.output/server/chunks/build/notifications-yY6ik-fi.mjs.map +1 -0
  263. package/.output/server/chunks/build/{pr-feedback-DjZID6q-.mjs → pr-feedback-Hv2Ydh_6.mjs} +8 -8
  264. package/.output/server/chunks/build/pr-feedback-Hv2Ydh_6.mjs.map +1 -0
  265. package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-CFtO8A6n.mjs} +4 -3
  266. package/.output/server/chunks/build/reset-password-CFtO8A6n.mjs.map +1 -0
  267. package/.output/server/chunks/build/server.mjs +51 -34
  268. package/.output/server/chunks/build/{settings-Du7YqF8i.mjs → settings-DIpvnY8_.mjs} +11 -9
  269. package/.output/server/chunks/build/settings-DIpvnY8_.mjs.map +1 -0
  270. package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DRv9VveS.mjs} +32 -2
  271. package/.output/server/chunks/build/settings-metadata-DRv9VveS.mjs.map +1 -0
  272. package/.output/server/chunks/build/setup-Di0UMyWx.mjs +1116 -0
  273. package/.output/server/chunks/build/setup-Di0UMyWx.mjs.map +1 -0
  274. package/.output/server/chunks/build/{storage-B4vzxd8G.mjs → storage-gAbY1KbQ.mjs} +13 -13
  275. package/.output/server/chunks/build/storage-gAbY1KbQ.mjs.map +1 -0
  276. package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-DJ80wCqt.mjs} +6 -7
  277. package/.output/server/chunks/build/tags-DJ80wCqt.mjs.map +1 -0
  278. package/.output/server/chunks/build/{test-cases-DUvaO1He.mjs → test-cases-YP83YlnL.mjs} +21 -21
  279. package/.output/server/chunks/build/test-cases-YP83YlnL.mjs.map +1 -0
  280. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs +550 -0
  281. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs.map +1 -0
  282. package/.output/server/chunks/build/{timeout-hygiene-CbnSaVbK.mjs → timeout-hygiene-RpXDjXTX.mjs} +6 -6
  283. package/.output/server/chunks/build/timeout-hygiene-RpXDjXTX.mjs.map +1 -0
  284. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
  285. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
  286. package/.output/server/chunks/build/{useCopyRich-BemRsKgv.mjs → useCopyRich-Cd5Yj_Wy.mjs} +721 -239
  287. package/.output/server/chunks/build/useCopyRich-Cd5Yj_Wy.mjs.map +1 -0
  288. package/.output/server/chunks/build/{useDesktopDownload-D49JRQSw.mjs → useDesktopDownload-BmR6ouz2.mjs} +3 -3
  289. package/.output/server/chunks/build/useDesktopDownload-BmR6ouz2.mjs.map +1 -0
  290. package/.output/server/chunks/build/{useOpenInIde-4GFf-kdi.mjs → useOpenInIde-DolN3bZ5.mjs} +2 -2
  291. package/.output/server/chunks/build/useOpenInIde-DolN3bZ5.mjs.map +1 -0
  292. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs +19 -0
  293. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs.map +1 -0
  294. package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs +11 -0
  295. package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs.map +1 -0
  296. package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-I2K7HXS2.mjs} +6 -7
  297. package/.output/server/chunks/build/users-I2K7HXS2.mjs.map +1 -0
  298. package/.output/server/chunks/build/{wasted-time-lYkx5YO4.mjs → wasted-time-DyIk0olc.mjs} +11 -11
  299. package/.output/server/chunks/build/wasted-time-DyIk0olc.mjs.map +1 -0
  300. package/.output/server/chunks/nitro/nitro.mjs +3124 -1782
  301. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  302. package/.output/server/chunks/routes/__piwi/session.get.mjs +2 -1
  303. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  304. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +1 -0
  305. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  306. package/.output/server/chunks/routes/api/admin/stats.get.mjs +1 -0
  307. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/ai/status.get.mjs +1 -0
  309. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -0
  311. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -0
  313. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -0
  315. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -0
  317. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -0
  319. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -0
  321. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -0
  323. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -0
  325. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -0
  327. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -0
  329. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -0
  331. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -0
  333. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -0
  335. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +89 -0
  337. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -0
  338. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +1 -0
  339. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +2 -1
  341. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +2 -1
  343. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +2 -1
  345. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +2 -1
  347. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +2 -1
  349. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +2 -1
  351. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +2 -1
  353. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +2 -1
  355. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +2 -1
  357. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +2 -1
  359. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +2 -1
  361. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +2 -1
  363. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +2 -1
  365. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +2 -1
  367. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +2 -1
  369. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +2 -1
  371. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/health.get.mjs +2 -1
  373. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/index.get.mjs +1 -0
  375. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/index.get2.mjs +2 -1
  377. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/index.get3.mjs +2 -1
  379. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/index.get4.mjs +2 -1
  381. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
  383. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  385. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  386. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  387. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  388. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +2 -1
  389. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +2 -1
  391. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
  393. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +2 -1
  394. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  395. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
  396. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +2 -1
  397. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +2 -1
  399. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +2 -1
  401. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +2 -1
  403. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +2 -1
  405. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +2 -1
  407. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +2 -1
  409. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
  411. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +2 -1
  412. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  413. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
  414. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +2 -1
  415. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +2 -1
  417. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +2 -1
  419. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +2 -1
  421. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +2 -1
  423. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +2 -1
  425. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +2 -1
  427. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +76 -0
  429. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
  430. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +66 -0
  431. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
  432. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +53 -0
  433. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
  434. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +67 -0
  435. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
  436. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +2 -1
  437. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +2 -1
  439. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +2 -1
  441. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
  443. package/.output/server/chunks/routes/api/projects/menu.get.mjs +2 -1
  444. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  445. package/.output/server/chunks/routes/api/projects/overview.get.mjs +2 -1
  446. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  447. package/.output/server/chunks/routes/api/projects.get.mjs +2 -1
  448. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  449. package/.output/server/chunks/routes/api/search.get.mjs +2 -1
  450. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  451. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +2 -1
  452. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  453. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +2 -1
  454. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  455. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +1 -0
  456. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  457. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +2 -1
  458. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  459. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +2 -1
  460. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  461. package/.output/server/chunks/routes/api/settings/ai.get.mjs +2 -1
  462. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  463. package/.output/server/chunks/routes/api/settings/ai.put.mjs +2 -1
  464. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  465. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +2 -1
  466. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
  467. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +2 -1
  468. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
  469. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +2 -1
  470. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  471. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +2 -1
  472. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  473. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +2 -1
  474. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  475. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +2 -1
  476. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  477. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +2 -1
  478. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  479. package/.output/server/chunks/routes/api/setup-status.get.mjs +99 -0
  480. package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
  481. package/.output/server/chunks/routes/api/stream.get.mjs +2 -1
  482. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  483. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +2 -1
  484. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  485. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  486. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +2 -1
  487. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  489. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +2 -1
  490. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  491. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +2 -1
  492. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  493. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +2 -1
  494. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  495. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +60 -0
  496. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
  497. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +69 -0
  498. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
  499. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +2 -1
  500. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  501. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +2 -1
  502. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  503. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +2 -1
  504. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  505. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +2 -1
  506. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
  507. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +2 -1
  508. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  509. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +2 -1
  510. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  511. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +2 -1
  512. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  513. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +2 -1
  514. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  515. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +6 -3
  516. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  517. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +2 -1
  518. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  519. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +2 -1
  520. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  521. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +2 -1
  522. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  523. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +2 -1
  524. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  525. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +2 -1
  526. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  527. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +2 -1
  528. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  529. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +2 -1
  530. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  531. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +2 -1
  532. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  533. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +2 -1
  534. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  535. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +2 -1
  536. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  537. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +2 -1
  538. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
  539. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +2 -1
  540. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  541. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +2 -1
  542. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  543. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +2 -1
  544. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  545. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +2 -1
  546. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  547. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +2 -1
  548. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  549. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +2 -1
  550. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  551. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +2 -1
  552. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  553. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +2 -1
  554. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  555. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +2 -1
  556. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  557. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +2 -2
  558. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +5 -128
  559. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +2 -1
  561. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +2 -1
  563. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  564. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +2 -1
  565. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +2 -1
  567. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  569. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +4 -1
  571. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/traces/check.post.mjs +2 -1
  573. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  574. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -0
  575. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  576. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -0
  577. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  579. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +2 -1
  580. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  581. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +2 -1
  582. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  583. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  584. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -0
  585. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/version.get.mjs +2 -1
  587. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  588. package/.output/server/chunks/routes/mcp.post.mjs +41 -11
  589. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  590. package/.output/server/chunks/routes/renderer.mjs +1 -1
  591. package/.output/server/chunks/tasks/sweep.mjs +1 -0
  592. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  593. package/.output/server/chunks/tasks/sweep2.mjs +1 -0
  594. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  595. package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
  596. package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
  597. package/.output/server/database/migrations/meta/_journal.json +7 -0
  598. package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
  599. package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
  600. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  601. package/.output/server/index.mjs +2 -1
  602. package/.output/server/index.mjs.map +1 -1
  603. package/.output/server/package.json +1 -1
  604. package/package.json +1 -1
  605. package/.output/public/_nuxt/-09h6CA9.js +0 -1
  606. package/.output/public/_nuxt/81InBX9v.js +0 -1
  607. package/.output/public/_nuxt/Ar3IelOY.js +0 -1
  608. package/.output/public/_nuxt/B33iXw77.js +0 -1
  609. package/.output/public/_nuxt/B3B9Ii2A.js +0 -1
  610. package/.output/public/_nuxt/B3HO8kuh.js +0 -1
  611. package/.output/public/_nuxt/B7NBP1C-.js +0 -1
  612. package/.output/public/_nuxt/BJ0XQElc.js +0 -1
  613. package/.output/public/_nuxt/BSIxhGsh.js +0 -1
  614. package/.output/public/_nuxt/BVaxh6Nl.js +0 -4
  615. package/.output/public/_nuxt/Bc8mOoz9.js +0 -4
  616. package/.output/public/_nuxt/BeLWlVK0.js +0 -1
  617. package/.output/public/_nuxt/Bn0YQDyy.js +0 -1
  618. package/.output/public/_nuxt/Bp5ELvx9.js +0 -1
  619. package/.output/public/_nuxt/BpUaY9nH.js +0 -2
  620. package/.output/public/_nuxt/C2_3mdPC.js +0 -1
  621. package/.output/public/_nuxt/C5iG7O4O.js +0 -64
  622. package/.output/public/_nuxt/CHNwfU1y.js +0 -1
  623. package/.output/public/_nuxt/CNFYDQmj.js +0 -1
  624. package/.output/public/_nuxt/CU5S9GCh.js +0 -1
  625. package/.output/public/_nuxt/CUtJobDm.js +0 -1
  626. package/.output/public/_nuxt/CpjgB2aY.js +0 -1
  627. package/.output/public/_nuxt/CrwJAwhk.js +0 -1
  628. package/.output/public/_nuxt/CtQBsNUb.js +0 -1
  629. package/.output/public/_nuxt/CuSVQEkS.js +0 -3
  630. package/.output/public/_nuxt/CylWPruw.js +0 -1
  631. package/.output/public/_nuxt/CzGyac8q.js +0 -1
  632. package/.output/public/_nuxt/DDDpCFpF.js +0 -1
  633. package/.output/public/_nuxt/DVDXJYq2.js +0 -2
  634. package/.output/public/_nuxt/DW0xl3I6.js +0 -17
  635. package/.output/public/_nuxt/Dgf5N4Ng.js +0 -1
  636. package/.output/public/_nuxt/DiZyJYez.js +0 -1
  637. package/.output/public/_nuxt/Dk9fwOCm.js +0 -34
  638. package/.output/public/_nuxt/DoUy4UHi.js +0 -44
  639. package/.output/public/_nuxt/DslPMqfa.js +0 -1
  640. package/.output/public/_nuxt/OSduWzyz.js +0 -1
  641. package/.output/public/_nuxt/SlIRLREZ.js +0 -6
  642. package/.output/public/_nuxt/WsxFTEFq.js +0 -10
  643. package/.output/public/_nuxt/aQgs_c6e.js +0 -9
  644. package/.output/public/_nuxt/builds/meta/ab473028-4b37-4884-b243-b8f6e5046e5e.json +0 -1
  645. package/.output/public/_nuxt/dYCKgE-3.js +0 -5
  646. package/.output/public/_nuxt/entry.CPhW41mh.css +0 -1
  647. package/.output/public/_nuxt/g26aVPxc.js +0 -1
  648. package/.output/public/_nuxt/zQyPuvV1.js +0 -1
  649. package/.output/server/chunks/_/import-runs.mjs +0 -351
  650. package/.output/server/chunks/_/import-runs.mjs.map +0 -1
  651. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
  652. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
  653. package/.output/server/chunks/build/BrowserBadge-D33lqUcj.mjs.map +0 -1
  654. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
  655. package/.output/server/chunks/build/Checkbox-DvUBGagc.mjs.map +0 -1
  656. package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs +0 -631
  657. package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs.map +0 -1
  658. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
  659. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
  660. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
  661. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
  662. package/.output/server/chunks/build/DiagnosisPanel-B646dK4p.mjs.map +0 -1
  663. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
  664. package/.output/server/chunks/build/EmptyState-Dtlab7S9.mjs.map +0 -1
  665. package/.output/server/chunks/build/EntityLinks-D3fp57pR.mjs.map +0 -1
  666. package/.output/server/chunks/build/EnvManagedBadge-Bg3FSiU1.mjs.map +0 -1
  667. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
  668. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
  669. package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
  670. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
  671. package/.output/server/chunks/build/Modal-Ck2XLt8d.mjs.map +0 -1
  672. package/.output/server/chunks/build/ProjectTestCasesTable-CxfQ5wtN.mjs.map +0 -1
  673. package/.output/server/chunks/build/RovingFocusItem-BJSzTBjy.mjs.map +0 -1
  674. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
  675. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
  676. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
  677. package/.output/server/chunks/build/Select-CUqj50wi.mjs.map +0 -1
  678. package/.output/server/chunks/build/SettingsField-D6iEYbEc.mjs.map +0 -1
  679. package/.output/server/chunks/build/Slideover-DgCa80mf.mjs.map +0 -1
  680. package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
  681. package/.output/server/chunks/build/Switch-CgUioOYB.mjs.map +0 -1
  682. package/.output/server/chunks/build/Tabs-Bbsg9wag.mjs.map +0 -1
  683. package/.output/server/chunks/build/TestCaseHistoryChart-nMLPhdvD.mjs.map +0 -1
  684. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
  685. package/.output/server/chunks/build/TestStatusBar-j6h2Jp6A.mjs.map +0 -1
  686. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
  687. package/.output/server/chunks/build/Tooltip-BOazooWP.mjs.map +0 -1
  688. package/.output/server/chunks/build/VisuallyHiddenInput-D6kBJxVd.mjs.map +0 -1
  689. package/.output/server/chunks/build/_id_-B78ky13D.mjs.map +0 -1
  690. package/.output/server/chunks/build/_id_-BHh65pfg.mjs.map +0 -1
  691. package/.output/server/chunks/build/_id_-Rzkqx55x.mjs.map +0 -1
  692. package/.output/server/chunks/build/_id_-z5N6HPyC.mjs.map +0 -1
  693. package/.output/server/chunks/build/about-CvSP73Ug.mjs +0 -781
  694. package/.output/server/chunks/build/about-CvSP73Ug.mjs.map +0 -1
  695. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
  696. package/.output/server/chunks/build/analytics-CJPC6t4L.mjs.map +0 -1
  697. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
  698. package/.output/server/chunks/build/default-zvbFgDJG.mjs.map +0 -1
  699. package/.output/server/chunks/build/edit-CFR5g2Qf.mjs.map +0 -1
  700. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
  701. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
  702. package/.output/server/chunks/build/import-CZo3djDi.mjs.map +0 -1
  703. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
  704. package/.output/server/chunks/build/index-D7fe97l3.mjs.map +0 -1
  705. package/.output/server/chunks/build/index-Stqw0dEI.mjs.map +0 -1
  706. package/.output/server/chunks/build/index-gCw_y4ZJ.mjs.map +0 -1
  707. package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
  708. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
  709. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
  710. package/.output/server/chunks/build/mcp-B3IUvRgD.mjs.map +0 -1
  711. package/.output/server/chunks/build/notifications-abDv0id8.mjs.map +0 -1
  712. package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs.map +0 -1
  713. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
  714. package/.output/server/chunks/build/settings-Du7YqF8i.mjs.map +0 -1
  715. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
  716. package/.output/server/chunks/build/storage-B4vzxd8G.mjs.map +0 -1
  717. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
  718. package/.output/server/chunks/build/test-cases-DUvaO1He.mjs.map +0 -1
  719. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
  720. package/.output/server/chunks/build/useAiStatus-CWvIo32Q.mjs.map +0 -1
  721. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
  722. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
  723. package/.output/server/chunks/build/useCopyRich-BemRsKgv.mjs.map +0 -1
  724. package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs.map +0 -1
  725. package/.output/server/chunks/build/useOpenInIde-4GFf-kdi.mjs.map +0 -1
  726. package/.output/server/chunks/build/useSettingsNav-C3O866KC.mjs.map +0 -1
  727. package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs +0 -7
  728. package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs.map +0 -1
  729. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
  730. package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs +0 -940
  731. package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs.map +0 -1
  732. package/.output/server/chunks/build/wasted-time-lYkx5YO4.mjs.map +0 -1
@@ -1,22 +1,21 @@
1
- import { j as useToast, o as _sfc_main$p, s as __nuxt_component_12, n as _sfc_main$7$1, m as _sfc_main$k$1, r as useRuntimeConfig, v as _sfc_main$8$1, G as refreshNuxtData, H as _export_sfc, _ as _sfc_main$d$1 } from './server.mjs';
2
- import { _ as __nuxt_component_2$1, a as __nuxt_component_9 } from './HelpHint-DrcIv-Oj.mjs';
3
- import { _ as _sfc_main$n } from './Separator-CR4WcEKD.mjs';
1
+ import { j as useToast, o as _sfc_main$p, v as __nuxt_component_12, n as _sfc_main$7$1, m as _sfc_main$k$1, r as useRuntimeConfig, w as _sfc_main$8$1, G as refreshNuxtData, H as _export_sfc, _ as _sfc_main$d$1 } from './server.mjs';
2
+ import { _ as __nuxt_component_2$1, a as __nuxt_component_9 } from './HelpHint-DjGrGFA7.mjs';
3
+ import { _ as _sfc_main$o } from './Separator-CR4WcEKD.mjs';
4
4
  import { ref, defineComponent, mergeProps, unref, withCtx, withDirectives, createVNode, renderSlot, vShow, withKeys, withModifiers, openBlock, createBlock, createCommentVNode, createTextVNode, toDisplayString, Fragment, computed, resolveDynamicComponent, createSlots, renderList, isRef, nextTick, useModel, watch, mergeModels, useSSRContext } from 'vue';
5
5
  import { ssrRenderAttrs, ssrRenderComponent, ssrRenderStyle, ssrRenderSlot, ssrRenderAttr, ssrInterpolate, ssrRenderVNode, ssrRenderList, ssrRenderClass, ssrRenderTeleport } from 'vue/server-renderer';
6
- import { u as useDesktopDownload } from './useDesktopDownload-D49JRQSw.mjs';
7
- import { u as useCopy } from './useCopy-CeKWgHyT.mjs';
8
- import { f as formatRelativeTime, m as getTraceViewerUrl, n as fileApiUrl, o as parsePatchLines, q as patchLineClass, e as errorMessage, u as getFileApiPath } from './index-CU2nZhAa.mjs';
9
- import { _ as _sfc_main$k } from './Alert-C4xq8lao.mjs';
10
- import { dF as recommendLocatorFix, cB as formatBytes } from '../nitro/nitro.mjs';
11
- import { _ as __nuxt_component_11 } from './SectionCard-CN-v0FZ_.mjs';
12
- import { _ as _sfc_main$o } from './Modal-Ck2XLt8d.mjs';
13
- import { u as useFetch } from './fetch-B4FwBOzu.mjs';
14
- import { _ as _sfc_main$l } from './Tabs-Bbsg9wag.mjs';
15
- import { _ as _sfc_main$m } from './Tooltip-BOazooWP.mjs';
16
- import { _ as __nuxt_component_5 } from './CodeBlock-BgE-NSmE.mjs';
17
- import { _ as __nuxt_component_1$3 } from './OpenInIdeLink-C4MXA8ya.mjs';
18
- import { _ as _sfc_main$j } from './Card-BQP_oZkQ.mjs';
19
- import { b as useFoldedState } from './useAiStatus-CWvIo32Q.mjs';
6
+ import { u as useDesktopDownload } from './useDesktopDownload-BmR6ouz2.mjs';
7
+ import { u as useFetch, a as useCopy } from './fetch-BQg_fhX0.mjs';
8
+ import { f as formatRelativeTime, m as getTraceViewerUrl, n as fileApiUrl, o as parsePatchLines, q as patchLineClass, e as errorMessage, u as getFileApiPath } from './index-BOK1aJk9.mjs';
9
+ import { _ as _sfc_main$l } from './Alert-C4xq8lao.mjs';
10
+ import { dN as recommendLocatorFix, aa as formatBytes } from '../nitro/nitro.mjs';
11
+ import { _ as __nuxt_component_11 } from './SectionCard-BW5Lynrr.mjs';
12
+ import { _ as _sfc_main$q } from './Modal-pSDlXzT3.mjs';
13
+ import { _ as _sfc_main$m } from './Tabs-BkSOnbaB.mjs';
14
+ import { _ as _sfc_main$n } from './Tooltip-Dv4htNP6.mjs';
15
+ import { _ as __nuxt_component_5 } from './CodeBlock-DGhKVFad.mjs';
16
+ import { _ as __nuxt_component_1$3 } from './OpenInIdeLink-B9wvQkhy.mjs';
17
+ import { _ as _sfc_main$k } from './Card-BQP_oZkQ.mjs';
18
+ import { u as useFoldedState } from './DiagnosisResult-Br3qBLXe.mjs';
20
19
 
21
20
  const CAPTURED_ATTRIBUTES = [
22
21
  "id",
@@ -34,7 +33,7 @@ const CAPTURED_ATTRIBUTES = [
34
33
  "multiple"
35
34
  ];
36
35
 
37
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
36
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
38
37
  __name: "ExportMenu",
39
38
  __ssrInlineRender: true,
40
39
  props: {
@@ -83,7 +82,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
83
82
  const _component_UPopover = _sfc_main$8$1;
84
83
  const _component_UButton = _sfc_main$k$1;
85
84
  const _component_HelpHint = __nuxt_component_2$1;
86
- const _component_USeparator = _sfc_main$n;
85
+ const _component_USeparator = _sfc_main$o;
87
86
  _push(ssrRenderComponent(_component_UPopover, mergeProps({
88
87
  open: unref(open),
89
88
  "onUpdate:open": ($event) => isRef(open) ? open.value = $event : null
@@ -369,14 +368,14 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
369
368
  };
370
369
  }
371
370
  });
372
- const _sfc_setup$i = _sfc_main$i.setup;
373
- _sfc_main$i.setup = (props, ctx) => {
371
+ const _sfc_setup$j = _sfc_main$j.setup;
372
+ _sfc_main$j.setup = (props, ctx) => {
374
373
  const ssrContext = useSSRContext();
375
374
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/ExportMenu.vue");
376
- return _sfc_setup$i ? _sfc_setup$i(props, ctx) : void 0;
375
+ return _sfc_setup$j ? _sfc_setup$j(props, ctx) : void 0;
377
376
  };
378
- const __nuxt_component_6$1 = Object.assign(_sfc_main$i, { __name: "ExportMenu" });
379
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
377
+ const __nuxt_component_6 = Object.assign(_sfc_main$j, { __name: "ExportMenu" });
378
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
380
379
  __name: "CollapsibleSectionCard",
381
380
  __ssrInlineRender: true,
382
381
  props: {
@@ -399,7 +398,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
399
398
  }
400
399
  __expose({ setFolded, reveal });
401
400
  return (_ctx, _push, _parent, _attrs) => {
402
- const _component_UCard = _sfc_main$j;
401
+ const _component_UCard = _sfc_main$k;
403
402
  const _component_UIcon = _sfc_main$p;
404
403
  const _component_HelpHint = __nuxt_component_2$1;
405
404
  _push(`<div${ssrRenderAttrs(mergeProps({
@@ -548,13 +547,65 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
548
547
  };
549
548
  }
550
549
  });
550
+ const _sfc_setup$i = _sfc_main$i.setup;
551
+ _sfc_main$i.setup = (props, ctx) => {
552
+ const ssrContext = useSSRContext();
553
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/CollapsibleSectionCard.vue");
554
+ return _sfc_setup$i ? _sfc_setup$i(props, ctx) : void 0;
555
+ };
556
+ const __nuxt_component_25 = Object.assign(_sfc_main$i, { __name: "CollapsibleSectionCard" });
557
+ const TOKEN_RE = /('(?:\\.|[^'])*'|"(?:\\.|[^"])*")|([A-Za-z_$][\w$]*)(?=\s*\()|([A-Za-z_$][\w$]*)(?=\s*:)|(true|false|null|\d+)|([{}(),.])/g;
558
+ function tokenizeLocator(expr) {
559
+ const tokens = [];
560
+ const re = new RegExp(TOKEN_RE.source, "g");
561
+ let last = 0;
562
+ let m;
563
+ while ((m = re.exec(expr)) !== null) {
564
+ if (m.index > last) tokens.push({ kind: "plain", text: expr.slice(last, m.index) });
565
+ const kind = m[1] ? "string" : m[2] ? "method" : m[3] ? "option" : m[4] ? "literal" : "punctuation";
566
+ tokens.push({ kind, text: m[0] });
567
+ last = re.lastIndex;
568
+ }
569
+ if (last < expr.length) tokens.push({ kind: "plain", text: expr.slice(last) });
570
+ return tokens;
571
+ }
572
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
573
+ __name: "LocatorCode",
574
+ __ssrInlineRender: true,
575
+ props: {
576
+ locator: {},
577
+ truncate: { type: Boolean, default: false }
578
+ },
579
+ setup(__props) {
580
+ const props = __props;
581
+ const TOKEN_CLASS = {
582
+ method: "text-violet-700 dark:text-violet-300",
583
+ string: "text-green-700 dark:text-green-300",
584
+ option: "text-blue-700 dark:text-blue-300",
585
+ literal: "text-amber-700 dark:text-amber-300",
586
+ punctuation: "text-gray-500 dark:text-gray-400",
587
+ plain: ""
588
+ };
589
+ const tokens = computed(() => tokenizeLocator(props.locator));
590
+ return (_ctx, _push, _parent, _attrs) => {
591
+ _push(`<code${ssrRenderAttrs(mergeProps({
592
+ class: ["font-mono", __props.truncate ? "block truncate" : "break-words"],
593
+ title: __props.locator
594
+ }, _attrs))}><!--[-->`);
595
+ ssrRenderList(unref(tokens), (token, i) => {
596
+ _push(`<span class="${ssrRenderClass(TOKEN_CLASS[token.kind])}">${ssrInterpolate(token.text)}</span>`);
597
+ });
598
+ _push(`<!--]--></code>`);
599
+ };
600
+ }
601
+ });
551
602
  const _sfc_setup$h = _sfc_main$h.setup;
552
603
  _sfc_main$h.setup = (props, ctx) => {
553
604
  const ssrContext = useSSRContext();
554
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/CollapsibleSectionCard.vue");
605
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/LocatorCode.vue");
555
606
  return _sfc_setup$h ? _sfc_setup$h(props, ctx) : void 0;
556
607
  };
557
- const __nuxt_component_24 = Object.assign(_sfc_main$h, { __name: "CollapsibleSectionCard" });
608
+ const __nuxt_component_0 = Object.assign(_sfc_main$h, { __name: "LocatorCode" });
558
609
  const _sfc_main$g = /* @__PURE__ */ defineComponent({
559
610
  __name: "DiffPatch",
560
611
  __ssrInlineRender: true,
@@ -617,6 +668,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
617
668
  const displayNote = computed(() => props.note ?? defaultNote(props.alt));
618
669
  return (_ctx, _push, _parent, _attrs) => {
619
670
  const _component_UBadge = _sfc_main$7$1;
671
+ const _component_LocatorCode = __nuxt_component_0;
620
672
  const _component_UIcon = _sfc_main$p;
621
673
  const _component_UButton = _sfc_main$k$1;
622
674
  _push(`<div${ssrRenderAttrs(mergeProps({
@@ -647,7 +699,12 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
647
699
  }),
648
700
  _: 1
649
701
  }, _parent));
650
- _push(`<div class="flex-1 min-w-0"><code class="text-xs font-mono block truncate"${ssrRenderAttr("title", __props.alt.locator)}>${ssrInterpolate(__props.alt.locator)}</code>`);
702
+ _push(`<div class="flex-1 min-w-0">`);
703
+ _push(ssrRenderComponent(_component_LocatorCode, {
704
+ locator: __props.alt.locator,
705
+ truncate: "",
706
+ class: "text-xs"
707
+ }, null, _parent));
651
708
  if (unref(displayNote)) {
652
709
  _push(`<p class="text-[11px] leading-4 text-gray-500 truncate">${ssrInterpolate(unref(displayNote))}</p>`);
653
710
  } else {
@@ -691,150 +748,444 @@ _sfc_main$f.setup = (props, ctx) => {
691
748
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/LocatorAlternativeRow.vue");
692
749
  return _sfc_setup$f ? _sfc_setup$f(props, ctx) : void 0;
693
750
  };
694
- const __nuxt_component_6 = Object.assign(_sfc_main$f, { __name: "LocatorAlternativeRow" });
695
- function installSnapshotPicker(config) {
696
- if ((void 0).__piwiPickerInstalled) return;
697
- (void 0).__piwiPickerInstalled = true;
698
- var doc = void 0;
699
- var g = void 0;
700
- var Z = 2147483600;
701
- var PROBED_ATTRS = config.probedAttrs;
702
- var highlight = doc.createElement("div");
751
+ const __nuxt_component_7 = Object.assign(_sfc_main$f, { __name: "LocatorAlternativeRow" });
752
+ function probeElementAttrs(el, arg) {
753
+ const { keep, tagRoles, inputRoles, roleSources, includeStructural, includeLabelText } = arg;
754
+ const attrMap = {};
755
+ for (const key of keep) {
756
+ const v = el.getAttribute(key) ?? el[key];
757
+ attrMap[key] = typeof v === "string" ? v.slice(0, 200) : v ? String(v).slice(0, 200) : null;
758
+ }
759
+ const r = el.getBoundingClientRect();
760
+ const selectorCounts = {};
761
+ try {
762
+ const doc = el.ownerDocument;
763
+ const cssEsc = (s) => doc.defaultView.CSS.escape(s);
764
+ const count = (sel) => {
765
+ try {
766
+ return doc.querySelectorAll(sel).length;
767
+ } catch {
768
+ return void 0;
769
+ }
770
+ };
771
+ if (attrMap["data-testid"]) {
772
+ selectorCounts.testId = count(`[data-testid=${JSON.stringify(attrMap["data-testid"])}]`);
773
+ }
774
+ if (attrMap["id"]) selectorCounts.id = count(`#${cssEsc(attrMap["id"])}`);
775
+ if (attrMap["name"]) selectorCounts.name = count(`[name=${JSON.stringify(attrMap["name"])}]`);
776
+ if (attrMap["placeholder"]) {
777
+ selectorCounts.placeholder = count(`[placeholder=${JSON.stringify(attrMap["placeholder"])}]`);
778
+ }
779
+ if (attrMap["alt"]) selectorCounts.alt = count(`[alt=${JSON.stringify(attrMap["alt"])}]`);
780
+ if (attrMap["title"]) selectorCounts.title = count(`[title=${JSON.stringify(attrMap["title"])}]`);
781
+ const classList = (attrMap["class"] || "").split(/\s+/).filter((c) => c.length > 1).slice(0, 10);
782
+ if (classList.length > 0) {
783
+ const classCounts = {};
784
+ for (const cls of classList) {
785
+ const n = count(`.${cssEsc(cls)}`);
786
+ if (n !== void 0) classCounts[cls] = n;
787
+ }
788
+ selectorCounts.classes = classCounts;
789
+ }
790
+ } catch {
791
+ }
792
+ let rolePosition = null;
793
+ const ancestors = [];
794
+ if (includeStructural && tagRoles && inputRoles && roleSources) {
795
+ try {
796
+ const doc = el.ownerDocument;
797
+ const cssEsc = (s) => doc.defaultView.CSS.escape(s);
798
+ const count = (sel) => {
799
+ try {
800
+ return doc.querySelectorAll(sel).length;
801
+ } catch {
802
+ return void 0;
803
+ }
804
+ };
805
+ const roleMemo = /* @__PURE__ */ new Map();
806
+ const textMemo = /* @__PURE__ */ new Map();
807
+ const roleOf = (n) => {
808
+ const cached = roleMemo.get(n);
809
+ if (cached !== void 0) return cached;
810
+ let role;
811
+ const explicit = n.getAttribute("role");
812
+ if (explicit) {
813
+ role = explicit;
814
+ } else {
815
+ const tag = (n.tagName || "").toLowerCase();
816
+ if (tag === "input") role = inputRoles[(n.getAttribute("type") || "text").toLowerCase()] ?? "textbox";
817
+ else if (tag === "select") role = n.getAttribute("multiple") != null ? "listbox" : "combobox";
818
+ else if (tag === "a") role = n.getAttribute("href") != null ? "link" : null;
819
+ else role = tagRoles[tag] ?? null;
820
+ }
821
+ roleMemo.set(n, role);
822
+ return role;
823
+ };
824
+ const levelOf = (n) => {
825
+ const m = /^h([1-6])$/.exec((n.tagName || "").toLowerCase());
826
+ if (m) return Number(m[1]);
827
+ const al = n.getAttribute("aria-level");
828
+ return al && /^\d+$/.test(al) ? Number(al) : null;
829
+ };
830
+ const targetRole = roleOf(el);
831
+ const targetLevel = targetRole === "heading" ? levelOf(el) : null;
832
+ const nameOf = (n) => {
833
+ const al = n.getAttribute("aria-label");
834
+ if (al) return al;
835
+ const txt = (n.textContent || "").replace(/\s+/g, " ").trim();
836
+ if (txt) return txt;
837
+ return n.getAttribute("title") || n.getAttribute("placeholder") || null;
838
+ };
839
+ const targetName = nameOf(el);
840
+ const targetText = (el.textContent || "").replace(/\s+/g, " ").trim();
841
+ const textNeedle = targetText ? targetText.toLowerCase() : null;
842
+ const normText = (n) => {
843
+ const cached = textMemo.get(n);
844
+ if (cached !== void 0) return cached;
845
+ const text = (n.textContent || "").replace(/\s+/g, " ").trim().toLowerCase();
846
+ textMemo.set(n, text);
847
+ return text;
848
+ };
849
+ const TEXT_COUNT_CAP = 2;
850
+ const countTextOwners = (root, cap) => {
851
+ if (!textNeedle) return -1;
852
+ const els = root.querySelectorAll("*");
853
+ if (els.length > cap) return -1;
854
+ let total = 0;
855
+ for (let i = 0; i < els.length; i++) {
856
+ const n = els[i];
857
+ if (normText(n).indexOf(textNeedle) === -1) continue;
858
+ let deeper = false;
859
+ const kids = n.children;
860
+ for (let j = 0; j < kids.length; j++) {
861
+ if (normText(kids[j]).indexOf(textNeedle) !== -1) {
862
+ deeper = true;
863
+ break;
864
+ }
865
+ }
866
+ if (!deeper) total++;
867
+ if (total >= TEXT_COUNT_CAP) return total;
868
+ }
869
+ return total;
870
+ };
871
+ const nodes = doc.querySelectorAll(roleSources);
872
+ const nodesUsable = nodes.length <= 4e3;
873
+ const rolesUsable = !!targetRole && nodesUsable;
874
+ if (rolesUsable) {
875
+ let roleCountAll = 0;
876
+ let index = -1;
877
+ let levelCount = 0;
878
+ let roleNameCount = 0;
879
+ for (let i = 0; i < nodes.length; i++) {
880
+ const n = nodes[i];
881
+ if (roleOf(n) !== targetRole) continue;
882
+ if (n === el) index = roleCountAll;
883
+ roleCountAll++;
884
+ if (targetLevel != null && levelOf(n) === targetLevel) levelCount++;
885
+ if (targetName != null && nameOf(n) === targetName) roleNameCount++;
886
+ }
887
+ if (targetName != null) selectorCounts.roleName = roleNameCount;
888
+ if (index !== -1) {
889
+ rolePosition = {
890
+ role: targetRole,
891
+ count: roleCountAll,
892
+ index,
893
+ ...targetLevel != null ? { levelCount } : {}
894
+ };
895
+ }
896
+ }
897
+ if (textNeedle) {
898
+ const textCount = countTextOwners(doc.body || doc.documentElement, 4e3);
899
+ if (textCount >= 0) selectorCounts.text = textCount;
900
+ }
901
+ if (rolesUsable || textNeedle) {
902
+ const CONTAINER_TAGS = ["form", "nav", "main", "article", "section", "dialog", "table", "li", "tr"];
903
+ const NOISY_DATA_ATTR = /^data-(v-[0-9a-f]+|reactid|react-checksum|svelte-\w+|ng-\w+|ember\w*)$/i;
904
+ const POSITIONAL_DATA_ATTR = /^data-(index|idx|i|key|row|rownum|col|column|position|pos|order|sort|offset|page)$/i;
905
+ const TEST_DATA_ATTRS = ["data-test", "data-test-id", "data-qa", "data-qa-id", "data-cy", "data-e2e"];
906
+ const usableDataAttr = (name, value) => {
907
+ if (!name || name.slice(0, 5) !== "data-" || name === "data-testid") return false;
908
+ if (NOISY_DATA_ATTR.test(name) || POSITIONAL_DATA_ATTR.test(name)) return false;
909
+ return !!value && value.length <= 120;
910
+ };
911
+ const stableDataAttr = (n) => {
912
+ const attrs = n.attributes;
913
+ if (!attrs) return null;
914
+ let fallback = null;
915
+ for (let i = 0; i < attrs.length; i++) {
916
+ const name = attrs[i].name;
917
+ const value = attrs[i].value;
918
+ if (!usableDataAttr(name, value)) continue;
919
+ if (TEST_DATA_ATTRS.indexOf(name.toLowerCase()) !== -1) return { name, value };
920
+ if (!fallback) fallback = { name, value };
921
+ }
922
+ return fallback;
923
+ };
924
+ const docRoleCount = (role) => {
925
+ let c = 0;
926
+ for (let i = 0; i < nodes.length; i++) if (roleOf(nodes[i]) === role) c++;
927
+ return c;
928
+ };
929
+ const rawText = (n) => (n.textContent || "").replace(/\s+/g, " ").trim();
930
+ const namesRatherThanReports = (t) => {
931
+ const letters = t.replace(/[^A-Za-z]/g, "").length;
932
+ if (letters < 2) return false;
933
+ const digits = t.replace(/[^0-9]/g, "").length;
934
+ return digits <= letters;
935
+ };
936
+ const usableDiscriminator = (t) => !!t && t.length <= 60 && t !== targetText && namesRatherThanReports(t);
937
+ const discriminatingText = (anc) => {
938
+ const heading = anc.querySelector('h1,h2,h3,h4,h5,h6,[role="heading"]');
939
+ if (heading) {
940
+ const t = rawText(heading);
941
+ if (usableDiscriminator(t)) return t;
942
+ }
943
+ const els = anc.querySelectorAll("*");
944
+ if (els.length > 200) return null;
945
+ for (let i = 0; i < els.length; i++) {
946
+ const n = els[i];
947
+ if (n === el || n.children.length > 0) continue;
948
+ const t = rawText(n);
949
+ if (!usableDiscriminator(t)) continue;
950
+ return t;
951
+ }
952
+ return null;
953
+ };
954
+ const filterMatchCount = (role, text) => {
955
+ const needle = text.toLowerCase();
956
+ let c = 0;
957
+ for (let i = 0; i < nodes.length; i++) {
958
+ if (roleOf(nodes[i]) !== role) continue;
959
+ if (normText(nodes[i]).indexOf(needle) !== -1) c++;
960
+ }
961
+ return c;
962
+ };
963
+ let node = el.parentElement;
964
+ let depth = 0;
965
+ while (node && depth < 12 && ancestors.length < 4) {
966
+ depth++;
967
+ const tag = (node.tagName || "").toLowerCase();
968
+ if (tag === "body" || tag === "html") break;
969
+ const testId = node.getAttribute("data-testid");
970
+ const id = node.getAttribute("id");
971
+ const explicitRole = node.getAttribute("role");
972
+ const ariaLabel = node.getAttribute("aria-label");
973
+ const anchorRole = explicitRole || (CONTAINER_TAGS.includes(tag) ? tagRoles[tag] : null) || null;
974
+ const dataAttr = stableDataAttr(node);
975
+ if (testId || id || anchorRole || ariaLabel || dataAttr) {
976
+ let scopedRoleCount = -1;
977
+ if (rolesUsable) {
978
+ const scoped = node.querySelectorAll(roleSources);
979
+ if (scoped.length <= 2e3) {
980
+ scopedRoleCount = 0;
981
+ for (let i = 0; i < scoped.length; i++) {
982
+ const n = scoped[i];
983
+ if (roleOf(n) !== targetRole) continue;
984
+ if (targetLevel != null && levelOf(n) !== targetLevel) continue;
985
+ scopedRoleCount++;
986
+ }
987
+ }
988
+ }
989
+ const scopedTextCount = countTextOwners(node, 2e3);
990
+ let filterText = null;
991
+ try {
992
+ if (anchorRole && nodesUsable) filterText = discriminatingText(node);
993
+ } catch {
994
+ filterText = null;
995
+ }
996
+ ancestors.push({
997
+ tag,
998
+ depth,
999
+ testId: testId || null,
1000
+ id: id || null,
1001
+ role: explicitRole || null,
1002
+ ariaLabel: ariaLabel || null,
1003
+ ...scopedRoleCount >= 0 ? { scopedRoleCount } : {},
1004
+ ...scopedTextCount >= 0 ? { scopedTextCount } : {},
1005
+ ...testId ? { testIdCount: count(`[data-testid=${JSON.stringify(testId)}]`) } : {},
1006
+ ...id ? { idCount: count(`#${cssEsc(id)}`) } : {},
1007
+ ...anchorRole && nodesUsable ? { roleCount: docRoleCount(anchorRole) } : {},
1008
+ ...filterText ? { filterText, filterRoleCount: filterMatchCount(anchorRole, filterText) } : {},
1009
+ ...dataAttr ? { dataAttr, dataAttrCount: count(`[${dataAttr.name}=${JSON.stringify(dataAttr.value)}]`) } : {}
1010
+ });
1011
+ }
1012
+ node = node.parentElement;
1013
+ }
1014
+ }
1015
+ } catch {
1016
+ }
1017
+ }
1018
+ const hasLabel = !!(el.labels && el.labels.length > 0);
1019
+ const labelText = includeLabelText ? hasLabel ? (el.labels[0].textContent || "").replace(/\s+/g, " ").trim().slice(0, 120) || null : null : void 0;
1020
+ return {
1021
+ tagName: el.tagName?.toLowerCase?.() ?? "unknown",
1022
+ attributes: attrMap,
1023
+ // Collapse whitespace so multi-line text can't produce a getByText
1024
+ // suggestion with literal newlines in it.
1025
+ textContent: (el.textContent || "").replace(/\s+/g, " ").trim().slice(0, 80),
1026
+ center: {
1027
+ x: Math.round(r.x + r.width / 2),
1028
+ y: Math.round(r.y + r.height / 2)
1029
+ },
1030
+ hasLabel,
1031
+ ...includeLabelText ? { labelText } : {},
1032
+ selectorCounts,
1033
+ ...includeStructural ? { rolePosition, ancestors } : {}
1034
+ };
1035
+ }
1036
+ function installPickerOverlay(arg) {
1037
+ const g = globalThis;
1038
+ const doc = g.document;
1039
+ if (!doc || !doc.body) {
1040
+ if (arg.transport === "postMessage") g.parent.postMessage({ type: "pickerClosed" }, "*");
1041
+ else g.__piwiPickState = "skipped";
1042
+ return;
1043
+ }
1044
+ const Z = 2147483600;
1045
+ const highlight = doc.createElement("div");
703
1046
  highlight.id = "__piwi_picker_highlight";
704
- highlight.style.cssText = "position:fixed;pointer-events:none;z-index:" + Z + ";display:none;box-sizing:border-box;border:2px solid #7c3aed;background:rgba(124,58,237,.12);border-radius:3px;";
705
- doc.body.appendChild(highlight);
706
- var banner = doc.createElement("div");
1047
+ highlight.style.cssText = `position:fixed;pointer-events:none;z-index:${Z};display:none;box-sizing:border-box;border:2px solid #a855f7;background:rgba(168,85,247,.14);border-radius:4px;box-shadow:0 0 0 1px rgba(255,255,255,.9),0 0 0 3px rgba(59,7,100,.55),inset 0 0 0 1px rgba(255,255,255,.5);`;
1048
+ const banner = doc.createElement("div");
707
1049
  banner.id = "__piwi_picker_banner";
708
- banner.style.cssText = "position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:" + (Z + 2) + ";background:#111827;color:#f9fafb;font:13px/1.5 system-ui,sans-serif;padding:10px 16px;border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,.4);max-width:80vw;";
709
- banner.innerHTML = '<div>Click an element to generate locators</div><div style="color:#9ca3af;margin-top:3px;font-size:11px">↑ parent · ↓ child · Esc skip</div>';
1050
+ banner.style.cssText = `position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:${Z + 2};background:#111827;color:#f9fafb;font:13px/1.5 system-ui,sans-serif;border:1px solid #312e81;padding:10px 16px;border-radius:10px;box-shadow:0 4px 24px rgba(0,0,0,.5);max-width:min(680px,86vw);`;
1051
+ const hlTokens = (expr) => {
1052
+ const escHtml = (s) => s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
1053
+ const re = /('(?:\\.|[^'])*'|"(?:\\.|[^"])*")|([A-Za-z_$][\w$]*)(?=\s*\()|([A-Za-z_$][\w$]*)(?=\s*:)|(true|false|null|\d+)|([{}(),.])/g;
1054
+ let html = "";
1055
+ let last = 0;
1056
+ let m;
1057
+ while ((m = re.exec(expr)) !== null) {
1058
+ if (m.index > last) html += escHtml(expr.slice(last, m.index));
1059
+ const color = m[1] ? "#86efac" : m[2] ? "#d8b4fe" : m[3] ? "#93c5fd" : m[4] ? "#fcd34d" : "#9ca3af";
1060
+ html += `<span style="color:${color}">${escHtml(m[0])}</span>`;
1061
+ last = re.lastIndex;
1062
+ }
1063
+ if (last < expr.length) html += escHtml(expr.slice(last));
1064
+ return html;
1065
+ };
1066
+ const MONO = "ui-monospace,SFMono-Regular,Menlo,Consolas,monospace";
1067
+ const hlLocator = (expr) => `<code style="font-family:${MONO}">${hlTokens(expr)}</code>`;
1068
+ const head = doc.createElement("div");
1069
+ head.innerHTML = arg.transport === "postMessage" ? "Click an element to generate locators" : arg.failing ? `Piwi locator picker — click the element that should replace ${hlLocator(arg.failing)}` : "Piwi inspector — click any element to generate locators for it";
1070
+ const locatorLine = doc.createElement("div");
1071
+ locatorLine.id = "__piwi_picker_locator";
1072
+ locatorLine.style.cssText = `display:none;margin-top:7px;padding:5px 9px;border-radius:7px;background:#0b1120;border:1px solid #4c1d95;font:13.5px/1.55 ${MONO};word-break:break-word;overflow-wrap:anywhere;`;
1073
+ const foot = doc.createElement("div");
1074
+ foot.id = "__piwi_picker_foot";
1075
+ foot.style.cssText = "color:#9ca3af;margin-top:6px;font-size:12px;";
1076
+ foot.textContent = "↑ parent · ↓ child · Esc skip";
1077
+ banner.appendChild(head);
1078
+ banner.appendChild(locatorLine);
1079
+ banner.appendChild(foot);
1080
+ const label = doc.createElement("div");
1081
+ label.id = "__piwi_picker_label";
1082
+ label.style.cssText = `position:fixed;pointer-events:none;z-index:${Z + 1};display:none;box-sizing:border-box;max-width:min(620px,92vw);background:#0b1120;color:#f9fafb;border:1px solid #7c3aed;border-radius:7px;padding:4px 8px;font:12.5px/1.45 ${MONO};white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 18px rgba(0,0,0,.5);`;
1083
+ doc.body.appendChild(highlight);
1084
+ doc.body.appendChild(label);
710
1085
  doc.body.appendChild(banner);
711
- g.parent.postMessage({ type: "pickerReady" }, "*");
712
- function describe(el) {
713
- var tag = (el.tagName || "?").toLowerCase();
714
- var testId = el.getAttribute && el.getAttribute("data-testid");
715
- if (testId) return "getByTestId('" + testId + "')";
1086
+ const escJs = (s) => s.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
1087
+ const describe = (el) => {
1088
+ const tag = (el.tagName || "?").toLowerCase();
1089
+ const testId = el.getAttribute && el.getAttribute("data-testid");
1090
+ if (testId) return `getByTestId('${escJs(testId)}')`;
716
1091
  if (el.labels && el.labels.length > 0) {
717
- var labelText = (el.labels[0].textContent || "").replace(/\s+/g, " ").trim().slice(0, 80);
718
- if (labelText) return "getByLabel('" + labelText + "')";
1092
+ const labelText = (el.labels[0].textContent || "").replace(/\s+/g, " ").trim().slice(0, 80);
1093
+ if (labelText) return `getByLabel('${escJs(labelText)}')`;
719
1094
  }
720
- var ariaLabel = el.getAttribute && el.getAttribute("aria-label");
721
- if (ariaLabel) return "getByLabel('" + ariaLabel + "')";
722
- var placeholder = el.getAttribute && el.getAttribute("placeholder");
723
- if (placeholder) return "getByPlaceholder('" + placeholder + "')";
724
- var alt = el.getAttribute && el.getAttribute("alt");
725
- if (alt) return "getByAltText('" + alt + "')";
726
- var titleAttr = el.getAttribute && el.getAttribute("title");
727
- if (titleAttr) return "getByTitle('" + titleAttr + "')";
728
- if (el.id) return "locator('#" + el.id + "')";
729
- var cls = (el.getAttribute && el.getAttribute("class") || "").split(/\s+/).find(function(c) {
730
- return c.length > 1;
731
- });
732
- if (cls) return "locator('." + cls + "')";
733
- return tag;
734
- }
735
- function buildChain(raw) {
736
- var chain2 = [];
737
- var node = raw;
1095
+ const ariaLabel = el.getAttribute && el.getAttribute("aria-label");
1096
+ if (ariaLabel) return `getByLabel('${escJs(ariaLabel)}')`;
1097
+ const placeholder = el.getAttribute && el.getAttribute("placeholder");
1098
+ if (placeholder) return `getByPlaceholder('${escJs(placeholder)}')`;
1099
+ const alt = el.getAttribute && el.getAttribute("alt");
1100
+ if (alt) return `getByAltText('${escJs(alt)}')`;
1101
+ const titleAttr = el.getAttribute && el.getAttribute("title");
1102
+ if (titleAttr) return `getByTitle('${escJs(titleAttr)}')`;
1103
+ if (el.id) return `locator('#${escJs(el.id)}')`;
1104
+ const cls = (el.getAttribute && el.getAttribute("class") || "").split(/\s+/).find((c) => c.length > 1);
1105
+ return cls ? `locator('.${escJs(cls)}')` : tag;
1106
+ };
1107
+ const buildChain = (raw) => {
1108
+ const chain2 = [];
1109
+ let node = raw;
738
1110
  while (node && chain2.length < 15) {
739
- var t = (node.tagName || "").toLowerCase();
740
- if (t === "body" || t === "html") break;
1111
+ const tag = (node.tagName || "").toLowerCase();
1112
+ if (tag === "body" || tag === "html") break;
741
1113
  chain2.push(node);
742
1114
  node = node.parentElement;
743
1115
  }
744
1116
  return chain2.length ? chain2 : [raw];
745
- }
746
- var ACTIONABLE = ["button", "a", "input", "select", "textarea", "summary", "option"];
747
- function snapIndex(chain2) {
748
- for (var i2 = 0; i2 < Math.min(chain2.length, 4); i2++) {
749
- var el = chain2[i2];
750
- var t = (el.tagName || "").toLowerCase();
751
- if (ACTIONABLE.indexOf(t) !== -1) return i2;
752
- if (el.getAttribute && (el.getAttribute("role") || el.getAttribute("data-testid"))) return i2;
1117
+ };
1118
+ const ACTIONABLE_TAGS = ["button", "a", "input", "select", "textarea", "summary", "option"];
1119
+ const snapIndex = (chain2) => {
1120
+ for (let i = 0; i < Math.min(chain2.length, 4); i++) {
1121
+ const el = chain2[i];
1122
+ const tag = (el.tagName || "").toLowerCase();
1123
+ if (ACTIONABLE_TAGS.includes(tag)) return i;
1124
+ if (el.getAttribute && (el.getAttribute("role") || el.getAttribute("data-testid"))) return i;
753
1125
  }
754
1126
  return 0;
755
- }
756
- var chain = [];
757
- var idx = 0;
758
- var lastRaw = null;
759
- function current() {
760
- return chain[idx] || null;
761
- }
762
- function refresh() {
763
- var el = current();
1127
+ };
1128
+ const locatorOf = (el) => {
1129
+ const hook = g.__piwiDescribeElement;
1130
+ if (typeof hook === "function") {
1131
+ try {
1132
+ const derived = hook(el);
1133
+ if (typeof derived === "string" && derived) return derived;
1134
+ } catch {
1135
+ }
1136
+ }
1137
+ return describe(el);
1138
+ };
1139
+ let chain = [];
1140
+ let idx = 0;
1141
+ let lastRaw = null;
1142
+ let labeled = null;
1143
+ const placeLabel = (r) => {
1144
+ label.style.display = "block";
1145
+ const lr = label.getBoundingClientRect();
1146
+ const vw = g.innerWidth || doc.documentElement.clientWidth || 0;
1147
+ const vh = g.innerHeight || doc.documentElement.clientHeight || 0;
1148
+ let top = r.top - lr.height - 6;
1149
+ if (top < 4) top = r.bottom + 6;
1150
+ if (top + lr.height > vh - 4) top = Math.max(4, vh - lr.height - 4);
1151
+ let left = r.left;
1152
+ if (left + lr.width > vw - 6) left = vw - lr.width - 6;
1153
+ if (left < 6) left = 6;
1154
+ label.style.left = left + "px";
1155
+ label.style.top = top + "px";
1156
+ };
1157
+ const current = () => chain[idx] ?? null;
1158
+ const refresh = () => {
1159
+ const el = current();
764
1160
  if (!el) {
765
1161
  highlight.style.display = "none";
1162
+ label.style.display = "none";
766
1163
  return;
767
1164
  }
768
- var r = el.getBoundingClientRect();
1165
+ const r = el.getBoundingClientRect();
769
1166
  highlight.style.display = "block";
770
1167
  highlight.style.left = r.left + "px";
771
1168
  highlight.style.top = r.top + "px";
772
1169
  highlight.style.width = r.width + "px";
773
1170
  highlight.style.height = r.height + "px";
774
- var foot2 = doc.getElementById("__piwi_picker_foot");
775
- if (foot2) foot2.textContent = describe(el) + " — click to pick · ↑ parent · ↓ child · Esc skip";
776
- }
777
- var foot = banner.querySelector("[style*=margin]");
778
- if (foot) foot.id = "__piwi_picker_foot";
779
- function probe(el) {
780
- var attrs = {};
781
- for (var i2 = 0; i2 < PROBED_ATTRS.length; i2++) {
782
- var k = PROBED_ATTRS[i2];
783
- var v = el.getAttribute(k) || el[k];
784
- attrs[k] = typeof v === "string" ? v.slice(0, 200) : v ? String(v).slice(0, 200) : null;
785
- }
786
- var r = el.getBoundingClientRect();
787
- var counts = {};
788
- try {
789
- var cssEsc = function(s) {
790
- return g.CSS.escape(s);
791
- };
792
- var countSel = function(sel) {
793
- try {
794
- return doc.querySelectorAll(sel).length;
795
- } catch (err) {
796
- return void 0;
797
- }
798
- };
799
- if (attrs["data-testid"]) counts.testId = countSel("[data-testid=" + JSON.stringify(attrs["data-testid"]) + "]");
800
- if (attrs.id) counts.id = countSel("#" + cssEsc(attrs.id));
801
- if (attrs.name) counts.name = countSel("[name=" + JSON.stringify(attrs.name) + "]");
802
- var classList = (attrs["class"] || "").split(/\s+/).filter(function(c) {
803
- return c.length > 1;
804
- }).slice(0, 10);
805
- if (classList.length > 0) {
806
- var classCounts = {};
807
- for (var j = 0; j < classList.length; j++) {
808
- var n = countSel("." + cssEsc(classList[j]));
809
- if (n !== void 0) classCounts[classList[j]] = n;
810
- }
811
- counts.classes = classCounts;
812
- }
813
- } catch (err) {
1171
+ if (el !== labeled) {
1172
+ labeled = el;
1173
+ const tag = (el.tagName || "?").toLowerCase();
1174
+ const locatorHtml = hlTokens(locatorOf(el));
1175
+ label.innerHTML = `<span style="color:#c4b5fd">&lt;${tag}&gt;</span> ${locatorHtml}`;
1176
+ locatorLine.innerHTML = locatorHtml;
1177
+ locatorLine.style.display = "block";
814
1178
  }
815
- var labelText = null;
816
- if (el.labels && el.labels.length > 0) {
817
- labelText = (el.labels[0].textContent || "").replace(/\s+/g, " ").trim().slice(0, 120) || null;
818
- }
819
- return {
820
- tagName: (el.tagName || "").toLowerCase(),
821
- attributes: attrs,
822
- textContent: (el.textContent || "").replace(/\s+/g, " ").trim().slice(0, 80) || null,
823
- center: { x: Math.round(r.x + r.width / 2), y: Math.round(r.y + r.height / 2) },
824
- hasLabel: !!(el.labels && el.labels.length > 0),
825
- labelText,
826
- selectorCounts: counts
827
- };
828
- }
829
- function stop(e) {
1179
+ placeLabel(r);
1180
+ foot.textContent = "click to pick · ↑ parent · ↓ child · Esc skip";
1181
+ };
1182
+ const stop = (e) => {
830
1183
  e.preventDefault();
831
1184
  e.stopImmediatePropagation();
832
- }
833
- function isOwn(el) {
834
- return el === banner || el === highlight || banner.contains && banner.contains(el) || el && el.__piwiHint;
835
- }
836
- var bannerDocked = "top";
837
- function dockBanner(side) {
1185
+ };
1186
+ const isOwn = (el) => el === banner || el === highlight || el === label || banner.contains && banner.contains(el) || !!(el && el.__piwiHint);
1187
+ let bannerDocked = "top";
1188
+ const dockBanner = (side) => {
838
1189
  if (bannerDocked === side) return;
839
1190
  bannerDocked = side;
840
1191
  if (side === "bottom") {
@@ -844,11 +1195,12 @@ function installSnapshotPicker(config) {
844
1195
  banner.style.top = "12px";
845
1196
  banner.style.bottom = "auto";
846
1197
  }
847
- }
848
- function onMove(e) {
849
- var raw = e.target;
1198
+ };
1199
+ const onMove = (e) => {
1200
+ const raw = e.target;
850
1201
  if (!raw || isOwn(raw)) {
851
1202
  highlight.style.display = "none";
1203
+ label.style.display = "none";
852
1204
  return;
853
1205
  }
854
1206
  if (raw !== lastRaw) {
@@ -857,36 +1209,109 @@ function installSnapshotPicker(config) {
857
1209
  idx = snapIndex(chain);
858
1210
  }
859
1211
  refresh();
860
- var el = current();
1212
+ const el = current();
861
1213
  if (el) {
862
- var r = el.getBoundingClientRect();
863
- var bannerRect = banner.getBoundingClientRect();
864
- var margin = 8;
865
- if (r.left < bannerRect.right + margin && r.right > bannerRect.left - margin && r.top < bannerRect.bottom + margin && r.bottom > bannerRect.top - margin) {
1214
+ const r = el.getBoundingClientRect();
1215
+ const br = banner.getBoundingClientRect();
1216
+ const margin = 8;
1217
+ if (r.left < br.right + margin && r.right > br.left - margin && r.top < br.bottom + margin && r.bottom > br.top - margin) {
866
1218
  dockBanner(bannerDocked === "top" ? "bottom" : "top");
867
1219
  }
868
1220
  }
869
- }
870
- function handleKey(k) {
871
- if (k === "Escape") {
872
- doClose();
873
- return;
1221
+ };
1222
+ const suppressed = ["mousedown", "mouseup", "pointerdown", "pointerup", "auxclick", "dblclick"];
1223
+ const removePickingListeners = () => {
1224
+ doc.removeEventListener("mousemove", onMove, true);
1225
+ doc.removeEventListener("click", onClick, true);
1226
+ doc.removeEventListener("keydown", onKey, true);
1227
+ if (arg.transport === "postMessage") g.removeEventListener("message", onParentMsg, false);
1228
+ };
1229
+ const removeSuppressed = () => {
1230
+ for (const t of suppressed) doc.removeEventListener(t, stop, true);
1231
+ };
1232
+ const cleanup = () => {
1233
+ highlight.remove();
1234
+ label.remove();
1235
+ banner.remove();
1236
+ };
1237
+ const reportPicked = (el) => {
1238
+ removePickingListeners();
1239
+ highlight.style.display = "none";
1240
+ label.style.display = "none";
1241
+ if (arg.transport === "postMessage") {
1242
+ const probeFn = g.__piwiProbe;
1243
+ const attrs = typeof probeFn === "function" ? probeFn(el, arg.probeArg) : null;
1244
+ g.__piwiSnapshotExtras?.onPick?.();
1245
+ doc.addEventListener("click", stop, true);
1246
+ doc.addEventListener("keydown", stop, true);
1247
+ foot.textContent = "Analyzing element…";
1248
+ g.parent.postMessage({ type: "elementPicked", attrs }, "*");
1249
+ } else {
1250
+ removeSuppressed();
1251
+ g.__piwiPickedElement = el;
1252
+ g.__piwiPickState = "picked";
1253
+ foot.textContent = "Analyzing element…";
874
1254
  }
875
- if (k === "ArrowUp") {
876
- idx = Math.min(idx + 1, chain.length - 1);
877
- refresh();
1255
+ };
1256
+ const reportSkipped = () => {
1257
+ removePickingListeners();
1258
+ if (arg.transport === "postMessage") {
1259
+ doc.removeEventListener("click", stop, true);
1260
+ doc.removeEventListener("keydown", stop, true);
1261
+ removeSuppressed();
1262
+ g.__piwiSnapshotExtras?.onClose?.();
1263
+ cleanup();
1264
+ g.parent.postMessage({ type: "pickerClosed" }, "*");
1265
+ } else {
1266
+ removeSuppressed();
1267
+ g.__piwiPickState = "skipped";
1268
+ cleanup();
878
1269
  }
879
- if (k === "ArrowDown") {
880
- idx = Math.max(idx - 1, 0);
881
- refresh();
1270
+ };
1271
+ const onClick = (e) => {
1272
+ stop(e);
1273
+ const el = current();
1274
+ if (!el || isOwn(e.target)) return;
1275
+ reportPicked(el);
1276
+ };
1277
+ const onKey = (e) => {
1278
+ if (e.key === "Escape") {
1279
+ stop(e);
1280
+ reportSkipped();
1281
+ return;
882
1282
  }
883
- }
884
- function onKey(e) {
885
- if (e.key === "Escape" || e.key === "ArrowUp" || e.key === "ArrowDown") {
1283
+ if (e.key === "ArrowUp" || e.key === "ArrowDown") {
886
1284
  stop(e);
887
- handleKey(e.key);
1285
+ if (e.key === "ArrowUp") idx = Math.min(idx + 1, chain.length - 1);
1286
+ else idx = Math.max(idx - 1, 0);
1287
+ refresh();
888
1288
  }
1289
+ };
1290
+ const onParentMsg = (e) => {
1291
+ const d = e.data;
1292
+ if (!d || typeof d.type !== "string" || d.type !== "piwiPickerKey" || typeof d.key !== "string") return;
1293
+ onKey({
1294
+ key: d.key,
1295
+ preventDefault() {
1296
+ },
1297
+ stopImmediatePropagation() {
1298
+ }
1299
+ });
1300
+ };
1301
+ g.__piwiPickCleanup = cleanup;
1302
+ doc.addEventListener("mousemove", onMove, true);
1303
+ doc.addEventListener("click", onClick, true);
1304
+ doc.addEventListener("keydown", onKey, true);
1305
+ for (const t of suppressed) doc.addEventListener(t, stop, true);
1306
+ if (arg.transport === "postMessage") {
1307
+ g.addEventListener("message", onParentMsg, false);
1308
+ g.parent.postMessage({ type: "pickerReady" }, "*");
889
1309
  }
1310
+ }
1311
+ function installSnapshotPickerExtras() {
1312
+ var doc = void 0;
1313
+ var g = void 0;
1314
+ var Z = 2147483600;
890
1315
  var hintBoxes = [];
891
1316
  function clearHints() {
892
1317
  for (var i2 = 0; i2 < hintBoxes.length; i2++) {
@@ -985,8 +1410,7 @@ function installSnapshotPicker(config) {
985
1410
  function onParentMsg(e) {
986
1411
  var d = e.data;
987
1412
  if (!d || typeof d.type !== "string") return;
988
- if (d.type === "piwiPickerKey" && typeof d.key === "string") handleKey(d.key);
989
- else if (d.type === "piwiHighlight") {
1413
+ if (d.type === "piwiHighlight") {
990
1414
  try {
991
1415
  highlightHints(d.hints);
992
1416
  } catch (err) {
@@ -1008,37 +1432,43 @@ function installSnapshotPicker(config) {
1008
1432
  }
1009
1433
  }
1010
1434
  }
1011
- function onClick(e) {
1012
- stop(e);
1013
- var el = current();
1014
- if (!el || isOwn(e.target)) return;
1015
- var attrs = probe(el);
1016
- highlight.style.display = "none";
1017
- clearHints();
1018
- banner.innerHTML = '<div style="text-align:center;color:#9ca3af;">Analyzing element…</div>';
1019
- removeListeners();
1020
- g.parent.postMessage({ type: "elementPicked", attrs }, "*");
1021
- }
1022
- var suppressed = ["mousedown", "mouseup", "pointerdown", "pointerup", "auxclick", "dblclick"];
1023
- function removeListeners() {
1024
- doc.removeEventListener("mousemove", onMove, true);
1025
- doc.removeEventListener("click", onClick, true);
1026
- doc.removeEventListener("keydown", onKey, true);
1027
- g.removeEventListener("message", onParentMsg, false);
1028
- for (var i2 = 0; i2 < suppressed.length; i2++) doc.removeEventListener(suppressed[i2], stop, true);
1029
- }
1030
- function doClose() {
1031
- removeListeners();
1032
- clearHints();
1033
- highlight.remove();
1034
- banner.remove();
1035
- g.parent.postMessage({ type: "pickerClosed" }, "*");
1036
- }
1037
- doc.addEventListener("mousemove", onMove, true);
1038
- doc.addEventListener("click", onClick, true);
1039
- doc.addEventListener("keydown", onKey, true);
1040
1435
  g.addEventListener("message", onParentMsg, false);
1041
- for (var i = 0; i < suppressed.length; i++) doc.addEventListener(suppressed[i], stop, true);
1436
+ function stop(e) {
1437
+ e.preventDefault();
1438
+ e.stopImmediatePropagation();
1439
+ }
1440
+ var INERT_EVENTS = [
1441
+ "mousedown",
1442
+ "mouseup",
1443
+ "pointerdown",
1444
+ "pointerup",
1445
+ "auxclick",
1446
+ "dblclick",
1447
+ "contextmenu",
1448
+ "submit",
1449
+ "beforeinput",
1450
+ "input",
1451
+ "change",
1452
+ "paste",
1453
+ "cut",
1454
+ "drop",
1455
+ "dragstart",
1456
+ "keypress",
1457
+ "keyup",
1458
+ "touchstart",
1459
+ "touchend"
1460
+ ];
1461
+ for (var i = 0; i < INERT_EVENTS.length; i++) doc.addEventListener(INERT_EVENTS[i], stop, true);
1462
+ g.__piwiSnapshotExtras = {
1463
+ onPick: function() {
1464
+ clearHints();
1465
+ },
1466
+ onClose: function() {
1467
+ clearHints();
1468
+ g.removeEventListener("message", onParentMsg, false);
1469
+ for (var i2 = 0; i2 < INERT_EVENTS.length; i2++) doc.removeEventListener(INERT_EVENTS[i2], stop, true);
1470
+ }
1471
+ };
1042
1472
  function reportHeight() {
1043
1473
  var h = Math.max(doc.documentElement ? doc.documentElement.scrollHeight : 0, doc.body ? doc.body.scrollHeight : 0);
1044
1474
  if (h > 0) g.parent.postMessage({ type: "piwiContentHeight", height: h }, "*");
@@ -1053,9 +1483,14 @@ function installSnapshotPicker(config) {
1053
1483
  } catch (err) {
1054
1484
  }
1055
1485
  }
1486
+ const escScriptClose = (src) => src.replace(/<\/(script)/gi, "<\\/$1");
1056
1487
  function snapshotPickerScriptTag(config) {
1057
- const src = String(installSnapshotPicker).replace(/<\/(script)/gi, "<\\/$1");
1058
- return `<script>(${src})(${JSON.stringify(config)})<\/script>`;
1488
+ const probeArg = { keep: config.probedAttrs, includeStructural: false, includeLabelText: true };
1489
+ const overlayArg = { transport: "postMessage", probeArg };
1490
+ const probeSrc = escScriptClose(String(probeElementAttrs));
1491
+ const extrasSrc = escScriptClose(String(installSnapshotPickerExtras));
1492
+ const overlaySrc = escScriptClose(String(installPickerOverlay));
1493
+ return `<script>globalThis.__piwiProbe = (${probeSrc});(${extrasSrc})();(${overlaySrc})(${JSON.stringify(overlayArg)});<\/script>`;
1059
1494
  }
1060
1495
  function stripBaseTag(html) {
1061
1496
  return html.replace(/<base\b[^>]*>/gi, "");
@@ -1088,7 +1523,9 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1088
1523
  snapshotPending.value = true;
1089
1524
  snapshotError.value = null;
1090
1525
  try {
1091
- const query = viewSource.value ? `?source=${viewSource.value}` : "";
1526
+ const params = new URLSearchParams({ inlineStyles: "1" });
1527
+ if (viewSource.value) params.set("source", viewSource.value);
1528
+ const query = `?${params.toString()}`;
1092
1529
  snapshot.value = await $fetch(
1093
1530
  `/api/test-runs/${props.runId}/cases/${props.testRunsCaseId}/dom-snapshot${query}`
1094
1531
  );
@@ -1301,11 +1738,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1301
1738
  }, 2e3);
1302
1739
  }
1303
1740
  return (_ctx, _push, _parent, _attrs) => {
1304
- const _component_UModal = _sfc_main$o;
1741
+ const _component_UModal = _sfc_main$q;
1305
1742
  const _component_UIcon = _sfc_main$p;
1306
1743
  const _component_UButton = _sfc_main$k$1;
1307
1744
  const _component_UInput = _sfc_main$d$1;
1308
1745
  const _component_UBadge = _sfc_main$7$1;
1746
+ const _component_LocatorCode = __nuxt_component_0;
1309
1747
  _push(ssrRenderComponent(_component_UModal, mergeProps({
1310
1748
  open: isOpen.value,
1311
1749
  "onUpdate:open": ($event) => isOpen.value = $event,
@@ -1545,7 +1983,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1545
1983
  }, null, _parent2, _scopeId));
1546
1984
  _push2(`</div><div class="space-y-1" role="radiogroup" aria-label="Alternative locators"${_scopeId}><!--[-->`);
1547
1985
  ssrRenderList(unref(alternatives), (alt, i) => {
1548
- _push2(ssrRenderComponent(__nuxt_component_6, {
1986
+ _push2(ssrRenderComponent(__nuxt_component_7, {
1549
1987
  key: i,
1550
1988
  alt,
1551
1989
  copied: unref(copiedKey) === `picked-${i}`,
@@ -1563,7 +2001,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1563
2001
  name: "i-lucide-star",
1564
2002
  class: "size-5 text-primary shrink-0"
1565
2003
  }, null, _parent2, _scopeId));
1566
- _push2(`<div class="flex-1 min-w-0"${_scopeId}><p class="text-xs font-medium text-primary"${_scopeId}> Recommended (score: ${ssrInterpolate(unref(recommendation).recommended.score)}) </p><code class="text-sm font-mono block truncate mt-0.5"${_scopeId}>${ssrInterpolate(unref(recommendation).recommended.locator)}</code></div>`);
2004
+ _push2(`<div class="flex-1 min-w-0"${_scopeId}><p class="text-xs font-medium text-primary"${_scopeId}> Recommended (score: ${ssrInterpolate(unref(recommendation).recommended.score)}) </p>`);
2005
+ _push2(ssrRenderComponent(_component_LocatorCode, {
2006
+ locator: unref(recommendation).recommended.locator,
2007
+ truncate: "",
2008
+ class: "text-sm mt-0.5"
2009
+ }, null, _parent2, _scopeId));
2010
+ _push2(`</div>`);
1567
2011
  _push2(ssrRenderComponent(_component_UButton, {
1568
2012
  size: "sm",
1569
2013
  color: "primary",
@@ -1832,7 +2276,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1832
2276
  "aria-label": "Alternative locators"
1833
2277
  }, [
1834
2278
  (openBlock(true), createBlock(Fragment, null, renderList(unref(alternatives), (alt, i) => {
1835
- return openBlock(), createBlock(__nuxt_component_6, {
2279
+ return openBlock(), createBlock(__nuxt_component_7, {
1836
2280
  key: i,
1837
2281
  alt,
1838
2282
  copied: unref(copiedKey) === `picked-${i}`,
@@ -1859,7 +2303,11 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1859
2303
  }),
1860
2304
  createVNode("div", { class: "flex-1 min-w-0" }, [
1861
2305
  createVNode("p", { class: "text-xs font-medium text-primary" }, " Recommended (score: " + toDisplayString(unref(recommendation).recommended.score) + ") ", 1),
1862
- createVNode("code", { class: "text-sm font-mono block truncate mt-0.5" }, toDisplayString(unref(recommendation).recommended.locator), 1)
2306
+ createVNode(_component_LocatorCode, {
2307
+ locator: unref(recommendation).recommended.locator,
2308
+ truncate: "",
2309
+ class: "text-sm mt-0.5"
2310
+ }, null, 8, ["locator"])
1863
2311
  ]),
1864
2312
  createVNode(_component_UButton, {
1865
2313
  size: "sm",
@@ -2086,7 +2534,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2086
2534
  },
2087
2535
  setup(__props) {
2088
2536
  const props = __props;
2089
- const cardComponent = computed(() => props.storageKey ? __nuxt_component_24 : __nuxt_component_11);
2537
+ const cardComponent = computed(() => props.storageKey ? __nuxt_component_25 : __nuxt_component_11);
2090
2538
  const cardBind = computed(() => props.storageKey ? { storageKey: props.storageKey } : {});
2091
2539
  const {
2092
2540
  data: healing,
@@ -2248,13 +2696,14 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2248
2696
  () => showAllAlternatives.value ? alternatives.value : alternatives.value.slice(0, ALT_PREVIEW)
2249
2697
  );
2250
2698
  return (_ctx, _push, _parent, _attrs) => {
2699
+ const _component_LocatorCode = __nuxt_component_0;
2251
2700
  const _component_UButton = _sfc_main$k$1;
2252
- const _component_UAlert = _sfc_main$k;
2701
+ const _component_UAlert = _sfc_main$l;
2253
2702
  const _component_NuxtLink = __nuxt_component_12;
2254
2703
  const _component_UIcon = _sfc_main$p;
2255
2704
  const _component_UBadge = _sfc_main$7$1;
2256
2705
  const _component_DiffPatch = __nuxt_component_1$2;
2257
- const _component_LocatorAlternativeRow = __nuxt_component_6;
2706
+ const _component_LocatorAlternativeRow = __nuxt_component_7;
2258
2707
  const _component_DocLink = __nuxt_component_9;
2259
2708
  _push(`<!--[-->`);
2260
2709
  if (!unref(pending) && !unref(error) && unref(hasData)) {
@@ -2346,7 +2795,13 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2346
2795
  }),
2347
2796
  _: 1
2348
2797
  }, _parent2, _scopeId));
2349
- _push2(`</p><code class="text-sm font-mono block truncate mt-0.5"${_scopeId}>${ssrInterpolate(unref(userPick).locator)}</code></div>`);
2798
+ _push2(`</p>`);
2799
+ _push2(ssrRenderComponent(_component_LocatorCode, {
2800
+ locator: unref(userPick).locator,
2801
+ truncate: "",
2802
+ class: "text-sm mt-0.5"
2803
+ }, null, _parent2, _scopeId));
2804
+ _push2(`</div>`);
2350
2805
  _push2(ssrRenderComponent(_component_UButton, {
2351
2806
  size: "sm",
2352
2807
  color: "primary",
@@ -2438,7 +2893,12 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2438
2893
  }, null, _parent2, _scopeId));
2439
2894
  _push2(`</div>`);
2440
2895
  } else {
2441
- _push2(`<!--[--><code class="text-sm font-mono block truncate"${_scopeId}>${ssrInterpolate(unref(recommended).locator)}</code>`);
2896
+ _push2(`<!--[-->`);
2897
+ _push2(ssrRenderComponent(_component_LocatorCode, {
2898
+ locator: unref(recommended).locator,
2899
+ truncate: "",
2900
+ class: "text-sm"
2901
+ }, null, _parent2, _scopeId));
2442
2902
  if (unref(argChanges).length) {
2443
2903
  _push2(`<p class="text-xs flex flex-wrap items-center gap-x-1.5 gap-y-0.5"${_scopeId}><!--[-->`);
2444
2904
  ssrRenderList(unref(argChanges), (c, i) => {
@@ -2528,7 +2988,13 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2528
2988
  name: "i-lucide-shield-check",
2529
2989
  class: "size-5 text-success shrink-0"
2530
2990
  }, null, _parent2, _scopeId));
2531
- _push2(`<div class="flex-1 min-w-0"${_scopeId}><p class="text-xs font-medium text-success-600 dark:text-success-400"${_scopeId}> Most stable option (score: ${ssrInterpolate(unref(recommendation).durable.score)}) </p><code class="text-sm font-mono block truncate mt-0.5"${_scopeId}>${ssrInterpolate(unref(recommendation).durable.locator)}</code><p class="text-xs text-gray-500 mt-0.5"${_scopeId}>Sturdier, but changes the locator style</p></div>`);
2991
+ _push2(`<div class="flex-1 min-w-0"${_scopeId}><p class="text-xs font-medium text-success-600 dark:text-success-400"${_scopeId}> Most stable option (score: ${ssrInterpolate(unref(recommendation).durable.score)}) </p>`);
2992
+ _push2(ssrRenderComponent(_component_LocatorCode, {
2993
+ locator: unref(recommendation).durable.locator,
2994
+ truncate: "",
2995
+ class: "text-sm mt-0.5"
2996
+ }, null, _parent2, _scopeId));
2997
+ _push2(`<p class="text-xs text-gray-500 mt-0.5"${_scopeId}>Sturdier, but changes the locator style</p></div>`);
2532
2998
  _push2(ssrRenderComponent(_component_UButton, {
2533
2999
  size: "sm",
2534
3000
  color: "neutral",
@@ -2708,7 +3174,11 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2708
3174
  _: 1
2709
3175
  })
2710
3176
  ]),
2711
- createVNode("code", { class: "text-sm font-mono block truncate mt-0.5" }, toDisplayString(unref(userPick).locator), 1)
3177
+ createVNode(_component_LocatorCode, {
3178
+ locator: unref(userPick).locator,
3179
+ truncate: "",
3180
+ class: "text-sm mt-0.5"
3181
+ }, null, 8, ["locator"])
2712
3182
  ]),
2713
3183
  createVNode(_component_UButton, {
2714
3184
  size: "sm",
@@ -2785,7 +3255,11 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2785
3255
  patch: unref(suggestedEdit).patch
2786
3256
  }, null, 8, ["patch"])
2787
3257
  ])) : (openBlock(), createBlock(Fragment, { key: 1 }, [
2788
- createVNode("code", { class: "text-sm font-mono block truncate" }, toDisplayString(unref(recommended).locator), 1),
3258
+ createVNode(_component_LocatorCode, {
3259
+ locator: unref(recommended).locator,
3260
+ truncate: "",
3261
+ class: "text-sm"
3262
+ }, null, 8, ["locator"]),
2789
3263
  unref(argChanges).length ? (openBlock(), createBlock("p", {
2790
3264
  key: 0,
2791
3265
  class: "text-xs flex flex-wrap items-center gap-x-1.5 gap-y-0.5"
@@ -2867,7 +3341,11 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2867
3341
  }),
2868
3342
  createVNode("div", { class: "flex-1 min-w-0" }, [
2869
3343
  createVNode("p", { class: "text-xs font-medium text-success-600 dark:text-success-400" }, " Most stable option (score: " + toDisplayString(unref(recommendation).durable.score) + ") ", 1),
2870
- createVNode("code", { class: "text-sm font-mono block truncate mt-0.5" }, toDisplayString(unref(recommendation).durable.locator), 1),
3344
+ createVNode(_component_LocatorCode, {
3345
+ locator: unref(recommendation).durable.locator,
3346
+ truncate: "",
3347
+ class: "text-sm mt-0.5"
3348
+ }, null, 8, ["locator"]),
2871
3349
  createVNode("p", { class: "text-xs text-gray-500 mt-0.5" }, "Sturdier, but changes the locator style")
2872
3350
  ]),
2873
3351
  createVNode(_component_UButton, {
@@ -2967,16 +3445,20 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2967
3445
  fn: withCtx((_, _push2, _parent2, _scopeId) => {
2968
3446
  if (_push2) {
2969
3447
  if (unref(recommendation)?.recommended) {
2970
- _push2(`<code class="text-xs font-mono"${_scopeId}>${ssrInterpolate(unref(recommendation).recommended.locator)}</code>`);
3448
+ _push2(ssrRenderComponent(_component_LocatorCode, {
3449
+ locator: unref(recommendation).recommended.locator,
3450
+ class: "text-xs"
3451
+ }, null, _parent2, _scopeId));
2971
3452
  } else {
2972
3453
  _push2(`<span${_scopeId}>${ssrInterpolate(unref(alternatives).length)} alternative${ssrInterpolate(unref(alternatives).length === 1 ? "" : "s")}</span>`);
2973
3454
  }
2974
3455
  } else {
2975
3456
  return [
2976
- unref(recommendation)?.recommended ? (openBlock(), createBlock("code", {
3457
+ unref(recommendation)?.recommended ? (openBlock(), createBlock(_component_LocatorCode, {
2977
3458
  key: 0,
2978
- class: "text-xs font-mono"
2979
- }, toDisplayString(unref(recommendation).recommended.locator), 1)) : (openBlock(), createBlock("span", { key: 1 }, toDisplayString(unref(alternatives).length) + " alternative" + toDisplayString(unref(alternatives).length === 1 ? "" : "s"), 1))
3459
+ locator: unref(recommendation).recommended.locator,
3460
+ class: "text-xs"
3461
+ }, null, 8, ["locator"])) : (openBlock(), createBlock("span", { key: 1 }, toDisplayString(unref(alternatives).length) + " alternative" + toDisplayString(unref(alternatives).length === 1 ? "" : "s"), 1))
2980
3462
  ];
2981
3463
  }
2982
3464
  }),
@@ -3287,7 +3769,7 @@ _sfc_main$d.setup = (props, ctx) => {
3287
3769
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/LocatorHealingPanel.vue");
3288
3770
  return _sfc_setup$d ? _sfc_setup$d(props, ctx) : void 0;
3289
3771
  };
3290
- const __nuxt_component_18 = Object.assign(_sfc_main$d, { __name: "LocatorHealingPanel" });
3772
+ const __nuxt_component_19 = Object.assign(_sfc_main$d, { __name: "LocatorHealingPanel" });
3291
3773
  const _sfc_main$c = /* @__PURE__ */ defineComponent({
3292
3774
  __name: "EnvironmentDiffCard",
3293
3775
  __ssrInlineRender: true,
@@ -3298,7 +3780,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
3298
3780
  },
3299
3781
  setup(__props, { expose: __expose }) {
3300
3782
  const props = __props;
3301
- const cardComponent = computed(() => props.storageKey ? __nuxt_component_24 : __nuxt_component_11);
3783
+ const cardComponent = computed(() => props.storageKey ? __nuxt_component_25 : __nuxt_component_11);
3302
3784
  const cardBind = computed(() => props.storageKey ? { storageKey: props.storageKey } : {});
3303
3785
  const {
3304
3786
  data: diff,
@@ -3328,7 +3810,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
3328
3810
  const card = ref(null);
3329
3811
  __expose({ reveal: () => card.value?.reveal?.() });
3330
3812
  return (_ctx, _push, _parent, _attrs) => {
3331
- const _component_UAlert = _sfc_main$k;
3813
+ const _component_UAlert = _sfc_main$l;
3332
3814
  const _component_UIcon = _sfc_main$p;
3333
3815
  if (!unref(pending) && !unref(error) && unref(diff)?.status === "ok") {
3334
3816
  ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(cardComponent)), mergeProps({
@@ -3452,7 +3934,7 @@ _sfc_main$c.setup = (props, ctx) => {
3452
3934
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/EnvironmentDiffCard.vue");
3453
3935
  return _sfc_setup$c ? _sfc_setup$c(props, ctx) : void 0;
3454
3936
  };
3455
- const __nuxt_component_19 = Object.assign(_sfc_main$c, { __name: "EnvironmentDiffCard" });
3937
+ const __nuxt_component_20 = Object.assign(_sfc_main$c, { __name: "EnvironmentDiffCard" });
3456
3938
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
3457
3939
  __name: "ScreenshotLightbox",
3458
3940
  __ssrInlineRender: true,
@@ -3528,7 +4010,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
3528
4010
  },
3529
4011
  setup(__props, { expose: __expose }) {
3530
4012
  const props = __props;
3531
- const cardComponent = computed(() => props.storageKey ? __nuxt_component_24 : __nuxt_component_11);
4013
+ const cardComponent = computed(() => props.storageKey ? __nuxt_component_25 : __nuxt_component_11);
3532
4014
  const cardBind = computed(() => props.storageKey ? { storageKey: props.storageKey } : {});
3533
4015
  const config = useRuntimeConfig();
3534
4016
  const {
@@ -3576,8 +4058,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
3576
4058
  __expose({ reveal: () => card.value?.reveal?.() });
3577
4059
  return (_ctx, _push, _parent, _attrs) => {
3578
4060
  const _component_UBadge = _sfc_main$7$1;
3579
- const _component_UAlert = _sfc_main$k;
3580
- const _component_UTabs = _sfc_main$l;
4061
+ const _component_UAlert = _sfc_main$l;
4062
+ const _component_UTabs = _sfc_main$m;
3581
4063
  const _component_ScreenshotLightbox = __nuxt_component_4$2;
3582
4064
  if (!unref(pending) && !unref(error) && unref(diff)) {
3583
4065
  ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(cardComponent)), mergeProps({
@@ -3781,7 +4263,7 @@ _sfc_main$a.setup = (props, ctx) => {
3781
4263
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/VisualDiffCard.vue");
3782
4264
  return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
3783
4265
  };
3784
- const __nuxt_component_20 = Object.assign(_sfc_main$a, { __name: "VisualDiffCard" });
4266
+ const __nuxt_component_21 = Object.assign(_sfc_main$a, { __name: "VisualDiffCard" });
3785
4267
  const DISPLAY_CAP = 2e4;
3786
4268
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3787
4269
  __name: "DomSnapshotCard",
@@ -3793,7 +4275,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3793
4275
  },
3794
4276
  setup(__props, { expose: __expose }) {
3795
4277
  const props = __props;
3796
- const cardComponent = computed(() => props.storageKey ? __nuxt_component_24 : __nuxt_component_11);
4278
+ const cardComponent = computed(() => props.storageKey ? __nuxt_component_25 : __nuxt_component_11);
3797
4279
  const cardBind = computed(() => props.storageKey ? { storageKey: props.storageKey } : {});
3798
4280
  const {
3799
4281
  data: snapshot,
@@ -3819,7 +4301,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3819
4301
  const card = ref(null);
3820
4302
  __expose({ reveal: () => card.value?.reveal?.() });
3821
4303
  return (_ctx, _push, _parent, _attrs) => {
3822
- const _component_UTooltip = _sfc_main$m;
4304
+ const _component_UTooltip = _sfc_main$n;
3823
4305
  const _component_UButton = _sfc_main$k$1;
3824
4306
  const _component_CodeBlock = __nuxt_component_5;
3825
4307
  if (!unref(pending) && !unref(error) && unref(snapshot)?.status === "ok" && unref(snapshot).html) {
@@ -3947,7 +4429,7 @@ _sfc_main$9.setup = (props, ctx) => {
3947
4429
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/DomSnapshotCard.vue");
3948
4430
  return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
3949
4431
  };
3950
- const __nuxt_component_26 = Object.assign(_sfc_main$9, { __name: "DomSnapshotCard" });
4432
+ const __nuxt_component_27 = Object.assign(_sfc_main$9, { __name: "DomSnapshotCard" });
3951
4433
  const _sfc_main$8 = /* @__PURE__ */ defineComponent({
3952
4434
  __name: "TestEvidenceSection",
3953
4435
  __ssrInlineRender: true,
@@ -4615,7 +5097,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4615
5097
  },
4616
5098
  setup(__props) {
4617
5099
  const props = __props;
4618
- const cardComponent = computed(() => props.plain ? "div" : props.storageKey ? __nuxt_component_24 : __nuxt_component_11);
5100
+ const cardComponent = computed(() => props.plain ? "div" : props.storageKey ? __nuxt_component_25 : __nuxt_component_11);
4619
5101
  const cardBind = computed(
4620
5102
  () => props.plain ? {} : {
4621
5103
  icon: "i-lucide-database",
@@ -4775,7 +5257,7 @@ _sfc_main.setup = (props, ctx) => {
4775
5257
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/PageStateCard.vue");
4776
5258
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
4777
5259
  };
4778
- const __nuxt_component_23 = Object.assign(_sfc_main, { __name: "PageStateCard" });
5260
+ const __nuxt_component_24 = Object.assign(_sfc_main, { __name: "PageStateCard" });
4779
5261
  function useCopyRich(options = {}) {
4780
5262
  const copied = ref(false);
4781
5263
  const toast = useToast();
@@ -4812,5 +5294,5 @@ function useCopyRich(options = {}) {
4812
5294
  return { copyRich, copied };
4813
5295
  }
4814
5296
 
4815
- export { __nuxt_component_24 as _, __nuxt_component_18 as a, __nuxt_component_19 as b, __nuxt_component_20 as c, __nuxt_component_26 as d, __nuxt_component_6$1 as e, isVideoFile as f, __nuxt_component_1$1 as g, __nuxt_component_2 as h, isImageFile as i, __nuxt_component_3$1 as j, __nuxt_component_4$1 as k, __nuxt_component_3 as l, __nuxt_component_4 as m, __nuxt_component_23 as n, __nuxt_component_1$2 as o, __nuxt_component_1 as p, __nuxt_component_3$2 as q, __nuxt_component_4$2 as r, stripAnsi as s, useCopyRich as u };
4816
- //# sourceMappingURL=useCopyRich-BemRsKgv.mjs.map
5297
+ export { __nuxt_component_25 as _, __nuxt_component_19 as a, __nuxt_component_20 as b, __nuxt_component_21 as c, __nuxt_component_27 as d, __nuxt_component_6 as e, isVideoFile as f, __nuxt_component_1$1 as g, __nuxt_component_2 as h, isImageFile as i, __nuxt_component_3$1 as j, __nuxt_component_4$1 as k, __nuxt_component_3 as l, __nuxt_component_4 as m, __nuxt_component_24 as n, __nuxt_component_1$2 as o, __nuxt_component_1 as p, __nuxt_component_3$2 as q, __nuxt_component_4$2 as r, stripAnsi as s, useCopyRich as u };
5298
+ //# sourceMappingURL=useCopyRich-Cd5Yj_Wy.mjs.map