@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,38 +1,40 @@
1
- import { _ as _sfc_main$1$1, a as _sfc_main$f } from './DashboardNavbar-BHmMSPX7.mjs';
2
- import { _ as _sfc_main$1$2 } from './Breadcrumb-Ak2Lg3oM.mjs';
3
- import { _ as __nuxt_component_3$2 } from './BreadcrumbNav-DO7I_z-n.mjs';
4
- import { u as useRoute, k as useRouter, l as useHead, r as useRuntimeConfig, m as _sfc_main$k, s as __nuxt_component_12, n as _sfc_main$7$1, o as _sfc_main$p, y as __nuxt_component_7, j as useToast } from './server.mjs';
5
- import { u as useCopyRich, n as __nuxt_component_23, a as __nuxt_component_18, b as __nuxt_component_19, c as __nuxt_component_20, _ as __nuxt_component_24, d as __nuxt_component_26, e as __nuxt_component_6$1, p as __nuxt_component_1$2, i as isImageFile, f as isVideoFile, q as __nuxt_component_3$2$1, r as __nuxt_component_4$2, l as __nuxt_component_3$4, m as __nuxt_component_4$3, g as __nuxt_component_1$1$1, h as __nuxt_component_2$2, j as __nuxt_component_3$1$1, k as __nuxt_component_4$1$1 } from './useCopyRich-BemRsKgv.mjs';
6
- import { _ as __nuxt_component_4$1 } from './NavbarActions-_YjrSUat.mjs';
7
- import { _ as __nuxt_component_8, a as __nuxt_component_1$5, b as __nuxt_component_14$2, c as __nuxt_component_13$1, d as __nuxt_component_15$1 } from './CiEnvCard-CrjOM17n.mjs';
8
- import { c as clusterSectionLocatorKey, a as __nuxt_component_25, d as useAiStatus, f as __nuxt_component_3$3, h as __nuxt_component_6, g as __nuxt_component_8$1, e as __nuxt_component_1$4, u as useDetailGrid, _ as __nuxt_component_0 } from './useAiStatus-CWvIo32Q.mjs';
9
- import { _ as __nuxt_component_14$1 } from './DurationValue-D20oGbnc.mjs';
10
- import { _ as __nuxt_component_3$5 } from './BrowserBadge-D33lqUcj.mjs';
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$f } from './DashboardNavbar-DCr10nxL.mjs';
2
+ import { _ as _sfc_main$1$2 } from './Breadcrumb-3itRZ1uz.mjs';
3
+ import { _ as __nuxt_component_3$2 } from './BreadcrumbNav-GnjBvXuT.mjs';
4
+ import { u as useRoute, k as useRouter, l as useHead, r as useRuntimeConfig, m as _sfc_main$k, v as __nuxt_component_12, n as _sfc_main$7$1, o as _sfc_main$p, s as __nuxt_component_7, j as useToast } from './server.mjs';
5
+ import { u as useCopyRich, n as __nuxt_component_24, a as __nuxt_component_19, b as __nuxt_component_20, c as __nuxt_component_21, _ as __nuxt_component_25, d as __nuxt_component_27, e as __nuxt_component_6, p as __nuxt_component_1$2, i as isImageFile, f as isVideoFile, q as __nuxt_component_3$2$1, r as __nuxt_component_4$2$1, l as __nuxt_component_3$4, m as __nuxt_component_4$4, g as __nuxt_component_1$1$1, h as __nuxt_component_2$2, j as __nuxt_component_3$1$1, k as __nuxt_component_4$1$1 } from './useCopyRich-Cd5Yj_Wy.mjs';
6
+ import { _ as __nuxt_component_8, a as __nuxt_component_14$2, b as __nuxt_component_1$4, c as __nuxt_component_16$1, d as __nuxt_component_17$1 } from './MetaStripGroup-dXXa_MzF.mjs';
7
+ import { _ as __nuxt_component_4$3 } from './NavbarActions-_YjrSUat.mjs';
8
+ import { c as clusterSectionLocatorKey, a as __nuxt_component_26, d as __nuxt_component_3$3, f as __nuxt_component_6$1, e as __nuxt_component_8$1, b as __nuxt_component_1$3, _ as __nuxt_component_0 } from './DiagnosisResult-Br3qBLXe.mjs';
9
+ import { _ as __nuxt_component_14$1 } from './DurationValue-CWKfjIF2.mjs';
10
+ import { _ as __nuxt_component_3$5 } from './BrowserBadge-DQqJS9CV.mjs';
11
11
  import { _ as _sfc_main$i } from './Card-BQP_oZkQ.mjs';
12
- import { _ as __nuxt_component_2$3 } from './TestMetaBadges-D5_yUtIP.mjs';
13
- import { a as __nuxt_component_9$2, _ as __nuxt_component_2$1 } from './HelpHint-DrcIv-Oj.mjs';
14
- import { _ as __nuxt_component_17$1 } from './EntityLinks-D3fp57pR.mjs';
15
- import { v as getStatusColor, g as renderAnsi, n as fileApiUrl, A as httpMethodColor, B as httpStatusColor, f as formatRelativeTime, i as clusterErrorTypeColor, C as isPiwiAnnotation, e as errorMessage, d as formatDuration } from './index-CU2nZhAa.mjs';
12
+ import { _ as __nuxt_component_2$3 } from './TestMetaBadges-BlyKmfeP.mjs';
13
+ import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-B9wvQkhy.mjs';
14
+ import { _ as __nuxt_component_1 } from './StatTileGrid-7zOFUQ6j.mjs';
15
+ import { _ as __nuxt_component_2 } from './StatTile-DpcVQFVI.mjs';
16
+ import { a as __nuxt_component_9, _ as __nuxt_component_2$1 } from './HelpHint-DjGrGFA7.mjs';
17
+ import { _ as __nuxt_component_19$1 } from './EntityLinks-CF0xG3Y8.mjs';
18
+ import { v as getStatusColor, g as renderAnsi, n as fileApiUrl, A as httpMethodColor, B as httpStatusColor, f as formatRelativeTime, i as clusterErrorTypeColor, C as isPiwiAnnotation, e as errorMessage, d as formatDuration } from './index-BOK1aJk9.mjs';
16
19
  import { defineComponent, withAsyncContext, ref, watch, computed, provide, mergeProps, withCtx, unref, isRef, createTextVNode, openBlock, createBlock, toDisplayString, createCommentVNode, createVNode, Fragment, renderList, createSlots, toValue, useSSRContext } from 'vue';
17
20
  import { ssrRenderComponent, ssrRenderAttr, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderStyle, ssrIncludeBooleanAttr, ssrRenderAttrs } from 'vue/server-renderer';
18
- import { _ as __nuxt_component_11 } from './SectionCard-CN-v0FZ_.mjs';
19
- import { _ as _sfc_main$e } from './Tooltip-BOazooWP.mjs';
20
- import { _ as _sfc_main$h } from './Textarea-Dv2-lOvW.mjs';
21
- import { dN as condenseErrorText, dO as hasSlowMark, dK as extractCitedSectionIds, cB as formatBytes } from '../nitro/nitro.mjs';
22
- import { _ as _sfc_main$g } from './Tabs-Bbsg9wag.mjs';
23
- import { _ as __nuxt_component_1$3 } from './LoadingState-C3pBSuOO.mjs';
24
- import { _ as __nuxt_component_9$1 } from './EmptyState-Dtlab7S9.mjs';
25
- import { _ as _sfc_main$j } from './Slideover-DgCa80mf.mjs';
26
- import { _ as __nuxt_component_5 } from './CodeBlock-BgE-NSmE.mjs';
21
+ import { _ as __nuxt_component_11 } from './SectionCard-BW5Lynrr.mjs';
22
+ import { _ as _sfc_main$e } from './Tooltip-Dv4htNP6.mjs';
23
+ import { _ as _sfc_main$h } from './Textarea-vkMKVQTJ.mjs';
24
+ import { dV as condenseErrorText, dW as hasSlowMark, dS as extractCitedSectionIds, aa as formatBytes } from '../nitro/nitro.mjs';
25
+ import { u as useAiStatus } from './useAiStatus-UR8x-feE.mjs';
26
+ import { _ as _sfc_main$g } from './Tabs-BkSOnbaB.mjs';
27
+ import { _ as __nuxt_component_12$1 } from './LoadingState-B8v1nWJt.mjs';
28
+ import { _ as __nuxt_component_4$2 } from './FeatureUnavailable-CwPms6X_.mjs';
29
+ import { _ as _sfc_main$j } from './Slideover-D270EZZD.mjs';
30
+ import { _ as __nuxt_component_5 } from './CodeBlock-DGhKVFad.mjs';
27
31
  import { _ as __nuxt_component_3$1 } from './TableScroller-DMcdCVrH.mjs';
28
32
  import { _ as _sfc_main$d } from './Table-BRk04Hd2.mjs';
29
- import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-C4MXA8ya.mjs';
30
- import { _ as __nuxt_component_1, a as __nuxt_component_2 } from './StatTile-D61Vzo6e.mjs';
31
- import { _ as __nuxt_component_38 } from './TestCaseHistoryChart-nMLPhdvD.mjs';
32
- import { b as buildRetryCommand } from './useOpenInIde-4GFf-kdi.mjs';
33
- import { u as useFetch } from './fetch-B4FwBOzu.mjs';
34
- import { u as useCopy } from './useCopy-CeKWgHyT.mjs';
35
- import './DashboardSidebarToggle-DCTnHiIv.mjs';
33
+ import { _ as __nuxt_component_4$1 } from './EmptyState-DC2q_7TD.mjs';
34
+ import { _ as __nuxt_component_39 } from './TestCaseHistoryChart-C6t5RrCG.mjs';
35
+ import { b as buildRetryCommand } from './useOpenInIde-DolN3bZ5.mjs';
36
+ import { u as useFetch, a as useCopy } from './fetch-BQg_fhX0.mjs';
37
+ import './DashboardSidebarToggle-8EpBhX0R.mjs';
36
38
  import 'vue-router';
37
39
  import '@iconify/vue';
38
40
  import 'tailwindcss/colors';
@@ -65,6 +67,7 @@ import 'highlight.js/lib/languages/typescript';
65
67
  import 'highlight.js/lib/languages/xml';
66
68
  import 'highlight.js/lib/languages/yaml';
67
69
  import 'fflate';
70
+ import 'zod';
68
71
  import 'pixelmatch';
69
72
  import 'sharp';
70
73
  import '@anthropic-ai/sdk';
@@ -89,17 +92,22 @@ import 'consola';
89
92
  import 'node:url';
90
93
  import '@iconify/utils';
91
94
  import './Separator-CR4WcEKD.mjs';
92
- import './useDesktopDownload-D49JRQSw.mjs';
95
+ import './useDesktopDownload-BmR6ouz2.mjs';
93
96
  import './useIsDesktop-BS13spVj.mjs';
94
- import './useTauri-lRT8zkLv.mjs';
97
+ import './useTauri-Kf3HE_42.mjs';
95
98
  import './Alert-C4xq8lao.mjs';
96
- import './Modal-Ck2XLt8d.mjs';
97
- import './Select-CUqj50wi.mjs';
99
+ import './Modal-pSDlXzT3.mjs';
100
+ import './FormField-e7OnSKPM.mjs';
101
+ import './Label-DYDR1Oeh.mjs';
102
+ import './Select-CVctwpib.mjs';
98
103
  import './useFormControl-CZ9So7iX.mjs';
99
104
  import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
105
+ import './Switch-8zWfwI5B.mjs';
106
+ import './useForwardScopeId-D0ameaSU.mjs';
107
+ import './VisuallyHiddenInput-BHvzNumK.mjs';
100
108
  import './help-content-C876a9WD.mjs';
101
109
  import 'date-fns';
102
- import './RovingFocusItem-BJSzTBjy.mjs';
110
+ import './RovingFocusItem--OEHI2P3.mjs';
103
111
  import '@tanstack/vue-table';
104
112
  import '@tanstack/vue-virtual';
105
113
  import './ChartMarkerTooltip-0DcMfD_6.mjs';
@@ -121,7 +129,9 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
121
129
  environment: {},
122
130
  stepsCount: {},
123
131
  historicalTiming: {},
124
- stableLinks: {}
132
+ stableLinks: {},
133
+ projectKey: {},
134
+ projectName: {}
125
135
  },
126
136
  emits: ["refresh"],
127
137
  setup(__props) {
@@ -145,32 +155,28 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
145
155
  () => (props.testCase?.testAnnotations ?? []).filter((ann) => !isPiwiAnnotation(ann.type))
146
156
  );
147
157
  const startedAtMs = computed(() => props.testCase?.startedAt ?? null);
148
- const { summaryColSpanClass, blockColSpanClass } = useDetailGrid(() => {
149
- let count = 0;
150
- if (props.scmInfo) count++;
151
- if (props.ciInfo || props.environment || props.browser) count++;
152
- count++;
153
- return count;
154
- });
158
+ const showCiGroup = computed(() => !!(props.ciInfo || props.environment));
155
159
  return (_ctx, _push, _parent, _attrs) => {
156
160
  const _component_FoldableSummary = __nuxt_component_0;
157
- const _component_StatusBlock = __nuxt_component_1$5;
161
+ const _component_StatusChip = __nuxt_component_1$4;
158
162
  const _component_DurationValue = __nuxt_component_14$1;
159
163
  const _component_BrowserBadge = __nuxt_component_3$5;
160
164
  const _component_UCard = _sfc_main$i;
161
165
  const _component_UBadge = _sfc_main$7$1;
162
166
  const _component_TestMetaBadges = __nuxt_component_2$3;
167
+ const _component_OpenInIdeLink = __nuxt_component_1$1;
163
168
  const _component_ClientOnly = __nuxt_component_7;
169
+ const _component_StatTileGrid = __nuxt_component_1;
170
+ const _component_StatTile = __nuxt_component_2;
164
171
  const _component_UIcon = _sfc_main$p;
165
172
  const _component_HelpHint = __nuxt_component_2$1;
166
- const _component_SourceInfoCard = __nuxt_component_14$2;
167
- const _component_CiEnvCard = __nuxt_component_13$1;
168
- const _component_BlockCard = __nuxt_component_15$1;
169
- const _component_EntityLinks = __nuxt_component_17$1;
173
+ const _component_SummaryMetaStrip = __nuxt_component_16$1;
174
+ const _component_MetaStripGroup = __nuxt_component_17$1;
175
+ const _component_EntityLinks = __nuxt_component_19$1;
170
176
  _push(ssrRenderComponent(_component_FoldableSummary, mergeProps({ "storage-key": "test-case" }, _attrs), {
171
177
  folded: withCtx((_, _push2, _parent2, _scopeId) => {
172
178
  if (_push2) {
173
- _push2(ssrRenderComponent(_component_StatusBlock, {
179
+ _push2(ssrRenderComponent(_component_StatusChip, {
174
180
  status: __props.testCase?.status ?? "",
175
181
  size: "sm"
176
182
  }, null, _parent2, _scopeId));
@@ -197,7 +203,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
197
203
  }
198
204
  } else {
199
205
  return [
200
- createVNode(_component_StatusBlock, {
206
+ createVNode(_component_StatusChip, {
201
207
  status: __props.testCase?.status ?? "",
202
208
  size: "sm"
203
209
  }, null, 8, ["status"]),
@@ -241,16 +247,461 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
241
247
  }),
242
248
  default: withCtx((_, _push2, _parent2, _scopeId) => {
243
249
  if (_push2) {
244
- _push2(`<div class="grid grid-cols-1 lg:grid-cols-12 gap-4"${_scopeId}><div class="${ssrRenderClass(unref(summaryColSpanClass))}"${_scopeId}>`);
245
- _push2(ssrRenderComponent(_component_UCard, { class: "shadow-xs h-full" }, {
250
+ _push2(`<div class="@container"${_scopeId}>`);
251
+ _push2(ssrRenderComponent(_component_UCard, {
252
+ class: "shadow-xs",
253
+ ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
254
+ }, {
255
+ footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
256
+ if (_push3) {
257
+ _push3(ssrRenderComponent(_component_SummaryMetaStrip, null, {
258
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
259
+ if (_push4) {
260
+ if (__props.scmInfo) {
261
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
262
+ label: "Source",
263
+ icon: "i-lucide-git-branch"
264
+ }, {
265
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
266
+ if (_push5) {
267
+ if (__props.scmInfo.branch) {
268
+ _push5(`<span class="font-medium"${_scopeId4}>${ssrInterpolate(__props.scmInfo.branch)}</span>`);
269
+ } else {
270
+ _push5(`<!---->`);
271
+ }
272
+ if (__props.scmInfo.commit) {
273
+ _push5(`<code class="text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded"${ssrRenderAttr("title", __props.scmInfo.commit)}${_scopeId4}>${ssrInterpolate(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit)}</code>`);
274
+ } else {
275
+ _push5(`<!---->`);
276
+ }
277
+ if (__props.scmInfo.author) {
278
+ _push5(`<span class="text-muted"${_scopeId4}>${ssrInterpolate(__props.scmInfo.author)}</span>`);
279
+ } else {
280
+ _push5(`<!---->`);
281
+ }
282
+ if (__props.scmInfo.commitMessage) {
283
+ _push5(`<span class="text-xs text-dimmed truncate max-w-[40ch]"${ssrRenderAttr("title", __props.scmInfo.commitMessage)}${_scopeId4}>${ssrInterpolate(__props.scmInfo.commitMessage)}</span>`);
284
+ } else {
285
+ _push5(`<!---->`);
286
+ }
287
+ } else {
288
+ return [
289
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
290
+ key: 0,
291
+ class: "font-medium"
292
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
293
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
294
+ key: 1,
295
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
296
+ title: __props.scmInfo.commit
297
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
298
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
299
+ key: 2,
300
+ class: "text-muted"
301
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
302
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
303
+ key: 3,
304
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
305
+ title: __props.scmInfo.commitMessage
306
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
307
+ ];
308
+ }
309
+ }),
310
+ _: 1
311
+ }, _parent4, _scopeId3));
312
+ } else {
313
+ _push4(`<!---->`);
314
+ }
315
+ if (unref(showCiGroup)) {
316
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
317
+ label: "CI & environment",
318
+ icon: "i-lucide-cloud",
319
+ help: "run.ci-env"
320
+ }, {
321
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
322
+ if (_push5) {
323
+ if (__props.environment) {
324
+ _push5(`<span class="rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"${_scopeId4}>${ssrInterpolate(__props.environment)}</span>`);
325
+ } else {
326
+ _push5(`<!---->`);
327
+ }
328
+ if (__props.ciInfo?.provider) {
329
+ _push5(`<span${_scopeId4}>${ssrInterpolate(__props.ciInfo.provider)}</span>`);
330
+ } else {
331
+ _push5(`<!---->`);
332
+ }
333
+ if (__props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl) {
334
+ _push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span>`);
335
+ if (__props.ciInfo?.buildUrl) {
336
+ _push5(`<a${ssrRenderAttr("href", __props.ciInfo.buildUrl)} target="_blank" class="text-primary hover:underline"${_scopeId4}>${ssrInterpolate(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build")}</a>`);
337
+ } else {
338
+ _push5(`<span${_scopeId4}>Build #${ssrInterpolate(__props.ciInfo.buildNumber)}</span>`);
339
+ }
340
+ _push5(`<!--]-->`);
341
+ } else {
342
+ _push5(`<!---->`);
343
+ }
344
+ if (__props.ciInfo?.workflow || __props.ciInfo?.jobName) {
345
+ _push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span><span class="text-muted"${_scopeId4}>`);
346
+ if (__props.ciInfo?.workflow) {
347
+ _push5(`<!--[-->${ssrInterpolate(__props.ciInfo.workflow)}<!--]-->`);
348
+ } else {
349
+ _push5(`<!---->`);
350
+ }
351
+ if (__props.ciInfo?.workflow && __props.ciInfo?.jobName) {
352
+ _push5(`<!--[--> · <!--]-->`);
353
+ } else {
354
+ _push5(`<!---->`);
355
+ }
356
+ if (__props.ciInfo?.jobName) {
357
+ _push5(`<!--[-->${ssrInterpolate(__props.ciInfo.jobName)}<!--]-->`);
358
+ } else {
359
+ _push5(`<!---->`);
360
+ }
361
+ _push5(`</span><!--]-->`);
362
+ } else {
363
+ _push5(`<!---->`);
364
+ }
365
+ } else {
366
+ return [
367
+ __props.environment ? (openBlock(), createBlock("span", {
368
+ key: 0,
369
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
370
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
371
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
372
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
373
+ createVNode("span", { class: "text-dimmed" }, "·"),
374
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
375
+ key: 0,
376
+ href: __props.ciInfo.buildUrl,
377
+ target: "_blank",
378
+ class: "text-primary hover:underline"
379
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
380
+ ], 64)) : createCommentVNode("", true),
381
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
382
+ createVNode("span", { class: "text-dimmed" }, "·"),
383
+ createVNode("span", { class: "text-muted" }, [
384
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
385
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
386
+ ], 64)) : createCommentVNode("", true),
387
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
388
+ createTextVNode(" · ")
389
+ ], 64)) : createCommentVNode("", true),
390
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
391
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
392
+ ], 64)) : createCommentVNode("", true)
393
+ ])
394
+ ], 64)) : createCommentVNode("", true)
395
+ ];
396
+ }
397
+ }),
398
+ _: 1
399
+ }, _parent4, _scopeId3));
400
+ } else {
401
+ _push4(`<!---->`);
402
+ }
403
+ if (__props.browser) {
404
+ _push4(ssrRenderComponent(_component_MetaStripGroup, { label: "Browser" }, {
405
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
406
+ if (_push5) {
407
+ _push5(ssrRenderComponent(_component_BrowserBadge, {
408
+ browser: { ...__props.browser, viewport: void 0 },
409
+ size: "sm"
410
+ }, null, _parent5, _scopeId4));
411
+ if (__props.browser.viewport) {
412
+ _push5(`<span class="tabular-nums text-muted"${_scopeId4}>${ssrInterpolate(__props.browser.viewport.width)}×${ssrInterpolate(__props.browser.viewport.height)} `);
413
+ if (__props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1) {
414
+ _push5(`<span class="text-dimmed"${_scopeId4}>@${ssrInterpolate(__props.browser.deviceScaleFactor)}x</span>`);
415
+ } else {
416
+ _push5(`<!---->`);
417
+ }
418
+ _push5(`</span>`);
419
+ } else {
420
+ _push5(`<!---->`);
421
+ }
422
+ } else {
423
+ return [
424
+ createVNode(_component_BrowserBadge, {
425
+ browser: { ...__props.browser, viewport: void 0 },
426
+ size: "sm"
427
+ }, null, 8, ["browser"]),
428
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
429
+ key: 0,
430
+ class: "tabular-nums text-muted"
431
+ }, [
432
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
433
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
434
+ key: 0,
435
+ class: "text-dimmed"
436
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
437
+ ])) : createCommentVNode("", true)
438
+ ];
439
+ }
440
+ }),
441
+ _: 1
442
+ }, _parent4, _scopeId3));
443
+ } else {
444
+ _push4(`<!---->`);
445
+ }
446
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
447
+ label: "Links",
448
+ icon: "i-lucide-link"
449
+ }, {
450
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
451
+ if (_push5) {
452
+ if (__props.testCase?.id) {
453
+ _push5(ssrRenderComponent(_component_EntityLinks, {
454
+ "entity-type": "test_case",
455
+ "entity-id": __props.testCase.id,
456
+ links: __props.stableLinks ?? null,
457
+ onUpdated: ($event) => _ctx.$emit("refresh")
458
+ }, null, _parent5, _scopeId4));
459
+ } else {
460
+ _push5(`<!---->`);
461
+ }
462
+ } else {
463
+ return [
464
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
465
+ key: 0,
466
+ "entity-type": "test_case",
467
+ "entity-id": __props.testCase.id,
468
+ links: __props.stableLinks ?? null,
469
+ onUpdated: ($event) => _ctx.$emit("refresh")
470
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
471
+ ];
472
+ }
473
+ }),
474
+ _: 1
475
+ }, _parent4, _scopeId3));
476
+ } else {
477
+ return [
478
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
479
+ key: 0,
480
+ label: "Source",
481
+ icon: "i-lucide-git-branch"
482
+ }, {
483
+ default: withCtx(() => [
484
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
485
+ key: 0,
486
+ class: "font-medium"
487
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
488
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
489
+ key: 1,
490
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
491
+ title: __props.scmInfo.commit
492
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
493
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
494
+ key: 2,
495
+ class: "text-muted"
496
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
497
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
498
+ key: 3,
499
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
500
+ title: __props.scmInfo.commitMessage
501
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
502
+ ]),
503
+ _: 1
504
+ })) : createCommentVNode("", true),
505
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
506
+ key: 1,
507
+ label: "CI & environment",
508
+ icon: "i-lucide-cloud",
509
+ help: "run.ci-env"
510
+ }, {
511
+ default: withCtx(() => [
512
+ __props.environment ? (openBlock(), createBlock("span", {
513
+ key: 0,
514
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
515
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
516
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
517
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
518
+ createVNode("span", { class: "text-dimmed" }, "·"),
519
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
520
+ key: 0,
521
+ href: __props.ciInfo.buildUrl,
522
+ target: "_blank",
523
+ class: "text-primary hover:underline"
524
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
525
+ ], 64)) : createCommentVNode("", true),
526
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
527
+ createVNode("span", { class: "text-dimmed" }, "·"),
528
+ createVNode("span", { class: "text-muted" }, [
529
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
530
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
531
+ ], 64)) : createCommentVNode("", true),
532
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
533
+ createTextVNode(" · ")
534
+ ], 64)) : createCommentVNode("", true),
535
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
536
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
537
+ ], 64)) : createCommentVNode("", true)
538
+ ])
539
+ ], 64)) : createCommentVNode("", true)
540
+ ]),
541
+ _: 1
542
+ })) : createCommentVNode("", true),
543
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
544
+ key: 2,
545
+ label: "Browser"
546
+ }, {
547
+ default: withCtx(() => [
548
+ createVNode(_component_BrowserBadge, {
549
+ browser: { ...__props.browser, viewport: void 0 },
550
+ size: "sm"
551
+ }, null, 8, ["browser"]),
552
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
553
+ key: 0,
554
+ class: "tabular-nums text-muted"
555
+ }, [
556
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
557
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
558
+ key: 0,
559
+ class: "text-dimmed"
560
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
561
+ ])) : createCommentVNode("", true)
562
+ ]),
563
+ _: 1
564
+ })) : createCommentVNode("", true),
565
+ createVNode(_component_MetaStripGroup, {
566
+ label: "Links",
567
+ icon: "i-lucide-link"
568
+ }, {
569
+ default: withCtx(() => [
570
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
571
+ key: 0,
572
+ "entity-type": "test_case",
573
+ "entity-id": __props.testCase.id,
574
+ links: __props.stableLinks ?? null,
575
+ onUpdated: ($event) => _ctx.$emit("refresh")
576
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
577
+ ]),
578
+ _: 1
579
+ })
580
+ ];
581
+ }
582
+ }),
583
+ _: 1
584
+ }, _parent3, _scopeId2));
585
+ } else {
586
+ return [
587
+ createVNode(_component_SummaryMetaStrip, null, {
588
+ default: withCtx(() => [
589
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
590
+ key: 0,
591
+ label: "Source",
592
+ icon: "i-lucide-git-branch"
593
+ }, {
594
+ default: withCtx(() => [
595
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
596
+ key: 0,
597
+ class: "font-medium"
598
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
599
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
600
+ key: 1,
601
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
602
+ title: __props.scmInfo.commit
603
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
604
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
605
+ key: 2,
606
+ class: "text-muted"
607
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
608
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
609
+ key: 3,
610
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
611
+ title: __props.scmInfo.commitMessage
612
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
613
+ ]),
614
+ _: 1
615
+ })) : createCommentVNode("", true),
616
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
617
+ key: 1,
618
+ label: "CI & environment",
619
+ icon: "i-lucide-cloud",
620
+ help: "run.ci-env"
621
+ }, {
622
+ default: withCtx(() => [
623
+ __props.environment ? (openBlock(), createBlock("span", {
624
+ key: 0,
625
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
626
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
627
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
628
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
629
+ createVNode("span", { class: "text-dimmed" }, "·"),
630
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
631
+ key: 0,
632
+ href: __props.ciInfo.buildUrl,
633
+ target: "_blank",
634
+ class: "text-primary hover:underline"
635
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
636
+ ], 64)) : createCommentVNode("", true),
637
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
638
+ createVNode("span", { class: "text-dimmed" }, "·"),
639
+ createVNode("span", { class: "text-muted" }, [
640
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
641
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
642
+ ], 64)) : createCommentVNode("", true),
643
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
644
+ createTextVNode(" · ")
645
+ ], 64)) : createCommentVNode("", true),
646
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
647
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
648
+ ], 64)) : createCommentVNode("", true)
649
+ ])
650
+ ], 64)) : createCommentVNode("", true)
651
+ ]),
652
+ _: 1
653
+ })) : createCommentVNode("", true),
654
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
655
+ key: 2,
656
+ label: "Browser"
657
+ }, {
658
+ default: withCtx(() => [
659
+ createVNode(_component_BrowserBadge, {
660
+ browser: { ...__props.browser, viewport: void 0 },
661
+ size: "sm"
662
+ }, null, 8, ["browser"]),
663
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
664
+ key: 0,
665
+ class: "tabular-nums text-muted"
666
+ }, [
667
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
668
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
669
+ key: 0,
670
+ class: "text-dimmed"
671
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
672
+ ])) : createCommentVNode("", true)
673
+ ]),
674
+ _: 1
675
+ })) : createCommentVNode("", true),
676
+ createVNode(_component_MetaStripGroup, {
677
+ label: "Links",
678
+ icon: "i-lucide-link"
679
+ }, {
680
+ default: withCtx(() => [
681
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
682
+ key: 0,
683
+ "entity-type": "test_case",
684
+ "entity-id": __props.testCase.id,
685
+ links: __props.stableLinks ?? null,
686
+ onUpdated: ($event) => _ctx.$emit("refresh")
687
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
688
+ ]),
689
+ _: 1
690
+ })
691
+ ]),
692
+ _: 1
693
+ })
694
+ ];
695
+ }
696
+ }),
246
697
  default: withCtx((_2, _push3, _parent3, _scopeId2) => {
247
698
  if (_push3) {
248
- _push3(`<div class="space-y-3"${_scopeId2}><div class="flex items-start gap-3"${_scopeId2}>`);
249
- _push3(ssrRenderComponent(_component_StatusBlock, {
699
+ _push3(`<div class="space-y-3"${_scopeId2}><div class="flex items-start gap-2.5 pr-8"${_scopeId2}>`);
700
+ _push3(ssrRenderComponent(_component_StatusChip, {
250
701
  status: __props.testCase?.status ?? "",
251
- size: "md"
702
+ class: "mt-0.5"
252
703
  }, null, _parent3, _scopeId2));
253
- _push3(`<div class="min-w-0 flex-1"${_scopeId2}><div class="flex items-center gap-2 flex-wrap"${_scopeId2}><h2 class="text-base font-bold truncate"${_scopeId2}>${ssrInterpolate(__props.testCase?.title)}</h2><!--[-->`);
704
+ _push3(`<div class="min-w-0 flex-1"${_scopeId2}><div class="flex items-center gap-2 flex-wrap"${_scopeId2}><h2 class="text-base font-bold truncate max-w-full"${_scopeId2}>${ssrInterpolate(__props.testCase?.title)}</h2><!--[-->`);
254
705
  ssrRenderList(unref(signalBadges), (badge) => {
255
706
  _push3(ssrRenderComponent(_component_UBadge, {
256
707
  key: badge.label,
@@ -298,15 +749,19 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
298
749
  tags: __props.testCase?.tags,
299
750
  meta: __props.testCase?.testMeta
300
751
  }, null, _parent3, _scopeId2));
301
- _push3(`</div><p class="text-xs text-gray-500 mt-0.5"${_scopeId2}>`);
752
+ _push3(`</div><p class="text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap"${_scopeId2}>`);
302
753
  if (__props.testCase?.location) {
303
- _push3(`<span${_scopeId2}>${ssrInterpolate(__props.testCase.location)}</span>`);
754
+ _push3(ssrRenderComponent(_component_OpenInIdeLink, {
755
+ location: __props.testCase.location,
756
+ "project-key": __props.projectKey,
757
+ "project-name": __props.projectName
758
+ }, null, _parent3, _scopeId2));
304
759
  } else {
305
760
  _push3(`<!---->`);
306
761
  }
307
762
  _push3(ssrRenderComponent(_component_ClientOnly, null, {}, _parent3, _scopeId2));
308
763
  if (__props.historicalTiming) {
309
- _push3(`<span class="ml-2"${_scopeId2}> Avg `);
764
+ _push3(`<span${_scopeId2}> Avg `);
310
765
  _push3(ssrRenderComponent(_component_DurationValue, {
311
766
  ms: __props.historicalTiming.avg
312
767
  }, null, _parent3, _scopeId2));
@@ -314,11 +769,65 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
314
769
  } else {
315
770
  _push3(`<!---->`);
316
771
  }
317
- _push3(`</p></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-2"${_scopeId2}><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Duration</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>`);
318
- _push3(ssrRenderComponent(_component_DurationValue, {
319
- ms: __props.testCase?.duration
320
- }, null, _parent3, _scopeId2));
321
- _push3(`</p></div><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Retries</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>${ssrInterpolate(__props.testCase?.retries ?? 0)}</p></div><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Steps</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>${ssrInterpolate(__props.stepsCount)}</p></div><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Worker</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>${ssrInterpolate(__props.testCase?.workerIndex ?? "—")}</p></div></div>`);
772
+ _push3(`</p></div></div>`);
773
+ _push3(ssrRenderComponent(_component_StatTileGrid, null, {
774
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
775
+ if (_push4) {
776
+ _push4(ssrRenderComponent(_component_StatTile, { label: "Duration" }, {
777
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
778
+ if (_push5) {
779
+ _push5(ssrRenderComponent(_component_DurationValue, {
780
+ ms: __props.testCase?.duration
781
+ }, null, _parent5, _scopeId4));
782
+ } else {
783
+ return [
784
+ createVNode(_component_DurationValue, {
785
+ ms: __props.testCase?.duration
786
+ }, null, 8, ["ms"])
787
+ ];
788
+ }
789
+ }),
790
+ _: 1
791
+ }, _parent4, _scopeId3));
792
+ _push4(ssrRenderComponent(_component_StatTile, {
793
+ label: "Retries",
794
+ value: __props.testCase?.retries ?? 0
795
+ }, null, _parent4, _scopeId3));
796
+ _push4(ssrRenderComponent(_component_StatTile, {
797
+ label: "Steps",
798
+ value: __props.stepsCount
799
+ }, null, _parent4, _scopeId3));
800
+ _push4(ssrRenderComponent(_component_StatTile, {
801
+ label: "Worker",
802
+ value: __props.testCase?.workerIndex ?? "—"
803
+ }, null, _parent4, _scopeId3));
804
+ } else {
805
+ return [
806
+ createVNode(_component_StatTile, { label: "Duration" }, {
807
+ default: withCtx(() => [
808
+ createVNode(_component_DurationValue, {
809
+ ms: __props.testCase?.duration
810
+ }, null, 8, ["ms"])
811
+ ]),
812
+ _: 1
813
+ }),
814
+ createVNode(_component_StatTile, {
815
+ label: "Retries",
816
+ value: __props.testCase?.retries ?? 0
817
+ }, null, 8, ["value"]),
818
+ createVNode(_component_StatTile, {
819
+ label: "Steps",
820
+ value: __props.stepsCount
821
+ }, null, 8, ["value"]),
822
+ createVNode(_component_StatTile, {
823
+ label: "Worker",
824
+ value: __props.testCase?.workerIndex ?? "—"
825
+ }, null, 8, ["value"])
826
+ ];
827
+ }
828
+ }),
829
+ _: 1
830
+ }, _parent3, _scopeId2));
322
831
  if (__props.testCase?.slowestStep) {
323
832
  _push3(`<div class="flex items-center gap-2 text-sm"${_scopeId2}>`);
324
833
  _push3(ssrRenderComponent(_component_UIcon, {
@@ -359,14 +868,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
359
868
  } else {
360
869
  return [
361
870
  createVNode("div", { class: "space-y-3" }, [
362
- createVNode("div", { class: "flex items-start gap-3" }, [
363
- createVNode(_component_StatusBlock, {
871
+ createVNode("div", { class: "flex items-start gap-2.5 pr-8" }, [
872
+ createVNode(_component_StatusChip, {
364
873
  status: __props.testCase?.status ?? "",
365
- size: "md"
874
+ class: "mt-0.5"
366
875
  }, null, 8, ["status"]),
367
876
  createVNode("div", { class: "min-w-0 flex-1" }, [
368
877
  createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
369
- createVNode("h2", { class: "text-base font-bold truncate" }, toDisplayString(__props.testCase?.title), 1),
878
+ createVNode("h2", { class: "text-base font-bold truncate max-w-full" }, toDisplayString(__props.testCase?.title), 1),
370
879
  (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
371
880
  return openBlock(), createBlock(_component_UBadge, {
372
881
  key: badge.label,
@@ -401,22 +910,24 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
401
910
  meta: __props.testCase?.testMeta
402
911
  }, null, 8, ["tags", "meta"])
403
912
  ]),
404
- createVNode("p", { class: "text-xs text-gray-500 mt-0.5" }, [
405
- __props.testCase?.location ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(__props.testCase.location), 1)) : createCommentVNode("", true),
913
+ createVNode("p", { class: "text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap" }, [
914
+ __props.testCase?.location ? (openBlock(), createBlock(_component_OpenInIdeLink, {
915
+ key: 0,
916
+ location: __props.testCase.location,
917
+ "project-key": __props.projectKey,
918
+ "project-name": __props.projectName
919
+ }, null, 8, ["location", "project-key", "project-name"])) : createCommentVNode("", true),
406
920
  createVNode(_component_ClientOnly, null, {
407
921
  default: withCtx(() => [
408
922
  unref(startedAtMs) ? (openBlock(), createBlock("span", {
409
923
  key: 0,
410
- class: "ml-2 text-gray-400",
924
+ class: "text-gray-400",
411
925
  title: new Date(unref(startedAtMs)).toLocaleString()
412
926
  }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
413
927
  ]),
414
928
  _: 2
415
929
  }, 1024),
416
- __props.historicalTiming ? (openBlock(), createBlock("span", {
417
- key: 1,
418
- class: "ml-2"
419
- }, [
930
+ __props.historicalTiming ? (openBlock(), createBlock("span", { key: 1 }, [
420
931
  createTextVNode(" Avg "),
421
932
  createVNode(_component_DurationValue, {
422
933
  ms: __props.historicalTiming.avg
@@ -429,28 +940,31 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
429
940
  ])
430
941
  ])
431
942
  ]),
432
- createVNode("div", { class: "grid grid-cols-2 sm:grid-cols-4 gap-2" }, [
433
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
434
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Duration"),
435
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, [
436
- createVNode(_component_DurationValue, {
437
- ms: __props.testCase?.duration
438
- }, null, 8, ["ms"])
439
- ])
440
- ]),
441
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
442
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Retries"),
443
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.retries ?? 0), 1)
444
- ]),
445
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
446
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Steps"),
447
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.stepsCount), 1)
943
+ createVNode(_component_StatTileGrid, null, {
944
+ default: withCtx(() => [
945
+ createVNode(_component_StatTile, { label: "Duration" }, {
946
+ default: withCtx(() => [
947
+ createVNode(_component_DurationValue, {
948
+ ms: __props.testCase?.duration
949
+ }, null, 8, ["ms"])
950
+ ]),
951
+ _: 1
952
+ }),
953
+ createVNode(_component_StatTile, {
954
+ label: "Retries",
955
+ value: __props.testCase?.retries ?? 0
956
+ }, null, 8, ["value"]),
957
+ createVNode(_component_StatTile, {
958
+ label: "Steps",
959
+ value: __props.stepsCount
960
+ }, null, 8, ["value"]),
961
+ createVNode(_component_StatTile, {
962
+ label: "Worker",
963
+ value: __props.testCase?.workerIndex ?? "—"
964
+ }, null, 8, ["value"])
448
965
  ]),
449
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
450
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Worker"),
451
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.workerIndex ?? "—"), 1)
452
- ])
453
- ]),
966
+ _: 1
967
+ }),
454
968
  __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
455
969
  key: 0,
456
970
  class: "flex items-center gap-2 text-sm"
@@ -494,221 +1008,261 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
494
1008
  _: 1
495
1009
  }, _parent2, _scopeId));
496
1010
  _push2(`</div>`);
497
- if (__props.scmInfo) {
498
- _push2(ssrRenderComponent(_component_SourceInfoCard, {
499
- scm: __props.scmInfo,
500
- class: unref(blockColSpanClass)
501
- }, null, _parent2, _scopeId));
502
- } else {
503
- _push2(`<!---->`);
504
- }
505
- if (__props.ciInfo || __props.environment || __props.browser) {
506
- _push2(ssrRenderComponent(_component_CiEnvCard, {
507
- ci: __props.ciInfo,
508
- environment: __props.environment,
509
- browser: __props.browser,
510
- class: unref(blockColSpanClass)
511
- }, null, _parent2, _scopeId));
512
- } else {
513
- _push2(`<!---->`);
514
- }
515
- _push2(ssrRenderComponent(_component_BlockCard, {
516
- class: unref(blockColSpanClass),
517
- title: "Links",
518
- icon: "i-lucide-link"
519
- }, {
520
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
521
- if (_push3) {
522
- if (__props.testCase?.id) {
523
- _push3(ssrRenderComponent(_component_EntityLinks, {
524
- "entity-type": "test_case",
525
- "entity-id": __props.testCase.id,
526
- links: __props.stableLinks ?? null
527
- }, null, _parent3, _scopeId2));
528
- } else {
529
- _push3(`<!---->`);
530
- }
531
- } else {
532
- return [
533
- __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
534
- key: 0,
535
- "entity-type": "test_case",
536
- "entity-id": __props.testCase.id,
537
- links: __props.stableLinks ?? null
538
- }, null, 8, ["entity-id", "links"])) : createCommentVNode("", true)
539
- ];
540
- }
541
- }),
542
- _: 1
543
- }, _parent2, _scopeId));
544
- _push2(`</div>`);
545
1011
  } else {
546
1012
  return [
547
- createVNode("div", { class: "grid grid-cols-1 lg:grid-cols-12 gap-4" }, [
548
- createVNode("div", { class: unref(summaryColSpanClass) }, [
549
- createVNode(_component_UCard, { class: "shadow-xs h-full" }, {
550
- default: withCtx(() => [
551
- createVNode("div", { class: "space-y-3" }, [
552
- createVNode("div", { class: "flex items-start gap-3" }, [
553
- createVNode(_component_StatusBlock, {
554
- status: __props.testCase?.status ?? "",
555
- size: "md"
556
- }, null, 8, ["status"]),
557
- createVNode("div", { class: "min-w-0 flex-1" }, [
558
- createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
559
- createVNode("h2", { class: "text-base font-bold truncate" }, toDisplayString(__props.testCase?.title), 1),
560
- (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
561
- return openBlock(), createBlock(_component_UBadge, {
562
- key: badge.label,
563
- color: badge.color,
564
- variant: "subtle",
565
- size: "xs",
566
- title: badge.title
567
- }, {
568
- default: withCtx(() => [
569
- createTextVNode(toDisplayString(badge.label), 1)
570
- ]),
571
- _: 2
572
- }, 1032, ["color", "title"]);
573
- }), 128)),
574
- (openBlock(true), createBlock(Fragment, null, renderList(unref(annotations), (ann, i) => {
575
- return openBlock(), createBlock(_component_UBadge, {
576
- key: `ann-${i}`,
577
- color: "neutral",
578
- variant: "soft",
579
- size: "xs",
580
- class: "font-mono",
581
- title: ann.description || ann.type
582
- }, {
583
- default: withCtx(() => [
584
- createTextVNode(" @" + toDisplayString(ann.type), 1)
585
- ]),
586
- _: 2
587
- }, 1032, ["title"]);
588
- }), 128)),
589
- createVNode(_component_TestMetaBadges, {
590
- tags: __props.testCase?.tags,
591
- meta: __props.testCase?.testMeta
592
- }, null, 8, ["tags", "meta"])
593
- ]),
594
- createVNode("p", { class: "text-xs text-gray-500 mt-0.5" }, [
595
- __props.testCase?.location ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(__props.testCase.location), 1)) : createCommentVNode("", true),
596
- createVNode(_component_ClientOnly, null, {
1013
+ createVNode("div", { class: "@container" }, [
1014
+ createVNode(_component_UCard, {
1015
+ class: "shadow-xs",
1016
+ ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
1017
+ }, {
1018
+ footer: withCtx(() => [
1019
+ createVNode(_component_SummaryMetaStrip, null, {
1020
+ default: withCtx(() => [
1021
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
1022
+ key: 0,
1023
+ label: "Source",
1024
+ icon: "i-lucide-git-branch"
1025
+ }, {
1026
+ default: withCtx(() => [
1027
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
1028
+ key: 0,
1029
+ class: "font-medium"
1030
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
1031
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
1032
+ key: 1,
1033
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
1034
+ title: __props.scmInfo.commit
1035
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
1036
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
1037
+ key: 2,
1038
+ class: "text-muted"
1039
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
1040
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
1041
+ key: 3,
1042
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
1043
+ title: __props.scmInfo.commitMessage
1044
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
1045
+ ]),
1046
+ _: 1
1047
+ })) : createCommentVNode("", true),
1048
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
1049
+ key: 1,
1050
+ label: "CI & environment",
1051
+ icon: "i-lucide-cloud",
1052
+ help: "run.ci-env"
1053
+ }, {
1054
+ default: withCtx(() => [
1055
+ __props.environment ? (openBlock(), createBlock("span", {
1056
+ key: 0,
1057
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
1058
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
1059
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
1060
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
1061
+ createVNode("span", { class: "text-dimmed" }, "·"),
1062
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
1063
+ key: 0,
1064
+ href: __props.ciInfo.buildUrl,
1065
+ target: "_blank",
1066
+ class: "text-primary hover:underline"
1067
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
1068
+ ], 64)) : createCommentVNode("", true),
1069
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
1070
+ createVNode("span", { class: "text-dimmed" }, "·"),
1071
+ createVNode("span", { class: "text-muted" }, [
1072
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
1073
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
1074
+ ], 64)) : createCommentVNode("", true),
1075
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
1076
+ createTextVNode(" · ")
1077
+ ], 64)) : createCommentVNode("", true),
1078
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
1079
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
1080
+ ], 64)) : createCommentVNode("", true)
1081
+ ])
1082
+ ], 64)) : createCommentVNode("", true)
1083
+ ]),
1084
+ _: 1
1085
+ })) : createCommentVNode("", true),
1086
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
1087
+ key: 2,
1088
+ label: "Browser"
1089
+ }, {
1090
+ default: withCtx(() => [
1091
+ createVNode(_component_BrowserBadge, {
1092
+ browser: { ...__props.browser, viewport: void 0 },
1093
+ size: "sm"
1094
+ }, null, 8, ["browser"]),
1095
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
1096
+ key: 0,
1097
+ class: "tabular-nums text-muted"
1098
+ }, [
1099
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
1100
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
1101
+ key: 0,
1102
+ class: "text-dimmed"
1103
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
1104
+ ])) : createCommentVNode("", true)
1105
+ ]),
1106
+ _: 1
1107
+ })) : createCommentVNode("", true),
1108
+ createVNode(_component_MetaStripGroup, {
1109
+ label: "Links",
1110
+ icon: "i-lucide-link"
1111
+ }, {
1112
+ default: withCtx(() => [
1113
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
1114
+ key: 0,
1115
+ "entity-type": "test_case",
1116
+ "entity-id": __props.testCase.id,
1117
+ links: __props.stableLinks ?? null,
1118
+ onUpdated: ($event) => _ctx.$emit("refresh")
1119
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
1120
+ ]),
1121
+ _: 1
1122
+ })
1123
+ ]),
1124
+ _: 1
1125
+ })
1126
+ ]),
1127
+ default: withCtx(() => [
1128
+ createVNode("div", { class: "space-y-3" }, [
1129
+ createVNode("div", { class: "flex items-start gap-2.5 pr-8" }, [
1130
+ createVNode(_component_StatusChip, {
1131
+ status: __props.testCase?.status ?? "",
1132
+ class: "mt-0.5"
1133
+ }, null, 8, ["status"]),
1134
+ createVNode("div", { class: "min-w-0 flex-1" }, [
1135
+ createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
1136
+ createVNode("h2", { class: "text-base font-bold truncate max-w-full" }, toDisplayString(__props.testCase?.title), 1),
1137
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
1138
+ return openBlock(), createBlock(_component_UBadge, {
1139
+ key: badge.label,
1140
+ color: badge.color,
1141
+ variant: "subtle",
1142
+ size: "xs",
1143
+ title: badge.title
1144
+ }, {
597
1145
  default: withCtx(() => [
598
- unref(startedAtMs) ? (openBlock(), createBlock("span", {
599
- key: 0,
600
- class: "ml-2 text-gray-400",
601
- title: new Date(unref(startedAtMs)).toLocaleString()
602
- }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
1146
+ createTextVNode(toDisplayString(badge.label), 1)
603
1147
  ]),
604
1148
  _: 2
605
- }, 1024),
606
- __props.historicalTiming ? (openBlock(), createBlock("span", {
607
- key: 1,
608
- class: "ml-2"
609
- }, [
610
- createTextVNode(" Avg "),
611
- createVNode(_component_DurationValue, {
612
- ms: __props.historicalTiming.avg
613
- }, null, 8, ["ms"]),
614
- createTextVNode(" · "),
615
- createVNode("span", {
616
- class: __props.historicalTiming.diff > 0 ? "text-red-600" : "text-green-600"
617
- }, toDisplayString(__props.historicalTiming.diff > 0 ? "+" : "") + toDisplayString(__props.historicalTiming.pct) + "% ", 3)
618
- ])) : createCommentVNode("", true)
619
- ])
1149
+ }, 1032, ["color", "title"]);
1150
+ }), 128)),
1151
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(annotations), (ann, i) => {
1152
+ return openBlock(), createBlock(_component_UBadge, {
1153
+ key: `ann-${i}`,
1154
+ color: "neutral",
1155
+ variant: "soft",
1156
+ size: "xs",
1157
+ class: "font-mono",
1158
+ title: ann.description || ann.type
1159
+ }, {
1160
+ default: withCtx(() => [
1161
+ createTextVNode(" @" + toDisplayString(ann.type), 1)
1162
+ ]),
1163
+ _: 2
1164
+ }, 1032, ["title"]);
1165
+ }), 128)),
1166
+ createVNode(_component_TestMetaBadges, {
1167
+ tags: __props.testCase?.tags,
1168
+ meta: __props.testCase?.testMeta
1169
+ }, null, 8, ["tags", "meta"])
1170
+ ]),
1171
+ createVNode("p", { class: "text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap" }, [
1172
+ __props.testCase?.location ? (openBlock(), createBlock(_component_OpenInIdeLink, {
1173
+ key: 0,
1174
+ location: __props.testCase.location,
1175
+ "project-key": __props.projectKey,
1176
+ "project-name": __props.projectName
1177
+ }, null, 8, ["location", "project-key", "project-name"])) : createCommentVNode("", true),
1178
+ createVNode(_component_ClientOnly, null, {
1179
+ default: withCtx(() => [
1180
+ unref(startedAtMs) ? (openBlock(), createBlock("span", {
1181
+ key: 0,
1182
+ class: "text-gray-400",
1183
+ title: new Date(unref(startedAtMs)).toLocaleString()
1184
+ }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
1185
+ ]),
1186
+ _: 2
1187
+ }, 1024),
1188
+ __props.historicalTiming ? (openBlock(), createBlock("span", { key: 1 }, [
1189
+ createTextVNode(" Avg "),
1190
+ createVNode(_component_DurationValue, {
1191
+ ms: __props.historicalTiming.avg
1192
+ }, null, 8, ["ms"]),
1193
+ createTextVNode(" · "),
1194
+ createVNode("span", {
1195
+ class: __props.historicalTiming.diff > 0 ? "text-red-600" : "text-green-600"
1196
+ }, toDisplayString(__props.historicalTiming.diff > 0 ? "+" : "") + toDisplayString(__props.historicalTiming.pct) + "% ", 3)
1197
+ ])) : createCommentVNode("", true)
620
1198
  ])
621
- ]),
622
- createVNode("div", { class: "grid grid-cols-2 sm:grid-cols-4 gap-2" }, [
623
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
624
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Duration"),
625
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, [
1199
+ ])
1200
+ ]),
1201
+ createVNode(_component_StatTileGrid, null, {
1202
+ default: withCtx(() => [
1203
+ createVNode(_component_StatTile, { label: "Duration" }, {
1204
+ default: withCtx(() => [
626
1205
  createVNode(_component_DurationValue, {
627
1206
  ms: __props.testCase?.duration
628
1207
  }, null, 8, ["ms"])
629
- ])
630
- ]),
631
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
632
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Retries"),
633
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.retries ?? 0), 1)
634
- ]),
635
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
636
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Steps"),
637
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.stepsCount), 1)
638
- ]),
639
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
640
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Worker"),
641
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.workerIndex ?? "—"), 1)
642
- ])
1208
+ ]),
1209
+ _: 1
1210
+ }),
1211
+ createVNode(_component_StatTile, {
1212
+ label: "Retries",
1213
+ value: __props.testCase?.retries ?? 0
1214
+ }, null, 8, ["value"]),
1215
+ createVNode(_component_StatTile, {
1216
+ label: "Steps",
1217
+ value: __props.stepsCount
1218
+ }, null, 8, ["value"]),
1219
+ createVNode(_component_StatTile, {
1220
+ label: "Worker",
1221
+ value: __props.testCase?.workerIndex ?? "—"
1222
+ }, null, 8, ["value"])
643
1223
  ]),
644
- __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
1224
+ _: 1
1225
+ }),
1226
+ __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
1227
+ key: 0,
1228
+ class: "flex items-center gap-2 text-sm"
1229
+ }, [
1230
+ createVNode(_component_UIcon, {
1231
+ name: "i-lucide-zap",
1232
+ class: "size-4 text-amber-500 shrink-0"
1233
+ }),
1234
+ createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Slowest step:"),
1235
+ createVNode("span", { class: "text-gray-700 dark:text-gray-300 truncate" }, toDisplayString(__props.testCase.slowestStep), 1),
1236
+ __props.testCase.slowestStepDuration ? (openBlock(), createBlock("span", {
645
1237
  key: 0,
646
- class: "flex items-center gap-2 text-sm"
647
- }, [
648
- createVNode(_component_UIcon, {
649
- name: "i-lucide-zap",
650
- class: "size-4 text-amber-500 shrink-0"
651
- }),
652
- createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Slowest step:"),
653
- createVNode("span", { class: "text-gray-700 dark:text-gray-300 truncate" }, toDisplayString(__props.testCase.slowestStep), 1),
654
- __props.testCase.slowestStepDuration ? (openBlock(), createBlock("span", {
655
- key: 0,
656
- class: "text-gray-500 shrink-0"
657
- }, [
658
- createTextVNode("("),
659
- createVNode(_component_DurationValue, {
660
- ms: __props.testCase.slowestStepDuration
661
- }, null, 8, ["ms"]),
662
- createTextVNode(")")
663
- ])) : createCommentVNode("", true)
664
- ])) : createCommentVNode("", true),
665
- (__props.testCase?.wastedTimeMs ?? 0) > 0 ? (openBlock(), createBlock("div", {
666
- key: 1,
667
- class: "flex items-center gap-1.5 text-sm"
1238
+ class: "text-gray-500 shrink-0"
668
1239
  }, [
669
- createVNode(_component_UIcon, {
670
- name: "i-lucide-hourglass",
671
- class: "size-4 text-amber-500 shrink-0"
672
- }),
673
- createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Wasted in fixed waits:"),
1240
+ createTextVNode("("),
674
1241
  createVNode(_component_DurationValue, {
675
- ms: __props.testCase?.wastedTimeMs,
676
- class: "text-gray-700 dark:text-gray-300"
1242
+ ms: __props.testCase.slowestStepDuration
677
1243
  }, null, 8, ["ms"]),
678
- createVNode(_component_HelpHint, { topic: "case.wasted-time" })
1244
+ createTextVNode(")")
679
1245
  ])) : createCommentVNode("", true)
680
- ])
681
- ]),
682
- _: 2
683
- }, 1024)
684
- ], 2),
685
- __props.scmInfo ? (openBlock(), createBlock(_component_SourceInfoCard, {
686
- key: 0,
687
- scm: __props.scmInfo,
688
- class: unref(blockColSpanClass)
689
- }, null, 8, ["scm", "class"])) : createCommentVNode("", true),
690
- __props.ciInfo || __props.environment || __props.browser ? (openBlock(), createBlock(_component_CiEnvCard, {
691
- key: 1,
692
- ci: __props.ciInfo,
693
- environment: __props.environment,
694
- browser: __props.browser,
695
- class: unref(blockColSpanClass)
696
- }, null, 8, ["ci", "environment", "browser", "class"])) : createCommentVNode("", true),
697
- createVNode(_component_BlockCard, {
698
- class: unref(blockColSpanClass),
699
- title: "Links",
700
- icon: "i-lucide-link"
701
- }, {
702
- default: withCtx(() => [
703
- __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
704
- key: 0,
705
- "entity-type": "test_case",
706
- "entity-id": __props.testCase.id,
707
- links: __props.stableLinks ?? null
708
- }, null, 8, ["entity-id", "links"])) : createCommentVNode("", true)
1246
+ ])) : createCommentVNode("", true),
1247
+ (__props.testCase?.wastedTimeMs ?? 0) > 0 ? (openBlock(), createBlock("div", {
1248
+ key: 1,
1249
+ class: "flex items-center gap-1.5 text-sm"
1250
+ }, [
1251
+ createVNode(_component_UIcon, {
1252
+ name: "i-lucide-hourglass",
1253
+ class: "size-4 text-amber-500 shrink-0"
1254
+ }),
1255
+ createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Wasted in fixed waits:"),
1256
+ createVNode(_component_DurationValue, {
1257
+ ms: __props.testCase?.wastedTimeMs,
1258
+ class: "text-gray-700 dark:text-gray-300"
1259
+ }, null, 8, ["ms"]),
1260
+ createVNode(_component_HelpHint, { topic: "case.wasted-time" })
1261
+ ])) : createCommentVNode("", true)
1262
+ ])
709
1263
  ]),
710
- _: 1
711
- }, 8, ["class"])
1264
+ _: 2
1265
+ }, 1024)
712
1266
  ])
713
1267
  ];
714
1268
  }
@@ -724,7 +1278,7 @@ _sfc_main$c.setup = (props, ctx) => {
724
1278
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseSummary.vue");
725
1279
  return _sfc_setup$c ? _sfc_setup$c(props, ctx) : void 0;
726
1280
  };
727
- const __nuxt_component_9 = Object.assign(_sfc_main$c, { __name: "TestCaseSummary" });
1281
+ const __nuxt_component_10 = Object.assign(_sfc_main$c, { __name: "TestCaseSummary" });
728
1282
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
729
1283
  __name: "TestCaseVerdictCard",
730
1284
  __ssrInlineRender: true,
@@ -946,7 +1500,7 @@ _sfc_main$b.setup = (props, ctx) => {
946
1500
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseVerdictCard.vue");
947
1501
  return _sfc_setup$b ? _sfc_setup$b(props, ctx) : void 0;
948
1502
  };
949
- const __nuxt_component_13 = Object.assign(_sfc_main$b, { __name: "TestCaseVerdictCard" });
1503
+ const __nuxt_component_14 = Object.assign(_sfc_main$b, { __name: "TestCaseVerdictCard" });
950
1504
  const _sfc_main$a = /* @__PURE__ */ defineComponent({
951
1505
  __name: "FailureClusterCard",
952
1506
  __ssrInlineRender: true,
@@ -1290,7 +1844,7 @@ _sfc_main$a.setup = (props, ctx) => {
1290
1844
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/FailureClusterCard.vue");
1291
1845
  return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
1292
1846
  };
1293
- const __nuxt_component_14 = Object.assign(_sfc_main$a, { __name: "FailureClusterCard" });
1847
+ const __nuxt_component_15 = Object.assign(_sfc_main$a, { __name: "FailureClusterCard" });
1294
1848
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1295
1849
  __name: "TestCaseAiCard",
1296
1850
  __ssrInlineRender: true,
@@ -1396,12 +1950,12 @@ ${text}` : text;
1396
1950
  );
1397
1951
  return (_ctx, _push, _parent, _attrs) => {
1398
1952
  const _component_SectionCard = __nuxt_component_11;
1399
- const _component_CopyAiPromptButton = __nuxt_component_1$4;
1953
+ const _component_CopyAiPromptButton = __nuxt_component_1$3;
1400
1954
  const _component_UIcon = _sfc_main$p;
1401
1955
  const _component_DiagnosisCoverageStrip = __nuxt_component_3$3;
1402
1956
  const _component_UTextarea = _sfc_main$h;
1403
1957
  const _component_UButton = _sfc_main$k;
1404
- const _component_DiagnosisResult = __nuxt_component_6;
1958
+ const _component_DiagnosisResult = __nuxt_component_6$1;
1405
1959
  const _component_HelpHint = __nuxt_component_2$1;
1406
1960
  const _component_DiagnosisContextModal = __nuxt_component_8$1;
1407
1961
  const _component_NuxtLink = __nuxt_component_12;
@@ -1794,7 +2348,7 @@ _sfc_main$9.setup = (props, ctx) => {
1794
2348
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseAiCard.vue");
1795
2349
  return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
1796
2350
  };
1797
- const __nuxt_component_15 = Object.assign(_sfc_main$9, { __name: "TestCaseAiCard" });
2351
+ const __nuxt_component_16 = Object.assign(_sfc_main$9, { __name: "TestCaseAiCard" });
1798
2352
  function useTraceEndpoint(path, enabled, auto) {
1799
2353
  const data = ref(null);
1800
2354
  const pending = ref(false);
@@ -1868,14 +2422,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1868
2422
  const card = ref(null);
1869
2423
  __expose({ reveal: () => card.value?.reveal() });
1870
2424
  return (_ctx, _push, _parent, _attrs) => {
1871
- const _component_CollapsibleSectionCard = __nuxt_component_24;
2425
+ const _component_CollapsibleSectionCard = __nuxt_component_25;
1872
2426
  const _component_UTabs = _sfc_main$g;
1873
2427
  const _component_UIcon = _sfc_main$p;
1874
2428
  const _component_TraceCallStack = __nuxt_component_3$4;
1875
- const _component_TestSourceStack = __nuxt_component_4$3;
1876
- const _component_MarkdownPreview = __nuxt_component_25;
1877
- const _component_LoadingState = __nuxt_component_1$3;
1878
- const _component_DocLink = __nuxt_component_9$2;
2429
+ const _component_TestSourceStack = __nuxt_component_4$4;
2430
+ const _component_MarkdownPreview = __nuxt_component_26;
2431
+ const _component_LoadingState = __nuxt_component_12$1;
2432
+ const _component_DocLink = __nuxt_component_9;
1879
2433
  _push(ssrRenderComponent(_component_CollapsibleSectionCard, mergeProps({
1880
2434
  ref_key: "card",
1881
2435
  ref: card,
@@ -2074,7 +2628,7 @@ _sfc_main$8.setup = (props, ctx) => {
2074
2628
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestSourceCard.vue");
2075
2629
  return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
2076
2630
  };
2077
- const __nuxt_component_16 = Object.assign(_sfc_main$8, { __name: "TestSourceCard" });
2631
+ const __nuxt_component_17 = Object.assign(_sfc_main$8, { __name: "TestSourceCard" });
2078
2632
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2079
2633
  __name: "TestCaseEvidenceCard",
2080
2634
  __ssrInlineRender: true,
@@ -2113,14 +2667,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2113
2667
  const card = ref(null);
2114
2668
  __expose({ reveal: () => card.value?.reveal?.() });
2115
2669
  return (_ctx, _push, _parent, _attrs) => {
2116
- const _component_CollapsibleSectionCard = __nuxt_component_24;
2670
+ const _component_CollapsibleSectionCard = __nuxt_component_25;
2117
2671
  const _component_TestEvidenceScreenshots = __nuxt_component_1$1$1;
2118
2672
  const _component_TestEvidenceVideos = __nuxt_component_2$2;
2119
2673
  const _component_TestEvidenceTraces = __nuxt_component_3$1$1;
2120
2674
  const _component_TestEvidenceSection = __nuxt_component_4$1$1;
2121
2675
  const _component_UIcon = _sfc_main$p;
2122
2676
  const _component_UButton = _sfc_main$k;
2123
- const _component_EmptyState = __nuxt_component_9$1;
2677
+ const _component_FeatureUnavailable = __nuxt_component_4$2;
2124
2678
  _push(ssrRenderComponent(_component_CollapsibleSectionCard, mergeProps({
2125
2679
  ref_key: "card",
2126
2680
  ref: card,
@@ -2220,9 +2774,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2220
2774
  _push2(`<!---->`);
2221
2775
  }
2222
2776
  if (unref(totalCount) === 0) {
2223
- _push2(ssrRenderComponent(_component_EmptyState, {
2777
+ _push2(ssrRenderComponent(_component_FeatureUnavailable, {
2224
2778
  icon: "i-lucide-camera-off",
2225
- text: "No screenshots, video or traces captured"
2779
+ title: "No screenshots, video or traces captured",
2780
+ text: "Evidence comes from Playwright's own capture settings — set trace, screenshot and video in your config (trace: 'retain-on-failure' is the usual starting point).",
2781
+ doc: "reporter"
2226
2782
  }, null, _parent2, _scopeId));
2227
2783
  } else {
2228
2784
  _push2(`<!---->`);
@@ -2274,10 +2830,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2274
2830
  ]),
2275
2831
  _: 1
2276
2832
  }, 8, ["count"])) : createCommentVNode("", true),
2277
- unref(totalCount) === 0 ? (openBlock(), createBlock(_component_EmptyState, {
2833
+ unref(totalCount) === 0 ? (openBlock(), createBlock(_component_FeatureUnavailable, {
2278
2834
  key: 1,
2279
2835
  icon: "i-lucide-camera-off",
2280
- text: "No screenshots, video or traces captured"
2836
+ title: "No screenshots, video or traces captured",
2837
+ text: "Evidence comes from Playwright's own capture settings — set trace, screenshot and video in your config (trace: 'retain-on-failure' is the usual starting point).",
2838
+ doc: "reporter"
2281
2839
  })) : createCommentVNode("", true)
2282
2840
  ])
2283
2841
  ];
@@ -2294,7 +2852,7 @@ _sfc_main$7.setup = (props, ctx) => {
2294
2852
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseEvidenceCard.vue");
2295
2853
  return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
2296
2854
  };
2297
- const __nuxt_component_17 = Object.assign(_sfc_main$7, { __name: "TestCaseEvidenceCard" });
2855
+ const __nuxt_component_18 = Object.assign(_sfc_main$7, { __name: "TestCaseEvidenceCard" });
2298
2856
  const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2299
2857
  __name: "TestCaseConsoleCard",
2300
2858
  __ssrInlineRender: true,
@@ -2432,7 +2990,7 @@ _sfc_main$6.setup = (props, ctx) => {
2432
2990
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseConsoleCard.vue");
2433
2991
  return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
2434
2992
  };
2435
- const __nuxt_component_21 = Object.assign(_sfc_main$6, { __name: "TestCaseConsoleCard" });
2993
+ const __nuxt_component_22 = Object.assign(_sfc_main$6, { __name: "TestCaseConsoleCard" });
2436
2994
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2437
2995
  __name: "TraceNetworkDrawer",
2438
2996
  __ssrInlineRender: true,
@@ -2500,7 +3058,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2500
3058
  const _component_UBadge = _sfc_main$7$1;
2501
3059
  const _component_DurationValue = __nuxt_component_14$1;
2502
3060
  const _component_CodeBlock = __nuxt_component_5;
2503
- const _component_LoadingState = __nuxt_component_1$3;
3061
+ const _component_LoadingState = __nuxt_component_12$1;
2504
3062
  _push(ssrRenderComponent(_component_USlideover, mergeProps({
2505
3063
  open: __props.open,
2506
3064
  title: "Request detail",
@@ -3219,11 +3777,11 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3219
3777
  const _component_SectionCard = __nuxt_component_11;
3220
3778
  const _component_UIcon = _sfc_main$p;
3221
3779
  const _component_UTabs = _sfc_main$g;
3222
- const _component_LoadingState = __nuxt_component_1$3;
3780
+ const _component_LoadingState = __nuxt_component_12$1;
3223
3781
  const _component_TraceNetworkList = __nuxt_component_4;
3224
3782
  const _component_UBadge = _sfc_main$7$1;
3225
3783
  const _component_DurationValue = __nuxt_component_14$1;
3226
- const _component_DocLink = __nuxt_component_9$2;
3784
+ const _component_DocLink = __nuxt_component_9;
3227
3785
  _push(ssrRenderComponent(_component_SectionCard, mergeProps({
3228
3786
  icon: "i-lucide-network",
3229
3787
  title: "Network & backend logs",
@@ -3872,7 +4430,7 @@ _sfc_main$3.setup = (props, ctx) => {
3872
4430
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseNetworkRequests.vue");
3873
4431
  return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
3874
4432
  };
3875
- const __nuxt_component_22 = Object.assign(_sfc_main$3, { __name: "TestCaseNetworkRequests" });
4433
+ const __nuxt_component_23 = Object.assign(_sfc_main$3, { __name: "TestCaseNetworkRequests" });
3876
4434
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3877
4435
  __name: "TestCaseTracesCard",
3878
4436
  __ssrInlineRender: true,
@@ -3929,7 +4487,7 @@ _sfc_main$2.setup = (props, ctx) => {
3929
4487
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseTracesCard.vue");
3930
4488
  return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
3931
4489
  };
3932
- const __nuxt_component_33 = Object.assign(_sfc_main$2, { __name: "TestCaseTracesCard" });
4490
+ const __nuxt_component_34 = Object.assign(_sfc_main$2, { __name: "TestCaseTracesCard" });
3933
4491
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3934
4492
  __name: "TestCaseAttachmentsCard",
3935
4493
  __ssrInlineRender: true,
@@ -4004,7 +4562,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4004
4562
  const _component_UIcon = _sfc_main$p;
4005
4563
  const _component_UButton = _sfc_main$k;
4006
4564
  const _component_VideoPlayer = __nuxt_component_3$2$1;
4007
- const _component_ScreenshotLightbox = __nuxt_component_4$2;
4565
+ const _component_ScreenshotLightbox = __nuxt_component_4$2$1;
4008
4566
  if (__props.attachments.length > 0) {
4009
4567
  _push(ssrRenderComponent(_component_SectionCard, mergeProps({
4010
4568
  icon: "i-lucide-paperclip",
@@ -4191,7 +4749,7 @@ _sfc_main$1.setup = (props, ctx) => {
4191
4749
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/test-case/TestCaseAttachmentsCard.vue");
4192
4750
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
4193
4751
  };
4194
- const __nuxt_component_34 = Object.assign(_sfc_main$1, { __name: "TestCaseAttachmentsCard" });
4752
+ const __nuxt_component_35 = Object.assign(_sfc_main$1, { __name: "TestCaseAttachmentsCard" });
4195
4753
  function getPerformanceHints(testCase) {
4196
4754
  const hints = [];
4197
4755
  if (!testCase) return hints;
@@ -4282,7 +4840,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4282
4840
  const hasTrace = computed(() => (traceData.value?.length ?? 0) > 0);
4283
4841
  useHead(
4284
4842
  computed(() => ({
4285
- title: `${testCase.value?.title || `Test run case #${testCaseId}`} — Piwi Dashboard`
4843
+ title: testCase.value?.title ? `${testCase.value.title} execution — Piwi Dashboard` : `Execution #${testCaseId} — Piwi Dashboard`
4286
4844
  }))
4287
4845
  );
4288
4846
  const hasError = computed(() => Boolean(testCase.value?.error));
@@ -4455,16 +5013,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4455
5013
  return duration > 2e3 ? "bg-red-500" : duration > 500 ? "bg-orange-400" : "bg-gray-400 dark:bg-gray-500";
4456
5014
  }
4457
5015
  const environment = computed(() => testCase.value?.testRun?.environment);
4458
- const retryCommand = computed(
4459
- () => buildRetryCommand([
4460
- {
4461
- filePath: testCase.value?.filePath ?? "",
4462
- title: testCase.value?.title ?? "",
4463
- line: testCase.value?.line ?? null,
4464
- projectName: testCase.value?.browser?.projectName ?? null
4465
- }
4466
- ])
4467
- );
5016
+ const retryCases = computed(() => [
5017
+ {
5018
+ filePath: testCase.value?.filePath ?? "",
5019
+ title: testCase.value?.title ?? "",
5020
+ line: testCase.value?.line ?? null,
5021
+ projectName: testCase.value?.browser?.projectName ?? null
5022
+ }
5023
+ ]);
5024
+ const retryCommand = computed(() => buildRetryCommand(retryCases.value));
4468
5025
  const { copy: copyRetry, copied: retryCopied } = useCopy();
4469
5026
  const navbarActions = computed(() => [
4470
5027
  {
@@ -4566,39 +5123,40 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4566
5123
  const _component_BreadcrumbNav = __nuxt_component_3$2;
4567
5124
  const _component_NuxtLink = __nuxt_component_12;
4568
5125
  const _component_UIcon = _sfc_main$p;
4569
- const _component_ExportMenu = __nuxt_component_6$1;
4570
- const _component_NavbarActions = __nuxt_component_4$1;
5126
+ const _component_ExportMenu = __nuxt_component_6;
5127
+ const _component_DesktopRunLocallyButton = __nuxt_component_14$2;
5128
+ const _component_NavbarActions = __nuxt_component_4$3;
4571
5129
  const _component_DetailPageLayout = __nuxt_component_8;
4572
- const _component_TestCaseSummary = __nuxt_component_9;
5130
+ const _component_TestCaseSummary = __nuxt_component_10;
4573
5131
  const _component_SectionCard = __nuxt_component_11;
4574
5132
  const _component_UTooltip = _sfc_main$e;
4575
5133
  const _component_UButton = _sfc_main$k;
4576
- const _component_TestCaseVerdictCard = __nuxt_component_13;
4577
- const _component_FailureClusterCard = __nuxt_component_14;
4578
- const _component_TestCaseAiCard = __nuxt_component_15;
4579
- const _component_TestSourceCard = __nuxt_component_16;
4580
- const _component_TestCaseEvidenceCard = __nuxt_component_17;
4581
- const _component_LocatorHealingPanel = __nuxt_component_18;
4582
- const _component_EnvironmentDiffCard = __nuxt_component_19;
4583
- const _component_VisualDiffCard = __nuxt_component_20;
4584
- const _component_TestCaseConsoleCard = __nuxt_component_21;
4585
- const _component_TestCaseNetworkRequests = __nuxt_component_22;
4586
- const _component_PageStateCard = __nuxt_component_23;
4587
- const _component_CollapsibleSectionCard = __nuxt_component_24;
4588
- const _component_MarkdownPreview = __nuxt_component_25;
4589
- const _component_DomSnapshotCard = __nuxt_component_26;
5134
+ const _component_TestCaseVerdictCard = __nuxt_component_14;
5135
+ const _component_FailureClusterCard = __nuxt_component_15;
5136
+ const _component_TestCaseAiCard = __nuxt_component_16;
5137
+ const _component_TestSourceCard = __nuxt_component_17;
5138
+ const _component_TestCaseEvidenceCard = __nuxt_component_18;
5139
+ const _component_LocatorHealingPanel = __nuxt_component_19;
5140
+ const _component_EnvironmentDiffCard = __nuxt_component_20;
5141
+ const _component_VisualDiffCard = __nuxt_component_21;
5142
+ const _component_TestCaseConsoleCard = __nuxt_component_22;
5143
+ const _component_TestCaseNetworkRequests = __nuxt_component_23;
5144
+ const _component_PageStateCard = __nuxt_component_24;
5145
+ const _component_CollapsibleSectionCard = __nuxt_component_25;
5146
+ const _component_MarkdownPreview = __nuxt_component_26;
5147
+ const _component_DomSnapshotCard = __nuxt_component_27;
4590
5148
  const _component_UBadge = _sfc_main$7$1;
4591
5149
  const _component_DurationValue = __nuxt_component_14$1;
4592
5150
  const _component_TableScroller = __nuxt_component_3$1;
4593
5151
  const _component_UTable = _sfc_main$d;
4594
5152
  const _component_OpenInIdeLink = __nuxt_component_1$1;
4595
- const _component_EmptyState = __nuxt_component_9$1;
4596
- const _component_TestCaseTracesCard = __nuxt_component_33;
4597
- const _component_TestCaseAttachmentsCard = __nuxt_component_34;
5153
+ const _component_EmptyState = __nuxt_component_4$1;
5154
+ const _component_TestCaseTracesCard = __nuxt_component_34;
5155
+ const _component_TestCaseAttachmentsCard = __nuxt_component_35;
4598
5156
  const _component_StatTileGrid = __nuxt_component_1;
4599
5157
  const _component_StatTile = __nuxt_component_2;
4600
- const _component_DocLink = __nuxt_component_9$2;
4601
- const _component_TestCaseHistoryChart = __nuxt_component_38;
5158
+ const _component_FeatureUnavailable = __nuxt_component_4$2;
5159
+ const _component_TestCaseHistoryChart = __nuxt_component_39;
4602
5160
  _push(ssrRenderComponent(_component_UDashboardPanel, mergeProps({ id: "test-run-case-detail" }, _attrs), {
4603
5161
  header: withCtx((_, _push2, _parent2, _scopeId) => {
4604
5162
  if (_push2) {
@@ -4622,7 +5180,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4622
5180
  to: `/test-runs/${unref(testCase).testRun.id}`
4623
5181
  }
4624
5182
  ] : [{ label: "Test run" }],
4625
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5183
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4626
5184
  ]
4627
5185
  }, null, _parent3, _scopeId2));
4628
5186
  } else {
@@ -4644,7 +5202,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4644
5202
  to: `/test-runs/${unref(testCase).testRun.id}`
4645
5203
  }
4646
5204
  ] : [{ label: "Test run" }],
4647
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5205
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4648
5206
  ]
4649
5207
  }, null, 8, ["items"])
4650
5208
  ];
@@ -4689,6 +5247,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4689
5247
  } else {
4690
5248
  _push3(`<!---->`);
4691
5249
  }
5250
+ _push3(ssrRenderComponent(_component_DesktopRunLocallyButton, {
5251
+ "project-id": unref(testCase)?.testRun?.project?.id,
5252
+ "project-label": unref(testCase)?.testRun?.project?.label ?? unref(testCase)?.testRun?.project?.name,
5253
+ cases: unref(retryCases),
5254
+ class: "mr-2"
5255
+ }, null, _parent3, _scopeId2));
4692
5256
  _push3(ssrRenderComponent(_component_NavbarActions, { actions: unref(navbarActions) }, null, _parent3, _scopeId2));
4693
5257
  } else {
4694
5258
  return [
@@ -4713,6 +5277,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4713
5277
  "base-name": `piwi-execution-${unref(testCase).id}`,
4714
5278
  class: "mr-2"
4715
5279
  }, null, 8, ["endpoint", "base-name"])) : createCommentVNode("", true),
5280
+ createVNode(_component_DesktopRunLocallyButton, {
5281
+ "project-id": unref(testCase)?.testRun?.project?.id,
5282
+ "project-label": unref(testCase)?.testRun?.project?.label ?? unref(testCase)?.testRun?.project?.name,
5283
+ cases: unref(retryCases),
5284
+ class: "mr-2"
5285
+ }, null, 8, ["project-id", "project-label", "cases"]),
4716
5286
  createVNode(_component_NavbarActions, { actions: unref(navbarActions) }, null, 8, ["actions"])
4717
5287
  ];
4718
5288
  }
@@ -4740,7 +5310,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4740
5310
  to: `/test-runs/${unref(testCase).testRun.id}`
4741
5311
  }
4742
5312
  ] : [{ label: "Test run" }],
4743
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5313
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4744
5314
  ]
4745
5315
  }, null, 8, ["items"])
4746
5316
  ]),
@@ -4766,6 +5336,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4766
5336
  "base-name": `piwi-execution-${unref(testCase).id}`,
4767
5337
  class: "mr-2"
4768
5338
  }, null, 8, ["endpoint", "base-name"])) : createCommentVNode("", true),
5339
+ createVNode(_component_DesktopRunLocallyButton, {
5340
+ "project-id": unref(testCase)?.testRun?.project?.id,
5341
+ "project-label": unref(testCase)?.testRun?.project?.label ?? unref(testCase)?.testRun?.project?.name,
5342
+ cases: unref(retryCases),
5343
+ class: "mr-2"
5344
+ }, null, 8, ["project-id", "project-label", "cases"]),
4769
5345
  createVNode(_component_NavbarActions, { actions: unref(navbarActions) }, null, 8, ["actions"])
4770
5346
  ]),
4771
5347
  _: 1
@@ -4791,6 +5367,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4791
5367
  "steps-count": unref(steps).length,
4792
5368
  "historical-timing": unref(historicalTiming),
4793
5369
  "stable-links": unref(testCase)?.stableLinks ?? null,
5370
+ "project-key": unref(testCase)?.testRun?.project?.id,
5371
+ "project-name": unref(testCase)?.testRun?.project?.name,
4794
5372
  onRefresh: ($event) => unref(refresh)()
4795
5373
  }, null, _parent3, _scopeId2));
4796
5374
  } else {
@@ -4804,8 +5382,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4804
5382
  "steps-count": unref(steps).length,
4805
5383
  "historical-timing": unref(historicalTiming),
4806
5384
  "stable-links": unref(testCase)?.stableLinks ?? null,
5385
+ "project-key": unref(testCase)?.testRun?.project?.id,
5386
+ "project-name": unref(testCase)?.testRun?.project?.name,
4807
5387
  onRefresh: ($event) => unref(refresh)()
4808
- }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "onRefresh"])
5388
+ }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "project-key", "project-name", "onRefresh"])
4809
5389
  ];
4810
5390
  }
4811
5391
  }),
@@ -6273,43 +6853,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6273
6853
  _push3(`<!---->`);
6274
6854
  }
6275
6855
  if (unref(performanceHints).length === 0 && !unref(webVitals)) {
6276
- _push3(ssrRenderComponent(_component_EmptyState, {
6856
+ _push3(ssrRenderComponent(_component_FeatureUnavailable, {
6277
6857
  icon: "i-lucide-gauge",
6278
- text: "No performance hints or Web Vitals were captured for this execution."
6279
- }, {
6280
- default: withCtx((_3, _push4, _parent4, _scopeId3) => {
6281
- if (_push4) {
6282
- _push4(`<p class="text-xs text-gray-400"${_scopeId3}> Web Vitals and timing come from the `);
6283
- _push4(ssrRenderComponent(_component_DocLink, { to: "capture-fixtures" }, {
6284
- default: withCtx((_4, _push5, _parent5, _scopeId4) => {
6285
- if (_push5) {
6286
- _push5(`capture fixtures`);
6287
- } else {
6288
- return [
6289
- createTextVNode("capture fixtures")
6290
- ];
6291
- }
6292
- }),
6293
- _: 1
6294
- }, _parent4, _scopeId3));
6295
- _push4(`. </p>`);
6296
- } else {
6297
- return [
6298
- createVNode("p", { class: "text-xs text-gray-400" }, [
6299
- createTextVNode(" Web Vitals and timing come from the "),
6300
- createVNode(_component_DocLink, { to: "capture-fixtures" }, {
6301
- default: withCtx(() => [
6302
- createTextVNode("capture fixtures")
6303
- ]),
6304
- _: 1
6305
- }),
6306
- createTextVNode(". ")
6307
- ])
6308
- ];
6309
- }
6310
- }),
6311
- _: 1
6312
- }, _parent3, _scopeId2));
6858
+ title: "No performance hints or Web Vitals for this execution",
6859
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
6860
+ doc: "capture-fixtures"
6861
+ }, null, _parent3, _scopeId2));
6313
6862
  } else {
6314
6863
  _push3(`<!---->`);
6315
6864
  }
@@ -6494,24 +7043,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6494
7043
  ]),
6495
7044
  _: 1
6496
7045
  })) : createCommentVNode("", true),
6497
- unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_EmptyState, {
7046
+ unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_FeatureUnavailable, {
6498
7047
  key: 2,
6499
7048
  icon: "i-lucide-gauge",
6500
- text: "No performance hints or Web Vitals were captured for this execution."
6501
- }, {
6502
- default: withCtx(() => [
6503
- createVNode("p", { class: "text-xs text-gray-400" }, [
6504
- createTextVNode(" Web Vitals and timing come from the "),
6505
- createVNode(_component_DocLink, { to: "capture-fixtures" }, {
6506
- default: withCtx(() => [
6507
- createTextVNode("capture fixtures")
6508
- ]),
6509
- _: 1
6510
- }),
6511
- createTextVNode(". ")
6512
- ])
6513
- ]),
6514
- _: 1
7049
+ title: "No performance hints or Web Vitals for this execution",
7050
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
7051
+ doc: "capture-fixtures"
6515
7052
  })) : createCommentVNode("", true)
6516
7053
  ])
6517
7054
  ];
@@ -6915,8 +7452,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6915
7452
  "steps-count": unref(steps).length,
6916
7453
  "historical-timing": unref(historicalTiming),
6917
7454
  "stable-links": unref(testCase)?.stableLinks ?? null,
7455
+ "project-key": unref(testCase)?.testRun?.project?.id,
7456
+ "project-name": unref(testCase)?.testRun?.project?.name,
6918
7457
  onRefresh: ($event) => unref(refresh)()
6919
- }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "onRefresh"])
7458
+ }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "project-key", "project-name", "onRefresh"])
6920
7459
  ]),
6921
7460
  "tab-diagnosis": withCtx(() => [
6922
7461
  createVNode("div", { class: "space-y-4" }, [
@@ -7436,24 +7975,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7436
7975
  ]),
7437
7976
  _: 1
7438
7977
  })) : createCommentVNode("", true),
7439
- unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_EmptyState, {
7978
+ unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_FeatureUnavailable, {
7440
7979
  key: 2,
7441
7980
  icon: "i-lucide-gauge",
7442
- text: "No performance hints or Web Vitals were captured for this execution."
7443
- }, {
7444
- default: withCtx(() => [
7445
- createVNode("p", { class: "text-xs text-gray-400" }, [
7446
- createTextVNode(" Web Vitals and timing come from the "),
7447
- createVNode(_component_DocLink, { to: "capture-fixtures" }, {
7448
- default: withCtx(() => [
7449
- createTextVNode("capture fixtures")
7450
- ]),
7451
- _: 1
7452
- }),
7453
- createTextVNode(". ")
7454
- ])
7455
- ]),
7456
- _: 1
7981
+ title: "No performance hints or Web Vitals for this execution",
7982
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
7983
+ doc: "capture-fixtures"
7457
7984
  })) : createCommentVNode("", true)
7458
7985
  ])
7459
7986
  ]),
@@ -7584,4 +8111,4 @@ _sfc_main.setup = (props, ctx) => {
7584
8111
  };
7585
8112
 
7586
8113
  export { _sfc_main as default };
7587
- //# sourceMappingURL=_id_-B78ky13D.mjs.map
8114
+ //# sourceMappingURL=_id_-DMkgWSLZ.mjs.map