@piwitests/server 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{279D2RYp.js → 9ti9eNH9.js} +1 -1
  3. package/.output/public/_nuxt/{DcmZRa_F.js → B-zdP-D4.js} +1 -1
  4. package/.output/public/_nuxt/{eaVkJRSa.js → B1RmmOsM.js} +1 -1
  5. package/.output/public/_nuxt/{DprVVyUQ.js → B3Fsod9X.js} +1 -1
  6. package/.output/public/_nuxt/{HXerICAi.js → B3rirOqU.js} +34 -34
  7. package/.output/public/_nuxt/B3zmIJYb.js +1 -0
  8. package/.output/public/_nuxt/{CDk0q2hV.js → BAKUqW95.js} +2 -2
  9. package/.output/public/_nuxt/BG0KKQiT.js +7 -0
  10. package/.output/public/_nuxt/BGL_V7Y4.js +1 -0
  11. package/.output/public/_nuxt/{Jo8kRmHz.js → BGusFAvZ.js} +1 -1
  12. package/.output/public/_nuxt/{CGNkHojN.js → BNurUTla.js} +3 -3
  13. package/.output/public/_nuxt/BR5cR2Ot.js +1 -0
  14. package/.output/public/_nuxt/BTCh_0zN.js +1 -0
  15. package/.output/public/_nuxt/{ZFiQCMUB.js → BTVqMsA3.js} +1 -1
  16. package/.output/public/_nuxt/{BqV0l12c.js → B_13C0GF.js} +1 -1
  17. package/.output/public/_nuxt/BeDIjhoR.js +44 -0
  18. package/.output/public/_nuxt/{BDicZ1gQ.js → BerCW7Ug.js} +1 -1
  19. package/.output/public/_nuxt/BfTNbVc_.js +1 -0
  20. package/.output/public/_nuxt/BnbSEpXX.js +1 -0
  21. package/.output/public/_nuxt/Bo_dxehb.js +1 -0
  22. package/.output/public/_nuxt/{ClOqkAcc.js → BpBHls4-.js} +1 -1
  23. package/.output/public/_nuxt/{C7P1UCO2.js → BpM6ZPIG.js} +1 -1
  24. package/.output/public/_nuxt/BqGumsDo.js +4 -0
  25. package/.output/public/_nuxt/{DS636elg.js → BrxtP_cN.js} +1 -1
  26. package/.output/public/_nuxt/{YVN7WG7q.js → C2hNxjjz.js} +1 -1
  27. package/.output/public/_nuxt/C5PSqfKi.js +2 -0
  28. package/.output/public/_nuxt/C5vsaU4G.js +1 -0
  29. package/.output/public/_nuxt/C9sdHaXd.js +1 -0
  30. package/.output/public/_nuxt/{SfMRXW25.js → CAxgBYIt.js} +2 -2
  31. package/.output/public/_nuxt/{CZfMdzfk.js → CES2i5Pl.js} +1 -1
  32. package/.output/public/_nuxt/{BX9ZXe98.js → CFEdRqaj.js} +1 -1
  33. package/.output/public/_nuxt/{B44A4LSJ.js → CFTZwazK.js} +1 -1
  34. package/.output/public/_nuxt/CIBS7ye6.js +1 -0
  35. package/.output/public/_nuxt/CIEceDOw.js +1 -0
  36. package/.output/public/_nuxt/{DHDtnj7p.js → CJBhojV6.js} +1 -1
  37. package/.output/public/_nuxt/{BPQoBGg5.js → CKYddHa6.js} +1 -1
  38. package/.output/public/_nuxt/{BccXfBfI.js → CLVWiCds.js} +1 -1
  39. package/.output/public/_nuxt/{DX-MDGb3.js → CMYAryzi.js} +1 -1
  40. package/.output/public/_nuxt/{BuMC3WjZ.js → COhdybDy.js} +1 -1
  41. package/.output/public/_nuxt/{Bu2aaVIY.js → CRBXM2d6.js} +2 -2
  42. package/.output/public/_nuxt/{BYDaY0Z7.js → CTD_pJ_v.js} +1 -1
  43. package/.output/public/_nuxt/{C9_jrmk9.js → CTP8Pw0-.js} +2 -2
  44. package/.output/public/_nuxt/{D55D4EYo.js → CV8iF2kG.js} +1 -1
  45. package/.output/public/_nuxt/{BCMuIgP5.js → CWKmbYlT.js} +1 -1
  46. package/.output/public/_nuxt/C_NfGMTd.js +9 -0
  47. package/.output/public/_nuxt/Cejoebel.js +6 -0
  48. package/.output/public/_nuxt/{Dnpkl-1q.js → Chpah_7l.js} +1 -1
  49. package/.output/public/_nuxt/Ci9d8YVV.js +1 -0
  50. package/.output/public/_nuxt/{C95YAaJq.js → CifRHVaR.js} +1 -1
  51. package/.output/public/_nuxt/{BMvCSA6h.js → Ckgsh9AT.js} +1 -1
  52. package/.output/public/_nuxt/{eptP4pGv.js → Cpsq-kYE.js} +1 -1
  53. package/.output/public/_nuxt/Cqc-DSTF.js +1 -0
  54. package/.output/public/_nuxt/{KnfsST6Y.js → CsHulb12.js} +1 -1
  55. package/.output/public/_nuxt/Ctb2CqUf.js +5 -0
  56. package/.output/public/_nuxt/CtstIQSh.js +1 -0
  57. package/.output/public/_nuxt/{DGfAxLHV.js → CvMzDKvu.js} +1 -1
  58. package/.output/public/_nuxt/{fVcG504p.js → D2pBhsH8.js} +1 -1
  59. package/.output/public/_nuxt/{rWNTSFD6.js → D8gX1Jde.js} +3 -3
  60. package/.output/public/_nuxt/D9knOn6D.js +1 -0
  61. package/.output/public/_nuxt/DAPTVdvA.js +1 -0
  62. package/.output/public/_nuxt/{NQikbhmK.js → DCFbQvIN.js} +44 -43
  63. package/.output/public/_nuxt/DCoJlz_q.js +1 -0
  64. package/.output/public/_nuxt/DGnQ69wW.js +64 -0
  65. package/.output/public/_nuxt/{CTxDO9fB.js → DHzij16p.js} +1 -1
  66. package/.output/public/_nuxt/DJMCXRuW.js +5 -0
  67. package/.output/public/_nuxt/DJXcGkJP.js +2 -0
  68. package/.output/public/_nuxt/{CK_2LZBS.js → DKFXZdWZ.js} +1 -1
  69. package/.output/public/_nuxt/{tvgqrYDd.js → DL24AjfW.js} +1 -1
  70. package/.output/public/_nuxt/DON74Yh6.js +1 -0
  71. package/.output/public/_nuxt/{CHEFCN8Q.js → DQM62mxB.js} +1 -1
  72. package/.output/public/_nuxt/DSe8DxMl.js +1 -0
  73. package/.output/public/_nuxt/DWwiVTZX.js +24 -0
  74. package/.output/public/_nuxt/DX4tAP78.js +1 -0
  75. package/.output/public/_nuxt/{DLSrtpsA.js → D_eDAIsT.js} +1 -1
  76. package/.output/public/_nuxt/Da8A92cF.js +1 -0
  77. package/.output/public/_nuxt/{BxCKKeYs.js → DdH3op4b.js} +1 -1
  78. package/.output/public/_nuxt/DepFDZO3.js +1 -0
  79. package/.output/public/_nuxt/{CV9-fTmY.js → DfSBKzrC.js} +1 -1
  80. package/.output/public/_nuxt/{DT53RWbC.js → DfnKh3dZ.js} +1 -1
  81. package/.output/public/_nuxt/{ndShiWE8.js → DhpTfeip.js} +1 -1
  82. package/.output/public/_nuxt/{ybDYeNxd.js → Dk9nD32g.js} +1 -1
  83. package/.output/public/_nuxt/{D0HNloZ9.js → DkT2nCqn.js} +1 -1
  84. package/.output/public/_nuxt/DlW85lQq.js +4 -0
  85. package/.output/public/_nuxt/DnNio-ut.js +1 -0
  86. package/.output/public/_nuxt/{BfTuX0wq.js → DnQv_hst.js} +1 -1
  87. package/.output/public/_nuxt/{FUXhyidq.js → DqEOMteW.js} +1 -1
  88. package/.output/public/_nuxt/{Bti38m-M.js → Dsvu7YJT.js} +1 -1
  89. package/.output/public/_nuxt/DvhCDBrR.js +2 -0
  90. package/.output/public/_nuxt/DwQaVMZR.js +1 -0
  91. package/.output/public/_nuxt/E-_n_6vi.js +1 -0
  92. package/.output/public/_nuxt/{DP8hfJ9h.js → Ebw5l7n8.js} +1 -1
  93. package/.output/public/_nuxt/{nv9-6vBK.js → IPePdbzl.js} +1 -1
  94. package/.output/public/_nuxt/{BPRffDuo.js → LHoUGrfi.js} +1 -1
  95. package/.output/public/_nuxt/{CYsTqbBS.js → NERLHpOL.js} +1 -1
  96. package/.output/public/_nuxt/RAdNGxcF.js +1 -0
  97. package/.output/public/_nuxt/Vxyo_mU9.js +1 -0
  98. package/.output/public/_nuxt/{IvQlbZk6.js → YE1kAkU9.js} +1 -1
  99. package/.output/public/_nuxt/{DgE2YE3R.js → YmT5WiN5.js} +1 -1
  100. package/.output/public/_nuxt/ZcAfCxWE.js +17 -0
  101. package/.output/public/_nuxt/{cHAnlQbv.js → _rglcvXN.js} +1 -1
  102. package/.output/public/_nuxt/bFU9Y1Vw.js +10 -0
  103. package/.output/public/_nuxt/bfecIH89.js +1 -0
  104. package/.output/public/_nuxt/builds/latest.json +1 -1
  105. package/.output/public/_nuxt/builds/meta/31ca2be4-a949-4df6-9818-773fc085557a.json +1 -0
  106. package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
  107. package/.output/public/_nuxt/four-S1Y.js +1 -0
  108. package/.output/public/_nuxt/{DiOLdHBC.js → gV2U_Gqd.js} +1 -1
  109. package/.output/public/_nuxt/{C-elpgyr.js → lGC893pn.js} +1 -1
  110. package/.output/public/_nuxt/nOfj-ar8.js +1 -0
  111. package/.output/public/_nuxt/oKrbs1XK.js +1 -0
  112. package/.output/public/_nuxt/oSJFAC38.js +1 -0
  113. package/.output/public/_nuxt/rL4C0HV5.js +1 -0
  114. package/.output/public/_nuxt/{Cdff9XNh.js → tQoyVPCE.js} +1 -1
  115. package/.output/public/_nuxt/{DEFEpYzn.js → uSPCvASp.js} +1 -1
  116. package/.output/public/_nuxt/{y17lMTFy.js → wkz5-1SO.js} +1 -1
  117. package/.output/public/_nuxt/yYlVYKCz.js +34 -0
  118. package/.output/public/_nuxt/{B9WhzpKO.js → zv8WdMx0.js} +1 -1
  119. package/.output/server/chunks/_/collect.mjs +1 -1
  120. package/.output/server/chunks/_/markers.mjs +1 -1
  121. package/.output/server/chunks/_/quarantine.mjs +1 -1
  122. package/.output/server/chunks/_/scope.mjs +43 -27
  123. package/.output/server/chunks/_/scope.mjs.map +1 -1
  124. package/.output/server/chunks/_/users.mjs +1 -1
  125. package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-3itRZ1uz.mjs} +2 -2
  126. package/.output/server/chunks/build/Breadcrumb-3itRZ1uz.mjs.map +1 -0
  127. package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-GnjBvXuT.mjs} +2 -2
  128. package/.output/server/chunks/build/BreadcrumbNav-GnjBvXuT.mjs.map +1 -0
  129. package/.output/server/chunks/build/{BrowserBadge-D33lqUcj.mjs → BrowserBadge-DQqJS9CV.mjs} +66 -6
  130. package/.output/server/chunks/build/BrowserBadge-DQqJS9CV.mjs.map +1 -0
  131. package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-D0rzMf-N.mjs} +2 -2
  132. package/.output/server/chunks/build/ChartCard-D0rzMf-N.mjs.map +1 -0
  133. package/.output/server/chunks/build/{Checkbox-DvUBGagc.mjs → Checkbox-DmRKG-0s.mjs} +5 -5
  134. package/.output/server/chunks/build/Checkbox-DmRKG-0s.mjs.map +1 -0
  135. package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-DGhKVFad.mjs} +4 -4
  136. package/.output/server/chunks/build/CodeBlock-DGhKVFad.mjs.map +1 -0
  137. package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DCr10nxL.mjs} +2 -2
  138. package/.output/server/chunks/build/DashboardNavbar-DCr10nxL.mjs.map +1 -0
  139. package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-8EpBhX0R.mjs} +3 -3
  140. package/.output/server/chunks/build/DashboardSidebarToggle-8EpBhX0R.mjs.map +1 -0
  141. package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-rzS-pgCP.mjs} +5 -5
  142. package/.output/server/chunks/build/DataLocationCard-rzS-pgCP.mjs.map +1 -0
  143. package/.output/server/chunks/build/{DiagnosisPanel-B646dK4p.mjs → DiagnosisPanel-BWTpoCKy.mjs} +8 -7
  144. package/.output/server/chunks/build/DiagnosisPanel-BWTpoCKy.mjs.map +1 -0
  145. package/.output/server/chunks/build/{useAiStatus-CWvIo32Q.mjs → DiagnosisResult-Br3qBLXe.mjs} +14 -36
  146. package/.output/server/chunks/build/DiagnosisResult-Br3qBLXe.mjs.map +1 -0
  147. package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-CWKfjIF2.mjs} +2 -2
  148. package/.output/server/chunks/build/DurationValue-CWKfjIF2.mjs.map +1 -0
  149. package/.output/server/chunks/build/{EmptyState-Dtlab7S9.mjs → EmptyState-DC2q_7TD.mjs} +3 -3
  150. package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +1 -0
  151. package/.output/server/chunks/build/{EntityLinks-D3fp57pR.mjs → EntityLinks-CF0xG3Y8.mjs} +6 -6
  152. package/.output/server/chunks/build/EntityLinks-CF0xG3Y8.mjs.map +1 -0
  153. package/.output/server/chunks/build/{EnvManagedBadge-Bg3FSiU1.mjs → EnvManagedBadge-UwD2b9v2.mjs} +3 -3
  154. package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +1 -0
  155. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs +83 -0
  156. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs.map +1 -0
  157. package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-e7OnSKPM.mjs} +2 -2
  158. package/.output/server/chunks/build/FormField-e7OnSKPM.mjs.map +1 -0
  159. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs +510 -0
  160. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs.map +1 -0
  161. package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-DjGrGFA7.mjs} +3 -3
  162. package/.output/server/chunks/build/HelpHint-DjGrGFA7.mjs.map +1 -0
  163. package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-B8v1nWJt.mjs} +3 -3
  164. package/.output/server/chunks/build/LoadingState-B8v1nWJt.mjs.map +1 -0
  165. package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs +1205 -0
  166. package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs.map +1 -0
  167. package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
  168. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
  169. package/.output/server/chunks/build/{Modal-Ck2XLt8d.mjs → Modal-pSDlXzT3.mjs} +2 -2
  170. package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +1 -0
  171. package/.output/server/chunks/build/{useSettingsNav-C3O866KC.mjs → NavigationMenu-cqpt11Ce.mjs} +6 -29
  172. package/.output/server/chunks/build/NavigationMenu-cqpt11Ce.mjs.map +1 -0
  173. package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs → OpenInIdeLink-B9wvQkhy.mjs} +5 -5
  174. package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs.map → OpenInIdeLink-B9wvQkhy.mjs.map} +1 -1
  175. package/.output/server/chunks/build/{ProjectTestCasesTable-CxfQ5wtN.mjs → ProjectTestCasesTable-BwHEtZTz.mjs} +19 -19
  176. package/.output/server/chunks/build/ProjectTestCasesTable-BwHEtZTz.mjs.map +1 -0
  177. package/.output/server/chunks/build/{RovingFocusItem-BJSzTBjy.mjs → RovingFocusItem--OEHI2P3.mjs} +2 -2
  178. package/.output/server/chunks/build/RovingFocusItem--OEHI2P3.mjs.map +1 -0
  179. package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-BDRIWn3o.mjs} +3 -3
  180. package/.output/server/chunks/build/RunReports-BDRIWn3o.mjs.map +1 -0
  181. package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CuTDknRJ.mjs} +2 -2
  182. package/.output/server/chunks/build/RunStatusBadge-CuTDknRJ.mjs.map +1 -0
  183. package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-BW5Lynrr.mjs} +2 -2
  184. package/.output/server/chunks/build/SectionCard-BW5Lynrr.mjs.map +1 -0
  185. package/.output/server/chunks/build/{Select-CUqj50wi.mjs → Select-CVctwpib.mjs} +3 -3
  186. package/.output/server/chunks/build/Select-CVctwpib.mjs.map +1 -0
  187. package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs → SelectMenu-XLVBEa11.mjs} +939 -7
  188. package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs.map → SelectMenu-XLVBEa11.mjs.map} +1 -1
  189. package/.output/server/chunks/build/{SettingsField-D6iEYbEc.mjs → SettingsField-DvtRvI6O.mjs} +4 -4
  190. package/.output/server/chunks/build/SettingsField-DvtRvI6O.mjs.map +1 -0
  191. package/.output/server/chunks/build/{Slideover-DgCa80mf.mjs → Slideover-D270EZZD.mjs} +3 -3
  192. package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +1 -0
  193. package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
  194. package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
  195. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
  196. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
  197. package/.output/server/chunks/build/{Switch-CgUioOYB.mjs → Switch-8zWfwI5B.mjs} +3 -3
  198. package/.output/server/chunks/build/Switch-8zWfwI5B.mjs.map +1 -0
  199. package/.output/server/chunks/build/Table-BRk04Hd2.mjs +1 -1
  200. package/.output/server/chunks/build/{Tabs-Bbsg9wag.mjs → Tabs-BkSOnbaB.mjs} +2 -2
  201. package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +1 -0
  202. package/.output/server/chunks/build/{TestCaseHistoryChart-nMLPhdvD.mjs → TestCaseHistoryChart-C6t5RrCG.mjs} +6 -6
  203. package/.output/server/chunks/build/TestCaseHistoryChart-C6t5RrCG.mjs.map +1 -0
  204. package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
  205. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
  206. package/.output/server/chunks/build/{TestStatusBar-j6h2Jp6A.mjs → TestStatusBar-DhbrM_rQ.mjs} +4 -4
  207. package/.output/server/chunks/build/TestStatusBar-DhbrM_rQ.mjs.map +1 -0
  208. package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-vkMKVQTJ.mjs} +2 -2
  209. package/.output/server/chunks/build/Textarea-vkMKVQTJ.mjs.map +1 -0
  210. package/.output/server/chunks/build/{Tooltip-BOazooWP.mjs → Tooltip-Dv4htNP6.mjs} +3 -3
  211. package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +1 -0
  212. package/.output/server/chunks/build/{VisuallyHiddenInput-D6kBJxVd.mjs → VisuallyHiddenInput-BHvzNumK.mjs} +2 -2
  213. package/.output/server/chunks/build/VisuallyHiddenInput-BHvzNumK.mjs.map +1 -0
  214. package/.output/server/chunks/build/{_id_-z5N6HPyC.mjs → _id_-2PMH6rl8.mjs} +26 -25
  215. package/.output/server/chunks/build/_id_-2PMH6rl8.mjs.map +1 -0
  216. package/.output/server/chunks/build/{_id_-BHh65pfg.mjs → _id_-8cGIgeg6.mjs} +1912 -1098
  217. package/.output/server/chunks/build/_id_-8cGIgeg6.mjs.map +1 -0
  218. package/.output/server/chunks/build/{_id_-Rzkqx55x.mjs → _id_-CUZ5S6y5.mjs} +43 -44
  219. package/.output/server/chunks/build/_id_-CUZ5S6y5.mjs.map +1 -0
  220. package/.output/server/chunks/build/{_id_-B78ky13D.mjs → _id_-DMkgWSLZ.mjs} +956 -429
  221. package/.output/server/chunks/build/_id_-DMkgWSLZ.mjs.map +1 -0
  222. package/.output/server/chunks/build/about-D3WXTDro.mjs +696 -0
  223. package/.output/server/chunks/build/about-D3WXTDro.mjs.map +1 -0
  224. package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-BslDNCoo.mjs} +6 -6
  225. package/.output/server/chunks/build/account-BslDNCoo.mjs.map +1 -0
  226. package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs → ai-C23R9l94.mjs} +18 -18
  227. package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs.map → ai-C23R9l94.mjs.map} +1 -1
  228. package/.output/server/chunks/build/{analytics-CJPC6t4L.mjs → analytics-DQHeToK0.mjs} +106 -80
  229. package/.output/server/chunks/build/analytics-DQHeToK0.mjs.map +1 -0
  230. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  231. package/.output/server/chunks/build/compare-RxHSOdsO.mjs +1 -0
  232. package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-D74DghqX.mjs} +38 -2
  233. package/.output/server/chunks/build/db.client-D74DghqX.mjs.map +1 -0
  234. package/.output/server/chunks/build/{default-zvbFgDJG.mjs → default-CeyePZ5I.mjs} +624 -79
  235. package/.output/server/chunks/build/default-CeyePZ5I.mjs.map +1 -0
  236. package/.output/server/chunks/build/{docs-DyuVEgtB.mjs → docs-f_bnC75q.mjs} +17 -17
  237. package/.output/server/chunks/build/{docs-DyuVEgtB.mjs.map → docs-f_bnC75q.mjs.map} +1 -1
  238. package/.output/server/chunks/build/{edit-CFR5g2Qf.mjs → edit-BOC4zWuH.mjs} +13 -15
  239. package/.output/server/chunks/build/edit-BOC4zWuH.mjs.map +1 -0
  240. package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-BQg_fhX0.mjs} +32 -4
  241. package/.output/server/chunks/build/fetch-BQg_fhX0.mjs.map +1 -0
  242. package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CxuVbGWy.mjs} +4 -3
  243. package/.output/server/chunks/build/forgot-password-CxuVbGWy.mjs.map +1 -0
  244. package/.output/server/chunks/build/{import-CZo3djDi.mjs → import-CC27wEIu.mjs} +14 -14
  245. package/.output/server/chunks/build/import-CC27wEIu.mjs.map +1 -0
  246. package/.output/server/chunks/build/{index-gCw_y4ZJ.mjs → index-B6PjfyTY.mjs} +44 -543
  247. package/.output/server/chunks/build/index-B6PjfyTY.mjs.map +1 -0
  248. package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-BOK1aJk9.mjs} +2 -1
  249. package/.output/server/chunks/build/index-BOK1aJk9.mjs.map +1 -0
  250. package/.output/server/chunks/build/{index-D7fe97l3.mjs → index-BhS1DuCr.mjs} +400 -151
  251. package/.output/server/chunks/build/index-BhS1DuCr.mjs.map +1 -0
  252. package/.output/server/chunks/build/{index-Stqw0dEI.mjs → index-DUmjP3Gr.mjs} +18 -19
  253. package/.output/server/chunks/build/index-DUmjP3Gr.mjs.map +1 -0
  254. package/.output/server/chunks/build/index-jvF53f7_.mjs +91 -0
  255. package/.output/server/chunks/build/index-jvF53f7_.mjs.map +1 -0
  256. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
  257. package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-CdpOhiP8.mjs} +8 -7
  258. package/.output/server/chunks/build/login-CdpOhiP8.mjs.map +1 -0
  259. package/.output/server/chunks/build/{mcp-B3IUvRgD.mjs → mcp-WTeO5WRo.mjs} +528 -16
  260. package/.output/server/chunks/build/mcp-WTeO5WRo.mjs.map +1 -0
  261. package/.output/server/chunks/build/{notifications-abDv0id8.mjs → notifications-yY6ik-fi.mjs} +11 -11
  262. package/.output/server/chunks/build/notifications-yY6ik-fi.mjs.map +1 -0
  263. package/.output/server/chunks/build/{pr-feedback-DjZID6q-.mjs → pr-feedback-Hv2Ydh_6.mjs} +8 -8
  264. package/.output/server/chunks/build/pr-feedback-Hv2Ydh_6.mjs.map +1 -0
  265. package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-CFtO8A6n.mjs} +4 -3
  266. package/.output/server/chunks/build/reset-password-CFtO8A6n.mjs.map +1 -0
  267. package/.output/server/chunks/build/server.mjs +51 -34
  268. package/.output/server/chunks/build/{settings-Du7YqF8i.mjs → settings-DIpvnY8_.mjs} +11 -9
  269. package/.output/server/chunks/build/settings-DIpvnY8_.mjs.map +1 -0
  270. package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DRv9VveS.mjs} +32 -2
  271. package/.output/server/chunks/build/settings-metadata-DRv9VveS.mjs.map +1 -0
  272. package/.output/server/chunks/build/setup-Di0UMyWx.mjs +1116 -0
  273. package/.output/server/chunks/build/setup-Di0UMyWx.mjs.map +1 -0
  274. package/.output/server/chunks/build/{storage-B4vzxd8G.mjs → storage-gAbY1KbQ.mjs} +13 -13
  275. package/.output/server/chunks/build/storage-gAbY1KbQ.mjs.map +1 -0
  276. package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-DJ80wCqt.mjs} +6 -7
  277. package/.output/server/chunks/build/tags-DJ80wCqt.mjs.map +1 -0
  278. package/.output/server/chunks/build/{test-cases-DUvaO1He.mjs → test-cases-YP83YlnL.mjs} +21 -21
  279. package/.output/server/chunks/build/test-cases-YP83YlnL.mjs.map +1 -0
  280. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs +550 -0
  281. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs.map +1 -0
  282. package/.output/server/chunks/build/{timeout-hygiene-CbnSaVbK.mjs → timeout-hygiene-RpXDjXTX.mjs} +6 -6
  283. package/.output/server/chunks/build/timeout-hygiene-RpXDjXTX.mjs.map +1 -0
  284. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
  285. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
  286. package/.output/server/chunks/build/{useCopyRich-BemRsKgv.mjs → useCopyRich-Cd5Yj_Wy.mjs} +721 -239
  287. package/.output/server/chunks/build/useCopyRich-Cd5Yj_Wy.mjs.map +1 -0
  288. package/.output/server/chunks/build/{useDesktopDownload-D49JRQSw.mjs → useDesktopDownload-BmR6ouz2.mjs} +3 -3
  289. package/.output/server/chunks/build/useDesktopDownload-BmR6ouz2.mjs.map +1 -0
  290. package/.output/server/chunks/build/{useOpenInIde-4GFf-kdi.mjs → useOpenInIde-DolN3bZ5.mjs} +2 -2
  291. package/.output/server/chunks/build/useOpenInIde-DolN3bZ5.mjs.map +1 -0
  292. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs +19 -0
  293. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs.map +1 -0
  294. package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs +11 -0
  295. package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs.map +1 -0
  296. package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-I2K7HXS2.mjs} +6 -7
  297. package/.output/server/chunks/build/users-I2K7HXS2.mjs.map +1 -0
  298. package/.output/server/chunks/build/{wasted-time-lYkx5YO4.mjs → wasted-time-DyIk0olc.mjs} +11 -11
  299. package/.output/server/chunks/build/wasted-time-DyIk0olc.mjs.map +1 -0
  300. package/.output/server/chunks/nitro/nitro.mjs +3124 -1782
  301. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  302. package/.output/server/chunks/routes/__piwi/session.get.mjs +2 -1
  303. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  304. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +1 -0
  305. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  306. package/.output/server/chunks/routes/api/admin/stats.get.mjs +1 -0
  307. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/ai/status.get.mjs +1 -0
  309. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -0
  311. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -0
  313. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -0
  315. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -0
  317. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -0
  319. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -0
  321. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -0
  323. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -0
  325. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -0
  327. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -0
  329. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -0
  331. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -0
  333. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -0
  335. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +89 -0
  337. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -0
  338. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +1 -0
  339. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +2 -1
  341. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +2 -1
  343. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +2 -1
  345. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +2 -1
  347. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +2 -1
  349. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +2 -1
  351. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +2 -1
  353. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +2 -1
  355. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +2 -1
  357. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +2 -1
  359. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +2 -1
  361. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +2 -1
  363. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +2 -1
  365. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +2 -1
  367. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +2 -1
  369. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +2 -1
  371. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/health.get.mjs +2 -1
  373. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/index.get.mjs +1 -0
  375. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/index.get2.mjs +2 -1
  377. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/index.get3.mjs +2 -1
  379. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/index.get4.mjs +2 -1
  381. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
  383. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  385. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  386. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  387. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  388. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +2 -1
  389. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +2 -1
  391. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
  393. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +2 -1
  394. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  395. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
  396. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +2 -1
  397. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +2 -1
  399. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +2 -1
  401. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +2 -1
  403. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +2 -1
  405. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +2 -1
  407. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +2 -1
  409. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
  411. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +2 -1
  412. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  413. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
  414. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +2 -1
  415. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +2 -1
  417. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +2 -1
  419. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +2 -1
  421. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +2 -1
  423. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +2 -1
  425. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +2 -1
  427. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +76 -0
  429. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
  430. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +66 -0
  431. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
  432. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +53 -0
  433. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
  434. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +67 -0
  435. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
  436. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +2 -1
  437. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +2 -1
  439. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +2 -1
  441. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
  443. package/.output/server/chunks/routes/api/projects/menu.get.mjs +2 -1
  444. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  445. package/.output/server/chunks/routes/api/projects/overview.get.mjs +2 -1
  446. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  447. package/.output/server/chunks/routes/api/projects.get.mjs +2 -1
  448. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  449. package/.output/server/chunks/routes/api/search.get.mjs +2 -1
  450. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  451. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +2 -1
  452. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  453. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +2 -1
  454. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  455. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +1 -0
  456. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  457. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +2 -1
  458. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  459. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +2 -1
  460. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  461. package/.output/server/chunks/routes/api/settings/ai.get.mjs +2 -1
  462. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  463. package/.output/server/chunks/routes/api/settings/ai.put.mjs +2 -1
  464. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  465. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +2 -1
  466. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
  467. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +2 -1
  468. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
  469. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +2 -1
  470. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  471. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +2 -1
  472. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  473. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +2 -1
  474. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  475. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +2 -1
  476. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  477. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +2 -1
  478. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  479. package/.output/server/chunks/routes/api/setup-status.get.mjs +99 -0
  480. package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
  481. package/.output/server/chunks/routes/api/stream.get.mjs +2 -1
  482. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  483. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +2 -1
  484. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  485. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  486. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +2 -1
  487. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  489. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +2 -1
  490. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  491. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +2 -1
  492. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  493. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +2 -1
  494. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  495. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +60 -0
  496. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
  497. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +69 -0
  498. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
  499. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +2 -1
  500. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  501. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +2 -1
  502. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  503. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +2 -1
  504. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  505. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +2 -1
  506. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
  507. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +2 -1
  508. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  509. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +2 -1
  510. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  511. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +2 -1
  512. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  513. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +2 -1
  514. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  515. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +6 -3
  516. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  517. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +2 -1
  518. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  519. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +2 -1
  520. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  521. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +2 -1
  522. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  523. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +2 -1
  524. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  525. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +2 -1
  526. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  527. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +2 -1
  528. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  529. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +2 -1
  530. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  531. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +2 -1
  532. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  533. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +2 -1
  534. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  535. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +2 -1
  536. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  537. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +2 -1
  538. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
  539. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +2 -1
  540. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  541. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +2 -1
  542. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  543. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +2 -1
  544. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  545. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +2 -1
  546. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  547. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +2 -1
  548. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  549. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +2 -1
  550. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  551. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +2 -1
  552. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  553. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +2 -1
  554. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  555. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +2 -1
  556. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  557. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +2 -2
  558. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +5 -128
  559. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +2 -1
  561. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +2 -1
  563. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  564. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +2 -1
  565. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +2 -1
  567. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  569. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +4 -1
  571. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/traces/check.post.mjs +2 -1
  573. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  574. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -0
  575. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  576. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -0
  577. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  579. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +2 -1
  580. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  581. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +2 -1
  582. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  583. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  584. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -0
  585. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/version.get.mjs +2 -1
  587. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  588. package/.output/server/chunks/routes/mcp.post.mjs +41 -11
  589. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  590. package/.output/server/chunks/routes/renderer.mjs +1 -1
  591. package/.output/server/chunks/tasks/sweep.mjs +1 -0
  592. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  593. package/.output/server/chunks/tasks/sweep2.mjs +1 -0
  594. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  595. package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
  596. package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
  597. package/.output/server/database/migrations/meta/_journal.json +7 -0
  598. package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
  599. package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
  600. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  601. package/.output/server/index.mjs +2 -1
  602. package/.output/server/index.mjs.map +1 -1
  603. package/.output/server/package.json +1 -1
  604. package/package.json +1 -1
  605. package/.output/public/_nuxt/-09h6CA9.js +0 -1
  606. package/.output/public/_nuxt/81InBX9v.js +0 -1
  607. package/.output/public/_nuxt/Ar3IelOY.js +0 -1
  608. package/.output/public/_nuxt/B33iXw77.js +0 -1
  609. package/.output/public/_nuxt/B3B9Ii2A.js +0 -1
  610. package/.output/public/_nuxt/B3HO8kuh.js +0 -1
  611. package/.output/public/_nuxt/B7NBP1C-.js +0 -1
  612. package/.output/public/_nuxt/BJ0XQElc.js +0 -1
  613. package/.output/public/_nuxt/BSIxhGsh.js +0 -1
  614. package/.output/public/_nuxt/BVaxh6Nl.js +0 -4
  615. package/.output/public/_nuxt/Bc8mOoz9.js +0 -4
  616. package/.output/public/_nuxt/BeLWlVK0.js +0 -1
  617. package/.output/public/_nuxt/Bn0YQDyy.js +0 -1
  618. package/.output/public/_nuxt/Bp5ELvx9.js +0 -1
  619. package/.output/public/_nuxt/BpUaY9nH.js +0 -2
  620. package/.output/public/_nuxt/C2_3mdPC.js +0 -1
  621. package/.output/public/_nuxt/C5iG7O4O.js +0 -64
  622. package/.output/public/_nuxt/CHNwfU1y.js +0 -1
  623. package/.output/public/_nuxt/CNFYDQmj.js +0 -1
  624. package/.output/public/_nuxt/CU5S9GCh.js +0 -1
  625. package/.output/public/_nuxt/CUtJobDm.js +0 -1
  626. package/.output/public/_nuxt/CpjgB2aY.js +0 -1
  627. package/.output/public/_nuxt/CrwJAwhk.js +0 -1
  628. package/.output/public/_nuxt/CtQBsNUb.js +0 -1
  629. package/.output/public/_nuxt/CuSVQEkS.js +0 -3
  630. package/.output/public/_nuxt/CylWPruw.js +0 -1
  631. package/.output/public/_nuxt/CzGyac8q.js +0 -1
  632. package/.output/public/_nuxt/DDDpCFpF.js +0 -1
  633. package/.output/public/_nuxt/DVDXJYq2.js +0 -2
  634. package/.output/public/_nuxt/DW0xl3I6.js +0 -17
  635. package/.output/public/_nuxt/Dgf5N4Ng.js +0 -1
  636. package/.output/public/_nuxt/DiZyJYez.js +0 -1
  637. package/.output/public/_nuxt/Dk9fwOCm.js +0 -34
  638. package/.output/public/_nuxt/DoUy4UHi.js +0 -44
  639. package/.output/public/_nuxt/DslPMqfa.js +0 -1
  640. package/.output/public/_nuxt/OSduWzyz.js +0 -1
  641. package/.output/public/_nuxt/SlIRLREZ.js +0 -6
  642. package/.output/public/_nuxt/WsxFTEFq.js +0 -10
  643. package/.output/public/_nuxt/aQgs_c6e.js +0 -9
  644. package/.output/public/_nuxt/builds/meta/ab473028-4b37-4884-b243-b8f6e5046e5e.json +0 -1
  645. package/.output/public/_nuxt/dYCKgE-3.js +0 -5
  646. package/.output/public/_nuxt/entry.CPhW41mh.css +0 -1
  647. package/.output/public/_nuxt/g26aVPxc.js +0 -1
  648. package/.output/public/_nuxt/zQyPuvV1.js +0 -1
  649. package/.output/server/chunks/_/import-runs.mjs +0 -351
  650. package/.output/server/chunks/_/import-runs.mjs.map +0 -1
  651. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
  652. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
  653. package/.output/server/chunks/build/BrowserBadge-D33lqUcj.mjs.map +0 -1
  654. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
  655. package/.output/server/chunks/build/Checkbox-DvUBGagc.mjs.map +0 -1
  656. package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs +0 -631
  657. package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs.map +0 -1
  658. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
  659. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
  660. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
  661. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
  662. package/.output/server/chunks/build/DiagnosisPanel-B646dK4p.mjs.map +0 -1
  663. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
  664. package/.output/server/chunks/build/EmptyState-Dtlab7S9.mjs.map +0 -1
  665. package/.output/server/chunks/build/EntityLinks-D3fp57pR.mjs.map +0 -1
  666. package/.output/server/chunks/build/EnvManagedBadge-Bg3FSiU1.mjs.map +0 -1
  667. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
  668. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
  669. package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
  670. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
  671. package/.output/server/chunks/build/Modal-Ck2XLt8d.mjs.map +0 -1
  672. package/.output/server/chunks/build/ProjectTestCasesTable-CxfQ5wtN.mjs.map +0 -1
  673. package/.output/server/chunks/build/RovingFocusItem-BJSzTBjy.mjs.map +0 -1
  674. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
  675. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
  676. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
  677. package/.output/server/chunks/build/Select-CUqj50wi.mjs.map +0 -1
  678. package/.output/server/chunks/build/SettingsField-D6iEYbEc.mjs.map +0 -1
  679. package/.output/server/chunks/build/Slideover-DgCa80mf.mjs.map +0 -1
  680. package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
  681. package/.output/server/chunks/build/Switch-CgUioOYB.mjs.map +0 -1
  682. package/.output/server/chunks/build/Tabs-Bbsg9wag.mjs.map +0 -1
  683. package/.output/server/chunks/build/TestCaseHistoryChart-nMLPhdvD.mjs.map +0 -1
  684. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
  685. package/.output/server/chunks/build/TestStatusBar-j6h2Jp6A.mjs.map +0 -1
  686. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
  687. package/.output/server/chunks/build/Tooltip-BOazooWP.mjs.map +0 -1
  688. package/.output/server/chunks/build/VisuallyHiddenInput-D6kBJxVd.mjs.map +0 -1
  689. package/.output/server/chunks/build/_id_-B78ky13D.mjs.map +0 -1
  690. package/.output/server/chunks/build/_id_-BHh65pfg.mjs.map +0 -1
  691. package/.output/server/chunks/build/_id_-Rzkqx55x.mjs.map +0 -1
  692. package/.output/server/chunks/build/_id_-z5N6HPyC.mjs.map +0 -1
  693. package/.output/server/chunks/build/about-CvSP73Ug.mjs +0 -781
  694. package/.output/server/chunks/build/about-CvSP73Ug.mjs.map +0 -1
  695. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
  696. package/.output/server/chunks/build/analytics-CJPC6t4L.mjs.map +0 -1
  697. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
  698. package/.output/server/chunks/build/default-zvbFgDJG.mjs.map +0 -1
  699. package/.output/server/chunks/build/edit-CFR5g2Qf.mjs.map +0 -1
  700. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
  701. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
  702. package/.output/server/chunks/build/import-CZo3djDi.mjs.map +0 -1
  703. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
  704. package/.output/server/chunks/build/index-D7fe97l3.mjs.map +0 -1
  705. package/.output/server/chunks/build/index-Stqw0dEI.mjs.map +0 -1
  706. package/.output/server/chunks/build/index-gCw_y4ZJ.mjs.map +0 -1
  707. package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
  708. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
  709. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
  710. package/.output/server/chunks/build/mcp-B3IUvRgD.mjs.map +0 -1
  711. package/.output/server/chunks/build/notifications-abDv0id8.mjs.map +0 -1
  712. package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs.map +0 -1
  713. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
  714. package/.output/server/chunks/build/settings-Du7YqF8i.mjs.map +0 -1
  715. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
  716. package/.output/server/chunks/build/storage-B4vzxd8G.mjs.map +0 -1
  717. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
  718. package/.output/server/chunks/build/test-cases-DUvaO1He.mjs.map +0 -1
  719. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
  720. package/.output/server/chunks/build/useAiStatus-CWvIo32Q.mjs.map +0 -1
  721. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
  722. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
  723. package/.output/server/chunks/build/useCopyRich-BemRsKgv.mjs.map +0 -1
  724. package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs.map +0 -1
  725. package/.output/server/chunks/build/useOpenInIde-4GFf-kdi.mjs.map +0 -1
  726. package/.output/server/chunks/build/useSettingsNav-C3O866KC.mjs.map +0 -1
  727. package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs +0 -7
  728. package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs.map +0 -1
  729. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
  730. package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs +0 -940
  731. package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs.map +0 -1
  732. package/.output/server/chunks/build/wasted-time-lYkx5YO4.mjs.map +0 -1
@@ -0,0 +1,1205 @@
1
+ import { _ as _sfc_main$8 } from './Tooltip-Dv4htNP6.mjs';
2
+ import { o as _sfc_main$p, m as _sfc_main$k, n as _sfc_main$7$1, _ as _sfc_main$d } from './server.mjs';
3
+ import { _ as _sfc_main$9 } from './Modal-pSDlXzT3.mjs';
4
+ import { _ as _sfc_main$a } from './Alert-C4xq8lao.mjs';
5
+ import { _ as _sfc_main$b } from './FormField-e7OnSKPM.mjs';
6
+ import { _ as _sfc_main$6 } from './Select-CVctwpib.mjs';
7
+ import { _ as _sfc_main$c } from './Switch-8zWfwI5B.mjs';
8
+ import { _ as __nuxt_component_5 } from './CodeBlock-DGhKVFad.mjs';
9
+ import { defineComponent, useModel, ref, computed, mergeProps, unref, mergeModels, withCtx, createTextVNode, createVNode, isRef, toDisplayString, watch, nextTick, openBlock, createBlock, createCommentVNode, Fragment, renderList, onScopeDispose, useSSRContext } from 'vue';
10
+ import { ssrRenderAttrs, ssrRenderClass, ssrRenderSlot, ssrRenderComponent, ssrInterpolate, ssrRenderList } from 'vue/server-renderer';
11
+ import { e as escapeGrep, t as toPosixPath } from './useOpenInIde-DolN3bZ5.mjs';
12
+ import { u as useDesktopProjectLink } from './BrowserBadge-DQqJS9CV.mjs';
13
+ import { t as tauriCore, a as tauriEvent } from './useTauri-Kf3HE_42.mjs';
14
+ import { v as getStatusColor, D as isStatusInFlight, E as getStatusIcon, a as formatStatusLabel, e as errorMessage } from './index-BOK1aJk9.mjs';
15
+ import { _ as _sfc_main$7 } from './Tabs-BkSOnbaB.mjs';
16
+ import { _ as __nuxt_component_2$1 } from './HelpHint-DjGrGFA7.mjs';
17
+
18
+ const RUN_MODE_FLAGS = {
19
+ normal: [],
20
+ headed: ["--headed"],
21
+ debug: ["--debug"],
22
+ ui: ["--ui"]
23
+ };
24
+ function groupByProject(cases) {
25
+ const groups = /* @__PURE__ */ new Map();
26
+ for (const c of cases) {
27
+ const key = c.projectName || "";
28
+ if (!groups.has(key)) groups.set(key, []);
29
+ groups.get(key).push(c);
30
+ }
31
+ return groups;
32
+ }
33
+ function specArgs(cases, mode) {
34
+ if (mode === "grep") {
35
+ const escaped = cases.map((c) => escapeGrep(c.title));
36
+ return ["--grep", escaped.length === 1 ? escaped[0] : `(${escaped.join("|")})`];
37
+ }
38
+ const seen = /* @__PURE__ */ new Set();
39
+ const specs = [];
40
+ for (const c of cases) {
41
+ const spec = mode === "file-line" && c.line ? `${toPosixPath(c.filePath)}:${c.line}` : toPosixPath(c.filePath);
42
+ if (seen.has(spec)) continue;
43
+ seen.add(spec);
44
+ specs.push(spec);
45
+ }
46
+ return specs;
47
+ }
48
+ function displayArg(arg) {
49
+ return /[\s"'()|]/.test(arg) ? `"${arg.replace(/"/g, '\\"')}"` : arg;
50
+ }
51
+ function buildLocalRunPlan(cases, options = {}) {
52
+ if (cases.length === 0) return [];
53
+ const mode = options.mode ?? "file-line";
54
+ const runMode = options.runMode ?? "normal";
55
+ const repeatEach = Math.min(1e3, Math.max(1, Math.floor(options.repeatEach ?? 1)));
56
+ const steps = [];
57
+ for (const [project, projectCases] of groupByProject(cases)) {
58
+ const args = specArgs(projectCases, mode);
59
+ if (project) args.push(`--project=${project}`);
60
+ args.push(...RUN_MODE_FLAGS[runMode]);
61
+ if (options.trace) args.push("--trace=on");
62
+ if (repeatEach > 1) args.push(`--repeat-each=${repeatEach}`);
63
+ steps.push({ args, display: ["playwright", "test", ...args.map(displayArg)].join(" ") });
64
+ }
65
+ return steps;
66
+ }
67
+ const MAX_LINES = 2e3;
68
+ function useDesktopLocalRunner() {
69
+ const status = ref("idle");
70
+ const lines = ref([]);
71
+ const exitCode = ref(null);
72
+ const stepIndex = ref(0);
73
+ const stepCount = ref(0);
74
+ const running = computed(() => status.value === "running");
75
+ let currentRunId = null;
76
+ let starting = false;
77
+ let stopped = false;
78
+ let pending = [];
79
+ let unlisten = null;
80
+ let resolveExit = null;
81
+ function pushLine(text, error) {
82
+ lines.value.push({ text, error });
83
+ if (lines.value.length > MAX_LINES) lines.value.splice(0, lines.value.length - MAX_LINES);
84
+ }
85
+ function handleEvent(payload) {
86
+ if (payload.kind === "exit") {
87
+ resolveExit?.(payload.code);
88
+ return;
89
+ }
90
+ pushLine(payload.line ?? "", payload.kind !== "stdout");
91
+ }
92
+ async function ensureListener() {
93
+ if (unlisten) return;
94
+ const events = tauriEvent();
95
+ if (!events) throw new Error("The desktop bridge is unavailable.");
96
+ unlisten = await events.listen("piwi:local-run", ({ payload }) => {
97
+ if (payload.id === currentRunId) {
98
+ handleEvent(payload);
99
+ } else if (starting) {
100
+ pending.push(payload);
101
+ }
102
+ });
103
+ }
104
+ async function runStep(projectId, step) {
105
+ const core = tauriCore();
106
+ if (!core) throw new Error("The desktop bridge is unavailable.");
107
+ const exit = new Promise((resolve) => {
108
+ resolveExit = resolve;
109
+ });
110
+ starting = true;
111
+ pending = [];
112
+ try {
113
+ currentRunId = await core.invoke("desktop_run_local_tests", {
114
+ projectId: String(projectId),
115
+ args: step.args
116
+ });
117
+ } finally {
118
+ starting = false;
119
+ }
120
+ for (const event of pending) {
121
+ if (event.id === currentRunId) handleEvent(event);
122
+ }
123
+ pending = [];
124
+ const code = await exit;
125
+ currentRunId = null;
126
+ resolveExit = null;
127
+ return code;
128
+ }
129
+ async function start(projectId, steps) {
130
+ if (running.value || steps.length === 0) return;
131
+ stopped = false;
132
+ lines.value = [];
133
+ exitCode.value = null;
134
+ stepCount.value = steps.length;
135
+ stepIndex.value = 0;
136
+ status.value = "running";
137
+ try {
138
+ await ensureListener();
139
+ let worst = 0;
140
+ for (const [index, step] of steps.entries()) {
141
+ if (stopped) break;
142
+ stepIndex.value = index;
143
+ if (steps.length > 1) pushLine(`$ ${step.display}`, false);
144
+ const code = await runStep(projectId, step);
145
+ if (stopped) break;
146
+ if (code !== 0) worst = code ?? 1;
147
+ }
148
+ if (stopped) {
149
+ status.value = "stopped";
150
+ } else {
151
+ exitCode.value = typeof worst === "number" ? worst : 1;
152
+ status.value = worst === 0 ? "passed" : "failed";
153
+ }
154
+ } catch (error) {
155
+ pushLine(errorMessage(error), true);
156
+ status.value = "error";
157
+ }
158
+ }
159
+ async function stop() {
160
+ if (!running.value) return;
161
+ stopped = true;
162
+ const core = tauriCore();
163
+ const id = currentRunId;
164
+ if (core && id != null) {
165
+ try {
166
+ await core.invoke("desktop_stop_local_tests", { runId: id });
167
+ } catch {
168
+ }
169
+ }
170
+ resolveExit?.(null);
171
+ status.value = "stopped";
172
+ }
173
+ onScopeDispose(() => {
174
+ if (running.value) void stop();
175
+ unlisten?.();
176
+ unlisten = null;
177
+ });
178
+ return { status, running, lines, exitCode, stepIndex, stepCount, start, stop };
179
+ }
180
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
181
+ __name: "DesktopRunLocallyModal",
182
+ __ssrInlineRender: true,
183
+ props: /* @__PURE__ */ mergeModels({
184
+ projectId: {},
185
+ projectLabel: {},
186
+ cases: {}
187
+ }, {
188
+ "open": { type: Boolean, ...{ default: false } },
189
+ "openModifiers": {}
190
+ }),
191
+ emits: ["update:open"],
192
+ setup(__props) {
193
+ const props = __props;
194
+ const open = useModel(__props, "open");
195
+ const { link, busy, pickAndLink } = useDesktopProjectLink(() => props.projectId);
196
+ const { status, running, lines, exitCode, stepIndex, stepCount, start, stop } = useDesktopLocalRunner();
197
+ const mode = ref("file-line");
198
+ const runMode = ref("normal");
199
+ const trace = ref(false);
200
+ const repeatEach = ref(1);
201
+ const modeItems = [
202
+ { label: "File:line", value: "file-line" },
203
+ { label: "Title (grep)", value: "grep" },
204
+ { label: "File only", value: "file" }
205
+ ];
206
+ const runModeItems = [
207
+ { label: "Headless", value: "normal" },
208
+ { label: "Headed", value: "headed" },
209
+ { label: "Debug (inspector)", value: "debug" },
210
+ { label: "UI mode", value: "ui" }
211
+ ];
212
+ const linked = computed(() => !!link.value?.exists);
213
+ const specFiles = computed(() => [...new Set(props.cases.map((c) => c.filePath).filter(Boolean))]);
214
+ const missingSpecs = ref([]);
215
+ async function checkSpecs() {
216
+ const core = tauriCore();
217
+ missingSpecs.value = [];
218
+ if (!core || !linked.value || specFiles.value.length === 0) return;
219
+ try {
220
+ const result = await core.invoke("desktop_check_local_specs", {
221
+ projectId: String(props.projectId),
222
+ files: specFiles.value
223
+ });
224
+ missingSpecs.value = result?.missing ?? [];
225
+ } catch {
226
+ }
227
+ }
228
+ watch([open, () => link.value?.path, linked], () => {
229
+ if (open.value) void checkSpecs();
230
+ });
231
+ const wrongFolder = computed(() => specFiles.value.length > 0 && missingSpecs.value.length === specFiles.value.length);
232
+ const plan = computed(
233
+ () => buildLocalRunPlan(props.cases, {
234
+ mode: mode.value,
235
+ runMode: runMode.value,
236
+ trace: trace.value,
237
+ repeatEach: repeatEach.value
238
+ })
239
+ );
240
+ const preview = computed(() => plan.value.map((s) => s.display).join("\n"));
241
+ const statusBadge = computed(() => {
242
+ switch (status.value) {
243
+ case "running":
244
+ return {
245
+ label: stepCount.value > 1 ? `Running ${stepIndex.value + 1}/${stepCount.value}…` : "Running…",
246
+ color: "info"
247
+ };
248
+ case "passed":
249
+ return { label: "Passed", color: "success" };
250
+ case "failed":
251
+ return { label: exitCode.value != null ? `Failed (exit ${exitCode.value})` : "Failed", color: "error" };
252
+ case "stopped":
253
+ return { label: "Stopped", color: "neutral" };
254
+ case "error":
255
+ return { label: "Could not run", color: "error" };
256
+ default:
257
+ return null;
258
+ }
259
+ });
260
+ async function run() {
261
+ await start(props.projectId, plan.value);
262
+ }
263
+ watch(open, (value) => {
264
+ if (!value && running.value) void stop();
265
+ });
266
+ const outputEl = ref(null);
267
+ watch(
268
+ () => lines.value.length,
269
+ async () => {
270
+ await nextTick();
271
+ outputEl.value?.scrollTo({ top: outputEl.value.scrollHeight });
272
+ }
273
+ );
274
+ return (_ctx, _push, _parent, _attrs) => {
275
+ const _component_UModal = _sfc_main$9;
276
+ const _component_UIcon = _sfc_main$p;
277
+ const _component_UBadge = _sfc_main$7$1;
278
+ const _component_UAlert = _sfc_main$a;
279
+ const _component_UButton = _sfc_main$k;
280
+ const _component_UFormField = _sfc_main$b;
281
+ const _component_USelect = _sfc_main$6;
282
+ const _component_UInput = _sfc_main$d;
283
+ const _component_USwitch = _sfc_main$c;
284
+ const _component_CodeBlock = __nuxt_component_5;
285
+ _push(ssrRenderComponent(_component_UModal, mergeProps({
286
+ open: open.value,
287
+ "onUpdate:open": ($event) => open.value = $event,
288
+ ui: { content: "max-w-2xl" }
289
+ }, _attrs), {
290
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
291
+ if (_push2) {
292
+ _push2(`<div class="flex items-center gap-2 min-w-0"${_scopeId}>`);
293
+ _push2(ssrRenderComponent(_component_UIcon, {
294
+ name: "i-lucide-monitor-play",
295
+ class: "size-5 text-primary shrink-0"
296
+ }, null, _parent2, _scopeId));
297
+ _push2(`<h2 class="text-base font-semibold truncate"${_scopeId}>Run tests locally</h2>`);
298
+ _push2(ssrRenderComponent(_component_UBadge, {
299
+ color: "neutral",
300
+ variant: "subtle",
301
+ size: "sm"
302
+ }, {
303
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
304
+ if (_push3) {
305
+ _push3(`${ssrInterpolate(__props.cases.length)} test${ssrInterpolate(__props.cases.length === 1 ? "" : "s")}`);
306
+ } else {
307
+ return [
308
+ createTextVNode(toDisplayString(__props.cases.length) + " test" + toDisplayString(__props.cases.length === 1 ? "" : "s"), 1)
309
+ ];
310
+ }
311
+ }),
312
+ _: 1
313
+ }, _parent2, _scopeId));
314
+ _push2(`</div>`);
315
+ } else {
316
+ return [
317
+ createVNode("div", { class: "flex items-center gap-2 min-w-0" }, [
318
+ createVNode(_component_UIcon, {
319
+ name: "i-lucide-monitor-play",
320
+ class: "size-5 text-primary shrink-0"
321
+ }),
322
+ createVNode("h2", { class: "text-base font-semibold truncate" }, "Run tests locally"),
323
+ createVNode(_component_UBadge, {
324
+ color: "neutral",
325
+ variant: "subtle",
326
+ size: "sm"
327
+ }, {
328
+ default: withCtx(() => [
329
+ createTextVNode(toDisplayString(__props.cases.length) + " test" + toDisplayString(__props.cases.length === 1 ? "" : "s"), 1)
330
+ ]),
331
+ _: 1
332
+ })
333
+ ])
334
+ ];
335
+ }
336
+ }),
337
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
338
+ if (_push2) {
339
+ _push2(`<div class="space-y-4"${_scopeId}>`);
340
+ if (!unref(linked)) {
341
+ _push2(`<div class="space-y-3"${_scopeId}><p class="text-sm text-muted"${_scopeId}> Link ${ssrInterpolate(__props.projectLabel || "this project")} to its local checkout — the folder that contains these tests. Piwi runs that folder&#39;s own Playwright with the app&#39;s bundled Node, so nothing else needs to be installed. </p>`);
342
+ if (unref(link) && !unref(link).exists) {
343
+ _push2(ssrRenderComponent(_component_UAlert, {
344
+ color: "warning",
345
+ variant: "soft",
346
+ icon: "i-lucide-folder-x",
347
+ title: "The linked folder no longer exists",
348
+ description: unref(link).path
349
+ }, null, _parent2, _scopeId));
350
+ } else {
351
+ _push2(`<!---->`);
352
+ }
353
+ _push2(ssrRenderComponent(_component_UButton, {
354
+ icon: "i-lucide-folder-plus",
355
+ loading: unref(busy),
356
+ onClick: unref(pickAndLink)
357
+ }, {
358
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
359
+ if (_push3) {
360
+ _push3(`Choose folder…`);
361
+ } else {
362
+ return [
363
+ createTextVNode("Choose folder…")
364
+ ];
365
+ }
366
+ }),
367
+ _: 1
368
+ }, _parent2, _scopeId));
369
+ _push2(`</div>`);
370
+ } else {
371
+ _push2(`<!--[--><div class="flex items-center justify-between gap-3"${_scopeId}><div class="flex items-center gap-2 min-w-0 text-sm"${_scopeId}>`);
372
+ _push2(ssrRenderComponent(_component_UIcon, {
373
+ name: "i-lucide-folder-check",
374
+ class: "size-4 text-success shrink-0"
375
+ }, null, _parent2, _scopeId));
376
+ _push2(`<code class="text-xs break-all"${_scopeId}>${ssrInterpolate(unref(link)?.path)}</code></div>`);
377
+ _push2(ssrRenderComponent(_component_UButton, {
378
+ size: "xs",
379
+ color: "neutral",
380
+ variant: "ghost",
381
+ icon: "i-lucide-folder-search",
382
+ loading: unref(busy),
383
+ disabled: unref(running),
384
+ onClick: unref(pickAndLink)
385
+ }, {
386
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
387
+ if (_push3) {
388
+ _push3(` Change `);
389
+ } else {
390
+ return [
391
+ createTextVNode(" Change ")
392
+ ];
393
+ }
394
+ }),
395
+ _: 1
396
+ }, _parent2, _scopeId));
397
+ _push2(`</div><div class="grid grid-cols-2 gap-3"${_scopeId}>`);
398
+ _push2(ssrRenderComponent(_component_UFormField, {
399
+ label: "Select tests by",
400
+ name: "mode"
401
+ }, {
402
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
403
+ if (_push3) {
404
+ _push3(ssrRenderComponent(_component_USelect, {
405
+ modelValue: unref(mode),
406
+ "onUpdate:modelValue": ($event) => isRef(mode) ? mode.value = $event : null,
407
+ items: modeItems,
408
+ disabled: unref(running),
409
+ class: "w-full"
410
+ }, null, _parent3, _scopeId2));
411
+ } else {
412
+ return [
413
+ createVNode(_component_USelect, {
414
+ modelValue: unref(mode),
415
+ "onUpdate:modelValue": ($event) => isRef(mode) ? mode.value = $event : null,
416
+ items: modeItems,
417
+ disabled: unref(running),
418
+ class: "w-full"
419
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
420
+ ];
421
+ }
422
+ }),
423
+ _: 1
424
+ }, _parent2, _scopeId));
425
+ _push2(ssrRenderComponent(_component_UFormField, {
426
+ label: "Browser",
427
+ name: "runMode"
428
+ }, {
429
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
430
+ if (_push3) {
431
+ _push3(ssrRenderComponent(_component_USelect, {
432
+ modelValue: unref(runMode),
433
+ "onUpdate:modelValue": ($event) => isRef(runMode) ? runMode.value = $event : null,
434
+ items: runModeItems,
435
+ disabled: unref(running),
436
+ class: "w-full"
437
+ }, null, _parent3, _scopeId2));
438
+ } else {
439
+ return [
440
+ createVNode(_component_USelect, {
441
+ modelValue: unref(runMode),
442
+ "onUpdate:modelValue": ($event) => isRef(runMode) ? runMode.value = $event : null,
443
+ items: runModeItems,
444
+ disabled: unref(running),
445
+ class: "w-full"
446
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
447
+ ];
448
+ }
449
+ }),
450
+ _: 1
451
+ }, _parent2, _scopeId));
452
+ _push2(ssrRenderComponent(_component_UFormField, {
453
+ label: "Repeat each",
454
+ name: "repeatEach",
455
+ description: "Run every test N times — flake reproduction."
456
+ }, {
457
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
458
+ if (_push3) {
459
+ _push3(ssrRenderComponent(_component_UInput, {
460
+ modelValue: unref(repeatEach),
461
+ "onUpdate:modelValue": ($event) => isRef(repeatEach) ? repeatEach.value = $event : null,
462
+ modelModifiers: { number: true },
463
+ type: "number",
464
+ min: "1",
465
+ max: "1000",
466
+ disabled: unref(running),
467
+ class: "w-full"
468
+ }, null, _parent3, _scopeId2));
469
+ } else {
470
+ return [
471
+ createVNode(_component_UInput, {
472
+ modelValue: unref(repeatEach),
473
+ "onUpdate:modelValue": ($event) => isRef(repeatEach) ? repeatEach.value = $event : null,
474
+ modelModifiers: { number: true },
475
+ type: "number",
476
+ min: "1",
477
+ max: "1000",
478
+ disabled: unref(running),
479
+ class: "w-full"
480
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
481
+ ];
482
+ }
483
+ }),
484
+ _: 1
485
+ }, _parent2, _scopeId));
486
+ _push2(ssrRenderComponent(_component_UFormField, {
487
+ label: "Trace",
488
+ name: "trace",
489
+ description: "Force trace recording (--trace=on)."
490
+ }, {
491
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
492
+ if (_push3) {
493
+ _push3(ssrRenderComponent(_component_USwitch, {
494
+ modelValue: unref(trace),
495
+ "onUpdate:modelValue": ($event) => isRef(trace) ? trace.value = $event : null,
496
+ disabled: unref(running)
497
+ }, null, _parent3, _scopeId2));
498
+ } else {
499
+ return [
500
+ createVNode(_component_USwitch, {
501
+ modelValue: unref(trace),
502
+ "onUpdate:modelValue": ($event) => isRef(trace) ? trace.value = $event : null,
503
+ disabled: unref(running)
504
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
505
+ ];
506
+ }
507
+ }),
508
+ _: 1
509
+ }, _parent2, _scopeId));
510
+ _push2(`</div>`);
511
+ if (unref(missingSpecs).length > 0) {
512
+ _push2(ssrRenderComponent(_component_UAlert, {
513
+ color: "warning",
514
+ variant: "soft",
515
+ icon: "i-lucide-file-question",
516
+ title: unref(wrongFolder) ? "None of these tests are in the linked folder" : "Some tests are not in the linked folder"
517
+ }, {
518
+ description: withCtx((_2, _push3, _parent3, _scopeId2) => {
519
+ if (_push3) {
520
+ _push3(`<p${_scopeId2}> Not found under <code class="text-xs"${_scopeId2}>${ssrInterpolate(unref(link)?.path)}</code>: <code class="text-xs"${_scopeId2}>${ssrInterpolate(unref(missingSpecs)[0])}</code>`);
521
+ if (unref(missingSpecs).length > 1) {
522
+ _push3(`<span${_scopeId2}> and ${ssrInterpolate(unref(missingSpecs).length - 1)} more</span>`);
523
+ } else {
524
+ _push3(`<!---->`);
525
+ }
526
+ _push3(`. </p><p class="mt-1"${_scopeId2}>`);
527
+ if (unref(wrongFolder)) {
528
+ _push3(`<!--[--> This project is probably linked to a different checkout than the one these tests come from. <!--]-->`);
529
+ } else {
530
+ _push3(`<!--[--> Running anyway is fine when your Playwright config puts them elsewhere. <!--]-->`);
531
+ }
532
+ _push3(`</p>`);
533
+ if (unref(wrongFolder)) {
534
+ _push3(ssrRenderComponent(_component_UButton, {
535
+ size: "xs",
536
+ color: "warning",
537
+ variant: "soft",
538
+ icon: "i-lucide-folder-search",
539
+ class: "mt-2",
540
+ loading: unref(busy),
541
+ disabled: unref(running),
542
+ onClick: unref(pickAndLink)
543
+ }, {
544
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
545
+ if (_push4) {
546
+ _push4(` Choose the right folder… `);
547
+ } else {
548
+ return [
549
+ createTextVNode(" Choose the right folder… ")
550
+ ];
551
+ }
552
+ }),
553
+ _: 1
554
+ }, _parent3, _scopeId2));
555
+ } else {
556
+ _push3(`<!---->`);
557
+ }
558
+ } else {
559
+ return [
560
+ createVNode("p", null, [
561
+ createTextVNode(" Not found under "),
562
+ createVNode("code", { class: "text-xs" }, toDisplayString(unref(link)?.path), 1),
563
+ createTextVNode(": "),
564
+ createVNode("code", { class: "text-xs" }, toDisplayString(unref(missingSpecs)[0]), 1),
565
+ unref(missingSpecs).length > 1 ? (openBlock(), createBlock("span", { key: 0 }, " and " + toDisplayString(unref(missingSpecs).length - 1) + " more", 1)) : createCommentVNode("", true),
566
+ createTextVNode(". ")
567
+ ]),
568
+ createVNode("p", { class: "mt-1" }, [
569
+ unref(wrongFolder) ? (openBlock(), createBlock(Fragment, { key: 0 }, [
570
+ createTextVNode(" This project is probably linked to a different checkout than the one these tests come from. ")
571
+ ], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
572
+ createTextVNode(" Running anyway is fine when your Playwright config puts them elsewhere. ")
573
+ ], 64))
574
+ ]),
575
+ unref(wrongFolder) ? (openBlock(), createBlock(_component_UButton, {
576
+ key: 0,
577
+ size: "xs",
578
+ color: "warning",
579
+ variant: "soft",
580
+ icon: "i-lucide-folder-search",
581
+ class: "mt-2",
582
+ loading: unref(busy),
583
+ disabled: unref(running),
584
+ onClick: unref(pickAndLink)
585
+ }, {
586
+ default: withCtx(() => [
587
+ createTextVNode(" Choose the right folder… ")
588
+ ]),
589
+ _: 1
590
+ }, 8, ["loading", "disabled", "onClick"])) : createCommentVNode("", true)
591
+ ];
592
+ }
593
+ }),
594
+ _: 1
595
+ }, _parent2, _scopeId));
596
+ } else {
597
+ _push2(`<!---->`);
598
+ }
599
+ _push2(`<div class="space-y-1"${_scopeId}><div class="text-xs text-muted"${_scopeId}>Runs in the linked folder</div>`);
600
+ _push2(ssrRenderComponent(_component_CodeBlock, {
601
+ code: unref(preview),
602
+ lang: "sh"
603
+ }, null, _parent2, _scopeId));
604
+ _push2(`</div><p class="text-xs text-muted"${_scopeId}> Results are reported by the folder&#39;s own Playwright config — with the Piwi reporter set up, the new run appears in this app automatically. </p>`);
605
+ if (unref(status) !== "idle") {
606
+ _push2(`<div class="space-y-2"${_scopeId}><div class="h-64 overflow-y-auto rounded-md bg-zinc-950 p-3"${_scopeId}><!--[-->`);
607
+ ssrRenderList(unref(lines), (line, i) => {
608
+ _push2(`<p class="${ssrRenderClass([line.error ? "text-red-400" : "text-zinc-300", "font-mono text-xs whitespace-pre-wrap"])}"${_scopeId}>${ssrInterpolate(line.text || " ")}</p>`);
609
+ });
610
+ _push2(`<!--]--></div></div>`);
611
+ } else {
612
+ _push2(`<!---->`);
613
+ }
614
+ _push2(`<!--]-->`);
615
+ }
616
+ _push2(`</div>`);
617
+ } else {
618
+ return [
619
+ createVNode("div", { class: "space-y-4" }, [
620
+ !unref(linked) ? (openBlock(), createBlock("div", {
621
+ key: 0,
622
+ class: "space-y-3"
623
+ }, [
624
+ createVNode("p", { class: "text-sm text-muted" }, " Link " + toDisplayString(__props.projectLabel || "this project") + " to its local checkout — the folder that contains these tests. Piwi runs that folder's own Playwright with the app's bundled Node, so nothing else needs to be installed. ", 1),
625
+ unref(link) && !unref(link).exists ? (openBlock(), createBlock(_component_UAlert, {
626
+ key: 0,
627
+ color: "warning",
628
+ variant: "soft",
629
+ icon: "i-lucide-folder-x",
630
+ title: "The linked folder no longer exists",
631
+ description: unref(link).path
632
+ }, null, 8, ["description"])) : createCommentVNode("", true),
633
+ createVNode(_component_UButton, {
634
+ icon: "i-lucide-folder-plus",
635
+ loading: unref(busy),
636
+ onClick: unref(pickAndLink)
637
+ }, {
638
+ default: withCtx(() => [
639
+ createTextVNode("Choose folder…")
640
+ ]),
641
+ _: 1
642
+ }, 8, ["loading", "onClick"])
643
+ ])) : (openBlock(), createBlock(Fragment, { key: 1 }, [
644
+ createVNode("div", { class: "flex items-center justify-between gap-3" }, [
645
+ createVNode("div", { class: "flex items-center gap-2 min-w-0 text-sm" }, [
646
+ createVNode(_component_UIcon, {
647
+ name: "i-lucide-folder-check",
648
+ class: "size-4 text-success shrink-0"
649
+ }),
650
+ createVNode("code", { class: "text-xs break-all" }, toDisplayString(unref(link)?.path), 1)
651
+ ]),
652
+ createVNode(_component_UButton, {
653
+ size: "xs",
654
+ color: "neutral",
655
+ variant: "ghost",
656
+ icon: "i-lucide-folder-search",
657
+ loading: unref(busy),
658
+ disabled: unref(running),
659
+ onClick: unref(pickAndLink)
660
+ }, {
661
+ default: withCtx(() => [
662
+ createTextVNode(" Change ")
663
+ ]),
664
+ _: 1
665
+ }, 8, ["loading", "disabled", "onClick"])
666
+ ]),
667
+ createVNode("div", { class: "grid grid-cols-2 gap-3" }, [
668
+ createVNode(_component_UFormField, {
669
+ label: "Select tests by",
670
+ name: "mode"
671
+ }, {
672
+ default: withCtx(() => [
673
+ createVNode(_component_USelect, {
674
+ modelValue: unref(mode),
675
+ "onUpdate:modelValue": ($event) => isRef(mode) ? mode.value = $event : null,
676
+ items: modeItems,
677
+ disabled: unref(running),
678
+ class: "w-full"
679
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
680
+ ]),
681
+ _: 1
682
+ }),
683
+ createVNode(_component_UFormField, {
684
+ label: "Browser",
685
+ name: "runMode"
686
+ }, {
687
+ default: withCtx(() => [
688
+ createVNode(_component_USelect, {
689
+ modelValue: unref(runMode),
690
+ "onUpdate:modelValue": ($event) => isRef(runMode) ? runMode.value = $event : null,
691
+ items: runModeItems,
692
+ disabled: unref(running),
693
+ class: "w-full"
694
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
695
+ ]),
696
+ _: 1
697
+ }),
698
+ createVNode(_component_UFormField, {
699
+ label: "Repeat each",
700
+ name: "repeatEach",
701
+ description: "Run every test N times — flake reproduction."
702
+ }, {
703
+ default: withCtx(() => [
704
+ createVNode(_component_UInput, {
705
+ modelValue: unref(repeatEach),
706
+ "onUpdate:modelValue": ($event) => isRef(repeatEach) ? repeatEach.value = $event : null,
707
+ modelModifiers: { number: true },
708
+ type: "number",
709
+ min: "1",
710
+ max: "1000",
711
+ disabled: unref(running),
712
+ class: "w-full"
713
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
714
+ ]),
715
+ _: 1
716
+ }),
717
+ createVNode(_component_UFormField, {
718
+ label: "Trace",
719
+ name: "trace",
720
+ description: "Force trace recording (--trace=on)."
721
+ }, {
722
+ default: withCtx(() => [
723
+ createVNode(_component_USwitch, {
724
+ modelValue: unref(trace),
725
+ "onUpdate:modelValue": ($event) => isRef(trace) ? trace.value = $event : null,
726
+ disabled: unref(running)
727
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
728
+ ]),
729
+ _: 1
730
+ })
731
+ ]),
732
+ unref(missingSpecs).length > 0 ? (openBlock(), createBlock(_component_UAlert, {
733
+ key: 0,
734
+ color: "warning",
735
+ variant: "soft",
736
+ icon: "i-lucide-file-question",
737
+ title: unref(wrongFolder) ? "None of these tests are in the linked folder" : "Some tests are not in the linked folder"
738
+ }, {
739
+ description: withCtx(() => [
740
+ createVNode("p", null, [
741
+ createTextVNode(" Not found under "),
742
+ createVNode("code", { class: "text-xs" }, toDisplayString(unref(link)?.path), 1),
743
+ createTextVNode(": "),
744
+ createVNode("code", { class: "text-xs" }, toDisplayString(unref(missingSpecs)[0]), 1),
745
+ unref(missingSpecs).length > 1 ? (openBlock(), createBlock("span", { key: 0 }, " and " + toDisplayString(unref(missingSpecs).length - 1) + " more", 1)) : createCommentVNode("", true),
746
+ createTextVNode(". ")
747
+ ]),
748
+ createVNode("p", { class: "mt-1" }, [
749
+ unref(wrongFolder) ? (openBlock(), createBlock(Fragment, { key: 0 }, [
750
+ createTextVNode(" This project is probably linked to a different checkout than the one these tests come from. ")
751
+ ], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
752
+ createTextVNode(" Running anyway is fine when your Playwright config puts them elsewhere. ")
753
+ ], 64))
754
+ ]),
755
+ unref(wrongFolder) ? (openBlock(), createBlock(_component_UButton, {
756
+ key: 0,
757
+ size: "xs",
758
+ color: "warning",
759
+ variant: "soft",
760
+ icon: "i-lucide-folder-search",
761
+ class: "mt-2",
762
+ loading: unref(busy),
763
+ disabled: unref(running),
764
+ onClick: unref(pickAndLink)
765
+ }, {
766
+ default: withCtx(() => [
767
+ createTextVNode(" Choose the right folder… ")
768
+ ]),
769
+ _: 1
770
+ }, 8, ["loading", "disabled", "onClick"])) : createCommentVNode("", true)
771
+ ]),
772
+ _: 1
773
+ }, 8, ["title"])) : createCommentVNode("", true),
774
+ createVNode("div", { class: "space-y-1" }, [
775
+ createVNode("div", { class: "text-xs text-muted" }, "Runs in the linked folder"),
776
+ createVNode(_component_CodeBlock, {
777
+ code: unref(preview),
778
+ lang: "sh"
779
+ }, null, 8, ["code"])
780
+ ]),
781
+ createVNode("p", { class: "text-xs text-muted" }, " Results are reported by the folder's own Playwright config — with the Piwi reporter set up, the new run appears in this app automatically. "),
782
+ unref(status) !== "idle" ? (openBlock(), createBlock("div", {
783
+ key: 1,
784
+ class: "space-y-2"
785
+ }, [
786
+ createVNode("div", {
787
+ ref_key: "outputEl",
788
+ ref: outputEl,
789
+ class: "h-64 overflow-y-auto rounded-md bg-zinc-950 p-3"
790
+ }, [
791
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(lines), (line, i) => {
792
+ return openBlock(), createBlock("p", {
793
+ key: i,
794
+ class: ["font-mono text-xs whitespace-pre-wrap", line.error ? "text-red-400" : "text-zinc-300"]
795
+ }, toDisplayString(line.text || " "), 3);
796
+ }), 128))
797
+ ], 512)
798
+ ])) : createCommentVNode("", true)
799
+ ], 64))
800
+ ])
801
+ ];
802
+ }
803
+ }),
804
+ footer: withCtx((_, _push2, _parent2, _scopeId) => {
805
+ if (_push2) {
806
+ _push2(`<div class="flex items-center justify-between w-full gap-3"${_scopeId}>`);
807
+ if (unref(statusBadge)) {
808
+ _push2(ssrRenderComponent(_component_UBadge, {
809
+ color: unref(statusBadge).color,
810
+ variant: "subtle"
811
+ }, {
812
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
813
+ if (_push3) {
814
+ _push3(`${ssrInterpolate(unref(statusBadge).label)}`);
815
+ } else {
816
+ return [
817
+ createTextVNode(toDisplayString(unref(statusBadge).label), 1)
818
+ ];
819
+ }
820
+ }),
821
+ _: 1
822
+ }, _parent2, _scopeId));
823
+ } else {
824
+ _push2(`<span${_scopeId}></span>`);
825
+ }
826
+ _push2(`<div class="flex items-center gap-2"${_scopeId}>`);
827
+ _push2(ssrRenderComponent(_component_UButton, {
828
+ color: "neutral",
829
+ variant: "ghost",
830
+ onClick: ($event) => open.value = false
831
+ }, {
832
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
833
+ if (_push3) {
834
+ _push3(`Close`);
835
+ } else {
836
+ return [
837
+ createTextVNode("Close")
838
+ ];
839
+ }
840
+ }),
841
+ _: 1
842
+ }, _parent2, _scopeId));
843
+ if (unref(running)) {
844
+ _push2(ssrRenderComponent(_component_UButton, {
845
+ color: "error",
846
+ icon: "i-lucide-square",
847
+ onClick: ($event) => unref(stop)()
848
+ }, {
849
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
850
+ if (_push3) {
851
+ _push3(`Stop`);
852
+ } else {
853
+ return [
854
+ createTextVNode("Stop")
855
+ ];
856
+ }
857
+ }),
858
+ _: 1
859
+ }, _parent2, _scopeId));
860
+ } else {
861
+ _push2(ssrRenderComponent(_component_UButton, {
862
+ icon: "i-lucide-play",
863
+ disabled: !unref(linked) || unref(plan).length === 0 || unref(busy),
864
+ onClick: ($event) => run()
865
+ }, {
866
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
867
+ if (_push3) {
868
+ _push3(`${ssrInterpolate(unref(status) === "idle" ? "Run" : "Run again")}`);
869
+ } else {
870
+ return [
871
+ createTextVNode(toDisplayString(unref(status) === "idle" ? "Run" : "Run again"), 1)
872
+ ];
873
+ }
874
+ }),
875
+ _: 1
876
+ }, _parent2, _scopeId));
877
+ }
878
+ _push2(`</div></div>`);
879
+ } else {
880
+ return [
881
+ createVNode("div", { class: "flex items-center justify-between w-full gap-3" }, [
882
+ unref(statusBadge) ? (openBlock(), createBlock(_component_UBadge, {
883
+ key: 0,
884
+ color: unref(statusBadge).color,
885
+ variant: "subtle"
886
+ }, {
887
+ default: withCtx(() => [
888
+ createTextVNode(toDisplayString(unref(statusBadge).label), 1)
889
+ ]),
890
+ _: 1
891
+ }, 8, ["color"])) : (openBlock(), createBlock("span", { key: 1 })),
892
+ createVNode("div", { class: "flex items-center gap-2" }, [
893
+ createVNode(_component_UButton, {
894
+ color: "neutral",
895
+ variant: "ghost",
896
+ onClick: ($event) => open.value = false
897
+ }, {
898
+ default: withCtx(() => [
899
+ createTextVNode("Close")
900
+ ]),
901
+ _: 1
902
+ }, 8, ["onClick"]),
903
+ unref(running) ? (openBlock(), createBlock(_component_UButton, {
904
+ key: 0,
905
+ color: "error",
906
+ icon: "i-lucide-square",
907
+ onClick: ($event) => unref(stop)()
908
+ }, {
909
+ default: withCtx(() => [
910
+ createTextVNode("Stop")
911
+ ]),
912
+ _: 1
913
+ }, 8, ["onClick"])) : (openBlock(), createBlock(_component_UButton, {
914
+ key: 1,
915
+ icon: "i-lucide-play",
916
+ disabled: !unref(linked) || unref(plan).length === 0 || unref(busy),
917
+ onClick: ($event) => run()
918
+ }, {
919
+ default: withCtx(() => [
920
+ createTextVNode(toDisplayString(unref(status) === "idle" ? "Run" : "Run again"), 1)
921
+ ]),
922
+ _: 1
923
+ }, 8, ["disabled", "onClick"]))
924
+ ])
925
+ ])
926
+ ];
927
+ }
928
+ }),
929
+ _: 1
930
+ }, _parent));
931
+ };
932
+ }
933
+ });
934
+ const _sfc_setup$5 = _sfc_main$5.setup;
935
+ _sfc_main$5.setup = (props, ctx) => {
936
+ const ssrContext = useSSRContext();
937
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopRunLocallyModal.vue");
938
+ return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
939
+ };
940
+ const __nuxt_component_2 = Object.assign(_sfc_main$5, { __name: "DesktopRunLocallyModal" });
941
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
942
+ __name: "DesktopRunLocallyButton",
943
+ __ssrInlineRender: true,
944
+ props: {
945
+ projectId: {},
946
+ projectLabel: {},
947
+ cases: {}
948
+ },
949
+ setup(__props) {
950
+ const props = __props;
951
+ const available = ref(false);
952
+ const open = ref(false);
953
+ const canRun = computed(() => available.value && props.projectId != null && props.cases.length > 0);
954
+ return (_ctx, _push, _parent, _attrs) => {
955
+ const _component_UTooltip = _sfc_main$8;
956
+ const _component_UButton = _sfc_main$k;
957
+ const _component_DesktopRunLocallyModal = __nuxt_component_2;
958
+ if (unref(canRun)) {
959
+ _push(`<span${ssrRenderAttrs(mergeProps({ class: "inline-flex" }, _attrs))}>`);
960
+ _push(ssrRenderComponent(_component_UTooltip, { text: "Run these tests on this machine" }, {
961
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
962
+ if (_push2) {
963
+ _push2(ssrRenderComponent(_component_UButton, {
964
+ size: "xs",
965
+ color: "warning",
966
+ variant: "subtle",
967
+ icon: "i-lucide-monitor-play",
968
+ onClick: ($event) => open.value = true
969
+ }, {
970
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
971
+ if (_push3) {
972
+ _push3(` Run locally `);
973
+ } else {
974
+ return [
975
+ createTextVNode(" Run locally ")
976
+ ];
977
+ }
978
+ }),
979
+ _: 1
980
+ }, _parent2, _scopeId));
981
+ } else {
982
+ return [
983
+ createVNode(_component_UButton, {
984
+ size: "xs",
985
+ color: "warning",
986
+ variant: "subtle",
987
+ icon: "i-lucide-monitor-play",
988
+ onClick: ($event) => open.value = true
989
+ }, {
990
+ default: withCtx(() => [
991
+ createTextVNode(" Run locally ")
992
+ ]),
993
+ _: 1
994
+ }, 8, ["onClick"])
995
+ ];
996
+ }
997
+ }),
998
+ _: 1
999
+ }, _parent));
1000
+ _push(ssrRenderComponent(_component_DesktopRunLocallyModal, {
1001
+ open: unref(open),
1002
+ "onUpdate:open": ($event) => isRef(open) ? open.value = $event : null,
1003
+ "project-id": __props.projectId,
1004
+ "project-label": __props.projectLabel,
1005
+ cases: __props.cases
1006
+ }, null, _parent));
1007
+ _push(`</span>`);
1008
+ } else {
1009
+ _push(`<!---->`);
1010
+ }
1011
+ };
1012
+ }
1013
+ });
1014
+ const _sfc_setup$4 = _sfc_main$4.setup;
1015
+ _sfc_main$4.setup = (props, ctx) => {
1016
+ const ssrContext = useSSRContext();
1017
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopRunLocallyButton.vue");
1018
+ return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
1019
+ };
1020
+ const __nuxt_component_14 = Object.assign(_sfc_main$4, { __name: "DesktopRunLocallyButton" });
1021
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1022
+ __name: "DetailPageLayout",
1023
+ __ssrInlineRender: true,
1024
+ props: /* @__PURE__ */ mergeModels({
1025
+ tabItems: {},
1026
+ tabPanelClass: {}
1027
+ }, {
1028
+ "modelValue": { required: true },
1029
+ "modelModifiers": {}
1030
+ }),
1031
+ emits: ["update:modelValue"],
1032
+ setup(__props) {
1033
+ const props = __props;
1034
+ const activeTab = useModel(__props, "modelValue");
1035
+ const summaryCollapsed = ref(false);
1036
+ const activeTabIcon = computed(() => props.tabItems.find((t) => t.value === activeTab.value)?.icon);
1037
+ function panelClasses(value) {
1038
+ const desktop = props.tabPanelClass?.[value] ?? "overflow-y-auto";
1039
+ return ["min-h-0", "lg:flex-1", desktop, "max-lg:!block", "max-lg:!overflow-visible"];
1040
+ }
1041
+ return (_ctx, _push, _parent, _attrs) => {
1042
+ const _component_UIcon = _sfc_main$p;
1043
+ const _component_USelect = _sfc_main$6;
1044
+ const _component_UTabs = _sfc_main$7;
1045
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "flex flex-col h-full gap-4 p-1 max-lg:overflow-y-auto lg:overflow-hidden" }, _attrs))}>`);
1046
+ if (_ctx.$slots.summary) {
1047
+ _push(`<div class="lg:shrink-0"><div class="${ssrRenderClass(unref(summaryCollapsed) ? "max-lg:hidden" : "")}">`);
1048
+ ssrRenderSlot(_ctx.$slots, "summary", {}, null, _push, _parent);
1049
+ _push(`</div><button type="button" class="lg:hidden mt-2 w-full flex items-center justify-center gap-1 rounded-md border border-default py-1.5 text-xs font-medium text-muted hover:bg-elevated/60 transition-colors">`);
1050
+ _push(ssrRenderComponent(_component_UIcon, {
1051
+ name: unref(summaryCollapsed) ? "i-lucide-chevron-down" : "i-lucide-chevron-up",
1052
+ class: "size-3.5"
1053
+ }, null, _parent));
1054
+ _push(` ${ssrInterpolate(unref(summaryCollapsed) ? "Show summary" : "Hide summary")}</button></div>`);
1055
+ } else {
1056
+ _push(`<!---->`);
1057
+ }
1058
+ _push(`<div class="lg:shrink-0 max-lg:sticky max-lg:top-0 max-lg:z-10 max-lg:-mx-1 max-lg:bg-(--ui-bg-canvas) max-lg:px-1 max-lg:py-1.5">`);
1059
+ _push(ssrRenderComponent(_component_USelect, {
1060
+ modelValue: activeTab.value,
1061
+ "onUpdate:modelValue": ($event) => activeTab.value = $event,
1062
+ items: __props.tabItems,
1063
+ icon: unref(activeTabIcon),
1064
+ size: "md",
1065
+ class: "w-full sm:hidden"
1066
+ }, null, _parent));
1067
+ _push(ssrRenderComponent(_component_UTabs, {
1068
+ modelValue: activeTab.value,
1069
+ "onUpdate:modelValue": ($event) => activeTab.value = $event,
1070
+ items: __props.tabItems,
1071
+ size: "sm",
1072
+ class: "hidden sm:flex",
1073
+ ui: { list: "overflow-x-auto", trigger: "shrink-0" }
1074
+ }, null, _parent));
1075
+ _push(`</div><!--[-->`);
1076
+ ssrRenderList(__props.tabItems, (item) => {
1077
+ _push(`<!--[-->`);
1078
+ if (activeTab.value === item.value) {
1079
+ _push(`<div class="${ssrRenderClass(panelClasses(item.value))}">`);
1080
+ ssrRenderSlot(_ctx.$slots, `tab-${item.slot ?? item.value}`, {}, null, _push, _parent);
1081
+ _push(`</div>`);
1082
+ } else {
1083
+ _push(`<!---->`);
1084
+ }
1085
+ _push(`<!--]-->`);
1086
+ });
1087
+ _push(`<!--]--></div>`);
1088
+ };
1089
+ }
1090
+ });
1091
+ const _sfc_setup$3 = _sfc_main$3.setup;
1092
+ _sfc_main$3.setup = (props, ctx) => {
1093
+ const ssrContext = useSSRContext();
1094
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/DetailPageLayout.vue");
1095
+ return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
1096
+ };
1097
+ const __nuxt_component_8 = Object.assign(_sfc_main$3, { __name: "DetailPageLayout" });
1098
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1099
+ __name: "StatusChip",
1100
+ __ssrInlineRender: true,
1101
+ props: {
1102
+ status: {},
1103
+ size: {}
1104
+ },
1105
+ setup(__props) {
1106
+ return (_ctx, _push, _parent, _attrs) => {
1107
+ const _component_UBadge = _sfc_main$7$1;
1108
+ const _component_UIcon = _sfc_main$p;
1109
+ _push(ssrRenderComponent(_component_UBadge, mergeProps({
1110
+ color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(__props.status),
1111
+ size: __props.size,
1112
+ variant: "subtle",
1113
+ class: "capitalize gap-1 items-center font-semibold shrink-0"
1114
+ }, _attrs), {
1115
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1116
+ if (_push2) {
1117
+ _push2(ssrRenderComponent(_component_UIcon, {
1118
+ name: ("getStatusIcon" in _ctx ? _ctx.getStatusIcon : unref(getStatusIcon))(__props.status),
1119
+ class: ["size-3.5 shrink-0", { "animate-spin": ("isStatusInFlight" in _ctx ? _ctx.isStatusInFlight : unref(isStatusInFlight))(__props.status) }]
1120
+ }, null, _parent2, _scopeId));
1121
+ _push2(` ${ssrInterpolate(("formatStatusLabel" in _ctx ? _ctx.formatStatusLabel : unref(formatStatusLabel))(__props.status))}`);
1122
+ } else {
1123
+ return [
1124
+ createVNode(_component_UIcon, {
1125
+ name: ("getStatusIcon" in _ctx ? _ctx.getStatusIcon : unref(getStatusIcon))(__props.status),
1126
+ class: ["size-3.5 shrink-0", { "animate-spin": ("isStatusInFlight" in _ctx ? _ctx.isStatusInFlight : unref(isStatusInFlight))(__props.status) }]
1127
+ }, null, 8, ["name", "class"]),
1128
+ createTextVNode(" " + toDisplayString(("formatStatusLabel" in _ctx ? _ctx.formatStatusLabel : unref(formatStatusLabel))(__props.status)), 1)
1129
+ ];
1130
+ }
1131
+ }),
1132
+ _: 1
1133
+ }, _parent));
1134
+ };
1135
+ }
1136
+ });
1137
+ const _sfc_setup$2 = _sfc_main$2.setup;
1138
+ _sfc_main$2.setup = (props, ctx) => {
1139
+ const ssrContext = useSSRContext();
1140
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/StatusChip.vue");
1141
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
1142
+ };
1143
+ const __nuxt_component_1 = Object.assign(_sfc_main$2, { __name: "StatusChip" });
1144
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1145
+ __name: "SummaryMetaStrip",
1146
+ __ssrInlineRender: true,
1147
+ setup(__props) {
1148
+ return (_ctx, _push, _parent, _attrs) => {
1149
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "flex flex-wrap items-center gap-y-1 text-sm min-w-0" }, _attrs))}>`);
1150
+ ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
1151
+ _push(`</div>`);
1152
+ };
1153
+ }
1154
+ });
1155
+ const _sfc_setup$1 = _sfc_main$1.setup;
1156
+ _sfc_main$1.setup = (props, ctx) => {
1157
+ const ssrContext = useSSRContext();
1158
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/SummaryMetaStrip.vue");
1159
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
1160
+ };
1161
+ const __nuxt_component_16 = Object.assign(_sfc_main$1, { __name: "SummaryMetaStrip" });
1162
+ const _sfc_main = /* @__PURE__ */ defineComponent({
1163
+ __name: "MetaStripGroup",
1164
+ __ssrInlineRender: true,
1165
+ props: {
1166
+ label: {},
1167
+ icon: {},
1168
+ help: {}
1169
+ },
1170
+ setup(__props) {
1171
+ return (_ctx, _push, _parent, _attrs) => {
1172
+ const _component_UIcon = _sfc_main$p;
1173
+ const _component_HelpHint = __nuxt_component_2$1;
1174
+ _push(`<div${ssrRenderAttrs(mergeProps({
1175
+ class: "inline-flex items-center flex-wrap gap-x-1.5 gap-y-1 min-w-0 py-0.5 mr-3 [&:not(:first-child)]:border-l [&:not(:first-child)]:border-default [&:not(:first-child)]:pl-3",
1176
+ title: __props.label
1177
+ }, _attrs))}>`);
1178
+ if (__props.icon) {
1179
+ _push(ssrRenderComponent(_component_UIcon, {
1180
+ name: __props.icon,
1181
+ class: "w-3.5 h-3.5 text-dimmed shrink-0"
1182
+ }, null, _parent));
1183
+ } else {
1184
+ _push(`<!---->`);
1185
+ }
1186
+ ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
1187
+ if (__props.help) {
1188
+ _push(ssrRenderComponent(_component_HelpHint, { topic: __props.help }, null, _parent));
1189
+ } else {
1190
+ _push(`<!---->`);
1191
+ }
1192
+ _push(`</div>`);
1193
+ };
1194
+ }
1195
+ });
1196
+ const _sfc_setup = _sfc_main.setup;
1197
+ _sfc_main.setup = (props, ctx) => {
1198
+ const ssrContext = useSSRContext();
1199
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/MetaStripGroup.vue");
1200
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
1201
+ };
1202
+ const __nuxt_component_17 = Object.assign(_sfc_main, { __name: "MetaStripGroup" });
1203
+
1204
+ export { __nuxt_component_8 as _, __nuxt_component_14 as a, __nuxt_component_1 as b, __nuxt_component_16 as c, __nuxt_component_17 as d };
1205
+ //# sourceMappingURL=MetaStripGroup-dXXa_MzF.mjs.map