@piwitests/server 0.22.1 → 0.24.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/{By5qkOq8.js → -COcylA_.js} +1 -1
- package/.output/public/_nuxt/03FA4-rI.js +1 -0
- package/.output/public/_nuxt/{2VtBYkNh.js → 5a7jHE9s.js} +1 -1
- package/.output/public/_nuxt/6Z_ZwH8I.js +1 -0
- package/.output/public/_nuxt/7ZHq6PCI.js +1 -0
- package/.output/public/_nuxt/{cSeAgciy.js → 98sAB6Gu.js} +1 -1
- package/.output/public/_nuxt/{CoPntblj.js → B--J7VNt.js} +1 -1
- package/.output/public/_nuxt/{Dj-TetcW.js → B1LUinhp.js} +1 -1
- package/.output/public/_nuxt/{CCP6Tyle.js → B33YjaHr.js} +1 -1
- package/.output/public/_nuxt/B69RP95P.js +1 -0
- package/.output/public/_nuxt/{x8YSyy4c.js → B8H4XydJ.js} +1 -1
- package/.output/public/_nuxt/{DpalT0nH.js → B8Xm4_S_.js} +1 -1
- package/.output/public/_nuxt/{9N6hSApy.js → BBhrClA9.js} +1 -1
- package/.output/public/_nuxt/{BhH0TNTi.js → BCGljaM0.js} +1 -1
- package/.output/public/_nuxt/{BVN50jIb.js → BFxvHlO9.js} +1 -1
- package/.output/public/_nuxt/{DsX5CCb5.js → BKrWWV14.js} +1 -1
- package/.output/public/_nuxt/BN1zZw5b.js +9 -0
- package/.output/public/_nuxt/{iubpj2qv.js → BPXqL9vK.js} +1 -1
- package/.output/public/_nuxt/{CAZpjzvB.js → BUnwEAjq.js} +1 -1
- package/.output/public/_nuxt/{D6Mo5HeX.js → BVLqydCr.js} +1 -1
- package/.output/public/_nuxt/{9P8iHISX.js → BWMSVSNM.js} +1 -1
- package/.output/public/_nuxt/B_r0xHVS.js +1 -0
- package/.output/public/_nuxt/{DtSn2Q9-.js → BakMHV79.js} +1 -1
- package/.output/public/_nuxt/{_VzR8bwc.js → Bd8B-yeR.js} +1 -1
- package/.output/public/_nuxt/{BUMoU50-.js → BevElZaK.js} +1 -1
- package/.output/public/_nuxt/BfA6lfg4.js +1 -0
- package/.output/public/_nuxt/{DGyGmFem.js → Bg93Rnts.js} +1 -1
- package/.output/public/_nuxt/BgABj4Ty.js +4 -0
- package/.output/public/_nuxt/{CkKCKAYp.js → BkM2KXUo.js} +2 -2
- package/.output/public/_nuxt/{DQnsFoJn.js → BkxRbXIj.js} +1 -1
- package/.output/public/_nuxt/{CNcu4khZ.js → Bme1UkOl.js} +1 -1
- package/.output/public/_nuxt/{CobveFaj.js → BmzxRbcg.js} +1 -1
- package/.output/public/_nuxt/Bn0jaRxI.js +1 -0
- package/.output/public/_nuxt/{SBmMTKQb.js → BoNKdx5o.js} +1 -1
- package/.output/public/_nuxt/{BQzG26t0.js → Bp3FRuEm.js} +1 -1
- package/.output/public/_nuxt/{DOLeth7M.js → BrUBOQ0y.js} +1 -1
- package/.output/public/_nuxt/{nANaAHCd.js → BtSGUY-7.js} +1 -1
- package/.output/public/_nuxt/{BfS8BZTO.js → BtbpLWDs.js} +1 -1
- package/.output/public/_nuxt/{Cwwe5bRS.js → BvAfKk6C.js} +1 -1
- package/.output/public/_nuxt/{BqCiYSVY.js → BwEN1fJ1.js} +1 -1
- package/.output/public/_nuxt/{B0hK-xDF.js → C-XjxjG5.js} +1 -1
- package/.output/public/_nuxt/{kfFeu9tK.js → C3W_wyr9.js} +1 -1
- package/.output/public/_nuxt/{h49q_GXF.js → C5TrTuWv.js} +42 -42
- package/.output/public/_nuxt/{B2a-Phk3.js → C7D5Wl7T.js} +1 -1
- package/.output/public/_nuxt/{B09ddw9C.js → C7fq_rHE.js} +1 -1
- package/.output/public/_nuxt/{CWoSSKhQ.js → C8Paf_V1.js} +1 -1
- package/.output/public/_nuxt/{BQOWm9mQ.js → CD8ZzAFC.js} +1 -1
- package/.output/public/_nuxt/{DwyFnMoY.js → CDTeSrLO.js} +1 -1
- package/.output/public/_nuxt/{Cf52zHyB.js → CGHV0Y2d.js} +1 -1
- package/.output/public/_nuxt/{BtaTvcz6.js → CIpF9l75.js} +1 -1
- package/.output/public/_nuxt/{CkyMZI-0.js → CJ1rmnk4.js} +1 -1
- package/.output/public/_nuxt/{DOBSrxzY.js → CMuzkARi.js} +1 -1
- package/.output/public/_nuxt/{3xlGO1qT.js → COuZu9FO.js} +1 -1
- package/.output/public/_nuxt/{BZnfiR67.js → CX5Q0dZ8.js} +1 -1
- package/.output/public/_nuxt/{DBhdObsO.js → CX_G-FHC.js} +14 -14
- package/.output/public/_nuxt/{DDN2tt0a.js → Ce5_Tq63.js} +1 -1
- package/.output/public/_nuxt/{BlRWlfdD.js → Cf4MFOuf.js} +1 -1
- package/.output/public/_nuxt/{BYB8NVJZ.js → CgkXEZMo.js} +1 -1
- package/.output/public/_nuxt/{BFcdtAzg.js → CjBktNrC.js} +1 -1
- package/.output/public/_nuxt/{DXXnDejN.js → CjtjQV60.js} +1 -1
- package/.output/public/_nuxt/{x8w_1_rn.js → CpcrljrH.js} +1 -1
- package/.output/public/_nuxt/{C0v6l4pr.js → Cq33x7yV.js} +1 -1
- package/.output/public/_nuxt/{BDQCwxpX.js → CsV7pmcT.js} +1 -1
- package/.output/public/_nuxt/{C9p0YCAi.js → Cu2Q4iPh.js} +1 -1
- package/.output/public/_nuxt/CyLcEDg2.js +2 -0
- package/.output/public/_nuxt/{PdEEuEsg.js → D0Kop4bS.js} +1 -1
- package/.output/public/_nuxt/D1Y43xM1.js +2 -0
- package/.output/public/_nuxt/{DK7xciFW.js → D1vqYZsL.js} +1 -1
- package/.output/public/_nuxt/{BmJUhCIO.js → D2rZosKf.js} +1 -1
- package/.output/public/_nuxt/D7jpwkRG.js +5 -0
- package/.output/public/_nuxt/{CZ9ThISn.js → D8NAb7VE.js} +1 -1
- package/.output/public/_nuxt/{6-ivqM_I.js → D8vguZKg.js} +1 -1
- package/.output/public/_nuxt/{Hot1UcKY.js → DEvYVl9M.js} +1 -1
- package/.output/public/_nuxt/{CMhK1PvI.js → DF6Mes5z.js} +1 -1
- package/.output/public/_nuxt/{Sgis3xif.js → DGq4A2Pd.js} +1 -1
- package/.output/public/_nuxt/{BKJetfRH.js → DH5H1DJh.js} +1 -1
- package/.output/public/_nuxt/{Gik813Ek.js → DL8knjzi.js} +1 -1
- package/.output/public/_nuxt/{b_yFgp5S.js → DM3bDZC6.js} +1 -1
- package/.output/public/_nuxt/{DLNNAYfu.js → DMAiMrNr.js} +1 -1
- package/.output/public/_nuxt/{DLn-VPtK.js → DMWfVJCj.js} +1 -1
- package/.output/public/_nuxt/{BNAHBHbY.js → DMsm-RGQ.js} +1 -1
- package/.output/public/_nuxt/{CD3R-ggS.js → DMtrFQqi.js} +1 -1
- package/.output/public/_nuxt/{B9kt7ySS.js → DPZBpFOX.js} +1 -1
- package/.output/public/_nuxt/DVEGfqtt.js +2 -0
- package/.output/public/_nuxt/{D4UlSVir.js → D_y2VS8k.js} +1 -1
- package/.output/public/_nuxt/DaNC-xl1.js +1 -0
- package/.output/public/_nuxt/{DzM9oeLa.js → DbmGeOus.js} +1 -1
- package/.output/public/_nuxt/{DHUT-BKj.js → DcLbz6DV.js} +1 -1
- package/.output/public/_nuxt/{CWw9WGlv.js → DcR0Mmdl.js} +1 -1
- package/.output/public/_nuxt/{CDh_Qt7h.js → DhYznn-U.js} +1 -1
- package/.output/public/_nuxt/DhuRRlmK.js +1 -0
- package/.output/public/_nuxt/{CBZD8ym8.js → Drw8yQg6.js} +1 -1
- package/.output/public/_nuxt/{Bt4FLbe0.js → DuO5wfAC.js} +1 -1
- package/.output/public/_nuxt/{CRPt9SfB.js → DuOH5jcQ.js} +1 -1
- package/.output/public/_nuxt/{BH-ym1CI.js → DvEsAuE9.js} +1 -1
- package/.output/public/_nuxt/Dz6g_QJT.js +1 -0
- package/.output/public/_nuxt/{4yvOL9PC.js → DzZpIs4W.js} +1 -1
- package/.output/public/_nuxt/DzzNS-K1.js +1 -0
- package/.output/public/_nuxt/{COP3KBCA.js → Fsw2W4TA.js} +1 -1
- package/.output/public/_nuxt/{DWEkQ7bl.js → LwoTUb-r.js} +1 -1
- package/.output/public/_nuxt/{BjU3HZuS.js → OfPjZaky.js} +1 -1
- package/.output/public/_nuxt/{czXrP7NB.js → P5uOaRUZ.js} +1 -1
- package/.output/public/_nuxt/{BTvE9qca.js → Qo6oszaF.js} +1 -1
- package/.output/public/_nuxt/{Cd8r0xk5.js → T5UuMUxA.js} +1 -1
- package/.output/public/_nuxt/UY8pjaZA.js +1 -0
- package/.output/public/_nuxt/{B6s20NbT.js → V9p3z39z.js} +1 -1
- package/.output/public/_nuxt/{CJEp4i0N.js → VACXezo0.js} +1 -1
- package/.output/public/_nuxt/{CrOA9onF.js → YmCeJkZ2.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/70224ee0-4d1f-45d2-b380-2ecb18064bf1.json +1 -0
- package/.output/public/_nuxt/entry.DzPSf_u5.css +1 -0
- package/.output/public/_nuxt/fXUwH_3d.js +1 -0
- package/.output/public/_nuxt/{t-juTK3X.js → opwuUqHG.js} +1 -1
- package/.output/public/_nuxt/{B_mN5eMV.js → opyDpgSw.js} +1 -1
- package/.output/public/_nuxt/{HwFFbACq.js → sVV8xB9f.js} +1 -1
- package/.output/public/_nuxt/{DSvBQHzW.js → xa5UHCot.js} +1 -1
- package/.output/server/chunks/_/collect.mjs +1 -1
- package/.output/server/chunks/_/markers.mjs +1 -1
- package/.output/server/chunks/_/quarantine.mjs +1 -1
- package/.output/server/chunks/_/users.mjs +1 -1
- package/.output/server/chunks/build/{Alert-DAb8nKVs.mjs → Alert-He-UxEt6.mjs} +2 -2
- package/.output/server/chunks/build/Alert-He-UxEt6.mjs.map +1 -0
- package/.output/server/chunks/build/{Breadcrumb-DJp5WvUM.mjs → Breadcrumb-DEP2dVCZ.mjs} +3 -3
- package/.output/server/chunks/build/Breadcrumb-DEP2dVCZ.mjs.map +1 -0
- package/.output/server/chunks/build/{BreadcrumbNav-BrQwfL8G.mjs → BreadcrumbNav-y6nMDYcR.mjs} +3 -3
- package/.output/server/chunks/build/BreadcrumbNav-y6nMDYcR.mjs.map +1 -0
- package/.output/server/chunks/build/{BrowserBadge-Djw_e_I9.mjs → BrowserBadge-DIASU8Gf.mjs} +6 -66
- package/.output/server/chunks/build/BrowserBadge-DIASU8Gf.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartCard-B2gd_8HP.mjs → ChartCard-ZTsCvItQ.mjs} +2 -2
- package/.output/server/chunks/build/ChartCard-ZTsCvItQ.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-C1khEdTh.mjs → Checkbox-BisdHf8n.mjs} +7 -7
- package/.output/server/chunks/build/Checkbox-BisdHf8n.mjs.map +1 -0
- package/.output/server/chunks/build/{CodeBlock-CjnDrO3Y.mjs → CodeBlock-B8BNtZAe.mjs} +3 -3
- package/.output/server/chunks/build/CodeBlock-B8BNtZAe.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardNavbar-DYtmVlhy.mjs → DashboardNavbar-D7-3zBUU.mjs} +3 -3
- package/.output/server/chunks/build/DashboardNavbar-D7-3zBUU.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardSidebarToggle-BPNxODwj.mjs → DashboardSidebarToggle-C3HdHvlE.mjs} +3 -3
- package/.output/server/chunks/build/DashboardSidebarToggle-C3HdHvlE.mjs.map +1 -0
- package/.output/server/chunks/build/{DataLocationCard-2B-sVSMr.mjs → DataLocationCard-CC2-lHiP.mjs} +3 -3
- package/.output/server/chunks/build/DataLocationCard-CC2-lHiP.mjs.map +1 -0
- package/.output/server/chunks/build/{MetaStripGroup-BBByVvpR.mjs → DesktopRunLocallyButton-iNzrDsEs.mjs} +601 -623
- package/.output/server/chunks/build/DesktopRunLocallyButton-iNzrDsEs.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisPanel-D6QO30FQ.mjs → DiagnosisPanel-BVb2LgHu.mjs} +6 -6
- package/.output/server/chunks/build/DiagnosisPanel-BVb2LgHu.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisResult-ujB5Lt2A.mjs → DiagnosisResult-xVgZlfKK.mjs} +9 -9
- package/.output/server/chunks/build/DiagnosisResult-xVgZlfKK.mjs.map +1 -0
- package/.output/server/chunks/build/{EntityLinks-F8_kC-IH.mjs → EntityLinks-Dzn73fbq.mjs} +3 -3
- package/.output/server/chunks/build/EntityLinks-Dzn73fbq.mjs.map +1 -0
- package/.output/server/chunks/build/{EnvManagedBadge-D6e-10M9.mjs → EnvManagedBadge-C-agmABK.mjs} +3 -3
- package/.output/server/chunks/build/EnvManagedBadge-C-agmABK.mjs.map +1 -0
- package/.output/server/chunks/build/{FeatureUnavailable-BMw4euTk.mjs → FeatureUnavailable-DHFkwI7t.mjs} +2 -2
- package/.output/server/chunks/build/FeatureUnavailable-DHFkwI7t.mjs.map +1 -0
- package/.output/server/chunks/build/{FormField-QptK0rPg.mjs → FormField-GYHKiSI6.mjs} +2 -2
- package/.output/server/chunks/build/FormField-GYHKiSI6.mjs.map +1 -0
- package/.output/server/chunks/build/{GetStartedWizard-DxT8T14Y.mjs → GetStartedWizard-BpcGYsm2.mjs} +3 -3
- package/.output/server/chunks/build/GetStartedWizard-BpcGYsm2.mjs.map +1 -0
- package/.output/server/chunks/build/{HelpHint-C5Ru8BCc.mjs → HelpHint-plioHKA0.mjs} +29 -2
- package/.output/server/chunks/build/HelpHint-plioHKA0.mjs.map +1 -0
- package/.output/server/chunks/build/MetaStripGroup-A0a72vt5.mjs +193 -0
- package/.output/server/chunks/build/MetaStripGroup-A0a72vt5.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-BacZmQCX.mjs → Modal-hKLvVFNp.mjs} +2 -2
- package/.output/server/chunks/build/Modal-hKLvVFNp.mjs.map +1 -0
- package/.output/server/chunks/build/{NavigationMenu-sTiKSWDm.mjs → NavigationMenu-RfBOyS32.mjs} +5 -5
- package/.output/server/chunks/build/NavigationMenu-RfBOyS32.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-Crc8y0Yx.mjs → OpenInIdeLink-Jp6SzEtD.mjs} +5 -5
- package/.output/server/chunks/build/{OpenInIdeLink-Crc8y0Yx.mjs.map → OpenInIdeLink-Jp6SzEtD.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-DwjqZ2i5.mjs → ProjectTestCasesTable-DxOTfhi4.mjs} +8 -8
- package/.output/server/chunks/build/{ProjectTestCasesTable-DwjqZ2i5.mjs.map → ProjectTestCasesTable-DxOTfhi4.mjs.map} +1 -1
- package/.output/server/chunks/build/{RovingFocusItem--OEHI2P3.mjs → RovingFocusItem-BOSx1Z9Z.mjs} +2 -2
- package/.output/server/chunks/build/RovingFocusItem-BOSx1Z9Z.mjs.map +1 -0
- package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs +1 -1
- package/.output/server/chunks/build/{SectionCard-C753B3Yo.mjs → SectionCard-DHAFvJxm.mjs} +2 -2
- package/.output/server/chunks/build/SectionCard-DHAFvJxm.mjs.map +1 -0
- package/.output/server/chunks/build/{Select-BAyYwPuo.mjs → Select-CEyw7HGK.mjs} +4 -4
- package/.output/server/chunks/build/Select-CEyw7HGK.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-zE_AhMX8.mjs → SelectMenu-C02Hs2_F.mjs} +5 -5
- package/.output/server/chunks/build/{SelectMenu-zE_AhMX8.mjs.map → SelectMenu-C02Hs2_F.mjs.map} +1 -1
- package/.output/server/chunks/build/{Separator-BbgCfKKJ.mjs → Separator-lrN70ODV.mjs} +2 -2
- package/.output/server/chunks/build/Separator-lrN70ODV.mjs.map +1 -0
- package/.output/server/chunks/build/{SettingsField-D-VriK9X.mjs → SettingsField-tRmytcEJ.mjs} +5 -5
- package/.output/server/chunks/build/SettingsField-tRmytcEJ.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-CNbGvbUF.mjs → Slideover-D6cRIqch.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-D6cRIqch.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-DdkA3Fii.mjs → Switch-R2n82ncQ.mjs} +4 -4
- package/.output/server/chunks/build/Switch-R2n82ncQ.mjs.map +1 -0
- package/.output/server/chunks/build/{Table-CfDVAuUJ.mjs → Table-qZdnm9t2.mjs} +3 -3
- package/.output/server/chunks/build/Table-qZdnm9t2.mjs.map +1 -0
- package/.output/server/chunks/build/{Tabs-BCOhHEB9.mjs → Tabs-BDP7MWl4.mjs} +3 -3
- package/.output/server/chunks/build/Tabs-BDP7MWl4.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar-wquHQqtp.mjs → TestStatusBar-CvsmKJ4D.mjs} +2 -2
- package/.output/server/chunks/build/TestStatusBar-CvsmKJ4D.mjs.map +1 -0
- package/.output/server/chunks/build/{Textarea-Ohs6QTXf.mjs → Textarea-DpmpM-lN.mjs} +2 -2
- package/.output/server/chunks/build/Textarea-DpmpM-lN.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-BRBnl4pE.mjs → Tooltip-BI3WQErw.mjs} +3 -3
- package/.output/server/chunks/build/Tooltip-BI3WQErw.mjs.map +1 -0
- package/.output/server/chunks/build/{VisuallyHiddenInput-BHvzNumK.mjs → VisuallyHiddenInput-D4E5aJCQ.mjs} +2 -2
- package/.output/server/chunks/build/VisuallyHiddenInput-D4E5aJCQ.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BesWjK_d.mjs → _id_-26komi8G.mjs} +47 -37
- package/.output/server/chunks/build/{_id_-BesWjK_d.mjs.map → _id_-26komi8G.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-CQ0lolEK.mjs → _id_-T965GKYC.mjs} +58 -15
- package/.output/server/chunks/build/_id_-T965GKYC.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CGs0u8Fr.mjs → _id_-w7YCSiiy.mjs} +70 -41
- package/.output/server/chunks/build/{_id_-CGs0u8Fr.mjs.map → _id_-w7YCSiiy.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-D1-06Fcl.mjs → _id_-wiULjAVc.mjs} +44 -40
- package/.output/server/chunks/build/{_id_-D1-06Fcl.mjs.map → _id_-wiULjAVc.mjs.map} +1 -1
- package/.output/server/chunks/build/{about-DdyOj-dj.mjs → about-B3V_OEiu.mjs} +5 -5
- package/.output/server/chunks/build/about-B3V_OEiu.mjs.map +1 -0
- package/.output/server/chunks/build/{account-7aVMKekZ.mjs → account-DpBdYE46.mjs} +6 -6
- package/.output/server/chunks/build/account-DpBdYE46.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-zw3T9b5u.mjs → ai-DYhpzbqp.mjs} +16 -16
- package/.output/server/chunks/build/{ai-zw3T9b5u.mjs.map → ai-DYhpzbqp.mjs.map} +1 -1
- package/.output/server/chunks/build/{analytics-CeCzKwEX.mjs → analytics-CZJEU0an.mjs} +17 -17
- package/.output/server/chunks/build/{analytics-CeCzKwEX.mjs.map → analytics-CZJEU0an.mjs.map} +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{db.client-Bdqk_eYQ.mjs → db.client-DijpEH6i.mjs} +3 -1
- package/.output/server/chunks/build/db.client-DijpEH6i.mjs.map +1 -0
- package/.output/server/chunks/build/{default-CkyAx_Mu.mjs → default-CQa_bmAf.mjs} +505 -89
- package/.output/server/chunks/build/default-CQa_bmAf.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-Dhj-wEks.mjs → docs-C8bndVXg.mjs} +11 -11
- package/.output/server/chunks/build/{docs-Dhj-wEks.mjs.map → docs-C8bndVXg.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-CVz_gdoe.mjs → edit-BdfF9er2.mjs} +12 -12
- package/.output/server/chunks/build/edit-BdfF9er2.mjs.map +1 -0
- package/.output/server/chunks/build/{fetch-Be-j7hF1.mjs → fetch-tkz5_OA-.mjs} +3 -3
- package/.output/server/chunks/build/fetch-tkz5_OA-.mjs.map +1 -0
- package/.output/server/chunks/build/{forgot-password-CwdjL7BO.mjs → forgot-password-swZRcvXE.mjs} +3 -3
- package/.output/server/chunks/build/forgot-password-swZRcvXE.mjs.map +1 -0
- package/.output/server/chunks/build/{import-DyQEw4V3.mjs → import-B27Sv7h5.mjs} +11 -11
- package/.output/server/chunks/build/import-B27Sv7h5.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DcnICCZU.mjs → index-BdZmxLtC.mjs} +17 -17
- package/.output/server/chunks/build/{index-DcnICCZU.mjs.map → index-BdZmxLtC.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-D7Bmj6bq.mjs → index-C7m32bRI.mjs} +9 -9
- package/.output/server/chunks/build/index-C7m32bRI.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DghAFpNR.mjs → index-Dq6nk6OB.mjs} +385 -104
- package/.output/server/chunks/build/index-Dq6nk6OB.mjs.map +1 -0
- package/.output/server/chunks/build/{isValueEqualOrExist-D2qw9YEr.mjs → isValueEqualOrExist-D4lZ8uRY.mjs} +3 -3
- package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs.map +1 -0
- package/.output/server/chunks/build/{login-rXKF63j6.mjs → login-hxCF06JT.mjs} +5 -5
- package/.output/server/chunks/build/login-hxCF06JT.mjs.map +1 -0
- package/.output/server/chunks/build/{mcp-ByNvFy4o.mjs → mcp-BVW1llyW.mjs} +12 -12
- package/.output/server/chunks/build/mcp-BVW1llyW.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-CbLAZnKJ.mjs → notifications-Dn-evqXM.mjs} +11 -11
- package/.output/server/chunks/build/notifications-Dn-evqXM.mjs.map +1 -0
- package/.output/server/chunks/build/{performance-C93MEPaZ.mjs → performance-CV8qm94u.mjs} +10 -10
- package/.output/server/chunks/build/performance-CV8qm94u.mjs.map +1 -0
- package/.output/server/chunks/build/{pr-feedback-DKCB0bDE.mjs → pr-feedback-gKDz8LyA.mjs} +9 -9
- package/.output/server/chunks/build/pr-feedback-gKDz8LyA.mjs.map +1 -0
- package/.output/server/chunks/build/{reset-password-BBoHKMqD.mjs → reset-password-DtEISa1I.mjs} +3 -3
- package/.output/server/chunks/build/reset-password-DtEISa1I.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +87 -33
- package/.output/server/chunks/build/{settings-DiG0JjzC.mjs → settings-BJDnuLpc.mjs} +8 -8
- package/.output/server/chunks/build/settings-BJDnuLpc.mjs.map +1 -0
- package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs +1 -1
- package/.output/server/chunks/build/{setup-0-1O6Hjz.mjs → setup-BO9tXa_G.mjs} +14 -14
- package/.output/server/chunks/build/{setup-0-1O6Hjz.mjs.map → setup-BO9tXa_G.mjs.map} +1 -1
- package/.output/server/chunks/build/{storage-3JiFJ843.mjs → storage-zN92cA9q.mjs} +11 -11
- package/.output/server/chunks/build/storage-zN92cA9q.mjs.map +1 -0
- package/.output/server/chunks/build/{tags-CqYcp7js.mjs → tags-CJFnoyQc.mjs} +5 -5
- package/.output/server/chunks/build/tags-CJFnoyQc.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-y1HSgPX2.mjs → test-cases-0Q6rT73d.mjs} +18 -18
- package/.output/server/chunks/build/test-cases-0Q6rT73d.mjs.map +1 -0
- package/.output/server/chunks/build/{test-functions-D2ju95Ly.mjs → test-functions-DVRJgiWo.mjs} +9 -9
- package/.output/server/chunks/build/test-functions-DVRJgiWo.mjs.map +1 -0
- package/.output/server/chunks/build/{useCopyRich-CVFeYfkG.mjs → useCopyRich-BM9GTjJi.mjs} +75 -29
- package/.output/server/chunks/build/{useCopyRich-CVFeYfkG.mjs.map → useCopyRich-BM9GTjJi.mjs.map} +1 -1
- package/.output/server/chunks/build/useDesktopLocalRuns-k7Gw3Fv3.mjs +319 -0
- package/.output/server/chunks/build/useDesktopLocalRuns-k7Gw3Fv3.mjs.map +1 -0
- package/.output/server/chunks/build/useDesktopProjectLink-WwLte59P.mjs +67 -0
- package/.output/server/chunks/build/useDesktopProjectLink-WwLte59P.mjs.map +1 -0
- package/.output/server/chunks/build/{useFormControl-CZ9So7iX.mjs → useFormControl-8skMOTIf.mjs} +2 -2
- package/.output/server/chunks/build/useFormControl-8skMOTIf.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpenInIde--6Me0WlL.mjs → useOpenInIde-D74FmDNg.mjs} +2 -2
- package/.output/server/chunks/build/useOpenInIde-D74FmDNg.mjs.map +1 -0
- package/.output/server/chunks/build/{users-IdmY9JZV.mjs → users-C9bjOBde.mjs} +6 -6
- package/.output/server/chunks/build/users-C9bjOBde.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +982 -664
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs +1 -1
- package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs +88 -0
- package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/change-password.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/setup.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -1
- package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -1
- package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post6.mjs +1 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs +63 -0
- package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects.get.mjs +1 -1
- package/.output/server/chunks/routes/api/search.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
- package/.output/server/chunks/routes/api/setup-status.get.mjs +1 -1
- package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +3 -1
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/version.get.mjs +1 -1
- package/.output/server/chunks/routes/mcp.post.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/database/migrations/0045_productive_stingray.sql +1 -0
- package/.output/server/database/migrations/meta/0045_snapshot.json +3779 -0
- package/.output/server/database/migrations/meta/_journal.json +7 -0
- package/.output/server/database/migrations-pg/0046_gorgeous_hercules.sql +1 -0
- package/.output/server/database/migrations-pg/meta/0046_snapshot.json +4486 -0
- package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
- package/.output/server/index.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/B-6GGrhr.js +0 -1
- package/.output/public/_nuxt/B9FSuKdA.js +0 -1
- package/.output/public/_nuxt/BaDhDBCV.js +0 -1
- package/.output/public/_nuxt/Bb7Uckln.js +0 -5
- package/.output/public/_nuxt/Be4c943G.js +0 -2
- package/.output/public/_nuxt/BpUXqOVj.js +0 -2
- package/.output/public/_nuxt/BtSJxOdh.js +0 -1
- package/.output/public/_nuxt/CI_q0F1O.js +0 -9
- package/.output/public/_nuxt/CScusXhF.js +0 -1
- package/.output/public/_nuxt/Cot8fIp5.js +0 -2
- package/.output/public/_nuxt/D0ROfwV0.js +0 -1
- package/.output/public/_nuxt/D4oheDIm.js +0 -4
- package/.output/public/_nuxt/DS2ANCQh.js +0 -1
- package/.output/public/_nuxt/DslnXfcH.js +0 -1
- package/.output/public/_nuxt/builds/meta/28bca36d-5571-4157-b1b8-7f62c934eed6.json +0 -1
- package/.output/public/_nuxt/entry.BAvBQY-h.css +0 -1
- package/.output/public/_nuxt/hzsG6cAc.js +0 -1
- package/.output/public/_nuxt/jjOqY9Tv.js +0 -1
- package/.output/public/_nuxt/xbO0VmDX.js +0 -1
- package/.output/server/chunks/build/Alert-DAb8nKVs.mjs.map +0 -1
- package/.output/server/chunks/build/Breadcrumb-DJp5WvUM.mjs.map +0 -1
- package/.output/server/chunks/build/BreadcrumbNav-BrQwfL8G.mjs.map +0 -1
- package/.output/server/chunks/build/BrowserBadge-Djw_e_I9.mjs.map +0 -1
- package/.output/server/chunks/build/ChartCard-B2gd_8HP.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-C1khEdTh.mjs.map +0 -1
- package/.output/server/chunks/build/CodeBlock-CjnDrO3Y.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardNavbar-DYtmVlhy.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-BPNxODwj.mjs.map +0 -1
- package/.output/server/chunks/build/DataLocationCard-2B-sVSMr.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-D6QO30FQ.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisResult-ujB5Lt2A.mjs.map +0 -1
- package/.output/server/chunks/build/EntityLinks-F8_kC-IH.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-D6e-10M9.mjs.map +0 -1
- package/.output/server/chunks/build/FeatureUnavailable-BMw4euTk.mjs.map +0 -1
- package/.output/server/chunks/build/FormField-QptK0rPg.mjs.map +0 -1
- package/.output/server/chunks/build/GetStartedWizard-DxT8T14Y.mjs.map +0 -1
- package/.output/server/chunks/build/HelpHint-C5Ru8BCc.mjs.map +0 -1
- package/.output/server/chunks/build/MetaStripGroup-BBByVvpR.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-BacZmQCX.mjs.map +0 -1
- package/.output/server/chunks/build/NavigationMenu-sTiKSWDm.mjs.map +0 -1
- package/.output/server/chunks/build/RovingFocusItem--OEHI2P3.mjs.map +0 -1
- package/.output/server/chunks/build/SectionCard-C753B3Yo.mjs.map +0 -1
- package/.output/server/chunks/build/Select-BAyYwPuo.mjs.map +0 -1
- package/.output/server/chunks/build/Separator-BbgCfKKJ.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-D-VriK9X.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-CNbGvbUF.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-DdkA3Fii.mjs.map +0 -1
- package/.output/server/chunks/build/Table-CfDVAuUJ.mjs.map +0 -1
- package/.output/server/chunks/build/Tabs-BCOhHEB9.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar-wquHQqtp.mjs.map +0 -1
- package/.output/server/chunks/build/Textarea-Ohs6QTXf.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-BRBnl4pE.mjs.map +0 -1
- package/.output/server/chunks/build/VisuallyHiddenInput-BHvzNumK.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CQ0lolEK.mjs.map +0 -1
- package/.output/server/chunks/build/about-DdyOj-dj.mjs.map +0 -1
- package/.output/server/chunks/build/account-7aVMKekZ.mjs.map +0 -1
- package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +0 -1
- package/.output/server/chunks/build/default-CkyAx_Mu.mjs.map +0 -1
- package/.output/server/chunks/build/edit-CVz_gdoe.mjs.map +0 -1
- package/.output/server/chunks/build/fetch-Be-j7hF1.mjs.map +0 -1
- package/.output/server/chunks/build/forgot-password-CwdjL7BO.mjs.map +0 -1
- package/.output/server/chunks/build/import-DyQEw4V3.mjs.map +0 -1
- package/.output/server/chunks/build/index-D7Bmj6bq.mjs.map +0 -1
- package/.output/server/chunks/build/index-DghAFpNR.mjs.map +0 -1
- package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs.map +0 -1
- package/.output/server/chunks/build/login-rXKF63j6.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-ByNvFy4o.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-CbLAZnKJ.mjs.map +0 -1
- package/.output/server/chunks/build/performance-C93MEPaZ.mjs.map +0 -1
- package/.output/server/chunks/build/pr-feedback-DKCB0bDE.mjs.map +0 -1
- package/.output/server/chunks/build/reset-password-BBoHKMqD.mjs.map +0 -1
- package/.output/server/chunks/build/settings-DiG0JjzC.mjs.map +0 -1
- package/.output/server/chunks/build/storage-3JiFJ843.mjs.map +0 -1
- package/.output/server/chunks/build/tags-CqYcp7js.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-y1HSgPX2.mjs.map +0 -1
- package/.output/server/chunks/build/test-functions-D2ju95Ly.mjs.map +0 -1
- package/.output/server/chunks/build/useFormControl-CZ9So7iX.mjs.map +0 -1
- package/.output/server/chunks/build/useOpenInIde--6Me0WlL.mjs.map +0 -1
- package/.output/server/chunks/build/users-IdmY9JZV.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{l as St,
|
|
1
|
+
import{l as St,aD as vt,J as nt,r as Ct,ax as wt,d as Rt,aa as ht,k as C,a2 as _t,a3 as Ft,a4 as yt,a5 as xt,b7 as $t,b8 as We,H,aP as Je,a6 as Pt,a7 as Vt,o as y,c as M,j as le,g as Fe,i as k,R as J,q as D,F as G,y as T,V as N,W as de,v as X,m as Ye,t as Qe,f as ee,X as Mt,I as It,h as L,b9 as Dt,ba as zt,a8 as At}from"./C5TrTuWv.js";import{u as Ot}from"./V9p3z39z.js";function Et(e){return e?e[0].toUpperCase()+e.slice(1):""}function K(e,o){return typeof e=="function"?e(o):e}function q(e,o){return t=>{o.setState(n=>({...n,[e]:K(t,n[e])}))}}function Se(e){return e instanceof Function}function Ht(e){return Array.isArray(e)&&e.every(o=>typeof o=="number")}function Gt(e,o){const t=[],n=i=>{i.forEach(r=>{t.push(r);const l=o(r);l!=null&&l.length&&n(l)})};return n(e),t}function w(e,o,t){let n=[],i;return r=>{let l;t.key&&t.debug&&(l=Date.now());const u=e(r);if(!(u.length!==n.length||u.some((c,S)=>n[S]!==c)))return i;n=u;let d;if(t.key&&t.debug&&(d=Date.now()),i=o(...u),t==null||t.onChange==null||t.onChange(i),t.key&&t.debug&&t!=null&&t.debug()){const c=Math.round((Date.now()-l)*100)/100,S=Math.round((Date.now()-d)*100)/100,g=S/16,s=(f,p)=>{for(f=String(f);f.length<p;)f=" "+f;return f};console.info(`%c⏱ ${s(S,5)} /${s(c,5)} ms`,`
|
|
2
2
|
font-size: .6rem;
|
|
3
3
|
font-weight: bold;
|
|
4
4
|
color: hsl(${Math.max(0,Math.min(120-120*g,120))}deg 100% 31%);`,t?.key)}return i}}function R(e,o,t,n){return{debug:()=>{var i;return(i=e?.debugAll)!=null?i:e[o]},key:!1,onChange:n}}function Lt(e,o,t,n){const i=()=>{var l;return(l=r.getValue())!=null?l:e.options.renderFallbackValue},r={id:`${o.id}_${t.id}`,row:o,column:t,getValue:()=>o.getValue(n),renderValue:i,getContext:w(()=>[e,t,o,r],(l,u,a,d)=>({table:l,column:u,row:a,cell:d,getValue:d.getValue,renderValue:d.renderValue}),R(e.options,"debugCells"))};return e._features.forEach(l=>{l.createCell==null||l.createCell(r,t,o,e)},{}),r}function qt(e,o,t,n){var i,r;const u={...e._getDefaultColumnDef(),...o},a=u.accessorKey;let d=(i=(r=u.id)!=null?r:a?typeof String.prototype.replaceAll=="function"?a.replaceAll(".","_"):a.replace(/\./g,"_"):void 0)!=null?i:typeof u.header=="string"?u.header:void 0,c;if(u.accessorFn?c=u.accessorFn:a&&(a.includes(".")?c=g=>{let s=g;for(const p of a.split(".")){var f;s=(f=s)==null?void 0:f[p]}return s}:c=g=>g[u.accessorKey]),!d)throw new Error;let S={id:`${String(d)}`,accessorFn:c,parent:n,depth:t,columnDef:u,columns:[],getFlatColumns:w(()=>[!0],()=>{var g;return[S,...(g=S.columns)==null?void 0:g.flatMap(s=>s.getFlatColumns())]},R(e.options,"debugColumns")),getLeafColumns:w(()=>[e._getOrderColumnsFn()],g=>{var s;if((s=S.columns)!=null&&s.length){let f=S.columns.flatMap(p=>p.getLeafColumns());return g(f)}return[S]},R(e.options,"debugColumns"))};for(const g of e._features)g.createColumn==null||g.createColumn(S,e);return S}const z="debugHeaders";function Ze(e,o,t){var n;let r={id:(n=t.id)!=null?n:o.id,column:o,index:t.index,isPlaceholder:!!t.isPlaceholder,placeholderId:t.placeholderId,depth:t.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const l=[],u=a=>{a.subHeaders&&a.subHeaders.length&&a.subHeaders.map(u),l.push(a)};return u(r),l},getContext:()=>({table:e,header:r,column:o})};return e._features.forEach(l=>{l.createHeader==null||l.createHeader(r,e)}),r}const kt={createTable:e=>{e.getHeaderGroups=w(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(o,t,n,i)=>{var r,l;const u=(r=n?.map(S=>t.find(g=>g.id===S)).filter(Boolean))!=null?r:[],a=(l=i?.map(S=>t.find(g=>g.id===S)).filter(Boolean))!=null?l:[],d=t.filter(S=>!(n!=null&&n.includes(S.id))&&!(i!=null&&i.includes(S.id)));return ce(o,[...u,...d,...a],e)},R(e.options,z)),e.getCenterHeaderGroups=w(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(o,t,n,i)=>(t=t.filter(r=>!(n!=null&&n.includes(r.id))&&!(i!=null&&i.includes(r.id))),ce(o,t,e,"center")),R(e.options,z)),e.getLeftHeaderGroups=w(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(o,t,n)=>{var i;const r=(i=n?.map(l=>t.find(u=>u.id===l)).filter(Boolean))!=null?i:[];return ce(o,r,e,"left")},R(e.options,z)),e.getRightHeaderGroups=w(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(o,t,n)=>{var i;const r=(i=n?.map(l=>t.find(u=>u.id===l)).filter(Boolean))!=null?i:[];return ce(o,r,e,"right")},R(e.options,z)),e.getFooterGroups=w(()=>[e.getHeaderGroups()],o=>[...o].reverse(),R(e.options,z)),e.getLeftFooterGroups=w(()=>[e.getLeftHeaderGroups()],o=>[...o].reverse(),R(e.options,z)),e.getCenterFooterGroups=w(()=>[e.getCenterHeaderGroups()],o=>[...o].reverse(),R(e.options,z)),e.getRightFooterGroups=w(()=>[e.getRightHeaderGroups()],o=>[...o].reverse(),R(e.options,z)),e.getFlatHeaders=w(()=>[e.getHeaderGroups()],o=>o.map(t=>t.headers).flat(),R(e.options,z)),e.getLeftFlatHeaders=w(()=>[e.getLeftHeaderGroups()],o=>o.map(t=>t.headers).flat(),R(e.options,z)),e.getCenterFlatHeaders=w(()=>[e.getCenterHeaderGroups()],o=>o.map(t=>t.headers).flat(),R(e.options,z)),e.getRightFlatHeaders=w(()=>[e.getRightHeaderGroups()],o=>o.map(t=>t.headers).flat(),R(e.options,z)),e.getCenterLeafHeaders=w(()=>[e.getCenterFlatHeaders()],o=>o.filter(t=>{var n;return!((n=t.subHeaders)!=null&&n.length)}),R(e.options,z)),e.getLeftLeafHeaders=w(()=>[e.getLeftFlatHeaders()],o=>o.filter(t=>{var n;return!((n=t.subHeaders)!=null&&n.length)}),R(e.options,z)),e.getRightLeafHeaders=w(()=>[e.getRightFlatHeaders()],o=>o.filter(t=>{var n;return!((n=t.subHeaders)!=null&&n.length)}),R(e.options,z)),e.getLeafHeaders=w(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(o,t,n)=>{var i,r,l,u,a,d;return[...(i=(r=o[0])==null?void 0:r.headers)!=null?i:[],...(l=(u=t[0])==null?void 0:u.headers)!=null?l:[],...(a=(d=n[0])==null?void 0:d.headers)!=null?a:[]].map(c=>c.getLeafHeaders()).flat()},R(e.options,z))}};function ce(e,o,t,n){var i,r;let l=0;const u=function(g,s){s===void 0&&(s=1),l=Math.max(l,s),g.filter(f=>f.getIsVisible()).forEach(f=>{var p;(p=f.columns)!=null&&p.length&&u(f.columns,s+1)},0)};u(e);let a=[];const d=(g,s)=>{const f={depth:s,id:[n,`${s}`].filter(Boolean).join("_"),headers:[]},p=[];g.forEach(h=>{const F=[...p].reverse()[0],$=h.column.depth===f.depth;let P,A=!1;if($&&h.column.parent?P=h.column.parent:(P=h.column,A=!0),F&&F?.column===P)F.subHeaders.push(h);else{const I=Ze(t,P,{id:[n,s,P.id,h?.id].filter(Boolean).join("_"),isPlaceholder:A,placeholderId:A?`${p.filter(j=>j.column===P).length}`:void 0,depth:s,index:p.length});I.subHeaders.push(h),p.push(I)}f.headers.push(h),h.headerGroup=f}),a.push(f),s>0&&d(p,s-1)},c=o.map((g,s)=>Ze(t,g,{depth:l,index:s}));d(c,l-1),a.reverse();const S=g=>g.filter(f=>f.column.getIsVisible()).map(f=>{let p=0,h=0,F=[0];f.subHeaders&&f.subHeaders.length?(F=[],S(f.subHeaders).forEach(P=>{let{colSpan:A,rowSpan:I}=P;p+=A,F.push(I)})):p=1;const $=Math.min(...F);return h=h+$,f.colSpan=p,f.rowSpan=h,{colSpan:p,rowSpan:h}});return S((i=(r=a[0])==null?void 0:r.headers)!=null?i:[]),a}const Le=(e,o,t,n,i,r,l)=>{let u={id:o,index:n,original:t,depth:i,parentId:l,_valuesCache:{},_uniqueValuesCache:{},getValue:a=>{if(u._valuesCache.hasOwnProperty(a))return u._valuesCache[a];const d=e.getColumn(a);if(d!=null&&d.accessorFn)return u._valuesCache[a]=d.accessorFn(u.original,n),u._valuesCache[a]},getUniqueValues:a=>{if(u._uniqueValuesCache.hasOwnProperty(a))return u._uniqueValuesCache[a];const d=e.getColumn(a);if(d!=null&&d.accessorFn)return d.columnDef.getUniqueValues?(u._uniqueValuesCache[a]=d.columnDef.getUniqueValues(u.original,n),u._uniqueValuesCache[a]):(u._uniqueValuesCache[a]=[u.getValue(a)],u._uniqueValuesCache[a])},renderValue:a=>{var d;return(d=u.getValue(a))!=null?d:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>Gt(u.subRows,a=>a.subRows),getParentRow:()=>u.parentId?e.getRow(u.parentId,!0):void 0,getParentRows:()=>{let a=[],d=u;for(;;){const c=d.getParentRow();if(!c)break;a.push(c),d=c}return a.reverse()},getAllCells:w(()=>[e.getAllLeafColumns()],a=>a.map(d=>Lt(e,u,d,d.id)),R(e.options,"debugRows")),_getAllCellsByColumnId:w(()=>[u.getAllCells()],a=>a.reduce((d,c)=>(d[c.column.id]=c,d),{}),R(e.options,"debugRows"))};for(let a=0;a<e._features.length;a++){const d=e._features[a];d==null||d.createRow==null||d.createRow(u,e)}return u},Bt={createColumn:(e,o)=>{e._getFacetedRowModel=o.options.getFacetedRowModel&&o.options.getFacetedRowModel(o,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():o.getPreFilteredRowModel(),e._getFacetedUniqueValues=o.options.getFacetedUniqueValues&&o.options.getFacetedUniqueValues(o,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=o.options.getFacetedMinMaxValues&&o.options.getFacetedMinMaxValues(o,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},ot=(e,o,t)=>{var n,i;const r=t==null||(n=t.toString())==null?void 0:n.toLowerCase();return!!(!((i=e.getValue(o))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(r))};ot.autoRemove=e=>B(e);const it=(e,o,t)=>{var n;return!!(!((n=e.getValue(o))==null||(n=n.toString())==null)&&n.includes(t))};it.autoRemove=e=>B(e);const rt=(e,o,t)=>{var n;return((n=e.getValue(o))==null||(n=n.toString())==null?void 0:n.toLowerCase())===t?.toLowerCase()};rt.autoRemove=e=>B(e);const lt=(e,o,t)=>{var n;return(n=e.getValue(o))==null?void 0:n.includes(t)};lt.autoRemove=e=>B(e);const st=(e,o,t)=>!t.some(n=>{var i;return!((i=e.getValue(o))!=null&&i.includes(n))});st.autoRemove=e=>B(e)||!(e!=null&&e.length);const ut=(e,o,t)=>t.some(n=>{var i;return(i=e.getValue(o))==null?void 0:i.includes(n)});ut.autoRemove=e=>B(e)||!(e!=null&&e.length);const at=(e,o,t)=>e.getValue(o)===t;at.autoRemove=e=>B(e);const gt=(e,o,t)=>e.getValue(o)==t;gt.autoRemove=e=>B(e);const qe=(e,o,t)=>{let[n,i]=t;const r=e.getValue(o);return r>=n&&r<=i};qe.resolveFilterValue=e=>{let[o,t]=e,n=typeof o!="number"?parseFloat(o):o,i=typeof t!="number"?parseFloat(t):t,r=o===null||Number.isNaN(n)?-1/0:n,l=t===null||Number.isNaN(i)?1/0:i;if(r>l){const u=r;r=l,l=u}return[r,l]};qe.autoRemove=e=>B(e)||B(e[0])&&B(e[1]);const U={includesString:ot,includesStringSensitive:it,equalsString:rt,arrIncludes:lt,arrIncludesAll:st,arrIncludesSome:ut,equals:at,weakEquals:gt,inNumberRange:qe};function B(e){return e==null||e===""}const jt={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:q("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,o)=>{e.getAutoFilterFn=()=>{const t=o.getCoreRowModel().flatRows[0],n=t?.getValue(e.id);return typeof n=="string"?U.includesString:typeof n=="number"?U.inNumberRange:typeof n=="boolean"||n!==null&&typeof n=="object"?U.equals:Array.isArray(n)?U.arrIncludes:U.weakEquals},e.getFilterFn=()=>{var t,n;return Se(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(t=(n=o.options.filterFns)==null?void 0:n[e.columnDef.filterFn])!=null?t:U[e.columnDef.filterFn]},e.getCanFilter=()=>{var t,n,i;return((t=e.columnDef.enableColumnFilter)!=null?t:!0)&&((n=o.options.enableColumnFilters)!=null?n:!0)&&((i=o.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var t;return(t=o.getState().columnFilters)==null||(t=t.find(n=>n.id===e.id))==null?void 0:t.value},e.getFilterIndex=()=>{var t,n;return(t=(n=o.getState().columnFilters)==null?void 0:n.findIndex(i=>i.id===e.id))!=null?t:-1},e.setFilterValue=t=>{o.setColumnFilters(n=>{const i=e.getFilterFn(),r=n?.find(c=>c.id===e.id),l=K(t,r?r.value:void 0);if(et(i,l,e)){var u;return(u=n?.filter(c=>c.id!==e.id))!=null?u:[]}const a={id:e.id,value:l};if(r){var d;return(d=n?.map(c=>c.id===e.id?a:c))!=null?d:[]}return n!=null&&n.length?[...n,a]:[a]})}},createRow:(e,o)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=o=>{const t=e.getAllLeafColumns(),n=i=>{var r;return(r=K(o,i))==null?void 0:r.filter(l=>{const u=t.find(a=>a.id===l.id);if(u){const a=u.getFilterFn();if(et(a,l.value,u))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(n)},e.resetColumnFilters=o=>{var t,n;e.setColumnFilters(o?[]:(t=(n=e.initialState)==null?void 0:n.columnFilters)!=null?t:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function et(e,o,t){return(e&&e.autoRemove?e.autoRemove(o,t):!1)||typeof o>"u"||typeof o=="string"&&!o}const bt=(e,o,t)=>t.reduce((n,i)=>{const r=i.getValue(e);return n+(typeof r=="number"?r:0)},0),Tt=(e,o,t)=>{let n;return t.forEach(i=>{const r=i.getValue(e);r!=null&&(n>r||n===void 0&&r>=r)&&(n=r)}),n},Nt=(e,o,t)=>{let n;return t.forEach(i=>{const r=i.getValue(e);r!=null&&(n<r||n===void 0&&r>=r)&&(n=r)}),n},Ut=(e,o,t)=>{let n,i;return t.forEach(r=>{const l=r.getValue(e);l!=null&&(n===void 0?l>=l&&(n=i=l):(n>l&&(n=l),i<l&&(i=l)))}),[n,i]},Xt=(e,o)=>{let t=0,n=0;if(o.forEach(i=>{let r=i.getValue(e);r!=null&&(r=+r)>=r&&(++t,n+=r)}),t)return n/t},Kt=(e,o)=>{if(!o.length)return;const t=o.map(r=>r.getValue(e));if(!Ht(t))return;if(t.length===1)return t[0];const n=Math.floor(t.length/2),i=t.sort((r,l)=>r-l);return t.length%2!==0?i[n]:(i[n-1]+i[n])/2},Wt=(e,o)=>Array.from(new Set(o.map(t=>t.getValue(e))).values()),Jt=(e,o)=>new Set(o.map(t=>t.getValue(e))).size,Yt=(e,o)=>o.length,ye={sum:bt,min:Tt,max:Nt,extent:Ut,mean:Xt,median:Kt,unique:Wt,uniqueCount:Jt,count:Yt},Qt={getDefaultColumnDef:()=>({aggregatedCell:e=>{var o,t;return(o=(t=e.getValue())==null||t.toString==null?void 0:t.toString())!=null?o:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:q("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,o)=>{e.toggleGrouping=()=>{o.setGrouping(t=>t!=null&&t.includes(e.id)?t.filter(n=>n!==e.id):[...t??[],e.id])},e.getCanGroup=()=>{var t,n;return((t=e.columnDef.enableGrouping)!=null?t:!0)&&((n=o.options.enableGrouping)!=null?n:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var t;return(t=o.getState().grouping)==null?void 0:t.includes(e.id)},e.getGroupedIndex=()=>{var t;return(t=o.getState().grouping)==null?void 0:t.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const t=o.getCoreRowModel().flatRows[0],n=t?.getValue(e.id);if(typeof n=="number")return ye.sum;if(Object.prototype.toString.call(n)==="[object Date]")return ye.extent},e.getAggregationFn=()=>{var t,n;if(!e)throw new Error;return Se(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(t=(n=o.options.aggregationFns)==null?void 0:n[e.columnDef.aggregationFn])!=null?t:ye[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=o=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(o),e.resetGrouping=o=>{var t,n;e.setGrouping(o?[]:(t=(n=e.initialState)==null?void 0:n.grouping)!=null?t:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,o)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=t=>{if(e._groupingValuesCache.hasOwnProperty(t))return e._groupingValuesCache[t];const n=o.getColumn(t);return n!=null&&n.columnDef.getGroupingValue?(e._groupingValuesCache[t]=n.columnDef.getGroupingValue(e.original),e._groupingValuesCache[t]):e.getValue(t)},e._groupingValuesCache={}},createCell:(e,o,t,n)=>{e.getIsGrouped=()=>o.getIsGrouped()&&o.id===t.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&o.getIsGrouped(),e.getIsAggregated=()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=t.subRows)!=null&&i.length)}}};function Zt(e,o,t){if(!(o!=null&&o.length)||!t)return e;const n=e.filter(r=>!o.includes(r.id));return t==="remove"?n:[...o.map(r=>e.find(l=>l.id===r)).filter(Boolean),...n]}const en={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:q("columnOrder",e)}),createColumn:(e,o)=>{e.getIndex=w(t=>[ae(o,t)],t=>t.findIndex(n=>n.id===e.id),R(o.options,"debugColumns")),e.getIsFirstColumn=t=>{var n;return((n=ae(o,t)[0])==null?void 0:n.id)===e.id},e.getIsLastColumn=t=>{var n;const i=ae(o,t);return((n=i[i.length-1])==null?void 0:n.id)===e.id}},createTable:e=>{e.setColumnOrder=o=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(o),e.resetColumnOrder=o=>{var t;e.setColumnOrder(o?[]:(t=e.initialState.columnOrder)!=null?t:[])},e._getOrderColumnsFn=w(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(o,t,n)=>i=>{let r=[];if(!(o!=null&&o.length))r=i;else{const l=[...o],u=[...i];for(;u.length&&l.length;){const a=l.shift(),d=u.findIndex(c=>c.id===a);d>-1&&r.push(u.splice(d,1)[0])}r=[...r,...u]}return Zt(r,t,n)},R(e.options,"debugTable"))}},xe=()=>({left:[],right:[]}),tn={getInitialState:e=>({columnPinning:xe(),...e}),getDefaultOptions:e=>({onColumnPinningChange:q("columnPinning",e)}),createColumn:(e,o)=>{e.pin=t=>{const n=e.getLeafColumns().map(i=>i.id).filter(Boolean);o.setColumnPinning(i=>{var r,l;if(t==="right"){var u,a;return{left:((u=i?.left)!=null?u:[]).filter(S=>!(n!=null&&n.includes(S))),right:[...((a=i?.right)!=null?a:[]).filter(S=>!(n!=null&&n.includes(S))),...n]}}if(t==="left"){var d,c;return{left:[...((d=i?.left)!=null?d:[]).filter(S=>!(n!=null&&n.includes(S))),...n],right:((c=i?.right)!=null?c:[]).filter(S=>!(n!=null&&n.includes(S)))}}return{left:((r=i?.left)!=null?r:[]).filter(S=>!(n!=null&&n.includes(S))),right:((l=i?.right)!=null?l:[]).filter(S=>!(n!=null&&n.includes(S)))}})},e.getCanPin=()=>e.getLeafColumns().some(n=>{var i,r,l;return((i=n.columnDef.enablePinning)!=null?i:!0)&&((r=(l=o.options.enableColumnPinning)!=null?l:o.options.enablePinning)!=null?r:!0)}),e.getIsPinned=()=>{const t=e.getLeafColumns().map(u=>u.id),{left:n,right:i}=o.getState().columnPinning,r=t.some(u=>n?.includes(u)),l=t.some(u=>i?.includes(u));return r?"left":l?"right":!1},e.getPinnedIndex=()=>{var t,n;const i=e.getIsPinned();return i?(t=(n=o.getState().columnPinning)==null||(n=n[i])==null?void 0:n.indexOf(e.id))!=null?t:-1:0}},createRow:(e,o)=>{e.getCenterVisibleCells=w(()=>[e._getAllVisibleCells(),o.getState().columnPinning.left,o.getState().columnPinning.right],(t,n,i)=>{const r=[...n??[],...i??[]];return t.filter(l=>!r.includes(l.column.id))},R(o.options,"debugRows")),e.getLeftVisibleCells=w(()=>[e._getAllVisibleCells(),o.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(l=>l.column.id===r)).filter(Boolean).map(r=>({...r,position:"left"})),R(o.options,"debugRows")),e.getRightVisibleCells=w(()=>[e._getAllVisibleCells(),o.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(l=>l.column.id===r)).filter(Boolean).map(r=>({...r,position:"right"})),R(o.options,"debugRows"))},createTable:e=>{e.setColumnPinning=o=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(o),e.resetColumnPinning=o=>{var t,n;return e.setColumnPinning(o?xe():(t=(n=e.initialState)==null?void 0:n.columnPinning)!=null?t:xe())},e.getIsSomeColumnsPinned=o=>{var t;const n=e.getState().columnPinning;if(!o){var i,r;return!!((i=n.left)!=null&&i.length||(r=n.right)!=null&&r.length)}return!!((t=n[o])!=null&&t.length)},e.getLeftLeafColumns=w(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(o,t)=>(t??[]).map(n=>o.find(i=>i.id===n)).filter(Boolean),R(e.options,"debugColumns")),e.getRightLeafColumns=w(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(o,t)=>(t??[]).map(n=>o.find(i=>i.id===n)).filter(Boolean),R(e.options,"debugColumns")),e.getCenterLeafColumns=w(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(o,t,n)=>{const i=[...t??[],...n??[]];return o.filter(r=>!i.includes(r.id))},R(e.options,"debugColumns"))}};function nn(e){return e||(typeof document<"u"?document:null)}const fe={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},$e=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),on={getDefaultColumnDef:()=>fe,getInitialState:e=>({columnSizing:{},columnSizingInfo:$e(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:q("columnSizing",e),onColumnSizingInfoChange:q("columnSizingInfo",e)}),createColumn:(e,o)=>{e.getSize=()=>{var t,n,i;const r=o.getState().columnSizing[e.id];return Math.min(Math.max((t=e.columnDef.minSize)!=null?t:fe.minSize,(n=r??e.columnDef.size)!=null?n:fe.size),(i=e.columnDef.maxSize)!=null?i:fe.maxSize)},e.getStart=w(t=>[t,ae(o,t),o.getState().columnSizing],(t,n)=>n.slice(0,e.getIndex(t)).reduce((i,r)=>i+r.getSize(),0),R(o.options,"debugColumns")),e.getAfter=w(t=>[t,ae(o,t),o.getState().columnSizing],(t,n)=>n.slice(e.getIndex(t)+1).reduce((i,r)=>i+r.getSize(),0),R(o.options,"debugColumns")),e.resetSize=()=>{o.setColumnSizing(t=>{let{[e.id]:n,...i}=t;return i})},e.getCanResize=()=>{var t,n;return((t=e.columnDef.enableResizing)!=null?t:!0)&&((n=o.options.enableColumnResizing)!=null?n:!0)},e.getIsResizing=()=>o.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,o)=>{e.getSize=()=>{let t=0;const n=i=>{if(i.subHeaders.length)i.subHeaders.forEach(n);else{var r;t+=(r=i.column.getSize())!=null?r:0}};return n(e),t},e.getStart=()=>{if(e.index>0){const t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},e.getResizeHandler=t=>{const n=o.getColumn(e.column.id),i=n?.getCanResize();return r=>{if(!n||!i||(r.persist==null||r.persist(),Pe(r)&&r.touches&&r.touches.length>1))return;const l=e.getSize(),u=e?e.getLeafHeaders().map(F=>[F.column.id,F.column.getSize()]):[[n.id,n.getSize()]],a=Pe(r)?Math.round(r.touches[0].clientX):r.clientX,d={},c=(F,$)=>{typeof $=="number"&&(o.setColumnSizingInfo(P=>{var A,I;const j=o.options.columnResizeDirection==="rtl"?-1:1,Y=($-((A=P?.startOffset)!=null?A:0))*j,Q=Math.max(Y/((I=P?.startSize)!=null?I:0),-.999999);return P.columnSizingStart.forEach(te=>{let[ne,Z]=te;d[ne]=Math.round(Math.max(Z+Z*Q,0)*100)/100}),{...P,deltaOffset:Y,deltaPercentage:Q}}),(o.options.columnResizeMode==="onChange"||F==="end")&&o.setColumnSizing(P=>({...P,...d})))},S=F=>c("move",F),g=F=>{c("end",F),o.setColumnSizingInfo($=>({...$,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},s=nn(t),f={moveHandler:F=>S(F.clientX),upHandler:F=>{s?.removeEventListener("mousemove",f.moveHandler),s?.removeEventListener("mouseup",f.upHandler),g(F.clientX)}},p={moveHandler:F=>(F.cancelable&&(F.preventDefault(),F.stopPropagation()),S(F.touches[0].clientX),!1),upHandler:F=>{var $;s?.removeEventListener("touchmove",p.moveHandler),s?.removeEventListener("touchend",p.upHandler),F.cancelable&&(F.preventDefault(),F.stopPropagation()),g(($=F.touches[0])==null?void 0:$.clientX)}},h=rn()?{passive:!1}:!1;Pe(r)?(s?.addEventListener("touchmove",p.moveHandler,h),s?.addEventListener("touchend",p.upHandler,h)):(s?.addEventListener("mousemove",f.moveHandler,h),s?.addEventListener("mouseup",f.upHandler,h)),o.setColumnSizingInfo(F=>({...F,startOffset:a,startSize:l,deltaOffset:0,deltaPercentage:0,columnSizingStart:u,isResizingColumn:n.id}))}}},createTable:e=>{e.setColumnSizing=o=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(o),e.setColumnSizingInfo=o=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(o),e.resetColumnSizing=o=>{var t;e.setColumnSizing(o?{}:(t=e.initialState.columnSizing)!=null?t:{})},e.resetHeaderSizeInfo=o=>{var t;e.setColumnSizingInfo(o?$e():(t=e.initialState.columnSizingInfo)!=null?t:$e())},e.getTotalSize=()=>{var o,t;return(o=(t=e.getHeaderGroups()[0])==null?void 0:t.headers.reduce((n,i)=>n+i.getSize(),0))!=null?o:0},e.getLeftTotalSize=()=>{var o,t;return(o=(t=e.getLeftHeaderGroups()[0])==null?void 0:t.headers.reduce((n,i)=>n+i.getSize(),0))!=null?o:0},e.getCenterTotalSize=()=>{var o,t;return(o=(t=e.getCenterHeaderGroups()[0])==null?void 0:t.headers.reduce((n,i)=>n+i.getSize(),0))!=null?o:0},e.getRightTotalSize=()=>{var o,t;return(o=(t=e.getRightHeaderGroups()[0])==null?void 0:t.headers.reduce((n,i)=>n+i.getSize(),0))!=null?o:0}}};let pe=null;function rn(){if(typeof pe=="boolean")return pe;let e=!1;try{const o={get passive(){return e=!0,!1}},t=()=>{};window.addEventListener("test",t,o),window.removeEventListener("test",t)}catch{e=!1}return pe=e,pe}function Pe(e){return e.type==="touchstart"}const ln={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:q("columnVisibility",e)}),createColumn:(e,o)=>{e.toggleVisibility=t=>{e.getCanHide()&&o.setColumnVisibility(n=>({...n,[e.id]:t??!e.getIsVisible()}))},e.getIsVisible=()=>{var t,n;const i=e.columns;return(t=i.length?i.some(r=>r.getIsVisible()):(n=o.getState().columnVisibility)==null?void 0:n[e.id])!=null?t:!0},e.getCanHide=()=>{var t,n;return((t=e.columnDef.enableHiding)!=null?t:!0)&&((n=o.options.enableHiding)!=null?n:!0)},e.getToggleVisibilityHandler=()=>t=>{e.toggleVisibility==null||e.toggleVisibility(t.target.checked)}},createRow:(e,o)=>{e._getAllVisibleCells=w(()=>[e.getAllCells(),o.getState().columnVisibility],t=>t.filter(n=>n.column.getIsVisible()),R(o.options,"debugRows")),e.getVisibleCells=w(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(t,n,i)=>[...t,...n,...i],R(o.options,"debugRows"))},createTable:e=>{const o=(t,n)=>w(()=>[n(),n().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(r=>r.getIsVisible==null?void 0:r.getIsVisible()),R(e.options,"debugColumns"));e.getVisibleFlatColumns=o("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=o("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=o("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=o("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=o("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=t=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(t),e.resetColumnVisibility=t=>{var n;e.setColumnVisibility(t?{}:(n=e.initialState.columnVisibility)!=null?n:{})},e.toggleAllColumnsVisible=t=>{var n;t=(n=t)!=null?n:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,r)=>({...i,[r.id]:t||!(r.getCanHide!=null&&r.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(t=>!(t.getIsVisible!=null&&t.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(t=>t.getIsVisible==null?void 0:t.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>t=>{var n;e.toggleAllColumnsVisible((n=t.target)==null?void 0:n.checked)}}};function ae(e,o){return o?o==="center"?e.getCenterVisibleLeafColumns():o==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const sn={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},un={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:q("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:o=>{var t;const n=(t=e.getCoreRowModel().flatRows[0])==null||(t=t._getAllCellsByColumnId()[o.id])==null?void 0:t.getValue();return typeof n=="string"||typeof n=="number"}}),createColumn:(e,o)=>{e.getCanGlobalFilter=()=>{var t,n,i,r;return((t=e.columnDef.enableGlobalFilter)!=null?t:!0)&&((n=o.options.enableGlobalFilter)!=null?n:!0)&&((i=o.options.enableFilters)!=null?i:!0)&&((r=o.options.getColumnCanGlobalFilter==null?void 0:o.options.getColumnCanGlobalFilter(e))!=null?r:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>U.includesString,e.getGlobalFilterFn=()=>{var o,t;const{globalFilterFn:n}=e.options;return Se(n)?n:n==="auto"?e.getGlobalAutoFilterFn():(o=(t=e.options.filterFns)==null?void 0:t[n])!=null?o:U[n]},e.setGlobalFilter=o=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(o)},e.resetGlobalFilter=o=>{e.setGlobalFilter(o?void 0:e.initialState.globalFilter)}}},an={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:q("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let o=!1,t=!1;e._autoResetExpanded=()=>{var n,i;if(!o){e._queue(()=>{o=!0});return}if((n=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?n:!e.options.manualExpanding){if(t)return;t=!0,e._queue(()=>{e.resetExpanded(),t=!1})}},e.setExpanded=n=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(n),e.toggleAllRowsExpanded=n=>{n??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=n=>{var i,r;e.setExpanded(n?{}:(i=(r=e.initialState)==null?void 0:r.expanded)!=null?i:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(n=>n.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>n=>{n.persist==null||n.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const n=e.getState().expanded;return n===!0||Object.values(n).some(Boolean)},e.getIsAllRowsExpanded=()=>{const n=e.getState().expanded;return typeof n=="boolean"?n===!0:!(!Object.keys(n).length||e.getRowModel().flatRows.some(i=>!i.getIsExpanded()))},e.getExpandedDepth=()=>{let n=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(r=>{const l=r.split(".");n=Math.max(n,l.length)}),n},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,o)=>{e.toggleExpanded=t=>{o.setExpanded(n=>{var i;const r=n===!0?!0:!!(n!=null&&n[e.id]);let l={};if(n===!0?Object.keys(o.getRowModel().rowsById).forEach(u=>{l[u]=!0}):l=n,t=(i=t)!=null?i:!r,!r&&t)return{...l,[e.id]:!0};if(r&&!t){const{[e.id]:u,...a}=l;return a}return n})},e.getIsExpanded=()=>{var t;const n=o.getState().expanded;return!!((t=o.options.getIsRowExpanded==null?void 0:o.options.getIsRowExpanded(e))!=null?t:n===!0||n?.[e.id])},e.getCanExpand=()=>{var t,n,i;return(t=o.options.getRowCanExpand==null?void 0:o.options.getRowCanExpand(e))!=null?t:((n=o.options.enableExpanding)!=null?n:!0)&&!!((i=e.subRows)!=null&&i.length)},e.getIsAllParentsExpanded=()=>{let t=!0,n=e;for(;t&&n.parentId;)n=o.getRow(n.parentId,!0),t=n.getIsExpanded();return t},e.getToggleExpandedHandler=()=>{const t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}}},Ae=0,Oe=10,Ve=()=>({pageIndex:Ae,pageSize:Oe}),gn={getInitialState:e=>({...e,pagination:{...Ve(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:q("pagination",e)}),createTable:e=>{let o=!1,t=!1;e._autoResetPageIndex=()=>{var n,i;if(!o){e._queue(()=>{o=!0});return}if((n=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?n:!e.options.manualPagination){if(t)return;t=!0,e._queue(()=>{e.resetPageIndex(),t=!1})}},e.setPagination=n=>{const i=r=>K(n,r);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},e.resetPagination=n=>{var i;e.setPagination(n?Ve():(i=e.initialState.pagination)!=null?i:Ve())},e.setPageIndex=n=>{e.setPagination(i=>{let r=K(n,i.pageIndex);const l=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return r=Math.max(0,Math.min(r,l)),{...i,pageIndex:r}})},e.resetPageIndex=n=>{var i,r;e.setPageIndex(n?Ae:(i=(r=e.initialState)==null||(r=r.pagination)==null?void 0:r.pageIndex)!=null?i:Ae)},e.resetPageSize=n=>{var i,r;e.setPageSize(n?Oe:(i=(r=e.initialState)==null||(r=r.pagination)==null?void 0:r.pageSize)!=null?i:Oe)},e.setPageSize=n=>{e.setPagination(i=>{const r=Math.max(1,K(n,i.pageSize)),l=i.pageSize*i.pageIndex,u=Math.floor(l/r);return{...i,pageIndex:u,pageSize:r}})},e.setPageCount=n=>e.setPagination(i=>{var r;let l=K(n,(r=e.options.pageCount)!=null?r:-1);return typeof l=="number"&&(l=Math.max(-1,l)),{...i,pageCount:l}}),e.getPageOptions=w(()=>[e.getPageCount()],n=>{let i=[];return n&&n>0&&(i=[...new Array(n)].fill(null).map((r,l)=>l)),i},R(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:n}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:n<i-1},e.previousPage=()=>e.setPageIndex(n=>n-1),e.nextPage=()=>e.setPageIndex(n=>n+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var n;return(n=e.options.pageCount)!=null?n:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var n;return(n=e.options.rowCount)!=null?n:e.getPrePaginationRowModel().rows.length}}},Me=()=>({top:[],bottom:[]}),dn={getInitialState:e=>({rowPinning:Me(),...e}),getDefaultOptions:e=>({onRowPinningChange:q("rowPinning",e)}),createRow:(e,o)=>{e.pin=(t,n,i)=>{const r=n?e.getLeafRows().map(a=>{let{id:d}=a;return d}):[],l=i?e.getParentRows().map(a=>{let{id:d}=a;return d}):[],u=new Set([...l,e.id,...r]);o.setRowPinning(a=>{var d,c;if(t==="bottom"){var S,g;return{top:((S=a?.top)!=null?S:[]).filter(p=>!(u!=null&&u.has(p))),bottom:[...((g=a?.bottom)!=null?g:[]).filter(p=>!(u!=null&&u.has(p))),...Array.from(u)]}}if(t==="top"){var s,f;return{top:[...((s=a?.top)!=null?s:[]).filter(p=>!(u!=null&&u.has(p))),...Array.from(u)],bottom:((f=a?.bottom)!=null?f:[]).filter(p=>!(u!=null&&u.has(p)))}}return{top:((d=a?.top)!=null?d:[]).filter(p=>!(u!=null&&u.has(p))),bottom:((c=a?.bottom)!=null?c:[]).filter(p=>!(u!=null&&u.has(p)))}})},e.getCanPin=()=>{var t;const{enableRowPinning:n,enablePinning:i}=o.options;return typeof n=="function"?n(e):(t=n??i)!=null?t:!0},e.getIsPinned=()=>{const t=[e.id],{top:n,bottom:i}=o.getState().rowPinning,r=t.some(u=>n?.includes(u)),l=t.some(u=>i?.includes(u));return r?"top":l?"bottom":!1},e.getPinnedIndex=()=>{var t,n;const i=e.getIsPinned();if(!i)return-1;const r=(t=i==="top"?o.getTopRows():o.getBottomRows())==null?void 0:t.map(l=>{let{id:u}=l;return u});return(n=r?.indexOf(e.id))!=null?n:-1}},createTable:e=>{e.setRowPinning=o=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(o),e.resetRowPinning=o=>{var t,n;return e.setRowPinning(o?Me():(t=(n=e.initialState)==null?void 0:n.rowPinning)!=null?t:Me())},e.getIsSomeRowsPinned=o=>{var t;const n=e.getState().rowPinning;if(!o){var i,r;return!!((i=n.top)!=null&&i.length||(r=n.bottom)!=null&&r.length)}return!!((t=n[o])!=null&&t.length)},e._getPinnedRows=(o,t,n)=>{var i;return((i=e.options.keepPinnedRows)==null||i?(t??[]).map(l=>{const u=e.getRow(l,!0);return u.getIsAllParentsExpanded()?u:null}):(t??[]).map(l=>o.find(u=>u.id===l))).filter(Boolean).map(l=>({...l,position:n}))},e.getTopRows=w(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(o,t)=>e._getPinnedRows(o,t,"top"),R(e.options,"debugRows")),e.getBottomRows=w(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(o,t)=>e._getPinnedRows(o,t,"bottom"),R(e.options,"debugRows")),e.getCenterRows=w(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(o,t,n)=>{const i=new Set([...t??[],...n??[]]);return o.filter(r=>!i.has(r.id))},R(e.options,"debugRows"))}},cn={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:q("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=o=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(o),e.resetRowSelection=o=>{var t;return e.setRowSelection(o?{}:(t=e.initialState.rowSelection)!=null?t:{})},e.toggleAllRowsSelected=o=>{e.setRowSelection(t=>{o=typeof o<"u"?o:!e.getIsAllRowsSelected();const n={...t},i=e.getPreGroupedRowModel().flatRows;return o?i.forEach(r=>{r.getCanSelect()&&(n[r.id]=!0)}):i.forEach(r=>{delete n[r.id]}),n})},e.toggleAllPageRowsSelected=o=>e.setRowSelection(t=>{const n=typeof o<"u"?o:!e.getIsAllPageRowsSelected(),i={...t};return e.getRowModel().rows.forEach(r=>{Ee(i,r.id,n,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=w(()=>[e.getState().rowSelection,e.getCoreRowModel()],(o,t)=>Object.keys(o).length?Ie(e,t):{rows:[],flatRows:[],rowsById:{}},R(e.options,"debugTable")),e.getFilteredSelectedRowModel=w(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(o,t)=>Object.keys(o).length?Ie(e,t):{rows:[],flatRows:[],rowsById:{}},R(e.options,"debugTable")),e.getGroupedSelectedRowModel=w(()=>[e.getState().rowSelection,e.getSortedRowModel()],(o,t)=>Object.keys(o).length?Ie(e,t):{rows:[],flatRows:[],rowsById:{}},R(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const o=e.getFilteredRowModel().flatRows,{rowSelection:t}=e.getState();let n=!!(o.length&&Object.keys(t).length);return n&&o.some(i=>i.getCanSelect()&&!t[i.id])&&(n=!1),n},e.getIsAllPageRowsSelected=()=>{const o=e.getPaginationRowModel().flatRows.filter(i=>i.getCanSelect()),{rowSelection:t}=e.getState();let n=!!o.length;return n&&o.some(i=>!t[i.id])&&(n=!1),n},e.getIsSomeRowsSelected=()=>{var o;const t=Object.keys((o=e.getState().rowSelection)!=null?o:{}).length;return t>0&&t<e.getFilteredRowModel().flatRows.length},e.getIsSomePageRowsSelected=()=>{const o=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:o.filter(t=>t.getCanSelect()).some(t=>t.getIsSelected()||t.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>o=>{e.toggleAllRowsSelected(o.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>o=>{e.toggleAllPageRowsSelected(o.target.checked)}},createRow:(e,o)=>{e.toggleSelected=(t,n)=>{const i=e.getIsSelected();o.setRowSelection(r=>{var l;if(t=typeof t<"u"?t:!i,e.getCanSelect()&&i===t)return r;const u={...r};return Ee(u,e.id,t,(l=n?.selectChildren)!=null?l:!0,o),u})},e.getIsSelected=()=>{const{rowSelection:t}=o.getState();return ke(e,t)},e.getIsSomeSelected=()=>{const{rowSelection:t}=o.getState();return He(e,t)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:t}=o.getState();return He(e,t)==="all"},e.getCanSelect=()=>{var t;return typeof o.options.enableRowSelection=="function"?o.options.enableRowSelection(e):(t=o.options.enableRowSelection)!=null?t:!0},e.getCanSelectSubRows=()=>{var t;return typeof o.options.enableSubRowSelection=="function"?o.options.enableSubRowSelection(e):(t=o.options.enableSubRowSelection)!=null?t:!0},e.getCanMultiSelect=()=>{var t;return typeof o.options.enableMultiRowSelection=="function"?o.options.enableMultiRowSelection(e):(t=o.options.enableMultiRowSelection)!=null?t:!0},e.getToggleSelectedHandler=()=>{const t=e.getCanSelect();return n=>{var i;t&&e.toggleSelected((i=n.target)==null?void 0:i.checked)}}}},Ee=(e,o,t,n,i)=>{var r;const l=i.getRow(o,!0);t?(l.getCanMultiSelect()||Object.keys(e).forEach(u=>delete e[u]),l.getCanSelect()&&(e[o]=!0)):delete e[o],n&&(r=l.subRows)!=null&&r.length&&l.getCanSelectSubRows()&&l.subRows.forEach(u=>Ee(e,u.id,t,n,i))};function Ie(e,o){const t=e.getState().rowSelection,n=[],i={},r=function(l,u){return l.map(a=>{var d;const c=ke(a,t);if(c&&(n.push(a),i[a.id]=a),(d=a.subRows)!=null&&d.length&&(a={...a,subRows:r(a.subRows)}),c)return a}).filter(Boolean)};return{rows:r(o.rows),flatRows:n,rowsById:i}}function ke(e,o){var t;return(t=o[e.id])!=null?t:!1}function He(e,o,t){var n;if(!((n=e.subRows)!=null&&n.length))return!1;let i=!0,r=!1;return e.subRows.forEach(l=>{if(!(r&&!i)&&(l.getCanSelect()&&(ke(l,o)?r=!0:i=!1),l.subRows&&l.subRows.length)){const u=He(l,o);u==="all"?r=!0:(u==="some"&&(r=!0),i=!1)}}),i?"all":r?"some":!1}const Ge=/([0-9]+)/gm,fn=(e,o,t)=>dt(W(e.getValue(t)).toLowerCase(),W(o.getValue(t)).toLowerCase()),pn=(e,o,t)=>dt(W(e.getValue(t)),W(o.getValue(t))),mn=(e,o,t)=>Be(W(e.getValue(t)).toLowerCase(),W(o.getValue(t)).toLowerCase()),Sn=(e,o,t)=>Be(W(e.getValue(t)),W(o.getValue(t))),vn=(e,o,t)=>{const n=e.getValue(t),i=o.getValue(t);return n>i?1:n<i?-1:0},Cn=(e,o,t)=>Be(e.getValue(t),o.getValue(t));function Be(e,o){return e===o?0:e>o?1:-1}function W(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function dt(e,o){const t=e.split(Ge).filter(Boolean),n=o.split(Ge).filter(Boolean);for(;t.length&&n.length;){const i=t.shift(),r=n.shift(),l=parseInt(i,10),u=parseInt(r,10),a=[l,u].sort();if(isNaN(a[0])){if(i>r)return 1;if(r>i)return-1;continue}if(isNaN(a[1]))return isNaN(l)?-1:1;if(l>u)return 1;if(u>l)return-1}return t.length-n.length}const se={alphanumeric:fn,alphanumericCaseSensitive:pn,text:mn,textCaseSensitive:Sn,datetime:vn,basic:Cn},wn={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:q("sorting",e),isMultiSortEvent:o=>o.shiftKey}),createColumn:(e,o)=>{e.getAutoSortingFn=()=>{const t=o.getFilteredRowModel().flatRows.slice(10);let n=!1;for(const i of t){const r=i?.getValue(e.id);if(Object.prototype.toString.call(r)==="[object Date]")return se.datetime;if(typeof r=="string"&&(n=!0,r.split(Ge).length>1))return se.alphanumeric}return n?se.text:se.basic},e.getAutoSortDir=()=>{const t=o.getFilteredRowModel().flatRows[0];return typeof t?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var t,n;if(!e)throw new Error;return Se(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(t=(n=o.options.sortingFns)==null?void 0:n[e.columnDef.sortingFn])!=null?t:se[e.columnDef.sortingFn]},e.toggleSorting=(t,n)=>{const i=e.getNextSortingOrder(),r=typeof t<"u"&&t!==null;o.setSorting(l=>{const u=l?.find(s=>s.id===e.id),a=l?.findIndex(s=>s.id===e.id);let d=[],c,S=r?t:i==="desc";if(l!=null&&l.length&&e.getCanMultiSort()&&n?u?c="toggle":c="add":l!=null&&l.length&&a!==l.length-1?c="replace":u?c="toggle":c="replace",c==="toggle"&&(r||i||(c="remove")),c==="add"){var g;d=[...l,{id:e.id,desc:S}],d.splice(0,d.length-((g=o.options.maxMultiSortColCount)!=null?g:Number.MAX_SAFE_INTEGER))}else c==="toggle"?d=l.map(s=>s.id===e.id?{...s,desc:S}:s):c==="remove"?d=l.filter(s=>s.id!==e.id):d=[{id:e.id,desc:S}];return d})},e.getFirstSortDir=()=>{var t,n;return((t=(n=e.columnDef.sortDescFirst)!=null?n:o.options.sortDescFirst)!=null?t:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=t=>{var n,i;const r=e.getFirstSortDir(),l=e.getIsSorted();return l?l!==r&&((n=o.options.enableSortingRemoval)==null||n)&&(!(t&&(i=o.options.enableMultiRemove)!=null)||i)?!1:l==="desc"?"asc":"desc":r},e.getCanSort=()=>{var t,n;return((t=e.columnDef.enableSorting)!=null?t:!0)&&((n=o.options.enableSorting)!=null?n:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var t,n;return(t=(n=e.columnDef.enableMultiSort)!=null?n:o.options.enableMultiSort)!=null?t:!!e.accessorFn},e.getIsSorted=()=>{var t;const n=(t=o.getState().sorting)==null?void 0:t.find(i=>i.id===e.id);return n?n.desc?"desc":"asc":!1},e.getSortIndex=()=>{var t,n;return(t=(n=o.getState().sorting)==null?void 0:n.findIndex(i=>i.id===e.id))!=null?t:-1},e.clearSorting=()=>{o.setSorting(t=>t!=null&&t.length?t.filter(n=>n.id!==e.id):[])},e.getToggleSortingHandler=()=>{const t=e.getCanSort();return n=>{t&&(n.persist==null||n.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?o.options.isMultiSortEvent==null?void 0:o.options.isMultiSortEvent(n):!1))}}},createTable:e=>{e.setSorting=o=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(o),e.resetSorting=o=>{var t,n;e.setSorting(o?[]:(t=(n=e.initialState)==null?void 0:n.sorting)!=null?t:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},Rn=[kt,ln,en,tn,Bt,jt,sn,un,wn,Qt,an,gn,dn,cn,on];function hn(e){var o,t;const n=[...Rn,...(o=e._features)!=null?o:[]];let i={_features:n};const r=i._features.reduce((g,s)=>Object.assign(g,s.getDefaultOptions==null?void 0:s.getDefaultOptions(i)),{}),l=g=>i.options.mergeOptions?i.options.mergeOptions(r,g):{...r,...g};let a={...{},...(t=e.initialState)!=null?t:{}};i._features.forEach(g=>{var s;a=(s=g.getInitialState==null?void 0:g.getInitialState(a))!=null?s:a});const d=[];let c=!1;const S={_features:n,options:{...r,...e},initialState:a,_queue:g=>{d.push(g),c||(c=!0,Promise.resolve().then(()=>{for(;d.length;)d.shift()();c=!1}).catch(s=>setTimeout(()=>{throw s})))},reset:()=>{i.setState(i.initialState)},setOptions:g=>{const s=K(g,i.options);i.options=l(s)},getState:()=>i.options.state,setState:g=>{i.options.onStateChange==null||i.options.onStateChange(g)},_getRowId:(g,s,f)=>{var p;return(p=i.options.getRowId==null?void 0:i.options.getRowId(g,s,f))!=null?p:`${f?[f.id,s].join("."):s}`},getCoreRowModel:()=>(i._getCoreRowModel||(i._getCoreRowModel=i.options.getCoreRowModel(i)),i._getCoreRowModel()),getRowModel:()=>i.getPaginationRowModel(),getRow:(g,s)=>{let f=(s?i.getPrePaginationRowModel():i.getRowModel()).rowsById[g];if(!f&&(f=i.getCoreRowModel().rowsById[g],!f))throw new Error;return f},_getDefaultColumnDef:w(()=>[i.options.defaultColumn],g=>{var s;return g=(s=g)!=null?s:{},{header:f=>{const p=f.header.column.columnDef;return p.accessorKey?p.accessorKey:p.accessorFn?p.id:null},cell:f=>{var p,h;return(p=(h=f.renderValue())==null||h.toString==null?void 0:h.toString())!=null?p:null},...i._features.reduce((f,p)=>Object.assign(f,p.getDefaultColumnDef==null?void 0:p.getDefaultColumnDef()),{}),...g}},R(e,"debugColumns")),_getColumnDefs:()=>i.options.columns,getAllColumns:w(()=>[i._getColumnDefs()],g=>{const s=function(f,p,h){return h===void 0&&(h=0),f.map(F=>{const $=qt(i,F,h,p),P=F;return $.columns=P.columns?s(P.columns,$,h+1):[],$})};return s(g)},R(e,"debugColumns")),getAllFlatColumns:w(()=>[i.getAllColumns()],g=>g.flatMap(s=>s.getFlatColumns()),R(e,"debugColumns")),_getAllFlatColumnsById:w(()=>[i.getAllFlatColumns()],g=>g.reduce((s,f)=>(s[f.id]=f,s),{}),R(e,"debugColumns")),getAllLeafColumns:w(()=>[i.getAllColumns(),i._getOrderColumnsFn()],(g,s)=>{let f=g.flatMap(p=>p.getLeafColumns());return s(f)},R(e,"debugColumns")),getColumn:g=>i._getAllFlatColumnsById()[g]};Object.assign(i,S);for(let g=0;g<i._features.length;g++){const s=i._features[g];s==null||s.createTable==null||s.createTable(i)}return i}function _n(){return e=>w(()=>[e.options.data],o=>{const t={rows:[],flatRows:[],rowsById:{}},n=function(i,r,l){r===void 0&&(r=0);const u=[];for(let d=0;d<i.length;d++){const c=Le(e,e._getRowId(i[d],d,l),i[d],d,r,void 0,l?.id);if(t.flatRows.push(c),t.rowsById[c.id]=c,u.push(c),e.options.getSubRows){var a;c.originalSubRows=e.options.getSubRows(i[d],d),(a=c.originalSubRows)!=null&&a.length&&(c.subRows=n(c.originalSubRows,r+1,c))}}return u};return t.rows=n(o),t},R(e.options,"debugTable","getRowModel",()=>e._autoResetPageIndex()))}function Fn(){return e=>w(()=>[e.getState().expanded,e.getPreExpandedRowModel(),e.options.paginateExpandedRows],(o,t,n)=>!t.rows.length||o!==!0&&!Object.keys(o??{}).length||!n?t:yn(t),R(e.options,"debugTable"))}function yn(e){const o=[],t=n=>{var i;o.push(n),(i=n.subRows)!=null&&i.length&&n.getIsExpanded()&&n.subRows.forEach(t)};return e.rows.forEach(t),{rows:o,flatRows:e.flatRows,rowsById:e.rowsById}}function xn(e,o,t){return t.options.filterFromLeafRows?$n(e,o,t):Pn(e,o,t)}function $n(e,o,t){var n;const i=[],r={},l=(n=t.options.maxLeafRowFilterDepth)!=null?n:100,u=function(a,d){d===void 0&&(d=0);const c=[];for(let g=0;g<a.length;g++){var S;let s=a[g];const f=Le(t,s.id,s.original,s.index,s.depth,void 0,s.parentId);if(f.columnFilters=s.columnFilters,(S=s.subRows)!=null&&S.length&&d<l){if(f.subRows=u(s.subRows,d+1),s=f,o(s)&&!f.subRows.length){c.push(s),r[s.id]=s,i.push(s);continue}if(o(s)||f.subRows.length){c.push(s),r[s.id]=s,i.push(s);continue}}else s=f,o(s)&&(c.push(s),r[s.id]=s,i.push(s))}return c};return{rows:u(e),flatRows:i,rowsById:r}}function Pn(e,o,t){var n;const i=[],r={},l=(n=t.options.maxLeafRowFilterDepth)!=null?n:100,u=function(a,d){d===void 0&&(d=0);const c=[];for(let g=0;g<a.length;g++){let s=a[g];if(o(s)){var S;if((S=s.subRows)!=null&&S.length&&d<l){const p=Le(t,s.id,s.original,s.index,s.depth,void 0,s.parentId);p.subRows=u(s.subRows,d+1),s=p}c.push(s),i.push(s),r[s.id]=s}}return c};return{rows:u(e),flatRows:i,rowsById:r}}function Vn(){return e=>w(()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter],(o,t,n)=>{if(!o.rows.length||!(t!=null&&t.length)&&!n){for(let g=0;g<o.flatRows.length;g++)o.flatRows[g].columnFilters={},o.flatRows[g].columnFiltersMeta={};return o}const i=[],r=[];(t??[]).forEach(g=>{var s;const f=e.getColumn(g.id);if(!f)return;const p=f.getFilterFn();p&&i.push({id:g.id,filterFn:p,resolvedValue:(s=p.resolveFilterValue==null?void 0:p.resolveFilterValue(g.value))!=null?s:g.value})});const l=(t??[]).map(g=>g.id),u=e.getGlobalFilterFn(),a=e.getAllLeafColumns().filter(g=>g.getCanGlobalFilter());n&&u&&a.length&&(l.push("__global__"),a.forEach(g=>{var s;r.push({id:g.id,filterFn:u,resolvedValue:(s=u.resolveFilterValue==null?void 0:u.resolveFilterValue(n))!=null?s:n})}));let d,c;for(let g=0;g<o.flatRows.length;g++){const s=o.flatRows[g];if(s.columnFilters={},i.length)for(let f=0;f<i.length;f++){d=i[f];const p=d.id;s.columnFilters[p]=d.filterFn(s,p,d.resolvedValue,h=>{s.columnFiltersMeta[p]=h})}if(r.length){for(let f=0;f<r.length;f++){c=r[f];const p=c.id;if(c.filterFn(s,p,c.resolvedValue,h=>{s.columnFiltersMeta[p]=h})){s.columnFilters.__global__=!0;break}}s.columnFilters.__global__!==!0&&(s.columnFilters.__global__=!1)}}const S=g=>{for(let s=0;s<l.length;s++)if(g.columnFilters[l[s]]===!1)return!1;return!0};return xn(o.rows,S,e)},R(e.options,"debugTable","getFilteredRowModel",()=>e._autoResetPageIndex()))}function Mn(){return e=>w(()=>[e.getState().sorting,e.getPreSortedRowModel()],(o,t)=>{if(!t.rows.length||!(o!=null&&o.length))return t;const n=e.getState().sorting,i=[],r=n.filter(a=>{var d;return(d=e.getColumn(a.id))==null?void 0:d.getCanSort()}),l={};r.forEach(a=>{const d=e.getColumn(a.id);d&&(l[a.id]={sortUndefined:d.columnDef.sortUndefined,invertSorting:d.columnDef.invertSorting,sortingFn:d.getSortingFn()})});const u=a=>{const d=a.map(c=>({...c}));return d.sort((c,S)=>{for(let s=0;s<r.length;s+=1){var g;const f=r[s],p=l[f.id],h=p.sortUndefined,F=(g=f?.desc)!=null?g:!1;let $=0;if(h){const P=c.getValue(f.id),A=S.getValue(f.id),I=P===void 0,j=A===void 0;if(I||j){if(h==="first")return I?-1:1;if(h==="last")return I?1:-1;$=I&&j?0:I?h:-h}}if($===0&&($=p.sortingFn(c,S,f.id)),$!==0)return F&&($*=-1),p.invertSorting&&($*=-1),$}return c.index-S.index}),d.forEach(c=>{var S;i.push(c),(S=c.subRows)!=null&&S.length&&(c.subRows=u(c.subRows))}),d};return{rows:u(t.rows),flatRows:i,rowsById:t.rowsById}},R(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}function me(){return!0}const In=Symbol("merge-proxy"),Dn={get(e,o,t){return o===In?t:e.get(o)},has(e,o){return e.has(o)},set:me,deleteProperty:me,getOwnPropertyDescriptor(e,o){return{configurable:!0,enumerable:!0,get(){return e.get(o)},set:me,deleteProperty:me}},ownKeys(e){return e.keys()}};function De(e){return"value"in e?e.value:e}function ue(){for(var e=arguments.length,o=new Array(e),t=0;t<e;t++)o[t]=arguments[t];return new Proxy({get(n){for(let i=o.length-1;i>=0;i--){const r=De(o[i])[n];if(r!==void 0)return r}},has(n){for(let i=o.length-1;i>=0;i--)if(n in De(o[i]))return!0;return!1},keys(){const n=[];for(let i=0;i<o.length;i++)n.push(...Object.keys(De(o[i])));return[...Array.from(new Set(n))]}},Dn)}const ze=Rt({props:["render","props"],setup:e=>()=>typeof e.render=="function"||typeof e.render=="object"?ht(e.render,e.props):e.render});function tt(e){return ue(e,{data:C(e.data)})}function zn(e){const o=St(e.data),t=ue({state:{},onStateChange:()=>{},renderFallbackValue:null,mergeOptions(r,l){return o?{...r,...l}:ue(r,l)}},o?tt(e):e),n=hn(t);if(o){const r=vt(e.data);nt(r,()=>{n.setState(l=>({...l,data:r.value}))},{immediate:!0})}const i=Ct(n.initialState);return wt(()=>{n.setOptions(r=>{var l;const u=new Proxy({},{get:(a,d)=>i.value[d]});return ue(r,o?tt(e):e,{state:ue(u,(l=e.state)!=null?l:{}),onStateChange:a=>{a instanceof Function?i.value=a(i.value):i.value=a,e.onStateChange==null||e.onStateChange(a)}})})}),n}const An={slots:{root:"relative overflow-auto outline-primary/25 focus-visible:outline-3",base:"min-w-full overflow-clip",caption:"sr-only",thead:"relative",tbody:"isolate [&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:outline-primary/25 [&>tr]:data-[selectable=true]:focus-visible:outline-3 divide-y divide-default",tfoot:"relative",tr:"data-[selected=true]:bg-elevated/50",th:"px-4 py-3.5 text-sm text-highlighted text-start font-semibold [&:has([role=checkbox])]:pe-0",td:"p-4 text-sm text-muted whitespace-nowrap [&:has([role=checkbox])]:pe-0",separator:"absolute z-1 start-0 w-full h-px bg-(--ui-border-accented)",empty:"py-6 text-center text-sm text-muted",loading:"py-6 text-center"},variants:{pinned:{true:{th:"sticky bg-default/75 z-1",td:"sticky bg-default/75 z-1"}},sticky:{true:{thead:"sticky top-0 inset-x-0 bg-default/75 backdrop-blur z-1",tfoot:"sticky bottom-0 inset-x-0 bg-default/75 backdrop-blur z-1"},header:{thead:"sticky top-0 inset-x-0 bg-default/75 backdrop-blur z-1"},footer:{tfoot:"sticky bottom-0 inset-x-0 bg-default/75 backdrop-blur z-1"}},loading:{true:{thead:"after:absolute after:z-1 after:h-px motion-reduce:after:inset-x-0 motion-reduce:after:animate-pulse"}},externalScroll:{true:{root:"overflow-visible"}},loadingAnimation:{carousel:"","carousel-inverse":"",swing:"",elastic:""},loadingColor:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""}},compoundVariants:[{loading:!0,loadingColor:"primary",class:{thead:"after:bg-primary"}},{loading:!0,loadingColor:"secondary",class:{thead:"after:bg-secondary"}},{loading:!0,loadingColor:"success",class:{thead:"after:bg-success"}},{loading:!0,loadingColor:"info",class:{thead:"after:bg-info"}},{loading:!0,loadingColor:"warning",class:{thead:"after:bg-warning"}},{loading:!0,loadingColor:"error",class:{thead:"after:bg-error"}},{loading:!0,loadingColor:"neutral",class:{thead:"after:bg-inverted"}},{loading:!0,loadingAnimation:"carousel",class:{thead:"motion-safe:after:animate-[carousel_2s_ease-in-out_infinite] motion-safe:rtl:after:animate-[carousel-rtl_2s_ease-in-out_infinite]"}},{loading:!0,loadingAnimation:"carousel-inverse",class:{thead:"motion-safe:after:animate-[carousel-inverse_2s_ease-in-out_infinite] motion-safe:rtl:after:animate-[carousel-inverse-rtl_2s_ease-in-out_infinite]"}},{loading:!0,loadingAnimation:"swing",class:{thead:"motion-safe:after:animate-[swing_2s_ease-in-out_infinite]"}},{loading:!0,loadingAnimation:"elastic",class:{thead:"motion-safe:after:animate-[elastic_2s_ease-in-out_infinite]"}}],defaultVariants:{loadingColor:"primary",loadingAnimation:"carousel"}},On=["data-selected","data-selectable","data-expanded","data-pinned","role","tabindex","onClick","onPointerenter","onContextmenu"],En=["data-pinned","colspan","rowspan"],Hn=["colspan"],Gn=["data-pinned","scope","colspan","rowspan"],Ln=["colspan"],qn=["colspan"],kn={key:1},Bn=["colspan"],jn={key:2},bn=["colspan"],Tn=["data-pinned","colspan","rowspan"],Xn=Object.assign({inheritAttrs:!1},{__name:"UTable",props:It({as:{type:null,required:!1},data:{type:Array,required:!1},columns:{type:Array,required:!1},caption:{type:String,required:!1},meta:{type:Object,required:!1},virtualize:{type:[Boolean,Object],required:!1,default:!1},empty:{type:String,required:!1},sticky:{type:[Boolean,String],required:!1},loading:{type:Boolean,required:!1},loadingColor:{type:null,required:!1},loadingAnimation:{type:null,required:!1},watchOptions:{type:Object,required:!1,default:()=>({deep:!0})},globalFilterOptions:{type:Object,required:!1},columnFiltersOptions:{type:Object,required:!1},columnPinningOptions:{type:Object,required:!1},columnSizingOptions:{type:Object,required:!1},visibilityOptions:{type:Object,required:!1},sortingOptions:{type:Object,required:!1},groupingOptions:{type:Object,required:!1},expandedOptions:{type:Object,required:!1},rowSelectionOptions:{type:Object,required:!1},rowPinningOptions:{type:Object,required:!1},paginationOptions:{type:Object,required:!1},facetedOptions:{type:Object,required:!1},onSelect:{type:Function,required:!1},onHover:{type:Function,required:!1},onContextmenu:{type:[Function,Array],required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},state:{type:Object,required:!1},onStateChange:{type:Function,required:!1},renderFallbackValue:{type:null,required:!1},_features:{type:Array,required:!1},autoResetAll:{type:Boolean,required:!1},debugAll:{type:Boolean,required:!1},debugCells:{type:Boolean,required:!1},debugColumns:{type:Boolean,required:!1},debugHeaders:{type:Boolean,required:!1},debugRows:{type:Boolean,required:!1},debugTable:{type:Boolean,required:!1},defaultColumn:{type:Object,required:!1},getRowId:{type:Function,required:!1},getSubRows:{type:Function,required:!1},initialState:{type:Object,required:!1},mergeOptions:{type:Function,required:!1}},{globalFilter:{type:String},globalFilterModifiers:{},columnFilters:{type:Array},columnFiltersModifiers:{},columnOrder:{type:Array},columnOrderModifiers:{},columnVisibility:{type:Object},columnVisibilityModifiers:{},columnPinning:{type:Object},columnPinningModifiers:{},columnSizing:{type:Object},columnSizingModifiers:{},columnSizingInfo:{type:Object},columnSizingInfoModifiers:{},rowSelection:{type:Object},rowSelectionModifiers:{},rowPinning:{type:Object},rowPinningModifiers:{},sorting:{type:Array},sortingModifiers:{},grouping:{type:Array},groupingModifiers:{},expanded:{type:[Boolean,Object]},expandedModifiers:{},pagination:{type:Object},paginationModifiers:{}}),emits:["update:globalFilter","update:columnFilters","update:columnOrder","update:columnVisibility","update:columnPinning","update:columnSizing","update:columnSizingInfo","update:rowSelection","update:rowPinning","update:sorting","update:grouping","update:expanded","update:pagination"],setup(e,{expose:o}){const t=e,n=_t(),i=Ft("table",t),{t:r}=yt(),l=xt(),u=$t(i.data??[],i.watchOptions?.deep!==!1),a=L(()=>i.meta??{}),d=L(()=>c(i.columns??Object.keys(u.value[0]??{}).map(m=>({accessorKey:m,header:Et(m)}))));function c(m){return m.map(V=>{const v={...V};return"columns"in v&&v.columns&&(v.columns=c(v.columns)),v.cell||(v.cell=({getValue:_})=>{const x=_();return x===""||x===null||x===void 0?" ":String(x)}),v})}const S=L(()=>typeof i.virtualize=="object"&&!!i.virtualize.getScrollElement),g=L(()=>At({extend:An,...l.ui?.table||{}})({sticky:i.sticky,loading:i.loading,loadingColor:i.loadingColor,loadingAnimation:i.loadingAnimation,externalScroll:S.value})),[s,f]=We(),[p,h]=We({props:{row:{type:Object,required:!0},style:{type:Object,required:!1}}}),F=L(()=>{function m(V){for(const v of V)if("footer"in v||"columns"in v&&m(v.columns))return!0;return!1}return m(d.value)}),$=H(e,"globalFilter"),P=H(e,"columnFilters"),A=H(e,"columnOrder"),I=H(e,"columnVisibility"),j=H(e,"columnPinning"),Y=H(e,"columnSizing"),Q=H(e,"columnSizingInfo"),te=H(e,"rowSelection"),ne=H(e,"rowPinning"),Z=H(e,"sorting"),ve=H(e,"grouping"),Ce=H(e,"expanded"),we=H(e,"pagination"),Re=Je("rootRef"),je=Je("tableRef"),ct=Pt(Vt(i,"_features","autoResetAll","debugAll","debugCells","debugColumns","debugHeaders","debugRows","debugTable","defaultColumn","getRowId","getSubRows","initialState","mergeOptions","renderFallbackValue")),O=zn({...ct.value,get data(){return u.value},get columns(){return d.value},meta:a.value,getCoreRowModel:_n(),...i.globalFilterOptions||{},...$.value!==void 0&&{onGlobalFilterChange:m=>E(m,$)},...i.columnFiltersOptions||{},getFilteredRowModel:Vn(),...P.value!==void 0&&{onColumnFiltersChange:m=>E(m,P)},...A.value!==void 0&&{onColumnOrderChange:m=>E(m,A)},...i.visibilityOptions||{},...I.value!==void 0&&{onColumnVisibilityChange:m=>E(m,I)},...i.columnPinningOptions||{},...j.value!==void 0&&{onColumnPinningChange:m=>E(m,j)},...i.columnSizingOptions||{},...Y.value!==void 0&&{onColumnSizingChange:m=>E(m,Y)},...Q.value!==void 0&&{onColumnSizingInfoChange:m=>E(m,Q)},...i.rowSelectionOptions||{},...te.value!==void 0&&{onRowSelectionChange:m=>E(m,te)},...i.rowPinningOptions||{},...ne.value!==void 0&&{onRowPinningChange:m=>E(m,ne)},...i.sortingOptions||{},getSortedRowModel:Mn(),...Z.value!==void 0&&{onSortingChange:m=>E(m,Z)},...i.groupingOptions||{},...ve.value!==void 0&&{onGroupingChange:m=>E(m,ve)},...i.expandedOptions||{},getExpandedRowModel:Fn(),...Ce.value!==void 0&&{onExpandedChange:m=>E(m,Ce)},...i.paginationOptions||{},...we.value!==void 0&&{onPaginationChange:m=>E(m,we)},...i.facetedOptions||{},state:{get globalFilter(){return $.value},get columnFilters(){return P.value},get columnOrder(){return A.value},get columnVisibility(){return I.value},get columnPinning(){return j.value},get expanded(){return Ce.value},get rowSelection(){return te.value},get sorting(){return Z.value},get grouping(){return ve.value},get rowPinning(){return ne.value},get columnSizing(){return Y.value},get columnSizingInfo(){return Q.value},get pagination(){return we.value}}}),be=L(()=>O.getRowModel().rows),Te=L(()=>i.virtualize?[]:O.getTopRows()),Ne=L(()=>i.virtualize?[]:O.getBottomRows()),oe=L(()=>Te.value.length||Ne.value.length?O.getCenterRows():be.value),ge=Dt(()=>zt(typeof i.virtualize=="boolean"?{}:i.virtualize,{estimateSize:65,overscan:12})),ft=()=>(S.value?ge.value.getScrollElement?.():Re.value?.$el)??null,he=L(()=>ge.value.scrollMargin??0),ie=!!i.virtualize&&Ot({...ge.value,get count(){return oe.value.length},get scrollMargin(){return he.value},getScrollElement:ft,estimateSize:m=>{const V=ge.value.estimateSize;return typeof V=="function"?V(m):V}}),re=L(()=>ie?ie.value.getVirtualItems():[]),Ue=L(()=>(re.value[0]?.start??0)-he.value),Xe=L(()=>!ie||!re.value.length?0:ie.value.getTotalSize()-(re.value[re.value.length-1]?.end??0)+he.value);function E(m,V){V.value=typeof m=="function"?m(V.value):m}function pt(m,V){if(!i.onSelect)return;const v=m.target;v.closest("button")||v.closest("a")||(m.preventDefault(),m.stopPropagation(),i.onSelect(m,V))}function Ke(m,V){i.onHover&&i.onHover(m,V)}function mt(m,V){i.onContextmenu&&(Array.isArray(i.onContextmenu)?i.onContextmenu.forEach(v=>v(m,V)):i.onContextmenu(m,V))}function b(m,V){return typeof m=="function"?m(V):m}function _e(m){const V={},v=m.getIsPinned();return v==="left"?V.left=`${m.getStart("left")}px`:v==="right"&&(V.right=`${m.getAfter("right")}px`),V}return nt(()=>i.data,()=>{u.value=i.data?[...i.data]:[]},i.watchOptions),o({get $el(){return Re.value?.$el},tableRef:je,tableApi:O}),(m,V)=>(y(),M(G,null,[le(C(p),null,{default:Fe(({row:v,style:_})=>[k("tr",{"data-selected":v.getIsSelected(),"data-selectable":!!C(i).onSelect||!!C(i).onHover||!!C(i).onContextmenu,"data-expanded":v.getIsExpanded(),"data-pinned":v.getIsPinned()||void 0,role:C(i).onSelect?"button":void 0,tabindex:C(i).onSelect?0:void 0,"data-slot":"tr",class:D(g.value.tr({class:[C(i).ui?.tr,b(C(O).options.meta?.class?.tr,v)]})),style:J([b(C(O).options.meta?.style?.tr,v),_]),onClick:x=>pt(x,v),onPointerenter:x=>Ke(x,v),onPointerleave:V[0]||(V[0]=x=>Ke(x,null)),onContextmenu:x=>mt(x,v)},[(y(!0),M(G,null,T(v.getVisibleCells(),x=>(y(),M("td",{key:x.id,"data-pinned":x.column.getIsPinned(),colspan:b(x.column.columnDef.meta?.colspan?.td,x),rowspan:b(x.column.columnDef.meta?.rowspan?.td,x),"data-slot":"td",class:D(g.value.td({class:[C(i).ui?.td,b(x.column.columnDef.meta?.class?.td,x)],pinned:!!x.column.getIsPinned()})),style:J([_e(x.column),b(x.column.columnDef.meta?.style?.td,x)])},[N(m.$slots,`${x.column.id}-cell`,de({ref_for:!0},x.getContext()),()=>[le(C(ze),{render:x.column.columnDef.cell,props:x.getContext()},null,8,["render","props"])])],14,En))),128))],46,On),v.getIsExpanded()?(y(),M("tr",{key:0,"data-slot":"tr",class:D(g.value.tr({class:[C(i).ui?.tr]}))},[k("td",{colspan:v.getAllCells().length,"data-slot":"td",class:D(g.value.td({class:[C(i).ui?.td]}))},[N(m.$slots,"expanded",{row:v})],10,Hn)],2)):X("",!0)]),_:3}),le(C(s),null,{default:Fe(()=>[k("table",{ref_key:"tableRef",ref:je,"data-slot":"base",class:D(g.value.base({class:[C(i).ui?.base]}))},[C(i).caption||n.caption?(y(),M("caption",{key:0,"data-slot":"caption",class:D(g.value.caption({class:[C(i).ui?.caption]}))},[N(m.$slots,"caption",{},()=>[Ye(Qe(C(i).caption),1)])],2)):X("",!0),k("thead",{"data-slot":"thead",class:D(g.value.thead({class:[C(i).ui?.thead]}))},[(y(!0),M(G,null,T(C(O).getHeaderGroups(),v=>(y(),M("tr",{key:v.id,"data-slot":"tr",class:D(g.value.tr({class:[C(i).ui?.tr]}))},[(y(!0),M(G,null,T(v.headers,_=>(y(),M("th",{key:_.id,"data-pinned":_.column.getIsPinned(),scope:_.colSpan>1?"colgroup":"col",colspan:_.colSpan>1?_.colSpan:void 0,rowspan:_.rowSpan>1?_.rowSpan:void 0,"data-slot":"th",class:D(g.value.th({class:[C(i).ui?.th,b(_.column.columnDef.meta?.class?.th,_)],pinned:!!_.column.getIsPinned()})),style:J([_e(_.column),b(_.column.columnDef.meta?.style?.th,_)])},[N(m.$slots,`${_.id}-header`,de({ref_for:!0},_.getContext()),()=>[_.isPlaceholder?X("",!0):(y(),ee(C(ze),{key:0,render:_.column.columnDef.header,props:_.getContext()},null,8,["render","props"]))])],14,Gn))),128))],2))),128)),k("tr",{"data-slot":"separator",class:D(g.value.separator({class:[C(i).ui?.separator]}))},null,2)],2),k("tbody",{"data-slot":"tbody",class:D(g.value.tbody({class:[C(i).ui?.tbody]}))},[N(m.$slots,"body-top"),be.value.length?(y(),M(G,{key:0},[(y(!0),M(G,null,T(Te.value,v=>(y(),ee(C(h),{key:v.id,row:v},null,8,["row"]))),128)),C(ie)?(y(),M(G,{key:0},[Ue.value>0?(y(),M("tr",{key:0,style:J({height:`${Ue.value}px`}),"aria-hidden":"true"},[k("td",{colspan:C(O).getAllLeafColumns().length},null,8,Ln)],4)):X("",!0),(y(!0),M(G,null,T(re.value,v=>(y(),M(G,{key:oe.value[v.index]?.id??`virtual-${v.index}`},[oe.value[v.index]?(y(),ee(C(h),{key:0,row:oe.value[v.index],style:J({height:`${v.size}px`})},null,8,["row","style"])):X("",!0)],64))),128)),Xe.value>0?(y(),M("tr",{key:1,style:J({height:`${Xe.value}px`}),"aria-hidden":"true"},[k("td",{colspan:C(O).getAllLeafColumns().length},null,8,qn)],4)):X("",!0)],64)):(y(!0),M(G,{key:1},T(oe.value,v=>(y(),ee(C(h),{key:v.id,row:v},null,8,["row"]))),128)),(y(!0),M(G,null,T(Ne.value,v=>(y(),ee(C(h),{key:v.id,row:v},null,8,["row"]))),128))],64)):C(i).loading&&n.loading?(y(),M("tr",kn,[k("td",{colspan:C(O).getAllLeafColumns().length,"data-slot":"loading",class:D(g.value.loading({class:C(i).ui?.loading}))},[N(m.$slots,"loading")],10,Bn)])):(y(),M("tr",jn,[k("td",{colspan:C(O).getAllLeafColumns().length,"data-slot":"empty",class:D(g.value.empty({class:C(i).ui?.empty}))},[N(m.$slots,"empty",{},()=>[Ye(Qe(C(i).empty||C(r)("table.noData")),1)])],10,bn)])),N(m.$slots,"body-bottom")],2),F.value?(y(),M("tfoot",{key:1,"data-slot":"tfoot",class:D(g.value.tfoot({class:[C(i).ui?.tfoot]}))},[k("tr",{"data-slot":"separator",class:D(g.value.separator({class:[C(i).ui?.separator]}))},null,2),(y(!0),M(G,null,T(C(O).getFooterGroups(),v=>(y(),M("tr",{key:v.id,"data-slot":"tr",class:D(g.value.tr({class:[C(i).ui?.tr]}))},[(y(!0),M(G,null,T(v.headers,_=>(y(),M("th",{key:_.id,"data-pinned":_.column.getIsPinned(),colspan:_.colSpan>1?_.colSpan:void 0,rowspan:_.rowSpan>1?_.rowSpan:void 0,"data-slot":"th",class:D(g.value.th({class:[C(i).ui?.th,b(_.column.columnDef.meta?.class?.th,_)],pinned:!!_.column.getIsPinned()})),style:J([_e(_.column),b(_.column.columnDef.meta?.style?.th,_)])},[N(m.$slots,`${_.id}-footer`,de({ref_for:!0},_.getContext()),()=>[_.isPlaceholder?X("",!0):(y(),ee(C(ze),{key:0,render:_.column.columnDef.footer,props:_.getContext()},null,8,["render","props"]))])],14,Tn))),128))],2))),128))],2)):X("",!0)],2)]),_:3}),le(C(Mt),de({ref_key:"rootRef",ref:Re,as:C(i).as,"data-slot":"root"},m.$attrs,{class:g.value.root({class:[C(i).ui?.root,C(i).class]})}),{default:Fe(()=>[le(C(f))]),_:1},16,["as","class"])],64))}});export{Xn as _};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{_ as De}from"./Cu2Q4iPh.js";import{_ as Oe}from"./Qo6oszaF.js";import{_ as _e,a as He,b as qe,c as Ke,d as Ge,e as We,f as Je,g as ke,u as Qe,h as Ze,i as Xe,j as Ye,k as et,l as tt,m as st}from"./D7jpwkRG.js";import{d as Y,o as s,f as S,g as p,i as t,j as r,c as l,t as o,v as u,s as ue,k as e,m as $,p as ae,G as be,F as L,y as Q,_ as ce,h as P,H as nt,q as X,I as at,r as g,J as oe,B as ot,l as J,E as $e,K as lt,L as rt,C as fe,M as it,b as ct,u as ut,w as dt,e as mt,N as ft}from"./C5TrTuWv.js";import{_ as Ce}from"./DuOH5jcQ.js";import{_ as pt,a as gt}from"./opyDpgSw.js";import{_ as ge}from"./B69RP95P.js";import{_ as xt}from"./Cq33x7yV.js";import{_ as vt}from"./DMAiMrNr.js";import{_ as we}from"./BfA6lfg4.js";import{_ as yt,a as ht,i as _t,b as kt,s as ve,c as bt}from"./CX_G-FHC.js";import{c as ye,f as ie,a as $t,b as Ct,d as wt,g as Se,s as pe,e as de,r as he,h as St}from"./DMtrFQqi.js";import{_ as xe}from"./D0Kop4bS.js";import{_ as Tt}from"./CyLcEDg2.js";import{_ as jt}from"./DhYznn-U.js";import{_ as It}from"./DvEsAuE9.js";import{_ as Rt}from"./DcLbz6DV.js";import{_ as zt}from"./DcR0Mmdl.js";import{_ as Te}from"./6Z_ZwH8I.js";import{u as Ut,p as Et,_ as Vt}from"./D8vguZKg.js";import{b as At}from"./CX5Q0dZ8.js";import{a as Mt,u as Nt}from"./T5UuMUxA.js";import"./BCGljaM0.js";import"./BrUBOQ0y.js";import"./CsV7pmcT.js";import"./fXUwH_3d.js";import"./BBhrClA9.js";import"./B1LUinhp.js";import"./D-c8ZSws.js";import"./C8Paf_V1.js";import"./BjaRappk.js";import"./Ce5_Tq63.js";import"./DaNC-xl1.js";import"./DH5H1DJh.js";import"./D_y2VS8k.js";import"./C-XjxjG5.js";import"./03FA4-rI.js";import"./DMsm-RGQ.js";import"./Bn0jaRxI.js";import"./DEvYVl9M.js";import"./V9p3z39z.js";import"./CGHV0Y2d.js";import"./opwuUqHG.js";const Bt={class:"flex items-center gap-3 flex-1 min-w-0 justify-between"},Ft={class:"flex items-center gap-3 min-w-0"},Lt={class:"font-mono text-sm truncate text-gray-600 dark:text-gray-400 min-w-0"},Pt={class:"flex items-center gap-3 shrink-0 max-sm:hidden"},Dt={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},Ot={class:"text-xs text-gray-500 tabular-nums whitespace-nowrap"},Ht={key:1,class:"text-xs text-gray-400 whitespace-nowrap"},qt={class:"grid grid-cols-1 lg:grid-cols-12 gap-4"},Kt={class:"lg:col-span-9"},Gt={class:"space-y-3"},Wt={key:0,class:"text-sm font-medium break-words text-gray-500 dark:text-gray-400"},Jt={class:"flex flex-wrap gap-2"},Qt={class:"text-sm text-gray-500"},Zt={key:1,class:"rounded-md border border-default p-3 space-y-1.5"},Xt={class:"flex items-center gap-2 flex-wrap"},Yt={key:0,class:"text-xs text-gray-500"},es={class:"text-xs text-gray-500"},ts={class:"text-sm text-gray-500"},ss={class:"font-mono text-xs"},ns={class:"flex items-start gap-3"},as={class:"flex flex-col gap-1 shrink-0"},os={class:"flex-1 min-w-0 space-y-1.5"},ls={class:"flex justify-end"},rs=Y({__name:"ClusterSummary",props:{cluster:{},triageStatus:{},triageNote:{},triageSaving:{type:Boolean},triageChanged:{type:Boolean}},emits:["update:triageStatus","update:triageNote","save-triage"],setup(a,{emit:I}){const m=a,C=I,d=P(()=>wt(m.cluster.fixVerification)),w=[{label:"Open",value:"open",color:"warning"},{label:"Resolved",value:"resolved",color:"success"},{label:"Ignored",value:"ignored",color:"neutral"}];return(n,c)=>{const _=ue,z=ae,A=ge,R=be,T=xt,h=vt,j=ce,x=we,M=yt;return s(),S(M,{"storage-key":"failure-cluster"},{folded:p(()=>[t("div",Bt,[t("div",Ft,[r(_,{color:("clusterStatusColor"in n?n.clusterStatusColor:e(Ct))(a.cluster.status),variant:"solid",size:"sm",class:"shrink-0 capitalize"},{default:p(()=>[$(o(a.cluster.status),1)]),_:1},8,["color"]),t("span",Lt,o(a.cluster.signature),1),a.cluster.errorType?(s(),S(_,{key:0,color:("clusterErrorTypeColor"in n?n.clusterErrorTypeColor:e(ye))(a.cluster.errorType),variant:"subtle",size:"sm"},{default:p(()=>[$(o(a.cluster.errorType),1)]),_:1},8,["color"])):u("",!0),e(d)?(s(),S(_,{key:1,color:e(d).color,variant:"subtle",size:"sm",class:"gap-1 shrink-0"},{default:p(()=>[r(z,{name:e(d).icon,class:"size-3"},null,8,["name"]),$(" "+o(e(d).label),1)]),_:1},8,["color"])):u("",!0)]),t("div",Pt,[t("span",Dt,o(a.cluster.occurrences)+" occurrence"+o(a.cluster.occurrences===1?"":"s"),1),t("span",Ot,o(a.cluster.affectedTests)+" "+o(a.cluster.affectedTests===1?"test":"tests"),1),a.cluster.diagnosis?.status==="completed"&&a.cluster.diagnosis?.category?(s(),S(_,{key:0,color:"neutral",variant:"outline",size:"sm",class:"gap-1 whitespace-nowrap"},{default:p(()=>[r(z,{name:"i-lucide-sparkles",class:"size-3"}),$(" "+o(a.cluster.diagnosis.category),1)]),_:1})):u("",!0),a.cluster.lastSeenAt?(s(),l("span",Ht," last seen "+o(("formatRelativeTime"in n?n.formatRelativeTime:e(ie))(a.cluster.lastSeenAt)),1)):u("",!0)])])]),default:p(()=>[t("div",qt,[t("div",Kt,[r(h,{title:a.cluster.signature},{default:p(()=>[t("div",Gt,[a.cluster.title?(s(),l("p",Wt,o(a.cluster.title),1)):u("",!0),t("div",Jt,[a.cluster.errorType?(s(),S(_,{key:0,color:("clusterErrorTypeColor"in n?n.clusterErrorTypeColor:e(ye))(a.cluster.errorType),variant:"subtle"},{default:p(()=>[$(o(a.cluster.errorType),1)]),_:1},8,["color"])):u("",!0),r(_,{color:"neutral",variant:"subtle"},{default:p(()=>[$(o(a.cluster.occurrences)+" occurrence"+o(a.cluster.occurrences===1?"":"s"),1)]),_:1}),r(_,{color:"neutral",variant:"subtle"},{default:p(()=>[$(o(a.cluster.affectedTests)+" "+o(a.cluster.affectedTests===1?"test":"tests")+" affected ",1)]),_:1}),a.cluster.diagnosis?.status==="completed"&&a.cluster.diagnosis?.category?(s(),S(_,{key:1,color:"neutral",variant:"outline",class:"gap-1"},{default:p(()=>[r(z,{name:"i-lucide-sparkles",class:"size-3"}),$(" "+o(a.cluster.diagnosis.category),1)]),_:1})):u("",!0),r(A,{topic:"cluster.concept"})]),t("p",Qt,[c[2]||(c[2]=$(" First seen in ",-1)),r(R,{to:`/test-runs/${a.cluster.firstSeenRunId}`,class:"text-primary hover:underline"},{default:p(()=>[$(" run #"+o(a.cluster.firstSeenRunId),1)]),_:1},8,["to"]),a.cluster.firstSeenAt?(s(),l(L,{key:0},[$(" ("+o(("formatRelativeTime"in n?n.formatRelativeTime:e(ie))(a.cluster.firstSeenAt))+") ",1)],64)):u("",!0),c[3]||(c[3]=$(" · Last seen in ",-1)),r(R,{to:`/test-runs/${a.cluster.lastSeenRunId}`,class:"text-primary hover:underline"},{default:p(()=>[$(" run #"+o(a.cluster.lastSeenRunId),1)]),_:1},8,["to"]),a.cluster.lastSeenAt?(s(),l(L,{key:1},[$(" ("+o(("formatRelativeTime"in n?n.formatRelativeTime:e(ie))(a.cluster.lastSeenAt))+") ",1)],64)):u("",!0),a.cluster.lastSeenRunStatus?(s(),S(T,{key:2,status:a.cluster.lastSeenRunStatus,size:"sm",class:"ml-1 align-middle"},null,8,["status"])):u("",!0)]),e(d)?(s(),l("div",Zt,[t("div",Xt,[r(_,{color:e(d).color,variant:"subtle",class:"gap-1"},{default:p(()=>[r(z,{name:e(d).icon,class:"size-3"},null,8,["name"]),$(" "+o(e(d).label),1)]),_:1},8,["color"]),a.cluster.timeToResolutionMs!=null?(s(),l("span",Yt," open for "+o(("formatDuration"in n?n.formatDuration:e($t))(a.cluster.timeToResolutionMs)),1)):u("",!0),r(A,{topic:"cluster.resolution"})]),t("p",es,o(e(d).hint),1),t("p",ts,[a.cluster.fixLandedRunId?(s(),l(L,{key:0},[c[4]||(c[4]=$(" Fix landed in ",-1)),r(R,{to:`/test-runs/${a.cluster.fixLandedRunId}`,class:"text-primary hover:underline"},{default:p(()=>[$(" run #"+o(a.cluster.fixLandedRunId),1)]),_:1},8,["to"])],64)):u("",!0),a.cluster.fixLandedAt?(s(),l(L,{key:1},[$(" ("+o(("formatRelativeTime"in n?n.formatRelativeTime:e(ie))(a.cluster.fixLandedAt))+")",1)],64)):u("",!0),a.cluster.fixCommit?(s(),l(L,{key:2},[c[5]||(c[5]=$(" · commit ",-1)),t("code",ss,o(a.cluster.fixCommit.slice(0,8)),1)],64)):u("",!0)])])):u("",!0)])]),_:1},8,["title"])]),r(h,{class:"lg:col-span-3",icon:"i-lucide-triangle-alert","icon-class":"text-amber-500",title:"Triage",help:"cluster.triage"},{default:p(()=>[t("div",ns,[t("div",as,[(s(),l(L,null,Q(w,B=>r(j,{key:B.value,size:"xs",class:"justify-start",color:a.triageStatus===B.value?B.color:"neutral",variant:a.triageStatus===B.value?"solid":"outline",onClick:O=>C("update:triageStatus",B.value)},{default:p(()=>[$(o(B.label),1)]),_:2},1032,["color","variant","onClick"])),64))]),t("div",os,[r(x,{"model-value":a.triageNote,placeholder:"Optional note…",rows:3,class:"text-sm w-full","onUpdate:modelValue":c[0]||(c[0]=B=>C("update:triageNote",B))},null,8,["model-value"]),t("div",ls,[a.triageChanged?(s(),S(j,{key:0,size:"xs",icon:"i-lucide-check",loading:a.triageSaving,onClick:c[1]||(c[1]=B=>C("save-triage"))},{default:p(()=>[...c[6]||(c[6]=[$(" Save ",-1)])]),_:1},8,["loading"])):u("",!0)])])])]),_:1})])]),_:1})}}}),is=Object.assign(rs,{__name:"ClusterSummary"}),cs={class:"divide-y divide-default"},us={class:"text-xs font-mono text-gray-700 dark:text-gray-300 break-all whitespace-pre-wrap"},ds={class:"text-xs font-mono text-gray-600 dark:text-gray-400 truncate"},ms=Y({__name:"TestEvidenceSignals",props:at({consoleLogs:{},networkRequests:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:["update:open"],setup(a){const I=a,m=P(()=>Array.isArray(I.consoleLogs)?I.consoleLogs.filter(c=>c.type==="error"||c.type==="warning"):[]),C=P(()=>Array.isArray(I.networkRequests)?I.networkRequests.filter(c=>c.status&&c.status>=400):[]),d=P(()=>m.value.length>0||C.value.length>0),w=P(()=>{const c=[];return m.value.length&&c.push(`${m.value.length} console`),C.value.length&&c.push(`${C.value.length} network`),c.join(", ")}),n=nt(a,"open");return(c,_)=>{const z=ae,A=ue,R=_e;return e(d)?(s(),S(R,{key:0,icon:"i-lucide-triangle-alert",label:`Signals (${e(w)})`,open:n.value,"onUpdate:open":_[0]||(_[0]=T=>n.value=T)},{default:p(()=>[t("div",cs,[e(m).length>0?(s(),l(L,{key:0},[_[1]||(_[1]=t("div",{class:"px-3 py-1 bg-gray-50 dark:bg-gray-800/40"},[t("p",{class:"text-[10px] font-semibold text-gray-400 uppercase tracking-wide"},"Console")],-1)),(s(!0),l(L,null,Q(e(m),(T,h)=>(s(),l("div",{key:"log-"+h,class:"px-3 py-1.5 flex items-start gap-2"},[r(z,{name:T.type==="error"?"i-lucide-x-circle":"i-lucide-alert-triangle",class:X(["size-3.5 mt-0.5 shrink-0",T.type==="error"?"text-red-500":"text-yellow-500"])},null,8,["name","class"]),t("p",us,o(T.text),1)]))),128))],64)):u("",!0),e(C).length>0?(s(),l(L,{key:1},[_[2]||(_[2]=t("div",{class:"px-3 py-1 bg-gray-50 dark:bg-gray-800/40"},[t("p",{class:"text-[10px] font-semibold text-gray-400 uppercase tracking-wide"},"Network")],-1)),(s(!0),l(L,null,Q(e(C),(T,h)=>(s(),l("div",{key:"req-"+h,class:"px-3 py-1.5 flex items-center gap-2"},[r(A,{color:T.status>=500?"error":"warning",variant:"subtle",size:"sm",class:"shrink-0 font-mono"},{default:p(()=>[$(o(T.status),1)]),_:2},1032,["color"]),t("p",ds,o(T.url),1)]))),128))],64)):u("",!0)])]),_:1},8,["label","open"])):u("",!0)}}}),fs=Object.assign(ms,{__name:"TestEvidenceSignals"}),ps={class:"space-y-3"},gs={key:0,class:"flex gap-0 border-b border-default overflow-x-auto"},xs=["title","onClick"],vs={key:0,class:"opacity-60 ml-1"},ys={key:1,class:"flex items-start justify-between gap-2 flex-wrap"},hs={class:"min-w-0"},_s={class:"text-sm font-medium break-words"},ks={key:2,class:"flex items-center justify-center py-10"},bs={key:0,class:"flex flex-wrap gap-1.5"},$s={class:"divide-y divide-default"},Cs={class:"text-xs font-medium text-gray-700 dark:text-gray-300"},ws={key:0,class:"text-xs font-mono text-red-500 whitespace-pre-wrap break-all"},Ss={class:"overflow-x-auto max-h-72"},Ts={class:"max-h-64 overflow-auto"},js=Y({__name:"ClusterTestEvidence",props:{affectedTestCases:{},projectKey:{},projectName:{}},setup(a){const I=a,m=g(I.affectedTestCases[0]?.recentTestRunsCaseId??null),C=P(()=>I.affectedTestCases.find(f=>f.recentTestRunsCaseId===m.value)),d=g(null),w=g([]),n=g(!1),c=g(!1),_=g(!1),z=g(!1),A=g(!1),R=g(!1),T=g(!1),h=new Map;function j(){_.value=!1,z.value=!1,A.value=!1,R.value=!1,T.value=!1}async function x(f){j();const v=h.get(f);if(v){d.value=v.detail,w.value=v.traces,n.value=!1,c.value=!1;return}n.value=!0,c.value=!0,d.value=null,w.value=[];const[N,K]=await Promise.allSettled([$fetch(`/api/test-run-cases/${f}`),$fetch(`/api/test-run-cases/${f}/traces`)]);N.status==="fulfilled"&&(d.value=N.value),n.value=!1,K.status==="fulfilled"&&(w.value=K.value),c.value=!1,N.status==="fulfilled"&&K.status==="fulfilled"&&h.set(f,{detail:N.value,traces:K.value})}const M=new Map,B=g(null),O=g("trace"),F=P(()=>B.value?.frames??[]);async function q(f){if(B.value=M.get(f)??null,M.has(f)||w.value.length===0)return;const v=d.value?.testRun?.id;if(v)try{const N=await $fetch(`/api/test-runs/${v}/cases/${f}/trace-stacks`),K=N.status==="ok"&&N.frames?.length?N:null;M.set(f,K),m.value===f&&(B.value=K)}catch{M.set(f,null)}}oe([d,w],()=>{O.value="trace",m.value&&q(m.value)}),oe(m,f=>{f&&x(f)}),ot(()=>{m.value&&x(m.value)});const E=P(()=>{const f=d.value?.steps;return Array.isArray(f)?f.filter(v=>v.error):[]}),D=P(()=>d.value?.testSource?d.value.testSource.split(`
|
|
2
|
+
`).length:0),U=P(()=>{const f=d.value;if(!f)return[];const v=f.attachments.filter(k=>_t(k.path,k.contentType)).length,N=f.attachments.filter(k=>kt(k.path,k.contentType)).length,K=Array.isArray(f.consoleLogs)?f.consoleLogs.filter(k=>k.type==="error"||k.type==="warning").length:0,Z=Array.isArray(f.networkRequests)?f.networkRequests.filter(k=>(k.status??0)>=400).length:0;return[{icon:"i-lucide-image",label:"screenshots",count:v},{icon:"i-lucide-video",label:"videos",count:N},{icon:"i-lucide-bug-play",label:"traces",count:w.value.length},{icon:"i-lucide-list-checks",label:"failing steps",count:E.value.length},{icon:"i-lucide-triangle-alert",label:"signals",count:K+Z},{icon:"i-lucide-code",label:"source",count:f.testSourceFrames?.length||(f.testSource?1:0)},{icon:"i-lucide-accessibility",label:"ARIA",count:f.ariaSnapshot?1:0}].filter(k=>k.count>0)});return(f,v)=>{const N=xe,K=ce,Z=ae,k=ue,i=He,ee=qe,b=Ke,V=_e,H=fs,G=jt,W=Ge,te=We,se=ht,le=Je;return s(),l("div",ps,[a.affectedTestCases.length>1?(s(),l("div",gs,[(s(!0),l(L,null,Q(a.affectedTestCases,y=>(s(),l("button",{key:y.recentTestRunsCaseId,class:X(["px-3 py-1.5 text-xs whitespace-nowrap border-b-2 -mb-px transition-colors",e(m)===y.recentTestRunsCaseId?"border-primary text-primary font-medium":"border-transparent text-gray-500 hover:text-gray-700 dark:hover:text-gray-300"]),title:y.title,onClick:ne=>m.value=y.recentTestRunsCaseId},[$(o(y.title.split(" › ").pop())+" ",1),y.runCount>1?(s(),l("span",vs,o(y.runCount)+"×",1)):u("",!0)],10,xs))),128))])):u("",!0),e(C)?(s(),l("div",ys,[t("div",hs,[t("p",_s,o(e(C).title),1),r(N,{"file-path":e(C).filePath,"project-key":a.projectKey,"project-name":a.projectName,class:"text-xs text-gray-400"},null,8,["file-path","project-key","project-name"])]),r(K,{to:`/test-run-cases/${e(C).recentTestRunsCaseId}`,size:"xs",variant:"outline",color:"neutral","trailing-icon":"i-lucide-arrow-right"},{default:p(()=>[...v[6]||(v[6]=[$(" Open execution ",-1)])]),_:1},8,["to"])])):u("",!0),e(n)?(s(),l("div",ks,[r(Z,{name:"i-lucide-loader-circle",class:"size-5 animate-spin text-gray-400"})])):e(d)?(s(),l(L,{key:3},[e(U).length?(s(),l("div",bs,[(s(!0),l(L,null,Q(e(U),y=>(s(),S(k,{key:y.label,color:"neutral",variant:"subtle",size:"sm",class:"gap-1"},{default:p(()=>[r(Z,{name:y.icon,class:"size-3"},null,8,["name"]),$(" "+o(y.count)+" "+o(y.label),1)]),_:2},1024))),128))])):u("",!0),r(i,{attachments:e(d).attachments},null,8,["attachments"]),r(ee,{attachments:e(d).attachments},null,8,["attachments"]),r(b,{traces:e(w),loading:e(c)},null,8,["traces","loading"]),e(E).length>0?(s(),S(V,{key:1,icon:"i-lucide-list-checks",label:"Failing steps",count:e(E).length,open:e(_),"onUpdate:open":v[0]||(v[0]=y=>J(_)?_.value=y:null)},{default:p(()=>[t("div",$s,[(s(!0),l(L,null,Q(e(E),(y,ne)=>(s(),l("div",{key:ne,class:"px-3 py-2 space-y-0.5"},[t("p",Cs,o(ne+1)+". "+o(y.title),1),y.error?.message?(s(),l("p",ws,o(y.error.message),1)):u("",!0)]))),128))])]),_:1},8,["count","open"])):u("",!0),r(H,{"console-logs":e(d).consoleLogs,"network-requests":e(d).networkRequests,open:e(z),"onUpdate:open":v[1]||(v[1]=y=>J(z)?z.value=y:null)},null,8,["console-logs","network-requests","open"]),e(d).testSourceFrames?.length||e(d).testSource||e(F).length?(s(),S(V,{key:2,icon:"i-lucide-code",label:"Test source",count:e(F).length||e(d).testSourceFrames?.length||e(D),open:e(A),"onUpdate:open":v[3]||(v[3]=y=>J(A)?A.value=y:null)},{default:p(()=>[e(F).length&&(e(d).testSourceFrames?.length||e(d).testSource)?(s(),S(G,{key:0,modelValue:e(O),"onUpdate:modelValue":v[2]||(v[2]=y=>J(O)?O.value=y:null),items:[{label:`Full stack (${e(F).length})`,value:"trace"},{label:`Captured (${e(d).testSourceFrames?.length||1})`,value:"captured"}],size:"xs",variant:"link",class:"mb-1.5",ui:{list:"gap-2",trigger:"px-1.5"}},null,8,["modelValue","items"])):u("",!0),t("div",Ss,[e(O)==="trace"&&e(F).length?(s(),S(W,{key:0,frames:e(F),"project-key":a.projectKey,"project-name":a.projectName},null,8,["frames","project-key","project-name"])):e(d).testSourceFrames?.length?(s(),S(te,{key:1,frames:e(d).testSourceFrames,"project-key":a.projectKey,"project-name":a.projectName},null,8,["frames","project-key","project-name"])):e(d).testSource?(s(),S(se,{key:2,text:"```typescript\n"+e(d).testSource+"\n```"},null,8,["text"])):u("",!0)])]),_:1},8,["count","open"])):u("",!0),e(d).ariaSnapshot?(s(),S(V,{key:3,icon:"i-lucide-accessibility",label:"ARIA snapshot",open:e(R),"onUpdate:open":v[4]||(v[4]=y=>J(R)?R.value=y:null)},{default:p(()=>[t("div",Ts,[r(se,{text:"```yaml\n"+e(d).ariaSnapshot+"\n```"},null,8,["text"])])]),_:1},8,["open"])):u("",!0),e(d).pageState?(s(),S(V,{key:4,icon:"i-lucide-database",label:"App state",open:e(T),"onUpdate:open":v[5]||(v[5]=y=>J(T)?T.value=y:null)},{default:p(()=>[r(le,{"page-state":e(d).pageState,plain:""},null,8,["page-state"])]),_:1},8,["open"])):u("",!0)],64)):u("",!0)])}}}),Is=Object.assign(js,{__name:"ClusterTestEvidence"}),Rs={key:0,class:"flex items-center gap-1.5 overflow-hidden min-w-0"},zs={class:"text-primary shrink-0"},Us={class:"text-gray-500 truncate text-xs font-sans"},Es={key:1,class:"text-primary text-xs"},Vs={key:2,class:"text-gray-400 font-sans text-xs"},As={class:"w-96 p-2 space-y-2"},Ms={class:"flex items-center gap-1"},Ns={class:"flex items-center gap-1"},Bs={key:0,class:"flex items-center gap-2 px-2 py-1.5 text-xs rounded-md bg-primary/5 text-gray-600 dark:text-gray-300"},Fs={class:"font-medium text-green-600 dark:text-green-400"},Ls={class:"font-medium text-red-600 dark:text-red-400"},Ps={class:"text-gray-400"},Ds={key:1,class:"flex items-center justify-center gap-2 py-6 text-gray-400"},Os={key:2,class:"py-4 text-center text-sm text-red-500"},Hs={key:3,class:"flex items-start gap-2 px-2 py-2 text-xs text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded-md"},qs={key:4,class:"max-h-80 overflow-y-auto space-y-px"},Ks={class:"text-xs text-primary"},Gs={key:1,class:"py-4 text-center text-sm text-gray-400"},Ws=["onClick"],Js={class:"text-xs text-primary shrink-0 w-14 pt-px"},Qs={class:"flex-1 min-w-0"},Zs={class:"text-xs font-medium leading-snug truncate"},Xs={class:"text-xs text-gray-400 leading-snug truncate"},Ys=Y({__name:"CommitPicker",props:{modelValue:{},clusterId:{}},emits:["update:modelValue"],setup(a,{emit:I}){const m=a,C=I,d=g(!1),w=g(""),n=g([]),c=g(null),_=g(null),z=g(!1),A=g(!1),R=g(null),T=g(null),h=g([]),j=g(!1),x=g(void 0),M=P(()=>{if(!m.modelValue)return null;const U=m.modelValue.trim();return n.value.find(v=>v.sha===U||v.sha.startsWith(U))??{sha:U,shortSha:U.slice(0,7),message:"",author:"",date:""}});async function B(){if(!h.value.length){j.value=!0;try{const U=await $fetch(`/api/failure-clusters/${m.clusterId}/branches`);h.value=U.branches}catch{}finally{j.value=!1}}}async function O(){const U=m.modelValue||"";z.value=!0,A.value=!1,T.value=null;try{const f={};U&&(f.baseline=U),x.value&&(f.branch=x.value);const v=await $fetch(`/api/failure-clusters/${m.clusterId}/commits`,{query:f});n.value=v.commits,_.value=v.aggregate,c.value=v.error??null,T.value=U}catch{A.value=!0}finally{z.value=!1}}oe(x,()=>{n.value=[],T.value=null,O()}),oe(d,async U=>{if(U){await Promise.all([B(),O()]),await rt();const f=R.value?.$el?.querySelector("input")??R.value?.$el;f instanceof HTMLElement&&f.focus()}else w.value=""});const F=P(()=>Se(n.value,w.value)),q=P(()=>{const U=w.value.trim();return!/^[0-9a-f]{7,40}$/i.test(U)||F.value.some(f=>f.sha.startsWith(U.toLowerCase()))?null:U});function E(U){C("update:modelValue",U),d.value=!1}function D(U){U.stopPropagation(),c.value=null,_.value=null,C("update:modelValue",""),d.value=!1}return(U,f)=>{const v=ce,N=ae,K=It,Z=$e,k=lt;return s(),S(k,{open:e(d),"onUpdate:open":f[4]||(f[4]=i=>J(d)?d.value=i:null)},{content:p(()=>[t("div",As,[t("div",Ms,[r(N,{name:"i-lucide-git-branch",class:"size-3.5 text-gray-400 shrink-0"}),r(K,{modelValue:e(x),"onUpdate:modelValue":f[0]||(f[0]=i=>J(x)?x.value=i:null),items:e(h),placeholder:"Default branch",size:"xs",class:"flex-1",loading:e(j),disabled:e(j)},null,8,["modelValue","items","loading","disabled"])]),t("div",Ns,[r(Z,{ref_key:"searchInputRef",ref:R,modelValue:e(w),"onUpdate:modelValue":f[1]||(f[1]=i=>J(w)?w.value=i:null),placeholder:"Search message, author, SHA…",size:"xs",icon:"i-lucide-search",class:"flex-1"},null,8,["modelValue"]),a.modelValue?(s(),S(v,{key:0,size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-x",title:"Clear baseline",onClick:f[2]||(f[2]=i=>D(i))})):u("",!0)]),e(_)&&a.modelValue&&!e(z)?(s(),l("div",Bs,[r(N,{name:"i-lucide-git-compare-arrows",class:"size-3.5 shrink-0 text-primary"}),f[5]||(f[5]=t("span",null,"Since baseline:",-1)),t("span",Fs,"+"+o(e(_).linesAdded),1),t("span",Ls,"-"+o(e(_).linesRemoved),1),t("span",Ps,"across "+o(e(_).filesChanged)+" file"+o(e(_).filesChanged===1?"":"s"),1)])):u("",!0),e(z)?(s(),l("div",Ds,[r(N,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),f[6]||(f[6]=t("span",{class:"text-sm"},"Loading commits…",-1))])):e(A)?(s(),l("div",Os," Failed to load commits — check your SCM token in Settings → AI ")):e(c)&&!e(z)&&e(n).length===0?(s(),l("div",Hs,[r(N,{name:"i-lucide-triangle-alert",class:"size-3.5 shrink-0 mt-0.5"}),t("span",null,o(e(c)),1)])):(s(),l("div",qs,[e(q)?(s(),l("button",{key:0,class:"w-full text-left px-2 py-1.5 rounded flex items-center gap-2 hover:bg-elevated transition-colors border border-dashed border-default",onClick:f[3]||(f[3]=i=>E(e(q)))},[r(N,{name:"i-lucide-git-commit-horizontal",class:"size-3.5 text-gray-400 shrink-0"}),f[7]||(f[7]=t("span",{class:"text-xs text-gray-500"},"Use commit",-1)),t("code",Ks,o(e(q).slice(0,7)),1)])):u("",!0),e(F).length===0&&!e(q)?(s(),l("div",Gs,o(e(w)?"No commits match":"No commits available"),1)):u("",!0),(s(!0),l(L,null,Q(e(F),i=>(s(),l("button",{key:i.sha,class:X(["w-full text-left px-2 py-1.5 rounded flex items-start gap-2 hover:bg-elevated transition-colors",a.modelValue===i.sha?"bg-primary/10 ring-1 ring-inset ring-primary/30":""]),onClick:ee=>E(i.sha)},[t("code",Js,o(i.shortSha),1),t("div",Qs,[t("p",Zs,o(i.message),1),t("p",Xs,[$(o(i.author),1),i.date?(s(),l(L,{key:0},[$(" · "+o(e(ie)(i.date)),1)],64)):u("",!0)])]),a.modelValue===i.sha?(s(),S(N,{key:0,name:"i-lucide-check",class:"size-3.5 text-primary shrink-0 mt-0.5"})):u("",!0)],10,Ws))),128))]))])]),default:p(()=>[r(v,{size:"xs",color:"neutral",variant:"outline",icon:a.modelValue?"i-lucide-git-branch-plus":"i-lucide-git-branch","trailing-icon":"i-lucide-chevron-down",class:"min-w-36 max-w-48 font-mono"},{default:p(()=>[e(M)?.message?(s(),l("span",Rs,[t("code",zs,o(e(M).shortSha),1),t("span",Us,o(e(M).message),1)])):a.modelValue?(s(),l("span",Es,o(a.modelValue.slice(0,7))+"…",1)):(s(),l("span",Vs,"baseline commit…"))]),_:1},8,["icon"])]),_:1},8,["open"])}}}),en=Object.assign(Ys,{__name:"CommitPicker"}),tn={class:"space-y-3"},sn={key:0,class:"space-y-1"},nn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide px-1"},an={class:"rounded-md border border-default overflow-hidden divide-y divide-default"},on={class:"text-xs text-gray-400 shrink-0"},ln={class:"text-xs text-gray-700 dark:text-gray-300 truncate"},rn={class:"space-y-1"},cn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide px-1"},un={key:0,class:"text-yellow-500 font-normal normal-case"},dn={class:"rounded-md border border-default overflow-hidden divide-y divide-default"},mn=["onClick"],fn={class:"text-xs font-mono flex-1 truncate text-gray-700 dark:text-gray-300"},pn={class:"text-xs text-gray-400 shrink-0 tabular-nums"},gn={key:0,class:"text-green-500"},xn={key:1,class:"text-gray-300 mx-0.5"},vn={key:2,class:"text-red-500"},yn={key:0,class:"border-t border-default overflow-x-auto max-h-96"},hn=Y({__name:"ScmChangesView",props:{changes:{}},setup(a){const I=g(new Set);function m(C){const d=new Set(I.value);d.has(C)?d.delete(C):d.add(C),I.value=d}return(C,d)=>{const w=ae,n=ke;return s(),l("div",tn,[a.changes.commits.length>0?(s(),l("div",sn,[t("p",nn,o(a.changes.commits.length)+" commit"+o(a.changes.commits.length===1?"":"s"),1),t("div",an,[(s(!0),l(L,null,Q(a.changes.commits,c=>(s(),l("div",{key:c.sha,class:"flex items-center gap-2 px-3 py-1.5"},[r(w,{name:"i-lucide-git-commit-horizontal",class:"size-3.5 text-gray-400 shrink-0"}),t("code",on,o(c.sha.slice(0,7)),1),t("span",ln,o(c.message),1)]))),128))])])):u("",!0),t("div",rn,[t("p",cn,[$(o(a.changes.files.length)+" file"+o(a.changes.files.length===1?"":"s")+" changed ",1),a.changes.patchesOmitted?(s(),l("span",un," — diff too large, file names only ")):u("",!0)]),t("div",dn,[(s(!0),l(L,null,Q(a.changes.files,c=>(s(),l("div",{key:c.filename},[t("button",{class:X(["w-full flex items-center gap-2 px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors",c.patch?"cursor-pointer":"cursor-default"]),onClick:_=>c.patch&&m(c.filename)},[r(w,{name:("scmFileStatusMeta"in C?C.scmFileStatusMeta:e(pe))(c.status).icon,class:X(["size-3.5 shrink-0",("scmFileStatusMeta"in C?C.scmFileStatusMeta:e(pe))(c.status).color])},null,8,["name","class"]),t("span",fn,o(c.filename),1),t("span",pn,[c.additions?(s(),l("span",gn,"+"+o(c.additions),1)):u("",!0),c.additions&&c.deletions?(s(),l("span",xn,"/")):u("",!0),c.deletions?(s(),l("span",vn,"-"+o(c.deletions),1)):u("",!0)]),c.patch?(s(),S(w,{key:0,name:e(I).has(c.filename)?"i-lucide-chevron-up":"i-lucide-chevron-down",class:"size-3.5 text-gray-400 shrink-0"},null,8,["name"])):u("",!0)],10,mn),c.patch&&e(I).has(c.filename)?(s(),l("div",yn,[r(n,{patch:c.patch},null,8,["patch"])])):u("",!0)]))),128))])])])}}}),_n=Object.assign(hn,{__name:"ScmChangesView"}),kn={class:"border border-default rounded-lg overflow-clip text-xs font-mono"},bn={class:"sticky top-0 z-10 flex items-center justify-between px-3 py-1.5 bg-elevated border-b border-default text-gray-600 dark:text-gray-300"},$n={class:"font-medium truncate"},Cn={class:"shrink-0 flex items-center gap-1.5 ml-2 text-[11px]"},wn={key:0,class:"text-green-600 dark:text-green-400"},Sn={key:1,class:"text-red-600 dark:text-red-400"},Tn={key:1,class:"px-3 py-2 text-gray-400 text-[11px]"},jn=Y({__name:"DiffFile",props:{file:{}},setup(a){return(I,m)=>{const C=ue,d=ke;return s(),l("div",kn,[t("div",bn,[t("span",$n,o(a.file.filename),1),t("span",Cn,[a.file.additions?(s(),l("span",wn,"+"+o(a.file.additions),1)):u("",!0),a.file.deletions?(s(),l("span",Sn,"-"+o(a.file.deletions),1)):u("",!0),r(C,{label:a.file.status,size:"xs",variant:"subtle",color:("scmFileStatusMeta"in I?I.scmFileStatusMeta:e(pe))(a.file.status).badgeColor},null,8,["label","color"])])]),a.file.patch?(s(),S(d,{key:0,patch:a.file.patch},null,8,["patch"])):(s(),l("div",Tn,"No patch available"))])}}}),In=Object.assign(jn,{__name:"DiffFile"}),Rn={class:"inline-flex items-center gap-1"},zn={class:"flex h-[72vh] overflow-hidden"},Un={class:"w-72 shrink-0 border-r border-default flex flex-col"},En={class:"p-2 border-b border-default space-y-2 shrink-0"},Vn={class:"flex items-center gap-2 text-xs text-gray-500"},An={class:"ml-auto"},Mn={key:2,class:"flex-1 overflow-y-auto flex flex-col"},Nn={key:0,class:"py-6 text-center text-sm text-gray-400 flex-1"},Bn=["onClick"],Fn=["checked","onChange"],Ln={class:"flex-1 min-w-0"},Pn={class:"text-xs font-medium leading-snug truncate"},Dn={class:"text-[10px] text-gray-400 leading-snug mt-0.5 flex items-center gap-1 min-w-0"},On={class:"text-primary shrink-0"},Hn={class:"truncate"},qn={key:0,class:"shrink-0"},Kn={key:1,class:"p-2 shrink-0 space-y-1.5"},Gn={key:0,class:"flex items-center gap-1.5 text-xs text-red-500 px-1"},Wn={class:"flex-1 overflow-y-auto flex flex-col min-w-0"},Jn={key:0,class:"flex-1 flex items-center justify-center text-gray-400 text-sm"},Qn={key:2,class:"flex-1 p-4 space-y-3"},Zn={key:0,class:"space-y-0.5 pb-3 border-b border-default"},Xn={class:"flex items-center gap-2"},Yn={class:"text-xs font-mono text-primary"},ea={class:"text-xs text-gray-400"},ta={class:"text-sm font-semibold"},sa={key:1,class:"text-sm text-gray-400 pt-2"},na={key:4,class:"flex-1 flex items-center justify-center text-sm text-gray-400"},aa={class:"flex items-center gap-3 w-full"},oa={class:"flex-1 flex items-center gap-2 text-sm text-gray-500 min-w-0"},la={class:"font-medium text-gray-700 dark:text-gray-200 shrink-0"},ra={class:"shrink-0"},ia={class:"text-green-600 dark:text-green-400 shrink-0 font-medium"},ca={class:"text-red-600 dark:text-red-400 shrink-0 font-medium"},ua={key:1,class:"text-gray-400 text-xs shrink-0"},da={key:1},me=50,ma=Y({__name:"CommitBrowserModal",props:{open:{type:Boolean},clusterId:{},initialSelected:{},autoSelectedShas:{}},emits:["update:open","confirm"],setup(a,{emit:I}){const m=a,C=P(()=>new Set(m.autoSelectedShas??[])),d=I,w=g(""),n=g([]),c=g(me),_=g(!1),z=g(!1),A=g(!1),R=g(null),T=g(null),h=g(new Set),j=g(null),x=it({}),M=g(null),B=g(!1),O=g(null),F=P(()=>n.value.find(k=>k.sha===j.value)??null),q=P(()=>Se(n.value,w.value)),E=P(()=>{let k=0,i=0,ee=0,b=0;for(const V of h.value){if(!(V in x)){b++;continue}const H=x[V];H&&(k+=H.files.length,i+=H.files.reduce((G,W)=>G+W.additions,0),ee+=H.files.reduce((G,W)=>G+W.deletions,0))}return{files:k,linesAdded:i,linesRemoved:ee,unreviewed:b}});async function D(k){k?(z.value=!0,R.value=null):(A.value=!0,T.value=null);try{const i=await $fetch(`/api/failure-clusters/${m.clusterId}/commits`,{query:{limit:c.value}});n.value=i.commits,_.value=i.hasMore??!1,i.error&&!i.commits.length&&(k?R.value=i.error:T.value=i.error),k&&i.commits[0]&&f(i.commits[0].sha)}catch(i){k?R.value=de(i):T.value=de(i)}finally{z.value=!1,A.value=!1}}async function U(){c.value+=me,await D(!1)}oe(()=>m.open,async k=>{if(k){if(h.value=new Set(m.initialSelected??[]),n.value.length){!j.value&&n.value[0]&&f(n.value[0].sha);return}c.value=me,await D(!0)}});async function f(k){if(j.value!==k){if(j.value=k,O.value=null,k in x){M.value=x[k],B.value=!1;return}M.value=null,B.value=!0;try{const i=await $fetch(`/api/failure-clusters/${m.clusterId}/commit-diff`,{query:{sha:k}});x[k]=i,j.value===k&&(M.value=i)}catch(i){j.value===k&&(O.value=de(i))}finally{j.value===k&&(B.value=!1)}}}function v(k){const i=new Set(h.value);i.has(k)?i.delete(k):i.add(k),h.value=i}function N(){h.value=new Set(q.value.map(k=>k.sha))}function K(){h.value=new Set}function Z(){d("confirm",[...h.value]),d("update:open",!1)}return(k,i)=>{const ee=ge,b=$e,V=Rt,H=ce,G=zt,W=ue,te=ae,se=In,le=Te;return s(),S(le,{open:a.open,title:"Browse commits",ui:{content:"max-w-6xl",body:"p-0 overflow-hidden"},"onUpdate:open":i[4]||(i[4]=y=>d("update:open",y))},{title:p(()=>[t("span",Rn,[i[5]||(i[5]=$("Browse commits ",-1)),r(ee,{topic:"cluster.commit-browser"})])]),body:p(()=>[t("div",zn,[t("div",Un,[t("div",En,[r(b,{modelValue:e(w),"onUpdate:modelValue":i[0]||(i[0]=y=>J(w)?w.value=y:null),placeholder:"Search commits…",size:"xs",icon:"i-lucide-search"},null,8,["modelValue"]),t("div",Vn,[t("button",{class:"hover:text-primary transition-colors",onClick:N},"All"),i[6]||(i[6]=t("span",null,"·",-1)),t("button",{class:"hover:text-primary transition-colors",onClick:K},"None"),t("span",An,o(e(h).size>0?`${e(h).size} selected`:"none selected"),1)])]),e(z)?(s(),S(V,{key:0,text:"Loading…",padded:!1,class:"flex-1"})):e(R)?(s(),S(G,{key:1,text:e(R),padded:!1,class:"flex-1 p-4"},{action:p(()=>[r(H,{size:"xs",color:"neutral",variant:"outline",onClick:i[1]||(i[1]=y=>D(!0))},{default:p(()=>[...i[7]||(i[7]=[$(" Retry ",-1)])]),_:1})]),_:1},8,["text"])):(s(),l("div",Mn,[e(q).length===0?(s(),l("div",Nn,o(e(w)?"No commits match":"No commits"),1)):u("",!0),(s(!0),l(L,null,Q(e(q),y=>(s(),l("button",{key:y.sha,class:X(["w-full text-left px-2.5 py-2 flex items-start gap-2.5 hover:bg-elevated transition-colors border-b border-default/50 last:border-0 shrink-0",e(j)===y.sha?"bg-elevated":""]),onClick:ne=>f(y.sha)},[t("input",{type:"checkbox",checked:e(h).has(y.sha),class:"mt-0.5 shrink-0 cursor-pointer accent-primary",onClick:i[2]||(i[2]=fe(()=>{},["stop"])),onChange:ne=>v(y.sha)},null,40,Fn),t("div",Ln,[t("p",Pn,o(y.message||"(no message)"),1),t("p",Dn,[t("code",On,o(y.shortSha),1),t("span",Hn,o(y.author),1),y.date?(s(),l("span",qn,"· "+o(e(ie)(y.date)),1)):u("",!0),e(C).has(y.sha)?(s(),S(W,{key:1,size:"xs",color:"info",variant:"soft",class:"shrink-0"},{default:p(()=>[...i[8]||(i[8]=[$(" auto ",-1)])]),_:1})):u("",!0)])])],10,Bn))),128)),e(_)&&!e(w)?(s(),l("div",Kn,[e(T)?(s(),l("p",Gn,[r(te,{name:"i-lucide-circle-alert",class:"size-3.5 shrink-0"}),$(" "+o(e(T)),1)])):u("",!0),r(H,{size:"xs",color:"neutral",variant:"outline",block:"",loading:e(A),onClick:U},{default:p(()=>[...i[9]||(i[9]=[$(" Load more ",-1)])]),_:1},8,["loading"])])):u("",!0)]))]),t("div",Wn,[e(j)?e(B)?(s(),S(V,{key:1,text:"Loading diff…",padded:!1,class:"flex-1"})):e(M)?(s(),l("div",Qn,[e(F)?(s(),l("div",Zn,[t("div",Xn,[t("code",Yn,o(e(F).shortSha),1),t("span",ea,[$(o(e(F).author),1),e(F).date?(s(),l(L,{key:0},[$(" · "+o(e(ie)(e(F).date)),1)],64)):u("",!0)])]),t("p",ta,o(e(F).message),1)])):u("",!0),e(M).files.length===0?(s(),l("div",sa,"No file changes in this commit")):u("",!0),(s(!0),l(L,null,Q(e(M).files,y=>(s(),S(se,{key:y.filename,file:y},null,8,["file"]))),128))])):e(O)?(s(),S(G,{key:3,text:e(O),padded:!1,class:"flex-1 p-6"},{action:p(()=>[...i[10]||(i[10]=[t("p",{class:"text-xs text-gray-400"},"Click the commit again to retry",-1)])]),_:1},8,["text"])):(s(),l("div",na," Diff not available for this commit ")):(s(),l("div",Jn," Select a commit to view its diff "))])])]),footer:p(()=>[t("div",aa,[t("div",oa,[e(h).size>0?(s(),l(L,{key:0},[t("span",la,o(e(h).size)+" commit"+o(e(h).size===1?"":"s"),1),e(E).files>0||e(E).linesAdded>0||e(E).linesRemoved>0?(s(),l(L,{key:0},[i[11]||(i[11]=t("span",{class:"text-gray-300 dark:text-gray-600"},"·",-1)),t("span",ra,o(e(E).files)+" file"+o(e(E).files===1?"":"s"),1),t("span",ia,"+"+o(e(E).linesAdded),1),t("span",ca,"-"+o(e(E).linesRemoved),1)],64)):u("",!0),e(E).unreviewed>0?(s(),l("span",ua," ("+o(e(E).unreviewed)+" unreviewed) ",1)):u("",!0)],64)):(s(),l("span",da,"No commits selected"))]),r(H,{color:"neutral",variant:"ghost",onClick:i[3]||(i[3]=y=>d("update:open",!1))},{default:p(()=>[...i[12]||(i[12]=[$(" Cancel ",-1)])]),_:1}),r(H,{color:"primary",disabled:e(h).size===0,onClick:Z},{default:p(()=>[...i[13]||(i[13]=[$(" Add to context ",-1)])]),_:1},8,["disabled"])])]),_:1},8,["open"])}}}),fa=Object.assign(ma,{__name:"CommitBrowserModal"});function je(a){return{scmStatus:P(()=>{const m=a.value?.scm;if(!m)return{color:"text-gray-400",icon:"i-lucide-git-branch",text:"Git context unavailable",detail:""};if(m.baseCommitUsed){if(m.filesCount===0)return{color:"text-yellow-500",icon:"i-lucide-git-branch-plus",text:`Manual baseline ${m.baseCommitUsed.slice(0,7)} · fetch failed`,detail:"network error or missing SCM token (check AI settings)"};const w=m.patchesOmitted?", no patches (diff too large)":m.patchesTruncated?`, ${m.patchedFilesCount} with patches (some cut)`:`, ${m.patchedFilesCount} with patches`;return{color:"text-blue-500",icon:"i-lucide-git-branch-plus",text:`Manual baseline ${m.baseCommitUsed.slice(0,7)} · ${m.filesCount} files${w}`,detail:m.hasLastGreen?"overrides last passing run baseline":"no last passing run"}}if(!m.hasLastGreen)return{color:"text-gray-400",icon:"i-lucide-git-branch",text:"No last passing run",detail:"enter a baseline commit below to enable diff"};if(!m.hasCommitRange)return{color:"text-gray-400",icon:"i-lucide-git-branch",text:"No commit range",detail:"reporter did not send SCM metadata"};if(!m.provider)return{color:"text-yellow-500",icon:"i-lucide-git-branch",text:"Unsupported SCM host",detail:"only GitHub, GitLab and Bitbucket are supported"};if(m.filesCount===0)return{color:"text-yellow-500",icon:"i-lucide-git-branch",text:`${m.provider} · fetch failed`,detail:"network error or missing SCM token (check AI settings)"};if(m.patchesOmitted)return{color:"text-yellow-500",icon:"i-lucide-git-branch",text:`${m.provider} · ${m.filesCount} files`,detail:"diff too large — file list only, no patches"};const C=m.patchesTruncated?", some patches cut (budget)":"",d=m.commitsCount>0?` · ${m.commitsCount} commit${m.commitsCount>1?"s":""}`:"";return{color:"text-green-500",icon:"i-lucide-git-branch",text:`${m.provider} · ${m.filesCount} files · ${m.patchedFilesCount} with patches${C}${d}`,detail:""}})}}const pa={class:"space-y-3"},ga={class:"pb-2 border-b border-default"},xa={class:"flex items-center gap-2 flex-wrap"},va={class:"text-xs text-gray-500 font-medium shrink-0 inline-flex items-center gap-1"},ya={class:"flex items-center gap-1.5 ml-auto"},ha={key:0,class:"flex items-center gap-1 px-2 py-0.5 rounded-full bg-primary/10 text-primary text-xs font-medium"},_a={key:0,class:"flex items-start gap-1.5 text-xs px-2 py-1.5 rounded-md bg-elevated border border-default"},ka={key:0,class:"text-gray-400 ml-1"},ba={key:1,class:"flex items-center justify-center py-6"},$a={key:3,class:"text-xs text-gray-400 text-center py-4"},Ca=Y({__name:"ClusterInvestigation",setup(a){const{clusterId:I,baseCommit:m,selectedCommitShas:C,autoSelectedCommits:d,baseCommitIsPinned:w,coverage:n,scmChanges:c,contextLoading:_,refreshContext:z}=Ut(),A=g(!1),{scmStatus:R}=je(n);return(T,h)=>{const j=ge,x=en,M=ae,B=Ce,O=ce,F=_n,q=fa;return s(),l(L,null,[t("div",pa,[t("div",ga,[t("div",xa,[t("span",va,[h[5]||(h[5]=$(" Baseline ",-1)),r(j,{topic:"cluster.baseline"})]),r(x,{modelValue:e(m),"onUpdate:modelValue":h[0]||(h[0]=E=>J(m)?m.value=E:null),"cluster-id":e(I)},null,8,["modelValue","cluster-id"]),e(w)?(s(),S(B,{key:0,text:"Baseline commit pinned for this cluster"},{default:p(()=>[r(M,{name:"i-lucide-pin",class:"size-3.5 text-primary shrink-0"})]),_:1})):u("",!0),t("div",ya,[e(C).length?(s(),l("div",ha,[r(M,{name:"i-lucide-git-commit-horizontal",class:"size-3"}),t("span",null,o(e(C).length)+" commit"+o(e(C).length===1?"":"s"),1),t("button",{class:"ml-0.5 hover:opacity-70 transition-opacity",onClick:h[1]||(h[1]=E=>C.value=[])},[r(M,{name:"i-lucide-x",class:"size-3"})])])):u("",!0),r(O,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-list",onClick:h[2]||(h[2]=E=>A.value=!0)},{default:p(()=>[...h[6]||(h[6]=[$(" Browse ",-1)])]),_:1}),r(O,{icon:"i-lucide-refresh-cw",size:"xs",color:"neutral",variant:"outline",loading:e(_),onClick:e(z)},null,8,["loading","onClick"])])])]),e(n)?(s(),l("div",_a,[r(M,{name:e(R).icon,class:X(["size-3.5 mt-0.5 shrink-0",e(R).color])},null,8,["name","class"]),t("div",null,[t("span",{class:X(e(R).color)},o(e(R).text),3),e(R).detail?(s(),l("span",ka,"— "+o(e(R).detail),1)):u("",!0)])])):u("",!0),e(_)&&!e(c)?(s(),l("div",ba,[r(M,{name:"i-lucide-loader-circle",class:"size-4 animate-spin text-gray-400"})])):e(c)?(s(),S(F,{key:2,changes:e(c)},null,8,["changes"])):e(n)&&!e(_)&&!e(c)?(s(),l("p",$a," No changes found in this range. ")):u("",!0)]),r(q,{open:e(A),"onUpdate:open":h[3]||(h[3]=E=>J(A)?A.value=E:null),"cluster-id":e(I),"initial-selected":e(C),"auto-selected-shas":e(d),onConfirm:h[4]||(h[4]=E=>C.value=E)},null,8,["open","cluster-id","initial-selected","auto-selected-shas"])],64)}}}),wa=Object.assign(Ca,{__name:"ClusterInvestigation"}),Sa={class:"flex flex-col h-[60vh]"},Ta={class:"flex items-center gap-3 px-4 py-2.5 border-b border-default text-sm shrink-0"},ja={key:0,class:"ml-auto text-xs text-gray-500"},Ia={class:"flex-1 overflow-y-auto"},Ra={class:"w-full text-sm"},za=["onClick"],Ua={class:"px-4 py-2.5"},Ea=["checked","onChange"],Va={class:"px-2 py-2.5 min-w-0"},Aa={class:"truncate font-medium text-gray-800 dark:text-gray-200 max-w-[24rem]"},Ma={class:"px-2 py-2.5 text-gray-500 text-xs max-w-[16rem] hidden sm:table-cell"},Na={class:"px-2 py-2.5 text-right text-gray-500 text-xs"},Ba={key:0},Fa={class:"shrink-0 border-t border-default px-4 py-3 space-y-1.5"},La={key:0,class:"shrink-0 px-4 pb-3 flex items-center gap-1.5 text-xs text-red-500"},Pa={class:"flex items-center gap-3 w-full"},Da=Y({__name:"ClusterExtractCasesModal",props:{open:{type:Boolean},clusterId:{},affectedTestCases:{},projectKey:{},projectName:{}},emits:["update:open","extracted"],setup(a,{emit:I}){const m=a,C=I,d=ct(),w=g(new Set),n=g(""),c=g(!1),_=g(null);function z(){w.value=new Set(m.affectedTestCases.map(j=>j.testCaseId))}function A(){w.value=new Set}function R(j){const x=new Set(w.value);x.has(j)?x.delete(j):x.add(j),w.value=x}oe(()=>m.open,j=>{j&&(A(),n.value="",_.value=null)});const T=P(()=>w.value.size);async function h(){if(T.value!==0){c.value=!0,_.value=null;try{await $fetch(`/api/failure-clusters/${m.clusterId}/extract-cases`,{method:"POST",body:{testCaseIds:[...w.value],triageNote:n.value.trim()||void 0}}),d.add({title:`Extracted ${T.value} test ${T.value===1?"case":"cases"}`,color:"success"}),C("extracted"),C("update:open",!1)}catch(j){_.value=de(j)}finally{c.value=!1}}}return(j,x)=>{const M=be,B=xe,O=we,F=ae,q=ce,E=Te;return s(),S(E,{open:a.open,title:"Extract test cases",ui:{content:"max-w-4xl",body:"p-0 flex flex-col overflow-hidden"},"onUpdate:open":x[4]||(x[4]=D=>C("update:open",D))},{body:p(()=>[t("div",Sa,[t("div",Ta,[t("button",{class:"text-xs font-medium text-primary hover:underline",onClick:z},"Select all"),x[5]||(x[5]=t("span",{class:"text-gray-300 dark:text-gray-600"},"·",-1)),t("button",{class:"text-xs font-medium text-primary hover:underline",onClick:A},"Deselect all"),e(T)>0?(s(),l("span",ja,o(e(T))+" selected ",1)):u("",!0)]),t("div",Ia,[t("table",Ra,[x[8]||(x[8]=t("thead",{class:"sticky top-0 bg-gray-50 dark:bg-gray-800 border-b border-default"},[t("tr",null,[t("th",{class:"w-10 px-4 py-2.5"}),t("th",{class:"text-left px-2 py-2.5 font-medium text-gray-500 text-xs uppercase tracking-wide"},"Test"),t("th",{class:"text-left px-2 py-2.5 font-medium text-gray-500 text-xs uppercase tracking-wide hidden sm:table-cell"}," File "),t("th",{class:"text-right px-2 py-2.5 font-medium text-gray-500 text-xs uppercase tracking-wide w-20"}," Occurrences ")])],-1)),t("tbody",null,[(s(!0),l(L,null,Q(a.affectedTestCases,D=>(s(),l("tr",{key:D.testCaseId,class:"border-b border-default/50 hover:bg-elevated transition-colors cursor-pointer",onClick:U=>R(D.testCaseId)},[t("td",Ua,[t("input",{type:"checkbox",checked:e(w).has(D.testCaseId),class:"shrink-0 cursor-pointer accent-primary",onClick:x[0]||(x[0]=fe(()=>{},["stop"])),onChange:U=>R(D.testCaseId)},null,40,Ea)]),t("td",Va,[t("p",Aa,o(D.title),1),r(M,{to:`/test-cases/${D.testCaseId}`,class:"text-[10px] text-primary hover:underline mt-0.5 inline-block",onClick:x[1]||(x[1]=fe(()=>{},["stop"]))},{default:p(()=>[...x[6]||(x[6]=[$(" View details ",-1)])]),_:1},8,["to"])]),t("td",Ma,[r(B,{"file-path":D.filePath,"project-key":a.projectKey,"project-name":a.projectName,class:"max-w-full"},null,8,["file-path","project-key","project-name"])]),t("td",Na,o(D.runCount),1)],8,za))),128)),a.affectedTestCases.length===0?(s(),l("tr",Ba,[...x[7]||(x[7]=[t("td",{colspan:"4",class:"px-4 py-8 text-center text-gray-400 text-sm"},"No test cases in this cluster.",-1)])])):u("",!0)])])]),t("div",Fa,[x[9]||(x[9]=t("label",{class:"text-xs font-medium text-gray-500 uppercase tracking-wide"},"Triage note (optional)",-1)),r(O,{modelValue:e(n),"onUpdate:modelValue":x[2]||(x[2]=D=>J(n)?n.value=D:null),placeholder:"Add a note explaining why these tests were extracted…",rows:2,class:"text-sm w-full"},null,8,["modelValue"])]),e(_)?(s(),l("p",La,[r(F,{name:"i-lucide-circle-alert",class:"size-3.5 shrink-0"}),$(" "+o(e(_)),1)])):u("",!0)])]),footer:p(()=>[t("div",Pa,[x[11]||(x[11]=t("div",{class:"flex-1"},null,-1)),r(q,{color:"neutral",variant:"ghost",disabled:e(c),onClick:x[3]||(x[3]=D=>C("update:open",!1))},{default:p(()=>[...x[10]||(x[10]=[$(" Cancel ",-1)])]),_:1},8,["disabled"]),r(q,{color:"warning",disabled:e(T)===0,loading:e(c),onClick:h},{default:p(()=>[$(" Extract"+o(e(T)>0?` ${e(T)}`:""),1)]),_:1},8,["disabled","loading"])])]),_:1},8,["open"])}}}),Oa=Object.assign(Da,{__name:"ClusterExtractCasesModal"}),Ha={key:0,class:"flex flex-col h-full min-h-0 max-xl:overflow-y-auto xl:overflow-hidden"},qa={class:"border-b border-default shrink-0"},Ka={class:"grid grid-cols-1 xl:grid-cols-[3fr_2fr] gap-4 p-1 xl:flex-1 xl:min-h-0 xl:overflow-hidden"},Ga={class:"space-y-4 xl:overflow-y-auto"},Wa={class:"font-mono text-xs"},Ja=["innerHTML"],Qa={class:"inline-flex items-center gap-1.5"},Za={class:"xl:overflow-y-auto"},Xa={key:1,class:"flex items-center justify-center h-64 text-gray-500"},Oo=Y({__name:"[id]",async setup(a){let I,m;const C=ut(),d=parseInt(String(C.params.id)),w=Et(d),{data:n,refresh:c}=([I,m]=dt(()=>Nt(`/api/failure-clusters/${d}`,"$Io0yQjh0TH")),I=await I,m(),I);mt(P(()=>({title:`${n.value?.signature??"Failure cluster"} — Piwi Dashboard`})));const _=g(n.value?.status??"open"),z=g(n.value?.triageNote??""),A=g(!1);oe(()=>n.value?.status,b=>{b&&(_.value=b)}),oe(()=>n.value?.triageNote,b=>{z.value=b??""});const R=P(()=>_.value!==(n.value?.status??"open")||z.value.trim()!==(n.value?.triageNote??""));async function T(){A.value=!0;try{await $fetch(`/api/failure-clusters/${d}/status`,{method:"PATCH",body:{status:_.value,triageNote:z.value.trim()||null}}),c()}finally{A.value=!1}}const h=g(!1);function j(){h.value=!1,c()}const{copyRich:x,copied:M}=Qe();function B(){const b=n.value;if(!b)return;const V=window.location.href,H=le=>le.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),G=[b.errorType,`${b.occurrences} occurrence${b.occurrences===1?"":"s"}`,`${b.affectedTests} test${b.affectedTests===1?"":"s"} affected`,b.status!=="open"?b.status:null].filter(Boolean).join(" · "),W=b.diagnosis?.status==="completed"&&b.diagnosis.summary?`AI diagnosis (${b.diagnosis.category??"unknown"}, ${b.diagnosis.confidence??"?"} confidence): ${b.diagnosis.summary}`:null,te=[`❌ Failure cluster: ${b.signature}`,G,"",...b.sampleError?["Sample error:",ve(b.sampleError),""]:[],...W?[W,""]:[],`Cluster: ${V}`].join(`
|
|
3
|
+
`),se=[`<p><strong>❌ Failure cluster</strong>: <code>${H(b.signature)}</code></p>`,`<p><em>${H(G)}</em></p>`,b.sampleError?`<p><strong>Sample error:</strong></p><pre>${he(b.sampleError)}</pre>`:"",W?`<p><strong>AI diagnosis</strong> (${H(b.diagnosis?.category??"unknown")}, ${H(b.diagnosis?.confidence??"?")} confidence):<br>${H(b.diagnosis.summary)}</p>`:"",`<p>🔗 <a href="${V}">View failure cluster</a></p>`].join("");x(te,se,{toast:"Failure cluster copied"})}const O=P(()=>{const b=n.value?.sampleError;return b?ve(b).split(`
|
|
4
|
+
`).find(V=>V.trim())??"":""}),{scmStatus:F}=je(w.coverage),q=P(()=>(n.value?.affectedTestCases??[]).map(b=>({filePath:b.filePath,title:b.title,line:null,projectName:null}))),E=P(()=>At(q.value)),{copy:D,copied:U}=Mt(),f=g(null),v=g(null),N=g(null),K=g(null),Z=g(null),k=g(null),i={sampleError:()=>f.value,executionError:()=>f.value,environmentDiff:()=>K.value,visualDiff:()=>Z.value,domSnapshot:()=>k.value,scmInvestigation:()=>N.value,selectedCommits:()=>N.value,topSuspectedCommit:()=>N.value,failingAction:()=>N.value,affectedTests:()=>v.value,testSource:()=>v.value,sourceFiles:()=>v.value,steps:()=>v.value,failingSteps:()=>v.value,console:()=>v.value,networkRequests:()=>v.value,serverTraces:()=>v.value,ariaSnapshot:()=>v.value,screenshots:()=>v.value,tracePointers:()=>v.value,artifacts:()=>v.value};ft(bt,{canLocate:b=>b in i,open:b=>i[b]?.()?.reveal()});const ee=P(()=>[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects",to:"/projects"},...n.value?.project?[{label:n.value.project.label||n.value.project.name||"Project",to:`/projects/${n.value.project.id}?tab=failure-clusters`}]:[{label:"Project"}],{label:`Failure cluster #${d}`}]);return(b,V)=>{const H=De,G=Oe,W=st,te=ce,se=Ce,le=gt,y=is,ne=Ze,Ie=Xe,Re=Ye,ze=et,Ue=tt,Ee=xe,Ve=ue,Ae=Tt,Me=Is,Ne=ae,Be=wa,Fe=Vt,Le=pt,Pe=Oa;return s(),l(L,null,[r(Le,{id:"failure-cluster-detail"},{header:p(()=>[r(le,null,{leading:p(()=>[r(H),r(G,{items:e(ee)},null,8,["items"])]),right:p(()=>[e(n)?(s(),S(W,{key:0,endpoint:`/api/failure-clusters/${e(n).id}/export`,"base-name":`piwi-cluster-${e(n).id}`},null,8,["endpoint","base-name"])):u("",!0),e(n)?(s(),S(se,{key:1,text:e(M)?"Copied!":"Copy failure cluster"},{default:p(()=>[r(te,{size:"sm",variant:"ghost",color:"neutral",icon:e(M)?"i-lucide-check":"i-lucide-clipboard",onClick:B},null,8,["icon"])]),_:1},8,["text"])):u("",!0)]),_:1})]),body:p(()=>[e(n)?(s(),l("div",Ha,[t("div",qa,[r(y,{cluster:e(n),"triage-status":e(_),"triage-note":e(z),"triage-saving":e(A),"triage-changed":e(R),"onUpdate:triageStatus":V[0]||(V[0]=re=>_.value=re),"onUpdate:triageNote":V[1]||(V[1]=re=>z.value=re),onSaveTriage:T},null,8,["cluster","triage-status","triage-note","triage-saving","triage-changed"])]),t("div",Ka,[t("div",Ga,[e(n).sampleError?(s(),S(ne,{key:0,ref_key:"errorSection",ref:f,"storage-key":"cluster-error",icon:"i-lucide-circle-x","icon-class":"text-red-500",title:"Error message"},{folded:p(()=>[t("span",Wa,o(e(O)),1)]),default:p(()=>[t("div",{class:"text-xs font-mono overflow-x-auto whitespace-pre-wrap",innerHTML:e(he)(e(n).sampleError)},null,8,Ja)]),_:1},512)):u("",!0),e(n).affectedTestCases?.length&&e(n).affectedTestCases[0]?.recentTestRunsCaseId?(s(),S(Ie,{key:1,ref:"locatorSection","storage-key":"cluster-locators","run-id":e(n).lastSeenRunId,"test-runs-case-id":e(n).affectedTestCases[0].recentTestRunsCaseId,"affected-count":e(n).affectedTestCases.length},null,8,["run-id","test-runs-case-id","affected-count"])):u("",!0),e(n).affectedTestCases?.length&&e(n).affectedTestCases[0]?.recentTestRunsCaseId?(s(),S(Re,{key:2,ref_key:"envDiffSection",ref:K,"storage-key":"cluster-env-diff","run-id":e(n).lastSeenRunId,"test-runs-case-id":e(n).affectedTestCases[0].recentTestRunsCaseId},null,8,["run-id","test-runs-case-id"])):u("",!0),e(n).affectedTestCases?.length&&e(n).affectedTestCases[0]?.recentTestRunsCaseId?(s(),S(ze,{key:3,ref_key:"visualDiffSection",ref:Z,"storage-key":"cluster-visual-diff","run-id":e(n).lastSeenRunId,"test-runs-case-id":e(n).affectedTestCases[0].recentTestRunsCaseId},null,8,["run-id","test-runs-case-id"])):u("",!0),e(n).affectedTestCases?.length&&e(n).affectedTestCases[0]?.recentTestRunsCaseId?(s(),S(Ue,{key:4,ref_key:"domSnapshotSection",ref:k,"storage-key":"cluster-dom-snapshot","run-id":e(n).lastSeenRunId,"test-runs-case-id":e(n).affectedTestCases[0].recentTestRunsCaseId},null,8,["run-id","test-runs-case-id"])):u("",!0),e(n).affectedTestCases?.length?(s(),S(ne,{key:5,ref_key:"evidenceSection",ref:v,"storage-key":"cluster-evidence",icon:"i-lucide-flask-conical",title:"Test evidence",help:"cluster.evidence"},{folded:p(()=>[$(o(e(n).affectedTests)+" "+o(e(n).affectedTests===1?"test":"tests")+" · "+o(e(n).occurrences)+" occurrence"+o(e(n).occurrences===1?"":"s")+" · ",1),e(n).affectedTestCases[0]?.filePath?(s(),S(Ee,{key:0,"file-path":e(n).affectedTestCases[0].filePath,"project-key":e(n).project?.id,"project-name":e(n).project?.name,class:"text-xs"},null,8,["file-path","project-key","project-name"])):u("",!0)]),actions:p(()=>[r(Ve,{color:"neutral",variant:"subtle",size:"sm"},{default:p(()=>[$(o(e(n).affectedTestCases.length)+" "+o(e(n).affectedTestCases.length===1?"test":"tests"),1)]),_:1}),r(te,{size:"xs",variant:"outline",color:"neutral",icon:e(U)?"i-lucide-check":"i-lucide-play",title:e(U)?"Copied!":("copyPreview"in b?b.copyPreview:e(St))(e(E)),onClick:V[2]||(V[2]=re=>e(D)(e(E),{toast:"Retry command copied"}))},{default:p(()=>[...V[5]||(V[5]=[$(" Copy retry command ",-1)])]),_:1},8,["icon","title"]),r(Ae,{"project-id":e(n).project?.id,"project-label":e(n).project?.name,cases:e(q),label:"Run affected locally","preset-options":{mode:"grep"}},null,8,["project-id","project-label","cases"]),r(se,{text:"Unlink incorrectly clustered test cases from this group"},{default:p(()=>[r(te,{size:"xs",color:"warning",variant:"outline",icon:"i-lucide-arrow-up-from-line",onClick:V[3]||(V[3]=re=>h.value=!0)},{default:p(()=>[...V[6]||(V[6]=[$(" Extract ",-1)])]),_:1})]),_:1})]),default:p(()=>[r(Me,{"affected-test-cases":e(n).affectedTestCases,"project-key":e(n).project?.id,"project-name":e(n).project?.name},null,8,["affected-test-cases","project-key","project-name"])]),_:1},512)):u("",!0),r(ne,{ref_key:"scmSection",ref:N,"storage-key":"cluster-scm",icon:"i-lucide-git-compare-arrows",title:"What changed",help:"cluster.scm"},{folded:p(()=>[t("span",Qa,[r(Ne,{name:e(F).icon,class:X(["size-3.5 shrink-0",e(F).color])},null,8,["name","class"]),t("span",{class:X(e(F).color)},o(e(F).text),3)])]),default:p(()=>[r(Be)]),_:1},512)]),t("div",Za,[r(Fe,{"cluster-id":e(d),"last-seen-run-id":e(n)?.lastSeenRunId,"affected-test-cases":e(n)?.affectedTestCases??[]},null,8,["cluster-id","last-seen-run-id","affected-test-cases"])])])])):(s(),l("div",Xa,"Cluster not found."))]),_:1}),e(n)?(s(),S(Pe,{key:0,open:e(h),"cluster-id":e(d),"affected-test-cases":e(n).affectedTestCases??[],"project-key":e(n).project?.id,"project-name":e(n).project?.name,"onUpdate:open":V[4]||(V[4]=re=>h.value=re),onExtracted:j},null,8,["open","cluster-id","affected-test-cases","project-key","project-name"])):u("",!0)],64)}}});export{Oo as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as ra}from"./9N6hSApy.js";import{aP as oa,d as oe,Z as Ve,Y as Re,U as pe,o as i,c as y,j as s,g as o,V as M,k as e,W as X,C as Pe,X as ge,f as w,v as k,F as re,h as K,aA as ia,aH as na,$ as ze,aQ as qe,S as da,r as b,aR as ua,aD as ca,a2 as pa,a3 as ma,a5 as fa,a6 as va,a7 as ya,aL as ba,aS as ha,i as d,q as D,m as V,t as _,y as Se,ag as $e,a8 as ga,aI as be,w as _a,b as ka,O as wa,B as Ca,D as xa,al as Aa,_ as qa,s as $a,p as Ua,E as Ia,l as he,M as Va,A as Ra}from"./h49q_GXF.js";import{_ as Pa}from"./DGyGmFem.js";import{_ as za}from"./DzM9oeLa.js";import{_ as Sa}from"./DLNNAYfu.js";import{_ as ja}from"./BKJetfRH.js";import{_ as Ka}from"./DDN2tt0a.js";import{_ as Da}from"./hzsG6cAc.js";import{_ as Ea}from"./jjOqY9Tv.js";import{_ as Fa}from"./BtSJxOdh.js";import{_ as Ba}from"./Dj-TetcW.js";import{L as Ue}from"./D4UlSVir.js";import{u as je}from"./xbO0VmDX.js";import{V as Ke}from"./BNAHBHbY.js";import{u as De}from"./B9FSuKdA.js";import{R as Ga}from"./Hot1UcKY.js";import{_ as Ma}from"./BH-ym1CI.js";import{p as ue,i as le}from"./CD3R-ggS.js";import{a as Oa,u as Ta}from"./Cd8r0xk5.js";import{o as La,s as ce,l as Ie,_ as Na,u as Ha}from"./DGnQ69wW.js";import"./B6s20NbT.js";import"./CWoSSKhQ.js";import"./BjaRappk.js";const Wa="radio.select";function Ya(j,A,u){oa(Wa,u,{originalEvent:j,value:A})}var Qa=oe({inheritAttrs:!1,__name:"Radio",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},checked:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:checked","select"],setup(j,{emit:A}){const u=j,h=A,g=Ve(u,"checked",h,{passive:u.checked===void 0}),{value:l}=Re(u),{forwardRef:I,currentElement:x}=pe(),R=je(x),C=De(),P=K(()=>u.id&&x.value?document.querySelector(`[for="${u.id}"]`)?.innerText??u.value:void 0);function q(p){u.disabled||Ya(p,u.value,z=>{h("select",z),!z?.defaultPrevented&&(g.value=!0,R.value&&z.stopPropagation())})}return(p,z)=>(i(),y(re,null,[s(e(ge),X({id:p.id,ref:e(I),role:"radio",type:p.as==="button"?"button":void 0,as:p.as,"aria-checked":e(g)??!1,"aria-label":P.value,"as-child":p.asChild,disabled:p.disabled?"":void 0,"data-state":e(g)?"checked":"unchecked","data-disabled":p.disabled?"":void 0,value:e(l),required:p.required,name:p.name},{...e(C),...p.$attrs},{onClick:Pe(q,["stop"])}),{default:o(()=>[M(p.$slots,"default",{checked:e(g)})]),_:3},16,["id","type","as","aria-checked","aria-label","as-child","disabled","data-state","data-disabled","value","required","name"]),e(R)&&p.name?(i(),w(e(Ke),X({key:0,type:"radio",tabindex:"-1",value:e(l),checked:!!e(g),name:p.name,disabled:p.disabled,required:p.required},e(C)),null,16,["value","checked","name","disabled","required"])):k("v-if",!0)],64))}}),Ja=Qa;const[Xa,Za]=ze("RadioGroupRoot");var et=oe({__name:"RadioGroupRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue"],setup(j,{emit:A}){const u=j,h=A,{forwardRef:g,currentElement:l}=pe(),I=Ve(u,"modelValue",h,{defaultValue:u.defaultValue,passive:u.modelValue===void 0}),{disabled:x,loop:R,orientation:C,name:P,required:q,dir:p}=Re(u),z=ia(p),$=je(l);return Za({modelValue:I,changeModelValue:m=>{I.value=m},disabled:x,loop:R,orientation:C,name:P?.value,required:q}),(m,c)=>(i(),w(e(na),{"as-child":"",orientation:e(C),dir:e(z),loop:e(R)},{default:o(()=>[s(e(ge),{ref:e(g),role:"radiogroup","data-disabled":e(x)?"":void 0,"as-child":m.asChild,as:m.as,"aria-orientation":e(C),"aria-required":e(q),dir:e(z)},{default:o(()=>[M(m.$slots,"default",{modelValue:e(I)}),e($)&&e(P)?(i(),w(e(Ke),{key:0,required:e(q),disabled:e(x),value:e(I),name:e(P)},null,8,["required","disabled","value","name"])):k("v-if",!0)]),_:3},8,["data-disabled","as-child","as","aria-orientation","aria-required","dir"])]),_:3},8,["orientation","dir","loop"]))}}),at=et;const[tt,st]=ze("RadioGroupItem");var lt=oe({inheritAttrs:!1,__name:"RadioGroupItem",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["select"],setup(j,{emit:A}){const u=j,h=A,{forwardRef:g,currentElement:l}=pe(),I=Xa(),x=K(()=>I.disabled.value||u.disabled),R=K(()=>I.required.value||u.required),C=K(()=>ua(I.modelValue?.value,u.value));st({disabled:x,checked:C});const P=b(!1),q=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"];qe("keydown",$=>{q.includes($.key)&&(P.value=!0)}),qe("keyup",()=>{P.value=!1});function p(){setTimeout(()=>{P.value&&l.value?.click()},0)}const z=De();return($,m)=>(i(),w(e(Ga),{checked:C.value,disabled:x.value,"as-child":"",focusable:!x.value,active:C.value},{default:o(()=>[s(Ja,X({...e(z),...$.$attrs,...u},{ref:e(g),checked:C.value,required:R.value,disabled:x.value,"onUpdate:checked":m[0]||(m[0]=c=>e(I).changeModelValue($.value)),onSelect:m[1]||(m[1]=c=>h("select",c)),onKeydown:m[2]||(m[2]=da(Pe(()=>{},["prevent"]),["enter"])),onFocus:p}),{default:o(()=>[M($.$slots,"default",{checked:C.value,required:R.value,disabled:x.value})]),_:3},16,["checked","required","disabled"])]),_:3},8,["checked","disabled","focusable","active"]))}}),rt=lt,ot=oe({__name:"RadioGroupIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(j){const{forwardRef:A}=pe(),u=tt();return(h,g)=>(i(),w(e(ca),{present:h.forceMount||e(u).checked.value},{default:o(()=>[s(e(ge),X({ref:e(A),"data-state":e(u).checked.value?"checked":"unchecked","data-disabled":e(u).disabled.value?"":void 0,"as-child":h.asChild,as:h.as},h.$attrs),{default:o(()=>[M(h.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),it=ot;const nt={slots:{root:"relative",fieldset:"flex gap-x-2",legend:"mb-1 block font-medium text-default",item:"flex items-start",container:"flex items-center",base:"rounded-full ring ring-inset ring-accented overflow-hidden focus-visible:outline-3",indicator:"flex items-center justify-center size-full after:bg-default after:rounded-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"outline-primary/25 focus-visible:ring-primary",indicator:"bg-primary"},secondary:{base:"outline-secondary/25 focus-visible:ring-secondary",indicator:"bg-secondary"},success:{base:"outline-success/25 focus-visible:ring-success",indicator:"bg-success"},info:{base:"outline-info/25 focus-visible:ring-info",indicator:"bg-info"},warning:{base:"outline-warning/25 focus-visible:ring-warning",indicator:"bg-warning"},error:{base:"outline-error/25 focus-visible:ring-error",indicator:"bg-error"},neutral:{base:"outline-inverted/25 focus-visible:ring-inverted",indicator:"bg-inverted"}},variant:{list:{item:""},card:{item:"border border-muted rounded-lg"},table:{item:"border border-muted"}},orientation:{horizontal:{fieldset:"flex-row"},vertical:{fieldset:"flex-col"}},indicator:{start:{item:"flex-row",wrapper:"ms-2"},end:{item:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3",item:"text-xs",container:"h-4",indicator:"after:size-1"},sm:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3.5",item:"text-xs",container:"h-4",indicator:"after:size-1"},md:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},lg:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4.5",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},xl:{fieldset:"gap-y-1.5",legend:"text-base",base:"size-5",item:"text-base",container:"h-6",indicator:"after:size-2"}},highlight:{true:""},disabled:{true:{item:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},required:{true:{legend:"after:content-['*'] after:ms-0.5 after:text-error"}}},compoundVariants:[{size:"xs",variant:["card","table"],class:{item:"p-2.5"}},{size:"sm",variant:["card","table"],class:{item:"p-3"}},{size:"md",variant:["card","table"],class:{item:"p-3.5"}},{size:"lg",variant:["card","table"],class:{item:"p-4"}},{size:"xl",variant:["card","table"],class:{item:"p-4.5"}},{orientation:"horizontal",variant:"table",class:{item:"first-of-type:rounded-s-lg last-of-type:rounded-e-lg",fieldset:"gap-0 -space-x-px"}},{orientation:"vertical",variant:"table",class:{item:"first-of-type:rounded-t-lg last-of-type:rounded-b-lg",fieldset:"gap-0 -space-y-px"}},{color:"primary",variant:"card",class:{item:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{item:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{item:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{item:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{item:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{item:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{item:"has-data-[state=checked]:border-inverted"}},{color:"primary",variant:"table",class:{item:"has-data-[state=checked]:bg-primary/10 has-data-[state=checked]:border-primary/50 has-data-[state=checked]:z-[1]"}},{color:"secondary",variant:"table",class:{item:"has-data-[state=checked]:bg-secondary/10 has-data-[state=checked]:border-secondary/50 has-data-[state=checked]:z-[1]"}},{color:"success",variant:"table",class:{item:"has-data-[state=checked]:bg-success/10 has-data-[state=checked]:border-success/50 has-data-[state=checked]:z-[1]"}},{color:"info",variant:"table",class:{item:"has-data-[state=checked]:bg-info/10 has-data-[state=checked]:border-info/50 has-data-[state=checked]:z-[1]"}},{color:"warning",variant:"table",class:{item:"has-data-[state=checked]:bg-warning/10 has-data-[state=checked]:border-warning/50 has-data-[state=checked]:z-[1]"}},{color:"error",variant:"table",class:{item:"has-data-[state=checked]:bg-error/10 has-data-[state=checked]:border-error/50 has-data-[state=checked]:z-[1]"}},{color:"neutral",variant:"table",class:{item:"has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]"}},{variant:["card","table"],disabled:!0,class:{item:"cursor-not-allowed"}},{color:"primary",highlight:!0,class:{base:"ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring-success"}},{color:"info",highlight:!0,class:{base:"ring-info"}},{color:"warning",highlight:!0,class:{base:"ring-warning"}},{color:"error",highlight:!0,class:{base:"ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring-inverted"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},dt={__name:"URadioGroup",props:{as:{type:null,required:!1},legend:{type:String,required:!1},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},items:{type:null,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},size:{type:null,required:!1},variant:{type:null,required:!1},color:{type:null,required:!1},highlight:{type:Boolean,required:!1},orientation:{type:null,required:!1,default:"vertical"},indicator:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["change","update:modelValue"],setup(j,{emit:A}){const u=j,h=A,g=pa(),l=ma("radioGroup",u),I=fa(),x=va(ya(l,"as","loop","required"),h),{emitFormChange:R,emitFormInput:C,color:P,name:q,size:p,highlight:z,id:$,disabled:m,ariaAttrs:c}=ba(u,{bind:!1}),O=$.value??ha(),S=K(()=>ga({extend:nt,...I.ui?.radioGroup||{}})({size:p.value??l.size,color:P.value??l.color,highlight:z.value??l.highlight,disabled:m.value,required:l.required,orientation:l.orientation,variant:l.variant,indicator:l.indicator}));function me(f){if(f===null)return{id:`${O}:null`,value:void 0,label:void 0};if(typeof f=="string"||typeof f=="number"||typeof f=="bigint")return{id:`${O}:${f}`,value:String(f),label:String(f)};const G=be(f,l.valueKey),n=be(f,l.labelKey),T=be(f,l.descriptionKey);return{...f,value:G,label:n,description:T,id:`${O}:${G}`}}const fe=K(()=>l.items?l.items.map(me):[]);function B(f){const G=new Event("change",{target:{value:f}});h("change",G),R(),C()}return(f,G)=>(i(),w(e(at),X({id:e(O)},e(x),{"model-value":e(l).modelValue,"default-value":e(l).defaultValue,orientation:e(l).orientation,name:e(q),disabled:e(m),"data-slot":"root",class:S.value.root({class:[e(l).ui?.root,e(l).class]}),"onUpdate:modelValue":B}),{default:o(()=>[d("fieldset",X({"data-slot":"fieldset",class:S.value.fieldset({class:e(l).ui?.fieldset})},e(c)),[e(l).legend||g.legend?(i(),y("legend",{key:0,"data-slot":"legend",class:D(S.value.legend({class:e(l).ui?.legend}))},[M(f.$slots,"legend",{},()=>[V(_(e(l).legend),1)])],2)):k("",!0),(i(!0),y(re,null,Se(fe.value,n=>(i(),w($e(!e(l).variant||e(l).variant==="list"?"div":e(Ue)),{key:n.value,"data-slot":"item",class:D(S.value.item({class:[e(l).ui?.item,n.ui?.item,n.class],disabled:n.disabled||e(m)}))},{default:o(()=>[d("div",{"data-slot":"container",class:D(S.value.container({class:[e(l).ui?.container,n.ui?.container]}))},[s(e(rt),{id:n.id,value:n.value,disabled:n.disabled||e(m),"data-slot":"base",class:D(S.value.base({class:[e(l).ui?.base,n.ui?.base],disabled:n.disabled||e(m)}))},{default:o(()=>[s(e(it),{"data-slot":"indicator",class:D(S.value.indicator({class:[e(l).ui?.indicator,n.ui?.indicator]}))},null,8,["class"])]),_:2},1032,["id","value","disabled","class"])],2),n.label||g.label||n.description||g.description?(i(),y("div",{key:0,"data-slot":"wrapper",class:D(S.value.wrapper({class:[e(l).ui?.wrapper,n.ui?.wrapper]}))},[n.label||g.label?(i(),w($e(!e(l).variant||e(l).variant==="list"?e(Ue):"p"),{key:0,for:n.id,"data-slot":"label",class:D(S.value.label({class:[e(l).ui?.label,n.ui?.label],disabled:n.disabled||e(m)}))},{default:o(()=>[M(f.$slots,"label",{item:n,modelValue:e(l).modelValue},()=>[V(_(n.label),1)])]),_:2},1032,["for","class"])):k("",!0),n.description||g.description?(i(),y("p",{key:1,"data-slot":"description",class:D(S.value.description({class:[e(l).ui?.description,n.ui?.description],disabled:n.disabled||e(m)}))},[M(f.$slots,"description",{item:n,modelValue:e(l).modelValue},()=>[V(_(n.description),1)])],2)):k("",!0)],2)):k("",!0)]),_:2},1032,["class"]))),128))],16)]),_:3},16,["id","model-value","default-value","orientation","name","disabled","class"]))}},ut={class:"space-y-6"},ct={class:"text-muted"},pt={key:0,class:"flex items-center gap-1 text-sm"},mt={key:1,class:"text-muted"},ft={class:"text-sm text-muted"},vt={class:"flex items-center gap-1 justify-end"},yt={class:"text-center py-12"},bt={class:"flex justify-center mb-4"},ht={class:"flex w-full justify-end gap-2"},gt={class:"inline-flex items-center gap-1"},_t={class:"space-y-4"},kt={key:0,class:"rounded-lg border border-primary/30 bg-primary/5 p-4 space-y-4"},wt={key:0,class:"space-y-4"},Ct={class:"rounded-lg bg-elevated p-3 font-mono text-sm break-all select-all"},xt={class:"flex gap-2"},At={key:1,class:"space-y-3"},qt={class:"flex gap-2"},$t={key:1,class:"space-y-2"},Ut={class:"flex-1 min-w-0"},It={class:"flex items-center gap-2"},Vt={class:"font-medium truncate"},Rt={class:"text-xs text-muted mt-1 flex flex-wrap gap-x-4"},Pt={class:"font-mono"},zt={key:0},St={key:1,class:"italic"},jt={key:2,class:"text-center text-muted py-6 text-sm"},Kt={class:"inline-flex items-center gap-1"},Dt={class:"space-y-6"},Et={key:0,class:"text-[var(--ui-text-muted)]"},Ft={key:1},ds=oe({__name:"users",async setup(j){let A,u;const{data:h,refresh:g}=([A,u]=_a(()=>Ta("/api/users","$JTvQRs7G1d")),A=await A,u(),A),l=ka(),{copy:I}=Oa(),{authState:x}=wa(),R=Ra(),C=K(()=>h.value?.users||[]),P=K(()=>h.value?.authEnabled||!1),q=K(()=>R.public.authEnabled?x.value.user?.role==="administrator":!0),p=K(()=>x.value.user?.id??null),z=[{accessorKey:"username",header:le("Username")},{accessorKey:"name",header:le("Name")},{accessorKey:"email",header:le("Email")},{accessorKey:"role",header:le("Role")},{accessorKey:"createdAt",header:le("Created")},{accessorKey:"actions",header:""}],$=b(!1),m=La({username:ce().min(3,"Username must be at least 3 characters"),password:Ha([ce().min(6,"Password must be at least 6 characters"),Ie("").transform(()=>{})]).optional(),role:Na(["administrator","reporter","user"]),name:ce().optional(),email:ce().email().optional().or(Ie(""))}),c=Va({username:"",password:"",role:"user",name:"",email:""}),O=[{label:"Administrator",value:"administrator"},{label:"Reporter",value:"reporter"},{label:"User",value:"user"}];async function S(){try{const r={...c,password:c.password||void 0};await $fetch("/api/users",{method:"POST",body:r}),l.add({title:"User created",description:`User ${c.username} has been created successfully`,color:"success"}),$.value=!1,c.username="",c.password="",c.role="user",c.name="",c.email="",await g()}catch(r){const a=r&&typeof r=="object"&&"data"in r?r.data?.message:void 0;l.add({title:"Failed to create user",description:a||"An error occurred",color:"error"})}}async function me(r){f.value=r,B.value=!0}async function fe(){const r=f.value;if(r){B.value=!1,f.value=null;try{await $fetch(`/api/users/${r.id}`,{method:"DELETE"}),l.add({title:"User deleted",description:`User ${r.username} has been deleted`,color:"success"}),await g()}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to delete user",description:U||"An error occurred",color:"error"})}}}const B=b(!1),f=b(null);function G(r){switch(r){case"administrator":return"primary";case"reporter":return"info";case"user":return"neutral";default:return"neutral"}}const n=b(null),T=b(!1),ie=b([]);async function Ee(r){n.value=r,T.value=!0,await _e(r.id)}async function _e(r){try{const a=await $fetch(`/api/users/${r}/api-keys`);ie.value=a.apiKeys}catch{ie.value=[]}}async function ke(){n.value&&await _e(n.value.id)}const L=b(!1),N=b(""),H=b(""),E=b(null),we=b("http://localhost:3000");Ca(()=>{we.value=window.location.origin});const Fe=K(()=>`['@piwitests/reporter', {
|
|
1
|
+
import{_ as ra}from"./BBhrClA9.js";import{aR as oa,d as oe,Z as Ve,Y as Re,U as pe,o as i,c as y,j as s,g as o,V as M,k as e,W as X,C as Pe,X as ge,f as w,v as k,F as re,h as K,aB as ia,aI as na,$ as ze,aS as qe,S as da,r as b,aT as ua,aE as ca,a2 as pa,a3 as ma,a5 as fa,a6 as va,a7 as ya,aN as ba,aU as ha,i as d,q as D,m as V,t as _,y as Se,ag as $e,a8 as ga,aJ as be,w as _a,b as ka,O as wa,B as Ca,D as xa,am as Aa,_ as qa,s as $a,p as Ua,E as Ia,l as he,M as Va,A as Ra}from"./C5TrTuWv.js";import{_ as Pa}from"./Bg93Rnts.js";import{_ as za}from"./DbmGeOus.js";import{_ as Sa}from"./DMAiMrNr.js";import{_ as ja}from"./DH5H1DJh.js";import{_ as Ka}from"./Ce5_Tq63.js";import{_ as Da}from"./B_r0xHVS.js";import{_ as Ea}from"./6Z_ZwH8I.js";import{_ as Fa}from"./B69RP95P.js";import{_ as Ba}from"./B1LUinhp.js";import{L as Ue}from"./D_y2VS8k.js";import{u as je}from"./DaNC-xl1.js";import{V as Ke}from"./DMsm-RGQ.js";import{u as De}from"./03FA4-rI.js";import{R as Ga}from"./DEvYVl9M.js";import{_ as Ma}from"./DvEsAuE9.js";import{p as ue,i as le}from"./DMtrFQqi.js";import{a as Oa,u as Ta}from"./T5UuMUxA.js";import{o as La,s as ce,l as Ie,_ as Na,u as Ha}from"./DGnQ69wW.js";import"./V9p3z39z.js";import"./C8Paf_V1.js";import"./BjaRappk.js";const Wa="radio.select";function Ya(j,A,u){oa(Wa,u,{originalEvent:j,value:A})}var Ja=oe({inheritAttrs:!1,__name:"Radio",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},checked:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:checked","select"],setup(j,{emit:A}){const u=j,h=A,g=Ve(u,"checked",h,{passive:u.checked===void 0}),{value:l}=Re(u),{forwardRef:I,currentElement:x}=pe(),R=je(x),C=De(),P=K(()=>u.id&&x.value?document.querySelector(`[for="${u.id}"]`)?.innerText??u.value:void 0);function q(p){u.disabled||Ya(p,u.value,z=>{h("select",z),!z?.defaultPrevented&&(g.value=!0,R.value&&z.stopPropagation())})}return(p,z)=>(i(),y(re,null,[s(e(ge),X({id:p.id,ref:e(I),role:"radio",type:p.as==="button"?"button":void 0,as:p.as,"aria-checked":e(g)??!1,"aria-label":P.value,"as-child":p.asChild,disabled:p.disabled?"":void 0,"data-state":e(g)?"checked":"unchecked","data-disabled":p.disabled?"":void 0,value:e(l),required:p.required,name:p.name},{...e(C),...p.$attrs},{onClick:Pe(q,["stop"])}),{default:o(()=>[M(p.$slots,"default",{checked:e(g)})]),_:3},16,["id","type","as","aria-checked","aria-label","as-child","disabled","data-state","data-disabled","value","required","name"]),e(R)&&p.name?(i(),w(e(Ke),X({key:0,type:"radio",tabindex:"-1",value:e(l),checked:!!e(g),name:p.name,disabled:p.disabled,required:p.required},e(C)),null,16,["value","checked","name","disabled","required"])):k("v-if",!0)],64))}}),Qa=Ja;const[Xa,Za]=ze("RadioGroupRoot");var et=oe({__name:"RadioGroupRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue"],setup(j,{emit:A}){const u=j,h=A,{forwardRef:g,currentElement:l}=pe(),I=Ve(u,"modelValue",h,{defaultValue:u.defaultValue,passive:u.modelValue===void 0}),{disabled:x,loop:R,orientation:C,name:P,required:q,dir:p}=Re(u),z=ia(p),$=je(l);return Za({modelValue:I,changeModelValue:m=>{I.value=m},disabled:x,loop:R,orientation:C,name:P?.value,required:q}),(m,c)=>(i(),w(e(na),{"as-child":"",orientation:e(C),dir:e(z),loop:e(R)},{default:o(()=>[s(e(ge),{ref:e(g),role:"radiogroup","data-disabled":e(x)?"":void 0,"as-child":m.asChild,as:m.as,"aria-orientation":e(C),"aria-required":e(q),dir:e(z)},{default:o(()=>[M(m.$slots,"default",{modelValue:e(I)}),e($)&&e(P)?(i(),w(e(Ke),{key:0,required:e(q),disabled:e(x),value:e(I),name:e(P)},null,8,["required","disabled","value","name"])):k("v-if",!0)]),_:3},8,["data-disabled","as-child","as","aria-orientation","aria-required","dir"])]),_:3},8,["orientation","dir","loop"]))}}),at=et;const[tt,st]=ze("RadioGroupItem");var lt=oe({inheritAttrs:!1,__name:"RadioGroupItem",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["select"],setup(j,{emit:A}){const u=j,h=A,{forwardRef:g,currentElement:l}=pe(),I=Xa(),x=K(()=>I.disabled.value||u.disabled),R=K(()=>I.required.value||u.required),C=K(()=>ua(I.modelValue?.value,u.value));st({disabled:x,checked:C});const P=b(!1),q=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"];qe("keydown",$=>{q.includes($.key)&&(P.value=!0)}),qe("keyup",()=>{P.value=!1});function p(){setTimeout(()=>{P.value&&l.value?.click()},0)}const z=De();return($,m)=>(i(),w(e(Ga),{checked:C.value,disabled:x.value,"as-child":"",focusable:!x.value,active:C.value},{default:o(()=>[s(Qa,X({...e(z),...$.$attrs,...u},{ref:e(g),checked:C.value,required:R.value,disabled:x.value,"onUpdate:checked":m[0]||(m[0]=c=>e(I).changeModelValue($.value)),onSelect:m[1]||(m[1]=c=>h("select",c)),onKeydown:m[2]||(m[2]=da(Pe(()=>{},["prevent"]),["enter"])),onFocus:p}),{default:o(()=>[M($.$slots,"default",{checked:C.value,required:R.value,disabled:x.value})]),_:3},16,["checked","required","disabled"])]),_:3},8,["checked","disabled","focusable","active"]))}}),rt=lt,ot=oe({__name:"RadioGroupIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(j){const{forwardRef:A}=pe(),u=tt();return(h,g)=>(i(),w(e(ca),{present:h.forceMount||e(u).checked.value},{default:o(()=>[s(e(ge),X({ref:e(A),"data-state":e(u).checked.value?"checked":"unchecked","data-disabled":e(u).disabled.value?"":void 0,"as-child":h.asChild,as:h.as},h.$attrs),{default:o(()=>[M(h.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),it=ot;const nt={slots:{root:"relative",fieldset:"flex gap-x-2",legend:"mb-1 block font-medium text-default",item:"flex items-start",container:"flex items-center",base:"rounded-full ring ring-inset ring-accented overflow-hidden focus-visible:outline-3",indicator:"flex items-center justify-center size-full after:bg-default after:rounded-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"outline-primary/25 focus-visible:ring-primary",indicator:"bg-primary"},secondary:{base:"outline-secondary/25 focus-visible:ring-secondary",indicator:"bg-secondary"},success:{base:"outline-success/25 focus-visible:ring-success",indicator:"bg-success"},info:{base:"outline-info/25 focus-visible:ring-info",indicator:"bg-info"},warning:{base:"outline-warning/25 focus-visible:ring-warning",indicator:"bg-warning"},error:{base:"outline-error/25 focus-visible:ring-error",indicator:"bg-error"},neutral:{base:"outline-inverted/25 focus-visible:ring-inverted",indicator:"bg-inverted"}},variant:{list:{item:""},card:{item:"border border-muted rounded-lg"},table:{item:"border border-muted"}},orientation:{horizontal:{fieldset:"flex-row"},vertical:{fieldset:"flex-col"}},indicator:{start:{item:"flex-row",wrapper:"ms-2"},end:{item:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3",item:"text-xs",container:"h-4",indicator:"after:size-1"},sm:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3.5",item:"text-xs",container:"h-4",indicator:"after:size-1"},md:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},lg:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4.5",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},xl:{fieldset:"gap-y-1.5",legend:"text-base",base:"size-5",item:"text-base",container:"h-6",indicator:"after:size-2"}},highlight:{true:""},disabled:{true:{item:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},required:{true:{legend:"after:content-['*'] after:ms-0.5 after:text-error"}}},compoundVariants:[{size:"xs",variant:["card","table"],class:{item:"p-2.5"}},{size:"sm",variant:["card","table"],class:{item:"p-3"}},{size:"md",variant:["card","table"],class:{item:"p-3.5"}},{size:"lg",variant:["card","table"],class:{item:"p-4"}},{size:"xl",variant:["card","table"],class:{item:"p-4.5"}},{orientation:"horizontal",variant:"table",class:{item:"first-of-type:rounded-s-lg last-of-type:rounded-e-lg",fieldset:"gap-0 -space-x-px"}},{orientation:"vertical",variant:"table",class:{item:"first-of-type:rounded-t-lg last-of-type:rounded-b-lg",fieldset:"gap-0 -space-y-px"}},{color:"primary",variant:"card",class:{item:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{item:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{item:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{item:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{item:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{item:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{item:"has-data-[state=checked]:border-inverted"}},{color:"primary",variant:"table",class:{item:"has-data-[state=checked]:bg-primary/10 has-data-[state=checked]:border-primary/50 has-data-[state=checked]:z-[1]"}},{color:"secondary",variant:"table",class:{item:"has-data-[state=checked]:bg-secondary/10 has-data-[state=checked]:border-secondary/50 has-data-[state=checked]:z-[1]"}},{color:"success",variant:"table",class:{item:"has-data-[state=checked]:bg-success/10 has-data-[state=checked]:border-success/50 has-data-[state=checked]:z-[1]"}},{color:"info",variant:"table",class:{item:"has-data-[state=checked]:bg-info/10 has-data-[state=checked]:border-info/50 has-data-[state=checked]:z-[1]"}},{color:"warning",variant:"table",class:{item:"has-data-[state=checked]:bg-warning/10 has-data-[state=checked]:border-warning/50 has-data-[state=checked]:z-[1]"}},{color:"error",variant:"table",class:{item:"has-data-[state=checked]:bg-error/10 has-data-[state=checked]:border-error/50 has-data-[state=checked]:z-[1]"}},{color:"neutral",variant:"table",class:{item:"has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]"}},{variant:["card","table"],disabled:!0,class:{item:"cursor-not-allowed"}},{color:"primary",highlight:!0,class:{base:"ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring-success"}},{color:"info",highlight:!0,class:{base:"ring-info"}},{color:"warning",highlight:!0,class:{base:"ring-warning"}},{color:"error",highlight:!0,class:{base:"ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring-inverted"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},dt={__name:"URadioGroup",props:{as:{type:null,required:!1},legend:{type:String,required:!1},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},items:{type:null,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},size:{type:null,required:!1},variant:{type:null,required:!1},color:{type:null,required:!1},highlight:{type:Boolean,required:!1},orientation:{type:null,required:!1,default:"vertical"},indicator:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["change","update:modelValue"],setup(j,{emit:A}){const u=j,h=A,g=pa(),l=ma("radioGroup",u),I=fa(),x=va(ya(l,"as","loop","required"),h),{emitFormChange:R,emitFormInput:C,color:P,name:q,size:p,highlight:z,id:$,disabled:m,ariaAttrs:c}=ba(u,{bind:!1}),O=$.value??ha(),S=K(()=>ga({extend:nt,...I.ui?.radioGroup||{}})({size:p.value??l.size,color:P.value??l.color,highlight:z.value??l.highlight,disabled:m.value,required:l.required,orientation:l.orientation,variant:l.variant,indicator:l.indicator}));function me(f){if(f===null)return{id:`${O}:null`,value:void 0,label:void 0};if(typeof f=="string"||typeof f=="number"||typeof f=="bigint")return{id:`${O}:${f}`,value:String(f),label:String(f)};const G=be(f,l.valueKey),n=be(f,l.labelKey),T=be(f,l.descriptionKey);return{...f,value:G,label:n,description:T,id:`${O}:${G}`}}const fe=K(()=>l.items?l.items.map(me):[]);function B(f){const G=new Event("change",{target:{value:f}});h("change",G),R(),C()}return(f,G)=>(i(),w(e(at),X({id:e(O)},e(x),{"model-value":e(l).modelValue,"default-value":e(l).defaultValue,orientation:e(l).orientation,name:e(q),disabled:e(m),"data-slot":"root",class:S.value.root({class:[e(l).ui?.root,e(l).class]}),"onUpdate:modelValue":B}),{default:o(()=>[d("fieldset",X({"data-slot":"fieldset",class:S.value.fieldset({class:e(l).ui?.fieldset})},e(c)),[e(l).legend||g.legend?(i(),y("legend",{key:0,"data-slot":"legend",class:D(S.value.legend({class:e(l).ui?.legend}))},[M(f.$slots,"legend",{},()=>[V(_(e(l).legend),1)])],2)):k("",!0),(i(!0),y(re,null,Se(fe.value,n=>(i(),w($e(!e(l).variant||e(l).variant==="list"?"div":e(Ue)),{key:n.value,"data-slot":"item",class:D(S.value.item({class:[e(l).ui?.item,n.ui?.item,n.class],disabled:n.disabled||e(m)}))},{default:o(()=>[d("div",{"data-slot":"container",class:D(S.value.container({class:[e(l).ui?.container,n.ui?.container]}))},[s(e(rt),{id:n.id,value:n.value,disabled:n.disabled||e(m),"data-slot":"base",class:D(S.value.base({class:[e(l).ui?.base,n.ui?.base],disabled:n.disabled||e(m)}))},{default:o(()=>[s(e(it),{"data-slot":"indicator",class:D(S.value.indicator({class:[e(l).ui?.indicator,n.ui?.indicator]}))},null,8,["class"])]),_:2},1032,["id","value","disabled","class"])],2),n.label||g.label||n.description||g.description?(i(),y("div",{key:0,"data-slot":"wrapper",class:D(S.value.wrapper({class:[e(l).ui?.wrapper,n.ui?.wrapper]}))},[n.label||g.label?(i(),w($e(!e(l).variant||e(l).variant==="list"?e(Ue):"p"),{key:0,for:n.id,"data-slot":"label",class:D(S.value.label({class:[e(l).ui?.label,n.ui?.label],disabled:n.disabled||e(m)}))},{default:o(()=>[M(f.$slots,"label",{item:n,modelValue:e(l).modelValue},()=>[V(_(n.label),1)])]),_:2},1032,["for","class"])):k("",!0),n.description||g.description?(i(),y("p",{key:1,"data-slot":"description",class:D(S.value.description({class:[e(l).ui?.description,n.ui?.description],disabled:n.disabled||e(m)}))},[M(f.$slots,"description",{item:n,modelValue:e(l).modelValue},()=>[V(_(n.description),1)])],2)):k("",!0)],2)):k("",!0)]),_:2},1032,["class"]))),128))],16)]),_:3},16,["id","model-value","default-value","orientation","name","disabled","class"]))}},ut={class:"space-y-6"},ct={class:"text-muted"},pt={key:0,class:"flex items-center gap-1 text-sm"},mt={key:1,class:"text-muted"},ft={class:"text-sm text-muted"},vt={class:"flex items-center gap-1 justify-end"},yt={class:"text-center py-12"},bt={class:"flex justify-center mb-4"},ht={class:"flex w-full justify-end gap-2"},gt={class:"inline-flex items-center gap-1"},_t={class:"space-y-4"},kt={key:0,class:"rounded-lg border border-primary/30 bg-primary/5 p-4 space-y-4"},wt={key:0,class:"space-y-4"},Ct={class:"rounded-lg bg-elevated p-3 font-mono text-sm break-all select-all"},xt={class:"flex gap-2"},At={key:1,class:"space-y-3"},qt={class:"flex gap-2"},$t={key:1,class:"space-y-2"},Ut={class:"flex-1 min-w-0"},It={class:"flex items-center gap-2"},Vt={class:"font-medium truncate"},Rt={class:"text-xs text-muted mt-1 flex flex-wrap gap-x-4"},Pt={class:"font-mono"},zt={key:0},St={key:1,class:"italic"},jt={key:2,class:"text-center text-muted py-6 text-sm"},Kt={class:"inline-flex items-center gap-1"},Dt={class:"space-y-6"},Et={key:0,class:"text-[var(--ui-text-muted)]"},Ft={key:1},ds=oe({__name:"users",async setup(j){let A,u;const{data:h,refresh:g}=([A,u]=_a(()=>Ta("/api/users","$JTvQRs7G1d")),A=await A,u(),A),l=ka(),{copy:I}=Oa(),{authState:x}=wa(),R=Ra(),C=K(()=>h.value?.users||[]),P=K(()=>h.value?.authEnabled||!1),q=K(()=>R.public.authEnabled?x.value.user?.role==="administrator":!0),p=K(()=>x.value.user?.id??null),z=[{accessorKey:"username",header:le("Username")},{accessorKey:"name",header:le("Name")},{accessorKey:"email",header:le("Email")},{accessorKey:"role",header:le("Role")},{accessorKey:"createdAt",header:le("Created")},{accessorKey:"actions",header:""}],$=b(!1),m=La({username:ce().min(3,"Username must be at least 3 characters"),password:Ha([ce().min(6,"Password must be at least 6 characters"),Ie("").transform(()=>{})]).optional(),role:Na(["administrator","reporter","user"]),name:ce().optional(),email:ce().email().optional().or(Ie(""))}),c=Va({username:"",password:"",role:"user",name:"",email:""}),O=[{label:"Administrator",value:"administrator"},{label:"Reporter",value:"reporter"},{label:"User",value:"user"}];async function S(){try{const r={...c,password:c.password||void 0};await $fetch("/api/users",{method:"POST",body:r}),l.add({title:"User created",description:`User ${c.username} has been created successfully`,color:"success"}),$.value=!1,c.username="",c.password="",c.role="user",c.name="",c.email="",await g()}catch(r){const a=r&&typeof r=="object"&&"data"in r?r.data?.message:void 0;l.add({title:"Failed to create user",description:a||"An error occurred",color:"error"})}}async function me(r){f.value=r,B.value=!0}async function fe(){const r=f.value;if(r){B.value=!1,f.value=null;try{await $fetch(`/api/users/${r.id}`,{method:"DELETE"}),l.add({title:"User deleted",description:`User ${r.username} has been deleted`,color:"success"}),await g()}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to delete user",description:U||"An error occurred",color:"error"})}}}const B=b(!1),f=b(null);function G(r){switch(r){case"administrator":return"primary";case"reporter":return"info";case"user":return"neutral";default:return"neutral"}}const n=b(null),T=b(!1),ie=b([]);async function Ee(r){n.value=r,T.value=!0,await _e(r.id)}async function _e(r){try{const a=await $fetch(`/api/users/${r}/api-keys`);ie.value=a.apiKeys}catch{ie.value=[]}}async function ke(){n.value&&await _e(n.value.id)}const L=b(!1),N=b(""),H=b(""),E=b(null),we=b("http://localhost:3000");Ca(()=>{we.value=window.location.origin});const Fe=K(()=>`['@piwitests/reporter', {
|
|
2
2
|
serverUrl: '${we.value}',
|
|
3
3
|
apiKey: '${E.value??""}', // or set PIWI_API_KEY and use apiKey: process.env.PIWI_API_KEY
|
|
4
|
-
}]`);function Be(){N.value="",H.value="",E.value=null,L.value=!0}function Ce(){L.value=!1,E.value=null}async function Ge(){if(n.value)try{const r={name:N.value};H.value&&(r.expiresAt=new Date(H.value).toISOString());const a=await $fetch(`/api/users/${n.value.id}/api-keys`,{method:"POST",body:r});E.value=a.key,await ke()}catch(r){const a=r&&typeof r=="object"&&"data"in r?r.data?.message:void 0;l.add({title:"Failed to create API key",description:a||"An error occurred",color:"error"})}}function Me(){I(E.value,{toast:"API key copied to clipboard"})}function Oe(){E.value=null,L.value=!1}const Z=b(!1),ee=b(null);function Te(r){ee.value=r,Z.value=!0}async function Le(){if(!n.value||!ee.value)return;const r=ee.value;Z.value=!1,ee.value=null;try{await $fetch(`/api/users/${n.value.id}/api-keys/${r.id}`,{method:"DELETE"}),l.add({title:"API key revoked",description:`Key "${r.name}" has been revoked`,color:"success"}),await ke()}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to revoke API key",description:U||"An error occurred",color:"error"})}}function Ne(r){return R.public.authEnabled?q.value||p.value===r.id:!0}const ne=b(null),ae=b(!1),W=b(!1),Y=b([]),Q=b([]);async function He(r){ne.value=r,ae.value=!0;try{const a=await $fetch("/api/projects/menu");Q.value=a.map(U=>({...U,label:U.label||U.name}))}catch{Q.value=[]}try{const a=await $fetch(`/api/users/${r.id}/projects`);W.value=a.global,Y.value=Q.value.filter(U=>a.projectIds.includes(U.id))}catch{W.value=!1,Y.value=[]}}async function We(){const r=ne.value;if(r)try{await $fetch(`/api/users/${r.id}/projects`,{method:"PUT",body:{global:W.value,projectIds:Y.value.map(a=>a.id)}}),l.add({title:"Project access updated",description:`Access for ${r.username} has been updated`,color:"success"}),ae.value=!1}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to update project access",description:U||"An error occurred",color:"error"})}}const ve=b(null);async function Ye(r){if(!r.email){l.add({title:"No email address",description:"Set an email address for this user first.",color:"error"});return}ve.value=r.id;try{await $fetch(`/api/users/${r.id}/invite`,{method:"POST"}),l.add({title:"Invite sent",description:`Invitation sent to ${r.email}`,color:"success"})}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to send invite",description:U||"An error occurred",color:"error"})}finally{ve.value=null}}return(r,a)=>{const U=ra,v=qa,ye=Ua,Qe=$a,Je=Pa,Xe=za,xe=Sa,J=Ia,F=ja,Ze=Ka,ea=Da,te=Ea,se=xa,Ae=Fa,aa=Ba,ta=dt,sa=Aa("UDivider"),la=Ma;return i(),y(re,null,[d("div",ut,[e(P)?k("",!0):(i(),w(U,{key:0,icon:"i-lucide-info",color:"primary",variant:"subtle",title:"Authentication is disabled",description:"Authentication is currently disabled. You can manage users here, but they will only be used when authentication is enabled via the PIWI_AUTH_ENABLED environment variable."})),e(C).length>0?(i(),w(xe,{key:1,title:"Users",count:e(C).length,help:"settings.users"},{actions:o(()=>[e(q)?(i(),w(v,{key:0,label:"Add user",icon:"i-lucide-user-plus",size:"sm",onClick:a[0]||(a[0]=t=>$.value=!0)})):k("",!0)]),default:o(()=>[s(Xe,{"min-width":"44rem",bleed:!1},{default:o(()=>[s(Je,{data:e(C),columns:z,sticky:"",class:"max-h-[32rem]"},{"username-cell":o(({row:t})=>[V(_(t.original.username),1)]),"name-cell":o(({row:t})=>[d("span",ct,_(t.original.name||"-"),1)]),"email-cell":o(({row:t})=>[t.original.email?(i(),y("span",pt,[V(_(t.original.email)+" ",1),t.original.emailVerified?(i(),w(ye,{key:0,name:"i-lucide-circle-check-big",class:"size-3.5 text-success-500",title:"Email verified"})):k("",!0)])):(i(),y("span",mt,"—"))]),"role-cell":o(({row:t})=>[s(Qe,{color:G(t.original.role),variant:"subtle"},{default:o(()=>[V(_(t.original.role),1)]),_:2},1032,["color"])]),"createdAt-cell":o(({row:t})=>[d("span",ft,_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.original.createdAt,{dateOnly:!0})),1)]),"actions-cell":o(({row:t})=>[d("div",vt,[e(q)&&t.original.email&&!t.original.oauthProvider?(i(),w(v,{key:0,icon:"i-lucide-send",color:"neutral",variant:"ghost",size:"sm",title:"Send invite email","aria-label":"Send invite email",loading:e(ve)===t.original.id,onClick:de=>Ye(t.original)},null,8,["loading","onClick"])):k("",!0),e(q)&&t.original.role!=="administrator"?(i(),w(v,{key:1,icon:"i-lucide-folder-lock",color:"neutral",variant:"ghost",size:"sm",title:"Project access","aria-label":"Project access",onClick:de=>He(t.original)},null,8,["onClick"])):k("",!0),Ne(t.original)?(i(),w(v,{key:2,icon:"i-lucide-key",color:"neutral",variant:"ghost",size:"sm",title:"Manage API keys","aria-label":"Manage API keys",onClick:de=>Ee(t.original)},null,8,["onClick"])):k("",!0),e(q)?(i(),w(v,{key:3,icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"sm",title:"Delete user","aria-label":"Delete user",onClick:de=>me(t.original)},null,8,["onClick"])):k("",!0)])]),_:1},8,["data"])]),_:1})]),_:1},8,["count"])):(i(),w(xe,{key:2,title:"Users",count:0,help:"settings.users"},{default:o(()=>[d("div",yt,[d("div",bt,[s(ye,{name:"i-lucide-users",class:"text-4xl text-muted"})]),a[21]||(a[21]=d("h3",{class:"text-lg font-semibold mb-2"},"No users yet",-1)),a[22]||(a[22]=d("p",{class:"text-muted mb-4"},"Create your first user to get started with authentication",-1)),e(q)?(i(),w(v,{key:0,label:"Add user",icon:"i-lucide-user-plus",onClick:a[1]||(a[1]=t=>$.value=!0)})):k("",!0)])]),_:1}))]),s(se,null,{default:o(()=>[s(te,{open:e($),title:"Add new user","onUpdate:open":a[8]||(a[8]=t=>$.value=t)},{body:o(()=>[s(ea,{schema:e(m),state:e(c),class:"space-y-5"},{default:o(()=>[s(F,{label:"Username",name:"username",required:""},{default:o(()=>[s(J,{modelValue:e(c).username,"onUpdate:modelValue":a[2]||(a[2]=t=>e(c).username=t),placeholder:"Enter username",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Password",name:"password",description:"Leave blank to let the user set their own password via invite email"},{default:o(()=>[s(J,{modelValue:e(c).password,"onUpdate:modelValue":a[3]||(a[3]=t=>e(c).password=t),type:"password",placeholder:"Leave blank to send invite",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Display name",name:"name"},{default:o(()=>[s(J,{modelValue:e(c).name,"onUpdate:modelValue":a[4]||(a[4]=t=>e(c).name=t),placeholder:"Enter display name (optional)",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Email",name:"email",description:"Optional — needed for invites and notifications"},{default:o(()=>[s(J,{modelValue:e(c).email,"onUpdate:modelValue":a[5]||(a[5]=t=>e(c).email=t),type:"email",placeholder:"user@example.com (optional)",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Role",name:"role",required:""},{default:o(()=>[s(Ze,{modelValue:e(c).role,"onUpdate:modelValue":a[6]||(a[6]=t=>e(c).role=t),items:O,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1},8,["schema","state"])]),footer:o(()=>[d("div",ht,[s(v,{type:"button",color:"neutral",variant:"ghost",label:"Cancel",onClick:a[7]||(a[7]=t=>$.value=!1)}),s(v,{type:"submit",label:"Create user",icon:"i-lucide-user-plus",onClick:S})])]),_:1},8,["open"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(T),title:`API keys – ${e(n)?.username}`,size:"xl","onUpdate:open":a[12]||(a[12]=t=>{T.value=t,t||Ce()})},{title:o(()=>[d("span",gt,[V(" API keys – "+_(e(n)?.username)+" ",1),s(Ae,{topic:"settings.api-keys"})])]),body:o(()=>[d("div",_t,[a[26]||(a[26]=d("p",{class:"text-sm text-muted"},[V(" API keys allow the Playwright reporter (and other CI tools) to submit test results without a username/password login. Each key is shown "),d("strong",null,"only once"),V(" at creation time — store it in a CI secret immediately. ")],-1)),e(L)?(i(),y("div",kt,[e(E)?(i(),y("div",wt,[s(U,{icon:"i-lucide-triangle-alert",color:"warning",variant:"subtle",title:"Save your API key now",description:"This key will never be shown again. Copy it and store it in your CI secret manager immediately."}),d("div",Ct,_(e(E)),1),d("div",xt,[s(v,{label:"Copy to clipboard",icon:"i-lucide-clipboard",color:"primary",size:"sm",onClick:Me}),s(v,{label:"Done",variant:"ghost",size:"sm",onClick:Oe})]),d("div",null,[a[23]||(a[23]=d("p",{class:"text-xs font-semibold uppercase tracking-wide text-muted mb-2"}," Use it in your reporter config ",-1)),s(aa,{code:e(Fe),lang:"typescript"},null,8,["code"])])])):(i(),y("div",At,[a[24]||(a[24]=d("h4",{class:"font-medium text-sm"},"Create new API key",-1)),s(F,{label:"Key name",name:"name",required:""},{default:o(()=>[s(J,{modelValue:e(N),"onUpdate:modelValue":a[9]||(a[9]=t=>he(N)?N.value=t:null),placeholder:"e.g. GitHub Actions CI",size:"sm"},null,8,["modelValue"])]),_:1}),s(F,{label:"Expires at (optional)",name:"expiresAt"},{default:o(()=>[s(J,{modelValue:e(H),"onUpdate:modelValue":a[10]||(a[10]=t=>he(H)?H.value=t:null),type:"date",size:"sm",min:new Date().toISOString().split("T")[0]},null,8,["modelValue","min"])]),_:1}),d("div",qt,[s(v,{label:"Generate key",icon:"i-lucide-key",size:"sm",disabled:!e(N).trim(),onClick:Ge},null,8,["disabled"]),s(v,{color:"neutral",variant:"ghost",label:"Cancel",size:"sm",onClick:Ce})])]))])):k("",!0),e(ie).length>0?(i(),y("div",$t,[(i(!0),y(re,null,Se(e(ie),t=>(i(),y("div",{key:t.id,class:"flex items-center justify-between rounded-lg border border-default px-4 py-3"},[d("div",Ut,[d("div",It,[s(ye,{name:"i-lucide-key",class:"text-muted shrink-0"}),d("span",Vt,_(t.name),1)]),d("div",Rt,[d("span",null,[a[25]||(a[25]=V("Prefix: ",-1)),d("code",Pt,"pd_"+_(t.keyPrefix)+"…",1)]),d("span",null,"Created: "+_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.createdAt,{dateOnly:!0})),1),t.lastUsedAt?(i(),y("span",zt,"Last used: "+_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.lastUsedAt,{dateOnly:!0})),1)):(i(),y("span",St,"Never used")),t.expiresAt?(i(),y("span",{key:2,class:D(new Date(t.expiresAt)<new Date?"text-error":"")}," Expires: "+_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.expiresAt,{dateOnly:!0})),3)):k("",!0)])]),s(v,{icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"sm",title:"Revoke key",onClick:de=>Te(t)},null,8,["onClick"])]))),128))])):e(L)?k("",!0):(i(),y("div",jt," No API keys yet. Create one to allow CI access. "))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Close",onClick:a[11]||(a[11]=t=>T.value=!1)}),e(L)?k("",!0):(i(),w(v,{key:0,label:"Create API key",icon:"i-lucide-plus",onClick:Be}))]),_:1},8,["open","title"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(B),title:"Delete user","onUpdate:open":a[14]||(a[14]=t=>B.value=t)},{body:o(()=>[d("p",null,[a[27]||(a[27]=V(" Are you sure you want to delete user ",-1)),d("strong",null,_(e(f)?.username),1),a[28]||(a[28]=V("? This action cannot be undone. ",-1))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Cancel",onClick:a[13]||(a[13]=t=>B.value=!1)}),s(v,{color:"error",label:"Delete user",icon:"i-lucide-trash-2",onClick:fe})]),_:1},8,["open"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(Z),title:"Revoke API key","onUpdate:open":a[16]||(a[16]=t=>Z.value=t)},{body:o(()=>[d("p",null,[a[29]||(a[29]=V(" Revoke API key ",-1)),d("strong",null,'"'+_(e(ee)?.name)+'"',1),a[30]||(a[30]=V("? Any CI pipeline using it will stop working immediately. ",-1))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Cancel",onClick:a[15]||(a[15]=t=>Z.value=!1)}),s(v,{color:"error",label:"Revoke",icon:"i-lucide-trash-2",onClick:Le})]),_:1},8,["open"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(ae),title:`Project access – ${e(ne)?.username}`,size:"xl","onUpdate:open":a[20]||(a[20]=t=>ae.value=t)},{title:o(()=>[d("span",Kt,[V(" Project access – "+_(e(ne)?.username)+" ",1),s(Ae,{topic:"project.members"})])]),body:o(()=>[d("div",Dt,[a[31]||(a[31]=d("p",{class:"text-sm text-muted"}," Control which projects this user can access. Users without any project access will see no projects. ",-1)),s(ta,{"model-value":e(W)?"global":"specific",items:[{value:"global",label:"Global access",description:"Access to all projects (current and future)"},{value:"specific",label:"Specific projects",description:"Access only to selected projects"}],"onUpdate:modelValue":a[17]||(a[17]=t=>W.value=t==="global")},null,8,["model-value"]),e(W)?k("",!0):(i(),y(re,{key:0},[s(sa),s(F,{label:"Specific projects",description:`Select from ${e(Q).length>0?e(Q).length:"0"} available projects`},{default:o(()=>[s(la,{modelValue:e(Y),"onUpdate:modelValue":a[18]||(a[18]=t=>he(Y)?Y.value=t:null),items:e(Q),by:"id",multiple:"",searchable:"",class:"w-full",placeholder:"Search and select projects…"},{default:o(({modelValue:t})=>[t.length===0?(i(),y("span",Et,"Select projects…")):(i(),y("span",Ft,_(t.length)+" project(s) selected",1))]),_:1},8,["modelValue","items"])]),_:1},8,["description"])],64))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Cancel",onClick:a[19]||(a[19]=t=>ae.value=!1)}),s(v,{label:"Save",icon:"i-lucide-check",onClick:We})]),_:1},8,["open","title"])]),_:1})],64)}}});export{ds as default};
|
|
4
|
+
}]`);function Be(){N.value="",H.value="",E.value=null,L.value=!0}function Ce(){L.value=!1,E.value=null}async function Ge(){if(n.value)try{const r={name:N.value};H.value&&(r.expiresAt=new Date(H.value).toISOString());const a=await $fetch(`/api/users/${n.value.id}/api-keys`,{method:"POST",body:r});E.value=a.key,await ke()}catch(r){const a=r&&typeof r=="object"&&"data"in r?r.data?.message:void 0;l.add({title:"Failed to create API key",description:a||"An error occurred",color:"error"})}}function Me(){I(E.value,{toast:"API key copied to clipboard"})}function Oe(){E.value=null,L.value=!1}const Z=b(!1),ee=b(null);function Te(r){ee.value=r,Z.value=!0}async function Le(){if(!n.value||!ee.value)return;const r=ee.value;Z.value=!1,ee.value=null;try{await $fetch(`/api/users/${n.value.id}/api-keys/${r.id}`,{method:"DELETE"}),l.add({title:"API key revoked",description:`Key "${r.name}" has been revoked`,color:"success"}),await ke()}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to revoke API key",description:U||"An error occurred",color:"error"})}}function Ne(r){return R.public.authEnabled?q.value||p.value===r.id:!0}const ne=b(null),ae=b(!1),W=b(!1),Y=b([]),J=b([]);async function He(r){ne.value=r,ae.value=!0;try{const a=await $fetch("/api/projects/menu");J.value=a.map(U=>({...U,label:U.label||U.name}))}catch{J.value=[]}try{const a=await $fetch(`/api/users/${r.id}/projects`);W.value=a.global,Y.value=J.value.filter(U=>a.projectIds.includes(U.id))}catch{W.value=!1,Y.value=[]}}async function We(){const r=ne.value;if(r)try{await $fetch(`/api/users/${r.id}/projects`,{method:"PUT",body:{global:W.value,projectIds:Y.value.map(a=>a.id)}}),l.add({title:"Project access updated",description:`Access for ${r.username} has been updated`,color:"success"}),ae.value=!1}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to update project access",description:U||"An error occurred",color:"error"})}}const ve=b(null);async function Ye(r){if(!r.email){l.add({title:"No email address",description:"Set an email address for this user first.",color:"error"});return}ve.value=r.id;try{await $fetch(`/api/users/${r.id}/invite`,{method:"POST"}),l.add({title:"Invite sent",description:`Invitation sent to ${r.email}`,color:"success"})}catch(a){const U=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;l.add({title:"Failed to send invite",description:U||"An error occurred",color:"error"})}finally{ve.value=null}}return(r,a)=>{const U=ra,v=qa,ye=Ua,Je=$a,Qe=Pa,Xe=za,xe=Sa,Q=Ia,F=ja,Ze=Ka,ea=Da,te=Ea,se=xa,Ae=Fa,aa=Ba,ta=dt,sa=Aa("UDivider"),la=Ma;return i(),y(re,null,[d("div",ut,[e(P)?k("",!0):(i(),w(U,{key:0,icon:"i-lucide-info",color:"primary",variant:"subtle",title:"Authentication is disabled",description:"Authentication is currently disabled. You can manage users here, but they will only be used when authentication is enabled via the PIWI_AUTH_ENABLED environment variable."})),e(C).length>0?(i(),w(xe,{key:1,title:"Users",count:e(C).length,help:"settings.users"},{actions:o(()=>[e(q)?(i(),w(v,{key:0,label:"Add user",icon:"i-lucide-user-plus",size:"sm",onClick:a[0]||(a[0]=t=>$.value=!0)})):k("",!0)]),default:o(()=>[s(Xe,{"min-width":"44rem",bleed:!1},{default:o(()=>[s(Qe,{data:e(C),columns:z,sticky:"",class:"max-h-[32rem]"},{"username-cell":o(({row:t})=>[V(_(t.original.username),1)]),"name-cell":o(({row:t})=>[d("span",ct,_(t.original.name||"-"),1)]),"email-cell":o(({row:t})=>[t.original.email?(i(),y("span",pt,[V(_(t.original.email)+" ",1),t.original.emailVerified?(i(),w(ye,{key:0,name:"i-lucide-circle-check-big",class:"size-3.5 text-success-500",title:"Email verified"})):k("",!0)])):(i(),y("span",mt,"—"))]),"role-cell":o(({row:t})=>[s(Je,{color:G(t.original.role),variant:"subtle"},{default:o(()=>[V(_(t.original.role),1)]),_:2},1032,["color"])]),"createdAt-cell":o(({row:t})=>[d("span",ft,_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.original.createdAt,{dateOnly:!0})),1)]),"actions-cell":o(({row:t})=>[d("div",vt,[e(q)&&t.original.email&&!t.original.oauthProvider?(i(),w(v,{key:0,icon:"i-lucide-send",color:"neutral",variant:"ghost",size:"sm",title:"Send invite email","aria-label":"Send invite email",loading:e(ve)===t.original.id,onClick:de=>Ye(t.original)},null,8,["loading","onClick"])):k("",!0),e(q)&&t.original.role!=="administrator"?(i(),w(v,{key:1,icon:"i-lucide-folder-lock",color:"neutral",variant:"ghost",size:"sm",title:"Project access","aria-label":"Project access",onClick:de=>He(t.original)},null,8,["onClick"])):k("",!0),Ne(t.original)?(i(),w(v,{key:2,icon:"i-lucide-key",color:"neutral",variant:"ghost",size:"sm",title:"Manage API keys","aria-label":"Manage API keys",onClick:de=>Ee(t.original)},null,8,["onClick"])):k("",!0),e(q)?(i(),w(v,{key:3,icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"sm",title:"Delete user","aria-label":"Delete user",onClick:de=>me(t.original)},null,8,["onClick"])):k("",!0)])]),_:1},8,["data"])]),_:1})]),_:1},8,["count"])):(i(),w(xe,{key:2,title:"Users",count:0,help:"settings.users"},{default:o(()=>[d("div",yt,[d("div",bt,[s(ye,{name:"i-lucide-users",class:"text-4xl text-muted"})]),a[21]||(a[21]=d("h3",{class:"text-lg font-semibold mb-2"},"No users yet",-1)),a[22]||(a[22]=d("p",{class:"text-muted mb-4"},"Create your first user to get started with authentication",-1)),e(q)?(i(),w(v,{key:0,label:"Add user",icon:"i-lucide-user-plus",onClick:a[1]||(a[1]=t=>$.value=!0)})):k("",!0)])]),_:1}))]),s(se,null,{default:o(()=>[s(te,{open:e($),title:"Add new user","onUpdate:open":a[8]||(a[8]=t=>$.value=t)},{body:o(()=>[s(ea,{schema:e(m),state:e(c),class:"space-y-5"},{default:o(()=>[s(F,{label:"Username",name:"username",required:""},{default:o(()=>[s(Q,{modelValue:e(c).username,"onUpdate:modelValue":a[2]||(a[2]=t=>e(c).username=t),placeholder:"Enter username",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Password",name:"password",description:"Leave blank to let the user set their own password via invite email"},{default:o(()=>[s(Q,{modelValue:e(c).password,"onUpdate:modelValue":a[3]||(a[3]=t=>e(c).password=t),type:"password",placeholder:"Leave blank to send invite",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Display name",name:"name"},{default:o(()=>[s(Q,{modelValue:e(c).name,"onUpdate:modelValue":a[4]||(a[4]=t=>e(c).name=t),placeholder:"Enter display name (optional)",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Email",name:"email",description:"Optional — needed for invites and notifications"},{default:o(()=>[s(Q,{modelValue:e(c).email,"onUpdate:modelValue":a[5]||(a[5]=t=>e(c).email=t),type:"email",placeholder:"user@example.com (optional)",class:"w-full"},null,8,["modelValue"])]),_:1}),s(F,{label:"Role",name:"role",required:""},{default:o(()=>[s(Ze,{modelValue:e(c).role,"onUpdate:modelValue":a[6]||(a[6]=t=>e(c).role=t),items:O,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1},8,["schema","state"])]),footer:o(()=>[d("div",ht,[s(v,{type:"button",color:"neutral",variant:"ghost",label:"Cancel",onClick:a[7]||(a[7]=t=>$.value=!1)}),s(v,{type:"submit",label:"Create user",icon:"i-lucide-user-plus",onClick:S})])]),_:1},8,["open"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(T),title:`API keys – ${e(n)?.username}`,size:"xl","onUpdate:open":a[12]||(a[12]=t=>{T.value=t,t||Ce()})},{title:o(()=>[d("span",gt,[V(" API keys – "+_(e(n)?.username)+" ",1),s(Ae,{topic:"settings.api-keys"})])]),body:o(()=>[d("div",_t,[a[26]||(a[26]=d("p",{class:"text-sm text-muted"},[V(" API keys allow the Playwright reporter (and other CI tools) to submit test results without a username/password login. Each key is shown "),d("strong",null,"only once"),V(" at creation time — store it in a CI secret immediately. ")],-1)),e(L)?(i(),y("div",kt,[e(E)?(i(),y("div",wt,[s(U,{icon:"i-lucide-triangle-alert",color:"warning",variant:"subtle",title:"Save your API key now",description:"This key will never be shown again. Copy it and store it in your CI secret manager immediately."}),d("div",Ct,_(e(E)),1),d("div",xt,[s(v,{label:"Copy to clipboard",icon:"i-lucide-clipboard",color:"primary",size:"sm",onClick:Me}),s(v,{label:"Done",variant:"ghost",size:"sm",onClick:Oe})]),d("div",null,[a[23]||(a[23]=d("p",{class:"text-xs font-semibold uppercase tracking-wide text-muted mb-2"}," Use it in your reporter config ",-1)),s(aa,{code:e(Fe),lang:"typescript"},null,8,["code"])])])):(i(),y("div",At,[a[24]||(a[24]=d("h4",{class:"font-medium text-sm"},"Create new API key",-1)),s(F,{label:"Key name",name:"name",required:""},{default:o(()=>[s(Q,{modelValue:e(N),"onUpdate:modelValue":a[9]||(a[9]=t=>he(N)?N.value=t:null),placeholder:"e.g. GitHub Actions CI",size:"sm"},null,8,["modelValue"])]),_:1}),s(F,{label:"Expires at (optional)",name:"expiresAt"},{default:o(()=>[s(Q,{modelValue:e(H),"onUpdate:modelValue":a[10]||(a[10]=t=>he(H)?H.value=t:null),type:"date",size:"sm",min:new Date().toISOString().split("T")[0]},null,8,["modelValue","min"])]),_:1}),d("div",qt,[s(v,{label:"Generate key",icon:"i-lucide-key",size:"sm",disabled:!e(N).trim(),onClick:Ge},null,8,["disabled"]),s(v,{color:"neutral",variant:"ghost",label:"Cancel",size:"sm",onClick:Ce})])]))])):k("",!0),e(ie).length>0?(i(),y("div",$t,[(i(!0),y(re,null,Se(e(ie),t=>(i(),y("div",{key:t.id,class:"flex items-center justify-between rounded-lg border border-default px-4 py-3"},[d("div",Ut,[d("div",It,[s(ye,{name:"i-lucide-key",class:"text-muted shrink-0"}),d("span",Vt,_(t.name),1)]),d("div",Rt,[d("span",null,[a[25]||(a[25]=V("Prefix: ",-1)),d("code",Pt,"pd_"+_(t.keyPrefix)+"…",1)]),d("span",null,"Created: "+_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.createdAt,{dateOnly:!0})),1),t.lastUsedAt?(i(),y("span",zt,"Last used: "+_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.lastUsedAt,{dateOnly:!0})),1)):(i(),y("span",St,"Never used")),t.expiresAt?(i(),y("span",{key:2,class:D(new Date(t.expiresAt)<new Date?"text-error":"")}," Expires: "+_(("prettyDateFormat"in r?r.prettyDateFormat:e(ue))(t.expiresAt,{dateOnly:!0})),3)):k("",!0)])]),s(v,{icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"sm",title:"Revoke key",onClick:de=>Te(t)},null,8,["onClick"])]))),128))])):e(L)?k("",!0):(i(),y("div",jt," No API keys yet. Create one to allow CI access. "))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Close",onClick:a[11]||(a[11]=t=>T.value=!1)}),e(L)?k("",!0):(i(),w(v,{key:0,label:"Create API key",icon:"i-lucide-plus",onClick:Be}))]),_:1},8,["open","title"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(B),title:"Delete user","onUpdate:open":a[14]||(a[14]=t=>B.value=t)},{body:o(()=>[d("p",null,[a[27]||(a[27]=V(" Are you sure you want to delete user ",-1)),d("strong",null,_(e(f)?.username),1),a[28]||(a[28]=V("? This action cannot be undone. ",-1))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Cancel",onClick:a[13]||(a[13]=t=>B.value=!1)}),s(v,{color:"error",label:"Delete user",icon:"i-lucide-trash-2",onClick:fe})]),_:1},8,["open"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(Z),title:"Revoke API key","onUpdate:open":a[16]||(a[16]=t=>Z.value=t)},{body:o(()=>[d("p",null,[a[29]||(a[29]=V(" Revoke API key ",-1)),d("strong",null,'"'+_(e(ee)?.name)+'"',1),a[30]||(a[30]=V("? Any CI pipeline using it will stop working immediately. ",-1))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Cancel",onClick:a[15]||(a[15]=t=>Z.value=!1)}),s(v,{color:"error",label:"Revoke",icon:"i-lucide-trash-2",onClick:Le})]),_:1},8,["open"])]),_:1}),s(se,null,{default:o(()=>[s(te,{open:e(ae),title:`Project access – ${e(ne)?.username}`,size:"xl","onUpdate:open":a[20]||(a[20]=t=>ae.value=t)},{title:o(()=>[d("span",Kt,[V(" Project access – "+_(e(ne)?.username)+" ",1),s(Ae,{topic:"project.members"})])]),body:o(()=>[d("div",Dt,[a[31]||(a[31]=d("p",{class:"text-sm text-muted"}," Control which projects this user can access. Users without any project access will see no projects. ",-1)),s(ta,{"model-value":e(W)?"global":"specific",items:[{value:"global",label:"Global access",description:"Access to all projects (current and future)"},{value:"specific",label:"Specific projects",description:"Access only to selected projects"}],"onUpdate:modelValue":a[17]||(a[17]=t=>W.value=t==="global")},null,8,["model-value"]),e(W)?k("",!0):(i(),y(re,{key:0},[s(sa),s(F,{label:"Specific projects",description:`Select from ${e(J).length>0?e(J).length:"0"} available projects`},{default:o(()=>[s(la,{modelValue:e(Y),"onUpdate:modelValue":a[18]||(a[18]=t=>he(Y)?Y.value=t:null),items:e(J),by:"id",multiple:"",searchable:"",class:"w-full",placeholder:"Search and select projects…"},{default:o(({modelValue:t})=>[t.length===0?(i(),y("span",Et,"Select projects…")):(i(),y("span",Ft,_(t.length)+" project(s) selected",1))]),_:1},8,["modelValue","items"])]),_:1},8,["description"])],64))])]),footer:o(()=>[s(v,{color:"neutral",variant:"ghost",label:"Cancel",onClick:a[19]||(a[19]=t=>ae.value=!1)}),s(v,{label:"Save",icon:"i-lucide-check",onClick:We})]),_:1},8,["open","title"])]),_:1})],64)}}});export{ds as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as l}from"./
|
|
1
|
+
import{_ as l}from"./DMAiMrNr.js";import{d as a,o as i,f as c,ac as r,g as n,V as s}from"./C5TrTuWv.js";const u=a({__name:"ChartCard",props:{title:{},subtitle:{},icon:{},iconClass:{},help:{}},setup(e){return(t,m)=>{const o=l;return i(),c(o,{title:e.title,subtitle:e.subtitle,icon:e.icon,"icon-class":e.iconClass,help:e.help},r({default:n(()=>[s(t.$slots,"default")]),_:2},[t.$slots.subtitle?{name:"subtitle",fn:n(()=>[s(t.$slots,"subtitle")]),key:"0"}:void 0,t.$slots.legend||t.$slots.actions?{name:"actions",fn:n(()=>[s(t.$slots,"legend"),s(t.$slots,"actions")]),key:"1"}:void 0]),1032,["title","subtitle","icon","icon-class","help"])}}}),C=Object.assign(u,{__name:"ChartCard"});export{C as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ad as b,A as E}from"./
|
|
1
|
+
import{ad as b,A as E}from"./C5TrTuWv.js";const v="piwi-demo-run-events";let o=null;const u=new Set;function S(e){return o||(o=new BroadcastChannel(v),o.onmessage=n=>{for(const l of u)l(n.data)}),u.add(e),()=>{u.delete(e),u.size===0&&o&&(o.close(),o=null)}}let t=null,r=null;const s=new Set;let i=null;const p=1e3,w=3e4,y=[5*6e4,15*6e4,30*6e4];let a=Date.now(),c=!1;function f(){a=Date.now()}function h(){const e=Date.now()-a;let n=1;for(const l of y)if(e>=l)n*=2;else break;return Math.min(p*n,w)}const A=new Set(["run-initialising","run-started","run-finalizing","run-finished","run-submitted","run-cancelled"]);function d(e){A.has(e)&&(i&&clearTimeout(i),i=setTimeout(()=>{for(const n of s)n()},h()))}function m(){t||(t=new EventSource("/api/stream"),t.onmessage=e=>{try{const n=JSON.parse(e.data);d(n.type)}catch{}},t.onerror=()=>{})}function C(){if(f(),document.visibilityState==="hidden")t&&(t.close(),t=null),i&&(clearTimeout(i),i=null);else if(s.size>0){m();for(const e of s)e()}}function g(){if(!c){c=!0;const e=["mousemove","keydown","pointerdown","scroll"];for(const n of e)window.addEventListener(n,f,{passive:!0});document.addEventListener("visibilitychange",C)}if(E().public.demoMode){if(r)return;r=S(e=>{e.scope==="global"&&d(e.event.type)});return}document.visibilityState!=="hidden"&&m()}function T(){s.size>0||(t&&(t.close(),t=null),r&&(r(),r=null),i&&(clearTimeout(i),i=null))}function N(e){g(),s.add(e),b(()=>{s.delete(e),T()})}export{S as s,N as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ca as s}from"./C5TrTuWv.js";import{h as o}from"./BjaRappk.js";const c=[{id:"instance",label:"Instance"},{id:"analysis",label:"Analysis"},{id:"meta",label:""}],n=[{id:"account",label:"Account",icon:"i-lucide-user-round",to:"/settings/account",group:"instance",authOnly:!0,fields:[{id:"account.display-name",label:"Display name",help:"account.display-name"},{id:"account.email",label:"Email address",help:"account.email"},{id:"account.connected-accounts",label:"Connected accounts",help:"account.connected-accounts"},{id:"account.password",label:"Password",help:"account.password"},{id:"account.auth-toggle",label:"Authentication",help:"settings.auth-toggle",envOnly:!0}]},{id:"users",label:"Users",icon:"i-lucide-users",to:"/settings/users",group:"instance",roles:[s.ADMINISTRATOR],authOnly:!0,introHelp:"settings.users",fields:[{id:"users.list",label:"Users & roles",help:"settings.users"},{id:"users.api-keys",label:"API keys",help:"settings.api-keys"}]},{id:"notifications",label:"Notifications",icon:"i-lucide-bell",to:"/settings/notifications",group:"instance",fields:[{id:"notifications.smtp",label:"SMTP email delivery",help:"settings.smtp",envOnly:!0},{id:"notifications.test-email",label:"Send test email",help:"notifications.test-email"},{id:"notifications.channels",label:"Notification channels",help:"notifications.channels"},{id:"notifications.subscriptions",label:"My subscriptions",help:"notifications.subscriptions"}]},{id:"tags",label:"Tags",icon:"i-lucide-tags",to:"/settings/tags",group:"analysis",roles:[s.ADMINISTRATOR],introHelp:"settings.tags",fields:[{id:"tags.list",label:"Tags",help:"settings.tags"}]},{id:"storage",label:"Storage",icon:"i-lucide-hard-drive",to:"/settings/storage",group:"instance",roles:[s.ADMINISTRATOR],fields:[{id:"storage.backend",label:"Storage backend",help:"settings.storage-backend",envOnly:!0},{id:"storage.stats",label:"Storage statistics",help:"settings.storage-stats"},{id:"storage.cleanup",label:"Cleanup old test runs",help:"settings.cleanup"}]},{id:"performance",label:"Performance",icon:"i-lucide-gauge",to:"/settings/performance",group:"analysis",roles:[s.ADMINISTRATOR],fields:[{id:"wasted-time.patterns",label:"Wasted-time patterns",help:"settings.wasted-time"},{id:"timeout-hygiene.thresholds",label:"Detection thresholds",help:"settings.timeout-hygiene"}]},{id:"pr-feedback",label:"Pull requests",icon:"i-lucide-git-pull-request",to:"/settings/pr-feedback",group:"analysis",roles:[s.ADMINISTRATOR],introHelp:"settings.pr-feedback",fields:[{id:"pr-feedback.settings",label:"Pull-request feedback",help:"settings.pr-feedback"}]},{id:"ai",label:"AI diagnosis",icon:"i-lucide-sparkles",to:"/settings/ai",group:"analysis",roles:[s.ADMINISTRATOR],fields:[{id:"ai.diagnosis",label:"Diagnosis model",help:"settings.ai-provider"},{id:"ai.research",label:"Research model",help:"settings.ai-research"},{id:"ai.embedding",label:"Embedding model",help:"settings.embedding-model"},{id:"ai.auto-diagnose",label:"Auto-diagnose",help:"settings.auto-diagnose"},{id:"ai.context-limits",label:"Diagnosis context limits",help:"settings.ai-limits"},{id:"ai.instructions",label:"Global analysis instructions",help:"settings.ai-instructions"},{id:"ai.scm-token",label:"Repository access token",help:"project.scm-token"},{id:"ai.privacy",label:"Privacy notice",help:"settings.privacy"}]},{id:"about",label:"About",icon:"i-lucide-info",to:"/settings/about",group:"meta",fields:[]}];function r(i){return o(i.help)}function g(i){const t=new Set;for(const a of i.fields)for(const e of r(a))t.add(e);return[...t]}function p(i){const t=n.find(a=>a.id===i);if(!t)throw new Error(`Unknown settings page: ${i}`);return t}function b(i){const t=n.filter(e=>(!e.roles||i.canSeeAdmin)&&!(i.isDesktop&&e.authOnly)),a=e=>({label:e.label,icon:e.icon,to:e.to,...i.envManaged?.[e.id]?{badge:{icon:"i-lucide-lock",color:"neutral"}}:{}});return c.map(e=>t.filter(l=>l.group===e.id).map(a)).filter(e=>e.length>0)}export{b,p as g,g as p};
|