@piwitests/server 0.18.2 → 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/{Dwws9U0D.js → -f7BAm1H.js} +1 -1
- package/.output/public/_nuxt/{BjCHB89N.js → 4gYNA-d4.js} +1 -1
- package/.output/public/_nuxt/5A6ITZXj.js +1 -0
- package/.output/public/_nuxt/8PUUncmO.js +44 -0
- package/.output/public/_nuxt/A1pj0VnG.js +1 -0
- package/.output/public/_nuxt/{DZ3Vfcpz.js → AbmKWFQQ.js} +1 -1
- package/.output/public/_nuxt/B3obW6cw.js +3 -0
- package/.output/public/_nuxt/{QmMoMxLM.js → B7FTvFWq.js} +3 -3
- package/.output/public/_nuxt/{DXbPFI1d.js → B8zkOmwo.js} +1 -1
- package/.output/public/_nuxt/B96M2gdj.js +1 -0
- package/.output/public/_nuxt/{BFP6M-20.js → B99fbi73.js} +1 -1
- package/.output/public/_nuxt/{DD5HpaW9.js → B9OLmp0f.js} +1 -1
- package/.output/public/_nuxt/BKkF4pPD.js +1 -0
- package/.output/public/_nuxt/BT3wGCTI.js +1 -0
- package/.output/public/_nuxt/BUa0V0Ly.js +1 -0
- package/.output/public/_nuxt/BUkim3TM.js +1 -0
- package/.output/public/_nuxt/BVc14Ncz.js +4 -0
- package/.output/public/_nuxt/BY0HxR3t.js +17 -0
- package/.output/public/_nuxt/B_xAMWQS.js +2 -0
- package/.output/public/_nuxt/BdQoBaOv.js +1 -0
- package/.output/public/_nuxt/{Cng9gj7q.js → BdfhYr-u.js} +1 -1
- package/.output/public/_nuxt/BgRu_3tT.js +1 -0
- package/.output/public/_nuxt/{BBK2-Krn.js → BiO7RBWb.js} +2 -2
- package/.output/public/_nuxt/BicAJ6U8.js +1 -0
- package/.output/public/_nuxt/BjaRappk.js +1 -0
- package/.output/public/_nuxt/Bm62iDV5.js +1 -0
- package/.output/public/_nuxt/{C9YzQCiq.js → BmUfSNMV.js} +1 -1
- package/.output/public/_nuxt/Bnxf8nbZ.js +1 -0
- package/.output/public/_nuxt/{CsUoYK75.js → Bow4tTR0.js} +1 -1
- package/.output/public/_nuxt/{B2oUeBbA.js → BrQEE053.js} +1 -1
- package/.output/public/_nuxt/BzRRzmwm.js +1 -0
- package/.output/public/_nuxt/{CN1mJlvD.js → C0_yH0N7.js} +1 -1
- package/.output/public/_nuxt/C1gTN4Q8.js +1 -0
- package/.output/public/_nuxt/{CNMoZYMv.js → C2hkrSey.js} +1 -1
- package/.output/public/_nuxt/{rTvJTef_.js → C8e1EbJI.js} +1 -1
- package/.output/public/_nuxt/CA9B2HE5.js +1 -0
- package/.output/public/_nuxt/{oFM1KLWA.js → CAAwCT7H.js} +1 -1
- package/.output/public/_nuxt/{qpI-_f9Q.js → CAvY22RE.js} +1 -1
- package/.output/public/_nuxt/{BLIRKrbM.js → CEfS4-oS.js} +4 -4
- package/.output/public/_nuxt/CIoSMkpp.js +1 -0
- package/.output/public/_nuxt/{hH1UFE3Z.js → CIrFl3MW.js} +1 -1
- package/.output/public/_nuxt/CJFtzlQ4.js +1 -0
- package/.output/public/_nuxt/{hgHc4teu.js → CNyV9YpI.js} +1 -1
- package/.output/public/_nuxt/CSJ-eOQM.js +1 -0
- package/.output/public/_nuxt/CTU1mrhq.js +1 -0
- package/.output/public/_nuxt/CXEH9OPk.js +1 -0
- package/.output/public/_nuxt/CahpB9Z2.js +5 -0
- package/.output/public/_nuxt/{C8OCrfDP.js → Cbh--1MW.js} +1 -1
- package/.output/public/_nuxt/CeG9pBAD.js +1 -0
- package/.output/public/_nuxt/{DBtBvrYc.js → CeW8v31b.js} +1 -1
- package/.output/public/_nuxt/{DZUgX70W.js → CjPfj7ya.js} +1 -1
- package/.output/public/_nuxt/Cnsmicv2.js +79 -0
- package/.output/public/_nuxt/CsLojMwR.js +1 -0
- package/.output/public/_nuxt/{BXY_PWcx.js → Cus22Ud3.js} +2 -2
- package/.output/public/_nuxt/{4TxgDGVa.js → CwGWJbiy.js} +1 -1
- package/.output/public/_nuxt/Cx6gc2VW.js +1 -0
- package/.output/public/_nuxt/{B1X__ilH.js → CxyAzHr3.js} +1 -1
- package/.output/public/_nuxt/{BJtlcTrb.js → CzAPFPpL.js} +1 -1
- package/.output/public/_nuxt/D--H4jLI.js +1 -0
- package/.output/public/_nuxt/D-c8ZSws.js +1 -0
- package/.output/public/_nuxt/D1POo6S4.js +10 -0
- package/.output/public/_nuxt/D5tke0B5.js +1 -0
- package/.output/public/_nuxt/D8nkF-OO.js +3 -0
- package/.output/public/_nuxt/DA25RkyK.js +1 -0
- package/.output/public/_nuxt/{DZ1zNBVM.js → DIB-5fUJ.js} +1 -1
- package/.output/public/_nuxt/DJmoLeVt.js +1 -0
- package/.output/public/_nuxt/DJxlKFGb.js +1 -0
- package/.output/public/_nuxt/DMec-OLo.js +1 -0
- package/.output/public/_nuxt/DPCxhHri.js +1 -0
- package/.output/public/_nuxt/{By4YL7mx.js → DSqHUrvO.js} +1 -1
- package/.output/public/_nuxt/DabzhQB1.js +1 -0
- package/.output/public/_nuxt/{D5oNv2cB.js → DdwHkKfV.js} +1 -1
- package/.output/public/_nuxt/{CfOLBbW9.js → DeY2JkR2.js} +1 -1
- package/.output/public/_nuxt/{CPLJeOCb.js → DfgOx_ou.js} +1 -1
- package/.output/public/_nuxt/DmkUdSS4.js +1 -0
- package/.output/public/_nuxt/{CUvGJXY3.js → DoIREDVb.js} +1 -1
- package/.output/public/_nuxt/DpZ1r1HA.js +1 -0
- package/.output/public/_nuxt/{BOCwBVnz.js → Dpd16JVI.js} +1 -1
- package/.output/public/_nuxt/DqcKngf3.js +1 -0
- package/.output/public/_nuxt/{xqiPI_FQ.js → DrfE8IY0.js} +1 -1
- package/.output/public/_nuxt/{BeFDVhpA.js → DsesNydr.js} +1 -1
- package/.output/public/_nuxt/{D0cnIs93.js → DtHJgCS8.js} +1 -1
- package/.output/public/_nuxt/Dtd4rC58.js +9 -0
- package/.output/public/_nuxt/Du2W7Jne.js +254 -0
- package/.output/public/_nuxt/DuwtTfO8.js +2 -0
- package/.output/public/_nuxt/Dy-TJ0Mt.js +1 -0
- package/.output/public/_nuxt/{BlnwU1OO.js → Dy86h-7P.js} +1 -1
- package/.output/public/_nuxt/{B-IcwqZ2.js → Dyeqn3aG.js} +1 -1
- package/.output/public/_nuxt/{BlA8mIS-.js → FaFoMVKo.js} +1 -1
- package/.output/public/_nuxt/GPNI1ffD.js +4 -0
- package/.output/public/_nuxt/{DWowvnwc.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/KyA_4Ks-.js +1 -0
- package/.output/public/_nuxt/{e7zD3uJ0.js → L3kAWB2a.js} +1 -1
- package/.output/public/_nuxt/McL25vkx.js +34 -0
- package/.output/public/_nuxt/Nn93e_Mz.js +1 -0
- package/.output/public/_nuxt/TagBadge.By1E6r4y.css +1 -0
- package/.output/public/_nuxt/UdR3DBPS.js +1 -0
- package/.output/public/_nuxt/Und3xXFc.js +5 -0
- package/.output/public/_nuxt/_mj6CfPa.js +1 -0
- package/.output/public/_nuxt/b-GYfcrQ.js +1 -0
- package/.output/public/_nuxt/bLcjFslv.js +1 -0
- 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/{wHnZ9OaL.js → hC_z4G8p.js} +1 -1
- package/.output/public/_nuxt/{DZOS7Fh7.js → hNh4CIL0.js} +1 -1
- package/.output/public/_nuxt/{kjYMoWWx.js → l5WKbU4h.js} +3 -3
- package/.output/public/_nuxt/oAClCn_h.js +1 -0
- package/.output/public/_nuxt/{gnCL8GjZ.js → pQqGiNch.js} +1 -1
- package/.output/public/_nuxt/ryMzSDUj.js +2 -0
- package/.output/public/demo/seed.version.json +2 -2
- package/.output/server/chunks/_/ai-prompt-preview.mjs +38 -0
- package/.output/server/chunks/_/ai-prompt-preview.mjs.map +1 -0
- package/.output/server/chunks/_/collect.mjs +122 -0
- package/.output/server/chunks/_/collect.mjs.map +1 -0
- package/.output/server/chunks/_/markers.mjs +1 -1
- package/.output/server/chunks/_/quarantine.mjs +112 -0
- package/.output/server/chunks/_/quarantine.mjs.map +1 -0
- package/.output/server/chunks/_/users.mjs +1 -1
- package/.output/server/chunks/build/{Alert-Bp1Wz_sq.mjs → Alert-C4xq8lao.mjs} +2 -2
- package/.output/server/chunks/build/Alert-C4xq8lao.mjs.map +1 -0
- package/.output/server/chunks/build/{Breadcrumb-C9ZPTLym.mjs → Breadcrumb-Ak2Lg3oM.mjs} +3 -3
- package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +1 -0
- package/.output/server/chunks/build/{BreadcrumbNav-C3y42Vun.mjs → BreadcrumbNav-DO7I_z-n.mjs} +3 -3
- package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +1 -0
- package/.output/server/chunks/build/{BrowserBadge-DNCp9pF-.mjs → BrowserBadge-MFvBwxmD.mjs} +67 -7
- package/.output/server/chunks/build/BrowserBadge-MFvBwxmD.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartCard-Fr557IbV.mjs → ChartCard-Y1UKwMsf.mjs} +2 -2
- package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-cVOSIY93.mjs → Checkbox-4Q5d0fa0.mjs} +8 -8
- 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-BGwNmJ8J.mjs → CodeBlock-BgE-NSmE.mjs} +7 -22
- package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardNavbar-Bdp-OwTN.mjs → DashboardNavbar-BHmMSPX7.mjs} +3 -3
- package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardSidebarToggle-Ji6ADuqF.mjs → DashboardSidebarToggle-DCTnHiIv.mjs} +3 -3
- package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +1 -0
- package/.output/server/chunks/build/{DataLocationCard-D6xSOrme.mjs → DataLocationCard-B_YHdzSz.mjs} +3 -3
- package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisPanel-DV1xwGu4.mjs → DiagnosisPanel-CALyEmcJ.mjs} +17 -528
- package/.output/server/chunks/build/DiagnosisPanel-CALyEmcJ.mjs.map +1 -0
- package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs +43 -0
- package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +1 -0
- package/.output/server/chunks/build/{EmptyState-DV3oT_xz.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-DeOP13Kr.mjs → EntityLinks-BBHWssHH.mjs} +6 -6
- package/.output/server/chunks/build/EntityLinks-BBHWssHH.mjs.map +1 -0
- package/.output/server/chunks/build/{EnvManagedBadge-Qpn58Nmr.mjs → EnvManagedBadge-UwD2b9v2.mjs} +3 -3
- package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +1 -0
- package/.output/server/chunks/build/{FormField-B-GSn_VR.mjs → FormField-B0HKsdMd.mjs} +3 -3
- package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +1 -0
- package/.output/server/chunks/build/{HelpHint-YEMWtKu1.mjs → HelpHint-DrcIv-Oj.mjs} +53 -6
- package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +1 -0
- package/.output/server/chunks/build/{Label-DBvbHd3A.mjs → Label-DYDR1Oeh.mjs} +2 -2
- package/.output/server/chunks/build/Label-DYDR1Oeh.mjs.map +1 -0
- package/.output/server/chunks/build/{MiniRunBars-C3HG-EYm.mjs → MiniRunBars-CZMugDrh.mjs} +2 -2
- package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-CfA78Hm1.mjs → Modal-pSDlXzT3.mjs} +2 -2
- package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs → OpenInIdeLink-CQWKKChd.mjs} +6 -6
- package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs.map → OpenInIdeLink-CQWKKChd.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-9Ia825h8.mjs → ProjectTestCasesTable-Bo61P5K1.mjs} +120 -45
- package/.output/server/chunks/build/ProjectTestCasesTable-Bo61P5K1.mjs.map +1 -0
- package/.output/server/chunks/build/{RovingFocusItem-CxhHdNGo.mjs → RovingFocusItem--OEHI2P3.mjs} +2 -2
- package/.output/server/chunks/build/RovingFocusItem--OEHI2P3.mjs.map +1 -0
- package/.output/server/chunks/build/{RunReports-BpJqLHY9.mjs → RunReports-DFLv51TX.mjs} +8 -6
- package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +1 -0
- package/.output/server/chunks/build/{RunStatusBadge-BhmJ_RKM.mjs → RunStatusBadge-FfGb6bkW.mjs} +3 -2
- package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +1 -0
- package/.output/server/chunks/build/{SectionCard-COd9TuDq.mjs → SectionCard-CN-v0FZ_.mjs} +2 -2
- package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +1 -0
- package/.output/server/chunks/build/{Select-ppPz926C.mjs → Select-5DK9frQ7.mjs} +4 -4
- package/.output/server/chunks/build/Select-5DK9frQ7.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs → SelectMenu-D-2FSqBU.mjs} +939 -7
- package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs.map → SelectMenu-D-2FSqBU.mjs.map} +1 -1
- package/.output/server/chunks/build/{Separator-CxZdx8kw.mjs → Separator-CR4WcEKD.mjs} +2 -2
- package/.output/server/chunks/build/Separator-CR4WcEKD.mjs.map +1 -0
- package/.output/server/chunks/build/{SettingsField-DDD4oqys.mjs → SettingsField-BZfx4ma1.mjs} +6 -6
- package/.output/server/chunks/build/SettingsField-BZfx4ma1.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-B95Rj237.mjs → Slideover-D270EZZD.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-xQQ3_ME1.mjs → Switch-B5Fp8ULt.mjs} +5 -5
- package/.output/server/chunks/build/Switch-B5Fp8ULt.mjs.map +1 -0
- package/.output/server/chunks/build/{Table-CPhhVzDv.mjs → Table-BRk04Hd2.mjs} +3 -3
- package/.output/server/chunks/build/Table-BRk04Hd2.mjs.map +1 -0
- package/.output/server/chunks/build/{Tabs-BV9XqjoO.mjs → Tabs-BkSOnbaB.mjs} +3 -3
- package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +1 -0
- package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs +31 -0
- package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs.map +1 -0
- package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs +8 -0
- package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs.map +1 -0
- package/.output/server/chunks/build/{TestCaseHistoryChart-DMb-xSJa.mjs → TestCaseHistoryChart-CSi64vVA.mjs} +6 -6
- package/.output/server/chunks/build/TestCaseHistoryChart-CSi64vVA.mjs.map +1 -0
- package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs +200 -0
- package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar-CEzt76wk.mjs → TestStatusBar-DX3EhlyP.mjs} +15 -15
- package/.output/server/chunks/build/TestStatusBar-DX3EhlyP.mjs.map +1 -0
- package/.output/server/chunks/build/{Textarea-DrrqQUVG.mjs → Textarea-Dv2-lOvW.mjs} +2 -2
- package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-7vwuDPrZ.mjs → Tooltip-Dv4htNP6.mjs} +3 -3
- package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +1 -0
- package/.output/server/chunks/build/{VisuallyHiddenInput-C9eJVpPW.mjs → VisuallyHiddenInput-BHvzNumK.mjs} +2 -2
- package/.output/server/chunks/build/VisuallyHiddenInput-BHvzNumK.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CE0Gso6i.mjs → _id_-BdG37K7s.mjs} +91 -42
- package/.output/server/chunks/build/_id_-BdG37K7s.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-bWcP2xFl.mjs → _id_-BdJs7BJZ.mjs} +719 -448
- package/.output/server/chunks/build/_id_-BdJs7BJZ.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-B2yirIuA.mjs → _id_-BxA6IgWr.mjs} +831 -368
- package/.output/server/chunks/build/_id_-BxA6IgWr.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-B4V5fop6.mjs → _id_-C_uSBiyU.mjs} +296 -60
- package/.output/server/chunks/build/{_id_-B4V5fop6.mjs.map → _id_-C_uSBiyU.mjs.map} +1 -1
- package/.output/server/chunks/build/{about-CoJjvUwM.mjs → about-BE0UV-8-.mjs} +456 -61
- package/.output/server/chunks/build/about-BE0UV-8-.mjs.map +1 -0
- package/.output/server/chunks/build/{account-Cn-eZqXM.mjs → account-DAfvaD-F.mjs} +21 -9
- package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-7jdaPOmj.mjs → ai-Cn05ch0u.mjs} +45 -23
- package/.output/server/chunks/build/{ai-7jdaPOmj.mjs.map → ai-Cn05ch0u.mjs.map} +1 -1
- package/.output/server/chunks/build/{analytics-B276WPeU.mjs → analytics-Bo_B_jko.mjs} +66 -41
- 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/compare-RxHSOdsO.mjs +12 -0
- package/.output/server/chunks/build/{db.client-aHcD0wyX.mjs → db.client-CQoVTYB9.mjs} +83 -5
- package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +1 -0
- package/.output/server/chunks/build/{default-BSzdkM_L.mjs → default-CbNHaFsy.mjs} +622 -78
- package/.output/server/chunks/build/default-CbNHaFsy.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-BN_x1OW3.mjs → docs-B_llWMxx.mjs} +30 -49
- package/.output/server/chunks/build/{docs-BN_x1OW3.mjs.map → docs-B_llWMxx.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-C9Z7oZeu.mjs → edit-J0asTFg8.mjs} +29 -18
- package/.output/server/chunks/build/edit-J0asTFg8.mjs.map +1 -0
- package/.output/server/chunks/build/{fetch-8kznMtBM.mjs → fetch-B4FwBOzu.mjs} +3 -3
- package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +1 -0
- package/.output/server/chunks/build/{forgot-password-BqPF4Rxs.mjs → forgot-password-CC__1OnV.mjs} +17 -5
- package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +1 -0
- package/.output/server/chunks/build/{help-content-DmFnuhNu.mjs → help-content-C876a9WD.mjs} +37 -8
- package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +1 -0
- package/.output/server/chunks/build/import-CS9oylTN.mjs +1021 -0
- package/.output/server/chunks/build/import-CS9oylTN.mjs.map +1 -0
- package/.output/server/chunks/build/{index-CULN3-en.mjs → index-CU2nZhAa.mjs} +113 -42
- package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +1 -0
- package/.output/server/chunks/build/{index-BR9hw6qk.mjs → index-DE45ycdZ.mjs} +51 -31
- package/.output/server/chunks/build/index-DE45ycdZ.mjs.map +1 -0
- package/.output/server/chunks/build/{index-BK9PTRpd.mjs → index-e9skCi-V.mjs} +85 -69
- package/.output/server/chunks/build/{index-BK9PTRpd.mjs.map → index-e9skCi-V.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-DVUtBexc.mjs → index-hGHlmyxj.mjs} +1520 -288
- package/.output/server/chunks/build/index-hGHlmyxj.mjs.map +1 -0
- package/.output/server/chunks/build/{index-Ba-Fifra.mjs → index-tR6owKzj.mjs} +18 -6
- package/.output/server/chunks/build/index-tR6owKzj.mjs.map +1 -0
- package/.output/server/chunks/build/{isValueEqualOrExist-DBZjbD_3.mjs → isValueEqualOrExist-D2qw9YEr.mjs} +3 -3
- package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs.map +1 -0
- package/.output/server/chunks/build/{login-D2XZDuek.mjs → login-Da4u1IlW.mjs} +19 -7
- package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +1 -0
- package/.output/server/chunks/build/{mcp-_o6cMS6m.mjs → mcp-uhVCCwQM.mjs} +359 -24
- package/.output/server/chunks/build/mcp-uhVCCwQM.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-Dzm9c0u_.mjs → notifications-fx_qnKGA.mjs} +27 -21
- package/.output/server/chunks/build/notifications-fx_qnKGA.mjs.map +1 -0
- package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs +368 -0
- package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs.map +1 -0
- package/.output/server/chunks/build/{reset-password-gpFzIEDj.mjs → reset-password-BmrUS4ZD.mjs} +17 -5
- package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +238 -36
- package/.output/server/chunks/build/{settings-pNyPBXVa.mjs → settings-CCYe7rsc.mjs} +23 -10
- package/.output/server/chunks/build/settings-CCYe7rsc.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-metadata-B0wo5R-W.mjs → settings-metadata-DrEqWcW-.mjs} +11 -2
- package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +1 -0
- package/.output/server/chunks/build/{storage-XelzuyPy.mjs → storage-CJEmviCD.mjs} +41 -31
- package/.output/server/chunks/build/storage-CJEmviCD.mjs.map +1 -0
- package/.output/server/chunks/build/styles.mjs +1 -0
- package/.output/server/chunks/build/{tags-DrCQ7QSw.mjs → tags-DauTe_F-.mjs} +22 -10
- package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-pmOxi-AN.mjs → test-cases-thBbAykw.mjs} +38 -24
- package/.output/server/chunks/build/test-cases-thBbAykw.mjs.map +1 -0
- package/.output/server/chunks/build/{timeout-hygiene-CNs71Iah.mjs → timeout-hygiene-CbnSaVbK.mjs} +20 -8
- package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +1 -0
- package/.output/server/chunks/build/{useAiStatus-ZO987RY7.mjs → useAiStatus-CxjMmDDY.mjs} +89 -89
- package/.output/server/chunks/build/useAiStatus-CxjMmDDY.mjs.map +1 -0
- package/.output/server/chunks/build/{useCopy-BQQKcwlq.mjs → useCopy-CeKWgHyT.mjs} +2 -2
- package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +1 -0
- package/.output/server/chunks/build/{PageStateCard-Bwee6JTk.mjs → useCopyRich-RJKhWoyj.mjs} +472 -63
- package/.output/server/chunks/build/useCopyRich-RJKhWoyj.mjs.map +1 -0
- package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs +46 -0
- package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs.map +1 -0
- package/.output/server/chunks/build/{useFormControl-BLpq1s4O.mjs → useFormControl-CZ9So7iX.mjs} +2 -2
- package/.output/server/chunks/build/useFormControl-CZ9So7iX.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpenInIde-kMZ7Jw5c.mjs → useOpenInIde-BbTnPhFA.mjs} +3 -3
- package/.output/server/chunks/build/useOpenInIde-BbTnPhFA.mjs.map +1 -0
- package/.output/server/chunks/build/{useSettingsNav-NjI2seBy.mjs → useSettingsNav-DnQKacz8.mjs} +6 -6
- 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/{useTreeViewCookie-DVYpxW-p.mjs → useTreeViewCookie-CQjQdTkH.mjs} +2 -2
- package/.output/server/chunks/build/useTreeViewCookie-CQjQdTkH.mjs.map +1 -0
- package/.output/server/chunks/build/{users-NmAUZs3i.mjs → users-CTUqXyGh.mjs} +22 -10
- package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +1 -0
- package/.output/server/chunks/build/{wasted-time-CguAF9zc.mjs → wasted-time-BNTPIyrC.mjs} +26 -14
- package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +6438 -1964
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs +13 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/stats.get.mjs +12 -0
- package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/ai/status.get.mjs +12 -0
- package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +12 -0
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/change-password.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/login.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/logout.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/me.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/setup.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/setup.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +12 -0
- package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +12 -0
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +12 -0
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +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/desktop/reporter-config.get.mjs +12 -0
- package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +24 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +64 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +56 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs +13 -32
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +13 -1
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +12 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +13 -1
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +13 -1
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +13 -1
- package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +12 -0
- package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +12 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post5.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post6.mjs +12 -0
- package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +13 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs +13 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs +13 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +22 -2
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +58 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +57 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +72 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/search.get.mjs +13 -1
- package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +12 -0
- package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +57 -0
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +63 -0
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +12 -0
- package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/stream.get.mjs +13 -1
- package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs +13 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +25 -3
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +60 -0
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +17 -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 +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +15 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +196 -0
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +77 -0
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs +77 -0
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +32 -15
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +21 -6
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +156 -3
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs +13 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.get.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.patch.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/version.get.mjs +13 -1
- package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
- package/.output/server/chunks/routes/mcp.post.mjs +13 -1
- package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/tasks/sweep.mjs +12 -0
- package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
- package/.output/server/chunks/tasks/sweep2.mjs +12 -0
- package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
- package/.output/server/database/migrations/0039_remarkable_jean_grey.sql +2 -0
- package/.output/server/database/migrations/0040_organic_phalanx.sql +8 -0
- package/.output/server/database/migrations/0041_tense_gravity.sql +5 -0
- package/.output/server/database/migrations/0042_burly_hemingway.sql +19 -0
- package/.output/server/database/migrations/meta/0039_snapshot.json +3403 -0
- package/.output/server/database/migrations/meta/0040_snapshot.json +3457 -0
- package/.output/server/database/migrations/meta/0041_snapshot.json +3492 -0
- package/.output/server/database/migrations/meta/0042_snapshot.json +3618 -0
- package/.output/server/database/migrations/meta/_journal.json +28 -0
- package/.output/server/database/migrations-pg/0040_lazy_layla_miller.sql +2 -0
- package/.output/server/database/migrations-pg/0041_light_screwball.sql +8 -0
- package/.output/server/database/migrations-pg/0042_serious_layla_miller.sql +5 -0
- package/.output/server/database/migrations-pg/0043_wonderful_mordo.sql +19 -0
- package/.output/server/database/migrations-pg/meta/0040_snapshot.json +4060 -0
- package/.output/server/database/migrations-pg/meta/0041_snapshot.json +4123 -0
- package/.output/server/database/migrations-pg/meta/0042_snapshot.json +4153 -0
- package/.output/server/database/migrations-pg/meta/0043_snapshot.json +4308 -0
- package/.output/server/database/migrations-pg/meta/_journal.json +28 -0
- package/.output/server/index.mjs +13 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/fflate/esm/index.mjs +2710 -0
- package/.output/server/node_modules/fflate/package.json +128 -0
- package/.output/server/node_modules/highlight.js/es/languages/yaml.js +213 -0
- package/.output/server/node_modules/marked/lib/marked.esm.js +72 -0
- package/.output/server/node_modules/marked/package.json +103 -0
- package/.output/server/package.json +3 -1
- package/package.json +2 -2
- package/.output/public/_nuxt/9-wVZMur.js +0 -4
- package/.output/public/_nuxt/B-5GukRk.js +0 -1
- package/.output/public/_nuxt/B1G3GGhQ.js +0 -1
- package/.output/public/_nuxt/B1zMFx24.js +0 -1
- package/.output/public/_nuxt/B4jvLMfS.js +0 -1
- package/.output/public/_nuxt/BBnX5xw4.js +0 -2
- package/.output/public/_nuxt/BHpUiv6j.js +0 -3
- package/.output/public/_nuxt/BLOUs6AE.js +0 -5
- package/.output/public/_nuxt/BT6p4Pgt.js +0 -2
- package/.output/public/_nuxt/BUXSUkJ_.js +0 -1
- package/.output/public/_nuxt/BVf6Yx9V.js +0 -26
- package/.output/public/_nuxt/BbS6Bwby.js +0 -1
- package/.output/public/_nuxt/Bd3HqPMF.js +0 -1
- package/.output/public/_nuxt/BeKvLsja.js +0 -2
- package/.output/public/_nuxt/BeUm5UNV.js +0 -1
- package/.output/public/_nuxt/BfV444H3.js +0 -3
- package/.output/public/_nuxt/BjKamgHq.js +0 -1
- package/.output/public/_nuxt/BoJdjCVl.js +0 -4
- package/.output/public/_nuxt/BreO2PiA.js +0 -1
- package/.output/public/_nuxt/BvIDC_R-.js +0 -1
- package/.output/public/_nuxt/ByuJWADR.js +0 -34
- package/.output/public/_nuxt/C1dyLp_j.js +0 -1
- package/.output/public/_nuxt/CAUgpKsF.js +0 -2
- package/.output/public/_nuxt/CL9-VLTJ.js +0 -1
- package/.output/public/_nuxt/CazDIG_m.js +0 -1
- package/.output/public/_nuxt/CcXaak_K.js +0 -1
- package/.output/public/_nuxt/CdMuck_X.js +0 -1
- package/.output/public/_nuxt/CfPSts5n.js +0 -1
- package/.output/public/_nuxt/CfROFPse.js +0 -1
- package/.output/public/_nuxt/Cnapl7lZ.js +0 -1
- package/.output/public/_nuxt/CscWZxCi.js +0 -1
- package/.output/public/_nuxt/CuicKV-B.js +0 -34
- package/.output/public/_nuxt/Cyiu1VQD.js +0 -1
- package/.output/public/_nuxt/D6PUPmRC.js +0 -1
- package/.output/public/_nuxt/DCl2yo4g.js +0 -8
- package/.output/public/_nuxt/DHXWp5yD.js +0 -1
- package/.output/public/_nuxt/DHltYerF.js +0 -114
- package/.output/public/_nuxt/DLXydYJb.js +0 -47
- package/.output/public/_nuxt/DRPSi76A.js +0 -1
- package/.output/public/_nuxt/DS53kyHJ.js +0 -1
- package/.output/public/_nuxt/DWhBqv_7.js +0 -1
- package/.output/public/_nuxt/Dd0kK5WH.js +0 -1
- package/.output/public/_nuxt/Df7kUO0m.js +0 -1
- package/.output/public/_nuxt/Dga3Av-m.js +0 -1
- package/.output/public/_nuxt/DgwTpwfB.js +0 -1
- package/.output/public/_nuxt/DkI145a5.js +0 -1
- package/.output/public/_nuxt/DoFBTaDR.js +0 -1
- package/.output/public/_nuxt/Dr_dI5hB.js +0 -1
- package/.output/public/_nuxt/EPZOxdgq.js +0 -1
- package/.output/public/_nuxt/R1nNqTru.js +0 -1
- package/.output/public/_nuxt/S5DLdEpg.js +0 -4
- package/.output/public/_nuxt/builds/meta/7caf3cb3-d272-4dbd-bb3f-1eeb64fab5d1.json +0 -1
- package/.output/public/_nuxt/entry.ChQMshd4.css +0 -1
- package/.output/public/_nuxt/gCELhaU9.js +0 -1
- package/.output/public/_nuxt/ipDzNHcs.js +0 -5
- package/.output/public/_nuxt/kS3boz40.js +0 -1
- package/.output/public/_nuxt/qH_j2A3a.js +0 -1
- package/.output/public/_nuxt/r3SBLxtE.js +0 -1
- package/.output/public/_nuxt/rsiRgrVM.js +0 -1
- package/.output/public/_nuxt/swrbBdtB.js +0 -1
- package/.output/public/sw.js +0 -1
- package/.output/public/workbox-2fbc6a65.js +0 -1
- package/.output/server/chunks/build/Alert-Bp1Wz_sq.mjs.map +0 -1
- package/.output/server/chunks/build/Breadcrumb-C9ZPTLym.mjs.map +0 -1
- package/.output/server/chunks/build/BreadcrumbNav-C3y42Vun.mjs.map +0 -1
- package/.output/server/chunks/build/BrowserBadge-DNCp9pF-.mjs.map +0 -1
- package/.output/server/chunks/build/ChartCard-Fr557IbV.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-cVOSIY93.mjs.map +0 -1
- package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs +0 -640
- package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs.map +0 -1
- package/.output/server/chunks/build/CodeBlock-BGwNmJ8J.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardNavbar-Bdp-OwTN.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-Ji6ADuqF.mjs.map +0 -1
- package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-DV1xwGu4.mjs.map +0 -1
- package/.output/server/chunks/build/EmptyState-DV3oT_xz.mjs.map +0 -1
- package/.output/server/chunks/build/EntityLinks-DeOP13Kr.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-Qpn58Nmr.mjs.map +0 -1
- package/.output/server/chunks/build/FormField-B-GSn_VR.mjs.map +0 -1
- package/.output/server/chunks/build/HelpHint-YEMWtKu1.mjs.map +0 -1
- package/.output/server/chunks/build/Label-DBvbHd3A.mjs.map +0 -1
- package/.output/server/chunks/build/MiniRunBars-C3HG-EYm.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-CfA78Hm1.mjs.map +0 -1
- package/.output/server/chunks/build/PageStateCard-Bwee6JTk.mjs.map +0 -1
- package/.output/server/chunks/build/ProjectTestCasesTable-9Ia825h8.mjs.map +0 -1
- package/.output/server/chunks/build/RovingFocusItem-CxhHdNGo.mjs.map +0 -1
- package/.output/server/chunks/build/RunReports-BpJqLHY9.mjs.map +0 -1
- package/.output/server/chunks/build/RunStatusBadge-BhmJ_RKM.mjs.map +0 -1
- package/.output/server/chunks/build/SectionCard-COd9TuDq.mjs.map +0 -1
- package/.output/server/chunks/build/Select-ppPz926C.mjs.map +0 -1
- package/.output/server/chunks/build/Separator-CxZdx8kw.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-DDD4oqys.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-B95Rj237.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-xQQ3_ME1.mjs.map +0 -1
- package/.output/server/chunks/build/Table-CPhhVzDv.mjs.map +0 -1
- package/.output/server/chunks/build/Tabs-BV9XqjoO.mjs.map +0 -1
- package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs +0 -47
- package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs.map +0 -1
- package/.output/server/chunks/build/TestCaseHistoryChart-DMb-xSJa.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar-CEzt76wk.mjs.map +0 -1
- package/.output/server/chunks/build/Textarea-DrrqQUVG.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-7vwuDPrZ.mjs.map +0 -1
- package/.output/server/chunks/build/VisuallyHiddenInput-C9eJVpPW.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-B2yirIuA.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CE0Gso6i.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-bWcP2xFl.mjs.map +0 -1
- package/.output/server/chunks/build/about-CoJjvUwM.mjs.map +0 -1
- package/.output/server/chunks/build/account-Cn-eZqXM.mjs.map +0 -1
- package/.output/server/chunks/build/analytics-B276WPeU.mjs.map +0 -1
- package/.output/server/chunks/build/db.client-aHcD0wyX.mjs.map +0 -1
- package/.output/server/chunks/build/default-BSzdkM_L.mjs.map +0 -1
- package/.output/server/chunks/build/edit-C9Z7oZeu.mjs.map +0 -1
- package/.output/server/chunks/build/fetch-8kznMtBM.mjs.map +0 -1
- package/.output/server/chunks/build/forgot-password-BqPF4Rxs.mjs.map +0 -1
- package/.output/server/chunks/build/help-content-DmFnuhNu.mjs.map +0 -1
- package/.output/server/chunks/build/index-BR9hw6qk.mjs.map +0 -1
- package/.output/server/chunks/build/index-Ba-Fifra.mjs.map +0 -1
- package/.output/server/chunks/build/index-CULN3-en.mjs.map +0 -1
- package/.output/server/chunks/build/index-DVUtBexc.mjs.map +0 -1
- package/.output/server/chunks/build/isValueEqualOrExist-DBZjbD_3.mjs.map +0 -1
- package/.output/server/chunks/build/login-D2XZDuek.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-_o6cMS6m.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-Dzm9c0u_.mjs.map +0 -1
- package/.output/server/chunks/build/reset-password-gpFzIEDj.mjs.map +0 -1
- package/.output/server/chunks/build/settings-metadata-B0wo5R-W.mjs.map +0 -1
- package/.output/server/chunks/build/settings-pNyPBXVa.mjs.map +0 -1
- package/.output/server/chunks/build/storage-XelzuyPy.mjs.map +0 -1
- package/.output/server/chunks/build/tags-DrCQ7QSw.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-pmOxi-AN.mjs.map +0 -1
- package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs.map +0 -1
- package/.output/server/chunks/build/useAiStatus-ZO987RY7.mjs.map +0 -1
- package/.output/server/chunks/build/useCopy-BQQKcwlq.mjs.map +0 -1
- package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs.map +0 -1
- package/.output/server/chunks/build/useOpenInIde-kMZ7Jw5c.mjs.map +0 -1
- package/.output/server/chunks/build/useSettingsNav-NjI2seBy.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/useTreeViewCookie-DVYpxW-p.mjs.map +0 -1
- package/.output/server/chunks/build/users-NmAUZs3i.mjs.map +0 -1
- package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs +0 -940
- package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs.map +0 -1
- package/.output/server/chunks/build/wasted-time-CguAF9zc.mjs.map +0 -1
- /package/.output/public/_nuxt/{PageStateCard.BrM5HWjY.css → useCopyRich.BrM5HWjY.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as z,Z as ke,Y as me,U as P,o as f,f as x,g as h,V as D,k as e,X as K,$ as le,aB as se,r as B,H as he,B as _e,aM as Ve,j as T,W as O,v as V,aD as ue,h as N,K as Be,aN as Te,aA as $e,S as Se,by as Le,bz as Q,b7 as ie,bA as Re,aw as Ce,a9 as je,bB as Ue,bh as Ge,b1 as Je,bC as qe,ah as Ae,aF as re,c as S,F as j,bl as Xe,bD as Ye,a2 as Ze,a3 as Qe,a5 as et,a6 as Ee,a7 as tt,b4 as Me,aJ as at,bq as nt,p as W,q,aI as X,m as ce,t as ee,ag as oe,s as lt,x as fe,b2 as pe,J as it,b3 as te,i as Y,y as ae,b5 as ve,bc as Oe,a8 as ot,bE as rt,N as st,ab as ut,A as dt}from"./Du2W7Jne.js";import{i as ct}from"./DfgOx_ou.js";import{_ as ft}from"./BT3wGCTI.js";import{S as pt}from"./Cbh--1MW.js";import{u as vt}from"./_mj6CfPa.js";const[ze,gt]=le("CollapsibleRoot");var ht=z({__name:"CollapsibleRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:open"],setup(s,{expose:r,emit:l}){const n=s,t=ke(n,"open",l,{defaultValue:n.defaultOpen,passive:n.open===void 0}),{disabled:u,unmountOnHide:d}=me(n);return gt({contentId:"",disabled:u,open:t,unmountOnHide:d,onOpenToggle:()=>{u.value||(t.value=!t.value)}}),r({open:t}),P(),(c,_)=>(f(),x(e(K),{as:c.as,"as-child":n.asChild,"data-state":e(t)?"open":"closed","data-disabled":e(u)?"":void 0},{default:h(()=>[D(c.$slots,"default",{open:e(t)})]),_:3},8,["as","as-child","data-state","data-disabled"]))}}),bt=ht,yt=z({inheritAttrs:!1,__name:"CollapsibleContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["contentFound"],setup(s,{emit:r}){const l=s,n=r,i=ze();i.contentId||=se(void 0,"reka-collapsible-content");const t=B(),{forwardRef:u,currentElement:d}=P(),c=B(0),_=B(0),I=N(()=>i.open.value),y=B(I.value),M=B();he(()=>[I.value,t.value?.present],async()=>{await Be();const p=d.value;if(!p)return;M.value=M.value||{transitionDuration:p.style.transitionDuration,animationName:p.style.animationName},p.style.transitionDuration="0s",p.style.animationName="none";const C=p.getBoundingClientRect();_.value=C.height,c.value=C.width,y.value||(p.style.transitionDuration=M.value.transitionDuration,p.style.animationName=M.value.animationName)},{immediate:!0});const L=N(()=>y.value&&i.open.value);return _e(()=>{requestAnimationFrame(()=>{y.value=!1})}),Ve(d,"beforematch",p=>{requestAnimationFrame(()=>{i.onOpenToggle(),n("contentFound")})}),(p,C)=>(f(),x(e(ue),{ref_key:"presentRef",ref:t,present:p.forceMount||e(i).open.value,"force-mount":!0},{default:h(({present:o})=>[T(e(K),O(p.$attrs,{id:e(i).contentId,ref:e(u),"as-child":l.asChild,as:p.as,hidden:o?void 0:e(i).unmountOnHide.value?"":"until-found","data-state":L.value?void 0:e(i).open.value?"open":"closed","data-disabled":e(i).disabled?.value?"":void 0,style:{"--reka-collapsible-content-height":`${_.value}px`,"--reka-collapsible-content-width":`${c.value}px`}}),{default:h(()=>[!e(i).unmountOnHide.value||o?D(p.$slots,"default",{key:0}):V("v-if",!0)]),_:2},1040,["id","as-child","as","hidden","data-state","data-disabled","style"])]),_:3},8,["present"]))}}),kt=yt,mt=z({__name:"CollapsibleTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(s){const r=s;P();const l=ze();return(n,i)=>(f(),x(e(K),{type:n.as==="button"?"button":void 0,as:n.as,"as-child":r.asChild,"aria-controls":e(l).contentId,"aria-expanded":e(l).open.value,"data-state":e(l).open.value?"open":"closed","data-disabled":e(l).disabled?.value?"":void 0,disabled:e(l).disabled?.value,onClick:e(l).onOpenToggle},{default:h(()=>[D(n.$slots,"default")]),_:3},8,["type","as","as-child","aria-controls","aria-expanded","data-state","data-disabled","disabled","onClick"]))}}),_t=mt;function Lt({type:s,defaultValue:r,modelValue:l}){const n=l||r;return l!==void 0||r!==void 0?Array.isArray(n)?"multiple":"single":s??"single"}function Ct({type:s,defaultValue:r,modelValue:l}){return s||Lt({type:s,defaultValue:r,modelValue:l})}function xt({type:s,defaultValue:r}){return r!==void 0?r:s==="single"?void 0:[]}function wt(s,r){const l=N(()=>Ct(s)),n=ke(s,"modelValue",r,{defaultValue:xt(s),passive:s.modelValue===void 0,deep:!0});function i(u){if(l.value==="single")n.value=Te(u,n.value)?void 0:u;else{const d=Array.isArray(n.value)?[...n.value||[]]:[n.value].filter(Boolean);if(ct(d,u)){const c=d.findIndex(_=>Te(_,u));d.splice(c,1)}else d.push(u);n.value=d}}const t=N(()=>l.value==="single");return{modelValue:n,changeModelValue:i,isSingle:t}}const[xe,It]=le("AccordionRoot");var Tt=z({__name:"AccordionRoot",props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"vertical"},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:["update:modelValue"],setup(s,{emit:r}){const l=s,n=r,{dir:i,disabled:t,unmountOnHide:u}=me(l),d=$e(i),{modelValue:c,changeModelValue:_,isSingle:I}=wt(l,n),{forwardRef:y,currentElement:M}=P();return It({disabled:t,direction:d,orientation:l.orientation,parentElement:M,isSingle:I,collapsible:l.collapsible,modelValue:c,changeModelValue:_,unmountOnHide:u}),(L,p)=>(f(),x(e(K),{ref:e(y),"as-child":L.asChild,as:L.as},{default:h(()=>[D(L.$slots,"default",{modelValue:e(c)})]),_:3},8,["as-child","as"]))}}),De=Tt,be=(function(s){return s.Open="open",s.Closed="closed",s})(be||{});const[Pe,qt]=le("AccordionItem");var Et=z({__name:"AccordionItem",props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s,{expose:r}){const l=s,n=xe(),i=N(()=>n.isSingle.value?l.value===n.modelValue.value:Array.isArray(n.modelValue.value)&&n.modelValue.value.includes(l.value)),t=N(()=>n.disabled.value||l.disabled),u=N(()=>t.value?"":void 0),d=N(()=>i.value?be.Open:be.Closed);r({open:i,dataDisabled:u});const{currentRef:c,currentElement:_}=P();qt({open:i,dataState:d,disabled:t,dataDisabled:u,triggerId:"",currentRef:c,currentElement:_,value:N(()=>l.value)});function I(y){const M=y.target;if(Array.from(n.parentElement.value?.querySelectorAll("[data-reka-collection-item]")??[]).findIndex(C=>C===M)===-1)return null;Le(y,M,n.parentElement.value,{arrowKeyOptions:n.orientation,dir:n.direction.value,focus:!0})}return(y,M)=>(f(),x(e(bt),{"data-orientation":e(n).orientation,"data-disabled":u.value,"data-state":d.value,disabled:t.value,open:i.value,as:l.as,"as-child":l.asChild,"unmount-on-hide":l.unmountOnHide??e(n).unmountOnHide.value,onKeydown:Se(I,["up","down","left","right","home","end"])},{default:h(()=>[D(y.$slots,"default",{open:i.value})]),_:3},8,["data-orientation","data-disabled","data-state","disabled","open","as","as-child","unmount-on-hide"]))}}),Mt=Et,Ot=z({__name:"AccordionContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,l=xe(),n=Pe();return P(),(i,t)=>(f(),x(e(kt),{role:"region","as-child":r.asChild,as:i.as,"force-mount":r.forceMount,"aria-labelledby":e(n).triggerId,"data-state":e(n).dataState.value,"data-disabled":e(n).dataDisabled.value,"data-orientation":e(l).orientation,style:{"--reka-accordion-content-width":"var(--reka-collapsible-content-width)","--reka-accordion-content-height":"var(--reka-collapsible-content-height)"},onContentFound:t[0]||(t[0]=u=>e(l).changeModelValue(e(n).value.value))},{default:h(()=>[D(i.$slots,"default")]),_:3},8,["as-child","as","force-mount","aria-labelledby","data-state","data-disabled","data-orientation"]))}}),Dt=Ot,Nt=z({__name:"AccordionTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,l=xe(),n=Pe();n.triggerId||=se(void 0,"reka-accordion-trigger");function i(){const t=l.isSingle.value&&n.open.value&&!l.collapsible;n.disabled.value||t||l.changeModelValue(n.value.value)}return(t,u)=>(f(),x(e(_t),{id:e(n).triggerId,ref:e(n).currentRef,"data-reka-collection-item":"",as:r.as,"as-child":r.asChild,"aria-disabled":e(n).disabled.value||void 0,"aria-expanded":e(n).open.value||!1,"data-disabled":e(n).dataDisabled.value,"data-orientation":e(l).orientation,"data-state":e(n).dataState.value,disabled:e(n).disabled.value,onClick:i},{default:h(()=>[D(t.$slots,"default")]),_:3},8,["id","as","as-child","aria-disabled","aria-expanded","data-disabled","data-orientation","data-state","disabled"]))}}),Ne=Nt;function de(s){return s?"open":"closed"}function Ke(s,r){return`${s}-trigger-${r}`}function we(s,r){return`${s}-content-${r}`}const Vt="navigationMenu.linkSelect",ne="navigationMenu.rootContentDismiss";function ye(s){const r=[],l=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;l.nextNode();)r.push(l.currentNode);return r}function Fe(s){const r=Q();return s.some(l=>l===r?!0:(l.focus(),Q()!==r))}function Bt(s){return s.forEach(r=>{r.dataset.tabindex=r.getAttribute("tabindex")||"",r.setAttribute("tabindex","-1")}),()=>{s.forEach(r=>{const l=r.dataset.tabindex;r.setAttribute("tabindex",l)})}}function He(s){return r=>r.pointerType==="mouse"?s(r):void 0}const[Z,$t]=le(["NavigationMenuRoot","NavigationMenuSub"],"NavigationMenuContext");var St=z({__name:"NavigationMenuRoot",props:{modelValue:{type:String,required:!1,default:void 0},defaultValue:{type:String,required:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"horizontal"},delayDuration:{type:Number,required:!1,default:200},skipDelayDuration:{type:Number,required:!1,default:300},disableClickTrigger:{type:Boolean,required:!1,default:!1},disableHoverTrigger:{type:Boolean,required:!1,default:!1},disablePointerLeaveClose:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"nav"}},emits:["update:modelValue"],setup(s,{emit:r}){const l=s,i=ke(l,"modelValue",r,{defaultValue:l.defaultValue??"",passive:l.modelValue===void 0}),t=B(""),{forwardRef:u,currentElement:d}=P(),c=B(),_=B(),I=B(),{getItems:y,CollectionSlot:M}=ie({key:"NavigationMenu",isProvider:!0}),{delayDuration:L,skipDelayDuration:p,dir:C,disableClickTrigger:o,disableHoverTrigger:R,unmountOnHide:g}=me(l),b=$e(C),E=Re(!1,p),v=B(!1),w=N(()=>i.value!==""||E.value?150:L.value),a=je(k=>{if(typeof k=="string"){if(k===""&&v.value){v.value=!1;return}t.value=i.value,i.value=k,k===""&&(E.value=!0)}},w);Ce(()=>{if(!i.value)return;const k=y().map($=>$.ref);I.value=k.find($=>$.id.includes(i.value))}),Ve(d,ne,m),$t({isRootMenu:!0,modelValue:i,previousValue:t,baseId:se(void 0,"reka-navigation-menu"),disableClickTrigger:o,disableHoverTrigger:R,dir:b,unmountOnHide:g,orientation:l.orientation,rootNavigationMenu:d,indicatorTrack:c,activeTrigger:I,onIndicatorTrackChange:k=>{c.value=k},viewport:_,onViewportChange:k=>{_.value=k},onTriggerEnter:k=>{i.value!==""?(v.value=!0,t.value=i.value,i.value=k):a(k)},onTriggerLeave:()=>{v.value=!1,a("")},onContentEnter:()=>{a()},onContentLeave:()=>{l.disablePointerLeaveClose||(v.value=!1,a(""))},onItemSelect:k=>{t.value=i.value,i.value=k},onItemDismiss:m});function m(){t.value=i.value,i.value=""}return(k,$)=>(f(),x(e(M),null,{default:h(()=>[T(e(K),{ref:e(u),as:k.as,"as-child":k.asChild,"data-orientation":k.orientation,dir:e(b),"data-reka-navigation-menu":""},{default:h(()=>[D(k.$slots,"default",{modelValue:e(i)})]),_:3},8,["as","as-child","data-orientation","dir"])]),_:3}))}}),Rt=St;const[Ie,At]=le("NavigationMenuItem");var zt=z({__name:"NavigationMenuItem",props:{value:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},setup(s){const r=s;P();const{getItems:l}=ie({key:"NavigationMenu"}),n=Z(),i=se(r.value),t=B(),u=B(),d=we(n.baseId,i);let c=()=>({});const _=B(!1);async function I(p="start"){const C=document.getElementById(d);if(C){c();const o=ye(C);o.length&&Fe(p==="start"?o:o.reverse())}}function y(){const p=document.getElementById(d);if(p){const C=ye(p);C.length&&(c=Bt(C))}}At({value:i,contentId:d,triggerRef:t,focusProxyRef:u,wasEscapeCloseRef:_,onEntryKeyDown:I,onFocusProxyEnter:I,onContentFocusOutside:y,onRootContentClose:y});function M(){n.onItemDismiss(),t.value?.focus()}function L(p){const C=Q();if(p.keyCode===32||p.key==="Enter")if(n.modelValue.value===i){M(),p.preventDefault();return}else{p.target.click(),p.preventDefault();return}const o=l().filter(g=>g.ref.parentElement?.hasAttribute("data-menu-item")).map(g=>g.ref);if(!o.includes(C))return;const R=Le(p,C,void 0,{itemsArray:o,loop:!1});R&&R?.focus(),p.preventDefault(),p.stopPropagation()}return(p,C)=>(f(),x(e(K),{"as-child":p.asChild,as:p.as,"data-menu-item":"",onKeydown:Se(L,["up","down","left","right","home","end","space"])},{default:h(()=>[D(p.$slots,"default")]),_:3},8,["as-child","as"]))}}),Pt=zt,Kt=z({__name:"NavigationMenuContentImpl",props:{disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(s,{emit:r}){const l=s,n=r,{getItems:i}=ie({key:"NavigationMenu"}),{forwardRef:t,currentElement:u}=P(),d=Z(),c=Ie(),_=Ke(d.baseId,c.value),I=we(d.baseId,c.value),y=B(null),M=N(()=>{const g=i().map(m=>m.ref.id.split("trigger-")[1]);d.dir.value==="rtl"&&g.reverse();const b=g.indexOf(d.modelValue.value),E=g.indexOf(d.previousValue.value),v=c.value===d.modelValue.value,w=E===g.indexOf(c.value);if(!v&&!w)return y.value;const a=(()=>{if(b!==E){if(v&&E!==-1)return b>E?"from-end":"from-start";if(w&&b!==-1)return b>E?"to-start":"to-end"}return null})();return y.value=a,a});function L(g){if(n("focusOutside",g),n("interactOutside",g),g.detail.originalEvent.target.hasAttribute("data-navigation-menu-trigger")&&g.preventDefault(),!g.defaultPrevented){c.onContentFocusOutside();const E=g.target;d.rootNavigationMenu?.value?.contains(E)&&g.preventDefault()}}function p(g){if(n("pointerDownOutside",g),!g.defaultPrevented){const b=g.target,E=i().some(w=>w.ref.contains(b)),v=d.isRootMenu&&d.viewport.value?.contains(b);(E||v||!d.isRootMenu)&&g.preventDefault()}}Ce(g=>{const b=u.value;if(d.isRootMenu&&b){const E=()=>{d.onItemDismiss(),c.onRootContentClose(),b.contains(Q())&&c.triggerRef.value?.focus()};b.addEventListener(ne,E),g(()=>b.removeEventListener(ne,E))}});function C(g){n("escapeKeyDown",g),g.defaultPrevented||(d.onItemDismiss(),c.triggerRef?.value?.focus(),c.wasEscapeCloseRef.value=!0)}function o(g){if(g.target.closest("[data-reka-navigation-menu]")!==d.rootNavigationMenu.value)return;const b=g.altKey||g.ctrlKey||g.metaKey,E=g.key==="Tab"&&!b,v=ye(g.currentTarget);if(E){const a=Q(),m=v.findIndex(A=>A===a),$=g.shiftKey?v.slice(0,m).reverse():v.slice(m+1,v.length);if(Fe($))g.preventDefault();else{c.focusProxyRef.value?.focus();return}}Le(g,Q(),void 0,{itemsArray:v,loop:!1,enableIgnoredElement:!0})?.focus()}function R(){if(d.modelValue.value!==c.value)return;const g=new Event(ne,{bubbles:!0,cancelable:!0});u.value?.dispatchEvent(g)}return(g,b)=>(f(),x(e(Ue),O({id:e(I),ref:e(t),"aria-labelledby":e(_),"data-motion":M.value,"data-state":e(de)(e(d).modelValue.value===e(c).value),"data-orientation":e(d).orientation},l,{onKeydown:o,onEscapeKeyDown:C,onPointerDownOutside:p,onFocusOutside:L,onDismiss:R}),{default:h(()=>[D(g.$slots,"default")]),_:3},16,["id","aria-labelledby","data-motion","data-state","data-orientation"]))}}),Ft=Kt,Ht=z({inheritAttrs:!1,__name:"NavigationMenuContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(s,{emit:r}){const l=s,n=r,i=Ge(Je(l,"forceMount"),n),{forwardRef:t}=P(),u=Z(),d=Ie(),c=N(()=>d.value===u.modelValue.value),_=N(()=>u.viewport.value&&!u.modelValue.value&&u.previousValue.value?u.previousValue.value===d.value:!1);return(I,y)=>(f(),x(Ae,{to:e(qe)&&e(u).viewport.value?e(u).viewport.value:"body",disabled:e(qe)&&e(u).viewport.value?!e(u).viewport.value:!0},[T(e(ue),{present:I.forceMount||c.value||_.value,"force-mount":!e(u).unmountOnHide.value},{default:h(({present:M})=>[T(Ft,O({ref:e(t),"data-state":e(de)(c.value),style:{pointerEvents:!c.value&&e(u).isRootMenu?"none":void 0}},{...I.$attrs,...e(i)},{hidden:!M,onPointerenter:y[0]||(y[0]=L=>e(u).onContentEnter(e(d).value)),onPointerleave:y[1]||(y[1]=L=>e(He)(()=>e(u).onContentLeave())(L)),onPointerDownOutside:y[2]||(y[2]=L=>n("pointerDownOutside",L)),onFocusOutside:y[3]||(y[3]=L=>n("focusOutside",L)),onInteractOutside:y[4]||(y[4]=L=>n("interactOutside",L))}),{default:h(()=>[D(I.$slots,"default")]),_:2},1040,["data-state","style","hidden"])]),_:3},8,["present","force-mount"])],8,["to","disabled"]))}}),Wt=Ht,jt=z({inheritAttrs:!1,__name:"NavigationMenuIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,{forwardRef:l}=P(),n=Z(),i=B(),t=N(()=>n.orientation==="horizontal"),u=N(()=>!!n.modelValue.value),{activeTrigger:d}=n;function c(){d.value&&(i.value={size:t.value?d.value.offsetWidth:d.value.offsetHeight,position:t.value?d.value.offsetLeft:d.value.offsetTop})}return Ce(()=>{n.modelValue.value&&c()}),re(d,c),re(n.indicatorTrack,c),(_,I)=>e(n).indicatorTrack.value?(f(),x(Ae,{key:0,to:e(n).indicatorTrack.value},[T(e(ue),{present:_.forceMount||u.value},{default:h(()=>[T(e(K),O({ref:e(l),"aria-hidden":"true","data-state":u.value?"visible":"hidden","data-orientation":e(n).orientation,"as-child":r.asChild,as:_.as,style:{...i.value?{"--reka-navigation-menu-indicator-size":`${i.value.size}px`,"--reka-navigation-menu-indicator-position":`${i.value.position}px`}:{}}},_.$attrs),{default:h(()=>[D(_.$slots,"default")]),_:3},16,["data-state","data-orientation","as-child","as","style"])]),_:3},8,["present"])],8,["to"])):V("v-if",!0)}}),Ut=jt,Gt=z({__name:"NavigationMenuLink",props:{active:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"a"}},emits:["select"],setup(s,{emit:r}){const l=s,n=r,{CollectionItem:i}=ie({key:"NavigationMenu"});P();async function t(u){const d=new CustomEvent(Vt,{bubbles:!0,cancelable:!0,detail:{originalEvent:u}});if(n("select",d),!d.defaultPrevented&&!u.metaKey){const c=new CustomEvent(ne,{bubbles:!0,cancelable:!0});u.target?.dispatchEvent(c)}}return(u,d)=>(f(),x(e(i),null,{default:h(()=>[T(e(K),{as:u.as,"data-active":u.active?"":void 0,"aria-current":u.active?"page":void 0,"as-child":l.asChild,onClick:t},{default:h(()=>[D(u.$slots,"default")]),_:3},8,["as","data-active","aria-current","as-child"])]),_:3}))}}),ge=Gt,Jt=z({inheritAttrs:!1,__name:"NavigationMenuList",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"ul"}},setup(s){const r=s,l=Z(),{forwardRef:n,currentElement:i}=P();return _e(()=>{l.onIndicatorTrackChange(i.value)}),(t,u)=>(f(),x(e(K),{ref:e(n),style:{position:"relative"}},{default:h(()=>[T(e(K),O(t.$attrs,{"as-child":r.asChild,as:t.as,"data-orientation":e(l).orientation}),{default:h(()=>[D(t.$slots,"default")]),_:3},16,["as-child","as","data-orientation"])]),_:3},512))}}),Xt=Jt;const Yt=["aria-owns"];var Zt=z({inheritAttrs:!1,__name:"NavigationMenuTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(s){const r=s,l=Z(),n=Ie(),{CollectionItem:i}=ie({key:"NavigationMenu"}),{forwardRef:t,currentElement:u}=P(),d=B(""),c=B(""),_=Re(!1,300),I=B(!1),y=N(()=>n.value===l.modelValue.value);_e(()=>{n.triggerRef=u,d.value=Ke(l.baseId,n.value),c.value=we(l.baseId,n.value)});function M(){l.disableHoverTrigger.value||(I.value=!1,n.wasEscapeCloseRef.value=!1)}function L(b){if(!l.disableHoverTrigger.value&&b.pointerType==="mouse"){if(r.disabled||I.value||n.wasEscapeCloseRef.value||_.value)return;l.onTriggerEnter(n.value),_.value=!0}}function p(b){if(!l.disableHoverTrigger.value&&b.pointerType==="mouse"){if(r.disabled)return;l.onTriggerLeave(),_.value=!1}}function C(b){(!("pointerType"in b)||b.pointerType==="mouse")&&l.disableClickTrigger.value||_.value||(y.value?l.onItemSelect(""):l.onItemSelect(n.value),I.value=y.value)}function o(b){const v={horizontal:"ArrowDown",vertical:l.dir.value==="rtl"?"ArrowLeft":"ArrowRight"}[l.orientation];y.value&&b.key===v&&(n.onEntryKeyDown(),b.preventDefault(),b.stopPropagation())}function R(b){b&&(n.focusProxyRef.value=Ye(b))}function g(b){const E=document.getElementById(n.contentId),v=b.relatedTarget,w=v===u.value,a=E?.contains(v);(w||!a)&&n.onFocusProxyEnter(w?"start":"end")}return(b,E)=>(f(),S(j,null,[T(e(i),null,{default:h(()=>[T(e(K),O({id:d.value,ref:e(t),disabled:b.disabled,"data-disabled":b.disabled?"":void 0,"data-state":e(de)(y.value),"data-navigation-menu-trigger":"","aria-expanded":y.value,"aria-controls":c.value,"as-child":r.asChild,as:b.as},b.$attrs,{onPointerenter:M,onPointermove:L,onPointerleave:p,onClick:C,onKeydown:o}),{default:h(()=>[D(b.$slots,"default")]),_:3},16,["id","disabled","data-disabled","data-state","aria-expanded","aria-controls","as-child","as"])]),_:3}),y.value?(f(),S(j,{key:0},[T(e(Xe),{ref:R,"aria-hidden":"true",tabindex:0,onFocus:g}),e(l).viewport?(f(),S("span",{key:0,"aria-owns":c.value},null,8,Yt)):V("v-if",!0)],64)):V("v-if",!0)],64))}}),Qt=Zt,ea=z({inheritAttrs:!1,__name:"NavigationMenuViewport",props:{forceMount:{type:Boolean,required:!1},align:{type:String,required:!1,default:"center"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,{forwardRef:l,currentElement:n}=P(),i=Z(),{activeTrigger:t,rootNavigationMenu:u,modelValue:d}=i,c=B(),_=B(),I=N(()=>!!i.modelValue.value);he(n,()=>{i.onViewportChange(n.value)});const y=B();he([d,I],()=>{Be(()=>{n.value&&requestAnimationFrame(()=>{const L=n.value?.querySelector("[data-state=open]");y.value=L})})},{immediate:!0});function M(){if(y.value&&t.value&&u.value){const L=document.documentElement.offsetWidth,p=document.documentElement.offsetHeight,C=u.value.getBoundingClientRect(),o=t.value.getBoundingClientRect(),{offsetWidth:R,offsetHeight:g}=y.value,b=o.left-C.left,E=o.top-C.top;let v=null,w=null;switch(r.align){case"start":v=b,w=E;break;case"end":v=b-R+o.width,w=E-g+o.height;break;default:v=b-R/2+o.width/2,w=E-g/2+o.height/2}const a=10;v+C.left<a&&(v=a-C.left);const m=v+C.left+R;m>L-a&&(v-=m-L+a,v<a-C.left&&(v=a-C.left)),w+C.top<a&&(w=a-C.top);const k=w+C.top+g;k>p-a&&(w-=k-p+a,w<a-C.top&&(w=a-C.top)),v=Math.round(v),w=Math.round(w),_.value={left:v,top:w}}}return re(y,()=>{y.value&&(c.value={width:y.value.offsetWidth,height:y.value.offsetHeight},M())}),re([globalThis.document?.body,u],()=>{M()}),(L,p)=>(f(),x(e(ue),{present:L.forceMount||I.value,"force-mount":!e(i).unmountOnHide.value,onAfterLeave:p[2]||(p[2]=()=>{c.value=void 0,_.value=void 0})},{default:h(({present:C})=>[T(e(K),O(L.$attrs,{ref:e(l),as:L.as,"as-child":L.asChild,"data-state":e(de)(I.value),"data-orientation":e(i).orientation,style:{pointerEvents:!I.value&&e(i).isRootMenu?"none":void 0,"--reka-navigation-menu-viewport-width":c.value?`${c.value?.width}px`:void 0,"--reka-navigation-menu-viewport-height":c.value?`${c.value?.height}px`:void 0,"--reka-navigation-menu-viewport-left":_.value?`${_.value?.left}px`:void 0,"--reka-navigation-menu-viewport-top":_.value?`${_.value?.top}px`:void 0},hidden:!C,onPointerenter:p[0]||(p[0]=o=>e(i).onContentEnter(e(i).modelValue.value)),onPointerleave:p[1]||(p[1]=o=>e(He)(()=>e(i).onContentLeave())(o))}),{default:h(()=>[D(L.$slots,"default")]),_:2},1040,["as","as-child","data-state","data-orientation","style","hidden"])]),_:3},8,["present","force-mount"]))}}),ta=ea;const aa={slots:{root:"relative flex gap-1.5 [&>div]:min-w-0",list:"isolate min-w-0",label:"w-full flex items-center gap-1.5 font-semibold text-xs/5 text-highlighted px-2.5 py-1.5",item:"min-w-0",link:"group relative w-full flex items-center gap-1.5 font-medium text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:outline-3",linkLeadingIcon:"shrink-0 size-5",linkLeadingAvatar:"shrink-0",linkLeadingAvatarSize:"2xs",linkLeadingChipSize:"sm",linkTrailing:"group ms-auto inline-flex gap-1.5 items-center",linkTrailingBadge:"shrink-0",linkTrailingBadgeSize:"sm",linkTrailingIcon:"size-5 transform shrink-0 group-data-[state=open]:rotate-180 transition-transform duration-200",linkLabel:"truncate",linkLabelExternalIcon:"inline-block size-3 align-top text-dimmed",childList:"isolate",childLabel:"text-xs text-highlighted",childItem:"",childLink:"group relative size-full flex items-start text-start text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:outline-3",childLinkWrapper:"min-w-0",childLinkIcon:"size-5 shrink-0",childLinkLabel:"truncate",childLinkLabelExternalIcon:"inline-block size-3 align-top text-dimmed",childLinkDescription:"text-muted",separator:"px-2 h-px bg-border",viewportWrapper:"absolute top-full start-0 flex w-full",viewport:"relative overflow-hidden bg-default shadow-lg rounded-md ring ring-default h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left,right] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] z-1",content:"",indicator:"absolute left-0 data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-2 w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",arrow:"relative top-[50%] size-2.5 rotate-45 border border-default bg-default z-1 rounded-xs"},variants:{color:{primary:{link:"before:outline-primary/25",childLink:"before:outline-primary/25"},secondary:{link:"before:outline-secondary/25",childLink:"before:outline-secondary/25"},success:{link:"before:outline-success/25",childLink:"before:outline-success/25"},info:{link:"before:outline-info/25",childLink:"before:outline-info/25"},warning:{link:"before:outline-warning/25",childLink:"before:outline-warning/25"},error:{link:"before:outline-error/25",childLink:"before:outline-error/25"},neutral:{link:"before:outline-inverted/25",childLink:"before:outline-inverted/25"}},highlightColor:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},variant:{pill:"",link:""},orientation:{horizontal:{root:"items-center justify-between",list:"flex items-center",item:"py-2",link:"px-2.5 py-1.5 before:inset-x-px before:inset-y-0",childList:"grid p-2",childLink:"px-3 py-2 gap-2 before:inset-x-px before:inset-y-0",childLinkLabel:"font-medium",content:"absolute top-0 start-0 w-full max-h-[70vh] overflow-y-auto"},vertical:{root:"flex-col",link:"flex-row px-2.5 py-1.5 before:inset-y-px before:inset-x-0",childLabel:"px-1.5 py-0.5",childLink:"p-1.5 gap-1.5 before:inset-y-px before:inset-x-0"}},contentOrientation:{horizontal:{viewportWrapper:"justify-center",content:"data-[motion=from-start]:animate-[enter-from-left_200ms_ease] data-[motion=from-end]:animate-[enter-from-right_200ms_ease] data-[motion=to-start]:animate-[exit-to-left_200ms_ease] data-[motion=to-end]:animate-[exit-to-right_200ms_ease]"},vertical:{viewport:"sm:w-(--reka-navigation-menu-viewport-width) left-(--reka-navigation-menu-viewport-left) rtl:left-auto rtl:right-[calc(100%-var(--reka-navigation-menu-viewport-left)-var(--reka-navigation-menu-viewport-width))]"}},active:{true:{childLink:"before:bg-elevated text-highlighted",childLinkIcon:"text-default"},false:{link:"text-muted",linkLeadingIcon:"text-dimmed",childLink:["hover:before:bg-elevated/50 text-default hover:text-highlighted","transition-colors before:transition-colors"],childLinkIcon:["text-dimmed group-hover:text-default","transition-colors"]}},disabled:{true:{link:"cursor-not-allowed opacity-75"}},highlight:{true:""},level:{true:""},collapsed:{true:""}},compoundVariants:[{orientation:"horizontal",contentOrientation:"horizontal",class:{childList:"grid-cols-2 gap-2"}},{orientation:"horizontal",contentOrientation:"vertical",class:{childList:"gap-1",content:"w-60"}},{orientation:"vertical",collapsed:!1,class:{childList:"ms-5 border-s border-default",childItem:"ps-1.5 -ms-px",content:"data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] data-[state=closed]:overflow-hidden"}},{orientation:"vertical",collapsed:!0,class:{link:"px-1.5",linkLabel:"hidden",linkTrailing:"hidden",content:"shadow-sm rounded-sm min-h-6 p-1"}},{orientation:"horizontal",highlight:!0,class:{link:["after:absolute after:-bottom-2 after:inset-x-2.5 after:block after:h-px after:rounded-full","after:transition-colors"]}},{orientation:"vertical",highlight:!0,level:!0,class:{link:["after:absolute after:-start-1.5 after:inset-y-0.5 after:block after:w-px after:rounded-full","after:transition-colors"]}},{disabled:!1,active:!1,variant:"pill",class:{link:["hover:text-highlighted hover:before:bg-elevated/50","transition-colors before:transition-colors"],linkLeadingIcon:["group-hover:text-default","transition-colors"]}},{disabled:!1,active:!1,variant:"pill",orientation:"horizontal",class:{link:"data-[state=open]:text-highlighted",linkLeadingIcon:"group-data-[state=open]:text-default"}},{disabled:!1,variant:"pill",highlight:!0,orientation:"horizontal",class:{link:"data-[state=open]:before:bg-elevated/50"}},{disabled:!1,variant:"pill",highlight:!1,active:!1,orientation:"horizontal",class:{link:"data-[state=open]:before:bg-elevated/50"}},{color:"primary",variant:"pill",active:!0,class:{link:"text-primary",linkLeadingIcon:"text-primary group-data-[state=open]:text-primary"}},{color:"secondary",variant:"pill",active:!0,class:{link:"text-secondary",linkLeadingIcon:"text-secondary group-data-[state=open]:text-secondary"}},{color:"success",variant:"pill",active:!0,class:{link:"text-success",linkLeadingIcon:"text-success group-data-[state=open]:text-success"}},{color:"info",variant:"pill",active:!0,class:{link:"text-info",linkLeadingIcon:"text-info group-data-[state=open]:text-info"}},{color:"warning",variant:"pill",active:!0,class:{link:"text-warning",linkLeadingIcon:"text-warning group-data-[state=open]:text-warning"}},{color:"error",variant:"pill",active:!0,class:{link:"text-error",linkLeadingIcon:"text-error group-data-[state=open]:text-error"}},{color:"neutral",variant:"pill",active:!0,class:{link:"text-highlighted",linkLeadingIcon:"text-highlighted group-data-[state=open]:text-highlighted"}},{variant:"pill",active:!0,highlight:!1,class:{link:"before:bg-elevated"}},{variant:"pill",active:!0,highlight:!0,disabled:!1,class:{link:["hover:before:bg-elevated/50","before:transition-colors"]}},{disabled:!1,active:!1,variant:"link",class:{link:["hover:text-highlighted","transition-colors"],linkLeadingIcon:["group-hover:text-default","transition-colors"]}},{disabled:!1,active:!1,variant:"link",orientation:"horizontal",class:{link:"data-[state=open]:text-highlighted",linkLeadingIcon:"group-data-[state=open]:text-default"}},{color:"primary",variant:"link",active:!0,class:{link:"text-primary",linkLeadingIcon:"text-primary group-data-[state=open]:text-primary"}},{color:"secondary",variant:"link",active:!0,class:{link:"text-secondary",linkLeadingIcon:"text-secondary group-data-[state=open]:text-secondary"}},{color:"success",variant:"link",active:!0,class:{link:"text-success",linkLeadingIcon:"text-success group-data-[state=open]:text-success"}},{color:"info",variant:"link",active:!0,class:{link:"text-info",linkLeadingIcon:"text-info group-data-[state=open]:text-info"}},{color:"warning",variant:"link",active:!0,class:{link:"text-warning",linkLeadingIcon:"text-warning group-data-[state=open]:text-warning"}},{color:"error",variant:"link",active:!0,class:{link:"text-error",linkLeadingIcon:"text-error group-data-[state=open]:text-error"}},{color:"neutral",variant:"link",active:!0,class:{link:"text-highlighted",linkLeadingIcon:"text-highlighted group-data-[state=open]:text-highlighted"}},{highlightColor:"primary",highlight:!0,level:!0,active:!0,class:{link:"after:bg-primary"}},{highlightColor:"secondary",highlight:!0,level:!0,active:!0,class:{link:"after:bg-secondary"}},{highlightColor:"success",highlight:!0,level:!0,active:!0,class:{link:"after:bg-success"}},{highlightColor:"info",highlight:!0,level:!0,active:!0,class:{link:"after:bg-info"}},{highlightColor:"warning",highlight:!0,level:!0,active:!0,class:{link:"after:bg-warning"}},{highlightColor:"error",highlight:!0,level:!0,active:!0,class:{link:"after:bg-error"}},{highlightColor:"neutral",highlight:!0,level:!0,active:!0,class:{link:"after:bg-inverted"}}],defaultVariants:{color:"primary",highlightColor:"primary",variant:"pill"}},sa=Object.assign({inheritAttrs:!1},{__name:"UNavigationMenu",props:{as:{type:null,required:!1},type:{type:null,required:!1,default:"multiple"},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},trailingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},items:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},orientation:{type:null,required:!1,default:"horizontal"},collapsed:{type:Boolean,required:!1},tooltip:{type:[Boolean,Object],required:!1},popover:{type:[Boolean,Object],required:!1},highlight:{type:Boolean,required:!1},highlightColor:{type:null,required:!1},content:{type:Object,required:!1},contentOrientation:{type:null,required:!1,default:"horizontal"},arrow:{type:Boolean,required:!1},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:Object,required:!1},delayDuration:{type:Number,required:!1,default:0},disableClickTrigger:{type:Boolean,required:!1},disableHoverTrigger:{type:Boolean,required:!1},skipDelayDuration:{type:Number,required:!1},disablePointerLeaveClose:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},disabled:{type:Boolean,required:!1},collapsible:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],setup(s,{emit:r}){const l=s,n=r,i=Ze(),t=Qe("navigationMenu",l),u=et(),d=Ee(N(()=>({as:t.as,delayDuration:t.delayDuration,skipDelayDuration:t.skipDelayDuration,orientation:t.orientation,disableClickTrigger:t.disableClickTrigger,disableHoverTrigger:t.disableHoverTrigger,disablePointerLeaveClose:t.disablePointerLeaveClose,unmountOnHide:t.unmountOnHide})),n),c=Ee(tt(t,"collapsible","disabled","type","unmountOnHide"),n),_=ve(()=>t.content),I=ve(()=>Oe(typeof t.tooltip=="boolean"?{}:t.tooltip,{...t.orientation==="vertical"&&{delayDuration:0,content:{side:"right"}}})),y=ve(()=>Oe(typeof t.popover=="boolean"?{}:t.popover,{mode:"hover",content:{side:"right",align:"start",alignOffset:2}})),[M,L]=Me(),[p,C]=Me({props:{item:Object,index:Number,level:Number,listIndex:Number}}),o=N(()=>ot({extend:aa,...u.ui?.navigationMenu||{}})({orientation:t.orientation,contentOrientation:t.orientation==="vertical"?void 0:t.contentOrientation,collapsed:t.collapsed,color:t.color,variant:t.variant,highlight:t.highlight,highlightColor:t.highlightColor||t.color})),R=N(()=>t.items?.length?rt(t.items)?t.items:[t.items]:[]);function g(v,w,a,m){const k=R.value.length>1?`group-${m}-`:"";return X(v,t.valueKey)??(a>0?`${k}item-${a}-${w}`:`${k}item-${w}`)}function b(v,w=0,a=0){const m=v.reduce((k,$,A)=>(($.defaultOpen||$.open)&&k.push(g($,A,w,a)),k),[]);return t.type==="single"?m[0]:m}function E(v,w){w.children?.length&&(t.orientation==="horizontal"?v.preventDefault():t.orientation==="vertical"&&!t.collapsed&&(v.preventDefault(),v.stopPropagation()))}return(v,w)=>(f(),S(j,null,[T(e(M),null,{default:h(({item:a,active:m,index:k})=>[D(v.$slots,a.slot||"item",{item:a,index:k,active:m,ui:o.value},()=>[D(v.$slots,a.slot?`${a.slot}-leading`:"item-leading",{item:a,active:m,index:k,ui:o.value},()=>[a.avatar?(f(),x(at,O({key:0,size:a.ui?.linkLeadingAvatarSize||e(t).ui?.linkLeadingAvatarSize||o.value.linkLeadingAvatarSize()},a.avatar,{"data-slot":"linkLeadingAvatar",class:o.value.linkLeadingAvatar({class:[e(t).ui?.linkLeadingAvatar,a.ui?.linkLeadingAvatar],active:m,disabled:!!a.disabled})}),null,16,["size","class"])):a.icon&&a.chip?(f(),x(nt,O({key:1,size:a.ui?.linkLeadingChipSize||e(t).ui?.linkLeadingChipSize||o.value.linkLeadingChipSize(),inset:""},typeof a.chip=="object"?a.chip:{},{"data-slot":"linkLeadingChip"}),{default:h(()=>[T(W,{name:a.icon,"data-slot":"linkLeadingIcon",class:q(o.value.linkLeadingIcon({class:[e(t).ui?.linkLeadingIcon,a.ui?.linkLeadingIcon],active:m,disabled:!!a.disabled}))},null,8,["name","class"])]),_:2},1040,["size"])):a.icon?(f(),x(W,{key:2,name:a.icon,"data-slot":"linkLeadingIcon",class:q(o.value.linkLeadingIcon({class:[e(t).ui?.linkLeadingIcon,a.ui?.linkLeadingIcon],active:m,disabled:!!a.disabled}))},null,8,["name","class"])):V("",!0)]),e(X)(a,e(t).labelKey)||i[a.slot?`${a.slot}-label`:"item-label"]?(f(),S("span",{key:0,"data-slot":"linkLabel",class:q(o.value.linkLabel({class:[e(t).ui?.linkLabel,a.ui?.linkLabel]}))},[D(v.$slots,a.slot?`${a.slot}-label`:"item-label",{item:a,active:m,index:k},()=>[ce(ee(e(X)(a,e(t).labelKey)),1)]),a.target==="_blank"&&e(t).externalIcon!==!1?(f(),x(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(u).ui.icons.external,"data-slot":"linkLabelExternalIcon",class:q(o.value.linkLabelExternalIcon({class:[e(t).ui?.linkLabelExternalIcon,a.ui?.linkLabelExternalIcon],active:m}))},null,8,["name","class"])):V("",!0)],2)):V("",!0),a.badge||a.badge===0||e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])||e(t).orientation==="vertical"&&a.children?.length||a.trailingIcon||i[a.slot?`${a.slot}-trailing`:"item-trailing"]?(f(),x(oe(e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?e(Ne):"span"),{key:1,as:e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?"span":void 0,"data-slot":"linkTrailing",class:q(o.value.linkTrailing({class:[e(t).ui?.linkTrailing,a.ui?.linkTrailing]})),onClick:$=>E($,a)},{default:h(()=>[D(v.$slots,a.slot?`${a.slot}-trailing`:"item-trailing",{item:a,active:m,index:k,ui:o.value},()=>[a.badge||a.badge===0?(f(),x(lt,O({key:0,color:"neutral",variant:"outline",size:a.ui?.linkTrailingBadgeSize||e(t).ui?.linkTrailingBadgeSize||o.value.linkTrailingBadgeSize()},typeof a.badge=="string"||typeof a.badge=="number"?{label:a.badge}:a.badge,{"data-slot":"linkTrailingBadge",class:o.value.linkTrailingBadge({class:[e(t).ui?.linkTrailingBadge,a.ui?.linkTrailingBadge]})}),null,16,["size","class"])):V("",!0),e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])||e(t).orientation==="vertical"&&a.children?.length?(f(),x(W,{key:1,name:a.trailingIcon||e(t).trailingIcon||e(u).ui.icons.chevronDown,"data-slot":"linkTrailingIcon",class:q(o.value.linkTrailingIcon({class:[e(t).ui?.linkTrailingIcon,a.ui?.linkTrailingIcon],active:m}))},null,8,["name","class"])):a.trailingIcon?(f(),x(W,{key:2,name:a.trailingIcon,"data-slot":"linkTrailingIcon",class:q(o.value.linkTrailingIcon({class:[e(t).ui?.linkTrailingIcon,a.ui?.linkTrailingIcon],active:m}))},null,8,["name","class"])):V("",!0)])]),_:2},1032,["as","class","onClick"])):V("",!0)])]),_:3}),T(e(p),null,{default:h(({item:a,index:m,level:k=0,listIndex:$=0})=>[(f(),x(oe(e(t).orientation==="vertical"&&!e(t).collapsed?e(Mt):e(Pt)),O({as:"li"},e(t).orientation==="vertical"&&!e(t).collapsed?{disabled:!!a.disabled}:{},{value:g(a,m,k,$)}),{default:h(()=>[e(t).orientation==="vertical"&&a.type==="label"&&!e(t).collapsed?(f(),S("div",{key:0,"data-slot":"label",class:q(o.value.label({class:[e(t).ui?.label,a.ui?.label,a.class]}))},[T(e(L),{item:a,index:m},null,8,["item","index"])],2)):a.type!=="label"?(f(),x(fe,O({key:1},e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed&&a.type==="trigger"?{}:e(pe)(a),{custom:""}),{default:h(({active:A,...G})=>[(f(),x(oe(e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])?e(Qt):e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed&&!G.href?e(Ne):e(ge)),{"as-child":"",active:A||a.active,disabled:a.disabled,onSelect:a.onSelect},{default:h(()=>[e(t).orientation==="vertical"&&e(t).collapsed&&a.children?.length&&(e(t).popover||a.popover)?(f(),x(it,O({key:0},{...y.value,...typeof a.popover=="boolean"?{}:a.popover||{}},{ui:{content:o.value.content({class:[e(t).ui?.content,a.ui?.content]})}}),{content:h(({close:F})=>[D(v.$slots,a.slot?`${a.slot}-content`:"item-content",{item:a,active:A||a.active,index:m,ui:o.value,close:F},()=>[Y("ul",{"data-slot":"childList",class:q(o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]}))},[Y("li",{"data-slot":"childLabel",class:q(o.value.childLabel({class:[e(t).ui?.childLabel,a.ui?.childLabel]}))},ee(e(X)(a,e(t).labelKey)),3),(f(!0),S(j,null,ae(a.children,(H,U)=>(f(),S("li",{key:U,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,a.ui?.childItem]}))},[T(fe,O({ref_for:!0},e(pe)(H),{custom:""}),{default:h(({active:J,...We})=>[T(e(ge),{"as-child":"",active:J,onSelect:H.onSelect},{default:h(()=>[T(te,O({ref_for:!0},We,{"data-slot":"childLink",class:o.value.childLink({class:[e(t).ui?.childLink,a.ui?.childLink,H.class],active:J})}),{default:h(()=>[H.icon?(f(),x(W,{key:0,name:H.icon,"data-slot":"childLinkIcon",class:q(o.value.childLinkIcon({class:[e(t).ui?.childLinkIcon,a.ui?.childLinkIcon],active:J}))},null,8,["name","class"])):V("",!0),Y("span",{"data-slot":"childLinkLabel",class:q(o.value.childLinkLabel({class:[e(t).ui?.childLinkLabel,a.ui?.childLinkLabel],active:J}))},[ce(ee(e(X)(H,e(t).labelKey))+" ",1),H.target==="_blank"&&e(t).externalIcon!==!1?(f(),x(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(u).ui.icons.external,"data-slot":"childLinkLabelExternalIcon",class:q(o.value.childLinkLabelExternalIcon({class:[e(t).ui?.childLinkLabelExternalIcon,a.ui?.childLinkLabelExternalIcon],active:J}))},null,8,["name","class"])):V("",!0)],2)]),_:2},1040,["class"])]),_:2},1032,["active","onSelect"])]),_:2},1040)],2))),128))],2)])]),default:h(()=>[T(te,O(G,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:k>0})}),{default:h(()=>[T(e(L),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040,["ui"])):e(t).orientation==="vertical"&&e(t).collapsed&&(e(t).tooltip||a.tooltip)||e(t).orientation==="horizontal"&&a.tooltip?(f(),x(ft,O({key:1,text:e(X)(a,e(t).labelKey)},{...I.value,...typeof a.tooltip=="boolean"?{}:a.tooltip||{}}),{default:h(()=>[T(te,O(G,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:k>0})}),{default:h(()=>[T(e(L),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040,["text"])):(f(),x(te,O({key:2},G,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:e(t).orientation==="horizontal"||k>0})}),{default:h(()=>[T(e(L),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"]))]),_:2},1064,["active","disabled","onSelect"])),e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])?(f(),x(e(Wt),O({key:0},_.value,{"data-slot":"content",class:o.value.content({class:[e(t).ui?.content,a.ui?.content]})}),{default:h(()=>[D(v.$slots,a.slot?`${a.slot}-content`:"item-content",{item:a,active:A||a.active,index:m,ui:o.value},()=>[Y("ul",{"data-slot":"childList",class:q(o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]}))},[(f(!0),S(j,null,ae(a.children,(F,H)=>(f(),S("li",{key:H,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,a.ui?.childItem]}))},[T(fe,O({ref_for:!0},e(pe)(F),{custom:""}),{default:h(({active:U,...J})=>[T(e(ge),{"as-child":"",active:U,onSelect:F.onSelect},{default:h(()=>[T(te,O({ref_for:!0},J,{"data-slot":"childLink",class:o.value.childLink({class:[e(t).ui?.childLink,a.ui?.childLink,F.class],active:U})}),{default:h(()=>[F.icon?(f(),x(W,{key:0,name:F.icon,"data-slot":"childLinkIcon",class:q(o.value.childLinkIcon({class:[e(t).ui?.childLinkIcon,a.ui?.childLinkIcon],active:U}))},null,8,["name","class"])):V("",!0),Y("div",{"data-slot":"childLinkWrapper",class:q(o.value.childLinkWrapper({class:[e(t).ui?.childLinkWrapper,a.ui?.childLinkWrapper]}))},[Y("p",{"data-slot":"childLinkLabel",class:q(o.value.childLinkLabel({class:[e(t).ui?.childLinkLabel,a.ui?.childLinkLabel],active:U}))},[ce(ee(e(X)(F,e(t).labelKey))+" ",1),F.target==="_blank"&&e(t).externalIcon!==!1?(f(),x(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(u).ui.icons.external,"data-slot":"childLinkLabelExternalIcon",class:q(o.value.childLinkLabelExternalIcon({class:[e(t).ui?.childLinkLabelExternalIcon,a.ui?.childLinkLabelExternalIcon],active:U}))},null,8,["name","class"])):V("",!0)],2),F.description?(f(),S("p",{key:0,"data-slot":"childLinkDescription",class:q(o.value.childLinkDescription({class:[e(t).ui?.childLinkDescription,a.ui?.childLinkDescription],active:U}))},ee(F.description),3)):V("",!0)],2)]),_:2},1040,["class"])]),_:2},1032,["active","onSelect"])]),_:2},1040)],2))),128))],2)])]),_:2},1040,["class"])):V("",!0)]),_:2},1040)):V("",!0),e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?(f(),x(e(Dt),{key:2,"data-slot":"content",class:q(o.value.content({class:[e(t).ui?.content,a.ui?.content]}))},{default:h(()=>[T(e(De),O({...e(c),defaultValue:b(a.children,k+1,$)},{as:"ul","data-slot":"childList",class:o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]})}),{default:h(()=>[(f(!0),S(j,null,ae(a.children,(A,G)=>(f(),x(e(C),{key:G,item:A,index:G,level:k+1,"list-index":$,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,A.ui?.childItem]}))},null,8,["item","index","level","list-index","class"]))),128))]),_:2},1040,["class"])]),_:2},1032,["class"])):V("",!0)]),_:2},1040,["value"]))]),_:3}),T(e(Rt),O({"data-slot":"root"},{...e(d),...e(t).orientation==="horizontal"?{modelValue:e(t).modelValue,defaultValue:e(t).defaultValue}:{},...v.$attrs},{"data-collapsed":e(t).collapsed,class:o.value.root({class:[e(t).ui?.root,e(t).class]})}),{default:h(()=>[D(v.$slots,"list-leading"),(f(!0),S(j,null,ae(R.value,(a,m)=>(f(),S(j,{key:`list-${m}`},[(f(),x(oe(e(t).orientation==="vertical"?e(De):e(Xt)),O({ref_for:!0},e(t).orientation==="vertical"&&!e(t).collapsed?{...e(c),modelValue:e(t).modelValue,defaultValue:e(t).defaultValue??b(a,0,m)}:{},{as:"ul","data-slot":"list",class:o.value.list({class:e(t).ui?.list})}),{default:h(()=>[(f(!0),S(j,null,ae(a,(k,$)=>(f(),x(e(C),{key:`list-${m}-${$}`,item:k,index:$,"list-index":m,"data-slot":"item",class:q(o.value.item({class:[e(t).ui?.item,k.ui?.item]}))},null,8,["item","index","list-index","class"]))),128))]),_:2},1040,["class"])),e(t).orientation==="vertical"&&m<R.value.length-1?(f(),S("div",{key:0,"data-slot":"separator",class:q(o.value.separator({class:e(t).ui?.separator}))},null,2)):V("",!0)],64))),128)),D(v.$slots,"list-trailing"),e(t).orientation==="horizontal"?(f(),S("div",{key:0,"data-slot":"viewportWrapper",class:q(o.value.viewportWrapper({class:e(t).ui?.viewportWrapper}))},[e(t).arrow?(f(),x(e(Ut),{key:0,"data-slot":"indicator",class:q(o.value.indicator({class:e(t).ui?.indicator}))},{default:h(()=>[Y("div",{"data-slot":"arrow",class:q(o.value.arrow({class:e(t).ui?.arrow}))},null,2)]),_:1},8,["class"])):V("",!0),T(e(ta),{"data-slot":"viewport",class:q(o.value.viewport({class:e(t).ui?.viewport}))},null,8,["class"])],2)):V("",!0)]),_:3},16,["data-collapsed","class"])],64))}});function ua(s){const{isAdmin:r}=st(),l=dt(),n=N(()=>!l.public.authEnabled||r.value),i=vt();return N(()=>{const u=n.value,d=s?ut(s):void 0;return pt.filter(c=>(!c.roles||u)&&!(i&&c.authOnly)).map(c=>{const _=d?.[c.id]??!1;return{label:c.label,icon:c.icon,to:c.to,..._?{badge:{icon:"i-lucide-lock",color:"neutral"}}:{}}})})}export{sa as _,ua as u};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as f,h as l}from"./
|
|
1
|
+
import{r as f,h as l}from"./Du2W7Jne.js";const d="piwi-diagnosis-notifications";function I(){const i=f("default"),s=new Set,t=f(!0);"Notification"in window&&(i.value=Notification.permission),localStorage.getItem(d)==="false"&&(t.value=!1);const n=l(()=>"Notification"in window),c=l(()=>n.value&&i.value==="granted"&&t.value);async function m(){if(!n.value)return;const e=await Notification.requestPermission();i.value=e}function g(){t.value=!t.value,localStorage.setItem(d,String(t.value))}function v(e,o){r({clusterId:o,summary:e.summary,rootCause:e.rootCause,category:e.category,confidence:e.confidence})}function r(e){if(!c.value||s.has(e.clusterId))return;const o=[e.summary||e.rootCause];e.category&&o.push(`Category: ${e.category}`),e.confidence&&o.push(`Confidence: ${e.confidence}`);const u=o.join(`
|
|
2
2
|
`);if(!u)return;const a=new Notification("Piwi diagnosis complete",{body:u,tag:`diagnosis-${e.clusterId}`,icon:"/logo.svg"});a.onclick=()=>{window.focus(),a.close()},s.add(e.clusterId)}return{permission:i,supported:n,active:c,requestPermission:m,toggleEnabled:g,notify:v,notifyFromPayload:r}}export{I as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as a,o,c as n,i as l,V as s,Q as i,q as m}from"./Du2W7Jne.js";const r=a({__name:"TableScroller",props:{minWidth:{},bleed:{type:Boolean,default:!0}},setup(e){return(t,c)=>(o(),n("div",{class:m(["overflow-x-auto",e.bleed?"-mx-4 px-4 sm:mx-0 sm:px-0":""])},[l("div",{style:i(e.minWidth?{minWidth:e.minWidth}:void 0)},[s(t.$slots,"default")],4)],2))}}),u=Object.assign(r,{__name:"TableScroller"});export{u as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as l}from"./
|
|
1
|
+
import{_ as l}from"./C0_yH0N7.js";import{d as a,o as i,f as c,ac as r,g as n,V as s}from"./Du2W7Jne.js";const u=a({__name:"ChartCard",props:{title:{},subtitle:{},icon:{},iconClass:{},help:{}},setup(e){return(t,m)=>{const o=l;return i(),c(o,{title:e.title,subtitle:e.subtitle,icon:e.icon,"icon-class":e.iconClass,help:e.help},r({default:n(()=>[s(t.$slots,"default")]),_:2},[t.$slots.subtitle?{name:"subtitle",fn:n(()=>[s(t.$slots,"subtitle")]),key:"0"}:void 0,t.$slots.legend||t.$slots.actions?{name:"actions",fn:n(()=>[s(t.$slots,"legend"),s(t.$slots,"actions")]),key:"1"}:void 0]),1032,["title","subtitle","icon","icon-class","help"])}}}),C=Object.assign(u,{__name:"ChartCard"});export{C as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as ut,a as dt}from"./CXEH9OPk.js";import{_ as mt,a as pt}from"./Bm62iDV5.js";import{_ as _t}from"./CjPfj7ya.js";import{_ as ft,a as gt}from"./5A6ITZXj.js";import{d as yt,e as xt,b as bt,c as l,j as o,g as s,F as R,R as vt,o as a,i as c,I as ht,m as d,y as P,f as m,_ as kt,v as _,t as y,k as i,D as jt,h as N,r as x,L as Rt}from"./Du2W7Jne.js";import{_ as $t}from"./oAClCn_h.js";import{_ as Ct}from"./BzRRzmwm.js";import{_ as Tt}from"./Bnxf8nbZ.js";import{_ as Pt}from"./DqcKngf3.js";import{_ as Nt}from"./BKkF4pPD.js";import{_ as Ut}from"./Cus22Ud3.js";import{_ as Dt}from"./CJFtzlQ4.js";import{_ as Ft}from"./Dyeqn3aG.js";import{_ as St}from"./C1gTN4Q8.js";import{_ as Bt}from"./DPCxhHri.js";import{o as Kt,s as U,_ as Lt}from"./CEfS4-oS.js";import{_ as Vt}from"./BUkim3TM.js";import{p as wt,i as b}from"./DuwtTfO8.js";import{u as w}from"./B8zkOmwo.js";import"./KyA_4Ks-.js";import"./BjaRappk.js";import"./DSqHUrvO.js";import"./BT3wGCTI.js";import"./D-c8ZSws.js";import"./B99fbi73.js";import"./AbmKWFQQ.js";import"./L3kAWB2a.js";import"./DsesNydr.js";import"./CeG9pBAD.js";import"./UdR3DBPS.js";import"./DmkUdSS4.js";const zt={class:"flex flex-wrap items-center gap-3 mb-4"},Ht={key:0,class:"flex flex-wrap items-center gap-2"},It={class:"text-sm text-muted shrink-0 inline-flex items-center gap-1"},At=["onClick"],Ot={class:"flex flex-col gap-1"},qt={class:"flex items-center gap-2"},Mt={key:0,class:"flex flex-wrap gap-1"},Et={key:0,class:"text-xs text-gray-600 italic"},Gt={key:1},Qt={key:0,class:"text-xs text-gray-600"},Xt={key:1,class:"text-xs text-gray-600 italic"},Jt={key:0,class:"flex items-center gap-1 flex-wrap"},Wt={key:0,class:"text-xs font-medium bg-gray-100 dark:bg-gray-800 px-1.5 py-0.5 rounded"},Yt={key:1,class:"text-xs text-gray-500"},Zt={key:1,class:"text-xs text-gray-600 italic"},te={key:1,class:"text-xs text-gray-600 italic"},ee={key:1,class:"text-xs text-gray-600 italic"},ae={class:"flex justify-end gap-2"},se={key:1,class:"space-y-2","aria-busy":"true"},oe={key:2,class:"text-center py-12 text-gray-500"},ne={class:"text-xs text-gray-400 max-w-sm"},le={class:"flex w-full justify-end gap-2"},ze=yt({__name:"index",setup(re){xt({title:"Projects — Piwi Dashboard"});const{data:v,refresh:D,status:z}=w("/api/projects",{key:"projects",lazy:!0,default:()=>[]},"$AIGg5yw_0K"),{data:H,refresh:I}=w("/api/tags",{lazy:!0},"$qcllBXh9C_"),F=bt(),$=N(()=>H.value?.tags||[]),A=N(()=>z.value==="pending"&&!v.value?.length),h=x(""),u=x([]),S=N(()=>{let n=v.value||[];if(h.value.trim()){const e=h.value.trim().toLowerCase();n=n.filter(p=>(p.label||p.name).toLowerCase().includes(e)||p.name.toLowerCase().includes(e))}return u.value.length>0&&(n=n.filter(e=>u.value.some(p=>(e.tags||[]).some(T=>T.id===p)))),n});function O(n){const e=u.value.indexOf(n);e===-1?u.value.push(n):u.value.splice(e,1)}function q(n){return u.value.includes(n)}const f=x(!1),M=Kt({name:U().min(1,"Project name is required").max(100),label:U().optional(),description:U().optional()}),r=Rt({name:"",label:"",description:""}),k=x([]),C=x(!1);async function E(){if(r.name?.trim())try{C.value=!0,await $fetch("/api/projects",{method:"POST",body:{name:r.name.trim(),label:r.label?.trim()||null,description:r.description?.trim()||null,tagIds:k.value.map(n=>n.id)}}),F.add({title:"Project created",description:`Project "${r.name}" has been created`,color:"success"}),f.value=!1,r.name="",r.label="",r.description="",k.value=[],await D()}catch(n){const e=n&&typeof n=="object"&&"data"in n?n.data?.message:void 0;F.add({title:"Failed to create project",description:e||"An error occurred",color:"error"})}finally{C.value=!1}}const G=[{header:"Project",columns:[{accessorKey:"name",header:b("Name")},{accessorKey:"totalRuns",header:b("Runs")}]},{accessorKey:"latestRunData",header:"Latest run",columns:[{accessorKey:"latestRun",header:b("Date")},{accessorKey:"branch",header:"Branch"},{accessorKey:"duration",header:b("Duration")},{accessorKey:"status",header:b("Status")},{accessorKey:"testRatio",header:"Test status"},{accessorKey:"report",header:"Reports"}]},{accessorKey:"actions",header:"Project actions"}];return(n,e)=>{const p=ut,T=dt,B=mt,Q=_t,X=gt,J=ht,K=$t,g=kt,L=jt,W=Ct,Y=Tt,Z=Pt,tt=Nt,et=Ut,at=Dt,V=Ft,st=pt,ot=St,nt=ft,lt=Bt,rt=Lt,it=Vt,ct=vt;return a(),l(R,null,[o(nt,{id:"projects"},{header:s(()=>[o(X,null,{leading:s(()=>[o(p),o(T,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects"}]})]),right:s(()=>[o(Q,{actions:[{label:"New project",icon:"i-lucide-plus",onClick:()=>f.value=!0},{label:"Refresh",icon:"i-lucide-refresh-cw",variant:"outline",onClick:()=>i(D)()}]},{leading:s(()=>[o(B,{topic:"projects.table",size:"sm"})]),_:1},8,["actions"])]),_:1})]),body:s(()=>[c("div",zt,[o(J,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=t=>h.value=t),icon:"i-lucide-search",placeholder:"Search projects by name...",class:"min-w-48 flex-1",ui:{base:"w-full"}},null,8,["modelValue"]),$.value.length>0?(a(),l("div",Ht,[c("span",It,[e[10]||(e[10]=d(" Filter by tag (any match): ",-1)),o(B,{topic:"projects.tag-filter"})]),(a(!0),l(R,null,P($.value,t=>(a(),l("button",{key:t.id,type:"button",class:"cursor-pointer focus:outline-none",onClick:j=>O(t.id)},[o(K,{text:t.text,color:t.color,variant:q(t.id)?"solid":"outline"},null,8,["text","color","variant"])],8,At))),128)),u.value.length>0?(a(),m(g,{key:0,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-x",label:"Clear filters",onClick:e[1]||(e[1]=t=>u.value=[])})):_("",!0)])):_("",!0)]),S.value.length>0?(a(),m(at,{key:0,"min-width":"60rem",bleed:!1},{default:s(()=>[o(et,{data:S.value,columns:G,ui:{base:"table-fixed border-separate border-spacing-0",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"}},{"name-cell":s(({row:t})=>[c("div",Ot,[c("div",qt,[o(L,{to:`/projects/${t.original.id}`,class:"text-primary hover:underline font-medium"},{default:s(()=>[d(y(t.original.label||t.original.name),1)]),_:2},1032,["to"])]),t.original.tags?.length?(a(),l("div",Mt,[(a(!0),l(R,null,P(t.original.tags,j=>(a(),m(K,{key:j.id,text:j.text,color:j.color},null,8,["text","color"]))),128))])):_("",!0)])]),"totalRuns-cell":s(({row:t})=>[t.original.totalRuns===0?(a(),l("span",Et,"No data")):(a(),l("span",Gt,y(t.original.totalRuns)+" runs",1))]),"latestRun-cell":s(({row:t})=>[t.original.latestRun?(a(),l("span",Qt,y(("prettyDateFormat"in n?n.prettyDateFormat:i(wt))(t.original.latestRun.startTime)),1)):(a(),l("span",Xt,"No data"))]),"branch-cell":s(({row:t})=>[t.original.latestRun?.metadata?.scm?(a(),l("div",Jt,[t.original.latestRun.metadata.scm.branch?(a(),l("span",Wt,y(t.original.latestRun.metadata.scm.branch),1)):_("",!0),t.original.latestRun.metadata.scm.commit?(a(),l("code",Yt,y(t.original.latestRun.metadata.scm.commit.substring(0,7)),1)):_("",!0)])):_("",!0)]),"duration-cell":s(({row:t})=>[t.original.latestRun?.duration!=null?(a(),m(W,{key:0,ms:t.original.latestRun.duration,class:"text-sm text-gray-600"},null,8,["ms"])):(a(),l("span",Zt,"No data"))]),"status-cell":s(({row:t})=>[t.original.latestRun?(a(),m(Y,{key:0,status:t.original.latestRun.status},null,8,["status"])):(a(),l("span",te,"No data"))]),"testRatio-cell":s(({row:t})=>[t.original.latestRun?(a(),m(Z,{key:0,passed:t.original.latestRun.passedTests,failed:t.original.latestRun.failedTests,skipped:t.original.latestRun.skippedTests,flaky:t.original.latestRun.flakyTests,"did-not-run":t.original.latestRun.didNotRunTests??0,total:t.original.latestRun.totalTests},null,8,["passed","failed","skipped","flaky","did-not-run","total"])):(a(),l("span",ee,"No data"))]),"report-cell":s(({row:t})=>[t.original.latestRun?(a(),m(tt,{key:0,reports:t.original.latestRun.reports},null,8,["reports"])):_("",!0)]),"actions-header":s(()=>[...e[11]||(e[11]=[c("div",{class:"text-right"},"Project actions",-1)])]),"actions-cell":s(({row:t})=>[c("div",ae,[o(g,{to:`/projects/${t.original.id}`,size:"sm",variant:"outline"},{default:s(()=>[...e[12]||(e[12]=[d("View details",-1)])]),_:1},8,["to"]),o(g,{to:`/projects/${t.original.id}/edit`,size:"sm",variant:"ghost",icon:"i-lucide-pencil"},null,8,["to"])])]),_:1},8,["data"])]),_:1})):A.value?(a(),l("div",se,[e[13]||(e[13]=c("span",{class:"sr-only",role:"status"},"Loading projects…",-1)),o(V,{class:"h-10 w-full rounded-lg"}),(a(),l(R,null,P(6,t=>o(V,{key:t,class:"h-14 w-full rounded-lg"})),64))])):i(v)&&i(v).length>0?(a(),l("div",oe,[...e[14]||(e[14]=[c("p",{class:"text-lg mb-2"},"No projects match your search",-1),c("p",{class:"text-sm"},"Try adjusting your search or filters",-1)])])):(a(),m(ot,{key:3,icon:"i-lucide-rocket",text:"No projects yet"},{default:s(()=>[c("p",ne,[e[17]||(e[17]=d(" Projects are created automatically once the reporter submits its first run — see the ",-1)),o(L,{to:"/",class:"text-primary hover:underline"},{default:s(()=>[...e[15]||(e[15]=[d("home page",-1)])]),_:1}),e[18]||(e[18]=d(" for a copy-paste setup snippet, or the ",-1)),o(st,{to:"reporter","no-icon":"",class:"text-primary hover:underline"},{default:s(()=>[...e[16]||(e[16]=[d("reporter docs",-1)])]),_:1}),e[19]||(e[19]=d(". ",-1))]),o(g,{icon:"i-lucide-plus",label:"New project",variant:"ghost",size:"sm",class:"mt-2",onClick:e[2]||(e[2]=t=>f.value=!0)})]),_:1}))]),_:1}),o(ct,null,{default:s(()=>[o(it,{open:f.value,title:"Create new project","onUpdate:open":e[9]||(e[9]=t=>f.value=t)},{body:s(()=>[o(rt,{schema:i(M),state:i(r)},{default:s(()=>[o(lt,{mode:"create",name:i(r).name,"onUpdate:name":e[3]||(e[3]=t=>i(r).name=t),label:i(r).label,"onUpdate:label":e[4]||(e[4]=t=>i(r).label=t),description:i(r).description,"onUpdate:description":e[5]||(e[5]=t=>i(r).description=t),tags:k.value,"onUpdate:tags":e[6]||(e[6]=t=>k.value=t),"all-tags":$.value,onTagCreated:e[7]||(e[7]=t=>i(I)())},null,8,["name","label","description","tags","all-tags"])]),_:1},8,["schema","state"])]),footer:s(()=>[c("div",le,[o(g,{color:"neutral",variant:"ghost",label:"Cancel",onClick:e[8]||(e[8]=t=>f.value=!1)}),o(g,{label:"Create project",icon:"i-lucide-plus",loading:C.value,onClick:E},null,8,["loading"])])]),_:1},8,["open"])]),_:1})],64)}}});export{ze as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as D,U as Z,o as r,f as x,g as d,V as F,m as S,W as Q,k as e,X as H,Y as He,Z as We,h as k,$ as Xe,a0 as Ye,a1 as Je,t as P,c as I,i as f,Q as ce,q as L,j as i,p as ee,F as A,y as oe,s as qe,D as Se,v as B,_ as G,r as w,a2 as et,a3 as tt,a4 as at,a5 as st,a6 as lt,a7 as nt,a8 as ot,u as it,a as rt,A as ut,H as ae,I as dt,l as se,a9 as Re,aa as de}from"./Du2W7Jne.js";import{_ as ct}from"./A1pj0VnG.js";import{_ as pt}from"./4gYNA-d4.js";import{_ as ft}from"./CzAPFPpL.js";import{_ as gt}from"./CAvY22RE.js";import{_ as mt}from"./C1gTN4Q8.js";import{_ as vt}from"./BrQEE053.js";import{_ as ze}from"./DqcKngf3.js";import{_ as Ie}from"./BzRRzmwm.js";import{k as pe,l as fe,p as ge,f as me,g as _t,t as yt}from"./DuwtTfO8.js";import{_ as bt}from"./CA9B2HE5.js";import{_ as ht}from"./DJmoLeVt.js";import{_ as xt}from"./Cus22Ud3.js";import{_ as kt}from"./C0_yH0N7.js";import{u as Ct}from"./DeY2JkR2.js";import{u as Pt}from"./B8zkOmwo.js";var Rt=D({__name:"PaginationEllipsis",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const c=u;return Z(),(s,_)=>(r(),x(e(H),Q(c,{"data-type":"ellipsis"}),{default:d(()=>[F(s.$slots,"default",{},()=>[_[0]||(_[0]=S("…"))])]),_:3},16))}}),$t=Rt;const[te,qt]=Xe("PaginationRoot");var St=D({__name:"PaginationRoot",props:{page:{type:Number,required:!1},defaultPage:{type:Number,required:!1,default:1},itemsPerPage:{type:Number,required:!0},total:{type:Number,required:!1,default:0},siblingCount:{type:Number,required:!1,default:2},disabled:{type:Boolean,required:!1},showEdges:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"nav"}},emits:["update:page"],setup(u,{emit:c}){const s=u,_=c,{siblingCount:m,disabled:t,showEdges:C}=He(s);Z();const b=We(s,"page",_,{defaultValue:s.defaultPage,passive:s.page===void 0}),T=k(()=>Math.max(1,Math.ceil(s.total/(s.itemsPerPage||1))));return qt({page:b,onPageChange(z){b.value=z},pageCount:T,siblingCount:m,disabled:t,showEdges:C}),(z,E)=>(r(),x(e(H),{as:z.as,"as-child":z.asChild},{default:d(()=>[F(z.$slots,"default",{page:e(b),pageCount:T.value})]),_:3},8,["as","as-child"]))}}),zt=St,It=D({__name:"PaginationFirst",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u,s=te();Z();const _=k(()=>s.page.value===1||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"First Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=S("First page"))])]),_:3},16,["type","disabled"]))}}),Lt=It,Nt=D({__name:"PaginationLast",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u,s=te();Z();const _=k(()=>s.page.value===s.pageCount.value||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Last Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).pageCount.value))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=S("Last page"))])]),_:3},16,["type","disabled"]))}}),Tt=Nt;function K(u,c){const s=c-u+1;return Array.from({length:s},(_,m)=>m+u)}function jt(u){return u.map(c=>typeof c=="number"?{type:"page",value:c}:{type:"ellipsis"})}const ne="ellipsis";function Ft(u,c,s,_){const t=c,C=Math.max(u-s,1),b=Math.min(u+s,t);if(_){const z=Math.min(2*s+5,c)-2,E=C>3&&Math.abs(t-z-1+1)>2&&Math.abs(C-1)>2,V=b<t-2&&Math.abs(t-z)>2&&Math.abs(t-b)>2;if(!E&&V)return[...K(1,z),ne,t];if(E&&!V){const l=K(t-z+1,t);return[1,ne,...l]}if(E&&V){const l=K(C,b);return[1,ne,...l,ne,t]}return K(1,t)}else{const T=s*2+1;return c<T?K(1,t):u<=s+1?K(1,T):c-u<=s?K(c-T+1,t):K(C,b)}}var wt=D({__name:"PaginationList",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const c=u;Z();const s=te(),_=k(()=>jt(Ft(s.page.value,s.pageCount.value,s.siblingCount.value,s.showEdges.value)));return(m,t)=>(r(),x(e(H),Ye(Je(c)),{default:d(()=>[F(m.$slots,"default",{items:_.value})]),_:3},16))}}),Bt=wt,Dt=D({__name:"PaginationListItem",props:{value:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===c.value),m=k(()=>s.disabled.value);return(t,C)=>(r(),x(e(H),Q(c,{"data-type":"page","aria-label":`Page ${t.value}`,"aria-current":_.value?"page":void 0,"data-selected":_.value?"true":void 0,disabled:m.value,type:t.as==="button"?"button":void 0,onClick:C[0]||(C[0]=b=>!m.value&&e(s).onPageChange(t.value))}),{default:d(()=>[F(t.$slots,"default",{},()=>[S(P(t.value),1)])]),_:3},16,["aria-label","aria-current","data-selected","disabled","type"]))}}),Et=Dt,Vt=D({__name:"PaginationNext",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===s.pageCount.value||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Next Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).page.value+1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=S("Next page"))])]),_:3},16,["type","disabled"]))}}),Mt=Vt,At=D({__name:"PaginationPrev",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(u){const c=u;Z();const s=te(),_=k(()=>s.page.value===1||s.disabled.value);return(m,t)=>(r(),x(e(H),Q(c,{"aria-label":"Previous Page",type:m.as==="button"?"button":void 0,disabled:_.value,onClick:t[0]||(t[0]=C=>!_.value&&e(s).onPageChange(e(s).page.value-1))}),{default:d(()=>[F(m.$slots,"default",{},()=>[t[1]||(t[1]=S("Prev page"))])]),_:3},16,["type","disabled"]))}}),Ut=At;const Ot=["title"],Kt={class:"h-1.5 w-14 shrink-0 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700"},Gt={class:"text-sm font-medium tabular-nums"},Qt={key:1,class:"text-sm text-muted",title:"No executed runs yet"},Zt=D({__name:"PassRateIndicator",props:{rate:{}},setup(u){const c=u,s=k(()=>c.rate==null?null:Math.round(c.rate*100)),_=k(()=>s.value==null?"":s.value>=80?"bg-green-500":s.value>=50?"bg-amber-500":"bg-red-500");return(m,t)=>e(s)!=null?(r(),I("div",{key:0,class:"flex items-center gap-2",title:`${e(s)}% of executed runs passed`},[f("div",Kt,[f("div",{class:L([e(_),"h-full rounded-full transition-all"]),style:ce({width:`${e(s)}%`})},null,6)]),f("span",Gt,P(e(s))+"%",1)],8,Ot)):(r(),I("span",Qt,"—"))}}),Le=Object.assign(Zt,{__name:"PassRateIndicator"}),Ht={class:"rounded-lg border border-default bg-default text-sm"},Wt={class:"flex items-center justify-end px-3 py-1.5 border-b border-default bg-elevated"},Xt=["disabled","title"],Yt=["onClick"],Jt={class:"text-xs text-muted tabular-nums shrink-0"},ea={class:"w-24 sm:w-32 shrink-0 max-sm:hidden"},ta={class:"flex items-center gap-3 shrink-0"},aa=["title"],sa=["title"],la={key:0,class:"text-center py-8 text-muted"},na=D({__name:"ProjectTestCasesTree",props:{items:{},hasFilter:{type:Boolean}},setup(u){const c=u;function s(l){return(l.suitePath||"").split("").filter(Boolean)}function _(l){const n={passed:0,failed:0,skipped:0,flaky:0,didNotRun:0,total:0,cases:l.length};for(const v of l)n.passed+=v.passedRuns,n.failed+=v.failedRuns,n.skipped+=v.skippedRuns,n.flaky+=v.flakyRuns,n.didNotRun+=v.didNotRunRuns,n.total+=v.totalRuns;return n}const m=w(new Set),t=k(()=>m.value.size===0);function C(l){return c.hasFilter?!0:!m.value.has(l)}function b(l){if(c.hasFilter)return;const n=new Set(m.value);n.has(l)?n.delete(l):n.add(l),m.value=n}function T(){const l=new Set;for(const n of c.items){l.add(`file:${n.filePath}`);const v=s(n);for(let y=1;y<=v.length;y++)l.add(`group:${n.filePath}${v.slice(0,y).join("")}`)}return[...l]}function z(){m.value=new Set(T())}function E(){m.value=new Set}function V(l,n,v,y,h){const $=n.filter(R=>s(R).length===y.length),q=n.filter(R=>s(R).length>y.length),j=new Map;for(const R of q){const o=s(R)[y.length];j.has(o)||j.set(o,[]),j.get(o).push(R)}for(const[R,o]of j){const W=[...y,R],N=`group:${v}${W.join("")}`;l.push({kind:"group",depth:h,key:N,label:R,agg:_(o)}),C(N)&&V(l,o,v,W,h+1)}for(const R of $)l.push({kind:"case",depth:h,key:`case:${R.id}`,testCase:R})}const U=k(()=>{const l=[],n=new Map;for(const v of c.items){const y=v.filePath||"unknown";n.has(y)||n.set(y,[]),n.get(y).push(v)}for(const[v,y]of[...n.entries()].sort(([h],[$])=>h.localeCompare($))){const h=`file:${v}`;l.push({kind:"group",depth:0,key:h,label:v,agg:_(y)}),C(h)&&V(l,y,v,[],1)}return l});return(l,n)=>{const v=ee,y=ze,h=qe,$=Se,q=Le,j=Ie,R=G;return r(),I("div",Ht,[f("div",Wt,[f("button",{class:L(["flex items-center gap-1 text-xs transition-colors",u.hasFilter?"text-muted cursor-not-allowed opacity-50":"text-muted hover:text-default"]),disabled:u.hasFilter,title:u.hasFilter?"Clear filters to collapse/expand":e(t)?"Collapse all":"Expand all",onClick:n[0]||(n[0]=o=>e(t)?z():E())},[i(v,{name:e(t)?"i-lucide-fold-vertical":"i-lucide-unfold-vertical",class:"size-3.5"},null,8,["name"]),S(" "+P(e(t)?"Collapse all":"Expand all"),1)],10,Xt)]),(r(!0),I(A,null,oe(e(U),o=>(r(),I(A,{key:o.key},[o.kind==="group"?(r(),I("div",{key:0,class:L(["flex items-center gap-2 py-2 pr-3 border-b border-default last:border-b-0 select-none",[o.depth===0?"bg-elevated":"bg-default",!u.hasFilter&&"cursor-pointer"]]),style:ce({paddingLeft:`${o.depth*20+12}px`}),onClick:W=>b(o.key)},[i(v,{name:C(o.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 text-muted shrink-0"},null,8,["name"]),i(v,{name:o.depth===0?"i-lucide-file-code-2":"i-lucide-folder-open",class:L(["size-4 shrink-0",o.depth===0?"text-blue-500":"text-amber-500"])},null,8,["name","class"]),f("span",{class:L(["font-medium truncate min-w-0",[o.depth===0?"text-default font-mono text-xs sm:text-sm":"text-muted"]])},P(o.label),3),f("span",Jt,P(o.agg.cases)+" "+P(o.agg.cases===1?"case":"cases"),1),n[1]||(n[1]=f("div",{class:"flex-1"},null,-1)),f("div",ea,[i(y,{passed:o.agg.passed,failed:o.agg.failed,skipped:o.agg.skipped,flaky:o.agg.flaky,"did-not-run":o.agg.didNotRun,total:o.agg.total},null,8,["passed","failed","skipped","flaky","did-not-run","total"])])],14,Yt)):(r(),I("div",{key:1,class:"flex flex-wrap items-center gap-x-2 gap-y-1 pr-3 py-1.5 border-b border-default last:border-b-0 hover:bg-gray-50 dark:hover:bg-gray-900/40 transition-colors",style:ce({paddingLeft:`${o.depth*20+12}px`})},[i(v,{name:"i-lucide-flask-conical",class:"size-3.5 text-muted shrink-0"}),i(h,{color:("testCaseCategoryColor"in l?l.testCaseCategoryColor:e(fe))(o.testCase.status),size:"xs",variant:"subtle",class:"capitalize shrink-0"},{default:d(()=>[S(P(("formatStatusLabel"in l?l.formatStatusLabel:e(pe))(o.testCase.status)),1)]),_:2},1032,["color"]),i($,{to:`/test-cases/${o.testCase.id}`,class:"text-sm text-primary hover:underline truncate flex-1 min-w-32",title:o.testCase.title},{default:d(()=>[S(P(o.testCase.title),1)]),_:2},1032,["to","title"]),f("div",ta,[i(q,{rate:o.testCase.passRate},null,8,["rate"]),f("span",{class:"text-xs text-muted tabular-nums max-sm:hidden",title:`${o.testCase.totalRuns} runs`},P(o.testCase.totalRuns)+"× ",9,aa),o.testCase.avgDuration!=null?(r(),x(j,{key:0,ms:o.testCase.avgDuration,class:"text-xs text-muted max-sm:hidden"},null,8,["ms"])):B("",!0),f("span",{class:"text-xs text-muted max-sm:hidden",title:("prettyDateFormat"in l?l.prettyDateFormat:e(ge))(o.testCase.lastRun)},P(("formatRelativeTime"in l?l.formatRelativeTime:e(me))(o.testCase.lastRun)),9,sa),i(R,{to:`/test-cases/${o.testCase.id}`,size:"xs",variant:"outline"},{default:d(()=>[...n[2]||(n[2]=[S("View",-1)])]),_:1},8,["to"])])],4))],64))),128)),e(U).length===0?(r(),I("div",la,[i(v,{name:"i-lucide-search-x",class:"size-6 mx-auto mb-2 text-gray-300 dark:text-gray-600"}),n[3]||(n[3]=f("p",{class:"text-sm"},"No test cases match your filters.",-1))])):B("",!0)])}}}),oa=Object.assign(na,{__name:"ProjectTestCasesTree"}),ia={slots:{root:"",list:"flex items-center gap-1",ellipsis:"pointer-events-none",label:"min-w-5 text-center",first:"",prev:"",item:"",next:"",last:""}},ra={__name:"UPagination",props:{as:{type:null,required:!1},firstIcon:{type:null,required:!1},prevIcon:{type:null,required:!1},nextIcon:{type:null,required:!1},lastIcon:{type:null,required:!1},ellipsisIcon:{type:null,required:!1},color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"outline"},activeColor:{type:null,required:!1,default:"primary"},activeVariant:{type:null,required:!1,default:"solid"},showControls:{type:Boolean,required:!1,default:!0},size:{type:null,required:!1},to:{type:Function,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultPage:{type:Number,required:!1},disabled:{type:Boolean,required:!1},itemsPerPage:{type:Number,required:!1,default:10},page:{type:Number,required:!1},showEdges:{type:Boolean,required:!1,default:!1},siblingCount:{type:Number,required:!1,default:2},total:{type:Number,required:!1,default:0}},emits:["update:page"],setup(u,{emit:c}){const s=u,_=c,m=et(),t=tt("pagination",s),{dir:C}=at(),b=st(),T=lt(nt(t,"as","defaultPage","disabled","itemsPerPage","page","showEdges","siblingCount","total"),_),z=k(()=>t.firstIcon||(C.value==="rtl"?b.ui.icons.chevronDoubleRight:b.ui.icons.chevronDoubleLeft)),E=k(()=>t.prevIcon||(C.value==="rtl"?b.ui.icons.chevronRight:b.ui.icons.chevronLeft)),V=k(()=>t.nextIcon||(C.value==="rtl"?b.ui.icons.chevronLeft:b.ui.icons.chevronRight)),U=k(()=>t.lastIcon||(C.value==="rtl"?b.ui.icons.chevronDoubleLeft:b.ui.icons.chevronDoubleRight)),l=k(()=>ot({extend:ia,...b.ui?.pagination||{}})());return(n,v)=>(r(),x(e(zt),Q(e(T),{"data-slot":"root",class:l.value.root({class:[e(t).ui?.root,e(t).class]})}),{default:d(({page:y,pageCount:h})=>[i(e(Bt),{"data-slot":"list",class:L(l.value.list({class:e(t).ui?.list}))},{default:d(({items:$})=>[e(t).showControls||m.first?(r(),x(e(Lt),{key:0,"as-child":"","data-slot":"first",class:L(l.value.first({class:e(t).ui?.first}))},{default:d(()=>[F(n.$slots,"first",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:z.value,to:e(t).to?.(1)},null,8,["color","variant","size","icon","to"])])]),_:3},8,["class"])):B("",!0),e(t).showControls||m.prev?(r(),x(e(Ut),{key:1,"as-child":"","data-slot":"prev",class:L(l.value.prev({class:e(t).ui?.prev}))},{default:d(()=>[F(n.$slots,"prev",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:E.value,to:y>1?e(t).to?.(y-1):void 0},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0),(r(!0),I(A,null,oe($,(q,j)=>(r(),I(A,{key:j},[q.type==="page"?(r(),x(e(Et),{key:0,"as-child":"",value:q.value,"data-slot":"item",class:L(l.value.item({class:e(t).ui?.item}))},{default:d(()=>[F(n.$slots,"item",Q({ref_for:!0},{item:q,index:j,page:y,pageCount:h}),()=>[i(G,{color:y===q.value?e(t).activeColor:e(t).color,variant:y===q.value?e(t).activeVariant:e(t).variant,size:e(t).size,label:String(q.value),ui:{label:l.value.label()},to:e(t).to?.(q.value),square:""},null,8,["color","variant","size","label","ui","to"])])]),_:2},1032,["value","class"])):(r(),x(e($t),{key:1,"as-child":"","data-slot":"ellipsis",class:L(l.value.ellipsis({class:e(t).ui?.ellipsis}))},{default:d(()=>[F(n.$slots,"ellipsis",{ui:l.value},()=>[i(G,{as:"div",color:e(t).color,variant:e(t).variant,size:e(t).size,icon:e(t).ellipsisIcon||e(b).ui.icons.ellipsis},null,8,["color","variant","size","icon"])])]),_:3},8,["class"]))],64))),128)),e(t).showControls||m.next?(r(),x(e(Mt),{key:2,"as-child":"","data-slot":"next",class:L(l.value.next({class:e(t).ui?.next}))},{default:d(()=>[F(n.$slots,"next",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:V.value,to:y<h?e(t).to?.(y+1):void 0},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0),e(t).showControls||m.last?(r(),x(e(Tt),{key:3,"as-child":"","data-slot":"last",class:L(l.value.last({class:e(t).ui?.last}))},{default:d(()=>[F(n.$slots,"last",{},()=>[i(G,{color:e(t).color,variant:e(t).variant,size:e(t).size,icon:U.value,to:e(t).to?.(h)},null,8,["color","variant","size","icon","to"])])]),_:2},1032,["class"])):B("",!0)]),_:2},1032,["class"])]),_:3},16,["class"]))}},ua={class:"flex items-center rounded-md border border-default overflow-hidden"},da={class:"text-sm text-muted tabular-nums"},ca={class:"flex flex-wrap items-center gap-1"},pa=["aria-pressed","onClick"],fa={class:"mt-3 flex items-center justify-center gap-2"},ga={class:"hidden md:block overflow-x-auto"},ma={class:"min-w-0 space-y-0.5"},va={class:"flex items-center gap-1 text-xs text-muted"},_a={class:"text-sm tabular-nums"},ya=["title"],ba={class:"flex justify-end"},ha={class:"space-y-2 md:hidden"},xa={class:"flex items-start justify-between gap-2"},ka={class:"flex items-center gap-1 text-xs text-muted min-w-0"},Ca={class:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},Pa={class:"text-xs text-muted tabular-nums"},Ra=["title"],$a={class:"mt-4 flex flex-wrap items-center justify-between gap-3"},qa={class:"flex flex-wrap items-center gap-3"},Sa={class:"text-sm text-muted tabular-nums"},za={class:"flex items-center gap-1.5"},Ia=1e3,$e=25,La=D({__name:"ProjectTestCasesTable",props:{projectId:{},projectName:{},syncQuery:{type:Boolean}},emits:["total"],setup(u,{expose:c,emit:s}){const _=u,m=s,t=it(),C=rt(),{treeView:b,setTreeView:T}=Ct("project-test-cases"),z=[{label:"10 / page",value:10},{label:"25 / page",value:25},{label:"50 / page",value:50},{label:"100 / page",value:100}],E=[{label:"Last 7 days",value:7},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90},{label:"Last year",value:365},{label:"All time",value:0}],V=[{label:"Passed",value:"passed",color:"green"},{label:"Failed",value:"failed",color:"red"},{label:"Flaky",value:"flaky",color:"orange"},{label:"Skipped",value:"skipped",color:"gray"},{label:"Didn't run",value:"didnotrun",color:"amber"}],U=ut().public.demoMode?0:30,l=_.syncQuery?t.query:{},n=w(Math.max(1,Number(l.page)||1)),v=w(typeof l.q=="string"?l.q:""),y=w(v.value),h=w(typeof l.status=="string"?l.status.split(",").filter(Boolean):[]),$=w(typeof l.age=="string"&&l.age!==""?Math.max(0,Number(l.age)||0):U),q=w(typeof l.tags=="string"?l.tags:""),j=w(q.value),R=w(typeof l.sort=="string"?l.sort:"lastRun"),o=w(l.dir==="asc"?"asc":"desc"),W=Number(l.pageSize),N=w(z.some(p=>p.value===W)?W:$e);ae(y,Re(p=>{v.value=p.trim()},300)),ae(j,Re(p=>{q.value=p.trim()},300)),ae([v,h,q,$,R,o,N,b],()=>{n.value=1});const Ne=k(()=>({limit:b.value?Ia:N.value,offset:b.value?0:(n.value-1)*N.value,...v.value?{q:v.value}:{},...h.value.length>0?{status:h.value.join(",")}:{},...q.value?{tags:q.value}:{},maxAgeDays:$.value,sort:R.value,dir:o.value})),{data:X,status:ie,error:ve,refresh:re}=Pt(`/api/projects/${_.projectId}/test-cases`,{query:Ne},"$6hxagaRDEc");ae(()=>X.value?.total,p=>{p!=null&&m("total",p)},{immediate:!0}),_.syncQuery&&ae([v,h,q,$,R,o,n,N],()=>{C.replace({query:{...t.query,q:v.value||void 0,status:h.value.length>0?h.value.join(","):void 0,tags:q.value||void 0,age:$.value!==U?String($.value):void 0,sort:R.value!=="lastRun"?R.value:void 0,dir:o.value!=="desc"?o.value:void 0,page:n.value>1?String(n.value):void 0,pageSize:N.value!==$e?String(N.value):void 0}})});function Te(p){h.value=h.value.includes(p)?h.value.filter(g=>g!==p):[...h.value,p]}function je(p){R.value===p?o.value=o.value==="asc"?"desc":"asc":(R.value=p,o.value=p==="title"?"asc":"desc")}function Y(p,g){return()=>{const O=R.value===g,le=O?o.value==="asc"?"i-lucide-chevron-up":"i-lucide-chevron-down":"i-lucide-chevrons-up-down";return de("button",{type:"button",class:"flex items-center gap-1 font-semibold select-none cursor-pointer hover:text-highlighted transition-colors",onClick:()=>je(g)},[p,de(ee,{name:le,class:["shrink-0 size-3.5",!O&&"opacity-40"]})])}}const Fe=k(()=>[{accessorKey:"title",header:Y("Test case","title")},{accessorKey:"status",header:Y("Status","status")},{accessorKey:"totalRuns",header:Y("Runs","totalRuns")},{accessorKey:"passRate",header:Y("Pass rate","passRate")},{id:"results",header:"Results"},{accessorKey:"avgDuration",header:Y("Avg duration","avgDuration")},{accessorKey:"lastRun",header:Y("Last run","lastRun")},{id:"actions",header:()=>de("div",{class:"text-right"},"Actions")}]),J=k(()=>X.value?.items??[]),M=k(()=>X.value?.total??0),we=k(()=>M.value===0?0:(n.value-1)*N.value+1),Be=k(()=>b.value?J.value.length:Math.min(n.value*N.value,M.value)),ue=k(()=>v.value!==""||h.value.length>0),De=k(()=>ue.value||$.value!==0),Ee=k(()=>ie.value==="pending"&&!X.value);return c({refresh:re}),(p,g)=>{const O=G,le=dt,_e=ct,Ve=pt,Me=ft,Ae=gt,ye=mt,Ue=vt,Oe=oa,be=Se,Ke=bt,he=ht,xe=qe,ke=Le,Ce=ze,Pe=Ie,Ge=xt,Qe=ra,Ze=kt;return r(),x(Ze,{title:"Test cases",icon:"i-lucide-flask-conical",count:e(X)?.total,help:"project.test-cases"},{actions:d(()=>[i(O,{icon:"i-lucide-refresh-cw",size:"sm",color:"neutral",variant:"ghost","aria-label":"Refresh test cases",loading:e(ie)==="pending"&&!!e(X),onClick:g[0]||(g[0]=()=>e(re)())},null,8,["loading"])]),default:d(()=>[i(Ve,{class:"mb-4"},{start:d(()=>[f("div",ua,[f("button",{type:"button",class:L(["px-2 py-1 text-xs transition-colors",e(b)?"text-muted hover:bg-elevated/60":"bg-primary text-white dark:text-white"]),title:"Flat list",onClick:g[1]||(g[1]=a=>e(T)(!1))},[i(e(ee),{name:"i-lucide-list",class:"size-3.5"})],2),f("button",{type:"button",class:L(["px-2 py-1 text-xs transition-colors",e(b)?"bg-primary text-white dark:text-white":"text-muted hover:bg-elevated/60"]),title:"Tree view",onClick:g[2]||(g[2]=a=>e(T)(!0))},[i(e(ee),{name:"i-lucide-folder-tree",class:"size-3.5"})],2)]),f("span",da,P(e(M))+" "+P(e(M)===1?"case":"cases"),1)]),default:d(()=>[i(le,{modelValue:e(y),"onUpdate:modelValue":g[3]||(g[3]=a=>se(y)?y.value=a:null),placeholder:"Search title or file...",icon:"i-lucide-search",size:"sm",class:"min-w-48 max-sm:flex-1","aria-label":"Search test cases"},null,8,["modelValue"]),i(le,{modelValue:e(j),"onUpdate:modelValue":g[4]||(g[4]=a=>se(j)?j.value=a:null),placeholder:"Tags (comma-separated)…",icon:"i-lucide-tag",size:"sm",class:"min-w-44 max-sm:flex-1","aria-label":"Filter by tag",title:"Show only cases carrying every listed tag. A leading @ is optional."},null,8,["modelValue"]),f("div",ca,[(r(),I(A,null,oe(V,a=>f("button",{key:a.value,type:"button",class:L(["inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors whitespace-nowrap",e(h).includes(a.value)?a.color==="green"?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":a.color==="red"?"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400":a.color==="orange"?"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400":a.color==="amber"?"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400":"bg-gray-200 text-gray-700 dark:bg-gray-700 dark:text-gray-300":"bg-gray-100 text-gray-500 dark:bg-gray-800 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700"]),"aria-pressed":e(h).includes(a.value),onClick:Na=>Te(a.value)},[f("span",{class:L(["size-2 rounded-full shrink-0",a.color==="green"?"bg-green-500":a.color==="red"?"bg-red-500":a.color==="orange"?"bg-orange-500":a.color==="amber"?"bg-amber-500":"bg-gray-400"])},null,2),S(" "+P(a.label),1)],10,pa)),64))]),i(_e,{modelValue:e($),"onUpdate:modelValue":g[5]||(g[5]=a=>se($)?$.value=a:null),items:E,size:"sm",class:"w-36","aria-label":"Last run age filter"},null,8,["modelValue"])]),_:1}),e(Ee)?(r(),x(Me,{key:0,text:"Loading test cases..."})):e(ve)?(r(),x(Ae,{key:1,text:("errorMessage"in p?p.errorMessage:e(_t))(e(ve),"Failed to load test cases")},{action:d(()=>[i(O,{size:"sm",variant:"outline",onClick:g[6]||(g[6]=()=>e(re)())},{default:d(()=>[...g[11]||(g[11]=[S("Retry",-1)])]),_:1})]),_:1},8,["text"])):e(M)===0?(r(),I(A,{key:2},[e(De)?(r(),x(ye,{key:1,icon:"i-lucide-search-x",text:"No test cases match your filters."},{default:d(()=>[f("div",fa,[e($)!==0?(r(),x(O,{key:0,size:"sm",variant:"outline",onClick:g[7]||(g[7]=a=>$.value=0)},{default:d(()=>[...g[12]||(g[12]=[S("Show all time",-1)])]),_:1})):B("",!0),e(ue)?(r(),x(O,{key:1,size:"sm",variant:"ghost",onClick:g[8]||(g[8]=()=>{y.value="",v.value="",h.value=[]})},{default:d(()=>[...g[13]||(g[13]=[S(" Clear filters ",-1)])]),_:1})):B("",!0)])]),_:1})):(r(),x(ye,{key:0,icon:"i-lucide-flask-conical",text:"No test cases yet for this project."}))],64)):(r(),I("div",{key:3,class:L([{"opacity-60 pointer-events-none":e(ie)==="pending"},"transition-opacity"])},[e(b)?(r(),I(A,{key:0},[e(J).length<e(M)?(r(),x(Ue,{key:0,color:"warning",variant:"subtle",icon:"i-lucide-triangle-alert",class:"mb-3",title:`Showing the first ${e(J).length} of ${e(M)} cases — narrow the search or filters to see the rest.`},null,8,["title"])):B("",!0),i(Oe,{items:e(J),"has-filter":e(ue)},null,8,["items","has-filter"])],64)):(r(),I(A,{key:1},[f("div",ga,[i(Ge,{data:e(J),columns:e(Fe),ui:{base:"w-full table-fixed border-separate border-spacing-0 min-w-[56rem]",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0 [&>tr]:hover:bg-gray-50 dark:[&>tr]:hover:bg-gray-900/50",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"title-cell":d(({row:a})=>[f("div",ma,[i(be,{to:`/test-cases/${a.original.id}`,class:"text-sm font-medium text-primary hover:underline truncate block",title:a.original.title},{default:d(()=>[S(P(a.original.title),1)]),_:2},1032,["to","title"]),i(Ke,{tags:a.original.tags,meta:{owner:a.original.owner??void 0,priority:("toTestPriority"in p?p.toTestPriority:e(yt))(a.original.priority),feature:a.original.feature??void 0,link:a.original.link??void 0},"max-tags":4},null,8,["tags","meta"]),f("div",va,[i(e(ee),{name:"i-lucide-file-code",class:"size-3 shrink-0"}),i(he,{"file-path":a.original.filePath,"project-key":u.projectId,"project-name":u.projectName,class:"min-w-0"},null,8,["file-path","project-key","project-name"])])])]),"status-cell":d(({row:a})=>[i(xe,{color:("testCaseCategoryColor"in p?p.testCaseCategoryColor:e(fe))(a.original.status),variant:"subtle",size:"sm",class:"capitalize"},{default:d(()=>[S(P(("formatStatusLabel"in p?p.formatStatusLabel:e(pe))(a.original.status)),1)]),_:2},1032,["color"])]),"totalRuns-cell":d(({row:a})=>[f("span",_a,P(a.original.totalRuns),1)]),"passRate-cell":d(({row:a})=>[i(ke,{rate:a.original.passRate},null,8,["rate"])]),"results-cell":d(({row:a})=>[i(Ce,{passed:a.original.passedRuns,failed:a.original.failedRuns,skipped:a.original.skippedRuns,flaky:a.original.flakyRuns,"did-not-run":a.original.didNotRunRuns,total:a.original.totalRuns},null,8,["passed","failed","skipped","flaky","did-not-run","total"])]),"avgDuration-cell":d(({row:a})=>[i(Pe,{ms:a.original.avgDuration,class:"text-sm text-muted"},null,8,["ms"])]),"lastRun-cell":d(({row:a})=>[f("span",{class:"text-sm text-muted",title:("prettyDateFormat"in p?p.prettyDateFormat:e(ge))(a.original.lastRun)},P(a.original.lastRun!=null?("formatRelativeTime"in p?p.formatRelativeTime:e(me))(a.original.lastRun):"—"),9,ya)]),"actions-cell":d(({row:a})=>[f("div",ba,[i(O,{to:`/test-cases/${a.original.id}`,size:"sm",variant:"outline","trailing-icon":"i-lucide-arrow-right"},{default:d(()=>[...g[14]||(g[14]=[S(" View ",-1)])]),_:1},8,["to"])])]),_:1},8,["data","columns"])]),f("div",ha,[(r(!0),I(A,null,oe(e(J),a=>(r(),I("div",{key:a.id,class:"rounded-lg border border-default p-3 space-y-2"},[f("div",xa,[i(be,{to:`/test-cases/${a.id}`,class:"text-sm font-medium text-primary hover:underline min-w-0 truncate",title:a.title},{default:d(()=>[S(P(a.title),1)]),_:2},1032,["to","title"]),i(xe,{color:("testCaseCategoryColor"in p?p.testCaseCategoryColor:e(fe))(a.status),variant:"subtle",size:"sm",class:"capitalize shrink-0"},{default:d(()=>[S(P(("formatStatusLabel"in p?p.formatStatusLabel:e(pe))(a.status)),1)]),_:2},1032,["color"])]),f("div",ka,[i(e(ee),{name:"i-lucide-file-code",class:"size-3 shrink-0"}),i(he,{"file-path":a.filePath,"project-key":u.projectId,"project-name":u.projectName,class:"min-w-0"},null,8,["file-path","project-key","project-name"])]),i(Ce,{passed:a.passedRuns,failed:a.failedRuns,skipped:a.skippedRuns,flaky:a.flakyRuns,"did-not-run":a.didNotRunRuns,total:a.totalRuns},null,8,["passed","failed","skipped","flaky","did-not-run","total"]),f("div",Ca,[i(ke,{rate:a.passRate},null,8,["rate"]),f("span",Pa,P(a.totalRuns)+" runs",1),a.avgDuration!=null?(r(),x(Pe,{key:0,ms:a.avgDuration,class:"text-xs text-muted"},null,8,["ms"])):B("",!0),f("span",{class:"text-xs text-muted",title:("prettyDateFormat"in p?p.prettyDateFormat:e(ge))(a.lastRun)},P(a.lastRun!=null?("formatRelativeTime"in p?p.formatRelativeTime:e(me))(a.lastRun):"—"),9,Ra)])]))),128))]),f("div",$a,[f("div",qa,[f("span",Sa,"Showing "+P(e(we))+"–"+P(e(Be))+" of "+P(e(M)),1),f("div",za,[g[15]||(g[15]=f("span",{class:"text-sm text-muted"},"Rows per page",-1)),i(_e,{modelValue:e(N),"onUpdate:modelValue":g[9]||(g[9]=a=>se(N)?N.value=a:null),items:z,size:"sm",class:"w-28","aria-label":"Rows per page"},null,8,["modelValue"])])]),e(M)>e(N)?(r(),x(Qe,{key:0,page:e(n),"onUpdate:page":g[10]||(g[10]=a=>se(n)?n.value=a:null),total:e(M),"items-per-page":e(N),size:"sm"},null,8,["page","total","items-per-page"])):B("",!0)])],64))],2))]),_:1},8,["count"])}}}),Ha=Object.assign(La,{__name:"ProjectTestCasesTable"});export{Ha as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a3 as S,a6 as V,b1 as P,a4 as A,a5 as B,r as O,o as r,f as v,W as b,k as a,_ as j,h as q,a8 as x,a2 as F,g as k,i as L,q as u,c as f,F as C,y as N,j as y,x as D,b2 as K,b3 as T,V as d,p as $,aJ as U,v as m,aI as I,m as E,t as J,X as R}from"./Du2W7Jne.js";import{a as W}from"./KyA_4Ks-.js";const X={base:"hidden lg:flex",variants:{side:{left:"",right:""}}},Q={__name:"UDashboardSidebarCollapse",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},ui:{type:Object,required:!1},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},class:{type:null,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},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(g){const i=S("dashboardSidebarCollapse",g),l=V(P(i,"icon","side","class")),{t:p}=A(),o=B(),{sidebarCollapsed:c,collapseSidebar:s}=W({sidebarCollapsed:O(!1),collapseSidebar:()=>{}}),n=q(()=>x({extend:X,...o.ui?.dashboardSidebarCollapse||{}}));return(_,e)=>(r(),v(j,b({...a(l),icon:a(i).icon||(a(c)?a(o).ui.icons.panelOpen:a(o).ui.icons.panelClose),"aria-label":a(c)?a(p)("dashboardSidebarCollapse.expand"):a(p)("dashboardSidebarCollapse.collapse"),..._.$attrs},{class:n.value({class:[a(i).ui?.base,a(i).class],side:a(i).side}),onClick:e[0]||(e[0]=t=>a(s)?.(!a(c)))}),null,16,["class"]))}},G={slots:{root:"relative min-w-0",list:"flex items-center gap-1.5",item:"flex min-w-0",link:"group relative flex items-center gap-1.5 text-sm min-w-0 rounded-md",linkLeadingIcon:"shrink-0 size-5",linkLeadingAvatar:"shrink-0",linkLeadingAvatarSize:"2xs",linkLabel:"truncate",separator:"flex",separatorIcon:"shrink-0 size-5 text-muted"},variants:{active:{true:{link:"font-semibold"},false:{link:"text-muted font-medium"}},disabled:{true:{link:"cursor-not-allowed opacity-75"}},to:{true:""},color:{primary:{link:"outline-primary/25 focus-visible:outline-3"},secondary:{link:"outline-secondary/25 focus-visible:outline-3"},success:{link:"outline-success/25 focus-visible:outline-3"},info:{link:"outline-info/25 focus-visible:outline-3"},warning:{link:"outline-warning/25 focus-visible:outline-3"},error:{link:"outline-error/25 focus-visible:outline-3"},neutral:{link:"outline-inverted/25 focus-visible:outline-3"}}},compoundVariants:[{disabled:!1,active:!1,to:!0,class:{link:["hover:text-default","transition-colors"]}},{color:"primary",active:!0,class:{link:"text-primary"}},{color:"secondary",active:!0,class:{link:"text-secondary"}},{color:"success",active:!0,class:{link:"text-success"}},{color:"info",active:!0,class:{link:"text-info"}},{color:"warning",active:!0,class:{link:"text-warning"}},{color:"error",active:!0,class:{link:"text-error"}},{color:"neutral",active:!0,class:{link:"text-highlighted"}}],defaultVariants:{color:"primary"}},Y={__name:"UBreadcrumb",props:{as:{type:null,required:!1,default:"nav"},items:{type:Array,required:!1},separatorIcon:{type:null,required:!1},color:{type:null,required:!1},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(g){const h=g,i=F(),l=S("breadcrumb",h),{dir:p}=A(),o=B(),c=q(()=>l.separatorIcon||(p.value==="rtl"?o.ui.icons.chevronLeft:o.ui.icons.chevronRight)),s=q(()=>x({extend:G,...o.ui?.breadcrumb||{}})({color:l.color}));return(n,_)=>(r(),v(a(R),{as:a(l).as,"aria-label":"breadcrumb","data-slot":"root",class:u(s.value.root({class:[a(l).ui?.root,a(l).class]}))},{default:k(()=>[L("ol",{"data-slot":"list",class:u(s.value.list({class:a(l).ui?.list}))},[(r(!0),f(C,null,N(a(l).items,(e,t)=>(r(),f(C,{key:t},[L("li",{"data-slot":"item",class:u(s.value.item({class:[a(l).ui?.item,e.ui?.item]}))},[y(D,b({ref_for:!0},a(K)(e),{custom:""}),{default:k(({active:w,...z})=>[y(T,b({ref_for:!0},z,{as:"span","aria-current":(e.active??w)&&t===a(l).items.length-1?"page":void 0,"data-slot":"link",class:s.value.link({class:[a(l).ui?.link,e.ui?.link,e.class],active:e.active??t===a(l).items.length-1,disabled:!!e.disabled,to:!!e.to})}),{default:k(()=>[d(n.$slots,e.slot||"item",{item:e,active:e.active??t===a(l).items.length-1,index:t,ui:s.value},()=>[d(n.$slots,e.slot?`${e.slot}-leading`:"item-leading",{item:e,active:e.active??t===a(l).items.length-1,index:t,ui:s.value},()=>[e.icon?(r(),v($,{key:0,name:e.icon,"data-slot":"linkLeadingIcon",class:u(s.value.linkLeadingIcon({class:[a(l).ui?.linkLeadingIcon,e.ui?.linkLeadingIcon],active:e.active??t===a(l).items.length-1}))},null,8,["name","class"])):e.avatar?(r(),v(U,b({key:1,size:a(l).ui?.linkLeadingAvatarSize||s.value.linkLeadingAvatarSize()},{ref_for:!0},e.avatar,{"data-slot":"linkLeadingAvatar",class:s.value.linkLeadingAvatar({class:[a(l).ui?.linkLeadingAvatar,e.ui?.linkLeadingAvatar],active:e.active??t===a(l).items.length-1})}),null,16,["size","class"])):m("",!0)]),a(I)(e,a(l).labelKey)||i[e.slot?`${e.slot}-label`:"item-label"]?(r(),f("span",{key:0,"data-slot":"linkLabel",class:u(s.value.linkLabel({class:[a(l).ui?.linkLabel,e.ui?.linkLabel]}))},[d(n.$slots,e.slot?`${e.slot}-label`:"item-label",{item:e,active:e.active??t===a(l).items.length-1,index:t},()=>[E(J(a(I)(e,a(l).labelKey)),1)])],2)):m("",!0),d(n.$slots,e.slot?`${e.slot}-trailing`:"item-trailing",{item:e,active:e.active??t===a(l).items.length-1,index:t})])]),_:2},1040,["aria-current","class"])]),_:2},1040)],2),t<a(l).items.length-1?(r(),f("li",{key:0,role:"presentation","aria-hidden":"true","data-slot":"separator",class:u(s.value.separator({class:[a(l).ui?.separator,e.ui?.separator]}))},[d(n.$slots,"separator",{ui:s.value},()=>[y($,{name:c.value,"data-slot":"separatorIcon",class:u(s.value.separatorIcon({class:[a(l).ui?.separatorIcon,e.ui?.separatorIcon]}))},null,8,["name","class"])])],2)):m("",!0)],64))),128))],2)]),_:3},8,["as","class"]))}};export{Q as _,Y as a};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{d as te,b as Je,o as n,f as P,g as C,j as k,_ as Ae,m as z,i as u,k as t,l as ze,r as U,J as gt,h as S,A as Re,c,O as ht,V as Oe,ae as vt,S as pe,C as ge,p as ve,q as ae,v as $,t as v,F as H,K as yt,y as se,s as Be,E as st,H as Ee,af as Le,B as at,I as xt,Q as Xe,G as We,ac as Ie,D as bt,W as je,ag as Se,T as kt,ad as _t,ah as $t,ai as wt,aj as Ct,a0 as St,a1 as Tt}from"./Du2W7Jne.js";import{_ as rt,a as Lt}from"./Bm62iDV5.js";import{_ as zt}from"./Dy-TJ0Mt.js";import{u as It}from"./BgRu_3tT.js";import{u as He}from"./DSqHUrvO.js";import{g as it,u as At,v as Rt,f as Ge,w as lt,n as Ue,x as Bt}from"./DuwtTfO8.js";import{_ as Ye}from"./BrQEE053.js";import{_ as Ne}from"./C0_yH0N7.js";import{_ as Pt}from"./BUkim3TM.js";import{u as Me}from"./B8zkOmwo.js";import{_ as Et}from"./CxyAzHr3.js";import{_ as Ot}from"./BT3wGCTI.js";import{_ as Ut}from"./B3obW6cw.js";import{k as jt,i as Mt,b as Nt}from"./Cnsmicv2.js";import{f as Kt}from"./D-c8ZSws.js";import{_ as ct}from"./DJmoLeVt.js";import{_ as Dt}from"./-f7BAm1H.js";const Vt={class:"w-64 p-1 space-y-0.5"},Ht={class:"flex items-center justify-between px-2 pt-1 pb-1"},Ft=te({__name:"ExportMenu",props:{endpoint:{},baseName:{}},setup(e){const r=e,{download:i}=It(),{copy:d}=He(),s=Je(),a=U(!1),o=U(""),p=S(()=>(Re().app?.baseURL??"/").replace(/\/$/,""));function l(L){return`${p.value}${L}`}async function g(L){a.value=!1,await i(l(`${r.endpoint}?format=${L}`),`${r.baseName}.${L}`,{binary:L==="zip"})}function T(){a.value=!1,window.open(l(`${r.endpoint}?format=html&print=1`),"_blank")}async function I(L,x,A){o.value=x;try{const j=await fetch(l(L));if(!j.ok)throw new Error(`Request failed (${j.status})`);const D=await j.text();d(A?A(D):D,{toast:`${x} copied`}),a.value=!1}catch(j){s.add({title:`Could not copy ${x.toLowerCase()}`,description:it(j),color:"error"})}finally{o.value=""}}function b(){return I(`${r.endpoint}?format=md`,"Report")}return(L,x)=>{const A=Ae,j=rt,D=zt,E=gt;return n(),P(E,{open:t(a),"onUpdate:open":x[4]||(x[4]=B=>ze(a)?a.value=B:null)},{content:C(()=>[u("div",Vt,[u("div",Ht,[x[6]||(x[6]=u("p",{class:"text-xs font-medium text-gray-500"},"Download",-1)),k(j,{topic:"export.offline"})]),k(A,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-code",title:"One self-contained HTML file with screenshots and video embedded",onClick:x[0]||(x[0]=B=>g("html"))},{default:C(()=>[...x[7]||(x[7]=[z(" HTML — single file ",-1)])]),_:1}),k(A,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-archive",title:"Report plus the raw artifacts, including trace archives and data.json",onClick:x[1]||(x[1]=B=>g("zip"))},{default:C(()=>[...x[8]||(x[8]=[z(" ZIP — with all evidence ",-1)])]),_:1}),k(A,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-printer",title:"Opens the report with your browser's print dialog, for Save as PDF",onClick:T},{default:C(()=>[...x[9]||(x[9]=[z(" PDF — via print ",-1)])]),_:1}),k(A,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-text",title:"The Markdown report as a file",onClick:x[2]||(x[2]=B=>g("md"))},{default:C(()=>[...x[10]||(x[10]=[z(" Markdown ",-1)])]),_:1}),k(A,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-file-json",title:"Everything the report contains, machine-readable",onClick:x[3]||(x[3]=B=>g("json"))},{default:C(()=>[...x[11]||(x[11]=[z(" JSON ",-1)])]),_:1}),k(D,{class:"my-1"}),x[13]||(x[13]=u("p",{class:"text-xs font-medium text-gray-500 px-2 pt-1 pb-1"},"Copy to clipboard",-1)),k(A,{block:"",size:"sm",color:"neutral",variant:"ghost",class:"justify-start",icon:"i-lucide-clipboard-list",loading:t(o)==="Report",title:"The whole investigation as Markdown, for an issue or a chat",onClick:b},{default:C(()=>[...x[12]||(x[12]=[z(" Report (Markdown) ",-1)])]),_:1},8,["loading"])])]),default:C(()=>[k(A,{icon:"i-lucide-share",size:"xs",color:"neutral",variant:"outline",title:"Take this investigation away"},{default:C(()=>[...x[5]||(x[5]=[z(" Export ",-1)])]),_:1})]),_:1},8,["open"])}}}),Ba=Object.assign(Ft,{__name:"ExportMenu"}),qt={class:"flex items-center justify-between gap-2"},Zt=["aria-expanded","title"],Wt={class:"text-lg font-medium inline-flex items-center gap-1 shrink-0"},Jt={key:2,class:"min-w-0 flex-1 truncate text-sm text-gray-500 dark:text-gray-400"},Gt={key:0,class:"flex items-center gap-1 shrink-0"},Yt={key:0,class:"text-sm text-gray-500 mt-1 ml-11"},Qt=te({__name:"CollapsibleSectionCard",props:{title:{},icon:{},subtitle:{},count:{},iconClass:{default:"text-primary"},help:{},storageKey:{},defaultFolded:{type:Boolean,default:!0}},setup(e,{expose:r}){const i=e,{folded:d,toggle:s,setFolded:a}=jt(`piwi-section-fold-${i.storageKey}`,i.defaultFolded),o=U(null);function p(){a(!1),yt(()=>o.value?.scrollIntoView({behavior:"smooth",block:"start"}))}return r({setFolded:a,reveal:p}),(l,g)=>{const T=ve,I=rt,b=Dt;return n(),c("div",{ref_key:"rootEl",ref:o,class:"scroll-mt-4"},[k(b,{ui:{header:"p-3 sm:px-4 sm:py-3",body:t(d)?"p-0 sm:p-0":""},class:ae(t(d)&&"divide-y-0")},{header:C(()=>[u("div",qt,[u("div",{class:"flex items-center gap-2 min-w-0 flex-1 cursor-pointer select-none rounded-sm outline-none focus-visible:outline-2 focus-visible:outline-primary",role:"button",tabindex:"0","aria-expanded":!t(d),title:t(d)?"Expand section":"Collapse section",onClick:g[1]||(g[1]=(...L)=>t(s)&&t(s)(...L)),onKeydown:[g[2]||(g[2]=pe((...L)=>t(s)&&t(s)(...L),["enter"])),g[3]||(g[3]=pe(ge((...L)=>t(s)&&t(s)(...L),["prevent"]),["space"]))]},[k(T,{name:t(d)?"i-lucide-chevron-right":"i-lucide-chevron-down",class:"size-4 shrink-0 text-gray-400"},null,8,["name"]),e.icon?(n(),P(T,{key:0,name:e.icon,class:ae(["size-5 shrink-0",e.iconClass])},null,8,["name","class"])):$("",!0),u("h3",Wt,[z(v(e.title),1),e.count!=null?(n(),c(H,{key:0},[z(" ("+v(e.count)+")",1)],64)):$("",!0)]),e.help?(n(),c("span",{key:1,onClick:g[0]||(g[0]=ge(()=>{},["stop"]))},[k(I,{topic:e.help},null,8,["topic"])])):$("",!0),t(d)&&l.$slots.folded?(n(),c("span",Jt,[Oe(l.$slots,"folded")])):$("",!0)],40,Zt),l.$slots.actions?(n(),c("div",Gt,[Oe(l.$slots,"actions")])):$("",!0)]),!t(d)&&(e.subtitle||l.$slots.subtitle)?(n(),c("p",Yt,[Oe(l.$slots,"subtitle",{},()=>[z(v(e.subtitle),1)])])):$("",!0)]),default:C(()=>[ht(u("div",null,[Oe(l.$slots,"default")],512),[[vt,!t(d)]])]),_:3},8,["ui","class"])],512)}}}),Ke=Object.assign(Qt,{__name:"CollapsibleSectionCard"}),Xt={class:"overflow-x-auto text-xs font-mono"},en=te({__name:"DiffPatch",props:{patch:{}},setup(e){return(r,i)=>(n(),c("div",Xt,[(n(!0),c(H,null,se(("parsePatchLines"in r?r.parsePatchLines:t(Rt))(e.patch),(d,s)=>(n(),c("div",{key:s,class:ae(["px-3 py-px whitespace-pre leading-5 min-w-0",("patchLineClass"in r?r.patchLineClass:t(At))[d.type]])},v(d.text||" "),3))),128))]))}}),tn=Object.assign(en,{__name:"DiffPatch"}),nn=["role","aria-checked","tabindex"],on={class:"flex-1 min-w-0"},sn=["title"],an={key:0,class:"text-[11px] leading-4 text-gray-500 truncate"},rn=te({__name:"LocatorAlternativeRow",props:{alt:{},note:{default:void 0},copied:{type:Boolean,default:!1},dense:{type:Boolean,default:!1},selectable:{type:Boolean,default:!1},selected:{type:Boolean,default:!1}},emits:["copy","select"],setup(e){const r=e;function i(a){return a>=80?"success":a>=50?"warning":"error"}function d(a){const{method:o,score:p,args:l}=a;return l&&(l.anchorTestId||l.anchorSelector||l.anchorRole)?"scoped to a stable ancestor — survives renames":p>=100?"most stable — purpose-built for testing":o==="getByRole"&&l&&!("name"in l)?"name-free role — survives renames":o==="getByRole"?"browser ARIA tree — semantic and stable":o==="getByLabel"?"associated <label> element":o==="getByPlaceholder"?"input placeholder":o==="getByText"?"visible text":o==="getByAltText"?"image alt text":o==="getByTitle"?"title attribute":o==="locator"&&p>=50?"stable selector":o==="locator"?"CSS class — may be fragile":""}const s=S(()=>r.note??d(r.alt));return(a,o)=>{const p=Be,l=ve,g=Ae;return n(),c("div",{class:ae(["flex items-center gap-2 rounded border",[e.dense?"py-1 px-2":"py-1.5 px-2.5",e.selectable?"cursor-pointer hover:bg-elevated transition-colors focus-visible:outline-2 focus-visible:outline-primary":"",e.selectable&&e.selected?"border-primary/60 ring-1 ring-primary/50":"border-default/50"]]),role:e.selectable?"radio":void 0,"aria-checked":e.selectable?e.selected:void 0,tabindex:e.selectable?0:void 0,onClick:o[1]||(o[1]=T=>e.selectable&&a.$emit("select")),onKeydown:[o[2]||(o[2]=pe(ge(T=>e.selectable&&a.$emit("select"),["prevent"]),["enter"])),o[3]||(o[3]=pe(ge(T=>e.selectable&&a.$emit("select"),["prevent"]),["space"]))]},[k(p,{size:"xs",color:i(e.alt.score),variant:"subtle",class:ae(["shrink-0 font-mono tabular-nums cursor-default text-center",e.dense?"min-w-[2.25rem]":"min-w-[2.5rem]"]),title:`Stability score: ${e.alt.score}/100`},{default:C(()=>[z(v(e.alt.score),1)]),_:1},8,["color","class","title"]),u("div",on,[u("code",{class:"text-xs font-mono block truncate",title:e.alt.locator},v(e.alt.locator),9,sn),t(s)?(n(),c("p",an,v(t(s)),1)):$("",!0)]),e.alt.pickedByUser&&e.dense?(n(),P(l,{key:0,name:"i-lucide-user-check",class:"size-3.5 text-primary shrink-0",title:"Confirmed with the locator picker"})):e.alt.pickedByUser?(n(),P(p,{key:1,size:"xs",color:"primary",variant:"subtle",icon:"i-lucide-user-check",class:"shrink-0",title:"Confirmed with the locator picker on the failing page"})):$("",!0),k(g,{size:"xs",variant:"ghost",color:"neutral",icon:e.copied?"i-lucide-check":"i-lucide-copy",title:e.copied?"Copied!":"Copy",class:"shrink-0",onClick:o[0]||(o[0]=ge(T=>a.$emit("copy"),["stop"]))},null,8,["icon","title"])],42,nn)}}}),ut=Object.assign(rn,{__name:"LocatorAlternativeRow"}),et={getByTestId:"testid",getByRole:"semantic",getByLabel:"label",getByPlaceholder:"label",getByText:"text",getByAltText:"text",getByTitle:"text",locator:"css","page.locator":"css"},ln=50;function dt(e,r,i=ln){const d=r[0]??null;if(!d)return{recommended:null,durable:null,preservesConvention:!1,hasDurableAlternative:!1,suggestAddTestId:!1};const s=e?et[e]:void 0,a=(e?r.find(l=>l.method===e&&l.score>=i):void 0)??(s?r.find(l=>et[l.method]===s&&l.score>=i):void 0),p=r.find(l=>l.pickedByUser)??a??d;return{recommended:p,durable:d,preservesConvention:!!a&&p===a,hasDurableAlternative:p.locator!==d.locator,suggestAddTestId:d.score<i}}const ft={a:"link",button:"button",nav:"navigation",main:"main",article:"article",section:"region",form:"form",img:"img",figure:"figure",figcaption:"caption",blockquote:"blockquote",table:"table",ul:"list",ol:"list",li:"listitem",dialog:"dialog",output:"status",progress:"progressbar",meter:"meter",textarea:"textbox",h1:"heading",h2:"heading",h3:"heading",h4:"heading",h5:"heading",h6:"heading",details:"group",summary:"button",search:"search"},cn={button:"button",submit:"button",reset:"button",image:"button",checkbox:"checkbox",radio:"radio",range:"slider",search:"searchbox",number:"spinbutton",text:"textbox",email:"textbox",tel:"textbox",url:"textbox",password:"textbox"},un=["id","class","name","data-testid","placeholder","alt","title","aria-label","aria-level","role","type","href","multiple"];function dn(e){const r=e.attributes.role;if(r)return r;const i=e.tagName;if(!i)return null;if(i==="input"){const d=(e.attributes.type??"text").toLowerCase();return cn[d]??"textbox"}return i==="select"?e.attributes.multiple!=null?"listbox":"combobox":i==="a"?e.attributes.href!=null?"link":null:ft[i]??null}function fn(e,r){if(r!=="heading")return null;const i=e.tagName.match(/^h([1-6])$/);if(i)return Number(i[1]);const d=e.attributes["aria-level"];return d&&/^\d+$/.test(d)?Number(d):null}const $e=(e,r)=>e.attributes[r]||null,me=e=>e.replace(/\\/g,"\\\\").replace(/'/g,"\\'"),qe=e=>e.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),tt=e=>/^[A-Za-z][A-Za-z0-9_-]*$/.test(e);function mn(e){return/[a-f0-9]{8,}/i.test(e)?10:/^(?:css|sc|emotion|styled)-/i.test(e)?15:/^(bg|text|border|shadow|opacity|font|w-|h-|m[tblrxy]?-|p[tblrxy]?-|flex|grid|gap|rounded|absolute|relative|fixed|sticky|block|inline|hidden|overflow|z-|top-|right-|bottom-|left-|inset-|justify-|items-|self-|content-|order-|col-|row-)/.test(e)?25:/__/.test(e)||/--/.test(e)?35:/^[a-z]+(-[a-z]+)+$/.test(e)||/^[a-z]+[A-Z][a-zA-Z]+$/.test(e)?40:(e.includes("_")||/^[a-z]+-[a-z0-9]{5,}$/.test(e)&&/[0-9]/.test(e),15)}function nt(e){return!!(/^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$/i.test(e)||/^[a-f0-9]{8,}$/i.test(e)||/^[a-z]+-\d+$/.test(e)||/^(emotion-|styled-|css-|sc-)/.test(e)||e.startsWith("ng-")||/^(radix-|headlessui-|mui-|mantine-|chakra-)/i.test(e)||/^:r[0-9a-z]+:$/i.test(e)||/^«r[0-9a-z]+»$/i.test(e))}function pn(e){const r=[],i=new Set,d=y=>{i.has(y.locator)||(i.add(y.locator),r.push(y))},{accessibleName:s}=e,a=e.tagName,o=dn(e),p=e.selectorCounts,l=y=>y==null||y<=1,g=e.textContent?e.textContent.replace(/\s+/g," ").trim():null,T=$e(e,"data-testid");T&&l(p?.testId)&&d({locator:`getByTestId('${me(T)}')`,method:"getByTestId",args:{testId:T},score:100});const I=fn(e,o),b=I!=null?`, level: ${I}`:"",L=y=>I!=null?{...y,level:I}:y;o&&s&&d({locator:`getByRole('${o}', { name: '${me(s)}'${b} })`,method:"getByRole",args:L({role:o,name:s}),score:90});const x=$e(e,"aria-label");if(o&&x&&x!==s&&d({locator:`getByRole('${o}', { name: '${me(x)}'${b} })`,method:"getByRole",args:L({role:o,name:x}),score:85}),s&&["input","select","textarea"].includes(a)){const y=$e(e,"aria-label");(e.hasLabel===void 0||e.hasLabel===!0||y===s)&&d({locator:`getByLabel('${me(s)}')`,method:"getByLabel",args:{label:s},score:85})}const A=$e(e,"placeholder");A&&d({locator:`getByPlaceholder('${me(A)}')`,method:"getByPlaceholder",args:{placeholder:A},score:80}),g&&g.length<80&&d({locator:`getByText('${me(g)}')`,method:"getByText",args:{text:g},score:75});const j=$e(e,"id");if(j&&!nt(j)&&l(p?.id)){const y=tt(j)?`#${j}`:`[id="${qe(j)}"]`;d({locator:`locator('${me(y)}')`,method:"locator",args:{selector:y},score:65})}const D=$e(e,"name");if(D&&l(p?.name)){const y=`[name="${qe(D)}"]`;d({locator:`locator('${me(y)}')`,method:"locator",args:{selector:y},score:60})}const E=$e(e,"alt");E&&d({locator:`getByAltText('${me(E)}')`,method:"getByAltText",args:{text:E},score:60});const B=$e(e,"title");B&&d({locator:`getByTitle('${me(B)}')`,method:"getByTitle",args:{title:B},score:50});const le=!!(T&&l(p?.testId));if(o&&!le){const y=I!=null?`'${o}', { level: ${I} }`:`'${o}'`,q=L({role:o});let M=!1,V=!1,G=!1;for(const Y of e.ancestors??[]){if(Y.scopedRoleCount!==1)continue;if(!M&&Y.testId&&Y.testIdCount===1&&(M=!0,d({locator:`getByTestId('${me(Y.testId)}').getByRole(${y})`,method:"getByRole",args:{...q,anchorTestId:Y.testId},score:72})),!V&&Y.id&&!nt(Y.id)&&Y.idCount===1){V=!0;const ye=tt(Y.id)?`#${Y.id}`:`[id="${qe(Y.id)}"]`;d({locator:`locator('${me(ye)}').getByRole(${y})`,method:"getByRole",args:{...q,anchorSelector:ye},score:64})}const he=Y.role||ft[Y.tag]||null;!G&&he&&he!==o&&Y.roleCount===1&&(G=!0,d({locator:`getByRole('${me(he)}').getByRole(${y})`,method:"getByRole",args:{...q,anchorRole:he},score:55}))}const Z=e.rolePosition;Z&&Z.role===o&&(Z.count===1||I!=null&&Z.levelCount===1)&&d({locator:`getByRole(${y})`,method:"getByRole",args:q,score:58})}const ee=$e(e,"class");if(ee){const y=p?.classes,q=ee.split(/\s+/).filter(M=>M.length>1&&/^[A-Za-z_-][A-Za-z0-9_-]*$/.test(M)&&l(y?.[M])).map(M=>({cls:M,score:mn(M)})).sort((M,V)=>V.score-M.score).slice(0,3);for(const{cls:M,score:V}of q)d({locator:`locator('.${me(M)}')`,method:"locator",args:{selector:`.${M}`},score:V})}return r.sort((y,q)=>q.score-y.score)}function gn(e){const r=e.attributes,i=r["aria-label"];if(i)return i;if(e.textContent)return e.textContent;const d=r.title;if(d)return d;const s=r.placeholder;return s||null}function hn(e){if(window.__piwiPickerInstalled)return;window.__piwiPickerInstalled=!0;var r=document,i=window,d=2147483600,s=e.probedAttrs,a=r.createElement("div");a.id="__piwi_picker_highlight",a.style.cssText="position:fixed;pointer-events:none;z-index:"+d+";display:none;box-sizing:border-box;border:2px solid #7c3aed;background:rgba(124,58,237,.12);border-radius:3px;",r.body.appendChild(a);var o=r.createElement("div");o.id="__piwi_picker_banner",o.style.cssText="position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:"+(d+2)+";background:#111827;color:#f9fafb;font:13px/1.5 system-ui,sans-serif;padding:10px 16px;border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,.4);max-width:80vw;",o.innerHTML='<div>Click an element to generate locators</div><div style="color:#9ca3af;margin-top:3px;font-size:11px">↑ parent · ↓ child · Esc skip</div>',r.body.appendChild(o),i.parent.postMessage({type:"pickerReady"},"*");function p(f){var w=(f.tagName||"?").toLowerCase(),R=f.getAttribute&&f.getAttribute("data-testid");if(R)return"getByTestId('"+R+"')";if(f.labels&&f.labels.length>0){var N=(f.labels[0].textContent||"").replace(/\s+/g," ").trim().slice(0,80);if(N)return"getByLabel('"+N+"')"}var X=f.getAttribute&&f.getAttribute("aria-label");if(X)return"getByLabel('"+X+"')";var W=f.getAttribute&&f.getAttribute("placeholder");if(W)return"getByPlaceholder('"+W+"')";var J=f.getAttribute&&f.getAttribute("alt");if(J)return"getByAltText('"+J+"')";var fe=f.getAttribute&&f.getAttribute("title");if(fe)return"getByTitle('"+fe+"')";if(f.id)return"locator('#"+f.id+"')";var _=(f.getAttribute&&f.getAttribute("class")||"").split(/\s+/).find(function(h){return h.length>1});return _?"locator('."+_+"')":w}function l(f){for(var w=[],R=f;R&&w.length<15;){var N=(R.tagName||"").toLowerCase();if(N==="body"||N==="html")break;w.push(R),R=R.parentElement}return w.length?w:[f]}var g=["button","a","input","select","textarea","summary","option"];function T(f){for(var w=0;w<Math.min(f.length,4);w++){var R=f[w],N=(R.tagName||"").toLowerCase();if(g.indexOf(N)!==-1||R.getAttribute&&(R.getAttribute("role")||R.getAttribute("data-testid")))return w}return 0}var I=[],b=0,L=null;function x(){return I[b]||null}function A(){var f=x();if(!f){a.style.display="none";return}var w=f.getBoundingClientRect();a.style.display="block",a.style.left=w.left+"px",a.style.top=w.top+"px",a.style.width=w.width+"px",a.style.height=w.height+"px";var R=r.getElementById("__piwi_picker_foot");R&&(R.textContent=p(f)+" — click to pick · ↑ parent · ↓ child · Esc skip")}var j=o.querySelector("[style*=margin]");j&&(j.id="__piwi_picker_foot");function D(f){for(var w={},R=0;R<s.length;R++){var N=s[R],X=f.getAttribute(N)||f[N];w[N]=typeof X=="string"?X.slice(0,200):X?String(X).slice(0,200):null}var W=f.getBoundingClientRect(),J={};try{var fe=function(we){return i.CSS.escape(we)},_=function(we){try{return r.querySelectorAll(we).length}catch{return}};w["data-testid"]&&(J.testId=_("[data-testid="+JSON.stringify(w["data-testid"])+"]")),w.id&&(J.id=_("#"+fe(w.id))),w.name&&(J.name=_("[name="+JSON.stringify(w.name)+"]"));var h=(w.class||"").split(/\s+/).filter(function(we){return we.length>1}).slice(0,10);if(h.length>0){for(var Q={},oe=0;oe<h.length;oe++){var De=_("."+fe(h[oe]));De!==void 0&&(Q[h[oe]]=De)}J.classes=Q}}catch{}var Ve=null;return f.labels&&f.labels.length>0&&(Ve=(f.labels[0].textContent||"").replace(/\s+/g," ").trim().slice(0,120)||null),{tagName:(f.tagName||"").toLowerCase(),attributes:w,textContent:(f.textContent||"").replace(/\s+/g," ").trim().slice(0,80)||null,center:{x:Math.round(W.x+W.width/2),y:Math.round(W.y+W.height/2)},hasLabel:!!(f.labels&&f.labels.length>0),labelText:Ve,selectorCounts:J}}function E(f){f.preventDefault(),f.stopImmediatePropagation()}function B(f){return f===o||f===a||o.contains&&o.contains(f)||f&&f.__piwiHint}var le="top";function ee(f){le!==f&&(le=f,f==="bottom"?(o.style.top="auto",o.style.bottom="12px"):(o.style.top="12px",o.style.bottom="auto"))}function y(f){var w=f.target;if(!w||B(w)){a.style.display="none";return}w!==L&&(L=w,I=l(w),b=T(I)),A();var R=x();if(R){var N=R.getBoundingClientRect(),X=o.getBoundingClientRect(),W=8;N.left<X.right+W&&N.right>X.left-W&&N.top<X.bottom+W&&N.bottom>X.top-W&&ee(le==="top"?"bottom":"top")}}function q(f){if(f==="Escape"){F();return}f==="ArrowUp"&&(b=Math.min(b+1,I.length-1),A()),f==="ArrowDown"&&(b=Math.max(b-1,0),A())}function M(f){E(f),q(f.key)}var V=[];function G(){for(var f=0;f<V.length;f++)V[f].parentNode&&V[f].parentNode.removeChild(V[f]);V=[]}function Z(f){return(f||"").replace(/\s+/g," ").trim().toLowerCase()}function Y(f){var w=Z(f);if(w.length<2)return[];for(var R=r.querySelectorAll("button,a,[role],h1,h2,h3,h4,h5,h6,label,summary,input,textarea,select,option,span,li,td,th,p"),N=[],X=[],W=0;W<R.length;W++){var J=R[W],fe=Z(J.textContent);if(!fe){var _=Z(J.getAttribute&&(J.getAttribute("placeholder")||J.getAttribute("aria-label"))||"");_&&(_===w||_.indexOf(w)!==-1)&&N.push(J);continue}fe.length>120||(fe===w?N.push(J):fe.indexOf(w)!==-1&&fe.length<w.length+30&&X.push(J))}return N.concat(X)}function he(f,w){var R=f.getBoundingClientRect();if(R.width===0&&R.height===0)return null;var N=r.createElement("div");return N.__piwiHint=!0,N.style.cssText="position:fixed;pointer-events:none;z-index:"+(d+1)+";box-sizing:border-box;border-radius:3px;transition:opacity .3s;border:2px solid "+w+";box-shadow:0 0 0 3px "+w+"55;left:"+R.left+"px;top:"+R.top+"px;width:"+R.width+"px;height:"+R.height+"px;",r.body.appendChild(N),V.push(N),N}function ye(f){var w=f.getBoundingClientRect();i.parent.postMessage({type:"piwiScrollTo",y:w.top},"*")}function Pe(f){if(G(),!(!f||!f.length)){for(var w=null,R=0;R<f.length;R++)for(var N=f[R],X=Y(N&&N.text),W=0;W<Math.min(X.length,3);W++)he(X[W],"#f59e0b"),w||(w=X[W]);w&&ye(w),setTimeout(function(){for(var J=0;J<V.length;J++)V[J].style.opacity="0"},2600),setTimeout(G,3e3)}}var ne=[],ke=0;function O(){i.parent.postMessage({type:"piwiSearchResult",count:ne.length,index:ne.length?ke:-1},"*")}function m(){G();var f=ne[ke];f&&(he(f,"#7c3aed"),ye(f),O())}function K(f){if(ne=Y(f),ke=0,!ne.length){G(),O();return}m()}function xe(){ne.length&&(ke=(ke+1)%ne.length,m())}function de(f){var w=f.data;if(!(!w||typeof w.type!="string")){if(w.type==="piwiPickerKey"&&typeof w.key=="string")q(w.key);else if(w.type==="piwiHighlight")try{Pe(w.hints)}catch{}else if(w.type==="piwiSearch")try{K(w.q)}catch{}else if(w.type==="piwiSearchNext")try{xe()}catch{}else if(w.type==="piwiClearHints")try{G()}catch{}}}function ce(f){E(f);var w=x();if(!(!w||B(f.target))){var R=D(w);a.style.display="none",G(),o.innerHTML='<div style="text-align:center;color:#9ca3af;">Analyzing element…</div>',ue(),i.parent.postMessage({type:"elementPicked",attrs:R},"*")}}var _e=["mousedown","mouseup","pointerdown","pointerup","auxclick","dblclick","contextmenu","submit","beforeinput","input","change","paste","cut","drop","dragstart","keypress","keyup","touchstart","touchend"];function Te(){for(var f=0;f<_e.length;f++)r.addEventListener(_e[f],E,!0)}function Ce(){r.removeEventListener("mousemove",y,!0),r.removeEventListener("click",ce,!0),r.removeEventListener("keydown",M,!0),i.removeEventListener("message",de,!1)}function ue(){Ce(),r.addEventListener("click",E,!0),r.addEventListener("keydown",E,!0)}function F(){Ce();for(var f=0;f<_e.length;f++)r.removeEventListener(_e[f],E,!0);r.removeEventListener("click",E,!0),r.removeEventListener("keydown",E,!0),G(),a.remove(),o.remove(),i.parent.postMessage({type:"pickerClosed"},"*")}r.addEventListener("mousemove",y,!0),r.addEventListener("click",ce,!0),r.addEventListener("keydown",M,!0),i.addEventListener("message",de,!1),Te();function re(){var f=Math.max(r.documentElement?r.documentElement.scrollHeight:0,r.body?r.body.scrollHeight:0);f>0&&i.parent.postMessage({type:"piwiContentHeight",height:f},"*")}re();try{if(i.ResizeObserver){var be=new i.ResizeObserver(re);r.documentElement&&be.observe(r.documentElement),r.body&&be.observe(r.body)}}catch{}}function vn(e){const r=[],i=new Set,d=a=>{if(typeof a!="string")return;const o=a.trim();if(o.length<2||o.length>80)return;const p=o.toLowerCase();i.has(p)||(i.add(p),r.push({text:o}))},s=a=>a&&(a.name??a.text??a.label??a.placeholder??a.alt??a.title);d(s(e.failingLocator?.args));for(const a of e.fromElementMatch??[])d(s(a.args));for(const a of e.fromAriaSnapshot??[])d(s(a.args));return r.slice(0,6)}function yn(e){return`<script>(${String(hn).replace(/<\/(script)/gi,"<\\/$1")})(${JSON.stringify(e)})<\/script>`}function xn(e){return e.replace(/<base\b[^>]*>/gi,"")}function bn(e,r){return xn(e)+yn(r)}const kn={key:0,class:"flex items-center justify-center py-20"},_n={key:1,class:"py-8 text-center"},$n={class:"text-xs text-gray-400 mt-1"},wn={key:2,class:"py-8 text-center"},Cn={class:"mb-2 flex items-center gap-2 flex-wrap"},Sn={key:1,class:"ml-auto inline-flex rounded-md border border-default overflow-hidden text-xs"},Tn={key:0,class:"flex items-center gap-1 mb-1.5 text-xs text-gray-500"},Ln={class:"tabular-nums w-11 text-center select-none"},zn={class:"ml-auto text-gray-400 tabular-nums"},In={key:1,class:"flex items-center gap-2 mb-1.5"},An={key:0,class:"text-xs text-gray-500 tabular-nums"},Rn={key:1,class:"text-xs text-gray-400"},Bn={key:0,class:"absolute inset-0 flex items-center justify-center bg-white dark:bg-gray-900 z-10"},Pn=["src"],En={key:2,class:"mt-4 space-y-3"},On={class:"flex items-center gap-3 bg-elevated rounded-lg p-3"},Un={class:"flex-1 min-w-0"},jn={class:"text-sm font-medium"},Mn={class:"text-xs"},Nn={key:0,class:"text-xs text-gray-400 ml-1"},Kn={key:0,class:"text-xs text-gray-500 mt-0.5 truncate"},Dn={class:"space-y-1",role:"radiogroup","aria-label":"Alternative locators"},Vn={class:"flex-1 min-w-0"},Hn={class:"text-xs font-medium text-primary"},Fn={class:"text-sm font-mono block truncate mt-0.5"},qn={class:"flex justify-between w-full"},Zn={key:1},Wn={class:"flex gap-2"},Jn=te({__name:"SnapshotLocatorPicker",props:We({runId:{},testRunsCaseId:{},failingLocator:{},healing:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:We(["close","confirmed"],["update:open"]),setup(e,{emit:r}){const i=e,d=r,s=st(e,"open"),a=U(!1),o=U(null),p=U(null),l=U(void 0);async function g(){a.value=!0,p.value=null;try{const _=new URLSearchParams({inlineStyles:"1"});l.value&&_.set("source",l.value);const h=`?${_.toString()}`;o.value=await $fetch(`/api/test-runs/${i.runId}/cases/${i.testRunsCaseId}/dom-snapshot${h}`),o.value?.source&&(l.value=o.value.source)}catch(_){p.value=_ instanceof Error?_.message:"Unknown error"}finally{a.value=!1}}const T=S(()=>o.value?.availableSources??[]);function I(_){_===l.value||a.value||(l.value=_,x.value=!1,b.value="pick-element",ee.value=0,q.value=!1,A.value=null,j.value=[],ue.value=null,K.value="",xe.value=0,de.value=-1,g())}Ee(s,_=>{_&&(o.value=null,x.value=!1,b.value="pick-element",ee.value=0,q.value=!1,l.value=void 0,A.value=null,j.value=[],ue.value=null,K.value="",xe.value=0,de.value=-1,g())});const b=U("pick-element"),L=U(null),x=U(!1),A=U(null),j=U([]),D=U(void 0);function E(_){return URL.createObjectURL(new Blob([bn(_,{probedAttrs:un})],{type:"text/html"}))}Ee(()=>o.value?.html,_=>{D.value&&(URL.revokeObjectURL(D.value),D.value=void 0),_&&(D.value=E(_))},{immediate:!0});const B=U(null),le=U(0),ee=U(0),y=U(1),q=U(!1),M=S(()=>o.value?.viewport??null),V=S(()=>{const _=M.value;return!_?.width||!le.value?1:Math.min(le.value/_.width,1)}),G=S(()=>{const _=M.value;if(!_)return{width:"100%",height:ee.value?`${ee.value}px`:"100%"};const h=ee.value||_.height;return{width:`${Math.round(_.width*y.value)}px`,height:`${Math.round(h*y.value)}px`}}),Z=S(()=>{const _=M.value;if(!_)return{width:"100%",height:ee.value?`${ee.value}px`:"100%",border:"0"};const h=ee.value||_.height;return{width:`${_.width}px`,height:`${h}px`,transform:`scale(${y.value})`,transformOrigin:"top left",border:"0"}}),Y=S(()=>Math.round(y.value*100)),he=_=>Math.min(4,Math.max(.1,_));function ye(_){q.value=!0,y.value=he(y.value*_)}function Pe(){q.value=!1,y.value=V.value}Ee([V,M],()=>{q.value||(y.value=V.value)});let ne=null;Ee(B,_=>{ne?.disconnect(),_&&(le.value=_.clientWidth,ne=new ResizeObserver(h=>{for(const Q of h)le.value=Q.contentRect.width}),ne.observe(_))}),Le(()=>{ne?.disconnect()}),Le(()=>{D.value&&URL.revokeObjectURL(D.value)});function ke(_){if(!L.value||_.source!==L.value.contentWindow)return;const h=_.data;if(h?.type==="pickerReady"){x.value=!0,m();return}if(h?.type==="piwiContentHeight"&&typeof h.height=="number"){ee.value=Math.max(h.height,M.value?.height??0);return}if(h?.type==="piwiScrollTo"&&typeof h.y=="number"){const Q=B.value;Q&&Q.scrollTo({top:Math.max(0,h.y*y.value-80),behavior:"smooth"});return}if(h?.type==="piwiSearchResult"){xe.value=typeof h.count=="number"?h.count:0,de.value=typeof h.index=="number"?h.index:-1;return}if(h?.type==="elementPicked"&&h.attrs){const{labelText:Q,...oe}=h.attrs;A.value={...oe,accessibleName:Q??gn(oe)},j.value=pn(A.value),ue.value=null,b.value="review"}h?.type==="pickerClosed"&&R()}function O(_){L.value?.contentWindow?.postMessage(_,"*")}function m(){const _=vn({failingLocator:i.failingLocator,fromElementMatch:i.healing?.fromElementMatch??null,fromAriaSnapshot:i.healing?.fromAriaSnapshot??null});_.length&&O({type:"piwiHighlight",hints:_})}const K=U(""),xe=U(0),de=U(-1);let ce=null;Ee(K,_=>{ce&&clearTimeout(ce),ce=setTimeout(()=>O({type:"piwiSearch",q:_}),180)});function _e(){O({type:"piwiSearchNext"})}Le(()=>{ce&&clearTimeout(ce)});function Te(_){if(!s.value||b.value!=="pick-element"||!x.value||_.key!=="ArrowUp"&&_.key!=="ArrowDown")return;const h=(document.activeElement?.tagName??"").toLowerCase();if(h==="input"||h==="textarea")return;const Q=L.value?.contentWindow;Q&&(_.preventDefault(),Q.postMessage({type:"piwiPickerKey",key:_.key},"*"))}function Ce(){L.value&&(L.value.src="about:blank")}at(()=>{window.addEventListener("message",ke),window.addEventListener("keydown",Te,!0)}),Le(()=>{window.removeEventListener("message",ke),window.removeEventListener("keydown",Te,!0)});const ue=U(null),F=U(!1);function re(_){ue.value=_}const be=S(()=>dt(i.failingLocator.method,j.value)),f=Je();async function w(){if(ue.value){F.value=!0;try{(await $fetch(`/api/test-runs/${i.runId}/cases/${i.testRunsCaseId}/locator-pick`,{method:"POST",body:{failingLocator:i.failingLocator,pickedLocator:ue.value,element:A.value}})).status==="ok"?d("confirmed",ue.value):f.add({title:"Pick not saved",description:"This failure has no call-site or locator signature to attach the pick to.",color:"warning",icon:"i-lucide-alert-triangle"}),s.value=!1}catch(_){f.add({title:"Could not save the pick",description:it(_),color:"error",icon:"i-lucide-alert-triangle"})}finally{F.value=!1}}}function R(){Ce(),s.value=!1}function N(){A.value=null,j.value=[],ue.value=null,b.value="pick-element",x.value=!1,K.value="",xe.value=0,de.value=-1;const _=o.value?.html;_&&(D.value&&URL.revokeObjectURL(D.value),D.value=E(_))}const{copy:X}=He(),W=U(null);let J=null;function fe(_,h){X(_,{toast:"Locator copied"}),W.value=h,J&&clearTimeout(J),J=setTimeout(()=>{W.value=null},2e3)}return Le(()=>{J&&clearTimeout(J)}),(_,h)=>{const Q=ve,oe=Ae,De=xt,Ve=Be,we=Pt;return n(),P(we,{open:s.value,"onUpdate:open":h[8]||(h[8]=ie=>s.value=ie),ui:{content:"max-w-6xl w-[95vw]"},onAfterLeave:R},{header:C(()=>[...h[9]||(h[9]=[u("div",null,[u("h3",{class:"text-lg font-medium"},"Pick a locator from the DOM snapshot"),u("p",{class:"text-sm text-gray-500 mt-0.5"}," Click the element the failing locator should target. Use ↑↓ to walk the DOM tree. ")],-1)])]),body:C(()=>[t(a)?(n(),c("div",kn,[k(Q,{name:"i-lucide-loader",class:"size-6 animate-spin text-gray-400"}),h[10]||(h[10]=u("span",{class:"ml-2 text-sm text-gray-500"},"Loading DOM snapshot...",-1))])):t(p)?(n(),c("div",_n,[k(Q,{name:"i-lucide-alert-triangle",class:"size-8 text-red-300 mx-auto mb-2"}),h[12]||(h[12]=u("p",{class:"text-sm text-red-500"},"Failed to load snapshot",-1)),u("p",$n,v(t(p)),1),k(oe,{size:"xs",variant:"outline",color:"neutral",class:"mt-3",onClick:g},{default:C(()=>[...h[11]||(h[11]=[z("Retry",-1)])]),_:1})])):t(o)?.status!=="ok"||!t(o).html?(n(),c("div",wn,[k(Q,{name:"i-lucide-file-x",class:"size-8 text-gray-300 mx-auto mb-2"}),h[13]||(h[13]=u("p",{class:"text-sm text-gray-500"},"No DOM snapshot or ARIA data available for this execution",-1)),h[14]||(h[14]=u("p",{class:"text-xs text-gray-400 mt-1"},"This test run has no stored trace or ARIA snapshot to pick from.",-1))])):(n(),c(H,{key:3},[u("div",Cn,[t(o).source?(n(),c("div",{key:0,class:ae(["text-xs flex items-center gap-1",t(o).source==="aria"?"text-amber-600 dark:text-amber-400":"text-green-600 dark:text-green-400"])},[k(Q,{name:t(o).source==="aria"?"i-lucide-accessibility":"i-lucide-check",class:"size-3.5 shrink-0"},null,8,["name"]),t(o).source==="aria"?(n(),c(H,{key:0},[z(" Accessibility tree from the failure-time ARIA snapshot — element styles are approximate ")],64)):(n(),c(H,{key:1},[z(" Rendered from the failure-time DOM snapshot ")],64))],2)):$("",!0),t(T).length>1?(n(),c("div",Sn,[u("button",{type:"button",class:ae(["px-2 py-1 flex items-center gap-1 transition-colors",t(l)==="dom"?"bg-primary/10 text-primary font-medium":"text-gray-500 hover:bg-elevated"]),title:"Rendered page from the trace",onClick:h[0]||(h[0]=ie=>I("dom"))},[k(Q,{name:"i-lucide-layout-panel-top",class:"size-3.5"}),h[15]||(h[15]=z(" DOM ",-1))],2),u("button",{type:"button",class:ae(["px-2 py-1 flex items-center gap-1 border-l border-default transition-colors",t(l)==="aria"?"bg-primary/10 text-primary font-medium":"text-gray-500 hover:bg-elevated"]),title:"Accessibility tree from the ARIA snapshot",onClick:h[1]||(h[1]=ie=>I("aria"))},[k(Q,{name:"i-lucide-accessibility",class:"size-3.5"}),h[16]||(h[16]=z(" Tree ",-1))],2)])):$("",!0)]),t(M)?(n(),c("div",Tn,[k(oe,{size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-zoom-out",title:"Zoom out",onClick:h[2]||(h[2]=ie=>ye(1/1.25))}),u("span",Ln,v(t(Y))+"%",1),k(oe,{size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-zoom-in",title:"Zoom in",onClick:h[3]||(h[3]=ie=>ye(1.25))}),k(oe,{size:"xs",variant:"outline",color:"neutral",class:"ml-1",onClick:Pe},{default:C(()=>[...h[17]||(h[17]=[z("Fit",-1)])]),_:1}),u("span",zn,v(t(M).width)+"×"+v(t(M).height),1)])):$("",!0),t(b)==="pick-element"?(n(),c("div",In,[k(De,{modelValue:t(K),"onUpdate:modelValue":h[4]||(h[4]=ie=>ze(K)?K.value=ie:null),size:"xs",icon:"i-lucide-search",placeholder:"Find an element by its text…",class:"max-w-xs",onKeydown:pe(ge(_e,["prevent"]),["enter"])},null,8,["modelValue","onKeydown"]),t(K)&&t(xe)>0?(n(),c("span",An,v(t(de)+1)+"/"+v(t(xe)),1)):t(K)?(n(),c("span",Rn,"no matches")):$("",!0),t(xe)>1?(n(),P(oe,{key:2,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-chevron-down",title:"Next match (Enter)",onClick:_e})):$("",!0)])):$("",!0),u("div",{ref_key:"stageRef",ref:B,class:ae(["relative border border-default rounded-lg overflow-auto",[t(b)==="pick-element"?"h-[75vh]":"h-80",t(M)?"bg-gray-100 dark:bg-gray-800":""]])},[t(x)?$("",!0):(n(),c("div",Bn,[k(Q,{name:"i-lucide-loader",class:"size-5 animate-spin text-gray-400"}),h[18]||(h[18]=u("span",{class:"ml-2 text-sm text-gray-500"},"Initializing picker...",-1))])),u("div",{style:Xe(t(G))},[u("iframe",{ref_key:"iframeRef",ref:L,src:t(D),style:Xe(t(Z)),class:"bg-white",sandbox:"allow-scripts",title:"DOM snapshot"},null,12,Pn)],4)],2),t(b)==="review"&&t(A)?(n(),c("div",En,[u("div",On,[k(Q,{name:"i-lucide-crosshair",class:"size-5 text-primary shrink-0"}),u("div",Un,[u("p",jn,[h[19]||(h[19]=z(" Picked: ",-1)),u("code",Mn,v(t(A).tagName),1),t(A).attributes.id?(n(),c("code",Nn,"#"+v(t(A).attributes.id),1)):$("",!0),t(A).attributes["data-testid"]?(n(),P(Ve,{key:1,size:"xs",color:"primary",variant:"subtle",class:"ml-1"},{default:C(()=>[z(v(t(A).attributes["data-testid"]),1)]),_:1})):$("",!0)]),t(A).textContent?(n(),c("p",Kn,' "'+v(t(A).textContent)+'" ',1)):$("",!0)]),k(oe,{size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-rotate-ccw",title:"Pick a different element",onClick:N})]),u("div",Dn,[(n(!0),c(H,null,se(t(j),(ie,Fe)=>(n(),P(ut,{key:Fe,alt:ie,copied:t(W)===`picked-${Fe}`,dense:!0,selectable:!0,selected:t(ue)?.locator===ie.locator,onCopy:pt=>fe(ie.locator,`picked-${Fe}`),onSelect:pt=>re(ie)},null,8,["alt","copied","selected","onCopy","onSelect"]))),128))]),t(be).recommended?(n(),c("div",{key:0,class:"rounded-lg border border-primary/40 bg-primary/5 p-3 flex items-center gap-3 cursor-pointer",role:"button",tabindex:"0",title:"Select this locator for Confirm",onClick:h[6]||(h[6]=ie=>re(t(be).recommended)),onKeydown:h[7]||(h[7]=pe(ge(ie=>re(t(be).recommended),["prevent"]),["enter"]))},[k(Q,{name:"i-lucide-star",class:"size-5 text-primary shrink-0"}),u("div",Vn,[u("p",Hn," Recommended (score: "+v(t(be).recommended.score)+") ",1),u("code",Fn,v(t(be).recommended.locator),1)]),k(oe,{size:"sm",color:"primary",variant:"solid","trailing-icon":t(W)==="rec"?"i-lucide-check":"i-lucide-copy",onClick:h[5]||(h[5]=ge(ie=>fe(t(be).recommended.locator,"rec"),["stop"]))},{default:C(()=>[...h[20]||(h[20]=[z(" Copy ",-1)])]),_:1},8,["trailing-icon"])],32)):$("",!0)])):$("",!0)],64))]),footer:C(()=>[u("div",qn,[t(b)==="review"?(n(),P(oe,{key:0,size:"sm",variant:"outline",color:"neutral",icon:"i-lucide-rotate-ccw",onClick:N},{default:C(()=>[...h[21]||(h[21]=[z(" Pick a different element ",-1)])]),_:1})):(n(),c("div",Zn)),u("div",Wn,[k(oe,{size:"sm",variant:"outline",color:"neutral",onClick:R},{default:C(()=>[...h[22]||(h[22]=[z("Cancel",-1)])]),_:1}),t(b)==="review"?(n(),P(oe,{key:0,size:"sm",color:"primary",loading:t(F),disabled:!t(ue),onClick:w},{default:C(()=>[...h[23]||(h[23]=[z(" Confirm pick ",-1)])]),_:1},8,["loading","disabled"])):$("",!0)])])]),_:1},8,["open"])}}}),Gn=Object.assign(Jn,{__name:"SnapshotLocatorPicker"});function Yn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Qn(e,r){let i=0,d=null;for(let s=r;s<e.length;s++){const a=e[s];if(d){if(a==="\\"){s++;continue}a===d&&(d=null);continue}if(a==="'"||a==='"'||a==="`"){d=a;continue}if(a==="(")i++;else if(a===")"&&(i--,i===0))return s}return-1}function Xn(e,r,i){if(!e||!r||!i)return null;const d=new RegExp(`${Yn(r)}\\s*\\(`,"g");let s;for(;(s=d.exec(e))!==null;){const a=s.index,o=a>0?e[a-1]:"";if(o&&/[A-Za-z0-9_$]/.test(o))continue;const p=a+s[0].lastIndexOf("("),l=Qn(e,p);if(l===-1)return null;const g=e.slice(0,a)+i+e.slice(l+1);return g===e?null:{old:e,new:g}}return null}function eo(e,r){return`${r?`@@ ${r} @@
|
|
2
|
+
`:""}-${e.old.trimEnd()}
|
|
3
|
+
+${e.new.trimEnd()}`}function to(e,r){const i=e??{},d=r??{},s=o=>o==null?null:typeof o=="string"?o:JSON.stringify(o),a=[];for(const o of new Set([...Object.keys(i),...Object.keys(d)])){const p=s(i[o]),l=s(d[o]);p!==l&&a.push({key:o,from:p,to:l})}return a}function no(e){const i=[`In ${e.location??(e.sourceLine?`line ${e.sourceLine.line}`:"the failing test")}, the Playwright locator \`${e.failing}\` no longer matches its element.`,`Replace it with \`${e.recommended}\`.`];return e.sourceLine&&i.push("","Current line:",e.sourceLine.text.trim()),i.join(`
|
|
4
|
+
`)}const oo={key:0,class:"text-xs font-mono"},so={key:1},ao={class:"flex items-center gap-1"},ro={key:1,class:"rounded-lg border border-primary/50 bg-primary/10 p-3 mb-3 flex items-center gap-3"},io={class:"flex-1 min-w-0"},lo={class:"text-xs font-medium text-primary flex items-center gap-1.5"},co={class:"text-sm font-mono block truncate mt-0.5"},uo={key:2,class:"flex items-center gap-2 bg-elevated rounded p-2 mb-3 border border-red-200 dark:border-red-800"},fo={class:"text-xs font-mono text-red-600 dark:text-red-400 flex-1 truncate"},mo={key:4,class:"rounded-lg border border-primary/40 bg-primary/5 p-3 mb-3 space-y-2"},po={class:"flex items-center gap-2 min-w-0"},go={key:0,class:"text-[11px] text-gray-500 truncate min-w-0"},ho={key:0,class:"rounded border border-default overflow-hidden bg-default"},vo={class:"text-sm font-mono block truncate"},yo={key:0,class:"text-xs flex flex-wrap items-center gap-x-1.5 gap-y-0.5"},xo={class:"font-mono text-gray-500"},bo={key:0,class:"font-mono text-red-500 line-through"},ko={key:1,class:"text-gray-400"},_o={key:2,class:"font-mono text-green-600 dark:text-green-400"},$o={key:3,class:"text-gray-400"},wo={key:2,class:"text-xs text-gray-500"},Co={key:3,class:"text-xs text-primary/90 flex items-center gap-1"},So={class:"flex items-center gap-2"},To={key:5,class:"rounded-lg border border-default bg-elevated p-3 mb-3 flex items-center gap-3"},Lo={class:"flex-1 min-w-0"},zo={class:"text-xs font-medium text-success-600 dark:text-success-400"},Io={class:"text-sm font-mono block truncate mt-0.5"},Ao={class:"space-y-2"},Ro={key:6,class:"mt-3"},Bo={class:"space-y-2"},Po={class:"flex items-center gap-1"},ot=3,Eo=te({__name:"LocatorHealingPanel",props:{runId:{},testRunsCaseId:{},storageKey:{},affectedCount:{}},setup(e){const r=e,i=S(()=>r.storageKey?Ke:Ne),d=S(()=>r.storageKey?{storageKey:r.storageKey}:{}),{data:s,pending:a,error:o}=Me(()=>`/api/test-runs/${r.runId}/cases/${r.testRunsCaseId}/locator-healing`,{lazy:!0},"$z1C7vU2CXe"),p=S(()=>!!s.value&&s.value.source!=="none"&&!!(s.value.fromElementMatch?.length||s.value.fromPriorSuccess?.length||s.value.fromAriaSnapshot?.length)),l=S(()=>s.value?s.value.fromElementMatch??s.value.fromPriorSuccess??s.value.fromAriaSnapshot??[]:[]),g=S(()=>l.value.find(O=>O.pickedByUser)??null),T=S(()=>s.value?.recommendation?s.value.recommendation:s.value?.priorNameMayBeStale||!l.value.length?null:dt(s.value?.failingLocator?.method,l.value)),I=S(()=>s.value?.priorNameMayBeStale&&s.value.fromPriorSuccess?.length?s.value.fromAriaSnapshot??[]:[]),b=S(()=>{const O=T.value;return O?.recommended?O.recommended.pickedByUser?"Confirmed with the locator picker on the failing page":O.preservesConvention?"Keeps your original locator style — minimal, idiomatic edit":O.suggestAddTestId?"Most stable available, but still fragile":"Most stable available — a sturdier style than the original":""}),L=S(()=>{const O=s.value?.priorNameMayBeStale,m=(()=>{switch(s.value?.source){case"prior-run":return O?"Pre-captured from the last passing run — the element looks changed since":"Pre-captured from the last passing run — highest confidence";case"element-match":return"The element looks renamed or moved — these are fresh locators for its current identity on the failing page";case"fingerprint":return"Matched by locator signature (line numbers shifted)";case"cross-test":return"Captured by another test in this project that uses the same locator";case"aria-snapshot":return"Generated from the failure-time ARIA snapshot — limited, no HTML attributes";default:return""}})(),K=s.value?.capturedAt;return K?`${m} · captured ${Ge(K)}`:m}),x=S(()=>{if(s.value?.priorNameMayBeStale)return"text-warning-600 dark:text-warning-400";switch(s.value?.source){case"prior-run":case"fingerprint":case"cross-test":return"text-success-600 dark:text-success-400";case"element-match":return"text-primary-600 dark:text-primary-400";default:return"text-warning-600 dark:text-warning-400"}}),A=S(()=>{const O=s.value?.failingLocator;return O?`${O.method}(${JSON.stringify(O.args)})`:""}),j=Re(),{data:D}=Me(()=>`/api/test-run-cases/${r.testRunsCaseId}/traces`,{lazy:!0},"$vsBboELop9"),E=S(()=>{const O=D.value?.[0];if(!O)return null;const m=!!j.public.demoMode&&O.filePath.startsWith("demo/");return lt(O.filePath,j.app?.baseURL,m)}),B=U(!1);async function le(){await kt(`/api/test-runs/${r.runId}/cases/${r.testRunsCaseId}/locator-healing`)}const{copy:ee}=He(),y=U(null);let q=null;function M(O,m,K){ee(O,{toast:K}),y.value=m,q&&clearTimeout(q),q=setTimeout(()=>{y.value=null},2e3)}function V(O,m){M(O,m,"Locator copied")}Le(()=>{q&&clearTimeout(q)});const G=S(()=>T.value?.recommended??null),Z=S(()=>r.affectedCount&&r.affectedCount>1&&G.value?`Same break affects ${r.affectedCount} tests in this cluster — one fix`:""),Y=S(()=>{if(G.value?.pickedByUser)return"your confirmed pick";switch(s.value?.source){case"prior-run":return"from the last passing run";case"fingerprint":return"from a prior run (line shifted)";case"cross-test":return"from another test in this project";case"element-match":return"from the current failing page";case"aria-snapshot":return"from the ARIA snapshot";default:return""}}),he=S(()=>{const O=s.value?.sourceLine,m=G.value;if(!O||!m)return null;const K=Xn(O.text,s.value?.failingLocator?.method,m.locator);return K?{edit:K,patch:eo(K,s.value?.location??null)}:null}),ye=S(()=>{if(he.value)return[];const O=s.value?.failingLocator,m=G.value;return!O||!m||m.method!==O.method?[]:to(O.args,m.args)});function Pe(){const O=G.value;!O||!s.value||M(no({location:s.value.location??null,sourceLine:s.value.sourceLine??null,failing:A.value,recommended:O.locator}),"fix-prompt","Fix prompt copied")}const ne=U(!1),ke=S(()=>ne.value?l.value:l.value.slice(0,ot));return(O,m)=>{const K=Ae,xe=bt,de=Ye,ce=ve,_e=Be,Te=tn,Ce=ut,ue=Lt;return n(),c(H,null,[!t(a)&&!t(o)&&t(p)?(n(),P(Se(t(i)),je({key:0},t(d),{icon:"i-lucide-bandage",title:"Alternative locators",count:t(l).length,help:"locator-healing"}),Ie({subtitle:C(()=>[u("span",{class:ae(t(x))},v(t(L)),3)]),default:C(()=>[t(s)?.healedInRunId?(n(),P(de,{key:0,class:"mb-3",color:"success",icon:"i-lucide-circle-check",variant:"subtle",title:"Locator healed"},{description:C(()=>[m[11]||(m[11]=z(" The recommended locator now passes at this call site — ",-1)),k(xe,{to:`/test-runs/${t(s).healedInRunId}`,class:"underline font-medium"},{default:C(()=>[z(" see run #"+v(t(s).healedInRunId),1)]),_:1},8,["to"]),m[12]||(m[12]=z(". ",-1))]),_:1})):$("",!0),t(g)?(n(),c("div",ro,[k(ce,{name:"i-lucide-user-check",class:"size-5 text-primary shrink-0"}),u("div",io,[u("p",lo,[m[14]||(m[14]=z(" Your pick ",-1)),k(_e,{size:"sm",color:"primary",variant:"subtle"},{default:C(()=>[...m[13]||(m[13]=[z("confirmed on the failing page",-1)])]),_:1})]),u("code",co,v(t(g).locator),1)]),k(K,{size:"sm",color:"primary",variant:"solid","trailing-icon":t(y)==="user-pick"?"i-lucide-check":"i-lucide-copy",onClick:m[1]||(m[1]=F=>V(t(g).locator,"user-pick"))},{default:C(()=>[...m[15]||(m[15]=[z(" Copy ",-1)])]),_:1},8,["trailing-icon"])])):$("",!0),t(s)?.failingLocator?(n(),c("div",uo,[k(ce,{name:"i-lucide-x-circle",class:"size-4 text-red-500 shrink-0"}),u("code",fo,v(t(A)),1),k(K,{size:"xs",variant:"ghost",color:"neutral",icon:t(y)==="failing"?"i-lucide-check":"i-lucide-copy",title:t(y)==="failing"?"Copied!":"Copy",onClick:m[2]||(m[2]=F=>V(t(A),"failing"))},null,8,["icon","title"])])):$("",!0),t(s)?.priorNameMayBeStale?(n(),P(de,{key:3,class:"mb-3",color:"warning",icon:"i-lucide-alert-triangle",variant:"subtle",title:"The element's name looks changed",description:"The captured accessible name no longer appears on the failing page, so name-based alternatives (and the failing locator itself) probably no longer match. Prefer the structural options, or the failing-page candidates below."})):$("",!0),t(G)?(n(),c("div",mo,[u("div",po,[k(ce,{name:"i-lucide-star",class:"size-4 text-primary shrink-0"}),m[16]||(m[16]=u("p",{class:"text-xs font-medium text-primary shrink-0"},"Recommended fix",-1)),t(Y)?(n(),c("span",go," · "+v(t(Y)),1)):$("",!0),m[17]||(m[17]=u("span",{class:"flex-1"},null,-1)),k(_e,{size:"xs",color:"primary",variant:"subtle",class:"font-mono tabular-nums shrink-0"},{default:C(()=>[z(v(t(G).score),1)]),_:1})]),t(he)?(n(),c("div",ho,[k(Te,{patch:t(he).patch},null,8,["patch"])])):(n(),c(H,{key:1},[u("code",vo,v(t(G).locator),1),t(ye).length?(n(),c("p",yo,[(n(!0),c(H,null,se(t(ye),(F,re)=>(n(),c(H,{key:re},[u("span",xo,v(F.key)+":",1),F.from?(n(),c("span",bo,v(F.from),1)):(n(),c("span",ko,"—")),k(ce,{name:"i-lucide-arrow-right",class:"size-3 text-gray-400"}),F.to?(n(),c("span",_o,v(F.to),1)):(n(),c("span",$o,"removed"))],64))),128))])):$("",!0)],64)),t(b)?(n(),c("p",wo,v(t(b)),1)):$("",!0),t(Z)?(n(),c("p",Co,[k(ce,{name:"i-lucide-layers",class:"size-3 shrink-0"}),z(v(t(Z)),1)])):$("",!0),u("div",So,[k(K,{size:"xs",color:"primary",variant:"solid","trailing-icon":t(y)==="top"?"i-lucide-check":"i-lucide-copy",onClick:m[3]||(m[3]=F=>V(t(G).locator,"top"))},{default:C(()=>[...m[18]||(m[18]=[z(" Copy locator ",-1)])]),_:1},8,["trailing-icon"]),k(K,{size:"xs",color:"neutral",variant:"outline",icon:t(y)==="fix-prompt"?"i-lucide-check":"i-lucide-sparkles",title:"Copy an instruction an AI coding agent can apply directly to the test",onClick:Pe},{default:C(()=>[...m[19]||(m[19]=[z(" Copy fix prompt ",-1)])]),_:1},8,["icon"])])])):$("",!0),t(T)?.hasDurableAlternative&&t(T).durable?(n(),c("div",To,[k(ce,{name:"i-lucide-shield-check",class:"size-5 text-success shrink-0"}),u("div",Lo,[u("p",zo," Most stable option (score: "+v(t(T).durable.score)+") ",1),u("code",Io,v(t(T).durable.locator),1),m[20]||(m[20]=u("p",{class:"text-xs text-gray-500 mt-0.5"},"Sturdier, but changes the locator style",-1))]),k(K,{size:"sm",color:"neutral",variant:"outline","trailing-icon":t(y)==="durable"?"i-lucide-check":"i-lucide-copy",onClick:m[4]||(m[4]=F=>V(t(T).durable.locator,"durable"))},{default:C(()=>[...m[21]||(m[21]=[z(" Copy ",-1)])]),_:1},8,["trailing-icon"])])):$("",!0),u("div",Ao,[m[22]||(m[22]=u("p",{class:"text-xs font-medium text-gray-500"},"All alternatives",-1)),(n(!0),c(H,null,se(t(ke),(F,re)=>(n(),P(Ce,{key:re,alt:F,copied:t(y)===`alt-${re}`,onCopy:be=>V(F.locator,`alt-${re}`)},null,8,["alt","copied","onCopy"]))),128)),t(l).length>ot?(n(),P(K,{key:0,size:"xs",variant:"ghost",color:"neutral",block:"",icon:t(ne)?"i-lucide-chevron-up":"i-lucide-chevron-down",onClick:m[5]||(m[5]=F=>ne.value=!t(ne))},{default:C(()=>[z(v(t(ne)?"Show fewer":`Show all ${t(l).length} alternatives`),1)]),_:1},8,["icon"])):$("",!0)]),t(I).length?(n(),c("div",Ro,[m[23]||(m[23]=u("p",{class:"text-xs font-medium text-gray-500 mb-2"},"From the failing page",-1)),u("div",Bo,[(n(!0),c(H,null,se(t(I),(F,re)=>(n(),P(Ce,{key:re,alt:F,note:"candidate from the failure-time ARIA snapshot",copied:t(y)===`supp-${re}`,onCopy:be=>V(F.locator,`supp-${re}`)},null,8,["alt","copied","onCopy"]))),128))])])):$("",!0),t(T)?.suggestAddTestId?(n(),P(de,{key:7,class:"mt-3",color:"warning",icon:"i-lucide-info",variant:"subtle",title:"All alternatives are fragile",description:"Every captured locator scores below 50. Add a stable data-testid attribute to this element in the app for a durable fix."})):$("",!0),t(s)?.source==="aria-snapshot"?(n(),P(de,{key:8,class:"mt-3",color:"info",icon:"i-lucide-info",variant:"subtle"},{description:C(()=>[m[25]||(m[25]=z(" No HTML attributes were available. ",-1)),k(ue,{to:"capture-fixtures","no-icon":"",class:"text-primary hover:underline"},{default:C(()=>[...m[24]||(m[24]=[z("Enable Piwi fixture capture",-1)])]),_:1}),m[26]||(m[26]=z(" for full alternatives including data-testid and CSS selectors. ",-1))]),_:1})):$("",!0)]),_:2},[e.storageKey?{name:"folded",fn:C(()=>[t(T)?.recommended?(n(),c("code",oo,v(t(T).recommended.locator),1)):(n(),c("span",so,v(t(l).length)+" alternative"+v(t(l).length===1?"":"s"),1))]),key:"0"}:void 0,t(E)||t(s)?.failingLocator?{name:"actions",fn:C(()=>[u("div",ao,[t(s)?.failingLocator?(n(),P(K,{key:0,size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-mouse-pointer",title:"Open the failure-time DOM snapshot and click the element to pick a locator",onClick:m[0]||(m[0]=F=>B.value=!0)},{default:C(()=>[...m[9]||(m[9]=[z(" Pick from snapshot ",-1)])]),_:1})):$("",!0),t(E)?(n(),P(K,{key:1,to:t(E),target:"_blank",size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-crosshair",title:"Open the failure trace in the trace viewer — its Pick locator tool works on the recorded page snapshots"},{default:C(()=>[...m[10]||(m[10]=[z(" Pick from trace ",-1)])]),_:1},8,["to"])):$("",!0)])]),key:"1"}:void 0]),1040,["count"])):!t(a)&&!t(o)&&!t(p)?(n(),P(Se(t(i)),je({key:1},t(d),{icon:"i-lucide-bandage",title:"Alternative locators",subtitle:"No alternatives available",help:"locator-healing"}),Ie({default:C(()=>[k(de,{color:"neutral",icon:"i-lucide-info",variant:"subtle"},{description:C(()=>[m[31]||(m[31]=z(" No pre-captured alternatives — this locator has never passed in a previous run. ",-1)),k(ue,{to:"capture-fixtures","no-icon":"",class:"text-primary hover:underline"},{default:C(()=>[...m[30]||(m[30]=[z("Enable Piwi dashboard fixtures",-1)])]),_:1}),m[32]||(m[32]=z(" to capture element attributes at test time, or use “Pick from snapshot” above to choose a locator by hand on the failure-time page. ",-1))]),_:1})]),_:2},[e.storageKey?{name:"folded",fn:C(()=>[m[27]||(m[27]=u("span",null,"No alternatives available",-1))]),key:"0"}:void 0,t(E)||t(s)?.failingLocator?{name:"actions",fn:C(()=>[u("div",Po,[t(s)?.failingLocator?(n(),P(K,{key:0,size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-mouse-pointer",title:"Open the failure-time DOM snapshot and click the element to pick a locator",onClick:m[6]||(m[6]=F=>B.value=!0)},{default:C(()=>[...m[28]||(m[28]=[z(" Pick from snapshot ",-1)])]),_:1})):$("",!0),t(E)?(n(),P(K,{key:1,to:t(E),target:"_blank",size:"xs",color:"neutral",variant:"outline",icon:"i-lucide-crosshair",title:"Open the failure trace in the trace viewer — its Pick locator tool works on the recorded page snapshots"},{default:C(()=>[...m[29]||(m[29]=[z(" Pick from trace ",-1)])]),_:1},8,["to"])):$("",!0)])]),key:"1"}:void 0]),1040)):$("",!0),t(s)?.failingLocator?(n(),P(Gn,{key:2,open:t(B),"onUpdate:open":m[7]||(m[7]=F=>ze(B)?B.value=F:null),"run-id":e.runId,"test-runs-case-id":e.testRunsCaseId,"failing-locator":t(s).failingLocator,healing:t(s),onConfirmed:le,onClose:m[8]||(m[8]=F=>B.value=!1)},null,8,["open","run-id","test-runs-case-id","failing-locator","healing"])):$("",!0)],64)}}}),Pa=Object.assign(Eo,{__name:"LocatorHealingPanel"}),Oo={key:1,class:"space-y-2"},Uo={class:"text-xs font-medium text-gray-500 dark:text-gray-400 sm:w-40 shrink-0"},jo={class:"flex flex-wrap items-center gap-1.5 min-w-0 text-xs font-mono"},Mo={class:"rounded bg-red-50 px-1.5 py-0.5 text-red-700 dark:bg-red-950/30 dark:text-red-400 break-all"},No={class:"rounded bg-green-50 px-1.5 py-0.5 text-green-700 dark:bg-green-950/30 dark:text-green-400 break-all"},Ko={key:0,class:"text-xs text-gray-400 dark:text-gray-500"},Do={key:0},Vo=te({__name:"EnvironmentDiffCard",props:{runId:{},testRunsCaseId:{},storageKey:{}},setup(e,{expose:r}){const i=e,d=S(()=>i.storageKey?Ke:Ne),s=S(()=>i.storageKey?{storageKey:i.storageKey}:{}),{data:a,pending:o,error:p}=Me(()=>`/api/test-runs/${i.runId}/cases/${i.testRunsCaseId}/environment-diff`,{lazy:!0},"$yASgALxNz3"),l=S(()=>a.value?.entries??[]),g=S(()=>l.value.filter(x=>!x.informational)),T=S(()=>l.value.filter(x=>x.informational)),I=S(()=>{const x=a.value?.baseline;if(!x)return"";const A=x.startTime?` · ${Ge(new Date(x.startTime))}`:"";return`vs last pass in run #${x.runId}${A}`}),b=S(()=>{if(a.value?.status!=="ok")return"No passing baseline to compare against";const x=g.value.length;return x===0?"Identical to last pass — no environment drift":`${x} change${x===1?"":"s"}: ${g.value.map(A=>A.label).join(", ")}`}),L=U(null);return r({reveal:()=>L.value?.reveal?.()}),(x,A)=>{const j=Ye,D=ve;return!t(o)&&!t(p)&&t(a)?.status==="ok"?(n(),P(Se(t(d)),je({key:0,ref_key:"card",ref:L},t(s),{icon:"i-lucide-git-compare-arrows",title:"Environment diff",count:t(g).length||void 0,help:"environment-diff",subtitle:t(I)}),Ie({default:C(()=>[t(l).length===0?(n(),P(j,{key:0,color:"success",icon:"i-lucide-check-circle",variant:"subtle",description:"The environment is identical to the last passing run — environment drift is unlikely to explain this failure."})):(n(),c("div",Oo,[(n(!0),c(H,null,se(t(g),E=>(n(),c("div",{key:E.key,class:"rounded-lg border border-default p-3 flex flex-col gap-1 sm:flex-row sm:items-center sm:gap-3"},[u("span",Uo,v(E.label),1),u("div",jo,[u("code",Mo,v(E.failing??"(unset)"),1),k(D,{name:"i-lucide-arrow-left",class:"size-3 shrink-0 text-gray-400"}),u("code",No,v(E.baseline??"(unset)"),1)])]))),128)),t(T).length>0?(n(),c("p",Ko,[A[0]||(A[0]=z(" Also changed (varies naturally between runs): ",-1)),(n(!0),c(H,null,se(t(T),(E,B)=>(n(),c("span",{key:E.key},[z(v(E.label.toLowerCase())+" "+v(E.baseline??"—")+" → "+v(E.failing??"—"),1),B<t(T).length-1?(n(),c("span",Do,", ")):$("",!0)]))),128))])):$("",!0)]))]),_:2},[e.storageKey?{name:"folded",fn:C(()=>[u("span",null,v(t(b)),1)]),key:"0"}:void 0]),1040,["count","subtitle"])):$("",!0)}}}),Ea=Object.assign(Vo,{__name:"EnvironmentDiffCard"}),Ho={class:"absolute top-4 left-4 text-white/70 text-sm font-medium"},Fo=["src","alt"],qo=te({__name:"ScreenshotLightbox",props:{images:{},modelValue:{}},emits:["update:modelValue"],setup(e,{emit:r}){const i=e,d=r,s=S(()=>i.modelValue!==null);function a(){d("update:modelValue",null)}function o(){i.modelValue!==null&&i.modelValue>0&&d("update:modelValue",i.modelValue-1)}function p(){i.modelValue!==null&&i.modelValue<i.images.length-1&&d("update:modelValue",i.modelValue+1)}const l=S(()=>i.modelValue===null?null:i.images[i.modelValue]??null);function g(T){s.value&&(T.key==="Escape"&&a(),T.key==="ArrowLeft"&&o(),T.key==="ArrowRight"&&p())}return at(()=>window.addEventListener("keydown",g)),_t(()=>window.removeEventListener("keydown",g)),(T,I)=>{const b=ve;return n(),P($t,{to:"body"},[k(wt,{name:"lightbox"},{default:C(()=>[s.value?(n(),c("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/90",onClick:ge(a,["self"])},[u("button",{class:"absolute top-4 right-4 size-10 flex items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/20 transition-colors",onClick:a},[k(b,{name:"i-lucide-x",class:"size-6"})]),u("div",Ho,v((e.modelValue??0)+1)+" / "+v(e.images.length),1),e.images.length>1&&(e.modelValue??0)>0?(n(),c("button",{key:0,class:"absolute left-4 size-10 flex items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/20 transition-colors",onClick:o},[k(b,{name:"i-lucide-chevron-left",class:"size-6"})])):$("",!0),l.value?(n(),c("img",{key:1,src:l.value.src,alt:l.value.name,class:"max-h-[90vh] max-w-[90vw] object-contain rounded-lg",onClick:I[0]||(I[0]=ge(()=>{},["stop"]))},null,8,Fo)):$("",!0),e.images.length>1&&(e.modelValue??0)<e.images.length-1?(n(),c("button",{key:2,class:"absolute right-4 size-10 flex items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/20 transition-colors",onClick:p},[k(b,{name:"i-lucide-chevron-right",class:"size-6"})])):$("",!0)])):$("",!0)]),_:1})])}}}),mt=Object.assign(Ct(qo,[["__scopeId","data-v-c02b1e9b"]]),{__name:"ScreenshotLightbox"}),Zo={class:"flex justify-end mb-2"},Wo={key:1,class:"rounded overflow-hidden border border-default bg-gray-50 dark:bg-gray-900"},Jo=["src"],Go={key:2,class:"grid grid-cols-1 sm:grid-cols-2 gap-2"},Yo={class:"rounded overflow-hidden border border-red-200 dark:border-red-900 bg-gray-50 dark:bg-gray-900"},Qo=["src"],Xo={class:"rounded overflow-hidden border border-green-200 dark:border-green-900 bg-gray-50 dark:bg-gray-900"},es={class:"px-2 py-1 text-[10px] font-medium text-green-600 dark:text-green-400"},ts=["src"],ns=te({__name:"VisualDiffCard",props:{runId:{},testRunsCaseId:{},storageKey:{}},setup(e,{expose:r}){const i=e,d=S(()=>i.storageKey?Ke:Ne),s=S(()=>i.storageKey?{storageKey:i.storageKey}:{}),a=Re(),{data:o,pending:p,error:l}=Me(()=>`/api/test-runs/${i.runId}/cases/${i.testRunsCaseId}/visual-diff`,{lazy:!0},"$nTbSHl3faK"),g=S(()=>o.value?.status==="ok"?o.value.diff??null:null),T=U("overlay"),I=[{label:"Overlay",value:"overlay"},{label:"Side by side",value:"side-by-side"}],b=S(()=>g.value?Ue(g.value.path,"image/png",a.app?.baseURL):""),L=S(()=>g.value?Ue(g.value.failingPath,null,a.app?.baseURL):""),x=S(()=>g.value?Ue(g.value.baselinePath,null,a.app?.baseURL):""),A=S(()=>g.value?(g.value.changedPixelRatio*100).toFixed(2):"0"),j=S(()=>{const ee=g.value?.changedPixelRatio??0;return ee>.1?"error":ee>.01?"warning":"success"}),D=S(()=>g.value?g.value.dimensionMismatch?`${A.value}% changed — dimensions differ, unreliable`:`${A.value}% of pixels changed vs last pass`:"No comparable screenshots"),E=S(()=>g.value?[{src:L.value,name:"Failing screenshot"},{src:x.value,name:"Last passing screenshot"},{src:b.value,name:"Diff overlay"}]:[]),B=U(null),le=U(null);return r({reveal:()=>le.value?.reveal?.()}),(ee,y)=>{const q=Be,M=Ye,V=Et,G=mt;return!t(p)&&!t(l)&&t(g)?(n(),P(Se(t(d)),je({key:0,ref_key:"card",ref:le},t(s),{icon:"i-lucide-images",title:"Visual diff",help:"visual-diff"}),Ie({subtitle:C(()=>[u("span",null,"vs last pass in run #"+v(t(g).baselineRunId),1)]),actions:C(()=>[k(q,{color:t(j),variant:"subtle",size:"sm",class:"font-mono tabular-nums"},{default:C(()=>[z(v(t(A))+"% changed ",1)]),_:1},8,["color"])]),default:C(()=>[t(g).dimensionMismatch?(n(),P(M,{key:0,class:"mb-3",color:"warning",icon:"i-lucide-alert-triangle",variant:"subtle",title:"Screenshot dimensions differ",description:"The failing and passing screenshots have different sizes (viewport change?). They are compared on a padded canvas, so the changed-pixel ratio is inflated and unreliable."})):$("",!0),u("div",Zo,[k(V,{modelValue:t(T),"onUpdate:modelValue":y[0]||(y[0]=Z=>ze(T)?T.value=Z:null),items:I,size:"xs",content:!1,ui:{list:"overflow-x-auto",trigger:"shrink-0"}},null,8,["modelValue"])]),t(T)==="overlay"?(n(),c("div",Wo,[u("img",{src:t(b),alt:"Diff overlay (red = changed pixels)",class:"w-full max-h-96 object-contain cursor-zoom-in outline-none focus-visible:outline-2 focus-visible:outline-primary",loading:"lazy",role:"button",tabindex:"0","aria-label":"Open diff overlay in lightbox",onClick:y[1]||(y[1]=Z=>B.value=2),onKeydown:[y[2]||(y[2]=pe(Z=>B.value=2,["enter"])),y[3]||(y[3]=pe(ge(Z=>B.value=2,["prevent"]),["space"]))]},null,40,Jo),y[11]||(y[11]=u("p",{class:"px-2 py-1 text-[10px] text-gray-500"},"Red pixels mark differences against the last passing run",-1))])):(n(),c("div",Go,[u("div",Yo,[y[12]||(y[12]=u("p",{class:"px-2 py-1 text-[10px] font-medium text-red-600 dark:text-red-400"},"Failing",-1)),u("img",{src:t(L),alt:"Failing screenshot",class:"w-full max-h-80 object-contain cursor-zoom-in outline-none focus-visible:outline-2 focus-visible:outline-primary",loading:"lazy",role:"button",tabindex:"0","aria-label":"Open failing screenshot in lightbox",onClick:y[4]||(y[4]=Z=>B.value=0),onKeydown:[y[5]||(y[5]=pe(Z=>B.value=0,["enter"])),y[6]||(y[6]=pe(ge(Z=>B.value=0,["prevent"]),["space"]))]},null,40,Qo)]),u("div",Xo,[u("p",es," Last pass (run #"+v(t(g).baselineRunId)+") ",1),u("img",{src:t(x),alt:"Last passing screenshot",class:"w-full max-h-80 object-contain cursor-zoom-in outline-none focus-visible:outline-2 focus-visible:outline-primary",loading:"lazy",role:"button",tabindex:"0","aria-label":"Open last passing screenshot in lightbox",onClick:y[7]||(y[7]=Z=>B.value=1),onKeydown:[y[8]||(y[8]=pe(Z=>B.value=1,["enter"])),y[9]||(y[9]=pe(ge(Z=>B.value=1,["prevent"]),["space"]))]},null,40,ts)])])),k(G,{modelValue:t(B),"onUpdate:modelValue":y[10]||(y[10]=Z=>ze(B)?B.value=Z:null),images:t(E)},null,8,["modelValue","images"])]),_:2},[e.storageKey?{name:"folded",fn:C(()=>[u("span",null,v(t(D)),1)]),key:"0"}:void 0]),1040)):$("",!0)}}}),Oa=Object.assign(ns,{__name:"VisualDiffCard"}),os={class:"max-h-96 overflow-y-auto"},ss={key:0,class:"mt-2 text-xs text-gray-400 dark:text-gray-500"},Ze=2e4,as=te({__name:"DomSnapshotCard",props:{runId:{},testRunsCaseId:{},storageKey:{}},setup(e,{expose:r}){const i=e,d=S(()=>i.storageKey?Ke:Ne),s=S(()=>i.storageKey?{storageKey:i.storageKey}:{}),{data:a,pending:o,error:p}=Me(()=>`/api/test-runs/${i.runId}/cases/${i.testRunsCaseId}/dom-snapshot`,{lazy:!0},"$AxHFpokm2o"),l=S(()=>(a.value?.html??"").slice(0,Ze)),g=S(()=>(a.value?.html?.length??0)>Ze),T=S(()=>{const x=a.value;return!x||x.status!=="ok"?"":`${Math.round((x.html?.length??0)/1024)} KB · rendered from the uploaded trace${x.snapshotName?` (${x.snapshotName})`:""}`}),{copy:I,copied:b}=He(),L=U(null);return r({reveal:()=>L.value?.reveal?.()}),(x,A)=>{const j=Ae,D=Ot,E=Ut;return!t(o)&&!t(p)&&t(a)?.status==="ok"&&t(a).html?(n(),P(Se(t(d)),je({key:0,ref_key:"card",ref:L},t(s),{icon:"i-lucide-file-code",title:"DOM snapshot",help:"dom-snapshot",subtitle:t(T)}),Ie({actions:C(()=>[k(D,{text:t(b)?"Copied!":"Copy full HTML"},{default:C(()=>[k(j,{size:"xs",variant:"ghost",color:"neutral",icon:t(b)?"i-lucide-check":"i-lucide-clipboard",onClick:A[0]||(A[0]=B=>t(I)(t(a).html))},null,8,["icon"])]),_:1},8,["text"])]),default:C(()=>[u("div",os,[k(E,{code:t(l),lang:"xml"},null,8,["code"])]),t(g)||t(a).truncated?(n(),c("p",ss,[t(g)?(n(),c(H,{key:0},[z("Showing the first "+v(Math.round(Ze/1e3))+"k characters — use Copy for the full document.",1)],64)):(n(),c(H,{key:1},[z("The snapshot was truncated to its size cap.")],64))])):$("",!0)]),_:2},[e.storageKey?{name:"folded",fn:C(()=>[u("span",null,"Failure-time HTML extracted from the trace — "+v(Math.round((t(a).html.length??0)/1024))+" KB",1)]),key:"0"}:void 0]),1040,["subtitle"])):$("",!0)}}}),Ua=Object.assign(as,{__name:"DomSnapshotCard"}),rs={class:"rounded-md border border-default overflow-hidden"},is={class:"text-xs font-semibold text-gray-600 dark:text-gray-300 flex-1"},ls={key:0,class:"text-gray-400 font-normal ml-1"},cs={key:0},us=te({__name:"TestEvidenceSection",props:We({icon:{},label:{},count:{},collapsible:{type:Boolean}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:["update:open"],setup(e){const r=e,i=st(e,"open"),d=S(()=>r.collapsible===!1||i.value);return(s,a)=>{const o=ve;return n(),c("div",rs,[(n(),P(Se(e.collapsible===!1?"div":"button"),{class:ae(["w-full flex items-center gap-1.5 px-3 py-2 bg-elevated border-b border-default text-left",e.collapsible!==!1&&"hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors cursor-pointer"]),onClick:a[0]||(a[0]=p=>e.collapsible!==!1&&(i.value=!i.value))},{default:C(()=>[k(o,{name:e.icon,class:"size-3.5 shrink-0 text-primary/70"},null,8,["name"]),u("span",is,[z(v(e.label),1),e.count!=null?(n(),c("span",ls,"("+v(e.count)+")",1)):$("",!0)]),e.collapsible!==!1?(n(),P(o,{key:0,name:i.value?"i-lucide-chevron-up":"i-lucide-chevron-down",class:"size-3.5 text-gray-400"},null,8,["name"])):$("",!0)]),_:1},8,["class"])),t(d)?(n(),c("div",cs,[Oe(s.$slots,"default")])):$("",!0)])}}}),Qe=Object.assign(us,{__name:"TestEvidenceSection"}),ds={class:"grid grid-cols-2 gap-2 p-2 bg-gray-50 dark:bg-gray-900"},fs=["aria-label","onClick","onKeydown"],ms=["src","alt"],ps={class:"absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity bg-black/30"},gs={class:"absolute bottom-0 inset-x-0 px-1.5 py-0.5 text-[10px] text-white bg-black/50 truncate"},hs=te({__name:"TestEvidenceScreenshots",props:{attachments:{}},setup(e){const r=e,i=Re();function d(o){return o.split("/").pop()||o}const s=S(()=>r.attachments.filter(o=>Mt(o.path,o.contentType)).map(o=>({src:Ue(o.path,o.contentType,i.app?.baseURL),name:o.name||d(o.path)}))),a=U(null);return(o,p)=>{const l=ve,g=mt,T=Qe;return t(s).length>0?(n(),P(T,{key:0,icon:"i-lucide-image",label:"Screenshots",count:t(s).length,collapsible:!1},{default:C(()=>[u("div",ds,[(n(!0),c(H,null,se(t(s),(I,b)=>(n(),c("div",{key:I.src,class:"relative group cursor-pointer rounded overflow-hidden border border-default outline-none focus-visible:outline-2 focus-visible:outline-primary",role:"button",tabindex:"0","aria-label":`View screenshot ${I.name}`,onClick:L=>a.value=b,onKeydown:[pe(L=>a.value=b,["enter"]),pe(ge(L=>a.value=b,["prevent"]),["space"])]},[u("img",{src:I.src,alt:I.name,class:"w-full h-28 object-cover object-top transition-opacity group-hover:opacity-80",loading:"lazy"},null,8,ms),u("div",ps,[k(l,{name:"i-lucide-zoom-in",class:"size-5 text-white"})]),u("p",gs,v(I.name),1)],40,fs))),128))]),k(g,{modelValue:t(a),"onUpdate:modelValue":p[0]||(p[0]=I=>ze(a)?a.value=I:null),images:t(s)},null,8,["modelValue","images"])]),_:1},8,["count"])):$("",!0)}}}),ja=Object.assign(hs,{__name:"TestEvidenceScreenshots"}),vs={class:"m-0"},ys={class:"bg-black rounded overflow-hidden"},xs=["src"],bs=["title"],ks=te({__name:"VideoPlayer",props:{src:{},label:{}},setup(e){return(r,i)=>(n(),c("figure",vs,[u("div",ys,[u("video",{src:e.src,controls:"",preload:"metadata",class:"w-full max-h-96"}," Your browser does not support the video tag. ",8,xs)]),e.label?(n(),c("figcaption",{key:0,class:"mt-1 text-xs text-gray-400 truncate",title:e.label},v(e.label),9,bs)):$("",!0)]))}}),_s=Object.assign(ks,{__name:"VideoPlayer"}),$s={class:"space-y-2 p-2 bg-gray-50 dark:bg-gray-900"},ws=te({__name:"TestEvidenceVideos",props:{attachments:{}},setup(e){const r=e,i=Re();function d(a){return a.split("/").pop()||a}const s=S(()=>r.attachments.filter(a=>Nt(a.path,a.contentType)).map(a=>({src:Ue(a.path,a.contentType,i.app?.baseURL),name:a.name||d(a.path)})));return(a,o)=>{const p=_s,l=Qe;return t(s).length>0?(n(),P(l,{key:0,icon:"i-lucide-video",label:"Videos",count:t(s).length,collapsible:!1},{default:C(()=>[u("div",$s,[(n(!0),c(H,null,se(t(s),g=>(n(),P(p,{key:g.src,src:g.src,label:g.name},null,8,["src","label"]))),128))])]),_:1},8,["count"])):$("",!0)}}}),Ma=Object.assign(ws,{__name:"TestEvidenceVideos"}),Cs={class:"flex items-center justify-between gap-2"},Ss={class:"flex items-center gap-2 min-w-0"},Ts={class:"text-sm truncate"},Ls={key:0,class:"text-xs text-gray-400 shrink-0"},zs={key:1,class:"text-xs text-gray-400 shrink-0"},Is={class:"flex items-center gap-1.5 shrink-0"},As=te({__name:"TraceListItem",props:{trace:{},showTime:{type:Boolean,default:!0}},setup(e){const r=e,i=Re(),d=S(()=>(i.app?.baseURL??"/").replace(/\/$/,"")),s=S(()=>!!i.public.demoMode&&r.trace.filePath.startsWith("demo/")),a=S(()=>r.trace.filePath.split("/").pop()||r.trace.filePath),o=S(()=>lt(r.trace.filePath,i.app?.baseURL,s.value)),p=S(()=>s.value?`${d.value}/${r.trace.filePath}`:`${d.value}/api/files/${Bt(r.trace.filePath)}`);return(l,g)=>{const T=ve,I=Ae;return n(),c("div",Cs,[u("div",Ss,[k(T,{name:"i-lucide-file-archive",class:"size-4 text-gray-400 shrink-0"}),u("span",Ts,v(t(a)),1),e.trace.size?(n(),c("span",Ls,v(("formatBytes"in l?l.formatBytes:t(Kt))(e.trace.size)),1)):$("",!0),e.showTime?(n(),c("span",zs,v(("formatRelativeTime"in l?l.formatRelativeTime:t(Ge))(e.trace.createdAt)),1)):$("",!0)]),u("div",Is,[k(I,{to:t(o),target:"_blank",icon:"i-lucide-bug-play",size:"xs",label:"View trace"},null,8,["to"]),k(I,{to:t(p),target:"_blank",icon:"i-lucide-download",size:"xs",color:"neutral",variant:"soft",label:"Download"},null,8,["to"])])])}}}),Rs=Object.assign(As,{__name:"TraceListItem"}),Bs={key:0,class:"flex items-center justify-center py-4"},Ps={key:1,class:"divide-y divide-default"},Es=te({__name:"TestEvidenceTraces",props:{traces:{},loading:{type:Boolean}},setup(e){return(r,i)=>{const d=ve,s=Rs,a=Qe;return e.loading||e.traces.length>0?(n(),P(a,{key:0,icon:"i-lucide-bug-play",label:"Traces",count:e.traces.length||null,collapsible:!1},{default:C(()=>[e.loading&&!e.traces.length?(n(),c("div",Bs,[k(d,{name:"i-lucide-loader-circle",class:"size-4 animate-spin text-gray-400"})])):(n(),c("div",Ps,[(n(!0),c(H,null,se(e.traces,o=>(n(),P(s,{key:o.id,trace:o,class:"px-3 py-2"},null,8,["trace"]))),128))]))]),_:1},8,["count"])):$("",!0)}}}),Na=Object.assign(Es,{__name:"TestEvidenceTraces"}),Os={class:"space-y-2"},Us={key:0,class:"rounded-lg border border-default overflow-hidden"},js=["title"],Ms={key:2,class:"truncate text-gray-400 dark:text-gray-500"},Ns={class:"font-mono"},Ks={key:0,class:"overflow-x-auto text-xs font-mono leading-relaxed py-1"},Ds={class:"min-w-max"},Vs={key:1,class:"rounded-lg border border-dashed border-default"},Hs=["onClick"],Fs={key:0,class:"px-3 pb-2 space-y-1"},qs=["title"],Zs={key:0,class:"truncate font-mono shrink-0"},Ws=te({__name:"TraceCallStack",props:{frames:{},projectKey:{},projectName:{}},setup(e){const r=e,i=S(()=>{if(!r.frames.some(I=>I.inProject))return r.frames.map((I,b)=>({kind:"frame",frame:I,frameIndex:b}));const l=[];let g=[];const T=()=>{g.length!==0&&(l.push({kind:"group",frames:g,key:`group-${l.length}`}),g=[])};return r.frames.forEach((I,b)=>{I.inProject?(T(),l.push({kind:"frame",frame:I,frameIndex:b})):g.push(I)}),T(),l}),d=S(()=>{const p=r.frames.findIndex(l=>l.inProject);return p>=0?p:0}),s=U(new Set);function a(p){const l=new Set(s.value);l.has(p)?l.delete(p):l.add(p),s.value=l}function o(p){return p.source?p.source.lines.map((l,g)=>{const T=p.source.startLine+g;return{lineNo:T,text:l,failing:T===p.line}}):[]}return(p,l)=>{const g=ve,T=ct,I=Be;return n(),c("div",Os,[(n(!0),c(H,null,se(t(i),b=>(n(),c(H,{key:b.kind==="frame"?`f-${b.frameIndex}`:b.key},[b.kind==="frame"?(n(),c("div",Us,[u("div",{class:ae(["flex items-center gap-2 px-3 py-1.5 bg-elevated/40 text-xs",b.frame.source?"border-b border-default":""])},[k(g,{name:b.frameIndex===t(d)?"i-lucide-circle-x":"i-lucide-corner-left-up",class:ae([b.frameIndex===t(d)?"text-red-500":"text-gray-400","size-3.5 shrink-0"])},null,8,["name","class"]),b.frame.inProject?(n(),P(T,{key:0,"file-path":b.frame.file,line:b.frame.line,column:b.frame.column,"project-key":e.projectKey,"project-name":e.projectName,class:"min-w-0"},null,8,["file-path","line","column","project-key","project-name"])):(n(),c("code",{key:1,class:"truncate text-gray-500 dark:text-gray-400",title:b.frame.absFile||b.frame.file},v(b.frame.file)+":"+v(b.frame.line),9,js)),b.frame.functionName?(n(),c("span",Ms,[l[0]||(l[0]=z(" in ",-1)),u("span",Ns,v(b.frame.functionName),1)])):$("",!0),k(I,{color:b.frameIndex===t(d)?"error":"neutral",variant:"subtle",size:"xs",class:"ml-auto shrink-0"},{default:C(()=>[z(v(b.frameIndex===t(d)?"Failed here":"Caller"),1)]),_:2},1032,["color"])],2),b.frame.source?(n(),c("div",Ks,[u("div",Ds,[(n(!0),c(H,null,se(o(b.frame),L=>(n(),c("div",{key:L.lineNo,class:ae(["px-3 whitespace-pre flex",L.failing?"bg-red-50 dark:bg-red-950/30 text-red-700 dark:text-red-300 font-medium":"text-gray-600 dark:text-gray-400"])},[u("span",{class:ae(["w-10 shrink-0 text-right pr-3 tabular-nums select-none",L.failing?"text-red-400 dark:text-red-500":"text-gray-300 dark:text-gray-600"])},v(L.lineNo),3),u("span",null,v(L.text),1)],2))),128))])])):$("",!0)])):(n(),c("div",Vs,[u("button",{type:"button",class:"w-full flex items-center gap-2 px-3 py-1.5 text-xs text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-300",onClick:L=>a(b.key)},[k(g,{name:t(s).has(b.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5 shrink-0"},null,8,["name"]),z(" "+v(b.frames.length)+" frame"+v(b.frames.length===1?"":"s")+" in dependencies ",1)],8,Hs),t(s).has(b.key)?(n(),c("div",Fs,[(n(!0),c(H,null,se(b.frames,(L,x)=>(n(),c("div",{key:x,class:"flex items-center gap-2 text-xs text-gray-400 dark:text-gray-500 min-w-0"},[k(g,{name:"i-lucide-corner-left-up",class:"size-3 shrink-0"}),u("code",{class:"truncate",title:L.absFile||L.file},v(L.file)+":"+v(L.line),9,qs),L.functionName?(n(),c("span",Zs,v(L.functionName),1)):$("",!0)]))),128))])):$("",!0)]))],64))),128))])}}}),Ka=Object.assign(Ws,{__name:"TraceCallStack"}),Js={class:"space-y-2"},Gs={class:"flex items-center gap-2 px-3 py-1.5 bg-elevated/40 border-b border-default text-xs"},Ys={class:"overflow-x-auto text-xs font-mono leading-relaxed py-1"},Qs={class:"min-w-max"},Xs=te({__name:"TestSourceStack",props:{frames:{},projectKey:{},projectName:{}},setup(e){function r(i){return i.split(`
|
|
5
|
+
`).map(d=>({text:d,failing:d.startsWith(">")}))}return(i,d)=>{const s=ve,a=ct,o=Be;return n(),c("div",Js,[(n(!0),c(H,null,se(e.frames,(p,l)=>(n(),c("div",{key:`${p.file}:${p.line}:${l}`,class:"rounded-lg border border-default overflow-hidden"},[u("div",Gs,[k(s,{name:l===0?"i-lucide-circle-x":"i-lucide-corner-left-up",class:ae([l===0?"text-red-500":"text-gray-400","size-3.5 shrink-0"])},null,8,["name","class"]),k(a,{"file-path":p.file,line:p.line,"project-key":e.projectKey,"project-name":e.projectName,class:"min-w-0"},null,8,["file-path","line","project-key","project-name"]),k(o,{color:l===0?"error":"neutral",variant:"subtle",size:"xs",class:"ml-auto shrink-0"},{default:C(()=>[z(v(l===0?"Failed here":"Caller"),1)]),_:2},1032,["color"])]),u("div",Ys,[u("div",Qs,[(n(!0),c(H,null,se(r(p.snippet),(g,T)=>(n(),c("div",{key:T,class:ae(["px-3 whitespace-pre",g.failing?"bg-red-50 dark:bg-red-950/30 text-red-700 dark:text-red-300 font-medium":"text-gray-600 dark:text-gray-400"])},v(g.text),3))),128))])])]))),128))])}}}),Da=Object.assign(Xs,{__name:"TestSourceStack"}),ea={class:"space-y-3 text-sm"},ta={key:0,class:"flex flex-col gap-0.5"},na={class:"text-xs font-mono break-all"},oa={key:1,class:"flex flex-col gap-0.5"},sa={class:"text-xs font-mono break-all"},aa={class:"grid grid-cols-1 gap-3 sm:grid-cols-2"},ra={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},ia={key:0,class:"text-xs text-gray-400"},la={key:1,class:"mt-1 space-y-0.5"},ca={class:"text-gray-400"},ua={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},da={key:0,class:"text-xs text-gray-400"},fa={key:1,class:"mt-1 space-y-0.5"},ma={key:0,class:"text-gray-400"},pa={class:"text-gray-400"},ga=te({__name:"PageStateCard",props:{pageState:{},storageKey:{},plain:{type:Boolean}},setup(e){const r=e,i=S(()=>r.plain?"div":r.storageKey?Ke:Ne),d=S(()=>r.plain?{}:{icon:"i-lucide-database",title:"App state at test end",help:"page-state",...r.storageKey?{storageKey:r.storageKey}:{}}),s=o=>[o.httpOnly?"HttpOnly":null,o.secure?"Secure":null,o.sameSite??null].filter(Boolean).join(", "),a=S(()=>{const o=r.pageState;return[`${o.localStorage.length} localStorage`,`${o.sessionStorage.length} sessionStorage`,`${o.cookies.length} cookie${o.cookies.length===1?"":"s"}`].join(" · ")});return(o,p)=>(n(),P(Se(t(i)),St(Tt(t(d))),Ie({default:C(()=>[u("div",ea,[e.pageState.url?(n(),c("div",ta,[p[0]||(p[0]=u("span",{class:"text-xs font-medium text-gray-500 dark:text-gray-400"},"URL",-1)),u("code",na,v(e.pageState.url)+v(e.pageState.hash??""),1)])):$("",!0),e.pageState.historyState?(n(),c("div",oa,[p[1]||(p[1]=u("span",{class:"text-xs font-medium text-gray-500 dark:text-gray-400"},"History state",-1)),u("code",sa,v(e.pageState.historyState),1)])):$("",!0),u("div",aa,[(n(!0),c(H,null,se({localStorage:e.pageState.localStorage,sessionStorage:e.pageState.sessionStorage},(l,g)=>(n(),c("div",{key:g},[u("span",ra,v(g)+" ("+v(l.length)+")",1),l.length===0?(n(),c("p",ia,"empty")):(n(),c("ul",la,[(n(!0),c(H,null,se(l,T=>(n(),c("li",{key:T.key,class:"text-xs font-mono truncate"},[z(v(T.key)+" ",1),u("span",ca,"("+v(T.length)+" ch)",1)]))),128))]))]))),128))]),u("div",null,[u("span",ua,"Cookies ("+v(e.pageState.cookies.length)+")",1),e.pageState.cookies.length===0?(n(),c("p",da,"none")):(n(),c("ul",fa,[(n(!0),c(H,null,se(e.pageState.cookies,l=>(n(),c("li",{key:l.name+l.domain,class:"text-xs font-mono truncate"},[z(v(l.name)+" ",1),s(l)?(n(),c("span",ma,"["+v(s(l))+"]",1)):$("",!0),u("span",pa,"· "+v(l.domain),1)]))),128))]))]),p[2]||(p[2]=u("p",{class:"text-[11px] text-gray-400 dark:text-gray-500"}," Storage values and cookie values are never captured — key names, lengths and flags only. ",-1))])]),_:2},[e.storageKey&&!e.plain?{name:"folded",fn:C(()=>[u("span",null,v(t(a)),1)]),key:"0"}:void 0]),1040))}}),Va=Object.assign(ga,{__name:"PageStateCard"});function Ha(e={}){const r=U(!1),i=Je();let d=null;async function s(a,o,p={}){try{typeof ClipboardItem<"u"?await navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([a],{type:"text/plain"}),"text/html":new Blob([o],{type:"text/html"})})]):await navigator.clipboard.writeText(a),r.value=!0,d&&clearTimeout(d),d=setTimeout(()=>{r.value=!1,d=null},e.duration??2e3),p.toast&&i.add({title:typeof p.toast=="string"?p.toast:"Copied to clipboard",icon:"i-lucide-check",color:"success",duration:2e3})}catch{}}return{copyRich:s,copied:r}}export{Qe as _,ja as a,Ma as b,Na as c,Ka as d,Da as e,Va as f,tn as g,Ke as h,Pa as i,Ea as j,Oa as k,Ua as l,Ba as m,Rs as n,_s as o,mt as p,Ha as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{bW as e}from"./Du2W7Jne.js";import{h as a}from"./BjaRappk.js";const n=[{id:"account",label:"Account",icon:"i-lucide-user-round",to:"/settings/account",authOnly:!0,fields:[{id:"account.display-name",label:"Display name",help:"account.display-name"},{id:"account.email",label:"Email address",help:"account.email"},{id:"account.connected-accounts",label:"Connected accounts",help:"account.connected-accounts"},{id:"account.password",label:"Password",help:"account.password"},{id:"account.auth-toggle",label:"Authentication",help:"settings.auth-toggle",envOnly:!0}]},{id:"users",label:"Users",icon:"i-lucide-users",to:"/settings/users",roles:[e.ADMINISTRATOR],authOnly:!0,introHelp:"settings.users",fields:[{id:"users.list",label:"Users & roles",help:"settings.users"},{id:"users.api-keys",label:"API keys",help:"settings.api-keys"}]},{id:"notifications",label:"Notifications",icon:"i-lucide-bell",to:"/settings/notifications",fields:[{id:"notifications.smtp",label:"SMTP email delivery",help:"settings.smtp",envOnly:!0},{id:"notifications.test-email",label:"Send test email",help:"notifications.test-email"},{id:"notifications.channels",label:"Notification channels",help:"notifications.channels"},{id:"notifications.subscriptions",label:"My subscriptions",help:"notifications.subscriptions"}]},{id:"tags",label:"Tags",icon:"i-lucide-tags",to:"/settings/tags",roles:[e.ADMINISTRATOR],introHelp:"settings.tags",fields:[{id:"tags.list",label:"Tags",help:"settings.tags"}]},{id:"storage",label:"Storage",icon:"i-lucide-hard-drive",to:"/settings/storage",roles:[e.ADMINISTRATOR],fields:[{id:"storage.backend",label:"Storage backend",help:"settings.storage-backend",envOnly:!0},{id:"storage.stats",label:"Storage statistics",help:"settings.storage-stats"},{id:"storage.cleanup",label:"Cleanup old test runs",help:"settings.cleanup"}]},{id:"wasted-time",label:"Wasted time",icon:"i-lucide-hourglass",to:"/settings/wasted-time",roles:[e.ADMINISTRATOR],introHelp:"settings.wasted-time",fields:[{id:"wasted-time.patterns",label:"Wasted-time patterns",help:"settings.wasted-time"}]},{id:"timeout-hygiene",label:"Timeout hygiene",icon:"i-lucide-scissors",to:"/settings/timeout-hygiene",roles:[e.ADMINISTRATOR],introHelp:"settings.timeout-hygiene",fields:[{id:"timeout-hygiene.thresholds",label:"Detection thresholds",help:"settings.timeout-hygiene"}]},{id:"pr-feedback",label:"Pull requests",icon:"i-lucide-git-pull-request",to:"/settings/pr-feedback",roles:[e.ADMINISTRATOR],introHelp:"settings.pr-feedback",fields:[{id:"pr-feedback.settings",label:"Pull-request feedback",help:"settings.pr-feedback"}]},{id:"ai",label:"AI diagnosis",icon:"i-lucide-sparkles",to:"/settings/ai",roles:[e.ADMINISTRATOR],fields:[{id:"ai.diagnosis",label:"Diagnosis model",help:"settings.ai-provider"},{id:"ai.research",label:"Research model",help:"settings.ai-research"},{id:"ai.embedding",label:"Embedding model",help:"settings.embedding-model"},{id:"ai.auto-diagnose",label:"Auto-diagnose",help:"settings.auto-diagnose"},{id:"ai.context-limits",label:"Diagnosis context limits",help:"settings.ai-limits"},{id:"ai.instructions",label:"Global analysis instructions",help:"settings.ai-instructions"},{id:"ai.scm-token",label:"Repository access token",help:"project.scm-token"},{id:"ai.privacy",label:"Privacy notice",help:"settings.privacy"}]},{id:"about",label:"About",icon:"i-lucide-info",to:"/settings/about",fields:[]}];function o(t){return a(t.help)}function r(t){const i=new Set;for(const s of t.fields)for(const l of o(s))i.add(l);return[...i]}function g(t){const i=n.find(s=>s.id===t);if(!i)throw new Error(`Unknown settings page: ${t}`);return i}export{n as S,g,r as p};
|