@piwitests/server 0.24.0 → 0.25.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/{DbmGeOus.js → 5nOoVJzL.js} +1 -1
- package/.output/public/_nuxt/6DSY_93j.js +1 -0
- package/.output/public/_nuxt/7vRR5W2L.js +1 -0
- package/.output/public/_nuxt/{DM3bDZC6.js → 9Dtlg-K4.js} +1 -1
- package/.output/public/_nuxt/9Yziijlb.js +1 -0
- package/.output/public/_nuxt/{BakMHV79.js → B-onBCAB.js} +1 -1
- package/.output/public/_nuxt/B2bK5uNR.js +1 -0
- package/.output/public/_nuxt/{BkM2KXUo.js → B63B19Iv.js} +2 -2
- package/.output/public/_nuxt/{BFxvHlO9.js → B77w1Eib.js} +1 -1
- package/.output/public/_nuxt/{Drw8yQg6.js → BC5bqlfM.js} +1 -1
- package/.output/public/_nuxt/{CJ1rmnk4.js → BF5JDf9_.js} +1 -1
- package/.output/public/_nuxt/BFVrl1ss.js +1 -0
- package/.output/public/_nuxt/{CjtjQV60.js → BIHMeNW-.js} +1 -1
- package/.output/public/_nuxt/BKqOGcst.js +1 -0
- package/.output/public/_nuxt/{Bme1UkOl.js → BLqooxh5.js} +1 -1
- package/.output/public/_nuxt/{D0Kop4bS.js → BMfTUMYy.js} +1 -1
- package/.output/public/_nuxt/{V9p3z39z.js → BOrnSpTA.js} +1 -1
- package/.output/public/_nuxt/{DEvYVl9M.js → BPQNVV4M.js} +1 -1
- package/.output/public/_nuxt/{DuOH5jcQ.js → BSKLNgre.js} +1 -1
- package/.output/public/_nuxt/BTCWUyBX.js +1 -0
- package/.output/public/_nuxt/BUYmGTVP.js +1 -0
- package/.output/public/_nuxt/{CgkXEZMo.js → BWddBCom.js} +1 -1
- package/.output/public/_nuxt/{B33YjaHr.js → BYQ9lXQb.js} +1 -1
- package/.output/public/_nuxt/BYWQ47QQ.js +5 -0
- package/.output/public/_nuxt/{BvAfKk6C.js → BYnqoVCE.js} +1 -1
- package/.output/public/_nuxt/{-COcylA_.js → BaU2hm4B.js} +1 -1
- package/.output/public/_nuxt/{6Z_ZwH8I.js → BbXvpkBp.js} +1 -1
- package/.output/public/_nuxt/Bb_925DD.js +1 -0
- package/.output/public/_nuxt/BcHU1KNK.js +1 -0
- package/.output/public/_nuxt/BdUGUwvE.js +1 -0
- package/.output/public/_nuxt/{DPZBpFOX.js → BeQq85yJ.js} +2 -2
- package/.output/public/_nuxt/Bg8yOdSf.js +1 -0
- package/.output/public/_nuxt/BhzfJaPC.js +1 -0
- package/.output/public/_nuxt/{D1vqYZsL.js → Bkb-0yS0.js} +4 -4
- package/.output/public/_nuxt/BmweLu9g.js +2 -0
- package/.output/public/_nuxt/Boyv6hLW.js +1 -0
- package/.output/public/_nuxt/{BtSGUY-7.js → Bq4xEWLF.js} +4 -4
- package/.output/public/_nuxt/{CMuzkARi.js → BraJd4EA.js} +1 -1
- package/.output/public/_nuxt/BvXrhZ8k.js +1 -0
- package/.output/public/_nuxt/{B8H4XydJ.js → Bw4oIhct.js} +1 -1
- package/.output/public/_nuxt/BxSrScjV.js +1 -0
- package/.output/public/_nuxt/Byqt8JHG.js +1 -0
- package/.output/public/_nuxt/{C5TrTuWv.js → BzBaMPgu.js} +3 -3
- package/.output/public/_nuxt/{BKrWWV14.js → C1-8_6cB.js} +1 -1
- package/.output/public/_nuxt/{CjBktNrC.js → C7SG50jD.js} +1 -1
- package/.output/public/_nuxt/{BkxRbXIj.js → C8WgBDU1.js} +1 -1
- package/.output/public/_nuxt/C8uZoJVq.js +1 -0
- package/.output/public/_nuxt/{Bg93Rnts.js → CBQXv4bU.js} +2 -2
- package/.output/public/_nuxt/CDEmotIt.js +1 -0
- package/.output/public/_nuxt/CIBOv3Ge.js +2 -0
- package/.output/public/_nuxt/CO7j4p5r.js +1 -0
- package/.output/public/_nuxt/COMhp7lz.js +1 -0
- package/.output/public/_nuxt/{CsV7pmcT.js → CPiLUjjx.js} +1 -1
- package/.output/public/_nuxt/{D_y2VS8k.js → CTYlay1H.js} +1 -1
- package/.output/public/_nuxt/{VACXezo0.js → CVEk4D8I.js} +1 -1
- package/.output/public/_nuxt/{P5uOaRUZ.js → CbuK1HIv.js} +1 -1
- package/.output/public/_nuxt/{opyDpgSw.js → CdLqOMvN.js} +1 -1
- package/.output/public/_nuxt/CdM2qNYM.js +2 -0
- package/.output/public/_nuxt/Ch8sGLqE.js +1 -0
- package/.output/public/_nuxt/CkdznmkX.js +1 -0
- package/.output/public/_nuxt/{B1LUinhp.js → Cmuwgbf4.js} +1 -1
- package/.output/public/_nuxt/{Ce5_Tq63.js → CnRNwiuE.js} +1 -1
- package/.output/public/_nuxt/{Bp3FRuEm.js → CnsaoeEq.js} +1 -1
- package/.output/public/_nuxt/{BUnwEAjq.js → Cp0V2FeW.js} +1 -1
- package/.output/public/_nuxt/Cvw4EFTy.js +17 -0
- package/.output/public/_nuxt/CwDej2Lz.js +1 -0
- package/.output/public/_nuxt/D-wlhH6J.js +1 -0
- package/.output/public/_nuxt/D5Mhpp98.js +1 -0
- package/.output/public/_nuxt/{CDTeSrLO.js → D8ixf-ZR.js} +5 -5
- package/.output/public/_nuxt/{DMWfVJCj.js → DBvdRbTA.js} +2 -2
- package/.output/public/_nuxt/DDho3MJD.js +1 -0
- package/.output/public/_nuxt/DEGHW4pO.js +1 -0
- package/.output/public/_nuxt/{BoNKdx5o.js → DHSYRMJp.js} +1 -1
- package/.output/public/_nuxt/DH_LEqhd.js +2 -0
- package/.output/public/_nuxt/{BVLqydCr.js → DIqik40e.js} +1 -1
- package/.output/public/_nuxt/DLwuL-qR.js +1 -0
- package/.output/public/_nuxt/{CIpF9l75.js → DPDFGVb_.js} +2 -2
- package/.output/public/_nuxt/DRNHuVn4.js +2 -0
- package/.output/public/_nuxt/{DcR0Mmdl.js → DUtYU4Sb.js} +1 -1
- package/.output/public/_nuxt/{opwuUqHG.js → DWl73MJR.js} +1 -1
- package/.output/public/_nuxt/{BCGljaM0.js → DWz_bHNP.js} +1 -1
- package/.output/public/_nuxt/{DGq4A2Pd.js → D_SCB-z2.js} +1 -1
- package/.output/public/_nuxt/{DMAiMrNr.js → D_j436ND.js} +1 -1
- package/.output/public/_nuxt/DamzjN7l.js +1 -0
- package/.output/public/_nuxt/Db5xe__T.js +1 -0
- package/.output/public/_nuxt/{CpcrljrH.js → DcUBmKKE.js} +1 -1
- package/.output/public/_nuxt/DiP18sFE.js +1 -0
- package/.output/public/_nuxt/Die1200X.js +1 -0
- package/.output/public/_nuxt/{BN1zZw5b.js → DihSeDlY.js} +4 -4
- package/.output/public/_nuxt/{DzZpIs4W.js → DkGXOZRW.js} +1 -1
- package/.output/public/_nuxt/{C7fq_rHE.js → DnOtRv65.js} +1 -1
- package/.output/public/_nuxt/DnV-BkUA.js +1 -0
- package/.output/public/_nuxt/DpeRrg68.js +1 -0
- package/.output/public/_nuxt/Dq6_-84R.js +1 -0
- package/.output/public/_nuxt/DqKFKS1b.js +1 -0
- package/.output/public/_nuxt/DrbO0dl5.js +6 -0
- package/.output/public/_nuxt/{Qo6oszaF.js → Ds8_6Fzl.js} +1 -1
- package/.output/public/_nuxt/{BtbpLWDs.js → DvewDI9t.js} +1 -1
- package/.output/public/_nuxt/E26Y1NWH.js +1 -0
- package/.output/public/_nuxt/Hp-_W7z4.js +1 -0
- package/.output/public/_nuxt/OanUGF_v.js +1 -0
- package/.output/public/_nuxt/{CX_G-FHC.js → RSS6R9Te.js} +13 -13
- package/.output/public/_nuxt/{BmzxRbcg.js → VqLetC2g.js} +1 -1
- package/.output/public/_nuxt/WCZdf9Ln.js +1 -0
- package/.output/public/_nuxt/{DF6Mes5z.js → Yl6iqHwK.js} +4 -4
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/03f2d81b-8c58-4ea8-9a9d-7553c8ca4af6.json +1 -0
- package/.output/public/_nuxt/{entry.DzPSf_u5.css → entry.DVKh2Fd6.css} +1 -1
- package/.output/public/_nuxt/iUf7K_JR.js +1 -0
- package/.output/public/_nuxt/{C8Paf_V1.js → kDEwM7SQ.js} +1 -1
- package/.output/public/_nuxt/{Bd8B-yeR.js → knaDbxMJ.js} +1 -1
- package/.output/public/_nuxt/lnpLc047.js +1 -0
- package/.output/public/_nuxt/{CD8ZzAFC.js → mhvG7mu8.js} +1 -1
- package/.output/public/_nuxt/{BgABj4Ty.js → qUaN2ZW8.js} +4 -4
- package/.output/public/_nuxt/qeqzb80l.js +1 -0
- package/.output/public/_nuxt/{Fsw2W4TA.js → uj92NYTx.js} +2 -2
- package/.output/public/_nuxt/vOZZ2cLi.js +1 -0
- package/.output/public/_nuxt/{CGHV0Y2d.js → zAFiz2Mg.js} +1 -1
- package/.output/public/demo/seed.version.json +2 -2
- package/.output/server/chunks/build/{Alert-He-UxEt6.mjs → Alert-BhTWQzM5.mjs} +2 -2
- package/.output/server/chunks/build/Alert-BhTWQzM5.mjs.map +1 -0
- package/.output/server/chunks/build/{Breadcrumb-DEP2dVCZ.mjs → Breadcrumb-BJnPB2AW.mjs} +3 -3
- package/.output/server/chunks/build/Breadcrumb-BJnPB2AW.mjs.map +1 -0
- package/.output/server/chunks/build/{BreadcrumbNav-y6nMDYcR.mjs → BreadcrumbNav-C6Cun6tF.mjs} +3 -3
- package/.output/server/chunks/build/BreadcrumbNav-C6Cun6tF.mjs.map +1 -0
- package/.output/server/chunks/build/{BrowserBadge-DIASU8Gf.mjs → BrowserBadge-T1KRMIXA.mjs} +4 -4
- package/.output/server/chunks/build/BrowserBadge-T1KRMIXA.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartCard-ZTsCvItQ.mjs → ChartCard-D_asI_WF.mjs} +2 -2
- package/.output/server/chunks/build/ChartCard-D_asI_WF.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartMarkerTooltip-u_1DUHh-.mjs → ChartMarkerTooltip-DscESDg7.mjs} +3 -3
- package/.output/server/chunks/build/ChartMarkerTooltip-DscESDg7.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-BisdHf8n.mjs → Checkbox-Y9ZiIRkJ.mjs} +6 -6
- package/.output/server/chunks/build/Checkbox-Y9ZiIRkJ.mjs.map +1 -0
- package/.output/server/chunks/build/{CodeBlock-B8BNtZAe.mjs → CodeBlock-Bnn_ps9O.mjs} +4 -4
- package/.output/server/chunks/build/CodeBlock-Bnn_ps9O.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardNavbar-D7-3zBUU.mjs → DashboardNavbar-D37dPEtR.mjs} +3 -3
- package/.output/server/chunks/build/DashboardNavbar-D37dPEtR.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardSidebarToggle-C3HdHvlE.mjs → DashboardSidebarToggle-DzwsZHVx.mjs} +2 -2
- package/.output/server/chunks/build/DashboardSidebarToggle-DzwsZHVx.mjs.map +1 -0
- package/.output/server/chunks/build/{DataLocationCard-CC2-lHiP.mjs → DataLocationCard-CUXgZQEs.mjs} +4 -4
- package/.output/server/chunks/build/DataLocationCard-CUXgZQEs.mjs.map +1 -0
- package/.output/server/chunks/build/{DesktopRunLocallyButton-iNzrDsEs.mjs → DesktopRunLocallyButton-BCmQklj6.mjs} +15 -76
- package/.output/server/chunks/build/DesktopRunLocallyButton-BCmQklj6.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisPanel-BVb2LgHu.mjs → DiagnosisPanel-haHS2azn.mjs} +7 -7
- package/.output/server/chunks/build/DiagnosisPanel-haHS2azn.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisResult-xVgZlfKK.mjs → DiagnosisResult-DqTIOelM.mjs} +10 -10
- package/.output/server/chunks/build/DiagnosisResult-DqTIOelM.mjs.map +1 -0
- package/.output/server/chunks/build/{DurationValue-UX9uajQJ.mjs → DurationValue-D6fQEi5S.mjs} +2 -2
- package/.output/server/chunks/build/DurationValue-D6fQEi5S.mjs.map +1 -0
- package/.output/server/chunks/build/{EmptyState-DC2q_7TD.mjs → EmptyState-C-mCzGhO.mjs} +2 -2
- package/.output/server/chunks/build/EmptyState-C-mCzGhO.mjs.map +1 -0
- package/.output/server/chunks/build/{EntityLinks-Dzn73fbq.mjs → EntityLinks-CRJQM9Vy.mjs} +3 -3
- package/.output/server/chunks/build/EntityLinks-CRJQM9Vy.mjs.map +1 -0
- package/.output/server/chunks/build/{EnvManagedBadge-C-agmABK.mjs → EnvManagedBadge-hyelwXrw.mjs} +4 -4
- package/.output/server/chunks/build/EnvManagedBadge-hyelwXrw.mjs.map +1 -0
- package/.output/server/chunks/build/{ErrorState-CktYyeEZ.mjs → ErrorState-9UPssp7w.mjs} +2 -2
- package/.output/server/chunks/build/ErrorState-9UPssp7w.mjs.map +1 -0
- package/.output/server/chunks/build/{FeatureUnavailable-DHFkwI7t.mjs → FeatureUnavailable-CDw3__eq.mjs} +3 -3
- package/.output/server/chunks/build/FeatureUnavailable-CDw3__eq.mjs.map +1 -0
- package/.output/server/chunks/build/{FormField-GYHKiSI6.mjs → FormField-8vSc-3mb.mjs} +2 -2
- package/.output/server/chunks/build/FormField-8vSc-3mb.mjs.map +1 -0
- package/.output/server/chunks/build/{GetStartedWizard-BpcGYsm2.mjs → GetStartedWizard-Dp_tjhry.mjs} +4 -4
- package/.output/server/chunks/build/GetStartedWizard-Dp_tjhry.mjs.map +1 -0
- package/.output/server/chunks/build/{HelpHint-plioHKA0.mjs → HelpHint-Bfyo3ar6.mjs} +4 -4
- package/.output/server/chunks/build/HelpHint-Bfyo3ar6.mjs.map +1 -0
- package/.output/server/chunks/build/{LoadingState-CwpfmI0W.mjs → LoadingState-CxfFwac9.mjs} +2 -2
- package/.output/server/chunks/build/LoadingState-CxfFwac9.mjs.map +1 -0
- package/.output/server/chunks/build/{MarkerBadge-Biz5--h2.mjs → MarkerBadge-DmubzeuF.mjs} +2 -2
- package/.output/server/chunks/build/MarkerBadge-DmubzeuF.mjs.map +1 -0
- package/.output/server/chunks/build/{MetaStripGroup-A0a72vt5.mjs → MetaStripGroup-C-cNBfC9.mjs} +6 -6
- package/.output/server/chunks/build/MetaStripGroup-C-cNBfC9.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-hKLvVFNp.mjs → Modal-DcNzjvnm.mjs} +2 -2
- package/.output/server/chunks/build/Modal-DcNzjvnm.mjs.map +1 -0
- package/.output/server/chunks/build/{NavbarActions-_YjrSUat.mjs → NavbarActions-VCHW0u67.mjs} +2 -2
- package/.output/server/chunks/build/NavbarActions-VCHW0u67.mjs.map +1 -0
- package/.output/server/chunks/build/{NavigationMenu-RfBOyS32.mjs → NavigationMenu-DG6V0R9Y.mjs} +4 -4
- package/.output/server/chunks/build/NavigationMenu-DG6V0R9Y.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs → OpenInIdeLink-CLj2cTkc.mjs} +5 -5
- package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs.map → OpenInIdeLink-CLj2cTkc.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs → ProjectTestCasesTable-BNd5Fn_G.mjs} +15 -15
- package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs.map → ProjectTestCasesTable-BNd5Fn_G.mjs.map} +1 -1
- package/.output/server/chunks/build/{RovingFocusItem-BOSx1Z9Z.mjs → RovingFocusItem-DkZadRuK.mjs} +2 -2
- package/.output/server/chunks/build/RovingFocusItem-DkZadRuK.mjs.map +1 -0
- package/.output/server/chunks/build/{RunReports-nuLb-Nm3.mjs → RunReports-CnyGcU8K.mjs} +3 -3
- package/.output/server/chunks/build/RunReports-CnyGcU8K.mjs.map +1 -0
- package/.output/server/chunks/build/{RunStatusBadge-CvWmcFYM.mjs → RunStatusBadge-DTqX18X-.mjs} +3 -3
- package/.output/server/chunks/build/RunStatusBadge-DTqX18X-.mjs.map +1 -0
- package/.output/server/chunks/build/{SectionCard-DHAFvJxm.mjs → SectionCard-taTpPtua.mjs} +3 -3
- package/.output/server/chunks/build/SectionCard-taTpPtua.mjs.map +1 -0
- package/.output/server/chunks/build/{Select-CEyw7HGK.mjs → Select-BChKOOsc.mjs} +3 -3
- package/.output/server/chunks/build/Select-BChKOOsc.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs → SelectMenu-DLkMyBsW.mjs} +4 -4
- package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs.map → SelectMenu-DLkMyBsW.mjs.map} +1 -1
- package/.output/server/chunks/build/{Separator-lrN70ODV.mjs → Separator-Dn-4PN3P.mjs} +2 -2
- package/.output/server/chunks/build/Separator-Dn-4PN3P.mjs.map +1 -0
- package/.output/server/chunks/build/{SettingsField-tRmytcEJ.mjs → SettingsField-BLO1C7uY.mjs} +6 -6
- package/.output/server/chunks/build/SettingsField-BLO1C7uY.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-D6cRIqch.mjs → Slideover-BiDJaQrt.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-BiDJaQrt.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-R2n82ncQ.mjs → Switch-Ca3fYrSH.mjs} +4 -4
- package/.output/server/chunks/build/Switch-Ca3fYrSH.mjs.map +1 -0
- package/.output/server/chunks/build/{Table-qZdnm9t2.mjs → Table-DQb34a0A.mjs} +2 -2
- package/.output/server/chunks/build/Table-DQb34a0A.mjs.map +1 -0
- package/.output/server/chunks/build/{Tabs-BDP7MWl4.mjs → Tabs-_ALhm_oG.mjs} +3 -3
- package/.output/server/chunks/build/Tabs-_ALhm_oG.mjs.map +1 -0
- package/.output/server/chunks/build/{TestCaseHistoryChart-CKDXQ2GI.mjs → TestCaseHistoryChart-D-TEUsZ8.mjs} +3 -3
- package/.output/server/chunks/build/TestCaseHistoryChart-D-TEUsZ8.mjs.map +1 -0
- package/.output/server/chunks/build/{TestMetaBadges-BlyKmfeP.mjs → TestMetaBadges-G2dAHnT-.mjs} +2 -2
- package/.output/server/chunks/build/TestMetaBadges-G2dAHnT-.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar-CvsmKJ4D.mjs → TestStatusBar-CseETAdn.mjs} +2 -2
- package/.output/server/chunks/build/TestStatusBar-CseETAdn.mjs.map +1 -0
- package/.output/server/chunks/build/{Textarea-DpmpM-lN.mjs → Textarea-CXOoRq7y.mjs} +2 -2
- package/.output/server/chunks/build/Textarea-CXOoRq7y.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-BI3WQErw.mjs → Tooltip-trltUr5c.mjs} +2 -2
- package/.output/server/chunks/build/Tooltip-trltUr5c.mjs.map +1 -0
- package/.output/server/chunks/build/{VisuallyHiddenInput-D4E5aJCQ.mjs → VisuallyHiddenInput-CGURvg3N.mjs} +2 -2
- package/.output/server/chunks/build/VisuallyHiddenInput-CGURvg3N.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-w7YCSiiy.mjs → _id_-B-G4eG5U.mjs} +40 -40
- package/.output/server/chunks/build/{_id_-w7YCSiiy.mjs.map → _id_-B-G4eG5U.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-T965GKYC.mjs → _id_-Cnzg8n21.mjs} +41 -38
- package/.output/server/chunks/build/_id_-Cnzg8n21.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-wiULjAVc.mjs → _id_-Dp_d6gT7.mjs} +62 -54
- package/.output/server/chunks/build/{_id_-wiULjAVc.mjs.map → _id_-Dp_d6gT7.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-26komi8G.mjs → _id_-t2AWaYuK.mjs} +46 -46
- package/.output/server/chunks/build/{_id_-26komi8G.mjs.map → _id_-t2AWaYuK.mjs.map} +1 -1
- package/.output/server/chunks/build/{about-B3V_OEiu.mjs → about-BFsHkJwE.mjs} +8 -8
- package/.output/server/chunks/build/about-BFsHkJwE.mjs.map +1 -0
- package/.output/server/chunks/build/{account-DpBdYE46.mjs → account-CZAq8kVg.mjs} +8 -8
- package/.output/server/chunks/build/account-CZAq8kVg.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-DYhpzbqp.mjs → ai-BGP3GcCR.mjs} +20 -20
- package/.output/server/chunks/build/{ai-DYhpzbqp.mjs.map → ai-BGP3GcCR.mjs.map} +1 -1
- package/.output/server/chunks/build/{analytics-CZJEU0an.mjs → analytics-CXl5OWV-.mjs} +25 -25
- package/.output/server/chunks/build/{analytics-CZJEU0an.mjs.map → analytics-CXl5OWV-.mjs.map} +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{default-CQa_bmAf.mjs → default-4ixAePum.mjs} +208 -76
- package/.output/server/chunks/build/default-4ixAePum.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-C8bndVXg.mjs → docs-Cgsd01H9.mjs} +16 -16
- package/.output/server/chunks/build/{docs-C8bndVXg.mjs.map → docs-Cgsd01H9.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-BdfF9er2.mjs → edit-BEQ-ozj9.mjs} +436 -40
- package/.output/server/chunks/build/edit-BEQ-ozj9.mjs.map +1 -0
- package/.output/server/chunks/build/{fetch-tkz5_OA-.mjs → fetch-B5TVXZ1s.mjs} +2 -2
- package/.output/server/chunks/build/fetch-B5TVXZ1s.mjs.map +1 -0
- package/.output/server/chunks/build/{forgot-password-swZRcvXE.mjs → forgot-password-mqE1mpDI.mjs} +4 -4
- package/.output/server/chunks/build/forgot-password-mqE1mpDI.mjs.map +1 -0
- package/.output/server/chunks/build/{help-content-C876a9WD.mjs → help-content-Bc99BajS.mjs} +6 -1
- package/.output/server/chunks/build/help-content-Bc99BajS.mjs.map +1 -0
- package/.output/server/chunks/build/{import-B27Sv7h5.mjs → import-DqDDTcSc.mjs} +14 -14
- package/.output/server/chunks/build/import-DqDDTcSc.mjs.map +1 -0
- package/.output/server/chunks/build/{index-ID913tUa.mjs → index-Bpdj6TXV.mjs} +5 -5
- package/.output/server/chunks/build/index-Bpdj6TXV.mjs.map +1 -0
- package/.output/server/chunks/build/{index-Dq6nk6OB.mjs → index-DBFsIsjA.mjs} +180 -188
- package/.output/server/chunks/build/{index-Dq6nk6OB.mjs.map → index-DBFsIsjA.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-C7m32bRI.mjs → index-DSufXCZq.mjs} +22 -18
- package/.output/server/chunks/build/index-DSufXCZq.mjs.map +1 -0
- package/.output/server/chunks/build/{index-BdZmxLtC.mjs → index-WXE60AXk.mjs} +24 -24
- package/.output/server/chunks/build/{index-BdZmxLtC.mjs.map → index-WXE60AXk.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-ByWTzqF6.mjs → index-okKjrRhL.mjs} +15 -4
- package/.output/server/chunks/build/index-okKjrRhL.mjs.map +1 -0
- package/.output/server/chunks/build/{isValueEqualOrExist-D4lZ8uRY.mjs → isValueEqualOrExist-C-9DzL4K.mjs} +2 -2
- package/.output/server/chunks/build/isValueEqualOrExist-C-9DzL4K.mjs.map +1 -0
- package/.output/server/chunks/build/{login-hxCF06JT.mjs → login-eQ88UoBW.mjs} +6 -6
- package/.output/server/chunks/build/login-eQ88UoBW.mjs.map +1 -0
- package/.output/server/chunks/build/{mcp-BVW1llyW.mjs → mcp-frcSP2Zg.mjs} +13 -13
- package/.output/server/chunks/build/mcp-frcSP2Zg.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-Dn-evqXM.mjs → notifications-DAtRd5V6.mjs} +14 -14
- package/.output/server/chunks/build/notifications-DAtRd5V6.mjs.map +1 -0
- package/.output/server/chunks/build/{performance-CV8qm94u.mjs → performance-BcQzGXE7.mjs} +13 -13
- package/.output/server/chunks/build/performance-BcQzGXE7.mjs.map +1 -0
- package/.output/server/chunks/build/{pr-feedback-gKDz8LyA.mjs → pr-feedback-BHtgvegy.mjs} +11 -11
- package/.output/server/chunks/build/pr-feedback-BHtgvegy.mjs.map +1 -0
- package/.output/server/chunks/build/{reset-password-DtEISa1I.mjs → reset-password-DMHrp14-.mjs} +4 -4
- package/.output/server/chunks/build/reset-password-DMHrp14-.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +32 -32
- package/.output/server/chunks/build/{settings-BJDnuLpc.mjs → settings-Bo5OETop.mjs} +11 -11
- package/.output/server/chunks/build/settings-Bo5OETop.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-metadata-DnAK4Rzg.mjs → settings-metadata-BHbsWQ2g.mjs} +2 -2
- package/.output/server/chunks/build/settings-metadata-BHbsWQ2g.mjs.map +1 -0
- package/.output/server/chunks/build/{setup-BO9tXa_G.mjs → setup-DAXcxuNY.mjs} +18 -18
- package/.output/server/chunks/build/{setup-BO9tXa_G.mjs.map → setup-DAXcxuNY.mjs.map} +1 -1
- package/.output/server/chunks/build/{storage-zN92cA9q.mjs → storage-BPK0fVwx.mjs} +12 -12
- package/.output/server/chunks/build/storage-BPK0fVwx.mjs.map +1 -0
- package/.output/server/chunks/build/{tags-CJFnoyQc.mjs → tags-CoxErA5m.mjs} +8 -8
- package/.output/server/chunks/build/tags-CoxErA5m.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-0Q6rT73d.mjs → test-cases-D8rn-0le.mjs} +27 -27
- package/.output/server/chunks/build/test-cases-D8rn-0le.mjs.map +1 -0
- package/.output/server/chunks/build/{test-functions-DVRJgiWo.mjs → test-functions-pWs9mhbJ.mjs} +12 -12
- package/.output/server/chunks/build/test-functions-pWs9mhbJ.mjs.map +1 -0
- package/.output/server/chunks/build/{useCopyRich-BM9GTjJi.mjs → useCopyRich-BqVfhnoH.mjs} +27 -16
- package/.output/server/chunks/build/{useCopyRich-BM9GTjJi.mjs.map → useCopyRich-BqVfhnoH.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDesktopDownload-Dyf0fR47.mjs → useDesktopDownload-l80DQJ9e.mjs} +2 -2
- package/.output/server/chunks/build/useDesktopDownload-l80DQJ9e.mjs.map +1 -0
- package/.output/server/chunks/build/{useDesktopLocalRuns-k7Gw3Fv3.mjs → useDesktopLocalRuns-Dil3YzyU.mjs} +68 -6
- package/.output/server/chunks/build/useDesktopLocalRuns-Dil3YzyU.mjs.map +1 -0
- package/.output/server/chunks/build/{useDesktopProjectLink-WwLte59P.mjs → useDesktopProjectLink-BnIONB--.mjs} +21 -4
- package/.output/server/chunks/build/useDesktopProjectLink-BnIONB--.mjs.map +1 -0
- package/.output/server/chunks/build/{useFormControl-8skMOTIf.mjs → useFormControl-CXKztoWk.mjs} +2 -2
- package/.output/server/chunks/build/useFormControl-CXKztoWk.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpenInIde-D74FmDNg.mjs → useOpenInIde-CbbYW3pd.mjs} +2 -2
- package/.output/server/chunks/build/useOpenInIde-CbbYW3pd.mjs.map +1 -0
- package/.output/server/chunks/build/{useSettingsNav-BLTHducV.mjs → useSettingsNav-C6NpD4Ab.mjs} +2 -2
- package/.output/server/chunks/build/useSettingsNav-C6NpD4Ab.mjs.map +1 -0
- package/.output/server/chunks/build/{users-C9bjOBde.mjs → users-C2MuCf5G.mjs} +9 -9
- package/.output/server/chunks/build/users-C2MuCf5G.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +677 -670
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/03FA4-rI.js +0 -1
- package/.output/public/_nuxt/5a7jHE9s.js +0 -1
- package/.output/public/_nuxt/7ZHq6PCI.js +0 -1
- package/.output/public/_nuxt/98sAB6Gu.js +0 -1
- package/.output/public/_nuxt/B--J7VNt.js +0 -1
- package/.output/public/_nuxt/B69RP95P.js +0 -1
- package/.output/public/_nuxt/B8Xm4_S_.js +0 -1
- package/.output/public/_nuxt/BBhrClA9.js +0 -1
- package/.output/public/_nuxt/BPXqL9vK.js +0 -1
- package/.output/public/_nuxt/BWMSVSNM.js +0 -1
- package/.output/public/_nuxt/B_r0xHVS.js +0 -1
- package/.output/public/_nuxt/BevElZaK.js +0 -1
- package/.output/public/_nuxt/BfA6lfg4.js +0 -1
- package/.output/public/_nuxt/BjaRappk.js +0 -1
- package/.output/public/_nuxt/Bn0jaRxI.js +0 -1
- package/.output/public/_nuxt/BrUBOQ0y.js +0 -1
- package/.output/public/_nuxt/BwEN1fJ1.js +0 -1
- package/.output/public/_nuxt/C-XjxjG5.js +0 -1
- package/.output/public/_nuxt/C3W_wyr9.js +0 -1
- package/.output/public/_nuxt/C7D5Wl7T.js +0 -1
- package/.output/public/_nuxt/COuZu9FO.js +0 -2
- package/.output/public/_nuxt/CX5Q0dZ8.js +0 -1
- package/.output/public/_nuxt/Cf4MFOuf.js +0 -1
- package/.output/public/_nuxt/Cq33x7yV.js +0 -1
- package/.output/public/_nuxt/Cu2Q4iPh.js +0 -1
- package/.output/public/_nuxt/CyLcEDg2.js +0 -2
- package/.output/public/_nuxt/D1Y43xM1.js +0 -2
- package/.output/public/_nuxt/D2rZosKf.js +0 -6
- package/.output/public/_nuxt/D7jpwkRG.js +0 -5
- package/.output/public/_nuxt/D8NAb7VE.js +0 -1
- package/.output/public/_nuxt/D8vguZKg.js +0 -17
- package/.output/public/_nuxt/DH5H1DJh.js +0 -1
- package/.output/public/_nuxt/DL8knjzi.js +0 -1
- package/.output/public/_nuxt/DMsm-RGQ.js +0 -1
- package/.output/public/_nuxt/DMtrFQqi.js +0 -2
- package/.output/public/_nuxt/DVEGfqtt.js +0 -2
- package/.output/public/_nuxt/DaNC-xl1.js +0 -1
- package/.output/public/_nuxt/DcLbz6DV.js +0 -1
- package/.output/public/_nuxt/DhYznn-U.js +0 -1
- package/.output/public/_nuxt/DhuRRlmK.js +0 -1
- package/.output/public/_nuxt/DuO5wfAC.js +0 -1
- package/.output/public/_nuxt/DvEsAuE9.js +0 -1
- package/.output/public/_nuxt/Dz6g_QJT.js +0 -1
- package/.output/public/_nuxt/DzzNS-K1.js +0 -1
- package/.output/public/_nuxt/LwoTUb-r.js +0 -1
- package/.output/public/_nuxt/OfPjZaky.js +0 -1
- package/.output/public/_nuxt/T5UuMUxA.js +0 -1
- package/.output/public/_nuxt/UY8pjaZA.js +0 -1
- package/.output/public/_nuxt/YmCeJkZ2.js +0 -1
- package/.output/public/_nuxt/builds/meta/70224ee0-4d1f-45d2-b380-2ecb18064bf1.json +0 -1
- package/.output/public/_nuxt/fXUwH_3d.js +0 -1
- package/.output/public/_nuxt/sVV8xB9f.js +0 -1
- package/.output/public/_nuxt/xa5UHCot.js +0 -1
- package/.output/server/chunks/build/Alert-He-UxEt6.mjs.map +0 -1
- package/.output/server/chunks/build/Breadcrumb-DEP2dVCZ.mjs.map +0 -1
- package/.output/server/chunks/build/BreadcrumbNav-y6nMDYcR.mjs.map +0 -1
- package/.output/server/chunks/build/BrowserBadge-DIASU8Gf.mjs.map +0 -1
- package/.output/server/chunks/build/ChartCard-ZTsCvItQ.mjs.map +0 -1
- package/.output/server/chunks/build/ChartMarkerTooltip-u_1DUHh-.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-BisdHf8n.mjs.map +0 -1
- package/.output/server/chunks/build/CodeBlock-B8BNtZAe.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardNavbar-D7-3zBUU.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-C3HdHvlE.mjs.map +0 -1
- package/.output/server/chunks/build/DataLocationCard-CC2-lHiP.mjs.map +0 -1
- package/.output/server/chunks/build/DesktopRunLocallyButton-iNzrDsEs.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-BVb2LgHu.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisResult-xVgZlfKK.mjs.map +0 -1
- package/.output/server/chunks/build/DurationValue-UX9uajQJ.mjs.map +0 -1
- package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +0 -1
- package/.output/server/chunks/build/EntityLinks-Dzn73fbq.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-C-agmABK.mjs.map +0 -1
- package/.output/server/chunks/build/ErrorState-CktYyeEZ.mjs.map +0 -1
- package/.output/server/chunks/build/FeatureUnavailable-DHFkwI7t.mjs.map +0 -1
- package/.output/server/chunks/build/FormField-GYHKiSI6.mjs.map +0 -1
- package/.output/server/chunks/build/GetStartedWizard-BpcGYsm2.mjs.map +0 -1
- package/.output/server/chunks/build/HelpHint-plioHKA0.mjs.map +0 -1
- package/.output/server/chunks/build/LoadingState-CwpfmI0W.mjs.map +0 -1
- package/.output/server/chunks/build/MarkerBadge-Biz5--h2.mjs.map +0 -1
- package/.output/server/chunks/build/MetaStripGroup-A0a72vt5.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-hKLvVFNp.mjs.map +0 -1
- package/.output/server/chunks/build/NavbarActions-_YjrSUat.mjs.map +0 -1
- package/.output/server/chunks/build/NavigationMenu-RfBOyS32.mjs.map +0 -1
- package/.output/server/chunks/build/RovingFocusItem-BOSx1Z9Z.mjs.map +0 -1
- package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs.map +0 -1
- package/.output/server/chunks/build/RunStatusBadge-CvWmcFYM.mjs.map +0 -1
- package/.output/server/chunks/build/SectionCard-DHAFvJxm.mjs.map +0 -1
- package/.output/server/chunks/build/Select-CEyw7HGK.mjs.map +0 -1
- package/.output/server/chunks/build/Separator-lrN70ODV.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-tRmytcEJ.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-D6cRIqch.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-R2n82ncQ.mjs.map +0 -1
- package/.output/server/chunks/build/Table-qZdnm9t2.mjs.map +0 -1
- package/.output/server/chunks/build/Tabs-BDP7MWl4.mjs.map +0 -1
- package/.output/server/chunks/build/TestCaseHistoryChart-CKDXQ2GI.mjs.map +0 -1
- package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar-CvsmKJ4D.mjs.map +0 -1
- package/.output/server/chunks/build/Textarea-DpmpM-lN.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-BI3WQErw.mjs.map +0 -1
- package/.output/server/chunks/build/VisuallyHiddenInput-D4E5aJCQ.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-T965GKYC.mjs.map +0 -1
- package/.output/server/chunks/build/about-B3V_OEiu.mjs.map +0 -1
- package/.output/server/chunks/build/account-DpBdYE46.mjs.map +0 -1
- package/.output/server/chunks/build/default-CQa_bmAf.mjs.map +0 -1
- package/.output/server/chunks/build/edit-BdfF9er2.mjs.map +0 -1
- package/.output/server/chunks/build/fetch-tkz5_OA-.mjs.map +0 -1
- package/.output/server/chunks/build/forgot-password-swZRcvXE.mjs.map +0 -1
- package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +0 -1
- package/.output/server/chunks/build/import-B27Sv7h5.mjs.map +0 -1
- package/.output/server/chunks/build/index-ByWTzqF6.mjs.map +0 -1
- package/.output/server/chunks/build/index-C7m32bRI.mjs.map +0 -1
- package/.output/server/chunks/build/index-ID913tUa.mjs.map +0 -1
- package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs.map +0 -1
- package/.output/server/chunks/build/login-hxCF06JT.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-BVW1llyW.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-Dn-evqXM.mjs.map +0 -1
- package/.output/server/chunks/build/performance-CV8qm94u.mjs.map +0 -1
- package/.output/server/chunks/build/pr-feedback-gKDz8LyA.mjs.map +0 -1
- package/.output/server/chunks/build/reset-password-DtEISa1I.mjs.map +0 -1
- package/.output/server/chunks/build/settings-BJDnuLpc.mjs.map +0 -1
- package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs.map +0 -1
- package/.output/server/chunks/build/storage-zN92cA9q.mjs.map +0 -1
- package/.output/server/chunks/build/tags-CJFnoyQc.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-0Q6rT73d.mjs.map +0 -1
- package/.output/server/chunks/build/test-functions-DVRJgiWo.mjs.map +0 -1
- package/.output/server/chunks/build/useDesktopDownload-Dyf0fR47.mjs.map +0 -1
- package/.output/server/chunks/build/useDesktopLocalRuns-k7Gw3Fv3.mjs.map +0 -1
- package/.output/server/chunks/build/useDesktopProjectLink-WwLte59P.mjs.map +0 -1
- package/.output/server/chunks/build/useFormControl-8skMOTIf.mjs.map +0 -1
- package/.output/server/chunks/build/useOpenInIde-D74FmDNg.mjs.map +0 -1
- package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs.map +0 -1
- package/.output/server/chunks/build/users-C9bjOBde.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aT as We,$ as ke,d as R,Y as Ye,b3 as Ne,bp as qt,aB as nt,Z as Ae,J as Me,o as c,f as _,g,V as w,k as e,v as H,L as ue,X as Y,bq as Te,r as G,br as Pe,b4 as It,bs as St,bt as st,j as F,S as Se,C as we,bu as wt,B as ge,ad as He,h as V,bv as ut,aC as Ee,W as A,U as ae,bw as dt,aR as kt,a2 as pt,bx as Et,by as zt,bz as ct,bA as Bt,c as W,F as se,y as De,ag as ft,R as Ft,bB as At,l as vt,bC as Lt,aw as Tt,bD as Ot,bE as Vt,bF as Kt,bG as Rt,bH as Pt,bI as Dt,bJ as mt,bK as $t,bL as Mt,a0 as qe,bM as Nt,bN as Ht,aE as Gt,m as Ce,t as ve,a1 as Le,bO as jt,aJ as xe,a3 as Ut,H as Wt,a4 as Yt,a5 as Jt,a6 as Qt,a7 as Xt,bP as Zt,aN as ea,bQ as ta,aO as aa,b8 as et,aP as je,b9 as fe,q as K,i as Be,p as Re,aK as tt,bR as la,_ as ia,bS as oa,E as ra,I as at,bT as lt,ba as Fe,ay as na,aQ as sa,a8 as ua,bU as da,bV as pa,bW as ca}from"./C5TrTuWv.js";import{u as fa}from"./DaNC-xl1.js";import{V as va}from"./DMsm-RGQ.js";import{u as ma}from"./V9p3z39z.js";function $e(n,r,a){const l=n.findIndex(d=>We(d,r)),i=n.findIndex(d=>We(d,a));if(l===-1||i===-1)return[];const[o,t]=[l,i].sort((d,b)=>d-b);return n.slice(o,t+1)}function ga(){return{ALT:"Alt",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",BACKSPACE:"Backspace",CAPS_LOCK:"CapsLock",CONTROL:"Control",DELETE:"Delete",END:"End",ENTER:"Enter",ESCAPE:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",HOME:"Home",META:"Meta",PAGE_DOWN:"PageDown",PAGE_UP:"PageUp",SHIFT:"Shift",SPACE:" ",TAB:"Tab",CTRL:"Control",ASTERISK:"*",SPACE_CODE:"Space"}}function it(n){return n?.querySelector("[data-state=checked]")}function ba(n,r,a){return n===void 0?!1:Array.isArray(n)?n.some(l=>me(l,r,a)):me(n,r,a)}function me(n,r,a){return n===void 0||r===void 0?!1:typeof n=="string"?n===r:typeof a=="function"?a(n,r):typeof a=="string"?n?.[a]===r?.[a]:We(n,r)}const[Oe,ya]=ke("ListboxRoot");var ha=R({__name:"ListboxRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:"vertical"},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:"toggle"},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","entryFocus","leave"],setup(n,{expose:r,emit:a}){const l=n,i=a,{multiple:o,highlightOnHover:t,orientation:d,disabled:b,selectionBehavior:B,dir:I}=Ye(l),{getItems:z}=Ne({isProvider:!0}),{handleTypeaheadSearch:v}=qt(),{primitiveElement:y,currentElement:m}=Te(),p=ga(),C=nt(I),k=fa(m),$=G(),S=G(!1),L=G(!0),E=Ae(l,"modelValue",i,{defaultValue:l.defaultValue??(o.value?[]:void 0),passive:l.modelValue===void 0,deep:!0});function de(u){if(S.value=!0,l.multiple){const x=Array.isArray(E.value)?[...E.value]:[],q=x.findIndex(O=>me(O,u,l.by));l.selectionBehavior==="toggle"?(q===-1?x.push(u):x.splice(q,1),E.value=x):(E.value=[u],$.value=u)}else l.selectionBehavior==="toggle"&&me(E.value,u,l.by)?E.value=void 0:E.value=u;setTimeout(()=>{S.value=!1},1)}const T=G(null),ie=G(null),X=G(!1),oe=G(!1),pe=Pe(),be=Pe(),re=Pe();function ce(){return z().map(u=>u.ref).filter(u=>u.dataset.disabled!=="")}function N(u,x=!0,q){if(!u)return;T.value=u,(q??L.value)&&T.value.focus(),x&&T.value.scrollIntoView({block:"nearest"});const O=z().find(j=>j.ref===u);i("highlight",O)}function P(u){if(X.value)re.trigger(u);else{const x=z().find(q=>me(q.value,u,l.by));x&&(T.value=x.ref,N(x.ref))}}function J(u){if(T.value&&T.value.isConnected){if(u.ctrlKey||u.metaKey||u.altKey)return;u.preventDefault(),u.stopPropagation(),oe.value||T.value.click()}}function Q(u){if(L.value){if(S.value=!0,X.value)be.trigger(u);else{const x=u.altKey||u.ctrlKey||u.metaKey;if(x&&u.key==="a"&&o.value){const q=z(),O=q.map(he=>he.value);E.value=[...O],u.preventDefault();const j=q.at(-1);j&&N(j.ref)}else if(!x){const q=v(u.key,z());q&&N(q)}}setTimeout(()=>{S.value=!1},1)}}function ne(){oe.value=!0}function ye(){ue(()=>{oe.value=!1})}function Z(){ue(()=>{const u=new KeyboardEvent("keydown",{key:"PageUp"});h(u)})}function ee(u){const x=T.value;x?.isConnected&&(ie.value=x),T.value=null,i("leave",u)}function Ve(u){const x=new CustomEvent("listbox.entryFocus",{bubbles:!1,cancelable:!0});if(u.currentTarget?.dispatchEvent(x),i("entryFocus",x),!x.defaultPrevented)if(ie.value)N(ie.value);else{const q=ce()?.[0];N(q)}}function h(u){const x=It(u,d.value,C.value);if(!x)return;let q=ce();if(T.value){if(x==="last")q.reverse();else if(x==="prev"||x==="next"){x==="prev"&&q.reverse();const O=q.indexOf(T.value);q=q.slice(O+1)}Ge(u,q[0])}if(q.length){const O=!T.value&&x==="prev"?q.length-1:0;N(q[O])}if(X.value)return be.trigger(u)}function Ge(u,x){if(!(X.value||l.selectionBehavior!=="replace"||!o.value||!Array.isArray(E.value)||(u.altKey||u.ctrlKey||u.metaKey)&&!u.shiftKey)&&u.shiftKey){const O=z().filter(_e=>_e.ref.dataset.disabled!=="");let j=O.find(_e=>_e.ref===x)?.value;if(u.key===p.END?j=O.at(-1)?.value:u.key===p.HOME&&(j=O[0]?.value),!j||!$.value)return;const he=$e(O.map(_e=>_e.value),$.value,j);E.value=he}}async function Ie(u,x=!0){if(St)if(await ue(),X.value)pe.trigger({event:u,scroll:x});else{const q=ce(),O=q.find(he=>he.dataset.state==="checked"),j=x?void 0:!1;O?N(O,x,j):q.length&&N(q[0],x,j)}}let ze=!1;return Me(E,()=>{if(!S.value){const u=ze;ze=!0,ue(()=>{Ie(void 0,u)})}},{immediate:!0,deep:!0}),r({highlightedElement:T,highlightItem:P,highlightFirstItem:Z,highlightSelected:Ie,getItems:z}),ya({modelValue:E,onValueChange:de,multiple:o,orientation:d,dir:C,disabled:b,highlightOnHover:t,highlightedElement:T,isVirtual:X,virtualFocusHook:pe,virtualKeydownHook:be,virtualHighlightHook:re,by:l.by,firstValue:$,selectionBehavior:B,focusable:L,onLeave:ee,onEnter:Ve,changeHighlight:N,onKeydownEnter:J,onKeydownNavigation:h,onKeydownTypeAhead:Q,onCompositionStart:ne,onCompositionEnd:ye,highlightFirstItem:Z}),(u,x)=>(c(),_(e(Y),{ref_key:"primitiveElement",ref:y,as:u.as,"as-child":u.asChild,dir:e(C),"data-disabled":e(b)?"":void 0,onPointerleave:ee,onFocusout:x[0]||(x[0]=async q=>{const O=q.relatedTarget||q.target;await ue(),T.value&&e(m)&&!e(m).contains(O)&&ee(q)})},{default:g(()=>[w(u.$slots,"default",{modelValue:e(E)}),e(k)&&u.name?(c(),_(e(va),{key:0,name:u.name,value:e(E),disabled:e(b),required:u.required},null,8,["name","value","disabled","required"])):H("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),_a=ha,xa=R({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const{CollectionSlot:r}=Ne(),a=Oe(),l=st(!1,10);return(i,o)=>(c(),_(e(r),null,{default:g(()=>[F(e(Y),{role:"listbox",as:i.as,"as-child":i.asChild,tabindex:e(a).focusable.value?e(a).highlightedElement.value?"-1":"0":"-1","aria-orientation":e(a).orientation.value,"aria-multiselectable":!!e(a).multiple.value,"data-orientation":e(a).orientation.value,onMousedown:o[0]||(o[0]=we(t=>l.value=!0,["left"])),onFocus:o[1]||(o[1]=t=>{e(l)||e(a).onEnter(t)}),onKeydown:[o[2]||(o[2]=Se(t=>{e(a).orientation.value==="vertical"&&(t.key==="ArrowLeft"||t.key==="ArrowRight")||e(a).orientation.value==="horizontal"&&(t.key==="ArrowUp"||t.key==="ArrowDown")||(t.preventDefault(),e(a).focusable.value&&e(a).onKeydownNavigation(t))},["down","up","left","right","home","end"])),Se(e(a).onKeydownEnter,["enter"]),e(a).onKeydownTypeAhead]},{default:g(()=>[w(i.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),Ca=xa,qa=R({__name:"ListboxFilter",props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(n,{emit:r}){const a=n,i=Ae(a,"modelValue",r,{defaultValue:"",passive:a.modelValue===void 0}),o=Oe(),{primitiveElement:t,currentElement:d}=Te(),b=V(()=>a.disabled||o.disabled.value||!1),B=G();wt(()=>B.value=o.highlightedElement.value?.id),ge(()=>{o.focusable.value=!1,setTimeout(()=>{a.autoFocus&&d.value?.focus()},1)}),He(()=>{o.focusable.value=!0});const{isComposing:I,handleCompositionStart:z,handleCompositionEnd:v}=ut(k=>{i.value=k.target.value,o.onCompositionEnd(),o.highlightFirstItem()});function y(){o.onCompositionStart(),z()}function m(k){I.value||(i.value=k.target.value,o.highlightFirstItem())}function p(k){I.value||(k.preventDefault(),o.onKeydownNavigation(k))}function C(k){I.value||o.onKeydownEnter(k)}return(k,$)=>(c(),_(e(Y),{ref_key:"primitiveElement",ref:t,as:k.as,"as-child":k.asChild,value:e(i),disabled:b.value?"":void 0,"data-disabled":b.value?"":void 0,"aria-disabled":b.value??void 0,"aria-activedescendant":B.value,type:"text",onKeydown:[Se(p,["down","up","home","end"]),Se(C,["enter"])],onInput:m,onCompositionstart:y,onCompositionend:e(v)},{default:g(()=>[w(k.$slots,"default",{modelValue:e(i)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onCompositionend"]))}}),Ia=qa;const[Il,Sa]=ke("ListboxGroup");var wa=R({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const r=n,a=Ee(void 0,"reka-listbox-group");return Sa({id:a}),(l,i)=>(c(),_(e(Y),A({role:"group"},r,{"aria-labelledby":e(a)}),{default:g(()=>[w(l.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),ka=wa;const Ea="listbox.select",[za,Ba]=ke("ListboxItem");var Fa=R({__name:"ListboxItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},emits:["select"],setup(n,{emit:r}){const a=n,l=r,i=Ee(void 0,"reka-listbox-item"),{CollectionItem:o}=Ne(),{forwardRef:t,currentElement:d}=ae(),b=Oe(),B=V(()=>d.value!=null&&d.value===b.highlightedElement.value),I=V(()=>ba(b.modelValue.value,a.value,b.by)),z=V(()=>b.disabled.value||a.disabled);async function v(m){l("select",m),!m?.defaultPrevented&&!z.value&&m&&(b.onValueChange(a.value),b.changeHighlight(d.value))}function y(m){const p={originalEvent:m,value:a.value};kt(Ea,v,p)}return Ba({isSelected:I}),(m,p)=>(c(),_(e(o),{value:m.value},{default:g(()=>[dt([B.value,I.value,z.value,e(b).focusable.value],()=>F(e(Y),A({id:e(i)},m.$attrs,{ref:e(t),role:"option",tabindex:e(b).focusable.value?B.value?"0":"-1":-1,"aria-selected":I.value,as:m.as,"as-child":m.asChild,disabled:z.value?"":void 0,"data-disabled":z.value?"":void 0,"data-highlighted":B.value?"":void 0,"data-state":I.value?"checked":"unchecked",onClick:y,onKeydown:Se(we(y,["prevent"]),["space"]),onPointermove:p[0]||(p[0]=()=>{e(b).highlightedElement.value!==e(d)&&e(b).highlightOnHover.value&&e(b).changeHighlight(e(d),!1,!1)})}),{default:g(()=>[w(m.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),p,1)]),_:3},8,["value"]))}}),Aa=Fa,La=R({__name:"ListboxItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(n){const r=n;ae();const a=za();return(l,i)=>e(a).isSelected.value?(c(),_(e(Y),A({key:0,"aria-hidden":"true"},r),{default:g(()=>[w(l.$slots,"default")]),_:3},16)):H("v-if",!0)}}),Ta=La,Oa=R({__name:"ListboxVirtualizer",props:{options:{type:Array,required:!0},overscan:{type:Number,required:!1},estimateSize:{type:[Number,Function],required:!1},textContent:{type:Function,required:!1}},setup(n){const r=n,a=pt(),l=Oe(),i=Et(),{getItems:o}=Ne();l.isVirtual.value=!0;const t=V(()=>{const v=i.value;if(v){const y=window.getComputedStyle(v);return{start:Number.parseFloat(y.paddingBlockStart||y.paddingTop),end:Number.parseFloat(y.paddingBlockEnd||y.paddingBottom)}}else return{start:0,end:0}}),d=ma({get scrollPaddingStart(){return t.value.start},get scrollPaddingEnd(){return t.value.end},get count(){return r.options.length},get horizontal(){return l.orientation.value==="horizontal"},estimateSize(v){return typeof r.estimateSize=="function"?r.estimateSize(v):r.estimateSize??28},getScrollElement(){return i.value},overscan:r.overscan??12}),b=V(()=>d.value.getVirtualItems().map(v=>{const y=a.default({option:r.options[v.index],virtualizer:d.value,virtualItem:v})[0],m=y.type===se&&Array.isArray(y.children)?y.children.find(p=>typeof p.type!="symbol"):y;return{item:v,is:At(m,{key:`${v.key}`,"data-index":v.index,"aria-setsize":r.options.length,"aria-posinset":v.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${v.start}px)`,overflowAnchor:"none"}})}}));l.virtualFocusHook.on(({event:v,scroll:y})=>{const m=r.options.findIndex(p=>Array.isArray(l.modelValue.value)?me(p,l.modelValue.value[0],l.by):me(p,l.modelValue.value,l.by));m!==-1?(v?.preventDefault(),d.value.scrollToIndex(m,{align:"start"}),requestAnimationFrame(()=>{const p=it(i.value);p&&(l.changeHighlight(p,y,y?void 0:!1),v&&p?.focus())})):y?l.highlightFirstItem():requestAnimationFrame(()=>{const p=o().find(C=>C.ref.dataset.disabled!=="")?.ref;p&&l.changeHighlight(p,!1,!1)})}),l.virtualHighlightHook.on(v=>{const y=r.options.findIndex(m=>me(m,v,l.by));d.value.scrollToIndex(y,{align:"start"}),requestAnimationFrame(()=>{const m=it(i.value);m&&l.changeHighlight(m)})});const B=st("",1e3),I=V(()=>{const v=y=>r.textContent?r.textContent(y):y?.toString().toLowerCase();return r.options.map((y,m)=>({index:m,textContent:v(y)}))});function z(v,y){if(!l.firstValue?.value||!l.multiple.value||!Array.isArray(l.modelValue.value))return;const p=o().filter(k=>k.ref.dataset.disabled!=="").find(k=>k.ref===l.highlightedElement.value)?.value;if(!p)return;let C=null;switch(y){case"prev":case"next":{C=$e(r.options,l.firstValue.value,p);break}case"first":{C=$e(r.options,l.firstValue.value,r.options?.[0]);break}case"last":{C=$e(r.options,l.firstValue.value,r.options.at(-1));break}}l.modelValue.value=C}return l.virtualKeydownHook.on(v=>{const y=v.altKey||v.ctrlKey||v.metaKey;if(v.key==="Tab"&&!y)return;let p=zt[v.key];if(y&&v.key==="a"&&l.multiple.value?(v.preventDefault(),l.modelValue.value=[...r.options],p="last"):v.shiftKey&&p&&z(v,p),["first","last"].includes(p)){v.preventDefault();const C=p==="first"?0:r.options.length-1;d.value.scrollToIndex(C),requestAnimationFrame(()=>{const k=o(),$=p==="first"?k[0]:k.at(-1);$&&l.changeHighlight($.ref)})}else if(!p&&!y){B.value+=v.key;const C=Number(ct()?.getAttribute("data-index")),k=I.value[C].textContent,$=I.value.map(E=>E.textContent??""),S=Bt($,B.value,k),L=I.value.find(E=>E.textContent===S);L&&(d.value.scrollToIndex(L.index,{align:"start"}),requestAnimationFrame(()=>{const E=i.value.querySelector(`[data-index="${L.index}"]`);E instanceof HTMLElement&&l.changeHighlight(E)}))}}),(v,y)=>(c(),W("div",{"data-reka-virtualizer":"",style:Ft({position:"relative",width:"100%",height:`${e(d).getTotalSize()}px`})},[(c(!0),W(se,null,De(b.value,({is:m,item:p})=>(c(),_(ft(m),{key:p.index}))),128))],4))}}),Va=Oa;const[le,Ka]=ke("ComboboxRoot");var Ra=R({__name:"ComboboxRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},resetSearchTermOnBlur:{type:Boolean,required:!1,default:!0},resetSearchTermOnSelect:{type:Boolean,required:!1,default:!0},openOnFocus:{type:Boolean,required:!1,default:!1},openOnClick:{type:Boolean,required:!1,default:!1},ignoreFilter:{type:Boolean,required:!1},resetModelValueOnClear:{type:Boolean,required:!1,default:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","update:open"],setup(n,{expose:r,emit:a}){const l=n,i=a,{primitiveElement:o,currentElement:t}=Te(),{multiple:d,disabled:b,ignoreFilter:B,resetSearchTermOnSelect:I,openOnFocus:z,openOnClick:v,dir:y,resetModelValueOnClear:m,highlightOnHover:p}=Ye(l),C=nt(y),k=Ae(l,"modelValue",i,{defaultValue:l.defaultValue??(d.value?[]:void 0),passive:l.modelValue===void 0,deep:!0}),$=Ae(l,"open",i,{defaultValue:l.defaultOpen,passive:l.open===void 0});async function S(P){$.value=P,re.value="",P?(await ue(),o.value?.highlightSelected(),E.value=!0,T.value?.focus()):(E.value=!1,setTimeout(()=>{!P&&l.resetSearchTermOnBlur&&L.trigger()},1))}const L=Pe(),E=G(!1),de=G(!1),T=G(),ie=G(),X=V(()=>o.value?.highlightedElement??void 0),oe=G(new Map),pe=G(new Map),{contains:be}=Ot({sensitivity:"base"}),re=G(""),ce=V(P=>{if(!re.value||l.ignoreFilter||de.value)return{count:oe.value.size,items:P?.items??new Map,groups:P?.groups??new Set(pe.value.keys())};let J=0;const Q=new Map,ne=new Set;for(const[ye,Z]of oe.value){const ee=be(Z,re.value);Q.set(ye,ee?1:0),ee&&J++}for(const[ye,Z]of pe.value)for(const ee of Z)if(Q.get(ee)>0){ne.add(ye);break}return{count:J,items:Q,groups:ne}}),N=Tt();return ge(()=>{N?.exposed&&(N.exposed.highlightItem=o.value?.highlightItem,N.exposed.highlightFirstItem=o.value?.highlightFirstItem,N.exposed.highlightSelected=o.value?.highlightSelected)}),r({filtered:ce,highlightedElement:X,highlightItem:o.value?.highlightItem,highlightFirstItem:o.value?.highlightFirstItem,highlightSelected:o.value?.highlightSelected}),Ka({modelValue:k,multiple:d,disabled:b,open:$,onOpenChange:S,contentId:"",isUserInputted:E,isVirtual:de,inputElement:T,highlightedElement:X,onInputElementChange:P=>T.value=P,triggerElement:ie,onTriggerElementChange:P=>ie.value=P,parentElement:t,resetSearchTermOnSelect:I,onResetSearchTerm:L.on,allItems:oe,allGroups:pe,filterSearch:re,filterState:ce,ignoreFilter:B,openOnFocus:z,openOnClick:v,resetModelValueOnClear:m}),(P,J)=>(c(),_(e(Lt),null,{default:g(()=>[F(e(_a),A({ref_key:"primitiveElement",ref:o},P.$attrs,{modelValue:e(k),"onUpdate:modelValue":J[0]||(J[0]=Q=>vt(k)?k.value=Q:null),style:{pointerEvents:e($)?"auto":void 0},as:P.as,"as-child":P.asChild,dir:e(C),multiple:e(d),name:P.name,required:P.required,disabled:e(b),"highlight-on-hover":e(p),by:l.by,onHighlight:J[1]||(J[1]=Q=>i("highlight",Q))}),{default:g(()=>[w(P.$slots,"default",{open:e($),modelValue:e(k)})]),_:3},16,["modelValue","style","as","as-child","dir","multiple","name","required","disabled","highlight-on-hover","by"])]),_:3}))}}),Pa=Ra,Da=R({__name:"ComboboxAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const{forwardRef:r}=ae();return(a,l)=>(c(),_(e(Vt),{"as-child":"",reference:a.reference},{default:g(()=>[F(e(Y),A({ref:e(r),"as-child":a.asChild,as:a.as},a.$attrs),{default:g(()=>[w(a.$slots,"default")]),_:3},16,["as-child","as"])]),_:3},8,["reference"]))}}),$a=Da;const[Ma,Na]=ke("ComboboxContent");var Ha=R({__name:"ComboboxContentImpl",props:{position:{type:String,required:!1,default:"inline"},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(n,{emit:r}){const a=n,l=r,{position:i}=Ye(a),o=le(),t=V(()=>o.ignoreFilter.value?o.allItems.value.size===0:o.filterState.value.count===0),{forwardRef:d,currentElement:b}=ae();Kt(a.bodyLock),Rt(),Pt(o.parentElement);const B=V(()=>a.position==="popper"?a:{}),I=Dt(B.value),z={boxSizing:"border-box","--reka-combobox-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-combobox-content-available-width":"var(--reka-popper-available-width)","--reka-combobox-content-available-height":"var(--reka-popper-available-height)","--reka-combobox-trigger-width":"var(--reka-popper-anchor-width)","--reka-combobox-trigger-height":"var(--reka-popper-anchor-height)"};Na({position:i});const v=G(!1);ge(()=>{o.inputElement.value&&(v.value=b.value.contains(o.inputElement.value),v.value&&o.inputElement.value.focus())}),He(()=>{const m=ct();v.value&&(!m||m===document.body)&&o.triggerElement.value?.focus()});function y(m){if(o.parentElement.value?.contains(m))return!0;const C=(m instanceof Element?m.closest("label"):null)?.control;return!!C&&!!o.parentElement.value?.contains(C)}return(m,p)=>(c(),_(e(Ca),{"as-child":""},{default:g(()=>[F(e(mt),{"as-child":"",onMountAutoFocus:p[5]||(p[5]=we(()=>{},["prevent"])),onUnmountAutoFocus:p[6]||(p[6]=we(()=>{},["prevent"]))},{default:g(()=>[F(e($t),{"as-child":"","disable-outside-pointer-events":m.disableOutsidePointerEvents,onDismiss:p[0]||(p[0]=C=>e(o).onOpenChange(!1)),onFocusOutside:p[1]||(p[1]=C=>{y(C.target)&&C.preventDefault(),l("focusOutside",C)}),onInteractOutside:p[2]||(p[2]=C=>l("interactOutside",C)),onEscapeKeyDown:p[3]||(p[3]=C=>l("escapeKeyDown",C)),onPointerDownOutside:p[4]||(p[4]=C=>{y(C.target)&&C.preventDefault(),l("pointerDownOutside",C)})},{default:g(()=>[(c(),_(ft(e(i)==="popper"?e(Mt):e(Y)),A({...m.$attrs,...e(I)},{id:e(o).contentId,ref:e(d),"memo-dependencies":e(i)==="popper"?[e(o).filterSearch.value,e(o).filterState.value]:void 0,"data-state":e(o).open.value?"open":"closed","data-empty":t.value?"":void 0,style:{display:a.hideWhenEmpty&&t.value?"none":"flex",flexDirection:"column",outline:"none",...e(i)==="popper"?z:{}}}),{default:g(()=>[w(m.$slots,"default")]),_:3},16,["id","memo-dependencies","data-state","data-empty","style"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Ga=Ha,ja=R({__name:"ComboboxArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(n){const r=n,a=le(),l=Ma();return ae(),(i,o)=>e(a).open.value&&e(l).position.value==="popper"?(c(),_(e(Nt),qe(A({key:0},r)),{default:g(()=>[w(i.$slots,"default")]),_:3},16)):H("v-if",!0)}}),Ua=ja,Wa=R({__name:"ComboboxCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(n){const r=n;ae();const a=le();function l(){a.filterSearch.value="",a.inputElement.value&&(a.inputElement.value.value="",a.inputElement.value.focus()),a.resetModelValueOnClear?.value&&(a.modelValue.value=a.multiple.value?[]:null)}return(i,o)=>(c(),_(e(Y),A({type:i.as==="button"?"button":void 0},r,{tabindex:"-1",onClick:l}),{default:g(()=>[w(i.$slots,"default")]),_:3},16,["type"]))}}),Ya=Wa,Ja=R({__name:"ComboboxContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},hideWhenEmpty:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(n,{emit:r}){const i=Ht(n,r),{forwardRef:o}=ae(),t=le();return t.contentId||=Ee(void 0,"reka-combobox-content"),(d,b)=>(c(),_(e(Gt),{present:d.forceMount||e(t).open.value},{default:g(()=>[F(Ga,A({...e(i),...d.$attrs},{ref:e(o)}),{default:g(()=>[w(d.$slots,"default")]),_:3},16)]),_:3},8,["present"]))}}),Qa=Ja,Xa=R({__name:"ComboboxEmpty",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const r=n,a=le(),l=V(()=>a.ignoreFilter.value?a.allItems.value.size===0:a.filterState.value.count===0);return(i,o)=>l.value?(c(),_(e(Y),qe(A({key:0},r)),{default:g(()=>[w(i.$slots,"default",{},()=>[o[0]||(o[0]=Ce("No options"))])]),_:3},16)):H("v-if",!0)}}),Za=Xa;const[gt,el]=ke("ComboboxGroup");var tl=R({__name:"ComboboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const r=n,a=Ee(void 0,"reka-combobox-group"),l=le(),i=V(()=>l.ignoreFilter.value?!0:l.filterSearch.value?l.filterState.value.groups.has(a):!0),o=el({id:a,labelId:""});return ge(()=>{l.allGroups.value.has(a)||l.allGroups.value.set(a,new Set)}),He(()=>{l.allGroups.value.delete(a)}),(t,d)=>(c(),_(e(ka),A({id:e(a),"aria-labelledby":e(o).labelId},r,{hidden:i.value?void 0:!0}),{default:g(()=>[w(t.$slots,"default")]),_:3},16,["id","aria-labelledby","hidden"]))}}),Ue=tl,al=R({__name:"ComboboxInput",props:{displayValue:{type:Function,required:!1},modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(n,{emit:r}){const a=n,l=r,i=le(),o=Oe(),{primitiveElement:t,currentElement:d}=Te(),b=Ae(a,"modelValue",l,{passive:a.modelValue===void 0});ge(()=>{d.value&&i.onInputElementChange(d.value)});const{isComposing:B,handleCompositionStart:I,handleCompositionEnd:z}=ut(S=>{const L=S.target;L&&y(L.value)});function v(S){B.value||(S.preventDefault(),i.open.value||i.onOpenChange(!0))}function y(S){i.open.value?i.filterSearch.value=S:(i.onOpenChange(!0),ue(()=>{S&&(i.filterSearch.value=S,o.highlightFirstItem())}))}function m(S){B.value||y(S.target.value)}function p(){i.openOnFocus.value&&!i.open.value&&i.onOpenChange(!0)}function C(S){if(!i.open.value)return;const L=S.relatedTarget;if(!L)return;const E=i.parentElement.value?.contains(L),de=document.getElementById(i.contentId)?.contains(L);!E&&!de&&requestAnimationFrame(()=>{if(!i.open.value)return;const T=document.activeElement;!i.parentElement.value?.contains(T)&&!document.getElementById(i.contentId)?.contains(T)&&i.onOpenChange(!1)})}function k(){i.openOnClick.value&&!i.open.value&&i.onOpenChange(!0)}function $(){const S=i.modelValue.value;a.displayValue?b.value=a.displayValue(S):!i.multiple.value&&S&&!Array.isArray(S)&&typeof S!="object"?b.value=S.toString():b.value="",ue(()=>{b.value=b.value})}return i.onResetSearchTerm(()=>{$()}),Me(i.modelValue,async()=>{!i.isUserInputted.value&&i.resetSearchTermOnSelect.value&&$()},{immediate:!0,deep:!0}),Me(i.filterState,(S,L)=>{!i.isVirtual.value&&L.count===0&&o.highlightFirstItem()}),(S,L)=>(c(),_(e(Ia),{ref_key:"primitiveElement",ref:t,modelValue:e(b),"onUpdate:modelValue":L[0]||(L[0]=E=>vt(b)?b.value=E:null),as:S.as,"as-child":S.asChild,"auto-focus":S.autoFocus,disabled:S.disabled,"aria-expanded":e(i).open.value,"aria-controls":e(i).contentId,"aria-autocomplete":"list",role:"combobox",autocomplete:"off",onClick:k,onInput:m,onKeydown:Se(v,["down","up"]),onFocus:p,onBlur:C,onCompositionstart:e(I),onCompositionend:e(z)},{default:g(()=>[w(S.$slots,"default")]),_:3},8,["modelValue","as","as-child","auto-focus","disabled","aria-expanded","aria-controls","onCompositionstart","onCompositionend"]))}}),ll=al,il=R({__name:"ComboboxItem",props:{textValue:{type:String,required:!1},value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(n,{emit:r}){const a=n,l=r,i=Ee(void 0,"reka-combobox-item"),o=le(),t=gt(null),{primitiveElement:d,currentElement:b}=Te();if(a.value==="")throw new Error("A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.");const B=V(()=>{if(o.isVirtual.value||o.ignoreFilter.value||!o.filterSearch.value)return!0;{const I=o.filterState.value.items.get(i);return I===void 0?!0:I>0}});return ge(()=>{o.allItems.value.set(i,a.textValue||b.value.textContent||b.value.innerText);const I=t?.id;I&&(o.allGroups.value.has(I)?o.allGroups.value.get(I)?.add(i):o.allGroups.value.set(I,new Set([i])))}),He(()=>{o.allItems.value.delete(i)}),(I,z)=>B.value?dt([B.value,e(o).filterSearch.value,e(o).disabled.value,I.disabled,a.value,a.as,a.asChild,...Object.values(I.$attrs)],()=>(c(),_(e(Aa),A({key:0},a,{id:e(i),ref_key:"primitiveElement",ref:d,disabled:e(o).disabled.value||I.disabled,onSelect:z[0]||(z[0]=v=>{l("select",v),!v.defaultPrevented&&(!e(o).multiple.value&&!I.disabled&&!e(o).disabled.value?(v.preventDefault(),e(o).onOpenChange(!1),e(o).modelValue.value=a.value):e(o).multiple.value&&e(o).inputElement.value?.focus())})}),{default:g(()=>[w(I.$slots,"default",{},()=>[Ce(ve(I.value),1)])]),_:3},16,["id","disabled"])),z,1):H("v-if",!0)}}),ot=il,ol=R({__name:"ComboboxItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(n){const r=n;return(a,l)=>(c(),_(e(Ta),qe(Le(r)),{default:g(()=>[w(a.$slots,"default")]),_:3},16))}}),rl=ol,nl=R({__name:"ComboboxLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(n){const r=n;ae();const a=gt({id:"",labelId:""});return a.labelId||=Ee(void 0,"reka-combobox-group-label"),(l,i)=>(c(),_(e(Y),A(r,{id:e(a).labelId}),{default:g(()=>[w(l.$slots,"default")]),_:3},16,["id"]))}}),sl=nl,ul=R({__name:"ComboboxPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(n){const r=n;return(a,l)=>(c(),_(e(jt),qe(Le(r)),{default:g(()=>[w(a.$slots,"default")]),_:3},16))}}),dl=ul,pl=R({__name:"ComboboxSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const r=n;return ae(),(a,l)=>(c(),_(e(Y),A(r,{"aria-hidden":"true"}),{default:g(()=>[w(a.$slots,"default")]),_:3},16))}}),cl=pl,fl=R({__name:"ComboboxTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(n){const r=n,{forwardRef:a,currentElement:l}=ae(),i=le(),o=V(()=>r.disabled||i.disabled.value||!1);return ge(()=>{l.value&&i.onTriggerElementChange(l.value)}),(t,d)=>(c(),_(e(Y),A(r,{ref:e(a),type:t.as==="button"?"button":void 0,tabindex:"-1","aria-label":"Show popup","aria-haspopup":"listbox","aria-expanded":e(i).open.value,"aria-controls":e(i).contentId,"data-state":e(i).open.value?"open":"closed",disabled:o.value,"data-disabled":o.value?"":void 0,"aria-disabled":o.value??void 0,onClick:d[0]||(d[0]=b=>e(i).onOpenChange(!e(i).open.value))}),{default:g(()=>[w(t.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","disabled","data-disabled","aria-disabled"]))}}),vl=fl,ml=R({__name:"ComboboxVirtualizer",props:{options:{type:Array,required:!0},overscan:{type:Number,required:!1},estimateSize:{type:[Number,Function],required:!1},textContent:{type:Function,required:!1}},setup(n){const r=n,a=le();return a.isVirtual.value=!0,(l,i)=>(c(),_(Va,qe(Le(r)),{default:g(o=>[w(l.$slots,"default",qe(Le(o)))]),_:3},16))}}),gl=ml;function bl(n,r){if(typeof n!="object"||n===null)return!1;const a=xe(n,r);return a!=null&&a!==""}function rt(n,r){return r?{xs:44,sm:48,md:52,lg:56,xl:60}[n]:{xs:24,sm:28,md:32,lg:36,xl:40}[n]}function yl(n,r,a,l){const i=rt(r,!0),o=rt(r,!1);return l?()=>i:a?t=>bl(n[t],a)?i:o:()=>o}const hl={slots:{base:["relative group rounded-md inline-flex items-center disabled:cursor-not-allowed disabled:opacity-75","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",value:"truncate pointer-events-none",placeholder:"truncate text-dimmed",arrow:"fill-bg stroke-default",content:["max-h-[min(15rem,var(--reka-select-content-available-height,15rem))] w-(--reka-select-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden origin-(--reka-select-content-transform-origin) pointer-events-auto flex flex-col","max-h-[min(15rem,var(--reka-combobox-content-available-height,15rem))] origin-(--reka-combobox-content-transform-origin) w-(--reka-combobox-trigger-width)"],viewport:"relative scroll-py-1 overflow-y-auto flex-1",group:"p-1 isolate",empty:"text-center text-muted",label:"font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:["group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default","transition-colors"],itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemLeadingChip:"shrink-0",itemLeadingChipSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemWrapper:"flex-1 flex flex-col min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted",input:"border-b border-default",focusScope:"flex flex-col min-h-0",trailingClear:"p-0"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:"px-2 py-1 text-xs gap-1",leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",label:"p-1 text-[10px]/3 gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailingIcon:"size-4",empty:"p-2 text-xs"},sm:{base:"px-2.5 py-1.5 text-xs gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",label:"p-1.5 text-[10px]/3 gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailingIcon:"size-4",empty:"p-2.5 text-xs"},md:{base:"px-2.5 py-1.5 text-sm gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailingIcon:"size-5",empty:"p-2.5 text-sm"},lg:{base:"px-3 py-2 text-sm gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",label:"p-2 text-xs gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailingIcon:"size-5",empty:"p-3 text-sm"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",label:"p-2 text-sm gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemLeadingChip:"size-6",itemLeadingChipSize:"lg",itemTrailingIcon:"size-6",empty:"p-3 text-base"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented hover:bg-elevated disabled:bg-default",soft:"text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented hover:bg-accented/75 disabled:bg-elevated",ghost:"text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"},position:{popper:{content:"data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]"},"item-aligned":{content:""}},multiple:{true:""},virtualize:{true:{viewport:"p-1 isolate"},false:{viewport:"divide-y divide-default"}}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 focus-visible:outline-3 focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 focus-visible:outline-3 focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 focus-visible:outline-3 focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 focus-visible:outline-3 focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"}],defaultVariants:{size:"md",color:"primary",variant:"outline",position:"popper"}},Sl=Object.assign({inheritAttrs:!1},{__name:"USelectMenu",props:at({id:{type:String,required:!1},placeholder:{type:String,required:!1},searchInput:{type:[Boolean,Object],required:!1,default:!0},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},required:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},clear:{type:[Boolean,Object],required:!1},clearIcon:{type:null,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},virtualize:{type:[Boolean,Object],required:!1,default:!1},valueKey:{type:null,required:!1},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},items:{type:null,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},multiple:{type:Boolean,required:!1},highlight:{type:Boolean,required:!1},createItem:{type:[Boolean,String,Object],required:!1},filterFields:{type:Array,required:!1},ignoreFilter:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},resetSearchTermOnBlur:{type:Boolean,required:!1,default:!0},resetSearchTermOnSelect:{type:Boolean,required:!1,default:!0},resetModelValueOnClear:{type:Boolean,required:!1,default:!0},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},{searchTerm:{type:String,default:""},searchTermModifiers:{}}),emits:at(["change","blur","focus","create","clear","highlight","update:modelValue","update:open"],["update:searchTerm"]),setup(n,{expose:r,emit:a}){const l=n,i=a,o=pt(),t=Ut("selectMenu",l),d=Wt(n,"searchTerm",{type:String,default:""}),{t:b}=Yt(),B=Jt(),{filterGroups:I}=ca(),z=Qt(Xt(t,"modelValue","defaultValue","open","defaultOpen","required","multiple","resetSearchTermOnBlur","resetSearchTermOnSelect","resetModelValueOnClear","highlightOnHover","by"),i),v=Zt(fe(()=>t.portal)),y=fe(()=>Fe(t.content,{side:"bottom",sideOffset:8,collisionPadding:8,position:"popper"})),m=fe(()=>Fe(t.arrow,{rounded:!0})),p=V(()=>typeof t.clear=="object"?t.clear:{}),C=fe(()=>t.virtualize?Fe(typeof t.virtualize=="boolean"?{}:t.virtualize,{estimateSize:yl(x.value,ne.value||"md",t.descriptionKey,!!o["item-description"])}):!1),k=fe(()=>Fe(t.searchInput,{placeholder:b("selectMenu.search"),variant:"none"})),{emitFormBlur:$,emitFormFocus:S,emitFormInput:L,emitFormChange:E,size:de,color:T,id:ie,name:X,highlight:oe,disabled:pe,ariaAttrs:be}=ea(l),{orientation:re,size:ce}=ta(l),{isLeading:N,isTrailing:P,leadingIconName:J,trailingIconName:Q}=aa(fe(()=>Fe(t,{trailingIcon:B.ui.icons.chevronDown}))),ne=V(()=>ce.value||de.value),[ye,Z]=et(),[ee,Ve]=et({props:{item:{type:[Object,String,Number,Boolean],required:!0},index:{type:Number,required:!1}}}),h=V(()=>ua({extend:hl,...B.ui?.selectMenu||{}})({color:T.value??t.color,variant:t.variant,size:ne?.value??t.size,loading:t.loading,highlight:oe.value??t.highlight,leading:N.value||!!t.avatar||!!o.leading,trailing:P.value||!!o.trailing,fieldGroup:re.value,virtualize:!!t.virtualize,multiple:t.multiple}));function Ge(f){if(t.multiple&&Array.isArray(f)){const D=f.map(s=>lt(ze.value,s,{labelKey:t.labelKey,valueKey:t.valueKey,by:t.by})).filter(s=>s!=null&&s!=="");return D.length>0?D.join(", "):void 0}return lt(ze.value,f,{labelKey:t.labelKey,valueKey:t.valueKey,by:t.by})}const Ie=V(()=>t.items?.length?pa(t.items)?t.items:[t.items]:[]),ze=V(()=>Ie.value.flatMap(f=>f)),u=V(()=>{if(t.ignoreFilter||!d.value)return Ie.value;const f=Array.isArray(t.filterFields)?t.filterFields:[t.labelKey];return I(Ie.value,d.value,{fields:f,isStructural:D=>M(D)&&!!D.type&&["label","separator"].includes(D.type)})}),x=V(()=>u.value.flatMap(f=>f)),q=V(()=>{if(!t.createItem||!d.value)return!1;const f=t.valueKey?{[t.valueKey]:d.value}:d.value;return typeof t.createItem=="object"&&t.createItem.when==="always"||t.createItem==="always"?!x.value.find(D=>da(D,f,t.by??t.valueKey)):!x.value.length}),O=V(()=>typeof t.createItem=="object"?t.createItem.position:"bottom"),j=je("triggerRef");function he(){t.autofocus&&j.value?.$el?.focus({focusVisible:!0})}ge(()=>{setTimeout(()=>{he()},t.autofocusDelay)});function _e(f){if(na(t.modelValue)===f)return;t.modelModifiers?.trim&&(typeof f=="string"||f===null||f===void 0)&&(f=f?.trim()??null),t.modelModifiers?.number&&(f=sa(f)),t.modelModifiers?.nullable&&(f??=null),t.modelModifiers?.optional&&!t.modelModifiers?.nullable&&f!==null&&(f??=void 0);const D=new Event("change",{target:{value:f}});i("change",D),E(),L(),t.resetSearchTermOnSelect&&(d.value="")}const Je=G(!1);function bt(f){Je.value=f;let D;if(f){const s=new FocusEvent("focus");i("focus",s),S(),clearTimeout(D)}else{const s=new FocusEvent("blur");i("blur",s),$(),t.resetSearchTermOnBlur&&(D=setTimeout(()=>{d.value=""},100))}}function yt(f){f.preventDefault(),f.stopPropagation(),i("create",d.value)}function ht(f,D){if(M(D)){if(D.disabled){f.preventDefault();return}D.onSelect?.(f)}}function M(f){return typeof f=="object"&&f!==null}function _t(f){return t.multiple&&Array.isArray(f)?f.length===0:f==null||f===""}function xt(){i("clear")}const Qe=je("viewportRef"),Xe=je("comboboxRootRef");return Me(()=>t.items,async()=>{!Je.value||!t.createItem||(await ue(),Xe.value?.highlightFirstItem?.())},{flush:"post"}),r({triggerRef:fe(()=>j.value?.$el),viewportRef:fe(()=>Qe.value)}),(f,D)=>(c(),W(se,null,[F(e(ye),null,{default:g(()=>[F(e(ot),{"data-slot":"item",class:K(h.value.item({class:e(t).ui?.item})),value:d.value,onSelect:yt},{default:g(()=>[Be("span",{"data-slot":"itemLabel",class:K(h.value.itemLabel({class:e(t).ui?.itemLabel}))},[w(f.$slots,"create-item-label",{item:d.value},()=>[Ce(ve(e(b)("selectMenu.create",{label:d.value})),1)])],2)]),_:3},8,["class","value"])]),_:3}),F(e(ee),null,{default:g(({item:s,index:te})=>[M(s)&&s.type==="label"?(c(),_(e(sl),{key:0,"data-slot":"label",class:K(h.value.label({class:[e(t).ui?.label,s.ui?.label,s.class]}))},{default:g(()=>[Ce(ve(e(xe)(s,e(t).labelKey)),1)]),_:2},1032,["class"])):M(s)&&s.type==="separator"?(c(),_(e(cl),{key:1,"data-slot":"separator",class:K(h.value.separator({class:[e(t).ui?.separator,s.ui?.separator,s.class]}))},null,8,["class"])):(c(),_(e(ot),{key:2,"data-slot":"item",class:K(h.value.item({class:[e(t).ui?.item,M(s)&&s.ui?.item,M(s)&&s.class]})),disabled:M(s)&&s.disabled,value:e(t).valueKey&&M(s)?e(xe)(s,e(t).valueKey):s,onSelect:U=>ht(U,s)},{default:g(()=>[w(f.$slots,"item",{item:s,index:te,ui:h.value},()=>[w(f.$slots,"item-leading",{item:s,index:te,ui:h.value},()=>[M(s)&&s.icon?(c(),_(Re,{key:0,name:s.icon,"data-slot":"itemLeadingIcon",class:K(h.value.itemLeadingIcon({class:[e(t).ui?.itemLeadingIcon,s.ui?.itemLeadingIcon]}))},null,8,["name","class"])):M(s)&&s.avatar?(c(),_(tt,A({key:1,size:s.ui?.itemLeadingAvatarSize||e(t).ui?.itemLeadingAvatarSize||h.value.itemLeadingAvatarSize()},s.avatar,{"data-slot":"itemLeadingAvatar",class:h.value.itemLeadingAvatar({class:[e(t).ui?.itemLeadingAvatar,s.ui?.itemLeadingAvatar]})}),null,16,["size","class"])):M(s)&&s.chip?(c(),_(la,A({key:2,size:s.ui?.itemLeadingChipSize||e(t).ui?.itemLeadingChipSize||h.value.itemLeadingChipSize(),inset:"",standalone:""},s.chip,{"data-slot":"itemLeadingChip",class:h.value.itemLeadingChip({class:[e(t).ui?.itemLeadingChip,s.ui?.itemLeadingChip]})}),null,16,["size","class"])):H("",!0)]),Be("span",{"data-slot":"itemWrapper",class:K(h.value.itemWrapper({class:[e(t).ui?.itemWrapper,M(s)&&s.ui?.itemWrapper]}))},[Be("span",{"data-slot":"itemLabel",class:K(h.value.itemLabel({class:[e(t).ui?.itemLabel,M(s)&&s.ui?.itemLabel]}))},[w(f.$slots,"item-label",{item:s,index:te},()=>[Ce(ve(M(s)?e(xe)(s,e(t).labelKey):s),1)])],2),M(s)&&(e(xe)(s,e(t).descriptionKey)||o["item-description"])?(c(),W("span",{key:0,"data-slot":"itemDescription",class:K(h.value.itemDescription({class:[e(t).ui?.itemDescription,M(s)&&s.ui?.itemDescription]}))},[w(f.$slots,"item-description",{item:s,index:te},()=>[Ce(ve(e(xe)(s,e(t).descriptionKey)),1)])],2)):H("",!0)],2),Be("span",{"data-slot":"itemTrailing",class:K(h.value.itemTrailing({class:[e(t).ui?.itemTrailing,M(s)&&s.ui?.itemTrailing]}))},[w(f.$slots,"item-trailing",{item:s,index:te,ui:h.value}),F(e(rl),{"as-child":""},{default:g(()=>[F(Re,{name:e(t).selectedIcon||e(B).ui.icons.check,"data-slot":"itemTrailingIcon",class:K(h.value.itemTrailingIcon({class:[e(t).ui?.itemTrailingIcon,M(s)&&s.ui?.itemTrailingIcon]}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:2},1032,["class","disabled","value","onSelect"]))]),_:3}),F(e(Pa),A({ref_key:"comboboxRootRef",ref:Xe},e(z),{"ignore-filter":"","as-child":"",name:e(X),disabled:e(pe),"onUpdate:modelValue":_e,"onUpdate:open":bt}),{default:g(({modelValue:s,open:te})=>[F(e($a),{"as-child":""},{default:g(()=>[F(e(vl),A({id:e(ie),ref_key:"triggerRef",ref:j,"data-slot":"base",class:h.value.base({class:[e(t).ui?.base,e(t).class]}),tabindex:"0"},{...f.$attrs,...e(be)}),{default:g(()=>[e(N)||e(t).avatar||o.leading?(c(),W("span",{key:0,"data-slot":"leading",class:K(h.value.leading({class:e(t).ui?.leading}))},[w(f.$slots,"leading",{modelValue:s,open:te,ui:h.value},()=>[e(N)&&e(J)?(c(),_(Re,{key:0,name:e(J),"data-slot":"leadingIcon",class:K(h.value.leadingIcon({class:e(t).ui?.leadingIcon}))},null,8,["name","class"])):e(t).avatar?(c(),_(tt,A({key:1,size:e(t).ui?.itemLeadingAvatarSize||h.value.itemLeadingAvatarSize()},e(t).avatar,{"data-slot":"itemLeadingAvatar",class:h.value.itemLeadingAvatar({class:e(t).ui?.itemLeadingAvatar})}),null,16,["size","class"])):H("",!0)])],2)):H("",!0),w(f.$slots,"default",{modelValue:s,open:te,ui:h.value},()=>[(c(!0),W(se,null,De([Ge(s)],U=>(c(),W(se,{key:U},[U!=null?(c(),W("span",{key:0,"data-slot":"value",class:K(h.value.value({class:e(t).ui?.value}))},ve(U),3)):(c(),W("span",{key:1,"data-slot":"placeholder",class:K(h.value.placeholder({class:e(t).ui?.placeholder}))},ve(e(t).placeholder??" "),3))],64))),128))]),e(P)||o.trailing||e(t).clear?(c(),W("span",{key:1,"data-slot":"trailing",class:K(h.value.trailing({class:e(t).ui?.trailing}))},[w(f.$slots,"trailing",{modelValue:s,open:te,ui:h.value},()=>[e(t).clear&&!_t(s)?(c(),_(e(Ya),{key:0,"as-child":""},{default:g(()=>[F(ia,A({as:"span",icon:e(t).clearIcon||e(B).ui.icons.close,size:ne.value,variant:"link",color:"neutral",tabindex:"-1"},p.value,{"data-slot":"trailingClear",class:h.value.trailingClear({class:e(t).ui?.trailingClear}),onClick:we(xt,["stop"])}),null,16,["icon","size","class"])]),_:1})):e(Q)?(c(),_(Re,{key:1,name:e(Q),"data-slot":"trailingIcon",class:K(h.value.trailingIcon({class:e(t).ui?.trailingIcon}))},null,8,["name","class"])):H("",!0)])],2)):H("",!0)]),_:2},1040,["id","class"])]),_:2},1024),F(e(dl),qe(Le(e(v))),{default:g(()=>[F(e(oa),null,{default:g(()=>[F(e(Qa),A({"data-slot":"content",class:h.value.content({class:e(t).ui?.content})},y.value),{default:g(()=>[F(e(mt),{trapped:"","data-slot":"focusScope",class:K(h.value.focusScope({class:e(t).ui?.focusScope}))},{default:g(()=>[w(f.$slots,"content-top"),e(t).searchInput?(c(),_(e(ll),{key:0,modelValue:d.value,"onUpdate:modelValue":D[1]||(D[1]=U=>d.value=U),"display-value":()=>d.value,"as-child":""},{default:g(()=>[F(ra,A({autofocus:"",autocomplete:"off",size:ne.value},k.value,{"model-modifiers":{trim:e(t).modelModifiers?.trim},"data-slot":"input",class:h.value.input({class:e(t).ui?.input}),onChange:D[0]||(D[0]=we(()=>{},["stop"]))}),null,16,["size","model-modifiers","class"])]),_:1},8,["modelValue","display-value"])):H("",!0),F(e(Za),{"data-slot":"empty",class:K(h.value.empty({class:e(t).ui?.empty}))},{default:g(()=>[w(f.$slots,"empty",{searchTerm:d.value},()=>[Ce(ve(d.value?e(b)("selectMenu.noMatch",{searchTerm:d.value}):e(b)("selectMenu.noData")),1)])]),_:3},8,["class"]),Be("div",{ref_key:"viewportRef",ref:Qe,role:"presentation","data-slot":"viewport",class:K(h.value.viewport({class:e(t).ui?.viewport}))},[e(t).virtualize?(c(),W(se,{key:0},[q.value&&O.value==="top"?(c(),_(e(Z),{key:0})):H("",!0),F(e(gl),A({options:x.value,"text-content":U=>M(U)?e(xe)(U,e(t).labelKey):String(U)},C.value),{default:g(({option:U,virtualItem:Ke})=>[F(e(Ve),{item:U,index:Ke.index},null,8,["item","index"])]),_:1},16,["options","text-content"]),q.value&&O.value==="bottom"?(c(),_(e(Z),{key:1})):H("",!0)],64)):(c(),W(se,{key:1},[q.value&&O.value==="top"?(c(),_(e(Ue),{key:0,"data-slot":"group",class:K(h.value.group({class:e(t).ui?.group}))},{default:g(()=>[F(e(Z))]),_:1},8,["class"])):H("",!0),(c(!0),W(se,null,De(u.value,(U,Ke)=>(c(),_(e(Ue),{key:`group-${Ke}`,"data-slot":"group",class:K(h.value.group({class:e(t).ui?.group}))},{default:g(()=>[(c(!0),W(se,null,De(U,(Ct,Ze)=>(c(),_(e(Ve),{key:`group-${Ke}-${Ze}`,item:Ct,index:Ze},null,8,["item","index"]))),128))]),_:2},1032,["class"]))),128)),q.value&&O.value==="bottom"?(c(),_(e(Ue),{key:1,"data-slot":"group",class:K(h.value.group({class:e(t).ui?.group}))},{default:g(()=>[F(e(Z))]),_:1},8,["class"])):H("",!0)],64))],2),w(f.$slots,"content-bottom")]),_:3},8,["class"]),e(t).arrow?(c(),_(e(Ua),A({key:0},m.value,{"data-slot":"arrow",class:h.value.arrow({class:e(t).ui?.arrow})}),null,16,["class"])):H("",!0)]),_:3},16,["class"])]),_:3})]),_:3},16)]),_:3},16,["name","disabled"])],64))}});export{Aa as L,Sl as _,Ta as a,Ia as b,Ca as c,Va as d,ka as e,_a as f,yl as g,Il as i};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as f,o as a,f as g,s as w,k as l,g as C,j as c,q as v,p as b,m as x,t as y,c as u,v as d,V as p,H as V,i as _,F as h,y as z,I as U,r as j,h as M}from"./C5TrTuWv.js";import{j as B,B as L,A as F,k as H}from"./DMtrFQqi.js";import{_ as N}from"./B69RP95P.js";import{_ as O}from"./Ce5_Tq63.js";import{_ as P}from"./DhYznn-U.js";const T=f({__name:"StatusChip",props:{status:{},size:{}},setup(e){return(t,n)=>{const o=b,r=w;return a(),g(r,{color:("getStatusColor"in t?t.getStatusColor:l(B))(e.status),size:e.size,variant:"subtle",class:"capitalize gap-1 items-center font-semibold shrink-0"},{default:C(()=>[c(o,{name:("getStatusIcon"in t?t.getStatusIcon:l(F))(e.status),class:v(["size-3.5 shrink-0",{"animate-spin":("isStatusInFlight"in t?t.isStatusInFlight:l(L))(e.status)}])},null,8,["name","class"]),x(" "+y(("formatStatusLabel"in t?t.formatStatusLabel:l(H))(e.status)),1)]),_:1},8,["color","size"])}}}),ee=Object.assign(T,{__name:"StatusChip"}),D=["title"],q=f({__name:"MetaStripGroup",props:{label:{},icon:{},help:{}},setup(e){return(t,n)=>{const o=b,r=N;return a(),u("div",{class:"inline-flex items-center flex-wrap gap-x-1.5 gap-y-1 min-w-0 py-0.5 mr-3 [&:not(:first-child)]:border-l [&:not(:first-child)]:border-default [&:not(:first-child)]:pl-3",title:e.label},[e.icon?(a(),g(o,{key:0,name:e.icon,class:"w-3.5 h-3.5 text-dimmed shrink-0"},null,8,["name"])):d("",!0),p(t.$slots,"default"),e.help?(a(),g(r,{key:1,topic:e.help},null,8,["topic"])):d("",!0)],8,D)}}}),te=Object.assign(q,{__name:"MetaStripGroup"}),G={class:"flex flex-wrap items-center gap-y-1 text-sm min-w-0"},A=f({__name:"SummaryMetaStrip",setup(e){return(t,n)=>(a(),u("div",G,[p(t.$slots,"default")]))}}),se=Object.assign(A,{__name:"SummaryMetaStrip"}),E={class:"flex flex-col h-full gap-4 p-1 max-lg:overflow-y-auto lg:overflow-hidden"},J={key:0,class:"lg:shrink-0"},K={class:"lg:shrink-0 max-lg:sticky max-lg:top-0 max-lg:z-10 max-lg:-mx-1 max-lg:bg-(--ui-bg-canvas) max-lg:px-1 max-lg:py-1.5"},Q=f({__name:"DetailPageLayout",props:U({tabItems:{},tabPanelClass:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=V(e,"modelValue"),o=j(!1),r=M(()=>t.tabItems.find(i=>i.value===n.value)?.icon);function S(i){return["min-h-0","lg:flex-1",t.tabPanelClass?.[i]??"overflow-y-auto","max-lg:!block","max-lg:!overflow-visible"]}return(i,m)=>{const k=b,$=O,I=P;return a(),u("div",E,[i.$slots.summary?(a(),u("div",J,[_("div",{class:v(l(o)?"max-lg:hidden":"")},[p(i.$slots,"summary")],2),_("button",{type:"button",class:"lg:hidden mt-2 w-full flex items-center justify-center gap-1 rounded-md border border-default py-1.5 text-xs font-medium text-muted hover:bg-elevated/60 transition-colors",onClick:m[0]||(m[0]=s=>o.value=!l(o))},[c(k,{name:l(o)?"i-lucide-chevron-down":"i-lucide-chevron-up",class:"size-3.5"},null,8,["name"]),x(" "+y(l(o)?"Show summary":"Hide summary"),1)])])):d("",!0),_("div",K,[c($,{modelValue:n.value,"onUpdate:modelValue":m[1]||(m[1]=s=>n.value=s),items:e.tabItems,icon:l(r),size:"md",class:"w-full sm:hidden"},null,8,["modelValue","items","icon"]),c(I,{modelValue:n.value,"onUpdate:modelValue":m[2]||(m[2]=s=>n.value=s),items:e.tabItems,size:"sm",class:"hidden sm:flex",ui:{list:"overflow-x-auto",trigger:"shrink-0"}},null,8,["modelValue","items"])]),(a(!0),u(h,null,z(e.tabItems,s=>(a(),u(h,{key:s.value},[n.value===s.value?(a(),u("div",{key:0,class:v(S(s.value))},[p(i.$slots,`tab-${s.slot??s.value}`)],2)):d("",!0)],64))),128))])}}}),ae=Object.assign(Q,{__name:"DetailPageLayout"});export{ee as _,se as a,te as b,ae as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as Ms}from"./Cu2Q4iPh.js";import{_ as Fs}from"./Qo6oszaF.js";import{b as Ae,A as wt,d as oe,O as Ot,w as he,J as ye,k as e,o as n,f,g as t,j as a,_ as ke,c as r,i as s,m as d,t as i,v as A,F as X,y as ae,p as Le,G as Be,l as J,P as Vt,Q as Nt,q as ie,h as B,r as I,K as Ps,s as Ce,R as qt,n as Rt,D as Dt,E as Ht,M as Es,u as Ls,a as Bs,e as Vs,C as Kt,S as Ns,T as Ks}from"./C5TrTuWv.js";import{_ as Os}from"./BrUBOQ0y.js";import{_ as Xe,a as qs}from"./B69RP95P.js";import{_ as ze}from"./Ce5_Tq63.js";import{_ as Qt}from"./DH5H1DJh.js";import{u as Hs}from"./BVLqydCr.js";import{u as xe}from"./T5UuMUxA.js";import{_ as Qs}from"./Drw8yQg6.js";import{_ as Gs,a as Xs}from"./opyDpgSw.js";import{_ as Gt}from"./CjBktNrC.js";import{_ as ut}from"./DMAiMrNr.js";import{u as Js}from"./CX5Q0dZ8.js";import{_ as Xt}from"./DGq4A2Pd.js";import{_ as $e}from"./BFxvHlO9.js";import{C as St,w as Jt,O as it,a as Wt,_ as Yt,u as Zt}from"./P5uOaRUZ.js";import{N as Ws}from"./DF6Mes5z.js";import{_ as Ys}from"./BkxRbXIj.js";import{_ as Zs}from"./C-XjxjG5.js";import{_ as en}from"./Cq33x7yV.js";import{_ as es}from"./DuOH5jcQ.js";import{_ as tn}from"./98sAB6Gu.js";import{_ as sn}from"./VACXezo0.js";import{_ as nn}from"./LwoTUb-r.js";import{_ as an}from"./DL8knjzi.js";import{_ as Ue}from"./Bg93Rnts.js";import{_ as Ve}from"./C8Paf_V1.js";import{_ as Ne}from"./DbmGeOus.js";import{f as At,b as on,c as ln,d as rn,i as E,t as cn,e as ts,p as ct,j as ot}from"./DMtrFQqi.js";import{_ as ss}from"./CMuzkARi.js";import{_ as dt}from"./D0Kop4bS.js";import{_ as Je}from"./DcLbz6DV.js";import{_ as un}from"./DvEsAuE9.js";import{_ as dn}from"./Bd8B-yeR.js";import{_ as mn}from"./DcR0Mmdl.js";import{_ as pn}from"./CJ1rmnk4.js";import{_ as gn}from"./BakMHV79.js";import{_ as fn}from"./Cf4MFOuf.js";import{_ as _n}from"./BvAfKk6C.js";import{_ as vn}from"./BfA6lfg4.js";import{_ as zt}from"./6Z_ZwH8I.js";import{M as yn,D as Tt,g as jt}from"./D7W_4Sqc.js";import{_ as hn}from"./DhYznn-U.js";import{u as xn}from"./BevElZaK.js";import{u as bn}from"./Bme1UkOl.js";import"./BCGljaM0.js";import"./BjaRappk.js";import"./DaNC-xl1.js";import"./D_y2VS8k.js";import"./03FA4-rI.js";import"./DMsm-RGQ.js";import"./D-c8ZSws.js";import"./V9p3z39z.js";import"./B8H4XydJ.js";import"./BBhrClA9.js";import"./DzZpIs4W.js";import"./CpcrljrH.js";import"./DEvYVl9M.js";const kn=["run.finished","run.failed","run.failed.default_branch","cluster.new","flakiness.spike","perf.regression","diagnosis.completed"],lt=new Map,rt=new Map;function $n(U,$){const k=[{event:"run.failed",scenario:{title:`Test run failed — ${U}`,description:"3 of 12 tests failed on main — checkout › applies discount code +2 more",icon:"i-lucide-circle-x",color:"error"}},{event:"run.failed.default_branch",scenario:{title:`Test run failed on main — ${U}`,description:"2 of 12 tests failed · main — auth › logs in with valid credentials +1 more",icon:"i-lucide-circle-x",color:"error"}},{event:"cluster.new",scenario:{title:`New failure cluster — ${U}`,description:"TimeoutError: locator.click: Timeout 30000ms exceeded",icon:"i-lucide-layers",color:"warning"}},{event:"flakiness.spike",scenario:{title:`Flakiness spike — ${U}`,description:"3 tests became flaky (8.3% rate)",icon:"i-lucide-shuffle",color:"warning"}},{event:"perf.regression",scenario:{title:`Performance regression — ${U}`,description:"p90 duration increased by 42% vs last week",icon:"i-lucide-trending-down",color:"warning"}},{event:"run.finished",scenario:{title:`Test run recovered — ${U}`,description:"All 12 tests passed on main",icon:"i-lucide-circle-check",color:"success"}},{event:"diagnosis.completed",scenario:{title:`Diagnosis complete — ${U}`,description:"Root cause: test bug — confidence: high",icon:"i-lucide-sparkles",color:"info"}}],C=k.filter(_=>$.length===0||$.includes(_.event)).map(_=>_.scenario);return C.length===0?[k[0].scenario,k[k.length-1].scenario]:C}function Cn(){if(!wt().public.demoMode)return null;const $=Ae();function k(_,p,c){C(_);const F=$n(p,c);rt.set(_,0);function R(){const z=(rt.get(_)??0)%F.length;rt.set(_,z+1);const h=F[z];$.add({title:h.title,description:h.description,icon:h.icon,color:h.color,duration:7e3});const y=25e3+Math.random()*1e4;lt.set(_,setTimeout(R,y))}lt.set(_,setTimeout(R,8e3))}function C(_){const p=lt.get(_);p!==void 0&&(clearTimeout(p),lt.delete(_)),rt.delete(_)}return{scheduleFor:k,cancelFor:C}}const Tn={key:0,class:"p-3 space-y-3"},jn={key:0,class:"text-xs text-gray-500"},Sn={key:1,class:"text-xs text-gray-500"},wn={key:2,class:"text-xs text-gray-500"},Rn={class:"space-y-1"},Dn=["checked","onChange"],An={key:1,class:"p-3 space-y-3"},zn={class:"flex items-center justify-between"},Un={class:"font-medium text-sm inline-flex items-center gap-1"},In={key:0,class:"text-xs text-muted bg-primary/5 rounded px-2 py-1.5"},Mn={key:1,class:"text-xs text-muted text-center py-2"},Fn={key:2,class:"space-y-1.5"},Pn={key:0,class:"space-y-2 rounded border border-primary/30 bg-primary/5 px-2 py-2"},En={class:"space-y-1"},Ln=["value"],Bn={class:"flex gap-1.5 justify-end"},Vn={class:"flex-1 font-medium truncate"},Nn={key:3,class:"text-xs text-muted text-center py-1"},Kn={key:4,class:"space-y-2 border-t border-default pt-2"},On={class:"space-y-1"},qn=["value"],Hn={class:"flex gap-1.5 justify-end"},Qn=oe({__name:"SubscribeBell",props:{projectId:{},projectLabel:{}},async setup(U){let $,k;const C=U,_=wt(),p=_.public.demoMode,c=B(()=>_.public.authEnabled),{authState:F}=Ot(),R=B(()=>F.value.authenticated),z=Ae(),h=I(!1),y=p?Cn():null,x=!c.value&&!p?Hs():null,T=I("default"),m=B(()=>"Notification"in window);"Notification"in window&&(T.value=Notification.permission);const v=B(()=>x?.getProject(C.projectId).events??[]),M=B(()=>x?.isSubscribed(C.projectId)??!1);async function V(){!m.value||T.value!=="default"||(T.value=await Notification.requestPermission())}function j(K){return v.value.includes(K)}function g(K){x?.toggleEvent(C.projectId,K)}const S=p||c.value&&R.value,O=p?{server:!1}:{},{data:D,refresh:Q}=([$,k]=he(()=>xe(`/api/subscriptions?projectId=${C.projectId}`,{immediate:S,...O},"$APDuK86tlj")),$=await $,k(),$),N=B(()=>D.value?.subscriptions??[]),ue=B(()=>N.value.length>0),{data:ge}=([$,k]=he(()=>xe("/api/channels",{immediate:S,...O},"$uK3f0xlELn")),$=await $,k(),$),b=B(()=>ge.value?.channels??[]),w=I(!1),H=I(void 0),de=I(["run.failed"]),Ie=I(!1),me=I(null),be=I(void 0),fe=I([]),Me=I(!1);function mt(K){me.value=K,be.value=K.channel.id,fe.value=[...K.events]}function pt(){me.value=null}async function Y(){if(!(!me.value||!be.value||fe.value.length===0)){Me.value=!0;try{await $fetch(`/api/subscriptions/${me.value.id}`,{method:"PATCH",body:{channelId:be.value,events:fe.value}}),await Q(),me.value=null}catch(K){z.add({title:"Update failed",description:String(K?.message??K),color:"error"})}finally{Me.value=!1}}}const We=B(()=>b.value.map(K=>({label:K.type==="personal_email"?`${K.name} (${K.config.address})`:K.name,value:K.id}))),Ke=kn.map(K=>({label:K.replace(/\./g," › "),value:K}));ye(h,K=>{K?(S&&Q(),b.value.length>0&&!H.value&&(H.value=b.value[0].id)):(w.value=!1,me.value=null)});async function Oe(){if(!(!H.value||de.value.length===0)){Ie.value=!0;try{await $fetch("/api/subscriptions",{method:"POST",body:{channelId:H.value,projectId:C.projectId,events:de.value,mode:"realtime"}}),await Q(),w.value=!1,z.add({title:"Subscribed",color:"success"}),p&&y?.scheduleFor(C.projectId,C.projectLabel||"this project",de.value)}catch(K){z.add({title:"Subscribe failed",description:String(K?.message??K),color:"error"})}finally{Ie.value=!1}}}async function gt(K){try{await $fetch(`/api/subscriptions/${K}`,{method:"DELETE"}),await Q(),z.add({title:"Unsubscribed",color:"success"}),p&&N.value.length===0&&y?.cancelFor(C.projectId)}catch(P){z.add({title:"Failed",description:String(P?.message??P),color:"error"})}}async function ne(K){const P=K.mutedUntil&&new Date(K.mutedUntil)>new Date;try{await $fetch(`/api/subscriptions/${K.id}`,{method:"PATCH",body:{mutedUntil:P?null:new Date(Date.now()+10080*60*1e3).toISOString()}}),await Q()}catch(Z){z.add({title:"Failed",description:String(Z?.message??Z),color:"error"})}}function pe(K){return K.mutedUntil&&new Date(K.mutedUntil)>new Date}function qe(K){return K==="personal_email"?"i-lucide-user-round":K==="email"?"i-lucide-mail":K==="slack"?"i-lucide-slack":"i-lucide-webhook"}const ft=B(()=>p||c.value&&R.value||x!=null),He=B(()=>p||c.value?ue.value:M.value);return(K,P)=>{const Z=ke,_t=Os,Te=Xe,Ye=Le,Ze=Be,Fe=ze,je=Qt,vt=Ps;return e(ft)?(n(),f(vt,{key:0,open:e(h),"onUpdate:open":P[6]||(P[6]=q=>J(h)?h.value=q:null),ui:{content:"w-72"}},{content:t(()=>[e(x)?(n(),r("div",Tn,[P[9]||(P[9]=s("div",{class:"flex items-center justify-between"},[s("span",{class:"font-medium text-sm"},"Browser notifications")],-1)),e(m)&&e(T)==="default"?(n(),r("p",jn,[a(Z,{variant:"link",size:"xs",class:"p-0",onClick:V},{default:t(()=>[...P[7]||(P[7]=[d(" Allow notifications ",-1)])]),_:1}),P[8]||(P[8]=d(" "+i(" ")+"in your browser to get alerts for this project. ",-1))])):e(m)&&e(T)==="denied"?(n(),r("p",Sn," Notifications are blocked. Check your browser settings to allow them. ")):e(m)?A("",!0):(n(),r("p",wn,"Notifications are not supported in this browser.")),e(m)&&e(T)==="granted"?(n(),r(X,{key:3},[a(_t),s("div",Rn,[(n(!0),r(X,null,ae(e(Ke),q=>(n(),r("label",{key:q.value,class:"flex items-center gap-1.5 text-xs cursor-pointer"},[s("input",{type:"checkbox",checked:j(q.value),class:"accent-primary size-3",onChange:le=>g(q.value)},null,40,Dn),d(" "+i(q.label),1)]))),128))])],64)):A("",!0)])):(n(),r("div",An,[s("div",zn,[s("span",Un,[P[10]||(P[10]=d(" Notifications ",-1)),a(Te,{topic:"notifications.subscribe"})]),e(w)?A("",!0):(n(),f(Z,{key:0,size:"xs",icon:"i-lucide-plus",variant:"ghost",color:"neutral",disabled:e(b).length===0,onClick:P[0]||(P[0]=q=>w.value=!0)},{default:t(()=>[...P[11]||(P[11]=[d(" Add ",-1)])]),_:1},8,["disabled"]))]),e(p)?(n(),r("div",In,[a(Ye,{name:"i-lucide-sparkles",class:"size-3 inline-block mr-1 text-primary"}),P[12]||(P[12]=d(" Demo — notifications will appear as toasts in ~8 s. ",-1))])):e(b).length===0?(n(),r("div",Mn,[P[14]||(P[14]=d(" No channels configured.",-1)),P[15]||(P[15]=s("br",null,null,-1)),a(Ze,{to:"/settings/notifications",class:"text-primary underline"},{default:t(()=>[...P[13]||(P[13]=[d("Add one in Settings",-1)])]),_:1})])):A("",!0),e(N).length>0?(n(),r("div",Fn,[(n(!0),r(X,null,ae(e(N),q=>(n(),r(X,{key:q.id},[e(me)?.id===q.id?(n(),r("div",Pn,[a(je,{label:"Channel",size:"xs"},{default:t(()=>[a(Fe,{modelValue:e(be),"onUpdate:modelValue":P[1]||(P[1]=le=>J(be)?be.value=le:null),items:e(We),"value-key":"value",class:"w-full text-xs",size:"xs"},null,8,["modelValue","items"])]),_:1}),a(je,{label:"Events",size:"xs"},{default:t(()=>[s("div",En,[(n(!0),r(X,null,ae(e(Ke),le=>(n(),r("label",{key:le.value,class:"flex items-center gap-1.5 text-xs cursor-pointer"},[Vt(s("input",{type:"checkbox",value:le.value,"onUpdate:modelValue":P[2]||(P[2]=Qe=>J(fe)?fe.value=Qe:null),class:"accent-primary size-3"},null,8,Ln),[[Nt,e(fe)]]),d(" "+i(le.label),1)]))),128))])]),_:1}),s("div",Bn,[a(Z,{size:"xs",color:"neutral",variant:"ghost",onClick:pt},{default:t(()=>[...P[16]||(P[16]=[d("Cancel",-1)])]),_:1}),a(Z,{size:"xs",color:"primary",loading:e(Me),disabled:!e(be)||e(fe).length===0,onClick:Y},{default:t(()=>[...P[17]||(P[17]=[d(" Save ",-1)])]),_:1},8,["loading","disabled"])])])):(n(),r("div",{key:1,class:ie(["flex items-center gap-2 rounded px-2 py-1.5 text-xs",pe(q)?"opacity-60":""])},[a(Ye,{name:qe(q.channel.type),class:"size-3.5 text-muted shrink-0"},null,8,["name"]),s("span",Vn,i(q.channel.name),1),a(Z,{icon:"i-lucide-pencil",color:"neutral",variant:"ghost",size:"xs",title:"Edit subscription",onClick:le=>mt(q)},null,8,["onClick"]),a(Z,{icon:pe(q)?"i-lucide-bell":"i-lucide-bell-off",color:"neutral",variant:"ghost",size:"xs",title:pe(q)?"Unmute":"Mute 7 days",onClick:le=>ne(q)},null,8,["icon","title","onClick"]),a(Z,{icon:"i-lucide-x",color:"error",variant:"ghost",size:"xs",title:"Unsubscribe",onClick:le=>gt(q.id)},null,8,["onClick"])],2))],64))),128))])):!e(w)&&e(b).length>0?(n(),r("div",Nn," Not subscribed to this project. ")):A("",!0),e(w)?(n(),r("div",Kn,[a(je,{label:"Channel",size:"xs"},{default:t(()=>[a(Fe,{modelValue:e(H),"onUpdate:modelValue":P[3]||(P[3]=q=>J(H)?H.value=q:null),items:e(We),"value-key":"value",class:"w-full text-xs",size:"xs"},null,8,["modelValue","items"])]),_:1}),a(je,{label:"Events",size:"xs"},{default:t(()=>[s("div",On,[(n(!0),r(X,null,ae(e(Ke),q=>(n(),r("label",{key:q.value,class:"flex items-center gap-1.5 text-xs cursor-pointer"},[Vt(s("input",{type:"checkbox",value:q.value,"onUpdate:modelValue":P[4]||(P[4]=le=>J(de)?de.value=le:null),class:"accent-primary size-3"},null,8,qn),[[Nt,e(de)]]),d(" "+i(q.label),1)]))),128))])]),_:1}),s("div",Hn,[a(Z,{size:"xs",color:"neutral",variant:"ghost",onClick:P[5]||(P[5]=q=>w.value=!1)},{default:t(()=>[...P[18]||(P[18]=[d("Cancel",-1)])]),_:1}),a(Z,{size:"xs",color:"primary",loading:e(Ie),disabled:!e(H)||e(de).length===0,onClick:Oe},{default:t(()=>[...P[19]||(P[19]=[d(" Subscribe ",-1)])]),_:1},8,["loading","disabled"])])])):A("",!0)]))]),default:t(()=>[a(Z,{icon:e(He)?"i-lucide-bell-ring":"i-lucide-bell",size:"sm",color:e(He)?"primary":"neutral",variant:e(He)?"soft":"outline",title:"Notification subscriptions for this project"},null,8,["icon","color","variant"])]),_:1},8,["open"])):A("",!0)}}}),Gn=Object.assign(Qn,{__name:"SubscribeBell"}),Xn={key:0,class:"flex items-center justify-between gap-3"},Jn={class:"flex items-center gap-2 min-w-0 text-sm"},Wn={class:"text-xs break-all"},Yn={class:"flex items-center gap-1.5 shrink-0"},Zn={key:1,class:"flex items-center justify-between gap-3"},ea=oe({__name:"DesktopProjectLinkCard",props:{projectId:{}},setup(U){const $=U,{available:k,link:C,busy:_,pickAndLink:p,unlink:c}=Js(()=>$.projectId);return(F,R)=>{const z=Le,h=Ce,y=ke,x=ut;return e(k)?(n(),f(x,{key:0,icon:"i-lucide-folder-symlink",title:"Local folder"},{subtitle:t(()=>[...R[0]||(R[0]=[d(" Link this project to its checkout on this machine to retry failures from here and open files in your IDE. ",-1)])]),default:t(()=>[e(C)?(n(),r("div",Xn,[s("div",Jn,[a(z,{name:e(C).exists?"i-lucide-folder-check":"i-lucide-folder-x",class:ie(["size-4 shrink-0",e(C).exists?"text-success":"text-warning"])},null,8,["name","class"]),s("code",Wn,i(e(C).path),1),e(C).exists?A("",!0):(n(),f(h,{key:0,color:"warning",variant:"subtle",size:"sm"},{default:t(()=>[...R[1]||(R[1]=[d("missing",-1)])]),_:1}))]),s("div",Yn,[a(y,{size:"xs",color:"neutral",variant:"soft",icon:"i-lucide-folder-search",loading:e(_),onClick:e(p)},{default:t(()=>[...R[2]||(R[2]=[d(" Change ",-1)])]),_:1},8,["loading","onClick"]),a(y,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-unlink",disabled:e(_),onClick:e(c)},{default:t(()=>[...R[3]||(R[3]=[d(" Unlink ",-1)])]),_:1},8,["disabled","onClick"])])])):(n(),r("div",Zn,[R[5]||(R[5]=s("p",{class:"text-sm text-muted"},"No folder linked yet.",-1)),a(y,{size:"xs",icon:"i-lucide-folder-plus",loading:e(_),onClick:e(p)},{default:t(()=>[...R[4]||(R[4]=[d("Choose folder…",-1)])]),_:1},8,["loading","onClick"])]))]),_:1})):A("",!0)}}}),ta=Object.assign(ea,{__name:"DesktopProjectLinkCard"}),sa={class:"w-full relative"},na={key:0},aa={class:"p-2 text-sm text-gray-900 dark:text-gray-100"},oa={class:"font-semibold mb-1"},la={class:"capitalize mb-1"},ra={class:"space-y-0.5"},ia={class:"font-medium mt-1"},ca=oe({__name:"TestRunsChart",props:{testRuns:{},height:{default:300},markers:{default:()=>[]}},emits:["marker-click"],setup(U,{emit:$}){const k=U,C=$,_=B(()=>k.markers),p=B(()=>!k.testRuns||k.testRuns.length===0?[]:[...k.testRuns].sort((S,O)=>new Date(S.startTime).getTime()-new Date(O.startTime).getTime()).slice(-30).map(S=>({id:S.id,date:new Date(S.startTime),passed:S.passedTests||0,failed:S.failedTests||0,skipped:S.skippedTests||0,flaky:S.flakyTests||0,total:S.totalTests||0,status:S.status}))),c=g=>g.date,F=g=>g.passed,R=g=>g.failed,z=g=>g.skipped,h=g=>g.flaky,y=["rgb(34, 197, 94)","rgb(239, 68, 68)","rgb(245, 158, 11)","rgb(147, 51, 234)"],x=I(null),{tooltipData:T,tooltipPos:m,markerTooltip:v,markerTooltipPos:M,onRenderComplete:V}=Zt(x,p,{x:g=>g.date,series:[{y:g=>g.passed,color:y[0]},{y:g=>g.failed,color:y[1]},{y:g=>g.skipped,color:y[2]},{y:g=>g.flaky,color:y[3]}],onClick:g=>Rt(`/test-runs/${g.id}`),markers:_,onMarkerClick:g=>C("marker-click",g.id)}),j=[{color:y[0],label:"Passed"},{color:y[1],label:"Failed"},{color:y[2],label:"Skipped"},{color:y[3],label:"Flaky"}];return(g,S)=>{const O=Xt,D=$e,Q=Yt;return n(),r("div",sa,[e(p).length>0?(n(),r("div",na,[a(e(Wt),{ref_key:"xyContainerRef",ref:x,data:e(p),height:U.height,padding:{top:10,right:10,bottom:0,left:0},"on-render-complete":e(V)},{default:t(()=>[a(e(Ws),{x:c,y:[F,R,z,h],color:y,"curve-type":e(St).MonotoneX},null,8,["y","curve-type"]),a(e(Jt),{x:c,y:[F,R,z,h],color:y,"curve-type":e(St).MonotoneX,"line-width":2},null,8,["y","curve-type"]),a(e(it),{type:"x","tick-format":N=>new Date(N).toLocaleDateString("en-US",{month:"short",day:"numeric"})},null,8,["tick-format"]),a(e(it),{type:"y",label:"Tests","tick-format":N=>N.toString()},null,8,["tick-format"])]),_:1},8,["data","height","on-render-complete"]),e(T)?(n(),r("div",{key:0,class:"fixed z-50 pointer-events-none bg-white dark:bg-gray-800 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700 max-w-[260px]",style:qt({left:`${e(m).x}px`,top:`${e(m).y}px`})},[s("div",aa,[s("div",oa,i(new Date(e(T).date).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})),1),s("div",la,"Status: "+i(e(T).status),1),s("div",ra,[s("div",null,[S[0]||(S[0]=s("span",{class:"text-green-500 dark:text-green-400"},"●",-1)),d(" Passed: "+i(e(T).passed),1)]),s("div",null,[S[1]||(S[1]=s("span",{class:"text-red-500 dark:text-red-400"},"●",-1)),d(" Failed: "+i(e(T).failed),1)]),s("div",null,[S[2]||(S[2]=s("span",{class:"text-orange-500 dark:text-orange-400"},"●",-1)),d(" Skipped: "+i(e(T).skipped),1)]),s("div",null,[S[3]||(S[3]=s("span",{class:"text-purple-500 dark:text-purple-400"},"●",-1)),d(" Flaky: "+i(e(T).flaky),1)]),s("div",ia,"Total: "+i(e(T).total),1)]),S[4]||(S[4]=s("div",{class:"text-gray-400 dark:text-gray-500 text-xs mt-1"},"Click to view run details",-1))])],4)):A("",!0),a(O,{marker:e(v),pos:e(M)},null,8,["marker","pos"])])):(n(),f(D,{key:1,text:"No test run data available to display chart"})),a(Q,{items:j})])}}}),ua=Object.assign(ca,{__name:"TestRunsChart"}),da={class:"space-y-3"},ma={class:"min-w-0 space-y-1"},pa={class:"flex items-center gap-2 flex-wrap text-sm"},ga={key:0,class:"text-gray-500"},fa=["title"],_a=["title"],va={key:0,class:"text-xs text-gray-500 italic"},ya={class:"flex items-center gap-2 shrink-0"},ha=oe({__name:"ClusterMergeSuggestions",props:{projectId:{}},emits:["merged"],setup(U,{emit:$}){const k=U,C=$,_=Ae(),p=I([]),c=I(null);async function F(){try{p.value=await $fetch(`/api/projects/${k.projectId}/cluster-merge-suggestions`)}catch{p.value=[]}}ye(()=>k.projectId,F,{immediate:!0});async function R(h,y){c.value=h;try{await $fetch(`/api/cluster-merge-suggestions/${h}/${y}`,{method:"POST"}),_.add({title:y==="approve"?"Clusters merged":"Suggestion dismissed",color:"success"}),await F(),y==="approve"&&C("merged")}catch(x){_.add({title:"Action failed",description:String(x?.message??x),color:"error"})}finally{c.value=null}}const z=h=>h==null?"":`${Math.round(h*100)}% similar`;return(h,y)=>{const x=Ce,T=ke,m=ut;return e(p).length?(n(),f(m,{key:0,icon:"i-lucide-git-merge",title:"Suggested merges",count:e(p).length,class:"mb-4"},{subtitle:t(()=>[...y[0]||(y[0]=[d(" Likely-duplicate clusters found by semantic analysis. Approving merges them into the older cluster. ",-1)])]),default:t(()=>[s("div",da,[(n(!0),r(X,null,ae(e(p),v=>(n(),r("div",{key:v.id,class:"rounded-lg border border-default p-3 flex items-start justify-between gap-4"},[s("div",ma,[s("div",pa,[a(x,{color:v.method==="llm"?"primary":"neutral",variant:"subtle",size:"sm"},{default:t(()=>[d(i(v.method==="llm"?`AI · ${v.llmConfidence??""}`:"similarity"),1)]),_:2},1032,["color"]),z(v.score)?(n(),r("span",ga,i(z(v.score)),1)):A("",!0)]),s("p",{class:"text-sm truncate",title:v.clusterA?.signature||""},[y[1]||(y[1]=s("span",{class:"text-gray-400"},"A:",-1)),d(" "+i(v.clusterA?.signature||`#${v.id}`),1)],8,fa),s("p",{class:"text-sm truncate",title:v.clusterB?.signature||""},[y[2]||(y[2]=s("span",{class:"text-gray-400"},"B:",-1)),d(" "+i(v.clusterB?.signature||""),1)],8,_a),v.llmReason?(n(),r("p",va,i(v.llmReason),1)):A("",!0)]),s("div",ya,[a(T,{size:"sm",color:"primary",icon:"i-lucide-git-merge",loading:e(c)===v.id,onClick:M=>R(v.id,"approve")},{default:t(()=>[...y[3]||(y[3]=[d(" Merge ",-1)])]),_:1},8,["loading","onClick"]),a(T,{size:"sm",color:"neutral",variant:"ghost",icon:"i-lucide-x",disabled:e(c)===v.id,onClick:M=>R(v.id,"reject")},{default:t(()=>[...y[4]||(y[4]=[d(" Dismiss ",-1)])]),_:1},8,["disabled","onClick"])])]))),128))])]),_:1},8,["count"])):A("",!0)}}}),xa=Object.assign(ha,{__name:"ClusterMergeSuggestions"}),ba={class:"flex items-center justify-between"},ka={class:"text-sm text-gray-500 inline-flex items-center gap-1"},$a={class:"min-w-0 space-y-0.5"},Ca={key:0,class:"text-xs text-gray-500 italic truncate"},Ta={key:1,class:"text-gray-400 text-xs"},ja={class:"space-y-1"},Sa={class:"text-sm tabular-nums"},wa={class:"text-sm tabular-nums"},Ra={key:1,class:"text-gray-400 text-xs"},Da={class:"text-sm text-gray-500 whitespace-nowrap"},Aa={key:0,class:"ml-1 text-xs text-gray-400"},za={class:"flex justify-end"},Ua=oe({__name:"FailureClustersList",props:{projectId:{}},async setup(U){let $,k;const C=U,_=I(void 0),{data:p,pending:c}=([$,k]=he(()=>xe(()=>{const z=new URLSearchParams;_.value&&z.set("status",_.value);const h=z.toString();return`/api/projects/${C.projectId}/failure-clusters${h?`?${h}`:""}`},{lazy:!0,server:!1,watch:[_]},"$fqv4nq7Mtw")),$=await $,k(),$),F=z=>rn(z.fixVerification),R=[{accessorKey:"signature",header:E("Signature")},{accessorKey:"errorType",header:E("Type")},{accessorKey:"status",header:E("Status")},{accessorKey:"affectedTests",header:E("Tests")},{accessorKey:"occurrences",header:E("Occurrences")},{accessorKey:"diagnosis",header:"AI"},{accessorKey:"lastSeenAt",header:E("Last seen")},{id:"actions",header:"Actions"}];return(z,h)=>{const y=Xe,x=ze,T=Be,m=Ce,v=Le,M=es,V=ke,j=Ue,g=Ne,S=$e,O=Ve;return n(),f(O,null,{header:t(()=>[s("div",ba,[s("p",ka,[h[1]||(h[1]=d(" Ongoing failure signatures grouped by normalized error. ",-1)),a(y,{topic:"cluster.concept"})]),a(x,{modelValue:e(_),"onUpdate:modelValue":h[0]||(h[0]=D=>J(_)?_.value=D:null),items:[{label:"All",value:void 0},{label:"Open",value:"open"},{label:"Resolved",value:"resolved"},{label:"Ignored",value:"ignored"}],size:"xs",class:"w-32"},null,8,["modelValue"])])]),default:t(()=>[a(g,{"min-width":"48rem",bleed:!1},{default:t(()=>[a(j,{data:e(p)??[],columns:R,loading:e(c)},{"actions-header":t(()=>[...h[2]||(h[2]=[s("div",{class:"text-right"},"Actions",-1)])]),"signature-cell":t(({row:D})=>[s("div",$a,[a(T,{to:`/failure-clusters/${D.original.id}`,class:ie(["text-sm text-primary hover:underline truncate block",D.original.title?"":"font-mono"]),title:D.original.signature},{default:t(()=>[d(i(D.original.title||D.original.signature),1)]),_:2},1032,["to","class","title"]),D.original.triageNote?(n(),r("p",Ca,i(D.original.triageNote),1)):A("",!0)])]),"errorType-cell":t(({row:D})=>[D.original.errorType?(n(),f(m,{key:0,color:("clusterErrorTypeColor"in z?z.clusterErrorTypeColor:e(ln))(D.original.errorType),variant:"subtle",size:"sm"},{default:t(()=>[d(i(D.original.errorType),1)]),_:2},1032,["color"])):(n(),r("span",Ta,"—"))]),"status-cell":t(({row:D})=>[s("div",ja,[a(m,{color:("clusterStatusColor"in z?z.clusterStatusColor:e(on))(D.original.status),variant:"subtle",size:"sm"},{default:t(()=>[d(i(D.original.status),1)]),_:2},1032,["color"]),F(D.original)?(n(),f(M,{key:0,text:F(D.original).hint},{default:t(()=>[a(m,{color:F(D.original).color,variant:"subtle",size:"sm",class:"gap-1"},{default:t(()=>[a(v,{name:F(D.original).icon,class:"size-3"},null,8,["name"]),d(" "+i(F(D.original).label),1)]),_:2},1032,["color"])]),_:2},1032,["text"])):A("",!0)])]),"affectedTests-cell":t(({row:D})=>[s("span",Sa,i(D.original.affectedTests),1)]),"occurrences-cell":t(({row:D})=>[s("span",wa,i(D.original.occurrences),1)]),"diagnosis-cell":t(({row:D})=>[D.original.diagnosis?.status==="completed"&&D.original.diagnosis.category?(n(),f(m,{key:0,color:"neutral",variant:"subtle",size:"sm",class:"gap-1"},{default:t(()=>[a(v,{name:"i-lucide-sparkles",class:"size-3"}),d(" "+i(D.original.diagnosis.category),1)]),_:2},1024)):(n(),r("span",Ra,"—"))]),"lastSeenAt-cell":t(({row:D})=>[s("div",Da,[a(T,{to:`/test-runs/${D.original.lastSeenRunId}`,class:"text-primary hover:underline"},{default:t(()=>[d(" run #"+i(D.original.lastSeenRunId),1)]),_:2},1032,["to"]),D.original.lastSeenAt?(n(),r("span",Aa," ("+i(("formatRelativeTime"in z?z.formatRelativeTime:e(At))(D.original.lastSeenAt))+") ",1)):A("",!0)])]),"actions-cell":t(({row:D})=>[s("div",za,[a(V,{to:`/failure-clusters/${D.original.id}`,size:"sm",variant:"outline","trailing-icon":"i-lucide-arrow-right"},{default:t(()=>[...h[3]||(h[3]=[d(" View ",-1)])]),_:1},8,["to"])])]),_:1},8,["data","loading"])]),_:1}),!e(c)&&e(p)&&e(p).length===0?(n(),f(S,{key:0,text:"No failure clusters recorded for this project.",padded:!1,class:"py-4"})):A("",!0)]),_:1})}}}),Ia=Object.assign(Ua,{__name:"FailureClustersList"}),Ma={class:"flex items-center justify-between"},Fa={class:"flex items-center gap-3"},Pa={class:"text-sm text-gray-500 inline-flex items-center gap-1"},Ea={class:"flex items-center gap-1.5"},La={class:"min-w-0 space-y-0.5"},Ba={class:"flex items-center gap-2"},Va={class:"text-sm tabular-nums"},Na={class:"text-sm tabular-nums"},Ka={key:1,class:"text-gray-400 text-xs"},Oa={key:1,class:"text-gray-400 text-xs"},qa={key:1,class:"text-gray-400 text-xs"},Ha={key:0,class:"text-sm text-gray-500"},Qa={key:1,class:"text-gray-400 text-xs"},Ga={class:"flex justify-end"},Xa={key:0,class:"text-sm text-gray-500 py-4 text-center"},Ja=oe({__name:"FlakyTestsList",props:{projectId:{},environment:{},projectName:{}},async setup(U){let $,k;const C=U,_=I(50),p=I([]),{data:c,pending:F}=([$,k]=he(()=>xe(()=>{const m=new URLSearchParams({runs:String(_.value)});return C.environment&&m.set("environment",C.environment),`/api/projects/${C.projectId}/flaky-tests?${m.toString()}`},{lazy:!0,server:!1,watch:[_,()=>C.environment]},"$BbmtLKIPAB")),$=await $,k(),$),R=B(()=>p.value.length===0?c.value??[]:(c.value??[]).filter(m=>p.value.includes(m.rootCause??"")));function z(m){return m>=60?"error":m>=30?"warning":"neutral"}function h(m){switch(m){case"timing":return"amber";case"network":return"red";case"assertion":return"blue";case"environment":return"purple";default:return"gray"}}function y(m){p.value.indexOf(m)>=0?p.value=p.value.filter(M=>M!==m):p.value=[...p.value,m]}const x=[{label:"Timing",value:"timing"},{label:"Network",value:"network"},{label:"Assertion",value:"assertion"},{label:"Environment",value:"environment"},{label:"Other",value:"other"}],T=[{accessorKey:"title",header:E("Test")},{accessorKey:"impact",header:E("Impact")},{accessorKey:"score",header:E("Score")},{accessorKey:"failureRate",header:E("Failure rate")},{accessorKey:"retryPassRuns",header:E("Retry passes")},{accessorKey:"alternations",header:E("Flips")},{accessorKey:"rootCause",header:"Root cause"},{accessorKey:"lastFlakeAt",header:E("Last flake")},{id:"actions",header:"Actions"}];return(m,v)=>{const M=Xe,V=Le,j=Ce,g=ke,S=ze,O=Be,D=ss,Q=dt,N=Gt,ue=Ue,ge=Ne,b=Ve;return n(),f(b,null,{header:t(()=>[s("div",Ma,[s("div",Fa,[s("p",Pa,[v[1]||(v[1]=d(" Tests that fail intermittently — detected by retry passes and status alternations ",-1)),a(M,{topic:"project.flaky-tests"})]),U.environment?(n(),f(j,{key:0,color:"neutral",variant:"subtle",size:"sm",class:"gap-1"},{default:t(()=>[a(V,{name:"i-lucide-layers",class:"size-3"}),d(" "+i(U.environment),1)]),_:1})):A("",!0),s("div",Ea,[(n(),r(X,null,ae(x,w=>a(g,{key:w.value,size:"xs",variant:e(p).includes(w.value)?"solid":"outline",color:(e(p).includes(w.value),"neutral"),onClick:H=>y(w.value)},{default:t(()=>[d(i(w.label),1)]),_:2},1032,["variant","color","onClick"])),64))])]),a(S,{modelValue:e(_),"onUpdate:modelValue":v[0]||(v[0]=w=>J(_)?_.value=w:null),items:[{label:"Last 20 runs",value:20},{label:"Last 50 runs",value:50},{label:"Last 100 runs",value:100}],size:"xs",class:"w-36"},null,8,["modelValue"])])]),default:t(()=>[a(ge,{"min-width":"52rem",bleed:!1},{default:t(()=>[a(ue,{data:e(R),columns:T,loading:e(F),sticky:"",class:"max-h-[32rem]"},{"actions-header":t(()=>[...v[2]||(v[2]=[s("div",{class:"text-right"},"Actions",-1)])]),"title-cell":t(({row:w})=>[s("div",La,[a(O,{to:`/test-run-cases/${w.original.latestRunsCaseId}`,class:"text-sm font-medium text-primary hover:underline truncate block",title:w.original.title},{default:t(()=>[d(i(w.original.title),1)]),_:2},1032,["to","title"]),a(D,{tags:w.original.tags,meta:{owner:w.original.owner??void 0,priority:("toTestPriority"in m?m.toTestPriority:e(cn))(w.original.priority)},"max-tags":3},null,8,["tags","meta"]),a(Q,{"file-path":w.original.filePath,"project-key":U.projectId,"project-name":U.projectName,class:"text-xs text-gray-400"},null,8,["file-path","project-key","project-name"])])]),"impact-cell":t(({row:w})=>[s("div",Ba,[s("span",{class:ie(["inline-block w-2 h-2 rounded-full shrink-0",{"bg-red-500":w.original.wastedCiMinutes>=30,"bg-amber-500":w.original.wastedCiMinutes>=5&&w.original.wastedCiMinutes<30,"bg-green-500":w.original.wastedCiMinutes>=0&&w.original.wastedCiMinutes<5}])},null,2),s("span",Va,i(Math.round(w.original.wastedCiMinutes))+" min wasted",1)])]),"score-cell":t(({row:w})=>[a(j,{color:z(w.original.score),variant:"subtle",size:"sm"},{default:t(()=>[d(i(w.original.score),1)]),_:2},1032,["color"])]),"failureRate-cell":t(({row:w})=>[s("span",Na,i(Math.round(w.original.failureRate*100))+"%",1)]),"retryPassRuns-cell":t(({row:w})=>[w.original.retryPassRuns?(n(),f(j,{key:0,color:"warning",variant:"outline",size:"sm"},{default:t(()=>[d(i(w.original.retryPassRuns)+" run"+i(w.original.retryPassRuns===1?"":"s"),1)]),_:2},1024)):(n(),r("span",Ka,"—"))]),"alternations-cell":t(({row:w})=>[w.original.alternations>=2?(n(),f(j,{key:0,color:"neutral",variant:"outline",size:"sm"},{default:t(()=>[d(i(w.original.alternations),1)]),_:2},1024)):(n(),r("span",Oa,"—"))]),"rootCause-cell":t(({row:w})=>[w.original.rootCause?(n(),f(N,{key:0,text:w.original.rootCause,color:h(w.original.rootCause)},null,8,["text","color"])):(n(),r("span",qa,"—"))]),"lastFlakeAt-cell":t(({row:w})=>[w.original.lastFlakeAt?(n(),r("span",Ha,i(("formatRelativeTime"in m?m.formatRelativeTime:e(At))(w.original.lastFlakeAt)),1)):(n(),r("span",Qa,"—"))]),"actions-cell":t(({row:w})=>[s("div",Ga,[a(g,{to:`/test-run-cases/${w.original.latestRunsCaseId}`,size:"sm",variant:"outline","trailing-icon":"i-lucide-arrow-right"},{default:t(()=>[...v[3]||(v[3]=[d(" View ",-1)])]),_:1},8,["to"])])]),_:1},8,["data","loading"])]),_:1}),!e(F)&&e(R).length===0?(n(),r("p",Xa," No flaky tests detected in the last "+i(e(_))+" runs. ",1)):A("",!0)]),_:1})}}}),Wa=Object.assign(Ja,{__name:"FlakyTestsList"}),Ya={class:"w-full relative"},Za={key:0},eo={class:"p-2 text-sm text-gray-900 dark:text-gray-100"},to={class:"font-semibold mb-1"},so={class:"capitalize mb-1"},no={class:"space-y-0.5"},ao={class:"mt-1"},oo={key:0,class:"text-gray-400 dark:text-gray-500 text-xs"},lo=oe({__name:"PerformanceTrendChart",props:{data:{},height:{default:300},markers:{default:()=>[]}},emits:["marker-click"],setup(U,{emit:$}){const k=U,C=$,_=B(()=>k.markers),p=B(()=>!k.data||k.data.length===0?[]:k.data.map(j=>({id:j.id,date:new Date(j.startTime),duration:j.duration?Math.round(j.duration/1e3):null,avgTestDuration:j.avgTestDuration?Math.round(j.avgTestDuration/1e3):null,p90TestDuration:j.p90TestDuration?Math.round(j.p90TestDuration/1e3):null,commit:j.commit?j.commit.substring(0,7):null,status:j.status,totalTests:j.totalTests}))),c=j=>j.date,F=j=>j.duration??void 0,R=j=>j.avgTestDuration??void 0,z=j=>j.p90TestDuration??void 0,h=["rgb(59, 130, 246)","rgb(34, 197, 94)","rgb(249, 115, 22)"],y=I(null),{tooltipData:x,tooltipPos:T,markerTooltip:m,markerTooltipPos:v,onRenderComplete:M}=Zt(y,p,{x:j=>j.date,series:[{y:j=>j.duration,color:h[0]},{y:j=>j.avgTestDuration,color:h[1]},{y:j=>j.p90TestDuration,color:h[2]}],onClick:j=>Rt(`/test-runs/${j.id}`),markers:_,onMarkerClick:j=>C("marker-click",j.id)}),V=[{color:h[0],label:"Total Duration"},{color:h[1],label:"Avg Test Duration"},{color:h[2],label:"P90 Test Duration"}];return(j,g)=>{const S=Xt,O=$e,D=Yt;return n(),r("div",Ya,[e(p).length>0?(n(),r("div",Za,[a(e(Wt),{ref_key:"xyContainerRef",ref:y,data:e(p),height:U.height,padding:{top:10,right:10,bottom:0,left:0},"on-render-complete":e(M)},{default:t(()=>[a(e(Jt),{x:c,y:[F,R,z],color:h,"curve-type":e(St).MonotoneX,"line-width":2},null,8,["y","curve-type"]),a(e(it),{type:"x","tick-format":Q=>new Date(Q).toLocaleDateString("en-US",{month:"short",day:"numeric"}),label:"Date"},null,8,["tick-format"]),a(e(it),{type:"y",label:"Duration (s)","tick-format":Q=>`${Q}s`},null,8,["tick-format"])]),_:1},8,["data","height","on-render-complete"]),e(x)?(n(),r("div",{key:0,class:"fixed z-50 pointer-events-none bg-white dark:bg-gray-800 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700 max-w-[260px]",style:qt({left:`${e(T).x}px`,top:`${e(T).y}px`})},[s("div",eo,[s("div",to,i(new Date(e(x).date).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})),1),s("div",so,"Status: "+i(e(x).status),1),s("div",no,[s("div",null,[g[0]||(g[0]=s("span",{class:"text-blue-500 dark:text-blue-400"},"●",-1)),d(" Total: "+i(e(x).duration??"-")+"s ",1)]),s("div",null,[g[1]||(g[1]=s("span",{class:"text-green-500 dark:text-green-400"},"●",-1)),d(" Avg: "+i(e(x).avgTestDuration??"-")+"s ",1)]),s("div",null,[g[2]||(g[2]=s("span",{class:"text-orange-500 dark:text-orange-400"},"●",-1)),d(" P90: "+i(e(x).p90TestDuration??"-")+"s ",1)]),s("div",ao,"Tests: "+i(e(x).totalTests),1),e(x).commit?(n(),r("div",oo," Commit: "+i(e(x).commit),1)):A("",!0)]),g[3]||(g[3]=s("div",{class:"text-gray-400 dark:text-gray-500 text-xs mt-1"},"Click to view run details",-1))])],4)):A("",!0),a(S,{marker:e(m),pos:e(v)},null,8,["marker","pos"])])):(n(),f(O,{key:1,text:"No performance data available to display chart"})),a(D,{items:V})])}}}),ro=Object.assign(lo,{__name:"PerformanceTrendChart"}),io={class:"min-w-0"},co={class:"mt-1"},uo={class:"tabular-nums"},mo={key:0,class:"ml-1 text-xs text-gray-500",title:"timeout ÷ p95"},po={class:"tabular-nums text-gray-500"},go={key:0,class:"text-sm"},fo={key:1,class:"tabular-nums"},_o={class:"tabular-nums font-medium text-green-600 dark:text-green-400"},vo={class:"tabular-nums text-gray-500"},yo=oe({__name:"TimeoutOpportunitiesTable",props:{projectId:{},projectName:{}},async setup(U){let $,k;const C=U,{data:_,pending:p}=([$,k]=he(()=>xe(()=>`/api/projects/${C.projectId}/timeout-opportunities`,{lazy:!0,server:!1},"$zikJNhkkxJ")),$=await $,k(),$),c=B(()=>_.value??[]);function F(z){return z==null?"—":z<1e3?`${z}ms`:`${(z/1e3).toFixed(1)}s`}const R=[{accessorKey:"title",header:E("Test case")},{accessorKey:"kind",header:"Type"},{accessorKey:"timeout",header:E("Timeout")},{accessorKey:"p95",header:E("p95")},{accessorKey:"recommendedTimeout",header:"Recommendation"},{accessorKey:"estimatedSavingMs",header:E("Est. saving / failure")},{accessorKey:"runCount",header:E("Runs")}];return(z,h)=>{const y=Je,x=$e,T=Be,m=dt,v=Ce,M=Ue,V=Ne,j=Ve;return n(),f(j,null,{header:t(()=>[...h[0]||(h[0]=[s("h2",{class:"text-xl font-semibold"},"Timeout opportunities",-1),s("p",{class:"text-sm text-gray-600 mt-1"},[d(" Tests whose configured timeout far exceeds their real duration, or that still carry a stale "),s("code",{class:"text-xs"},"test.slow()"),d(" mark — tightening these makes failures surface sooner. ")],-1)])]),default:t(()=>[e(p)?(n(),f(y,{key:0})):e(c).length===0?(n(),f(x,{key:1,text:"No timeout opportunities",description:"No oversized timeouts or stale test.slow() marks were found for this project."})):(n(),f(V,{key:2,"min-width":"52rem",bleed:!1},{default:t(()=>[a(M,{data:e(c),columns:R,sticky:"",class:"max-h-[32rem]"},{"title-cell":t(({row:g})=>[s("div",io,[a(T,{to:`/test-cases/${g.original.testCaseId}`,class:"font-medium truncate block hover:text-primary hover:underline"},{default:t(()=>[d(i(g.original.title),1)]),_:2},1032,["to"]),s("div",co,[a(m,{"file-path":g.original.filePath,"project-key":U.projectId,"project-name":U.projectName,class:"text-xs"},null,8,["file-path","project-key","project-name"])])])]),"kind-cell":t(({row:g})=>[a(v,{color:g.original.kind==="oversized-timeout"?"warning":"info",variant:"subtle",size:"sm"},{default:t(()=>[d(i(g.original.kind==="oversized-timeout"?"Oversized timeout":"Stale test.slow()"),1)]),_:2},1032,["color"])]),"timeout-cell":t(({row:g})=>[s("span",uo,i(F(g.original.timeout)),1),g.original.headroomRatio!=null?(n(),r("span",mo," ("+i(g.original.headroomRatio)+"×) ",1)):A("",!0)]),"p95-cell":t(({row:g})=>[s("span",po,i(F(g.original.p95)),1)]),"recommendedTimeout-cell":t(({row:g})=>[g.original.kind==="stale-slow"?(n(),r("span",go,[...h[1]||(h[1]=[d("Remove ",-1),s("code",{class:"text-xs"},"test.slow()",-1)])])):(n(),r("span",fo,"Lower to ~"+i(F(g.original.recommendedTimeout)),1))]),"estimatedSavingMs-cell":t(({row:g})=>[s("span",_o,i(F(g.original.estimatedSavingMs)),1)]),"runCount-cell":t(({row:g})=>[s("span",vo,i(g.original.runCount),1)]),_:1},8,["data"])]),_:1}))]),_:1})}}}),ho=Object.assign(yo,{__name:"TimeoutOpportunitiesTable"}),xo={class:"flex items-center justify-between"},bo={class:"text-sm text-gray-500 inline-flex items-center gap-1"},ko={class:"truncate font-mono text-xs"},$o={class:"tabular-nums"},Co={class:"tabular-nums text-gray-500"},To={class:"tabular-nums text-gray-500"},jo=oe({__name:"SpecHealthTable",props:{projectId:{}},async setup(U){let $,k;const C=U,_=I(30),{data:p,pending:c}=([$,k]=he(()=>xe(()=>`/api/projects/${C.projectId}/spec-health?days=${_.value}`,{lazy:!0,server:!1,watch:[_]},"$SX5aqvhtuX")),$=await $,k(),$),F=B(()=>p.value?.specs??[]);function R(m){return m>=.9?"bg-green-500":m>=.7?"bg-amber-500":m>0?"bg-red-500":"bg-gray-300 dark:bg-gray-600"}function z(m){return m>=.9?"text-green-600 dark:text-green-400":m>=.7?"text-amber-600 dark:text-amber-400":m>0?"text-red-600 dark:text-red-400":"text-gray-500"}function h(m){return`${Math.round(m*100)}%`}function y(m){return m<1e3?`${m}ms`:`${(m/1e3).toFixed(1)}s`}const x=[{label:"Last 7 days",value:7},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90}],T=[{accessorKey:"prefix",header:E("Spec prefix")},{accessorKey:"passRate",header:E("Pass rate")},{accessorKey:"flakyRate",header:E("Flaky")},{accessorKey:"failureCount",header:E("Failures")},{accessorKey:"testCount",header:E("Tests")},{accessorKey:"avgDuration",header:E("Avg time")}];return(m,v)=>{const M=Xe,V=ze,j=Je,g=$e,S=Be,O=Ue,D=Ne,Q=Ve;return n(),f(Q,null,{header:t(()=>[s("div",xo,[s("p",bo,[v[1]||(v[1]=d(" Spec-file health overview — pass rate, flaky rate, and failure count per spec prefix ",-1)),a(M,{topic:"project.spec-health"})]),a(V,{modelValue:e(_),"onUpdate:modelValue":v[0]||(v[0]=N=>J(_)?_.value=N:null),items:x,size:"xs",class:"w-32"},null,8,["modelValue"])])]),default:t(()=>[e(c)?(n(),f(j,{key:0})):e(F).length===0?(n(),f(g,{key:1,text:"No data",description:"No spec health data available for the selected period."})):(n(),f(D,{key:2,"min-width":"46rem",bleed:!1},{default:t(()=>[a(O,{data:e(F),columns:T,sticky:"",class:"max-h-[32rem]"},{"prefix-cell":t(({row:N})=>[a(S,{to:`/projects/${U.projectId}/test-cases?file=${encodeURIComponent(N.original.prefix)}`,class:"flex items-center gap-2 min-w-0 text-primary hover:underline",title:N.original.prefix},{default:t(()=>[s("span",{class:ie(["inline-block size-3 rounded shrink-0",R(N.original.passRate)])},null,2),s("span",ko,i(N.original.prefix),1)]),_:2},1032,["to","title"])]),"passRate-cell":t(({row:N})=>[s("span",{class:ie(["font-medium tabular-nums",z(N.original.passRate)])},i(h(N.original.passRate)),3)]),"flakyRate-cell":t(({row:N})=>[s("span",$o,i(Math.round(N.original.flakyRate*100))+"%",1)]),"failureCount-cell":t(({row:N})=>[s("span",{class:ie(["tabular-nums",N.original.failureCount>0?"text-red-600 dark:text-red-400":""])},i(N.original.failureCount),3)]),"testCount-cell":t(({row:N})=>[s("span",Co,i(N.original.testCount),1)]),"avgDuration-cell":t(({row:N})=>[s("span",To,i(y(N.original.avgDuration)),1)]),_:1},8,["data"])]),_:1}))]),_:1})}}}),So=Object.assign(jo,{__name:"SpecHealthTable"}),wo={class:"flex items-center justify-between"},Ro={key:2},Do={class:"grid grid-cols-3 gap-3 mb-4"},Ao={class:"rounded-lg border border-gray-200 dark:border-gray-800 p-3"},zo={class:"text-2xl font-semibold tabular-nums"},Uo={class:"rounded-lg border border-gray-200 dark:border-gray-800 p-3"},Io={class:"text-2xl font-semibold tabular-nums"},Mo={class:"rounded-lg border border-gray-200 dark:border-gray-800 p-3"},Fo={class:"text-2xl font-semibold tabular-nums"},Po=["title"],Eo={class:"tabular-nums"},Lo={class:"tabular-nums text-gray-500"},Bo=["title"],Vo=oe({__name:"AiStepCoverage",props:{projectId:{}},async setup(U){let $,k;const C=U,_=I(30),{data:p,pending:c}=([$,k]=he(()=>xe(()=>`/api/projects/${C.projectId}/ai-steps?days=${_.value}`,{lazy:!0,server:!1,watch:[_]},"$XNuZ38B1nb")),$=await $,k(),$),F=B(()=>p.value?.artifacts??[]),R=B(()=>p.value?.summary??{artifactCount:0,testCount:0,runCount:0,replayCount:0});function z(T){const m=T.split(/[\\/]/);return m[m.length-1]||T}function h(T){if(!T)return"—";const m=new Date(T).getTime();if(!Number.isFinite(m))return"—";const v=Math.max(0,Math.round((Date.now()-m)/1e3));if(v<60)return"just now";const M=Math.round(v/60);if(M<60)return`${M}m ago`;const V=Math.round(M/60);return V<24?`${V}h ago`:`${Math.round(V/24)}d ago`}const y=[{label:"Last 7 days",value:7},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90}],x=[{accessorKey:"entry",header:E("Artifact")},{accessorKey:"testCount",header:E("Tests")},{accessorKey:"replayCount",header:E("Replays")},{accessorKey:"lastSeen",header:E("Last seen")}];return(T,m)=>{const v=ze,M=Je,V=$e,j=Ue,g=Ne,S=Ve;return n(),f(S,null,{header:t(()=>[s("div",wo,[m[1]||(m[1]=s("p",{class:"text-sm text-gray-500"},[d(" AI-step liveness — which committed "),s("code",{class:"text-xs"},"piwiLocator"),d(" / "),s("code",{class:"text-xs"},"piwiRun"),d(" artifacts were replayed, and when they were last seen ")],-1)),a(v,{modelValue:e(_),"onUpdate:modelValue":m[0]||(m[0]=O=>J(_)?_.value=O:null),items:y,size:"xs",class:"w-32"},null,8,["modelValue"])])]),default:t(()=>[e(c)?(n(),f(M,{key:0})):e(F).length===0?(n(),f(V,{key:1,text:"No AI steps",description:"No committed AI-step artifacts were replayed in the selected period. Author them with page.piwiLocator / page.piwiRun in resolve mode."})):(n(),r("div",Ro,[s("div",Do,[s("div",Ao,[s("div",zo,i(e(R).artifactCount),1),m[2]||(m[2]=s("div",{class:"text-xs text-gray-500"},"Artifacts replayed",-1))]),s("div",Uo,[s("div",Io,i(e(R).testCount),1),m[3]||(m[3]=s("div",{class:"text-xs text-gray-500"},"Tests using AI steps",-1))]),s("div",Mo,[s("div",Fo,i(e(R).replayCount),1),m[4]||(m[4]=s("div",{class:"text-xs text-gray-500"},"Total replays",-1))])]),a(g,{"min-width":"40rem",bleed:!1},{default:t(()=>[a(j,{data:e(F),columns:x,sticky:"",class:"max-h-[32rem]"},{"entry-cell":t(({row:O})=>[s("span",{class:"font-mono text-xs truncate block max-w-[28rem]",title:O.original.entry},i(z(O.original.entry)),9,Po)]),"testCount-cell":t(({row:O})=>[s("span",Eo,i(O.original.testCount),1)]),"replayCount-cell":t(({row:O})=>[s("span",Lo,i(O.original.replayCount),1)]),"lastSeen-cell":t(({row:O})=>[s("span",{class:"tabular-nums text-gray-500",title:O.original.lastSeen||""},i(h(O.original.lastSeen)),9,Bo)]),_:1},8,["data"])]),_:1})]))]),_:1})}}}),No=Object.assign(Vo,{__name:"AiStepCoverage"}),Ko={class:"space-y-6"},Oo={class:"w-full text-sm"},qo={class:"px-3 py-2 min-w-0"},Ho={class:"text-xs text-muted"},Qo={class:"px-3 py-2 text-muted"},Go={class:"px-3 py-2 whitespace-nowrap"},Xo={key:1,class:"text-xs text-muted"},Jo={key:2,class:"text-xs"},Wo={class:"px-3 py-2 whitespace-nowrap text-muted"},Yo={class:"px-3 py-2 text-right"},Zo={class:"w-full text-sm"},el={class:"px-3 py-2 min-w-0"},tl={class:"text-xs text-muted"},sl={class:"px-3 py-2 text-right whitespace-nowrap"},nl=oe({__name:"QuarantineTable",props:{projectId:{},projectName:{}},async setup(U){let $,k;const C=U,_=Ae(),p=I(null),{data:c,status:F,error:R,refresh:z}=([$,k]=he(()=>xe(()=>`/api/projects/${C.projectId}/quarantine`,"$BSyDdCMaDx")),$=await $,k(),$);function h(T){const m=Math.round(T/36e5);return m<48?`${Math.max(1,m)}h`:`${Math.round(m/24)}d`}async function y(T,m){p.value=T;try{await $fetch(`/api/projects/${C.projectId}/quarantine`,{method:"POST",body:{testCaseId:T,reason:m,source:"proposed"}}),_.add({title:"Quarantined",color:"success"}),await z()}catch{_.add({title:"Could not quarantine that test",color:"error"})}finally{p.value=null}}async function x(T){p.value=T;try{await $fetch(`/api/projects/${C.projectId}/quarantine/${T}`,{method:"DELETE"}),_.add({title:"Released",color:"success"}),await z()}catch{_.add({title:"Could not release that test",color:"error"})}finally{p.value=null}}return(T,m)=>{const v=Je,M=mn,V=pn,j=gn,g=$e,S=Be,O=ss,D=dt,Q=Ce,N=ke,ue=Ne,ge=ut;return n(),r("div",Ko,[a(ge,{title:"Quarantine",icon:"i-lucide-shield-alert",count:e(c)?.debt.active,help:"project.quarantine"},{subtitle:t(()=>[...m[0]||(m[0]=[d(" A quarantined test keeps running and keeps reporting — it is excluded from the CI gate's verdict and nothing else. That is what lets it earn its way back out. ",-1)])]),default:t(()=>[e(F)==="pending"?(n(),f(v,{key:0})):e(R)?(n(),f(M,{key:1,text:String(e(R))},null,8,["text"])):(n(),r(X,{key:2},[e(c)&&e(c).debt.active>0?(n(),f(j,{key:0,class:"mb-4"},{default:t(()=>[a(V,{label:"Quarantined",value:e(c).debt.active},null,8,["value"]),a(V,{label:"Ready to release",value:e(c).debt.readyToRelease,"value-class":e(c).debt.readyToRelease>0?"text-green-600 dark:text-green-400":"",hint:"earned their way out"},null,8,["value","value-class"]),a(V,{label:"Still failing",value:e(c).debt.stillFailing,hint:"no passing streak"},null,8,["value"]),a(V,{label:"Oldest",value:h(e(c).debt.oldestAgeMs),size:"sm"},null,8,["value"])]),_:1})):A("",!0),!e(c)||e(c).entries.length===0?(n(),f(g,{key:1,icon:"i-lucide-shield-check",text:"Nothing quarantined. Tests you quarantine appear here with their progress back out."})):(n(),f(ue,{key:2},{default:t(()=>[s("table",Oo,[m[2]||(m[2]=s("thead",{class:"text-left text-xs text-muted"},[s("tr",null,[s("th",{class:"px-3 py-2"},"Test"),s("th",{class:"px-3 py-2"},"Reason"),s("th",{class:"px-3 py-2 whitespace-nowrap"},"Streak"),s("th",{class:"px-3 py-2 whitespace-nowrap"},"Age"),s("th",{class:"px-3 py-2 text-right"},"Actions")])],-1)),s("tbody",null,[(n(!0),r(X,null,ae(e(c).entries,b=>(n(),r("tr",{key:b.id,class:"border-t border-default"},[s("td",qo,[a(S,{to:`/test-cases/${b.testCaseId}`,class:"text-primary hover:underline font-medium"},{default:t(()=>[d(i(b.title),1)]),_:2},1032,["to"]),a(O,{tags:b.tags,meta:{owner:b.owner??void 0},"max-tags":3,class:"ml-1"},null,8,["tags","meta"]),s("div",Ho,[a(D,{"file-path":b.filePath,"project-key":U.projectId,"project-name":U.projectName},null,8,["file-path","project-key","project-name"])])]),s("td",Qo,i(b.reason||"—"),1),s("td",Go,[b.releaseProposed?(n(),f(Q,{key:0,color:"success",variant:"soft",size:"xs"},{default:t(()=>[d(i(b.consecutivePasses)+" green — ready ",1)]),_:2},1024)):b.runsSinceQuarantine===0?(n(),r("span",Xo,"not run yet")):(n(),r("span",Jo,i(b.consecutivePasses)+" / "+i(e(c).releaseAfterConsecutivePasses),1))]),s("td",Wo,i(h(b.ageMs)),1),s("td",Yo,[a(N,{size:"xs",color:b.releaseProposed?"primary":"neutral",variant:"soft",loading:e(p)===b.testCaseId,onClick:w=>x(b.testCaseId)},{default:t(()=>[...m[1]||(m[1]=[d(" Release ",-1)])]),_:1},8,["color","loading","onClick"])])]))),128))])])]),_:1}))],64))]),_:1},8,["count"]),e(c)&&e(c).candidates.length>0?(n(),f(ge,{key:0,title:"Worth quarantining",icon:"i-lucide-lightbulb",count:e(c).candidates.length},{subtitle:t(()=>[...m[3]||(m[3]=[d(" Ranked by the CI minutes their flakiness wastes, not by how often they flake — a test that flakes constantly but finishes instantly costs nothing. ",-1)])]),default:t(()=>[a(ue,null,{default:t(()=>[s("table",Zo,[s("tbody",null,[(n(!0),r(X,null,ae(e(c).candidates,b=>(n(),r("tr",{key:b.testCaseId,class:"border-t border-default"},[s("td",el,[a(S,{to:`/test-cases/${b.testCaseId}`,class:"text-primary hover:underline font-medium"},{default:t(()=>[d(i(b.title),1)]),_:2},1032,["to"]),s("div",tl,i(b.rationale),1)]),s("td",sl,[a(N,{size:"xs",color:"neutral",variant:"soft",loading:e(p)===b.testCaseId,onClick:w=>y(b.testCaseId,b.rationale)},{default:t(()=>[...m[4]||(m[4]=[d(" Quarantine ",-1)])]),_:1},8,["loading","onClick"])])]))),128))])])]),_:1})]),_:1},8,["count"])):A("",!0)])}}}),al=Object.assign(nl,{__name:"QuarantineTable"}),ol={class:"space-y-4"},ll={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},rl={id:"marker-environments"},il=["value"],cl=oe({__name:"MarkerFormModal",props:{open:{type:Boolean},projectId:{},marker:{},environments:{}},emits:["update:open","saved"],setup(U,{emit:$}){const k=U,C=$,_=Ae(),p=yn.map(y=>({label:y.label,value:y.id,icon:y.icon})),c=Es({label:"",occurredAt:"",category:Tt,environment:"",description:""}),F=B(()=>!!k.marker),R=I(!1);function z(y){const x=new Date(y),T=m=>String(m).padStart(2,"0");return`${x.getFullYear()}-${T(x.getMonth()+1)}-${T(x.getDate())}T${T(x.getHours())}:${T(x.getMinutes())}`}ye(()=>k.open,y=>{y&&(k.marker?(c.label=k.marker.label,c.occurredAt=z(k.marker.occurredAt),c.category=k.marker.category||Tt,c.environment=k.marker.environment??"",c.description=k.marker.description??""):(c.label="",c.occurredAt=z(new Date),c.category=Tt,c.environment="",c.description=""))});async function h(){if(!c.label.trim()){_.add({title:"Label is required",color:"error"});return}if(!c.occurredAt){_.add({title:"Date is required",color:"error"});return}R.value=!0;const y={label:c.label.trim(),occurredAt:new Date(c.occurredAt).toISOString(),category:c.category,environment:c.environment.trim()||null,description:c.description.trim()||null};try{k.marker?(await $fetch(`/api/markers/${k.marker.id}`,{method:"PUT",body:y}),_.add({title:"Marker updated",color:"success"})):(await $fetch(`/api/projects/${k.projectId}/markers`,{method:"POST",body:y}),_.add({title:"Marker created",color:"success"})),C("update:open",!1),C("saved")}catch(x){_.add({title:F.value?"Failed to update marker":"Failed to create marker",description:ts(x),color:"error"})}finally{R.value=!1}}return(y,x)=>{const T=Ht,m=Qt,v=ze,M=vn,V=ke,j=zt,g=Dt;return n(),f(g,null,{default:t(()=>[a(j,{open:U.open,title:e(F)?"Edit marker":"Add marker","onUpdate:open":x[6]||(x[6]=S=>C("update:open",S))},{body:t(()=>[s("div",ol,[a(m,{label:"Label",name:"label",required:""},{default:t(()=>[a(T,{modelValue:e(c).label,"onUpdate:modelValue":x[0]||(x[0]=S=>e(c).label=S),placeholder:"e.g. Migrated CI to new runners",class:"w-full"},null,8,["modelValue"])]),_:1}),s("div",ll,[a(m,{label:"Date & time",name:"occurredAt",required:""},{default:t(()=>[a(T,{modelValue:e(c).occurredAt,"onUpdate:modelValue":x[1]||(x[1]=S=>e(c).occurredAt=S),type:"datetime-local",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Category",name:"category"},{default:t(()=>[a(v,{modelValue:e(c).category,"onUpdate:modelValue":x[2]||(x[2]=S=>e(c).category=S),items:e(p),class:"w-full"},null,8,["modelValue","items"])]),_:1})]),a(m,{label:"Environment",name:"environment",help:"Optional. Leave empty to apply to all environments."},{default:t(()=>[a(T,{modelValue:e(c).environment,"onUpdate:modelValue":x[3]||(x[3]=S=>e(c).environment=S),list:"marker-environments",placeholder:"e.g. production",class:"w-full"},null,8,["modelValue"]),s("datalist",rl,[(n(!0),r(X,null,ae(U.environments||[],S=>(n(),r("option",{key:S,value:S},null,8,il))),128))])]),_:1}),a(m,{label:"Description",name:"description"},{default:t(()=>[a(M,{modelValue:e(c).description,"onUpdate:modelValue":x[4]||(x[4]=S=>e(c).description=S),rows:3,placeholder:"Optional details",class:"w-full"},null,8,["modelValue"])]),_:1})])]),footer:t(()=>[a(V,{color:"neutral",variant:"ghost",label:"Cancel",onClick:x[5]||(x[5]=S=>C("update:open",!1))}),a(V,{label:e(F)?"Save changes":"Add marker",icon:e(F)?"i-lucide-check":"i-lucide-plus",loading:e(R),onClick:h},null,8,["label","icon","loading"])]),_:1},8,["open","title"])]),_:1})}}}),ul=Object.assign(cl,{__name:"MarkerFormModal"}),dl={class:"md:hidden space-y-3"},ml={class:"flex items-start justify-between gap-2"},pl={key:0,class:"flex gap-1 shrink-0"},gl={class:"text-sm text-muted"},fl={key:0,class:"text-xs"},_l={key:1,class:"text-sm text-muted"},vl={class:"whitespace-nowrap"},yl={class:"text-sm"},hl={class:"text-xs text-muted"},xl={class:"font-medium flex items-center gap-1"},bl={key:0,class:"text-xs text-muted line-clamp-1"},kl={key:1,class:"text-xs text-muted"},$l={key:0,class:"flex gap-1 justify-end"},Cl=oe({__name:"ProjectTimeline",props:{projectId:{},markers:{},environments:{},canEdit:{type:Boolean},focusMarkerId:{}},emits:["changed","clear-focus"],setup(U,{emit:$}){const k=U,C=$,_=Ae(),p=B(()=>[...k.markers].sort((v,M)=>+new Date(M.occurredAt)-+new Date(v.occurredAt))),c=[{accessorKey:"occurredAt",header:"When"},{accessorKey:"category",header:"Category"},{accessorKey:"label",header:"Label"},{accessorKey:"environment",header:"Environment"},{accessorKey:"actions",header:""}],F=I(!1),R=I(null);function z(){R.value=null,F.value=!0}function h(v){R.value=v,F.value=!0}ye(()=>k.focusMarkerId,v=>{if(v==null)return;const M=k.markers.find(V=>V.id===v);M&&h(M),C("clear-focus")},{immediate:!0});const y=I(!1),x=I(null);function T(v){x.value=v,y.value=!0}async function m(){const v=x.value;if(y.value=!1,x.value=null,!!v)try{await $fetch(`/api/markers/${v.id}`,{method:"DELETE"}),_.add({title:"Marker deleted",color:"success"}),C("changed")}catch(M){_.add({title:"Failed to delete marker",description:ts(M),color:"error"})}}return(v,M)=>{const V=ke,j=$e,g=_n,S=Ce,O=Le,D=Ue,Q=ul,N=zt,ue=Dt,ge=ut;return n(),f(ge,{title:"Timeline markers",count:U.markers.length,icon:"i-lucide-milestone",help:"project.timeline",subtitle:"Dated events overlaid on the analytics charts"},{actions:t(()=>[U.canEdit?(n(),f(V,{key:0,label:"Add marker",icon:"i-lucide-plus",size:"sm",onClick:z})):A("",!0)]),default:t(()=>[U.markers.length===0?(n(),f(j,{key:0,icon:"i-lucide-milestone",text:"No markers yet. Add a deploy, config change, or incident to see it on the charts."})):(n(),r(X,{key:1},[s("div",dl,[(n(!0),r(X,null,ae(e(p),b=>(n(),r("div",{key:b.id,class:"rounded-lg border border-default p-3 space-y-2"},[s("div",ml,[a(g,{marker:b},null,8,["marker"]),U.canEdit?(n(),r("div",pl,[a(V,{icon:"i-lucide-pencil",color:"neutral",variant:"ghost",size:"xs",onClick:w=>h(b)},null,8,["onClick"]),a(V,{icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"xs",onClick:w=>T(b)},null,8,["onClick"])])):A("",!0)]),s("div",gl,i(("prettyDateFormat"in v?v.prettyDateFormat:e(ct))(b.occurredAt)),1),b.environment?(n(),r("div",fl,[a(S,{color:"neutral",variant:"subtle",size:"xs"},{default:t(()=>[d(i(b.environment),1)]),_:2},1024)])):A("",!0),b.description?(n(),r("p",_l,i(b.description),1)):A("",!0)]))),128))]),a(D,{data:e(p),columns:c,class:"hidden md:block"},{"occurredAt-cell":t(({row:b})=>[s("div",vl,[s("div",yl,i(("prettyDateFormat"in v?v.prettyDateFormat:e(ct))(b.original.occurredAt)),1),s("div",hl,i(("formatRelativeTime"in v?v.formatRelativeTime:e(At))(b.original.occurredAt)),1)])]),"category-cell":t(({row:b})=>[a(S,{color:e(jt)(b.original.category).color,variant:"subtle",size:"sm",class:"gap-1"},{default:t(()=>[a(O,{name:e(jt)(b.original.category).icon,class:"size-3"},null,8,["name"]),d(" "+i(e(jt)(b.original.category).label),1)]),_:2},1032,["color"])]),"label-cell":t(({row:b})=>[s("div",null,[s("div",xl,[d(i(b.original.label)+" ",1),b.original.source==="auto"?(n(),f(O,{key:0,name:"i-lucide-sparkles",class:"size-3 text-muted",title:"Automatically detected"})):A("",!0)]),b.original.description?(n(),r("div",bl,i(b.original.description),1)):A("",!0)])]),"environment-cell":t(({row:b})=>[b.original.environment?(n(),f(S,{key:0,color:"neutral",variant:"subtle",size:"xs"},{default:t(()=>[d(i(b.original.environment),1)]),_:2},1024)):(n(),r("span",kl,"All"))]),"actions-cell":t(({row:b})=>[U.canEdit?(n(),r("div",$l,[a(V,{icon:"i-lucide-pencil",color:"neutral",variant:"ghost",size:"sm",onClick:w=>h(b.original)},null,8,["onClick"]),a(V,{icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"sm",onClick:w=>T(b.original)},null,8,["onClick"])])):A("",!0)]),_:1},8,["data"])],64)),a(Q,{open:e(F),"onUpdate:open":M[0]||(M[0]=b=>J(F)?F.value=b:null),"project-id":U.projectId,marker:e(R),environments:U.environments,onSaved:M[1]||(M[1]=b=>C("changed"))},null,8,["open","project-id","marker","environments"]),a(ue,null,{default:t(()=>[a(N,{open:e(y),title:"Delete marker","onUpdate:open":M[3]||(M[3]=b=>y.value=b)},{body:t(()=>[s("p",null,[M[4]||(M[4]=d(" Delete marker ",-1)),e(x)?(n(),f(g,{key:0,marker:e(x),class:"inline-flex align-middle"},null,8,["marker"])):A("",!0),M[5]||(M[5]=d("? This can't be undone. ",-1))])]),footer:t(()=>[a(V,{color:"neutral",variant:"ghost",label:"Cancel",onClick:M[2]||(M[2]=b=>y.value=!1)}),a(V,{color:"error",label:"Delete",icon:"i-lucide-trash-2",onClick:m})]),_:1},8,["open"])]),_:1})]),_:1},8,["count"])}}}),Tl=Object.assign(Cl,{__name:"ProjectTimeline"}),jl={class:"flex flex-col h-full overflow-y-auto gap-4"},Sl={key:0,class:"pb-0 space-y-4"},wl={key:0,class:"text-gray-600"},Rl={key:1,class:"flex flex-wrap gap-1 mt-2"},Dl={class:"flex flex-wrap items-center gap-3 mb-4"},Al={class:"inline-flex items-center gap-1"},zl=["onClick"],Ul={key:0,class:"flex items-center gap-3 px-3 py-2 mb-3 rounded-lg bg-primary-50 dark:bg-primary-900/20 border border-primary-200 dark:border-primary-800"},Il={class:"text-sm text-primary-700 dark:text-primary-300"},Ml={key:1,class:"text-xs text-primary-500"},Fl=["checked","onClick"],Pl={class:"flex items-center gap-2"},El=["href","onClick"],Ll={key:0,class:"text-xs text-gray-500 dark:text-gray-400 truncate max-w-32"},Bl={class:"inline-flex items-center gap-1"},Vl={key:0,class:"flex items-center gap-1"},Nl={class:"text-xs text-gray-600"},Kl={key:0,class:"flex items-center gap-1 flex-wrap"},Ol={key:0,class:"text-xs font-medium bg-gray-100 dark:bg-gray-800 px-1.5 py-0.5 rounded"},ql={key:1,class:"text-xs text-gray-500"},Hl={class:"space-y-1"},Ql={class:"flex justify-end gap-2"},Gl={key:2,class:"text-center py-8 text-gray-500"},Xl={class:"text-xs text-gray-400 max-w-sm"},Jl={class:"bg-gray-100 dark:bg-gray-800 px-1 rounded"},Wl={class:"flex flex-wrap items-center gap-3"},Yl={class:"text-xl font-semibold inline-flex items-center gap-1"},Zl={class:"font-medium"},er={class:"mt-1"},tr={key:0,class:"text-red-600 font-medium"},sr={key:1,class:"text-green-600 font-medium"},nr={key:2,class:"text-gray-500"},ar={key:2,class:"text-center py-8 text-red-500"},or={key:3,class:"text-center py-8 text-gray-500"},lr={class:"flex items-center justify-between"},rr={class:"text-xl font-semibold inline-flex items-center gap-1"},ir={class:"space-y-4"},cr={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},ur={key:0,class:"text-center py-4 text-gray-500"},dr={key:1,class:"space-y-4"},mr={class:"flex gap-4 text-sm"},pr={key:0,class:"text-gray-400"},gr={key:0,class:"text-gray-400"},fr={key:1,class:"text-gray-400"},_r={key:1,class:"text-gray-400"},vr={key:0,class:"text-gray-400"},yr={key:0,class:"text-gray-400"},hr={key:2,class:"text-center py-8 text-gray-500"},xr={key:3,class:"text-center py-8 text-gray-500"},br={class:"flex items-center justify-between"},kr={class:"text-sm text-gray-600 inline-flex items-center gap-1"},$r={class:"space-y-4"},Cr={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Tr={key:0,class:"text-center py-8 text-gray-500"},jr={key:1,class:"space-y-4"},Sr={class:"space-y-2"},wr={class:"flex flex-wrap gap-4 text-sm"},Rr={key:3,class:"text-sm text-gray-500"},Dr={class:"flex flex-wrap gap-4 text-sm"},Ar={key:0,class:"text-gray-400"},zr={key:0,class:"text-gray-400"},Ur={key:1,class:"text-gray-400"},Ir={key:1,class:"text-gray-400"},Mr={key:0,class:"text-gray-400"},Fr={key:0,class:"text-gray-400"},Pr={key:2,class:"text-center py-8 text-gray-500"},Er={key:3,class:"text-center py-8 text-gray-500"},Lr={class:"flex items-center justify-between"},Br={class:"text-sm text-gray-600 inline-flex items-center gap-1"},Vr={key:0,class:"space-y-2"},Nr={class:"font-medium text-sm"},Kr={class:"text-xs text-muted flex items-center gap-2"},Or={key:0,class:"italic"},qr={key:1,class:"text-xs text-muted italic"},Hr={key:1,class:"text-center py-8 text-muted text-sm"},Qr={class:"space-y-4"},Gr={class:"text-sm text-gray-600 dark:text-gray-400"},Xr={class:"block text-sm font-medium mb-1"},Jr={class:"bg-gray-100 dark:bg-gray-800 px-1 rounded"},sc=oe({__name:"index",async setup(U){let $,k;const C=Ls(),_=Bs(),p=C.params.id,{data:c,refresh:F}=([$,k]=he(()=>xe(`/api/projects/${p}`,"$F60FKvNOBL")),$=await $,k(),$);Vs(B(()=>({title:`${c.value?.label||c.value?.name||"Project"} — Piwi Dashboard`})));const R=Ae(),z=I(null),h=I(null),{isAdmin:y,isReporter:x}=Ot(),T=wt(),m=B(()=>!T.public.authEnabled||y.value),v=m,M=I(!1),V=I(""),j=I(!1),g=B(()=>V.value===c.value?.name);async function S(){if(g.value){j.value=!0;try{await $fetch(`/api/projects/${p}`,{method:"DELETE"}),R.add({title:"Project deleted",color:"success"}),await Ks(),await _.push("/")}catch(u){const o=u&&typeof u=="object"&&"data"in u?u.data?.message:void 0;R.add({title:"Delete failed",description:o||"An error occurred",color:"error"}),j.value=!1}}}bn(F);async function O(u){h.value=null,z.value=u;try{await $fetch(`/api/test-runs/${u}`,{method:"DELETE"}),R.add({title:"Test run deleted",color:"success"}),await F()}catch(o){const L=o&&typeof o=="object"&&"data"in o?o.data?.message:void 0;R.add({title:"Delete failed",description:L||"An error occurred",color:"error"})}finally{z.value=null}}const D=I([]),Q=I([]),N=I([]),ue=B(()=>{const u=new Map(D.value.map(L=>[L.id,L])),o=[];for(const L of Q.value){if(L.role==="administrator")continue;const G=u.get(L.id);o.push({id:L.id,username:L.username,name:L.name??null,role:L.role,global:G?.global??!1,hasAccess:!!G})}for(const L of D.value)L.role==="administrator"&&o.push({...L,hasAccess:!0});return o}),ge=B(()=>{const u=D.value.filter(L=>L.role!=="administrator"&&!L.global).map(L=>L.id).sort(),o=[...N.value].sort();return JSON.stringify(u)!==JSON.stringify(o)});ye(()=>c.value?.id,async u=>{if(!(!u||!y.value))try{const[o,L]=await Promise.all([$fetch(`/api/projects/${p}/members`),$fetch("/api/users")]);D.value=o.users,Q.value=L.users,N.value=o.users.filter(G=>G.role!=="administrator"&&!G.global).map(G=>G.id)}catch{D.value=[],Q.value=[],N.value=[]}},{immediate:!0});function b(u){const o=N.value.indexOf(u);o>=0?N.value.splice(o,1):N.value.push(u)}async function w(){try{await $fetch(`/api/projects/${p}/members`,{method:"PUT",body:{userIds:N.value}}),R.add({title:"Members updated",color:"success"});const u=await $fetch(`/api/projects/${p}/members`);D.value=u.users}catch(u){const o=u&&typeof u=="object"&&"data"in u?u.data?.message:void 0;R.add({title:"Update failed",description:o||"An error occurred",color:"error"})}}const H=I("test-runs"),de=I(0),Ie=["test-runs","failure-clusters","flaky-tests","performance","test-cases","compare","spec-health","ai-steps","quarantine","timeline","members"],me=C.query.tab;typeof me=="string"&&Ie.includes(me)&&(H.value=me),ye(H,u=>{C.query.tab!==u&&Ie.includes(u)&&_.replace({query:{...C.query,tab:u}})});const be=B(()=>c.value?.testRuns?.some(u=>u.failedTests>0)??!1),fe=B(()=>[{label:"Results",items:[{label:`Test runs (${K.value.length})`,icon:"i-lucide-play-circle",value:"test-runs",slot:"test-runs"},{label:`Test cases${Qe.value!=null?` (${Qe.value})`:""}`,icon:"i-lucide-list-checks",value:"test-cases",slot:"test-cases"},{label:"Compare",icon:"i-lucide-git-compare-arrows",value:"compare",slot:"compare"}]},{label:"Failures",items:[...be.value?[{label:"Failure clusters",icon:"i-lucide-layers",value:"failure-clusters",slot:"failure-clusters"}]:[],{label:"Flaky tests",icon:"i-lucide-shuffle",value:"flaky-tests",slot:"flaky-tests"},{label:"Quarantine",icon:"i-lucide-shield-alert",value:"quarantine",slot:"quarantine"}]},{label:"Health",items:[{label:"Spec health",icon:"i-lucide-table-2",value:"spec-health",slot:"spec-health"},{label:"AI steps",icon:"i-lucide-wand-sparkles",value:"ai-steps",slot:"ai-steps"},{label:"Performance",icon:"i-lucide-trending-up",value:"performance",slot:"performance"},{label:`Timeline${Te.value.length?` (${Te.value.length})`:""}`,icon:"i-lucide-milestone",value:"timeline",slot:"timeline"}]},...y.value?[{label:"Admin",items:[{label:"Members",icon:"i-lucide-users",value:"members",slot:"members"}]}]:[]]),Me=B(()=>fe.value.flatMap(u=>u.items)),mt=B(()=>fe.value.map(u=>u.items).filter(u=>u.length>0)),pt=B(()=>Me.value.find(u=>u.value===H.value)?.icon),Y=I([]),We=u=>Y.value.includes(u);function Ke(u){const o=Y.value.indexOf(u);if(o>=0)Y.value.splice(o,1);else{if(Y.value.length>=2){R.add({title:"Maximum 2 runs",description:"Select at most 2 runs to compare. Deselect one first.",color:"warning"});return}Y.value.push(u)}}const Oe=I(null);function gt(){Y.value.length===2&&(Oe.value=[Y.value[0],Y.value[1]],H.value="compare")}const ne=I([]),pe=I(!0),qe=B(()=>{const u=new Set;for(const o of c.value?.testRuns||[])o.environment&&u.add(o.environment);return[...u].sort()});function ft(u){const o=ne.value.indexOf(u);o===-1?ne.value.push(u):ne.value.splice(o,1)}function He(u){return ne.value.includes(u)}const K=B(()=>{let u=c.value?.testRuns||[];return pe.value&&(u=u.filter(o=>o.isFullRun!==!1)),ne.value.length===0?u:u.filter(o=>o.environment&&ne.value.includes(o.environment))}),P=B(()=>ne.value.length===1?ne.value[0]:void 0),{data:Z,refresh:_t}=([$,k]=he(()=>xe(`/api/projects/${p}/markers`,{default:()=>({markers:[]})},"$jubPXy8o3y")),$=await $,k(),$),Te=B(()=>Z.value?.markers??[]),Ye=B(()=>!T.public.authEnabled||y.value||x.value),Ze=B(()=>ne.value.length===0?Te.value:Te.value.filter(u=>u.environment==null||ne.value.includes(u.environment))),Fe=I(null);function je(u){Fe.value=u,H.value="timeline"}const vt=B(()=>{const u=c.value?.testRuns||[];return pe.value?u.filter(o=>o.isFullRun!==!1):u});function q(u){if(u.isFullRun!==!1)return"Full run — the complete test suite ran";const o=[],L=u.filterDetails?.grep?.trim(),G=u.filterDetails?.grepInvert?.trim(),_e=u.filterDetails?.files;return L&&L!==".*"&&o.push(`grep: ${L}`),G&&o.push(`grep-invert: ${G}`),_e?.length&&o.push(`files: ${_e.join(", ")}`),o.length?`Partial run — ${o.join(" · ")}`:"Partial run — only a filtered subset of tests ran (grep, file, or line filter)"}const le=[{accessorKey:"select",header:""},{accessorKey:"id",header:E("Run")},{accessorKey:"status",header:E("Status")},{accessorKey:"isFullRun",header:"Scope"},{id:"browsers",accessorFn:u=>u.browsers,header:""},{accessorKey:"startTime",header:E("Started")},{accessorKey:"environment",header:E("Environment")},{accessorKey:"metadata",header:"Branch / Commit"},{accessorKey:"duration",header:E("Test status / Dur.")},{accessorKey:"reports",header:"Reports"},{id:"actions",header:"Actions"}],Qe=I(null),Se=I(""),we=I(""),ns=B(()=>{const u={};return Se.value&&(u.from=Se.value),we.value&&(u.to=we.value),u}),yt=I(null),ht=I(!1),Pe=I(null),xt=I(!1),et=I(!1),as=B(()=>ht.value&&yt.value===null);ye([H,ns,pe],async([u,o])=>{if(u!=="performance")return;ht.value=!0,Pe.value||(et.value=!0);const L=new URLSearchParams(o).toString(),G=pe.value?`${L?"&":""}fullRunsOnly=true`:"",_e=L||G?`?${L}${G}`:"";yt.value=await $fetch(`/api/projects/${p}/performance${_e}`).catch(ve=>(console.warn("[PerformanceTab] Failed to fetch performance trend:",ve),null)),ht.value=!1,et.value&&(xt.value=!1,Pe.value=await $fetch(`/api/projects/${p}/slow-tests`).catch(ve=>(xt.value=!0,console.warn("[PerformanceTab] Failed to fetch slow tests:",ve),null)),et.value=!1)},{immediate:!0});const os=[{accessorKey:"title",header:E("Test case")},{accessorKey:"avgDuration",header:E("Avg duration")},{accessorKey:"maxDuration",header:E("Max")},{accessorKey:"minDuration",header:E("Min")},{accessorKey:"latestDuration",header:E("Latest")},{accessorKey:"trend",header:E("Trend")},{accessorKey:"runCount",header:E("Runs")}];function ls(u){const o=ct(u.startTime,{dateOnly:!0}),L=u.metadata?.scm?.commit?` (${u.metadata.scm.commit.substring(0,7)})`:"";return`Run #${u.id} — ${o}${L}`}const ce=B(()=>c.value?.testRuns?[...c.value.testRuns].reverse().map(u=>({label:ls(u),value:u.id})):[]),ee=I(void 0),te=I(void 0),Ut=B(()=>C.query.runA?Number(C.query.runA):null),It=B(()=>C.query.runB?Number(C.query.runB):null);ye(ce,u=>{if(Ut.value){const o=u.find(L=>L.value===Ut.value);o&&(ee.value=o)}if(It.value){const o=u.find(L=>L.value===It.value);o&&(te.value=o)}},{immediate:!0}),ye(Oe,u=>{if(u){const o=ce.value.find(G=>G.value===u[0]),L=ce.value.find(G=>G.value===u[1]);o&&(ee.value=o),L&&(te.value=L),Oe.value=null}});function Mt(){ce.value.length>=2&&(ee.value=ce.value[1],te.value=ce.value[0])}const bt=I(null),kt=I(null),tt=I(!1);async function rs(){const u=ee.value,o=te.value;if(!(!u?.value&&!o?.value)){tt.value=!0;try{const L=[];u?.value&&L.push(u.value),o?.value&&L.push(o.value);const G=await Promise.all(L.map(ve=>$fetch(`/api/test-runs/${ve}/summary`))),_e=new Map;for(const ve of G)_e.set(ve.id,ve);bt.value=u?.value?_e.get(u.value)??null:null,kt.value=o?.value?_e.get(o.value)??null:null}catch{bt.value=null,kt.value=null}finally{tt.value=!1}}}ye([ee,te],()=>{rs()});const{comparisonData:st,comparisonSummary:W}=xn(bt,kt),Ft=[{accessorKey:"title",header:E("Test case")},{accessorKey:"statusA",header:E("Status A")},{accessorKey:"statusB",header:E("Status B")},{accessorKey:"durationA",header:E("Duration A")},{accessorKey:"durationB",header:E("Duration B")},{accessorKey:"delta",header:E("Delta")},{accessorKey:"percentChange",header:E("Change")}];return(u,o)=>{const L=Ms,G=Fs,_e=Gn,ve=Qs,is=Xs,cs=Gt,us=ta,ds=ze,ms=ua,Pt=Ys,ps=Zs,Ee=Xe,re=ke,gs=en,$t=Le,fs=es,_s=tn,se=Ce,vs=sn,Re=nn,ys=an,nt=Ue,hs=qs,xs=$e,Ge=Ve,bs=xa,ks=Ia,$s=Wa,Ct=Ht,Et=Je,Cs=ro,Ts=dt,js=ho,at=un,Ss=dn,ws=So,Rs=No,Ds=al,As=fn,zs=Tl,Us=hn,Is=Gs,Lt=zt,Bt=Dt;return n(),r(X,null,[a(Is,{id:"project-detail"},{header:t(()=>[a(is,null,{leading:t(()=>[a(L),a(G,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects",to:"/projects"},{label:e(c)?.label||e(c)?.name||"Project"}]},null,8,["items"])]),right:t(()=>[a(ve,{size:"sm",actions:[...e(m)?[{label:"Delete",icon:"i-lucide-trash-2",color:"error",variant:"ghost",onClick:()=>{V.value="",M.value=!0}}]:[],...e(v)?[{label:"Import",icon:"i-lucide-import",variant:"outline",to:`/projects/${e(p)}/import`}]:[],{label:"Test functions",icon:"i-lucide-function-square",variant:"outline",to:`/projects/${e(p)}/test-functions`},{label:"Edit",icon:"i-lucide-pencil",variant:"outline",to:`/projects/${e(p)}/edit`},{label:"Refresh",icon:"i-lucide-refresh-cw",variant:"outline",onClick:()=>e(F)()}]},{leading:t(()=>[a(_e,{"project-id":parseInt(e(p)),"project-label":e(c)?.label||e(c)?.name},null,8,["project-id","project-label"])]),_:1},8,["actions"])]),_:1})]),body:t(()=>[s("div",jl,[e(c)?.description||e(c)?.tags&&e(c).tags.length>0?(n(),r("div",Sl,[e(c)?.description?(n(),r("p",wl,i(e(c).description),1)):A("",!0),e(c)?.tags&&e(c).tags.length>0?(n(),r("div",Rl,[(n(!0),r(X,null,ae(e(c).tags,l=>(n(),f(cs,{key:l.id,text:l.text,color:l.color},null,8,["text","color"]))),128))])):A("",!0)])):A("",!0),a(us,{"project-id":e(p)},null,8,["project-id"]),a(ds,{modelValue:e(H),"onUpdate:modelValue":o[0]||(o[0]=l=>J(H)?H.value=l:null),items:e(mt),icon:e(pt),size:"md",class:"w-full mx-1 mb-1 sm:hidden"},null,8,["modelValue","items","icon"]),a(Us,{modelValue:e(H),"onUpdate:modelValue":o[14]||(o[14]=l=>J(H)?H.value=l:null),items:e(Me),size:"sm",class:"p-1",ui:{list:"max-sm:hidden overflow-x-auto",trigger:"shrink-0"}},{"test-runs":t(()=>[e(c)?.testRuns&&e(c).testRuns.length>0?(n(),f(Pt,{key:0,title:"Run trend",subtitle:`Test run statistics over time for ${e(c)?.label||e(c)?.name}`,help:"project.runs-trend"},{default:t(()=>[a(ms,{"test-runs":e(vt),height:200,markers:e(Ze),onMarkerClick:je},null,8,["test-runs","markers"])]),_:1},8,["subtitle"])):A("",!0),a(Ge,{class:"mt-4"},{default:t(()=>[s("div",Dl,[s("div",Al,[a(ps,{modelValue:e(pe),"onUpdate:modelValue":o[1]||(o[1]=l=>J(pe)?pe.value=l:null),label:"Full runs only",ui:{label:"text-sm"}},null,8,["modelValue"]),a(Ee,{topic:"project.run-scope"})]),e(qe).length>0?(n(),r(X,{key:0},[o[21]||(o[21]=s("span",{class:"text-sm text-muted shrink-0"},"Environment:",-1)),(n(!0),r(X,null,ae(e(qe),l=>(n(),r("button",{key:l,type:"button",class:ie(["text-xs font-medium px-2 py-1 rounded border cursor-pointer focus:outline-none transition-colors",He(l)?"bg-blue-100 text-blue-700 border-blue-300 dark:bg-blue-900/40 dark:text-blue-300 dark:border-blue-700":"bg-zinc-100 text-zinc-500 border-zinc-200 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:border-zinc-700 dark:hover:bg-zinc-700"]),onClick:De=>ft(l)},i(l),11,zl))),128)),e(ne).length>0?(n(),f(re,{key:0,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-x",label:"Clear filter",onClick:o[2]||(o[2]=l=>ne.value=[])})):A("",!0)],64)):A("",!0)]),e(Y).length>0?(n(),r("div",Ul,[s("span",Il,i(e(Y).length)+" run"+i(e(Y).length>1?"s":"")+" selected ",1),e(Y).length===2?(n(),f(re,{key:0,icon:"i-lucide-git-compare-arrows",size:"sm",color:"primary",label:"Compare selected runs",onClick:gt})):(n(),r("span",Ml," Select another run to compare ")),a(re,{size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-x",label:"Clear",onClick:o[3]||(o[3]=l=>Y.value=[])})])):A("",!0),e(K).length>0?(n(),f(nt,{key:1,data:e(K),columns:le,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"}},{"select-cell":t(({row:l})=>[s("input",{type:"checkbox",checked:We(l.original.id),class:"cursor-pointer size-4 accent-primary",onClick:Kt(De=>Ke(l.original.id),["stop"])},null,8,Fl)]),"id-cell":t(({row:l})=>[s("div",Pl,[s("a",{href:`/test-runs/${l.original.id}`,class:"text-primary hover:underline font-medium",onClick:Kt(De=>("navigateTo"in u?u.navigateTo:e(Rt))(`/test-runs/${l.original.id}`),["prevent"])}," Run #"+i(l.original.id),9,El),l.original.label?(n(),r("span",Ll,i(l.original.label),1)):A("",!0)])]),"status-cell":t(({row:l})=>[a(gs,{status:l.original.status},null,8,["status"])]),"isFullRun-header":t(()=>[s("span",Bl,[o[22]||(o[22]=d("Scope ",-1)),a(Ee,{topic:"run.partial"})])]),"isFullRun-cell":t(({row:l})=>[a(fs,{text:q(l.original)},{default:t(()=>[a($t,{name:l.original.isFullRun===!1?"i-lucide-list-filter":"i-lucide-list-checks",class:ie(["size-4 shrink-0 cursor-help",l.original.isFullRun===!1?"text-amber-500":"text-green-500"])},null,8,["name","class"])]),_:2},1032,["text"])]),"browsers-cell":t(({row:l})=>[l.original.browsers?.length?(n(),r("div",Vl,[(n(!0),r(X,null,ae(l.original.browsers,De=>(n(),f(_s,{key:De,browser:{projectName:De},size:"sm"},null,8,["browser"]))),128))])):A("",!0)]),"startTime-cell":t(({row:l})=>[s("span",Nl,i(("prettyDateFormat"in u?u.prettyDateFormat:e(ct))(l.original.startTime)),1)]),"environment-cell":t(({row:l})=>[l.original.environment?(n(),f(se,{key:0,color:"info",variant:"subtle",size:"sm"},{default:t(()=>[d(i(l.original.environment),1)]),_:2},1024)):A("",!0)]),"metadata-cell":t(({row:l})=>[l.original.metadata?.scm?(n(),r("div",Kl,[l.original.metadata.scm.branch?(n(),r("span",Ol,i(l.original.metadata.scm.branch),1)):A("",!0),l.original.metadata.scm.commit?(n(),r("code",ql,i(l.original.metadata.scm.commit.substring(0,7)),1)):A("",!0)])):A("",!0)]),"duration-cell":t(({row:l})=>[s("div",Hl,[a(vs,{passed:l.original.passedTests,failed:l.original.failedTests,skipped:l.original.skippedTests,flaky:l.original.flakyTests,"did-not-run":l.original.didNotRunTests??0,total:l.original.totalTests},null,8,["passed","failed","skipped","flaky","did-not-run","total"]),a(Re,{ms:l.original.duration,class:"text-xs text-gray-500"},null,8,["ms"])])]),"reports-cell":t(({row:l})=>[a(ys,{reports:l.original.reports},null,8,["reports"])]),"actions-header":t(()=>[...o[23]||(o[23]=[s("div",{class:"text-right"},"Actions",-1)])]),"actions-cell":t(({row:l})=>[s("div",Ql,[a(re,{to:`/test-runs/${l.original.id}`,size:"sm",variant:"outline"},{default:t(()=>[...o[24]||(o[24]=[d(" View ",-1)])]),_:1},8,["to"]),a(re,{size:"sm",color:"error",variant:"soft",icon:"i-lucide-trash-2",loading:e(z)===l.original.id,onClick:De=>h.value=l.original.id},{default:t(()=>[...o[25]||(o[25]=[d(" Delete ",-1)])]),_:1},8,["loading","onClick"])])]),_:1},8,["data"])):e(c)?.testRuns&&e(c).testRuns.length>0?(n(),r("div",Gl," No test runs match the selected environment filter. ")):(n(),f(xs,{key:3,icon:"i-lucide-rocket",text:"No test runs yet for this project."},{default:t(()=>[s("p",Xl,[o[27]||(o[27]=d(" Point the reporter's ",-1)),o[28]||(o[28]=s("code",{class:"bg-gray-100 dark:bg-gray-800 px-1 rounded"},"projectName",-1)),o[29]||(o[29]=d(" at ",-1)),s("code",Jl,i(e(c)?.name),1),o[30]||(o[30]=d(" to send results here — see the ",-1)),a(hs,{to:"reporter","no-icon":"",class:"text-primary hover:underline"},{default:t(()=>[...o[26]||(o[26]=[d("reporter docs",-1)])]),_:1}),o[31]||(o[31]=d(" for setup instructions. ",-1))])]),_:1}))]),_:1})]),"failure-clusters":t(()=>[e(H)==="failure-clusters"?(n(),r(X,{key:0},[(n(),f(bs,{key:`sug-${e(de)}`,"project-id":String(e(p)),onMerged:o[4]||(o[4]=l=>de.value++)},null,8,["project-id"])),(n(),f(ks,{key:e(de),"project-id":String(e(p))},null,8,["project-id"]))],64)):A("",!0)]),"flaky-tests":t(()=>[e(H)==="flaky-tests"?(n(),f($s,{key:0,"project-id":String(e(p)),environment:e(P),"project-name":e(c)?.name},null,8,["project-id","environment","project-name"])):A("",!0)]),performance:t(()=>[s("div",Wl,[o[32]||(o[32]=s("span",{class:"text-sm text-muted shrink-0"},"Date range:",-1)),a(Ct,{modelValue:e(Se),"onUpdate:modelValue":o[5]||(o[5]=l=>J(Se)?Se.value=l:null),type:"date",size:"sm",placeholder:"From",class:"w-40"},null,8,["modelValue"]),o[33]||(o[33]=s("span",{class:"text-sm text-muted"},"to",-1)),a(Ct,{modelValue:e(we),"onUpdate:modelValue":o[6]||(o[6]=l=>J(we)?we.value=l:null),type:"date",size:"sm",placeholder:"To",class:"w-40"},null,8,["modelValue"]),e(Se)||e(we)?(n(),f(re,{key:0,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-x",label:"Clear",onClick:o[7]||(o[7]=l=>{Se.value="",we.value=""})})):A("",!0)]),a(Pt,{title:"Performance trend",subtitle:"Duration metrics over time",help:"project.performance"},{default:t(()=>[e(as)?(n(),f(Et,{key:0,text:"Loading chart…"})):(n(),f(Cs,{key:1,data:e(yt)||[],height:350,markers:e(Ze),onMarkerClick:je},null,8,["data","markers"]))]),_:1}),a(Ge,null,{header:t(()=>[s("h2",Yl,[o[34]||(o[34]=d(" Slowest tests ",-1)),a(Ee,{topic:"project.slowest-tests"})]),o[35]||(o[35]=s("p",{class:"text-sm text-gray-600 mt-1"},"Top 20 slowest test cases across recent runs",-1))]),default:t(()=>[e(et)&&e(Pe)===null?(n(),f(Et,{key:0,text:"Loading…"})):e(Pe)&&e(Pe).length>0?(n(),f(nt,{key:1,data:e(Pe),columns:os,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"}},{"title-cell":t(({row:l})=>[s("div",null,[s("div",Zl,i(l.original.title),1),s("div",er,[a(Ts,{"file-path":l.original.filePath,"project-key":e(p),"project-name":e(c)?.name,class:"text-xs"},null,8,["file-path","project-key","project-name"])])])]),"trend-cell":t(({row:l})=>[l.original.trend==="slower"?(n(),r("span",tr,"▲ Slower")):l.original.trend==="faster"?(n(),r("span",sr,"▼ Faster")):(n(),r("span",nr,"— Stable"))]),_:1},8,["data"])):e(xt)?(n(),r("div",ar," Couldn't load the slowest tests — try refreshing. ")):(n(),r("div",or,"No slow test data available yet."))]),_:1}),a(js,{"project-id":String(e(p)),"project-name":e(c)?.name},null,8,["project-id","project-name"]),a(Ge,null,{header:t(()=>[s("div",lr,[s("div",null,[s("h2",rr,[o[36]||(o[36]=d(" Run comparison ",-1)),a(Ee,{topic:"project.run-compare"})]),o[37]||(o[37]=s("p",{class:"text-sm text-gray-600 mt-1"},"Compare duration changes between two runs",-1))]),e(ce).length>=2?(n(),f(re,{key:0,icon:"i-lucide-git-compare-arrows",size:"sm",variant:"outline",label:"Compare latest vs previous",onClick:Mt})):A("",!0)])]),default:t(()=>[s("div",ir,[s("div",cr,[s("div",null,[o[38]||(o[38]=s("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Run A (baseline)",-1)),a(at,{modelValue:e(ee),"onUpdate:modelValue":o[8]||(o[8]=l=>J(ee)?ee.value=l:null),items:e(ce),placeholder:"Select run A..."},null,8,["modelValue","items"])]),s("div",null,[o[39]||(o[39]=s("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Run B (comparison)",-1)),a(at,{modelValue:e(te),"onUpdate:modelValue":o[9]||(o[9]=l=>J(te)?te.value=l:null),items:e(ce),placeholder:"Select run B..."},null,8,["modelValue","items"])])]),e(tt)?(n(),r("div",ur,[a($t,{name:"i-lucide-loader-2",class:"animate-spin mr-2"}),o[40]||(o[40]=d(" Loading run data… ",-1))])):e(ee)&&e(te)&&e(st).length>0?(n(),r("div",dr,[s("div",mr,[a(se,{color:"success",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).improved)+" improved",1)]),_:1}),a(se,{color:"error",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).regressed)+" regressed",1)]),_:1}),a(se,{color:"neutral",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).unchanged)+" unchanged",1)]),_:1})]),a(nt,{data:e(st),columns:Ft,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"}},{"statusA-cell":t(({row:l})=>[l.original.statusA?(n(),f(se,{key:1,color:("getStatusColor"in u?u.getStatusColor:e(ot))(l.original.statusA),variant:"subtle",class:"capitalize"},{default:t(()=>[d(i(l.original.statusA),1)]),_:2},1032,["color"])):(n(),r("span",pr,"—"))]),"statusB-cell":t(({row:l})=>[l.original.statusB?(n(),f(se,{key:1,color:("getStatusColor"in u?u.getStatusColor:e(ot))(l.original.statusB),variant:"subtle",class:"capitalize"},{default:t(()=>[d(i(l.original.statusB),1)]),_:2},1032,["color"])):(n(),r("span",gr,"—"))]),"durationA-cell":t(({row:l})=>[l.original.durationA!==null?(n(),f(Re,{key:0,ms:l.original.durationA},null,8,["ms"])):(n(),r("span",fr,"—"))]),"durationB-cell":t(({row:l})=>[l.original.durationB!==null?(n(),f(Re,{key:0,ms:l.original.durationB},null,8,["ms"])):(n(),r("span",_r,"—"))]),"delta-cell":t(({row:l})=>[l.original.delta===null?(n(),r("span",vr,"—")):(n(),r("span",{key:1,class:ie(l.original.delta>0?"text-red-600":l.original.delta<0?"text-green-600":"text-gray-500")},[d(i(l.original.delta>0?"+":""),1),a(Re,{ms:l.original.delta,"unit-class":"opacity-60"},null,8,["ms"])],2))]),"percentChange-cell":t(({row:l})=>[l.original.percentChange===null?(n(),r("span",yr,"—")):(n(),r("span",{key:1,class:ie(l.original.percentChange>10?"text-red-600 font-medium":l.original.percentChange<-10?"text-green-600 font-medium":"text-gray-500")},i(l.original.percentChange>0?"+":"")+i(l.original.percentChange)+"% ",3))]),_:1},8,["data"])])):!e(ee)||!e(te)?(n(),r("div",hr," Select two runs to compare their performance. ")):(n(),r("div",xr," No overlapping test cases found between the selected runs. "))])]),_:1})]),"test-cases":t(()=>[a(Ss,{"project-id":e(p),"project-name":e(c)?.name,"sync-query":"",onTotal:o[10]||(o[10]=l=>Qe.value=l)},null,8,["project-id","project-name"])]),compare:t(()=>[a(Ge,null,{header:t(()=>[s("div",br,[s("p",kr,[o[41]||(o[41]=d(" Compare two test runs side-by-side — status changes and duration deltas ",-1)),a(Ee,{topic:"project.compare"})]),e(ce).length>=2?(n(),f(re,{key:0,icon:"i-lucide-git-compare-arrows",size:"sm",variant:"outline",label:"Latest vs previous",onClick:Mt})):A("",!0)])]),default:t(()=>[s("div",$r,[s("div",Cr,[s("div",null,[o[42]||(o[42]=s("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Run A (baseline)",-1)),a(at,{modelValue:e(ee),"onUpdate:modelValue":o[11]||(o[11]=l=>J(ee)?ee.value=l:null),items:e(ce),placeholder:"Select run A..."},null,8,["modelValue","items"])]),s("div",null,[o[43]||(o[43]=s("label",{class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Run B (comparison)",-1)),a(at,{modelValue:e(te),"onUpdate:modelValue":o[12]||(o[12]=l=>J(te)?te.value=l:null),items:e(ce),placeholder:"Select run B..."},null,8,["modelValue","items"])])]),e(tt)?(n(),r("div",Tr,[a($t,{name:"i-lucide-loader-2",class:"animate-spin mr-2"}),o[44]||(o[44]=d(" Loading run data… ",-1))])):e(ee)&&e(te)&&e(st).length>0?(n(),r("div",jr,[s("div",Sr,[s("div",wr,[o[45]||(o[45]=s("span",{class:"text-xs font-semibold text-gray-500 uppercase tracking-wider mr-1"},"Status changes",-1)),e(W).newFailures>0?(n(),f(se,{key:0,color:"error",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).newFailures)+" new failure"+i(e(W).newFailures>1?"s":""),1)]),_:1})):A("",!0),e(W).recovered>0?(n(),f(se,{key:1,color:"success",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).recovered)+" recovered ",1)]),_:1})):A("",!0),e(W).stillFailing>0?(n(),f(se,{key:2,color:"warning",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).stillFailing)+" still failing ",1)]),_:1})):A("",!0),e(W).newFailures===0&&e(W).recovered===0&&e(W).stillFailing===0?(n(),r("span",Rr,"No status changes")):A("",!0)]),s("div",Dr,[o[46]||(o[46]=s("span",{class:"text-xs font-semibold text-gray-500 uppercase tracking-wider mr-1"},"Duration changes",-1)),e(W).regressed>0?(n(),f(se,{key:0,color:"error",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).regressed)+" regressed ",1)]),_:1})):A("",!0),e(W).improved>0?(n(),f(se,{key:1,color:"success",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).improved)+" improved ",1)]),_:1})):A("",!0),a(se,{color:"neutral",variant:"soft",size:"lg"},{default:t(()=>[d(i(e(W).unchanged)+" unchanged ",1)]),_:1})])]),a(nt,{data:e(st),columns:Ft,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"}},{"statusA-cell":t(({row:l})=>[l.original.statusA?(n(),f(se,{key:1,color:("getStatusColor"in u?u.getStatusColor:e(ot))(l.original.statusA),variant:"subtle",class:"capitalize"},{default:t(()=>[d(i(l.original.statusA),1)]),_:2},1032,["color"])):(n(),r("span",Ar,"—"))]),"statusB-cell":t(({row:l})=>[l.original.statusB?(n(),f(se,{key:1,color:("getStatusColor"in u?u.getStatusColor:e(ot))(l.original.statusB),variant:"subtle",class:"capitalize"},{default:t(()=>[d(i(l.original.statusB),1)]),_:2},1032,["color"])):(n(),r("span",zr,"—"))]),"durationA-cell":t(({row:l})=>[l.original.durationA!==null?(n(),f(Re,{key:0,ms:l.original.durationA},null,8,["ms"])):(n(),r("span",Ur,"—"))]),"durationB-cell":t(({row:l})=>[l.original.durationB!==null?(n(),f(Re,{key:0,ms:l.original.durationB},null,8,["ms"])):(n(),r("span",Ir,"—"))]),"delta-cell":t(({row:l})=>[l.original.delta===null?(n(),r("span",Mr,"—")):(n(),r("span",{key:1,class:ie(l.original.delta>0?"text-red-600":l.original.delta<0?"text-green-600":"text-gray-500")},[d(i(l.original.delta>0?"+":""),1),a(Re,{ms:l.original.delta,"unit-class":"opacity-60"},null,8,["ms"])],2))]),"percentChange-cell":t(({row:l})=>[l.original.percentChange===null?(n(),r("span",Fr,"—")):(n(),r("span",{key:1,class:ie(l.original.percentChange>10?"text-red-600 font-medium":l.original.percentChange<-10?"text-green-600 font-medium":"text-gray-500")},i(l.original.percentChange>0?"+":"")+i(l.original.percentChange)+"% ",3))]),_:1},8,["data"])])):!e(ee)||!e(te)?(n(),r("div",Pr," Select two runs to compare test results. ")):(n(),r("div",Er," No overlapping test cases found between the selected runs. "))])]),_:1})]),"spec-health":t(()=>[a(ws,{"project-id":String(e(p))},null,8,["project-id"])]),"ai-steps":t(()=>[a(Rs,{"project-id":String(e(p))},null,8,["project-id"])]),quarantine:t(()=>[a(Ds,{"project-id":String(e(p)),"project-name":e(c)?.name},null,8,["project-id","project-name"])]),members:t(()=>[a(Ge,null,{header:t(()=>[s("div",Lr,[s("p",Br,[o[47]||(o[47]=d(" Users with access to this project ",-1)),a(Ee,{topic:"project.members"})]),a(re,{label:"Save changes",icon:"i-lucide-check",size:"sm",disabled:!e(ge),onClick:w},null,8,["disabled"])])]),default:t(()=>[e(ue).length>0?(n(),r("div",Vr,[(n(!0),r(X,null,ae(e(ue),l=>(n(),r("div",{key:l.id,class:"flex items-center justify-between rounded-lg border border-default px-4 py-3"},[s("div",null,[s("div",Nr,i(l.name||l.username),1),s("div",Kr,[s("span",null,"@"+i(l.username),1),a(se,{color:l.role==="administrator"?"primary":l.role==="reporter"?"info":"neutral",variant:"subtle",size:"xs"},{default:t(()=>[d(i(l.role),1)]),_:2},1032,["color"]),l.global?(n(),r("span",Or,"Global access")):A("",!0)])]),l.role!=="administrator"?(n(),f(As,{key:0,"model-value":e(N).includes(l.id),disabled:l.global,title:l.global?"Has global access — remove global assignment first":"",onChange:De=>b(l.id)},null,8,["model-value","disabled","title","onChange"])):(n(),r("span",qr,"Admin"))]))),128))])):(n(),r("div",Hr,"Loading members…"))]),_:1})]),timeline:t(()=>[a(zs,{"project-id":Number(e(p)),markers:e(Te),environments:e(qe),"can-edit":e(Ye),"focus-marker-id":e(Fe),onChanged:e(_t),onClearFocus:o[13]||(o[13]=l=>Fe.value=null)},null,8,["project-id","markers","environments","can-edit","focus-marker-id","onChanged"])]),_:1},8,["modelValue","items"])])]),_:1}),a(Bt,null,{default:t(()=>[a(Lt,{open:e(M),title:"Delete project","onUpdate:open":o[17]||(o[17]=l=>{l||(M.value=!1)})},{body:t(()=>[s("div",Qr,[s("p",Gr,[o[48]||(o[48]=d(" This will permanently delete ",-1)),s("strong",null,i(e(c)?.label||e(c)?.name),1),o[49]||(o[49]=d(" and all its test runs, reports, traces, and failure clusters. This action cannot be undone. ",-1))]),s("div",null,[s("label",Xr,[o[50]||(o[50]=d(" Type the project key ",-1)),s("code",Jr,i(e(c)?.name),1),o[51]||(o[51]=d(" to confirm: ",-1))]),a(Ct,{modelValue:e(V),"onUpdate:modelValue":o[15]||(o[15]=l=>J(V)?V.value=l:null),placeholder:e(c)?.name,autofocus:"",onKeydown:Ns(S,["enter"])},null,8,["modelValue","placeholder"])])])]),footer:t(()=>[a(re,{color:"neutral",variant:"ghost",label:"Cancel",onClick:o[16]||(o[16]=l=>M.value=!1)}),a(re,{color:"error",label:"Delete project",icon:"i-lucide-trash-2",disabled:!e(g),loading:e(j),onClick:S},null,8,["disabled","loading"])]),_:1},8,["open"])]),_:1}),a(Bt,null,{default:t(()=>[a(Lt,{open:e(h)!==null,title:"Delete test run","onUpdate:open":o[20]||(o[20]=l=>{l||(h.value=null)})},{body:t(()=>[s("p",null,[o[52]||(o[52]=d(" Are you sure you want to delete ",-1)),s("strong",null,"Run #"+i(e(h)),1),o[53]||(o[53]=d("? This will also remove all associated test results, reports, and traces. This action cannot be undone. ",-1))])]),footer:t(()=>[a(re,{color:"neutral",variant:"ghost",label:"Cancel",onClick:o[18]||(o[18]=l=>h.value=null)}),a(re,{color:"error",label:"Delete",icon:"i-lucide-trash-2",loading:e(z)===e(h),onClick:o[19]||(o[19]=l=>O(e(h)))},null,8,["loading"])]),_:1},8,["open"])]),_:1})],64)}}});export{sc as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{G as m,a as p}from"./DMtrFQqi.js";import{d,o as n,c as o,k as t,F as r,m as i,t as l,i as f,q as _,h as c}from"./C5TrTuWv.js";const k=["title"],x=d({__name:"DurationValue",props:{ms:{default:null},fallback:{default:"—"},unitClass:{default:"text-gray-400/70 dark:text-gray-500/70"},noTitle:{type:Boolean,default:!1}},setup(e){const a=e,s=c(()=>m(a.ms)),u=c(()=>a.noTitle||a.ms===null||a.ms===void 0?void 0:p(a.ms));return(y,g)=>(n(),o("span",{class:"tabular-nums whitespace-nowrap",title:t(u)},[t(s)?(n(),o(r,{key:0},[i(l(t(s).value),1),f("span",{class:_(e.unitClass)},l(t(s).unit),3)],64)):(n(),o(r,{key:1},[i(l(e.fallback),1)],64))],8,k))}}),h=Object.assign(x,{__name:"DurationValue"});export{h as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as S}from"./BBhrClA9.js";import{_ as $}from"./C-XjxjG5.js";import{_ as q}from"./DH5H1DJh.js";import{d as T,b as j,w as F,ax as N,c as y,j as n,g as r,o as m,k as e,f as O,v as P,i as c,q as B,F as E,y as I,E as M,_ as R,m as k,r as A,M as K}from"./C5TrTuWv.js";import{_ as L}from"./DMAiMrNr.js";import{u as W}from"./T5UuMUxA.js";import"./D_y2VS8k.js";import"./DaNC-xl1.js";import"./03FA4-rI.js";import"./DMsm-RGQ.js";import"./B69RP95P.js";import"./BjaRappk.js";import"./C8Paf_V1.js";const z={class:"space-y-6"},D={class:"space-y-4"},G={class:"flex items-center justify-between gap-2"},H={class:"flex items-center gap-2 shrink-0"},ce=T({__name:"pr-feedback",async setup(J){let u,p;const d=j(),{data:o,refresh:f}=([u,p]=F(()=>W("/api/settings/pr-feedback","$vSS3KCMfao")),u=await u,p(),u),l=A(!1),t=K({enabled:!1,comment:!0,status:!0,onlyOnFailure:!1,statusContext:"piwi/tests"});N(()=>{o.value&&Object.assign(t,o.value.settings)});const v=[{key:"comment",label:"Post a summary comment",description:"Creates one comment on the pull request and edits it on every later run, so a busy branch gets one comment rather than one per push."},{key:"status",label:"Set a commit status",description:"Marks the run’s commit passed or failed, so the pull request shows the result in its checks list. Still set on a green run when the comment is suppressed."},{key:"onlyOnFailure",label:"Only comment on failures",description:"Keeps green runs from adding a comment. The commit status is still set either way."}];async function g(){l.value=!0;try{const i=await $fetch("/api/settings/pr-feedback",{method:"PUT",body:{settings:{...t}}});o.value=i,Object.assign(t,i.settings),d.add({title:"Saved",color:"success"}),await f()}catch{d.add({title:"Save failed",color:"error"})}finally{l.value=!1}}async function w(){l.value=!0;try{const i=await $fetch("/api/settings/pr-feedback",{method:"PUT",body:{settings:null}});o.value=i,Object.assign(t,i.settings),d.add({title:"Reset to defaults",color:"success"}),await f()}catch{d.add({title:"Reset failed",color:"error"})}finally{l.value=!1}}return(i,s)=>{const x=S,h=$,_=q,C=M,b=R,V=L;return m(),y("div",z,[n(V,{icon:"i-lucide-git-pull-request",title:"Pull-request feedback",help:"settings.pr-feedback"},{subtitle:r(()=>[...s[2]||(s[2]=[k(" When a run finishes on a branch with an open pull request, post the result back to it — new failures separated from pre-existing ones, the failure clusters behind them, and the locator to use instead of the one that broke. ",-1)])]),footer:r(()=>[c("div",G,[s[4]||(s[4]=c("p",{class:"text-xs text-muted"}," Needs an SCM token with write access to the repository — set it globally, or per project in the project’s edit page. ",-1)),c("div",H,[n(b,{variant:"ghost",color:"neutral",disabled:e(l),label:"Reset to defaults",onClick:w},null,8,["disabled"]),n(b,{color:"primary",loading:e(l),icon:"i-lucide-save",onClick:g},{default:r(()=>[...s[3]||(s[3]=[k("Save",-1)])]),_:1},8,["loading"])])])]),default:r(()=>[e(o)&&!e(o).siteUrlConfigured?(m(),O(x,{key:0,color:"warning",variant:"soft",icon:"i-lucide-triangle-alert",title:"PIWI_SITE_URL is not set",description:"Nothing is posted until it is — every link in the comment is built from it, and a comment full of unreachable links is worse than no comment.",class:"mb-4"})):P("",!0),c("div",D,[n(h,{modelValue:e(t).enabled,"onUpdate:modelValue":s[0]||(s[0]=a=>e(t).enabled=a),label:"Post feedback to pull requests"},null,8,["modelValue"]),c("div",{class:B(["space-y-4 pl-1",!e(t).enabled&&"opacity-50 pointer-events-none"])},[(m(),y(E,null,I(v,a=>n(_,{key:a.key,label:a.label,description:a.description},{default:r(()=>[n(h,{modelValue:e(t)[a.key],"onUpdate:modelValue":U=>e(t)[a.key]=U},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label","description"])),64)),n(_,{label:"Commit status context",description:"The name shown next to the status in the pull request’s checks list.",hint:`default ${e(o)?.defaults.statusContext??""}`},{default:r(()=>[n(C,{modelValue:e(t).statusContext,"onUpdate:modelValue":s[1]||(s[1]=a=>e(t).statusContext=a),placeholder:e(o)?.defaults.statusContext,class:"w-full max-w-sm"},null,8,["modelValue","placeholder"])]),_:1},8,["hint"])],2)])]),_:1})])}}});export{ce as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{be as x,b as z,bf as E,M as b,bg as L,bh as S,h as d,ab as r,bi as h,bj as T}from"./C5TrTuWv.js";function B(t={}){const{copy:c,copied:e,isSupported:a}=x({copiedDuring:t.duration??2e3,legacy:!0}),n=z();async function o(s,i={}){if(s){try{await c(s)}catch{return}i.toast&&n.add({title:typeof i.toast=="string"?i.toast:"Copied to clipboard",icon:"i-lucide-check",color:"success",duration:2e3})}}return{copy:o,copied:e,isSupported:a}}function q(t){const c=[r(t.method)?.toUpperCase()||"GET",r(t.baseURL)];for(const e of[t.query||t.params]){const a=r(e);if(!a)continue;const n={};for(const[o,s]of Object.entries(a))n[r(o)]=r(s);c.push(n)}if(t.body){const e=r(t.body);if(!e)c.push(h(e));else if(e instanceof ArrayBuffer)c.push(h(Object.fromEntries([...new Uint8Array(e).entries()].map(([a,n])=>[a,n.toString()]))));else if(e instanceof FormData){const a=[];for(const n of e.entries()){const[o,s]=n;a.push([o,s instanceof File?`${s.name}:${s.size}:${s.lastModified}`:s])}c.push(h(a))}else if(T(e))c.push(h(b(e)));else try{c.push(h(e))}catch{console.warn("[useFetch] Failed to hash body",e)}}return c}const m=E({name:"createUseFetch",factory(t={}){function c(e,a,n){const[o={},s]=typeof a=="string"?[{},a]:[a,n],i=typeof t=="function"?t(o):t,{server:_,lazy:g,default:F,transform:v,pick:w,watch:y,immediate:D,getCachedData:O,deep:$,dedupe:k,timeout:U,...u}={...typeof t=="function"?{}:i,...o,...typeof t=="function"?i:{}},f=d(()=>r(e)),j=d(()=>r(u.key)||"$f"+h([s,typeof f.value=="string"?f.value:"",...q(u)]));if(!u.baseURL&&typeof f.value=="string"&&f.value[0]==="/"&&f.value[1]==="/")throw new Error('[nuxt] [useFetch] the request URL must not start with "//".');const l=b({...L,...u,cache:typeof u.cache=="boolean"?void 0:u.cache}),p={server:_,lazy:g,default:F,transform:v,pick:w,immediate:D,getCachedData:O,deep:$,dedupe:k,timeout:U,watch:y===!1?[]:[...y||[],l]};return y===!1&&(p._keyTriggersExecute=!1),S(j,(R,{signal:C})=>(u.$fetch||globalThis.$fetch)(f.value,{signal:C,...l}),p)}return c}}),G=m.__nuxt_factory();m.__nuxt_factory({lazy:!0,_functionName:"useLazyFetch"});export{B as a,G as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as o}from"./BmzxRbcg.js";import{O as a,h as i,ab as n}from"./C5TrTuWv.js";import{u}from"./fXUwH_3d.js";function p(s){const{canSeeAdmin:t}=a(),e=u();return i(()=>o({canSeeAdmin:t.value,isDesktop:e,envManaged:s?n(s):void 0}))}export{p as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as j}from"./DcLbz6DV.js";import{_ as F}from"./C8Paf_V1.js";import{_ as G}from"./BBhrClA9.js";import{aA as T,d as Y,O as D,a as H,u as J,b as K,B as q,c as M,i as r,k as t,f as m,g as s,j as a,m as f,A as Q,r as _,G as W,o as i,v,C as B,E as X,_ as Z,p as ee,M as E,h as te}from"./C5TrTuWv.js";import{_ as ae}from"./DH5H1DJh.js";import{_ as se}from"./BrUBOQ0y.js";import"./D_y2VS8k.js";const oe=T("/logo-wide.svg"),ne={class:"min-h-screen flex flex-col items-center justify-center bg-elevated/50 gap-6 px-4"},le={key:1,class:"space-y-2 mb-4"},re={class:"mt-4 text-center"},ie={class:"flex items-center gap-4 text-sm text-muted"},de={href:"https://github.com/piwitests/platform",target:"_blank",rel:"noopener",class:"flex items-center gap-1.5 hover:text-default transition-colors"},ve=Y({__name:"login",setup(ue){const{login:U}=D(),C=H(),N=J(),y=K(),A=Q(),d=E({username:"",password:""}),w=_(!1),c=_(""),h=_(null),o=E({username:"",password:"",confirmPassword:"",name:""}),u=_(!1),p=_("");q(async()=>{if(A.public.demoMode){h.value=!1;return}try{const n=await $fetch("/api/auth/setup");h.value=n.needsSetup}catch{h.value=!1}});async function z(){if(!o.username||!o.password){p.value="Please choose a username and password";return}if(o.password!==o.confirmPassword){p.value="Passwords do not match";return}u.value=!0,p.value="";try{await $fetch("/api/auth/setup",{method:"POST",body:{username:o.username,password:o.password,name:o.name||void 0}}),await U(o.username,o.password),y.add({title:"Admin account created",description:"You're signed in.",color:"success"}),C.push("/")}catch(n){const e=n&&typeof n=="object"&&"data"in n?n.data?.message:void 0;p.value=e||"Failed to create the admin account",y.add({title:"Setup failed",description:p.value,color:"error"})}finally{u.value=!1}}const x=te(()=>A.public.demoMode?[]:A.public.oauthProviders||[]);q(()=>{const n=N.query.error;if(n){const e={"access-denied":"Access was denied","invalid-state":"Authentication failed (invalid state)","missing-code":"Authentication failed (missing code)","oauth-failed":"OAuth authentication failed","account-exists":"This email is already linked to a different sign-in method. Sign in with that method instead.","domain-not-allowed":"Your email domain is not allowed to sign in here.","org-not-allowed":"You are not a member of an allowed organization.","link-requires-login":"Please sign in before connecting a provider.","auth-disabled":"Authentication is not enabled","invalid-provider":"Invalid OAuth provider"};c.value=e[n]||"Authentication failed"}});async function I(){if(!d.username||!d.password){c.value="Please enter username and password";return}w.value=!0,c.value="";try{await U(d.username,d.password),y.add({title:"Login successful",color:"success"}),C.push("/")}catch(n){const e=n&&typeof n=="object"&&"data"in n?n.data?.message:void 0;c.value=e||"Invalid username or password",y.add({title:"Login failed",description:c.value,color:"error"})}finally{w.value=!1}}function S(n){window.location.href=`/api/auth/oauth/${n}/login`}return(n,e)=>{const O=j,P=F,$=G,g=X,b=ae,k=Z,V=ee,R=se,L=W;return i(),M("div",ne,[e[18]||(e[18]=r("img",{src:oe,alt:"Piwi Dashboard",class:"h-16 rounded-xl"},null,-1)),t(h)===null?(i(),m(P,{key:0,class:"w-full max-w-md"},{default:s(()=>[a(O,{text:"Loading…"})]),_:1})):t(h)?(i(),m(P,{key:1,class:"w-full max-w-md"},{header:s(()=>[...e[8]||(e[8]=[r("h1",{class:"text-xl font-semibold"},"Create the first admin account",-1),r("p",{class:"text-sm text-muted mt-1"}," Authentication is enabled and no accounts exist yet. Create the administrator account to sign in. ",-1)])]),default:s(()=>[t(p)?(i(),m($,{key:0,color:"error",title:t(p),variant:"subtle",class:"mb-4"},null,8,["title"])):v("",!0),r("form",{class:"space-y-4",onSubmit:B(z,["prevent"])},[a(b,{label:"Username",name:"username",required:""},{default:s(()=>[a(g,{modelValue:t(o).username,"onUpdate:modelValue":e[0]||(e[0]=l=>t(o).username=l),type:"text",placeholder:"Choose a username",autocomplete:"username",disabled:t(u),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),a(b,{label:"Name",name:"name"},{default:s(()=>[a(g,{modelValue:t(o).name,"onUpdate:modelValue":e[1]||(e[1]=l=>t(o).name=l),type:"text",placeholder:"Administrator (optional)",autocomplete:"name",disabled:t(u),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),a(b,{label:"Password",name:"password",required:""},{default:s(()=>[a(g,{modelValue:t(o).password,"onUpdate:modelValue":e[2]||(e[2]=l=>t(o).password=l),type:"password",placeholder:"Choose a password",autocomplete:"new-password",disabled:t(u),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),a(b,{label:"Confirm password",name:"confirmPassword",required:""},{default:s(()=>[a(g,{modelValue:t(o).confirmPassword,"onUpdate:modelValue":e[3]||(e[3]=l=>t(o).confirmPassword=l),type:"password",placeholder:"Re-enter the password",autocomplete:"new-password",disabled:t(u),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),a(k,{type:"submit",block:"",loading:t(u),disabled:t(u)},{default:s(()=>[...e[9]||(e[9]=[f(" Create admin account ",-1)])]),_:1},8,["loading","disabled"])],32)]),_:1})):(i(),m(P,{key:2,class:"w-full max-w-md"},{header:s(()=>[...e[10]||(e[10]=[r("h1",{class:"text-xl font-semibold"},"Sign in to your account",-1)])]),default:s(()=>[t(c)?(i(),m($,{key:0,color:"error",title:t(c),variant:"subtle",class:"mb-4"},null,8,["title"])):v("",!0),t(x).length>0?(i(),M("div",le,[t(x).includes("google")?(i(),m(k,{key:0,block:"",color:"neutral",variant:"outline",onClick:e[4]||(e[4]=l=>S("google"))},{leading:s(()=>[a(V,{name:"i-lucide-chrome",class:"size-5"})]),default:s(()=>[e[11]||(e[11]=f(" Sign in with Google ",-1))]),_:1})):v("",!0),t(x).includes("github")?(i(),m(k,{key:1,block:"",color:"neutral",variant:"outline",onClick:e[5]||(e[5]=l=>S("github"))},{leading:s(()=>[a(V,{name:"i-lucide-github",class:"size-5"})]),default:s(()=>[e[12]||(e[12]=f(" Sign in with GitHub ",-1))]),_:1})):v("",!0),t(x).length>0?(i(),m(R,{key:2,label:"or continue with password",class:"my-4"})):v("",!0)])):v("",!0),r("form",{class:"space-y-4",onSubmit:B(I,["prevent"])},[a(b,{label:"Username",name:"username",required:""},{default:s(()=>[a(g,{modelValue:t(d).username,"onUpdate:modelValue":e[6]||(e[6]=l=>t(d).username=l),type:"text",placeholder:"Enter your username",autocomplete:"username",disabled:t(w),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),a(b,{label:"Password",name:"password",required:""},{default:s(()=>[a(g,{modelValue:t(d).password,"onUpdate:modelValue":e[7]||(e[7]=l=>t(d).password=l),type:"password",placeholder:"Enter your password",autocomplete:"current-password",disabled:t(w),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),a(k,{type:"submit",block:"",loading:t(w),disabled:t(w)},{default:s(()=>[...e[13]||(e[13]=[f(" Login ",-1)])]),_:1},8,["loading","disabled"])],32),r("div",re,[a(L,{to:"/forgot-password",class:"text-sm text-muted hover:text-default"},{default:s(()=>[...e[14]||(e[14]=[f(" Forgot password? ",-1)])]),_:1})])]),_:1})),r("div",ie,[r("a",de,[a(V,{name:"i-lucide-github",class:"size-4"}),e[15]||(e[15]=f(" GitHub ",-1))]),e[17]||(e[17]=r("span",null,"·",-1)),a(L,{to:"/docs",class:"flex items-center gap-1.5 hover:text-default transition-colors"},{default:s(()=>[a(V,{name:"i-lucide-book-open",class:"size-4"}),e[16]||(e[16]=f(" API Docs ",-1))]),_:1})])])}}});export{ve as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"70224ee0-4d1f-45d2-b380-2ecb18064bf1","timestamp":1785605206568,"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./C5TrTuWv.js";function n(){const t=o();return String(t.public.desktop)==="true"}export{n as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as C,b as S,o as r,f as k,g as s,i as y,R as I,c as g,F as j,y as U,H as p,j as o,E as F,v,m as h,I as w}from"./C5TrTuWv.js";import{_ as $}from"./DH5H1DJh.js";import{_ as A}from"./BfA6lfg4.js";import{_ as B}from"./B69RP95P.js";import{_ as E}from"./CjBktNrC.js";import{_ as H}from"./DvEsAuE9.js";import{E as L}from"./DMtrFQqi.js";const P={key:0,class:"flex flex-wrap gap-1 py-0.5"},N={key:1,class:"text-[var(--ui-text-muted)]"},O=C({__name:"TagsSelect",props:{modelValue:{},allTags:{}},emits:["update:modelValue","tagCreated"],setup(t,{emit:V}){const u=t,d=V,b=S();async function _(f){const n=f.trim();if(!n)return;const i=u.allTags.find(a=>a.text.toLowerCase()===n.toLowerCase());if(i){u.modelValue.some(a=>a.id===i.id)||d("update:modelValue",[...u.modelValue,i]);return}try{const a=await $fetch("/api/tags",{method:"POST",body:{text:n,color:L()}});d("tagCreated",a.tag),d("update:modelValue",[...u.modelValue,a.tag])}catch(a){const e=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;b.add({title:"Failed to create tag",description:e||"An error occurred",color:"error"})}}return(f,n)=>{const i=E,a=H;return r(),k(a,{"model-value":t.modelValue,items:t.allTags,multiple:"","create-item":"always","label-key":"text",by:"id",placeholder:"Select or create tags…",class:"w-full","onUpdate:modelValue":n[0]||(n[0]=e=>d("update:modelValue",e)),onCreate:_},{default:s(({modelValue:e})=>[e.length?(r(),g("div",P,[(r(!0),g(j,null,U(e,m=>(r(),k(i,{key:m.id,text:m.text,color:m.color},null,8,["text","color"]))),128))])):(r(),g("span",N,"Select or create tags…"))]),"item-leading":s(({item:e})=>[y("span",{class:"inline-block size-2 rounded-full shrink-0",style:I({backgroundColor:e.color})},null,4)]),_:1},8,["model-value","items"])}}}),D=Object.assign(O,{__name:"TagsSelect"}),q={class:"space-y-5"},z={class:"inline-flex items-center gap-1"},G={class:"inline-flex items-center gap-1"},R=C({__name:"ProjectFormFields",props:w({mode:{},allTags:{},hasToken:{type:Boolean,default:!1}},{name:{default:""},nameModifiers:{},label:{default:""},labelModifiers:{},description:{default:""},descriptionModifiers:{},diagnosisInstructions:{default:""},diagnosisInstructionsModifiers:{},scmToken:{default:""},scmTokenModifiers:{},tags:{default:()=>[]},tagsModifiers:{}}),emits:w(["tag-created"],["update:name","update:label","update:description","update:diagnosisInstructions","update:scmToken","update:tags"]),setup(t,{emit:V}){const u=V,d=p(t,"name"),b=p(t,"label"),_=p(t,"description"),f=p(t,"diagnosisInstructions"),n=p(t,"scmToken"),i=p(t,"tags");return(a,e)=>{const m=F,c=$,x=A,T=B,M=D;return r(),g("div",q,[t.mode==="create"?(r(),k(c,{key:0,label:"Project name",name:"name",required:"",description:"A unique identifier used to match test results from the reporter."},{default:s(()=>[o(m,{modelValue:d.value,"onUpdate:modelValue":e[0]||(e[0]=l=>d.value=l),placeholder:"e.g. my-app",class:"w-full"},null,8,["modelValue"])]),_:1})):v("",!0),o(c,{label:"Display label",name:"label",description:"A friendly name shown in the UI (defaults to project name if not set)."},{default:s(()=>[o(m,{modelValue:b.value,"onUpdate:modelValue":e[1]||(e[1]=l=>b.value=l),placeholder:"e.g. My Application",class:"w-full"},null,8,["modelValue"])]),_:1}),o(c,{label:"Description",name:"description",description:"Optional description of this project."},{default:s(()=>[o(x,{modelValue:_.value,"onUpdate:modelValue":e[2]||(e[2]=l=>_.value=l),placeholder:"Enter project description",rows:3,class:"w-full"},null,8,["modelValue"])]),_:1}),t.mode==="edit"?(r(),g(j,{key:1},[o(c,{name:"diagnosisInstructions",description:"Combined with the global instructions from Settings → AI."},{label:s(()=>[y("span",z,[e[7]||(e[7]=h(" AI diagnosis instructions ",-1)),o(T,{topic:"project.ai-instructions"})])]),default:s(()=>[o(x,{modelValue:f.value,"onUpdate:modelValue":e[3]||(e[3]=l=>f.value=l),placeholder:"e.g. This project tests the payment checkout flow. The backend uses Stripe for payments and the payment API is at /api/v2/payments. Database errors are usually caused by connection pool exhaustion under load.",rows:5,class:"w-full font-mono text-sm"},null,8,["modelValue"])]),_:1}),o(c,{name:"scmToken",description:t.hasToken?"Leave empty to keep the stored token, enter a new value to replace it, or save empty to remove it":"For GitHub, GitLab, or Bitbucket. Falls back to the global SCM token if not set."},{label:s(()=>[y("span",G,[e[8]||(e[8]=h("SCM token ",-1)),o(T,{topic:"project.scm-token"})])]),default:s(()=>[o(m,{modelValue:n.value,"onUpdate:modelValue":e[4]||(e[4]=l=>n.value=l),type:"password",placeholder:t.hasToken?"•••••••• (unchanged)":"ghp_..., glpat-..., or bitbucket token",class:"w-full font-mono"},null,8,["modelValue","placeholder"])]),_:1},8,["description"])],64)):v("",!0),o(c,{label:"Tags",name:"tags",description:"Select existing tags or type a new name and press Enter to create one."},{default:s(()=>[o(M,{modelValue:i.value,"onUpdate:modelValue":e[5]||(e[5]=l=>i.value=l),"all-tags":t.allTags,class:"w-full",onTagCreated:e[6]||(e[6]=l=>u("tag-created"))},null,8,["modelValue","all-tags"])]),_:1})])}}}),ee=Object.assign(R,{__name:"ProjectFormFields"});export{ee as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as g,o as s,c as a,F as l,y as o,f,G as p,q as b,k as y,R as k,h as _}from"./C5TrTuWv.js";const h=g({__name:"MiniRunBars",props:{runs:{},height:{default:28},maxBars:{default:20}},setup(n){const i=n;function u(t){return["running","initialising","finalizing"].includes(t.status)?"bg-blue-400 dark:bg-blue-500":t.flakyTests>0&&t.status==="passed"?"bg-amber-400 dark:bg-amber-400":t.status==="passed"?"bg-green-500":["failed","timedout","interrupted"].includes(t.status)?"bg-red-500":"bg-gray-300 dark:bg-gray-600"}function c(t){const r=[`Run #${t.id}`,`Status: ${t.status}`,`${t.passedTests}/${t.totalTests} passed`];return t.flakyTests>0&&r.push(`${t.flakyTests} flaky`),r.join(" · ")}const d=_(()=>Math.max(0,i.maxBars-i.runs.length));return(t,r)=>{const m=p;return s(),a("div",{class:"flex items-stretch gap-px",style:k({height:`${n.height}px`})},[(s(!0),a(l,null,o(n.runs,e=>(s(),f(m,{key:e.id,to:`/test-runs/${e.id}`,title:c(e),class:b(["flex-1 rounded-sm transition-opacity hover:opacity-70 min-w-0",u(e)])},null,8,["to","title","class"]))),128)),(s(!0),a(l,null,o(y(d),e=>(s(),a("div",{key:`empty-${e}`,class:"flex-1 rounded-sm bg-gray-100 dark:bg-gray-800 min-w-0"}))),128))],4)}}}),$=Object.assign(h,{__name:"MiniRunBars"});export{$ as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Alert-He-UxEt6.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/Alert-He-UxEt6.js"],"names":["_sfc_main$1","_sfc_main$2","_sfc_main$3"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb-DEP2dVCZ.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/Breadcrumb-DEP2dVCZ.js"],"names":["_sfc_main$2","_sfc_main$3","_sfc_main$4","_sfc_main$5","_sfc_main$6"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BreadcrumbNav-y6nMDYcR.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/BreadcrumbNav-y6nMDYcR.js"],"names":["_sfc_main$2","_sfc_main$3","_sfc_main$4"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserBadge-DIASU8Gf.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/BrowserBadge-DIASU8Gf.js"],"names":["_sfc_main$2"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChartCard-ZTsCvItQ.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/ChartCard-ZTsCvItQ.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChartMarkerTooltip-u_1DUHh-.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/ChartMarkerTooltip-u_1DUHh-.js"],"names":["_sfc_main$1"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox-BisdHf8n.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/Checkbox-BisdHf8n.js"],"names":["_sfc_main$1"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlock-B8BNtZAe.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/CodeBlock-B8BNtZAe.js"],"names":["_sfc_main$1"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardNavbar-D7-3zBUU.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DashboardNavbar-D7-3zBUU.js"],"names":["_sfc_main$2","_sfc_main$3","_sfc_main$4"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardSidebarToggle-C3HdHvlE.mjs","sources":["../../../../../../node_modules/nuxt/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DashboardSidebarToggle-C3HdHvlE.js"],"names":["_sfc_main$2"],"mappings":"","x_google_ignoreList":[0,1]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataLocationCard-CC2-lHiP.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DataLocationCard-CC2-lHiP.js"],"names":["_sfc_main$1"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DesktopRunLocallyButton-iNzrDsEs.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DesktopRunLocallyButton-iNzrDsEs.js"],"names":["_sfc_main$3","_sfc_main$6","_sfc_main$b","_sfc_main$4","_sfc_main$7","_sfc_main$8","_sfc_main$9","_sfc_main$a","_sfc_main$c","_sfc_main$d"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnosisPanel-BVb2LgHu.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DiagnosisPanel-BVb2LgHu.js"],"names":["_sfc_main$2","_sfc_main$3","_sfc_main$4","_sfc_main$5"],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnosisResult-xVgZlfKK.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DiagnosisResult-xVgZlfKK.js"],"names":["_sfc_main$6","_sfc_main$7","_sfc_main$8","_sfc_main$9","_sfc_main$a","_sfc_main$b"],"mappings":"","x_google_ignoreList":[0]}
|