@piwitests/server 0.18.2 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (773) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BlnwU1OO.js → -09h6CA9.js} +1 -1
  3. package/.output/public/_nuxt/279D2RYp.js +1 -0
  4. package/.output/public/_nuxt/81InBX9v.js +1 -0
  5. package/.output/public/_nuxt/{CUvGJXY3.js → Ar3IelOY.js} +1 -1
  6. package/.output/public/_nuxt/B33iXw77.js +1 -0
  7. package/.output/public/_nuxt/B3B9Ii2A.js +1 -0
  8. package/.output/public/_nuxt/B3HO8kuh.js +1 -0
  9. package/.output/public/_nuxt/B44A4LSJ.js +1 -0
  10. package/.output/public/_nuxt/{C8OCrfDP.js → B7NBP1C-.js} +1 -1
  11. package/.output/public/_nuxt/{DZ3Vfcpz.js → B9WhzpKO.js} +1 -1
  12. package/.output/public/_nuxt/{DWowvnwc.js → BCMuIgP5.js} +1 -1
  13. package/.output/public/_nuxt/BDicZ1gQ.js +1 -0
  14. package/.output/public/_nuxt/BJ0XQElc.js +1 -0
  15. package/.output/public/_nuxt/{xqiPI_FQ.js → BMvCSA6h.js} +1 -1
  16. package/.output/public/_nuxt/BPQoBGg5.js +1 -0
  17. package/.output/public/_nuxt/BPRffDuo.js +1 -0
  18. package/.output/public/_nuxt/BSIxhGsh.js +1 -0
  19. package/.output/public/_nuxt/BVaxh6Nl.js +4 -0
  20. package/.output/public/_nuxt/{hgHc4teu.js → BX9ZXe98.js} +1 -1
  21. package/.output/public/_nuxt/{CcXaak_K.js → BYDaY0Z7.js} +1 -1
  22. package/.output/public/_nuxt/{S5DLdEpg.js → Bc8mOoz9.js} +2 -2
  23. package/.output/public/_nuxt/BccXfBfI.js +1 -0
  24. package/.output/public/_nuxt/{Bd3HqPMF.js → BeLWlVK0.js} +1 -1
  25. package/.output/public/_nuxt/{D5oNv2cB.js → BfTuX0wq.js} +1 -1
  26. package/.output/public/_nuxt/BjaRappk.js +1 -0
  27. package/.output/public/_nuxt/{By4YL7mx.js → Bn0YQDyy.js} +1 -1
  28. package/.output/public/_nuxt/Bp5ELvx9.js +1 -0
  29. package/.output/public/_nuxt/BpUaY9nH.js +2 -0
  30. package/.output/public/_nuxt/BqV0l12c.js +1 -0
  31. package/.output/public/_nuxt/{BjCHB89N.js → Bti38m-M.js} +1 -1
  32. package/.output/public/_nuxt/{QmMoMxLM.js → Bu2aaVIY.js} +3 -3
  33. package/.output/public/_nuxt/{DZUgX70W.js → BuMC3WjZ.js} +1 -1
  34. package/.output/public/_nuxt/{BJtlcTrb.js → BxCKKeYs.js} +1 -1
  35. package/.output/public/_nuxt/{CfOLBbW9.js → C-elpgyr.js} +1 -1
  36. package/.output/public/_nuxt/C2_3mdPC.js +1 -0
  37. package/.output/public/_nuxt/{BLIRKrbM.js → C5iG7O4O.js} +4 -4
  38. package/.output/public/_nuxt/C7P1UCO2.js +1 -0
  39. package/.output/public/_nuxt/{hH1UFE3Z.js → C95YAaJq.js} +1 -1
  40. package/.output/public/_nuxt/{BXY_PWcx.js → C9_jrmk9.js} +2 -2
  41. package/.output/public/_nuxt/CDk0q2hV.js +2 -0
  42. package/.output/public/_nuxt/{kjYMoWWx.js → CGNkHojN.js} +3 -3
  43. package/.output/public/_nuxt/CHEFCN8Q.js +1 -0
  44. package/.output/public/_nuxt/CHNwfU1y.js +1 -0
  45. package/.output/public/_nuxt/CK_2LZBS.js +1 -0
  46. package/.output/public/_nuxt/CNFYDQmj.js +1 -0
  47. package/.output/public/_nuxt/{DZOS7Fh7.js → CTxDO9fB.js} +1 -1
  48. package/.output/public/_nuxt/{kS3boz40.js → CU5S9GCh.js} +1 -1
  49. package/.output/public/_nuxt/{DZ1zNBVM.js → CUtJobDm.js} +1 -1
  50. package/.output/public/_nuxt/CV9-fTmY.js +1 -0
  51. package/.output/public/_nuxt/{e7zD3uJ0.js → CYsTqbBS.js} +1 -1
  52. package/.output/public/_nuxt/{C9YzQCiq.js → CZfMdzfk.js} +1 -1
  53. package/.output/public/_nuxt/{B-IcwqZ2.js → Cdff9XNh.js} +1 -1
  54. package/.output/public/_nuxt/{CNMoZYMv.js → ClOqkAcc.js} +1 -1
  55. package/.output/public/_nuxt/{DXbPFI1d.js → CpjgB2aY.js} +1 -1
  56. package/.output/public/_nuxt/CrwJAwhk.js +1 -0
  57. package/.output/public/_nuxt/CtQBsNUb.js +1 -0
  58. package/.output/public/_nuxt/CuSVQEkS.js +3 -0
  59. package/.output/public/_nuxt/{Df7kUO0m.js → CylWPruw.js} +1 -1
  60. package/.output/public/_nuxt/CzGyac8q.js +1 -0
  61. package/.output/public/_nuxt/D-c8ZSws.js +1 -0
  62. package/.output/public/_nuxt/{B2oUeBbA.js → D0HNloZ9.js} +1 -1
  63. package/.output/public/_nuxt/{DBtBvrYc.js → D55D4EYo.js} +1 -1
  64. package/.output/public/_nuxt/{CfPSts5n.js → DDDpCFpF.js} +1 -1
  65. package/.output/public/_nuxt/{CPLJeOCb.js → DEFEpYzn.js} +1 -1
  66. package/.output/public/_nuxt/DGfAxLHV.js +1 -0
  67. package/.output/public/_nuxt/DHDtnj7p.js +1 -0
  68. package/.output/public/_nuxt/DLSrtpsA.js +1 -0
  69. package/.output/public/_nuxt/DP8hfJ9h.js +1 -0
  70. package/.output/public/_nuxt/DS636elg.js +1 -0
  71. package/.output/public/_nuxt/{Cng9gj7q.js → DT53RWbC.js} +1 -1
  72. package/.output/public/_nuxt/DVDXJYq2.js +2 -0
  73. package/.output/public/_nuxt/DW0xl3I6.js +17 -0
  74. package/.output/public/_nuxt/{4TxgDGVa.js → DX-MDGb3.js} +1 -1
  75. package/.output/public/_nuxt/DcmZRa_F.js +1 -0
  76. package/.output/public/_nuxt/DgE2YE3R.js +1 -0
  77. package/.output/public/_nuxt/Dgf5N4Ng.js +1 -0
  78. package/.output/public/_nuxt/DiOLdHBC.js +1 -0
  79. package/.output/public/_nuxt/DiZyJYez.js +1 -0
  80. package/.output/public/_nuxt/Dk9fwOCm.js +34 -0
  81. package/.output/public/_nuxt/{BlA8mIS-.js → Dnpkl-1q.js} +1 -1
  82. package/.output/public/_nuxt/DoUy4UHi.js +44 -0
  83. package/.output/public/_nuxt/{CN1mJlvD.js → DprVVyUQ.js} +1 -1
  84. package/.output/public/_nuxt/{DD5HpaW9.js → DslPMqfa.js} +1 -1
  85. package/.output/public/_nuxt/{BFP6M-20.js → FUXhyidq.js} +1 -1
  86. package/.output/public/_nuxt/HXerICAi.js +79 -0
  87. package/.output/public/_nuxt/{gnCL8GjZ.js → IvQlbZk6.js} +1 -1
  88. package/.output/public/_nuxt/{BOCwBVnz.js → Jo8kRmHz.js} +1 -1
  89. package/.output/public/_nuxt/{oFM1KLWA.js → KnfsST6Y.js} +1 -1
  90. package/.output/public/_nuxt/NQikbhmK.js +253 -0
  91. package/.output/public/_nuxt/OSduWzyz.js +1 -0
  92. package/.output/public/_nuxt/SfMRXW25.js +5 -0
  93. package/.output/public/_nuxt/{BBK2-Krn.js → SlIRLREZ.js} +2 -2
  94. package/.output/public/_nuxt/TagBadge.By1E6r4y.css +1 -0
  95. package/.output/public/_nuxt/WsxFTEFq.js +10 -0
  96. package/.output/public/_nuxt/YVN7WG7q.js +1 -0
  97. package/.output/public/_nuxt/{rTvJTef_.js → ZFiQCMUB.js} +1 -1
  98. package/.output/public/_nuxt/aQgs_c6e.js +9 -0
  99. package/.output/public/_nuxt/builds/latest.json +1 -1
  100. package/.output/public/_nuxt/builds/meta/ab473028-4b37-4884-b243-b8f6e5046e5e.json +1 -0
  101. package/.output/public/_nuxt/{B1X__ilH.js → cHAnlQbv.js} +1 -1
  102. package/.output/public/_nuxt/dYCKgE-3.js +5 -0
  103. package/.output/public/_nuxt/{BeFDVhpA.js → eaVkJRSa.js} +1 -1
  104. package/.output/public/_nuxt/entry.CPhW41mh.css +1 -0
  105. package/.output/public/_nuxt/{Dwws9U0D.js → eptP4pGv.js} +1 -1
  106. package/.output/public/_nuxt/fVcG504p.js +1 -0
  107. package/.output/public/_nuxt/g26aVPxc.js +1 -0
  108. package/.output/public/_nuxt/{CsUoYK75.js → ndShiWE8.js} +1 -1
  109. package/.output/public/_nuxt/nv9-6vBK.js +1 -0
  110. package/.output/public/_nuxt/rWNTSFD6.js +3 -0
  111. package/.output/public/_nuxt/tvgqrYDd.js +1 -0
  112. package/.output/public/_nuxt/{wHnZ9OaL.js → y17lMTFy.js} +1 -1
  113. package/.output/public/_nuxt/{qpI-_f9Q.js → ybDYeNxd.js} +1 -1
  114. package/.output/public/_nuxt/{D0cnIs93.js → zQyPuvV1.js} +1 -1
  115. package/.output/public/demo/seed.version.json +2 -2
  116. package/.output/server/chunks/_/ai-prompt-preview.mjs +38 -0
  117. package/.output/server/chunks/_/ai-prompt-preview.mjs.map +1 -0
  118. package/.output/server/chunks/_/collect.mjs +122 -0
  119. package/.output/server/chunks/_/collect.mjs.map +1 -0
  120. package/.output/server/chunks/_/import-runs.mjs +351 -0
  121. package/.output/server/chunks/_/import-runs.mjs.map +1 -0
  122. package/.output/server/chunks/_/markers.mjs +1 -1
  123. package/.output/server/chunks/_/quarantine.mjs +112 -0
  124. package/.output/server/chunks/_/quarantine.mjs.map +1 -0
  125. package/.output/server/chunks/_/users.mjs +1 -1
  126. package/.output/server/chunks/build/{Alert-Bp1Wz_sq.mjs → Alert-C4xq8lao.mjs} +2 -2
  127. package/.output/server/chunks/build/Alert-C4xq8lao.mjs.map +1 -0
  128. package/.output/server/chunks/build/{Breadcrumb-C9ZPTLym.mjs → Breadcrumb-Ak2Lg3oM.mjs} +3 -3
  129. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +1 -0
  130. package/.output/server/chunks/build/{BreadcrumbNav-C3y42Vun.mjs → BreadcrumbNav-DO7I_z-n.mjs} +3 -3
  131. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +1 -0
  132. package/.output/server/chunks/build/{BrowserBadge-DNCp9pF-.mjs → BrowserBadge-D33lqUcj.mjs} +5 -5
  133. package/.output/server/chunks/build/BrowserBadge-D33lqUcj.mjs.map +1 -0
  134. package/.output/server/chunks/build/{ChartCard-Fr557IbV.mjs → ChartCard-Y1UKwMsf.mjs} +2 -2
  135. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +1 -0
  136. package/.output/server/chunks/build/{Checkbox-cVOSIY93.mjs → Checkbox-DvUBGagc.mjs} +8 -8
  137. package/.output/server/chunks/build/Checkbox-DvUBGagc.mjs.map +1 -0
  138. package/.output/server/chunks/build/{CiEnvCard-DXPOhdSG.mjs → CiEnvCard-CrjOM17n.mjs} +25 -34
  139. package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs.map +1 -0
  140. package/.output/server/chunks/build/{CodeBlock-BGwNmJ8J.mjs → CodeBlock-BgE-NSmE.mjs} +7 -22
  141. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +1 -0
  142. package/.output/server/chunks/build/{DashboardNavbar-Bdp-OwTN.mjs → DashboardNavbar-BHmMSPX7.mjs} +3 -3
  143. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +1 -0
  144. package/.output/server/chunks/build/{DashboardSidebarToggle-Ji6ADuqF.mjs → DashboardSidebarToggle-DCTnHiIv.mjs} +3 -3
  145. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +1 -0
  146. package/.output/server/chunks/build/{DataLocationCard-D6xSOrme.mjs → DataLocationCard-B_YHdzSz.mjs} +3 -3
  147. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +1 -0
  148. package/.output/server/chunks/build/{DiagnosisPanel-DV1xwGu4.mjs → DiagnosisPanel-B646dK4p.mjs} +17 -528
  149. package/.output/server/chunks/build/DiagnosisPanel-B646dK4p.mjs.map +1 -0
  150. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs +43 -0
  151. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +1 -0
  152. package/.output/server/chunks/build/{EmptyState-DV3oT_xz.mjs → EmptyState-Dtlab7S9.mjs} +3 -3
  153. package/.output/server/chunks/build/EmptyState-Dtlab7S9.mjs.map +1 -0
  154. package/.output/server/chunks/build/{EntityLinks-DeOP13Kr.mjs → EntityLinks-D3fp57pR.mjs} +6 -6
  155. package/.output/server/chunks/build/EntityLinks-D3fp57pR.mjs.map +1 -0
  156. package/.output/server/chunks/build/{EnvManagedBadge-Qpn58Nmr.mjs → EnvManagedBadge-Bg3FSiU1.mjs} +3 -3
  157. package/.output/server/chunks/build/EnvManagedBadge-Bg3FSiU1.mjs.map +1 -0
  158. package/.output/server/chunks/build/{FormField-B-GSn_VR.mjs → FormField-B0HKsdMd.mjs} +3 -3
  159. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +1 -0
  160. package/.output/server/chunks/build/{HelpHint-YEMWtKu1.mjs → HelpHint-DrcIv-Oj.mjs} +53 -6
  161. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +1 -0
  162. package/.output/server/chunks/build/{Label-DBvbHd3A.mjs → Label-DYDR1Oeh.mjs} +2 -2
  163. package/.output/server/chunks/build/Label-DYDR1Oeh.mjs.map +1 -0
  164. package/.output/server/chunks/build/{MiniRunBars-C3HG-EYm.mjs → MiniRunBars-CZMugDrh.mjs} +2 -2
  165. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +1 -0
  166. package/.output/server/chunks/build/{Modal-CfA78Hm1.mjs → Modal-Ck2XLt8d.mjs} +2 -2
  167. package/.output/server/chunks/build/Modal-Ck2XLt8d.mjs.map +1 -0
  168. package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs → OpenInIdeLink-C4MXA8ya.mjs} +6 -6
  169. package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs.map → OpenInIdeLink-C4MXA8ya.mjs.map} +1 -1
  170. package/.output/server/chunks/build/{ProjectTestCasesTable-9Ia825h8.mjs → ProjectTestCasesTable-CxfQ5wtN.mjs} +120 -45
  171. package/.output/server/chunks/build/ProjectTestCasesTable-CxfQ5wtN.mjs.map +1 -0
  172. package/.output/server/chunks/build/{RovingFocusItem-CxhHdNGo.mjs → RovingFocusItem-BJSzTBjy.mjs} +2 -2
  173. package/.output/server/chunks/build/RovingFocusItem-BJSzTBjy.mjs.map +1 -0
  174. package/.output/server/chunks/build/{RunReports-BpJqLHY9.mjs → RunReports-DFLv51TX.mjs} +8 -6
  175. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +1 -0
  176. package/.output/server/chunks/build/{RunStatusBadge-BhmJ_RKM.mjs → RunStatusBadge-FfGb6bkW.mjs} +3 -2
  177. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +1 -0
  178. package/.output/server/chunks/build/{SectionCard-COd9TuDq.mjs → SectionCard-CN-v0FZ_.mjs} +2 -2
  179. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +1 -0
  180. package/.output/server/chunks/build/{Select-ppPz926C.mjs → Select-CUqj50wi.mjs} +4 -4
  181. package/.output/server/chunks/build/Select-CUqj50wi.mjs.map +1 -0
  182. package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs → SelectMenu-Db7osY7J.mjs} +4 -4
  183. package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs.map → SelectMenu-Db7osY7J.mjs.map} +1 -1
  184. package/.output/server/chunks/build/{Separator-CxZdx8kw.mjs → Separator-CR4WcEKD.mjs} +2 -2
  185. package/.output/server/chunks/build/Separator-CR4WcEKD.mjs.map +1 -0
  186. package/.output/server/chunks/build/{SettingsField-DDD4oqys.mjs → SettingsField-D6iEYbEc.mjs} +6 -6
  187. package/.output/server/chunks/build/SettingsField-D6iEYbEc.mjs.map +1 -0
  188. package/.output/server/chunks/build/{Slideover-B95Rj237.mjs → Slideover-DgCa80mf.mjs} +3 -3
  189. package/.output/server/chunks/build/Slideover-DgCa80mf.mjs.map +1 -0
  190. package/.output/server/chunks/build/{Switch-xQQ3_ME1.mjs → Switch-CgUioOYB.mjs} +5 -5
  191. package/.output/server/chunks/build/Switch-CgUioOYB.mjs.map +1 -0
  192. package/.output/server/chunks/build/{Table-CPhhVzDv.mjs → Table-BRk04Hd2.mjs} +3 -3
  193. package/.output/server/chunks/build/Table-BRk04Hd2.mjs.map +1 -0
  194. package/.output/server/chunks/build/{Tabs-BV9XqjoO.mjs → Tabs-Bbsg9wag.mjs} +3 -3
  195. package/.output/server/chunks/build/Tabs-Bbsg9wag.mjs.map +1 -0
  196. package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs +31 -0
  197. package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs.map +1 -0
  198. package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs +8 -0
  199. package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs.map +1 -0
  200. package/.output/server/chunks/build/{TestCaseHistoryChart-DMb-xSJa.mjs → TestCaseHistoryChart-nMLPhdvD.mjs} +6 -6
  201. package/.output/server/chunks/build/TestCaseHistoryChart-nMLPhdvD.mjs.map +1 -0
  202. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs +200 -0
  203. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +1 -0
  204. package/.output/server/chunks/build/{TestStatusBar-CEzt76wk.mjs → TestStatusBar-j6h2Jp6A.mjs} +15 -15
  205. package/.output/server/chunks/build/TestStatusBar-j6h2Jp6A.mjs.map +1 -0
  206. package/.output/server/chunks/build/{Textarea-DrrqQUVG.mjs → Textarea-Dv2-lOvW.mjs} +2 -2
  207. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +1 -0
  208. package/.output/server/chunks/build/{Tooltip-7vwuDPrZ.mjs → Tooltip-BOazooWP.mjs} +3 -3
  209. package/.output/server/chunks/build/Tooltip-BOazooWP.mjs.map +1 -0
  210. package/.output/server/chunks/build/{VisuallyHiddenInput-C9eJVpPW.mjs → VisuallyHiddenInput-D6kBJxVd.mjs} +2 -2
  211. package/.output/server/chunks/build/VisuallyHiddenInput-D6kBJxVd.mjs.map +1 -0
  212. package/.output/server/chunks/build/{_id_-B2yirIuA.mjs → _id_-B78ky13D.mjs} +798 -358
  213. package/.output/server/chunks/build/_id_-B78ky13D.mjs.map +1 -0
  214. package/.output/server/chunks/build/{_id_-bWcP2xFl.mjs → _id_-BHh65pfg.mjs} +690 -443
  215. package/.output/server/chunks/build/_id_-BHh65pfg.mjs.map +1 -0
  216. package/.output/server/chunks/build/{_id_-B4V5fop6.mjs → _id_-Rzkqx55x.mjs} +297 -60
  217. package/.output/server/chunks/build/{_id_-B4V5fop6.mjs.map → _id_-Rzkqx55x.mjs.map} +1 -1
  218. package/.output/server/chunks/build/{_id_-CE0Gso6i.mjs → _id_-z5N6HPyC.mjs} +89 -40
  219. package/.output/server/chunks/build/_id_-z5N6HPyC.mjs.map +1 -0
  220. package/.output/server/chunks/build/{about-CoJjvUwM.mjs → about-CvSP73Ug.mjs} +100 -52
  221. package/.output/server/chunks/build/about-CvSP73Ug.mjs.map +1 -0
  222. package/.output/server/chunks/build/{account-Cn-eZqXM.mjs → account-DAfvaD-F.mjs} +21 -9
  223. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +1 -0
  224. package/.output/server/chunks/build/{ai-7jdaPOmj.mjs → ai-B4VJ9K1K.mjs} +45 -23
  225. package/.output/server/chunks/build/{ai-7jdaPOmj.mjs.map → ai-B4VJ9K1K.mjs.map} +1 -1
  226. package/.output/server/chunks/build/{analytics-B276WPeU.mjs → analytics-CJPC6t4L.mjs} +65 -39
  227. package/.output/server/chunks/build/{analytics-B276WPeU.mjs.map → analytics-CJPC6t4L.mjs.map} +1 -1
  228. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  229. package/.output/server/chunks/build/compare-RxHSOdsO.mjs +12 -0
  230. package/.output/server/chunks/build/{db.client-aHcD0wyX.mjs → db.client-CQoVTYB9.mjs} +83 -5
  231. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +1 -0
  232. package/.output/server/chunks/build/{default-BSzdkM_L.mjs → default-zvbFgDJG.mjs} +36 -24
  233. package/.output/server/chunks/build/default-zvbFgDJG.mjs.map +1 -0
  234. package/.output/server/chunks/build/{docs-BN_x1OW3.mjs → docs-DyuVEgtB.mjs} +30 -49
  235. package/.output/server/chunks/build/{docs-BN_x1OW3.mjs.map → docs-DyuVEgtB.mjs.map} +1 -1
  236. package/.output/server/chunks/build/{edit-C9Z7oZeu.mjs → edit-CFR5g2Qf.mjs} +30 -18
  237. package/.output/server/chunks/build/edit-CFR5g2Qf.mjs.map +1 -0
  238. package/.output/server/chunks/build/{fetch-8kznMtBM.mjs → fetch-B4FwBOzu.mjs} +3 -3
  239. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +1 -0
  240. package/.output/server/chunks/build/{forgot-password-BqPF4Rxs.mjs → forgot-password-CC__1OnV.mjs} +17 -5
  241. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +1 -0
  242. package/.output/server/chunks/build/{help-content-DmFnuhNu.mjs → help-content-C876a9WD.mjs} +37 -8
  243. package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +1 -0
  244. package/.output/server/chunks/build/import-CZo3djDi.mjs +1021 -0
  245. package/.output/server/chunks/build/import-CZo3djDi.mjs.map +1 -0
  246. package/.output/server/chunks/build/{index-CULN3-en.mjs → index-CU2nZhAa.mjs} +113 -42
  247. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +1 -0
  248. package/.output/server/chunks/build/{index-DVUtBexc.mjs → index-D7fe97l3.mjs} +1305 -281
  249. package/.output/server/chunks/build/index-D7fe97l3.mjs.map +1 -0
  250. package/.output/server/chunks/build/{index-BR9hw6qk.mjs → index-Stqw0dEI.mjs} +50 -30
  251. package/.output/server/chunks/build/index-Stqw0dEI.mjs.map +1 -0
  252. package/.output/server/chunks/build/{index-BK9PTRpd.mjs → index-gCw_y4ZJ.mjs} +87 -70
  253. package/.output/server/chunks/build/{index-BK9PTRpd.mjs.map → index-gCw_y4ZJ.mjs.map} +1 -1
  254. package/.output/server/chunks/build/{index-Ba-Fifra.mjs → index-tR6owKzj.mjs} +18 -6
  255. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +1 -0
  256. package/.output/server/chunks/build/{isValueEqualOrExist-DBZjbD_3.mjs → isValueEqualOrExist-D2qw9YEr.mjs} +3 -3
  257. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs.map +1 -0
  258. package/.output/server/chunks/build/{login-D2XZDuek.mjs → login-Da4u1IlW.mjs} +19 -7
  259. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +1 -0
  260. package/.output/server/chunks/build/{mcp-_o6cMS6m.mjs → mcp-B3IUvRgD.mjs} +27 -21
  261. package/.output/server/chunks/build/mcp-B3IUvRgD.mjs.map +1 -0
  262. package/.output/server/chunks/build/{notifications-Dzm9c0u_.mjs → notifications-abDv0id8.mjs} +27 -21
  263. package/.output/server/chunks/build/notifications-abDv0id8.mjs.map +1 -0
  264. package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs +368 -0
  265. package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs.map +1 -0
  266. package/.output/server/chunks/build/{reset-password-gpFzIEDj.mjs → reset-password-BmrUS4ZD.mjs} +17 -5
  267. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +1 -0
  268. package/.output/server/chunks/build/server.mjs +238 -36
  269. package/.output/server/chunks/build/{settings-pNyPBXVa.mjs → settings-Du7YqF8i.mjs} +23 -10
  270. package/.output/server/chunks/build/settings-Du7YqF8i.mjs.map +1 -0
  271. package/.output/server/chunks/build/{settings-metadata-B0wo5R-W.mjs → settings-metadata-DrEqWcW-.mjs} +11 -2
  272. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +1 -0
  273. package/.output/server/chunks/build/{storage-XelzuyPy.mjs → storage-B4vzxd8G.mjs} +41 -31
  274. package/.output/server/chunks/build/storage-B4vzxd8G.mjs.map +1 -0
  275. package/.output/server/chunks/build/styles.mjs +1 -0
  276. package/.output/server/chunks/build/{tags-DrCQ7QSw.mjs → tags-DauTe_F-.mjs} +22 -10
  277. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +1 -0
  278. package/.output/server/chunks/build/{test-cases-pmOxi-AN.mjs → test-cases-DUvaO1He.mjs} +38 -24
  279. package/.output/server/chunks/build/test-cases-DUvaO1He.mjs.map +1 -0
  280. package/.output/server/chunks/build/{timeout-hygiene-CNs71Iah.mjs → timeout-hygiene-CbnSaVbK.mjs} +20 -8
  281. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +1 -0
  282. package/.output/server/chunks/build/{useAiStatus-ZO987RY7.mjs → useAiStatus-CWvIo32Q.mjs} +89 -89
  283. package/.output/server/chunks/build/useAiStatus-CWvIo32Q.mjs.map +1 -0
  284. package/.output/server/chunks/build/{useCopy-BQQKcwlq.mjs → useCopy-CeKWgHyT.mjs} +2 -2
  285. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +1 -0
  286. package/.output/server/chunks/build/{PageStateCard-Bwee6JTk.mjs → useCopyRich-BemRsKgv.mjs} +418 -39
  287. package/.output/server/chunks/build/useCopyRich-BemRsKgv.mjs.map +1 -0
  288. package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs +46 -0
  289. package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs.map +1 -0
  290. package/.output/server/chunks/build/{useFormControl-BLpq1s4O.mjs → useFormControl-CZ9So7iX.mjs} +2 -2
  291. package/.output/server/chunks/build/useFormControl-CZ9So7iX.mjs.map +1 -0
  292. package/.output/server/chunks/build/{useOpenInIde-kMZ7Jw5c.mjs → useOpenInIde-4GFf-kdi.mjs} +2 -2
  293. package/.output/server/chunks/build/useOpenInIde-4GFf-kdi.mjs.map +1 -0
  294. package/.output/server/chunks/build/{useSettingsNav-NjI2seBy.mjs → useSettingsNav-C3O866KC.mjs} +6 -6
  295. package/.output/server/chunks/build/useSettingsNav-C3O866KC.mjs.map +1 -0
  296. package/.output/server/chunks/build/{useTreeViewCookie-DVYpxW-p.mjs → useTreeViewCookie-CQjQdTkH.mjs} +2 -2
  297. package/.output/server/chunks/build/useTreeViewCookie-CQjQdTkH.mjs.map +1 -0
  298. package/.output/server/chunks/build/{users-NmAUZs3i.mjs → users-CTUqXyGh.mjs} +22 -10
  299. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +1 -0
  300. package/.output/server/chunks/build/{virtualizer-ZaqK4guJ.mjs → virtualizer-Cd1hhlxC.mjs} +5 -5
  301. package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs.map +1 -0
  302. package/.output/server/chunks/build/{wasted-time-CguAF9zc.mjs → wasted-time-lYkx5YO4.mjs} +26 -14
  303. package/.output/server/chunks/build/wasted-time-lYkx5YO4.mjs.map +1 -0
  304. package/.output/server/chunks/nitro/nitro.mjs +4960 -1155
  305. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  306. package/.output/server/chunks/routes/__piwi/session.get.mjs +13 -1
  307. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +12 -0
  309. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/admin/stats.get.mjs +12 -0
  311. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/ai/status.get.mjs +12 -0
  313. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +12 -0
  315. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +12 -0
  317. package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +12 -0
  319. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/auth/login.post.mjs +12 -0
  321. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/auth/logout.post.mjs +12 -0
  323. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/auth/me.get.mjs +12 -0
  325. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +12 -0
  327. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +12 -0
  329. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +12 -0
  331. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +12 -0
  333. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +12 -0
  335. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/auth/setup.get.mjs +12 -0
  337. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/auth/setup.post.mjs +12 -0
  339. package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +12 -0
  341. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +12 -0
  343. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +12 -0
  345. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +12 -0
  347. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +12 -0
  349. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +12 -0
  351. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +12 -0
  353. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +12 -0
  355. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +12 -0
  357. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +12 -0
  359. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +24 -1
  361. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +13 -1
  363. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +13 -1
  365. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +13 -1
  367. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +13 -1
  369. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +64 -0
  371. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -0
  372. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +13 -1
  373. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +56 -0
  375. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -0
  376. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +13 -1
  377. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +12 -0
  379. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +13 -1
  381. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +13 -32
  383. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/health.get.mjs +13 -1
  385. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/index.get.mjs +12 -0
  387. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/index.get2.mjs +13 -1
  389. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/index.get3.mjs +13 -1
  391. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/index.get4.mjs +13 -1
  393. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/index.get5.mjs +12 -0
  395. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/index.post.mjs +12 -0
  397. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/index.post2.mjs +13 -1
  399. package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/index.post3.mjs +13 -1
  401. package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/index.post4.mjs +13 -1
  403. package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/index.post5.mjs +13 -1
  405. package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/index.post6.mjs +12 -0
  407. package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +13 -1
  409. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +13 -1
  411. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +13 -1
  413. package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +13 -1
  415. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +13 -1
  417. package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +13 -1
  419. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +13 -1
  421. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +13 -1
  423. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +13 -1
  425. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +22 -2
  427. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +13 -1
  429. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +13 -1
  431. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +13 -1
  433. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +13 -1
  435. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +13 -1
  437. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +13 -1
  439. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +58 -0
  441. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -0
  442. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +57 -0
  443. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -0
  444. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +72 -0
  445. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -0
  446. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +13 -1
  447. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +13 -1
  449. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +13 -1
  451. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +13 -1
  453. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +13 -1
  455. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +13 -1
  457. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +13 -1
  459. package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/projects/menu.get.mjs +13 -1
  461. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/projects/overview.get.mjs +13 -1
  463. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/projects.get.mjs +13 -1
  465. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/search.get.mjs +13 -1
  467. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +13 -1
  469. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +13 -1
  471. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  472. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +12 -0
  473. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  474. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +13 -1
  475. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +13 -1
  477. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/settings/ai.get.mjs +13 -1
  479. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/settings/ai.put.mjs +13 -1
  481. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +57 -0
  483. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -0
  484. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +63 -0
  485. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -0
  486. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +12 -0
  487. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +13 -1
  489. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +13 -1
  491. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +13 -1
  493. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +13 -1
  495. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +13 -1
  497. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/stream.get.mjs +13 -1
  499. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +13 -1
  501. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +13 -1
  503. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +13 -1
  505. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +13 -1
  507. package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +13 -1
  509. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +13 -1
  511. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +13 -1
  513. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +13 -1
  515. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +25 -3
  517. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +13 -1
  519. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +60 -0
  521. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -0
  522. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +13 -1
  523. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +13 -1
  525. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +13 -1
  527. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +13 -1
  529. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +13 -1
  531. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +13 -1
  533. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +13 -1
  535. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +13 -1
  537. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +13 -1
  539. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +13 -1
  541. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +13 -1
  543. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +13 -1
  545. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +13 -1
  547. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +13 -1
  549. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +15 -1
  551. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +196 -0
  553. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -0
  554. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +13 -1
  555. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +13 -1
  557. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +13 -1
  559. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +13 -1
  561. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +13 -1
  563. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  564. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +13 -1
  565. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +13 -1
  567. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +13 -1
  569. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +13 -1
  571. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +78 -0
  573. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -0
  574. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +201 -0
  575. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -0
  576. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +13 -1
  577. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +13 -1
  579. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  580. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +13 -1
  581. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  582. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +32 -15
  583. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  584. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +21 -6
  585. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +154 -3
  587. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  588. package/.output/server/chunks/routes/api/traces/check.post.mjs +13 -1
  589. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  590. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +12 -0
  591. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  592. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +12 -0
  593. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  594. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +13 -1
  595. package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
  596. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +13 -1
  597. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  598. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +13 -1
  599. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  600. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +13 -1
  601. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
  602. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +12 -0
  603. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  604. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +12 -0
  605. package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
  606. package/.output/server/chunks/routes/api/version.get.mjs +13 -1
  607. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  608. package/.output/server/chunks/routes/mcp.post.mjs +13 -1
  609. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  610. package/.output/server/chunks/routes/renderer.mjs +1 -1
  611. package/.output/server/chunks/tasks/sweep.mjs +12 -0
  612. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  613. package/.output/server/chunks/tasks/sweep2.mjs +12 -0
  614. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  615. package/.output/server/database/migrations/0039_remarkable_jean_grey.sql +2 -0
  616. package/.output/server/database/migrations/0040_organic_phalanx.sql +8 -0
  617. package/.output/server/database/migrations/0041_tense_gravity.sql +5 -0
  618. package/.output/server/database/migrations/0042_burly_hemingway.sql +19 -0
  619. package/.output/server/database/migrations/meta/0039_snapshot.json +3403 -0
  620. package/.output/server/database/migrations/meta/0040_snapshot.json +3457 -0
  621. package/.output/server/database/migrations/meta/0041_snapshot.json +3492 -0
  622. package/.output/server/database/migrations/meta/0042_snapshot.json +3618 -0
  623. package/.output/server/database/migrations/meta/_journal.json +28 -0
  624. package/.output/server/database/migrations-pg/0040_lazy_layla_miller.sql +2 -0
  625. package/.output/server/database/migrations-pg/0041_light_screwball.sql +8 -0
  626. package/.output/server/database/migrations-pg/0042_serious_layla_miller.sql +5 -0
  627. package/.output/server/database/migrations-pg/0043_wonderful_mordo.sql +19 -0
  628. package/.output/server/database/migrations-pg/meta/0040_snapshot.json +4060 -0
  629. package/.output/server/database/migrations-pg/meta/0041_snapshot.json +4123 -0
  630. package/.output/server/database/migrations-pg/meta/0042_snapshot.json +4153 -0
  631. package/.output/server/database/migrations-pg/meta/0043_snapshot.json +4308 -0
  632. package/.output/server/database/migrations-pg/meta/_journal.json +28 -0
  633. package/.output/server/index.mjs +13 -1
  634. package/.output/server/index.mjs.map +1 -1
  635. package/.output/server/node_modules/fflate/esm/index.mjs +2710 -0
  636. package/.output/server/node_modules/fflate/package.json +128 -0
  637. package/.output/server/node_modules/highlight.js/es/languages/yaml.js +213 -0
  638. package/.output/server/node_modules/marked/lib/marked.esm.js +72 -0
  639. package/.output/server/node_modules/marked/package.json +103 -0
  640. package/.output/server/package.json +3 -1
  641. package/package.json +2 -2
  642. package/.output/public/_nuxt/9-wVZMur.js +0 -4
  643. package/.output/public/_nuxt/B-5GukRk.js +0 -1
  644. package/.output/public/_nuxt/B1G3GGhQ.js +0 -1
  645. package/.output/public/_nuxt/B1zMFx24.js +0 -1
  646. package/.output/public/_nuxt/B4jvLMfS.js +0 -1
  647. package/.output/public/_nuxt/BBnX5xw4.js +0 -2
  648. package/.output/public/_nuxt/BHpUiv6j.js +0 -3
  649. package/.output/public/_nuxt/BLOUs6AE.js +0 -5
  650. package/.output/public/_nuxt/BT6p4Pgt.js +0 -2
  651. package/.output/public/_nuxt/BUXSUkJ_.js +0 -1
  652. package/.output/public/_nuxt/BVf6Yx9V.js +0 -26
  653. package/.output/public/_nuxt/BbS6Bwby.js +0 -1
  654. package/.output/public/_nuxt/BeKvLsja.js +0 -2
  655. package/.output/public/_nuxt/BeUm5UNV.js +0 -1
  656. package/.output/public/_nuxt/BfV444H3.js +0 -3
  657. package/.output/public/_nuxt/BjKamgHq.js +0 -1
  658. package/.output/public/_nuxt/BoJdjCVl.js +0 -4
  659. package/.output/public/_nuxt/BreO2PiA.js +0 -1
  660. package/.output/public/_nuxt/BvIDC_R-.js +0 -1
  661. package/.output/public/_nuxt/ByuJWADR.js +0 -34
  662. package/.output/public/_nuxt/C1dyLp_j.js +0 -1
  663. package/.output/public/_nuxt/CAUgpKsF.js +0 -2
  664. package/.output/public/_nuxt/CL9-VLTJ.js +0 -1
  665. package/.output/public/_nuxt/CazDIG_m.js +0 -1
  666. package/.output/public/_nuxt/CdMuck_X.js +0 -1
  667. package/.output/public/_nuxt/CfROFPse.js +0 -1
  668. package/.output/public/_nuxt/Cnapl7lZ.js +0 -1
  669. package/.output/public/_nuxt/CscWZxCi.js +0 -1
  670. package/.output/public/_nuxt/CuicKV-B.js +0 -34
  671. package/.output/public/_nuxt/Cyiu1VQD.js +0 -1
  672. package/.output/public/_nuxt/D6PUPmRC.js +0 -1
  673. package/.output/public/_nuxt/DCl2yo4g.js +0 -8
  674. package/.output/public/_nuxt/DHXWp5yD.js +0 -1
  675. package/.output/public/_nuxt/DHltYerF.js +0 -114
  676. package/.output/public/_nuxt/DLXydYJb.js +0 -47
  677. package/.output/public/_nuxt/DRPSi76A.js +0 -1
  678. package/.output/public/_nuxt/DS53kyHJ.js +0 -1
  679. package/.output/public/_nuxt/DWhBqv_7.js +0 -1
  680. package/.output/public/_nuxt/Dd0kK5WH.js +0 -1
  681. package/.output/public/_nuxt/Dga3Av-m.js +0 -1
  682. package/.output/public/_nuxt/DgwTpwfB.js +0 -1
  683. package/.output/public/_nuxt/DkI145a5.js +0 -1
  684. package/.output/public/_nuxt/DoFBTaDR.js +0 -1
  685. package/.output/public/_nuxt/Dr_dI5hB.js +0 -1
  686. package/.output/public/_nuxt/EPZOxdgq.js +0 -1
  687. package/.output/public/_nuxt/R1nNqTru.js +0 -1
  688. package/.output/public/_nuxt/builds/meta/7caf3cb3-d272-4dbd-bb3f-1eeb64fab5d1.json +0 -1
  689. package/.output/public/_nuxt/entry.ChQMshd4.css +0 -1
  690. package/.output/public/_nuxt/gCELhaU9.js +0 -1
  691. package/.output/public/_nuxt/ipDzNHcs.js +0 -5
  692. package/.output/public/_nuxt/qH_j2A3a.js +0 -1
  693. package/.output/public/_nuxt/r3SBLxtE.js +0 -1
  694. package/.output/public/_nuxt/rsiRgrVM.js +0 -1
  695. package/.output/public/_nuxt/swrbBdtB.js +0 -1
  696. package/.output/public/sw.js +0 -1
  697. package/.output/public/workbox-2fbc6a65.js +0 -1
  698. package/.output/server/chunks/build/Alert-Bp1Wz_sq.mjs.map +0 -1
  699. package/.output/server/chunks/build/Breadcrumb-C9ZPTLym.mjs.map +0 -1
  700. package/.output/server/chunks/build/BreadcrumbNav-C3y42Vun.mjs.map +0 -1
  701. package/.output/server/chunks/build/BrowserBadge-DNCp9pF-.mjs.map +0 -1
  702. package/.output/server/chunks/build/ChartCard-Fr557IbV.mjs.map +0 -1
  703. package/.output/server/chunks/build/Checkbox-cVOSIY93.mjs.map +0 -1
  704. package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs.map +0 -1
  705. package/.output/server/chunks/build/CodeBlock-BGwNmJ8J.mjs.map +0 -1
  706. package/.output/server/chunks/build/DashboardNavbar-Bdp-OwTN.mjs.map +0 -1
  707. package/.output/server/chunks/build/DashboardSidebarToggle-Ji6ADuqF.mjs.map +0 -1
  708. package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs.map +0 -1
  709. package/.output/server/chunks/build/DiagnosisPanel-DV1xwGu4.mjs.map +0 -1
  710. package/.output/server/chunks/build/EmptyState-DV3oT_xz.mjs.map +0 -1
  711. package/.output/server/chunks/build/EntityLinks-DeOP13Kr.mjs.map +0 -1
  712. package/.output/server/chunks/build/EnvManagedBadge-Qpn58Nmr.mjs.map +0 -1
  713. package/.output/server/chunks/build/FormField-B-GSn_VR.mjs.map +0 -1
  714. package/.output/server/chunks/build/HelpHint-YEMWtKu1.mjs.map +0 -1
  715. package/.output/server/chunks/build/Label-DBvbHd3A.mjs.map +0 -1
  716. package/.output/server/chunks/build/MiniRunBars-C3HG-EYm.mjs.map +0 -1
  717. package/.output/server/chunks/build/Modal-CfA78Hm1.mjs.map +0 -1
  718. package/.output/server/chunks/build/PageStateCard-Bwee6JTk.mjs.map +0 -1
  719. package/.output/server/chunks/build/ProjectTestCasesTable-9Ia825h8.mjs.map +0 -1
  720. package/.output/server/chunks/build/RovingFocusItem-CxhHdNGo.mjs.map +0 -1
  721. package/.output/server/chunks/build/RunReports-BpJqLHY9.mjs.map +0 -1
  722. package/.output/server/chunks/build/RunStatusBadge-BhmJ_RKM.mjs.map +0 -1
  723. package/.output/server/chunks/build/SectionCard-COd9TuDq.mjs.map +0 -1
  724. package/.output/server/chunks/build/Select-ppPz926C.mjs.map +0 -1
  725. package/.output/server/chunks/build/Separator-CxZdx8kw.mjs.map +0 -1
  726. package/.output/server/chunks/build/SettingsField-DDD4oqys.mjs.map +0 -1
  727. package/.output/server/chunks/build/Slideover-B95Rj237.mjs.map +0 -1
  728. package/.output/server/chunks/build/Switch-xQQ3_ME1.mjs.map +0 -1
  729. package/.output/server/chunks/build/Table-CPhhVzDv.mjs.map +0 -1
  730. package/.output/server/chunks/build/Tabs-BV9XqjoO.mjs.map +0 -1
  731. package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs +0 -47
  732. package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs.map +0 -1
  733. package/.output/server/chunks/build/TestCaseHistoryChart-DMb-xSJa.mjs.map +0 -1
  734. package/.output/server/chunks/build/TestStatusBar-CEzt76wk.mjs.map +0 -1
  735. package/.output/server/chunks/build/Textarea-DrrqQUVG.mjs.map +0 -1
  736. package/.output/server/chunks/build/Tooltip-7vwuDPrZ.mjs.map +0 -1
  737. package/.output/server/chunks/build/VisuallyHiddenInput-C9eJVpPW.mjs.map +0 -1
  738. package/.output/server/chunks/build/_id_-B2yirIuA.mjs.map +0 -1
  739. package/.output/server/chunks/build/_id_-CE0Gso6i.mjs.map +0 -1
  740. package/.output/server/chunks/build/_id_-bWcP2xFl.mjs.map +0 -1
  741. package/.output/server/chunks/build/about-CoJjvUwM.mjs.map +0 -1
  742. package/.output/server/chunks/build/account-Cn-eZqXM.mjs.map +0 -1
  743. package/.output/server/chunks/build/db.client-aHcD0wyX.mjs.map +0 -1
  744. package/.output/server/chunks/build/default-BSzdkM_L.mjs.map +0 -1
  745. package/.output/server/chunks/build/edit-C9Z7oZeu.mjs.map +0 -1
  746. package/.output/server/chunks/build/fetch-8kznMtBM.mjs.map +0 -1
  747. package/.output/server/chunks/build/forgot-password-BqPF4Rxs.mjs.map +0 -1
  748. package/.output/server/chunks/build/help-content-DmFnuhNu.mjs.map +0 -1
  749. package/.output/server/chunks/build/index-BR9hw6qk.mjs.map +0 -1
  750. package/.output/server/chunks/build/index-Ba-Fifra.mjs.map +0 -1
  751. package/.output/server/chunks/build/index-CULN3-en.mjs.map +0 -1
  752. package/.output/server/chunks/build/index-DVUtBexc.mjs.map +0 -1
  753. package/.output/server/chunks/build/isValueEqualOrExist-DBZjbD_3.mjs.map +0 -1
  754. package/.output/server/chunks/build/login-D2XZDuek.mjs.map +0 -1
  755. package/.output/server/chunks/build/mcp-_o6cMS6m.mjs.map +0 -1
  756. package/.output/server/chunks/build/notifications-Dzm9c0u_.mjs.map +0 -1
  757. package/.output/server/chunks/build/reset-password-gpFzIEDj.mjs.map +0 -1
  758. package/.output/server/chunks/build/settings-metadata-B0wo5R-W.mjs.map +0 -1
  759. package/.output/server/chunks/build/settings-pNyPBXVa.mjs.map +0 -1
  760. package/.output/server/chunks/build/storage-XelzuyPy.mjs.map +0 -1
  761. package/.output/server/chunks/build/tags-DrCQ7QSw.mjs.map +0 -1
  762. package/.output/server/chunks/build/test-cases-pmOxi-AN.mjs.map +0 -1
  763. package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs.map +0 -1
  764. package/.output/server/chunks/build/useAiStatus-ZO987RY7.mjs.map +0 -1
  765. package/.output/server/chunks/build/useCopy-BQQKcwlq.mjs.map +0 -1
  766. package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs.map +0 -1
  767. package/.output/server/chunks/build/useOpenInIde-kMZ7Jw5c.mjs.map +0 -1
  768. package/.output/server/chunks/build/useSettingsNav-NjI2seBy.mjs.map +0 -1
  769. package/.output/server/chunks/build/useTreeViewCookie-DVYpxW-p.mjs.map +0 -1
  770. package/.output/server/chunks/build/users-NmAUZs3i.mjs.map +0 -1
  771. package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs.map +0 -1
  772. package/.output/server/chunks/build/wasted-time-CguAF9zc.mjs.map +0 -1
  773. /package/.output/public/_nuxt/{PageStateCard.BrM5HWjY.css → useCopyRich.BrM5HWjY.css} +0 -0
@@ -0,0 +1 @@
1
+ import{d as T,U as P,o as u,f as v,g as n,V as q,a0 as L,a1 as $,k as e,bn as V,c0 as O,Z as W,H as G,bM as U,ba as X,h as b,r as N,$ as Z,B as I,aL as H,j as w,bm as J,W as m,bH as Q,m as Y,t as K,C as ee,bl as te,bx as E,bi as ae,c1 as re,bo as oe,ag as se,aC as le,br as ne,aA as ie,X as ue,bG as de,be as pe,a2 as fe,a3 as ce,a5 as ge,a6 as ve,a7 as ye,bs as be,v as x,bv as _e,c as F,q as A,F as me,y as qe,bD as Ce,b4 as R,a8 as he}from"./NQikbhmK.js";var Te=T({__name:"TooltipArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(i){const d=i;return P(),(t,p)=>(u(),v(e(V),L($(d)),{default:n(()=>[q(t.$slots,"default")]),_:3},16))}}),we=Te;const j="tooltip.open",[S,Pe]=Z("TooltipRoot");var ke=T({__name:"TooltipRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:["update:open"],setup(i,{emit:d}){const t=i,p=d;P();const r=O(),a=b(()=>t.disableHoverableContent??r.disableHoverableContent.value),g=b(()=>t.disableClosingTrigger??r.disableClosingTrigger.value),f=b(()=>t.disabled??r.disabled.value),y=b(()=>t.delayDuration??r.delayDuration.value),_=b(()=>t.ignoreNonKeyboardFocus??r.ignoreNonKeyboardFocus.value),o=W(t,"open",p,{defaultValue:t.defaultOpen,passive:t.open===void 0});G(o,B=>{r.onClose&&(B?(r.onOpen(),document.dispatchEvent(new CustomEvent(j))):r.onClose())});const s=N(!1),l=N(),C=b(()=>o.value?s.value?"delayed-open":"instant-open":"closed"),{start:D,stop:h}=U(()=>{s.value=!0,o.value=!0},y,{immediate:!1});function c(){h(),s.value=!1,o.value=!0}function k(){h(),o.value=!1}function z(){D()}return Pe({contentId:"",open:o,stateAttribute:C,trigger:l,onTriggerChange(B){l.value=B},onTriggerEnter(){r.isOpenDelayed.value?z():c()},onTriggerLeave(){a.value?k():h()},onOpen:c,onClose:k,disableHoverableContent:a,disableClosingTrigger:g,disabled:f,ignoreNonKeyboardFocus:_}),(B,He)=>(u(),v(e(X),null,{default:n(()=>[q(B.$slots,"default",{open:e(o)})]),_:3}))}}),Be=ke,Oe=T({__name:"TooltipContentImpl",props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:["escapeKeyDown","pointerDownOutside"],setup(i,{emit:d}){const t=i,p=d,r=S(),a=O(),{forwardRef:g,currentElement:f}=P(),y=b(()=>t.ariaLabel||f.value?.textContent),_=b(()=>{const{ariaLabel:o,...s}=t;return E(s,a.content.value??{},{side:"top",sideOffset:0,align:"center",avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:"partial",hideWhenDetached:!1})});return I(()=>{H(window,"scroll",o=>{o.target?.contains(r.trigger.value)&&r.onClose()},{capture:!0}),H(window,j,r.onClose)}),(o,s)=>(u(),v(e(te),{"as-child":"","disable-outside-pointer-events":!1,onEscapeKeyDown:s[0]||(s[0]=l=>p("escapeKeyDown",l)),onPointerDownOutside:s[1]||(s[1]=l=>{e(r).disableClosingTrigger.value&&e(r).trigger.value?.contains(l.target)&&l.preventDefault(),p("pointerDownOutside",l)}),onFocusOutside:s[2]||(s[2]=ee(()=>{},["prevent"])),onDismiss:s[3]||(s[3]=l=>e(r).onClose())},{default:n(()=>[w(e(J),m({ref:e(g),"data-state":e(r).stateAttribute.value},{...o.$attrs,..._.value},{style:{"--reka-tooltip-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-tooltip-content-available-width":"var(--reka-popper-available-width)","--reka-tooltip-content-available-height":"var(--reka-popper-available-height)","--reka-tooltip-trigger-width":"var(--reka-popper-anchor-width)","--reka-tooltip-trigger-height":"var(--reka-popper-anchor-height)"}}),{default:n(()=>[q(o.$slots,"default"),w(e(Q),{id:e(r).contentId,role:"tooltip"},{default:n(()=>[Y(K(y.value),1)]),_:1},8,["id"])]),_:3},16,["data-state"])]),_:3}))}}),M=Oe,De=T({__name:"TooltipContentHoverable",props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(i){const t=ae(i),{forwardRef:p,currentElement:r}=P(),{trigger:a,onClose:g}=S(),f=O(),{isPointerInTransit:y,onPointerExit:_}=re(a,r);return f.isPointerInTransitRef=y,_(()=>{g()}),(o,s)=>(u(),v(M,m({ref:e(p)},e(t)),{default:n(()=>[q(o.$slots,"default")]),_:3},16))}}),xe=De,Ne=T({__name:"TooltipContent",props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:["escapeKeyDown","pointerDownOutside"],setup(i,{emit:d}){const t=i,p=d,r=S(),a=oe(t,p),{forwardRef:g}=P();return(f,y)=>(u(),v(e(le),{present:f.forceMount||e(r).open.value},{default:n(()=>[(u(),v(se(e(r).disableHoverableContent.value?M:xe),m({ref:e(g)},e(a)),{default:n(()=>[q(f.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),Se=Ne,Fe=T({__name:"TooltipPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(i){const d=i;return(t,p)=>(u(),v(e(ne),L($(d)),{default:n(()=>[q(t.$slots,"default")]),_:3},16))}}),Re=Fe,Ee=T({__name:"TooltipTrigger",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const d=i,t=S(),p=O();t.contentId||=ie(void 0,"reka-tooltip-content");const{forwardRef:r,currentElement:a}=P(),g=N(!1),f=N(!1),y=b(()=>t.disabled.value?{}:{click:h,focus:C,pointermove:s,pointerleave:l,pointerdown:o,blur:D});I(()=>{t.onTriggerChange(a.value)});function _(){setTimeout(()=>{g.value=!1},1)}function o(){t.open&&!t.disableClosingTrigger.value&&t.onClose(),g.value=!0,document.addEventListener("pointerup",_,{once:!0})}function s(c){c.pointerType!=="touch"&&!f.value&&!p.isPointerInTransitRef.value&&(t.onTriggerEnter(),f.value=!0)}function l(){t.onTriggerLeave(),f.value=!1}function C(c){g.value||t.ignoreNonKeyboardFocus.value&&!c.target.matches?.(":focus-visible")||t.onOpen()}function D(){t.onClose()}function h(){t.disableClosingTrigger.value||t.onClose()}return(c,k)=>(u(),v(e(pe),{"as-child":"",reference:c.reference},{default:n(()=>[w(e(ue),m({ref:e(r),"aria-describedby":e(t).open.value?e(t).contentId:void 0,"data-state":e(t).stateAttribute.value,as:c.as,"as-child":d.asChild,"data-grace-area-trigger":""},de(y.value)),{default:n(()=>[q(c.$slots,"default")]),_:3},16,["aria-describedby","data-state","as","as-child"])]),_:3},8,["reference"]))}}),Le=Ee;const $e={slots:{content:"flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto",arrow:"fill-bg stroke-default",text:"truncate",kbds:"hidden lg:inline-flex items-center shrink-0 gap-0.5 not-first-of-type:before:content-['·'] not-first-of-type:before:me-0.5",kbdsSize:"sm"}},Ie={__name:"UTooltip",props:{text:{type:String,required:!1},kbds:{type:Array,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},delayDuration:{type:Number,required:!1},disableHoverableContent:{type:Boolean,required:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1}},emits:["update:open"],setup(i,{emit:d}){const t=i,p=d,r=fe(),a=ce("tooltip",t),g=ge(),f=O(),y=ve(ye(a,"defaultOpen","open","delayDuration","disableHoverableContent","disableClosingTrigger","ignoreNonKeyboardFocus"),p),_=be(R(()=>a.portal)),o=R(()=>E(a.content,f.content.value,{side:"bottom",sideOffset:8,collisionPadding:8})),s=R(()=>E(a.arrow,{rounded:!0})),l=b(()=>he({extend:$e,...g.ui?.tooltip||{}})({side:o.value.side}));return(C,D)=>(u(),v(e(Be),m(e(y),{disabled:!(e(a).text||e(a).kbds?.length||r.content)||e(a).disabled}),{default:n(({open:h})=>[r.default||e(a).reference?(u(),v(e(Le),m({key:0},C.$attrs,{"as-child":"",reference:e(a).reference,class:e(a).class}),{default:n(()=>[q(C.$slots,"default",{open:h})]),_:2},1040,["reference","class"])):x("",!0),w(e(Re),L($(e(_))),{default:n(()=>[w(e(_e),null,{default:n(()=>[w(e(Se),m(o.value,{"data-slot":"content",class:l.value.content({class:[!r.default&&e(a).class,e(a).ui?.content]})}),{default:n(()=>[q(C.$slots,"content",{ui:l.value},()=>[e(a).text?(u(),F("span",{key:0,"data-slot":"text",class:A(l.value.text({class:e(a).ui?.text}))},K(e(a).text),3)):x("",!0),e(a).kbds?.length?(u(),F("span",{key:1,"data-slot":"kbds",class:A(l.value.kbds({class:e(a).ui?.kbds}))},[(u(!0),F(me,null,qe(e(a).kbds,(c,k)=>(u(),v(Ce,m({key:k,size:e(a).ui?.kbdsSize||l.value.kbdsSize()},{ref_for:!0},typeof c=="string"?{value:c}:c),null,16,["size"]))),128))],2)):x("",!0)]),e(a).arrow?(u(),v(e(we),m({key:0},s.value,{"data-slot":"arrow",class:l.value.arrow({class:e(a).ui?.arrow})}),null,16,["class"])):x("",!0)]),_:3},16,["class"])]),_:3})]),_:3},16)]),_:3},16,["disabled"]))}};export{Ie as _};
@@ -0,0 +1 @@
1
+ import{bW as Je,r as A,h as K,aM as et,d as D,Y as Ae,Z as $e,b6 as ve,az as tt,o as d,f as w,g as m,V as T,k as e,a$ as Ve,c as H,v as j,F as le,y as Se,W as $,ba as at,$ as me,H as Le,i as Be,bH as lt,bi as He,bm as it,bg as nt,bf as rt,bh as ot,bX as We,au as st,j as N,bk as ut,C as fe,bl as dt,ag as je,bV as ct,bY as De,U as ne,B as Q,K as ce,aE as pt,X as Y,Q as ft,a0 as xe,bn as gt,bo as vt,ad as Ue,a1 as Ee,aC as mt,ah as yt,aA as Oe,aK as ht,bj as bt,br as _t,be as St,m as ie,t as pe,a2 as xt,a3 as qt,a5 as wt,a6 as Ct,a7 as It,bs as Tt,aN as kt,bt as Pt,aY as Bt,aP as Re,b4 as ae,q as M,p as _e,aI as Fe,bv as zt,aH as de,bu as At,bw as Me,bx as Pe,aZ as Lt,a8 as Et,bz as Ot}from"./NQikbhmK.js";import{u as $t}from"./g26aVPxc.js";function Ne(i,s=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY){return Math.min(a,Math.max(s,i))}function Vt(i){const s=Je({nonce:A()});return K(()=>i?.value||s.nonce?.value)}const Dt=[" ","Enter","ArrowUp","ArrowDown"],Rt=[" ","Enter"],G=10;function ge(i,s,a){return i===void 0?!1:Array.isArray(i)?i.some(f=>ze(f,s,a)):ze(i,s,a)}function ze(i,s,a){return i===void 0||s===void 0?!1:typeof i=="string"?i===s:typeof a=="function"?a(i,s):typeof a=="string"?i?.[a]===s?.[a]:et(i,s)}function Ft(i){return i==null||i===""||Array.isArray(i)&&i.length===0}const Mt=["value"],[J,Ge]=me("SelectRoot");var Nt=D({inheritAttrs:!1,__name:"SelectRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},nullableValue:{type:String,required:!1,default:""},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","update:open"],setup(i,{emit:s}){const a=i,f=s,{required:r,disabled:u,multiple:t,dir:c}=Ae(a),g=$e(a,"modelValue",f,{defaultValue:a.defaultValue??(t.value?[]:void 0),passive:a.modelValue===void 0,deep:!0}),v=$e(a,"open",f,{defaultValue:a.defaultOpen,passive:a.open===void 0}),b=A(),y=A(),I=A({x:0,y:0}),C=K(()=>t.value&&Array.isArray(g.value)?g.value?.length===0:Ve(g.value));ve({isProvider:!0});const O=tt(c),F=$t(b),L=A(new Set),h=K(()=>Array.from(L.value).map(l=>l.value).join(";"));function B(l){if(t.value){const _=Array.isArray(g.value)?[...g.value]:[],p=_.findIndex(q=>ze(q,l,a.by));p===-1?_.push(l):_.splice(p,1),g.value=[..._]}else g.value=l}function S(l){return Array.from(L.value).find(_=>ge(l,_.value,a.by))}return Ge({triggerElement:b,onTriggerChange:l=>{b.value=l},valueElement:y,onValueElementChange:l=>{y.value=l},contentId:"",modelValue:g,onValueChange:B,by:a.by,open:v,multiple:t,required:r,onOpenChange:l=>{v.value=l},dir:O,triggerPointerDownPosRef:I,disabled:u,isEmptyModelValue:C,optionsSet:L,onOptionAdd:l=>{const _=S(l.value);_&&L.value.delete(_),L.value.add(l)},onOptionRemove:l=>{const _=S(l.value);_&&L.value.delete(_)}}),(l,_)=>(d(),w(e(at),null,{default:m(()=>[T(l.$slots,"default",{modelValue:e(g),open:e(v)}),e(F)&&l.name?(d(),w(Wt,{key:h.value,"aria-hidden":"true",tabindex:"-1",multiple:e(t),required:e(r),name:l.name,autocomplete:l.autocomplete,disabled:e(u),value:e(g)},{default:m(()=>[e(Ve)(e(g))?(d(),H("option",{key:0,value:l.nullableValue},null,8,Mt)):j("v-if",!0),(d(!0),H(le,null,Se(Array.from(L.value),p=>(d(),H("option",$({key:p.value??""},{ref_for:!0},p),null,16))),128))]),_:1},8,["multiple","required","name","autocomplete","disabled","value"])):j("v-if",!0)]),_:3}))}}),Kt=Nt,Ht=D({__name:"BubbleSelect",props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(i){const s=i,a=A(),f=J();Le(()=>s.value,(u,t)=>{const c=window.HTMLSelectElement.prototype,v=Object.getOwnPropertyDescriptor(c,"value").set;if(u!==t&&v&&a.value){const b=new Event("change",{bubbles:!0});v.call(a.value,u),a.value.dispatchEvent(b)}});function r(u){f.onValueChange(u.target.value)}return(u,t)=>(d(),w(e(lt),{"as-child":""},{default:m(()=>[Be("select",$({ref_key:"selectElement",ref:a},s,{onInput:r}),[T(u.$slots,"default")],16)]),_:3}))}}),Wt=Ht,jt=D({__name:"SelectPopperPosition",props:{memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:G},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const a=He(i);return(f,r)=>(d(),w(e(it),$(e(a),{style:{boxSizing:"border-box","--reka-select-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-select-content-available-width":"var(--reka-popper-available-width)","--reka-select-content-available-height":"var(--reka-popper-available-height)","--reka-select-trigger-width":"var(--reka-popper-anchor-width)","--reka-select-trigger-height":"var(--reka-popper-anchor-height)"}}),{default:m(()=>[T(f.$slots,"default")]),_:3},16))}}),Ut=jt;const Ye={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[ye,Xe]=me("SelectContent");var Gt=D({__name:"SelectContentImpl",props:{position:{type:String,required:!1,default:"item-aligned"},bodyLock:{type:Boolean,required:!1,default:!0},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(i,{emit:s}){const a=i,f=s,r=J();nt(),rt(a.bodyLock);const{CollectionSlot:u,getItems:t}=ve(),c=A();ot(c);const{search:g,handleTypeaheadSearch:v}=We(),b=A(),y=A(),I=A(),C=A(!1),O=A(!1),F=A(!1);function L(){y.value&&c.value&&De([y.value,c.value])}Le(C,()=>{L()});const{onOpenChange:h,triggerPointerDownPosRef:B}=r;st(p=>{if(!c.value)return;let q={x:0,y:0};const k=P=>{q={x:Math.abs(Math.round(P.pageX)-(B.value?.x??0)),y:Math.abs(Math.round(P.pageY)-(B.value?.y??0))}},z=P=>{P.pointerType!=="touch"&&(q.x<=10&&q.y<=10?P.preventDefault():c.value?.contains(P.target)||h(!1),document.removeEventListener("pointermove",k),B.value=null)};B.value!==null&&(document.addEventListener("pointermove",k),document.addEventListener("pointerup",z,{capture:!0,once:!0})),p(()=>{document.removeEventListener("pointermove",k),document.removeEventListener("pointerup",z,{capture:!0})})});function S(p){const q=p.ctrlKey||p.altKey||p.metaKey;if(p.key==="Tab"&&p.preventDefault(),!q&&p.key.length===1&&v(p.key,t()),["ArrowUp","ArrowDown","Home","End"].includes(p.key)){let z=[...t().map(P=>P.ref)];if(["ArrowUp","End"].includes(p.key)&&(z=z.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const P=p.target,Z=z.indexOf(P);z=z.slice(Z+1)}setTimeout(()=>De(z)),p.preventDefault()}}const l=K(()=>a.position==="popper"?a:{}),_=He(l.value);return Xe({content:c,viewport:b,onViewportChange:p=>{b.value=p},itemRefCallback:(p,q,k)=>{const z=!O.value&&!k,P=ge(r.modelValue.value,q,r.by);if(r.multiple.value){if(F.value)return;(P||z)&&(y.value=p,P&&(F.value=!0))}else(P||z)&&(y.value=p);z&&(O.value=!0)},selectedItem:y,selectedItemText:I,onItemLeave:()=>{c.value?.focus()},itemTextRefCallback:(p,q,k)=>{const z=!O.value&&!k;(ge(r.modelValue.value,q,r.by)||z)&&(I.value=p)},focusSelectedItem:L,position:a.position,isPositioned:C,searchRef:g}),(p,q)=>(d(),w(e(u),null,{default:m(()=>[N(e(ut),{"as-child":"",onMountAutoFocus:q[6]||(q[6]=fe(()=>{},["prevent"])),onUnmountAutoFocus:q[7]||(q[7]=k=>{f("closeAutoFocus",k),!k.defaultPrevented&&(e(r).triggerElement.value?.focus({preventScroll:!0}),k.preventDefault())})},{default:m(()=>[N(e(dt),{"as-child":"","disable-outside-pointer-events":p.disableOutsidePointerEvents,onFocusOutside:q[2]||(q[2]=fe(()=>{},["prevent"])),onDismiss:q[3]||(q[3]=k=>e(r).onOpenChange(!1)),onEscapeKeyDown:q[4]||(q[4]=k=>f("escapeKeyDown",k)),onPointerDownOutside:q[5]||(q[5]=k=>f("pointerDownOutside",k))},{default:m(()=>[(d(),w(je(p.position==="popper"?Ut:Jt),$({...p.$attrs,...e(_)},{id:e(r).contentId,ref:k=>{if(!k)return;const z=e(ct)(k);z?.hasAttribute("data-reka-popper-content-wrapper")?c.value=z.firstElementChild:c.value=z},role:"listbox","data-state":e(r).open.value?"open":"closed",dir:e(r).dir.value,style:{display:"flex",flexDirection:"column",outline:"none"},onContextmenu:q[0]||(q[0]=fe(()=>{},["prevent"])),onPlaced:q[1]||(q[1]=k=>C.value=!0),onKeydown:S}),{default:m(()=>[T(p.$slots,"default")]),_:3},16,["id","data-state","dir","onKeydown"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Yt=Gt;const[Xt,Zt]=me("SelectItemAlignedPosition");var Qt=D({inheritAttrs:!1,__name:"SelectItemAlignedPosition",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["placed"],setup(i,{emit:s}){const a=i,f=s,{getItems:r}=ve(),u=J(),t=ye(),c=A(!1),g=A(!0),v=A(),{forwardRef:b,currentElement:y}=ne(),{viewport:I,selectedItem:C,selectedItemText:O,focusSelectedItem:F}=t;function L(){if(u.triggerElement.value&&u.valueElement.value&&v.value&&y.value&&I?.value&&C?.value&&O?.value){const S=u.triggerElement.value.getBoundingClientRect(),l=y.value.getBoundingClientRect(),_=u.valueElement.value.getBoundingClientRect(),p=O.value.getBoundingClientRect();if(u.dir.value!=="rtl"){const o=p.left-l.left,V=_.left-o,R=S.left-V,W=S.width+R,U=Math.max(W,l.width),ee=window.innerWidth-G,n=Ne(V,G,Math.max(G,ee-U));v.value.style.minWidth=`${W}px`,v.value.style.left=`${n}px`}else{const o=l.right-p.right,V=window.innerWidth-_.right-o,R=window.innerWidth-S.right-V,W=S.width+R,U=Math.max(W,l.width),ee=window.innerWidth-G,n=Ne(V,G,Math.max(G,ee-U));v.value.style.minWidth=`${W}px`,v.value.style.right=`${n}px`}const q=r().map(o=>o.ref),k=window.innerHeight-G*2,z=I.value.scrollHeight,P=window.getComputedStyle(y.value),Z=Number.parseInt(P.borderTopWidth,10),re=Number.parseInt(P.paddingTop,10),oe=Number.parseInt(P.borderBottomWidth,10),qe=Number.parseInt(P.paddingBottom,10),he=Z+re+z+qe+oe,x=Math.min(C.value.offsetHeight*5,he),se=window.getComputedStyle(I.value),be=Number.parseInt(se.paddingTop,10),we=Number.parseInt(se.paddingBottom,10),X=S.top+S.height/2-G,Ce=k-X,ue=C.value.offsetHeight/2,Ie=C.value.offsetTop+ue,E=Z+re+Ie,Te=he-E;if(E<=X){const o=C.value===q.at(-1);v.value.style.bottom="0px";const V=y.value.clientHeight-I.value.offsetTop-I.value.offsetHeight,R=Math.max(Ce,ue+(o?we:0)+V+oe),W=E+R;v.value.style.height=`${W}px`}else{const o=C.value===q[0];v.value.style.top="0px";const R=Math.max(X,Z+I.value.offsetTop+(o?be:0)+ue)+Te;v.value.style.height=`${R}px`,I.value.scrollTop=E-X+I.value.offsetTop}v.value.style.margin=`${G}px 0`,v.value.style.minHeight=`${x}px`,v.value.style.maxHeight=`${k}px`,f("placed"),requestAnimationFrame(()=>c.value=!0)}}const h=A("");Q(async()=>{await ce(),L(),y.value&&(h.value=window.getComputedStyle(y.value).zIndex)});function B(S){S&&g.value===!0&&(L(),F?.(),g.value=!1)}return pt(u.triggerElement,()=>{L()}),Zt({contentWrapper:v,shouldExpandOnScrollRef:c,onScrollButtonChange:B}),(S,l)=>(d(),H("div",{ref_key:"contentWrapperElement",ref:v,style:ft({display:"flex",flexDirection:"column",position:"fixed",zIndex:h.value})},[N(e(Y),$({ref:e(b),style:{boxSizing:"border-box",maxHeight:"100%"}},{...S.$attrs,...a}),{default:m(()=>[T(S.$slots,"default")]),_:3},16)],4))}}),Jt=Qt,ea=D({__name:"SelectArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(i){const s=i,a=ye(Ye);return(f,r)=>e(a).position==="popper"?(d(),w(e(gt),xe($({key:0},s)),{default:m(()=>[T(f.$slots,"default")]),_:3},16)):j("v-if",!0)}}),ta=ea,aa=D({inheritAttrs:!1,__name:"SelectProvider",props:{context:{type:Object,required:!0}},setup(i){return Ge(i.context),Xe(Ye),(a,f)=>T(a.$slots,"default")}}),la=aa;const ia={key:1};var na=D({inheritAttrs:!1,__name:"SelectContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(i,{emit:s}){const a=i,r=vt(a,s),u=J(),t=A();Q(()=>{t.value=new DocumentFragment});const c=A(),g=K(()=>a.forceMount||u.open.value),v=A(g.value);let b;function y(){b&&(clearTimeout(b),b=void 0)}return Le(g,(I,C,O)=>{y(),b=setTimeout(()=>{v.value=g.value,b=void 0}),O(y)}),Ue(y),(I,C)=>g.value||v.value||c.value?.present?(d(),w(e(mt),{key:0,ref_key:"presenceRef",ref:c,present:g.value},{default:m(()=>[N(Yt,xe(Ee({...e(r),...I.$attrs})),{default:m(()=>[T(I.$slots,"default")]),_:3},16)]),_:3},8,["present"])):t.value?(d(),H("div",ia,[(d(),w(yt,{to:t.value},[N(la,{context:e(u)},{default:m(()=>[T(I.$slots,"default")]),_:3},8,["context"])],8,["to"]))])):j("v-if",!0)}}),ra=na;const[oa,sa]=me("SelectGroup");var ua=D({__name:"SelectGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const s=i,a=Oe(void 0,"reka-select-group");return sa({id:a}),(f,r)=>(d(),w(e(Y),$({role:"group"},s,{"aria-labelledby":e(a)}),{default:m(()=>[T(f.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),da=ua;const[Ze,ca]=me("SelectItem");var pa=D({__name:"SelectItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(i,{emit:s}){const a=i,f=s,{disabled:r}=Ae(a),u=J(),t=ye(),{forwardRef:c,currentElement:g}=ne(),{CollectionItem:v}=ve(),b=K(()=>ge(u.modelValue?.value,a.value,u.by)),y=A(!1),I=A(a.textValue??""),C=Oe(void 0,"reka-select-item-text"),O="select.select";async function F(l){if(l.defaultPrevented)return;const _={originalEvent:l,value:a.value};ht(O,L,_)}async function L(l){await ce(),f("select",l),!l.defaultPrevented&&(r.value||(u.onValueChange(a.value),u.multiple.value||u.onOpenChange(!1)))}async function h(l){await ce(),!l.defaultPrevented&&(r.value?t.onItemLeave?.():l.currentTarget?.focus({preventScroll:!0}))}async function B(l){await ce(),!l.defaultPrevented&&l.currentTarget===bt()&&t.onItemLeave?.()}async function S(l){await ce(),!(l.defaultPrevented||t.searchRef?.value!==""&&l.key===" ")&&(Rt.includes(l.key)&&F(l),l.key===" "&&l.preventDefault())}if(a.value==="")throw new Error("A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return Q(()=>{g.value&&t.itemRefCallback(g.value,a.value,a.disabled)}),ca({value:a.value,disabled:r,textId:C,isSelected:b,onItemTextChange:l=>{I.value=((I.value||l?.textContent)??"").trim()}}),(l,_)=>(d(),w(e(v),{value:{textValue:I.value}},{default:m(()=>[N(e(Y),{ref:e(c),role:"option","aria-labelledby":e(C),"data-highlighted":y.value?"":void 0,"aria-selected":b.value,"data-state":b.value?"checked":"unchecked","aria-disabled":e(r)||void 0,"data-disabled":e(r)?"":void 0,tabindex:e(r)?void 0:-1,as:l.as,"as-child":l.asChild,onFocus:_[0]||(_[0]=p=>y.value=!0),onBlur:_[1]||(_[1]=p=>y.value=!1),onPointerup:F,onPointerdown:_[2]||(_[2]=p=>{p.currentTarget.focus({preventScroll:!0})}),onTouchend:_[3]||(_[3]=fe(()=>{},["prevent","stop"])),onPointermove:h,onPointerleave:B,onKeydown:S},{default:m(()=>[T(l.$slots,"default")]),_:3},8,["aria-labelledby","data-highlighted","aria-selected","data-state","aria-disabled","data-disabled","tabindex","as","as-child"])]),_:3},8,["value"]))}}),fa=pa,ga=D({__name:"SelectItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const s=i,a=Ze();return(f,r)=>e(a).isSelected.value?(d(),w(e(Y),$({key:0,"aria-hidden":"true"},s),{default:m(()=>[T(f.$slots,"default")]),_:3},16)):j("v-if",!0)}}),va=ga,ma=D({inheritAttrs:!1,__name:"SelectItemText",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const s=i,a=J(),f=ye(),r=Ze(),{forwardRef:u,currentElement:t}=ne(),c=K(()=>({value:r.value,disabled:r.disabled.value,textContent:t.value?.textContent??r.value?.toString()??""}));return Q(()=>{t.value&&(r.onItemTextChange(t.value),f.itemTextRefCallback(t.value,r.value,r.disabled.value),a.onOptionAdd(c.value))}),Ue(()=>{a.onOptionRemove(c.value)}),(g,v)=>(d(),w(e(Y),$({id:e(r).textId,ref:e(u)},{...s,...g.$attrs}),{default:m(()=>[T(g.$slots,"default")]),_:3},16,["id"]))}}),ya=ma,ha=D({__name:"SelectLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(i){const s=i,a=oa({id:""});return(f,r)=>(d(),w(e(Y),$(s,{id:e(a).id}),{default:m(()=>[T(f.$slots,"default")]),_:3},16,["id"]))}}),ba=ha,_a=D({__name:"SelectPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(i){const s=i;return(a,f)=>(d(),w(e(_t),xe(Ee(s)),{default:m(()=>[T(a.$slots,"default")]),_:3},16))}}),Sa=_a,xa=D({__name:"SelectSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const s=i;return(a,f)=>(d(),w(e(Y),$({"aria-hidden":"true"},s),{default:m(()=>[T(a.$slots,"default")]),_:3},16))}}),qa=xa,wa=D({__name:"SelectTrigger",props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const s=i,a=J(),{forwardRef:f,currentElement:r}=ne(),u=K(()=>a.disabled?.value||s.disabled);a.contentId||=Oe(void 0,"reka-select-content"),Q(()=>{a.onTriggerChange(r.value)});const{getItems:t}=ve(),{search:c,handleTypeaheadSearch:g,resetTypeahead:v}=We();function b(){u.value||(a.onOpenChange(!0),v())}function y(h){b(),a.triggerPointerDownPosRef.value={x:Math.round(h.pageX),y:Math.round(h.pageY)}}function I(h){return h.button===0&&h.ctrlKey===!1}let C=!1;function O(h){if(h.pointerType==="touch")return h.preventDefault();const B=h.target;B.hasPointerCapture(h.pointerId)&&B.releasePointerCapture(h.pointerId),I(h)&&(y(h),C=!0)}function F(h){I(h)&&h.preventDefault()}function L(h){C||h.currentTarget?.focus(),C=!1}return(h,B)=>(d(),w(e(St),{"as-child":"",reference:h.reference},{default:m(()=>[N(e(Y),{ref:e(f),role:"combobox",type:h.as==="button"?"button":void 0,"aria-controls":e(a).contentId,"aria-expanded":e(a).open.value||!1,"aria-required":e(a).required?.value,"aria-autocomplete":"none",disabled:u.value,dir:e(a)?.dir.value,"data-state":e(a)?.open.value?"open":"closed","data-disabled":u.value?"":void 0,"data-placeholder":e(Ft)(e(a).modelValue?.value)?"":void 0,"as-child":h.asChild,as:h.as,onClick:L,onPointerdown:O,onMousedown:F,onPointerup:B[0]||(B[0]=fe(S=>{S.pointerType==="touch"&&y(S)},["prevent"])),onKeydown:B[1]||(B[1]=S=>{const l=e(c)!=="";!(S.ctrlKey||S.altKey||S.metaKey)&&S.key.length===1&&l&&S.key===" "||(e(g)(S.key,e(t)()),e(Dt).includes(S.key)&&(b(),S.preventDefault()))})},{default:m(()=>[T(h.$slots,"default")]),_:3},8,["type","aria-controls","aria-expanded","aria-required","disabled","dir","data-state","data-disabled","data-placeholder","as-child","as"])]),_:3},8,["reference"]))}}),Ca=wa,Ia=D({__name:"SelectValue",props:{placeholder:{type:String,required:!1,default:""},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const s=i,{forwardRef:a,currentElement:f}=ne(),r=J();Q(()=>{r.valueElement=f});const u=K(()=>{let c=[];const g=Array.from(r.optionsSet.value),v=b=>g.find(y=>ge(b,y.value,r.by));return Array.isArray(r.modelValue.value)?c=r.modelValue.value.map(b=>v(b)?.textContent??""):c=[v(r.modelValue.value)?.textContent??""],c.filter(Boolean)}),t=K(()=>u.value.length?u.value.join(", "):s.placeholder);return(c,g)=>(d(),w(e(Y),{ref:e(a),as:c.as,"as-child":c.asChild,style:{pointerEvents:"none"},"data-placeholder":u.value.length?void 0:s.placeholder},{default:m(()=>[T(c.$slots,"default",{selectedLabel:u.value,modelValue:e(r).modelValue.value},()=>[ie(pe(t.value),1)])]),_:3},8,["as","as-child","data-placeholder"]))}}),Ta=Ia,ka=D({__name:"SelectViewport",props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const s=i,{nonce:a}=Ae(s),f=Vt(a),r=ye(),u=r.position==="item-aligned"?Xt():void 0,{forwardRef:t,currentElement:c}=ne();Q(()=>{r?.onViewportChange(c.value)});const g=A(0);function v(b){const y=b.currentTarget,{shouldExpandOnScrollRef:I,contentWrapper:C}=u??{};if(I?.value&&C?.value){const O=Math.abs(g.value-y.scrollTop);if(O>0){const F=window.innerHeight-G*2,L=Number.parseFloat(C.value.style.minHeight),h=Number.parseFloat(C.value.style.height),B=Math.max(L,h);if(B<F){const S=B+O,l=Math.min(F,S),_=S-l;C.value.style.height=`${l}px`,C.value.style.bottom==="0px"&&(y.scrollTop=_>0?_:0,C.value.style.justifyContent="flex-end")}}}g.value=y.scrollTop}return(b,y)=>(d(),H(le,null,[N(e(Y),$({ref:e(t),"data-reka-select-viewport":"",role:"presentation"},{...b.$attrs,...s},{style:{position:"relative",flex:1,overflow:"hidden auto"},onScroll:v}),{default:m(()=>[T(b.$slots,"default")]),_:3},16),N(e(Y),{as:"style",nonce:e(f)},{default:m(()=>y[0]||(y[0]=[ie(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } ")])),_:1,__:[0]},8,["nonce"])],64))}}),Pa=ka;const Ke={slots:{base:["relative group rounded-md inline-flex items-center disabled:cursor-not-allowed disabled:opacity-75","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",value:"truncate pointer-events-none",placeholder:"truncate text-dimmed",arrow:"fill-bg stroke-default",content:"max-h-[min(15rem,var(--reka-select-content-available-height,15rem))] w-(--reka-select-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden origin-(--reka-select-content-transform-origin) pointer-events-auto flex flex-col",viewport:"relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",group:"p-1 isolate",empty:"text-center text-muted",label:"font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:["group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default","transition-colors"],itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemLeadingChip:"shrink-0",itemLeadingChipSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemWrapper:"flex-1 flex flex-col min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:"px-2 py-1 text-xs gap-1",leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",label:"p-1 text-[10px]/3 gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailingIcon:"size-4",empty:"p-2 text-xs"},sm:{base:"px-2.5 py-1.5 text-xs gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",label:"p-1.5 text-[10px]/3 gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailingIcon:"size-4",empty:"p-2.5 text-xs"},md:{base:"px-2.5 py-1.5 text-sm gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailingIcon:"size-5",empty:"p-2.5 text-sm"},lg:{base:"px-3 py-2 text-sm gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",label:"p-2 text-xs gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailingIcon:"size-5",empty:"p-3 text-sm"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",label:"p-2 text-sm gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemLeadingChip:"size-6",itemLeadingChipSize:"lg",itemTrailingIcon:"size-6",empty:"p-3 text-base"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented hover:bg-elevated disabled:bg-default",soft:"text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented hover:bg-accented/75 disabled:bg-elevated",ghost:"text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"},position:{popper:{content:"data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]"},"item-aligned":{content:""}},multiple:{true:""}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 focus-visible:outline-3 focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 focus-visible:outline-3 focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 focus-visible:outline-3 focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 focus-visible:outline-3 focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"}],defaultVariants:{size:"md",color:"primary",variant:"outline",position:"popper"}},Aa=Object.assign({inheritAttrs:!1},{__name:"USelect",props:{id:{type:String,required:!1},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},items:{type:null,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},multiple:{type:Boolean,required:!1},highlight:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},nullableValue:{type:String,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:["change","blur","focus","update:modelValue","update:open"],setup(i,{expose:s,emit:a}){const f=i,r=a,u=xt(),t=qt("select",f),c=wt(),g=Ct(It(t,"open","defaultOpen","disabled","autocomplete","required","multiple","nullableValue"),r),v=Tt(ae(()=>t.portal)),b=K(()=>t.content?.position??c.ui?.select?.defaultVariants?.position??Ke.defaultVariants?.position),y=ae(()=>Pe(t.content,{side:"bottom",sideOffset:8,collisionPadding:8,position:b.value})),I=ae(()=>Pe(t.arrow,{rounded:!0})),{emitFormChange:C,emitFormInput:O,emitFormBlur:F,emitFormFocus:L,size:h,color:B,id:S,name:l,highlight:_,disabled:p,ariaAttrs:q}=kt(f),{orientation:k,size:z}=Pt(f),{isLeading:P,isTrailing:Z,leadingIconName:re,trailingIconName:oe}=Bt(ae(()=>Pe(t,{trailingIcon:c.ui.icons.chevronDown}))),qe=K(()=>z.value||h.value),he=K(()=>b.value==="item-aligned"),x=K(()=>Et({extend:Ke,...c.ui?.select||{}})({color:B.value??t.color,variant:t.variant,size:qe.value??t.size,loading:t.loading,highlight:_.value??t.highlight,leading:P.value||!!t.avatar||!!u.leading,trailing:Z.value||!!u.trailing,fieldGroup:k.value,position:b.value,multiple:t.multiple})),se=K(()=>t.items?.length?Ot(t.items)?t.items:[t.items]:[]),be=K(()=>se.value.flatMap(o=>o));function we(o){if(t.multiple&&Array.isArray(o)){const V=o.map(R=>Me(be.value,R,{labelKey:t.labelKey,valueKey:t.valueKey})).filter(R=>R!=null&&R!=="");return V.length>0?V.join(", "):void 0}return Me(be.value,o,{labelKey:t.labelKey,valueKey:t.valueKey})}const X=Re("triggerRef");function Ce(){t.autofocus&&X.value?.$el?.focus({focusVisible:!0})}Q(()=>{setTimeout(()=>{Ce()},t.autofocusDelay)});function ue(o){t.modelModifiers?.trim&&(typeof o=="string"||o===null||o===void 0)&&(o=o?.trim()??null),t.modelModifiers?.number&&(o=Lt(o)),t.modelModifiers?.nullable&&(o??=null),t.modelModifiers?.optional&&!t.modelModifiers?.nullable&&o!==null&&(o??=void 0);const V=new Event("change",{target:{value:o}});r("change",V),C(),O()}function Ie(o){if(o){const V=new FocusEvent("focus");r("focus",V),L()}else{const V=new FocusEvent("blur");r("blur",V),F()}}function E(o){return typeof o=="object"&&o!==null}function Te(o){o||X.value?.$el?.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,button:0}))}const ke=Re("viewportRef");return s({triggerRef:ae(()=>X.value?.$el),viewportRef:ae(()=>{const o=ke.value;return o&&typeof o=="object"&&"$el"in o?o.$el:o})}),(o,V)=>(d(),w(e(Kt),$({name:e(l)},e(g),{autocomplete:e(t).autocomplete,disabled:e(p),"default-value":e(t).defaultValue,"model-value":i.modelValue,"onUpdate:modelValue":ue,"onUpdate:open":Ie}),{default:m(({modelValue:R,open:W})=>[N(e(Ca),$({id:e(S),ref_key:"triggerRef",ref:X,"data-slot":"base",class:x.value.base({class:[e(t).ui?.base,e(t).class]})},{...o.$attrs,...e(q)},{onClick:U=>Te(W)}),{default:m(()=>[e(P)||e(t).avatar||u.leading?(d(),H("span",{key:0,"data-slot":"leading",class:M(x.value.leading({class:e(t).ui?.leading}))},[T(o.$slots,"leading",{modelValue:R,open:W,ui:x.value},()=>[e(P)&&e(re)?(d(),w(_e,{key:0,name:e(re),"data-slot":"leadingIcon",class:M(x.value.leadingIcon({class:e(t).ui?.leadingIcon}))},null,8,["name","class"])):e(t).avatar?(d(),w(Fe,$({key:1,size:e(t).ui?.itemLeadingAvatarSize||x.value.itemLeadingAvatarSize()},e(t).avatar,{"data-slot":"itemLeadingAvatar",class:x.value.itemLeadingAvatar({class:e(t).ui?.itemLeadingAvatar})}),null,16,["size","class"])):j("",!0)])],2)):j("",!0),(d(!0),H(le,null,Se([we(R)],U=>(d(),w(e(Ta),{key:U,"data-slot":U!=null?"value":"placeholder",class:M(U!=null?x.value.value({class:e(t).ui?.value}):x.value.placeholder({class:e(t).ui?.placeholder}))},{default:m(()=>[T(o.$slots,"default",{modelValue:R,open:W,ui:x.value},()=>[ie(pe(U??e(t).placeholder??" "),1)])]),_:2},1032,["data-slot","class"]))),128)),e(Z)||u.trailing?(d(),H("span",{key:1,"data-slot":"trailing",class:M(x.value.trailing({class:e(t).ui?.trailing}))},[T(o.$slots,"trailing",{modelValue:R,open:W,ui:x.value},()=>[e(oe)?(d(),w(_e,{key:0,name:e(oe),"data-slot":"trailingIcon",class:M(x.value.trailingIcon({class:e(t).ui?.trailingIcon}))},null,8,["name","class"])):j("",!0)])],2)):j("",!0)]),_:2},1040,["id","class","onClick"]),N(e(Sa),xe(Ee(e(v))),{default:m(()=>[N(e(zt),null,{default:m(()=>[N(e(ra),$({"data-slot":"content",class:x.value.content({class:e(t).ui?.content})},y.value),{default:m(()=>[T(o.$slots,"content-top"),(d(),w(je(he.value?e(Pa):"div"),{ref_key:"viewportRef",ref:ke,role:"presentation","data-slot":"viewport",class:M(x.value.viewport({class:e(t).ui?.viewport}))},{default:m(()=>[(d(!0),H(le,null,Se(se.value,(U,ee)=>(d(),w(e(da),{key:`group-${ee}`,"data-slot":"group",class:M(x.value.group({class:e(t).ui?.group}))},{default:m(()=>[(d(!0),H(le,null,Se(U,(n,te)=>(d(),H(le,{key:`group-${ee}-${te}`},[E(n)&&n.type==="label"?(d(),w(e(ba),{key:0,"data-slot":"label",class:M(x.value.label({class:[e(t).ui?.label,n.ui?.label,n.class]}))},{default:m(()=>[ie(pe(e(de)(n,e(t).labelKey)),1)]),_:2},1032,["class"])):E(n)&&n.type==="separator"?(d(),w(e(qa),{key:1,"data-slot":"separator",class:M(x.value.separator({class:[e(t).ui?.separator,n.ui?.separator,n.class]}))},null,8,["class"])):(d(),w(e(fa),{key:2,"data-slot":"item",class:M(x.value.item({class:[e(t).ui?.item,E(n)&&n.ui?.item,E(n)&&n.class]})),disabled:E(n)&&n.disabled,value:E(n)?e(de)(n,e(t).valueKey):n,onSelect:Qe=>E(n)&&n.onSelect?.(Qe)},{default:m(()=>[T(o.$slots,"item",{item:n,index:te,ui:x.value},()=>[T(o.$slots,"item-leading",{item:n,index:te,ui:x.value},()=>[E(n)&&n.icon?(d(),w(_e,{key:0,name:n.icon,"data-slot":"itemLeadingIcon",class:M(x.value.itemLeadingIcon({class:[e(t).ui?.itemLeadingIcon,n.ui?.itemLeadingIcon]}))},null,8,["name","class"])):E(n)&&n.avatar?(d(),w(Fe,$({key:1,size:n.ui?.itemLeadingAvatarSize||e(t).ui?.itemLeadingAvatarSize||x.value.itemLeadingAvatarSize()},{ref_for:!0},n.avatar,{"data-slot":"itemLeadingAvatar",class:x.value.itemLeadingAvatar({class:[e(t).ui?.itemLeadingAvatar,n.ui?.itemLeadingAvatar]})}),null,16,["size","class"])):E(n)&&n.chip?(d(),w(At,$({key:2,size:n.ui?.itemLeadingChipSize||e(t).ui?.itemLeadingChipSize||x.value.itemLeadingChipSize(),inset:"",standalone:""},{ref_for:!0},n.chip,{"data-slot":"itemLeadingChip",class:x.value.itemLeadingChip({class:[e(t).ui?.itemLeadingChip,n.ui?.itemLeadingChip]})}),null,16,["size","class"])):j("",!0)]),Be("span",{"data-slot":"itemWrapper",class:M(x.value.itemWrapper({class:[e(t).ui?.itemWrapper,E(n)&&n.ui?.itemWrapper]}))},[N(e(ya),{"data-slot":"itemLabel",class:M(x.value.itemLabel({class:[e(t).ui?.itemLabel,E(n)&&n.ui?.itemLabel]}))},{default:m(()=>[T(o.$slots,"item-label",{item:n,index:te},()=>[ie(pe(E(n)?e(de)(n,e(t).labelKey):n),1)])]),_:2},1032,["class"]),E(n)&&(e(de)(n,e(t).descriptionKey)||u["item-description"])?(d(),H("span",{key:0,"data-slot":"itemDescription",class:M(x.value.itemDescription({class:[e(t).ui?.itemDescription,E(n)&&n.ui?.itemDescription]}))},[T(o.$slots,"item-description",{item:n,index:te},()=>[ie(pe(e(de)(n,e(t).descriptionKey)),1)])],2)):j("",!0)],2),Be("span",{"data-slot":"itemTrailing",class:M(x.value.itemTrailing({class:[e(t).ui?.itemTrailing,E(n)&&n.ui?.itemTrailing]}))},[T(o.$slots,"item-trailing",{item:n,index:te,ui:x.value}),N(e(va),{"as-child":""},{default:m(()=>[N(_e,{name:e(t).selectedIcon||e(c).ui.icons.check,"data-slot":"itemTrailingIcon",class:M(x.value.itemTrailingIcon({class:[e(t).ui?.itemTrailingIcon,E(n)&&n.ui?.itemTrailingIcon]}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:2},1032,["class","disabled","value","onSelect"]))],64))),128))]),_:2},1032,["class"]))),128))]),_:3},8,["class"])),T(o.$slots,"content-bottom"),e(t).arrow?(d(),w(e(ta),$({key:0},I.value,{"data-slot":"arrow",class:x.value.arrow({class:e(t).ui?.arrow})}),null,16,["class"])):j("",!0)]),_:3},16,["class"])]),_:3})]),_:3},16)]),_:3},16,["name","autocomplete","disabled","default-value","model-value"]))}});export{Aa as _};
@@ -1 +1 @@
1
- import{d as _,f as m,g as i,o as p,i as s,t as n,j as c,k as l,m as u,_ as x}from"./DHltYerF.js";import{_ as f}from"./CN1mJlvD.js";import{u as b}from"./By4YL7mx.js";const g={class:"space-y-4 text-sm"},v={class:"space-y-1"},y={class:"flex items-start gap-2"},C={class:"text-xs break-all flex-1"},k={class:"space-y-1"},D={class:"flex items-start gap-2"},B={class:"text-xs break-all flex-1"},h=_({__name:"DataLocationCard",props:{database:{},storage:{}},setup(a){const{copy:e}=b();return(N,t)=>{const o=x,r=f;return p(),m(r,{icon:"i-lucide-folder-open",title:"Data location"},{subtitle:i(()=>[...t[2]||(t[2]=[u(" Where this instance keeps its database and files on disk. ",-1)])]),default:i(()=>[s("div",g,[s("div",v,[t[3]||(t[3]=s("div",{class:"text-muted"},"Database",-1)),s("div",y,[s("code",C,n(a.database),1),c(o,{icon:"i-lucide-copy",color:"neutral",variant:"ghost",size:"xs","aria-label":"Copy database location",onClick:t[0]||(t[0]=d=>l(e)(a.database,{toast:!0}))})])]),s("div",k,[t[4]||(t[4]=s("div",{class:"text-muted"},"File storage",-1)),s("div",D,[s("code",B,n(a.storage),1),c(o,{icon:"i-lucide-copy",color:"neutral",variant:"ghost",size:"xs","aria-label":"Copy storage location",onClick:t[1]||(t[1]=d=>l(e)(a.storage,{toast:!0}))})])])])]),_:1})}}}),z=Object.assign(h,{__name:"DataLocationCard"});export{z as _};
1
+ import{d as _,f as m,g as i,o as p,i as s,t as n,j as c,k as l,m as u,_ as x}from"./NQikbhmK.js";import{_ as f}from"./DprVVyUQ.js";import{u as b}from"./Bn0YQDyy.js";const g={class:"space-y-4 text-sm"},v={class:"space-y-1"},y={class:"flex items-start gap-2"},C={class:"text-xs break-all flex-1"},k={class:"space-y-1"},D={class:"flex items-start gap-2"},B={class:"text-xs break-all flex-1"},h=_({__name:"DataLocationCard",props:{database:{},storage:{}},setup(a){const{copy:e}=b();return(N,t)=>{const o=x,r=f;return p(),m(r,{icon:"i-lucide-folder-open",title:"Data location"},{subtitle:i(()=>[...t[2]||(t[2]=[u(" Where this instance keeps its database and files on disk. ",-1)])]),default:i(()=>[s("div",g,[s("div",v,[t[3]||(t[3]=s("div",{class:"text-muted"},"Database",-1)),s("div",y,[s("code",C,n(a.database),1),c(o,{icon:"i-lucide-copy",color:"neutral",variant:"ghost",size:"xs","aria-label":"Copy database location",onClick:t[0]||(t[0]=d=>l(e)(a.database,{toast:!0}))})])]),s("div",k,[t[4]||(t[4]=s("div",{class:"text-muted"},"File storage",-1)),s("div",D,[s("code",B,n(a.storage),1),c(o,{icon:"i-lucide-copy",color:"neutral",variant:"ghost",size:"xs","aria-label":"Copy storage location",onClick:t[1]||(t[1]=d=>l(e)(a.storage,{toast:!0}))})])])])]),_:1})}}}),z=Object.assign(h,{__name:"DataLocationCard"});export{z as _};
@@ -0,0 +1,2 @@
1
+ import{_ as Qt}from"./279D2RYp.js";import{d as pe,b as gt,o as s,f as _,g as i,i as n,q,k as e,j as o,m as $,t as l,c as a,F as G,O as ut,l as Ie,ak as ct,p as ve,v as k,s as ke,D as Ue,_ as Re,J as pt,y as oe,z as es,A as xt,h as D,r as K,K as De,Q as he,C as Ne,n as He,E as Je,H as ge,al as dt,I as ts,R as yt,G as ss,u as Le,w as Me,ah as ns,B as as,ad as ht,a as os,e as ls}from"./NQikbhmK.js";import{_ as vt}from"./DP8hfJ9h.js";import{_ as is}from"./BqV0l12c.js";import{_ as rs}from"./BuMC3WjZ.js";import{_ as us,a as cs}from"./CHEFCN8Q.js";import{_ as ds,b as ms,a as fs,c as gs,d as ps}from"./Dgf5N4Ng.js";import{_ as xs}from"./BSIxhGsh.js";import{_ as Ee}from"./CV9-fTmY.js";import{_ as Pe}from"./C7P1UCO2.js";import{_ as kt}from"./Dnpkl-1q.js";import{_ as nt}from"./eptP4pGv.js";import{_ as ys}from"./y17lMTFy.js";import{u as hs,_ as vs}from"./HXerICAi.js";import{p as bt,y as ks,n as bs,a as ws,h as wt,m as _s,z as et,A as tt,k as Fe,B as _t,j as st,f as $t,b as $s,c as Cs,i as de}from"./CDk0q2hV.js";import{f as Ze}from"./D-c8ZSws.js";import{b as Ct}from"./CylWPruw.js";import{u as at}from"./Bn0YQDyy.js";import{_ as Ts}from"./DS636elg.js";import{_ as Tt}from"./BMvCSA6h.js";import{_ as Rs}from"./Bti38m-M.js";import{_ as Rt}from"./BPRffDuo.js";import{_ as zs}from"./nv9-6vBK.js";import{_ as zt}from"./BPQoBGg5.js";import{u as Is}from"./C-elpgyr.js";import{_ as Ss}from"./ybDYeNxd.js";import{_ as It}from"./BxCKKeYs.js";import{_ as St}from"./DLSrtpsA.js";import{_ as Fs}from"./DprVVyUQ.js";import{_ as ot}from"./C9_jrmk9.js";import{_ as Ft}from"./DiOLdHBC.js";import{_ as Ds}from"./DW0xl3I6.js";import{_ as Dt}from"./B3HO8kuh.js";import{u as Ae}from"./CpjgB2aY.js";import{_ as Ps}from"./DiZyJYez.js";import{_ as js}from"./tvgqrYDd.js";import{_ as Bs}from"./D0HNloZ9.js";import{u as Ns}from"./ClOqkAcc.js";import{u as Ms,s as As}from"./BCMuIgP5.js";import"./YVN7WG7q.js";import"./cHAnlQbv.js";import"./IvQlbZk6.js";import"./BjaRappk.js";import"./D7W_4Sqc.js";import"./rWNTSFD6.js";import"./eaVkJRSa.js";import"./g26aVPxc.js";import"./DEFEpYzn.js";import"./CNFYDQmj.js";import"./BYDaY0Z7.js";import"./CYsTqbBS.js";import"./B44A4LSJ.js";import"./FUXhyidq.js";import"./C95YAaJq.js";import"./BeLWlVK0.js";const Us={class:"flex items-center gap-3 flex-1 min-w-0 justify-between"},Ls={class:"flex items-center gap-3 min-w-0"},Es={class:"text-sm font-semibold truncate flex items-center gap-1"},Os={class:"flex items-center gap-3 shrink-0 max-sm:hidden"},Ks={class:"text-xs text-zinc-500 tabular-nums whitespace-nowrap"},Ws={class:"text-zinc-700 dark:text-zinc-300"},Hs={class:"text-xs text-emerald-600 dark:text-emerald-400 tabular-nums whitespace-nowrap"},Vs={class:"text-xs text-rose-600 dark:text-rose-400 tabular-nums whitespace-nowrap"},Gs={class:"text-xs text-zinc-500 tabular-nums whitespace-nowrap"},Xs={class:"text-xs text-amber-600 dark:text-amber-400 tabular-nums whitespace-nowrap",title:"Tests that never ran (maxFailures cutoff or a serial-group failure)"},qs={class:"text-xs text-orange-600 dark:text-orange-400 tabular-nums whitespace-nowrap"},Ys={class:"grid grid-cols-1 lg:grid-cols-12 gap-4"},Js={class:"space-y-3"},Zs={class:"flex items-start gap-3"},Qs={class:"flex items-center gap-2.5 min-w-0 flex-1"},en={class:"min-w-0 flex-1"},tn={class:"flex items-center gap-2"},sn={class:"text-base font-bold shrink-0 flex items-center gap-1"},nn={class:"text-xs text-zinc-500 ml-auto whitespace-nowrap"},an={class:"p-2 space-y-1 min-w-32"},on=["onClick"],ln={class:"grid grid-cols-3 sm:grid-cols-5 gap-2"},rn={class:"text-xl font-bold mt-0.5"},un={class:"relative"},cn={class:"text-xl font-bold mt-0.5 text-emerald-600 dark:text-emerald-400"},dn={class:"text-xl font-bold mt-0.5 text-rose-600 dark:text-rose-400"},mn={class:"text-xl font-bold mt-0.5 text-zinc-600 dark:text-zinc-400"},fn={class:"text-xl font-bold mt-0.5 text-amber-600 dark:text-amber-400"},gn={key:0,class:"flex items-center gap-3"},pn={class:"flex-1 max-w-md"},xn={class:"flex items-center gap-3 text-xs shrink-0"},yn={class:"flex items-center gap-1"},hn={key:0,class:"flex items-center gap-1"},vn={key:1,class:"flex items-center gap-1"},kn={key:2,class:"flex items-center gap-1"},bn={key:0,class:"flex items-center gap-3"},wn={class:"flex-1 min-w-0"},_n={key:1,class:"space-y-1.5 text-sm"},$n={class:"text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0"},Cn={key:0,class:"flex items-center justify-between gap-2 min-w-0"},Tn={class:"truncate"},Rn={class:"text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0"},zn={class:"space-y-3 text-sm"},In={key:0},Sn={class:"flex flex-wrap gap-1.5"},Fn={key:1,class:"flex items-center gap-1"},Dn={key:3},Pn={class:"bg-zinc-50 dark:bg-zinc-900 p-2.5 rounded text-xs font-mono overflow-x-auto max-h-48 overflow-y-auto"},jn={class:"m-0"},Bn=pe({__name:"RunSummary",props:{testRun:{},displayProgress:{},allReports:{},showCustomData:{type:Boolean},finalizing:{type:Boolean},activeFilter:{},totalWastedTime:{}},emits:["update:showCustomData","filter-status","label-updated"],setup(t,{emit:h}){const C=t,F=h,R=gt(),u=xt(),w=D(()=>C.testRun?.storageStats),r=D(()=>!!(C.testRun?.metadata?.ci||C.testRun?.environment||C.testRun?.playwrightVersion||C.testRun?.reporterVersion)),T=D(()=>!!C.testRun?.metadata?.scm),E=D(()=>!!(w.value?.totalFiles||C.finalizing)),N=D(()=>!!(C.testRun?.metadata?.tags?.length||C.testRun?.metadata?.projectDescription||C.testRun?.metadata?.relatedIssue||C.testRun?.metadata?.customData||C.testRun?.links?.length)),{summaryColSpanClass:B,blockColSpanClass:I}=hs(()=>[r,T,E,N].filter(f=>f.value).length),{copy:j,copied:H}=at(),A=K("file-line"),d=K(!1),S=D(()=>C.testRun?.testCases?C.testRun.testCases.filter(f=>f.status==="failed"||f.status==="timedout").map(f=>({filePath:(f.filePath||f.location?.split(":")[0])??"",title:f.title,line:f.location&&parseInt(f.location.split(":")[1]??"",10)||null,projectName:f.browser?.projectName||null})):[]);function p(){return Ct(S.value,{mode:A.value})}async function c(){const f=p();f&&(d.value=!0,await j(f,{toast:"Retry command copied"}),setTimeout(()=>{d.value=!1},2e3))}const m=D(()=>d.value?"Copied!":wt(p()));function U(){const f=C.testRun;if(!f)return"";const z=f.status==="passed"?"✅":f.status==="failed"?"❌":f.status==="running"?"🔄":"⚠️",ue=f.label?` — ${f.label}`:"",g=f.project?.label??f.project?.name??"",P=f.totalTests??0,Y=f.passedTests??0,le=f.failedTests??0,Z=f.skippedTests??0,b=f.didNotRunTests??0,V=f.flakyTests??0,ne=ws(f.duration),se=V>0?` · ${V} flaky`:"",ye=b>0?` · ${b} didn't run`:"";return[`*Run #${f.id}*${ue}`,`Status: ${z} ${f.status} | Project: ${g}`,`Tests: ${P} total · ${Y} passed · ${le} failed · ${Z} skipped${ye}${se}`,`Duration: ${ne}`].join(`
2
+ `)}const v=K(""),M=K(!1),y=K(!1);let J=!1;const te=K(null);function ae(){J=!1,v.value=C.testRun?.label??"",M.value=!0,De(()=>te.value?.focus())}async function ee(){if(y.value)return;if(J){J=!1;return}const f=C.testRun;if(f){y.value=!0;try{await $fetch(`/api/test-runs/${f.id}`,{method:"PATCH",body:{label:v.value||null}}),M.value=!1,F("label-updated")}catch(z){const ue=z&&typeof z=="object"&&"data"in z?z.data?.message:"Failed to save label";R.add({title:"Error",description:ue||"Failed to save label",color:"error"})}finally{y.value=!1}}}function re(){J=!0,M.value=!1}function O(f){f.key==="Enter"?ee():f.key==="Escape"&&re()}return(f,z)=>{const ue=ds,g=ve,P=ke,Y=xs,le=Ee,Z=Pe,b=kt,V=Ue,ne=vt,se=Re,ye=pt,we=nt,ie=ms,_e=fs,$e=es,me=gs,Ce=ys,be=vs;return s(),_(be,{"storage-key":"test-run"},{folded:i(()=>[n("div",Us,[n("div",Ls,[o(ue,{status:t.testRun?.status??"",size:"sm"},null,8,["status"]),n("span",Es,[$(" Run #"+l(t.testRun?.id)+" ",1),e(M)?(s(),a(G,{key:0},[ut(n("input",{ref_key:"labelInputRef",ref:te,"onUpdate:modelValue":z[0]||(z[0]=Q=>Ie(v)?v.value=Q:null),type:"text",placeholder:"Add a label...",class:"inline-block w-40 text-sm font-normal border-b border-dashed border-zinc-400 bg-transparent outline-none focus:border-primary px-0.5 py-0",onKeydown:O,onBlur:ee},null,544),[[ct,e(v)]]),e(y)?(s(),_(g,{key:0,name:"i-lucide-loader-circle",class:"size-3.5 text-zinc-400 animate-spin shrink-0"})):k("",!0)],64)):(s(),a(G,{key:1},[t.testRun?.label?(s(),a("span",{key:0,class:"font-normal text-zinc-500 ml-1.5 cursor-pointer hover:text-zinc-700 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400",onClick:ae},"— "+l(t.testRun.label),1)):(s(),a("button",{key:1,class:"text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400 ml-1",title:"Add a label",onClick:ae}," + label "))],64))]),t.testRun?.shardTotal&&t.testRun.shardTotal>1?(s(),_(P,{key:0,color:"neutral",variant:"soft",size:"sm",class:"shrink-0",title:`Shard ${t.testRun.shardsFinished??0}/${t.testRun.shardTotal}`},{default:i(()=>[o(g,{name:"i-lucide-layout-grid",class:"size-3 mr-1"}),$(" "+l(t.testRun.shardsFinished??0)+"/"+l(t.testRun.shardTotal),1)]),_:1},8,["title"])):k("",!0)]),n("div",Os,[n("span",Ks,[z[12]||(z[12]=$(" T: ",-1)),n("strong",Ws,l(t.displayProgress?.totalTests??t.testRun?.totalTests??0),1)]),n("span",Hs,[z[13]||(z[13]=$(" P: ",-1)),n("strong",null,l(t.displayProgress?.passedTests??t.testRun?.passedTests??0),1)]),n("span",Vs,[z[14]||(z[14]=$(" F: ",-1)),n("strong",null,l(t.displayProgress?.failedTests??t.testRun?.failedTests??0),1)]),n("span",Gs,[z[15]||(z[15]=$(" S: ",-1)),n("strong",null,l(t.displayProgress?.skippedTests??t.testRun?.skippedTests??0),1)]),n("span",Xs,[z[16]||(z[16]=$(" DNR: ",-1)),n("strong",null,l(t.testRun?.didNotRunTests??0),1)]),n("span",qs,[z[17]||(z[17]=$(" Fl: ",-1)),n("strong",null,l(t.testRun?.flakyTests??0),1)]),o(Y,{passed:t.displayProgress?.passedTests??t.testRun?.passedTests??0,failed:t.displayProgress?.failedTests??t.testRun?.failedTests??0,skipped:t.displayProgress?.skippedTests??t.testRun?.skippedTests??0,flaky:t.testRun?.flakyTests??0,"did-not-run":t.testRun?.didNotRunTests??0,total:t.displayProgress?.totalTests??t.testRun?.totalTests??0},null,8,["passed","failed","skipped","flaky","did-not-run","total"]),o(le,{ms:t.testRun?.duration,class:"text-xs text-zinc-400"},null,8,["ms"])])])]),default:i(()=>[n("div",Ys,[n("div",{class:q(e(B))},[o(we,{class:"shadow-xs h-full"},{default:i(()=>[n("div",Js,[n("div",Zs,[n("div",Qs,[o(ue,{status:t.testRun?.status??"",size:"md"},null,8,["status"]),n("div",en,[n("div",tn,[n("h2",sn,[$(" Run #"+l(t.testRun?.id)+" ",1),e(M)?(s(),a(G,{key:0},[ut(n("input",{ref_key:"labelInputRef",ref:te,"onUpdate:modelValue":z[1]||(z[1]=Q=>Ie(v)?v.value=Q:null),type:"text",placeholder:"Add a label...",class:"inline-block w-48 text-sm font-normal border-b border-dashed border-zinc-400 bg-transparent outline-none focus:border-primary px-0.5 py-0",onKeydown:O,onBlur:ee},null,544),[[ct,e(v)]]),e(y)?(s(),_(g,{key:0,name:"i-lucide-loader-circle",class:"size-3.5 text-zinc-400 animate-spin shrink-0"})):k("",!0)],64)):(s(),a(G,{key:1},[t.testRun?.label?(s(),a("span",{key:0,class:"font-normal text-zinc-500 ml-1.5 cursor-pointer hover:text-zinc-700 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400",onClick:ae},"— "+l(t.testRun.label),1)):(s(),a("button",{key:1,class:"text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400 ml-1.5",title:"Add a label",onClick:ae}," + label "))],64)),o(Z,{topic:"run.summary"})]),t.testRun?.shardTotal&&t.testRun.shardTotal>1?(s(),_(P,{key:0,color:"neutral",variant:"soft",size:"sm",class:"shrink-0",title:`Shard ${t.testRun.shardsFinished??0}/${t.testRun.shardTotal}`},{default:i(()=>[o(g,{name:"i-lucide-layout-grid",class:"size-3 mr-1"}),$(" "+l(t.testRun.shardsFinished??0)+"/"+l(t.testRun.shardTotal),1)]),_:1},8,["title"])):k("",!0),t.testRun?.precedingMarker?(s(),_(ne,{key:1,text:`This run started after: ${t.testRun.precedingMarker.label}`},{default:i(()=>[o(V,{to:`/projects/${t.testRun.projectId}?tab=timeline`,class:"shrink-0 inline-flex items-center gap-1"},{default:i(()=>[z[18]||(z[18]=n("span",{class:"text-xs text-muted"},"After",-1)),o(b,{marker:t.testRun.precedingMarker,size:"xs"},null,8,["marker"])]),_:1},8,["to"])]),_:1},8,["text"])):k("",!0),n("span",nn,l(t.testRun?.project?.label??t.testRun?.project?.name)+" · Started "+l(("prettyDateFormat"in f?f.prettyDateFormat:e(bt))(t.testRun?.startTime)),1),o(ne,{text:e(H)?"Copied!":"Copy run summary"},{default:i(()=>[o(se,{size:"xs",variant:"ghost",color:"neutral",icon:e(H)?"i-lucide-check":"i-lucide-clipboard",class:"shrink-0 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",onClick:z[2]||(z[2]=Q=>e(j)(U(),{toast:"Run summary copied"}))},null,8,["icon"])]),_:1},8,["text"]),e(S).length>0?(s(),_(ye,{key:2},{content:i(()=>[n("div",an,[z[20]||(z[20]=n("p",{class:"text-xs font-medium text-zinc-500 px-2 py-1"},"Mode",-1)),(s(),a(G,null,oe(["file-line","grep","file"],Q=>n("button",{key:Q,class:q(["w-full text-left px-2 py-1 text-sm rounded hover:bg-zinc-100 dark:hover:bg-zinc-800",e(A)===Q?"bg-primary/10 text-primary":""]),onClick:x=>A.value=Q},l(Q==="file-line"?"File:line":Q==="grep"?"Title (grep)":"File only"),11,on)),64))])]),default:i(()=>[o(se,{size:"xs",color:"warning",variant:"subtle",icon:e(d)?"i-lucide-check":"i-lucide-play",title:e(m),onClick:z[3]||(z[3]=Q=>c())},{default:i(()=>[...z[19]||(z[19]=[$(" Retry ",-1)])]),_:1},8,["icon","title"])]),_:1})):k("",!0)])])])]),n("div",ln,[n("button",{class:q(["rounded-lg p-3 text-left w-full transition-colors cursor-pointer",t.activeFilter==="all"?"bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500":"bg-elevated/60 hover:bg-elevated"]),onClick:z[4]||(z[4]=Q=>F("filter-status","all"))},[z[21]||(z[21]=n("p",{class:"text-xs font-medium text-zinc-500 uppercase tracking-wider"},"Total",-1)),n("p",rn,l(t.displayProgress?.totalTests??t.testRun?.totalTests??0),1)],2),n("div",un,[n("button",{class:q(["rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer",t.activeFilter==="passed"?"bg-emerald-100 dark:bg-emerald-900/30 ring-2 ring-emerald-400 dark:ring-emerald-600":"bg-emerald-50 dark:bg-emerald-900/20 hover:bg-emerald-100 dark:hover:bg-emerald-900/30"]),onClick:z[5]||(z[5]=Q=>F("filter-status","passed"))},[z[22]||(z[22]=n("p",{class:"text-xs font-medium text-emerald-700 dark:text-emerald-400 uppercase tracking-wider"}," Passed ",-1)),n("p",cn,l(t.displayProgress?.passedTests??t.testRun?.passedTests??0),1)],2),(t.testRun?.flakyTests??0)>0?(s(),a("button",{key:0,class:q(["absolute top-1.5 right-1.5 inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-semibold leading-none tabular-nums transition-colors cursor-pointer",t.activeFilter==="flaky"?"bg-orange-200 dark:bg-orange-800/60 text-orange-800 dark:text-orange-200 ring-2 ring-orange-400 dark:ring-orange-600":"bg-orange-100 dark:bg-orange-900/40 text-orange-700 dark:text-orange-300 hover:bg-orange-200 dark:hover:bg-orange-800/60"]),title:"Flaky — passed only after a retry (a subset of passed). Click to filter.",onClick:z[6]||(z[6]=Q=>F("filter-status","flaky"))},[o(g,{name:"i-lucide-shuffle",class:"size-3"}),$(" "+l(t.testRun?.flakyTests??0),1)],2)):k("",!0)]),n("button",{class:q(["rounded-lg p-3 text-left w-full transition-colors cursor-pointer",t.activeFilter==="failed"?"bg-rose-100 dark:bg-rose-900/30 ring-2 ring-rose-400 dark:ring-rose-600":"bg-rose-50 dark:bg-rose-900/20 hover:bg-rose-100 dark:hover:bg-rose-900/30"]),onClick:z[7]||(z[7]=Q=>F("filter-status","failed"))},[z[23]||(z[23]=n("p",{class:"text-xs font-medium text-rose-700 dark:text-rose-400 uppercase tracking-wider"},"Failed",-1)),n("p",dn,l(t.displayProgress?.failedTests??t.testRun?.failedTests??0),1)],2),n("button",{class:q(["rounded-lg p-3 text-left w-full transition-colors cursor-pointer",t.activeFilter==="skipped"?"bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500":"bg-elevated/60 hover:bg-elevated"]),onClick:z[8]||(z[8]=Q=>F("filter-status","skipped"))},[z[24]||(z[24]=n("p",{class:"text-xs font-medium text-zinc-500 uppercase tracking-wider"},"Skipped",-1)),n("p",mn,l(t.displayProgress?.skippedTests??t.testRun?.skippedTests??0),1)],2),n("button",{class:q(["rounded-lg p-3 text-left w-full transition-colors cursor-pointer",t.activeFilter==="didnotrun"?"bg-amber-100 dark:bg-amber-900/30 ring-2 ring-amber-400 dark:ring-amber-600":"bg-amber-50 dark:bg-amber-900/20 hover:bg-amber-100 dark:hover:bg-amber-900/30"]),title:"Tests that never ran (maxFailures cutoff or a serial-group failure)",onClick:z[9]||(z[9]=Q=>F("filter-status","didnotrun"))},[z[25]||(z[25]=n("p",{class:"text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider"}," Didn't run ",-1)),n("p",fn,l(t.testRun?.didNotRunTests??0),1)],2)]),n("div",null,[t.testRun?(s(),a("div",gn,[n("div",pn,[o(Y,{passed:t.displayProgress?.passedTests??t.testRun?.passedTests??0,failed:t.displayProgress?.failedTests??t.testRun?.failedTests??0,skipped:t.displayProgress?.skippedTests??t.testRun?.skippedTests??0,flaky:t.testRun?.flakyTests??0,"did-not-run":t.testRun?.didNotRunTests??0,total:t.displayProgress?.totalTests??t.testRun?.totalTests??0},null,8,["passed","failed","skipped","flaky","did-not-run","total"])]),n("div",xn,[n("div",yn,[o(g,{name:"i-lucide-clock",class:"size-3.5 text-zinc-400"}),o(le,{ms:t.testRun?.duration,class:"font-medium"},null,8,["ms"])]),t.testRun?.avgTestDuration?(s(),a("div",hn,[o(g,{name:"i-lucide-gauge",class:"size-3.5 text-zinc-400"}),z[26]||(z[26]=n("span",{class:"text-zinc-500 hidden sm:inline"},"Avg",-1)),o(le,{ms:t.testRun.avgTestDuration,class:"font-medium"},null,8,["ms"])])):k("",!0),t.testRun?.p90TestDuration?(s(),a("div",vn,[o(g,{name:"i-lucide-arrow-up-right",class:"size-3.5 text-orange-500"}),z[27]||(z[27]=n("span",{class:"text-zinc-500 hidden sm:inline"},"P90",-1)),o(le,{ms:t.testRun.p90TestDuration,class:"font-medium text-orange-600 dark:text-orange-400","unit-class":"opacity-60"},null,8,["ms"])])):k("",!0),t.totalWastedTime&&t.totalWastedTime>0?(s(),a("div",kn,[o(g,{name:"i-lucide-clock",class:"size-3.5 text-amber-500"}),z[28]||(z[28]=n("span",{class:"text-zinc-500 hidden sm:inline"},"Wasted",-1)),o(le,{ms:t.totalWastedTime,class:"font-medium text-amber-600 dark:text-amber-400","unit-class":"opacity-60"},null,8,["ms"])])):k("",!0)])])):k("",!0)])])]),_:1})],2),e(r)?(s(),_(ie,{key:0,ci:t.testRun?.metadata?.ci,environment:t.testRun?.environment,"playwright-version":t.testRun?.playwrightVersion,"reporter-version":t.testRun?.reporterVersion,class:q(e(I))},null,8,["ci","environment","playwright-version","reporter-version","class"])):k("",!0),e(T)?(s(),_(_e,{key:1,scm:t.testRun.metadata.scm,class:q(e(I))},null,8,["scm","class"])):k("",!0),e(E)?(s(),_(me,{key:2,class:q(e(I)),title:"Storage",icon:"i-lucide-database",help:"run.reports",subtitle:e(w)?.totalFiles?`${e(w).totalFiles} files · ${("formatBytes"in f?f.formatBytes:e(Ze))(e(w).totalSize)}`:void 0},{default:i(()=>[t.finalizing?(s(),a("div",bn,[o(g,{name:"i-lucide-upload",class:"size-5 text-info shrink-0 animate-pulse"}),n("div",wn,[z[29]||(z[29]=n("div",{class:"flex items-center justify-between mb-1"},[n("span",{class:"text-sm font-medium"},"Finalizing test run"),n("span",{class:"text-xs text-zinc-500"},"Uploading reports & traces…")],-1)),o($e,{value:null,size:"sm",color:"info",class:"rounded-full animate-pulse"})])])):k("",!0),e(w)?.totalFiles?(s(),a("div",_n,[(s(!0),a(G,null,oe(t.allReports,Q=>(s(),a("div",{key:Q.label,class:"flex items-center justify-between gap-2 min-w-0"},[o(se,{href:("fileApiUrl"in f?f.fileApiUrl:e(bs))(Q.path,null,e(u).app?.baseURL),icon:("reportIcon"in f?f.reportIcon:e(ks))(Q.type),target:"_blank",size:"xs",variant:"outline",class:"min-w-0",ui:{label:"truncate"}},{default:i(()=>[$(l(Q.label),1)]),_:2},1032,["href","icon"]),n("span",$n,l(("formatBytes"in f?f.formatBytes:e(Ze))(Q.size)),1)]))),128)),e(w).testCaseFilesCount>0?(s(),a("div",Cn,[n("span",Tn,"Test files ("+l(e(w).testCaseFilesCount)+")",1),n("span",Rn,l(("formatBytes"in f?f.formatBytes:e(Ze))(e(w).testCaseFilesSize)),1)])):k("",!0)])):k("",!0)]),_:1},8,["class","subtitle"])):k("",!0),e(N)?(s(),_(me,{key:3,class:q(e(I)),title:"Other",icon:"i-lucide-tags",help:"run.metadata"},{default:i(()=>[n("div",zn,[t.testRun.metadata.tags&&t.testRun.metadata.tags.length>0?(s(),a("div",In,[n("div",Sn,[(s(!0),a(G,null,oe(t.testRun.metadata.tags,Q=>(s(),_(P,{key:Q,color:"neutral",variant:"soft",size:"sm"},{default:i(()=>[$(l(Q),1)]),_:2},1024))),128))])])):k("",!0),t.testRun.metadata.relatedIssue?(s(),a("p",Fn,[o(g,{name:"i-lucide-link",class:"w-3.5 h-3.5 text-zinc-400 shrink-0"}),n("span",null,l(t.testRun.metadata.relatedIssue),1)])):k("",!0),o(Ce,{"entity-type":"test_run","entity-id":t.testRun.id,links:t.testRun.links??null,onUpdated:z[10]||(z[10]=Q=>f.$emit("label-updated"))},null,8,["entity-id","links"]),t.testRun.metadata.customData?(s(),_(se,{key:2,size:"xs",variant:"ghost",color:"neutral",icon:t.showCustomData?"i-lucide-chevron-up":"i-lucide-chevron-down",onClick:z[11]||(z[11]=Q=>F("update:showCustomData",!t.showCustomData))},{default:i(()=>[...z[30]||(z[30]=[$(" Custom data ",-1)])]),_:1},8,["icon"])):k("",!0),t.showCustomData&&t.testRun.metadata.customData?(s(),a("div",Dn,[n("div",Pn,[n("pre",jn,l(JSON.stringify(t.testRun.metadata.customData,null,2)),1)])])):k("",!0)])]),_:1},8,["class"])):k("",!0)])]),_:1})}}}),Nn=Object.assign(Bn,{__name:"RunSummary"}),Mn={key:0,class:"inline-flex items-center gap-1 flex-wrap"},An=pe({__name:"TestRowBadges",props:{mode:{default:null},isNewRegression:{type:[Boolean,null],default:!1},isNewFlaky:{type:[Boolean,null],default:!1},annotations:{default:null},tags:{default:null},meta:{default:null},maxTags:{default:0}},setup(t){const h=t;function C(T){return T==="fixme"||T==="slow"?"warning":T==="fail"?"error":T==="skip"?"neutral":T==="tag"?"primary":"info"}function F(T){switch(T){case"fixme":return"i-lucide-wrench";case"skip":return"i-lucide-skip-forward";case"slow":return"i-lucide-timer";case"fail":return"i-lucide-x-circle";case"tag":return"i-lucide-tag";default:return null}}function R(T){return T.type==="tag"?T.description??T.type:T.type}const u=D(()=>(h.annotations??[]).filter(T=>!_s(T.type))),w=D(()=>!!((h.tags?.length??0)>0||h.meta?.owner||h.meta?.priority||h.meta?.feature||h.meta?.link)),r=D(()=>h.mode==="parallel"||h.mode==="serial"||!!h.isNewRegression||!!h.isNewFlaky||u.value.length>0||w.value);return(T,E)=>{const N=ke,B=ve,I=zs;return e(r)?(s(),a("div",Mn,[t.mode==="parallel"?(s(),_(N,{key:0,color:"success",variant:"soft",size:"xs",class:"shrink-0"},{default:i(()=>[...E[0]||(E[0]=[$("parallel",-1)])]),_:1})):k("",!0),t.mode==="serial"?(s(),_(N,{key:1,color:"warning",variant:"soft",size:"xs",class:"shrink-0"},{default:i(()=>[...E[1]||(E[1]=[$("serial",-1)])]),_:1})):k("",!0),t.isNewRegression?(s(),_(N,{key:2,color:"error",variant:"solid",size:"xs",class:"uppercase tracking-wider shrink-0",title:"First run in which this test failed"},{default:i(()=>[...E[2]||(E[2]=[$(" NEW ",-1)])]),_:1})):k("",!0),t.isNewFlaky?(s(),_(N,{key:3,color:"info",variant:"solid",size:"xs",class:"uppercase tracking-wider shrink-0",title:"First run in which this test was flaky"},{default:i(()=>[...E[3]||(E[3]=[$(" FLAKY ",-1)])]),_:1})):k("",!0),(s(!0),a(G,null,oe(e(u),j=>(s(),_(N,{key:`${j.type}:${j.description??""}`,color:C(j.type),variant:"soft",size:"xs",title:j.type!=="tag"?j.description??void 0:void 0,class:"shrink-0 gap-1"},{default:i(()=>[F(j.type)?(s(),_(B,{key:0,name:F(j.type),class:"size-2.5 shrink-0"},null,8,["name"])):k("",!0),$(" "+l(R(j)),1)]),_:2},1032,["color","title"]))),128)),o(I,{tags:t.tags,meta:t.meta,"max-tags":t.maxTags},null,8,["tags","meta","max-tags"])])):k("",!0)}}}),Pt=Object.assign(An,{__name:"TestRowBadges"}),Un={class:"rounded-lg border border-default bg-default text-sm flex flex-col flex-1 min-h-0"},Ln={class:"flex items-center justify-end px-3 py-1.5 border-b border-default bg-elevated shrink-0"},En=["disabled","title"],On={class:"overflow-y-auto flex-1 min-h-0"},Kn=["onClick"],Wn={key:1,class:"font-medium truncate min-w-0 text-muted"},Hn={class:"flex items-center gap-1.5 sm:gap-2 shrink-0 tabular-nums"},Vn=["title"],Gn={class:"max-sm:sr-only"},Xn=["href","title","onClick"],qn={class:"truncate"},Yn={class:"flex items-center gap-1.5 sm:gap-2 shrink-0 ml-auto"},Jn={key:0,class:"text-xs text-info"},Zn={key:4,class:"inline-flex items-center gap-0.5 text-xs text-amber-600 dark:text-amber-400",title:"Wasted in fixed waits"},Qn={key:0,class:"text-center py-8 text-muted"},ea=pe({__name:"TestCasesTree",props:{testCases:{},suites:{},hasFilter:{type:Boolean},highlightedCaseId:{},projectKey:{},projectName:{}},setup(t){const h=t,C=D(()=>{const d=new Map;for(const S of h.suites)d.set(`${S.filePath}${S.suitePath.join("")}`,S);return d});function F(d){return d==="timedOut"||d==="timedout"?"failed":d}const R=["failed","passed","skipped","didnotrun","running"];function u(d){return R.filter(S=>d[S]>0).map(S=>({key:S,count:d[S],label:Fe(S)}))}function w(d){const S={passed:0,failed:0,skipped:0,didnotrun:0,running:0,total:0};for(const p of d){const c=F(p.status);c in S&&S[c]++,S.total++}return S}const r=K(new Set),T=D(()=>r.value.size===0);function E(d){return h.hasFilter?!0:!r.value.has(d)}function N(d){if(h.hasFilter)return;const S=new Set(r.value);S.has(d)?S.delete(d):S.add(d),r.value=S}function B(){const d=[],S=new Map;for(const p of h.testCases){const c=p.filePath??"unknown";S.has(c)||S.set(c,[]),S.get(c).push(p)}for(const[p,c]of S){d.push(`file:${p}`);const m=new Set;for(const U of c){const v=U.suitePath??[];for(let M=1;M<=v.length;M++)m.add(`group:${p}${v.slice(0,M).join("")}`)}for(const U of m)d.push(U)}return d}function I(){r.value=new Set(B())}function j(){r.value=new Set}function H(d,S,p,c,m){const U=S.filter(y=>(y.suitePath??[]).length===c.length),v=S.filter(y=>(y.suitePath??[]).length>c.length),M=new Map;for(const y of v){const J=(y.suitePath??[])[c.length];M.has(J)||M.set(J,[]),M.get(J).push(y)}for(const[y,J]of M){const te=[...c,y],ae=`group:${p}${te.join("")}`,ee=C.value.get(`${p}${te.join("")}`);d.push({kind:"group",depth:m,key:ae,label:y,stats:w(J),mode:ee?.mode??"default",annotations:ee?.annotations??[]}),E(ae)&&H(d,J,p,te,m+1)}for(const y of U)d.push({kind:"test",depth:m,key:`test:${y.id}`,test:y})}const A=D(()=>{const d=[],S=new Map;for(const p of h.testCases){const c=p.filePath??"unknown";S.has(c)||S.set(c,[]),S.get(c).push(p)}for(const[p,c]of[...S.entries()].sort(([m],[U])=>m.localeCompare(U))){const m=`file:${p}`;d.push({kind:"group",depth:0,key:m,label:p,stats:w(c)}),E(m)&&H(d,c,p,[],1)}return d});return(d,S)=>{const p=ve,c=Rt,m=Pt,U=zt,v=Ee,M=ke;return s(),a("div",Un,[n("div",Ln,[n("button",{class:q(["flex items-center gap-1 text-xs transition-colors",t.hasFilter?"text-muted cursor-not-allowed opacity-50":"text-muted hover:text-default"]),disabled:t.hasFilter,title:t.hasFilter?"Clear filters to collapse/expand":T.value?"Collapse all":"Expand all",onClick:S[0]||(S[0]=y=>T.value?I():j())},[o(p,{name:T.value?"i-lucide-fold-vertical":"i-lucide-unfold-vertical",class:"size-3.5"},null,8,["name"]),$(" "+l(T.value?"Collapse all":"Expand all"),1)],10,En)]),n("div",On,[(s(!0),a(G,null,oe(A.value,y=>(s(),a(G,{key:y.key},[y.kind==="group"?(s(),a("div",{key:0,class:q(["flex items-center gap-2 py-2 pr-4 border-b border-default last:border-b-0 select-none sticky",[y.depth===0?"bg-elevated":"bg-default",!t.hasFilter&&"cursor-pointer"]]),style:he({paddingLeft:`${y.depth*20+12}px`,top:`${y.depth*36}px`,zIndex:20-y.depth}),onClick:J=>N(y.key)},[o(p,{name:E(y.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 text-muted shrink-0"},null,8,["name"]),o(p,{name:y.depth===0?"i-lucide-file-code-2":"i-lucide-folder-open",class:q(["size-4 shrink-0",y.depth===0?"text-blue-500":"text-amber-500"])},null,8,["name","class"]),y.depth===0?(s(),a("span",{key:0,class:"min-w-0",onClick:S[1]||(S[1]=Ne(()=>{},["stop"]))},[o(c,{"file-path":y.label,"project-key":t.projectKey,"project-name":t.projectName,class:"font-medium text-default"},null,8,["file-path","project-key","project-name"])])):(s(),a("span",Wn,l(y.label),1)),y.depth>0?(s(),_(m,{key:2,mode:y.mode,annotations:y.annotations,class:"shrink-0"},null,8,["mode","annotations"])):k("",!0),S[2]||(S[2]=n("div",{class:"flex-1"},null,-1)),n("div",Hn,[(s(!0),a(G,null,oe(u(y.stats),J=>(s(),a("span",{key:J.key,class:q(["text-xs inline-flex items-center gap-0.5",[("getStatusTextClass"in d?d.getStatusTextClass:e(et))(J.key),J.key==="failed"?"font-medium":""]]),title:`${J.count} ${J.label}`},[o(p,{name:("getStatusIcon"in d?d.getStatusIcon:e(tt))(J.key),class:"size-3 shrink-0 sm:hidden"},null,8,["name"]),$(" "+l(J.count),1),n("span",Gn,l(J.label),1)],10,Vn))),128))])],14,Kn)):(s(),a("div",{key:1,class:q(["flex flex-wrap items-center gap-x-2 gap-y-1 pr-3 py-2 sm:py-1.5 border-b border-default last:border-b-0 hover:bg-zinc-50 dark:hover:bg-zinc-900/40 transition-colors",t.highlightedCaseId===y.test.id?"animate-pulse bg-yellow-100 dark:bg-yellow-900/30":""]),style:he({paddingLeft:`${y.depth*20+12}px`})},[o(U,{browser:y.test.browser,size:"sm"},null,8,["browser"]),o(p,{name:("getStatusIcon"in d?d.getStatusIcon:e(tt))(y.test.status),class:q(["size-4 shrink-0",[("getStatusTextClass"in d?d.getStatusTextClass:e(et))(y.test.status),("isStatusInFlight"in d?d.isStatusInFlight:e(_t))(y.test.status)?"animate-spin":""]]),role:"img","aria-label":`Status: ${("formatStatusLabel"in d?d.formatStatusLabel:e(Fe))(y.test.status)}`,title:("formatStatusLabel"in d?d.formatStatusLabel:e(Fe))(y.test.status)},null,8,["name","class","aria-label","title"]),n("a",{href:`/test-run-cases/${y.test.id}`,class:"text-highlighted hover:text-primary hover:underline min-w-32 self-stretch flex items-center",title:y.test.title,onClick:Ne(J=>("navigateTo"in d?d.navigateTo:e(He))(`/test-run-cases/${y.test.id}`),["prevent"])},[n("span",qn,l(y.test.title),1)],8,Xn),o(m,{"is-new-regression":!!y.test.isNewRegression,"is-new-flaky":!!y.test.isNewFlaky,annotations:y.test.testAnnotations,tags:y.test.tags,meta:y.test.testMeta,"max-tags":3,class:"shrink-0"},null,8,["is-new-regression","is-new-flaky","annotations","tags","meta"]),n("div",Yn,[y.test.status==="running"?(s(),a("span",Jn,"In progress...")):y.test.duration?(s(),_(v,{key:1,ms:y.test.duration,class:"text-xs text-muted"},null,8,["ms"])):k("",!0),y.test.workerIndex!=null?(s(),_(M,{key:2,color:"neutral",variant:"soft",size:"xs",class:"font-mono",title:`Worker ${y.test.workerIndex}`},{default:i(()=>[$(" w"+l(y.test.workerIndex),1)]),_:2},1032,["title"])):k("",!0),(y.test.retries??0)>0?(s(),_(M,{key:3,color:"warning",variant:"soft",size:"xs"},{default:i(()=>[$(l(y.test.retries)+"x ",1)]),_:2},1024)):k("",!0),y.test.wastedTimeMs?(s(),a("span",Zn,[o(p,{name:"i-lucide-hourglass",class:"size-3 shrink-0"}),o(v,{ms:y.test.wastedTimeMs,"unit-class":"opacity-60","no-title":""},null,8,["ms"])])):k("",!0)])],6))],64))),128)),A.value.length===0?(s(),a("div",Qn,[o(p,{name:"i-lucide-search-x",class:"size-6 mx-auto mb-2 text-zinc-300 dark:text-zinc-600"}),S[3]||(S[3]=n("p",{class:"text-sm"},"No test cases match your filters.",-1))])):k("",!0)])])}}}),ta=Object.assign(ea,{__name:"TestCasesTree"}),sa={class:"flex flex-col min-h-0"},na={class:"flex items-center rounded-md border border-default overflow-hidden"},aa={key:0,class:"text-sm text-zinc-500 tabular-nums inline-flex items-center gap-1"},oa={key:1,class:"text-sm text-zinc-500 tabular-nums inline-flex items-center gap-1"},la={class:"flex flex-wrap items-center gap-1"},ia=["onClick"],ra={key:2,class:"flex items-center gap-1 md:hidden"},ua={key:0,class:"flex-1 min-h-0 max-lg:h-[70dvh] md:overflow-x-auto overflow-y-hidden rounded-lg border border-default bg-default"},ca=["aria-rowcount"],da=["aria-sort","aria-label","title","onClick"],ma={key:1,class:"truncate"},fa={class:"flex items-start gap-2"},ga=["href","onClick"],pa={class:"pl-6 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted"},xa={key:0,class:"text-info"},ya={key:4,class:"inline-flex items-center gap-0.5 text-amber-600 dark:text-amber-400",title:"Wasted in fixed waits"},ha={class:"px-3 py-2 flex items-center min-w-0",role:"cell"},va={class:"px-3 py-2 min-w-0 space-y-0.5",role:"cell"},ka={class:"flex items-center gap-1.5 min-w-0"},ba=["href","title","onClick"],wa={class:"px-3 py-2 flex items-center",role:"cell"},_a={class:"px-3 py-2 flex items-center whitespace-nowrap",role:"cell"},$a={key:0,class:"text-info text-xs"},Ca={class:"px-3 py-2 flex items-center",role:"cell"},Ta={class:"px-3 py-2 flex items-center tabular-nums",role:"cell"},Ra={key:0,class:"px-3 py-2 flex items-center whitespace-nowrap",role:"cell"},za={key:1,class:"text-zinc-400"},Ia={class:"flex-1 min-h-0 flex items-center justify-center py-10 text-sm text-zinc-500"},Sa={key:1,class:"text-center py-10 text-zinc-500"},Fa={key:2,class:"text-center py-10 text-zinc-500"},Ke="natural",Da=pe({__name:"TestCasesList",props:ss({testCases:{},suites:{},isLive:{type:Boolean},failureClusterFilter:{},projectKey:{},projectName:{}},{search:{default:""},searchModifiers:{},activeStatuses:{default:()=>[]},activeStatusesModifiers:{},browserFilter:{default:"all"},browserFilterModifiers:{}}),emits:["update:search","update:activeStatuses","update:browserFilter"],setup(t,{expose:h}){const{treeView:C,setTreeView:F}=Is("test-cases"),R=t,u=Je(t,"search"),w=Je(t,"activeStatuses"),r=Je(t,"browserFilter"),T=K(!1),E=K(!1),N=[{label:"Passed",value:"passed",color:"green"},{label:"Failed",value:"failed",color:"red"},{label:"Skipped",value:"skipped",color:"gray"},{label:"Didn't run",value:"didnotrun",color:"amber"},{label:"Flaky",value:"flaky",color:"orange"}];function B(g){w.value.indexOf(g)>=0?w.value=w.value.filter(Y=>Y!==g):w.value=[...w.value,g]}const I=D(()=>{const g=new Set;for(const Y of R.testCases){const le=Y.browser?.projectName;le&&g.add(le)}const P=[{label:"All browsers",value:"all"}];for(const Y of[...g].sort())P.push({label:Y,value:Y});return P});function j(g,P){return P==="failed"?g.status==="failed"||g.status==="timedOut"||g.status==="timedout":P==="flaky"?(g.retries??0)>0:g.status===P}const H=D(()=>{let g=R.testCases;if(R.failureClusterFilter!=null&&(g=g.filter(P=>P.failureClusterId===R.failureClusterFilter)),w.value.length>0&&(g=g.filter(P=>w.value.some(Y=>j(P,Y)))),r.value!=="all"&&(g=g.filter(P=>P.browser?.projectName===r.value)),u.value){const P=u.value.toLowerCase();g=g.filter(Y=>Y.title.toLowerCase().includes(P)||Y.location&&Y.location.toLowerCase().includes(P))}return T.value&&(g=g.filter(P=>P.isNewRegression)),E.value&&(g=g.filter(P=>P.isNewFlaky)),g}),A=K(null),d=K("asc");function S(g){A.value!==g?(A.value=g,d.value="asc"):d.value==="asc"?d.value="desc":A.value=null}function p(g){return A.value!==g?"i-lucide-chevrons-up-down":d.value==="asc"?"i-lucide-chevron-up":"i-lucide-chevron-down"}function c(g,P){switch(P){case"browser":return g.browser?.projectName??"";case"title":return g.title??"";case"status":return g.status??"";case"duration":return g.duration??0;case"workerIndex":return g.workerIndex??-1;case"retries":return g.retries??0;case"wastedTimeMs":return g.wastedTimeMs??0;default:return""}}const m=D(()=>{const g=H.value,P=A.value;if(!P)return g;const Y=d.value==="asc"?1:-1;return[...g].sort((le,Z)=>{const b=c(le,P),V=c(Z,P);return typeof b=="number"&&typeof V=="number"?(b-V)*Y:String(b).localeCompare(String(V))*Y})}),U=D(()=>R.testCases.some(g=>(g.wastedTimeMs??0)>0)),v=D(()=>{const g=[{key:"browser",label:"Browser",sortable:!0,width:"3.25rem",align:"left",icon:"i-lucide-monitor"},{key:"title",label:"Test case",sortable:!0,width:"minmax(12rem, 3fr)",align:"left"},{key:"status",label:"Status",sortable:!0,width:"6rem",align:"left"},{key:"duration",label:"Duration",sortable:!0,width:"7rem",align:"left"},{key:"workerIndex",label:"Worker",sortable:!0,width:"6rem",align:"left"},{key:"retries",label:"Retries",sortable:!0,width:"6.5rem",align:"left"}];return U.value&&g.push({key:"wastedTimeMs",label:"Wasted",sortable:!0,width:"6rem",align:"left"}),g}),M=D(()=>[{label:"Run order",value:Ke},...v.value.map(g=>({label:g.label,value:g.key}))]),y=D({get:()=>A.value??Ke,set:g=>{A.value=g===Ke?null:g,g!==Ke&&(d.value="asc")}}),J=D(()=>v.value.map(g=>g.width).join(" ")),te=D(()=>U.value?"47.5rem":"41.5rem"),ae=D(()=>u.value!==""||w.value.length>0||r.value!=="all"||R.failureClusterFilter!=null),ee=K(null),re=K(!1),O=K(null);function f(g){return g.scrollHeight-g.scrollTop-g.clientHeight<50}function z(g){const P=g.target;P&&(re.value=!f(P))}ge(()=>R.isLive,g=>{g||(re.value=!1)}),ge(()=>m.value.length,()=>{!R.isLive||re.value||De(()=>ee.value?.scrollToBottom())});function ue(g){F(!1),O.value=g;const P=()=>{const Y=m.value.findIndex(le=>le.id===g);Y>=0&&ee.value?.scrollToItem(Y,{behavior:"smooth"})};De(()=>{ee.value?P():setTimeout(P,60),setTimeout(()=>{O.value=null},3e3)})}return h({scrollToCase:ue}),(g,P)=>{const Y=ve,le=Pe,Z=ts,b=Ts,V=Tt,ne=Re,se=Rs,ye=ta,we=zt,ie=Rt,_e=Pt,$e=Ee,me=ke,Ce=dt("DynamicScrollerItem"),be=dt("DynamicScroller"),Q=yt;return s(),a("div",sa,[o(se,{class:"mb-4 shrink-0"},{start:i(()=>[n("div",na,[n("button",{class:q(["px-2 py-1 text-xs transition-colors",e(C)?"text-muted hover:bg-elevated/60":"bg-primary text-white dark:text-white"]),title:"Flat list",onClick:P[0]||(P[0]=x=>e(F)(!1))},[o(Y,{name:"i-lucide-list",class:"size-3.5"})],2),n("button",{class:q(["px-2 py-1 text-xs transition-colors",e(C)?"bg-primary text-white dark:text-white":"text-muted hover:bg-elevated/60"]),title:"Tree view",onClick:P[1]||(P[1]=x=>e(F)(!0))},[o(Y,{name:"i-lucide-folder-tree",class:"size-3.5"})],2)]),t.isLive?(s(),a("span",aa,[$(l(t.testCases.length)+" completed ",1),o(le,{topic:"run.live"})])):(s(),a("span",oa,[$(l(m.value.length)+l(m.value.length!==t.testCases.length?` / ${t.testCases.length}`:"")+" cases ",1),o(le,{topic:"run.test-cases"})]))]),default:i(()=>[o(Z,{modelValue:u.value,"onUpdate:modelValue":P[2]||(P[2]=x=>u.value=x),placeholder:"Search test cases...",icon:"i-lucide-search",size:"sm",class:"min-w-48 max-sm:flex-1"},null,8,["modelValue"]),n("div",la,[(s(),a(G,null,oe(N,x=>n("button",{key:x.value,class:q(["inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors whitespace-nowrap",w.value.includes(x.value)?x.color==="green"?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400":x.color==="red"?"bg-rose-100 text-rose-700 dark:bg-rose-900/30 dark:text-rose-400":x.color==="orange"?"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400":"bg-zinc-200 text-zinc-700 dark:bg-zinc-700 dark:text-zinc-300":"bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-zinc-700"]),onClick:ze=>B(x.value)},[n("span",{class:q(["size-2 rounded-full shrink-0",x.color==="green"?"bg-emerald-500":x.color==="red"?"bg-rose-500":x.color==="orange"?"bg-orange-500":"bg-zinc-400"])},null,2),$(" "+l(x.label),1)],10,ia)),64))]),o(b,{modelValue:r.value,"onUpdate:modelValue":P[3]||(P[3]=x=>r.value=x),items:I.value,size:"sm",class:"w-36"},null,8,["modelValue","items"]),t.isLive?k("",!0):(s(),_(V,{key:0,modelValue:T.value,"onUpdate:modelValue":P[4]||(P[4]=x=>T.value=x),label:"New regressions",size:"sm"},null,8,["modelValue"])),t.isLive?k("",!0):(s(),_(V,{key:1,modelValue:E.value,"onUpdate:modelValue":P[5]||(P[5]=x=>E.value=x),label:"New flaky",size:"sm"},null,8,["modelValue"])),e(C)?k("",!0):(s(),a("div",ra,[o(b,{modelValue:y.value,"onUpdate:modelValue":P[6]||(P[6]=x=>y.value=x),items:M.value,size:"sm",class:"w-32","aria-label":"Sort cases by"},null,8,["modelValue","items"]),o(ne,{size:"sm",variant:"outline",color:"neutral",disabled:A.value===null,icon:d.value==="asc"?"i-lucide-arrow-up-narrow-wide":"i-lucide-arrow-down-wide-narrow",title:d.value==="asc"?"Sorted ascending":"Sorted descending","aria-label":d.value==="asc"?"Sorted ascending":"Sorted descending",onClick:P[7]||(P[7]=x=>d.value=d.value==="asc"?"desc":"asc")},null,8,["disabled","icon","title","aria-label"])]))]),_:1}),e(C)&&t.testCases.length>0?(s(),_(ye,{key:0,"test-cases":m.value,suites:t.suites,"has-filter":ae.value,"highlighted-case-id":O.value,"project-key":t.projectKey,"project-name":t.projectName,class:"flex-1 min-h-0"},null,8,["test-cases","suites","has-filter","highlighted-case-id","project-key","project-name"])):e(C)?k("",!0):(s(),a(G,{key:1},[m.value.length>0?(s(),a("div",ua,[n("div",{class:"flex flex-col h-full md:min-w-(--grid-min-width)",role:"table","aria-label":"Test cases","aria-rowcount":m.value.length+1,style:he({"--grid-min-width":te.value})},[n("div",{class:"hidden md:grid shrink-0 bg-elevated/50 border-b border-default",role:"row",style:he({gridTemplateColumns:J.value})},[(s(!0),a(G,null,oe(v.value,x=>(s(),a(G,{key:x.key},[x.sortable?(s(),a("button",{key:0,type:"button",role:"columnheader","aria-sort":A.value===x.key?d.value==="asc"?"ascending":"descending":"none","aria-label":x.icon?x.label:void 0,title:x.icon?x.label:void 0,class:q(["flex items-center gap-1 min-w-0 px-3 py-2 text-sm font-semibold select-none cursor-pointer hover:text-highlighted transition-colors",x.align==="right"?"justify-end":""]),onClick:ze=>S(x.key)},[x.icon?(s(),_(Y,{key:0,name:x.icon,class:"shrink-0 size-4"},null,8,["name"])):(s(),a("span",ma,l(x.label),1)),o(Y,{name:p(x.key),class:q(["shrink-0 size-3.5",A.value===x.key?"":"opacity-40"])},null,8,["name","class"])],10,da)):(s(),a("div",{key:1,role:"columnheader",class:q(["px-3 py-2 text-sm font-semibold",x.align==="right"?"text-right":""])},l(x.label),3))],64))),128))],4),o(Q,null,{fallback:i(()=>[n("div",Ia,[o(Y,{name:"i-lucide-loader-circle",class:"size-4 mr-2 animate-spin"}),P[8]||(P[8]=$(" Loading test cases… ",-1))])]),default:i(()=>[o(be,{ref_key:"scrollerRef",ref:ee,items:m.value,"min-item-size":44,"key-field":"id",role:"rowgroup",class:"flex-1 min-h-0",onScrollPassive:z},{default:i(({item:x,index:ze,active:qe})=>[o(Ce,{item:x,active:qe,"size-dependencies":[x.title,x.location,x.isNewRegression,x.isNewFlaky,x.testAnnotations,x.tags],"data-index":ze},{default:i(()=>[n("div",{class:q(["md:hidden border-b border-default px-3 py-2.5 space-y-1.5 text-sm transition-colors",O.value===x.id?"animate-pulse bg-yellow-100 dark:bg-yellow-900/30":""]),role:"row"},[n("div",fa,[o(Y,{name:("getStatusIcon"in g?g.getStatusIcon:e(tt))(x.status),class:q(["size-4 shrink-0 mt-0.5",[("getStatusTextClass"in g?g.getStatusTextClass:e(et))(x.status),("isStatusInFlight"in g?g.isStatusInFlight:e(_t))(x.status)?"animate-spin":""]]),role:"img","aria-label":`Status: ${("formatStatusLabel"in g?g.formatStatusLabel:e(Fe))(x.status)}`,title:("formatStatusLabel"in g?g.formatStatusLabel:e(Fe))(x.status)},null,8,["name","class","aria-label","title"]),n("a",{href:`/test-run-cases/${x.id}`,class:"text-highlighted hover:text-primary hover:underline font-medium flex-1 min-w-0",onClick:Ne(Oe=>("navigateTo"in g?g.navigateTo:e(He))(`/test-run-cases/${x.id}`),["prevent"])},l(x.title),9,ga),o(we,{browser:x.browser,size:"sm",class:"mt-0.5"},null,8,["browser"])]),x.location?(s(),_(ie,{key:0,location:x.location,"project-key":t.projectKey,"project-name":t.projectName,class:"block pl-6 text-xs text-gray-400 dark:text-gray-500"},null,8,["location","project-key","project-name"])):k("",!0),o(_e,{"is-new-regression":!!x.isNewRegression,"is-new-flaky":!!x.isNewFlaky,annotations:x.testAnnotations,tags:x.tags,meta:x.testMeta,"max-tags":3,class:"pl-6"},null,8,["is-new-regression","is-new-flaky","annotations","tags","meta"]),n("div",pa,[x.status==="running"?(s(),a("span",xa,"In progress...")):x.duration?(s(),_($e,{key:1,ms:x.duration},null,8,["ms"])):k("",!0),x.workerIndex!=null?(s(),_(me,{key:2,color:"neutral",variant:"soft",size:"xs",class:"font-mono",title:`Worker ${x.workerIndex}`},{default:i(()=>[$(" w"+l(x.workerIndex),1)]),_:2},1032,["title"])):k("",!0),(x.retries??0)>0?(s(),_(me,{key:3,color:"warning",variant:"soft",size:"xs"},{default:i(()=>[$(l(x.retries)+"x ",1)]),_:2},1024)):k("",!0),x.wastedTimeMs?(s(),a("span",ya,[o(Y,{name:"i-lucide-hourglass",class:"size-3 shrink-0"}),o($e,{ms:x.wastedTimeMs,"unit-class":"opacity-60","no-title":""},null,8,["ms"])])):k("",!0)])],2),n("div",{class:q(["hidden md:grid items-center border-b border-default text-sm transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-900/50",O.value===x.id?"animate-pulse bg-yellow-100 dark:bg-yellow-900/30":""]),role:"row",style:he({gridTemplateColumns:J.value})},[n("div",ha,[o(we,{browser:x.browser},null,8,["browser"])]),n("div",va,[n("div",ka,[n("a",{href:`/test-run-cases/${x.id}`,class:"text-highlighted hover:text-primary hover:underline font-medium truncate",title:x.title,onClick:Ne(Oe=>("navigateTo"in g?g.navigateTo:e(He))(`/test-run-cases/${x.id}`),["prevent"])},l(x.title),9,ba),o(_e,{"is-new-regression":!!x.isNewRegression,"is-new-flaky":!!x.isNewFlaky,annotations:x.testAnnotations,tags:x.tags,meta:x.testMeta,"max-tags":3,class:"shrink-0"},null,8,["is-new-regression","is-new-flaky","annotations","tags","meta"])]),x.location?(s(),_(ie,{key:0,location:x.location,"project-key":t.projectKey,"project-name":t.projectName,class:"text-xs text-zinc-400 dark:text-zinc-500"},null,8,["location","project-key","project-name"])):k("",!0)]),n("div",wa,[o(me,{color:("getStatusColor"in g?g.getStatusColor:e(st))(x.status==="timedOut"||x.status==="timedout"?"failed":x.status),variant:"subtle",class:"capitalize"},{default:i(()=>[$(l(("formatStatusLabel"in g?g.formatStatusLabel:e(Fe))(x.status)),1)]),_:2},1032,["color"])]),n("div",_a,[x.status==="running"?(s(),a("span",$a,"In progress...")):(s(),_($e,{key:1,ms:x.duration,fallback:""},null,8,["ms"]))]),n("div",Ca,[x.workerIndex!=null?(s(),_(me,{key:0,color:"neutral",variant:"soft",class:"font-mono text-xs"},{default:i(()=>[$(l(x.workerIndex),1)]),_:2},1024)):k("",!0)]),n("div",Ta,l(x.retries&&x.retries>0?x.retries:""),1),U.value?(s(),a("div",Ra,[x.wastedTimeMs?(s(),_($e,{key:0,ms:x.wastedTimeMs,class:"text-amber-600 dark:text-amber-400","unit-class":"opacity-60"},null,8,["ms"])):(s(),a("span",za,"—"))])):k("",!0)],6)]),_:2},1032,["item","active","size-dependencies","data-index"])]),_:1},8,["items"])]),_:1})],12,ca)])):t.testCases.length===0?(s(),a("div",Sa,[o(Y,{name:"i-lucide-beaker",class:"size-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-600"}),P[9]||(P[9]=n("p",null,"No test cases recorded for this run.",-1))])):(s(),a("div",Fa,[o(Y,{name:"i-lucide-search-x",class:"size-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-600"}),P[10]||(P[10]=n("p",null,"No test cases match your filters.",-1))]))],64))])}}}),Pa=Object.assign(Da,{__name:"TestCasesList"}),ja={key:2,class:"p-4"},Ba={key:3,class:"p-4"},Na={key:4,class:"p-4"},Ma={key:5,class:"space-y-6 p-4"},Aa={class:"flex items-center gap-1.5 text-sm text-muted"},Ua={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},La={class:"space-y-1"},Ea={class:"text-xl font-semibold"},Oa={key:0},Ka={key:1},Wa={class:"space-y-1"},Ha={key:1,class:"text-xl font-semibold text-muted"},Va={class:"space-y-1"},Ga={class:"space-y-0.5 text-sm"},Xa={key:0,class:"text-red-500"},qa={key:1,class:"text-green-600"},Ya={key:2,class:"text-purple-500"},Ja={key:3,class:"text-muted"},Za={class:"space-y-1"},Qa={class:"font-medium text-primary hover:underline truncate"},eo={class:"text-gray-400 text-xs ml-auto shrink-0"},to={class:"space-y-1"},so={class:"font-medium text-primary hover:underline truncate"},no={class:"space-y-1"},ao={class:"font-medium text-primary hover:underline truncate"},oo={class:"space-y-1"},lo={class:"font-medium text-primary hover:underline truncate"},io={class:"text-gray-400 text-xs ml-auto shrink-0"},ro={class:"space-y-1"},uo={class:"font-medium text-primary hover:underline truncate"},co={class:"grid grid-cols-2 gap-4"},mo={key:0},fo={class:"space-y-1"},go={class:"text-red-500 font-mono shrink-0"},po={class:"truncate text-primary hover:underline"},xo={key:1},yo={class:"space-y-1"},ho={class:"text-green-500 font-mono shrink-0"},vo={class:"truncate text-primary hover:underline"},ko={class:"space-y-1"},bo={class:"flex-1 truncate text-primary hover:underline"},wo={class:"text-gray-500 font-mono text-xs shrink-0"},_o={class:"w-24 h-2 rounded-full bg-gray-100 shrink-0"},$o={key:0,class:"flex items-center gap-1.5 text-xs text-amber-600 mb-3"},Co={class:"flex items-end gap-2 h-20"},To={class:"text-xs text-gray-500"},Ro={class:"text-xs text-gray-400"},zo={class:"space-y-1"},Io={class:"truncate"},So=pe({__name:"RunInsights",props:{testRunId:{},runStatus:{},refreshKey:{}},setup(t){const h=t,C=D(()=>{if(!u.value)return"";const B=u.value.passRateDelta;return B>0?"text-green-600":B<0?"text-red-600":"text-muted"}),F=D(()=>{if(!u.value)return"";const B=u.value.passRateDelta;return B>0?"i-lucide-trending-up":B<0?"i-lucide-trending-down":"i-lucide-minus"}),R=D(()=>u.value?.avgDurationDelta==null?"":u.value.avgDurationDelta>0?"text-red-600":"text-green-600"),u=K(null),w=K(!1),r=K(null),T=D(()=>h.runStatus==="running"||h.runStatus==="initialising"||h.runStatus==="finalizing");async function E(){if(!h.testRunId||T.value){u.value=null;return}w.value=!0,r.value=null;try{u.value=await $fetch(`/api/test-runs/${h.testRunId}/insights`)}catch(B){console.error("[RunInsights] failed to load",B),r.value=B?.data?.message||B?.message||"Failed to load insights"}finally{w.value=!1}}ge(()=>h.testRunId,E,{immediate:!0}),ge(()=>h.refreshKey,(B,I)=>{B!==I&&B!==void 0&&E()});function N(B){return B==null?"—":B<1e3?`${B}ms`:`${(B/1e3).toFixed(1)}s`}return(B,I)=>{const j=Re,H=Ss,A=It,d=St,S=ve,p=Pe,c=Fs,m=ke,U=Ue;return e(r)?(s(),_(H,{key:0,text:e(r),padded:""},{action:i(()=>[o(j,{size:"sm",onClick:E},{default:i(()=>[...I[0]||(I[0]=[$("Retry",-1)])]),_:1})]),_:1},8,["text"])):e(w)?(s(),_(A,{key:1,padded:""})):e(T)?(s(),a("div",ja,[o(d,{icon:"i-lucide-loader-circle",text:"Run in progress"},{default:i(()=>[...I[1]||(I[1]=[n("p",{class:"text-sm text-muted max-w-sm text-center"}," Insights are computed once the run finishes. Switch back here when the run completes. ",-1)])]),_:1})])):e(u)?e(u).hasBaseline?(s(),a("div",Ma,[n("div",Aa,[o(S,{name:"i-lucide-sparkles",class:"size-4 shrink-0 text-primary/70"}),I[3]||(I[3]=n("span",null,"Automatic highlights from this run",-1)),o(p,{topic:"run.insights"})]),o(c,{icon:"i-lucide-bar-chart-3","icon-class":"text-blue-500",title:"Run summary"},{default:i(()=>[n("div",Ua,[n("div",La,[I[4]||(I[4]=n("p",{class:"text-xs text-muted"},"Pass rate",-1)),n("p",Ea,l(e(u).passRate)+"%",1),n("div",{class:q(["flex items-center gap-1 text-xs",e(C)])},[o(S,{name:e(F),class:"size-3.5"},null,8,["name"]),e(u).passRateDelta!==0?(s(),a("span",Oa,l(e(u).passRateDelta>0?"+":"")+l(e(u).passRateDelta)+"pp vs baseline",1)):(s(),a("span",Ka,"Same as baseline"))],2)]),n("div",Wa,[I[5]||(I[5]=n("p",{class:"text-xs text-muted"},"Avg duration",-1)),e(u).avgDurationDelta!==null?(s(),a("p",{key:0,class:q(["text-xl font-semibold",e(R)])},l(e(u).avgDurationDelta>0?"+":"")+l(e(u).avgDurationDelta)+"% ",3)):(s(),a("p",Ha,"—")),I[6]||(I[6]=n("p",{class:"text-xs text-muted"},"vs baseline (passing tests)",-1))]),n("div",Va,[I[7]||(I[7]=n("p",{class:"text-xs text-muted"},"Changes",-1)),n("div",Ga,[e(u).newRegressions.length>0?(s(),a("p",Xa," +"+l(e(u).newRegressions.length)+" regressed ",1)):k("",!0),e(u).recovered.length>0?(s(),a("p",qa,"+"+l(e(u).recovered.length)+" fixed",1)):k("",!0),e(u).newFlaky.length>0?(s(),a("p",Ya,"+"+l(e(u).newFlaky.length)+" flaky",1)):k("",!0),!e(u).newRegressions.length&&!e(u).recovered.length&&!e(u).newFlaky.length?(s(),a("p",Ja," No status changes ")):k("",!0)])])])]),_:1}),e(u).newRegressions.length>0?(s(),_(c,{key:0,icon:"i-lucide-alert-circle","icon-class":"text-red-500",title:"New regressions",count:e(u).newRegressions.length},{default:i(()=>[n("div",Za,[(s(!0),a(G,null,oe(e(u).newRegressions,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}`,class:"flex items-center gap-2 text-sm hover:bg-red-50 dark:hover:bg-red-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[o(m,{color:"error",variant:"solid",size:"xs"},{default:i(()=>[...I[8]||(I[8]=[$("NEW",-1)])]),_:1}),n("span",Qa,l(v.title),1),n("span",eo,l(N(v.duration)),1)]),_:2},1032,["to"]))),128))])]),_:1},8,["count"])):k("",!0),e(u).recurrences.length>0?(s(),_(c,{key:1,icon:"i-lucide-refresh-cw","icon-class":"text-amber-500",title:"Recurring failures",count:e(u).recurrences.length},{default:i(()=>[n("div",to,[(s(!0),a(G,null,oe(e(u).recurrences,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}`,class:"flex items-center gap-2 text-sm hover:bg-amber-50 dark:hover:bg-amber-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[o(m,{color:"warning",variant:"solid",size:"xs"},{default:i(()=>[...I[9]||(I[9]=[$("RECURRING",-1)])]),_:1}),n("span",so,l(v.title),1)]),_:2},1032,["to"]))),128))])]),_:1},8,["count"])):k("",!0),e(u).recovered.length>0?(s(),_(c,{key:2,icon:"i-lucide-check-circle","icon-class":"text-green-500",title:"Fixed tests",count:e(u).recovered.length},{default:i(()=>[n("div",no,[(s(!0),a(G,null,oe(e(u).recovered,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}`,class:"flex items-center gap-2 text-sm hover:bg-green-50 dark:hover:bg-green-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[o(m,{color:"success",variant:"solid",size:"xs"},{default:i(()=>[...I[10]||(I[10]=[$("FIXED",-1)])]),_:1}),n("span",ao,l(v.title),1)]),_:2},1032,["to"]))),128))])]),_:1},8,["count"])):k("",!0),e(u).newFlaky.length>0?(s(),_(c,{key:3,icon:"i-lucide-flask","icon-class":"text-purple-500",title:"New flaky tests",count:e(u).newFlaky.length},{default:i(()=>[n("div",oo,[(s(!0),a(G,null,oe(e(u).newFlaky,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}?tab=history`,class:"flex items-center gap-2 text-sm hover:bg-purple-50 dark:hover:bg-purple-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[o(m,{color:"info",variant:"solid",size:"xs"},{default:i(()=>[...I[11]||(I[11]=[$("FLAKY",-1)])]),_:1}),n("span",lo,l(v.title),1),n("span",io,l(N(v.duration)),1)]),_:2},1032,["to"]))),128))])]),_:1},8,["count"])):k("",!0),e(u).flakyOnRetry.length>0?(s(),_(c,{key:4,icon:"i-lucide-repeat","icon-class":"text-orange-500",title:"Passed on retry",count:e(u).flakyOnRetry.length,subtitle:"Tests that passed but needed one or more retries"},{default:i(()=>[n("div",ro,[(s(!0),a(G,null,oe(e(u).flakyOnRetry,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}?tab=history`,class:"flex items-center gap-2 text-sm hover:bg-orange-50 dark:hover:bg-orange-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[o(m,{color:"warning",variant:"subtle",size:"xs"},{default:i(()=>[$("×"+l(v.retries),1)]),_:2},1024),n("span",uo,l(v.title),1)]),_:2},1032,["to"]))),128))])]),_:1},8,["count"])):k("",!0),e(u).mostRegressed.length>0||e(u).mostImproved.length>0?(s(),_(c,{key:5,icon:"i-lucide-trending-up","icon-class":"text-blue-500",title:"Performance changes"},{default:i(()=>[n("div",co,[e(u).mostRegressed.length>0?(s(),a("div",mo,[I[12]||(I[12]=n("p",{class:"text-xs font-medium text-red-500 mb-2"},"Most regressed",-1)),n("div",fo,[(s(!0),a(G,null,oe(e(u).mostRegressed,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}?tab=performance`,class:"flex items-center gap-2 text-sm hover:bg-red-50 dark:hover:bg-red-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[n("span",go,"+"+l(v.pctChange)+"%",1),n("span",po,l(v.title),1)]),_:2},1032,["to"]))),128))])])):k("",!0),e(u).mostImproved.length>0?(s(),a("div",xo,[I[13]||(I[13]=n("p",{class:"text-xs font-medium text-green-500 mb-2"},"Most improved",-1)),n("div",yo,[(s(!0),a(G,null,oe(e(u).mostImproved,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}?tab=performance`,class:"flex items-center gap-2 text-sm hover:bg-green-50 dark:hover:bg-green-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[n("span",ho,l(v.pctChange)+"%",1),n("span",vo,l(v.title),1)]),_:2},1032,["to"]))),128))])])):k("",!0)])]),_:1})):k("",!0),e(u).slowestTests.length>0?(s(),_(c,{key:6,icon:"i-lucide-clock","icon-class":"text-amber-500",title:"Slowest tests"},{default:i(()=>[n("div",ko,[(s(!0),a(G,null,oe(e(u).slowestTests,v=>(s(),_(U,{key:v.testRunsCaseId,to:`/test-run-cases/${v.testRunsCaseId}?tab=performance`,class:"flex items-center gap-2 text-sm hover:bg-amber-50 dark:hover:bg-amber-900/10 rounded px-1 -mx-1 transition-colors"},{default:i(()=>[n("div",bo,l(v.title),1),n("div",wo,l(N(v.duration)),1),n("div",_o,[n("div",{class:"h-full rounded-full bg-amber-400",style:he({width:Math.min(100,v.duration/(e(u).slowestTests[0]?.duration||1)*100)+"%"})},null,4)])]),_:2},1032,["to"]))),128))])]),_:1})):k("",!0),e(u).workerImbalance.length>1?(s(),_(c,{key:7,icon:"i-lucide-users","icon-class":"text-gray-500",title:"Worker distribution"},{default:i(()=>[e(u).workerImbalanceWarning?(s(),a("div",$o,[o(S,{name:"i-lucide-alert-triangle",class:"size-3.5 shrink-0"}),n("span",null,l(e(u).workerImbalanceWarning),1)])):k("",!0),n("div",Co,[(s(!0),a(G,null,oe(e(u).workerImbalance,v=>(s(),a("div",{key:v.workerIndex,class:"flex-1 flex flex-col items-center gap-1"},[n("span",To,l(v.count),1),n("div",{class:"w-full bg-blue-400 rounded-t",style:he({height:Math.max(4,v.count/Math.max(...e(u).workerImbalance.map(M=>M.count))*60)+"px"})},null,4),n("span",Ro,"W"+l(v.workerIndex),1)]))),128))])]),_:1})):k("",!0),e(u).clusterNew.length>0?(s(),_(c,{key:8,icon:"i-lucide-layers","icon-class":"text-purple-500",title:"New failure clusters",count:e(u).clusterNew.length},{default:i(()=>[n("div",zo,[(s(!0),a(G,null,oe(e(u).clusterNew,v=>(s(),_(U,{key:v.clusterId,to:`/failure-clusters/${v.clusterId}`,class:"flex items-center gap-2 text-sm text-primary hover:underline"},{default:i(()=>[n("span",Io,l(v.signature),1)]),_:2},1032,["to"]))),128))])]),_:1},8,["count"])):k("",!0)])):(s(),a("div",Na,[o(d,{icon:"i-lucide-git-compare-arrows",text:"No baseline run found"},{default:i(()=>[...I[2]||(I[2]=[n("p",{class:"text-sm text-muted max-w-sm text-center"}," Insights compare this run against the most recent passing run in the same project. No previous passing run exists yet — once you have at least two completed runs, comparisons will appear here automatically. ",-1)])]),_:1})])):(s(),a("div",Ba,[o(d,{text:"No insights yet"})]))}}}),Fo=Object.assign(So,{__name:"RunInsights"}),Do=pe({__name:"ClusterDiagnosis",props:{clusterId:{}},setup(t){return(h,C)=>{const F=Ds;return s(),_(F,{"cluster-id":t.clusterId},null,8,["cluster-id"])}}}),Po=Object.assign(Do,{__name:"ClusterDiagnosis"}),jo={class:"pt-4 space-y-3"},Bo={key:0,class:"flex items-center justify-center py-8 text-gray-500 gap-2"},No={class:"flex items-center justify-between gap-3"},Mo={class:"text-sm text-gray-500 dark:text-gray-400 inline-flex items-center gap-1"},Ao={class:"min-w-0 space-y-0.5"},Uo=["title"],Lo={key:0,class:"text-xs text-gray-500 truncate block"},Eo={class:"font-mono"},Oo={key:1,class:"text-gray-400 text-xs"},Ko={key:1,class:"text-gray-400 text-xs"},Wo={class:"text-sm tabular-nums"},Ho={key:0,class:"flex flex-wrap gap-1"},Vo={key:1,class:"text-gray-400 text-xs"},Go={key:0,class:"flex items-center gap-1 text-xs text-gray-500"},Xo={key:2,class:"text-gray-400 text-xs"},qo={key:0,class:"text-xs font-medium text-warning-500"},Yo={key:1,class:"text-sm text-gray-500 whitespace-nowrap"},Jo={key:0,class:"ml-1 text-xs text-gray-400"},Zo={class:"flex justify-end gap-2"},Qo={key:2,class:"flex flex-col items-center justify-center py-8 text-gray-500 gap-2"},el=pe({__name:"FailureGroups",props:{refreshKey:{}},emits:["selectCluster"],async setup(t,{emit:h}){let C,F;const R=h,u=t,r=Le().params.id,{data:T,pending:E,refresh:N}=([C,F]=Me(()=>Ae(`/api/test-runs/${r}/failure-groups`,{lazy:!0,server:!1},"$qddF1IOQ64")),C=await C,F(),C);ge(()=>u.refreshKey,(c,m)=>{c!==m&&c!==void 0&&N()});const B=K(null),{copy:I,copied:j}=at(),H=D(()=>T.value?T.value.flatMap(c=>c.cases.filter(m=>!m.passedOnRetry).map(m=>({filePath:m.filePath,title:m.title,line:null,projectName:null}))):[]),A=D(()=>Ct(H.value));function d(){const c=A.value;c&&I(c,{toast:"Retry command copied"})}const S=[{accessorKey:"signature",header:de("Signature")},{accessorKey:"errorType",header:de("Type")},{accessorKey:"status",header:de("Status")},{accessorKey:"caseCount",header:de("Tests")},{accessorKey:"signals",header:"Signals"},{accessorKey:"diagnosis",header:"AI"},{accessorKey:"firstSeenRunId",header:de("Known since")},{id:"actions",header:"Actions"}],p=D(()=>T.value?.reduce((c,m)=>c+m.caseCount,0)??0);return(c,m)=>{const U=ve,v=Pe,M=Re,y=ke,J=Ue,te=ot,ae=Ft,ee=nt,re=Po,O=Dt;return s(),a(G,null,[n("div",jo,[e(E)?(s(),a("div",Bo,[o(U,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),m[2]||(m[2]=n("span",null,"Grouping failures...",-1))])):e(T)&&e(T).length?(s(),a(G,{key:1},[n("div",No,[n("p",Mo,[$(l(e(p))+" failing "+l(e(p)===1?"test":"tests")+" across "+l(e(T).length)+" "+l(e(T).length===1?"group":"groups")+" ",1),o(v,{topic:"cluster.concept"})]),e(H).length>0?(s(),_(M,{key:0,size:"xs",variant:"outline",color:"neutral",icon:e(j)?"i-lucide-check":"i-lucide-play",title:e(j)?"Copied!":("copyPreview"in c?c.copyPreview:e(wt))(e(A)),onClick:m[0]||(m[0]=f=>d())},{default:i(()=>[...m[3]||(m[3]=[$(" Copy retry command ",-1)])]),_:1},8,["icon","title"])):k("",!0)]),o(ee,{ui:{body:"p-0 sm:p-0"}},{default:i(()=>[o(ae,{"min-width":"46rem",bleed:!1},{default:i(()=>[o(te,{data:e(T),columns:S},{"actions-header":i(()=>[...m[4]||(m[4]=[n("div",{class:"text-right"},"Actions",-1)])]),"signature-cell":i(({row:f})=>[n("div",Ao,[n("span",{class:q(["text-sm block truncate",f.original.title?"":"font-mono"]),title:f.original.signature},l(f.original.title||f.original.signature),11,Uo),f.original.selector?(s(),a("span",Lo,[m[5]||(m[5]=$(" Locator: ",-1)),n("code",Eo,l(f.original.selector),1)])):k("",!0)])]),"errorType-cell":i(({row:f})=>[f.original.errorType?(s(),_(y,{key:0,color:("clusterErrorTypeColor"in c?c.clusterErrorTypeColor:e(Cs))(f.original.errorType),variant:"subtle",size:"sm"},{default:i(()=>[$(l(f.original.errorType),1)]),_:2},1032,["color"])):(s(),a("span",Oo,"—"))]),"status-cell":i(({row:f})=>[f.original.status?(s(),_(y,{key:0,color:("clusterStatusColor"in c?c.clusterStatusColor:e($s))(f.original.status),variant:"subtle",size:"sm"},{default:i(()=>[$(l(f.original.status),1)]),_:2},1032,["color"])):(s(),a("span",Ko,"—"))]),"caseCount-cell":i(({row:f})=>[n("span",Wo,l(f.original.caseCount),1)]),"signals-cell":i(({row:f})=>[f.original.isNew||f.original.flaky||f.original.workerCorrelated||f.original.locatorHealing?(s(),a("div",Ho,[f.original.isNew?(s(),_(y,{key:0,color:"warning",variant:"subtle",size:"sm"},{default:i(()=>[...m[6]||(m[6]=[$(" New ",-1)])]),_:1})):k("",!0),f.original.flaky?(s(),_(y,{key:1,color:"warning",variant:"outline",size:"sm"},{default:i(()=>[...m[7]||(m[7]=[$(" Flaky ",-1)])]),_:1})):k("",!0),f.original.workerCorrelated?(s(),_(y,{key:2,color:"info",variant:"outline",size:"sm",title:"All failures ran on the same worker"},{default:i(()=>[...m[8]||(m[8]=[$(" Same worker ",-1)])]),_:1})):k("",!0),f.original.locatorHealing?.healed?(s(),_(y,{key:3,color:"success",variant:"subtle",size:"sm",icon:"i-lucide-circle-check",title:"The recommended locator already passes at this call site in a later run"},{default:i(()=>[...m[9]||(m[9]=[$(" Healed ",-1)])]),_:1})):f.original.locatorHealing?(s(),_(y,{key:4,color:"success",variant:"outline",size:"sm",icon:"i-lucide-bandage",title:`Locator fix available: ${f.original.locatorHealing.recommended} — open the cluster to apply it`},{default:i(()=>[...m[10]||(m[10]=[$(" Locator fix ",-1)])]),_:1},8,["title"])):k("",!0)])):(s(),a("span",Vo,"—"))]),"diagnosis-cell":i(({row:f})=>[f.original.diagnosis?.status==="running"?(s(),a("div",Go,[o(U,{name:"i-lucide-loader-2",class:"size-3 animate-spin"}),m[11]||(m[11]=$(" Running ",-1))])):f.original.diagnosis?.status==="completed"&&f.original.diagnosis.category?(s(),_(y,{key:1,color:"neutral",variant:"subtle",size:"sm",class:"gap-1"},{default:i(()=>[o(U,{name:"i-lucide-sparkles",class:"size-3"}),$(" "+l(f.original.diagnosis.category),1)]),_:2},1024)):(s(),a("span",Xo,"—"))]),"firstSeenRunId-cell":i(({row:f})=>[f.original.isNew?(s(),a("span",qo,"New in this run")):(s(),a("div",Yo,[o(J,{to:`/test-runs/${f.original.firstSeenRunId}`,class:"text-primary hover:underline"},{default:i(()=>[$(" run #"+l(f.original.firstSeenRunId),1)]),_:2},1032,["to"]),f.original.firstSeenAt?(s(),a("span",Jo," ("+l(("formatRelativeTime"in c?c.formatRelativeTime:e($t))(f.original.firstSeenAt))+") ",1)):k("",!0)]))]),"actions-cell":i(({row:f})=>[n("div",Zo,[o(M,{size:"sm",color:"primary",variant:"soft",onClick:z=>R("selectCluster",f.original.clusterId)},{default:i(()=>[...m[12]||(m[12]=[$(" Filter ",-1)])]),_:1},8,["onClick"]),o(M,{size:"sm",color:"neutral",variant:"outline",icon:"i-lucide-sparkles",onClick:z=>B.value=f.original.clusterId},{default:i(()=>[...m[13]||(m[13]=[$(" Diagnose ",-1)])]),_:1},8,["onClick"]),o(M,{to:`/failure-clusters/${f.original.clusterId}`,size:"sm",variant:"outline","trailing-icon":"i-lucide-arrow-right"},{default:i(()=>[...m[14]||(m[14]=[$(" View ",-1)])]),_:1},8,["to"])])]),_:1},8,["data"])]),_:1})]),_:1})],64)):(s(),a("div",Qo,[o(U,{name:"i-lucide-party-popper",class:"size-6"}),m[15]||(m[15]=n("span",null,"No failure groups — failed tests without error details are not grouped",-1))]))]),o(O,{open:e(B)!==null,title:"AI Diagnosis",ui:{content:"max-w-2xl"},"onUpdate:open":m[1]||(m[1]=f=>{f||(B.value=null)})},{body:i(()=>[e(B)!==null?(s(),_(re,{key:0,"cluster-id":e(B)},null,8,["cluster-id"])):k("",!0)]),_:1},8,["open"])],64)}}}),tl=Object.assign(el,{__name:"FailureGroups"}),sl={class:"pt-4"},nl={key:2,class:"space-y-4"},al={class:"flex flex-wrap items-center gap-2 text-sm"},ol={class:"text-gray-500 inline-flex items-center gap-1"},ll={key:0,class:"text-gray-400"},il={key:0,class:"flex flex-wrap items-center gap-2"},rl={class:"text-sm text-gray-500"},ul={key:1,class:"flex items-center gap-2"},cl={class:"text-sm text-gray-500"},dl={class:"space-y-3"},ml={class:"flex items-center gap-2 text-sm font-medium"},fl={class:"flex flex-wrap items-center gap-2 text-sm font-mono"},gl={key:0,class:"text-xs text-gray-400 font-sans"},pl={class:"flex flex-wrap items-center gap-2"},xl={class:"flex items-center gap-1.5 flex-1 min-w-0"},yl={class:"flex-1 text-xs bg-gray-100 dark:bg-gray-800 px-3 py-1.5 rounded font-mono truncate select-all"},hl={key:3,class:"text-sm text-gray-500 flex items-center gap-2"},vl={class:"px-4 py-3 text-sm font-medium flex items-center gap-2 border-b border-default"},kl={class:"overflow-x-auto"},bl={class:"w-full min-w-[36rem] text-sm"},wl={class:"px-4 py-2 text-gray-500"},_l={class:"px-4 py-2 font-mono text-xs"},$l={key:0,class:"text-green-700 dark:text-green-400"},Cl={key:1,class:"text-gray-400"},Tl={class:"px-4 py-2 font-mono text-xs"},Rl={key:0,class:"text-red-700 dark:text-red-400"},zl={key:1,class:"text-gray-400"},Il=pe({__name:"RegressionContext",props:{refreshKey:{}},async setup(t){let h,C;const R=Le().params.id,u=t,{data:w,pending:r,refresh:T}=([h,C]=Me(()=>Ae(`/api/test-runs/${R}/regression-context`,{lazy:!0,server:!1},"$AcrCJopY1M")),h=await h,C(),h);ge(()=>u.refreshKey,(I,j)=>{I!==j&&I!==void 0&&T()});const{copy:E,copied:N}=at();function B(){E(w.value?.commitRange?.gitCommand)}return(I,j)=>{const H=It,A=St,d=ve,S=Pe,p=Ue,c=ke,m=Re,U=nt;return s(),a("div",sl,[e(r)?(s(),_(H,{key:0,text:"Looking for last passing run…"})):e(w)?.hasGreen?(s(),a("div",nl,[n("div",al,[o(d,{name:"i-lucide-circle-check",class:"size-4 text-green-500 shrink-0"}),n("span",ol,[j[0]||(j[0]=$("Last passing run: ",-1)),o(S,{topic:"run.regression"})]),o(p,{to:`/test-runs/${e(w).lastGreenRunId}`,class:"font-medium text-primary hover:underline"},{default:i(()=>[$(" Run #"+l(e(w).lastGreenRunId),1)]),_:1},8,["to"]),e(w).lastGreenRunAt?(s(),a("span",ll," ("+l(("formatRelativeTime"in I?I.formatRelativeTime:e($t))(e(w).lastGreenRunAt))+") ",1)):k("",!0)]),(e(w).newFailures??0)>0?(s(),a("div",il,[o(c,{color:"error",variant:"soft",size:"lg"},{default:i(()=>[$(l(e(w).newFailures)+" new "+l(e(w).newFailures===1?"failure":"failures"),1)]),_:1}),n("span",rl,l(e(w).newFailures===1?"test":"tests")+" that "+l((e(w).newFailures===1,"passed"))+" in run #"+l(e(w).lastGreenRunId)+" but "+l(e(w).newFailures===1?"fails":"fail")+" here ",1)])):(s(),a("div",ul,[o(c,{color:"warning",variant:"soft",size:"lg"},{default:i(()=>[...j[1]||(j[1]=[$(" No new regressions ",-1)])]),_:1}),n("span",cl,"All failing tests were also failing before run #"+l(e(w).lastGreenRunId),1)])),e(w).commitRange?(s(),_(U,{key:2,ui:{body:"p-4 sm:p-4"}},{default:i(()=>[n("div",dl,[n("div",ml,[o(d,{name:"i-lucide-git-commit-horizontal",class:"size-4"}),j[2]||(j[2]=$(" Commits introduced since last passing run ",-1))]),n("div",fl,[o(c,{color:"success",variant:"soft",size:"sm"},{default:i(()=>[$(l(e(w).commitRange.fromShort),1)]),_:1}),o(d,{name:"i-lucide-arrow-right",class:"size-3 text-gray-400"}),o(c,{color:"error",variant:"soft",size:"sm"},{default:i(()=>[$(l(e(w).commitRange.toShort),1)]),_:1}),e(w).currentBranch||e(w).lastGreenBranch?(s(),a("span",gl," on "+l(e(w).currentBranch||e(w).lastGreenBranch),1)):k("",!0)]),n("div",pl,[e(w).commitRange.compareUrl?(s(),_(m,{key:0,to:e(w).commitRange.compareUrl,target:"_blank",external:"",icon:"i-lucide-external-link",size:"sm",variant:"soft",color:"primary"},{default:i(()=>[...j[3]||(j[3]=[$(" View commits ",-1)])]),_:1},8,["to"])):k("",!0),n("div",xl,[n("code",yl,l(e(w).commitRange.gitCommand),1),o(m,{icon:e(N)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",title:e(N)?"Copied!":"Copy git command",onClick:B},null,8,["icon","title"])])])])]),_:1})):!e(w).currentCommit||!e(w).lastGreenCommit?(s(),a("div",hl,[o(d,{name:"i-lucide-git-branch",class:"size-4 shrink-0"}),j[4]||(j[4]=$(" No commit info available — enable ",-1)),j[5]||(j[5]=n("code",{class:"font-mono text-xs"},"collectScmInfo: true",-1)),j[6]||(j[6]=$(" in the reporter to see commit ranges ",-1))])):k("",!0),e(w).metadataDiff&&e(w).metadataDiff.length>0?(s(),_(U,{key:4,ui:{body:"p-0 sm:p-0"}},{default:i(()=>[n("div",vl,[o(d,{name:"i-lucide-sliders-horizontal",class:"size-4"}),j[7]||(j[7]=$(" What changed between runs ",-1))]),n("div",kl,[n("table",bl,[j[8]||(j[8]=n("thead",null,[n("tr",{class:"text-xs text-gray-500 uppercase tracking-wider border-b border-default"},[n("th",{class:"text-left px-4 py-2 font-medium w-32"},"Field"),n("th",{class:"text-left px-4 py-2 font-medium"},"Last passing"),n("th",{class:"text-left px-4 py-2 font-medium"},"This run")])],-1)),n("tbody",null,[(s(!0),a(G,null,oe(e(w).metadataDiff,v=>(s(),a("tr",{key:v.key,class:"border-b last:border-b-0 border-default"},[n("td",wl,l(v.label),1),n("td",_l,[v.before?(s(),a("span",$l,l(v.before),1)):(s(),a("span",Cl,"—"))]),n("td",Tl,[v.after?(s(),a("span",Rl,l(v.after),1)):(s(),a("span",zl,"—"))])]))),128))])])])]),_:1})):k("",!0)])):(s(),_(A,{key:1,icon:"i-lucide-history",text:"No previous passing run found for this project"}))])}}}),Sl=Object.assign(Il,{__name:"RegressionContext"}),Fl={class:"flex items-center justify-between mb-2"},Dl={class:"text-xs text-gray-500 inline-flex items-center gap-1"},Pl={class:"flex items-center gap-1"},jl={class:"p-2 flex flex-col gap-2 min-w-56"},Bl=pe({__name:"TimelineHeader",props:{workerCount:{},shardTotal:{},testCount:{},hookCount:{},waitCount:{},spanTypes:{},live:{type:Boolean}},emits:["reset","toggleSpan"],setup(t){return(h,C)=>{const F=Pe,R=Re,u=Tt,w=pt;return s(),a("div",Fl,[n("span",Dl,[n("span",null,[$(l(t.workerCount)+" worker"+l(t.workerCount>1?"s":"")+" ",1),t.shardTotal&&t.shardTotal>1?(s(),a(G,{key:0},[$(" · "+l(t.shardTotal)+" shard"+l(t.shardTotal>1?"s":""),1)],64)):k("",!0),$(" · "+l(t.testCount)+" tests ",1),t.hookCount>0?(s(),a(G,{key:1},[$(" · "+l(t.hookCount)+" hooks ",1)],64)):k("",!0),t.waitCount>0?(s(),a(G,{key:2},[$(" · "+l(t.waitCount)+" waits ",1)],64)):k("",!0)]),o(F,{topic:"run.timeline"})]),n("div",Pl,[t.spanTypes.length>1?(s(),_(w,{key:0,content:{align:"end"}},{content:i(()=>[n("div",jl,[(s(!0),a(G,null,oe(t.spanTypes,r=>(s(),_(u,{key:r.key,"model-value":r.checked,label:r.label,"onUpdate:modelValue":T=>h.$emit("toggleSpan",r.key,T===!0)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])]),default:i(()=>[o(R,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-list-filter","trailing-icon":"i-lucide-chevron-down",title:"Show or hide span types"},{default:i(()=>[...C[1]||(C[1]=[$(" Span types ",-1)])]),_:1})]),_:1})):k("",!0),t.live?k("",!0):(s(),_(R,{key:1,size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-rotate-ccw",onClick:C[0]||(C[0]=r=>h.$emit("reset"))},{default:i(()=>[...C[2]||(C[2]=[$(" Reset view ",-1)])]),_:1}))])])}}}),Nl=Object.assign(Bl,{__name:"TimelineHeader"}),Ve={barHeight:24,rowGap:8,labelWidth:80,sidePadding:16,axisHeight:28,get rowHeight(){return this.barHeight+this.rowGap}},Ml={passed:"#16a34a",failed:"#dc2626",timedOut:"#ea580c",running:"#2563eb",initialising:"#2563eb",skipped:"#9ca3af",cancelled:"#a1a1aa",interrupted:"#ea580c",flaky:"#ca8a04"},Se={fill:"#facc15",stroke:"#ca8a04",swatch:"#f59e0b"};function Xe(t){return Ml[t]||"#a1a1aa"}function jt(t){return Xe(t)+"66"}function Bt(t){return Xe(t)}function Ge(t){return t<1e3?`${t}ms`:t<6e4?`${(t/1e3).toFixed(1)}s`:`${Math.floor(t/6e4)}m ${Math.floor(t%6e4/1e3)}s`}const Al=["y","width","height"],Ul=["y1","x2","y2"],Ll=["x1","y1","x2","y2"],El=["x1","y1","x2","y2"],Ol=["x","y"],Kl=["y"],Wl=pe({__name:"TimelineGrid",props:{workerRows:{},shardGroups:{},tickMarks:{},contentWidth:{},shardTotal:{}},setup(t){const{barHeight:h,rowGap:C,axisHeight:F,rowHeight:R}=Ve;return(u,w)=>(s(),a("g",null,[(s(!0),a(G,null,oe(t.workerRows,(r,T)=>(s(),a("rect",{key:"bg-"+T,x:0,y:T*e(R)+e(F),width:t.contentWidth,height:e(R),class:q(T%2===1?"fill-black/[0.03] dark:fill-white/[0.03]":"fill-transparent")},null,10,Al))),128)),(s(!0),a(G,null,oe(t.shardGroups.slice(1),r=>(s(),a("line",{key:"shard-sep-"+r.rowRange[0],x1:0,y1:r.rowRange[0]*e(R)+e(F)-e(C)/2,x2:t.contentWidth,y2:r.rowRange[0]*e(R)+e(F)-e(C)/2,stroke:"currentColor","stroke-dasharray":"4,3",class:"stroke-gray-400 dark:stroke-gray-500"},null,8,Ul))),128)),n("line",{x1:e(Ve).labelWidth,y1:e(F),x2:t.contentWidth,y2:e(F),stroke:"currentColor",class:"stroke-gray-300 dark:stroke-gray-600"},null,8,Ll),(s(!0),a(G,null,oe(t.tickMarks,r=>(s(),a("g",{key:r.ms},[n("line",{x1:r.x,y1:e(F)-4,x2:r.x,y2:e(F),stroke:"currentColor",class:"stroke-gray-300 dark:stroke-gray-600"},null,8,El),n("text",{x:r.x,y:e(F)-8,"text-anchor":"middle",class:"fill-gray-400 text-[10px]"},l(r.label),9,Ol)]))),128)),(s(!0),a(G,null,oe(t.workerRows,(r,T)=>(s(),a("text",{key:"label-"+T,x:6,y:T*e(R)+e(F)+e(h)/2+4,class:"fill-gray-500 text-[11px] font-medium"},l(r.shardIndex!=null&&t.shardTotal&&t.shardTotal>1?`S${r.shardIndex} W${r.workerIndex}`:`Worker ${r.workerIndex}`),9,Kl))),128))]))}}),Hl=Object.assign(Wl,{__name:"TimelineGrid"}),Vl=["x","y","width","height","fill","stroke"],Gl=["x","y"],Xl=["x","y","width","height","fill","stroke"],ql=["x1","y1","x2","y2","stroke"],Yl=["x1","y1","x2","y2","stroke"],Jl=["x","y"],Zl=["cx","cy"],Ql=["cx","cy"],ei=["x","y","width","height","fill"],ti=["x","y"],si=pe({__name:"TimelineBar",props:{item:{},x:{},y:{},width:{}},emits:["select","hover","move","leave"],setup(t,{emit:h}){const C=t,F=h,{barHeight:R}=Ve,u=D(()=>["setup","hook","fixture"].includes(C.item.kind)),w=D(()=>C.item.testCaseId!=null),r=D(()=>w.value?"cursor-pointer":"cursor-default");function T(){C.item.testCaseId!=null&&F("select",C.item.testCaseId)}return(E,N)=>(s(),a("g",{class:"timeline-bar-group",onMouseenter:N[0]||(N[0]=B=>F("hover",t.item,B)),onMousemove:N[1]||(N[1]=B=>F("move",B)),onMouseleave:N[2]||(N[2]=B=>F("leave"))},[u.value?(s(),a(G,{key:0},[n("rect",{x:t.x,y:t.y,width:t.width,height:e(R),rx:3,ry:3,fill:e(jt)(t.item.status),stroke:e(Bt)(t.item.status),"stroke-width":"1","stroke-dasharray":"3,2",class:q(["timeline-bar-shape transition-opacity duration-100 opacity-80",r.value]),onClick:T},null,10,Vl),t.width>60?(s(),a("text",{key:0,x:t.x+4,y:t.y+e(R)/2+4,class:"fill-gray-600 dark:fill-gray-300 text-[9px] font-medium pointer-events-none"},l(t.item.title),9,Gl)):k("",!0)],64)):t.item.kind==="wait"?(s(),a(G,{key:1},[n("rect",{x:t.x,y:t.y-3,width:t.width,height:e(R)+6,rx:2,ry:2,fill:e(Se).fill,"fill-opacity":"0.28",stroke:e(Se).stroke,"stroke-width":"1.5",class:q(["timeline-bar-shape transition-opacity duration-100 opacity-90",r.value]),onClick:T},null,10,Xl),t.width>4?(s(),a("line",{key:0,x1:t.x+1,y1:t.y-3,x2:t.x+t.width-1,y2:t.y+e(R)+3,stroke:e(Se).stroke,"stroke-width":"1","stroke-opacity":"0.25",class:"pointer-events-none"},null,8,ql)):k("",!0),t.width>4?(s(),a("line",{key:1,x1:t.x+t.width-1,y1:t.y-3,x2:t.x+1,y2:t.y+e(R)+3,stroke:e(Se).stroke,"stroke-width":"1","stroke-opacity":"0.25",class:"pointer-events-none"},null,8,Yl)):k("",!0),t.width>50?(s(),a("text",{key:2,x:t.x+4,y:t.y+e(R)/2+4,class:"fill-yellow-800 dark:fill-yellow-200 text-[9px] font-bold pointer-events-none"}," wasted "+l(e(Ge)(t.item.duration)),9,Jl)):k("",!0)],64)):t.item.status==="running"?(s(),a(G,{key:2},[n("circle",{cx:t.x+6,cy:t.y+e(R)/2,r:"3",fill:"#2563eb",filter:"url(#glow)",class:"timeline-bar-shape transition-opacity duration-100 cursor-pointer opacity-90",onClick:T},null,8,Zl),n("circle",{cx:t.x+6,cy:t.y+e(R)/2,r:"5",fill:"none",stroke:"#2563eb","stroke-width":"1.5","stroke-opacity":"0.4",filter:"url(#glow)",class:"timeline-bar-shape transition-opacity duration-100 cursor-pointer opacity-90",onClick:T},null,8,Ql)],64)):(s(),a(G,{key:3},[n("rect",{x:t.x,y:t.y,width:t.width,height:e(R),rx:3,ry:3,fill:e(Xe)(t.item.status),class:"timeline-bar-shape transition-opacity duration-100 cursor-pointer opacity-90",onClick:T},null,8,ei),t.width>40?(s(),a("text",{key:0,x:t.x+4,y:t.y+e(R)/2+4,class:"fill-white text-[10px] font-medium pointer-events-none"},l(e(Ge)(t.item.duration)),9,ti)):k("",!0)],64))],32))}}),ni=Object.assign(si,{__name:"TimelineBar"}),ai={class:"flex items-center gap-2 mb-1"},oi={class:"font-medium text-gray-900 dark:text-white max-w-64 truncate"},li={class:"flex items-center gap-3 text-gray-500"},ii={class:"capitalize"},ri={key:0,class:"italic truncate max-w-48"},ui=340,ci=pe({__name:"TimelineTooltip",props:{item:{},pos:{}},setup(t){const h=t,C=D(()=>{const R=h.item;return R?R.kind==="test"?{backgroundColor:Xe(R.status)}:R.kind==="wait"?{backgroundColor:Se.swatch+"66",borderColor:Se.swatch}:{backgroundColor:jt(R.status),borderColor:Bt(R.status)}:{}}),F=D(()=>{const{x:R,y:u}=h.pos;if(typeof window>"u")return{left:`${R+12}px`,top:`${u-10}px`};const w=R+12+ui>window.innerWidth,r=u+90>window.innerHeight;return{left:w?void 0:`${R+12}px`,right:w?`${window.innerWidth-R+12}px`:void 0,top:r?void 0:`${u-10}px`,bottom:r?`${window.innerHeight-u+10}px`:void 0}});return(R,u)=>(s(),_(ns,{to:"body"},[t.item?(s(),a("div",{key:0,class:"fixed z-[9999] pointer-events-none rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 px-3 py-2 text-xs shadow-lg",style:he(F.value)},[n("div",ai,[n("span",{class:q(["inline-block size-2.5 rounded-full shrink-0",{"border border-dashed":t.item.kind!=="test"}]),style:he(C.value)},null,6),n("span",oi,[t.item.kind!=="test"?(s(),a("span",{key:0,class:q(["uppercase text-[10px] tracking-wider mr-1",t.item.kind==="wait"?"text-amber-500":"text-gray-500"])},l(t.item.kind),3)):k("",!0),$(" "+l(t.item.title),1)])]),n("div",li,[n("span",ii,l(t.item.status),1),n("span",null,l(e(Ge)(t.item.duration)),1),n("span",null,"Worker "+l(t.item.workerIndex),1),t.item.parentTitle?(s(),a("span",ri," for "+l(t.item.parentTitle),1)):k("",!0)])],4)):k("",!0)]))}}),di=Object.assign(ci,{__name:"TimelineTooltip"}),mi=["Wait for timeout*","*waitForTimeout*"];function fi(t){const h=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${h}$`,"i")}const mt=new Map;function gi(t){let h=mt.get(t);return h||(h=fi(t),mt.set(t,h)),h}function pi(t,h){if(!h||h.length===0)return!1;const C=t.title??"",F=t.location??"";for(const R of h){const u=gi(R);if(u.test(C)||F&&u.test(F))return!0}return!1}function xi(t){const h=new Map;for(const C of t){const F=C.workerIndex;if(F==null||F<0)continue;const R=C.shardIndex??null,u=`${R??"null"}|${F}`;let w=h.get(u);w||(w={shardIndex:R,workerIndex:F,cases:[]},h.set(u,w)),w.cases.push(C)}return[...h.values()].sort((C,F)=>{const R=C.shardIndex??1/0,u=F.shardIndex??1/0;return R!==u?R-u:C.workerIndex-F.workerIndex})}function We(t){if(t==null)return null;if(typeof t=="number")return Number.isFinite(t)?t:null;if(t instanceof Date)return t.getTime();const h=new Date(t).getTime();return Number.isNaN(h)?null:h}function yi(t,h){return t.category==="wait"?pi(t,h)?"wait":null:t.category==="hook"||t.category==="fixture"?t.category:null}function hi(t){const h=D(()=>t.wastedPatterns&&t.wastedPatterns.length>0?t.wastedPatterns:mi),C=D(()=>xi(t.testCases)),F=D(()=>{const r=C.value,T=h.value;let E=1/0;for(const H of r)for(const A of H.cases){const d=We(A.startedAt);d!=null&&d>0&&(E=Math.min(E,d))}const N=Number.isFinite(E),B=H=>Math.max(0,(We(H)??E)-E),I=[],j=new Map;if(r.forEach((H,A)=>{const d=[],S=N?H.cases:[...H.cases].sort((c,m)=>(We(c.startedAt)??0)-(We(m.startedAt)??0));let p=0;for(const c of S){const m=c.duration??1e3,U=N?B(c.startedAt):p;d.push({key:`t${c.id}`,kind:"test",testCaseId:c.id,title:c.title,status:c.status,workerIndex:H.workerIndex,start:U,duration:m,rowIndex:A}),p=U+m,(c.stepEvents??[]).forEach((M,y)=>{const J=yi(M,T);if(!J)return;const te=M.duration||0,ae=N?B(M.startedAt):p;d.push({key:`s${c.id}:${y}`,kind:J,testCaseId:c.id,title:M.title,status:M.status||"passed",workerIndex:H.workerIndex,start:ae,duration:te,rowIndex:A,parentTitle:c.title}),p=ae+te})}d.sort((c,m)=>c.start-m.start),I.push(...d),j.has(H.workerIndex)||j.set(H.workerIndex,p)}),t.setupSteps&&t.setupSteps.length>0){const H=new Map;r.forEach((A,d)=>{H.has(A.workerIndex)||H.set(A.workerIndex,d)}),t.setupSteps.forEach((A,d)=>{const S=A.workerIndex;if(S==null||S<0)return;const p=H.get(S);if(p==null)return;const c=A.duration||0;let m;N?m=B(A.startedAt):(m=j.get(S)??0,j.set(S,m+c)),I.push({key:`setup${S}:${d}`,kind:"setup",testCaseId:null,title:`[Setup] ${A.title}`,status:A.status||"passed",workerIndex:S,start:m,duration:c,rowIndex:p,parentTitle:null})})}return I}),R=D(()=>C.value.map(r=>({shardIndex:r.shardIndex,workerIndex:r.workerIndex}))),u=D(()=>{const r=[];for(let T=0;T<R.value.length;T++){const E=R.value[T],N=r[r.length-1];!N||N.shardIndex!==E.shardIndex?r.push({shardIndex:E.shardIndex,rowRange:[T,T]}):N.rowRange[1]=T}return r}),w=D(()=>{let r=0;for(const T of F.value)r=Math.max(r,T.start+T.duration);return r||6e4});return{timelineData:F,workerRows:R,shardGroups:u,maxTime:w}}const ft=1.12,vi=10,ki=100,Qe=[10,20,50,100,200,500,1e3,2e3,5e3,1e4,15e3,3e4,6e4,12e4,3e5,6e5,9e5,18e5,36e5];function bi(t){const{containerRef:h,maxTime:C,rowCount:F,hasData:R,live:u}=t,{labelWidth:w,sidePadding:r,axisHeight:T,rowHeight:E}=Ve,N=K(1),B=K(0),I=K(!1),j=K(0),H=K(0),A=D(()=>.5*N.value),d=D(()=>C.value*A.value+w+r),S=D(()=>F.value*E+T);function p(b){return b.start*A.value+w}function c(b){return Math.max(b.duration*A.value,3)}function m(b){return b.rowIndex*E+T}function U(){const b=h.value?.clientWidth;if(!b||C.value<=0)return 1;const V=(b-w)/C.value;return Math.min(1,V/.5)}function v(){const b=U();b>0&&(N.value=b,B.value=0)}function M(b){if(!h.value)return b;const V=h.value.clientWidth;return d.value<=V?0:Math.max(V-d.value,Math.min(0,b))}function y(b,V){const ne=Math.max(U(),Math.min(vi,b)),se=ne/N.value;N.value=ne,B.value=M(V-(V-B.value)*se)}const J=D(()=>{const b=ki/A.value;let V=Qe.find(se=>se>=b)??Qe[Qe.length-1];for(;C.value/V>1e3;)V*=2;const ne=[];for(let se=0;se<=C.value;se+=V)ne.push({ms:se,x:se*A.value+w,label:Ge(se)});return ne});function te(b){if(u())return;const V=b.deltaY>0?1/ft:ft,ne=h.value?.getBoundingClientRect();y(N.value*V,ne?b.clientX-ne.left:0)}const ae=4,ee=new Map;let re=null,O=0,f=1,z=0;function ue(b,V){re=b,j.value=V,H.value=B.value}function g(b){if(!u()&&!(b.pointerType==="mouse"&&b.button!==0)){if(ee.set(b.pointerId,{x:b.clientX,y:b.clientY}),ee.size===1)ue(b.pointerId,b.clientX);else if(ee.size===2){re=null,I.value=!1;for(const ye of ee.keys())h.value?.setPointerCapture?.(ye);const[V,ne]=[...ee.values()];O=Math.hypot(V.x-ne.x,V.y-ne.y)||1,f=N.value;const se=h.value?.getBoundingClientRect();z=(V.x+ne.x)/2-(se?.left??0)}b.preventDefault()}}function P(b){if(!(u()||!ee.has(b.pointerId))){if(ee.set(b.pointerId,{x:b.clientX,y:b.clientY}),ee.size>=2){const[V,ne]=[...ee.values()],se=Math.hypot(V.x-ne.x,V.y-ne.y)||1;y(f*(se/O),z);return}I.value?B.value=M(H.value+(b.clientX-j.value)):re===b.pointerId&&Math.abs(b.clientX-j.value)>ae&&(h.value?.setPointerCapture?.(b.pointerId),I.value=!0,B.value=M(H.value+(b.clientX-j.value)))}}function Y(b){if(ee.delete(b.pointerId),re===b.pointerId&&(re=null),h.value?.releasePointerCapture?.(b.pointerId),ee.size===1){const[V]=[...ee.entries()];ue(V[0],V[1].x)}else ee.size===0&&(I.value=!1)}function le(){v()}let Z=null;return as(()=>{De(v),h.value&&(Z=new ResizeObserver(()=>v()),Z.observe(h.value))}),ht(()=>{Z?.disconnect()}),ge(()=>[u(),R.value,C.value,F.value],([b,V])=>{b&&V&&De(v)}),{panX:B,isPanning:I,pxPerMs:A,contentWidth:d,contentHeight:S,getBarX:p,getBarWidth:c,getBarTop:m,tickMarks:J,onWheel:te,onPointerDown:g,onPointerMove:P,onPointerUp:Y,resetView:le}}const wi={key:0,class:"relative select-none"},_i=["width","height"],$i={key:1,class:"text-center py-10 text-gray-500"},Ci=pe({__name:"WorkersTimeline",props:{testCases:{},setupSteps:{},shardTotal:{},live:{type:Boolean},wastedPatterns:{}},emits:["selectTestCase"],setup(t,{emit:h}){const C=t,F=h,{timelineData:R,workerRows:u,shardGroups:w,maxTime:r}=hi(C),T=K(null),E=D(()=>u.value.length),N=D(()=>R.value.length>0),{panX:B,isPanning:I,contentWidth:j,contentHeight:H,getBarX:A,getBarWidth:d,getBarTop:S,tickMarks:p,onWheel:c,onPointerDown:m,onPointerMove:U,onPointerUp:v,resetView:M}=bi({containerRef:T,maxTime:r,rowCount:E,hasData:N,live:()=>C.live}),y=D(()=>R.value.filter(Z=>Z.kind==="test").length),J=D(()=>R.value.filter(Z=>Z.kind!=="test"&&Z.kind!=="wait").length),te=D(()=>R.value.filter(Z=>Z.kind==="wait").length),ae=["test","setup","hook","fixture","wait"],ee={test:"Tests",setup:"Setup (beforeAll/afterAll)",hook:"Hooks",fixture:"Fixtures",wait:"Wasted waits"},re=K({}),O=D(()=>R.value.filter(Z=>!re.value[Z.kind])),f=D(()=>{const Z=new Set(R.value.map(b=>b.kind));return ae.filter(b=>Z.has(b)).map(b=>({key:b,label:ee[b],checked:!re.value[b]}))});function z(Z,b){re.value={...re.value,[Z]:!b}}const ue=K(null),g=K({x:0,y:0});ge(O,Z=>{ue.value&&(ue.value=Z.find(b=>b.key===ue.value.key)??null)});function P(Z,b){ue.value=Z,g.value={x:b.clientX,y:b.clientY}}function Y(Z){g.value={x:Z.clientX,y:Z.clientY}}function le(){ue.value=null}return(Z,b)=>{const V=Nl,ne=Hl,se=ni,ye=di,we=ve;return e(R).length>0?(s(),a("div",wi,[o(V,{"worker-count":e(u).length,"shard-total":t.shardTotal,"test-count":y.value,"hook-count":J.value,"wait-count":te.value,"span-types":f.value,live:t.live,onToggleSpan:z,onReset:e(M)},null,8,["worker-count","shard-total","test-count","hook-count","wait-count","span-types","live","onReset"]),n("div",{ref_key:"containerRef",ref:T,class:q(["relative overflow-hidden rounded-lg border border-gray-200 dark:border-gray-700 touch-pan-y",{"cursor-grab":!e(I),"cursor-grabbing":e(I)}]),style:he({height:e(H)+"px"}),onWheel:b[1]||(b[1]=Ne((...ie)=>e(c)&&e(c)(...ie),["prevent"])),onPointerdown:b[2]||(b[2]=(...ie)=>e(m)&&e(m)(...ie)),onPointermove:b[3]||(b[3]=(...ie)=>e(U)&&e(U)(...ie)),onPointerup:b[4]||(b[4]=(...ie)=>e(v)&&e(v)(...ie)),onPointercancel:b[5]||(b[5]=(...ie)=>e(v)&&e(v)(...ie)),onPointerleave:b[6]||(b[6]=(...ie)=>e(v)&&e(v)(...ie))},[(s(),a("svg",{class:"overflow-visible",style:he({transform:`translateX(${e(B)}px)`}),width:e(j),height:e(H)},[b[7]||(b[7]=n("defs",null,[n("filter",{id:"glow"},[n("feGaussianBlur",{stdDeviation:"2.5",result:"blur"}),n("feMerge",null,[n("feMergeNode",{in:"blur"}),n("feMergeNode",{in:"SourceGraphic"})])])],-1)),o(ne,{"worker-rows":e(u),"shard-groups":e(w),"tick-marks":e(p),"content-width":e(j),"shard-total":t.shardTotal},null,8,["worker-rows","shard-groups","tick-marks","content-width","shard-total"]),(s(!0),a(G,null,oe(O.value,ie=>(s(),_(se,{key:ie.key,item:ie,x:e(A)(ie),y:e(S)(ie),width:e(d)(ie),onSelect:b[0]||(b[0]=_e=>F("selectTestCase",_e)),onHover:P,onMove:Y,onLeave:le},null,8,["item","x","y","width"]))),128))],12,_i))],38),o(ye,{item:ue.value,pos:g.value},null,8,["item","pos"])])):(s(),a("div",$i,[o(we,{name:"i-lucide-rows-3",class:"size-8 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),b[8]||(b[8]=n("p",null,"No worker data available for this run.",-1))]))}}}),Ti=Object.assign(Ci,{__name:"WorkersTimeline"}),Ri={key:0,class:"space-y-4"},zi={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Ii={class:"flex items-center gap-2 py-1.5"},Si={class:"font-medium"},Fi={key:0,class:"flex"},Di={key:1,class:"flex items-center justify-center py-6 text-gray-500 gap-2"},Pi={class:"flex flex-wrap gap-2 mt-1"},ji={class:"flex flex-wrap gap-4 text-sm"},Bi={key:3,class:"text-sm text-gray-500"},Ni={class:"flex flex-wrap gap-4 text-sm"},Mi={key:0,class:"text-gray-400"},Ai={key:0,class:"text-gray-400"},Ui={key:1,class:"text-gray-400"},Li={key:1,class:"text-gray-400"},Ei={key:0,class:"text-gray-400"},Oi={key:0,class:"text-gray-400"},Ki={key:4,class:"text-center py-8 text-gray-500"},Wi={key:5,class:"text-center py-8 text-gray-500"},Hi={key:1,class:"text-center py-10 text-gray-500"},Vi=pe({__name:"RunCompare",props:{testRun:{}},setup(t){const h=t,F=Le().params.id,R=K(null),u=K([]),w=D(()=>h.testRun?.status==="running"||h.testRun?.status==="finalizing");ge(()=>h.testRun?.projectId,async p=>{if(!(!p||w.value)){try{R.value=await $fetch(`/api/projects/${p}`)}catch(c){console.error("Failed to fetch project for RunCompare",c)}try{const c=await $fetch(`/api/projects/${p}/markers`);u.value=c.markers??[]}catch{}}},{immediate:!0});const r=D(()=>{if(!B.value||!h.testRun)return[];const p=new Date(B.value.startTime).getTime(),c=new Date(h.testRun.startTime).getTime(),m=Math.min(p,c),U=Math.max(p,c),v=new Set([B.value.environment,h.testRun.environment].filter(M=>M!=null));return u.value.filter(M=>{const y=new Date(M.occurredAt).getTime();return y<=m||y>=U?!1:M.environment==null||v.has(M.environment)})}),T=D(()=>R.value?.testRuns?R.value.testRuns.filter(p=>p.id!==Number(F)).slice(0,50).map(p=>({label:`Run #${p.id} — ${bt(p.startTime,{dateOnly:!0})} (${p.status})`,value:p.id})):[]),E=D(()=>{if(!R.value?.testRuns)return null;const p=[...R.value.testRuns].sort((m,U)=>new Date(U.startTime).getTime()-new Date(m.startTime).getTime()),c=p.findIndex(m=>m.id===Number(F));return c>=0&&c<p.length-1?p[c+1].id:null}),N=K(void 0),B=K(null),I=K(!1);ge(N,async p=>{if(!p?.value){B.value=null;return}I.value=!0;try{B.value=await $fetch(`/api/test-runs/${p.value}`)}catch{}finally{I.value=!1}});function j(){if(E.value){const p=T.value.find(c=>c.value===E.value);p&&(N.value=p)}}const H=D(()=>h.testRun??null),{comparisonData:A,comparisonSummary:d}=Ns(B,H),S=[{accessorKey:"title",header:de("Test case")},{accessorKey:"statusA",header:de("Status A")},{accessorKey:"statusB",header:de("Status B")},{accessorKey:"durationA",header:de("Duration A")},{accessorKey:"durationB",header:de("Duration B")},{accessorKey:"delta",header:de("Delta")},{accessorKey:"percentChange",header:de("Change")}];return(p,c)=>{const m=Ps,U=js,v=Re,M=ve,y=kt,J=Bs,te=ke,ae=Ee,ee=ot,re=Ft;return s(),a("div",null,[t.testRun&&!w.value?(s(),a("div",Ri,[n("div",zi,[n("div",null,[c[1]||(c[1]=n("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Run A (baseline)",-1)),o(m,{modelValue:N.value,"onUpdate:modelValue":c[0]||(c[0]=O=>N.value=O),items:T.value,placeholder:"Select a baseline run..."},null,8,["modelValue","items"])]),n("div",null,[c[2]||(c[2]=n("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Run B (this run)",-1)),n("div",Ii,[o(U,{status:t.testRun.status},null,8,["status"]),n("span",Si,"#"+l(t.testRun.id),1)])])]),E.value?(s(),a("div",Fi,[o(v,{icon:"i-lucide-arrow-left-right",size:"sm",variant:"outline",label:"Compare with previous run",onClick:j})])):k("",!0),I.value?(s(),a("div",Di,[o(M,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),c[3]||(c[3]=n("span",null,"Loading baseline data...",-1))])):r.value.length>0?(s(),_(J,{key:2,color:"warning",variant:"subtle",icon:"i-lucide-milestone",title:`${r.value.length} timeline marker${r.value.length>1?"s":""} between these runs`},{description:i(()=>[n("div",Pi,[(s(!0),a(G,null,oe(r.value,O=>(s(),_(y,{key:O.id,marker:O,size:"sm"},null,8,["marker"]))),128))])]),_:1},8,["title"])):B.value&&e(A).length>0?(s(),a(G,{key:3},[n("div",ji,[c[4]||(c[4]=n("span",{class:"text-xs font-semibold text-gray-500 uppercase tracking-wider mr-1"},"Status",-1)),e(d).newFailures>0?(s(),_(te,{key:0,color:"error",variant:"soft",size:"lg"},{default:i(()=>[$(l(e(d).newFailures)+" new failure"+l(e(d).newFailures>1?"s":""),1)]),_:1})):k("",!0),e(d).recovered>0?(s(),_(te,{key:1,color:"success",variant:"soft",size:"lg"},{default:i(()=>[$(l(e(d).recovered)+" recovered ",1)]),_:1})):k("",!0),e(d).stillFailing>0?(s(),_(te,{key:2,color:"warning",variant:"soft",size:"lg"},{default:i(()=>[$(l(e(d).stillFailing)+" still failing ",1)]),_:1})):k("",!0),e(d).newFailures===0&&e(d).recovered===0&&e(d).stillFailing===0?(s(),a("span",Bi,"No status changes")):k("",!0)]),n("div",Ni,[c[5]||(c[5]=n("span",{class:"text-xs font-semibold text-gray-500 uppercase tracking-wider mr-1"},"Duration changes",-1)),e(d).regressed>0?(s(),_(te,{key:0,color:"error",variant:"soft",size:"lg"},{default:i(()=>[$(l(e(d).regressed)+" regressed ",1)]),_:1})):k("",!0),e(d).improved>0?(s(),_(te,{key:1,color:"success",variant:"soft",size:"lg"},{default:i(()=>[$(l(e(d).improved)+" improved ",1)]),_:1})):k("",!0),o(te,{color:"neutral",variant:"soft",size:"lg"},{default:i(()=>[$(l(e(d).unchanged)+" unchanged ",1)]),_:1})]),o(re,{"min-width":"48rem",bleed:!1},{default:i(()=>[o(ee,{data:e(A),columns:S,ui:{base:"table-fixed border-separate border-spacing-0 min-w-[48rem]",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"statusA-cell":i(({row:O})=>[O.original.statusA?(s(),_(te,{key:1,color:("getStatusColor"in p?p.getStatusColor:e(st))(O.original.statusA),variant:"subtle",class:"capitalize"},{default:i(()=>[$(l(O.original.statusA),1)]),_:2},1032,["color"])):(s(),a("span",Mi,"—"))]),"statusB-cell":i(({row:O})=>[O.original.statusB?(s(),_(te,{key:1,color:("getStatusColor"in p?p.getStatusColor:e(st))(O.original.statusB),variant:"subtle",class:"capitalize"},{default:i(()=>[$(l(O.original.statusB),1)]),_:2},1032,["color"])):(s(),a("span",Ai,"—"))]),"durationA-cell":i(({row:O})=>[O.original.durationA!==null?(s(),_(ae,{key:0,ms:O.original.durationA},null,8,["ms"])):(s(),a("span",Ui,"—"))]),"durationB-cell":i(({row:O})=>[O.original.durationB!==null?(s(),_(ae,{key:0,ms:O.original.durationB},null,8,["ms"])):(s(),a("span",Li,"—"))]),"delta-cell":i(({row:O})=>[O.original.delta===null?(s(),a("span",Ei,"—")):(s(),a("span",{key:1,class:q(O.original.delta>0?"text-red-600":O.original.delta<0?"text-green-600":"text-gray-500")},[$(l(O.original.delta>0?"+":""),1),o(ae,{ms:O.original.delta,"unit-class":"opacity-60"},null,8,["ms"])],2))]),"percentChange-cell":i(({row:O})=>[O.original.percentChange===null?(s(),a("span",Oi,"—")):(s(),a("span",{key:1,class:q(O.original.percentChange>10?"text-red-600 font-medium":O.original.percentChange<-10?"text-green-600 font-medium":"text-gray-500")},l(O.original.percentChange>0?"+":"")+l(O.original.percentChange)+"% ",3))]),_:1},8,["data"])]),_:1})],64)):N.value&&!I.value?(s(),a("div",Ki,[o(M,{name:"i-lucide-git-compare-arrows",class:"size-8 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),c[6]||(c[6]=n("p",null,"No comparison data available.",-1))])):(s(),a("div",Wi,[o(M,{name:"i-lucide-arrow-left-right",class:"size-8 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),c[7]||(c[7]=n("p",null,"Select a baseline run to compare.",-1))]))])):w.value?(s(),a("div",Hi,[o(M,{name:"i-lucide-git-compare-arrows",class:"size-8 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),c[8]||(c[8]=n("p",null,"Comparison is available after the run finishes.",-1))])):k("",!0)])}}}),Gi=Object.assign(Vi,{__name:"RunCompare"}),Xi={class:"flex flex-col overflow-hidden"},qi={key:0,class:"flex-1 flex items-center justify-center text-gray-500 gap-2"},Yi={class:"text-xs font-mono break-all"},Ji={key:0,class:"text-gray-400"},Zi={key:1,class:"text-red-600 font-medium"},Qi={key:2,class:"flex-1 flex items-center justify-center text-center text-gray-500"},er=pe({__name:"SlowEndpoints",props:{refreshKey:{}},emits:["endpointsCount"],async setup(t,{emit:h}){let C,F;const u=Le().params.id,w=t,r=h,{data:T,pending:E,refresh:N}=([C,F]=Me(()=>Ae(`/api/test-runs/${u}/network-requests`,{lazy:!0,server:!1},"$DE3r8oSbIq")),C=await C,F(),C);ge(T,I=>{r("endpointsCount",I?.length??0)}),ge(()=>w.refreshKey,(I,j)=>{I!==j&&I!==void 0&&N()});const B=[{accessorKey:"method",header:de("Method")},{accessorKey:"route",header:de("Route")},{accessorKey:"count",header:de("Calls")},{accessorKey:"avgDuration",header:de("Avg")},{accessorKey:"p90Duration",header:de("P90")},{accessorKey:"maxDuration",header:de("Max")},{accessorKey:"errorRate",header:de("Errors")}];return(I,j)=>{const H=ve,A=ke,d=Ee,S=ot;return s(),a("div",Xi,[e(E)?(s(),a("div",qi,[o(H,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),j[0]||(j[0]=n("span",null,"Loading network data...",-1))])):e(T)&&e(T).length>0?(s(),_(S,{key:1,sticky:"",data:e(T),columns:B,class:"flex-1 min-h-0",ui:{base:"table-fixed border-separate border-spacing-0 min-w-[44rem]",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0 [&>tr]:hover:bg-gray-50 dark:[&>tr]:hover:bg-gray-900/50",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"method-cell":i(({row:p})=>[o(A,{color:p.original.method==="GET"?"info":p.original.method==="POST"?"success":p.original.method==="PUT"||p.original.method==="PATCH"?"warning":p.original.method==="DELETE"?"error":"neutral",variant:"soft",class:"font-mono text-xs"},{default:i(()=>[$(l(p.original.method),1)]),_:2},1032,["color"])]),"route-cell":i(({row:p})=>[n("code",Yi,l(p.original.route),1)]),"avgDuration-cell":i(({row:p})=>[n("span",{class:q(p.original.avgDuration>1e3?"text-red-600 font-medium":p.original.avgDuration>500?"text-orange-500 font-medium":"")},[o(d,{ms:p.original.avgDuration,"unit-class":"opacity-60"},null,8,["ms"])],2)]),"p90Duration-cell":i(({row:p})=>[n("span",{class:q(p.original.p90Duration>2e3?"text-red-600 font-medium":p.original.p90Duration>1e3?"text-orange-500":"")},[o(d,{ms:p.original.p90Duration,"unit-class":"opacity-60"},null,8,["ms"])],2)]),"errorRate-cell":i(({row:p})=>[p.original.errorRate===0?(s(),a("span",Ji,"0%")):(s(),a("span",Zi,l(p.original.errorRate)+"%",1))]),_:1},8,["data"])):(s(),a("div",Qi,[o(H,{name:"i-lucide-wifi-off",class:"size-8 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),j[1]||(j[1]=n("p",null,[$(" No network request data. Add the "),n("code",{class:"text-xs bg-gray-100 dark:bg-gray-800 px-1 rounded font-mono"},"@piwitests/reporter"),$(" fixtures to your test setup. ")],-1))]))])}}}),tr=Object.assign(er,{__name:"SlowEndpoints"}),sr={class:"inline-flex items-center justify-center w-5 h-5 rounded-full bg-blue-500/10 hover:bg-blue-500/20 transition-colors ml-1"},nr={key:0,class:"flex items-center gap-2 mb-3 shrink-0"},ou=pe({__name:"[id]",async setup(t){let h,C;const F=Le(),R=os(),u=F.params.id,w=!!xt().public.demoMode,{data:r,refresh:T}=([h,C]=Me(()=>Ae(`/api/test-runs/${u}`,"$D01RBpMFGT")),h=await h,C(),h),E=r.value?.projectId,{data:N,refresh:B}=E?([h,C]=Me(()=>Ae(`/api/projects/${E}/latest-run`,{key:`latest-run-${E}`},"$e4OLHgXNMR")),h=await h,C(),h):{data:K(null),refresh:async()=>{}};Ms(B);const I=D(()=>N.value?.id??r.value?.project?.latestRunId??null),j=D(()=>N.value?.status??r.value?.project?.latestRunStatus??null),H=D(()=>j.value==="running"||j.value==="finalizing");ls(D(()=>({title:`Test run #${u}${r.value?.project?` — ${r.value.project.name}`:""} — Piwi Dashboard`})));const A=gt(),d=K(!1),S=K(!1),p=D(()=>r.value?.status==="running"||r.value?.status==="finalizing"),c=K(!1),m=K([]),U=new Map,v=K(null);let M=null;const y=K([]);ge([p,r],()=>{p.value&&m.value.length>0?y.value=[...m.value]:r.value?.testCases?y.value=r.value.testCases:y.value=[]},{immediate:!0});function J(L){for(const W of L){const ce=`${W.title}@@${W.location}@@${JSON.stringify(W.browser)}`;U.has(ce)||(U.set(ce,!0),m.value=[...m.value,W])}y.value=[...m.value]}let te=[],ae=null;function ee(){if(te.length===0)return;const L=te;te=[];for(const W of L){const ce=W.data;if(W.type==="init")v.value={totalTests:ce.totalTests,passedTests:ce.passedTests,failedTests:ce.failedTests,skippedTests:ce.skippedTests};else if(W.type==="test-begin"){const X=ce;if(X.stepCategory)continue;const Te=`${X.title}@@${X.location}@@${JSON.stringify(X.browser)}`;U.has(Te)||(U.set(Te,!0),m.value=[...m.value,{id:m.value.length+1,title:X.title,filePath:X.filePath,suitePath:X.suitePath??void 0,status:"running",location:X.location,workerIndex:X.workerIndex??null,startedAt:X.startedAt??Date.now(),browser:X.browser??null}],y.value=[...m.value])}else if(W.type==="test-completed"){const X=ce;if(X.stepCategory)continue;const Te=`${X.title}@@${X.location}@@${JSON.stringify(X.browser)}`;if(U.has(Te)){const je=m.value.findIndex(xe=>`${xe.title}@@${xe.location}@@${JSON.stringify(xe.browser)}`===Te);if(je>=0){const xe=m.value[je],Be=[...m.value];Be[je]={...xe,filePath:X.filePath??xe.filePath,suitePath:X.suitePath??xe.suitePath,status:X.status,duration:X.duration,error:X.error,stepEvents:X.stepEvents??xe.stepEvents,wastedTimeMs:X.wastedTimeMs??xe.wastedTimeMs,workerIndex:X.workerIndex??xe.workerIndex,startedAt:X.startedAt?X.startedAt:xe.startedAt,browser:X.browser??xe.browser},m.value=Be,y.value=[...Be]}}else U.set(Te,!0),m.value=[...m.value,{id:m.value.length+1,title:X.title,filePath:X.filePath,suitePath:X.suitePath??void 0,status:X.status,duration:X.duration,location:X.location,error:X.error,stepEvents:X.stepEvents??null,wastedTimeMs:X.wastedTimeMs??null,workerIndex:X.workerIndex??null,startedAt:X.startedAt??void 0,browser:X.browser??null}],y.value=[...m.value]}else W.type==="run-progress"?v.value=ce:W.type==="run-finalizing"?(c.value=!0,v.value=ce):W.type==="run-finished"&&(c.value=!1,g(),T(),be.value++,re())}}function re(L=0){w||L>=5||setTimeout(async()=>{await T(),re(L+1)},1500*(L+1))}function O(L){te.push(L),ae&&clearTimeout(ae),ae=setTimeout(ee,200)}let f=null;function z(){f||(r.value?.testCases?.length&&J(r.value.testCases),f=As(L=>{L.scope==="run"&&L.runId===Number(u)?O(L.event):L.scope==="global"&&L.event.runId===Number(u)&&L.event.type==="run-started"&&T()}))}function ue(){if(w){z();return}M||p.value&&(r.value?.testCases?.length&&J(r.value.testCases),M=new EventSource(`/api/test-runs/${u}/stream`),M.onmessage=L=>{try{O(JSON.parse(L.data))}catch{}},M.onerror=()=>{})}function g(){M&&(M.close(),M=null),f&&(f(),f=null)}const P=D(()=>p.value||w&&r.value?.status==="initialising");ge(P,L=>{L?ue():g()},{immediate:!0}),ht(()=>{g()});let Y=null;const le=K([]);ge(y,L=>{Y===null&&(Y=requestAnimationFrame(()=>{le.value=L,Y=null}))},{immediate:!0});const Z=D(()=>p.value&&v.value?v.value:r.value?{totalTests:r.value.totalTests,passedTests:r.value.passedTests,failedTests:r.value.failedTests,skippedTests:r.value.skippedTests}:null);async function b(){d.value=!1,S.value=!0;try{await $fetch(`/api/test-runs/${u}`,{method:"DELETE"}),A.add({title:"Test run deleted",color:"success"}),await He(`/projects/${r.value?.project?.id}`)}catch(L){const W=L&&typeof L=="object"&&"data"in L?L.data?.message:void 0;A.add({title:"Delete failed",description:W||"An error occurred",color:"error"})}finally{S.value=!1}}const V=K(!1),ne=K(""),se=K([]),ye=K("all"),we=D(()=>se.value.length===1?se.value[0]:"all");function ie(L){se.value=!L||L==="all"?[]:[L]}const _e=D(()=>r.value?.reports||[]),$e=D(()=>{const L=y.value;return L?L.reduce((W,ce)=>W+(ce.wastedTimeMs??0),0):0}),me=K("test-cases"),Ce=K(null),be=K(0),Q=K(0);function x(){Ce.value=null}const ze=D(()=>r.value&&r.value.failedTests>0),qe=D(()=>{if(!r.value?.testCases)return 0;const L=new Set;for(const W of r.value.testCases)W.failureClusterId!=null&&L.add(W.failureClusterId);return L.size}),Oe=D(()=>{const L=p.value?y.value:r.value?.testCases;if(!L||L.length===0)return 0;const W=new Set;for(const ce of L)ce.workerIndex!=null&&ce.workerIndex>=0&&W.add(ce.workerIndex);return W.size}),lt=D(()=>[{label:`Test cases (${y.value.length})`,icon:"i-lucide-beaker",value:"test-cases",slot:"test-cases"},{label:"Insights",icon:"i-lucide-sparkles",value:"insights",slot:"insights"},{label:ze.value?`Failure groups (${qe.value})`:"Failure groups",icon:"i-lucide-layers",value:"failure-groups",slot:"failure-groups",disabled:!ze.value},{label:"Regression",icon:"i-lucide-git-pull-request-arrow",value:"regression",slot:"regression",disabled:!ze.value},{label:`Timeline${Oe.value>0?` (${Oe.value})`:""}`,icon:"i-lucide-timeline",value:"workers",slot:"workers"},{label:"Compare",icon:"i-lucide-git-compare-arrows",value:"compare",slot:"compare"},{label:`Slow endpoints${Q.value>0?` (${Q.value})`:""}`,icon:"i-lucide-network",value:"endpoints",slot:"endpoints"}]),Nt={"test-cases":"overflow-hidden flex flex-col",endpoints:"overflow-hidden flex flex-col"},it=D(()=>lt.value.filter(L=>!L.disabled).map(L=>L.value));typeof F.query.tab=="string"&&it.value.includes(F.query.tab)&&(me.value=F.query.tab),ge(it,L=>{L.includes(me.value)||(me.value="test-cases")}),ge(me,L=>{F.query.tab!==L&&R.replace({query:{...F.query,tab:L}})});const rt=K(null);function Mt(L){me.value="test-cases",De(()=>{rt.value?.scrollToCase(L)})}function At(L){Ce.value=L,me.value="test-cases"}return(L,W)=>{const ce=Qt,X=Ue,Te=ve,je=vt,xe=is,Be=rs,Ut=cs,Lt=Nn,Et=ke,Ye=Re,Ot=Pa,Kt=Fo,Wt=tl,Ht=Sl,Vt=Ti,Gt=Gi,Xt=tr,qt=ps,Yt=us,Jt=Dt,Zt=yt;return s(),a(G,null,[o(Yt,{id:"test-run-detail"},{header:i(()=>[o(Ut,null,{leading:i(()=>[o(ce),o(xe,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects",to:"/projects"},...e(r)?.project?.id?[{label:e(r).project.label||e(r).project.name||"Project",to:`/projects/${e(r).project.id}`,slot:"project"}]:[{label:"Project"}],{label:`Run #${e(u)}`+(e(r)?.label?` — ${e(r).label}`:"")}]},{project:i(({item:fe})=>[o(X,{to:fe?.to,class:"text-sm font-medium text-[var(--ui-text-muted)] hover:text-[var(--ui-text)] transition-colors"},{default:i(()=>[$(l(fe?.label),1)]),_:2},1032,["to"]),I.value&&I.value!==Number(e(u))?(s(),_(je,{key:0,text:H.value?"Go to running run":"Go to latest run"},{default:i(()=>[o(X,{to:`/test-runs/${I.value}`},{default:i(()=>[n("span",sr,[o(Te,{name:"i-lucide-circle-play",class:q(["w-3.5 h-3.5 text-blue-500",{"animate-pulse":H.value}])},null,8,["class"])])]),_:1},8,["to"])]),_:1},8,["text"])):k("",!0)]),_:1},8,["items"])]),right:i(()=>[o(Be,{actions:[{label:"Refresh",icon:"i-lucide-refresh-cw",onClick:()=>e(T)()},{label:"Delete",icon:"i-lucide-trash-2",color:"error",variant:"soft",loading:e(S),onClick:()=>d.value=!0}]},null,8,["actions"])]),_:1})]),body:i(()=>[o(qt,{modelValue:e(me),"onUpdate:modelValue":W[5]||(W[5]=fe=>Ie(me)?me.value=fe:null),"tab-items":lt.value,"tab-panel-class":Nt},{summary:i(()=>[e(r)?(s(),_(Lt,{key:0,"test-run":e(r),"display-progress":Z.value,"all-reports":_e.value,"show-custom-data":e(V),finalizing:e(c),"active-filter":we.value,"total-wasted-time":$e.value,"onUpdate:showCustomData":W[0]||(W[0]=fe=>V.value=fe),onFilterStatus:ie,onLabelUpdated:e(T)},null,8,["test-run","display-progress","all-reports","show-custom-data","finalizing","active-filter","total-wasted-time","onLabelUpdated"])):k("",!0)]),"tab-test-cases":i(()=>[e(Ce)!=null?(s(),a("div",nr,[o(Et,{color:"info",variant:"subtle",size:"sm"},{default:i(()=>[...W[8]||(W[8]=[$(" Filtered by failure group ",-1)])]),_:1}),o(Ye,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-x",label:"Clear filter",onClick:x})])):k("",!0),o(Ot,{ref_key:"testCasesListRef",ref:rt,search:e(ne),"onUpdate:search":W[1]||(W[1]=fe=>Ie(ne)?ne.value=fe:null),"active-statuses":e(se),"onUpdate:activeStatuses":W[2]||(W[2]=fe=>Ie(se)?se.value=fe:null),"browser-filter":e(ye),"onUpdate:browserFilter":W[3]||(W[3]=fe=>Ie(ye)?ye.value=fe:null),"test-cases":e(y),suites:e(r)?.suites??[],"is-live":p.value,"failure-cluster-filter":e(Ce),"project-key":e(r)?.projectId,"project-name":e(r)?.project?.name,class:"flex-1 min-h-0"},null,8,["search","active-statuses","browser-filter","test-cases","suites","is-live","failure-cluster-filter","project-key","project-name"])]),"tab-insights":i(()=>[o(Kt,{"test-run-id":Number(e(u)),"run-status":e(r)?.status??"","refresh-key":e(be),class:"flex-1 min-h-0 p-4"},null,8,["test-run-id","run-status","refresh-key"])]),"tab-failure-groups":i(()=>[o(Wt,{"refresh-key":e(be),onSelectCluster:At},null,8,["refresh-key"])]),"tab-regression":i(()=>[o(Ht,{"refresh-key":e(be)},null,8,["refresh-key"])]),"tab-workers":i(()=>[o(Vt,{"test-cases":e(le),"setup-steps":e(r)?.setupSteps??null,"shard-total":e(r)?.shardTotal??null,live:p.value,"wasted-patterns":e(r)?.wastedWaitPatterns??null,onSelectTestCase:Mt},null,8,["test-cases","setup-steps","shard-total","live","wasted-patterns"])]),"tab-compare":i(()=>[o(Gt,{"test-run":e(r)},null,8,["test-run"])]),"tab-endpoints":i(()=>[o(Xt,{"refresh-key":e(be),class:"flex-1 min-h-0",onEndpointsCount:W[4]||(W[4]=fe=>Q.value=fe)},null,8,["refresh-key"])]),_:1},8,["modelValue","tab-items"])]),_:1}),o(Zt,null,{default:i(()=>[o(Jt,{open:e(d),title:"Delete test run","onUpdate:open":W[7]||(W[7]=fe=>d.value=fe)},{body:i(()=>[n("p",null,[W[9]||(W[9]=$(" Are you sure you want to delete ",-1)),n("strong",null,"Test Run #"+l(e(r)?.id),1),W[10]||(W[10]=$("? This will also remove all associated test results, reports, and traces. This action cannot be undone. ",-1))])]),footer:i(()=>[o(Ye,{color:"neutral",variant:"ghost",label:"Cancel",onClick:W[6]||(W[6]=fe=>d.value=!1)}),o(Ye,{color:"error",label:"Delete",icon:"i-lucide-trash-2",loading:e(S),onClick:b},null,8,["loading"])]),_:1},8,["open"])]),_:1})],64)}}});export{ou as default};
@@ -0,0 +1,17 @@
1
+ import{b as ie,H,B as ye,am as he,r as x,h as Q,an as be,M as Ve,d as _e,k as e,o as m,c as h,j as u,p as ke,m as C,i as a,t as $,g as B,_ as Ce,F as K,y as oe,q as J,v as T,A as qe,f as G,l as He,D as We,K as Ye}from"./NQikbhmK.js";import{_ as Xe}from"./C7P1UCO2.js";import{i as Ge,d as Ke,h as Qe,g as Je,e as Ze,f as et,j as tt}from"./HXerICAi.js";import{_ as st}from"./eaVkJRSa.js";import{f as we,n as nt}from"./CDk0q2hV.js";import{_ as at}from"./D0HNloZ9.js";import{f as ot}from"./D-c8ZSws.js";import{u as it}from"./C95YAaJq.js";const rt=globalThis.setInterval,re=Symbol("cluster-diagnosis");function lt(g){const b=ie(),o=x(""),r=x(""),k=x([]),S=x([]),_=Q(()=>!!r.value),R=x(null),P=x([]),E=x(0),U=x(0),O=x(null),l=x(null),p=x(!1),s=x(null),i=x(!1);let c=null,f=null,d=!0;function z(){const n={};return o.value.trim()&&(n.baseCommit=o.value.trim()),k.value.length&&(n.selectedCommitShas=k.value),n}async function D(){p.value=!0;try{const n=await $fetch(`/api/failure-clusters/${g}/context`,{query:{...z(),format:"json"}});R.value=n.text,P.value=n.sections,E.value=n.tokenEstimate,U.value=n.imageTokenEstimate??0,O.value=n.coverage,l.value=n.scmChanges??null}catch{R.value="(failed to load context)",P.value=[],E.value=0,U.value=0,O.value=null,l.value=null}finally{p.value=!1}}async function I(n){try{await $fetch(`/api/failure-clusters/${g}/base-commit`,{method:"PATCH",body:{commit:n||null}}),r.value=n}catch{}}function M(){c&&(clearInterval(c),c=null)}function j(){if(c)return;let n=0;c=rt(async()=>{n+=3e3,await q(),(!s.value||s.value.status!=="running"||n>=12e4)&&M()},3e3)}async function q(){try{const n=await $fetch(`/api/failure-clusters/${g}/diagnosis`);s.value=n.diagnosis}catch{}}async function W(n={}){i.value=!0;try{const w=n.force?`/api/failure-clusters/${g}/diagnose?force=true`:`/api/failure-clusters/${g}/diagnose`,F={};n.additionalContext&&(F.additionalContext=n.additionalContext),o.value.trim()&&(F.baseCommit=o.value.trim()),k.value.length&&(F.selectedCommitShas=k.value),n.images?.length&&(F.images=n.images),s.value=await $fetch(w,{method:"POST",body:Object.keys(F).length?F:void 0}),s.value?.status==="running"&&j()}catch(w){w?.statusCode===409?j():b.add({title:"Diagnosis failed",description:String(w?.message??w),color:"error"})}finally{i.value=!1}}return H(o,n=>{d||(f&&clearTimeout(f),f=setTimeout(()=>D(),900),n!==r.value&&I(n))}),H(k,()=>{d||D()},{deep:!0}),H(s,n=>{n?.status==="running"?j():M()}),ye(async()=>{try{const n=await $fetch(`/api/failure-clusters/${g}/diagnosis`);s.value=n.diagnosis,n.manualBaseCommit&&(r.value=n.manualBaseCommit,o.value=n.manualBaseCommit);const w=n.diagnosis?.details;w?.selectedCommitShas&&Array.isArray(w.selectedCommitShas)&&(k.value=w.selectedCommitShas),w?.autoSelectedCommits&&Array.isArray(w.autoSelectedCommits)&&(S.value=w.autoSelectedCommits)}catch{}d=!1,D(),s.value?.status==="running"&&j()}),he(()=>{M(),f&&clearTimeout(f)}),{clusterId:g,baseCommit:o,savedBaseCommit:r,selectedCommitShas:k,autoSelectedCommits:S,baseCommitIsPinned:_,contextText:R,contextSections:P,tokenEstimate:E,imageTokenEstimate:U,coverage:O,scmChanges:l,contextLoading:p,refreshContext:D,diagnosis:s,posting:i,runDiagnosis:W}}function ct(g){const b=lt(g);return Ve(re,b),b}function As(){const g=be(re);if(!g)throw new Error("useClusterDiagnosis() must be used under a page that called provideClusterDiagnosis()");return g}function ut(g){const b=be(re,null);if(b)return b;if(g==null)throw new Error("useOrProvideClusterDiagnosis() requires a clusterId when used outside provideClusterDiagnosis()");return ct(g)}const dt={key:0,class:"flex items-center gap-1.5 text-xs text-gray-400 py-1"},ft={key:1,class:"space-y-1.5"},mt={class:"flex items-center justify-between"},gt={class:"text-xs font-medium text-gray-500"},pt={class:"text-gray-400 font-normal"},vt={class:"flex gap-0.5"},xt={class:"grid grid-cols-4 gap-1.5"},yt=["onClick"],ht={class:"relative"},bt=["src","alt"],_t={class:"absolute top-0.5 right-0.5"},kt={class:"px-1 py-0.5 bg-elevated space-y-0.5"},Ct=["title"],wt={class:"flex items-center gap-1 flex-wrap"},St={key:0,class:"text-[8px] text-gray-400 leading-tight"},Tt={key:1,class:"text-[8px] text-gray-400 leading-tight truncate"},$t={key:2,class:"text-[8px] text-gray-400 leading-tight ml-auto"},xe=8,Dt=_e({__name:"DiagnosisScreenshots",props:{affectedTestCases:{}},emits:["update:images"],setup(g,{emit:b}){const o=g,r=b,k=qe();async function S(s){const i=(s.type||"image/webp").split(";")[0].trim();return new Promise((c,f)=>{const d=new FileReader;d.onload=()=>{const z=d.result.split(",")[1];z!=null?c({data:z,mediaType:i}):f(new Error("Failed to read blob"))},d.onerror=f,d.readAsDataURL(s)})}const _=x([]),R=x(!1);async function P(){if(!o.affectedTestCases.length)return;R.value=!0,_.value=[];const s=[];for(const i of o.affectedTestCases){if(s.length>=xe)break;try{const c=await $fetch(`/api/test-run-cases/${i.recentTestRunsCaseId}`);for(const f of c.attachments??[]){if(!Ge(f.path,f.contentType))continue;if(s.length>=xe)break;const d=f.name||f.path.split("/").pop()||"screenshot",z=nt(f.path,f.contentType,k.app?.baseURL,!0);try{const D=await fetch(z);if(!D.ok)continue;const I=await D.blob(),{data:M,mediaType:j}=await S(I);s.push({src:`data:${j};base64,${M}`,data:M,mediaType:j,name:d,selected:!0,caseTitle:i.title,status:c.status,retries:c.retries,browser:c.browser,startTime:c.testRun?.startTime??null})}catch{}}}catch{}}_.value=s,R.value=!1,E()}function E(){r("update:images",_.value.filter(s=>s.selected).map(({name:s,mediaType:i,data:c})=>({name:s,mediaType:i,data:c})))}function U(s){_.value[s].selected=!_.value[s].selected,E()}function O(){_.value.forEach(s=>s.selected=!0),E()}function l(){_.value.forEach(s=>s.selected=!1),E()}const p=Q(()=>_.value.filter(s=>s.selected).length);return ye(P),(s,i)=>{const c=ke,f=Ce;return e(R)?(m(),h("div",dt,[u(c,{name:"i-lucide-loader-2",class:"size-3 animate-spin"}),i[0]||(i[0]=C(" Loading screenshots from test evidence… ",-1))])):e(_).length?(m(),h("div",ft,[a("div",mt,[a("span",gt,[i[1]||(i[1]=C(" Test screenshots ",-1)),a("span",pt,"("+$(e(p))+"/"+$(e(_).length)+" will be sent to AI)",1)]),a("div",vt,[u(f,{size:"xs",color:"neutral",variant:"ghost",onClick:O},{default:B(()=>[...i[2]||(i[2]=[C("All",-1)])]),_:1}),u(f,{size:"xs",color:"neutral",variant:"ghost",onClick:l},{default:B(()=>[...i[3]||(i[3]=[C("None",-1)])]),_:1})])]),a("div",xt,[(m(!0),h(K,null,oe(e(_),(d,z)=>(m(),h("div",{key:z,class:J(["cursor-pointer rounded overflow-hidden border-2 transition-all",d.selected?"border-primary":"border-default opacity-50"]),onClick:D=>U(z)},[a("div",ht,[a("img",{src:d.src,alt:d.name,class:"w-full h-14 object-cover object-top"},null,8,bt),a("div",_t,[u(c,{name:d.selected?"i-lucide-check-circle-2":"i-lucide-circle",class:J(["size-3.5 drop-shadow",d.selected?"text-primary":"text-gray-300"])},null,8,["name","class"])])]),a("div",kt,[a("p",{class:"text-[9px] text-gray-700 dark:text-gray-300 truncate font-medium leading-tight",title:d.caseTitle},$(d.caseTitle),9,Ct),a("div",wt,[a("span",{class:J(["text-[8px] px-1 rounded leading-tight font-medium",d.status==="passed"?"bg-success/15 text-success":d.status==="failed"?"bg-error/15 text-error":"bg-neutral/15 text-gray-500"])},$(d.status),3),d.retries>0?(m(),h("span",St,"retry "+$(d.retries),1)):T("",!0),d.browser?(m(),h("span",Tt,$(d.browser),1)):T("",!0),d.startTime?(m(),h("span",$t,$(e(we)(d.startTime)),1)):T("",!0)])])],10,yt))),128))])])):T("",!0)}}}),At=Object.assign(Dt,{__name:"DiagnosisScreenshots"});function zt(g){const b=x(""),o=x(null),r=x("idle"),k=x(null),S=x(null);let _=null;function R(){_&&(_.abort(),_=null),r.value==="streaming"&&(r.value="cancelled")}function P(){R(),b.value="",o.value=null,r.value="idle",k.value=null,S.value=null}async function E(l={}){b.value="",o.value=null,S.value=null,k.value=null,r.value="streaming";const p=e(g);_=new AbortController;const s=new URLSearchParams;l.force&&s.set("force","true");const i=`/api/failure-clusters/${p}/diagnose/stream${s.toString()?"?"+s.toString():""}`;try{const c=await $fetch.raw(i,{method:"POST",body:{additionalContext:l.additionalContext,images:l.images,baseCommit:l.baseCommit,selectedCommitShas:l.selectedCommitShas,scope:l.scope,testRunsCaseId:l.testRunsCaseId},responseType:"stream",signal:_.signal,ignoreResponseError:!0}),f=c._data??c.body;if(!f)throw new Error("No response body from streaming endpoint");let d;if(f instanceof ReadableStream)d=f.getReader();else if(f instanceof Uint8Array||f instanceof ArrayBuffer){const M=new TextDecoder().decode(f instanceof ArrayBuffer?new Uint8Array(f):f);O(M),r.value==="streaming"&&(r.value="error",S.value="Stream ended without a result event");return}else if(typeof f?.getReader=="function")d=f.getReader();else if(f?.pipeThrough)d=f.getReader();else throw new Error("Unsupported stream response format");const z=new TextDecoder;let D="";for(;;){const{done:I,value:M}=await d.read();if(I)break;D+=z.decode(M,{stream:!0});const j=D.split(`
2
+
3
+ `);D=j.pop()||"";let q=!1;for(const W of j){const n=U(W);if(n){if(n.event==="result")k.value=n.data,r.value="complete",q=!0;else if(n.event==="thinking"){const w=n.data;b.value+=w.text}else if(n.event==="stage")o.value=n.data.stage;else if(n.event==="error"){const w=n.data;S.value=w.message,r.value="error"}}}if(q)break}if(D.trim()){const I=U(D.trim());I&&(I.event==="result"?(k.value=I.data,r.value="complete"):I.event==="error"&&(S.value=I.data.message,r.value="error"))}r.value==="streaming"&&(S.value||(r.value="complete"))}catch(c){if(c?.name==="AbortError"){r.value="cancelled";return}S.value=String(c?.message??c),r.value="error"}finally{_=null}}function U(l){if(!l.trim())return null;const p=l.split(`
4
+ `);let s="message",i="";for(const c of p)c.startsWith("event: ")?s=c.slice(7).trim():c.startsWith("data: ")?i+=c.slice(6):c.startsWith(":");if(!i)return null;try{return{event:s,data:JSON.parse(i)}}catch{return{event:s,data:i}}}function O(l){const p=l.split(`
5
+
6
+ `);for(const s of p){const i=U(s);if(i)if(i.event==="result")k.value=i.data,r.value="complete";else if(i.event==="thinking"){const c=i.data;b.value+=c.text}else i.event==="stage"?o.value=i.data.stage:i.event==="error"&&(S.value=i.data.message,r.value="error")}}return he(()=>{R()}),{thinkingText:b,stage:o,status:r,result:k,error:S,startStream:E,cancel:R,reset:P}}const Rt=200*1024,Et=5*1024*1024,It=["image/jpeg","image/png","image/gif","image/webp"];function Bt(g){return new Promise((b,o)=>{const r=new FileReader;r.onload=()=>{const k=r.result.split(",")[1];k!==void 0?b(k):o(new Error("Failed to read file"))},r.onerror=o,r.readAsDataURL(g)})}function Pt(){const g=ie(),b=x([]),o=x([]),r=x(!1);async function k(l){for(const p of Array.from(l))if(It.includes(p.type)){if(p.size>Et){g.add({title:"Image too large",description:`${p.name} exceeds 5 MB`,color:"error"});continue}const s=await Bt(p),i=`data:${p.type};base64,${s}`;o.value.push({name:p.name,mediaType:p.type,data:s,preview:i,size:p.size})}else{if(p.size>Rt){g.add({title:"File too large",description:`${p.name} exceeds 200 KB`,color:"error"});continue}const s=await p.text();b.value.push({name:p.name,content:s,size:p.size})}}function S(l){l.preventDefault(),r.value=!0}function _(l){l.currentTarget?.contains(l.relatedTarget)||(r.value=!1)}function R(l){l.preventDefault(),r.value=!1,l.dataTransfer?.files?.length&&k(l.dataTransfer.files)}function P(l){b.value.splice(l,1)}function E(l){o.value.splice(l,1)}function U(){return b.value.length?`## Attached Files
7
+
8
+ ${b.value.map(p=>`### ${p.name}
9
+ \`\`\`
10
+ ${p.content}
11
+ \`\`\``).join(`
12
+
13
+ `)}`:""}function O(){return o.value.map(l=>({name:l.name,mediaType:l.mediaType,data:l.data}))}return{files:b,images:o,dragOver:r,processFiles:k,onDragOver:S,onDragLeave:_,onDrop:R,removeFile:P,removeImage:E,filesMarkdown:U,imagesPayload:O}}const Ut={class:"space-y-4"},jt={class:"pb-2 border-b border-default"},Ft={class:"flex items-center justify-between gap-2"},Ot={class:"flex items-center gap-1.5"},Mt={class:"text-xs text-gray-400"},Lt={class:"flex items-center gap-1.5"},Nt={key:0,class:"flex items-center gap-2 px-3 py-2 rounded-lg bg-elevated/50 border border-default text-xs"},Vt={class:"text-gray-500"},qt={key:1,class:"flex items-center gap-2 px-3 py-2 rounded-lg bg-elevated/50 border border-default text-xs"},Ht={class:"flex items-center gap-1 mb-1"},Wt={key:0,class:"text-primary"},Yt={key:0},Xt={class:"flex items-center gap-2 px-3 pb-2 pt-1 border-t border-default"},Gt={key:0,class:"text-xs text-primary"},Kt={key:1,class:"text-xs text-gray-400"},Qt={key:0,class:"flex flex-wrap gap-2"},Jt={class:"max-w-40 truncate"},Zt={class:"text-gray-400"},es=["onClick"],ts={key:1,class:"flex flex-wrap gap-2"},ss=["src","alt"],ns={class:"absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity rounded-lg flex items-center justify-center"},as=["onClick"],os={class:"text-xs text-gray-500 text-center mt-0.5 w-16 truncate"},is={key:3,class:"pt-1"},rs={key:4,class:"rounded-lg border border-default overflow-hidden"},ls={class:"flex items-center justify-between gap-2 px-3 py-2 bg-elevated/30 border-b border-default"},cs={class:"flex items-center gap-2 text-sm text-gray-500"},us={key:0,class:"inline-flex items-center gap-1 text-xs text-gray-400"},ds={key:1,class:"text-gray-400 italic"},fs={class:"px-3 py-1.5 border-t border-default text-xs text-gray-400 flex items-center gap-2"},ms={key:5,class:"rounded-lg border border-warning/40 bg-warning/5 p-3 space-y-2"},gs={class:"flex items-center gap-2 text-sm"},ps={class:"flex items-center gap-2 pt-1"},vs={class:"text-xs text-gray-400"},xs={key:4,class:"flex flex-col items-center justify-center p-8 text-center text-gray-400 border border-dashed border-default rounded-lg"},ys={class:"text-sm inline-flex items-center gap-1"},hs={class:"pt-1 text-center"},bs=_e({__name:"DiagnosisPanel",props:{clusterId:{},lastSeenRunId:{},affectedTestCases:{}},setup(g){const b=g,{diagnosis:o,posting:r,contextText:k,contextSections:S,tokenEstimate:_,imageTokenEstimate:R,contextLoading:P,coverage:E,baseCommit:U,selectedCommitShas:O,refreshContext:l,runDiagnosis:p}=ut(b.clusterId),{aiStatus:s}=Ke();ie();const{permission:i,active:c,requestPermission:f,toggleEnabled:d}=it(),{thinkingText:z,stage:D,status:I,result:M,error:j,startStream:q,cancel:W}=zt(Q(()=>b.clusterId??0)),n=Pt(),{files:w,images:F,dragOver:le,processFiles:Se,onDragOver:ce,onDragLeave:ue,onDrop:de,removeFile:Te,removeImage:$e}=n,L=x(""),fe=x(null),me=x([]),Z=Q(()=>[...me.value,...F.value.length?n.imagesPayload():[]]),V=x(!1),Y=x(!1),se=x(null),ee=x(null);function ge(v){se.value=v,V.value=!0}const De=Q(()=>{const v=o.value?.details;if(!v)return[];const t=[];if(Array.isArray(v.evidence)&&t.push(...v.evidence),Array.isArray(v.hypotheses))for(const A of v.hypotheses)Array.isArray(A?.evidence)&&t.push(...A.evidence);return tt(t)});H(z,()=>{Ye(()=>{ee.value&&(ee.value.scrollTop=ee.value.scrollHeight)})}),H(M,v=>{v&&(o.value=v)}),H(()=>o.value?.details,v=>{if(!v)return;const t=v;typeof t.additionalContext=="string"&&t.additionalContext.trim()&&!L.value&&(L.value=t.additionalContext)},{immediate:!0});function Ae(v){L.value=L.value?`${L.value}
14
+
15
+ ${v}`:v,Y.value=!0}function pe(){const v=[];L.value.trim()&&v.push(L.value.trim());const t=n.filesMarkdown();return t&&v.push(t),v.join(`
16
+
17
+ `)}async function ne(v=!1){await q({force:v,additionalContext:pe()||void 0,baseCommit:U.value.trim()||void 0,selectedCommitShas:O.value.length?[...O.value]:void 0,images:Z.value.length?Z.value:void 0})}async function ze(v=!1){await p({force:v,additionalContext:pe()||void 0,images:Z.value.length?Z.value:void 0})}function Re(){o.value=null}function ve(v){return v.status==="running"&&Date.now()-new Date(v.updatedAt).getTime()>300*1e3}function te(){return I.value==="streaming"}function Ee(){return!te()&&(!o.value||o.value.status==="failed"||ve(o.value))}function Ie(){return!te()&&o.value&&(o.value.status==="completed"||o.value.status==="failed")}return(v,t)=>{const A=ke,ae=Xe,Be=Qe,N=Ce,Pe=Ze,Ue=Je,je=st,Fe=At,Oe=at,Me=et,Le=We;return m(),h("div",Ut,[a("div",jt,[a("div",Ft,[a("div",Ot,[u(A,{name:"i-lucide-sparkles",class:"size-4 text-primary shrink-0"}),t[17]||(t[17]=a("span",{class:"text-sm font-semibold"},"Diagnosis",-1)),u(ae,{topic:"cluster.diagnosis"}),a("span",Mt,[t[15]||(t[15]=C(" — ",-1)),u(A,{name:"i-lucide-triangle-alert",class:"size-3 shrink-0 inline"}),t[16]||(t[16]=C(" AI-generated, verify before applying ",-1))])]),a("div",Lt,[u(Be,{"context-endpoint":`/api/failure-clusters/${g.clusterId}/context`},null,8,["context-endpoint"]),u(N,{icon:e(V)?"i-lucide-eye-off":"i-lucide-eye",size:"xs",color:"neutral",variant:"outline",loading:e(P),onClick:t[0]||(t[0]=y=>V.value=!e(V))},{default:B(()=>[C($(e(V)?"Hide context":"Show context"),1)]),_:1},8,["icon","loading"]),e(o)&&e(o).status==="completed"?(m(),G(N,{key:0,icon:"i-lucide-refresh-cw",size:"xs",color:"primary",variant:"soft",loading:e(r),onClick:t[1]||(t[1]=y=>ne(!0))},{default:B(()=>[...t[18]||(t[18]=[C(" Re-diagnose ",-1)])]),_:1},8,["loading"])):T("",!0)])])]),e(i)==="granted"&&e(s)?.configured?(m(),h("div",Nt,[u(A,{name:"i-lucide-bell",class:J(["size-3.5 shrink-0",e(c)?"text-primary":"text-gray-400"])},null,8,["class"]),a("span",Vt,$(e(c)?"Diagnosis notifications on":"Diagnosis notifications off"),1),u(N,{size:"xs",color:e(c)?"neutral":"primary",variant:"outline",onClick:e(d)},{default:B(()=>[C($(e(c)?"Disable":"Enable"),1)]),_:1},8,["color","onClick"])])):e(i)==="default"&&e(s)?.configured?(m(),h("div",qt,[u(A,{name:"i-lucide-bell",class:"size-3.5 text-gray-400 shrink-0"}),t[20]||(t[20]=a("span",{class:"text-gray-500"},"Notify when diagnosis completes?",-1)),u(N,{size:"xs",color:"neutral",variant:"outline",onClick:e(f)},{default:B(()=>[...t[19]||(t[19]=[C("Enable",-1)])]),_:1},8,["onClick"])])):T("",!0),e(s)?.configured?(m(),G(Pe,{key:2,sections:e(S),"not-applicable":e(E)?.notApplicable,"token-estimate":e(_),loading:e(P),onViewSection:ge,onOpen:t[2]||(t[2]=y=>V.value=!0)},null,8,["sections","not-applicable","token-estimate","loading"])):T("",!0),u(Ue,{open:e(V),sections:e(S),"token-estimate":e(_),"image-token-estimate":e(R),loading:e(P),"focus-section":e(se),"cited-sections":e(De),"not-applicable-sections":e(E)?.notApplicable,"onUpdate:open":t[3]||(t[3]=y=>{V.value=y,y||(se.value=null)}),onRefresh:e(l)},null,8,["open","sections","token-estimate","image-token-estimate","loading","focus-section","cited-sections","not-applicable-sections","onRefresh"]),e(s)?.configured?(m(),h(K,{key:3},[a("div",null,[a("div",Ht,[a("button",{class:"flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 text-left",onClick:t[4]||(t[4]=y=>Y.value=!e(Y))},[u(A,{name:e(Y)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5"},null,8,["name"]),t[21]||(t[21]=C(" Additional context ",-1)),e(w).length||e(F).length||e(L).trim()?(m(),h("span",Wt," ("+$(e(w).length+e(F).length+(e(L).trim()?1:0))+") ",1)):T("",!0)]),u(ae,{topic:"cluster.context-input"})]),e(Y)?(m(),h("div",Yt,[a("div",{class:J(["rounded-lg border-2 transition-colors",e(le)?"border-primary bg-primary/5 border-solid":"border-dashed border-default"]),onDragover:t[8]||(t[8]=(...y)=>e(ce)&&e(ce)(...y)),onDragleave:t[9]||(t[9]=(...y)=>e(ue)&&e(ue)(...y)),onDrop:t[10]||(t[10]=(...y)=>e(de)&&e(de)(...y))},[u(je,{modelValue:e(L),"onUpdate:modelValue":t[5]||(t[5]=y=>He(L)?L.value=y:null),placeholder:"e.g. We deployed a new auth middleware yesterday\\u2026",rows:3,class:"w-full text-sm border-0 bg-transparent focus:ring-0"},null,8,["modelValue"]),a("div",Xt,[a("input",{ref_key:"fileInputRef",ref:fe,type:"file",multiple:"",class:"hidden",accept:".txt,.log,.md,.json,.ts,.js,.py,.sql,.xml,.yaml,.yml,.html,.css,.env,image/*",onChange:t[6]||(t[6]=y=>e(Se)(y.target.files))},null,544),u(N,{icon:"i-lucide-paperclip",size:"xs",color:"neutral",variant:"ghost",onClick:t[7]||(t[7]=y=>e(fe)?.click())},{default:B(()=>[...t[22]||(t[22]=[C(" Attach files ",-1)])]),_:1}),e(le)?(m(),h("span",Gt,"Drop files here\\u2026")):(m(),h("span",Kt,"or drag & drop text files and images"))])],34)])):T("",!0)]),e(w).length?(m(),h("div",Qt,[(m(!0),h(K,null,oe(e(w),(y,X)=>(m(),h("div",{key:X,class:"flex items-center gap-1.5 bg-elevated rounded-full px-2.5 py-1 text-xs border border-default"},[u(A,{name:"i-lucide-file-text",class:"size-3 text-gray-500 shrink-0"}),a("span",Jt,$(y.name),1),a("span",Zt,$(("formatBytes"in v?v.formatBytes:e(ot))(y.size)),1),a("button",{class:"text-gray-400 hover:text-error ml-0.5",onClick:Ne=>e(Te)(X)},[u(A,{name:"i-lucide-x",class:"size-3"})],8,es)]))),128))])):T("",!0),e(F).length?(m(),h("div",ts,[(m(!0),h(K,null,oe(e(F),(y,X)=>(m(),h("div",{key:X,class:"relative group"},[a("img",{src:y.preview,alt:y.name,class:"h-16 w-16 object-cover rounded-lg border border-default"},null,8,ss),a("div",ns,[a("button",{class:"text-white",onClick:Ne=>e($e)(X)},[u(A,{name:"i-lucide-x",class:"size-4"})],8,as)]),a("p",os,$(y.name),1)]))),128))])):T("",!0),g.affectedTestCases?.length?(m(),G(Fe,{key:2,"affected-test-cases":g.affectedTestCases,"onUpdate:images":t[11]||(t[11]=y=>me.value=y)},null,8,["affected-test-cases"])):T("",!0),Ee()?(m(),h("div",is,[u(N,{icon:"i-lucide-sparkles",size:"sm",color:"primary",variant:"solid",loading:e(r),onClick:t[12]||(t[12]=y=>ne())},{default:B(()=>[...t[23]||(t[23]=[C(" Diagnose with AI ",-1)])]),_:1},8,["loading"])])):T("",!0),te()?(m(),h("div",rs,[a("div",ls,[a("div",cs,[u(A,{name:"i-lucide-loader-2",class:"size-4 animate-spin text-primary"}),t[24]||(t[24]=a("span",null,"Analyzing failure cluster",-1)),e(D)?(m(),h("span",us,[u(A,{name:"i-lucide-workflow",class:"size-3"}),C(" "+$(e(D)==="research"?"Researching patterns":"Diagnosing root cause"),1)])):T("",!0)]),u(N,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-x",title:"Cancel diagnosis",onClick:e(W)},null,8,["onClick"])]),a("div",{ref_key:"thinkingContainer",ref:ee,class:"max-h-64 overflow-y-auto p-3 text-xs font-mono leading-relaxed whitespace-pre-wrap break-words text-gray-600 dark:text-gray-400 bg-elevated/10"},[e(z)?(m(),h(K,{key:0},[C($(e(z))+" ",1),t[25]||(t[25]=a("span",{class:"inline-block w-2 h-4 bg-primary/60 animate-pulse ml-0.5 align-text-bottom"},null,-1))],64)):(m(),h("span",ds,"Waiting for model response\\u2026"))],512),a("div",fs,[u(A,{name:"i-lucide-file-text",class:"size-3"}),a("span",null,$(e(z).length.toLocaleString())+" characters received",1)])])):T("",!0),e(o)?.status==="running"&&!ve(e(o))&&!te()?(m(),h("div",ms,[a("div",gs,[u(A,{name:"i-lucide-alert-triangle",class:"size-4 text-warning shrink-0"}),t[26]||(t[26]=a("span",{class:"font-medium text-warning-700 dark:text-warning-400"},"Diagnosis was interrupted",-1))]),t[29]||(t[29]=a("p",{class:"text-xs text-gray-500"}," A previous diagnosis started but never completed — the server may have restarted. You can restart it below. ",-1)),a("div",ps,[u(N,{icon:"i-lucide-refresh-cw",size:"xs",color:"warning",variant:"solid",loading:e(r),onClick:t[13]||(t[13]=y=>ne(!0))},{default:B(()=>[...t[27]||(t[27]=[C(" Restart diagnosis ",-1)])]),_:1},8,["loading"]),u(N,{size:"xs",color:"neutral",variant:"ghost",loading:e(r),onClick:Re},{default:B(()=>[...t[28]||(t[28]=[C(" Dismiss ",-1)])]),_:1},8,["loading"])]),a("p",vs,"Started "+$(e(we)(e(o).updatedAt)),1)])):T("",!0),e(j)?(m(),G(Oe,{key:6,color:"error",icon:"i-lucide-alert-circle",title:"Streaming diagnosis failed",description:e(j),class:"mt-2"},{actions:B(()=>[u(N,{size:"xs",color:"neutral",variant:"outline",onClick:t[14]||(t[14]=y=>ze(!0))},{default:B(()=>[...t[30]||(t[30]=[C(" Retry (fallback) ",-1)])]),_:1})]),_:1},8,["description"])):T("",!0),Ie()?(m(),G(Me,{key:7,diagnosis:e(o),"last-seen-run-id":g.lastSeenRunId,onViewSection:ge,onPrefillContext:Ae},null,8,["diagnosis","last-seen-run-id"])):T("",!0)],64)):(m(),h("div",xs,[u(A,{name:"i-lucide-sparkles",class:"size-8 mb-2 opacity-30"}),a("p",ys,[t[31]||(t[31]=C(" AI diagnosis is not configured ",-1)),u(ae,{topic:"cluster.ai-setup"})]),u(N,{to:"/settings/ai",size:"xs",color:"neutral",variant:"outline",class:"mt-3"},{default:B(()=>[...t[32]||(t[32]=[C(" Configure in Settings ",-1)])]),_:1}),t[33]||(t[33]=a("p",{class:"text-xs text-gray-400 mt-4 max-w-xs"},[C(" Use the "),a("strong",null,"Show context"),C(" button above to inspect the full diagnosis context and copy it for use with your own AI tool. ")],-1))])),a("div",hs,[u(Le,{to:"/mcp",class:"inline-flex items-center gap-1 text-xs text-gray-400 hover:text-primary transition-colors"},{default:B(()=>[u(A,{name:"i-lucide-bot",class:"size-3"}),t[34]||(t[34]=C(" Query this cluster from your AI agent via the MCP server ",-1))]),_:1})])])}}}),zs=Object.assign(bs,{__name:"DiagnosisPanel"});export{zs as _,ct as p,As as u};