@piwitests/server 0.19.0 → 0.20.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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{eptP4pGv.js → -f7BAm1H.js} +1 -1
- package/.output/public/_nuxt/{Bti38m-M.js → 4gYNA-d4.js} +1 -1
- package/.output/public/_nuxt/{CHEFCN8Q.js → 5A6ITZXj.js} +1 -1
- package/.output/public/_nuxt/{DoUy4UHi.js → 8PUUncmO.js} +2 -2
- package/.output/public/_nuxt/{DS636elg.js → A1pj0VnG.js} +1 -1
- package/.output/public/_nuxt/{B9WhzpKO.js → AbmKWFQQ.js} +1 -1
- package/.output/public/_nuxt/{rWNTSFD6.js → B3obW6cw.js} +3 -3
- package/.output/public/_nuxt/{Bu2aaVIY.js → B7FTvFWq.js} +1 -1
- package/.output/public/_nuxt/{CpjgB2aY.js → B8zkOmwo.js} +1 -1
- package/.output/public/_nuxt/B96M2gdj.js +1 -0
- package/.output/public/_nuxt/{FUXhyidq.js → B99fbi73.js} +1 -1
- package/.output/public/_nuxt/{DslPMqfa.js → B9OLmp0f.js} +1 -1
- package/.output/public/_nuxt/{BccXfBfI.js → BKkF4pPD.js} +1 -1
- package/.output/public/_nuxt/{DP8hfJ9h.js → BT3wGCTI.js} +1 -1
- package/.output/public/_nuxt/{B3B9Ii2A.js → BUa0V0Ly.js} +1 -1
- package/.output/public/_nuxt/{B3HO8kuh.js → BUkim3TM.js} +1 -1
- package/.output/public/_nuxt/{BVaxh6Nl.js → BVc14Ncz.js} +3 -3
- package/.output/public/_nuxt/{DW0xl3I6.js → BY0HxR3t.js} +1 -1
- package/.output/public/_nuxt/B_xAMWQS.js +2 -0
- package/.output/public/_nuxt/{C2_3mdPC.js → BdQoBaOv.js} +1 -1
- package/.output/public/_nuxt/{DT53RWbC.js → BdfhYr-u.js} +1 -1
- package/.output/public/_nuxt/{CtQBsNUb.js → BgRu_3tT.js} +1 -1
- package/.output/public/_nuxt/{SlIRLREZ.js → BiO7RBWb.js} +1 -1
- package/.output/public/_nuxt/BicAJ6U8.js +1 -0
- package/.output/public/_nuxt/{C7P1UCO2.js → Bm62iDV5.js} +1 -1
- package/.output/public/_nuxt/{CZfMdzfk.js → BmUfSNMV.js} +1 -1
- package/.output/public/_nuxt/{tvgqrYDd.js → Bnxf8nbZ.js} +1 -1
- package/.output/public/_nuxt/{ndShiWE8.js → Bow4tTR0.js} +1 -1
- package/.output/public/_nuxt/{D0HNloZ9.js → BrQEE053.js} +1 -1
- package/.output/public/_nuxt/{CV9-fTmY.js → BzRRzmwm.js} +1 -1
- package/.output/public/_nuxt/{DprVVyUQ.js → C0_yH0N7.js} +1 -1
- package/.output/public/_nuxt/{DLSrtpsA.js → C1gTN4Q8.js} +1 -1
- package/.output/public/_nuxt/{ClOqkAcc.js → C2hkrSey.js} +1 -1
- package/.output/public/_nuxt/{ZFiQCMUB.js → C8e1EbJI.js} +1 -1
- package/.output/public/_nuxt/{nv9-6vBK.js → CA9B2HE5.js} +1 -1
- package/.output/public/_nuxt/{KnfsST6Y.js → CAAwCT7H.js} +1 -1
- package/.output/public/_nuxt/{ybDYeNxd.js → CAvY22RE.js} +1 -1
- package/.output/public/_nuxt/{C5iG7O4O.js → CEfS4-oS.js} +1 -1
- package/.output/public/_nuxt/{Bp5ELvx9.js → CIoSMkpp.js} +1 -1
- package/.output/public/_nuxt/{C95YAaJq.js → CIrFl3MW.js} +1 -1
- package/.output/public/_nuxt/{DiOLdHBC.js → CJFtzlQ4.js} +1 -1
- package/.output/public/_nuxt/{BX9ZXe98.js → CNyV9YpI.js} +1 -1
- package/.output/public/_nuxt/CSJ-eOQM.js +1 -0
- package/.output/public/_nuxt/{fVcG504p.js → CTU1mrhq.js} +1 -1
- package/.output/public/_nuxt/{279D2RYp.js → CXEH9OPk.js} +1 -1
- package/.output/public/_nuxt/CahpB9Z2.js +5 -0
- package/.output/public/_nuxt/{B7NBP1C-.js → Cbh--1MW.js} +1 -1
- package/.output/public/_nuxt/CeG9pBAD.js +1 -0
- package/.output/public/_nuxt/{D55D4EYo.js → CeW8v31b.js} +1 -1
- package/.output/public/_nuxt/{BuMC3WjZ.js → CjPfj7ya.js} +1 -1
- package/.output/public/_nuxt/{HXerICAi.js → Cnsmicv2.js} +1 -1
- package/.output/public/_nuxt/{DgE2YE3R.js → CsLojMwR.js} +1 -1
- package/.output/public/_nuxt/{C9_jrmk9.js → Cus22Ud3.js} +2 -2
- package/.output/public/_nuxt/{DX-MDGb3.js → CwGWJbiy.js} +1 -1
- package/.output/public/_nuxt/{BJ0XQElc.js → Cx6gc2VW.js} +1 -1
- package/.output/public/_nuxt/{cHAnlQbv.js → CxyAzHr3.js} +1 -1
- package/.output/public/_nuxt/{BxCKKeYs.js → CzAPFPpL.js} +1 -1
- package/.output/public/_nuxt/{B33iXw77.js → D--H4jLI.js} +1 -1
- package/.output/public/_nuxt/D1POo6S4.js +10 -0
- package/.output/public/_nuxt/{BDicZ1gQ.js → D5tke0B5.js} +1 -1
- package/.output/public/_nuxt/D8nkF-OO.js +3 -0
- package/.output/public/_nuxt/{CzGyac8q.js → DA25RkyK.js} +1 -1
- package/.output/public/_nuxt/{CUtJobDm.js → DIB-5fUJ.js} +1 -1
- package/.output/public/_nuxt/{BPRffDuo.js → DJmoLeVt.js} +1 -1
- package/.output/public/_nuxt/{DGfAxLHV.js → DJxlKFGb.js} +1 -1
- package/.output/public/_nuxt/{81InBX9v.js → DMec-OLo.js} +1 -1
- package/.output/public/_nuxt/{CK_2LZBS.js → DPCxhHri.js} +1 -1
- package/.output/public/_nuxt/{Bn0YQDyy.js → DSqHUrvO.js} +1 -1
- package/.output/public/_nuxt/{BqV0l12c.js → DabzhQB1.js} +1 -1
- package/.output/public/_nuxt/{BfTuX0wq.js → DdwHkKfV.js} +1 -1
- package/.output/public/_nuxt/{C-elpgyr.js → DeY2JkR2.js} +1 -1
- package/.output/public/_nuxt/{DEFEpYzn.js → DfgOx_ou.js} +1 -1
- package/.output/public/_nuxt/DmkUdSS4.js +1 -0
- package/.output/public/_nuxt/{Ar3IelOY.js → DoIREDVb.js} +1 -1
- package/.output/public/_nuxt/DpZ1r1HA.js +1 -0
- package/.output/public/_nuxt/{Jo8kRmHz.js → Dpd16JVI.js} +1 -1
- package/.output/public/_nuxt/{BSIxhGsh.js → DqcKngf3.js} +1 -1
- package/.output/public/_nuxt/{BMvCSA6h.js → DrfE8IY0.js} +1 -1
- package/.output/public/_nuxt/{eaVkJRSa.js → DsesNydr.js} +1 -1
- package/.output/public/_nuxt/{zQyPuvV1.js → DtHJgCS8.js} +1 -1
- package/.output/public/_nuxt/Dtd4rC58.js +9 -0
- package/.output/public/_nuxt/{NQikbhmK.js → Du2W7Jne.js} +37 -36
- package/.output/public/_nuxt/{CDk0q2hV.js → DuwtTfO8.js} +1 -1
- package/.output/public/_nuxt/{B44A4LSJ.js → Dy-TJ0Mt.js} +1 -1
- package/.output/public/_nuxt/{-09h6CA9.js → Dy86h-7P.js} +1 -1
- package/.output/public/_nuxt/{Cdff9XNh.js → Dyeqn3aG.js} +1 -1
- package/.output/public/_nuxt/{Dnpkl-1q.js → FaFoMVKo.js} +1 -1
- package/.output/public/_nuxt/GPNI1ffD.js +4 -0
- package/.output/public/_nuxt/{BCMuIgP5.js → H94BMf3L.js} +1 -1
- package/.output/public/_nuxt/HPNQD6v3.js +1 -0
- package/.output/public/_nuxt/HXadJrHu.js +2 -0
- package/.output/public/_nuxt/{YVN7WG7q.js → KyA_4Ks-.js} +1 -1
- package/.output/public/_nuxt/{CYsTqbBS.js → L3kAWB2a.js} +1 -1
- package/.output/public/_nuxt/{Dk9fwOCm.js → McL25vkx.js} +2 -2
- package/.output/public/_nuxt/Nn93e_Mz.js +1 -0
- package/.output/public/_nuxt/UdR3DBPS.js +1 -0
- package/.output/public/_nuxt/{SfMRXW25.js → Und3xXFc.js} +1 -1
- package/.output/public/_nuxt/_mj6CfPa.js +1 -0
- package/.output/public/_nuxt/{BPQoBGg5.js → b-GYfcrQ.js} +1 -1
- package/.output/public/_nuxt/{DHDtnj7p.js → bLcjFslv.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/e659b3e1-0e61-4971-940e-10063f9f4763.json +1 -0
- package/.output/public/_nuxt/entry.DmptwB51.css +1 -0
- package/.output/public/_nuxt/{y17lMTFy.js → hC_z4G8p.js} +1 -1
- package/.output/public/_nuxt/{CTxDO9fB.js → hNh4CIL0.js} +1 -1
- package/.output/public/_nuxt/{CGNkHojN.js → l5WKbU4h.js} +1 -1
- package/.output/public/_nuxt/{DcmZRa_F.js → oAClCn_h.js} +1 -1
- package/.output/public/_nuxt/{IvQlbZk6.js → pQqGiNch.js} +1 -1
- package/.output/public/_nuxt/ryMzSDUj.js +2 -0
- package/.output/server/chunks/_/collect.mjs +1 -1
- package/.output/server/chunks/_/markers.mjs +1 -1
- package/.output/server/chunks/_/quarantine.mjs +1 -1
- package/.output/server/chunks/_/users.mjs +1 -1
- package/.output/server/chunks/build/{BrowserBadge-D33lqUcj.mjs → BrowserBadge-MFvBwxmD.mjs} +66 -6
- package/.output/server/chunks/build/BrowserBadge-MFvBwxmD.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-DvUBGagc.mjs → Checkbox-4Q5d0fa0.mjs} +4 -4
- package/.output/server/chunks/build/Checkbox-4Q5d0fa0.mjs.map +1 -0
- package/.output/server/chunks/build/CiEnvCard-DB5DvBh1.mjs +1492 -0
- package/.output/server/chunks/build/CiEnvCard-DB5DvBh1.mjs.map +1 -0
- package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs +1 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs +1 -1
- package/.output/server/chunks/build/{DiagnosisPanel-B646dK4p.mjs → DiagnosisPanel-CALyEmcJ.mjs} +3 -3
- package/.output/server/chunks/build/DiagnosisPanel-CALyEmcJ.mjs.map +1 -0
- package/.output/server/chunks/build/{EmptyState-Dtlab7S9.mjs → EmptyState-DC2q_7TD.mjs} +3 -3
- package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +1 -0
- package/.output/server/chunks/build/{EntityLinks-D3fp57pR.mjs → EntityLinks-BBHWssHH.mjs} +4 -4
- package/.output/server/chunks/build/EntityLinks-BBHWssHH.mjs.map +1 -0
- package/.output/server/chunks/build/{EnvManagedBadge-Bg3FSiU1.mjs → EnvManagedBadge-UwD2b9v2.mjs} +2 -2
- package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-Ck2XLt8d.mjs → Modal-pSDlXzT3.mjs} +2 -2
- package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs → OpenInIdeLink-CQWKKChd.mjs} +3 -3
- package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs.map → OpenInIdeLink-CQWKKChd.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-CxfQ5wtN.mjs → ProjectTestCasesTable-Bo61P5K1.mjs} +8 -8
- package/.output/server/chunks/build/{ProjectTestCasesTable-CxfQ5wtN.mjs.map → ProjectTestCasesTable-Bo61P5K1.mjs.map} +1 -1
- package/.output/server/chunks/build/{RovingFocusItem-BJSzTBjy.mjs → RovingFocusItem--OEHI2P3.mjs} +2 -2
- package/.output/server/chunks/build/RovingFocusItem--OEHI2P3.mjs.map +1 -0
- package/.output/server/chunks/build/RunReports-DFLv51TX.mjs +1 -1
- package/.output/server/chunks/build/{Select-CUqj50wi.mjs → Select-5DK9frQ7.mjs} +3 -3
- package/.output/server/chunks/build/Select-5DK9frQ7.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs → SelectMenu-D-2FSqBU.mjs} +939 -7
- package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs.map → SelectMenu-D-2FSqBU.mjs.map} +1 -1
- package/.output/server/chunks/build/{SettingsField-D6iEYbEc.mjs → SettingsField-BZfx4ma1.mjs} +2 -2
- package/.output/server/chunks/build/SettingsField-BZfx4ma1.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-DgCa80mf.mjs → Slideover-D270EZZD.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-CgUioOYB.mjs → Switch-B5Fp8ULt.mjs} +2 -2
- package/.output/server/chunks/build/Switch-B5Fp8ULt.mjs.map +1 -0
- package/.output/server/chunks/build/Table-BRk04Hd2.mjs +1 -1
- package/.output/server/chunks/build/{Tabs-Bbsg9wag.mjs → Tabs-BkSOnbaB.mjs} +2 -2
- package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +1 -0
- package/.output/server/chunks/build/{TestCaseHistoryChart-nMLPhdvD.mjs → TestCaseHistoryChart-CSi64vVA.mjs} +5 -5
- package/.output/server/chunks/build/TestCaseHistoryChart-CSi64vVA.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar-j6h2Jp6A.mjs → TestStatusBar-DX3EhlyP.mjs} +2 -2
- package/.output/server/chunks/build/TestStatusBar-DX3EhlyP.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-BOazooWP.mjs → Tooltip-Dv4htNP6.mjs} +3 -3
- package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +1 -0
- package/.output/server/chunks/build/{VisuallyHiddenInput-D6kBJxVd.mjs → VisuallyHiddenInput-BHvzNumK.mjs} +2 -2
- package/.output/server/chunks/build/VisuallyHiddenInput-BHvzNumK.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-z5N6HPyC.mjs → _id_-BdG37K7s.mjs} +12 -12
- package/.output/server/chunks/build/_id_-BdG37K7s.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BHh65pfg.mjs → _id_-BdJs7BJZ.mjs} +57 -33
- package/.output/server/chunks/build/{_id_-BHh65pfg.mjs.map → _id_-BdJs7BJZ.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-B78ky13D.mjs → _id_-BxA6IgWr.mjs} +96 -73
- package/.output/server/chunks/build/_id_-BxA6IgWr.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-Rzkqx55x.mjs → _id_-C_uSBiyU.mjs} +22 -23
- package/.output/server/chunks/build/{_id_-Rzkqx55x.mjs.map → _id_-C_uSBiyU.mjs.map} +1 -1
- package/.output/server/chunks/build/{about-CvSP73Ug.mjs → about-BE0UV-8-.mjs} +365 -18
- package/.output/server/chunks/build/about-BE0UV-8-.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs → ai-Cn05ch0u.mjs} +9 -9
- package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs.map → ai-Cn05ch0u.mjs.map} +1 -1
- package/.output/server/chunks/build/{analytics-CJPC6t4L.mjs → analytics-Bo_B_jko.mjs} +20 -21
- package/.output/server/chunks/build/analytics-Bo_B_jko.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{default-zvbFgDJG.mjs → default-CbNHaFsy.mjs} +603 -71
- package/.output/server/chunks/build/default-CbNHaFsy.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-DyuVEgtB.mjs → docs-B_llWMxx.mjs} +6 -6
- package/.output/server/chunks/build/{docs-DyuVEgtB.mjs.map → docs-B_llWMxx.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-CFR5g2Qf.mjs → edit-J0asTFg8.mjs} +4 -5
- package/.output/server/chunks/build/edit-J0asTFg8.mjs.map +1 -0
- package/.output/server/chunks/build/fetch-B4FwBOzu.mjs +1 -1
- package/.output/server/chunks/build/{import-CZo3djDi.mjs → import-CS9oylTN.mjs} +4 -4
- package/.output/server/chunks/build/import-CS9oylTN.mjs.map +1 -0
- package/.output/server/chunks/build/{index-Stqw0dEI.mjs → index-DE45ycdZ.mjs} +9 -9
- package/.output/server/chunks/build/index-DE45ycdZ.mjs.map +1 -0
- package/.output/server/chunks/build/{index-gCw_y4ZJ.mjs → index-e9skCi-V.mjs} +10 -11
- package/.output/server/chunks/build/{index-gCw_y4ZJ.mjs.map → index-e9skCi-V.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-D7fe97l3.mjs → index-hGHlmyxj.mjs} +299 -91
- package/.output/server/chunks/build/index-hGHlmyxj.mjs.map +1 -0
- package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
- package/.output/server/chunks/build/login-Da4u1IlW.mjs +1 -1
- package/.output/server/chunks/build/{mcp-B3IUvRgD.mjs → mcp-uhVCCwQM.mjs} +339 -10
- package/.output/server/chunks/build/mcp-uhVCCwQM.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-abDv0id8.mjs → notifications-fx_qnKGA.mjs} +4 -4
- package/.output/server/chunks/build/notifications-fx_qnKGA.mjs.map +1 -0
- package/.output/server/chunks/build/{pr-feedback-DjZID6q-.mjs → pr-feedback-X6-70iF0.mjs} +3 -3
- package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +24 -24
- package/.output/server/chunks/build/{settings-Du7YqF8i.mjs → settings-CCYe7rsc.mjs} +3 -3
- package/.output/server/chunks/build/settings-CCYe7rsc.mjs.map +1 -0
- package/.output/server/chunks/build/{storage-B4vzxd8G.mjs → storage-CJEmviCD.mjs} +5 -5
- package/.output/server/chunks/build/storage-CJEmviCD.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-DUvaO1He.mjs → test-cases-thBbAykw.mjs} +9 -9
- package/.output/server/chunks/build/test-cases-thBbAykw.mjs.map +1 -0
- package/.output/server/chunks/build/{useAiStatus-CWvIo32Q.mjs → useAiStatus-CxjMmDDY.mjs} +8 -8
- package/.output/server/chunks/build/useAiStatus-CxjMmDDY.mjs.map +1 -0
- package/.output/server/chunks/build/{useCopyRich-BemRsKgv.mjs → useCopyRich-RJKhWoyj.mjs} +74 -44
- package/.output/server/chunks/build/useCopyRich-RJKhWoyj.mjs.map +1 -0
- package/.output/server/chunks/build/{useDesktopDownload-D49JRQSw.mjs → useDesktopDownload-BepjqxOt.mjs} +2 -2
- package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpenInIde-4GFf-kdi.mjs → useOpenInIde-BbTnPhFA.mjs} +2 -2
- package/.output/server/chunks/build/useOpenInIde-BbTnPhFA.mjs.map +1 -0
- package/.output/server/chunks/build/{useSettingsNav-C3O866KC.mjs → useSettingsNav-DnQKacz8.mjs} +4 -4
- package/.output/server/chunks/build/useSettingsNav-DnQKacz8.mjs.map +1 -0
- package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs +11 -0
- package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs.map +1 -0
- package/.output/server/chunks/build/{wasted-time-lYkx5YO4.mjs → wasted-time-BNTPIyrC.mjs} +4 -4
- package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +3471 -2802
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs +1 -1
- package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +88 -0
- package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects.get.mjs +1 -1
- package/.output/server/chunks/routes/api/search.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
- package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +5 -3
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +1 -2
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs +4 -128
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +1 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
- package/.output/server/chunks/routes/api/version.get.mjs +1 -1
- package/.output/server/chunks/routes/mcp.post.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/index.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/BYDaY0Z7.js +0 -1
- package/.output/public/_nuxt/Bc8mOoz9.js +0 -4
- package/.output/public/_nuxt/BeLWlVK0.js +0 -1
- package/.output/public/_nuxt/BpUaY9nH.js +0 -2
- package/.output/public/_nuxt/CHNwfU1y.js +0 -1
- package/.output/public/_nuxt/CNFYDQmj.js +0 -1
- package/.output/public/_nuxt/CU5S9GCh.js +0 -1
- package/.output/public/_nuxt/CrwJAwhk.js +0 -1
- package/.output/public/_nuxt/CuSVQEkS.js +0 -3
- package/.output/public/_nuxt/CylWPruw.js +0 -1
- package/.output/public/_nuxt/DDDpCFpF.js +0 -1
- package/.output/public/_nuxt/DVDXJYq2.js +0 -2
- package/.output/public/_nuxt/Dgf5N4Ng.js +0 -1
- package/.output/public/_nuxt/DiZyJYez.js +0 -1
- package/.output/public/_nuxt/OSduWzyz.js +0 -1
- package/.output/public/_nuxt/WsxFTEFq.js +0 -10
- package/.output/public/_nuxt/aQgs_c6e.js +0 -9
- package/.output/public/_nuxt/builds/meta/ab473028-4b37-4884-b243-b8f6e5046e5e.json +0 -1
- package/.output/public/_nuxt/dYCKgE-3.js +0 -5
- package/.output/public/_nuxt/entry.CPhW41mh.css +0 -1
- package/.output/public/_nuxt/g26aVPxc.js +0 -1
- package/.output/server/chunks/_/import-runs.mjs +0 -351
- package/.output/server/chunks/_/import-runs.mjs.map +0 -1
- package/.output/server/chunks/build/BrowserBadge-D33lqUcj.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-DvUBGagc.mjs.map +0 -1
- package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs +0 -631
- package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-B646dK4p.mjs.map +0 -1
- package/.output/server/chunks/build/EmptyState-Dtlab7S9.mjs.map +0 -1
- package/.output/server/chunks/build/EntityLinks-D3fp57pR.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-Bg3FSiU1.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-Ck2XLt8d.mjs.map +0 -1
- package/.output/server/chunks/build/RovingFocusItem-BJSzTBjy.mjs.map +0 -1
- package/.output/server/chunks/build/Select-CUqj50wi.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-D6iEYbEc.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-DgCa80mf.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-CgUioOYB.mjs.map +0 -1
- package/.output/server/chunks/build/Tabs-Bbsg9wag.mjs.map +0 -1
- package/.output/server/chunks/build/TestCaseHistoryChart-nMLPhdvD.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar-j6h2Jp6A.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-BOazooWP.mjs.map +0 -1
- package/.output/server/chunks/build/VisuallyHiddenInput-D6kBJxVd.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-B78ky13D.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-z5N6HPyC.mjs.map +0 -1
- package/.output/server/chunks/build/about-CvSP73Ug.mjs.map +0 -1
- package/.output/server/chunks/build/analytics-CJPC6t4L.mjs.map +0 -1
- package/.output/server/chunks/build/default-zvbFgDJG.mjs.map +0 -1
- package/.output/server/chunks/build/edit-CFR5g2Qf.mjs.map +0 -1
- package/.output/server/chunks/build/import-CZo3djDi.mjs.map +0 -1
- package/.output/server/chunks/build/index-D7fe97l3.mjs.map +0 -1
- package/.output/server/chunks/build/index-Stqw0dEI.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-B3IUvRgD.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-abDv0id8.mjs.map +0 -1
- package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs.map +0 -1
- package/.output/server/chunks/build/settings-Du7YqF8i.mjs.map +0 -1
- package/.output/server/chunks/build/storage-B4vzxd8G.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-DUvaO1He.mjs.map +0 -1
- package/.output/server/chunks/build/useAiStatus-CWvIo32Q.mjs.map +0 -1
- package/.output/server/chunks/build/useCopyRich-BemRsKgv.mjs.map +0 -1
- package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs.map +0 -1
- package/.output/server/chunks/build/useOpenInIde-4GFf-kdi.mjs.map +0 -1
- package/.output/server/chunks/build/useSettingsNav-C3O866KC.mjs.map +0 -1
- package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs +0 -7
- package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs.map +0 -1
- package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs +0 -940
- package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs.map +0 -1
- package/.output/server/chunks/build/wasted-time-lYkx5YO4.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as P,Y as L,Z as O,U as j,o as r,c as v,j as C,g as f,V as q,k as e,W as z,S as M,C as D,X as I,f as u,v as h,F as
|
|
1
|
+
import{d as P,Y as L,Z as O,U as j,o as r,c as v,j as C,g as f,V as q,k as e,W as z,S as M,C as D,X as I,f as u,v as h,F as T,h as w,$ as H,a2 as W,a3 as X,a5 as Y,a6 as Z,a7 as G,aO as J,aP as Q,at as ee,i as ae,q as o,p as S,m as R,t as A,a8 as te}from"./Du2W7Jne.js";import{L as se}from"./L3kAWB2a.js";import{u as re}from"./UdR3DBPS.js";import{u as le}from"./Nn93e_Mz.js";import{V as ie}from"./DmkUdSS4.js";const[oe,ne]=H("SwitchRoot");var de=P({inheritAttrs:!1,__name:"SwitchRoot",props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:"on"},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(g,{emit:c}){const t=g,d=c,{disabled:n}=L(t),a=O(t,"modelValue",d,{defaultValue:t.defaultValue??t.falseValue,passive:t.modelValue===void 0}),i=w(()=>a.value===t.trueValue);function m(){n.value||(a.value=i.value?t.falseValue:t.trueValue)}const{forwardRef:V,currentElement:b}=j(),x=re(b),k=le(),_=w(()=>t.id&&b.value?document.querySelector(`[for="${t.id}"]`)?.innerText:void 0);return ne({checked:i,toggleCheck:m,disabled:n}),(s,B)=>(r(),v(T,null,[C(e(I),z({id:s.id,ref:e(V),role:"switch",type:s.as==="button"?"button":void 0,value:s.value,"aria-label":s.$attrs["aria-label"]||_.value,"aria-checked":i.value,"aria-required":s.required,"data-state":i.value?"checked":"unchecked","data-disabled":e(n)?"":void 0,"as-child":s.asChild,as:s.as,disabled:e(n)},{...e(k),...s.$attrs},{onClick:m,onKeydown:M(D(m,["prevent"]),["enter"])}),{default:f(()=>[q(s.$slots,"default",{modelValue:e(a),checked:i.value})]),_:3},16,["id","type","value","aria-label","aria-checked","aria-required","data-state","data-disabled","as-child","as","disabled","onKeydown"]),e(x)&&s.name?(r(),u(e(ie),z({key:0,type:"checkbox",name:s.name,disabled:e(n),required:s.required,value:s.value,checked:i.value},e(k)),null,16,["name","disabled","required","value","checked"])):h("v-if",!0)],64))}}),ue=de,ce=P({__name:"SwitchThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(g){const c=oe();return j(),(t,d)=>(r(),u(e(I),{"data-state":e(c).checked.value?"checked":"unchecked","data-disabled":e(c).disabled.value?"":void 0,"as-child":t.asChild,as:t.as},{default:f(()=>[q(t.$slots,"default")]),_:3},8,["data-state","data-disabled","as-child","as"]))}}),pe=ce;const he={slots:{root:"relative flex items-start",base:["inline-flex items-center shrink-0 rounded-full border-2 border-transparent focus-visible:outline-3 data-[state=unchecked]:bg-accented","transition-[background] duration-200"],container:"flex items-center",thumb:"group pointer-events-none rounded-full bg-default shadow-lg ring-0 transition-transform duration-200 data-[state=unchecked]:translate-x-0 data-[state=unchecked]:rtl:-translate-x-0 flex items-center justify-center",icon:["absolute shrink-0 group-data-[state=unchecked]:text-dimmed opacity-0 size-10/12","transition-[color,opacity] duration-200"],wrapper:"ms-2",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"data-[state=checked]:bg-primary outline-primary/25",icon:"group-data-[state=checked]:text-primary"},secondary:{base:"data-[state=checked]:bg-secondary outline-secondary/25",icon:"group-data-[state=checked]:text-secondary"},success:{base:"data-[state=checked]:bg-success outline-success/25",icon:"group-data-[state=checked]:text-success"},info:{base:"data-[state=checked]:bg-info outline-info/25",icon:"group-data-[state=checked]:text-info"},warning:{base:"data-[state=checked]:bg-warning outline-warning/25",icon:"group-data-[state=checked]:text-warning"},error:{base:"data-[state=checked]:bg-error outline-error/25",icon:"group-data-[state=checked]:text-error"},neutral:{base:"data-[state=checked]:bg-inverted outline-inverted/25",icon:"group-data-[state=checked]:text-highlighted"}},size:{xs:{base:"w-7",container:"h-4",thumb:"size-3 data-[state=checked]:translate-x-3 data-[state=checked]:rtl:-translate-x-3",wrapper:"text-xs"},sm:{base:"w-8",container:"h-4",thumb:"size-3.5 data-[state=checked]:translate-x-3.5 data-[state=checked]:rtl:-translate-x-3.5",wrapper:"text-xs"},md:{base:"w-9",container:"h-5",thumb:"size-4 data-[state=checked]:translate-x-4 data-[state=checked]:rtl:-translate-x-4",wrapper:"text-sm"},lg:{base:"w-10",container:"h-5",thumb:"size-4.5 data-[state=checked]:translate-x-4.5 data-[state=checked]:rtl:-translate-x-4.5",wrapper:"text-sm"},xl:{base:"w-11",container:"h-6",thumb:"size-5 data-[state=checked]:translate-x-5 data-[state=checked]:rtl:-translate-x-5",wrapper:"text-base"}},checked:{true:{icon:"group-data-[state=checked]:opacity-100"}},unchecked:{true:{icon:"group-data-[state=unchecked]:opacity-100"}},loading:{true:{icon:"animate-spin"}},highlight:{true:""},required:{true:{label:"after:content-['*'] after:ms-0.5 after:text-error"}},disabled:{true:{root:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}}},compoundVariants:[{color:"primary",highlight:!0,class:{base:"ring ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring ring-success"}},{color:"info",highlight:!0,class:{base:"ring ring-info"}},{color:"warning",highlight:!0,class:{base:"ring ring-warning"}},{color:"error",highlight:!0,class:{base:"ring ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring ring-inverted"}}],defaultVariants:{color:"primary",size:"md"}},ye=Object.assign({inheritAttrs:!1},{__name:"USwitch",props:{as:{type:null,required:!1},color:{type:null,required:!1},size:{type:null,required:!1},highlight:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},checkedIcon:{type:null,required:!1},uncheckedIcon:{type:null,required:!1},label:{type:String,required:!1},description:{type:String,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},value:{type:String,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},trueValue:{type:null,required:!1},falseValue:{type:null,required:!1}},emits:["change","update:modelValue"],setup(g,{emit:c}){const t=g,d=W(),n=c,a=X("switch",t),i=Y(),m=Z(G(a,"required","value","defaultValue","modelValue","trueValue","falseValue"),n),{id:V,emitFormChange:b,emitFormInput:x,size:k,color:_,highlight:s,name:B,disabled:F,ariaAttrs:E}=J(t),$=V.value??Q(),N=ee(),U=w(()=>{const{"data-state":p,...y}=N;return y}),l=w(()=>te({extend:he,...i.ui?.switch||{}})({size:k.value??a.size,color:_.value??a.color,highlight:s.value??a.highlight,required:a.required,loading:a.loading,disabled:F.value||a.loading}));function K(p){const y=new Event("change",{target:{value:p}});n("change",y),b(),x()}return(p,y)=>(r(),u(e(I),{as:e(a).as,"data-slot":p.$attrs["data-slot"]??"root",class:o(l.value.root({class:[e(a).ui?.root,e(a).class]}))},{default:f(()=>[ae("div",{"data-slot":"container",class:o(l.value.container({class:e(a).ui?.container}))},[C(e(ue),z({id:e($)},{...e(m),...U.value,...e(E)},{name:e(B),disabled:e(F)||e(a).loading,"data-slot":"base",class:l.value.base({class:e(a).ui?.base}),"onUpdate:modelValue":K}),{default:f(()=>[C(e(pe),{"data-slot":"thumb",class:o(l.value.thumb({class:e(a).ui?.thumb}))},{default:f(()=>[e(a).loading?(r(),u(S,{key:0,name:e(a).loadingIcon||e(i).ui.icons.loading,"data-slot":"icon",class:o(l.value.icon({class:e(a).ui?.icon,checked:!0,unchecked:!0}))},null,8,["name","class"])):(r(),v(T,{key:1},[e(a).checkedIcon?(r(),u(S,{key:0,name:e(a).checkedIcon,"data-slot":"icon",class:o(l.value.icon({class:e(a).ui?.icon,checked:!0}))},null,8,["name","class"])):h("",!0),e(a).uncheckedIcon?(r(),u(S,{key:1,name:e(a).uncheckedIcon,"data-slot":"icon",class:o(l.value.icon({class:e(a).ui?.icon,unchecked:!0}))},null,8,["name","class"])):h("",!0)],64))]),_:1},8,["class"])]),_:1},16,["id","name","disabled","class"])],2),e(a).label||d.label||e(a).description||d.description?(r(),v("div",{key:0,"data-slot":"wrapper",class:o(l.value.wrapper({class:e(a).ui?.wrapper}))},[e(a).label||d.label?(r(),u(e(se),{key:0,for:e($),"data-slot":"label",class:o(l.value.label({class:e(a).ui?.label}))},{default:f(()=>[q(p.$slots,"label",{label:e(a).label},()=>[R(A(e(a).label),1)])]),_:3},8,["for","class"])):h("",!0),e(a).description||d.description?(r(),v("p",{key:1,"data-slot":"description",class:o(l.value.description({class:e(a).ui?.description}))},[q(p.$slots,"description",{description:e(a).description},()=>[R(A(e(a).description),1)])],2)):h("",!0)],2)):h("",!0)]),_:3},8,["as","data-slot","class"]))}});export{ye as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as f}from"./
|
|
1
|
+
import{_ as f}from"./BT3wGCTI.js";import{d as y,o as s,f as b,g as d,c as o,F as r,y as u,k as p,Q as h,q as m,i as n,t as l,h as x}from"./Du2W7Jne.js";const w={key:0,class:"flex h-2.5 w-full min-w-30 overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-700"},g={key:1,class:"text-xs text-zinc-400 dark:text-zinc-500 italic"},v={class:"min-w-52 space-y-1.5 rounded-md bg-zinc-900 px-3 py-2 text-sm shadow-lg"},z={class:"font-semibold text-white"},B={class:"text-white"},C={class:"ml-4 tabular-nums font-medium text-white"},F={class:"ml-auto tabular-nums text-zinc-300 text-xs"},N=y({__name:"TestStatusBar",props:{passed:{},failed:{},skipped:{},flaky:{},total:{},didNotRun:{}},setup(i){const t=i,c=x(()=>t.total?[{key:"passed",label:"Passed",count:t.passed-t.flaky,color:"bg-emerald-500"},{key:"failed",label:"Failed",count:t.failed,color:"bg-rose-500"},{key:"flaky",label:"Flaky",count:t.flaky,color:"bg-purple-500"},{key:"skipped",label:"Skipped",count:t.skipped,color:"bg-zinc-400"},{key:"didNotRun",label:"Didn't run",count:t.didNotRun??0,color:"bg-amber-300 dark:bg-amber-700"}].filter(a=>a.count>0).map(a=>({...a,widthPct:a.count/t.total*100,displayPct:(a.count/t.total*100).toFixed(1)})):[]);return(k,a)=>{const _=f;return s(),b(_,{ui:{content:"overflow-visible !p-0"}},{content:d(()=>[n("div",v,[n("div",z,l(i.total)+" tests total",1),(s(!0),o(r,null,u(p(c),e=>(s(),o("div",{key:e.key,class:"flex items-center gap-2 whitespace-nowrap"},[n("span",{class:m([e.color,"inline-block h-2.5 w-2.5 shrink-0 rounded-sm"])},null,2),n("span",B,l(e.label),1),n("span",C,l(e.count),1),n("span",F,l(e.displayPct)+"%",1)]))),128))])]),default:d(()=>[i.total>0?(s(),o("div",w,[(s(!0),o(r,null,u(p(c),e=>(s(),o("div",{key:e.key,class:m([e.color,"h-full transition-all"]),style:h({width:e.widthPct+"%"})},null,6))),128))])):(s(),o("div",g,"No tests"))]),_:1})}}}),R=Object.assign(N,{__name:"TestStatusBar"});export{R as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as
|
|
1
|
+
import{$ as D,d as G,U as K,Z as J,at as L,o as i,c as B,f,g as v,V as C,k as e,W as _,S as Q,C as Y,ag as T,X as $,v as x,F as ee,h as m,b0 as E,aN as P,j as R,aD as ae,a2 as re,a3 as te,a5 as se,a6 as le,a7 as ie,aO as oe,aP as ne,i as de,q as c,p as j,m as N,t as M,a8 as ue}from"./Du2W7Jne.js";import{i as O}from"./DfgOx_ou.js";import{u as ce}from"./UdR3DBPS.js";import{u as pe}from"./Nn93e_Mz.js";import{V as fe}from"./DmkUdSS4.js";import{R as ve}from"./pQqGiNch.js";import{L as U}from"./L3kAWB2a.js";const[be]=D("CheckboxGroupRoot");function A(o){return o==="indeterminate"}function H(o){return A(o)?"indeterminate":o?"checked":"unchecked"}const[me,he]=D("CheckboxRoot");var ge=G({inheritAttrs:!1,__name:"CheckboxRoot",props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:"on"},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(o,{emit:h}){const r=o,l=h,{forwardRef:g,currentElement:a}=K(),s=be(null),d=J(r,"modelValue",l,{defaultValue:r.defaultValue??r.falseValue,passive:r.modelValue===void 0}),p=m(()=>s?.disabled.value||r.disabled),q=m(()=>P(d.value,r.trueValue)),u=m(()=>E(s?.modelValue.value)?d.value==="indeterminate"?"indeterminate":q.value:O(s.modelValue.value,r.value));function z(){if(E(s?.modelValue.value))d.value==="indeterminate"?d.value=r.trueValue:d.value=q.value?r.falseValue:r.trueValue;else{const t=[...s.modelValue.value||[]];if(O(t,r.value)){const y=t.findIndex(I=>P(I,r.value));t.splice(y,1)}else t.push(r.value);s.modelValue.value=t}}const F=ce(a),k=pe(),S=L(),V=m(()=>{if(!S["aria-label"])return r.id&&a.value?document.querySelector(`[for="${r.id}"]`)?.innerText:void 0});return he({disabled:p,state:u}),(t,y)=>(i(),B(ee,null,[(i(),f(T(e(s)?.rovingFocus.value?e(ve):e($)),_({...t.$attrs,...e(k)},{id:t.id,ref:e(g),role:"checkbox","as-child":t.asChild,as:t.as,type:t.as==="button"?"button":void 0,"aria-checked":e(A)(u.value)?"mixed":u.value,"aria-required":t.required,"aria-label":t.$attrs["aria-label"]||V.value,"data-state":e(H)(u.value),"data-disabled":p.value?"":void 0,disabled:p.value,focusable:e(s)?.rovingFocus.value?!p.value:void 0,onKeydown:Q(Y(()=>{},["prevent"]),["enter"]),onClick:z}),{default:v(()=>[C(t.$slots,"default",{modelValue:e(d),state:u.value})]),_:3},16,["id","as-child","as","type","aria-checked","aria-required","aria-label","data-state","data-disabled","disabled","focusable","onKeydown"])),e(F)&&t.name&&!e(s)?(i(),f(e(fe),_({key:0,type:"checkbox",checked:!!u.value,name:t.name,value:t.value,disabled:p.value,required:t.required},e(k)),null,16,["checked","name","value","disabled","required"])):x("v-if",!0)],64))}}),ye=ge,qe=G({__name:"CheckboxIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(o){const{forwardRef:h}=K(),r=me();return(l,g)=>(i(),f(e(ae),{present:l.forceMount||e(A)(e(r).state.value)||e(r).state.value===!0},{default:v(()=>[R(e($),_({ref:e(h),"data-state":e(H)(e(r).state.value),"data-disabled":e(r).disabled.value?"":void 0,style:{pointerEvents:"none"},"as-child":l.asChild,as:l.as},l.$attrs),{default:v(()=>[C(l.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),ke=qe;const Ve={slots:{root:"relative flex items-start",container:"flex items-center",base:"rounded-sm ring ring-inset ring-accented overflow-hidden focus-visible:outline-3",indicator:"flex items-center justify-center size-full text-inverted",icon:"shrink-0 size-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"outline-primary/25 focus-visible:ring-primary",indicator:"bg-primary"},secondary:{base:"outline-secondary/25 focus-visible:ring-secondary",indicator:"bg-secondary"},success:{base:"outline-success/25 focus-visible:ring-success",indicator:"bg-success"},info:{base:"outline-info/25 focus-visible:ring-info",indicator:"bg-info"},warning:{base:"outline-warning/25 focus-visible:ring-warning",indicator:"bg-warning"},error:{base:"outline-error/25 focus-visible:ring-error",indicator:"bg-error"},neutral:{base:"outline-inverted/25 focus-visible:ring-inverted",indicator:"bg-inverted"}},variant:{list:{root:""},card:{root:"border border-muted rounded-lg"}},indicator:{start:{root:"flex-row",wrapper:"ms-2"},end:{root:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{base:"size-3",container:"h-4",wrapper:"text-xs"},sm:{base:"size-3.5",container:"h-4",wrapper:"text-xs"},md:{base:"size-4",container:"h-5",wrapper:"text-sm"},lg:{base:"size-4.5",container:"h-5",wrapper:"text-sm"},xl:{base:"size-5",container:"h-6",wrapper:"text-base"}},required:{true:{label:"after:content-['*'] after:ms-0.5 after:text-error"}},disabled:{true:{root:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},highlight:{true:""},checked:{true:""}},compoundVariants:[{size:"xs",variant:"card",class:{root:"p-2.5"}},{size:"sm",variant:"card",class:{root:"p-3"}},{size:"md",variant:"card",class:{root:"p-3.5"}},{size:"lg",variant:"card",class:{root:"p-4"}},{size:"xl",variant:"card",class:{root:"p-4.5"}},{color:"primary",variant:"card",class:{root:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{root:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{root:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{root:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{root:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{root:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{root:"has-data-[state=checked]:border-inverted"}},{variant:"card",disabled:!0,class:{root:"cursor-not-allowed"}},{color:"primary",highlight:!0,class:{base:"ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring-success"}},{color:"info",highlight:!0,class:{base:"ring-info"}},{color:"warning",highlight:!0,class:{base:"ring-warning"}},{color:"error",highlight:!0,class:{base:"ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring-inverted"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},Ie=Object.assign({inheritAttrs:!1},{__name:"UCheckbox",props:{as:{type:null,required:!1},label:{type:String,required:!1},description:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},indicator:{type:null,required:!1},highlight:{type:Boolean,required:!1},icon:{type:null,required:!1},indeterminateIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},required:{type:Boolean,required:!1},name:{type:String,required:!1},value:{type:null,required:!1},id:{type:String,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},trueValue:{type:null,required:!1},falseValue:{type:null,required:!1}},emits:["change","update:modelValue"],setup(o,{emit:h}){const r=o,l=re(),g=h,a=te("checkbox",r),s=se(),d=le(ie(a,"required","value","defaultValue","modelValue","trueValue","falseValue"),g),{id:p,emitFormChange:q,emitFormInput:u,size:z,color:F,highlight:k,name:S,disabled:V,ariaAttrs:t}=oe(r),y=p.value??ne(),I=L(),W=m(()=>{const{"data-state":b,...w}=I;return w}),n=m(()=>ue({extend:Ve,...s.ui?.checkbox||{}})({size:z.value??a.size,color:F.value??a.color,variant:a.variant,indicator:a.indicator,highlight:k.value??a.highlight,required:a.required,disabled:V.value}));function X(b){const w=new Event("change",{target:{value:b}});g("change",w),q(),u()}return(b,w)=>(i(),f(e($),{as:!e(a).variant||e(a).variant==="list"?e(a).as:e(U),"data-slot":b.$attrs["data-slot"]??"root",class:c(n.value.root({class:[e(a).ui?.root,e(a).class]}))},{default:v(()=>[de("div",{"data-slot":"container",class:c(n.value.container({class:e(a).ui?.container}))},[R(e(ye),_({id:e(y)},{...e(d),...W.value,...e(t)},{name:e(S),disabled:e(V),"data-slot":"base",class:n.value.base({class:e(a).ui?.base}),"onUpdate:modelValue":X}),{default:v(({state:Z})=>[R(e(ke),{"data-slot":"indicator",class:c(n.value.indicator({class:e(a).ui?.indicator}))},{default:v(()=>[Z==="indeterminate"?(i(),f(j,{key:0,name:e(a).indeterminateIcon||e(s).ui.icons.minus,"data-slot":"icon",class:c(n.value.icon({class:e(a).ui?.icon}))},null,8,["name","class"])):(i(),f(j,{key:1,name:e(a).icon||e(s).ui.icons.check,"data-slot":"icon",class:c(n.value.icon({class:e(a).ui?.icon}))},null,8,["name","class"]))]),_:2},1032,["class"])]),_:1},16,["id","name","disabled","class"])],2),e(a).label||l.label||e(a).description||l.description?(i(),B("div",{key:0,"data-slot":"wrapper",class:c(n.value.wrapper({class:e(a).ui?.wrapper}))},[e(a).label||l.label?(i(),f(T(!e(a).variant||e(a).variant==="list"?e(U):"p"),{key:0,for:e(y),"data-slot":"label",class:c(n.value.label({class:e(a).ui?.label}))},{default:v(()=>[C(b.$slots,"label",{label:e(a).label},()=>[N(M(e(a).label),1)])]),_:3},8,["for","class"])):x("",!0),e(a).description||l.description?(i(),B("p",{key:1,"data-slot":"description",class:c(n.value.description({class:e(a).ui?.description}))},[C(b.$slots,"description",{description:e(a).description},()=>[N(M(e(a).description),1)])],2)):x("",!0)],2)):x("",!0)]),_:3},8,["as","data-slot","class"]))}});export{Ie as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as
|
|
1
|
+
import{a2 as U,a3 as W,Z as X,a5 as Y,aO as ee,aZ as ie,aQ as ae,H as se,B as le,K as w,o as n,f as d,g as te,i as ne,W as B,k as i,V as b,c as k,q as r,p as A,aJ as re,v as g,X as oe,h as ue,a_ as de,a8 as ge}from"./Du2W7Jne.js";const ce={slots:{root:"relative inline-flex items-center",base:["w-full rounded-md border-0 appearance-none placeholder:text-dimmed disabled:cursor-not-allowed disabled:opacity-75","transition-colors"],leading:"absolute start-0 flex items-start",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute end-0 flex items-start",trailingIcon:"shrink-0 text-dimmed"},variants:{fieldGroup:{horizontal:{root:"group has-focus-visible:z-[1]",base:"group-not-only:group-first:rounded-e-none group-not-only:group-last:rounded-s-none group-not-last:group-not-first:rounded-none"},vertical:{root:"group has-focus-visible:z-[1]",base:"group-not-only:group-first:rounded-b-none group-not-only:group-last:rounded-t-none group-not-last:group-not-first:rounded-none"}},size:{xs:{base:"px-2 py-1 text-sm/4 gap-1",leading:"ps-2 inset-y-1",trailing:"pe-2 inset-y-1",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4"},sm:{base:"px-2.5 py-1.5 text-sm/4 gap-1.5",leading:"ps-2.5 inset-y-1.5",trailing:"pe-2.5 inset-y-1.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4"},md:{base:"px-2.5 py-1.5 text-base/5 gap-1.5",leading:"ps-2.5 inset-y-1.5",trailing:"pe-2.5 inset-y-1.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},lg:{base:"px-3 py-2 text-base/5 gap-2",leading:"ps-3 inset-y-2",trailing:"pe-3 inset-y-2",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3 inset-y-2",trailing:"pe-3 inset-y-2",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",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",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"},autoresize:{true:{base:"resize-none"}}},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"}},fe=["id","value","name","rows","placeholder","disabled","required"],me=Object.assign({inheritAttrs:!1},{__name:"UTextarea",props:{as:{type:null,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},required:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},autoresize:{type:Boolean,required:!1},autoresizeDelay:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},rows:{type:Number,required:!1,default:3},maxrows:{type:Number,required:!1,default:0},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,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},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:["update:modelValue","blur","change"],setup(S,{expose:V,emit:M}){const h=S,c=M,o=U(),e=W("textarea",h),f=X(e,"modelValue",c,{defaultValue:e.defaultValue}),N=Y(),{emitFormFocus:y,emitFormBlur:C,emitFormInput:_,emitFormChange:F,size:T,color:$,id:R,name:D,highlight:H,disabled:O,ariaAttrs:j}=ee(h,{deferInputValidation:!0}),{isLeading:p,isTrailing:x,leadingIconName:z,trailingIconName:q}=ie(e),s=ue(()=>ge({extend:ce,...N.ui?.textarea||{}})({color:$.value??e.color,variant:e.variant,size:T?.value??e.size,loading:e.loading,highlight:H.value??e.highlight,fixed:e.fixed,autoresize:e.autoresize,leading:p.value||!!e.avatar||!!o.leading,trailing:x.value||!!o.trailing})),l=ae("textareaRef");function I(a){e.modelModifiers?.trim&&(typeof a=="string"||a===null||a===void 0)&&(a=a?.trim()??null),e.modelModifiers?.number&&(a=de(a)),e.modelModifiers?.nullable&&(a||=null),e.modelModifiers?.optional&&!e.modelModifiers?.nullable&&a!==null&&(a||=void 0),f.value=a,_()}function P(a){u(),e.modelModifiers?.lazy||I(a.target.value)}function Z(a){const t=a.target.value;e.modelModifiers?.lazy&&I(t),e.modelModifiers?.trim&&(a.target.value=t.trim()),F(),c("change",a)}function E(a){C(),c("blur",a)}function G(){e.autofocus&&l.value?.focus()}function u(){if(e.autoresize&&l.value){l.value.rows=e.rows;const a=l.value.style.overflow;l.value.style.overflow="hidden";const t=window.getComputedStyle(l.value),m=Number.parseInt(t.paddingTop),J=Number.parseInt(t.paddingBottom),K=m+J,L=Number.parseInt(t.lineHeight),{scrollHeight:Q}=l.value,v=(Q-K)/L;v>e.rows&&(l.value.rows=e.maxrows?Math.min(v,e.maxrows):v),l.value.style.overflow=a}}return se(f,()=>{w(u)}),le(()=>{setTimeout(()=>{G()},e.autofocusDelay),setTimeout(async()=>{await w(),u()},e.autoresizeDelay)}),V({textareaRef:l,autoResize:u}),(a,t)=>(n(),d(i(oe),{as:i(e).as,"data-slot":a.$attrs["data-slot"]??"root",class:r(s.value.root({class:[i(e).ui?.root,i(e).class]}))},{default:te(()=>[ne("textarea",B({id:i(R),ref_key:"textareaRef",ref:l,value:i(f),name:i(D),rows:i(e).rows,placeholder:i(e).placeholder,class:s.value.base({class:i(e).ui?.base}),disabled:i(O),required:i(e).required},{...a.$attrs,...i(j)},{"data-slot":"base",onInput:P,onBlur:E,onChange:Z,onFocus:t[0]||(t[0]=(...m)=>i(y)&&i(y)(...m))}),null,16,fe),b(a.$slots,"default",{ui:s.value}),i(p)||i(e).avatar||o.leading?(n(),k("span",{key:0,"data-slot":"leading",class:r(s.value.leading({class:i(e).ui?.leading}))},[b(a.$slots,"leading",{ui:s.value},()=>[i(p)&&i(z)?(n(),d(A,{key:0,name:i(z),"data-slot":"leadingIcon",class:r(s.value.leadingIcon({class:i(e).ui?.leadingIcon}))},null,8,["name","class"])):i(e).avatar?(n(),d(re,B({key:1,size:i(e).ui?.leadingAvatarSize||s.value.leadingAvatarSize()},i(e).avatar,{"data-slot":"leadingAvatar",class:s.value.leadingAvatar({class:i(e).ui?.leadingAvatar})}),null,16,["size","class"])):g("",!0)])],2)):g("",!0),i(x)||o.trailing?(n(),k("span",{key:1,"data-slot":"trailing",class:r(s.value.trailing({class:i(e).ui?.trailing}))},[b(a.$slots,"trailing",{ui:s.value},()=>[i(q)?(n(),d(A,{key:0,name:i(q),"data-slot":"trailingIcon",class:r(s.value.trailingIcon({class:i(e).ui?.trailingIcon}))},null,8,["name","class"])):g("",!0)])],2)):g("",!0)]),_:3},8,["as","data-slot","class"]))}});export{me as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as oe}from"./
|
|
1
|
+
import{_ as oe}from"./Bm62iDV5.js";import{_ as se}from"./BrQEE053.js";import{d as ne,b as le,u as ie,a as re,w as de,H as ce,B as ue,c,k as t,f as p,g as o,F as I,j as s,ac as me,v as w,o as l,i as d,m as r,I as pe,l as E,_ as fe,p as ye,t as R,y as ge,s as ve,h as $,r as u,A as we}from"./Du2W7Jne.js";import{_ as _e}from"./AbmKWFQQ.js";import{_ as ke}from"./C0_yH0N7.js";import{u as he}from"./B8zkOmwo.js";import"./BjaRappk.js";import"./DSqHUrvO.js";import"./L3kAWB2a.js";import"./-f7BAm1H.js";const xe={class:"space-y-6"},be={class:"inline-flex items-center gap-1.5"},Pe={class:"flex justify-end"},Ce={class:"space-y-3"},Ve={key:0,class:"flex items-center gap-2 text-sm text-success-600 dark:text-success-400"},Ee={key:1,class:"flex items-center gap-2 text-sm text-warning-600 dark:text-warning-400"},$e={key:2,class:"text-xs text-gray-400"},Se={class:"flex justify-end"},Ae={class:"space-y-3"},Ue={class:"flex items-center gap-2 text-sm"},Be={key:1,class:"text-xs text-gray-400",title:"Set a password first to keep a way to sign in"},Fe={key:2,class:"text-xs text-gray-400"},Ne={class:"space-y-4"},Te={class:"flex justify-end"},qe={class:"text-sm text-gray-500"},We=ne({__name:"account",async setup(ze){let S,D;const i=le(),y=ie(),L=re(),U=we(),{data:m,refresh:A}=([S,D]=de(()=>he("/api/auth/me","$lZCnZ7VEtB")),S=await S,D(),S),g=$(()=>m.value?.user?.oauthProvider??null),O=$(()=>!!m.value?.user?.hasPassword),_=$(()=>!!g.value&&!O.value),B={google:{label:"Google",icon:"i-lucide-chrome"},github:{label:"GitHub",icon:"i-lucide-github"}},j=$(()=>U.public.demoMode?[]:(U.public.oauthProviders||[]).filter(a=>B[a])),k=u(""),F=u(!1),h=u(""),N=u(!1),T=u(!1),x=u(""),f=u(""),b=u(""),q=u(!1),z=u("");ce(()=>m.value?.user,a=>{a&&(k.value=a.name||"",h.value=a.email||"")},{immediate:!0});const M={"already-linked":"That provider account is already linked to another user.","link-requires-login":"Please sign in before connecting a provider.","domain-not-allowed":"That account’s email domain is not allowed.","org-not-allowed":"You are not a member of an allowed organization.","invalid-state":"Connecting failed (invalid state). Please try again.","access-denied":"Authorization was cancelled.","oauth-failed":"Connecting the provider failed."};ue(()=>{y.query.verified&&i.add({title:"Email verified",color:"success"}),y.query.linked&&(i.add({title:"Account connected",color:"success"}),A());const a=y.query.error;a&&i.add({title:"Could not connect account",description:M[a]||"Please try again.",color:"error"}),(y.query.linked||y.query.error||y.query.verified)&&L.replace({query:{}})});async function Y(){F.value=!0;try{await $fetch(`/api/users/${m.value?.user?.id}`,{method:"PATCH",body:{name:k.value||null}}),await A(),i.add({title:"Display name updated",color:"success"})}catch(a){i.add({title:"Failed to update display name",description:String(a?.message??a),color:"error"})}finally{F.value=!1}}async function G(){N.value=!0;try{await $fetch(`/api/users/${m.value?.user?.id}`,{method:"PATCH",body:{email:h.value||null}}),await A(),i.add({title:"Email updated",color:"success"})}catch(a){i.add({title:"Failed to update email",description:String(a?.message??a),color:"error"})}finally{N.value=!1}}async function W(){T.value=!0;try{await $fetch("/api/auth/send-verify-email",{method:"POST"}),i.add({title:"Verification email sent",description:"Check your inbox.",color:"success"})}catch(a){i.add({title:"Failed to send verification",description:String(a?.message??a),color:"error"})}finally{T.value=!1}}async function Z(){if(f.value.length<8){i.add({title:"Password too short",description:"At least 8 characters required",color:"error"});return}if(f.value!==b.value){i.add({title:"Passwords do not match",color:"error"});return}q.value=!0;try{await $fetch("/api/auth/change-password",{method:"POST",body:{currentPassword:x.value,newPassword:f.value}}),x.value="",f.value="",b.value="",i.add({title:"Password changed",color:"success"})}catch(a){i.add({title:"Failed to change password",description:String(a?.message??a),color:"error"})}finally{q.value=!1}}function K(a){window.location.href=`/api/auth/oauth/${a}/login?link=1`}async function J(a){z.value=a;try{await $fetch(`/api/auth/oauth/${a}/unlink`,{method:"POST"}),await A(),i.add({title:"Account disconnected",color:"success"})}catch(e){i.add({title:"Failed to disconnect",description:String(e?.data?.message??e?.message??e),color:"error"})}finally{z.value=""}}const Q=$(()=>U.public.authEnabled);return(a,e)=>{const X=oe,ee=se,P=pe,C=_e,v=fe,V=ke,H=ye,te=ve;return l(),c("div",xe,[t(Q)?t(m)?.user?(l(),c(I,{key:1},[s(V,{icon:"i-lucide-user",title:"Display name",help:"account.display-name"},{footer:o(()=>[d("div",Pe,[s(v,{color:"primary",loading:t(F),icon:"i-lucide-save",onClick:Y},{default:o(()=>[...e[8]||(e[8]=[r(" Save name ",-1)])]),_:1},8,["loading"])])]),default:o(()=>[s(C,{label:"Display name",name:"name"},{default:o(()=>[s(P,{modelValue:t(k),"onUpdate:modelValue":e[0]||(e[0]=n=>E(k)?k.value=n:null),placeholder:"Your display name (optional)",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),s(V,{icon:"i-lucide-mail",title:"Email address",help:"account.email"},me({default:o(()=>[d("div",Ce,[t(m).user.emailVerified?(l(),c("div",Ve,[s(H,{name:"i-lucide-circle-check-big",class:"size-4"}),e[9]||(e[9]=r(" Verified ",-1))])):t(m).user.email?(l(),c("div",Ee,[s(H,{name:"i-lucide-circle-alert",class:"size-4"}),e[11]||(e[11]=r(" Not verified ",-1)),t(_)?w("",!0):(l(),p(v,{key:0,size:"xs",variant:"soft",color:"warning",loading:t(T),onClick:W},{default:o(()=>[...e[10]||(e[10]=[r(" Send verification email ",-1)])]),_:1},8,["loading"]))])):w("",!0),s(C,{label:"Email",name:"email"},{default:o(()=>[s(P,{modelValue:t(h),"onUpdate:modelValue":e[1]||(e[1]=n=>E(h)?h.value=n:null),type:"email",placeholder:"you@example.com",disabled:t(_),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),t(_)?(l(),c("p",$e,[e[12]||(e[12]=r(" Email is managed by ",-1)),d("strong",null,R(t(g)),1),e[13]||(e[13]=r(". ",-1))])):w("",!0)])]),_:2},[t(_)?void 0:{name:"footer",fn:o(()=>[d("div",Se,[s(v,{color:"primary",loading:t(N),icon:"i-lucide-save",onClick:G},{default:o(()=>[...e[14]||(e[14]=[r(" Save email ",-1)])]),_:1},8,["loading"])])]),key:"0"}]),1024),t(j).length>0?(l(),p(V,{key:0,icon:"i-lucide-link",title:"Connected accounts",help:"account.connected-accounts"},{default:o(()=>[d("div",Ae,[(l(!0),c(I,null,ge(t(j),n=>(l(),c("div",{key:n,class:"flex items-center justify-between gap-3 rounded-md border border-default px-3 py-2"},[d("div",Ue,[s(H,{name:B[n].icon,class:"size-5"},null,8,["name"]),d("span",null,R(B[n].label),1),t(g)===n?(l(),p(te,{key:0,color:"success",variant:"subtle",size:"sm"},{default:o(()=>[...e[15]||(e[15]=[r("Connected",-1)])]),_:1})):w("",!0)]),t(g)===n?(l(),c(I,{key:0},[t(O)?(l(),p(v,{key:0,size:"xs",color:"error",variant:"soft",icon:"i-lucide-unlink",loading:t(z)===n,onClick:ae=>J(n)},{default:o(()=>[...e[16]||(e[16]=[r(" Disconnect ",-1)])]),_:1},8,["loading","onClick"])):(l(),c("span",Be," Set a password to disconnect "))],64)):t(g)?(l(),c("span",Fe,"Another provider is connected")):(l(),p(v,{key:1,size:"xs",variant:"outline",color:"neutral",icon:"i-lucide-plus",onClick:ae=>K(n)},{default:o(()=>[...e[17]||(e[17]=[r(" Connect ",-1)])]),_:1},8,["onClick"]))]))),128)),e[18]||(e[18]=d("p",{class:"text-xs text-gray-400"},"One provider can be connected per account.",-1))])]),_:1})):w("",!0),t(_)?(l(),p(V,{key:2,icon:"i-lucide-lock",title:"Password"},{default:o(()=>[d("p",qe,[e[20]||(e[20]=r(" Your account is managed by ",-1)),d("strong",null,R(t(g)),1),e[21]||(e[21]=r(". Password management is handled by that provider. ",-1))])]),_:1})):(l(),p(V,{key:1,icon:"i-lucide-lock",title:"Change password",help:"account.password"},{footer:o(()=>[d("div",Te,[s(v,{color:"primary",loading:t(q),icon:"i-lucide-key-round",onClick:Z},{default:o(()=>[...e[19]||(e[19]=[r(" Change password ",-1)])]),_:1},8,["loading"])])]),default:o(()=>[d("div",Ne,[s(C,{label:"Current password",name:"currentPassword"},{default:o(()=>[s(P,{modelValue:t(x),"onUpdate:modelValue":e[2]||(e[2]=n=>E(x)?x.value=n:null),type:"password",placeholder:"Current password",autocomplete:"current-password",class:"w-full"},null,8,["modelValue"])]),_:1}),s(C,{label:"New password",name:"newPassword",description:"Minimum 8 characters"},{default:o(()=>[s(P,{modelValue:t(f),"onUpdate:modelValue":e[3]||(e[3]=n=>E(f)?f.value=n:null),type:"password",placeholder:"New password",autocomplete:"new-password",class:"w-full"},null,8,["modelValue"])]),_:1}),s(C,{label:"Confirm new password",name:"confirmPassword"},{default:o(()=>[s(P,{modelValue:t(b),"onUpdate:modelValue":e[4]||(e[4]=n=>E(b)?b.value=n:null),type:"password",placeholder:"Repeat new password",autocomplete:"new-password",class:"w-full"},null,8,["modelValue"])]),_:1})])]),_:1}))],64)):w("",!0):(l(),p(ee,{key:0,color:"warning",icon:"i-lucide-lock-open",title:"Authentication disabled",description:"Enable PIWI_AUTH_ENABLED=true to manage your account."},{description:o(()=>[d("span",be,[e[5]||(e[5]=r(" Enable ",-1)),e[6]||(e[6]=d("code",{class:"font-mono text-xs"},"PIWI_AUTH_ENABLED=true",-1)),e[7]||(e[7]=r(" to manage your account. ",-1)),s(X,{topic:"settings.auth-toggle"})])]),_:1}))])}}});export{We as default};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{_ as Qt}from"./CXEH9OPk.js";import{_ as Zt}from"./DabzhQB1.js";import{d as re,o as t,f as k,g as d,i as n,q,k as e,j as i,t as c,c as o,F as B,y as te,s as fe,m as p,v as l,R as yt,p as ce,h as C,D as Ae,_ as Ie,b as Xt,B as xt,l as ge,r as A,ab as $e,H as ve,ac as Yt,A as Oe,Q as Ce,u as es,a as ts,w as pt,e as ss,ad as ns,M as as}from"./Du2W7Jne.js";import{d as os,e as rs,h as He,a as is,b as ls,c as cs,_ as us,n as ds,o as ms,p as ps,u as gs,f as fs,i as ys,j as xs,k as hs,l as vs,m as _s}from"./CahpB9Z2.js";import{_ as ks,a as bs,b as ws,c as $s,d as Cs,e as Ts}from"./ryMzSDUj.js";import{_ as Ss}from"./CjPfj7ya.js";import{_ as Is,a as Rs}from"./5A6ITZXj.js";import{_ as Re}from"./BzRRzmwm.js";import{_ as Ls}from"./b-GYfcrQ.js";import{_ as zs}from"./CA9B2HE5.js";import{_ as ht,a as Ke}from"./Bm62iDV5.js";import{_ as Ms}from"./-f7BAm1H.js";import{_ as js}from"./hC_z4G8p.js";import{u as Ds,_ as Ns,d as As,e as Ps,f as Us,g as Bs,h as Fs,j as Vs,a as vt,i as Te,b as Ne,c as Es}from"./Cnsmicv2.js";import{f as Se,m as Os,c as Hs,g as Ks,n as _t,o as We,q as Ge,a as Ws,j as Gs,r as gt}from"./DuwtTfO8.js";import{_ as kt}from"./BT3wGCTI.js";import{_ as ye}from"./C0_yH0N7.js";import{_ as Js}from"./DsesNydr.js";import{_ as Je}from"./CxyAzHr3.js";import{_ as qe}from"./CzAPFPpL.js";import{_ as bt}from"./C1gTN4Q8.js";import{f as we}from"./D-c8ZSws.js";import{_ as qs}from"./B3obW6cw.js";import{_ as Qs}from"./DJxlKFGb.js";import{_ as Zs}from"./DJmoLeVt.js";import{_ as Xs}from"./Cus22Ud3.js";import{_ as Ys}from"./CJFtzlQ4.js";import{_ as en,a as tn}from"./DoIREDVb.js";import{_ as sn}from"./CeW8v31b.js";import{b as nn}from"./BicAJ6U8.js";import{u as ft}from"./B8zkOmwo.js";import{u as an}from"./DSqHUrvO.js";import"./KyA_4Ks-.js";import"./Dy-TJ0Mt.js";import"./BgRu_3tT.js";import"./_mj6CfPa.js";import"./BrQEE053.js";import"./BUkim3TM.js";import"./A1pj0VnG.js";import"./UdR3DBPS.js";import"./AbmKWFQQ.js";import"./L3kAWB2a.js";import"./Dpd16JVI.js";import"./Nn93e_Mz.js";import"./DmkUdSS4.js";import"./BjaRappk.js";import"./pQqGiNch.js";import"./B99fbi73.js";import"./C8e1EbJI.js";import"./FaFoMVKo.js";import"./D7W_4Sqc.js";import"./CwGWJbiy.js";const on={class:"text-sm font-semibold truncate min-w-0"},rn={class:"flex items-center gap-3 ml-auto max-sm:hidden"},ln={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},cn={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},un={class:"text-gray-700 dark:text-gray-300"},dn={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},mn={class:"text-gray-700 dark:text-gray-300"},pn={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},gn={class:"text-gray-700 dark:text-gray-300"},fn={key:0,class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},yn={class:"text-gray-700 dark:text-gray-300"},xn={class:"grid grid-cols-1 lg:grid-cols-12 gap-4"},hn={class:"space-y-3"},vn={class:"flex items-start gap-3"},_n={class:"min-w-0 flex-1"},kn={class:"flex items-center gap-2 flex-wrap"},bn={class:"text-base font-bold truncate"},wn={class:"text-xs text-gray-500 mt-0.5"},$n={key:0},Cn=["title"],Tn={key:1,class:"ml-2"},Sn={class:"grid grid-cols-2 sm:grid-cols-4 gap-2"},In={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},Rn={class:"text-xl font-bold mt-0.5"},Ln={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},zn={class:"text-xl font-bold mt-0.5"},Mn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},jn={class:"text-xl font-bold mt-0.5"},Dn={class:"rounded-lg bg-gray-50 dark:bg-gray-900 p-3"},Nn={class:"text-xl font-bold mt-0.5"},An={key:0,class:"flex items-center gap-2 text-sm"},Pn={class:"text-gray-700 dark:text-gray-300 truncate"},Un={key:0,class:"text-gray-500 shrink-0"},Bn={key:1,class:"flex items-center gap-1.5 text-sm"},Fn=re({__name:"TestCaseSummary",props:{testCase:{},scmInfo:{},ciInfo:{},browser:{},environment:{},stepsCount:{},historicalTiming:{},stableLinks:{}},emits:["refresh"],setup(s){const _=s,x=C(()=>{const u=_.testCase;if(!u)return[];const r=[];return u.isNewRegression&&r.push({label:"New regression",color:"error",title:"Passed in the baseline run, failing here"}),u.isNewFlaky&&r.push({label:"New flaky",color:"warning",title:"Newly started passing only on retry"}),u.status==="passed"&&(u.retries??0)>0&&r.push({label:"Passed on retry",color:"warning",title:"This test failed then passed on a retry"}),r}),b=C(()=>(_.testCase?.testAnnotations??[]).filter(u=>!Os(u.type))),w=C(()=>_.testCase?.startedAt??null),{summaryColSpanClass:g,blockColSpanClass:a}=Ds(()=>{let u=0;return _.scmInfo&&u++,(_.ciInfo||_.environment||_.browser)&&u++,u++,u});return(u,r)=>{const P=ks,z=Re,$=Ls,h=fe,F=zs,M=yt,m=ce,I=ht,E=Ms,U=bs,R=ws,W=js,G=$s,D=Ns;return t(),k(D,{"storage-key":"test-case"},{folded:d(()=>[i(P,{status:s.testCase?.status??"",size:"sm"},null,8,["status"]),n("span",on,c(s.testCase?.title),1),n("div",rn,[n("span",ln,[r[0]||(r[0]=p(" Dur: ",-1)),i(z,{ms:s.testCase?.duration,class:"font-bold text-gray-700 dark:text-gray-300"},null,8,["ms"])]),n("span",cn,[r[1]||(r[1]=p(" Retries: ",-1)),n("strong",un,c(s.testCase?.retries??0),1)]),n("span",dn,[r[2]||(r[2]=p(" Steps: ",-1)),n("strong",mn,c(s.stepsCount),1)]),n("span",pn,[r[3]||(r[3]=p(" Worker: ",-1)),n("strong",gn,c(s.testCase?.workerIndex??"—"),1)]),s.testCase?.shardIndex!=null?(t(),o("span",fn,[r[4]||(r[4]=p(" Shard: ",-1)),n("strong",yn,c(s.testCase.shardIndex),1)])):l("",!0)]),s.browser?(t(),k($,{key:0,browser:s.browser,size:"sm",class:"shrink-0 max-sm:hidden"},null,8,["browser"])):l("",!0)]),default:d(()=>[n("div",xn,[n("div",{class:q(e(g))},[i(E,{class:"shadow-xs h-full"},{default:d(()=>[n("div",hn,[n("div",vn,[i(P,{status:s.testCase?.status??"",size:"md"},null,8,["status"]),n("div",_n,[n("div",kn,[n("h2",bn,c(s.testCase?.title),1),(t(!0),o(B,null,te(e(x),Z=>(t(),k(h,{key:Z.label,color:Z.color,variant:"subtle",size:"xs",title:Z.title},{default:d(()=>[p(c(Z.label),1)]),_:2},1032,["color","title"]))),128)),(t(!0),o(B,null,te(e(b),(Z,Q)=>(t(),k(h,{key:`ann-${Q}`,color:"neutral",variant:"soft",size:"xs",class:"font-mono",title:Z.description||Z.type},{default:d(()=>[p(" @"+c(Z.type),1)]),_:2},1032,["title"]))),128)),i(F,{tags:s.testCase?.tags,meta:s.testCase?.testMeta},null,8,["tags","meta"])]),n("p",wn,[s.testCase?.location?(t(),o("span",$n,c(s.testCase.location),1)):l("",!0),i(M,null,{default:d(()=>[e(w)?(t(),o("span",{key:0,class:"ml-2 text-gray-400",title:new Date(e(w)).toLocaleString()}," started "+c(("formatRelativeTime"in u?u.formatRelativeTime:e(Se))(e(w))),9,Cn)):l("",!0)]),_:1}),s.historicalTiming?(t(),o("span",Tn,[r[5]||(r[5]=p(" Avg ",-1)),i(z,{ms:s.historicalTiming.avg},null,8,["ms"]),r[6]||(r[6]=p(" · ",-1)),n("span",{class:q(s.historicalTiming.diff>0?"text-red-600":"text-green-600")},c(s.historicalTiming.diff>0?"+":"")+c(s.historicalTiming.pct)+"% ",3)])):l("",!0)])])]),n("div",Sn,[n("div",In,[r[7]||(r[7]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Duration",-1)),n("p",Rn,[i(z,{ms:s.testCase?.duration},null,8,["ms"])])]),n("div",Ln,[r[8]||(r[8]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Retries",-1)),n("p",zn,c(s.testCase?.retries??0),1)]),n("div",Mn,[r[9]||(r[9]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Steps",-1)),n("p",jn,c(s.stepsCount),1)]),n("div",Dn,[r[10]||(r[10]=n("p",{class:"text-xs font-medium text-gray-500 uppercase tracking-wider"},"Worker",-1)),n("p",Nn,c(s.testCase?.workerIndex??"—"),1)])]),s.testCase?.slowestStep?(t(),o("div",An,[i(m,{name:"i-lucide-zap",class:"size-4 text-amber-500 shrink-0"}),r[13]||(r[13]=n("span",{class:"font-medium text-amber-700 dark:text-amber-300"},"Slowest step:",-1)),n("span",Pn,c(s.testCase.slowestStep),1),s.testCase.slowestStepDuration?(t(),o("span",Un,[r[11]||(r[11]=p("(",-1)),i(z,{ms:s.testCase.slowestStepDuration},null,8,["ms"]),r[12]||(r[12]=p(")",-1))])):l("",!0)])):l("",!0),(s.testCase?.wastedTimeMs??0)>0?(t(),o("div",Bn,[i(m,{name:"i-lucide-hourglass",class:"size-4 text-amber-500 shrink-0"}),r[14]||(r[14]=n("span",{class:"font-medium text-amber-700 dark:text-amber-300"},"Wasted in fixed waits:",-1)),i(z,{ms:s.testCase?.wastedTimeMs,class:"text-gray-700 dark:text-gray-300"},null,8,["ms"]),i(I,{topic:"case.wasted-time"})])):l("",!0)])]),_:1})],2),s.scmInfo?(t(),k(U,{key:0,scm:s.scmInfo,class:q(e(a))},null,8,["scm","class"])):l("",!0),s.ciInfo||s.environment||s.browser?(t(),k(R,{key:1,ci:s.ciInfo,environment:s.environment,browser:s.browser,class:q(e(a))},null,8,["ci","environment","browser","class"])):l("",!0),i(G,{class:q(e(a)),title:"Links",icon:"i-lucide-link"},{default:d(()=>[s.testCase?.id?(t(),k(W,{key:0,"entity-type":"test_case","entity-id":s.testCase.id,links:s.stableLinks??null},null,8,["entity-id","links"])):l("",!0)]),_:1},8,["class"])])]),_:1})}}}),Vn=Object.assign(Fn,{__name:"TestCaseSummary"}),En={class:"space-y-3"},On={key:0,class:"flex flex-wrap gap-1.5"},Hn={key:0,class:"text-sm text-gray-600 dark:text-gray-400"},Kn={class:"text-gray-800 dark:text-gray-200"},Wn={key:1},Gn={class:"flex items-center gap-1 flex-wrap"},Jn=re({__name:"TestCaseVerdictCard",props:{testCase:{},history:{},currentId:{}},setup(s){const _=s,x=u=>u==="failed"||u==="timedOut"||u==="timedout",b=C(()=>{const u=_.testCase;if(!u)return[];const r=[];return u.isNewRegression&&r.push({label:"New regression",color:"error",icon:"i-lucide-git-pull-request-arrow",title:"Passed in the baseline run, failing here — likely fallout from the latest change"}),u.isNewFlaky&&r.push({label:"New flaky",color:"warning",icon:"i-lucide-shuffle",title:"Newly started passing only on retry — intermittent failure"}),u.status==="timedOut"&&r.push({label:"Timed out",color:"warning",icon:"i-lucide-timer-off",title:"The test exceeded its timeout"}),(u.retries??0)>0&&r.push({label:u.status==="passed"?`Passed on retry ${u.retries}`:`Retried ${u.retries}×`,color:u.status==="passed"?"warning":"neutral",icon:"i-lucide-refresh-cw",title:`This execution retried ${u.retries} time${u.retries===1?"":"s"}`}),r}),w=C(()=>_.history.slice(0,24).slice().reverse()),g=C(()=>{const u=_.history;if(!u.length)return null;const r=Math.max(0,u.findIndex($=>$.id===_.currentId));let P=0;for(let $=r;$<u.length&&x(u[$].status);$++)P++;let z=null;for(let $=r+1;$<u.length;$++)if(u[$].status==="passed"){z=u[$];break}return{streak:P,lastPass:z,total:u.length,anchorFailing:x(u[r]?.status)}}),a=u=>({"bg-red-500 hover:bg-red-600":x(u),"bg-green-500 hover:bg-green-600":u==="passed","bg-yellow-500 hover:bg-yellow-600":u==="skipped","bg-gray-400 hover:bg-gray-500":!x(u)&&!["passed","skipped"].includes(u)});return(u,r)=>{const P=ce,z=fe,$=Ae,h=kt,F=yt,M=ye;return t(),k(M,{icon:"i-lucide-clipboard-check","icon-class":"text-amber-500",title:"Verdict",help:"case.verdict"},{default:d(()=>[n("div",En,[e(b).length?(t(),o("div",On,[(t(!0),o(B,null,te(e(b),m=>(t(),k(z,{key:m.label,color:m.color,variant:"subtle",size:"sm",title:m.title,class:"inline-flex items-center gap-1"},{default:d(()=>[i(P,{name:m.icon,class:"size-3 shrink-0"},null,8,["name"]),p(" "+c(m.label),1)]),_:2},1032,["color","title"]))),128))])):l("",!0),i(F,null,{default:d(()=>[e(g)?(t(),o("p",Hn,[e(g).streak>=1?(t(),o(B,{key:0},[r[1]||(r[1]=p(" Failing for ",-1)),n("strong",Kn,c(e(g).streak),1),p(" consecutive run"+c(e(g).streak===1?"":"s")+". ",1),e(g).lastPass?(t(),o(B,{key:0},[r[0]||(r[0]=p(" Last passed in ",-1)),i($,{to:`/test-run-cases/${e(g).lastPass.id}`,class:"text-primary hover:underline"},{default:d(()=>[p(" run #"+c(e(g).lastPass.runId),1)]),_:1},8,["to"]),p(" ("+c(("formatRelativeTime"in u?u.formatRelativeTime:e(Se))(e(g).lastPass.startTime))+"). ",1)],64)):e(g).total>1?(t(),o(B,{key:1},[p(" No passing run in the last "+c(e(g).total)+" recorded. ",1)],64)):(t(),o(B,{key:2},[p(" First recorded run of this test. ")],64))],64)):s.testCase?.status==="passed"?(t(),o(B,{key:1},[p(" This execution passed. ")],64)):l("",!0)])):l("",!0),e(w).length>1?(t(),o("div",Wn,[r[2]||(r[2]=n("p",{class:"text-xs text-gray-400 mb-1"},"Recent runs (oldest → newest)",-1)),n("div",Gn,[(t(!0),o(B,null,te(e(w),m=>(t(),k(h,{key:m.id,text:`Run #${m.runId}: ${m.status}`},{default:d(()=>[i($,{to:`/test-run-cases/${m.id}`,class:q(["size-3.5 rounded-sm inline-block transition-colors",[a(m.status),m.id===s.currentId?"ring-2 ring-offset-1 ring-primary":""]])},null,8,["to","class"])]),_:2},1032,["text"]))),128))])])):l("",!0)]),_:1})])]),_:1})}}}),qn=Object.assign(Jn,{__name:"TestCaseVerdictCard"}),Qn={class:"space-y-3"},Zn={class:"space-y-1.5"},Xn={class:"flex items-center gap-2 flex-wrap"},Yn={class:"text-xs text-gray-500"},ea=["title"],ta={class:"text-xs text-gray-500 dark:text-gray-400"},sa={key:0,class:"rounded-lg border border-default bg-elevated/40 p-2.5 space-y-1"},na={class:"flex items-center gap-1.5 flex-wrap"},aa={class:"text-xs text-gray-600 dark:text-gray-400 line-clamp-3"},oa=["title"],ra=re({__name:"FailureClusterCard",props:{cluster:{}},setup(s){const _=s,x=C(()=>Math.max(0,_.cluster.sameRunCaseCount-1)),b=C(()=>{const g=_.cluster.diagnosis;return g&&g.status==="completed"&&g.summary?g:null}),w=g=>g==="high"?"success":g==="medium"?"warning":"neutral";return(g,a)=>{const u=fe,r=Ae,P=ce,z=Ie,$=ye;return t(),k($,{icon:"i-lucide-layers","icon-class":"text-primary",title:"Failure cluster",help:"cluster.concept"},{actions:d(()=>[s.cluster.isNew?(t(),k(u,{key:0,color:"warning",variant:"subtle",size:"sm"},{default:d(()=>[...a[0]||(a[0]=[p("New",-1)])]),_:1})):l("",!0),s.cluster.status&&s.cluster.status!=="open"?(t(),k(u,{key:1,color:s.cluster.status==="resolved"?"success":"neutral",variant:"subtle",size:"sm",class:"capitalize"},{default:d(()=>[p(c(s.cluster.status),1)]),_:1},8,["color"])):l("",!0)]),default:d(()=>[n("div",Qn,[n("div",Zn,[n("div",Xn,[s.cluster.errorType?(t(),k(u,{key:0,color:e(Hs)(s.cluster.errorType),variant:"soft",size:"sm"},{default:d(()=>[p(c(s.cluster.errorType),1)]),_:1},8,["color"])):l("",!0),n("span",Yn,c(s.cluster.occurrences??0)+" occurrence"+c((s.cluster.occurrences??0)===1?"":"s"),1)]),n("p",{class:"font-mono text-xs text-gray-600 dark:text-gray-400 break-all line-clamp-2",title:s.cluster.signature},c(s.cluster.signature),9,ea)]),n("p",ta,[e(x)>0?(t(),o(B,{key:0},[p(" Matches "+c(e(x))+" other failing "+c(e(x)===1?"test":"tests")+" in this run. ",1)],64)):l("",!0),s.cluster.isNew?(t(),o(B,{key:2},[p("Opened a new cluster in this run.")],64)):(t(),o(B,{key:1},[a[1]||(a[1]=p(" Known failure — first seen in ",-1)),i(r,{to:`/test-runs/${s.cluster.firstSeenRunId}`,class:"text-primary hover:underline"},{default:d(()=>[p(" run #"+c(s.cluster.firstSeenRunId),1)]),_:1},8,["to"]),s.cluster.firstSeenAt?(t(),o(B,{key:0},[p(" ("+c(("formatRelativeTime"in g?g.formatRelativeTime:e(Se))(s.cluster.firstSeenAt))+")",1)],64)):l("",!0),a[2]||(a[2]=p(". ",-1))],64))]),e(b)?(t(),o("div",sa,[n("div",na,[i(P,{name:"i-lucide-sparkles",class:"size-3.5 text-primary shrink-0"}),a[3]||(a[3]=n("span",{class:"text-xs font-medium"},"AI verdict",-1)),e(b).category?(t(),k(u,{key:0,color:"neutral",variant:"soft",size:"xs"},{default:d(()=>[p(c(e(b).category),1)]),_:1})):l("",!0),e(b).confidence?(t(),k(u,{key:1,color:w(e(b).confidence),variant:"soft",size:"xs"},{default:d(()=>[p(c(e(b).confidence)+" confidence ",1)]),_:1},8,["color"])):l("",!0)]),n("p",aa,c(e(b).summary),1)])):l("",!0),s.cluster.triageNote?(t(),o("p",{key:1,class:"text-xs italic text-gray-500 dark:text-gray-400",title:s.cluster.triageNote}," “"+c(s.cluster.triageNote)+"” ",9,oa)):l("",!0),i(z,{to:`/failure-clusters/${s.cluster.id}`,size:"sm",color:"primary",variant:"solid",block:"","trailing-icon":"i-lucide-arrow-right"},{default:d(()=>[...a[4]||(a[4]=[p(" Open cluster investigation ",-1)])]),_:1},8,["to"])])]),_:1})}}}),ia=Object.assign(ra,{__name:"FailureClusterCard"}),la={class:"space-y-3"},ca={class:"text-xs text-gray-400 inline-flex items-center gap-1"},ua={key:0,class:"text-primary"},da={key:0,class:"flex items-center justify-between gap-2 rounded-lg border border-default bg-elevated/40 p-2.5"},ma={class:"inline-flex items-center gap-2 text-sm text-gray-500"},pa={key:1,class:"flex items-center gap-2"},ga={key:2,class:"rounded-lg border border-dashed border-default p-4 text-center text-gray-400"},fa={class:"text-sm inline-flex items-center gap-1 justify-center"},ya={class:"pt-1 text-center"},xa=re({__name:"TestCaseAiCard",props:{testRunsCaseId:{}},setup(s){const _=s,{aiStatus:x}=As(),b=Xt(),w=A(null),g=A(!1),a=A(null),u=A([]),r=A(0),P=A(0),z=A(null),$=A(!1),h=A(!1),F=A(null),M=A(!1),m=A("");async function I(){$.value=!0;try{const y=await $fetch(`/api/test-run-cases/${_.testRunsCaseId}/diagnosis-context`,{query:{format:"json"}});a.value=y.text,u.value=y.sections,r.value=y.tokenEstimate,P.value=y.imageTokenEstimate??0,z.value=y.coverage}catch{a.value=null,u.value=[],r.value=0,z.value=null}finally{$.value=!1}}async function E(){try{const y=await $fetch(`/api/test-run-cases/${_.testRunsCaseId}/diagnosis`);w.value=y.diagnosis}catch{}}xt(()=>{E(),I()});const U=C(()=>{const y=w.value?.details;if(!y)return[];const N=[];if(Array.isArray(y.evidence)&&N.push(...y.evidence),Array.isArray(y.hypotheses))for(const ne of y.hypotheses)Array.isArray(ne?.evidence)&&N.push(...ne.evidence);return Vs(N)});function R(y){F.value=y,h.value=!0}function W(y){m.value=m.value?`${m.value}
|
|
2
|
+
|
|
3
|
+
${y}`:y,M.value=!0}async function G(y=!1){g.value=!0;try{const N=y?`/api/test-run-cases/${_.testRunsCaseId}/diagnose?force=true`:`/api/test-run-cases/${_.testRunsCaseId}/diagnose`,ne=m.value.trim()?{additionalContext:m.value.trim()}:void 0;w.value=await $fetch(N,{method:"POST",body:ne})}catch(N){const ne=N?.statusCode;ne===409?(b.add({title:"Diagnosis already running",color:"warning"}),E()):ne===503?b.add({title:"AI diagnosis is not configured",color:"warning"}):b.add({title:"Diagnosis failed",description:Ks(N),color:"error"})}finally{g.value=!1}}function D(y){return y.status==="running"&&Date.now()-new Date(y.updatedAt).getTime()>300*1e3}const Z=C(()=>w.value&&(w.value.status==="completed"||w.value.status==="failed")),Q=C(()=>!w.value||w.value.status==="failed"||w.value.status==="running"&&D(w.value)),de=C(()=>w.value?.status==="running"&&!D(w.value)&&!g.value);return(y,N)=>{const ne=Fs,v=ce,S=Ps,H=Js,J=Ie,X=Us,se=ht,O=Bs,Y=Ae,ee=ye;return t(),k(ee,{icon:"i-lucide-sparkles","icon-class":"text-primary",title:"AI diagnosis",help:"case.ai"},{actions:d(()=>[i(ne,{"context-endpoint":`/api/test-run-cases/${s.testRunsCaseId}/diagnosis-context`},null,8,["context-endpoint"])]),default:d(()=>[n("div",la,[n("p",ca,[i(v,{name:"i-lucide-triangle-alert",class:"size-3 shrink-0"}),N[6]||(N[6]=p(" AI-generated — verify before applying. ",-1))]),e(x)?.configured?(t(),k(S,{key:0,sections:e(u),"not-applicable":e(z)?.notApplicable,"token-estimate":e(r),loading:e($),onViewSection:R,onOpen:N[0]||(N[0]=ae=>h.value=!0)},null,8,["sections","not-applicable","token-estimate","loading"])):l("",!0),e(x)?.configured?(t(),o(B,{key:1},[n("div",null,[n("button",{class:"flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-gray-700 dark:hover:text-gray-300",onClick:N[1]||(N[1]=ae=>M.value=!e(M))},[i(v,{name:e(M)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5"},null,8,["name"]),N[7]||(N[7]=p(" Additional context ",-1)),e(m).trim()?(t(),o("span",ua,"(1)")):l("",!0)]),e(M)?(t(),k(H,{key:0,modelValue:e(m),"onUpdate:modelValue":N[2]||(N[2]=ae=>ge(m)?m.value=ae:null),placeholder:"e.g. We deployed a new auth middleware yesterday…",rows:3,class:"w-full text-sm mt-1"},null,8,["modelValue"])):l("",!0)]),e(de)?(t(),o("div",da,[n("span",ma,[i(v,{name:"i-lucide-loader-circle",class:"size-4 animate-spin text-primary shrink-0"}),N[8]||(N[8]=p(" Diagnosis in progress… ",-1))]),i(J,{size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-refresh-cw",loading:e(g),onClick:E},{default:d(()=>[...N[9]||(N[9]=[p(" Refresh ",-1)])]),_:1},8,["loading"])])):(t(),o("div",pa,[e(Q)?(t(),k(J,{key:0,icon:"i-lucide-sparkles",size:"sm",color:"primary",variant:"solid",loading:e(g),onClick:N[3]||(N[3]=ae=>G(e(w)?.status==="running"))},{default:d(()=>[p(c(e(w)?.status==="running"?"Restart diagnosis":"Diagnose with AI"),1)]),_:1},8,["loading"])):e(w)?.status==="completed"?(t(),k(J,{key:1,icon:"i-lucide-refresh-cw",size:"xs",color:"primary",variant:"soft",loading:e(g),onClick:N[4]||(N[4]=ae=>G(!0))},{default:d(()=>[...N[10]||(N[10]=[p(" Re-diagnose ",-1)])]),_:1},8,["loading"])):l("",!0)])),e(Z)?(t(),k(X,{key:2,diagnosis:e(w),onViewSection:R,onPrefillContext:W},null,8,["diagnosis"])):l("",!0)],64)):(t(),o("div",ga,[n("p",fa,[N[11]||(N[11]=p(" AI diagnosis is not configured ",-1)),i(se,{topic:"cluster.ai-setup"})]),N[13]||(N[13]=n("p",{class:"text-xs mt-2 max-w-xs mx-auto"},[p(" Use "),n("strong",null,"Export → AI context"),p(" in the header to grab the full evidence bundle for your own AI tool, or configure a provider. ")],-1)),i(J,{to:"/settings/ai",size:"xs",color:"neutral",variant:"outline",class:"mt-3"},{default:d(()=>[...N[12]||(N[12]=[p(" Configure in Settings ",-1)])]),_:1})])),i(O,{open:e(h),sections:e(u),"token-estimate":e(r),"image-token-estimate":e(P),loading:e($),"focus-section":e(F),"cited-sections":e(U),"not-applicable-sections":e(z)?.notApplicable,"onUpdate:open":N[5]||(N[5]=ae=>{h.value=ae,ae||(F.value=null)}),onRefresh:I},null,8,["open","sections","token-estimate","image-token-estimate","loading","focus-section","cited-sections","not-applicable-sections"]),n("div",ya,[i(Y,{to:"/mcp",class:"inline-flex items-center gap-1 text-xs text-gray-400 hover:text-primary transition-colors"},{default:d(()=>[i(v,{name:"i-lucide-bot",class:"size-3"}),N[14]||(N[14]=p(" Query this failure from your AI agent via MCP ",-1))]),_:1})])])]),_:1})}}}),ha=Object.assign(xa,{__name:"TestCaseAiCard"});function wt(s,_,x){const b=A(null),w=A(!1),g=A(!1);async function a(){const u=s();if(!(!u||!$e(_)||w.value)){g.value=!0,w.value=!0;try{b.value=await $fetch(u)}catch{b.value=null}finally{w.value=!1}}}return xt(()=>{ve(()=>$e(_),u=>{u&&(x||g.value)&&!b.value&&a()},{immediate:!0})}),{data:b,pending:w,load:a}}function va(s,_,x,b={}){return wt(()=>{const w=$e(s),g=$e(_);return w&&g?`/api/test-runs/${w}/cases/${g}/trace-stacks`:null},x,b.auto??!0)}function _a(s,_,x,b={}){return wt(()=>{const w=$e(s),g=$e(_);return w&&g?`/api/test-runs/${w}/cases/${g}/trace-network`:null},x,b.auto??!1)}const ka={class:"max-h-[32rem] overflow-y-auto"},ba={key:0,class:"mb-2 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},wa={key:0,class:"mt-3 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},$a=re({__name:"TestSourceCard",props:{frames:{},testSource:{},runId:{},testRunsCaseId:{},hasTrace:{type:Boolean},projectKey:{},projectName:{},storageKey:{}},setup(s,{expose:_}){const x=s,{data:b,pending:w}=va(()=>x.runId,()=>x.testRunsCaseId,()=>x.hasTrace,{auto:!0}),g=C(()=>b.value?.status==="ok"?b.value.frames??[]:[]),a=C(()=>g.value.length>0),u=C(()=>x.frames?.length??0),r=C(()=>u.value>0||!!x.testSource),P=A(null),z=C({get:()=>P.value??(a.value?"trace":"captured"),set:M=>{P.value=M}}),$=C(()=>[{label:`Full stack (${g.value.length})`,value:"trace"},{label:`Captured (${u.value||1})`,value:"captured"}]),h=C(()=>z.value==="trace"&&a.value?g.value.length:u.value||null),F=A(null);return _({reveal:()=>F.value?.reveal()}),(M,m)=>{const I=Je,E=ce,U=os,R=rs,W=vt,G=qe,D=Ke,Z=He;return t(),k(Z,{ref_key:"card",ref:F,"storage-key":s.storageKey,icon:"i-lucide-code",count:e(h),title:"Test source",help:"case.test-source"},Yt({folded:d(()=>[e(z)==="trace"&&e(a)?(t(),o(B,{key:0},[p(" Full call stack from the trace"+c(e(b)?.hasSources===!1?" (recorded without sources)":""),1)],64)):e(u)>1?(t(),o(B,{key:1},[p(" The failing line and "+c(e(u)-1)+" caller"+c(e(u)-1===1?"":"s"),1)],64)):(t(),o(B,{key:2},[p("Source around the failing assertion")],64))]),default:d(()=>[n("div",ka,[e(z)==="trace"&&e(a)?(t(),o(B,{key:0},[e(b)?.hasSources===!1?(t(),o("p",ba,[i(E,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),m[1]||(m[1]=p(" Trace recorded without sources — frame list only. ",-1))])):l("",!0),i(U,{frames:e(g),"project-key":s.projectKey,"project-name":s.projectName},null,8,["frames","project-key","project-name"])],64)):(t(),o(B,{key:1},[s.frames?.length?(t(),k(R,{key:0,frames:s.frames,"project-key":s.projectKey,"project-name":s.projectName},null,8,["frames","project-key","project-name"])):s.testSource?(t(),k(W,{key:1,text:"```typescript\n"+s.testSource+"\n```"},null,8,["text"])):s.hasTrace&&e(w)?(t(),k(G,{key:2,text:"Loading call stack from trace…"})):l("",!0)],64))]),s.hasTrace?l("",!0):(t(),o("p",wa,[i(E,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),n("span",null,[m[3]||(m[3]=p(" Want to go deeper? Record traces (",-1)),m[4]||(m[4]=n("code",null,"trace: 'retain-on-failure'",-1)),m[5]||(m[5]=p(") to see the full call stack with source here. ",-1)),i(D,{to:"ui-overview#trace-powered-deep-views","no-icon":"",class:"underline"},{default:d(()=>[...m[2]||(m[2]=[p("Learn more",-1)])]),_:1})])]))]),_:2},[e(a)&&e(r)?{name:"actions",fn:d(()=>[i(I,{modelValue:e(z),"onUpdate:modelValue":m[0]||(m[0]=Q=>ge(z)?z.value=Q:null),items:e($),size:"xs",variant:"link",ui:{list:"gap-2",trigger:"px-1.5"}},null,8,["modelValue","items"])]),key:"0"}:void 0]),1032,["storage-key","count"])}}}),Ca=Object.assign($a,{__name:"TestSourceCard"}),Ta={class:"space-y-3"},Sa={class:"divide-y divide-default"},Ia={class:"flex items-center gap-2 min-w-0"},Ra={class:"text-sm truncate"},La={key:0,class:"text-xs text-gray-400 shrink-0"},za=re({__name:"TestCaseEvidenceCard",props:{attachments:{},traces:{},storageKey:{}},setup(s,{expose:_}){const x=s,b=Oe(),w=C(()=>x.attachments.filter(h=>Te(h.path,h.contentType)).length),g=C(()=>x.attachments.filter(h=>Ne(h.path,h.contentType)).length),a=C(()=>x.attachments.filter(h=>!Te(h.path,h.contentType)&&!Ne(h.path,h.contentType))),u=C(()=>w.value+g.value+x.traces.length+a.value.length),r=C(()=>{const h=[];return w.value&&h.push(`${w.value} screenshot${w.value===1?"":"s"}`),g.value&&h.push(`${g.value} video${g.value===1?"":"s"}`),x.traces.length&&h.push(`${x.traces.length} trace${x.traces.length===1?"":"s"}`),a.value.length&&h.push(`${a.value.length} file${a.value.length===1?"":"s"}`),h.join(" · ")||"No evidence captured"});function P(h,F){return _t(h,F,b.app?.baseURL)}function z(h){return h.split("/").pop()||h}const $=A(null);return _({reveal:()=>$.value?.reveal?.()}),(h,F)=>{const M=is,m=ls,I=cs,E=ce,U=Ie,R=us,W=bt,G=He;return t(),k(G,{ref_key:"card",ref:$,"storage-key":s.storageKey,icon:"i-lucide-camera",title:"Failure evidence",count:e(u),help:"case.evidence"},{folded:d(()=>[p(c(e(r)),1)]),default:d(()=>[n("div",Ta,[i(M,{attachments:s.attachments},null,8,["attachments"]),i(m,{attachments:s.attachments},null,8,["attachments"]),i(I,{traces:s.traces},null,8,["traces"]),e(a).length?(t(),k(R,{key:0,icon:"i-lucide-paperclip",label:"Attachments",count:e(a).length,collapsible:!1},{default:d(()=>[n("div",Sa,[(t(!0),o(B,null,te(e(a),D=>(t(),o("div",{key:D.id,class:"flex items-center justify-between gap-2 px-3 py-2"},[n("div",Ia,[i(E,{name:"i-lucide-file",class:"size-4 text-gray-400 shrink-0"}),n("span",Ra,c(z(D.path)),1),D.size?(t(),o("span",La,c(("formatBytes"in h?h.formatBytes:e(we))(D.size)),1)):l("",!0)]),i(U,{to:P(D.path,D.contentType),target:"_blank",icon:"i-lucide-external-link",size:"xs",color:"neutral",variant:"soft",label:"Open"},null,8,["to"])]))),128))])]),_:1},8,["count"])):l("",!0),e(u)===0?(t(),k(W,{key:1,icon:"i-lucide-camera-off",text:"No screenshots, video or traces captured"})):l("",!0)])]),_:1},8,["storage-key","count"])}}}),Ma=Object.assign(za,{__name:"TestCaseEvidenceCard"}),ja={class:"space-y-1 max-h-80 overflow-y-auto"},Da={class:"min-w-0 flex-1"},Na={class:"flex items-center gap-2"},Aa={class:"truncate"},Pa={key:0,class:"text-xs text-gray-400 mt-0.5 ml-0"},Ua=re({__name:"TestCaseConsoleCard",props:{entries:{}},setup(s){function _(b){switch(b){case"error":return"error";case"warning":return"warning";case"assert":return"error";default:return"neutral"}}function x(b){switch(b){case"error":return"i-lucide-octagon-x";case"warning":return"i-lucide-alert-triangle";case"assert":return"i-lucide-octagon-x";default:return"i-lucide-message-square"}}return(b,w)=>{const g=ce,a=fe,u=ye;return s.entries.length>0?(t(),k(u,{key:0,icon:"i-lucide-terminal",title:"Console output",count:s.entries.length,help:"case.console"},{default:d(()=>[n("div",ja,[(t(!0),o(B,null,te(s.entries,(r,P)=>(t(),o("div",{key:P,class:"flex items-start gap-2 py-1.5 px-2 rounded hover:bg-gray-50 dark:hover:bg-gray-800 text-sm"},[i(g,{name:x(r.type),class:q([r.type==="error"||r.type==="assert"?"text-red-500":r.type==="warning"?"text-amber-500":"text-gray-400","size-4 mt-0.5 shrink-0"])},null,8,["name","class"]),n("div",Da,[n("div",Na,[i(a,{color:_(r.type),variant:"soft",size:"xs",class:"shrink-0"},{default:d(()=>[p(c(r.type),1)]),_:2},1032,["color"]),n("span",Aa,c(r.text),1)]),r.location?(t(),o("div",Pa,c(r.location),1)):l("",!0)])]))),128))])]),_:1},8,["count"])):l("",!0)}}}),Ba=Object.assign(Ua,{__name:"TestCaseConsoleCard"}),Fa={key:0,class:"space-y-4 text-sm"},Va={class:"space-y-1.5"},Ea={class:"flex items-center gap-2"},Oa={key:0,class:"text-xs text-gray-500"},Ha={class:"block text-xs break-all text-gray-700 dark:text-gray-300"},Ka={key:0,class:"text-xs text-red-600 dark:text-red-400 font-mono"},Wa={class:"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-gray-400"},Ga={key:0,class:"font-mono"},Ja={key:1,class:"font-mono"},qa={key:2},Qa={key:3,title:"Bytes on the wire"},Za={key:0},Xa={class:"flex h-2 rounded overflow-hidden bg-gray-100 dark:bg-gray-800"},Ya=["title"],eo={class:"flex flex-wrap gap-x-3 gap-y-1 mt-1.5 text-xs text-gray-500"},to={class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5 capitalize"},so={key:0,class:"rounded border border-default divide-y divide-default max-h-48 overflow-y-auto"},no={class:"text-gray-500 dark:text-gray-400 shrink-0"},ao={class:"break-all text-gray-700 dark:text-gray-300"},oo={key:1,class:"text-xs text-gray-400"},ro={key:1},io={key:0,class:"rounded border border-default p-2"},lo=["src","alt"],co={key:1,class:"max-h-96 overflow-y-auto"},uo={key:0,class:"mt-1 text-xs text-gray-400"},mo={key:2,class:"text-xs text-gray-400"},po={key:2,class:"text-xs text-gray-400"},go=re({__name:"TraceNetworkDrawer",props:{open:{type:Boolean},entry:{},runId:{},testRunsCaseId:{}},emits:["update:open"],setup(s,{emit:_}){const x=s,b=_,w=[{key:"dns",label:"DNS",color:"bg-sky-400"},{key:"connect",label:"Connect",color:"bg-violet-400"},{key:"ssl",label:"TLS",color:"bg-rose-400"},{key:"send",label:"Send",color:"bg-amber-400"},{key:"wait",label:"Wait",color:"bg-blue-400"},{key:"receive",label:"Receive",color:"bg-emerald-400"}],g=C(()=>{const $=x.entry?.timings;return $?w.map(h=>({...h,value:$[h.key]??-1})).filter(h=>typeof h.value=="number"&&h.value>=0):[]}),a=C(()=>g.value.reduce(($,h)=>$+h.value,0)),u=C(()=>{const $=x.entry?.requestPostData??"";return $.startsWith("{")||$.startsWith("[")}),r=A(null),P=A(!1),z=new Map;return ve(()=>[x.open,x.entry?.bodySha1],async([$,h])=>{if(r.value=null,!$||!h||!x.runId)return;const F=z.get(h);if(F){r.value=F;return}P.value=!0;try{const M=await $fetch(`/api/test-runs/${x.runId}/cases/${x.testRunsCaseId}/trace-network-body`,{query:{sha1:h}});z.set(h,M),r.value=M}catch{r.value={status:"not-found"}}finally{P.value=!1}},{immediate:!0}),($,h)=>{const F=fe,M=Re,m=qs,I=qe,E=Qs;return t(),k(E,{open:s.open,title:"Request detail",ui:{content:"max-w-xl"},"onUpdate:open":h[0]||(h[0]=U=>b("update:open",U))},{body:d(()=>[s.entry?(t(),o("div",Fa,[n("div",Va,[n("div",Ea,[i(F,{color:("httpMethodColor"in $?$.httpMethodColor:e(We))(s.entry.method),variant:"soft",size:"sm",class:"font-mono shrink-0"},{default:d(()=>[p(c(s.entry.method),1)]),_:1},8,["color"]),i(F,{color:("httpStatusColor"in $?$.httpStatusColor:e(Ge))(s.entry.status),variant:"soft",size:"sm",class:"font-mono shrink-0 tabular-nums"},{default:d(()=>[p(c(s.entry.status>0?s.entry.status:"—"),1)]),_:1},8,["color"]),s.entry.statusText?(t(),o("span",Oa,c(s.entry.statusText),1)):l("",!0)]),n("code",Ha,c(s.entry.url),1),s.entry.failureText?(t(),o("p",Ka,c(s.entry.failureText),1)):l("",!0),n("div",Wa,[s.entry.resourceType?(t(),o("span",Ga,c(s.entry.resourceType),1)):l("",!0),s.entry.mimeType?(t(),o("span",Ja,c(s.entry.mimeType),1)):l("",!0),s.entry.responseBodySize!=null?(t(),o("span",qa,c(("formatBytes"in $?$.formatBytes:e(we))(s.entry.responseBodySize)),1)):l("",!0),s.entry.transferSize!=null?(t(),o("span",Qa,c(("formatBytes"in $?$.formatBytes:e(we))(s.entry.transferSize))+" transferred",1)):l("",!0),i(M,{ms:s.entry.duration},null,8,["ms"]),s.entry.duringFailure?(t(),k(F,{key:4,color:"error",variant:"subtle",size:"xs"},{default:d(()=>[...h[1]||(h[1]=[p("During failing action",-1)])]),_:1})):l("",!0)])]),e(g).length>0&&e(a)>0?(t(),o("div",Za,[h[2]||(h[2]=n("p",{class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5"},"Timing",-1)),n("div",Xa,[(t(!0),o(B,null,te(e(g),U=>(t(),o("div",{key:U.key,class:q(U.color),style:Ce({width:`${Math.max(.5,U.value/e(a)*100)}%`}),title:`${U.label}: ${("formatDuration"in $?$.formatDuration:e(Ws))(U.value)}`},null,14,Ya))),128))]),n("div",eo,[(t(!0),o(B,null,te(e(g),U=>(t(),o("span",{key:U.key,class:"inline-flex items-center gap-1"},[n("span",{class:q(["size-2 rounded-full",U.color])},null,2),p(" "+c(U.label)+" ",1),i(M,{ms:U.value,"no-title":""},null,8,["ms"])]))),128))])])):l("",!0),(t(),o(B,null,te(["request","response"],U=>n("div",{key:U},[n("p",to,c(U)+" headers",1),(U==="request"?s.entry.requestHeaders:s.entry.responseHeaders).length>0?(t(),o("div",so,[(t(!0),o(B,null,te(U==="request"?s.entry.requestHeaders:s.entry.responseHeaders,R=>(t(),o("div",{key:`${U}-${R.name}`,class:"px-2 py-1 text-xs font-mono flex gap-2"},[n("span",no,c(R.name)+":",1),n("span",ao,c(R.value),1)]))),128))])):(t(),o("p",oo,"None recorded."))])),64)),s.entry.requestPostData?(t(),o("div",ro,[h[3]||(h[3]=n("p",{class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5"},"Request body",-1)),i(m,{code:s.entry.requestPostData,lang:e(u)?"json":"text"},null,8,["code","lang"])])):l("",!0),n("div",null,[h[4]||(h[4]=n("p",{class:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1.5"},"Response body",-1)),e(P)?(t(),k(I,{key:0,text:"Loading body…",padded:!1})):e(r)?(t(),o(B,{key:1},[e(r).status==="ok"&&e(r).kind==="image"?(t(),o("div",io,[n("img",{src:e(r).dataUri,alt:s.entry.url,class:"max-w-full max-h-96"},null,8,lo)])):e(r).status==="ok"?(t(),o("div",co,[i(m,{code:e(r).content??"",lang:e(r).kind==="json"?"json":"text"},null,8,["code","lang"]),e(r).truncated?(t(),o("p",uo,"Preview truncated.")):l("",!0)])):(t(),o("p",mo,c(e(r).status==="too-large"?`Body too large to preview (${("formatBytes"in $?$.formatBytes:e(we))(e(r).size??0)}) — open the trace viewer to inspect it.`:e(r).status==="unsupported"?`No preview for ${e(r).mimeType||"this content type"} — open the trace viewer to inspect it.`:"Body not stored in the trace."),1))],64)):s.entry.bodySha1?l("",!0):(t(),o("p",po,"No body captured for this request."))])])):l("",!0)]),_:1},8,["open"])}}}),fo=Object.assign(go,{__name:"TraceNetworkDrawer"}),yo={class:"flex items-center justify-between gap-2 mb-2"},xo={key:0,class:"hidden sm:flex items-center gap-1.5 text-xs text-gray-400"},ho={class:"space-y-1 max-h-[28rem] overflow-y-auto"},vo=["title","onClick"],_o={class:"flex items-center gap-2 text-sm min-w-0"},ko={class:"truncate text-xs flex-1 min-w-0"},bo={key:0,class:"shrink-0 text-xs text-gray-400 font-mono hidden md:inline"},wo={key:1,class:"shrink-0 text-xs text-gray-400 tabular-nums hidden sm:inline"},$o={class:"relative h-1.5 mt-1 rounded bg-gray-100 dark:bg-gray-800 overflow-hidden"},Co={key:0,class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},To=re({__name:"TraceNetworkList",props:{data:{},runId:{},testRunsCaseId:{}},setup(s){const _=s,x=A("all"),b=C(()=>_.data.requests??[]),w=C(()=>({total:b.value.length,failed:b.value.filter(I=>I.failed).length,duringFailure:b.value.filter(I=>I.duringFailure).length})),g=C(()=>[{label:`All (${w.value.total})`,value:"all"},{label:`Failed (${w.value.failed})`,value:"failed",disabled:w.value.failed===0},{label:`During failure (${w.value.duringFailure})`,value:"duringFailure",disabled:w.value.duringFailure===0}]),a=C(()=>x.value==="failed"?b.value.filter(I=>I.failed):x.value==="duringFailure"?b.value.filter(I=>I.duringFailure):b.value);function u(I){try{return new URL(I).pathname||I}catch{return I}}const r=C(()=>Math.max(1,_.data.timelineDuration??1));function P(I){const E=Math.max(0,Math.min(100,I.start/r.value*100)),U=Math.min(100-E,Math.max(1.5,I.duration/r.value*100));return{left:`${E}%`,width:`${U}%`}}const z=C(()=>{const I=_.data.failingWindow;if(!I||I.end<=I.start)return null;const E=Math.max(0,Math.min(100,I.start/r.value*100)),U=Math.max(.5,Math.min(100-E,(I.end-I.start)/r.value*100));return{left:`${E}%`,width:`${U}%`}});function $(I){return I.failed?"bg-red-500":I.duration>1e3?"bg-orange-400":"bg-gray-400 dark:bg-gray-500"}function h(I){return I.failed?"border-l-2 border-l-red-400 dark:border-l-red-600":I.duringFailure?"border-l-2 border-l-amber-400 dark:border-l-amber-600":"border-l-2 border-l-transparent"}const F=A(null),M=A(!1);function m(I){F.value=I,M.value=!0}return(I,E)=>{const U=Je,R=fe,W=Re,G=fo;return t(),o("div",null,[n("div",yo,[i(U,{modelValue:e(x),"onUpdate:modelValue":E[0]||(E[0]=D=>ge(x)?x.value=D:null),items:e(g),size:"xs",variant:"link",ui:{list:"gap-2",trigger:"px-1.5"}},null,8,["modelValue","items"]),s.data.failingWindow?(t(),o("span",xo,[...E[2]||(E[2]=[n("span",{class:"inline-block w-3 h-2 rounded-sm bg-red-500/10 border border-red-300 dark:border-red-800"},null,-1),p(" failing action ",-1)])])):l("",!0)]),n("div",ho,[(t(!0),o(B,null,te(e(a),D=>(t(),o("button",{key:D.index,type:"button",class:q([h(D),"w-full rounded bg-gray-50/60 dark:bg-gray-800/40 py-1.5 px-2 text-left cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800"]),title:D.url,onClick:Z=>m(D)},[n("div",_o,[i(R,{color:("httpMethodColor"in I?I.httpMethodColor:e(We))(D.method),variant:"soft",size:"xs",class:"font-mono shrink-0"},{default:d(()=>[p(c(D.method),1)]),_:2},1032,["color"]),i(R,{color:("httpStatusColor"in I?I.httpStatusColor:e(Ge))(D.status),variant:"soft",size:"xs",class:"font-mono shrink-0 tabular-nums",title:D.failureText||D.statusText},{default:d(()=>[p(c(D.status>0?D.status:"—"),1)]),_:2},1032,["color","title"]),n("code",ko,c(u(D.url)),1),D.resourceType?(t(),o("span",bo,c(D.resourceType),1)):l("",!0),D.responseBodySize!=null?(t(),o("span",wo,c(("formatBytes"in I?I.formatBytes:e(we))(D.responseBodySize)),1)):l("",!0),n("span",{class:q(["ml-1 shrink-0 text-xs tabular-nums",D.duration>1e3?"text-red-600 font-medium":D.duration>500?"text-orange-500":"text-gray-500"])},[i(W,{ms:D.duration,"unit-class":"opacity-60"},null,8,["ms"])],2)]),n("div",$o,[e(z)?(t(),o("div",{key:0,class:"absolute inset-y-0 bg-red-500/10 border-x border-red-300/60 dark:border-red-800/60",style:Ce(e(z))},null,4)):l("",!0),n("div",{class:q(["absolute inset-y-0 rounded-full",$(D)]),style:Ce(P(D))},null,6)])],10,vo))),128))]),s.data.truncated?(t(),o("p",Co," Showing the first "+c(e(b).length)+" of "+c(s.data.totalBeforeCap)+" requests recorded in the trace. ",1)):l("",!0),i(G,{open:e(M),"onUpdate:open":E[1]||(E[1]=D=>ge(M)?M.value=D:null),entry:e(F),"run-id":s.runId,"test-runs-case-id":s.testRunsCaseId},null,8,["open","entry","run-id","test-runs-case-id"])])}}}),So=Object.assign(To,{__name:"TraceNetworkList"}),Io={class:"flex flex-wrap items-center gap-x-3 gap-y-1"},Ro={key:0,class:"flex items-center gap-2 text-xs"},Lo={key:0,class:"flex items-center gap-1 text-red-600 dark:text-red-400"},zo={key:1,class:"flex items-center gap-1 text-amber-600 dark:text-amber-400"},Mo={key:2,class:"text-xs text-gray-400 py-2"},jo={key:1,class:"space-y-1 max-h-[28rem] overflow-y-auto"},Do=["disabled","onClick"],No={key:1,class:"size-3.5 shrink-0"},Ao=["title"],Po=["title"],Uo=["title"],Bo=["title"],Fo=["title"],Vo=["title"],Eo={key:0,class:"px-2 pt-1.5 pb-2 pl-7 space-y-1"},Oo={class:"flex items-center gap-1.5 text-[11px] uppercase tracking-wide text-gray-400"},Ho=["title"],Ko={key:0,class:"shrink-0 text-[10px] uppercase text-gray-400 font-mono hidden sm:inline"},Wo={class:"relative flex-1 h-3 rounded bg-gray-100 dark:bg-gray-800 min-w-0"},Go={key:1,class:"px-2 pb-2 pl-7 space-y-1.5"},Jo={class:"flex items-start gap-2"},qo={key:0,class:"text-gray-400 shrink-0 font-mono"},Qo={class:"font-mono break-all text-gray-700 dark:text-gray-300 flex-1 min-w-0"},Zo=["title"],Xo={key:0,class:"mt-1.5"},Yo=["onClick"],er={key:0,class:"mt-1 whitespace-pre-wrap break-all font-mono text-[11px] leading-relaxed text-gray-500 dark:text-gray-400 max-h-48 overflow-y-auto"},tr={key:2,class:"mt-3 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},sr={key:3,class:"mt-3 flex items-center gap-1.5 text-xs text-gray-400 dark:text-gray-500"},nr=re({__name:"TestCaseNetworkRequests",props:{requests:{},runId:{},testRunsCaseId:{},hasTrace:{type:Boolean}},setup(s,{expose:_}){const x=s,b=A("all"),{data:w,pending:g,load:a}=_a(()=>x.runId,()=>x.testRunsCaseId,()=>!!x.hasTrace),u=A(null),r=C({get:()=>u.value??(x.requests.length===0&&x.hasTrace?"trace":"captured"),set:v=>{u.value=v}});ve(()=>r.value==="trace",v=>{v&&a()},{immediate:!0});const P=C(()=>w.value?.status==="ok"?w.value.requests?.length??0:null),z=C(()=>[{label:`Captured (${x.requests.length})`,value:"captured",disabled:x.requests.length===0},{label:P.value!=null?`Full trace (${P.value})`:"Full trace",value:"trace"}]);function $(){x.hasTrace&&(u.value="trace")}_({showTraceMode:$});const h=A(new Set);function F(v){const S=new Set(h.value);S.has(v)?S.delete(v):S.add(v),h.value=S}const M=A(new Set);function m(v){const S=new Set(M.value);S.has(v)?S.delete(v):S.add(v),M.value=S}function I(v){if(v.length===0)return[];const S=Math.min(...v.map(O=>O.startMs)),H=Math.max(...v.map(O=>O.startMs+O.durMs)),J=Math.max(1,H-S),X=new Map(v.map(O=>[O.id,O])),se=O=>{let Y=0,ee=O;const ae=new Set;for(;ee?.parentId&&X.has(ee.parentId)&&!ae.has(ee.id)&&(ae.add(ee.id),ee=X.get(ee.parentId),Y++,!(Y>8)););return Y};return[...v].sort((O,Y)=>O.startMs-Y.startMs||Y.durMs-O.durMs).map(O=>({...O,offsetPct:(O.startMs-S)/J*100,widthPct:Math.max(1.5,O.durMs/J*100),depth:se(O)}))}function E(v){return v.status==="error"?"bg-red-400 dark:bg-red-500":v.kind==="db"?"bg-violet-400 dark:bg-violet-500":v.kind==="client"?"bg-sky-400 dark:bg-sky-500":v.kind==="internal"?"bg-gray-400 dark:bg-gray-500":"bg-emerald-400 dark:bg-emerald-500"}function U(v){const S=v.toLowerCase();return S==="critical"||S==="fatal"?3:S==="error"?2:S==="warning"||S==="warn"?1:0}function R(v){const S=U(v);if(S>=2)return"error";if(S===1)return"warning";const H=v.toLowerCase();return H==="info"||H==="information"?"info":"neutral"}function W(v){try{return new URL(v).pathname||v}catch{return v}}function G(v){return(v.split("/")[1]??v).replace(/^vnd\.[^+]*\+?/,"").replace(/^x-/,"")||v}function D(v){return v?new Date(v).toLocaleString():""}const Z=C(()=>x.requests.map((v,S)=>{const H=Array.isArray(v.serverLogs)?v.serverLogs:[],J=Array.isArray(v.serverTraces)?v.serverTraces:[];let X=0,se=0;for(const Y of H){const ee=U(Y.level);ee>=2?X++:ee===1&&se++}const O=J.find(Y=>!Y.parentId)??J[0];return{...v,_index:S,logs:[...H].sort((Y,ee)=>Y.timestamp-ee.timestamp),spans:J,serverMs:O?O.durMs:null,errorLogCount:X,warnLogCount:se,failed:v.status>=400,hasDetail:H.length>0||J.length>0,path:W(v.url)}})),Q=C(()=>{let v=0,S=0,H=0,J=0,X=0;for(const se of Z.value)se.failed&&v++,se.logs.length>0&&S++,se.spans.length>0&&H++,J+=se.errorLogCount,X+=se.warnLogCount;return{total:Z.value.length,failed:v,withLogs:S,withSpans:H,errorLogs:J,warnLogs:X}}),de=C(()=>{let v=Z.value;return b.value==="failed"?v=v.filter(S=>S.failed):b.value==="logs"&&(v=v.filter(S=>S.logs.length>0)),[...v].sort((S,H)=>{const J=X=>(X.errorLogCount>0?3:0)+(X.failed?2:0)+(X.logs.length>0?1:0);return J(H)-J(S)||S._index-H._index})}),y=C(()=>[{label:`All (${Q.value.total})`,value:"all"},{label:`Failed (${Q.value.failed})`,value:"failed",disabled:Q.value.failed===0},{label:`With logs (${Q.value.withLogs})`,value:"logs",disabled:Q.value.withLogs===0}]),N=C(()=>Q.value.withLogs>0);function ne(v){return v.errorLogCount>0||v.status>=500?"border-l-2 border-l-red-400 dark:border-l-red-600":v.failed||v.warnLogCount>0?"border-l-2 border-l-amber-400 dark:border-l-amber-600":"border-l-2 border-l-transparent"}return(v,S)=>{const H=ce,J=Je,X=qe,se=So,O=fe,Y=Re,ee=Ke,ae=ye;return t(),k(ae,{icon:"i-lucide-network",title:"Network & backend logs",count:e(r)==="trace"?e(P):e(Q).total,help:"case.network"},{actions:d(()=>[n("div",Io,[e(r)==="captured"?(t(),o(B,{key:0},[e(Q).errorLogs>0||e(Q).warnLogs>0?(t(),o("div",Ro,[e(Q).errorLogs>0?(t(),o("span",Lo,[i(H,{name:"i-lucide-octagon-alert",class:"size-3.5"}),p(c(e(Q).errorLogs),1)])):l("",!0),e(Q).warnLogs>0?(t(),o("span",zo,[i(H,{name:"i-lucide-triangle-alert",class:"size-3.5"}),p(c(e(Q).warnLogs),1)])):l("",!0)])):l("",!0),i(J,{modelValue:e(b),"onUpdate:modelValue":S[0]||(S[0]=j=>ge(b)?b.value=j:null),items:e(y),size:"xs",variant:"link",ui:{list:"gap-2",trigger:"px-1.5"}},null,8,["modelValue","items"])],64)):l("",!0),s.hasTrace?(t(),k(J,{key:1,modelValue:e(r),"onUpdate:modelValue":S[1]||(S[1]=j=>ge(r)?r.value=j:null),items:e(z),size:"xs",variant:"pill",ui:{list:"gap-1 p-0.5",trigger:"px-2"}},null,8,["modelValue","items"])):l("",!0)])]),default:d(()=>[e(r)==="trace"?(t(),o(B,{key:0},[e(g)||!e(w)?(t(),k(X,{key:0,text:"Parsing trace network stream…"})):e(w).status==="ok"?(t(),k(se,{key:1,data:e(w),"run-id":s.runId??null,"test-runs-case-id":s.testRunsCaseId??0},null,8,["data","run-id","test-runs-case-id"])):(t(),o("p",Mo,"No network activity recorded in this trace."))],64)):(t(),o("div",jo,[(t(!0),o(B,null,te(e(de),j=>(t(),o("div",{key:j._index,class:q([ne(j),"rounded bg-gray-50/60 dark:bg-gray-800/40"])},[n("button",{type:"button",class:q(["w-full flex items-center gap-2 py-1.5 px-2 text-sm text-left",j.hasDetail?"cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800":"cursor-default"]),disabled:!j.hasDetail,onClick:K=>j.hasDetail&&F(j._index)},[j.hasDetail?(t(),k(H,{key:0,name:e(h).has(j._index)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 shrink-0 text-gray-400"},null,8,["name"])):(t(),o("span",No)),i(O,{color:("httpMethodColor"in v?v.httpMethodColor:e(We))(j.method),variant:"soft",size:"xs",class:"font-mono shrink-0"},{default:d(()=>[p(c(j.method),1)]),_:2},1032,["color"]),i(O,{color:("httpStatusColor"in v?v.httpStatusColor:e(Ge))(j.status),variant:"soft",size:"xs",class:"font-mono shrink-0 tabular-nums"},{default:d(()=>[p(c(j.status||"—"),1)]),_:2},1032,["color"]),n("code",{class:"truncate text-xs flex-1 min-w-0",title:j.url},c(j.path),9,Ao),j.contentType?(t(),o("span",{key:2,class:"shrink-0 text-xs text-gray-400 font-mono hidden md:inline",title:`Response content type: ${j.contentType}`},c(G(j.contentType)),9,Po)):l("",!0),j.errorLogCount>0?(t(),o("span",{key:3,class:"shrink-0 inline-flex items-center gap-1 text-xs text-red-600 dark:text-red-400",title:`${j.errorLogCount} backend error log(s)`},[i(H,{name:"i-lucide-octagon-alert",class:"size-3.5"}),p(c(j.errorLogCount),1)],8,Uo)):l("",!0),j.warnLogCount>0?(t(),o("span",{key:4,class:"shrink-0 inline-flex items-center gap-1 text-xs text-amber-600 dark:text-amber-400",title:`${j.warnLogCount} backend warning log(s)`},[i(H,{name:"i-lucide-triangle-alert",class:"size-3.5"}),p(c(j.warnLogCount),1)],8,Bo)):l("",!0),j.serverMs!=null?(t(),o("span",{key:5,class:"shrink-0 inline-flex items-center gap-1 text-xs text-emerald-600 dark:text-emerald-400 tabular-nums",title:`Server-side processing time (${j.spans.length} span${j.spans.length===1?"":"s"})`},[i(H,{name:"i-lucide-server",class:"size-3.5"}),i(Y,{ms:j.serverMs,"no-title":""},null,8,["ms"])],8,Fo)):l("",!0),j.startTime?(t(),o("span",{key:6,class:"shrink-0 text-xs text-gray-400 hidden sm:inline",title:D(j.startTime)},c(("formatRelativeTime"in v?v.formatRelativeTime:e(Se))(j.startTime)),9,Vo)):l("",!0),n("span",{class:q(["ml-1 shrink-0 text-xs tabular-nums",(j.duration??0)>1e3?"text-red-600 font-medium":(j.duration??0)>500?"text-orange-500":"text-gray-500"])},[i(Y,{ms:j.duration,"unit-class":"opacity-60"},null,8,["ms"])],2)],10,Do),j.spans.length>0&&e(h).has(j._index)?(t(),o("div",Eo,[n("div",Oo,[i(H,{name:"i-lucide-waypoints",class:"size-3.5"}),S[2]||(S[2]=p("Server trace ",-1))]),(t(!0),o(B,null,te(I(j.spans),K=>(t(),o("div",{key:K.id,class:"flex items-center gap-2 text-xs",title:K.status==="error"?`${K.name} (error)`:K.name},[n("div",{class:"w-40 sm:w-56 shrink-0 flex items-center gap-1 min-w-0",style:Ce({paddingLeft:`${K.depth*12}px`})},[K.kind?(t(),o("span",Ko,c(K.kind),1)):l("",!0),n("span",{class:q(["truncate font-mono",K.status==="error"?"text-red-600 dark:text-red-400":"text-gray-600 dark:text-gray-300"])},c(K.name),3)],4),n("div",Wo,[n("div",{class:q(["absolute top-0 h-3 rounded",E(K)]),style:Ce({left:`${K.offsetPct}%`,width:`${K.widthPct}%`})},null,6)]),i(Y,{ms:K.durMs,class:"w-12 shrink-0 text-right text-gray-500"},null,8,["ms"])],8,Ho))),128))])):l("",!0),j.logs.length>0&&e(h).has(j._index)?(t(),o("div",Go,[(t(!0),o(B,null,te(j.logs,(K,xe)=>(t(),o("div",{key:xe,class:"rounded border border-default bg-white dark:bg-gray-900/60 p-2 text-xs"},[n("div",Jo,[i(O,{color:R(K.level),variant:"soft",size:"xs",class:"shrink-0 capitalize"},{default:d(()=>[p(c(K.level),1)]),_:2},1032,["color"]),K.category?(t(),o("span",qo,"["+c(K.category)+"]",1)):l("",!0),n("span",Qo,c(K.message),1),K.timestamp?(t(),o("span",{key:1,class:"shrink-0 text-gray-400 tabular-nums",title:D(K.timestamp)},c(("formatRelativeTime"in v?v.formatRelativeTime:e(Se))(K.timestamp)),9,Zo)):l("",!0)]),K.stack?(t(),o("div",Xo,[n("button",{type:"button",class:"inline-flex items-center gap-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200",onClick:Qe=>m(`${j._index}:${xe}`)},[i(H,{name:e(M).has(`${j._index}:${xe}`)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3"},null,8,["name"]),S[3]||(S[3]=p(" Stack trace ",-1))],8,Yo),e(M).has(`${j._index}:${xe}`)?(t(),o("pre",er,c(K.stack),1)):l("",!0)])):l("",!0)]))),128))])):l("",!0)],2))),128))])),e(r)==="captured"&&!e(N)?(t(),o("p",tr,[i(H,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),S[5]||(S[5]=p(" No backend server logs captured — install ",-1)),i(ee,{to:"backend-logs","no-icon":"",class:"underline"},{default:d(()=>[...S[4]||(S[4]=[p("a Piwi backend integration",-1)])]),_:1}),S[6]||(S[6]=p(" to see server-side warnings and errors under each request. ",-1))])):l("",!0),s.hasTrace?l("",!0):(t(),o("p",sr,[i(H,{name:"i-lucide-info",class:"size-3.5 shrink-0"}),n("span",null,[S[8]||(S[8]=p(" Want to go deeper? Record traces (",-1)),S[9]||(S[9]=n("code",null,"trace: 'retain-on-failure'",-1)),S[10]||(S[10]=p(") to see every request with headers, timing and bodies here. ",-1)),i(ee,{to:"ui-overview#trace-powered-deep-views","no-icon":"",class:"underline"},{default:d(()=>[...S[7]||(S[7]=[p("Learn more",-1)])]),_:1})])]))]),_:1},8,["count"])}}}),ar=Object.assign(nr,{__name:"TestCaseNetworkRequests"}),or={class:"space-y-2"},rr=re({__name:"TestCaseTracesCard",props:{traces:{}},setup(s){return(_,x)=>{const b=ds,w=ye;return s.traces.length>0?(t(),k(w,{key:0,icon:"i-lucide-bug-play",title:"Traces",count:s.traces.length,help:"case.traces"},{default:d(()=>[n("div",or,[(t(!0),o(B,null,te(s.traces,g=>(t(),k(b,{key:g.id,trace:g,class:"py-2 px-3 rounded-lg border"},null,8,["trace"]))),128))])]),_:1},8,["count"])):l("",!0)}}}),ir=Object.assign(rr,{__name:"TestCaseTracesCard"}),lr={class:"space-y-3"},cr={class:"flex items-center justify-between px-3 py-2 bg-gray-50 dark:bg-gray-800/50 border-b"},ur={class:"flex items-center gap-2 min-w-0"},dr={class:"text-sm font-medium truncate"},mr={key:0,class:"text-xs text-gray-400 shrink-0"},pr={class:"text-xs text-gray-400"},gr={class:"flex items-center gap-1 shrink-0"},fr=["href"],yr={key:0,class:"bg-gray-100 dark:bg-gray-900"},xr=["src","alt","onClick"],hr={key:1,class:"bg-black"},vr={key:2,class:"bg-gray-50 dark:bg-gray-900"},_r={key:0,class:"flex items-center justify-center py-8"},kr={key:1,class:"p-4 text-red-500 text-sm"},br={key:2,class:"p-4 overflow-auto max-h-96"},wr={class:"text-sm whitespace-pre-wrap font-sans leading-relaxed"},$r=re({__name:"TestCaseAttachmentsCard",props:{attachments:{}},setup(s){const _=s,x=Oe(),b=A(null),w=C(()=>_.attachments.filter(R=>Te(R.path,R.contentType)).map(R=>({src:z(R.path,R.contentType),name:R.name||$(R.path)})));function g(R){b.value=R}const a=new Set([".md",".mdx",".markdown"]),u=new Set(["text/markdown","text/x-markdown"]);function r(R){return R.toLowerCase().split(".").pop()||""}function P(R,W){return!!(a.has(r(R))||W&&u.has(W.toLowerCase()))}function z(R,W){return _t(R,W,x.app?.baseURL)}function $(R){return R.split("/").pop()||R}function h(R){return R==null?"":we(R)}const F=A({}),M=A({}),m=A({}),I=A(new Set);async function E(R){if(F.value[R.id]===void 0&&!m.value[R.id]){m.value[R.id]=!0,M.value[R.id]=null;try{const W=await $fetch(z(R.path,R.contentType),{responseType:"text"});F.value[R.id]=W}catch{M.value[R.id]="Failed to load preview"}finally{m.value[R.id]=!1}}}function U(R,W){const G=new Set(I.value);G.has(R)?G.delete(R):(G.add(R),E(W)),I.value=G}return(R,W)=>{const G=ce,D=Ie,Z=ms,Q=ps,de=ye;return s.attachments.length>0?(t(),k(de,{key:0,icon:"i-lucide-paperclip",title:"Attachments",count:s.attachments.length},{default:d(()=>[n("div",lr,[(t(!0),o(B,null,te(s.attachments,y=>(t(),o("div",{key:y.id,class:"rounded-lg border overflow-hidden"},[n("div",cr,[n("div",ur,[i(G,{name:e(Te)(y.path,y.contentType)?"i-lucide-image":e(Ne)(y.path,y.contentType)?"i-lucide-video":P(y.path,y.contentType)?"i-lucide-file-text":"i-lucide-file",class:"size-4 text-gray-400 shrink-0"},null,8,["name"]),n("span",dr,c($(y.path)),1),y.name&&y.name!==$(y.path)?(t(),o("span",mr,c(y.name),1)):l("",!0),n("span",pr,c(h(y.size)),1)]),n("div",gr,[P(y.path,y.contentType)?(t(),k(D,{key:0,size:"xs",color:"neutral",variant:"soft",onClick:N=>U(y.id,y)},{default:d(()=>[p(c(e(I).has(y.id)?"Hide preview":"Preview"),1)]),_:2},1032,["onClick"])):l("",!0),n("a",{href:z(y.path,y.contentType),target:"_blank",class:"text-primary hover:underline text-xs shrink-0"},"Open",8,fr)])]),e(Te)(y.path,y.contentType)?(t(),o("div",yr,[n("img",{src:z(y.path,y.contentType),alt:y.name||"Screenshot",class:"max-w-full max-h-96 object-contain mx-auto cursor-pointer hover:opacity-90 transition-opacity",loading:"lazy",onClick:N=>g(e(w).findIndex(ne=>ne.src===z(y.path,y.contentType)))},null,8,xr)])):e(Ne)(y.path,y.contentType)?(t(),o("div",hr,[i(Z,{src:z(y.path,y.contentType)},null,8,["src"])])):P(y.path,y.contentType)&&e(I).has(y.id)?(t(),o("div",vr,[e(m)[y.id]?(t(),o("div",_r,[i(G,{name:"i-lucide-loader-circle",class:"size-5 animate-spin text-gray-400"})])):e(M)[y.id]?(t(),o("div",kr,c(e(M)[y.id]),1)):e(F)[y.id]?(t(),o("div",br,[n("pre",wr,c(e(F)[y.id]),1)])):l("",!0)])):l("",!0)]))),128))]),i(Q,{modelValue:e(b),"onUpdate:modelValue":W[0]||(W[0]=y=>ge(b)?b.value=y:null),images:e(w)},null,8,["modelValue","images"])]),_:1},8,["count"])):l("",!0)}}}),Cr=Object.assign($r,{__name:"TestCaseAttachmentsCard"});function Tr(s){return Array.isArray(s)?s.some(_=>_&&typeof _.type=="string"&&_.type.toLowerCase()==="slow"):!1}function Sr(s){const _=[];if(!s)return _;const x=s.steps||[],w=x.filter(a=>a.category==="navigation").filter(a=>a.duration>3e3);if(w.length>0){const a=w.sort((u,r)=>r.duration-u.duration)[0];_.push({type:"warning",message:"Slow navigation detected",details:`"${a.title}" took ${(a.duration/1e3).toFixed(1)}s. The tested page may have performance issues (slow server response, heavy JS bundles, etc.).`})}x.length>20&&_.push({type:"info",message:"Many sequential actions",details:`This test has ${x.length} steps. Consider splitting it into smaller, focused tests for better isolation and faster feedback.`}),s.status==="passed"&&(s.retries||0)>0&&_.push({type:"warning",message:"Flaky test — passed after retries",details:`This test needed ${s.retries} ${s.retries===1?"retry":"retries"} to pass. Consider reviewing locator strategies, adding explicit waits, or checking for race conditions.`});const g=x.filter(a=>a.category==="assertion"&&a.duration>2e3);if(g.length>0){const a=g.sort((u,r)=>r.duration-u.duration)[0];_.push({type:"info",message:"Slow assertions detected",details:`"${a.title}" took ${(a.duration/1e3).toFixed(1)}s. The UI may be slow to render or the assertion timeout may need tuning.`})}return Tr(s.testAnnotations)&&typeof s.duration=="number"&&s.duration<1e4&&_.push({type:"info",message:"test.slow() may be unnecessary",details:`This run finished in ${(s.duration/1e3).toFixed(1)}s, yet the test is marked test.slow(), which triples its timeout budget. If it is consistently this fast, removing test.slow() lets a failure surface sooner.`}),typeof s.timeout=="number"&&s.timeout>0&&typeof s.duration=="number"&&s.duration>0&&s.timeout>=4*s.duration&&s.timeout-s.duration>=3e4&&_.push({type:"info",message:"Oversized timeout",details:`The timeout is ${(s.timeout/1e3).toFixed(0)}s but this run took ${(s.duration/1e3).toFixed(1)}s. A large timeout means a hang or failure waits far longer than necessary — consider lowering it toward the test's real duration.`}),_}function Ir(s,_){const x=s.search(/\n at /);if(x===-1)return _!==void 0&&s.length>_?s.slice(0,_)+`
|
|
4
|
+
[truncated]`:s;const b=s.slice(0,x),g=s.slice(x).split(`
|
|
5
|
+
`),a=[];let u=0;const r=()=>{u>0&&(a.push(`… (${u} internal frame${u>1?"s":""})`),u=0)};for(const z of g){const $=z.trimStart();$.startsWith("at ")?z.includes("node_modules")||$.startsWith("at node:")?u++:(r(),a.push(z)):($===""||r(),a.push(z))}r();let P=b+`
|
|
6
|
+
`+a.join(`
|
|
7
|
+
`);return _!==void 0&&P.length>_&&(P=P.slice(0,_)+`
|
|
8
|
+
[truncated]`),P}const Rr={class:"space-y-4"},Lr=["innerHTML"],zr={class:"grid grid-cols-1 xl:grid-cols-[3fr_2fr] gap-4"},Mr={class:"space-y-4 xl:order-2"},jr={class:"space-y-4 xl:order-1 min-w-0"},Dr={class:"max-h-96 overflow-y-auto"},Nr={class:"space-y-3"},Ar={key:0},Pr={class:"flex flex-wrap items-center gap-x-3 gap-y-1.5 text-xs mb-3"},Ur={class:"font-medium text-gray-600 dark:text-gray-300"},Br={class:"tabular-nums text-gray-500 dark:text-gray-400"},Fr={class:"text-xs tabular-nums text-gray-400 dark:text-gray-500"},Vr={key:0,class:"inline-flex items-center justify-center size-5 rounded-full bg-red-100 dark:bg-red-900/30 text-red-600 dark:text-red-400 text-xs leading-none",title:"Step failed"},Er={key:1,class:"inline-flex items-center justify-center size-5 rounded-full bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400 text-xs leading-none",title:"Step passed"},Or={class:"flex items-center gap-2"},Hr={key:0,class:"text-xs text-red-500 mt-1 whitespace-pre-wrap break-words font-mono"},Kr={class:"min-w-[6rem]"},Wr={class:"flex items-center justify-between gap-2"},Gr={key:0,class:"text-xs tabular-nums text-gray-400 dark:text-gray-500"},Jr={class:"relative mt-1 h-1.5 w-full overflow-hidden rounded-full bg-gray-100 dark:bg-gray-800"},qr={class:"space-y-4 pt-4"},Qr={key:3,class:"flex flex-col items-center justify-center py-12 text-gray-400"},Zr={class:"space-y-4 pt-1"},Xr={key:0,class:"space-y-2"},Yr={class:"flex items-start gap-2"},ei={class:"space-y-4"},ti={key:3,class:"text-xs text-gray-400 pt-1"},si={class:"bg-gray-100 dark:bg-gray-800 px-1 rounded"},ni={class:"text-xs text-gray-400"},ai={class:"space-y-4 pt-4"},oi={key:0,class:"space-y-4"},ri={class:"flex items-center justify-end"},ii={class:"text-xs whitespace-nowrap"},li={class:"text-gray-500"},ci={class:"text-gray-400 ml-1"},ui={key:1,class:"text-gray-400"},di=["title"],ul=re({__name:"[id]",async setup(s){let _,x;const b=es(),w=ts(),g=b.params.id,{data:a,refresh:u}=([_,x]=pt(()=>ft(`/api/test-run-cases/${g}`,"$cViH4nbiGI")),_=await _,x(),_),r=A([]);ve(()=>a.value?.testCaseId,async f=>{if(f)try{r.value=await $fetch(`/api/test-cases/${f}/history`)}catch{r.value=[]}else r.value=[]},{immediate:!0});const{data:P,refresh:z}=([_,x]=pt(()=>ft(`/api/test-run-cases/${g}/traces`,"$GsSNbTq_Ec")),_=await _,x(),_),$=C(()=>(P.value?.length??0)>0);ss(C(()=>({title:`${a.value?.title||`Test run case #${g}`} — Piwi Dashboard`})));const h=C(()=>!!a.value?.error),F=C(()=>a.value?Sr(a.value):[]),M=C(()=>a.value?.steps?a.value.steps:[]),m=C(()=>a.value?.webVitals??null),I=C(()=>a.value?.networkRequests??[]),E=C(()=>{if(!r.value||r.value.length<2||!a.value?.duration)return null;const f=r.value.filter(le=>le.duration!==null&&le.id!==a.value?.id);if(f.length===0)return null;const T=f.reduce((le,pe)=>le+(pe.duration||0),0)/f.length,V=a.value.duration,oe=V-T,me=T>0?Math.round(oe/T*100):0;return{avg:Math.round(T),current:V,diff:Math.round(oe),pct:me}}),U=C(()=>a.value?.testRun?.metadata),R=C(()=>{const f=U.value;return f?.scm?f.scm:null}),W=C(()=>{const f=U.value;return f?.ci?f.ci:null}),G=C(()=>a.value?.failureCluster??null),D=C(()=>{const f=[];return h.value&&f.push({label:"Diagnosis",icon:"i-lucide-stethoscope",value:"diagnosis",slot:"diagnosis"}),f.push({label:`Steps (${M.value.length})`,icon:"i-lucide-list-checks",value:"steps",slot:"steps"}),h.value||f.push({label:"Artifacts",icon:"i-lucide-paperclip",value:"artifacts",slot:"artifacts"}),f.push({label:"Performance",icon:"i-lucide-gauge",value:"performance",slot:"performance"}),f.push({label:`History${r.value?.length?` (${r.value.length})`:""}`,icon:"i-lucide-trending-up",value:"history",slot:"history"}),f}),Z=C(()=>D.value.map(f=>f.value));function Q(){return h.value?"diagnosis":"steps"}function de(f){let T=typeof f=="string"?f:"";return T==="error"&&(T="diagnosis"),T==="traces"&&(T=h.value?"diagnosis":"artifacts"),Z.value.includes(T)?T:Q()}const y=A(de(b.query.tab));ve(Z,f=>{f.includes(y.value)||(y.value=de(b.query.tab))}),ve(y,f=>{b.query.tab!==f&&w.replace({query:{...b.query,tab:f}})},{immediate:!0});const N=[{accessorKey:"startTime",header:"Date"},{accessorKey:"status",header:"Status"},{accessorKey:"duration",header:"Duration"},{accessorKey:"retries",header:"Retries"},{accessorKey:"runId",header:"Run"},{accessorKey:"error",header:"Error"}],ne={navigation:"info",assertion:"success",action:"warning",input:"warning",api:"info",wait:"neutral",hook:"neutral",fixture:"neutral"},v=[{id:"index",header:"#",meta:{class:{th:"w-12",td:"w-12"}}},{id:"status",header:"",meta:{class:{th:"w-10",td:"w-10"}}},{accessorKey:"category",header:"Category",meta:{class:{th:"w-28",td:"w-28"}}},{accessorKey:"title",header:"Step"},{accessorKey:"duration",header:"Duration",meta:{class:{th:"w-44",td:"w-44"}}}],S=C(()=>{const f=new Map;for(const T of M.value){const V=f.get(T.category)??{count:0,duration:0};V.count+=1,V.duration+=T.duration||0,f.set(T.category,V)}return Array.from(f,([T,V])=>({category:T,...V})).sort((T,V)=>V.duration-T.duration)}),H=C(()=>{let f=-1,T=-1;return M.value.forEach((V,oe)=>{(V.duration||0)>T&&(T=V.duration||0,f=oe)}),f}),J=C(()=>M.value.reduce((f,T)=>Math.max(f,T.duration||0),0)),X=C(()=>M.value.length>0&&M.value.every(f=>typeof f.startTime=="number")),se=C(()=>a.value?.startedAt??(X.value?Math.min(...M.value.map(f=>f.startTime)):0)),O=C(()=>{const f=a.value?.duration??0;if(f>0)return f;if(X.value){const T=Math.max(...M.value.map(V=>V.startTime+(V.duration||0)));return Math.max(1,T-se.value)}return 0});function Y(f){if(X.value&&O.value>0){const V=Math.max(0,Math.min(100,(f.startTime-se.value)/O.value*100)),oe=Math.min(100-V,Math.max(1.5,(f.duration||0)/O.value*100));return{left:`${V}%`,width:`${oe}%`}}return{left:"0%",width:`${J.value>0?Math.max(2,(f.duration||0)/J.value*100):0}%`}}function ee(f){const T=a.value?.duration??0;if(T<=0)return"";const V=f/T*100;return V>0&&V<1?"<1%":`${Math.round(V)}%`}function ae(f){return f>2e3?"text-red-600 font-medium":f>500?"text-orange-500":"text-gray-500"}function j(f){return f>2e3?"bg-red-500":f>500?"bg-orange-400":"bg-gray-400 dark:bg-gray-500"}const K=C(()=>a.value?.testRun?.environment),xe=C(()=>[{filePath:a.value?.filePath??"",title:a.value?.title??"",line:a.value?.line??null,projectName:a.value?.browser?.projectName??null}]),Qe=C(()=>nn(xe.value)),{copy:$t,copied:Ze}=an(),Ct=C(()=>[{label:Ze.value?"Copied":"Retry command",icon:Ze.value?"i-lucide-check":"i-lucide-play",onClick:()=>$t(Qe.value,{toast:"Retry command copied"})},{label:"Refresh",icon:"i-lucide-refresh-cw",onClick:()=>u()}]),Tt=!!Oe().public.demoMode;let he=null;const Xe=C(()=>{const f=a.value?.testRun?.status;return f==="running"||f==="finalizing"});function St(){if(Tt||he)return;const f=a.value?.testRun?.id;f&&(he=new EventSource(`/api/test-runs/${f}/stream`),he.onmessage=T=>{try{const V=JSON.parse(T.data);V.type==="case-files"&&V.data?.testRunsCaseId===Number(g)?(u(),z()):V.type==="run-finished"&&(u(),z(),Pe())}catch{}},he.onerror=()=>{})}function Pe(){he&&(he.close(),he=null)}ve(Xe,f=>{f?St():Pe()},{immediate:!0}),ns(Pe);const{copyRich:It,copied:Ye}=gs();function Rt(){const f=a.value;if(!f?.error)return;const T=window.location.origin,V=f.title??"Unknown test",oe=f.location??"",me=f.error.replace(/\x1b\[[0-9;]*[a-zA-Z]/g,""),le=be=>be.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),pe=G.value?`${T}/failure-clusters/${G.value.id}`:null,je=`${T}/test-run-cases/${g}?tab=diagnosis`,ke=a.value?.testCaseId?`${T}/test-cases/${a.value.testCaseId}`:null,Be=[`❌ Test failed: ${V}`,oe?`Location: ${oe}`:null,"","Error:",me,"",pe?`Failure cluster: ${pe}`:null,`Execution: ${je}`,ke?`History: ${ke}`:null].filter(be=>be!==null).join(`
|
|
9
|
+
`),Fe=[`<p><strong>❌ Test failed: ${le(V)}</strong>${oe?`<br><code>${le(oe)}</code>`:""}</p>`,`<p><strong>Error:</strong></p><pre>${gt(f.error)}</pre>`,`<p>🔗 ${pe?`<a href="${pe}">View failure cluster</a> · `:""}<a href="${je}">Execution details</a>${ke?` · <a href="${ke}">Test history</a>`:""}</p>`].join("");It(Be,Fe,{toast:"Failure copied"})}const Ue=A(null),et=A(null),Le=A(null),ze=A(null),tt=A(null),Me=A(null),st=A(null),nt=A(null),at=A(null),ot=A(null);function _e(f){f?.scrollIntoView({behavior:"smooth",block:"start"})}const rt={sampleError:()=>_e(Ue.value),executionError:()=>_e(Ue.value),testSource:()=>ze.value?.reveal(),sourceFiles:()=>ze.value?.reveal(),environmentDiff:()=>st.value?.reveal(),visualDiff:()=>nt.value?.reveal(),domSnapshot:()=>at.value?.reveal(),ariaSnapshot:()=>ot.value?.reveal(),screenshots:()=>Me.value?.reveal(),tracePointers:()=>Me.value?.reveal(),artifacts:()=>Me.value?.reveal(),console:()=>_e(et.value),networkRequests:()=>_e(Le.value),serverTraces:()=>_e(Le.value),traceCallStack:()=>ze.value?.reveal(),traceNetwork:()=>{tt.value?.showTraceMode(),_e(Le.value)},steps:()=>{y.value="steps"},failingSteps:()=>{y.value="steps"}};return as(Es,{canLocate:f=>f in rt,open:f=>rt[f]?.()}),(f,T)=>{const V=Qt,oe=Zt,me=ce,le=Ae,pe=_s,je=Ts,ke=Ss,Be=Rs,Fe=Vn,be=Ie,Lt=kt,it=ye,zt=qn,Mt=ia,jt=ha,Dt=Ca,Nt=Ma,At=ys,Pt=xs,Ut=hs,lt=Ba,ct=ar,ut=fs,Bt=vt,Ft=He,Vt=vs,De=fe,ie=Re,Et=Zs,dt=Xs,mt=Ys,Ve=bt,Ot=ir,Ht=Cr,ue=tn,Ee=en,Kt=Ke,Wt=sn,Gt=Cs,Jt=Is;return t(),k(Jt,{id:"test-run-case-detail"},{header:d(()=>[i(Be,null,{leading:d(()=>[i(V),i(oe,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects",to:"/projects"},...e(a)?.testRun?.project?.id?[{label:e(a).testRun.project.name||"Project",to:`/projects/${e(a).testRun.project.id}`}]:[{label:"Project"}],...e(a)?.testRun?.id?[{label:`Run #${e(a).testRun.id}`+(e(a).testRun.label?` — ${e(a).testRun.label}`:""),to:`/test-runs/${e(a).testRun.id}`}]:[{label:"Test run"}],{label:e(a)?.title||`Test run case #${e(g)}`}]},null,8,["items"])]),right:d(()=>[e(a)?.testCaseId?(t(),k(le,{key:0,to:`/test-cases/${e(a).testCaseId}`,class:"text-xs text-gray-500 hover:text-primary mr-2 flex items-center gap-1",title:"View test case evolution and history"},{default:d(()=>[i(me,{name:"i-lucide-trending-up",class:"size-3.5"}),T[2]||(T[2]=n("span",{class:"hidden sm:inline"},"Evolution",-1))]),_:1},8,["to"])):l("",!0),e(a)?(t(),k(pe,{key:1,endpoint:`/api/test-run-cases/${e(a).id}/export`,"base-name":`piwi-execution-${e(a).id}`,class:"mr-2"},null,8,["endpoint","base-name"])):l("",!0),i(je,{"project-id":e(a)?.testRun?.project?.id,"project-label":e(a)?.testRun?.project?.label??e(a)?.testRun?.project?.name,cases:e(xe),class:"mr-2"},null,8,["project-id","project-label","cases"]),i(ke,{actions:e(Ct)},null,8,["actions"])]),_:1})]),body:d(()=>[i(Gt,{modelValue:e(y),"onUpdate:modelValue":T[1]||(T[1]=L=>ge(y)?y.value=L:null),"tab-items":e(D)},{summary:d(()=>[i(Fe,{"test-case":e(a)??null,"scm-info":e(R),"ci-info":e(W),browser:e(a)?.browser??null,environment:e(K),"steps-count":e(M).length,"historical-timing":e(E),"stable-links":e(a)?.stableLinks??null,onRefresh:T[0]||(T[0]=L=>e(u)())},null,8,["test-case","scm-info","ci-info","browser","environment","steps-count","historical-timing","stable-links"])]),"tab-diagnosis":d(()=>[n("div",Rr,[n("div",{ref_key:"errorEl",ref:Ue,class:"scroll-mt-4"},[e(a)?.error?(t(),k(it,{key:0,icon:"i-lucide-circle-x","icon-class":"text-red-500",title:"Error"},{actions:d(()=>[i(Lt,{text:e(Ye)?"Copied!":"Copy failure"},{default:d(()=>[i(be,{size:"xs",variant:"ghost",color:"neutral",icon:e(Ye)?"i-lucide-check":"i-lucide-clipboard",onClick:Rt},null,8,["icon"])]),_:1},8,["text"])]),default:d(()=>[n("div",{class:"text-xs font-mono whitespace-pre-wrap break-words max-h-96 overflow-y-auto rounded bg-red-50 dark:bg-red-950/20 p-3",innerHTML:e(gt)(e(Ir)(e(a).error))},null,8,Lr)]),_:1})):l("",!0)],512),n("div",zr,[n("div",Mr,[i(zt,{"test-case":e(a)??null,history:e(r),"current-id":Number(e(g))},null,8,["test-case","history","current-id"]),e(G)?(t(),k(Mt,{key:0,cluster:e(G)},null,8,["cluster"])):l("",!0),i(jt,{"test-runs-case-id":Number(e(g))},null,8,["test-runs-case-id"])]),n("div",jr,[e(a)?.testSourceFrames?.length||e(a)?.testSource||e($)?(t(),k(Dt,{key:0,ref_key:"testSourceCard",ref:ze,"storage-key":"case-test-source",frames:e(a)?.testSourceFrames??null,"test-source":e(a)?.testSource??null,"run-id":e(a)?.testRun?.id??null,"test-runs-case-id":Number(e(g)),"has-trace":e($),"project-key":e(a)?.testRun?.project?.id,"project-name":e(a)?.testRun?.project?.name},null,8,["frames","test-source","run-id","test-runs-case-id","has-trace","project-key","project-name"])):l("",!0),i(Nt,{ref_key:"evidenceCard",ref:Me,"storage-key":"case-evidence",attachments:e(a)?.attachments??[],traces:e(P)??[]},null,8,["attachments","traces"]),e(a)?.testRun?.id?(t(),k(At,{key:1,"storage-key":"case-locators","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(g))},null,8,["run-id","test-runs-case-id"])):l("",!0),e(a)?.testRun?.id?(t(),k(Pt,{key:2,ref_key:"envDiffCard",ref:st,"storage-key":"case-env-diff","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(g))},null,8,["run-id","test-runs-case-id"])):l("",!0),e(a)?.testRun?.id?(t(),k(Ut,{key:3,ref_key:"visualDiffCard",ref:nt,"storage-key":"case-visual-diff","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(g))},null,8,["run-id","test-runs-case-id"])):l("",!0),e(a)?.consoleLogs?.length?(t(),o("div",{key:4,ref_key:"consoleEl",ref:et,class:"scroll-mt-4"},[i(lt,{entries:e(a)?.consoleLogs??[]},null,8,["entries"])],512)):l("",!0),e(I).length>0||e($)?(t(),o("div",{key:5,ref_key:"networkEl",ref:Le,class:"scroll-mt-4"},[i(ct,{ref_key:"networkCard",ref:tt,requests:e(I),"run-id":e(a)?.testRun?.id??null,"test-runs-case-id":Number(e(g)),"has-trace":e($)},null,8,["requests","run-id","test-runs-case-id","has-trace"])],512)):l("",!0),e(a)?.pageState?(t(),k(ut,{key:6,"storage-key":"case-page-state","page-state":e(a).pageState},null,8,["page-state"])):l("",!0),e(a)?.ariaSnapshot?(t(),k(Ft,{key:7,ref_key:"ariaCard",ref:ot,"storage-key":"case-aria",icon:"i-lucide-scan-text",title:"ARIA snapshot",help:"case.aria"},{folded:d(()=>[...T[3]||(T[3]=[p("Accessibility tree captured at the moment of failure",-1)])]),default:d(()=>[n("div",Dr,[i(Bt,{text:"```yaml\n"+e(a).ariaSnapshot+"\n```"},null,8,["text"])])]),_:1},512)):l("",!0),e(a)?.testRun?.id?(t(),k(Vt,{key:8,ref_key:"domSnapshotCard",ref:at,"storage-key":"case-dom-snapshot","run-id":e(a).testRun.id,"test-runs-case-id":Number(e(g))},null,8,["run-id","test-runs-case-id"])):l("",!0)])])])]),"tab-steps":d(()=>[n("div",Nr,[e(M).length>0?(t(),o("div",Ar,[n("div",Pr,[n("span",Ur,c(e(M).length)+" steps",1),T[4]||(T[4]=n("span",{class:"text-gray-300 dark:text-gray-600"},"·",-1)),(t(!0),o(B,null,te(e(S),L=>(t(),o("span",{key:L.category,class:"inline-flex items-center gap-1"},[i(De,{color:ne[L.category]||"neutral",variant:"soft",size:"xs"},{default:d(()=>[p(c(L.category),1)]),_:2},1032,["color"]),n("span",Br,[p("×"+c(L.count)+" · ",1),i(ie,{ms:L.duration},null,8,["ms"])])]))),128))]),i(mt,{"min-width":"40rem",bleed:!1},{default:d(()=>[i(dt,{data:e(M),columns:v,ui:{base:"table-fixed w-full border-separate border-spacing-0 min-w-[40rem]",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 align-top"}},{"index-cell":d(({row:L})=>[n("span",Fr,c(L.index+1),1)]),"status-cell":d(({row:L})=>[L.original.failed?(t(),o("span",Vr,"✗")):(t(),o("span",Er,"✓"))]),"category-cell":d(({row:L})=>[i(De,{color:ne[L.original.category]||"neutral",variant:"soft",size:"xs"},{default:d(()=>[p(c(L.original.category),1)]),_:2},1032,["color"])]),"title-cell":d(({row:L})=>[n("div",Or,[n("span",{class:q(L.original.failed?"text-red-600 dark:text-red-400 font-medium":"")},c(L.original.title),3),L.index===e(H)?(t(),k(De,{key:0,color:"warning",variant:"subtle",size:"xs",class:"shrink-0",title:"Slowest step in this test"},{default:d(()=>[...T[5]||(T[5]=[p(" slowest ",-1)])]),_:1})):l("",!0)]),L.original.failed&&L.original.error?.message?(t(),o("p",Hr,c(L.original.error.message),1)):l("",!0),L.original.location?(t(),k(Et,{key:1,location:L.original.location,"project-key":e(a)?.testRun?.project?.id,"project-name":e(a)?.testRun?.project?.name,class:"text-xs text-gray-400 dark:text-gray-500 mt-0.5"},null,8,["location","project-key","project-name"])):l("",!0)]),"duration-cell":d(({row:L})=>[n("div",Kr,[n("div",Wr,[i(ie,{ms:L.original.duration,class:q(`text-sm ${ae(L.original.duration)}`),"unit-class":"opacity-60"},null,8,["ms","class"]),ee(L.original.duration)?(t(),o("span",Gr,c(ee(L.original.duration)),1)):l("",!0)]),n("div",Jr,[n("div",{class:q(["absolute inset-y-0 rounded-full",j(L.original.duration)]),style:Ce(Y(L.original))},null,6)])])]),_:1},8,["data"])]),_:1})])):(t(),k(Ve,{key:1,icon:"i-lucide-list-checks",text:"No steps recorded for this execution"}))])]),"tab-artifacts":d(()=>[n("div",qr,[i(Ot,{traces:e(P)||[]},null,8,["traces"]),i(Ht,{attachments:e(a)?.attachments??[]},null,8,["attachments"]),e(a)?.pageState?(t(),k(ut,{key:0,"storage-key":"case-page-state","page-state":e(a).pageState},null,8,["page-state"])):l("",!0),e(a)?.consoleLogs?.length?(t(),k(lt,{key:1,entries:e(a)?.consoleLogs??[]},null,8,["entries"])):l("",!0),e(I).length>0||e($)?(t(),k(ct,{key:2,requests:e(I),"run-id":e(a)?.testRun?.id??null,"test-runs-case-id":Number(e(g)),"has-trace":e($)},null,8,["requests","run-id","test-runs-case-id","has-trace"])):l("",!0),!e(P)?.length&&!e(a)?.attachments?.length&&!e(a)?.consoleLogs?.length&&!e(I).length?(t(),o("div",Qr,[e(Xe)?(t(),o(B,{key:0},[i(me,{name:"i-lucide-loader-circle",class:"size-8 mb-2 animate-spin"}),T[6]||(T[6]=n("p",{class:"text-sm"}," Run in progress — traces and attachments appear here as soon as they are uploaded. ",-1))],64)):(t(),o(B,{key:1},[i(me,{name:"i-lucide-inbox",class:"size-8 mb-2"}),T[7]||(T[7]=n("p",{class:"text-sm"},"No traces, console logs, or network requests captured for this test case.",-1))],64))])):l("",!0)])]),"tab-performance":d(()=>[n("div",Zr,[e(F).length>0?(t(),o("div",Xr,[(t(!0),o(B,null,te(e(F),(L,qt)=>(t(),o("div",{key:qt,class:q(["p-3 rounded-lg border",L.type==="warning"?"bg-amber-50 dark:bg-amber-900/20 border-amber-200 dark:border-amber-800":"bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800"])},[n("div",Yr,[i(me,{name:L.type==="warning"?"i-lucide-alert-triangle":"i-lucide-lightbulb",class:q([L.type==="warning"?"text-amber-600":"text-blue-600","size-4 mt-0.5 shrink-0"])},null,8,["name","class"]),n("div",null,[n("p",{class:q(L.type==="warning"?"text-amber-800 dark:text-amber-200 font-medium":"text-blue-800 dark:text-blue-200 font-medium")},c(L.message),3),n("p",{class:q([L.type==="warning"?"text-amber-700 dark:text-amber-300":"text-blue-700 dark:text-blue-300","mt-1"])},c(L.details),3)])])],2))),128))])):l("",!0),e(m)?(t(),k(it,{key:1,icon:"i-lucide-gauge",title:"Browser performance (Web Vitals)",help:"case.web-vitals"},{default:d(()=>[n("div",ei,[e(m).navigation?(t(),k(Ee,{key:0,"min-tile-width":"10rem"},{default:d(()=>[i(ue,{label:"TTFB",hint:"Time to first byte","value-class":e(m).navigation.ttfb>600?"text-red-600":e(m).navigation.ttfb>200?"text-orange-500":"text-green-600"},{default:d(()=>[i(ie,{ms:e(m).navigation.ttfb},null,8,["ms"])]),_:1},8,["value-class"]),i(ue,{label:"DOM Interactive",hint:"DOM interactive","value-class":e(m).navigation.domInteractive>3e3?"text-red-600":e(m).navigation.domInteractive>1500?"text-orange-500":"text-green-600"},{default:d(()=>[i(ie,{ms:e(m).navigation.domInteractive},null,8,["ms"])]),_:1},8,["value-class"]),i(ue,{label:"DOMContentLoaded",hint:"DOMContentLoaded","value-class":e(m).navigation.domContentLoaded>3e3?"text-red-600":e(m).navigation.domContentLoaded>1500?"text-orange-500":"text-green-600"},{default:d(()=>[i(ie,{ms:e(m).navigation.domContentLoaded},null,8,["ms"])]),_:1},8,["value-class"]),i(ue,{label:"Load Complete",hint:"Page fully loaded","value-class":e(m).navigation.loadComplete>5e3?"text-red-600":e(m).navigation.loadComplete>3e3?"text-orange-500":"text-green-600"},{default:d(()=>[i(ie,{ms:e(m).navigation.loadComplete},null,8,["ms"])]),_:1},8,["value-class"])]),_:1})):l("",!0),e(m).paint&&(e(m).paint.firstPaint||e(m).paint.firstContentfulPaint)?(t(),k(Ee,{key:1,"min-tile-width":"10rem",class:"pt-2 border-t"},{default:d(()=>[e(m).paint.firstPaint!==void 0?(t(),k(ue,{key:0,label:"First Paint (FP)"},{default:d(()=>[i(ie,{ms:e(m).paint.firstPaint},null,8,["ms"])]),_:1})):l("",!0),e(m).paint.firstContentfulPaint!==void 0?(t(),k(ue,{key:1,label:"First Contentful Paint (FCP)","value-class":e(m).paint.firstContentfulPaint>3e3?"text-red-600":e(m).paint.firstContentfulPaint>1800?"text-orange-500":"text-green-600"},{default:d(()=>[i(ie,{ms:e(m).paint.firstContentfulPaint},null,8,["ms"])]),_:1},8,["value-class"])):l("",!0)]),_:1})):l("",!0),e(m).vitals?(t(),k(Ee,{key:2,"min-tile-width":"10rem",class:"pt-2 border-t"},{default:d(()=>[i(ue,{label:"Largest Contentful Paint (LCP)","value-class":e(m).vitals.lcp==null?"text-gray-400":e(m).vitals.lcp>4e3?"text-red-600":e(m).vitals.lcp>2500?"text-orange-500":"text-green-600"},{default:d(()=>[i(ie,{ms:e(m).vitals.lcp,fallback:"n/a"},null,8,["ms"])]),_:1},8,["value-class"]),i(ue,{label:"Cumulative Layout Shift (CLS)",value:e(m).vitals.cls!=null?String(e(m).vitals.cls):"n/a","value-class":e(m).vitals.cls==null?"text-gray-400":e(m).vitals.cls>.25?"text-red-600":e(m).vitals.cls>.1?"text-orange-500":"text-green-600"},null,8,["value","value-class"]),i(ue,{label:"Interaction to Next Paint (INP)","value-class":e(m).vitals.inp==null?"text-gray-400":e(m).vitals.inp>500?"text-red-600":e(m).vitals.inp>200?"text-orange-500":"text-green-600"},{default:d(()=>[i(ie,{ms:e(m).vitals.inp,fallback:"n/a"},null,8,["ms"])]),_:1},8,["value-class"])]),_:1})):l("",!0),e(m).navigation?.url?(t(),o("div",ti,[T[8]||(T[8]=p(" Page: ",-1)),n("code",si,c(e(m).navigation.url),1)])):l("",!0)])]),_:1})):l("",!0),e(F).length===0&&!e(m)?(t(),k(Ve,{key:2,icon:"i-lucide-gauge",text:"No performance hints or Web Vitals were captured for this execution."},{default:d(()=>[n("p",ni,[T[10]||(T[10]=p(" Web Vitals and timing come from the ",-1)),i(Kt,{to:"capture-fixtures"},{default:d(()=>[...T[9]||(T[9]=[p("capture fixtures",-1)])]),_:1}),T[11]||(T[11]=p(". ",-1))])]),_:1})):l("",!0)])]),"tab-history":d(()=>[n("div",ai,[e(r)&&e(r).length>0?(t(),o("div",oi,[n("div",ri,[e(a)?.testCaseId?(t(),k(be,{key:0,to:`/test-cases/${e(a).testCaseId}`,size:"xs",variant:"outline",color:"neutral","trailing-icon":"i-lucide-arrow-right"},{default:d(()=>[...T[12]||(T[12]=[p(" View full test history ",-1)])]),_:1},8,["to"])):l("",!0)]),i(Wt,{data:e(r),height:200},null,8,["data"]),i(mt,{"min-width":"44rem",bleed:!1},{default:d(()=>[i(dt,{data:e(r),columns:N,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",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"startTime-cell":d(({row:L})=>[n("span",ii,[n("span",li,c(new Date(L.original.startTime).toLocaleDateString("en-US",{month:"short",day:"numeric"})),1),n("span",ci,c(new Date(L.original.startTime).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})),1)])]),"status-cell":d(({row:L})=>[i(De,{color:("getStatusColor"in f?f.getStatusColor:e(Gs))(L.original.status),variant:"subtle",class:"capitalize"},{default:d(()=>[p(c(L.original.status),1)]),_:2},1032,["color"])]),"duration-cell":d(({row:L})=>[L.original.duration!==null?(t(),k(ie,{key:0,ms:L.original.duration},null,8,["ms"])):(t(),o("span",ui,"—"))]),"runId-cell":d(({row:L})=>[i(le,{to:`/test-runs/${L.original.runId}`,class:"text-primary hover:underline"},{default:d(()=>[p(" #"+c(L.original.runId),1)]),_:2},1032,["to"])]),"error-cell":d(({row:L})=>[L.original.error?(t(),o("span",{key:0,class:"text-red-600 text-xs truncate max-w-xs block",title:L.original.error},c(L.original.error.length>80?`${L.original.error.substring(0,80)}…`:L.original.error),9,di)):l("",!0)]),_:1},8,["data"])]),_:1})])):(t(),k(Ve,{key:1,icon:"i-lucide-trending-up",text:"No prior executions of this test yet."},{default:d(()=>[...T[13]||(T[13]=[n("p",{class:"text-xs text-gray-400"}," This is the first recorded run. Once it runs again, its status and duration trend appear here. ",-1)])]),_:1}))])]),_:1},8,["modelValue","tab-items"])]),_:1})}}});export{ul as default};
|