@piwitests/server 0.18.1 → 0.19.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 (773) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BaDv5D7A.js → -09h6CA9.js} +1 -1
  3. package/.output/public/_nuxt/279D2RYp.js +1 -0
  4. package/.output/public/_nuxt/81InBX9v.js +1 -0
  5. package/.output/public/_nuxt/{CRpbGS75.js → Ar3IelOY.js} +1 -1
  6. package/.output/public/_nuxt/B33iXw77.js +1 -0
  7. package/.output/public/_nuxt/B3B9Ii2A.js +1 -0
  8. package/.output/public/_nuxt/B3HO8kuh.js +1 -0
  9. package/.output/public/_nuxt/B44A4LSJ.js +1 -0
  10. package/.output/public/_nuxt/{CPZ5wygb.js → B7NBP1C-.js} +1 -1
  11. package/.output/public/_nuxt/{Db_-yjYg.js → B9WhzpKO.js} +1 -1
  12. package/.output/public/_nuxt/{DoYgYLOd.js → BCMuIgP5.js} +1 -1
  13. package/.output/public/_nuxt/BDicZ1gQ.js +1 -0
  14. package/.output/public/_nuxt/BJ0XQElc.js +1 -0
  15. package/.output/public/_nuxt/{D4SFgXAf.js → BMvCSA6h.js} +1 -1
  16. package/.output/public/_nuxt/BPQoBGg5.js +1 -0
  17. package/.output/public/_nuxt/BPRffDuo.js +1 -0
  18. package/.output/public/_nuxt/BSIxhGsh.js +1 -0
  19. package/.output/public/_nuxt/BVaxh6Nl.js +4 -0
  20. package/.output/public/_nuxt/{BReNbog6.js → BX9ZXe98.js} +1 -1
  21. package/.output/public/_nuxt/{rm7OkgDG.js → BYDaY0Z7.js} +1 -1
  22. package/.output/public/_nuxt/{WAaPPk0g.js → Bc8mOoz9.js} +2 -2
  23. package/.output/public/_nuxt/BccXfBfI.js +1 -0
  24. package/.output/public/_nuxt/{Dbg8z684.js → BeLWlVK0.js} +1 -1
  25. package/.output/public/_nuxt/{CP0vUzbd.js → BfTuX0wq.js} +1 -1
  26. package/.output/public/_nuxt/BjaRappk.js +1 -0
  27. package/.output/public/_nuxt/{D3MWm6JP.js → Bn0YQDyy.js} +1 -1
  28. package/.output/public/_nuxt/Bp5ELvx9.js +1 -0
  29. package/.output/public/_nuxt/BpUaY9nH.js +2 -0
  30. package/.output/public/_nuxt/BqV0l12c.js +1 -0
  31. package/.output/public/_nuxt/{D8YZvjas.js → Bti38m-M.js} +1 -1
  32. package/.output/public/_nuxt/{DVgMaBxD.js → Bu2aaVIY.js} +3 -3
  33. package/.output/public/_nuxt/{CUDeMcEK.js → BuMC3WjZ.js} +1 -1
  34. package/.output/public/_nuxt/{Bi3i470l.js → BxCKKeYs.js} +1 -1
  35. package/.output/public/_nuxt/{BTYiG93l.js → C-elpgyr.js} +1 -1
  36. package/.output/public/_nuxt/C2_3mdPC.js +1 -0
  37. package/.output/public/_nuxt/{BoC6qaRF.js → C5iG7O4O.js} +4 -4
  38. package/.output/public/_nuxt/C7P1UCO2.js +1 -0
  39. package/.output/public/_nuxt/{BuuvTH9e.js → C95YAaJq.js} +1 -1
  40. package/.output/public/_nuxt/{DOr_4nln.js → C9_jrmk9.js} +2 -2
  41. package/.output/public/_nuxt/CDk0q2hV.js +2 -0
  42. package/.output/public/_nuxt/{DIA_NAIv.js → CGNkHojN.js} +3 -3
  43. package/.output/public/_nuxt/CHEFCN8Q.js +1 -0
  44. package/.output/public/_nuxt/CHNwfU1y.js +1 -0
  45. package/.output/public/_nuxt/CK_2LZBS.js +1 -0
  46. package/.output/public/_nuxt/CNFYDQmj.js +1 -0
  47. package/.output/public/_nuxt/{BfoG8R5a.js → CTxDO9fB.js} +1 -1
  48. package/.output/public/_nuxt/{B1CB30tg.js → CU5S9GCh.js} +1 -1
  49. package/.output/public/_nuxt/{BKaU95es.js → CUtJobDm.js} +1 -1
  50. package/.output/public/_nuxt/CV9-fTmY.js +1 -0
  51. package/.output/public/_nuxt/{BAkJhSAW.js → CYsTqbBS.js} +1 -1
  52. package/.output/public/_nuxt/{AjuKBlzz.js → CZfMdzfk.js} +1 -1
  53. package/.output/public/_nuxt/{lowCGL2S.js → Cdff9XNh.js} +1 -1
  54. package/.output/public/_nuxt/{quV6tp4n.js → ClOqkAcc.js} +1 -1
  55. package/.output/public/_nuxt/{Doul3p1_.js → CpjgB2aY.js} +1 -1
  56. package/.output/public/_nuxt/CrwJAwhk.js +1 -0
  57. package/.output/public/_nuxt/CtQBsNUb.js +1 -0
  58. package/.output/public/_nuxt/CuSVQEkS.js +3 -0
  59. package/.output/public/_nuxt/{wQZj69OY.js → CylWPruw.js} +1 -1
  60. package/.output/public/_nuxt/CzGyac8q.js +1 -0
  61. package/.output/public/_nuxt/D-c8ZSws.js +1 -0
  62. package/.output/public/_nuxt/{B6IHiVa1.js → D0HNloZ9.js} +1 -1
  63. package/.output/public/_nuxt/{ClIKZ4qY.js → D55D4EYo.js} +1 -1
  64. package/.output/public/_nuxt/{Bi9DO8jm.js → DDDpCFpF.js} +1 -1
  65. package/.output/public/_nuxt/{va1mwSm9.js → DEFEpYzn.js} +1 -1
  66. package/.output/public/_nuxt/DGfAxLHV.js +1 -0
  67. package/.output/public/_nuxt/DHDtnj7p.js +1 -0
  68. package/.output/public/_nuxt/DLSrtpsA.js +1 -0
  69. package/.output/public/_nuxt/DP8hfJ9h.js +1 -0
  70. package/.output/public/_nuxt/DS636elg.js +1 -0
  71. package/.output/public/_nuxt/{D51_cB9D.js → DT53RWbC.js} +1 -1
  72. package/.output/public/_nuxt/DVDXJYq2.js +2 -0
  73. package/.output/public/_nuxt/DW0xl3I6.js +17 -0
  74. package/.output/public/_nuxt/{BEB2Mv6B.js → DX-MDGb3.js} +1 -1
  75. package/.output/public/_nuxt/DcmZRa_F.js +1 -0
  76. package/.output/public/_nuxt/DgE2YE3R.js +1 -0
  77. package/.output/public/_nuxt/Dgf5N4Ng.js +1 -0
  78. package/.output/public/_nuxt/DiOLdHBC.js +1 -0
  79. package/.output/public/_nuxt/DiZyJYez.js +1 -0
  80. package/.output/public/_nuxt/Dk9fwOCm.js +34 -0
  81. package/.output/public/_nuxt/{DRE6Aqqp.js → Dnpkl-1q.js} +1 -1
  82. package/.output/public/_nuxt/DoUy4UHi.js +44 -0
  83. package/.output/public/_nuxt/{empGC_x-.js → DprVVyUQ.js} +1 -1
  84. package/.output/public/_nuxt/{BVDBIVAQ.js → DslPMqfa.js} +1 -1
  85. package/.output/public/_nuxt/{Vnfkr1pJ.js → FUXhyidq.js} +1 -1
  86. package/.output/public/_nuxt/HXerICAi.js +79 -0
  87. package/.output/public/_nuxt/{Do6zIWQf.js → IvQlbZk6.js} +1 -1
  88. package/.output/public/_nuxt/{n-QWmQgc.js → Jo8kRmHz.js} +1 -1
  89. package/.output/public/_nuxt/{BsDB_eCd.js → KnfsST6Y.js} +1 -1
  90. package/.output/public/_nuxt/NQikbhmK.js +253 -0
  91. package/.output/public/_nuxt/OSduWzyz.js +1 -0
  92. package/.output/public/_nuxt/SfMRXW25.js +5 -0
  93. package/.output/public/_nuxt/{mlAADjK3.js → SlIRLREZ.js} +2 -2
  94. package/.output/public/_nuxt/TagBadge.By1E6r4y.css +1 -0
  95. package/.output/public/_nuxt/WsxFTEFq.js +10 -0
  96. package/.output/public/_nuxt/YVN7WG7q.js +1 -0
  97. package/.output/public/_nuxt/{CRcjGmf7.js → ZFiQCMUB.js} +1 -1
  98. package/.output/public/_nuxt/aQgs_c6e.js +9 -0
  99. package/.output/public/_nuxt/builds/latest.json +1 -1
  100. package/.output/public/_nuxt/builds/meta/ab473028-4b37-4884-b243-b8f6e5046e5e.json +1 -0
  101. package/.output/public/_nuxt/{Dwp3GkV-.js → cHAnlQbv.js} +1 -1
  102. package/.output/public/_nuxt/dYCKgE-3.js +5 -0
  103. package/.output/public/_nuxt/{DnThe2U0.js → eaVkJRSa.js} +1 -1
  104. package/.output/public/_nuxt/entry.CPhW41mh.css +1 -0
  105. package/.output/public/_nuxt/{DoFSKAvY.js → eptP4pGv.js} +1 -1
  106. package/.output/public/_nuxt/fVcG504p.js +1 -0
  107. package/.output/public/_nuxt/g26aVPxc.js +1 -0
  108. package/.output/public/_nuxt/{wGpfdK6o.js → ndShiWE8.js} +1 -1
  109. package/.output/public/_nuxt/nv9-6vBK.js +1 -0
  110. package/.output/public/_nuxt/rWNTSFD6.js +3 -0
  111. package/.output/public/_nuxt/tvgqrYDd.js +1 -0
  112. package/.output/public/_nuxt/{DCMFuzDI.js → y17lMTFy.js} +1 -1
  113. package/.output/public/_nuxt/{DM_YaJgJ.js → ybDYeNxd.js} +1 -1
  114. package/.output/public/_nuxt/{B_aSGB8S.js → zQyPuvV1.js} +1 -1
  115. package/.output/public/demo/seed.version.json +2 -2
  116. package/.output/server/chunks/_/ai-prompt-preview.mjs +38 -0
  117. package/.output/server/chunks/_/ai-prompt-preview.mjs.map +1 -0
  118. package/.output/server/chunks/_/collect.mjs +122 -0
  119. package/.output/server/chunks/_/collect.mjs.map +1 -0
  120. package/.output/server/chunks/_/import-runs.mjs +351 -0
  121. package/.output/server/chunks/_/import-runs.mjs.map +1 -0
  122. package/.output/server/chunks/_/markers.mjs +1 -1
  123. package/.output/server/chunks/_/quarantine.mjs +112 -0
  124. package/.output/server/chunks/_/quarantine.mjs.map +1 -0
  125. package/.output/server/chunks/_/users.mjs +1 -1
  126. package/.output/server/chunks/build/{Alert-Bp1Wz_sq.mjs → Alert-C4xq8lao.mjs} +2 -2
  127. package/.output/server/chunks/build/Alert-C4xq8lao.mjs.map +1 -0
  128. package/.output/server/chunks/build/{Breadcrumb-C9ZPTLym.mjs → Breadcrumb-Ak2Lg3oM.mjs} +3 -3
  129. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +1 -0
  130. package/.output/server/chunks/build/{BreadcrumbNav-C3y42Vun.mjs → BreadcrumbNav-DO7I_z-n.mjs} +3 -3
  131. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +1 -0
  132. package/.output/server/chunks/build/{BrowserBadge-DNCp9pF-.mjs → BrowserBadge-D33lqUcj.mjs} +5 -5
  133. package/.output/server/chunks/build/BrowserBadge-D33lqUcj.mjs.map +1 -0
  134. package/.output/server/chunks/build/{ChartCard-Fr557IbV.mjs → ChartCard-Y1UKwMsf.mjs} +2 -2
  135. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +1 -0
  136. package/.output/server/chunks/build/{Checkbox-cVOSIY93.mjs → Checkbox-DvUBGagc.mjs} +8 -8
  137. package/.output/server/chunks/build/Checkbox-DvUBGagc.mjs.map +1 -0
  138. package/.output/server/chunks/build/{CiEnvCard-DXPOhdSG.mjs → CiEnvCard-CrjOM17n.mjs} +25 -34
  139. package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs.map +1 -0
  140. package/.output/server/chunks/build/{CodeBlock-BGwNmJ8J.mjs → CodeBlock-BgE-NSmE.mjs} +7 -22
  141. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +1 -0
  142. package/.output/server/chunks/build/{DashboardNavbar-Bdp-OwTN.mjs → DashboardNavbar-BHmMSPX7.mjs} +3 -3
  143. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +1 -0
  144. package/.output/server/chunks/build/{DashboardSidebarToggle-Ji6ADuqF.mjs → DashboardSidebarToggle-DCTnHiIv.mjs} +3 -3
  145. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +1 -0
  146. package/.output/server/chunks/build/{DataLocationCard-D6xSOrme.mjs → DataLocationCard-B_YHdzSz.mjs} +3 -3
  147. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +1 -0
  148. package/.output/server/chunks/build/{DiagnosisPanel-DV1xwGu4.mjs → DiagnosisPanel-B646dK4p.mjs} +17 -528
  149. package/.output/server/chunks/build/DiagnosisPanel-B646dK4p.mjs.map +1 -0
  150. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs +43 -0
  151. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +1 -0
  152. package/.output/server/chunks/build/{EmptyState-DV3oT_xz.mjs → EmptyState-Dtlab7S9.mjs} +3 -3
  153. package/.output/server/chunks/build/EmptyState-Dtlab7S9.mjs.map +1 -0
  154. package/.output/server/chunks/build/{EntityLinks-DeOP13Kr.mjs → EntityLinks-D3fp57pR.mjs} +6 -6
  155. package/.output/server/chunks/build/EntityLinks-D3fp57pR.mjs.map +1 -0
  156. package/.output/server/chunks/build/{EnvManagedBadge-Qpn58Nmr.mjs → EnvManagedBadge-Bg3FSiU1.mjs} +3 -3
  157. package/.output/server/chunks/build/EnvManagedBadge-Bg3FSiU1.mjs.map +1 -0
  158. package/.output/server/chunks/build/{FormField-B-GSn_VR.mjs → FormField-B0HKsdMd.mjs} +3 -3
  159. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +1 -0
  160. package/.output/server/chunks/build/{HelpHint-YEMWtKu1.mjs → HelpHint-DrcIv-Oj.mjs} +53 -6
  161. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +1 -0
  162. package/.output/server/chunks/build/{Label-DBvbHd3A.mjs → Label-DYDR1Oeh.mjs} +2 -2
  163. package/.output/server/chunks/build/Label-DYDR1Oeh.mjs.map +1 -0
  164. package/.output/server/chunks/build/{MiniRunBars-C3HG-EYm.mjs → MiniRunBars-CZMugDrh.mjs} +2 -2
  165. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +1 -0
  166. package/.output/server/chunks/build/{Modal-CfA78Hm1.mjs → Modal-Ck2XLt8d.mjs} +2 -2
  167. package/.output/server/chunks/build/Modal-Ck2XLt8d.mjs.map +1 -0
  168. package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs → OpenInIdeLink-C4MXA8ya.mjs} +6 -6
  169. package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs.map → OpenInIdeLink-C4MXA8ya.mjs.map} +1 -1
  170. package/.output/server/chunks/build/{ProjectTestCasesTable-9Ia825h8.mjs → ProjectTestCasesTable-CxfQ5wtN.mjs} +120 -45
  171. package/.output/server/chunks/build/ProjectTestCasesTable-CxfQ5wtN.mjs.map +1 -0
  172. package/.output/server/chunks/build/{RovingFocusItem-CxhHdNGo.mjs → RovingFocusItem-BJSzTBjy.mjs} +2 -2
  173. package/.output/server/chunks/build/RovingFocusItem-BJSzTBjy.mjs.map +1 -0
  174. package/.output/server/chunks/build/{RunReports-BpJqLHY9.mjs → RunReports-DFLv51TX.mjs} +8 -6
  175. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +1 -0
  176. package/.output/server/chunks/build/{RunStatusBadge-BhmJ_RKM.mjs → RunStatusBadge-FfGb6bkW.mjs} +3 -2
  177. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +1 -0
  178. package/.output/server/chunks/build/{SectionCard-COd9TuDq.mjs → SectionCard-CN-v0FZ_.mjs} +2 -2
  179. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +1 -0
  180. package/.output/server/chunks/build/{Select-ppPz926C.mjs → Select-CUqj50wi.mjs} +4 -4
  181. package/.output/server/chunks/build/Select-CUqj50wi.mjs.map +1 -0
  182. package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs → SelectMenu-Db7osY7J.mjs} +4 -4
  183. package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs.map → SelectMenu-Db7osY7J.mjs.map} +1 -1
  184. package/.output/server/chunks/build/{Separator-CxZdx8kw.mjs → Separator-CR4WcEKD.mjs} +2 -2
  185. package/.output/server/chunks/build/Separator-CR4WcEKD.mjs.map +1 -0
  186. package/.output/server/chunks/build/{SettingsField-DDD4oqys.mjs → SettingsField-D6iEYbEc.mjs} +6 -6
  187. package/.output/server/chunks/build/SettingsField-D6iEYbEc.mjs.map +1 -0
  188. package/.output/server/chunks/build/{Slideover-B95Rj237.mjs → Slideover-DgCa80mf.mjs} +3 -3
  189. package/.output/server/chunks/build/Slideover-DgCa80mf.mjs.map +1 -0
  190. package/.output/server/chunks/build/{Switch-xQQ3_ME1.mjs → Switch-CgUioOYB.mjs} +5 -5
  191. package/.output/server/chunks/build/Switch-CgUioOYB.mjs.map +1 -0
  192. package/.output/server/chunks/build/{Table-CPhhVzDv.mjs → Table-BRk04Hd2.mjs} +3 -3
  193. package/.output/server/chunks/build/Table-BRk04Hd2.mjs.map +1 -0
  194. package/.output/server/chunks/build/{Tabs-BV9XqjoO.mjs → Tabs-Bbsg9wag.mjs} +3 -3
  195. package/.output/server/chunks/build/Tabs-Bbsg9wag.mjs.map +1 -0
  196. package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs +31 -0
  197. package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs.map +1 -0
  198. package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs +8 -0
  199. package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs.map +1 -0
  200. package/.output/server/chunks/build/{TestCaseHistoryChart-DMb-xSJa.mjs → TestCaseHistoryChart-nMLPhdvD.mjs} +6 -6
  201. package/.output/server/chunks/build/TestCaseHistoryChart-nMLPhdvD.mjs.map +1 -0
  202. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs +200 -0
  203. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +1 -0
  204. package/.output/server/chunks/build/{TestStatusBar-CEzt76wk.mjs → TestStatusBar-j6h2Jp6A.mjs} +15 -15
  205. package/.output/server/chunks/build/TestStatusBar-j6h2Jp6A.mjs.map +1 -0
  206. package/.output/server/chunks/build/{Textarea-DrrqQUVG.mjs → Textarea-Dv2-lOvW.mjs} +2 -2
  207. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +1 -0
  208. package/.output/server/chunks/build/{Tooltip-7vwuDPrZ.mjs → Tooltip-BOazooWP.mjs} +3 -3
  209. package/.output/server/chunks/build/Tooltip-BOazooWP.mjs.map +1 -0
  210. package/.output/server/chunks/build/{VisuallyHiddenInput-C9eJVpPW.mjs → VisuallyHiddenInput-D6kBJxVd.mjs} +2 -2
  211. package/.output/server/chunks/build/VisuallyHiddenInput-D6kBJxVd.mjs.map +1 -0
  212. package/.output/server/chunks/build/{_id_-B2yirIuA.mjs → _id_-B78ky13D.mjs} +798 -358
  213. package/.output/server/chunks/build/_id_-B78ky13D.mjs.map +1 -0
  214. package/.output/server/chunks/build/{_id_-bWcP2xFl.mjs → _id_-BHh65pfg.mjs} +690 -443
  215. package/.output/server/chunks/build/_id_-BHh65pfg.mjs.map +1 -0
  216. package/.output/server/chunks/build/{_id_-B4V5fop6.mjs → _id_-Rzkqx55x.mjs} +297 -60
  217. package/.output/server/chunks/build/{_id_-B4V5fop6.mjs.map → _id_-Rzkqx55x.mjs.map} +1 -1
  218. package/.output/server/chunks/build/{_id_-CE0Gso6i.mjs → _id_-z5N6HPyC.mjs} +89 -40
  219. package/.output/server/chunks/build/_id_-z5N6HPyC.mjs.map +1 -0
  220. package/.output/server/chunks/build/{about-CoJjvUwM.mjs → about-CvSP73Ug.mjs} +100 -52
  221. package/.output/server/chunks/build/about-CvSP73Ug.mjs.map +1 -0
  222. package/.output/server/chunks/build/{account-Cn-eZqXM.mjs → account-DAfvaD-F.mjs} +21 -9
  223. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +1 -0
  224. package/.output/server/chunks/build/{ai-7jdaPOmj.mjs → ai-B4VJ9K1K.mjs} +45 -23
  225. package/.output/server/chunks/build/{ai-7jdaPOmj.mjs.map → ai-B4VJ9K1K.mjs.map} +1 -1
  226. package/.output/server/chunks/build/{analytics-B276WPeU.mjs → analytics-CJPC6t4L.mjs} +65 -39
  227. package/.output/server/chunks/build/{analytics-B276WPeU.mjs.map → analytics-CJPC6t4L.mjs.map} +1 -1
  228. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  229. package/.output/server/chunks/build/compare-RxHSOdsO.mjs +12 -0
  230. package/.output/server/chunks/build/{db.client-aHcD0wyX.mjs → db.client-CQoVTYB9.mjs} +83 -5
  231. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +1 -0
  232. package/.output/server/chunks/build/{default-BSzdkM_L.mjs → default-zvbFgDJG.mjs} +36 -24
  233. package/.output/server/chunks/build/default-zvbFgDJG.mjs.map +1 -0
  234. package/.output/server/chunks/build/{docs-BN_x1OW3.mjs → docs-DyuVEgtB.mjs} +30 -49
  235. package/.output/server/chunks/build/{docs-BN_x1OW3.mjs.map → docs-DyuVEgtB.mjs.map} +1 -1
  236. package/.output/server/chunks/build/{edit-C9Z7oZeu.mjs → edit-CFR5g2Qf.mjs} +30 -18
  237. package/.output/server/chunks/build/edit-CFR5g2Qf.mjs.map +1 -0
  238. package/.output/server/chunks/build/{fetch-8kznMtBM.mjs → fetch-B4FwBOzu.mjs} +3 -3
  239. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +1 -0
  240. package/.output/server/chunks/build/{forgot-password-BqPF4Rxs.mjs → forgot-password-CC__1OnV.mjs} +17 -5
  241. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +1 -0
  242. package/.output/server/chunks/build/{help-content-DmFnuhNu.mjs → help-content-C876a9WD.mjs} +37 -8
  243. package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +1 -0
  244. package/.output/server/chunks/build/import-CZo3djDi.mjs +1021 -0
  245. package/.output/server/chunks/build/import-CZo3djDi.mjs.map +1 -0
  246. package/.output/server/chunks/build/{index-CULN3-en.mjs → index-CU2nZhAa.mjs} +113 -42
  247. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +1 -0
  248. package/.output/server/chunks/build/{index-DVUtBexc.mjs → index-D7fe97l3.mjs} +1305 -281
  249. package/.output/server/chunks/build/index-D7fe97l3.mjs.map +1 -0
  250. package/.output/server/chunks/build/{index-BR9hw6qk.mjs → index-Stqw0dEI.mjs} +50 -30
  251. package/.output/server/chunks/build/index-Stqw0dEI.mjs.map +1 -0
  252. package/.output/server/chunks/build/{index-BK9PTRpd.mjs → index-gCw_y4ZJ.mjs} +87 -70
  253. package/.output/server/chunks/build/{index-BK9PTRpd.mjs.map → index-gCw_y4ZJ.mjs.map} +1 -1
  254. package/.output/server/chunks/build/{index-Ba-Fifra.mjs → index-tR6owKzj.mjs} +18 -6
  255. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +1 -0
  256. package/.output/server/chunks/build/{isValueEqualOrExist-DBZjbD_3.mjs → isValueEqualOrExist-D2qw9YEr.mjs} +3 -3
  257. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs.map +1 -0
  258. package/.output/server/chunks/build/{login-D2XZDuek.mjs → login-Da4u1IlW.mjs} +19 -7
  259. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +1 -0
  260. package/.output/server/chunks/build/{mcp-_o6cMS6m.mjs → mcp-B3IUvRgD.mjs} +27 -21
  261. package/.output/server/chunks/build/mcp-B3IUvRgD.mjs.map +1 -0
  262. package/.output/server/chunks/build/{notifications-Dzm9c0u_.mjs → notifications-abDv0id8.mjs} +27 -21
  263. package/.output/server/chunks/build/notifications-abDv0id8.mjs.map +1 -0
  264. package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs +368 -0
  265. package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs.map +1 -0
  266. package/.output/server/chunks/build/{reset-password-gpFzIEDj.mjs → reset-password-BmrUS4ZD.mjs} +17 -5
  267. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +1 -0
  268. package/.output/server/chunks/build/server.mjs +238 -36
  269. package/.output/server/chunks/build/{settings-pNyPBXVa.mjs → settings-Du7YqF8i.mjs} +23 -10
  270. package/.output/server/chunks/build/settings-Du7YqF8i.mjs.map +1 -0
  271. package/.output/server/chunks/build/{settings-metadata-B0wo5R-W.mjs → settings-metadata-DrEqWcW-.mjs} +11 -2
  272. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +1 -0
  273. package/.output/server/chunks/build/{storage-XelzuyPy.mjs → storage-B4vzxd8G.mjs} +41 -31
  274. package/.output/server/chunks/build/storage-B4vzxd8G.mjs.map +1 -0
  275. package/.output/server/chunks/build/styles.mjs +1 -0
  276. package/.output/server/chunks/build/{tags-DrCQ7QSw.mjs → tags-DauTe_F-.mjs} +22 -10
  277. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +1 -0
  278. package/.output/server/chunks/build/{test-cases-pmOxi-AN.mjs → test-cases-DUvaO1He.mjs} +38 -24
  279. package/.output/server/chunks/build/test-cases-DUvaO1He.mjs.map +1 -0
  280. package/.output/server/chunks/build/{timeout-hygiene-CNs71Iah.mjs → timeout-hygiene-CbnSaVbK.mjs} +20 -8
  281. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +1 -0
  282. package/.output/server/chunks/build/{useAiStatus-ZO987RY7.mjs → useAiStatus-CWvIo32Q.mjs} +89 -89
  283. package/.output/server/chunks/build/useAiStatus-CWvIo32Q.mjs.map +1 -0
  284. package/.output/server/chunks/build/{useCopy-BQQKcwlq.mjs → useCopy-CeKWgHyT.mjs} +2 -2
  285. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +1 -0
  286. package/.output/server/chunks/build/{PageStateCard-Bwee6JTk.mjs → useCopyRich-BemRsKgv.mjs} +418 -39
  287. package/.output/server/chunks/build/useCopyRich-BemRsKgv.mjs.map +1 -0
  288. package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs +46 -0
  289. package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs.map +1 -0
  290. package/.output/server/chunks/build/{useFormControl-BLpq1s4O.mjs → useFormControl-CZ9So7iX.mjs} +2 -2
  291. package/.output/server/chunks/build/useFormControl-CZ9So7iX.mjs.map +1 -0
  292. package/.output/server/chunks/build/{useOpenInIde-kMZ7Jw5c.mjs → useOpenInIde-4GFf-kdi.mjs} +2 -2
  293. package/.output/server/chunks/build/useOpenInIde-4GFf-kdi.mjs.map +1 -0
  294. package/.output/server/chunks/build/{useSettingsNav-NjI2seBy.mjs → useSettingsNav-C3O866KC.mjs} +6 -6
  295. package/.output/server/chunks/build/useSettingsNav-C3O866KC.mjs.map +1 -0
  296. package/.output/server/chunks/build/{useTreeViewCookie-DVYpxW-p.mjs → useTreeViewCookie-CQjQdTkH.mjs} +2 -2
  297. package/.output/server/chunks/build/useTreeViewCookie-CQjQdTkH.mjs.map +1 -0
  298. package/.output/server/chunks/build/{users-NmAUZs3i.mjs → users-CTUqXyGh.mjs} +22 -10
  299. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +1 -0
  300. package/.output/server/chunks/build/{virtualizer-ZaqK4guJ.mjs → virtualizer-Cd1hhlxC.mjs} +5 -5
  301. package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs.map +1 -0
  302. package/.output/server/chunks/build/{wasted-time-CguAF9zc.mjs → wasted-time-lYkx5YO4.mjs} +26 -14
  303. package/.output/server/chunks/build/wasted-time-lYkx5YO4.mjs.map +1 -0
  304. package/.output/server/chunks/nitro/nitro.mjs +4914 -1102
  305. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  306. package/.output/server/chunks/routes/__piwi/session.get.mjs +13 -1
  307. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +12 -0
  309. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/admin/stats.get.mjs +12 -0
  311. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/ai/status.get.mjs +12 -0
  313. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +12 -0
  315. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +12 -0
  317. package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +12 -0
  319. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/auth/login.post.mjs +12 -0
  321. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/auth/logout.post.mjs +12 -0
  323. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/auth/me.get.mjs +12 -0
  325. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +12 -0
  327. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +12 -0
  329. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +12 -0
  331. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +12 -0
  333. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +12 -0
  335. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/auth/setup.get.mjs +12 -0
  337. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/auth/setup.post.mjs +12 -0
  339. package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +12 -0
  341. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +12 -0
  343. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +12 -0
  345. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +12 -0
  347. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +12 -0
  349. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +12 -0
  351. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +12 -0
  353. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +12 -0
  355. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +12 -0
  357. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +12 -0
  359. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +24 -1
  361. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +13 -1
  363. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +13 -1
  365. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +13 -1
  367. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +13 -1
  369. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +64 -0
  371. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -0
  372. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +13 -1
  373. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +56 -0
  375. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -0
  376. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +13 -1
  377. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +12 -0
  379. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +13 -1
  381. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +13 -32
  383. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/health.get.mjs +13 -1
  385. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/index.get.mjs +12 -0
  387. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/index.get2.mjs +13 -1
  389. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/index.get3.mjs +13 -1
  391. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/index.get4.mjs +13 -1
  393. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/index.get5.mjs +12 -0
  395. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/index.post.mjs +12 -0
  397. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/index.post2.mjs +13 -1
  399. package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/index.post3.mjs +13 -1
  401. package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/index.post4.mjs +13 -1
  403. package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/index.post5.mjs +13 -1
  405. package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/index.post6.mjs +12 -0
  407. package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +13 -1
  409. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +13 -1
  411. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +13 -1
  413. package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +13 -1
  415. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +13 -1
  417. package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +13 -1
  419. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +13 -1
  421. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +13 -1
  423. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +13 -1
  425. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +22 -2
  427. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +13 -1
  429. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +13 -1
  431. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +13 -1
  433. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +13 -1
  435. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +13 -1
  437. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +13 -1
  439. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +58 -0
  441. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -0
  442. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +57 -0
  443. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -0
  444. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +72 -0
  445. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -0
  446. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +13 -1
  447. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +13 -1
  449. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +13 -1
  451. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +13 -1
  453. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +13 -1
  455. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +13 -1
  457. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +13 -1
  459. package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/projects/menu.get.mjs +13 -1
  461. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/projects/overview.get.mjs +13 -1
  463. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/projects.get.mjs +13 -1
  465. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/search.get.mjs +13 -1
  467. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +13 -1
  469. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +13 -1
  471. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  472. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +12 -0
  473. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  474. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +13 -1
  475. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +13 -1
  477. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/settings/ai.get.mjs +13 -1
  479. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/settings/ai.put.mjs +13 -1
  481. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +57 -0
  483. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -0
  484. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +63 -0
  485. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -0
  486. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +12 -0
  487. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +13 -1
  489. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +13 -1
  491. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +13 -1
  493. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +13 -1
  495. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +13 -1
  497. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/stream.get.mjs +13 -1
  499. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +13 -1
  501. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +13 -1
  503. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +13 -1
  505. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +13 -1
  507. package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +13 -1
  509. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +13 -1
  511. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +13 -1
  513. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +13 -1
  515. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +25 -3
  517. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +13 -1
  519. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +60 -0
  521. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -0
  522. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +13 -1
  523. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +13 -1
  525. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +13 -1
  527. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +13 -1
  529. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +13 -1
  531. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +13 -1
  533. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +13 -1
  535. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +13 -1
  537. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +13 -1
  539. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +13 -1
  541. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +13 -1
  543. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +13 -1
  545. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +13 -1
  547. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +13 -1
  549. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +15 -1
  551. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +196 -0
  553. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -0
  554. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +13 -1
  555. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +13 -1
  557. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +13 -1
  559. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +13 -1
  561. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +13 -1
  563. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  564. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +13 -1
  565. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +13 -1
  567. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +13 -1
  569. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +13 -1
  571. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +78 -0
  573. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -0
  574. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +201 -0
  575. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -0
  576. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +13 -1
  577. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +13 -1
  579. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  580. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +13 -1
  581. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  582. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +32 -15
  583. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  584. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +21 -6
  585. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +154 -3
  587. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  588. package/.output/server/chunks/routes/api/traces/check.post.mjs +13 -1
  589. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  590. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +12 -0
  591. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  592. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +12 -0
  593. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  594. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +13 -1
  595. package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
  596. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +13 -1
  597. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  598. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +13 -1
  599. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  600. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +13 -1
  601. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
  602. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +12 -0
  603. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  604. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +12 -0
  605. package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
  606. package/.output/server/chunks/routes/api/version.get.mjs +13 -1
  607. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  608. package/.output/server/chunks/routes/mcp.post.mjs +13 -1
  609. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  610. package/.output/server/chunks/routes/renderer.mjs +1 -1
  611. package/.output/server/chunks/tasks/sweep.mjs +12 -0
  612. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  613. package/.output/server/chunks/tasks/sweep2.mjs +12 -0
  614. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  615. package/.output/server/database/migrations/0039_remarkable_jean_grey.sql +2 -0
  616. package/.output/server/database/migrations/0040_organic_phalanx.sql +8 -0
  617. package/.output/server/database/migrations/0041_tense_gravity.sql +5 -0
  618. package/.output/server/database/migrations/0042_burly_hemingway.sql +19 -0
  619. package/.output/server/database/migrations/meta/0039_snapshot.json +3403 -0
  620. package/.output/server/database/migrations/meta/0040_snapshot.json +3457 -0
  621. package/.output/server/database/migrations/meta/0041_snapshot.json +3492 -0
  622. package/.output/server/database/migrations/meta/0042_snapshot.json +3618 -0
  623. package/.output/server/database/migrations/meta/_journal.json +28 -0
  624. package/.output/server/database/migrations-pg/0040_lazy_layla_miller.sql +2 -0
  625. package/.output/server/database/migrations-pg/0041_light_screwball.sql +8 -0
  626. package/.output/server/database/migrations-pg/0042_serious_layla_miller.sql +5 -0
  627. package/.output/server/database/migrations-pg/0043_wonderful_mordo.sql +19 -0
  628. package/.output/server/database/migrations-pg/meta/0040_snapshot.json +4060 -0
  629. package/.output/server/database/migrations-pg/meta/0041_snapshot.json +4123 -0
  630. package/.output/server/database/migrations-pg/meta/0042_snapshot.json +4153 -0
  631. package/.output/server/database/migrations-pg/meta/0043_snapshot.json +4308 -0
  632. package/.output/server/database/migrations-pg/meta/_journal.json +28 -0
  633. package/.output/server/index.mjs +13 -1
  634. package/.output/server/index.mjs.map +1 -1
  635. package/.output/server/node_modules/fflate/esm/index.mjs +2710 -0
  636. package/.output/server/node_modules/fflate/package.json +128 -0
  637. package/.output/server/node_modules/highlight.js/es/languages/yaml.js +213 -0
  638. package/.output/server/node_modules/marked/lib/marked.esm.js +72 -0
  639. package/.output/server/node_modules/marked/package.json +103 -0
  640. package/.output/server/package.json +3 -1
  641. package/package.json +2 -2
  642. package/.output/public/_nuxt/36cXPVrY.js +0 -26
  643. package/.output/public/_nuxt/87SGk1nu.js +0 -1
  644. package/.output/public/_nuxt/B6rt3IcG.js +0 -1
  645. package/.output/public/_nuxt/BAaSmp8J.js +0 -1
  646. package/.output/public/_nuxt/BBnX5xw4.js +0 -2
  647. package/.output/public/_nuxt/BCArQk0c.js +0 -1
  648. package/.output/public/_nuxt/BFjmLXYo.js +0 -8
  649. package/.output/public/_nuxt/BJltXwHg.js +0 -1
  650. package/.output/public/_nuxt/BUMZHDRC.js +0 -2
  651. package/.output/public/_nuxt/BdHdHyop.js +0 -34
  652. package/.output/public/_nuxt/BiX7c2qU.js +0 -1
  653. package/.output/public/_nuxt/C11lmBd4.js +0 -4
  654. package/.output/public/_nuxt/C4AfzZER.js +0 -47
  655. package/.output/public/_nuxt/C7ZVzS0K.js +0 -1
  656. package/.output/public/_nuxt/C8cz5feG.js +0 -1
  657. package/.output/public/_nuxt/C9EpbPNU.js +0 -1
  658. package/.output/public/_nuxt/C9ahP7km.js +0 -1
  659. package/.output/public/_nuxt/CBEM3L1q.js +0 -4
  660. package/.output/public/_nuxt/CCsl9MOZ.js +0 -1
  661. package/.output/public/_nuxt/CCw3Tx4S.js +0 -1
  662. package/.output/public/_nuxt/CGq9qR-0.js +0 -1
  663. package/.output/public/_nuxt/CLdGRzLL.js +0 -1
  664. package/.output/public/_nuxt/CTgM5Fke.js +0 -2
  665. package/.output/public/_nuxt/CU3W9YrI.js +0 -1
  666. package/.output/public/_nuxt/CYIR2GbL.js +0 -1
  667. package/.output/public/_nuxt/Ccit_CX1.js +0 -1
  668. package/.output/public/_nuxt/CiPH-swI.js +0 -1
  669. package/.output/public/_nuxt/ClVRQpP_.js +0 -1
  670. package/.output/public/_nuxt/CmbjAoQu.js +0 -1
  671. package/.output/public/_nuxt/Cx65B3c3.js +0 -1
  672. package/.output/public/_nuxt/D1ttGJfs.js +0 -5
  673. package/.output/public/_nuxt/D3SYPlEB.js +0 -114
  674. package/.output/public/_nuxt/DB3ljns7.js +0 -1
  675. package/.output/public/_nuxt/DC51KKt4.js +0 -1
  676. package/.output/public/_nuxt/DaewB_zT.js +0 -1
  677. package/.output/public/_nuxt/DcfRfTaA.js +0 -34
  678. package/.output/public/_nuxt/Dm1_3W9g.js +0 -1
  679. package/.output/public/_nuxt/DraETso1.js +0 -1
  680. package/.output/public/_nuxt/Dy4TloG3.js +0 -1
  681. package/.output/public/_nuxt/EltzgiyS.js +0 -1
  682. package/.output/public/_nuxt/HTQtMbWb.js +0 -1
  683. package/.output/public/_nuxt/KYucVFu7.js +0 -1
  684. package/.output/public/_nuxt/TBDx0s9p.js +0 -3
  685. package/.output/public/_nuxt/Tt5LX5Y-.js +0 -1
  686. package/.output/public/_nuxt/builds/meta/2f517ae9-c342-457e-b4c5-6301728179f5.json +0 -1
  687. package/.output/public/_nuxt/entry.ChQMshd4.css +0 -1
  688. package/.output/public/_nuxt/l0QnzFNM.js +0 -1
  689. package/.output/public/_nuxt/oFIS9u6t.js +0 -3
  690. package/.output/public/_nuxt/oWY3I9uX.js +0 -1
  691. package/.output/public/_nuxt/q0DPzLKN.js +0 -2
  692. package/.output/public/_nuxt/r3SBLxtE.js +0 -1
  693. package/.output/public/_nuxt/riEUDnED.js +0 -1
  694. package/.output/public/_nuxt/uaqMzXqE.js +0 -5
  695. package/.output/public/_nuxt/wgcgHmRR.js +0 -1
  696. package/.output/public/sw.js +0 -1
  697. package/.output/public/workbox-2fbc6a65.js +0 -1
  698. package/.output/server/chunks/build/Alert-Bp1Wz_sq.mjs.map +0 -1
  699. package/.output/server/chunks/build/Breadcrumb-C9ZPTLym.mjs.map +0 -1
  700. package/.output/server/chunks/build/BreadcrumbNav-C3y42Vun.mjs.map +0 -1
  701. package/.output/server/chunks/build/BrowserBadge-DNCp9pF-.mjs.map +0 -1
  702. package/.output/server/chunks/build/ChartCard-Fr557IbV.mjs.map +0 -1
  703. package/.output/server/chunks/build/Checkbox-cVOSIY93.mjs.map +0 -1
  704. package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs.map +0 -1
  705. package/.output/server/chunks/build/CodeBlock-BGwNmJ8J.mjs.map +0 -1
  706. package/.output/server/chunks/build/DashboardNavbar-Bdp-OwTN.mjs.map +0 -1
  707. package/.output/server/chunks/build/DashboardSidebarToggle-Ji6ADuqF.mjs.map +0 -1
  708. package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs.map +0 -1
  709. package/.output/server/chunks/build/DiagnosisPanel-DV1xwGu4.mjs.map +0 -1
  710. package/.output/server/chunks/build/EmptyState-DV3oT_xz.mjs.map +0 -1
  711. package/.output/server/chunks/build/EntityLinks-DeOP13Kr.mjs.map +0 -1
  712. package/.output/server/chunks/build/EnvManagedBadge-Qpn58Nmr.mjs.map +0 -1
  713. package/.output/server/chunks/build/FormField-B-GSn_VR.mjs.map +0 -1
  714. package/.output/server/chunks/build/HelpHint-YEMWtKu1.mjs.map +0 -1
  715. package/.output/server/chunks/build/Label-DBvbHd3A.mjs.map +0 -1
  716. package/.output/server/chunks/build/MiniRunBars-C3HG-EYm.mjs.map +0 -1
  717. package/.output/server/chunks/build/Modal-CfA78Hm1.mjs.map +0 -1
  718. package/.output/server/chunks/build/PageStateCard-Bwee6JTk.mjs.map +0 -1
  719. package/.output/server/chunks/build/ProjectTestCasesTable-9Ia825h8.mjs.map +0 -1
  720. package/.output/server/chunks/build/RovingFocusItem-CxhHdNGo.mjs.map +0 -1
  721. package/.output/server/chunks/build/RunReports-BpJqLHY9.mjs.map +0 -1
  722. package/.output/server/chunks/build/RunStatusBadge-BhmJ_RKM.mjs.map +0 -1
  723. package/.output/server/chunks/build/SectionCard-COd9TuDq.mjs.map +0 -1
  724. package/.output/server/chunks/build/Select-ppPz926C.mjs.map +0 -1
  725. package/.output/server/chunks/build/Separator-CxZdx8kw.mjs.map +0 -1
  726. package/.output/server/chunks/build/SettingsField-DDD4oqys.mjs.map +0 -1
  727. package/.output/server/chunks/build/Slideover-B95Rj237.mjs.map +0 -1
  728. package/.output/server/chunks/build/Switch-xQQ3_ME1.mjs.map +0 -1
  729. package/.output/server/chunks/build/Table-CPhhVzDv.mjs.map +0 -1
  730. package/.output/server/chunks/build/Tabs-BV9XqjoO.mjs.map +0 -1
  731. package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs +0 -47
  732. package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs.map +0 -1
  733. package/.output/server/chunks/build/TestCaseHistoryChart-DMb-xSJa.mjs.map +0 -1
  734. package/.output/server/chunks/build/TestStatusBar-CEzt76wk.mjs.map +0 -1
  735. package/.output/server/chunks/build/Textarea-DrrqQUVG.mjs.map +0 -1
  736. package/.output/server/chunks/build/Tooltip-7vwuDPrZ.mjs.map +0 -1
  737. package/.output/server/chunks/build/VisuallyHiddenInput-C9eJVpPW.mjs.map +0 -1
  738. package/.output/server/chunks/build/_id_-B2yirIuA.mjs.map +0 -1
  739. package/.output/server/chunks/build/_id_-CE0Gso6i.mjs.map +0 -1
  740. package/.output/server/chunks/build/_id_-bWcP2xFl.mjs.map +0 -1
  741. package/.output/server/chunks/build/about-CoJjvUwM.mjs.map +0 -1
  742. package/.output/server/chunks/build/account-Cn-eZqXM.mjs.map +0 -1
  743. package/.output/server/chunks/build/db.client-aHcD0wyX.mjs.map +0 -1
  744. package/.output/server/chunks/build/default-BSzdkM_L.mjs.map +0 -1
  745. package/.output/server/chunks/build/edit-C9Z7oZeu.mjs.map +0 -1
  746. package/.output/server/chunks/build/fetch-8kznMtBM.mjs.map +0 -1
  747. package/.output/server/chunks/build/forgot-password-BqPF4Rxs.mjs.map +0 -1
  748. package/.output/server/chunks/build/help-content-DmFnuhNu.mjs.map +0 -1
  749. package/.output/server/chunks/build/index-BR9hw6qk.mjs.map +0 -1
  750. package/.output/server/chunks/build/index-Ba-Fifra.mjs.map +0 -1
  751. package/.output/server/chunks/build/index-CULN3-en.mjs.map +0 -1
  752. package/.output/server/chunks/build/index-DVUtBexc.mjs.map +0 -1
  753. package/.output/server/chunks/build/isValueEqualOrExist-DBZjbD_3.mjs.map +0 -1
  754. package/.output/server/chunks/build/login-D2XZDuek.mjs.map +0 -1
  755. package/.output/server/chunks/build/mcp-_o6cMS6m.mjs.map +0 -1
  756. package/.output/server/chunks/build/notifications-Dzm9c0u_.mjs.map +0 -1
  757. package/.output/server/chunks/build/reset-password-gpFzIEDj.mjs.map +0 -1
  758. package/.output/server/chunks/build/settings-metadata-B0wo5R-W.mjs.map +0 -1
  759. package/.output/server/chunks/build/settings-pNyPBXVa.mjs.map +0 -1
  760. package/.output/server/chunks/build/storage-XelzuyPy.mjs.map +0 -1
  761. package/.output/server/chunks/build/tags-DrCQ7QSw.mjs.map +0 -1
  762. package/.output/server/chunks/build/test-cases-pmOxi-AN.mjs.map +0 -1
  763. package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs.map +0 -1
  764. package/.output/server/chunks/build/useAiStatus-ZO987RY7.mjs.map +0 -1
  765. package/.output/server/chunks/build/useCopy-BQQKcwlq.mjs.map +0 -1
  766. package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs.map +0 -1
  767. package/.output/server/chunks/build/useOpenInIde-kMZ7Jw5c.mjs.map +0 -1
  768. package/.output/server/chunks/build/useSettingsNav-NjI2seBy.mjs.map +0 -1
  769. package/.output/server/chunks/build/useTreeViewCookie-DVYpxW-p.mjs.map +0 -1
  770. package/.output/server/chunks/build/users-NmAUZs3i.mjs.map +0 -1
  771. package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs.map +0 -1
  772. package/.output/server/chunks/build/wasted-time-CguAF9zc.mjs.map +0 -1
  773. /package/.output/public/_nuxt/{PageStateCard.BrM5HWjY.css → useCopyRich.BrM5HWjY.css} +0 -0
@@ -1,44 +1,48 @@
1
- import { _ as _sfc_main$1$1, a as _sfc_main$j } from './DashboardNavbar-Bdp-OwTN.mjs';
2
- import { _ as _sfc_main$1$2 } from './Breadcrumb-C9ZPTLym.mjs';
3
- import { _ as __nuxt_component_3 } from './BreadcrumbNav-C3y42Vun.mjs';
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$l } from './DashboardNavbar-BHmMSPX7.mjs';
2
+ import { _ as _sfc_main$1$2 } from './Breadcrumb-Ak2Lg3oM.mjs';
3
+ import { _ as __nuxt_component_3$1 } from './BreadcrumbNav-DO7I_z-n.mjs';
4
4
  import { _ as __nuxt_component_4$1 } from './NavbarActions-_YjrSUat.mjs';
5
- import { u as useRoute, k as useRouter, l as useHead, j as useToast, s as useAuth, n as _sfc_main$7$1, m as _sfc_main$k, o as _sfc_main$p, _ as _sfc_main$d$1, v as navigateTo, w as __nuxt_component_7$1, r as useRuntimeConfig, p as __nuxt_component_12, q as _sfc_main$8$1 } from './server.mjs';
6
- import { _ as _sfc_main$m } from './Separator-CxZdx8kw.mjs';
7
- import { _ as __nuxt_component_2, a as __nuxt_component_9 } from './HelpHint-YEMWtKu1.mjs';
8
- import { _ as _sfc_main$n } from './FormField-B-GSn_VR.mjs';
9
- import { _ as _sfc_main$b } from './Select-ppPz926C.mjs';
5
+ import { u as useRoute, k as useRouter, l as useHead, j as useToast, w as useAuth, n as _sfc_main$7$1, m as _sfc_main$k, o as _sfc_main$p, _ as _sfc_main$d$1, x as navigateTo, y as __nuxt_component_7$1, r as useRuntimeConfig, s as __nuxt_component_12, v as _sfc_main$8$1 } from './server.mjs';
6
+ import { _ as _sfc_main$n } from './Separator-CR4WcEKD.mjs';
7
+ import { _ as __nuxt_component_2, a as __nuxt_component_9$1 } from './HelpHint-DrcIv-Oj.mjs';
8
+ import { _ as _sfc_main$o } from './FormField-B0HKsdMd.mjs';
9
+ import { _ as _sfc_main$c } from './Select-CUqj50wi.mjs';
10
10
  import { computed, effectScope, defineComponent, withAsyncContext, ref, watch, withCtx, unref, isRef, createVNode, createTextVNode, toDisplayString, openBlock, createBlock, Fragment, renderList, createCommentVNode, withModifiers, mergeProps, withDirectives, vModelCheckbox, reactive, useSSRContext } from 'vue';
11
11
  import { ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrIncludeBooleanAttr, ssrRenderAttrs, ssrRenderStyle, ssrLooseContain } from 'vue/server-renderer';
12
- import { bp as NOTIFICATION_EVENTS } from '../nitro/nitro.mjs';
13
- import { c as useCookie } from './DashboardSidebarToggle-Ji6ADuqF.mjs';
14
- import { u as useFetch } from './fetch-8kznMtBM.mjs';
15
- import { _ as __nuxt_component_4 } from './TagBadge-BDcvvGxw.mjs';
16
- import { _ as _sfc_main$c } from './Tabs-BV9XqjoO.mjs';
17
- import { _ as __nuxt_component_0 } from './ChartCard-Fr557IbV.mjs';
12
+ import { bL as NOTIFICATION_EVENTS } from '../nitro/nitro.mjs';
13
+ import { c as useCookie } from './DashboardSidebarToggle-DCTnHiIv.mjs';
14
+ import { u as useFetch } from './fetch-B4FwBOzu.mjs';
15
+ import { _ as __nuxt_component_4 } from './TagBadge-DwzoFCBb.mjs';
16
+ import { _ as _sfc_main$d } from './Tabs-Bbsg9wag.mjs';
17
+ import { _ as __nuxt_component_0 } from './ChartCard-Y1UKwMsf.mjs';
18
18
  import { _ as __nuxt_component_0$1 } from './ChartMarkerTooltip-0DcMfD_6.mjs';
19
- import { _ as __nuxt_component_8 } from './EmptyState-DV3oT_xz.mjs';
20
- import { u as useChartMarkers, _ as __nuxt_component_1$2 } from './useChartMarkers-C89e_VLV.mjs';
19
+ import { _ as __nuxt_component_9 } from './EmptyState-Dtlab7S9.mjs';
20
+ import { u as useChartMarkers, _ as __nuxt_component_1$3 } from './useChartMarkers-C89e_VLV.mjs';
21
21
  import { VisXYContainer, VisLine, VisAxis, VisArea } from '@unovis/vue';
22
22
  import { CurveType } from '@unovis/ts';
23
- import { _ as _sfc_main$d } from './Card-BQP_oZkQ.mjs';
24
- import { _ as _sfc_main$h } from './Switch-xQQ3_ME1.mjs';
25
- import { _ as _sfc_main$g } from './Table-CPhhVzDv.mjs';
26
- import { _ as __nuxt_component_13$1 } from './RunStatusBadge-BhmJ_RKM.mjs';
27
- import { _ as _sfc_main$i } from './Tooltip-7vwuDPrZ.mjs';
28
- import { _ as __nuxt_component_2$1 } from './BrowserBadge-DNCp9pF-.mjs';
29
- import { _ as __nuxt_component_13 } from './TestStatusBar-CEzt76wk.mjs';
30
- import { _ as __nuxt_component_14 } from './RunReports-BpJqLHY9.mjs';
31
- import { _ as __nuxt_component_11 } from './SectionCard-COd9TuDq.mjs';
32
- import { _ as __nuxt_component_3$1 } from './TableScroller-DMcdCVrH.mjs';
33
- import { a as formatDuration, j as getStatusColor, p as prettyDateFormat, u as createSortHeader, f as formatRelativeTime, h as clusterStatusColor, g as clusterErrorTypeColor, e as errorMessage } from './index-CULN3-en.mjs';
34
- import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-B92wosXu.mjs';
23
+ import { _ as _sfc_main$e } from './Card-BQP_oZkQ.mjs';
24
+ import { _ as _sfc_main$i } from './Switch-CgUioOYB.mjs';
25
+ import { _ as _sfc_main$h } from './Table-BRk04Hd2.mjs';
26
+ import { _ as __nuxt_component_13 } from './RunStatusBadge-FfGb6bkW.mjs';
27
+ import { _ as _sfc_main$j } from './Tooltip-BOazooWP.mjs';
28
+ import { _ as __nuxt_component_3 } from './BrowserBadge-D33lqUcj.mjs';
29
+ import { _ as __nuxt_component_14$1 } from './TestStatusBar-j6h2Jp6A.mjs';
30
+ import { _ as __nuxt_component_14 } from './DurationValue-D20oGbnc.mjs';
31
+ import { _ as __nuxt_component_15 } from './RunReports-DFLv51TX.mjs';
32
+ import { _ as __nuxt_component_11 } from './SectionCard-CN-v0FZ_.mjs';
33
+ import { _ as __nuxt_component_3$2 } from './TableScroller-DMcdCVrH.mjs';
34
+ import { v as getStatusColor, p as prettyDateFormat, w as createSortHeader, f as formatRelativeTime, b as toTestPriority, j as clusterStatusColor, i as clusterErrorTypeColor, e as errorMessage, h as fixVerificationBadge } from './index-CU2nZhAa.mjs';
35
+ import { _ as __nuxt_component_2$2 } from './TestMetaBadges-D5_yUtIP.mjs';
36
+ import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-C4MXA8ya.mjs';
35
37
  import { _ as __nuxt_component_1 } from './LoadingState-C3pBSuOO.mjs';
36
- import { _ as _sfc_main$f } from './SelectMenu-799c_Ils.mjs';
37
- import { _ as __nuxt_component_34 } from './ProjectTestCasesTable-9Ia825h8.mjs';
38
- import { _ as _sfc_main$e } from './Checkbox-cVOSIY93.mjs';
38
+ import { _ as _sfc_main$g } from './SelectMenu-Db7osY7J.mjs';
39
+ import { _ as __nuxt_component_35 } from './ProjectTestCasesTable-CxfQ5wtN.mjs';
40
+ import { _ as __nuxt_component_5$2 } from './ErrorState-CktYyeEZ.mjs';
41
+ import { _ as __nuxt_component_1$2, a as __nuxt_component_2$1 } from './StatTile-D61Vzo6e.mjs';
42
+ import { _ as _sfc_main$f } from './Checkbox-DvUBGagc.mjs';
39
43
  import { _ as __nuxt_component_5$1 } from './MarkerBadge-D7meXy4u.mjs';
40
44
  import { g as getMarkerCategory, a as MARKER_CATEGORIES, D as DEFAULT_MARKER_CATEGORY } from '../_/marker-categories.mjs';
41
- import { _ as _sfc_main$l } from './Modal-CfA78Hm1.mjs';
45
+ import { _ as _sfc_main$m } from './Modal-Ck2XLt8d.mjs';
42
46
  import { u as useRunComparison } from './useRunComparison-CiMBLpe2.mjs';
43
47
  import 'vue-router';
44
48
  import '@iconify/vue';
@@ -60,6 +64,18 @@ import 'path';
60
64
  import 'fs/promises';
61
65
  import 'zlib';
62
66
  import 'util';
67
+ import 'marked';
68
+ import 'highlight.js/lib/core';
69
+ import 'highlight.js/lib/languages/bash';
70
+ import 'highlight.js/lib/languages/css';
71
+ import 'highlight.js/lib/languages/diff';
72
+ import 'highlight.js/lib/languages/javascript';
73
+ import 'highlight.js/lib/languages/json';
74
+ import 'highlight.js/lib/languages/python';
75
+ import 'highlight.js/lib/languages/typescript';
76
+ import 'highlight.js/lib/languages/xml';
77
+ import 'highlight.js/lib/languages/yaml';
78
+ import 'fflate';
63
79
  import 'pixelmatch';
64
80
  import 'sharp';
65
81
  import '@anthropic-ai/sdk';
@@ -83,25 +99,24 @@ import 'node:zlib';
83
99
  import 'consola';
84
100
  import 'node:url';
85
101
  import '@iconify/utils';
86
- import './help-content-DmFnuhNu.mjs';
87
- import './useCopy-BQQKcwlq.mjs';
88
- import './Label-DBvbHd3A.mjs';
89
- import './useFormControl-BLpq1s4O.mjs';
102
+ import './help-content-C876a9WD.mjs';
103
+ import './useCopy-CeKWgHyT.mjs';
104
+ import './Label-DYDR1Oeh.mjs';
105
+ import './useFormControl-CZ9So7iX.mjs';
90
106
  import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
91
107
  import '@vue/shared';
92
- import './RovingFocusItem-CxhHdNGo.mjs';
108
+ import './RovingFocusItem-BJSzTBjy.mjs';
93
109
  import './useForwardScopeId-D0ameaSU.mjs';
94
- import './VisuallyHiddenInput-C9eJVpPW.mjs';
110
+ import './VisuallyHiddenInput-D6kBJxVd.mjs';
95
111
  import '@tanstack/vue-table';
96
112
  import '@tanstack/vue-virtual';
97
113
  import 'date-fns';
98
- import './useOpenInIde-kMZ7Jw5c.mjs';
99
- import './virtualizer-ZaqK4guJ.mjs';
114
+ import './useOpenInIde-4GFf-kdi.mjs';
115
+ import './virtualizer-Cd1hhlxC.mjs';
100
116
  import './FilterToolbar-BwXy8xSk.mjs';
101
- import './ErrorState-CktYyeEZ.mjs';
102
- import './Alert-Bp1Wz_sq.mjs';
103
- import './useTreeViewCookie-DVYpxW-p.mjs';
104
- import './isValueEqualOrExist-DBZjbD_3.mjs';
117
+ import './Alert-C4xq8lao.mjs';
118
+ import './useTreeViewCookie-CQjQdTkH.mjs';
119
+ import './isValueEqualOrExist-D2qw9YEr.mjs';
105
120
 
106
121
  const COOKIE_KEY = "piwi-browser-notify";
107
122
  function defaultStored() {
@@ -298,7 +313,7 @@ function useDemoNotifications() {
298
313
  }
299
314
  return { scheduleFor, cancelFor };
300
315
  }
301
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
316
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
302
317
  __name: "SubscribeBell",
303
318
  __ssrInlineRender: true,
304
319
  props: {
@@ -467,12 +482,12 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
467
482
  return (_ctx, _push, _parent, _attrs) => {
468
483
  const _component_UPopover = _sfc_main$8$1;
469
484
  const _component_UButton = _sfc_main$k;
470
- const _component_USeparator = _sfc_main$m;
485
+ const _component_USeparator = _sfc_main$n;
471
486
  const _component_HelpHint = __nuxt_component_2;
472
487
  const _component_UIcon = _sfc_main$p;
473
488
  const _component_NuxtLink = __nuxt_component_12;
474
- const _component_UFormField = _sfc_main$n;
475
- const _component_USelect = _sfc_main$b;
489
+ const _component_UFormField = _sfc_main$o;
490
+ const _component_USelect = _sfc_main$c;
476
491
  if (unref(showComponent)) {
477
492
  _push(ssrRenderComponent(_component_UPopover, mergeProps({
478
493
  open: unref(open),
@@ -1160,14 +1175,14 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1160
1175
  };
1161
1176
  }
1162
1177
  });
1163
- const _sfc_setup$a = _sfc_main$a.setup;
1164
- _sfc_main$a.setup = (props, ctx) => {
1178
+ const _sfc_setup$b = _sfc_main$b.setup;
1179
+ _sfc_main$b.setup = (props, ctx) => {
1165
1180
  const ssrContext = useSSRContext();
1166
1181
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/SubscribeBell.vue");
1167
- return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
1182
+ return _sfc_setup$b ? _sfc_setup$b(props, ctx) : void 0;
1168
1183
  };
1169
- const __nuxt_component_5 = Object.assign(_sfc_main$a, { __name: "SubscribeBell" });
1170
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1184
+ const __nuxt_component_5 = Object.assign(_sfc_main$b, { __name: "SubscribeBell" });
1185
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1171
1186
  __name: "TestRunsChart",
1172
1187
  __ssrInlineRender: true,
1173
1188
  props: {
@@ -1227,8 +1242,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1227
1242
  ];
1228
1243
  return (_ctx, _push, _parent, _attrs) => {
1229
1244
  const _component_ChartMarkerTooltip = __nuxt_component_0$1;
1230
- const _component_EmptyState = __nuxt_component_8;
1231
- const _component_ChartLegend = __nuxt_component_1$2;
1245
+ const _component_EmptyState = __nuxt_component_9;
1246
+ const _component_ChartLegend = __nuxt_component_1$3;
1232
1247
  _push(`<div${ssrRenderAttrs(mergeProps({ class: "w-full relative" }, _attrs))}>`);
1233
1248
  if (unref(chartData).length > 0) {
1234
1249
  _push(`<div>`);
@@ -1316,14 +1331,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1316
1331
  };
1317
1332
  }
1318
1333
  });
1319
- const _sfc_setup$9 = _sfc_main$9.setup;
1320
- _sfc_main$9.setup = (props, ctx) => {
1334
+ const _sfc_setup$a = _sfc_main$a.setup;
1335
+ _sfc_main$a.setup = (props, ctx) => {
1321
1336
  const ssrContext = useSSRContext();
1322
1337
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/TestRunsChart.vue");
1323
- return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
1338
+ return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
1324
1339
  };
1325
- const __nuxt_component_10 = Object.assign(_sfc_main$9, { __name: "TestRunsChart" });
1326
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1340
+ const __nuxt_component_10 = Object.assign(_sfc_main$a, { __name: "TestRunsChart" });
1341
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1327
1342
  __name: "ClusterMergeSuggestions",
1328
1343
  __ssrInlineRender: true,
1329
1344
  props: {
@@ -1536,14 +1551,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1536
1551
  };
1537
1552
  }
1538
1553
  });
1539
- const _sfc_setup$8 = _sfc_main$8.setup;
1540
- _sfc_main$8.setup = (props, ctx) => {
1554
+ const _sfc_setup$9 = _sfc_main$9.setup;
1555
+ _sfc_main$9.setup = (props, ctx) => {
1541
1556
  const ssrContext = useSSRContext();
1542
1557
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/ClusterMergeSuggestions.vue");
1543
- return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
1558
+ return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
1544
1559
  };
1545
- const __nuxt_component_24 = Object.assign(_sfc_main$8, { __name: "ClusterMergeSuggestions" });
1546
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1560
+ const __nuxt_component_26 = Object.assign(_sfc_main$9, { __name: "ClusterMergeSuggestions" });
1561
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1547
1562
  __name: "FailureClustersList",
1548
1563
  __ssrInlineRender: true,
1549
1564
  props: {
@@ -1564,6 +1579,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1564
1579
  "$f7pDU1t-lL"
1565
1580
  /* nuxt-injected */
1566
1581
  )), __temp = await __temp, __restore(), __temp);
1582
+ const resolutionOf = (cluster) => fixVerificationBadge(cluster.fixVerification);
1567
1583
  const columns = [
1568
1584
  { accessorKey: "signature", header: createSortHeader("Signature") },
1569
1585
  { accessorKey: "errorType", header: createSortHeader("Type") },
@@ -1575,16 +1591,17 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1575
1591
  { id: "actions", header: "Actions" }
1576
1592
  ];
1577
1593
  return (_ctx, _push, _parent, _attrs) => {
1578
- const _component_UCard = _sfc_main$d;
1594
+ const _component_UCard = _sfc_main$e;
1579
1595
  const _component_HelpHint = __nuxt_component_2;
1580
- const _component_USelect = _sfc_main$b;
1581
- const _component_TableScroller = __nuxt_component_3$1;
1582
- const _component_UTable = _sfc_main$g;
1596
+ const _component_USelect = _sfc_main$c;
1597
+ const _component_TableScroller = __nuxt_component_3$2;
1598
+ const _component_UTable = _sfc_main$h;
1583
1599
  const _component_NuxtLink = __nuxt_component_12;
1584
1600
  const _component_UBadge = _sfc_main$7$1;
1601
+ const _component_UTooltip = _sfc_main$j;
1585
1602
  const _component_UIcon = _sfc_main$p;
1586
1603
  const _component_UButton = _sfc_main$k;
1587
- const _component_EmptyState = __nuxt_component_8;
1604
+ const _component_EmptyState = __nuxt_component_9;
1588
1605
  _push(ssrRenderComponent(_component_UCard, _attrs, {
1589
1606
  header: withCtx((_, _push2, _parent2, _scopeId) => {
1590
1607
  if (_push2) {
@@ -1738,6 +1755,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1738
1755
  }),
1739
1756
  "status-cell": withCtx(({ row }, _push4, _parent4, _scopeId3) => {
1740
1757
  if (_push4) {
1758
+ _push4(`<div class="space-y-1"${_scopeId3}>`);
1741
1759
  _push4(ssrRenderComponent(_component_UBadge, {
1742
1760
  color: ("clusterStatusColor" in _ctx ? _ctx.clusterStatusColor : unref(clusterStatusColor))(row.original.status),
1743
1761
  variant: "subtle",
@@ -1754,18 +1772,100 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1754
1772
  }),
1755
1773
  _: 2
1756
1774
  }, _parent4, _scopeId3));
1757
- } else {
1758
- return [
1759
- createVNode(_component_UBadge, {
1760
- color: ("clusterStatusColor" in _ctx ? _ctx.clusterStatusColor : unref(clusterStatusColor))(row.original.status),
1761
- variant: "subtle",
1762
- size: "sm"
1775
+ if (resolutionOf(row.original)) {
1776
+ _push4(ssrRenderComponent(_component_UTooltip, {
1777
+ text: resolutionOf(row.original).hint
1763
1778
  }, {
1764
- default: withCtx(() => [
1765
- createTextVNode(toDisplayString(row.original.status), 1)
1766
- ]),
1779
+ default: withCtx((_3, _push5, _parent5, _scopeId4) => {
1780
+ if (_push5) {
1781
+ _push5(ssrRenderComponent(_component_UBadge, {
1782
+ color: resolutionOf(row.original).color,
1783
+ variant: "subtle",
1784
+ size: "sm",
1785
+ class: "gap-1"
1786
+ }, {
1787
+ default: withCtx((_4, _push6, _parent6, _scopeId5) => {
1788
+ if (_push6) {
1789
+ _push6(ssrRenderComponent(_component_UIcon, {
1790
+ name: resolutionOf(row.original).icon,
1791
+ class: "size-3"
1792
+ }, null, _parent6, _scopeId5));
1793
+ _push6(` ${ssrInterpolate(resolutionOf(row.original).label)}`);
1794
+ } else {
1795
+ return [
1796
+ createVNode(_component_UIcon, {
1797
+ name: resolutionOf(row.original).icon,
1798
+ class: "size-3"
1799
+ }, null, 8, ["name"]),
1800
+ createTextVNode(" " + toDisplayString(resolutionOf(row.original).label), 1)
1801
+ ];
1802
+ }
1803
+ }),
1804
+ _: 2
1805
+ }, _parent5, _scopeId4));
1806
+ } else {
1807
+ return [
1808
+ createVNode(_component_UBadge, {
1809
+ color: resolutionOf(row.original).color,
1810
+ variant: "subtle",
1811
+ size: "sm",
1812
+ class: "gap-1"
1813
+ }, {
1814
+ default: withCtx(() => [
1815
+ createVNode(_component_UIcon, {
1816
+ name: resolutionOf(row.original).icon,
1817
+ class: "size-3"
1818
+ }, null, 8, ["name"]),
1819
+ createTextVNode(" " + toDisplayString(resolutionOf(row.original).label), 1)
1820
+ ]),
1821
+ _: 2
1822
+ }, 1032, ["color"])
1823
+ ];
1824
+ }
1825
+ }),
1767
1826
  _: 2
1768
- }, 1032, ["color"])
1827
+ }, _parent4, _scopeId3));
1828
+ } else {
1829
+ _push4(`<!---->`);
1830
+ }
1831
+ _push4(`</div>`);
1832
+ } else {
1833
+ return [
1834
+ createVNode("div", { class: "space-y-1" }, [
1835
+ createVNode(_component_UBadge, {
1836
+ color: ("clusterStatusColor" in _ctx ? _ctx.clusterStatusColor : unref(clusterStatusColor))(row.original.status),
1837
+ variant: "subtle",
1838
+ size: "sm"
1839
+ }, {
1840
+ default: withCtx(() => [
1841
+ createTextVNode(toDisplayString(row.original.status), 1)
1842
+ ]),
1843
+ _: 2
1844
+ }, 1032, ["color"]),
1845
+ resolutionOf(row.original) ? (openBlock(), createBlock(_component_UTooltip, {
1846
+ key: 0,
1847
+ text: resolutionOf(row.original).hint
1848
+ }, {
1849
+ default: withCtx(() => [
1850
+ createVNode(_component_UBadge, {
1851
+ color: resolutionOf(row.original).color,
1852
+ variant: "subtle",
1853
+ size: "sm",
1854
+ class: "gap-1"
1855
+ }, {
1856
+ default: withCtx(() => [
1857
+ createVNode(_component_UIcon, {
1858
+ name: resolutionOf(row.original).icon,
1859
+ class: "size-3"
1860
+ }, null, 8, ["name"]),
1861
+ createTextVNode(" " + toDisplayString(resolutionOf(row.original).label), 1)
1862
+ ]),
1863
+ _: 2
1864
+ }, 1032, ["color"])
1865
+ ]),
1866
+ _: 2
1867
+ }, 1032, ["text"])) : createCommentVNode("", true)
1868
+ ])
1769
1869
  ];
1770
1870
  }
1771
1871
  }),
@@ -1972,16 +2072,41 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1972
2072
  }, "—"))
1973
2073
  ]),
1974
2074
  "status-cell": withCtx(({ row }) => [
1975
- createVNode(_component_UBadge, {
1976
- color: ("clusterStatusColor" in _ctx ? _ctx.clusterStatusColor : unref(clusterStatusColor))(row.original.status),
1977
- variant: "subtle",
1978
- size: "sm"
1979
- }, {
1980
- default: withCtx(() => [
1981
- createTextVNode(toDisplayString(row.original.status), 1)
1982
- ]),
1983
- _: 2
1984
- }, 1032, ["color"])
2075
+ createVNode("div", { class: "space-y-1" }, [
2076
+ createVNode(_component_UBadge, {
2077
+ color: ("clusterStatusColor" in _ctx ? _ctx.clusterStatusColor : unref(clusterStatusColor))(row.original.status),
2078
+ variant: "subtle",
2079
+ size: "sm"
2080
+ }, {
2081
+ default: withCtx(() => [
2082
+ createTextVNode(toDisplayString(row.original.status), 1)
2083
+ ]),
2084
+ _: 2
2085
+ }, 1032, ["color"]),
2086
+ resolutionOf(row.original) ? (openBlock(), createBlock(_component_UTooltip, {
2087
+ key: 0,
2088
+ text: resolutionOf(row.original).hint
2089
+ }, {
2090
+ default: withCtx(() => [
2091
+ createVNode(_component_UBadge, {
2092
+ color: resolutionOf(row.original).color,
2093
+ variant: "subtle",
2094
+ size: "sm",
2095
+ class: "gap-1"
2096
+ }, {
2097
+ default: withCtx(() => [
2098
+ createVNode(_component_UIcon, {
2099
+ name: resolutionOf(row.original).icon,
2100
+ class: "size-3"
2101
+ }, null, 8, ["name"]),
2102
+ createTextVNode(" " + toDisplayString(resolutionOf(row.original).label), 1)
2103
+ ]),
2104
+ _: 2
2105
+ }, 1032, ["color"])
2106
+ ]),
2107
+ _: 2
2108
+ }, 1032, ["text"])) : createCommentVNode("", true)
2109
+ ])
1985
2110
  ]),
1986
2111
  "affectedTests-cell": withCtx(({ row }) => [
1987
2112
  createVNode("span", { class: "text-sm tabular-nums" }, toDisplayString(row.original.affectedTests), 1)
@@ -2108,16 +2233,41 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2108
2233
  }, "—"))
2109
2234
  ]),
2110
2235
  "status-cell": withCtx(({ row }) => [
2111
- createVNode(_component_UBadge, {
2112
- color: ("clusterStatusColor" in _ctx ? _ctx.clusterStatusColor : unref(clusterStatusColor))(row.original.status),
2113
- variant: "subtle",
2114
- size: "sm"
2115
- }, {
2116
- default: withCtx(() => [
2117
- createTextVNode(toDisplayString(row.original.status), 1)
2118
- ]),
2119
- _: 2
2120
- }, 1032, ["color"])
2236
+ createVNode("div", { class: "space-y-1" }, [
2237
+ createVNode(_component_UBadge, {
2238
+ color: ("clusterStatusColor" in _ctx ? _ctx.clusterStatusColor : unref(clusterStatusColor))(row.original.status),
2239
+ variant: "subtle",
2240
+ size: "sm"
2241
+ }, {
2242
+ default: withCtx(() => [
2243
+ createTextVNode(toDisplayString(row.original.status), 1)
2244
+ ]),
2245
+ _: 2
2246
+ }, 1032, ["color"]),
2247
+ resolutionOf(row.original) ? (openBlock(), createBlock(_component_UTooltip, {
2248
+ key: 0,
2249
+ text: resolutionOf(row.original).hint
2250
+ }, {
2251
+ default: withCtx(() => [
2252
+ createVNode(_component_UBadge, {
2253
+ color: resolutionOf(row.original).color,
2254
+ variant: "subtle",
2255
+ size: "sm",
2256
+ class: "gap-1"
2257
+ }, {
2258
+ default: withCtx(() => [
2259
+ createVNode(_component_UIcon, {
2260
+ name: resolutionOf(row.original).icon,
2261
+ class: "size-3"
2262
+ }, null, 8, ["name"]),
2263
+ createTextVNode(" " + toDisplayString(resolutionOf(row.original).label), 1)
2264
+ ]),
2265
+ _: 2
2266
+ }, 1032, ["color"])
2267
+ ]),
2268
+ _: 2
2269
+ }, 1032, ["text"])) : createCommentVNode("", true)
2270
+ ])
2121
2271
  ]),
2122
2272
  "affectedTests-cell": withCtx(({ row }) => [
2123
2273
  createVNode("span", { class: "text-sm tabular-nums" }, toDisplayString(row.original.affectedTests), 1)
@@ -2197,14 +2347,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2197
2347
  };
2198
2348
  }
2199
2349
  });
2200
- const _sfc_setup$7 = _sfc_main$7.setup;
2201
- _sfc_main$7.setup = (props, ctx) => {
2350
+ const _sfc_setup$8 = _sfc_main$8.setup;
2351
+ _sfc_main$8.setup = (props, ctx) => {
2202
2352
  const ssrContext = useSSRContext();
2203
2353
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/FailureClustersList.vue");
2204
- return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
2354
+ return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
2205
2355
  };
2206
- const __nuxt_component_25 = Object.assign(_sfc_main$7, { __name: "FailureClustersList" });
2207
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2356
+ const __nuxt_component_27 = Object.assign(_sfc_main$8, { __name: "FailureClustersList" });
2357
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2208
2358
  __name: "FlakyTestsList",
2209
2359
  __ssrInlineRender: true,
2210
2360
  props: {
@@ -2277,15 +2427,16 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2277
2427
  { id: "actions", header: "Actions" }
2278
2428
  ];
2279
2429
  return (_ctx, _push, _parent, _attrs) => {
2280
- const _component_UCard = _sfc_main$d;
2430
+ const _component_UCard = _sfc_main$e;
2281
2431
  const _component_HelpHint = __nuxt_component_2;
2282
2432
  const _component_UBadge = _sfc_main$7$1;
2283
2433
  const _component_UIcon = _sfc_main$p;
2284
2434
  const _component_UButton = _sfc_main$k;
2285
- const _component_USelect = _sfc_main$b;
2286
- const _component_TableScroller = __nuxt_component_3$1;
2287
- const _component_UTable = _sfc_main$g;
2435
+ const _component_USelect = _sfc_main$c;
2436
+ const _component_TableScroller = __nuxt_component_3$2;
2437
+ const _component_UTable = _sfc_main$h;
2288
2438
  const _component_NuxtLink = __nuxt_component_12;
2439
+ const _component_TestMetaBadges = __nuxt_component_2$2;
2289
2440
  const _component_OpenInIdeLink = __nuxt_component_1$1;
2290
2441
  const _component_TagBadge = __nuxt_component_4;
2291
2442
  _push(ssrRenderComponent(_component_UCard, _attrs, {
@@ -2456,6 +2607,11 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2456
2607
  }),
2457
2608
  _: 2
2458
2609
  }, _parent4, _scopeId3));
2610
+ _push4(ssrRenderComponent(_component_TestMetaBadges, {
2611
+ tags: row.original.tags,
2612
+ meta: { owner: row.original.owner ?? void 0, priority: ("toTestPriority" in _ctx ? _ctx.toTestPriority : unref(toTestPriority))(row.original.priority) },
2613
+ "max-tags": 3
2614
+ }, null, _parent4, _scopeId3));
2459
2615
  _push4(ssrRenderComponent(_component_OpenInIdeLink, {
2460
2616
  "file-path": row.original.filePath,
2461
2617
  "project-key": __props.projectId,
@@ -2476,6 +2632,11 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2476
2632
  ]),
2477
2633
  _: 2
2478
2634
  }, 1032, ["to", "title"]),
2635
+ createVNode(_component_TestMetaBadges, {
2636
+ tags: row.original.tags,
2637
+ meta: { owner: row.original.owner ?? void 0, priority: ("toTestPriority" in _ctx ? _ctx.toTestPriority : unref(toTestPriority))(row.original.priority) },
2638
+ "max-tags": 3
2639
+ }, null, 8, ["tags", "meta"]),
2479
2640
  createVNode(_component_OpenInIdeLink, {
2480
2641
  "file-path": row.original.filePath,
2481
2642
  "project-key": __props.projectId,
@@ -2739,6 +2900,11 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2739
2900
  ]),
2740
2901
  _: 2
2741
2902
  }, 1032, ["to", "title"]),
2903
+ createVNode(_component_TestMetaBadges, {
2904
+ tags: row.original.tags,
2905
+ meta: { owner: row.original.owner ?? void 0, priority: ("toTestPriority" in _ctx ? _ctx.toTestPriority : unref(toTestPriority))(row.original.priority) },
2906
+ "max-tags": 3
2907
+ }, null, 8, ["tags", "meta"]),
2742
2908
  createVNode(_component_OpenInIdeLink, {
2743
2909
  "file-path": row.original.filePath,
2744
2910
  "project-key": __props.projectId,
@@ -2881,6 +3047,11 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2881
3047
  ]),
2882
3048
  _: 2
2883
3049
  }, 1032, ["to", "title"]),
3050
+ createVNode(_component_TestMetaBadges, {
3051
+ tags: row.original.tags,
3052
+ meta: { owner: row.original.owner ?? void 0, priority: ("toTestPriority" in _ctx ? _ctx.toTestPriority : unref(toTestPriority))(row.original.priority) },
3053
+ "max-tags": 3
3054
+ }, null, 8, ["tags", "meta"]),
2884
3055
  createVNode(_component_OpenInIdeLink, {
2885
3056
  "file-path": row.original.filePath,
2886
3057
  "project-key": __props.projectId,
@@ -2999,14 +3170,14 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2999
3170
  };
3000
3171
  }
3001
3172
  });
3002
- const _sfc_setup$6 = _sfc_main$6.setup;
3003
- _sfc_main$6.setup = (props, ctx) => {
3173
+ const _sfc_setup$7 = _sfc_main$7.setup;
3174
+ _sfc_main$7.setup = (props, ctx) => {
3004
3175
  const ssrContext = useSSRContext();
3005
3176
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/FlakyTestsList.vue");
3006
- return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
3177
+ return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
3007
3178
  };
3008
- const __nuxt_component_26 = Object.assign(_sfc_main$6, { __name: "FlakyTestsList" });
3009
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3179
+ const __nuxt_component_28 = Object.assign(_sfc_main$7, { __name: "FlakyTestsList" });
3180
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3010
3181
  __name: "PerformanceTrendChart",
3011
3182
  __ssrInlineRender: true,
3012
3183
  props: {
@@ -3062,8 +3233,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3062
3233
  ];
3063
3234
  return (_ctx, _push, _parent, _attrs) => {
3064
3235
  const _component_ChartMarkerTooltip = __nuxt_component_0$1;
3065
- const _component_EmptyState = __nuxt_component_8;
3066
- const _component_ChartLegend = __nuxt_component_1$2;
3236
+ const _component_EmptyState = __nuxt_component_9;
3237
+ const _component_ChartLegend = __nuxt_component_1$3;
3067
3238
  _push(`<div${ssrRenderAttrs(mergeProps({ class: "w-full relative" }, _attrs))}>`);
3068
3239
  if (unref(chartData).length > 0) {
3069
3240
  _push(`<div>`);
@@ -3147,14 +3318,14 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3147
3318
  };
3148
3319
  }
3149
3320
  });
3150
- const _sfc_setup$5 = _sfc_main$5.setup;
3151
- _sfc_main$5.setup = (props, ctx) => {
3321
+ const _sfc_setup$6 = _sfc_main$6.setup;
3322
+ _sfc_main$6.setup = (props, ctx) => {
3152
3323
  const ssrContext = useSSRContext();
3153
3324
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/PerformanceTrendChart.vue");
3154
- return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
3325
+ return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
3155
3326
  };
3156
- const __nuxt_component_29 = Object.assign(_sfc_main$5, { __name: "PerformanceTrendChart" });
3157
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3327
+ const __nuxt_component_31 = Object.assign(_sfc_main$6, { __name: "PerformanceTrendChart" });
3328
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3158
3329
  __name: "TimeoutOpportunitiesTable",
3159
3330
  __ssrInlineRender: true,
3160
3331
  props: {
@@ -3186,11 +3357,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3186
3357
  { accessorKey: "runCount", header: createSortHeader("Runs") }
3187
3358
  ];
3188
3359
  return (_ctx, _push, _parent, _attrs) => {
3189
- const _component_UCard = _sfc_main$d;
3360
+ const _component_UCard = _sfc_main$e;
3190
3361
  const _component_LoadingState = __nuxt_component_1;
3191
- const _component_EmptyState = __nuxt_component_8;
3192
- const _component_TableScroller = __nuxt_component_3$1;
3193
- const _component_UTable = _sfc_main$g;
3362
+ const _component_EmptyState = __nuxt_component_9;
3363
+ const _component_TableScroller = __nuxt_component_3$2;
3364
+ const _component_UTable = _sfc_main$h;
3194
3365
  const _component_NuxtLink = __nuxt_component_12;
3195
3366
  const _component_OpenInIdeLink = __nuxt_component_1$1;
3196
3367
  const _component_UBadge = _sfc_main$7$1;
@@ -3555,14 +3726,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3555
3726
  };
3556
3727
  }
3557
3728
  });
3558
- const _sfc_setup$4 = _sfc_main$4.setup;
3559
- _sfc_main$4.setup = (props, ctx) => {
3729
+ const _sfc_setup$5 = _sfc_main$5.setup;
3730
+ _sfc_main$5.setup = (props, ctx) => {
3560
3731
  const ssrContext = useSSRContext();
3561
3732
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/TimeoutOpportunitiesTable.vue");
3562
- return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
3733
+ return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
3563
3734
  };
3564
- const __nuxt_component_31 = Object.assign(_sfc_main$4, { __name: "TimeoutOpportunitiesTable" });
3565
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3735
+ const __nuxt_component_33 = Object.assign(_sfc_main$5, { __name: "TimeoutOpportunitiesTable" });
3736
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3566
3737
  __name: "SpecHealthTable",
3567
3738
  __ssrInlineRender: true,
3568
3739
  props: {
@@ -3612,13 +3783,13 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3612
3783
  { accessorKey: "avgDuration", header: createSortHeader("Avg time") }
3613
3784
  ];
3614
3785
  return (_ctx, _push, _parent, _attrs) => {
3615
- const _component_UCard = _sfc_main$d;
3786
+ const _component_UCard = _sfc_main$e;
3616
3787
  const _component_HelpHint = __nuxt_component_2;
3617
- const _component_USelect = _sfc_main$b;
3788
+ const _component_USelect = _sfc_main$c;
3618
3789
  const _component_LoadingState = __nuxt_component_1;
3619
- const _component_EmptyState = __nuxt_component_8;
3620
- const _component_TableScroller = __nuxt_component_3$1;
3621
- const _component_UTable = _sfc_main$g;
3790
+ const _component_EmptyState = __nuxt_component_9;
3791
+ const _component_TableScroller = __nuxt_component_3$2;
3792
+ const _component_UTable = _sfc_main$h;
3622
3793
  const _component_NuxtLink = __nuxt_component_12;
3623
3794
  _push(ssrRenderComponent(_component_UCard, _attrs, {
3624
3795
  header: withCtx((_, _push2, _parent2, _scopeId) => {
@@ -3814,78 +3985,688 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3814
3985
  _: 1
3815
3986
  }, _parent2, _scopeId));
3816
3987
  }
3817
- } else {
3818
- return [
3819
- unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(specs).length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
3820
- key: 1,
3821
- text: "No data",
3822
- description: "No spec health data available for the selected period."
3823
- })) : (openBlock(), createBlock(_component_TableScroller, {
3824
- key: 2,
3825
- "min-width": "46rem",
3826
- bleed: false
3827
- }, {
3828
- default: withCtx(() => [
3829
- createVNode(_component_UTable, {
3830
- data: unref(specs),
3831
- columns,
3832
- sticky: "",
3833
- class: "max-h-[32rem]"
3834
- }, {
3835
- "prefix-cell": withCtx(({ row }) => [
3836
- createVNode(_component_NuxtLink, {
3837
- to: `/projects/${__props.projectId}/test-cases?file=${encodeURIComponent(row.original.prefix)}`,
3838
- class: "flex items-center gap-2 min-w-0 text-primary hover:underline",
3839
- title: row.original.prefix
3840
- }, {
3841
- default: withCtx(() => [
3842
- createVNode("span", {
3843
- class: ["inline-block size-3 rounded shrink-0", passRateColor(row.original.passRate)]
3844
- }, null, 2),
3845
- createVNode("span", { class: "truncate font-mono text-xs" }, toDisplayString(row.original.prefix), 1)
3846
- ]),
3847
- _: 2
3848
- }, 1032, ["to", "title"])
3849
- ]),
3850
- "passRate-cell": withCtx(({ row }) => [
3851
- createVNode("span", {
3852
- class: ["font-medium tabular-nums", passRateTextColor(row.original.passRate)]
3853
- }, toDisplayString(passRateLabel(row.original.passRate)), 3)
3854
- ]),
3855
- "flakyRate-cell": withCtx(({ row }) => [
3856
- createVNode("span", { class: "tabular-nums" }, toDisplayString(Math.round(row.original.flakyRate * 100)) + "%", 1)
3857
- ]),
3858
- "failureCount-cell": withCtx(({ row }) => [
3859
- createVNode("span", {
3860
- class: ["tabular-nums", row.original.failureCount > 0 ? "text-red-600 dark:text-red-400" : ""]
3861
- }, toDisplayString(row.original.failureCount), 3)
3862
- ]),
3863
- "testCount-cell": withCtx(({ row }) => [
3864
- createVNode("span", { class: "tabular-nums text-gray-500" }, toDisplayString(row.original.testCount), 1)
3865
- ]),
3866
- "avgDuration-cell": withCtx(({ row }) => [
3867
- createVNode("span", { class: "tabular-nums text-gray-500" }, toDisplayString(formatMs(row.original.avgDuration)), 1)
3868
- ]),
3869
- _: 1
3870
- }, 8, ["data"])
3871
- ]),
3872
- _: 1
3873
- }))
3874
- ];
3875
- }
3876
- }),
3877
- _: 1
3878
- }, _parent));
3988
+ } else {
3989
+ return [
3990
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(specs).length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
3991
+ key: 1,
3992
+ text: "No data",
3993
+ description: "No spec health data available for the selected period."
3994
+ })) : (openBlock(), createBlock(_component_TableScroller, {
3995
+ key: 2,
3996
+ "min-width": "46rem",
3997
+ bleed: false
3998
+ }, {
3999
+ default: withCtx(() => [
4000
+ createVNode(_component_UTable, {
4001
+ data: unref(specs),
4002
+ columns,
4003
+ sticky: "",
4004
+ class: "max-h-[32rem]"
4005
+ }, {
4006
+ "prefix-cell": withCtx(({ row }) => [
4007
+ createVNode(_component_NuxtLink, {
4008
+ to: `/projects/${__props.projectId}/test-cases?file=${encodeURIComponent(row.original.prefix)}`,
4009
+ class: "flex items-center gap-2 min-w-0 text-primary hover:underline",
4010
+ title: row.original.prefix
4011
+ }, {
4012
+ default: withCtx(() => [
4013
+ createVNode("span", {
4014
+ class: ["inline-block size-3 rounded shrink-0", passRateColor(row.original.passRate)]
4015
+ }, null, 2),
4016
+ createVNode("span", { class: "truncate font-mono text-xs" }, toDisplayString(row.original.prefix), 1)
4017
+ ]),
4018
+ _: 2
4019
+ }, 1032, ["to", "title"])
4020
+ ]),
4021
+ "passRate-cell": withCtx(({ row }) => [
4022
+ createVNode("span", {
4023
+ class: ["font-medium tabular-nums", passRateTextColor(row.original.passRate)]
4024
+ }, toDisplayString(passRateLabel(row.original.passRate)), 3)
4025
+ ]),
4026
+ "flakyRate-cell": withCtx(({ row }) => [
4027
+ createVNode("span", { class: "tabular-nums" }, toDisplayString(Math.round(row.original.flakyRate * 100)) + "%", 1)
4028
+ ]),
4029
+ "failureCount-cell": withCtx(({ row }) => [
4030
+ createVNode("span", {
4031
+ class: ["tabular-nums", row.original.failureCount > 0 ? "text-red-600 dark:text-red-400" : ""]
4032
+ }, toDisplayString(row.original.failureCount), 3)
4033
+ ]),
4034
+ "testCount-cell": withCtx(({ row }) => [
4035
+ createVNode("span", { class: "tabular-nums text-gray-500" }, toDisplayString(row.original.testCount), 1)
4036
+ ]),
4037
+ "avgDuration-cell": withCtx(({ row }) => [
4038
+ createVNode("span", { class: "tabular-nums text-gray-500" }, toDisplayString(formatMs(row.original.avgDuration)), 1)
4039
+ ]),
4040
+ _: 1
4041
+ }, 8, ["data"])
4042
+ ]),
4043
+ _: 1
4044
+ }))
4045
+ ];
4046
+ }
4047
+ }),
4048
+ _: 1
4049
+ }, _parent));
4050
+ };
4051
+ }
4052
+ });
4053
+ const _sfc_setup$4 = _sfc_main$4.setup;
4054
+ _sfc_main$4.setup = (props, ctx) => {
4055
+ const ssrContext = useSSRContext();
4056
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/SpecHealthTable.vue");
4057
+ return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
4058
+ };
4059
+ const __nuxt_component_36 = Object.assign(_sfc_main$4, { __name: "SpecHealthTable" });
4060
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4061
+ __name: "QuarantineTable",
4062
+ __ssrInlineRender: true,
4063
+ props: {
4064
+ projectId: {},
4065
+ projectName: {}
4066
+ },
4067
+ async setup(__props) {
4068
+ let __temp, __restore;
4069
+ const props = __props;
4070
+ const toast = useToast();
4071
+ const busy = ref(null);
4072
+ const { data, status, error, refresh } = ([__temp, __restore] = withAsyncContext(() => useFetch(
4073
+ () => `/api/projects/${props.projectId}/quarantine`,
4074
+ "$9P2J7SsiYf"
4075
+ /* nuxt-injected */
4076
+ )), __temp = await __temp, __restore(), __temp);
4077
+ function formatAge(ms) {
4078
+ const hours = Math.round(ms / 36e5);
4079
+ if (hours < 48) return `${Math.max(1, hours)}h`;
4080
+ return `${Math.round(hours / 24)}d`;
4081
+ }
4082
+ async function quarantine(testCaseId, reason) {
4083
+ busy.value = testCaseId;
4084
+ try {
4085
+ await $fetch(`/api/projects/${props.projectId}/quarantine`, {
4086
+ method: "POST",
4087
+ body: { testCaseId, reason, source: "proposed" }
4088
+ });
4089
+ toast.add({ title: "Quarantined", color: "success" });
4090
+ await refresh();
4091
+ } catch {
4092
+ toast.add({ title: "Could not quarantine that test", color: "error" });
4093
+ } finally {
4094
+ busy.value = null;
4095
+ }
4096
+ }
4097
+ async function release(testCaseId) {
4098
+ busy.value = testCaseId;
4099
+ try {
4100
+ await $fetch(`/api/projects/${props.projectId}/quarantine/${testCaseId}`, { method: "DELETE" });
4101
+ toast.add({ title: "Released", color: "success" });
4102
+ await refresh();
4103
+ } catch {
4104
+ toast.add({ title: "Could not release that test", color: "error" });
4105
+ } finally {
4106
+ busy.value = null;
4107
+ }
4108
+ }
4109
+ return (_ctx, _push, _parent, _attrs) => {
4110
+ const _component_SectionCard = __nuxt_component_11;
4111
+ const _component_LoadingState = __nuxt_component_1;
4112
+ const _component_ErrorState = __nuxt_component_5$2;
4113
+ const _component_StatTileGrid = __nuxt_component_1$2;
4114
+ const _component_StatTile = __nuxt_component_2$1;
4115
+ const _component_EmptyState = __nuxt_component_9;
4116
+ const _component_TableScroller = __nuxt_component_3$2;
4117
+ const _component_NuxtLink = __nuxt_component_12;
4118
+ const _component_TestMetaBadges = __nuxt_component_2$2;
4119
+ const _component_OpenInIdeLink = __nuxt_component_1$1;
4120
+ const _component_UBadge = _sfc_main$7$1;
4121
+ const _component_UButton = _sfc_main$k;
4122
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "space-y-6" }, _attrs))}>`);
4123
+ _push(ssrRenderComponent(_component_SectionCard, {
4124
+ title: "Quarantine",
4125
+ icon: "i-lucide-shield-alert",
4126
+ count: unref(data)?.debt.active,
4127
+ help: "project.quarantine"
4128
+ }, {
4129
+ subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
4130
+ if (_push2) {
4131
+ _push2(` A quarantined test keeps running and keeps reporting — it is excluded from the CI gate&#39;s verdict and nothing else. That is what lets it earn its way back out. `);
4132
+ } else {
4133
+ return [
4134
+ createTextVNode(" A quarantined test keeps running and keeps reporting — it is excluded from the CI gate's verdict and nothing else. That is what lets it earn its way back out. ")
4135
+ ];
4136
+ }
4137
+ }),
4138
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
4139
+ if (_push2) {
4140
+ if (unref(status) === "pending") {
4141
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
4142
+ } else if (unref(error)) {
4143
+ _push2(ssrRenderComponent(_component_ErrorState, {
4144
+ text: String(unref(error))
4145
+ }, null, _parent2, _scopeId));
4146
+ } else {
4147
+ _push2(`<!--[-->`);
4148
+ if (unref(data) && unref(data).debt.active > 0) {
4149
+ _push2(ssrRenderComponent(_component_StatTileGrid, { class: "mb-4" }, {
4150
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
4151
+ if (_push3) {
4152
+ _push3(ssrRenderComponent(_component_StatTile, {
4153
+ label: "Quarantined",
4154
+ value: unref(data).debt.active
4155
+ }, null, _parent3, _scopeId2));
4156
+ _push3(ssrRenderComponent(_component_StatTile, {
4157
+ label: "Ready to release",
4158
+ value: unref(data).debt.readyToRelease,
4159
+ "value-class": unref(data).debt.readyToRelease > 0 ? "text-green-600 dark:text-green-400" : "",
4160
+ hint: "earned their way out"
4161
+ }, null, _parent3, _scopeId2));
4162
+ _push3(ssrRenderComponent(_component_StatTile, {
4163
+ label: "Still failing",
4164
+ value: unref(data).debt.stillFailing,
4165
+ hint: "no passing streak"
4166
+ }, null, _parent3, _scopeId2));
4167
+ _push3(ssrRenderComponent(_component_StatTile, {
4168
+ label: "Oldest",
4169
+ value: formatAge(unref(data).debt.oldestAgeMs),
4170
+ size: "sm"
4171
+ }, null, _parent3, _scopeId2));
4172
+ } else {
4173
+ return [
4174
+ createVNode(_component_StatTile, {
4175
+ label: "Quarantined",
4176
+ value: unref(data).debt.active
4177
+ }, null, 8, ["value"]),
4178
+ createVNode(_component_StatTile, {
4179
+ label: "Ready to release",
4180
+ value: unref(data).debt.readyToRelease,
4181
+ "value-class": unref(data).debt.readyToRelease > 0 ? "text-green-600 dark:text-green-400" : "",
4182
+ hint: "earned their way out"
4183
+ }, null, 8, ["value", "value-class"]),
4184
+ createVNode(_component_StatTile, {
4185
+ label: "Still failing",
4186
+ value: unref(data).debt.stillFailing,
4187
+ hint: "no passing streak"
4188
+ }, null, 8, ["value"]),
4189
+ createVNode(_component_StatTile, {
4190
+ label: "Oldest",
4191
+ value: formatAge(unref(data).debt.oldestAgeMs),
4192
+ size: "sm"
4193
+ }, null, 8, ["value"])
4194
+ ];
4195
+ }
4196
+ }),
4197
+ _: 1
4198
+ }, _parent2, _scopeId));
4199
+ } else {
4200
+ _push2(`<!---->`);
4201
+ }
4202
+ if (!unref(data) || unref(data).entries.length === 0) {
4203
+ _push2(ssrRenderComponent(_component_EmptyState, {
4204
+ icon: "i-lucide-shield-check",
4205
+ text: "Nothing quarantined. Tests you quarantine appear here with their progress back out."
4206
+ }, null, _parent2, _scopeId));
4207
+ } else {
4208
+ _push2(ssrRenderComponent(_component_TableScroller, null, {
4209
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
4210
+ if (_push3) {
4211
+ _push3(`<table class="w-full text-sm"${_scopeId2}><thead class="text-left text-xs text-muted"${_scopeId2}><tr${_scopeId2}><th class="px-3 py-2"${_scopeId2}>Test</th><th class="px-3 py-2"${_scopeId2}>Reason</th><th class="px-3 py-2 whitespace-nowrap"${_scopeId2}>Streak</th><th class="px-3 py-2 whitespace-nowrap"${_scopeId2}>Age</th><th class="px-3 py-2 text-right"${_scopeId2}>Actions</th></tr></thead><tbody${_scopeId2}><!--[-->`);
4212
+ ssrRenderList(unref(data).entries, (entry) => {
4213
+ _push3(`<tr class="border-t border-default"${_scopeId2}><td class="px-3 py-2 min-w-0"${_scopeId2}>`);
4214
+ _push3(ssrRenderComponent(_component_NuxtLink, {
4215
+ to: `/test-cases/${entry.testCaseId}`,
4216
+ class: "text-primary hover:underline font-medium"
4217
+ }, {
4218
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
4219
+ if (_push4) {
4220
+ _push4(`${ssrInterpolate(entry.title)}`);
4221
+ } else {
4222
+ return [
4223
+ createTextVNode(toDisplayString(entry.title), 1)
4224
+ ];
4225
+ }
4226
+ }),
4227
+ _: 2
4228
+ }, _parent3, _scopeId2));
4229
+ _push3(ssrRenderComponent(_component_TestMetaBadges, {
4230
+ tags: entry.tags,
4231
+ meta: { owner: entry.owner ?? void 0 },
4232
+ "max-tags": 3,
4233
+ class: "ml-1"
4234
+ }, null, _parent3, _scopeId2));
4235
+ _push3(`<div class="text-xs text-muted"${_scopeId2}>`);
4236
+ _push3(ssrRenderComponent(_component_OpenInIdeLink, {
4237
+ "file-path": entry.filePath,
4238
+ "project-key": __props.projectId,
4239
+ "project-name": __props.projectName
4240
+ }, null, _parent3, _scopeId2));
4241
+ _push3(`</div></td><td class="px-3 py-2 text-muted"${_scopeId2}>${ssrInterpolate(entry.reason || "—")}</td><td class="px-3 py-2 whitespace-nowrap"${_scopeId2}>`);
4242
+ if (entry.releaseProposed) {
4243
+ _push3(ssrRenderComponent(_component_UBadge, {
4244
+ color: "success",
4245
+ variant: "soft",
4246
+ size: "xs"
4247
+ }, {
4248
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
4249
+ if (_push4) {
4250
+ _push4(`${ssrInterpolate(entry.consecutivePasses)} green — ready `);
4251
+ } else {
4252
+ return [
4253
+ createTextVNode(toDisplayString(entry.consecutivePasses) + " green — ready ", 1)
4254
+ ];
4255
+ }
4256
+ }),
4257
+ _: 2
4258
+ }, _parent3, _scopeId2));
4259
+ } else if (entry.runsSinceQuarantine === 0) {
4260
+ _push3(`<span class="text-xs text-muted"${_scopeId2}>not run yet</span>`);
4261
+ } else {
4262
+ _push3(`<span class="text-xs"${_scopeId2}>${ssrInterpolate(entry.consecutivePasses)} / ${ssrInterpolate(unref(data).releaseAfterConsecutivePasses)}</span>`);
4263
+ }
4264
+ _push3(`</td><td class="px-3 py-2 whitespace-nowrap text-muted"${_scopeId2}>${ssrInterpolate(formatAge(entry.ageMs))}</td><td class="px-3 py-2 text-right"${_scopeId2}>`);
4265
+ _push3(ssrRenderComponent(_component_UButton, {
4266
+ size: "xs",
4267
+ color: entry.releaseProposed ? "primary" : "neutral",
4268
+ variant: "soft",
4269
+ loading: unref(busy) === entry.testCaseId,
4270
+ onClick: ($event) => release(entry.testCaseId)
4271
+ }, {
4272
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
4273
+ if (_push4) {
4274
+ _push4(` Release `);
4275
+ } else {
4276
+ return [
4277
+ createTextVNode(" Release ")
4278
+ ];
4279
+ }
4280
+ }),
4281
+ _: 2
4282
+ }, _parent3, _scopeId2));
4283
+ _push3(`</td></tr>`);
4284
+ });
4285
+ _push3(`<!--]--></tbody></table>`);
4286
+ } else {
4287
+ return [
4288
+ createVNode("table", { class: "w-full text-sm" }, [
4289
+ createVNode("thead", { class: "text-left text-xs text-muted" }, [
4290
+ createVNode("tr", null, [
4291
+ createVNode("th", { class: "px-3 py-2" }, "Test"),
4292
+ createVNode("th", { class: "px-3 py-2" }, "Reason"),
4293
+ createVNode("th", { class: "px-3 py-2 whitespace-nowrap" }, "Streak"),
4294
+ createVNode("th", { class: "px-3 py-2 whitespace-nowrap" }, "Age"),
4295
+ createVNode("th", { class: "px-3 py-2 text-right" }, "Actions")
4296
+ ])
4297
+ ]),
4298
+ createVNode("tbody", null, [
4299
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(data).entries, (entry) => {
4300
+ return openBlock(), createBlock("tr", {
4301
+ key: entry.id,
4302
+ class: "border-t border-default"
4303
+ }, [
4304
+ createVNode("td", { class: "px-3 py-2 min-w-0" }, [
4305
+ createVNode(_component_NuxtLink, {
4306
+ to: `/test-cases/${entry.testCaseId}`,
4307
+ class: "text-primary hover:underline font-medium"
4308
+ }, {
4309
+ default: withCtx(() => [
4310
+ createTextVNode(toDisplayString(entry.title), 1)
4311
+ ]),
4312
+ _: 2
4313
+ }, 1032, ["to"]),
4314
+ createVNode(_component_TestMetaBadges, {
4315
+ tags: entry.tags,
4316
+ meta: { owner: entry.owner ?? void 0 },
4317
+ "max-tags": 3,
4318
+ class: "ml-1"
4319
+ }, null, 8, ["tags", "meta"]),
4320
+ createVNode("div", { class: "text-xs text-muted" }, [
4321
+ createVNode(_component_OpenInIdeLink, {
4322
+ "file-path": entry.filePath,
4323
+ "project-key": __props.projectId,
4324
+ "project-name": __props.projectName
4325
+ }, null, 8, ["file-path", "project-key", "project-name"])
4326
+ ])
4327
+ ]),
4328
+ createVNode("td", { class: "px-3 py-2 text-muted" }, toDisplayString(entry.reason || "—"), 1),
4329
+ createVNode("td", { class: "px-3 py-2 whitespace-nowrap" }, [
4330
+ entry.releaseProposed ? (openBlock(), createBlock(_component_UBadge, {
4331
+ key: 0,
4332
+ color: "success",
4333
+ variant: "soft",
4334
+ size: "xs"
4335
+ }, {
4336
+ default: withCtx(() => [
4337
+ createTextVNode(toDisplayString(entry.consecutivePasses) + " green — ready ", 1)
4338
+ ]),
4339
+ _: 2
4340
+ }, 1024)) : entry.runsSinceQuarantine === 0 ? (openBlock(), createBlock("span", {
4341
+ key: 1,
4342
+ class: "text-xs text-muted"
4343
+ }, "not run yet")) : (openBlock(), createBlock("span", {
4344
+ key: 2,
4345
+ class: "text-xs"
4346
+ }, toDisplayString(entry.consecutivePasses) + " / " + toDisplayString(unref(data).releaseAfterConsecutivePasses), 1))
4347
+ ]),
4348
+ createVNode("td", { class: "px-3 py-2 whitespace-nowrap text-muted" }, toDisplayString(formatAge(entry.ageMs)), 1),
4349
+ createVNode("td", { class: "px-3 py-2 text-right" }, [
4350
+ createVNode(_component_UButton, {
4351
+ size: "xs",
4352
+ color: entry.releaseProposed ? "primary" : "neutral",
4353
+ variant: "soft",
4354
+ loading: unref(busy) === entry.testCaseId,
4355
+ onClick: ($event) => release(entry.testCaseId)
4356
+ }, {
4357
+ default: withCtx(() => [
4358
+ createTextVNode(" Release ")
4359
+ ]),
4360
+ _: 1
4361
+ }, 8, ["color", "loading", "onClick"])
4362
+ ])
4363
+ ]);
4364
+ }), 128))
4365
+ ])
4366
+ ])
4367
+ ];
4368
+ }
4369
+ }),
4370
+ _: 1
4371
+ }, _parent2, _scopeId));
4372
+ }
4373
+ _push2(`<!--]-->`);
4374
+ }
4375
+ } else {
4376
+ return [
4377
+ unref(status) === "pending" ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(error) ? (openBlock(), createBlock(_component_ErrorState, {
4378
+ key: 1,
4379
+ text: String(unref(error))
4380
+ }, null, 8, ["text"])) : (openBlock(), createBlock(Fragment, { key: 2 }, [
4381
+ unref(data) && unref(data).debt.active > 0 ? (openBlock(), createBlock(_component_StatTileGrid, {
4382
+ key: 0,
4383
+ class: "mb-4"
4384
+ }, {
4385
+ default: withCtx(() => [
4386
+ createVNode(_component_StatTile, {
4387
+ label: "Quarantined",
4388
+ value: unref(data).debt.active
4389
+ }, null, 8, ["value"]),
4390
+ createVNode(_component_StatTile, {
4391
+ label: "Ready to release",
4392
+ value: unref(data).debt.readyToRelease,
4393
+ "value-class": unref(data).debt.readyToRelease > 0 ? "text-green-600 dark:text-green-400" : "",
4394
+ hint: "earned their way out"
4395
+ }, null, 8, ["value", "value-class"]),
4396
+ createVNode(_component_StatTile, {
4397
+ label: "Still failing",
4398
+ value: unref(data).debt.stillFailing,
4399
+ hint: "no passing streak"
4400
+ }, null, 8, ["value"]),
4401
+ createVNode(_component_StatTile, {
4402
+ label: "Oldest",
4403
+ value: formatAge(unref(data).debt.oldestAgeMs),
4404
+ size: "sm"
4405
+ }, null, 8, ["value"])
4406
+ ]),
4407
+ _: 1
4408
+ })) : createCommentVNode("", true),
4409
+ !unref(data) || unref(data).entries.length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
4410
+ key: 1,
4411
+ icon: "i-lucide-shield-check",
4412
+ text: "Nothing quarantined. Tests you quarantine appear here with their progress back out."
4413
+ })) : (openBlock(), createBlock(_component_TableScroller, { key: 2 }, {
4414
+ default: withCtx(() => [
4415
+ createVNode("table", { class: "w-full text-sm" }, [
4416
+ createVNode("thead", { class: "text-left text-xs text-muted" }, [
4417
+ createVNode("tr", null, [
4418
+ createVNode("th", { class: "px-3 py-2" }, "Test"),
4419
+ createVNode("th", { class: "px-3 py-2" }, "Reason"),
4420
+ createVNode("th", { class: "px-3 py-2 whitespace-nowrap" }, "Streak"),
4421
+ createVNode("th", { class: "px-3 py-2 whitespace-nowrap" }, "Age"),
4422
+ createVNode("th", { class: "px-3 py-2 text-right" }, "Actions")
4423
+ ])
4424
+ ]),
4425
+ createVNode("tbody", null, [
4426
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(data).entries, (entry) => {
4427
+ return openBlock(), createBlock("tr", {
4428
+ key: entry.id,
4429
+ class: "border-t border-default"
4430
+ }, [
4431
+ createVNode("td", { class: "px-3 py-2 min-w-0" }, [
4432
+ createVNode(_component_NuxtLink, {
4433
+ to: `/test-cases/${entry.testCaseId}`,
4434
+ class: "text-primary hover:underline font-medium"
4435
+ }, {
4436
+ default: withCtx(() => [
4437
+ createTextVNode(toDisplayString(entry.title), 1)
4438
+ ]),
4439
+ _: 2
4440
+ }, 1032, ["to"]),
4441
+ createVNode(_component_TestMetaBadges, {
4442
+ tags: entry.tags,
4443
+ meta: { owner: entry.owner ?? void 0 },
4444
+ "max-tags": 3,
4445
+ class: "ml-1"
4446
+ }, null, 8, ["tags", "meta"]),
4447
+ createVNode("div", { class: "text-xs text-muted" }, [
4448
+ createVNode(_component_OpenInIdeLink, {
4449
+ "file-path": entry.filePath,
4450
+ "project-key": __props.projectId,
4451
+ "project-name": __props.projectName
4452
+ }, null, 8, ["file-path", "project-key", "project-name"])
4453
+ ])
4454
+ ]),
4455
+ createVNode("td", { class: "px-3 py-2 text-muted" }, toDisplayString(entry.reason || "—"), 1),
4456
+ createVNode("td", { class: "px-3 py-2 whitespace-nowrap" }, [
4457
+ entry.releaseProposed ? (openBlock(), createBlock(_component_UBadge, {
4458
+ key: 0,
4459
+ color: "success",
4460
+ variant: "soft",
4461
+ size: "xs"
4462
+ }, {
4463
+ default: withCtx(() => [
4464
+ createTextVNode(toDisplayString(entry.consecutivePasses) + " green — ready ", 1)
4465
+ ]),
4466
+ _: 2
4467
+ }, 1024)) : entry.runsSinceQuarantine === 0 ? (openBlock(), createBlock("span", {
4468
+ key: 1,
4469
+ class: "text-xs text-muted"
4470
+ }, "not run yet")) : (openBlock(), createBlock("span", {
4471
+ key: 2,
4472
+ class: "text-xs"
4473
+ }, toDisplayString(entry.consecutivePasses) + " / " + toDisplayString(unref(data).releaseAfterConsecutivePasses), 1))
4474
+ ]),
4475
+ createVNode("td", { class: "px-3 py-2 whitespace-nowrap text-muted" }, toDisplayString(formatAge(entry.ageMs)), 1),
4476
+ createVNode("td", { class: "px-3 py-2 text-right" }, [
4477
+ createVNode(_component_UButton, {
4478
+ size: "xs",
4479
+ color: entry.releaseProposed ? "primary" : "neutral",
4480
+ variant: "soft",
4481
+ loading: unref(busy) === entry.testCaseId,
4482
+ onClick: ($event) => release(entry.testCaseId)
4483
+ }, {
4484
+ default: withCtx(() => [
4485
+ createTextVNode(" Release ")
4486
+ ]),
4487
+ _: 1
4488
+ }, 8, ["color", "loading", "onClick"])
4489
+ ])
4490
+ ]);
4491
+ }), 128))
4492
+ ])
4493
+ ])
4494
+ ]),
4495
+ _: 1
4496
+ }))
4497
+ ], 64))
4498
+ ];
4499
+ }
4500
+ }),
4501
+ _: 1
4502
+ }, _parent));
4503
+ if (unref(data) && unref(data).candidates.length > 0) {
4504
+ _push(ssrRenderComponent(_component_SectionCard, {
4505
+ title: "Worth quarantining",
4506
+ icon: "i-lucide-lightbulb",
4507
+ count: unref(data).candidates.length
4508
+ }, {
4509
+ subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
4510
+ if (_push2) {
4511
+ _push2(` Ranked by the CI minutes their flakiness wastes, not by how often they flake — a test that flakes constantly but finishes instantly costs nothing. `);
4512
+ } else {
4513
+ return [
4514
+ createTextVNode(" Ranked by the CI minutes their flakiness wastes, not by how often they flake — a test that flakes constantly but finishes instantly costs nothing. ")
4515
+ ];
4516
+ }
4517
+ }),
4518
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
4519
+ if (_push2) {
4520
+ _push2(ssrRenderComponent(_component_TableScroller, null, {
4521
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
4522
+ if (_push3) {
4523
+ _push3(`<table class="w-full text-sm"${_scopeId2}><tbody${_scopeId2}><!--[-->`);
4524
+ ssrRenderList(unref(data).candidates, (candidate) => {
4525
+ _push3(`<tr class="border-t border-default"${_scopeId2}><td class="px-3 py-2 min-w-0"${_scopeId2}>`);
4526
+ _push3(ssrRenderComponent(_component_NuxtLink, {
4527
+ to: `/test-cases/${candidate.testCaseId}`,
4528
+ class: "text-primary hover:underline font-medium"
4529
+ }, {
4530
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
4531
+ if (_push4) {
4532
+ _push4(`${ssrInterpolate(candidate.title)}`);
4533
+ } else {
4534
+ return [
4535
+ createTextVNode(toDisplayString(candidate.title), 1)
4536
+ ];
4537
+ }
4538
+ }),
4539
+ _: 2
4540
+ }, _parent3, _scopeId2));
4541
+ _push3(`<div class="text-xs text-muted"${_scopeId2}>${ssrInterpolate(candidate.rationale)}</div></td><td class="px-3 py-2 text-right whitespace-nowrap"${_scopeId2}>`);
4542
+ _push3(ssrRenderComponent(_component_UButton, {
4543
+ size: "xs",
4544
+ color: "neutral",
4545
+ variant: "soft",
4546
+ loading: unref(busy) === candidate.testCaseId,
4547
+ onClick: ($event) => quarantine(candidate.testCaseId, candidate.rationale)
4548
+ }, {
4549
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
4550
+ if (_push4) {
4551
+ _push4(` Quarantine `);
4552
+ } else {
4553
+ return [
4554
+ createTextVNode(" Quarantine ")
4555
+ ];
4556
+ }
4557
+ }),
4558
+ _: 2
4559
+ }, _parent3, _scopeId2));
4560
+ _push3(`</td></tr>`);
4561
+ });
4562
+ _push3(`<!--]--></tbody></table>`);
4563
+ } else {
4564
+ return [
4565
+ createVNode("table", { class: "w-full text-sm" }, [
4566
+ createVNode("tbody", null, [
4567
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(data).candidates, (candidate) => {
4568
+ return openBlock(), createBlock("tr", {
4569
+ key: candidate.testCaseId,
4570
+ class: "border-t border-default"
4571
+ }, [
4572
+ createVNode("td", { class: "px-3 py-2 min-w-0" }, [
4573
+ createVNode(_component_NuxtLink, {
4574
+ to: `/test-cases/${candidate.testCaseId}`,
4575
+ class: "text-primary hover:underline font-medium"
4576
+ }, {
4577
+ default: withCtx(() => [
4578
+ createTextVNode(toDisplayString(candidate.title), 1)
4579
+ ]),
4580
+ _: 2
4581
+ }, 1032, ["to"]),
4582
+ createVNode("div", { class: "text-xs text-muted" }, toDisplayString(candidate.rationale), 1)
4583
+ ]),
4584
+ createVNode("td", { class: "px-3 py-2 text-right whitespace-nowrap" }, [
4585
+ createVNode(_component_UButton, {
4586
+ size: "xs",
4587
+ color: "neutral",
4588
+ variant: "soft",
4589
+ loading: unref(busy) === candidate.testCaseId,
4590
+ onClick: ($event) => quarantine(candidate.testCaseId, candidate.rationale)
4591
+ }, {
4592
+ default: withCtx(() => [
4593
+ createTextVNode(" Quarantine ")
4594
+ ]),
4595
+ _: 1
4596
+ }, 8, ["loading", "onClick"])
4597
+ ])
4598
+ ]);
4599
+ }), 128))
4600
+ ])
4601
+ ])
4602
+ ];
4603
+ }
4604
+ }),
4605
+ _: 1
4606
+ }, _parent2, _scopeId));
4607
+ } else {
4608
+ return [
4609
+ createVNode(_component_TableScroller, null, {
4610
+ default: withCtx(() => [
4611
+ createVNode("table", { class: "w-full text-sm" }, [
4612
+ createVNode("tbody", null, [
4613
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(data).candidates, (candidate) => {
4614
+ return openBlock(), createBlock("tr", {
4615
+ key: candidate.testCaseId,
4616
+ class: "border-t border-default"
4617
+ }, [
4618
+ createVNode("td", { class: "px-3 py-2 min-w-0" }, [
4619
+ createVNode(_component_NuxtLink, {
4620
+ to: `/test-cases/${candidate.testCaseId}`,
4621
+ class: "text-primary hover:underline font-medium"
4622
+ }, {
4623
+ default: withCtx(() => [
4624
+ createTextVNode(toDisplayString(candidate.title), 1)
4625
+ ]),
4626
+ _: 2
4627
+ }, 1032, ["to"]),
4628
+ createVNode("div", { class: "text-xs text-muted" }, toDisplayString(candidate.rationale), 1)
4629
+ ]),
4630
+ createVNode("td", { class: "px-3 py-2 text-right whitespace-nowrap" }, [
4631
+ createVNode(_component_UButton, {
4632
+ size: "xs",
4633
+ color: "neutral",
4634
+ variant: "soft",
4635
+ loading: unref(busy) === candidate.testCaseId,
4636
+ onClick: ($event) => quarantine(candidate.testCaseId, candidate.rationale)
4637
+ }, {
4638
+ default: withCtx(() => [
4639
+ createTextVNode(" Quarantine ")
4640
+ ]),
4641
+ _: 1
4642
+ }, 8, ["loading", "onClick"])
4643
+ ])
4644
+ ]);
4645
+ }), 128))
4646
+ ])
4647
+ ])
4648
+ ]),
4649
+ _: 1
4650
+ })
4651
+ ];
4652
+ }
4653
+ }),
4654
+ _: 1
4655
+ }, _parent));
4656
+ } else {
4657
+ _push(`<!---->`);
4658
+ }
4659
+ _push(`</div>`);
3879
4660
  };
3880
4661
  }
3881
4662
  });
3882
4663
  const _sfc_setup$3 = _sfc_main$3.setup;
3883
4664
  _sfc_main$3.setup = (props, ctx) => {
3884
4665
  const ssrContext = useSSRContext();
3885
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/SpecHealthTable.vue");
4666
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/QuarantineTable.vue");
3886
4667
  return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
3887
4668
  };
3888
- const __nuxt_component_35 = Object.assign(_sfc_main$3, { __name: "SpecHealthTable" });
4669
+ const __nuxt_component_37 = Object.assign(_sfc_main$3, { __name: "QuarantineTable" });
3889
4670
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3890
4671
  __name: "MarkerFormModal",
3891
4672
  __ssrInlineRender: true,
@@ -4011,14 +4792,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4011
4792
  return (_ctx, _push, _parent, _attrs) => {
4012
4793
  const _component_SectionCard = __nuxt_component_11;
4013
4794
  const _component_UButton = _sfc_main$k;
4014
- const _component_EmptyState = __nuxt_component_8;
4795
+ const _component_EmptyState = __nuxt_component_9;
4015
4796
  const _component_MarkerBadge = __nuxt_component_5$1;
4016
4797
  const _component_UBadge = _sfc_main$7$1;
4017
- const _component_UTable = _sfc_main$g;
4798
+ const _component_UTable = _sfc_main$h;
4018
4799
  const _component_UIcon = _sfc_main$p;
4019
4800
  const _component_MarkerFormModal = __nuxt_component_7;
4020
4801
  const _component_ClientOnly = __nuxt_component_7$1;
4021
- const _component_UModal = _sfc_main$l;
4802
+ const _component_UModal = _sfc_main$m;
4022
4803
  _push(ssrRenderComponent(_component_SectionCard, mergeProps({
4023
4804
  title: "Timeline markers",
4024
4805
  count: __props.markers.length,
@@ -4518,7 +5299,7 @@ _sfc_main$1.setup = (props, ctx) => {
4518
5299
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/ProjectTimeline.vue");
4519
5300
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
4520
5301
  };
4521
- const __nuxt_component_37 = Object.assign(_sfc_main$1, { __name: "ProjectTimeline" });
5302
+ const __nuxt_component_39 = Object.assign(_sfc_main$1, { __name: "ProjectTimeline" });
4522
5303
  const _sfc_main = /* @__PURE__ */ defineComponent({
4523
5304
  __name: "index",
4524
5305
  __ssrInlineRender: true,
@@ -4539,6 +5320,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4539
5320
  const { isAdmin, isReporter } = useAuth();
4540
5321
  const runtimeConfig = useRuntimeConfig();
4541
5322
  const canDelete = computed(() => !runtimeConfig.public.authEnabled || isAdmin.value);
5323
+ const canImport = canDelete;
4542
5324
  const showDeleteProjectModal = ref(false);
4543
5325
  const deleteProjectConfirmInput = ref("");
4544
5326
  ref(false);
@@ -4623,6 +5405,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4623
5405
  "test-cases",
4624
5406
  "compare",
4625
5407
  "spec-health",
5408
+ "quarantine",
4626
5409
  "timeline",
4627
5410
  "members"
4628
5411
  ];
@@ -4661,6 +5444,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4661
5444
  },
4662
5445
  { label: "Compare", icon: "i-lucide-git-compare-arrows", value: "compare", slot: "compare" },
4663
5446
  { label: "Spec health", icon: "i-lucide-table-2", value: "spec-health", slot: "spec-health" },
5447
+ { label: "Quarantine", icon: "i-lucide-shield-alert", value: "quarantine", slot: "quarantine" },
4664
5448
  {
4665
5449
  label: `Timeline${markers.value.length ? ` (${markers.value.length})` : ""}`,
4666
5450
  icon: "i-lucide-milestone",
@@ -4967,43 +5751,45 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4967
5751
  ];
4968
5752
  return (_ctx, _push, _parent, _attrs) => {
4969
5753
  const _component_UDashboardPanel = _sfc_main$1$1;
4970
- const _component_UDashboardNavbar = _sfc_main$j;
5754
+ const _component_UDashboardNavbar = _sfc_main$l;
4971
5755
  const _component_UDashboardSidebarCollapse = _sfc_main$1$2;
4972
- const _component_BreadcrumbNav = __nuxt_component_3;
5756
+ const _component_BreadcrumbNav = __nuxt_component_3$1;
4973
5757
  const _component_NavbarActions = __nuxt_component_4$1;
4974
5758
  const _component_SubscribeBell = __nuxt_component_5;
4975
5759
  const _component_TagBadge = __nuxt_component_4;
4976
- const _component_USelect = _sfc_main$b;
4977
- const _component_UTabs = _sfc_main$c;
5760
+ const _component_USelect = _sfc_main$c;
5761
+ const _component_UTabs = _sfc_main$d;
4978
5762
  const _component_ChartCard = __nuxt_component_0;
4979
5763
  const _component_TestRunsChart = __nuxt_component_10;
4980
- const _component_UCard = _sfc_main$d;
4981
- const _component_USwitch = _sfc_main$h;
5764
+ const _component_UCard = _sfc_main$e;
5765
+ const _component_USwitch = _sfc_main$i;
4982
5766
  const _component_HelpHint = __nuxt_component_2;
4983
5767
  const _component_UButton = _sfc_main$k;
4984
- const _component_UTable = _sfc_main$g;
4985
- const _component_RunStatusBadge = __nuxt_component_13$1;
4986
- const _component_UTooltip = _sfc_main$i;
5768
+ const _component_UTable = _sfc_main$h;
5769
+ const _component_RunStatusBadge = __nuxt_component_13;
5770
+ const _component_UTooltip = _sfc_main$j;
4987
5771
  const _component_UIcon = _sfc_main$p;
4988
- const _component_BrowserBadge = __nuxt_component_2$1;
4989
- const _component_TestStatusBar = __nuxt_component_13;
4990
- const _component_RunReports = __nuxt_component_14;
4991
- const _component_EmptyState = __nuxt_component_8;
4992
- const _component_DocLink = __nuxt_component_9;
4993
- const _component_ClusterMergeSuggestions = __nuxt_component_24;
4994
- const _component_FailureClustersList = __nuxt_component_25;
4995
- const _component_FlakyTestsList = __nuxt_component_26;
5772
+ const _component_BrowserBadge = __nuxt_component_3;
5773
+ const _component_UBadge = _sfc_main$7$1;
5774
+ const _component_TestStatusBar = __nuxt_component_14$1;
5775
+ const _component_DurationValue = __nuxt_component_14;
5776
+ const _component_RunReports = __nuxt_component_15;
5777
+ const _component_EmptyState = __nuxt_component_9;
5778
+ const _component_DocLink = __nuxt_component_9$1;
5779
+ const _component_ClusterMergeSuggestions = __nuxt_component_26;
5780
+ const _component_FailureClustersList = __nuxt_component_27;
5781
+ const _component_FlakyTestsList = __nuxt_component_28;
4996
5782
  const _component_UInput = _sfc_main$d$1;
4997
5783
  const _component_LoadingState = __nuxt_component_1;
4998
- const _component_PerformanceTrendChart = __nuxt_component_29;
5784
+ const _component_PerformanceTrendChart = __nuxt_component_31;
4999
5785
  const _component_OpenInIdeLink = __nuxt_component_1$1;
5000
- const _component_TimeoutOpportunitiesTable = __nuxt_component_31;
5001
- const _component_USelectMenu = _sfc_main$f;
5002
- const _component_UBadge = _sfc_main$7$1;
5003
- const _component_ProjectTestCasesTable = __nuxt_component_34;
5004
- const _component_SpecHealthTable = __nuxt_component_35;
5005
- const _component_UCheckbox = _sfc_main$e;
5006
- const _component_ProjectTimeline = __nuxt_component_37;
5786
+ const _component_TimeoutOpportunitiesTable = __nuxt_component_33;
5787
+ const _component_USelectMenu = _sfc_main$g;
5788
+ const _component_ProjectTestCasesTable = __nuxt_component_35;
5789
+ const _component_SpecHealthTable = __nuxt_component_36;
5790
+ const _component_QuarantineTable = __nuxt_component_37;
5791
+ const _component_UCheckbox = _sfc_main$f;
5792
+ const _component_ProjectTimeline = __nuxt_component_39;
5007
5793
  const _component_ClientOnly = __nuxt_component_7$1;
5008
5794
  _push(`<!--[-->`);
5009
5795
  _push(ssrRenderComponent(_component_UDashboardPanel, { id: "project-detail" }, {
@@ -5050,6 +5836,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5050
5836
  }
5051
5837
  }
5052
5838
  ] : [],
5839
+ ...unref(canImport) ? [
5840
+ {
5841
+ label: "Import",
5842
+ icon: "i-lucide-import",
5843
+ variant: "outline",
5844
+ to: `/projects/${unref(projectId)}/import`
5845
+ }
5846
+ ] : [],
5053
5847
  {
5054
5848
  label: "Edit",
5055
5849
  icon: "i-lucide-pencil",
@@ -5093,6 +5887,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5093
5887
  }
5094
5888
  }
5095
5889
  ] : [],
5890
+ ...unref(canImport) ? [
5891
+ {
5892
+ label: "Import",
5893
+ icon: "i-lucide-import",
5894
+ variant: "outline",
5895
+ to: `/projects/${unref(projectId)}/import`
5896
+ }
5897
+ ] : [],
5096
5898
  {
5097
5899
  label: "Edit",
5098
5900
  icon: "i-lucide-pencil",
@@ -5144,6 +5946,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5144
5946
  }
5145
5947
  }
5146
5948
  ] : [],
5949
+ ...unref(canImport) ? [
5950
+ {
5951
+ label: "Import",
5952
+ icon: "i-lucide-import",
5953
+ variant: "outline",
5954
+ to: `/projects/${unref(projectId)}/import`
5955
+ }
5956
+ ] : [],
5147
5957
  {
5148
5958
  label: "Edit",
5149
5959
  icon: "i-lucide-pencil",
@@ -5259,7 +6069,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5259
6069
  ssrRenderList(unref(availableEnvironments), (env) => {
5260
6070
  _push4(`<button type="button" class="${ssrRenderClass([
5261
6071
  "text-xs font-medium px-2 py-1 rounded border cursor-pointer focus:outline-none transition-colors",
5262
- isEnvironmentFilterActive(env) ? "bg-blue-600 text-white border-blue-600" : "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 border-blue-300 dark:border-blue-700 hover:bg-blue-200 dark:hover:bg-blue-800"
6072
+ isEnvironmentFilterActive(env) ? "bg-blue-100 text-blue-700 border-blue-300 dark:bg-blue-900/40 dark:text-blue-300 dark:border-blue-700" : "bg-zinc-100 text-zinc-500 border-zinc-200 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:border-zinc-700 dark:hover:bg-zinc-700"
5263
6073
  ])}"${_scopeId3}>${ssrInterpolate(env)}</button>`);
5264
6074
  });
5265
6075
  _push4(`<!--]-->`);
@@ -5465,16 +6275,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5465
6275
  "environment-cell": withCtx(({ row }, _push5, _parent5, _scopeId4) => {
5466
6276
  if (_push5) {
5467
6277
  if (row.original.environment) {
5468
- _push5(`<span class="text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 px-1.5 py-0.5 rounded"${_scopeId4}>${ssrInterpolate(row.original.environment)}</span>`);
6278
+ _push5(ssrRenderComponent(_component_UBadge, {
6279
+ color: "info",
6280
+ variant: "subtle",
6281
+ size: "sm"
6282
+ }, {
6283
+ default: withCtx((_4, _push6, _parent6, _scopeId5) => {
6284
+ if (_push6) {
6285
+ _push6(`${ssrInterpolate(row.original.environment)}`);
6286
+ } else {
6287
+ return [
6288
+ createTextVNode(toDisplayString(row.original.environment), 1)
6289
+ ];
6290
+ }
6291
+ }),
6292
+ _: 2
6293
+ }, _parent5, _scopeId4));
5469
6294
  } else {
5470
6295
  _push5(`<!---->`);
5471
6296
  }
5472
6297
  } else {
5473
6298
  return [
5474
- row.original.environment ? (openBlock(), createBlock("span", {
6299
+ row.original.environment ? (openBlock(), createBlock(_component_UBadge, {
5475
6300
  key: 0,
5476
- class: "text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 px-1.5 py-0.5 rounded"
5477
- }, toDisplayString(row.original.environment), 1)) : createCommentVNode("", true)
6301
+ color: "info",
6302
+ variant: "subtle",
6303
+ size: "sm"
6304
+ }, {
6305
+ default: withCtx(() => [
6306
+ createTextVNode(toDisplayString(row.original.environment), 1)
6307
+ ]),
6308
+ _: 2
6309
+ }, 1024)) : createCommentVNode("", true)
5478
6310
  ];
5479
6311
  }
5480
6312
  }),
@@ -5525,7 +6357,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5525
6357
  "did-not-run": row.original.didNotRunTests ?? 0,
5526
6358
  total: row.original.totalTests
5527
6359
  }, null, _parent5, _scopeId4));
5528
- _push5(`<span class="text-xs text-gray-500"${_scopeId4}>${ssrInterpolate(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.duration))}</span></div>`);
6360
+ _push5(ssrRenderComponent(_component_DurationValue, {
6361
+ ms: row.original.duration,
6362
+ class: "text-xs text-gray-500"
6363
+ }, null, _parent5, _scopeId4));
6364
+ _push5(`</div>`);
5529
6365
  } else {
5530
6366
  return [
5531
6367
  createVNode("div", { class: "space-y-1" }, [
@@ -5537,7 +6373,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5537
6373
  "did-not-run": row.original.didNotRunTests ?? 0,
5538
6374
  total: row.original.totalTests
5539
6375
  }, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"]),
5540
- createVNode("span", { class: "text-xs text-gray-500" }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.duration)), 1)
6376
+ createVNode(_component_DurationValue, {
6377
+ ms: row.original.duration,
6378
+ class: "text-xs text-gray-500"
6379
+ }, null, 8, ["ms"])
5541
6380
  ])
5542
6381
  ];
5543
6382
  }
@@ -5708,7 +6547,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5708
6547
  type: "button",
5709
6548
  class: [
5710
6549
  "text-xs font-medium px-2 py-1 rounded border cursor-pointer focus:outline-none transition-colors",
5711
- isEnvironmentFilterActive(env) ? "bg-blue-600 text-white border-blue-600" : "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 border-blue-300 dark:border-blue-700 hover:bg-blue-200 dark:hover:bg-blue-800"
6550
+ isEnvironmentFilterActive(env) ? "bg-blue-100 text-blue-700 border-blue-300 dark:bg-blue-900/40 dark:text-blue-300 dark:border-blue-700" : "bg-zinc-100 text-zinc-500 border-zinc-200 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:border-zinc-700 dark:hover:bg-zinc-700"
5712
6551
  ],
5713
6552
  onClick: ($event) => toggleEnvironmentFilter(env)
5714
6553
  }, toDisplayString(env), 11, ["onClick"]);
@@ -5824,10 +6663,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5824
6663
  createVNode("span", { class: "text-xs text-gray-600" }, toDisplayString(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(row.original.startTime)), 1)
5825
6664
  ]),
5826
6665
  "environment-cell": withCtx(({ row }) => [
5827
- row.original.environment ? (openBlock(), createBlock("span", {
6666
+ row.original.environment ? (openBlock(), createBlock(_component_UBadge, {
5828
6667
  key: 0,
5829
- class: "text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 px-1.5 py-0.5 rounded"
5830
- }, toDisplayString(row.original.environment), 1)) : createCommentVNode("", true)
6668
+ color: "info",
6669
+ variant: "subtle",
6670
+ size: "sm"
6671
+ }, {
6672
+ default: withCtx(() => [
6673
+ createTextVNode(toDisplayString(row.original.environment), 1)
6674
+ ]),
6675
+ _: 2
6676
+ }, 1024)) : createCommentVNode("", true)
5831
6677
  ]),
5832
6678
  "metadata-cell": withCtx(({ row }) => [
5833
6679
  row.original.metadata?.scm ? (openBlock(), createBlock("div", {
@@ -5854,7 +6700,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5854
6700
  "did-not-run": row.original.didNotRunTests ?? 0,
5855
6701
  total: row.original.totalTests
5856
6702
  }, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"]),
5857
- createVNode("span", { class: "text-xs text-gray-500" }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.duration)), 1)
6703
+ createVNode(_component_DurationValue, {
6704
+ ms: row.original.duration,
6705
+ class: "text-xs text-gray-500"
6706
+ }, null, 8, ["ms"])
5858
6707
  ])
5859
6708
  ]),
5860
6709
  "reports-cell": withCtx(({ row }) => [
@@ -5966,7 +6815,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5966
6815
  type: "button",
5967
6816
  class: [
5968
6817
  "text-xs font-medium px-2 py-1 rounded border cursor-pointer focus:outline-none transition-colors",
5969
- isEnvironmentFilterActive(env) ? "bg-blue-600 text-white border-blue-600" : "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 border-blue-300 dark:border-blue-700 hover:bg-blue-200 dark:hover:bg-blue-800"
6818
+ isEnvironmentFilterActive(env) ? "bg-blue-100 text-blue-700 border-blue-300 dark:bg-blue-900/40 dark:text-blue-300 dark:border-blue-700" : "bg-zinc-100 text-zinc-500 border-zinc-200 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:border-zinc-700 dark:hover:bg-zinc-700"
5970
6819
  ],
5971
6820
  onClick: ($event) => toggleEnvironmentFilter(env)
5972
6821
  }, toDisplayString(env), 11, ["onClick"]);
@@ -6082,10 +6931,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6082
6931
  createVNode("span", { class: "text-xs text-gray-600" }, toDisplayString(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(row.original.startTime)), 1)
6083
6932
  ]),
6084
6933
  "environment-cell": withCtx(({ row }) => [
6085
- row.original.environment ? (openBlock(), createBlock("span", {
6934
+ row.original.environment ? (openBlock(), createBlock(_component_UBadge, {
6086
6935
  key: 0,
6087
- class: "text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 px-1.5 py-0.5 rounded"
6088
- }, toDisplayString(row.original.environment), 1)) : createCommentVNode("", true)
6936
+ color: "info",
6937
+ variant: "subtle",
6938
+ size: "sm"
6939
+ }, {
6940
+ default: withCtx(() => [
6941
+ createTextVNode(toDisplayString(row.original.environment), 1)
6942
+ ]),
6943
+ _: 2
6944
+ }, 1024)) : createCommentVNode("", true)
6089
6945
  ]),
6090
6946
  "metadata-cell": withCtx(({ row }) => [
6091
6947
  row.original.metadata?.scm ? (openBlock(), createBlock("div", {
@@ -6112,7 +6968,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6112
6968
  "did-not-run": row.original.didNotRunTests ?? 0,
6113
6969
  total: row.original.totalTests
6114
6970
  }, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"]),
6115
- createVNode("span", { class: "text-xs text-gray-500" }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.duration)), 1)
6971
+ createVNode(_component_DurationValue, {
6972
+ ms: row.original.duration,
6973
+ class: "text-xs text-gray-500"
6974
+ }, null, 8, ["ms"])
6116
6975
  ])
6117
6976
  ]),
6118
6977
  "reports-cell": withCtx(({ row }) => [
@@ -6593,6 +7452,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6593
7452
  } else {
6594
7453
  _push5(ssrRenderComponent(_component_UBadge, {
6595
7454
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
7455
+ variant: "subtle",
6596
7456
  class: "capitalize"
6597
7457
  }, {
6598
7458
  default: withCtx((_4, _push6, _parent6, _scopeId5) => {
@@ -6615,6 +7475,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6615
7475
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
6616
7476
  key: 1,
6617
7477
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
7478
+ variant: "subtle",
6618
7479
  class: "capitalize"
6619
7480
  }, {
6620
7481
  default: withCtx(() => [
@@ -6632,6 +7493,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6632
7493
  } else {
6633
7494
  _push5(ssrRenderComponent(_component_UBadge, {
6634
7495
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
7496
+ variant: "subtle",
6635
7497
  class: "capitalize"
6636
7498
  }, {
6637
7499
  default: withCtx((_4, _push6, _parent6, _scopeId5) => {
@@ -6654,6 +7516,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6654
7516
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
6655
7517
  key: 1,
6656
7518
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
7519
+ variant: "subtle",
6657
7520
  class: "capitalize"
6658
7521
  }, {
6659
7522
  default: withCtx(() => [
@@ -6667,13 +7530,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6667
7530
  "durationA-cell": withCtx(({ row }, _push5, _parent5, _scopeId4) => {
6668
7531
  if (_push5) {
6669
7532
  if (row.original.durationA !== null) {
6670
- _push5(`<span${_scopeId4}>${ssrInterpolate(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA))}</span>`);
7533
+ _push5(ssrRenderComponent(_component_DurationValue, {
7534
+ ms: row.original.durationA
7535
+ }, null, _parent5, _scopeId4));
6671
7536
  } else {
6672
7537
  _push5(`<span class="text-gray-400"${_scopeId4}>—</span>`);
6673
7538
  }
6674
7539
  } else {
6675
7540
  return [
6676
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
7541
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
7542
+ key: 0,
7543
+ ms: row.original.durationA
7544
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
6677
7545
  key: 1,
6678
7546
  class: "text-gray-400"
6679
7547
  }, "—"))
@@ -6683,13 +7551,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6683
7551
  "durationB-cell": withCtx(({ row }, _push5, _parent5, _scopeId4) => {
6684
7552
  if (_push5) {
6685
7553
  if (row.original.durationB !== null) {
6686
- _push5(`<span${_scopeId4}>${ssrInterpolate(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB))}</span>`);
7554
+ _push5(ssrRenderComponent(_component_DurationValue, {
7555
+ ms: row.original.durationB
7556
+ }, null, _parent5, _scopeId4));
6687
7557
  } else {
6688
7558
  _push5(`<span class="text-gray-400"${_scopeId4}>—</span>`);
6689
7559
  }
6690
7560
  } else {
6691
7561
  return [
6692
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
7562
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
7563
+ key: 0,
7564
+ ms: row.original.durationB
7565
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
6693
7566
  key: 1,
6694
7567
  class: "text-gray-400"
6695
7568
  }, "—"))
@@ -6703,7 +7576,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6703
7576
  } else {
6704
7577
  _push5(`<span class="${ssrRenderClass(
6705
7578
  row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
6706
- )}"${_scopeId4}>${ssrInterpolate(row.original.delta > 0 ? "+" : "")}${ssrInterpolate(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta))}</span>`);
7579
+ )}"${_scopeId4}>${ssrInterpolate(row.original.delta > 0 ? "+" : "")}`);
7580
+ _push5(ssrRenderComponent(_component_DurationValue, {
7581
+ ms: row.original.delta,
7582
+ "unit-class": "opacity-60"
7583
+ }, null, _parent5, _scopeId4));
7584
+ _push5(`</span>`);
6707
7585
  }
6708
7586
  } else {
6709
7587
  return [
@@ -6713,7 +7591,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6713
7591
  }, "—")) : (openBlock(), createBlock("span", {
6714
7592
  key: 1,
6715
7593
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
6716
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
7594
+ }, [
7595
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
7596
+ createVNode(_component_DurationValue, {
7597
+ ms: row.original.delta,
7598
+ "unit-class": "opacity-60"
7599
+ }, null, 8, ["ms"])
7600
+ ], 2))
6717
7601
  ];
6718
7602
  }
6719
7603
  }),
@@ -6833,6 +7717,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6833
7717
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
6834
7718
  key: 1,
6835
7719
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
7720
+ variant: "subtle",
6836
7721
  class: "capitalize"
6837
7722
  }, {
6838
7723
  default: withCtx(() => [
@@ -6848,6 +7733,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6848
7733
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
6849
7734
  key: 1,
6850
7735
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
7736
+ variant: "subtle",
6851
7737
  class: "capitalize"
6852
7738
  }, {
6853
7739
  default: withCtx(() => [
@@ -6857,13 +7743,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6857
7743
  }, 1032, ["color"]))
6858
7744
  ]),
6859
7745
  "durationA-cell": withCtx(({ row }) => [
6860
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
7746
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
7747
+ key: 0,
7748
+ ms: row.original.durationA
7749
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
6861
7750
  key: 1,
6862
7751
  class: "text-gray-400"
6863
7752
  }, "—"))
6864
7753
  ]),
6865
7754
  "durationB-cell": withCtx(({ row }) => [
6866
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
7755
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
7756
+ key: 0,
7757
+ ms: row.original.durationB
7758
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
6867
7759
  key: 1,
6868
7760
  class: "text-gray-400"
6869
7761
  }, "—"))
@@ -6875,7 +7767,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6875
7767
  }, "—")) : (openBlock(), createBlock("span", {
6876
7768
  key: 1,
6877
7769
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
6878
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
7770
+ }, [
7771
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
7772
+ createVNode(_component_DurationValue, {
7773
+ ms: row.original.delta,
7774
+ "unit-class": "opacity-60"
7775
+ }, null, 8, ["ms"])
7776
+ ], 2))
6879
7777
  ]),
6880
7778
  "percentChange-cell": withCtx(({ row }) => [
6881
7779
  row.original.percentChange === null ? (openBlock(), createBlock("span", {
@@ -7123,6 +8021,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7123
8021
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7124
8022
  key: 1,
7125
8023
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
8024
+ variant: "subtle",
7126
8025
  class: "capitalize"
7127
8026
  }, {
7128
8027
  default: withCtx(() => [
@@ -7138,6 +8037,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7138
8037
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7139
8038
  key: 1,
7140
8039
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
8040
+ variant: "subtle",
7141
8041
  class: "capitalize"
7142
8042
  }, {
7143
8043
  default: withCtx(() => [
@@ -7147,13 +8047,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7147
8047
  }, 1032, ["color"]))
7148
8048
  ]),
7149
8049
  "durationA-cell": withCtx(({ row }) => [
7150
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
8050
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
8051
+ key: 0,
8052
+ ms: row.original.durationA
8053
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7151
8054
  key: 1,
7152
8055
  class: "text-gray-400"
7153
8056
  }, "—"))
7154
8057
  ]),
7155
8058
  "durationB-cell": withCtx(({ row }) => [
7156
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
8059
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
8060
+ key: 0,
8061
+ ms: row.original.durationB
8062
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7157
8063
  key: 1,
7158
8064
  class: "text-gray-400"
7159
8065
  }, "—"))
@@ -7165,7 +8071,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7165
8071
  }, "—")) : (openBlock(), createBlock("span", {
7166
8072
  key: 1,
7167
8073
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
7168
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
8074
+ }, [
8075
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
8076
+ createVNode(_component_DurationValue, {
8077
+ ms: row.original.delta,
8078
+ "unit-class": "opacity-60"
8079
+ }, null, 8, ["ms"])
8080
+ ], 2))
7169
8081
  ]),
7170
8082
  "percentChange-cell": withCtx(({ row }) => [
7171
8083
  row.original.percentChange === null ? (openBlock(), createBlock("span", {
@@ -7417,6 +8329,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7417
8329
  } else {
7418
8330
  _push5(ssrRenderComponent(_component_UBadge, {
7419
8331
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
8332
+ variant: "subtle",
7420
8333
  class: "capitalize"
7421
8334
  }, {
7422
8335
  default: withCtx((_4, _push6, _parent6, _scopeId5) => {
@@ -7439,6 +8352,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7439
8352
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7440
8353
  key: 1,
7441
8354
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
8355
+ variant: "subtle",
7442
8356
  class: "capitalize"
7443
8357
  }, {
7444
8358
  default: withCtx(() => [
@@ -7456,6 +8370,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7456
8370
  } else {
7457
8371
  _push5(ssrRenderComponent(_component_UBadge, {
7458
8372
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
8373
+ variant: "subtle",
7459
8374
  class: "capitalize"
7460
8375
  }, {
7461
8376
  default: withCtx((_4, _push6, _parent6, _scopeId5) => {
@@ -7478,6 +8393,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7478
8393
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7479
8394
  key: 1,
7480
8395
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
8396
+ variant: "subtle",
7481
8397
  class: "capitalize"
7482
8398
  }, {
7483
8399
  default: withCtx(() => [
@@ -7491,13 +8407,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7491
8407
  "durationA-cell": withCtx(({ row }, _push5, _parent5, _scopeId4) => {
7492
8408
  if (_push5) {
7493
8409
  if (row.original.durationA !== null) {
7494
- _push5(`<span${_scopeId4}>${ssrInterpolate(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA))}</span>`);
8410
+ _push5(ssrRenderComponent(_component_DurationValue, {
8411
+ ms: row.original.durationA
8412
+ }, null, _parent5, _scopeId4));
7495
8413
  } else {
7496
8414
  _push5(`<span class="text-gray-400"${_scopeId4}>—</span>`);
7497
8415
  }
7498
8416
  } else {
7499
8417
  return [
7500
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
8418
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
8419
+ key: 0,
8420
+ ms: row.original.durationA
8421
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7501
8422
  key: 1,
7502
8423
  class: "text-gray-400"
7503
8424
  }, "—"))
@@ -7507,13 +8428,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7507
8428
  "durationB-cell": withCtx(({ row }, _push5, _parent5, _scopeId4) => {
7508
8429
  if (_push5) {
7509
8430
  if (row.original.durationB !== null) {
7510
- _push5(`<span${_scopeId4}>${ssrInterpolate(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB))}</span>`);
8431
+ _push5(ssrRenderComponent(_component_DurationValue, {
8432
+ ms: row.original.durationB
8433
+ }, null, _parent5, _scopeId4));
7511
8434
  } else {
7512
8435
  _push5(`<span class="text-gray-400"${_scopeId4}>—</span>`);
7513
8436
  }
7514
8437
  } else {
7515
8438
  return [
7516
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
8439
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
8440
+ key: 0,
8441
+ ms: row.original.durationB
8442
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7517
8443
  key: 1,
7518
8444
  class: "text-gray-400"
7519
8445
  }, "—"))
@@ -7527,7 +8453,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7527
8453
  } else {
7528
8454
  _push5(`<span class="${ssrRenderClass(
7529
8455
  row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
7530
- )}"${_scopeId4}>${ssrInterpolate(row.original.delta > 0 ? "+" : "")}${ssrInterpolate(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta))}</span>`);
8456
+ )}"${_scopeId4}>${ssrInterpolate(row.original.delta > 0 ? "+" : "")}`);
8457
+ _push5(ssrRenderComponent(_component_DurationValue, {
8458
+ ms: row.original.delta,
8459
+ "unit-class": "opacity-60"
8460
+ }, null, _parent5, _scopeId4));
8461
+ _push5(`</span>`);
7531
8462
  }
7532
8463
  } else {
7533
8464
  return [
@@ -7537,7 +8468,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7537
8468
  }, "—")) : (openBlock(), createBlock("span", {
7538
8469
  key: 1,
7539
8470
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
7540
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
8471
+ }, [
8472
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
8473
+ createVNode(_component_DurationValue, {
8474
+ ms: row.original.delta,
8475
+ "unit-class": "opacity-60"
8476
+ }, null, 8, ["ms"])
8477
+ ], 2))
7541
8478
  ];
7542
8479
  }
7543
8480
  }),
@@ -7702,6 +8639,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7702
8639
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7703
8640
  key: 1,
7704
8641
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
8642
+ variant: "subtle",
7705
8643
  class: "capitalize"
7706
8644
  }, {
7707
8645
  default: withCtx(() => [
@@ -7717,6 +8655,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7717
8655
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7718
8656
  key: 1,
7719
8657
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
8658
+ variant: "subtle",
7720
8659
  class: "capitalize"
7721
8660
  }, {
7722
8661
  default: withCtx(() => [
@@ -7726,13 +8665,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7726
8665
  }, 1032, ["color"]))
7727
8666
  ]),
7728
8667
  "durationA-cell": withCtx(({ row }) => [
7729
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
8668
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
8669
+ key: 0,
8670
+ ms: row.original.durationA
8671
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7730
8672
  key: 1,
7731
8673
  class: "text-gray-400"
7732
8674
  }, "—"))
7733
8675
  ]),
7734
8676
  "durationB-cell": withCtx(({ row }) => [
7735
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
8677
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
8678
+ key: 0,
8679
+ ms: row.original.durationB
8680
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7736
8681
  key: 1,
7737
8682
  class: "text-gray-400"
7738
8683
  }, "—"))
@@ -7744,7 +8689,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7744
8689
  }, "—")) : (openBlock(), createBlock("span", {
7745
8690
  key: 1,
7746
8691
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
7747
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
8692
+ }, [
8693
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
8694
+ createVNode(_component_DurationValue, {
8695
+ ms: row.original.delta,
8696
+ "unit-class": "opacity-60"
8697
+ }, null, 8, ["ms"])
8698
+ ], 2))
7748
8699
  ]),
7749
8700
  "percentChange-cell": withCtx(({ row }) => [
7750
8701
  row.original.percentChange === null ? (openBlock(), createBlock("span", {
@@ -7919,6 +8870,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7919
8870
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7920
8871
  key: 1,
7921
8872
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
8873
+ variant: "subtle",
7922
8874
  class: "capitalize"
7923
8875
  }, {
7924
8876
  default: withCtx(() => [
@@ -7934,6 +8886,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7934
8886
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
7935
8887
  key: 1,
7936
8888
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
8889
+ variant: "subtle",
7937
8890
  class: "capitalize"
7938
8891
  }, {
7939
8892
  default: withCtx(() => [
@@ -7943,13 +8896,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7943
8896
  }, 1032, ["color"]))
7944
8897
  ]),
7945
8898
  "durationA-cell": withCtx(({ row }) => [
7946
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
8899
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
8900
+ key: 0,
8901
+ ms: row.original.durationA
8902
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7947
8903
  key: 1,
7948
8904
  class: "text-gray-400"
7949
8905
  }, "—"))
7950
8906
  ]),
7951
8907
  "durationB-cell": withCtx(({ row }) => [
7952
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
8908
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
8909
+ key: 0,
8910
+ ms: row.original.durationB
8911
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
7953
8912
  key: 1,
7954
8913
  class: "text-gray-400"
7955
8914
  }, "—"))
@@ -7961,7 +8920,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7961
8920
  }, "—")) : (openBlock(), createBlock("span", {
7962
8921
  key: 1,
7963
8922
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
7964
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
8923
+ }, [
8924
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
8925
+ createVNode(_component_DurationValue, {
8926
+ ms: row.original.delta,
8927
+ "unit-class": "opacity-60"
8928
+ }, null, 8, ["ms"])
8929
+ ], 2))
7965
8930
  ]),
7966
8931
  "percentChange-cell": withCtx(({ row }) => [
7967
8932
  row.original.percentChange === null ? (openBlock(), createBlock("span", {
@@ -8001,6 +8966,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8001
8966
  ];
8002
8967
  }
8003
8968
  }),
8969
+ quarantine: withCtx((_2, _push3, _parent3, _scopeId2) => {
8970
+ if (_push3) {
8971
+ _push3(ssrRenderComponent(_component_QuarantineTable, {
8972
+ "project-id": String(unref(projectId)),
8973
+ "project-name": unref(project)?.name
8974
+ }, null, _parent3, _scopeId2));
8975
+ } else {
8976
+ return [
8977
+ createVNode(_component_QuarantineTable, {
8978
+ "project-id": String(unref(projectId)),
8979
+ "project-name": unref(project)?.name
8980
+ }, null, 8, ["project-id", "project-name"])
8981
+ ];
8982
+ }
8983
+ }),
8004
8984
  members: withCtx((_2, _push3, _parent3, _scopeId2) => {
8005
8985
  if (_push3) {
8006
8986
  _push3(ssrRenderComponent(_component_UCard, null, {
@@ -8306,7 +9286,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8306
9286
  type: "button",
8307
9287
  class: [
8308
9288
  "text-xs font-medium px-2 py-1 rounded border cursor-pointer focus:outline-none transition-colors",
8309
- isEnvironmentFilterActive(env) ? "bg-blue-600 text-white border-blue-600" : "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 border-blue-300 dark:border-blue-700 hover:bg-blue-200 dark:hover:bg-blue-800"
9289
+ isEnvironmentFilterActive(env) ? "bg-blue-100 text-blue-700 border-blue-300 dark:bg-blue-900/40 dark:text-blue-300 dark:border-blue-700" : "bg-zinc-100 text-zinc-500 border-zinc-200 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:border-zinc-700 dark:hover:bg-zinc-700"
8310
9290
  ],
8311
9291
  onClick: ($event) => toggleEnvironmentFilter(env)
8312
9292
  }, toDisplayString(env), 11, ["onClick"]);
@@ -8422,10 +9402,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8422
9402
  createVNode("span", { class: "text-xs text-gray-600" }, toDisplayString(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(row.original.startTime)), 1)
8423
9403
  ]),
8424
9404
  "environment-cell": withCtx(({ row }) => [
8425
- row.original.environment ? (openBlock(), createBlock("span", {
9405
+ row.original.environment ? (openBlock(), createBlock(_component_UBadge, {
8426
9406
  key: 0,
8427
- class: "text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200 px-1.5 py-0.5 rounded"
8428
- }, toDisplayString(row.original.environment), 1)) : createCommentVNode("", true)
9407
+ color: "info",
9408
+ variant: "subtle",
9409
+ size: "sm"
9410
+ }, {
9411
+ default: withCtx(() => [
9412
+ createTextVNode(toDisplayString(row.original.environment), 1)
9413
+ ]),
9414
+ _: 2
9415
+ }, 1024)) : createCommentVNode("", true)
8429
9416
  ]),
8430
9417
  "metadata-cell": withCtx(({ row }) => [
8431
9418
  row.original.metadata?.scm ? (openBlock(), createBlock("div", {
@@ -8452,7 +9439,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8452
9439
  "did-not-run": row.original.didNotRunTests ?? 0,
8453
9440
  total: row.original.totalTests
8454
9441
  }, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"]),
8455
- createVNode("span", { class: "text-xs text-gray-500" }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.duration)), 1)
9442
+ createVNode(_component_DurationValue, {
9443
+ ms: row.original.duration,
9444
+ class: "text-xs text-gray-500"
9445
+ }, null, 8, ["ms"])
8456
9446
  ])
8457
9447
  ]),
8458
9448
  "reports-cell": withCtx(({ row }) => [
@@ -8767,6 +9757,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8767
9757
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
8768
9758
  key: 1,
8769
9759
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
9760
+ variant: "subtle",
8770
9761
  class: "capitalize"
8771
9762
  }, {
8772
9763
  default: withCtx(() => [
@@ -8782,6 +9773,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8782
9773
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
8783
9774
  key: 1,
8784
9775
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
9776
+ variant: "subtle",
8785
9777
  class: "capitalize"
8786
9778
  }, {
8787
9779
  default: withCtx(() => [
@@ -8791,13 +9783,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8791
9783
  }, 1032, ["color"]))
8792
9784
  ]),
8793
9785
  "durationA-cell": withCtx(({ row }) => [
8794
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
9786
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
9787
+ key: 0,
9788
+ ms: row.original.durationA
9789
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
8795
9790
  key: 1,
8796
9791
  class: "text-gray-400"
8797
9792
  }, "—"))
8798
9793
  ]),
8799
9794
  "durationB-cell": withCtx(({ row }) => [
8800
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
9795
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
9796
+ key: 0,
9797
+ ms: row.original.durationB
9798
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
8801
9799
  key: 1,
8802
9800
  class: "text-gray-400"
8803
9801
  }, "—"))
@@ -8809,7 +9807,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8809
9807
  }, "—")) : (openBlock(), createBlock("span", {
8810
9808
  key: 1,
8811
9809
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
8812
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
9810
+ }, [
9811
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
9812
+ createVNode(_component_DurationValue, {
9813
+ ms: row.original.delta,
9814
+ "unit-class": "opacity-60"
9815
+ }, null, 8, ["ms"])
9816
+ ], 2))
8813
9817
  ]),
8814
9818
  "percentChange-cell": withCtx(({ row }) => [
8815
9819
  row.original.percentChange === null ? (openBlock(), createBlock("span", {
@@ -8990,6 +9994,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8990
9994
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
8991
9995
  key: 1,
8992
9996
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
9997
+ variant: "subtle",
8993
9998
  class: "capitalize"
8994
9999
  }, {
8995
10000
  default: withCtx(() => [
@@ -9005,6 +10010,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9005
10010
  }, "—")) : (openBlock(), createBlock(_component_UBadge, {
9006
10011
  key: 1,
9007
10012
  color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
10013
+ variant: "subtle",
9008
10014
  class: "capitalize"
9009
10015
  }, {
9010
10016
  default: withCtx(() => [
@@ -9014,13 +10020,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9014
10020
  }, 1032, ["color"]))
9015
10021
  ]),
9016
10022
  "durationA-cell": withCtx(({ row }) => [
9017
- row.original.durationA !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationA)), 1)) : (openBlock(), createBlock("span", {
10023
+ row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
10024
+ key: 0,
10025
+ ms: row.original.durationA
10026
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
9018
10027
  key: 1,
9019
10028
  class: "text-gray-400"
9020
10029
  }, "—"))
9021
10030
  ]),
9022
10031
  "durationB-cell": withCtx(({ row }) => [
9023
- row.original.durationB !== null ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.durationB)), 1)) : (openBlock(), createBlock("span", {
10032
+ row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
10033
+ key: 0,
10034
+ ms: row.original.durationB
10035
+ }, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
9024
10036
  key: 1,
9025
10037
  class: "text-gray-400"
9026
10038
  }, "—"))
@@ -9032,7 +10044,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9032
10044
  }, "—")) : (openBlock(), createBlock("span", {
9033
10045
  key: 1,
9034
10046
  class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
9035
- }, toDisplayString(row.original.delta > 0 ? "+" : "") + toDisplayString(("formatDuration" in _ctx ? _ctx.formatDuration : unref(formatDuration))(row.original.delta)), 3))
10047
+ }, [
10048
+ createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
10049
+ createVNode(_component_DurationValue, {
10050
+ ms: row.original.delta,
10051
+ "unit-class": "opacity-60"
10052
+ }, null, 8, ["ms"])
10053
+ ], 2))
9036
10054
  ]),
9037
10055
  "percentChange-cell": withCtx(({ row }) => [
9038
10056
  row.original.percentChange === null ? (openBlock(), createBlock("span", {
@@ -9062,6 +10080,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9062
10080
  "project-id": String(unref(projectId))
9063
10081
  }, null, 8, ["project-id"])
9064
10082
  ]),
10083
+ quarantine: withCtx(() => [
10084
+ createVNode(_component_QuarantineTable, {
10085
+ "project-id": String(unref(projectId)),
10086
+ "project-name": unref(project)?.name
10087
+ }, null, 8, ["project-id", "project-name"])
10088
+ ]),
9065
10089
  members: withCtx(() => [
9066
10090
  createVNode(_component_UCard, null, {
9067
10091
  header: withCtx(() => [
@@ -9162,4 +10186,4 @@ _sfc_main.setup = (props, ctx) => {
9162
10186
  };
9163
10187
 
9164
10188
  export { _sfc_main as default };
9165
- //# sourceMappingURL=index-DVUtBexc.mjs.map
10189
+ //# sourceMappingURL=index-D7fe97l3.mjs.map