@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,2 +0,0 @@
|
|
|
1
|
-
import{d as he,o as _,f as L,g as C,V as N,W as Q,k as n,X as ia,a2 as Ee,a3 as Me,b6 as at,a6 as Pe,b9 as Ga,a4 as Ne,a5 as Ce,c as V,j as B,_ as ke,c9 as oa,ac as At,i as W,q,F as pe,y as we,c2 as la,v as P,a0 as Te,a1 as De,h as O,ca as nt,b7 as Be,b8 as Le,a8 as Oe,cb as ra,O as ua,ar as ca,R as da,A as Ke,aw as Tt,C as Ja,r as H,bL as Ya,Y as Qa,$ as Xa,J as re,L as Dt,av as Za,B as Bt,af as en,ad as tn,a7 as st,bN as an,bQ as nn,c1 as sn,bW as on,m as ce,t as oe,ag as ln,c5 as rn,cc as fa,am as pa,H as ze,u as Lt,aS as un,I as it,aC as cn,ab as ge,cd as dn,ce as fn,aN as ha,x as ma,ba as pn,aI as ve,bb as hn,p as Ie,aJ as mn,bP as vn,E as Et,S as gn,b$ as yn,cf as bn,aQ as wn,a9 as va,cg as kn,l as ye,ch as _n,s as Sn,M as xn,a as ga,w as ya,ci as $n,b as In,cj as Cn,ck as An}from"./h49q_GXF.js";import{a as ba,b as Tn,_ as Dn,c as Bn,p as Ln}from"./BhH0TNTi.js";import{_ as En}from"./CRPt9SfB.js";import{_ as Mn}from"./iubpj2qv.js";import{u as On}from"./B-6GGrhr.js";import{a as wa,I as Vt,V as Wt,J as Rn}from"./BZnfiR67.js";import{_ as jn}from"./BQzG26t0.js";import{b as Fn,c as Pn,g as zn,D as qn,a as Nn,d as ct,e as dt,f as Kn,_ as rt}from"./jjOqY9Tv.js";import{i as Hn,L as Un,a as Vn,b as Wn,c as Gn,d as Jn,e as Yn,f as Qn,g as Xn,_ as Zn}from"./BH-ym1CI.js";import{a as es,_ as ts}from"./BtSJxOdh.js";import{_ as as}from"./DDN2tt0a.js";import{_ as ka}from"./BKJetfRH.js";import{_ as _a}from"./B0hK-xDF.js";import{_ as ns}from"./DOLeth7M.js";import{_ as ss}from"./9N6hSApy.js";import{_ as is}from"./BVN50jIb.js";import{u as Mt}from"./Cd8r0xk5.js";import{e as os}from"./CD3R-ggS.js";import{u as Sa,s as ls}from"./CNcu4khZ.js";import{u as rs}from"./t-juTK3X.js";import{u as us}from"./D6Mo5HeX.js";import"./x8w_1_rn.js";import"./CobveFaj.js";import"./BjaRappk.js";import"./BaDhDBCV.js";import"./xbO0VmDX.js";import"./BNAHBHbY.js";import"./B6s20NbT.js";import"./D4UlSVir.js";import"./B9FSuKdA.js";var cs=he({__name:"ListboxGroupLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(e){const t=e,s=Hn({id:""});return(i,o)=>(_(),L(n(ia),Q(t,{id:n(s).id}),{default:C(()=>[N(i.$slots,"default")]),_:3},16,["id"]))}}),ds=cs;const fs={slots:{base:"",label:"",trailing:"hidden lg:flex items-center gap-0.5 ms-auto"},variants:{collapsed:{true:{label:"hidden",trailing:"lg:hidden"}}}},ps=Object.assign({inheritAttrs:!1},{__name:"UDashboardSearchButton",props:{icon:{type:[String,Boolean],required:!1,skipCheck:!0},label:{type:String,required:!1},color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1},collapsed:{type:Boolean,required:!1,default:!1},tooltip:{type:[Boolean,Object],required:!1,default:!1},kbds:{type:Array,required:!1,default:()=>["meta","k"]},ui:{type:Object,required:!1},class:{type:null,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(e){const t=e,s=Ee(),i=Me("dashboardSearchButton",t),[o,a]=at(),l=()=>nt(s,["trailing"]),u=Pe(Ga(i,"icon","label","variant","collapsed","tooltip","kbds","class","ui")),r=Be(()=>Le(typeof i.tooltip=="boolean"?{}:i.tooltip,{delayDuration:0,content:{side:"right"}})),{t:g}=Ne(),m=Ce(),{toggleSearch:v}=ba({toggleSearch:()=>{}}),d=O(()=>Oe({extend:fs,...m.ui?.dashboardSearchButton||{}})({collapsed:i.collapsed}));return(c,h)=>(_(),V(pe,null,[B(n(o),null,{default:C(()=>[B(ke,Q({icon:n(i).icon===!1?void 0:n(i).icon??n(m).ui.icons.search,label:n(i).label||n(g)("dashboardSearchButton.label"),variant:n(i).variant||(n(i).collapsed?"ghost":"outline")},{...n(u),...n(i).collapsed?{square:!0,"aria-label":n(i).label||n(g)("dashboardSearchButton.label")}:{},...c.$attrs},{class:d.value.base({class:[n(i).ui?.base,n(i).class]}),ui:n(oa)(d.value,n(i).ui),onClick:n(v)}),At({trailing:C(({ui:y})=>[W("span",{"data-slot":"trailing",class:q(d.value.trailing({class:n(i).ui?.trailing}))},[N(c.$slots,"trailing",{ui:y},()=>[n(i).kbds?.length?(_(!0),V(pe,{key:0},we(n(i).kbds,(D,R)=>(_(),L(la,Q({key:R,variant:"subtle"},{ref_for:!0},typeof D=="string"?{value:D}:D),null,16))),128)):P("",!0)])],2)]),_:2},[we(l(),(y,D)=>({name:D,fn:C(R=>[N(c.$slots,D,Te(De(R)))])}))]),1040,["icon","label","variant","class","ui","onClick"])]),_:3}),n(i).collapsed&&n(i).tooltip?(_(),L(En,Q({key:0,text:n(i).label||n(g)("dashboardSearchButton.label")},r.value),{default:C(()=>[B(n(a))]),_:1},16,["text"])):(_(),L(n(a),{key:1}))],64))}}),hs={class:"inline-flex items-center justify-center shrink-0 size-5"},ms=he({__name:"UserMenu",props:{collapsed:{type:Boolean}},setup(e){const t=ra(),s=Ce(),i=Ke(),{authState:o,logout:a}=ua(),l=On(),{openSettings:u}=wa(),r=["red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],g=["slate","gray","zinc","neutral","stone"],m=O(()=>{if(i.public.authEnabled&&o.value.authenticated&&o.value.user){const d=o.value.user.avatarUrl;return{name:o.value.user.name||o.value.user.username,icon:d?void 0:"i-lucide-user",avatar:d?{src:d}:void 0,role:o.value.user.role}}return{name:"Configuration",icon:"i-lucide-cog"}}),v=O(()=>{const d=[];(!i.public.authEnabled||o.value.authenticated&&o.value.user?.role==="administrator")&&d.push(...l.value.flat());const c=[d,[{label:"Theme",icon:"i-lucide-palette",children:[{label:"Primary",slot:"chip",chip:s.ui.colors.primary,content:{align:"center",collisionPadding:16},children:r.map(h=>({label:h,chip:h,slot:"chip",checked:s.ui.colors.primary===h,type:"checkbox",onSelect:y=>{y.preventDefault(),s.ui.colors.primary=h}}))},{label:"Neutral",slot:"chip",chip:s.ui.colors.neutral==="neutral"?"old-neutral":s.ui.colors.neutral,content:{align:"end",collisionPadding:16},children:g.map(h=>({label:h,chip:h==="neutral"?"old-neutral":h,slot:"chip",type:"checkbox",checked:s.ui.colors.neutral===h,onSelect:y=>{y.preventDefault(),s.ui.colors.neutral=h}}))}]},{label:"Appearance",icon:"i-lucide-sun-moon",children:[{label:"Light",icon:"i-lucide-sun",type:"checkbox",checked:t.value==="light",onSelect(h){h.preventDefault(),t.preference="light"}},{label:"Dark",icon:"i-lucide-moon",type:"checkbox",checked:t.value==="dark",onUpdateChecked(h){h&&(t.preference="dark")},onSelect(h){h.preventDefault()}}]},{label:"Open in IDE…",icon:"i-lucide-external-link",onSelect:h=>{h.preventDefault(),u()}}],[{label:"GitHub repository",icon:"i-lucide-github",to:"https://github.com/piwitests/platform",target:"_blank"}]];return i.public.authEnabled&&o.value.authenticated&&!i.public.demoMode&&c.push([{label:"Logout",icon:"i-lucide-log-out",onSelect:async h=>{h.preventDefault(),await a()}}]),c});return(d,c)=>{const h=ke,y=ca;return _(),L(y,{items:n(v),content:{align:"center",collisionPadding:12},ui:{content:e.collapsed?"w-48":"w-(--reka-dropdown-menu-trigger-width)"}},{"chip-leading":C(({item:D})=>[W("div",hs,[W("span",{class:"rounded-full ring ring-bg bg-(--chip-light) dark:bg-(--chip-dark) size-2",style:da({"--chip-light":`var(--color-${D.chip}-500)`,"--chip-dark":`var(--color-${D.chip}-400)`})},null,4)])]),default:C(()=>[B(h,Q({...n(m),label:e.collapsed?void 0:n(m)?.name,trailingIcon:e.collapsed?void 0:"i-lucide-chevrons-up-down"},{color:"neutral",variant:"ghost",block:"",square:e.collapsed,class:"data-[state=open]:bg-elevated",ui:{trailingIcon:"text-dimmed"}}),null,16,["square"])]),_:1},8,["items","ui"])}}}),vs=Object.assign(ms,{__name:"UserMenu"});(function(){var e;try{if(typeof document<"u"){var t=document.createElement("style");t.nonce=(e=document.head.querySelector("meta[property=csp-nonce]"))==null?void 0:e.content,t.appendChild(document.createTextNode('[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32,.72,0,1);animation-duration:.5s;animation-timing-function:cubic-bezier(.32,.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform, 100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform, 100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform, 100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform, 100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top],[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height, 0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left],[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height, 0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(.32,.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32,.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true]):after{content:"";position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]:after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]:after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]:after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]:after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not([data-state=closed]){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:hover,[data-vaul-handle]:active{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover: hover) and (pointer: fine){[data-vaul-drawer]{-webkit-user-select:none;user-select:none}}@media (pointer: fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{0%{transform:translate3d(0,var(--initial-transform, 100%),0)}to{transform:translateZ(0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform, 100%),0)}}@keyframes slideFromTop{0%{transform:translate3d(0,calc(var(--initial-transform, 100%) * -1),0)}to{transform:translateZ(0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform, 100%) * -1),0)}}@keyframes slideFromLeft{0%{transform:translate3d(calc(var(--initial-transform, 100%) * -1),0,0)}to{transform:translateZ(0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform, 100%) * -1),0,0)}}@keyframes slideFromRight{0%{transform:translate3d(var(--initial-transform, 100%),0,0)}to{transform:translateZ(0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform, 100%),0,0)}}')),document.head.appendChild(t)}}catch(s){console.error("vite-plugin-css-injected-by-js",s)}})();const gs=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ys=e=>typeof e<"u";function bs(e){return JSON.parse(JSON.stringify(e))}function Gt(e,t,s,i={}){var o,a,l;const{clone:u=!1,passive:r=!1,eventName:g,deep:m=!1,defaultValue:v,shouldEmit:d}=i,c=Za(),h=s||c?.emit||((o=c?.$emit)==null?void 0:o.bind(c))||((l=(a=c?.proxy)==null?void 0:a.$emit)==null?void 0:l.bind(c?.proxy));let y=g;t||(t="modelValue"),y=y||`update:${t.toString()}`;const D=b=>u?typeof u=="function"?u(b):bs(b):b,R=()=>ys(e[t])?D(e[t]):v,A=b=>{d?d(b)&&h(y,b):h(y,b)};if(r){const b=R(),f=H(b);let x=!1;return re(()=>e[t],$=>{x||(x=!0,f.value=D($),Dt(()=>x=!1))}),re(f,$=>{!x&&($!==e[t]||m)&&A($)},{deep:m}),f}else return O({get(){return R()},set(b){A(b)}})}const[He,ws]=Xa("DrawerRoot"),xa=new WeakMap;function ne(e,t,s=!1){if(!e||!(e instanceof HTMLElement)||!t)return;const i={};Object.entries(t).forEach(([o,a])=>{if(o.startsWith("--")){e.style.setProperty(o,a);return}i[o]=e.style[o],e.style[o]=a}),!s&&xa.set(e,i)}function ks(e,t){if(!e||!(e instanceof HTMLElement))return;const s=xa.get(e);s&&Object.entries(s).forEach(([i,o])=>{e.style[i]=o})}function Je(e,t){const s=window.getComputedStyle(e),i=s.transform||s.webkitTransform||s.mozTransform;let o=i.match(/^matrix3d\((.+)\)$/);return o?Number.parseFloat(o[1].split(", ")[ee(t)?13:12]):(o=i.match(/^matrix\((.+)\)$/),o?Number.parseFloat(o[1].split(", ")[ee(t)?5:4]):null)}function _s(e){return 8*(Math.log(e+1)-2)}function ee(e){switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}}function ft(e,t){if(!e)return()=>{};const s=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=s}}function Ss(...e){return(...t)=>{for(const s of e)typeof s=="function"&&s(...t)}}const X={DURATION:.5,EASE:[.32,.72,0,1]},$a=.4,xs=.25,$s=100,Ia=8,Ye=16,Ca=26,Jt="vaul-dragging";function Is({activeSnapPoint:e,snapPoints:t,drawerRef:s,overlayRef:i,fadeFromIndex:o,onSnapPointChange:a,direction:l}){const u=H(typeof window<"u"?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);function r(){u.value={innerWidth:window.innerWidth,innerHeight:window.innerHeight}}Bt(()=>{typeof window<"u"&&window.addEventListener("resize",r)}),en(()=>{typeof window<"u"&&window.removeEventListener("resize",r)});const g=O(()=>(t.value&&e.value===t.value[t.value.length-1])??null),m=O(()=>t.value&&t.value.length>0&&(o?.value||o?.value===0)&&!Number.isNaN(o?.value)&&t.value[o?.value??-1]===e.value||!t.value),v=O(()=>{var A;return((A=t.value)==null?void 0:A.findIndex(b=>b===e.value))??null}),d=O(()=>{var A;return((A=t.value)==null?void 0:A.map(b=>{const f=typeof b=="string";let x=0;if(f&&(x=Number.parseInt(b,10)),ee(l.value)){const T=f?x:u.value?b*u.value.innerHeight:0;return u.value?l.value==="bottom"?u.value.innerHeight-T:-u.value.innerHeight+T:T}const $=f?x:u.value?b*u.value.innerWidth:0;return u.value?l.value==="right"?u.value.innerWidth-$:-u.value.innerWidth+$:$}))??[]}),c=O(()=>{var A;return v.value!==null?(A=d.value)==null?void 0:A[v.value]:null}),h=A=>{var b,f,x,$;const T=((b=d.value)==null?void 0:b.findIndex(I=>I===A))??null;Dt(()=>{var I;a(T,d.value),ne((I=s.value)==null?void 0:I.$el,{transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,transform:ee(l.value)?`translate3d(0, ${A}px, 0)`:`translate3d(${A}px, 0, 0)`})}),d.value&&T!==d.value.length-1&&T!==o?.value?ne((f=i.value)==null?void 0:f.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,opacity:"0"}):ne((x=i.value)==null?void 0:x.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,opacity:"1"}),e.value=T!==null?(($=t.value)==null?void 0:$[T])??null:null};re([e,d,t],()=>{var A;if(e.value){const b=((A=t.value)==null?void 0:A.findIndex(f=>f===e.value))??-1;d.value&&b!==-1&&typeof d.value[b]=="number"&&h(d.value[b])}},{immediate:!0});function y({draggedDistance:A,closeDrawer:b,velocity:f,dismissible:x}){var $,T,I;if(o.value===void 0)return;const S=l.value==="bottom"||l.value==="right"?(c.value??0)-A:(c.value??0)+A,k=v.value===o.value-1,M=v.value===0,G=A>0;if(k&&ne(($=i.value)==null?void 0:$.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`}),f>2&&!G){x?b():h(d.value[0]);return}if(f>2&&G&&d&&t.value){h(d.value[t.value.length-1]);return}const J=(T=d.value)==null?void 0:T.reduce((F,p)=>typeof F!="number"||typeof p!="number"?F:Math.abs(p-S)<Math.abs(F-S)?p:F),w=ee(l.value)?window.innerHeight:window.innerWidth;if(f>$a&&Math.abs(A)<w*.4){const F=G?1:-1;if(F>0&&g){h(d.value[(((I=t.value)==null?void 0:I.length)??0)-1]);return}if(M&&F<0&&x&&b(),v.value===null)return;h(d.value[v.value+F]);return}h(J)}function D({draggedDistance:A}){var b;if(c.value===null)return;const f=l.value==="bottom"||l.value==="right"?c.value-A:c.value+A;(l.value==="bottom"||l.value==="right")&&f<d.value[d.value.length-1]||(l.value==="top"||l.value==="left")&&f>d.value[d.value.length-1]||ne((b=s.value)==null?void 0:b.$el,{transform:ee(l.value)?`translate3d(0, ${f}px, 0)`:`translate3d(${f}px, 0, 0)`})}function R(A,b){if(!t.value||typeof v.value!="number"||!d.value||o.value===void 0)return null;const f=v.value===o.value-1;if(v.value>=o.value&&b)return 0;if(f&&!b)return 1;if(!m.value&&!f)return null;const x=f?v.value+1:v.value-1,$=f?d.value[x]-d.value[x-1]:d.value[x+1]-d.value[x],T=A/Math.abs($);return f?1-T:T}return{isLastSnapPoint:g,shouldFade:m,getPercentageDragged:R,activeSnapPointIndex:v,onRelease:y,onDrag:D,snapPointsOffset:d}}function Yt(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}let je=null;function Cs(e){const{isOpen:t,modal:s,nested:i,hasBeenOpened:o,preventScrollRestoration:a,noBodyStyles:l}=e,u=H(typeof window<"u"?window.location.href:""),r=H(0);function g(){if(Yt()&&je===null&&t.value&&!l.value){je={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height};const{scrollX:v,innerHeight:d}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-r.value}px`,left:`${-v}px`,right:"0px",height:"auto"}),setTimeout(()=>{requestAnimationFrame(()=>{const c=d-window.innerHeight;c&&r.value>=d&&(document.body.style.top=`-${r.value+c}px`)})},300)}}function m(){if(Yt()&&je!==null&&!l.value){const v=-Number.parseInt(document.body.style.top,10),d=-Number.parseInt(document.body.style.left,10);Object.assign(document.body.style,je),window.requestAnimationFrame(()=>{if(a.value&&u.value!==window.location.href){u.value=window.location.href;return}window.scrollTo(d,v)}),je=null}}return Bt(()=>{function v(){r.value=window.scrollY}v(),window.addEventListener("scroll",v),tn(()=>{window.removeEventListener("scroll",v)})}),re([t,o,u],()=>{i.value||!o.value||(t.value?(window.matchMedia("(display-mode: standalone)").matches||g(),s.value||setTimeout(()=>{m()},500)):m())}),{restorePositionSetting:m}}function As(e,t){return e&&e.value?e:t}function Ts(e){const{emitDrag:t,emitRelease:s,emitClose:i,emitOpenChange:o,open:a,dismissible:l,nested:u,modal:r,shouldScaleBackground:g,setBackgroundColorOnScale:m,scrollLockTimeout:v,closeThreshold:d,activeSnapPoint:c,fadeFromIndex:h,direction:y,noBodyStyles:D,handleOnly:R,preventScrollRestoration:A}=e,b=H(a.value??!1),f=H(!1),x=H(!1),$=H(!1),T=H(null),I=H(null),S=H(null),k=H(null),M=H(null),G=H(!1),J=H(null),w=H(0),F=H(!1),p=H(null),U=O(()=>{var z;return((z=p.value)==null?void 0:z.$el.getBoundingClientRect().height)||0}),E=As(e.snapPoints,H(void 0)),K=O(()=>{var z;return E&&(((z=E.value)==null?void 0:z.length)??0)>0}),se=H(null),{activeSnapPointIndex:te,onRelease:be,snapPointsOffset:me,onDrag:Fa,shouldFade:Pt,getPercentageDragged:Pa}=Is({snapPoints:E,activeSnapPoint:c,drawerRef:p,fadeFromIndex:h,overlayRef:T,onSnapPointChange:za,direction:y});function za(z,Z){E.value&&z===Z.length-1&&(I.value=new Date)}Cs({isOpen:b,modal:r,nested:u,hasBeenOpened:f,noBodyStyles:D,preventScrollRestoration:A});function Ue(){return(window.innerWidth-Ca)/window.innerWidth}function zt(z,Z){var ae;if(!z)return!1;let Y=z;const ie=(ae=window.getSelection())==null?void 0:ae.toString(),ue=p.value?Je(p.value.$el,y.value):null,fe=new Date;if(Y.hasAttribute("data-vaul-no-drag")||Y.closest("[data-vaul-no-drag]"))return!1;if(y.value==="right"||y.value==="left")return!0;if(I.value&&fe.getTime()-I.value.getTime()<500)return!1;if(ue!==null&&(y.value==="bottom"?ue>0:ue<0))return!0;if(ie&&ie.length>0)return!1;if(M.value&&fe.getTime()-M.value.getTime()<v.value&&ue===0||Z)return M.value=fe,!1;for(;Y;){if(Y.scrollHeight>Y.clientHeight){if(Y.scrollTop!==0)return M.value=new Date,!1;if(Y.getAttribute("role")==="dialog")return!0}Y=Y.parentNode}return!0}function qa(z){!l.value&&!E.value||p.value&&!p.value.$el.contains(z.target)||(x.value=!0,S.value=new Date,z.target.setPointerCapture(z.pointerId),w.value=ee(y.value)?z.clientY:z.clientX)}function Na(z){var Z,ae,Y,ie,ue,fe;if(p.value&&x.value){const Ae=y.value==="bottom"||y.value==="right"?1:-1,Ve=(w.value-(ee(y.value)?z.clientY:z.clientX))*Ae,We=Ve>0,Nt=E.value&&!l.value&&!We;if(Nt&&te.value===0)return;const ut=Math.abs(Ve),Kt=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");let xe=ut/U.value;const Ht=Pa(ut,We);if(Ht!==null&&(xe=Ht),Nt&&xe>=1||!G.value&&!zt(z.target,We))return;if((Z=p?.value)==null||Z.$el.classList.add(Jt),G.value=!0,ne((ae=p.value)==null?void 0:ae.$el,{transition:"none"}),ne((Y=T.value)==null?void 0:Y.$el,{transition:"none"}),E.value&&Fa({draggedDistance:Ve}),We&&!E.value){const $e=_s(Ve),Ge=Math.min($e*-1,0)*Ae;ne((ie=p.value)==null?void 0:ie.$el,{transform:ee(y.value)?`translate3d(0, ${Ge}px, 0)`:`translate3d(${Ge}px, 0, 0)`});return}const Wa=1-xe;if((Pt.value||h.value&&te.value===h.value-1)&&(t(xe),ne((ue=T.value)==null?void 0:ue.$el,{opacity:`${Wa}`,transition:"none"},!0)),Kt&&T.value&&g.value){const $e=Math.min(Ue()+xe*(1-Ue()),1),Ge=8-xe*8,Ut=Math.max(0,14-xe*14);ne(Kt,{borderRadius:`${Ge}px`,transform:ee(y.value)?`scale(${$e}) translate3d(0, ${Ut}px, 0)`:`scale(${$e}) translate3d(${Ut}px, 0, 0)`,transition:"none"},!0)}if(!E.value){const $e=ut*Ae;ne((fe=p.value)==null?void 0:fe.$el,{transform:ee(y.value)?`translate3d(0, ${$e}px, 0)`:`translate3d(${$e}px, 0, 0)`})}}}function qt(){var z;if(!p.value)return;const Z=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]"),ae=Je(p.value.$el,y.value);ne(p.value.$el,{transform:"translate3d(0, 0, 0)",transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`}),ne((z=T.value)==null?void 0:z.$el,{transition:`opacity ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,opacity:"1"}),g.value&&ae&&ae>0&&b.value&&ne(Z,{borderRadius:`${Ia}px`,overflow:"hidden",...ee(y.value)?{transform:`scale(${Ue()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${Ue()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:`${X.DURATION}s`,transitionTimingFunction:`cubic-bezier(${X.EASE.join(",")})`},!0)}function Re(z){p.value&&(i(),z||(b.value=!1),window.setTimeout(()=>{E.value&&(c.value=E.value[0])},X.DURATION*1e3))}Tt(()=>{if(!b.value&&g.value&&gs){const z=setTimeout(()=>{ks(document.body)},200);return()=>clearTimeout(z)}}),re(a,()=>{b.value=a.value,a.value||Re()});function Ka(z){if(!x.value||!p.value)return;p.value.$el.classList.remove(Jt),G.value=!1,x.value=!1,k.value=new Date;const Z=Je(p.value.$el,y.value);if(!zt(z.target,!1)||!Z||Number.isNaN(Z)||S.value===null)return;const ae=k.value.getTime()-S.value.getTime(),Y=w.value-(ee(y.value)?z.clientY:z.clientX),ie=Math.abs(Y)/ae;if(ie>.05&&($.value=!0,window.setTimeout(()=>{$.value=!1},200)),E.value){const fe=y.value==="bottom"||y.value==="right"?1:-1;be({draggedDistance:Y*fe,closeDrawer:Re,velocity:ie,dismissible:l.value}),s(!0);return}if(y.value==="bottom"||y.value==="right"?Y>0:Y<0){qt(),s(!0);return}if(ie>$a){Re(),s(!1);return}const ue=Math.min(p.value.$el.getBoundingClientRect().height??0,window.innerHeight);if(Z>=ue*d.value){Re(),s(!1);return}s(!0),qt()}re(b,z=>{z&&(I.value=new Date),o(z)},{immediate:!0});function Ha(z){var Z,ae;const Y=z?(window.innerWidth-Ye)/window.innerWidth:1,ie=z?-16:0;J.value&&window.clearTimeout(J.value),ne((Z=p.value)==null?void 0:Z.$el,{transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,transform:`scale(${Y}) translate3d(0, ${ie}px, 0)`}),!z&&(ae=p.value)!=null&&ae.$el&&(J.value=window.setTimeout(()=>{var ue,fe;const Ae=Je((ue=p.value)==null?void 0:ue.$el,y.value);ne((fe=p.value)==null?void 0:fe.$el,{transition:"none",transform:ee(y.value)?`translate3d(0, ${Ae}px, 0)`:`translate3d(${Ae}px, 0, 0)`})},500))}function Ua(z){var Z;if(z<0)return;const ae=ee(y.value)?window.innerHeight:window.innerWidth,Y=(ae-Ye)/ae,ie=Y+z*(1-Y),ue=-16+z*Ye;ne((Z=p.value)==null?void 0:Z.$el,{transform:ee(y.value)?`scale(${ie}) translate3d(0, ${ue}px, 0)`:`scale(${ie}) translate3d(${ue}px, 0, 0)`,transition:"none"})}function Va(z){var Z;const ae=ee(y.value)?window.innerHeight:window.innerWidth,Y=z?(ae-Ye)/ae:1,ie=z?-16:0;z&&ne((Z=p.value)==null?void 0:Z.$el,{transition:`transform ${X.DURATION}s cubic-bezier(${X.EASE.join(",")})`,transform:ee(y.value)?`scale(${Y}) translate3d(0, ${ie}px, 0)`:`scale(${Y}) translate3d(${ie}px, 0, 0)`})}return{open:a,isOpen:b,modal:r,keyboardIsOpen:F,hasBeenOpened:f,drawerRef:p,drawerHeightRef:U,overlayRef:T,handleRef:se,isDragging:x,dragStartTime:S,isAllowedToDrag:G,snapPoints:E,activeSnapPoint:c,hasSnapPoints:K,pointerStart:w,dismissible:l,snapPointsOffset:me,direction:y,shouldFade:Pt,fadeFromIndex:h,shouldScaleBackground:g,setBackgroundColorOnScale:m,onPress:qa,onDrag:Na,onRelease:Ka,closeDrawer:Re,onNestedDrag:Ua,onNestedRelease:Va,onNestedOpenChange:Ha,emitClose:i,emitDrag:t,emitRelease:s,emitOpenChange:o,nested:u,handleOnly:R,noBodyStyles:D}}const Aa=he({__name:"DrawerRoot",props:{activeSnapPoint:{default:void 0},closeThreshold:{default:xs},shouldScaleBackground:{type:Boolean,default:void 0},setBackgroundColorOnScale:{type:Boolean,default:!0},scrollLockTimeout:{default:$s},fixed:{type:Boolean,default:void 0},dismissible:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},nested:{type:Boolean,default:!1},direction:{default:"bottom"},noBodyStyles:{type:Boolean},handleOnly:{type:Boolean,default:!1},preventScrollRestoration:{type:Boolean},snapPoints:{default:void 0},fadeFromIndex:{default:void 0}},emits:["drag","release","close","update:open","update:activeSnapPoint","animationEnd"],setup(e,{expose:t,emit:s}){const i=e,o=s;Ee();const a=O(()=>i.fadeFromIndex??(i.snapPoints&&i.snapPoints.length-1)),l=Gt(i,"open",o,{defaultValue:i.defaultOpen,passive:i.open===void 0}),u=Gt(i,"activeSnapPoint",o,{passive:i.activeSnapPoint===void 0}),r={emitDrag:h=>o("drag",h),emitRelease:h=>o("release",h),emitClose:()=>o("close"),emitOpenChange:h=>{o("update:open",h),setTimeout(()=>{o("animationEnd",h)},X.DURATION*1e3)}},{closeDrawer:g,hasBeenOpened:m,modal:v,isOpen:d}=ws(Ts({...r,...Qa(i),activeSnapPoint:u,fadeFromIndex:a,open:l}));function c(h){if(l.value!==void 0){r.emitOpenChange(h);return}d.value=h,h?m.value=!0:g()}return t({open:d}),(h,y)=>(_(),L(n(zn),{open:n(d),modal:n(v),"onUpdate:open":c},{default:C(()=>[N(h.$slots,"default",{open:n(d)})]),_:3},8,["open","modal"]))}}),Ds=he({__name:"DrawerRootNested",props:{activeSnapPoint:{},closeThreshold:{},shouldScaleBackground:{type:Boolean},setBackgroundColorOnScale:{type:Boolean},scrollLockTimeout:{},fixed:{type:Boolean},dismissible:{type:Boolean},modal:{type:Boolean},open:{type:Boolean},defaultOpen:{type:Boolean},nested:{type:Boolean},direction:{},noBodyStyles:{type:Boolean},handleOnly:{type:Boolean},preventScrollRestoration:{type:Boolean},snapPoints:{},fadeFromIndex:{}},emits:["drag","release","close","update:open","update:activeSnapPoint","animationEnd"],setup(e,{emit:t}){const s=e,i=t,{onNestedDrag:o,onNestedOpenChange:a,onNestedRelease:l}=He();function u(){a(!1)}function r(v){o(v)}function g(v){v&&a(v),i("update:open",v)}const m=Ya(s,i);return(v,d)=>(_(),L(Aa,Q(n(m),{nested:"",onClose:u,onDrag:r,onRelease:n(l),"onUpdate:open":g}),{default:C(()=>[N(v.$slots,"default")]),_:3},16,["onRelease"]))}}),Bs=he({__name:"DrawerOverlay",setup(e){const{overlayRef:t,hasSnapPoints:s,isOpen:i,shouldFade:o}=He();return(a,l)=>(_(),L(n(Fn),{ref_key:"overlayRef",ref:t,"data-vaul-overlay":"","data-vaul-snap-points":n(i)&&n(s)?"true":"false","data-vaul-snap-points-overlay":n(i)&&n(o)?"true":"false"},null,8,["data-vaul-snap-points","data-vaul-snap-points-overlay"]))}}),Ls=()=>()=>{};function Es(){const{direction:e,isOpen:t,shouldScaleBackground:s,setBackgroundColorOnScale:i,noBodyStyles:o}=He(),a=H(null),l=H(document.body.style.backgroundColor);function u(){return(window.innerWidth-Ca)/window.innerWidth}Tt(r=>{if(t.value&&s.value){a.value&&clearTimeout(a.value);const g=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!g)return;Ss(i.value&&!o.value?ft(document.body,{background:"black"}):Ls,ft(g,{transformOrigin:ee(e.value)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:`${X.DURATION}s`,transitionTimingFunction:`cubic-bezier(${X.EASE.join(",")})`}));const m=ft(g,{borderRadius:`${Ia}px`,overflow:"hidden",...ee(e.value)?{transform:`scale(${u()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${u()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});r(()=>{m(),a.value=window.setTimeout(()=>{l.value?document.body.style.background=l.value:document.body.style.removeProperty("background")},X.DURATION*1e3)})}},{flush:"pre"})}const Ms=he({__name:"DrawerContent",setup(e){const{open:t,isOpen:s,snapPointsOffset:i,hasSnapPoints:o,drawerRef:a,onPress:l,onDrag:u,onRelease:r,modal:g,emitOpenChange:m,dismissible:v,keyboardIsOpen:d,closeDrawer:c,direction:h,handleOnly:y}=He();Es();const D=H(!1),R=O(()=>i.value&&i.value.length>0?`${i.value[0]}px`:"0");function A(x){if(!g.value||x.defaultPrevented){x.preventDefault();return}d.value&&(d.value=!1),v.value?m(!1):x.preventDefault()}function b(x){y.value||l(x)}function f(x){y.value||u(x)}return Tt(()=>{o.value&&window.requestAnimationFrame(()=>{D.value=!0})}),(x,$)=>(_(),L(n(Pn),{ref_key:"drawerRef",ref:a,"data-vaul-drawer":"","data-vaul-drawer-direction":n(h),"data-vaul-delayed-snap-points":D.value?"true":"false","data-vaul-snap-points":n(s)&&n(o)?"true":"false",style:da({"--snap-point-height":R.value}),onPointerdown:b,onPointermove:f,onPointerup:n(r),onPointerDownOutside:A,onOpenAutoFocus:$[0]||($[0]=Ja(()=>{},["prevent"])),onEscapeKeyDown:$[1]||($[1]=T=>{n(v)||T.preventDefault()})},{default:C(()=>[N(x.$slots,"default")]),_:3},8,["data-vaul-drawer-direction","data-vaul-delayed-snap-points","data-vaul-snap-points","style","onPointerup"]))}}),Os=["data-vaul-drawer-visible"],Rs={"data-vaul-handle-hitarea":"","aria-hidden":"true"},js=250,Fs=120,Ps=he({__name:"DrawerHandle",props:{preventCycle:{type:Boolean,default:!1}},setup(e){const t=e,{onPress:s,onDrag:i,handleRef:o,handleOnly:a,isOpen:l,snapPoints:u,activeSnapPoint:r,isDragging:g,dismissible:m,closeDrawer:v}=He(),d=H(null),c=H(!1);function h(){if(c.value){R();return}window.setTimeout(()=>{y()},Fs)}function y(){if(g.value||t.preventCycle||c.value){R();return}if(R(),!u.value||u.value.length===0){m.value||v();return}const f=r.value===u.value[u.value.length-1];if(f&&m.value){v();return}const x=u.value.findIndex(T=>T===r.value);if(x===-1)return;const $=f?0:x+1;r.value=u.value[$]}function D(){d.value=window.setTimeout(()=>{c.value=!0},js)}function R(){d.value&&window.clearTimeout(d.value),c.value=!1}function A(f){a.value&&s(f),D()}function b(f){a.value&&i(f)}return(f,x)=>(_(),V("div",{ref_key:"handleRef",ref:o,"data-vaul-drawer-visible":n(l)?"true":"false","data-vaul-handle":"","aria-hidden":"true",onClick:h,onPointercancel:R,onPointerdown:A,onPointermove:b},[W("span",Rs,[N(f.$slots,"default")])],40,Os))}}),zs={slots:{overlay:"fixed inset-0 bg-elevated/75",content:"fixed bg-default ring ring-default flex focus:outline-none",handle:["shrink-0 !bg-accented","transition-opacity"],container:"w-full flex flex-col gap-4 p-4 overflow-y-auto",header:"flex items-center gap-1.5 min-h-8",wrapper:"min-w-0 flex-1",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",actions:"flex items-center gap-1.5 shrink-0 ms-auto",body:"flex-1",footer:"flex flex-col gap-1.5",close:""},variants:{direction:{top:{content:"mb-24 flex-col-reverse",handle:"mb-4"},right:{content:"flex-row rtl:flex-row-reverse",handle:"!ml-4"},bottom:{content:"mt-24 flex-col",handle:"mt-4"},left:{content:"flex-row-reverse rtl:flex-row",handle:"!mr-4"}},inset:{true:{content:"rounded-lg after:hidden overflow-hidden [--initial-transform:calc(100%+1.5rem)]"}},snapPoints:{true:""}},compoundVariants:[{direction:["top","bottom"],class:{content:"h-auto max-h-[96%]",handle:"!w-12 !h-1.5 mx-auto"}},{direction:["top","bottom"],snapPoints:!0,class:{content:"h-full"}},{direction:["right","left"],class:{content:"w-auto max-w-[calc(100%-2rem)]",handle:"!h-12 !w-1.5 mt-auto mb-auto"}},{direction:["right","left"],snapPoints:!0,class:{content:"w-full"}},{direction:"top",inset:!0,class:{content:"inset-x-4 top-4"}},{direction:"top",inset:!1,class:{content:"inset-x-0 top-0 rounded-b-lg"}},{direction:"bottom",inset:!0,class:{content:"inset-x-4 bottom-4"}},{direction:"bottom",inset:!1,class:{content:"inset-x-0 bottom-0 rounded-t-lg"}},{direction:"left",inset:!0,class:{content:"inset-y-4 left-4"}},{direction:"left",inset:!1,class:{content:"inset-y-0 left-0 rounded-r-lg"}},{direction:"right",inset:!0,class:{content:"inset-y-4 right-4"}},{direction:"right",inset:!1,class:{content:"inset-y-0 right-0 rounded-l-lg"}}]},qs={__name:"UDrawer",props:{as:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},inset:{type:Boolean,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},handle:{type:Boolean,required:!1,default:!0},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},nested:{type:Boolean,required:!1},close:{type:[Boolean,Object],required:!1},closeIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},activeSnapPoint:{type:[Number,String,null],required:!1},closeThreshold:{type:Number,required:!1},shouldScaleBackground:{type:Boolean,required:!1},setBackgroundColorOnScale:{type:Boolean,required:!1},scrollLockTimeout:{type:Number,required:!1},fixed:{type:Boolean,required:!1},dismissible:{type:Boolean,required:!1,default:!0},modal:{type:Boolean,required:!1,default:!0},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},direction:{type:String,required:!1,default:"bottom"},noBodyStyles:{type:Boolean,required:!1},handleOnly:{type:Boolean,required:!1},preventScrollRestoration:{type:Boolean,required:!1},snapPoints:{type:Array,required:!1}},emits:["close:prevent","drag","release","close","update:open","update:activeSnapPoint","animationEnd"],setup(e,{emit:t}){const s=e,i=t,o=Ee(),a=Me("drawer",s),{t:l}=Ne(),u=Ce(),r=Pe(st(a,"activeSnapPoint","closeThreshold","shouldScaleBackground","setBackgroundColorOnScale","scrollLockTimeout","fixed","dismissible","modal","open","defaultOpen","nested","direction","noBodyStyles","handleOnly","preventScrollRestoration","snapPoints"),i),g=an(Be(()=>a.portal)),m=Be(()=>a.content),v=O(()=>a.dismissible?{pointerDownOutside:rn}:["interactOutside","escapeKeyDown"].reduce((h,y)=>(h[y]=D=>{D.preventDefault(),i("close:prevent")},h),{})),d=O(()=>Oe({extend:zs,...u.ui?.drawer||{}})({direction:a.direction,inset:a.inset,snapPoints:a.snapPoints&&a.snapPoints.length>0}));return(c,h)=>(_(),L(ln(n(a).nested?n(Ds):n(Aa)),Te(De(n(r))),{default:C(()=>[o.default?(_(),L(n(qn),{key:0,"as-child":"",class:q(n(a).class)},{default:C(()=>[N(c.$slots,"default")]),_:3},8,["class"])):P("",!0),B(n(Nn),Te(De(n(g))),{default:C(()=>[B(n(nn),null,{default:C(()=>[n(a).overlay?(_(),L(n(Bs),{key:0,"data-slot":"overlay",class:q(d.value.overlay({class:n(a).ui?.overlay}))},null,8,["class"])):P("",!0),B(n(Ms),Q({"data-slot":"content",class:d.value.content({class:[!o.default&&n(a).class,n(a).ui?.content]})},m.value,sn(v.value)),{default:C(()=>[n(a).handle?(_(),L(n(Ps),{key:0,"data-slot":"handle",class:q(d.value.handle({class:n(a).ui?.handle}))},null,8,["class"])):P("",!0),!n(a).title&&!o.title||!n(a).description&&!o.description||o.content?(_(),L(n(on),{key:1},{default:C(()=>[!n(a).title&&!o.title?(_(),L(n(ct),{key:0})):o.content?(_(),L(n(ct),{key:1},{default:C(()=>[N(c.$slots,"title",{},()=>[ce(oe(n(a).title),1)])]),_:3})):P("",!0),!n(a).description&&!o.description?(_(),L(n(dt),{key:2})):o.content?(_(),L(n(dt),{key:3},{default:C(()=>[N(c.$slots,"description",{},()=>[ce(oe(n(a).description),1)])]),_:3})):P("",!0)]),_:3})):P("",!0),N(c.$slots,"content",{},()=>[W("div",{"data-slot":"container",class:q(d.value.container({class:n(a).ui?.container}))},[o.header||n(a).title||o.title||n(a).description||o.description||n(a).close||o.close||o.actions?(_(),V("div",{key:0,"data-slot":"header",class:q(d.value.header({class:n(a).ui?.header}))},[N(c.$slots,"header",{},()=>[n(a).title||o.title||n(a).description||o.description?(_(),V("div",{key:0,"data-slot":"wrapper",class:q(d.value.wrapper({class:n(a).ui?.wrapper}))},[n(a).title||o.title?(_(),L(n(ct),{key:0,"data-slot":"title",class:q(d.value.title({class:n(a).ui?.title}))},{default:C(()=>[N(c.$slots,"title",{},()=>[ce(oe(n(a).title),1)])]),_:3},8,["class"])):P("",!0),n(a).description||o.description?(_(),L(n(dt),{key:1,"data-slot":"description",class:q(d.value.description({class:n(a).ui?.description}))},{default:C(()=>[N(c.$slots,"description",{},()=>[ce(oe(n(a).description),1)])]),_:3},8,["class"])):P("",!0)],2)):P("",!0),o.actions||n(a).close||o.close?(_(),V("div",{key:1,"data-slot":"actions",class:q(d.value.actions({class:n(a).ui?.actions}))},[N(c.$slots,"actions"),n(a).close||o.close?(_(),L(n(Kn),{key:0,"as-child":""},{default:C(()=>[N(c.$slots,"close",{ui:d.value},()=>[n(a).close?(_(),L(ke,Q({key:0,icon:n(a).closeIcon||n(u).ui.icons.close,color:"neutral",variant:"ghost","aria-label":n(l)("drawer.close")},typeof n(a).close=="object"?n(a).close:{},{"data-slot":"close",class:d.value.close({class:n(a).ui?.close})}),null,16,["icon","aria-label","class"])):P("",!0)])]),_:3})):P("",!0)],2)):P("",!0)])],2)):P("",!0),o.body?(_(),V("div",{key:1,"data-slot":"body",class:q(d.value.body({class:n(a).ui?.body}))},[N(c.$slots,"body")],2)):P("",!0),o.footer?(_(),V("div",{key:2,"data-slot":"footer",class:q(d.value.footer({class:n(a).ui?.footer}))},[N(c.$slots,"footer")],2)):P("",!0)],2)])]),_:3},16,["class"])]),_:3})]),_:3},16)]),_:3},16))}},Ns={slots:{root:"relative hidden lg:flex flex-col min-h-svh min-w-16 w-(--width) shrink-0",header:"h-(--ui-header-height) shrink-0 flex items-center gap-1.5 px-4",body:"flex flex-col gap-4 flex-1 overflow-y-auto px-4 py-2",footer:"shrink-0 flex items-center gap-1.5 px-4 py-2",toggle:"",handle:"",content:"lg:hidden",overlay:"lg:hidden"},variants:{menu:{true:{header:"sm:px-6",body:"sm:px-6",footer:"sm:px-6"}},side:{left:{root:"border-e border-default"},right:{root:""}},toggleSide:{left:{toggle:""},right:{toggle:"ms-auto"}}}};function yt(e,t){const i=fa().hook(e,t);pa(i)}const Ks=["data-collapsed","data-dragging"],Hs=Object.assign({inheritAttrs:!1},{__name:"UDashboardSidebar",props:it({mode:{type:null,required:!1,default:"slideover"},menu:{type:null,required:!1},toggle:{type:[Boolean,Object],required:!1,default:!0},toggleSide:{type:String,required:!1,default:"left"},autoClose:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},id:{type:String,required:!1},side:{type:String,required:!1,default:"left"},minSize:{type:Number,required:!1,default:10},maxSize:{type:Number,required:!1,default:20},defaultSize:{type:Number,required:!1,default:15},resizable:{type:Boolean,required:!1,default:!1},collapsible:{type:Boolean,required:!1,default:!1},collapsedSize:{type:Number,required:!1,default:0}},{open:{type:Boolean,default:!1},openModifiers:{},collapsed:{type:Boolean,default:!1},collapsedModifiers:{}}),emits:["update:open","update:collapsed"],setup(e){const t=e,s=Ee(),i=Me("dashboardSidebar",t),o=ze(e,"open",{type:Boolean,default:!1}),a=ze(e,"collapsed",{type:Boolean,default:!1}),l=Lt(),{t:u}=Ne(),r=Ce(),g=ba({storageKey:"dashboard",unit:"%",sidebarOpen:H(!1),sidebarCollapsed:H(!1)}),m=`${g.storageKey}-sidebar-${i.id||un()}`,{el:v,size:d,collapse:c,isCollapsed:h,isDragging:y,onMouseDown:D,onTouchStart:R,onDoubleClick:A}=Tn(m,Be(()=>({...g,...i})),{collapsed:a}),[b,f]=at(),[x,$]=at();yt("dashboard:sidebar:toggle",()=>{o.value=!o.value}),yt("dashboard:sidebar:collapse",M=>{h.value=M}),re(o,()=>g.sidebarOpen.value=o.value,{immediate:!0}),re(h,()=>g.sidebarCollapsed.value=h.value,{immediate:!0}),re(()=>l.fullPath,()=>{i.autoClose&&(o.value=!1)});const T=O(()=>Oe({extend:Ns,...r.ui?.dashboardSidebar||{}})({side:i.side})),I=O(()=>({slideover:jn,modal:rt,drawer:qs})[i.mode]),S=Be(()=>Le(i.menu,{},i.mode==="modal"?{fullscreen:!0,transition:!1}:i.mode==="slideover"?{side:"left"}:{}));function k(){o.value=!o.value}return(M,G)=>(_(),V(pe,null,[B(n(b),null,{default:C(()=>[N(M.$slots,"toggle",{open:o.value,toggle:k,ui:T.value},()=>[n(i).toggle?(_(),L(Dn,Q({key:0},typeof n(i).toggle=="object"?n(i).toggle:{},{side:n(i).toggleSide,"data-slot":"toggle",class:T.value.toggle({class:n(i).ui?.toggle,toggleSide:n(i).toggleSide})}),null,16,["side","class"])):P("",!0)])]),_:3}),B(n(x),null,{default:C(()=>[N(M.$slots,"resize-handle",{onMouseDown:n(D),onTouchStart:n(R),onDoubleClick:n(A),ui:T.value},()=>[n(i).resizable?(_(),L(Bn,{key:0,"aria-controls":m,"data-slot":"handle",class:q(T.value.handle({class:n(i).ui?.handle})),onMousedown:n(D),onTouchstart:n(R),onDblclick:n(A)},null,8,["class","onMousedown","onTouchstart","onDblclick"])):P("",!0)])]),_:3}),n(i).side==="right"?(_(),L(n($),{key:0})):P("",!0),W("div",Q({id:m,ref_key:"el",ref:v,"data-slot":"root"},M.$attrs,{"data-collapsed":n(h),"data-dragging":n(y),class:T.value.root({class:[n(i).ui?.root,n(i).class]}),style:{"--width":`${n(d)||0}${n(g).unit}`}}),[s.header?(_(),V("div",{key:0,"data-slot":"header",class:q(T.value.header({class:n(i).ui?.header}))},[N(M.$slots,"header",{collapsed:n(h),collapse:n(c)})],2)):P("",!0),W("div",{"data-slot":"body",class:q(T.value.body({class:n(i).ui?.body}))},[N(M.$slots,"default",{collapsed:n(h),collapse:n(c)})],2),s.footer?(_(),V("div",{key:1,"data-slot":"footer",class:q(T.value.footer({class:n(i).ui?.footer}))},[N(M.$slots,"footer",{collapsed:n(h),collapse:n(c)})],2)):P("",!0)],16,Ks),n(i).side==="left"?(_(),L(n($),{key:1})):P("",!0),B(n(I),Q({open:o.value,"onUpdate:open":G[0]||(G[0]=J=>o.value=J),title:n(u)("dashboardSidebar.title"),description:n(u)("dashboardSidebar.description")},S.value,{ui:{overlay:T.value.overlay({class:n(i).ui?.overlay}),content:T.value.content({class:n(i).ui?.content})}}),{content:C(J=>[N(M.$slots,"content",Te(De(J)),()=>[s.header||n(i).mode!=="drawer"?(_(),V("div",{key:0,"data-slot":"header",class:q(T.value.header({class:n(i).ui?.header,menu:!0}))},[n(i).mode!=="drawer"&&n(i).toggleSide==="left"?(_(),L(n(f),{key:0})):P("",!0),N(M.$slots,"header",{collapsed:!1,collapse:()=>{}}),n(i).mode!=="drawer"&&n(i).toggleSide==="right"?(_(),L(n(f),{key:1})):P("",!0)],2)):P("",!0),W("div",{"data-slot":"body",class:q(T.value.body({class:n(i).ui?.body,menu:!0}))},[N(M.$slots,"default",{collapsed:!1,collapse:()=>{}})],2),s.footer?(_(),V("div",{key:1,"data-slot":"footer",class:q(T.value.footer({class:n(i).ui?.footer,menu:!0}))},[N(M.$slots,"footer",{collapsed:!1,collapse:()=>{}})],2)):P("",!0)])]),_:3},16,["open","title","description","ui"])],64))}});function _e(e){return Array.isArray?Array.isArray(e):Da(e)==="[object Array]"}function Us(e){if(typeof e=="string")return e;if(typeof e=="bigint")return e.toString();const t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function bt(e){return e==null?"":Us(e)}function le(e){return typeof e=="string"}function Ze(e){return typeof e=="number"}function Vs(e){return e===!0||e===!1||Ws(e)&&Da(e)=="[object Boolean]"}function Ta(e){return typeof e=="object"}function Ws(e){return Ta(e)&&e!==null}function de(e){return e!=null}function Qe(e){return!e.trim().length}function Da(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const Gs="Incorrect 'index' type",wt="Invalid doc index: must be a non-negative integer within the bounds of the docs array",Js=e=>`Invalid value for key ${e}`,Ys=e=>`Pattern length exceeds max of ${e}.`,Qs=e=>`Missing ${e} property in key`,Xs=e=>`Property 'weight' in key '${e}' must be a positive integer`,Zs="Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.",Qt=Object.prototype.hasOwnProperty;var ei=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(s=>{const i=Ba(s);this._keys.push(i),this._keyMap[i.id]=i,t+=i.weight}),this._keys.forEach(s=>{s.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function Ba(e){let t=null,s=null,i=null,o=1,a=null;if(le(e)||_e(e))i=e,t=Xt(e),s=et(e);else{if(!Qt.call(e,"name"))throw new Error(Qs("name"));const l=e.name;if(i=l,Qt.call(e,"weight")&&e.weight!==void 0&&(o=e.weight,o<=0))throw new Error(Xs(et(l)));t=Xt(l),s=et(l),a=e.getFn??null}return{path:t,id:s,weight:o,src:i,getFn:a}}function Xt(e){return _e(e)?e:e.split(".")}function et(e){return _e(e)?e.join("."):e}function ti(e,t){const s=[];let i=!1;const o=(a,l,u,r)=>{if(de(a))if(!l[u])s.push(r!==void 0?{v:a,i:r}:a);else{const g=a[l[u]];if(!de(g))return;if(u===l.length-1&&(le(g)||Ze(g)||Vs(g)||typeof g=="bigint"))s.push(r!==void 0?{v:bt(g),i:r}:bt(g));else if(_e(g)){i=!0;for(let m=0,v=g.length;m<v;m+=1)o(g[m],l,u+1,m)}else l.length&&o(g,l,u+1,r)}};return o(e,le(t)?t.split("."):t,0),i?s:s[0]}const ai={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},ni={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},si={location:0,threshold:.6,distance:100},ii={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:"any",getFn:ti,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},j=Object.freeze({...ni,...ai,...si,...ii});function oi(e){return e>=9&&e<=13||e===32||e===160}function li(e=1,t=3){const s=new Map,i=Math.pow(10,t);return{get(o){let a=0,l=!1;for(let r=0;r<o.length;r++)oi(o.charCodeAt(r))?l=!1:l||(a++,l=!0);if(a===0&&(a=1),s.has(a))return s.get(a);const u=Math.round(i/Math.pow(a,.5*e))/i;return s.set(a,u),u},clear(){s.clear()}}}var Ot=class{constructor({getFn:e=j.getFn,fieldNormWeight:t=j.fieldNormWeight}={}){this.norm=li(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((t,s)=>{this._keysMap[t.id]=s})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;const e=this.docs.length;this.records=new Array(e);let t=0;if(le(this.docs[0]))for(let s=0;s<e;s++){const i=this._createStringRecord(this.docs[s],s);i&&(this.records[t++]=i)}else for(let s=0;s<e;s++)this.records[t++]=this._createObjectRecord(this.docs[s],s);this.records.length=t,this.norm.clear()}add(e,t){if(!Number.isInteger(t)||t<0)throw new Error(wt);if(le(e)){const i=this._createStringRecord(e,t);return i&&this.records.push(i),i}const s=this._createObjectRecord(e,t);return this.records.push(s),s}removeAt(e){if(!Number.isInteger(e)||e<0)throw new Error(wt);for(let t=0,s=this.records.length;t<s;t+=1)if(this.records[t].i===e){this.records.splice(t,1);break}for(let t=0,s=this.records.length;t<s;t+=1)this.records[t].i>e&&(this.records[t].i-=1)}removeAll(e){const t=new Set;for(const i of e)Number.isInteger(i)&&i>=0&&t.add(i);if(t.size===0)return;this.records=this.records.filter(i=>!t.has(i.i));const s=Array.from(t).sort((i,o)=>i-o);for(const i of this.records){let o=0,a=s.length;for(;o<a;){const l=o+a>>>1;s[l]<i.i?o=l+1:a=l}i.i-=o}}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_createStringRecord(e,t){return!de(e)||Qe(e)?null:{v:e,i:t,n:this.norm.get(e)}}_createObjectRecord(e,t){const s={i:t,$:{}};for(let i=0,o=this.keys.length;i<o;i++){const a=this.keys[i],l=a.getFn?a.getFn(e):this.getFn(e,a.path);if(de(l)){if(_e(l)){const u=[];for(let r=0,g=l.length;r<g;r+=1){const m=l[r];if(de(m)){if(le(m)){if(!Qe(m)){const v={v:m,i:r,n:this.norm.get(m)};u.push(v)}}else if(de(m.v)){const v=le(m.v)?m.v:bt(m.v);if(!Qe(v)){const d={v,i:m.i,n:this.norm.get(v)};u.push(d)}}}}s.$[i]=u}else if(le(l)&&!Qe(l)){const u={v:l,n:this.norm.get(l)};s.$[i]=u}}}return s}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}};function La(e,t,{getFn:s=j.getFn,fieldNormWeight:i=j.fieldNormWeight}={}){const o=new Ot({getFn:s,fieldNormWeight:i});return o.setKeys(e.map(Ba)),o.setSources(t),o.create(),o}function ri(e,{getFn:t=j.getFn,fieldNormWeight:s=j.fieldNormWeight}={}){const{keys:i,records:o}=e,a=new Ot({getFn:t,fieldNormWeight:s});return a.setKeys(i),a.setIndexRecords(o),a}function ui(e=[],t=j.minMatchCharLength){const s=[];let i=-1,o=-1,a=0;for(let l=e.length;a<l;a+=1){const u=e[a];u&&i===-1?i=a:!u&&i!==-1&&(o=a-1,o-i+1>=t&&s.push([i,o]),i=-1)}return e[a-1]&&a-i>=t&&s.push([i,a-1]),s}function ci(e,t,s,{location:i=j.location,distance:o=j.distance,threshold:a=j.threshold,findAllMatches:l=j.findAllMatches,minMatchCharLength:u=j.minMatchCharLength,includeMatches:r=j.includeMatches,ignoreLocation:g=j.ignoreLocation}={}){if(t.length>32)throw new Error(Ys(32));const m=t.length,v=e.length,d=Math.max(0,Math.min(i,v));let c=a,h=d;const y=(S,k)=>{const M=S/m;if(g)return M;const G=Math.abs(d-k);return o?M+G/o:G?1:M},D=u>1||r,R=D?Array(v):[];let A;for(;(A=e.indexOf(t,h))>-1;){const S=y(0,A);if(c=Math.min(S,c),h=A+m,D){let k=0;for(;k<m;)R[A+k]=1,k+=1}}h=-1;let b=[],f=1,x=0,$=m+v;const T=1<<m-1;for(let S=0;S<m;S+=1){let k=0,M=$;for(;k<M;)y(S,d+M)<=c?k=M:$=M,M=Math.floor(($-k)/2+k);$=M;let G=Math.max(1,d-M+1);const J=l?v:Math.min(d+M,v)+m,w=Array(J+2);w[J+1]=(1<<S)-1;for(let F=J;F>=G;F-=1){const p=F-1,U=s[e[p]];if(w[F]=(w[F+1]<<1|1)&U,S&&(w[F]|=(b[F+1]|b[F])<<1|1|b[F+1]),w[F]&T&&(f=y(S,p),f<=c)){if(c=f,h=p,x=S,h<=d)break;G=Math.max(1,2*d-h)}}if(y(S+1,d)>c)break;b=w}if(D&&h>=0){const S=Math.min(v-1,h+m-1+x);for(let k=h;k<=S;k+=1)s[e[k]]&&(R[k]=1)}const I={isMatch:h>=0,score:Math.max(.001,f)};if(D){const S=ui(R,u);S.length?r&&(I.indices=S):I.isMatch=!1}return I}function di(e){const t={};for(let s=0,i=e.length;s<i;s+=1){const o=e.charAt(s);t[o]=(t[o]||0)|1<<i-s-1}return t}function Rt(e){if(e.length<=1)return e;e.sort((s,i)=>s[0]-i[0]||s[1]-i[1]);const t=[e[0]];for(let s=1,i=e.length;s<i;s+=1){const o=t[t.length-1],a=e[s];a[0]<=o[1]+1?o[1]=Math.max(o[1],a[1]):t.push(a)}return t}const Ea={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},fi=new RegExp("["+Object.keys(Ea).join("")+"]","g"),qe=typeof String.prototype.normalize=="function"?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(fi,t=>Ea[t]):e=>e;var jt=class{constructor(e,{location:t=j.location,threshold:s=j.threshold,distance:i=j.distance,includeMatches:o=j.includeMatches,findAllMatches:a=j.findAllMatches,minMatchCharLength:l=j.minMatchCharLength,isCaseSensitive:u=j.isCaseSensitive,ignoreDiacritics:r=j.ignoreDiacritics,ignoreLocation:g=j.ignoreLocation}={}){if(this.options={location:t,threshold:s,distance:i,includeMatches:o,findAllMatches:a,minMatchCharLength:l,isCaseSensitive:u,ignoreDiacritics:r,ignoreLocation:g},e=u?e:e.toLowerCase(),e=r?qe(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const m=(d,c)=>{this.chunks.push({pattern:d,alphabet:di(d),startIndex:c})},v=this.pattern.length;if(v>32){let d=0;const c=v%32,h=v-c;for(;d<h;)m(this.pattern.substr(d,32),d),d+=32;if(c){const y=v-32;m(this.pattern.substr(y),y)}}else m(this.pattern,0)}searchIn(e){const{isCaseSensitive:t,ignoreDiacritics:s,includeMatches:i}=this.options;if(e=t?e:e.toLowerCase(),e=s?qe(e):e,this.pattern===e){if(e.length<this.options.minMatchCharLength)return{isMatch:!1,score:1};const h={isMatch:!0,score:0};return i&&(h.indices=[[0,e.length-1]]),h}const{location:o,distance:a,threshold:l,findAllMatches:u,minMatchCharLength:r,ignoreLocation:g}=this.options,m=[];let v=0,d=!1;this.chunks.forEach(({pattern:h,alphabet:y,startIndex:D})=>{const{isMatch:R,score:A,indices:b}=ci(e,h,y,{location:o+D,distance:a,threshold:l,findAllMatches:u,minMatchCharLength:r,includeMatches:i,ignoreLocation:g});R&&(d=!0),v+=A,R&&b&&m.push(...b)});const c={isMatch:d,score:d?v/this.chunks.length:1};return d&&i&&(c.indices=Rt(m)),c}};const pi=new Set(["fuzzy","include"]);function hi(e){return e.startsWith("inverse")}const kt=[{type:"exact",multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:e=>({type:"exact",search(t){const s=t===e;return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}})},{type:"include",multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:e=>({type:"include",search(t){let s=0,i;const o=[],a=e.length;for(;(i=t.indexOf(e,s))>-1;)s=i+a,o.push([i,s-1]);const l=!!o.length;return{isMatch:l,score:l?0:1,indices:o}}})},{type:"prefix-exact",multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:e=>({type:"prefix-exact",search(t){const s=t.startsWith(e);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}})},{type:"inverse-prefix-exact",multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:e=>({type:"inverse-prefix-exact",search(t){const s=!t.startsWith(e);return{isMatch:s,score:s?0:1,indices:[0,t.length-1]}}})},{type:"inverse-suffix-exact",multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:e=>({type:"inverse-suffix-exact",search(t){const s=!t.endsWith(e);return{isMatch:s,score:s?0:1,indices:[0,t.length-1]}}})},{type:"suffix-exact",multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:e=>({type:"suffix-exact",search(t){const s=t.endsWith(e);return{isMatch:s,score:s?0:1,indices:[t.length-e.length,t.length-1]}}})},{type:"inverse-exact",multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:e=>({type:"inverse-exact",search(t){const s=t.indexOf(e)===-1;return{isMatch:s,score:s?0:1,indices:[0,t.length-1]}}})},{type:"fuzzy",multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(e,t={})=>{const s=new jt(e,{location:t.location??j.location,threshold:t.threshold??j.threshold,distance:t.distance??j.distance,includeMatches:t.includeMatches??j.includeMatches,findAllMatches:t.findAllMatches??j.findAllMatches,minMatchCharLength:t.minMatchCharLength??j.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??j.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??j.ignoreDiacritics,ignoreLocation:t.ignoreLocation??j.ignoreLocation});return{type:"fuzzy",search(i){return s.searchIn(i)}}}}],Zt=kt.length,mi="\0",vi="|";function gi(e){const t=[],s=e.length;let i=0;for(;i<s;){for(;i<s&&e[i]===" ";)i++;if(i>=s)break;let o=i;for(;o<s&&e[o]!==" "&&e[o]!=='"';)o++;if(o<s&&e[o]==='"'){for(o++;o<s;){if(e[o]==='"'){const a=o+1;if(a>=s||e[a]===" "){o++;break}if(e[a]==="$"&&(a+1>=s||e[a+1]===" ")){o+=2;break}}o++}t.push(e.substring(i,o)),i=o}else{for(;o<s&&e[o]!==" ";)o++;t.push(e.substring(i,o)),i=o}}return t}function ea(e,t){const s=e.match(t);return s?s[1]:null}function yi(e,t={}){return e.replace(/\\\|/g,mi).split(vi).map(s=>{const i=gi(s.replace(/\u0000/g,"|").trim()).filter(a=>a&&!!a.trim()),o=[];for(let a=0,l=i.length;a<l;a+=1){const u=i[a];let r=!1,g=-1;for(;!r&&++g<Zt;){const m=kt[g],v=ea(u,m.multiRegex);v&&(o.push(m.create(v,t)),r=!0)}if(!r)for(g=-1;++g<Zt;){const m=kt[g],v=ea(u,m.singleRegex);if(v){o.push(m.create(v,t));break}}}return o})}var bi=class{constructor(e,{isCaseSensitive:t=j.isCaseSensitive,ignoreDiacritics:s=j.ignoreDiacritics,includeMatches:i=j.includeMatches,minMatchCharLength:o=j.minMatchCharLength,ignoreLocation:a=j.ignoreLocation,findAllMatches:l=j.findAllMatches,location:u=j.location,threshold:r=j.threshold,distance:g=j.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:s,includeMatches:i,minMatchCharLength:o,findAllMatches:l,ignoreLocation:a,location:u,threshold:r,distance:g},e=t?e:e.toLowerCase(),e=s?qe(e):e,this.pattern=e,this.query=yi(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:s,isCaseSensitive:i,ignoreDiacritics:o}=this.options;e=i?e:e.toLowerCase(),e=o?qe(e):e;let a=0;const l=[];let u=0,r=!1;for(let g=0,m=t.length;g<m;g+=1){const v=t[g];l.length=0,a=0,r=!1;for(let d=0,c=v.length;d<c;d+=1){const h=v[d],{isMatch:y,indices:D,score:R}=h.search(e);if(y)a+=1,u+=R,hi(h.type)&&(r=!0),s&&(pi.has(h.type)?l.push(...D):l.push(D));else{u=0,a=0,l.length=0,r=!1;break}}if(a){const d={isMatch:!0,score:u/a};return r&&(d.hasInverse=!0),s&&(d.indices=Rt(l)),d}}return{isMatch:!1,score:1}}};const _t=[];function Ft(...e){_t.push(...e)}function ot(e,t){for(let s=0,i=_t.length;s<i;s+=1){const o=_t[s];if(o.condition(e,t))return new o(e,t)}return new jt(e,t)}const lt={AND:"$and",OR:"$or"},St={PATH:"$path",PATTERN:"$val"},xt=e=>!!(e[lt.AND]||e[lt.OR]),wi=e=>!!e[St.PATH],ki=e=>!_e(e)&&Ta(e)&&!xt(e),ta=e=>({[lt.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function Ma(e,t,{auto:s=!0}={}){const i=o=>{if(le(o)){const r={keyId:null,pattern:o};return s&&(r.searcher=ot(o,t)),r}const a=Object.keys(o),l=wi(o);if(!l&&a.length>1&&!xt(o))return i(ta(o));if(ki(o)){const r=l?o[St.PATH]:a[0],g=l?o[St.PATTERN]:o[r];if(!le(g))throw new Error(Js(r));const m={keyId:et(r),pattern:g};return s&&(m.searcher=ot(g,t)),m}const u={children:[],operator:a[0]};return a.forEach(r=>{const g=o[r];_e(g)&&g.forEach(m=>{u.children.push(i(m))})}),u};return xt(e)||(e=ta(e)),i(e)}function $t(e,{ignoreFieldNorm:t=j.ignoreFieldNorm}){let s=1;return e.forEach(({key:i,norm:o,score:a})=>{const l=i?i.weight:null;s*=Math.pow(a===0&&l?Number.EPSILON:a,(l||1)*(t?1:o))}),s}function _i(e,{ignoreFieldNorm:t=j.ignoreFieldNorm}){e.forEach(s=>{s.score=$t(s.matches,{ignoreFieldNorm:t})})}var Si=class{constructor(e,t){this.limit=e,this.heap=[],this.comparator=t}get size(){return this.heap.length}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):this.comparator(e,this.heap[0])<0&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(){return this.heap.sort(this.comparator)}_bubbleUp(e){const t=this.heap;for(;e>0;){const s=e-1>>1;if(this.comparator(t[e],t[s])<=0)break;const i=t[e];t[e]=t[s],t[s]=i,e=s}}_sinkDown(e){const t=this.heap,s=t.length;let i=e;do{e=i;const o=2*e+1,a=2*e+2;if(o<s&&this.comparator(t[o],t[i])>0&&(i=o),a<s&&this.comparator(t[a],t[i])>0&&(i=a),i!==e){const l=t[e];t[e]=t[i],t[i]=l}}while(i!==e)}};function xi(e){const t=[];return e.matches.forEach(s=>{if(!de(s.indices)||!s.indices.length)return;const i={indices:s.indices,value:s.value};s.key&&(i.key=s.key.id),s.idx>-1&&(i.refIndex=s.idx),t.push(i)}),t}function $i(e,t,{includeMatches:s=j.includeMatches,includeScore:i=j.includeScore}={}){return e.map(o=>{const{idx:a}=o,l={item:t[a],refIndex:a};return s&&(l.matches=xi(o)),i&&(l.score=o.score),l})}const Ii=/[\p{L}\p{M}\p{N}_]+/gu,aa=new WeakSet;function Ci(e){aa.has(e)||(aa.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function Ai(e){if(typeof e=="function"){let t=!1;return s=>{const i=e(s);if(!t&&(t=!0,!Array.isArray(i)||i.some(o=>typeof o!="string")))throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(i)?"array containing non-strings":typeof i}.`);return i}}return e instanceof RegExp?(e.global||Ci(e),t=>t.match(e)||[]):t=>t.match(Ii)||[]}function It({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:s}={}){const i=Ai(s);return{tokenize(o){return e||(o=o.toLowerCase()),t&&(o=qe(o)),i(o)}}}var Ti=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=It({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});const s=this.analyzer.tokenize(e),{df:i,fieldCount:o}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(const a of s){this.termSearchers.push(new jt(a,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));const l=i.get(a)||0,u=Math.log(1+(o-l+.5)/(l+.5));this.idfWeights.push(u)}this.combineAll=t.tokenMatch==="all",this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};const t=[];let s=0,i=0,o=0,a=0;const l=this.combineAll&&!this.useMask?new Set:null;for(let g=0;g<this.termSearchers.length;g++){const m=this.termSearchers[g].searchIn(e),v=this.idfWeights[g];i+=v,m.isMatch&&(o++,s+=v*(1-m.score),m.indices&&t.push(...m.indices),this.combineAll&&(this.useMask?a|=1<<g:l.add(g)))}if(o===0)return{isMatch:!1,score:1};const u=i>0?1-s/i:0,r={isMatch:!0,score:Math.max(.001,u)};return this.options.includeMatches&&t.length&&(r.indices=Rt(t)),this.combineAll&&(this.useMask?r.matchedMask=a:r.matchedTerms=l,r.termCount=this.numTerms),r}};function pt(e,t,s,i){const o=i.tokenize(t);if(!o.length)return;e.fieldCount++,e.docFieldCount.set(s,(e.docFieldCount.get(s)||0)+1);const a=new Set(o);let l=e.docTermFieldHits.get(s);l||(l=new Map,e.docTermFieldHits.set(s,l));for(const u of a)l.set(u,(l.get(u)||0)+1),e.df.set(u,(e.df.get(u)||0)+1)}function Oa(e,t,s,i){const{i:o,v:a,$:l}=t;if(a!==void 0){pt(e,a,o,i);return}if(l)for(let u=0;u<s;u++){const r=l[u];if(r)if(Array.isArray(r))for(const g of r)pt(e,g.v,o,i);else pt(e,r.v,o,i)}}function Di(e,t,s){const i={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(const o of e)Oa(i,o,t,s);return i}function Bi(e,t,s,i){Oa(e,t,s,i)}function Li(e,t){const s=e.docFieldCount.get(t);if(s===void 0)return;e.fieldCount-=s,e.docFieldCount.delete(t);const i=e.docTermFieldHits.get(t);if(i){for(const[o,a]of i){const l=(e.df.get(o)||0)-a;l<=0?e.df.delete(o):e.df.set(o,l)}e.docTermFieldHits.delete(t)}}function na(e,t){if(t.length===0)return;const s=Array.from(new Set(t)).sort((u,r)=>u-r);for(const u of s)Li(e,u);const i=u=>{let r=0,g=s.length;for(;r<g;){const m=r+g>>>1;s[m]<u?r=m+1:g=m}return u-r},o=s[0],a=new Map;for(const[u,r]of e.docFieldCount)a.set(u>o?i(u):u,r);e.docFieldCount=a;const l=new Map;for(const[u,r]of e.docTermFieldHits)l.set(u>o?i(u):u,r);e.docTermFieldHits=l}var Se=class{constructor(e,t,s){this.options={...j,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new ei(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,s),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;const t=ot(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof Ot))throw new Error(Gs);if(this._myIndex=t||La(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const s=It({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=Di(this._myIndex.records,this._myIndex.keys.length,s)}this._invalidateSearcherCache()}add(e){if(!de(e))return;this._docs.push(e);const t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){const s=It({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Bi(this._invertedIndex,t,this._myIndex.keys.length,s)}this._invalidateSearcherCache()}remove(e=()=>!1){const t=[],s=[];for(let i=0,o=this._docs.length;i<o;i+=1)e(this._docs[i],i)&&(t.push(this._docs[i]),s.push(i));if(s.length){this._invertedIndex&&na(this._invertedIndex,s);const i=new Set(s);this._docs=this._docs.filter((o,a)=>!i.has(a)),this._myIndex.removeAll(s),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw new Error(wt);this._invertedIndex&&na(this._invertedIndex,[e]);const t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}_normalizedKeys(){return this._myIndex.keys.map(e=>this._keyStore.get(e.id)||e)}search(e,t){const{limit:s=-1}=t||{},{includeMatches:i,includeScore:o,shouldSort:a,sortFn:l,ignoreFieldNorm:u}=this.options;if(le(e)&&!e.trim()){let d=this._docs.map((c,h)=>({item:c,refIndex:h}));return Ze(s)&&s>-1&&(d=d.slice(0,s)),d}const r=a&&Ze(s)&&s>0&&le(e),g=l,m=(d,c)=>g(d,c)||d.idx-c.idx;let v;if(r){const d=new Si(s,m);le(this._docs[0])?this._searchStringList(e,{heap:d,ignoreFieldNorm:u}):this._searchObjectList(e,{heap:d,ignoreFieldNorm:u}),v=d.extractSorted()}else v=le(e)?le(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),_i(v,{ignoreFieldNorm:u}),a&&v.sort(le(e)?m:g),Ze(s)&&s>-1&&(v=v.slice(0,s));return $i(v,this._docs,{includeMatches:i,includeScore:o})}_searchStringList(e,{heap:t,ignoreFieldNorm:s}={}){const i=this._getSearcher(e),o=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:a}=this._myIndex,l=t?null:[];return a.forEach(({v:u,i:r,n:g})=>{if(!de(u))return;const m=i.searchIn(u);if(m.isMatch){const v={score:m.score,value:u,norm:g,indices:m.indices};o&&(v.matchedMask=m.matchedMask,v.matchedTerms=m.matchedTerms,v.termCount=m.termCount);const d=[v];if(!o||this._coversAllTokens(d)){const c={item:u,idx:r,matches:d};t?(c.score=$t(c.matches,{ignoreFieldNorm:s}),t.insert(c)):l.push(c)}}}),l}_searchLogical(e){const t=Ma(e,this.options),s=this._normalizedKeys(),i=(u,r,g)=>{if(!("children"in u)){const{keyId:c,searcher:h}=u;let y;return c===null?(y=[],s.forEach((D,R)=>{y.push(...this._findMatches({key:D,value:r[R],searcher:h}))})):y=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(r,c),searcher:h}),y&&y.length?[{idx:g,item:r,matches:y}]:[]}const{children:m,operator:v}=u,d=[];for(let c=0,h=m.length;c<h;c+=1){const y=m[c],D=i(y,r,g);if(D.length)d.push(...D);else if(v===lt.AND)return[]}return d},o=this._myIndex.records,a=new Map,l=[];return o.forEach(({$:u,i:r})=>{if(de(u)){const g=i(t,u,r);g.length&&(a.has(r)||(a.set(r,{idx:r,item:u,matches:[]}),l.push(a.get(r))),g.forEach(({matches:m})=>{a.get(r).matches.push(...m)}))}}),l}_searchObjectList(e,{heap:t,ignoreFieldNorm:s}={}){const i=this._getSearcher(e),o=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:a}=this._myIndex,l=this._normalizedKeys(),u=t?null:[];return a.forEach(({$:r,i:g})=>{if(!de(r))return;const m=[];let v=!1,d=!1;if(l.forEach((c,h)=>{const y=this._findMatches({key:c,value:r[h],searcher:i});y.length?(m.push(...y),y[0].hasInverse&&(d=!0)):v=!0}),!(d&&v)&&m.length&&(!o||this._coversAllTokens(m))){const c={idx:g,item:r,matches:m};t?(c.score=$t(c.matches,{ignoreFieldNorm:s}),t.insert(c)):u.push(c)}}),u}_findMatches({key:e,value:t,searcher:s}){if(!de(t))return[];const i=[];if(_e(t))t.forEach(({v:o,i:a,n:l})=>{if(!de(o))return;const u=s.searchIn(o);if(u.isMatch){const r={score:u.score,key:e,value:o,idx:a,norm:l,indices:u.indices,hasInverse:u.hasInverse};u.termCount!==void 0&&(r.matchedMask=u.matchedMask,r.matchedTerms=u.matchedTerms,r.termCount=u.termCount),i.push(r)}});else{const{v:o,n:a}=t,l=s.searchIn(o);if(l.isMatch){const u={score:l.score,key:e,value:o,norm:a,indices:l.indices,hasInverse:l.hasInverse};l.termCount!==void 0&&(u.matchedMask=l.matchedMask,u.matchedTerms=l.matchedTerms,u.termCount=l.termCount),i.push(u)}}return i}_coversAllTokens(e){const t=e.length?e[0].termCount:void 0;if(t===void 0)return!0;if(t<=31){let i=0;for(let o=0;o<e.length;o++)i|=e[o].matchedMask||0;return i===2**t-1}const s=new Set;for(let i=0;i<e.length;i++){const o=e[i].matchedTerms;if(o)for(const a of o)s.add(a)}return s.size===t}};Se.version="7.5.0";Se.createIndex=La;Se.parseIndex=ri;Se.config=j;Se.match=function(e,t,s){if(s&&s.useTokenSearch)throw new Error(Zs);return ot(e,{...j,...s}).searchIn(t)};Se.parseQuery=Ma;Ft(bi);Ft(Ti);Se.use=function(...e){e.forEach(t=>Ft(t))};var Ei=Se;function Mi(e,t,s){const i=()=>{var a,l;return new Ei((a=ge(t))!==null&&a!==void 0?a:[],(l=ge(s))===null||l===void 0?void 0:l.fuseOptions)},o=cn(i());return re(()=>{var a;return(a=ge(s))===null||a===void 0?void 0:a.fuseOptions},()=>{o.value=i()},{deep:!0}),re(()=>ge(t),a=>{o.value.setCollection(a)},{deep:!0}),{fuse:o,results:O(()=>{const a=ge(s);if(a?.matchAllWhenSearchEmpty&&!ge(e))return ge(t).map((u,r)=>({item:u,refIndex:r}));const l=a?.resultLimit;return o.value.search(ge(e),l?{limit:l}:void 0)})}}const Oi={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ri(e){return e.replace(/[&<>"']/g,t=>Oi[t])}function ji(e){return/&(?:amp|lt|gt|quot|#39);/.test(e)}function ht(e){return ji(e)?e:Ri(e)}function Fi(e,t){let s="",i=0,o=!1;for(let a=e.length-1;a>=0;a--){if(e[a]===">")o=!0;else if(e[a]==="<"){o=!1,s=e[a]+s;continue}if(o||i++,i<=t)s=e[a]+s;else{s="..."+s;break}}return s}function mt(e,t,s,i,o){const a=o?t.match(/[\p{L}\p{M}\p{N}_]+/gu)||[]:[],l=a.length>0?Math.min(...a.map(r=>r.length)):t.length;function u(r,g=[]){r=r||"";let m="",v=0;g.forEach(c=>{if(c.length===2&&c[0]===c[1])return;const h=c[1]+1,y=h-c[0]>=l;m+=[ht(r.substring(v,c[0])),y&&"<mark>",ht(r.substring(c[0],h)),y&&"</mark>"].filter(Boolean).join(""),v=h}),m+=ht(r.substring(v));const d=m.indexOf("<mark>");return d!==-1&&(m=Fi(m,m.length-d)),m}if(e.matches?.length){for(const r of e.matches)if(!(s&&r.key!==s)&&!i?.includes(r.key))return u(r.value,r.indices)}}const Pi={slots:{root:"flex flex-col min-h-0 min-w-0 divide-y divide-default",input:"",close:"",back:"p-0",content:"relative overflow-hidden flex flex-col",footer:"p-1",viewport:"relative scroll-py-1 overflow-y-auto flex-1 focus:outline-none",group:"p-1 isolate",empty:"text-center text-muted",label:"font-semibold text-highlighted",item:"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",itemLeadingIcon:"shrink-0",itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemLeadingChip:"shrink-0",itemLeadingChipSize:"",itemTrailing:"ms-auto inline-flex items-center",itemTrailingIcon:"shrink-0",itemTrailingHighlightedIcon:"shrink-0 text-dimmed hidden group-data-highlighted:inline-flex",itemTrailingKbds:"hidden lg:inline-flex items-center shrink-0",itemTrailingKbdsSize:"",itemWrapper:"flex-1 flex flex-col text-start min-w-0",itemLabel:"truncate space-x-1 text-dimmed",itemLabelBase:"text-highlighted [&>mark]:text-primary [&>mark]:bg-primary/15",itemLabelPrefix:"text-default",itemLabelSuffix:"text-dimmed [&>mark]:text-primary [&>mark]:bg-primary/15",itemDescription:"truncate text-muted [&>mark]:text-primary [&>mark]:bg-primary/15"},variants:{virtualize:{true:{viewport:"p-1 isolate"},false:{viewport:"divide-y divide-default"}},size:{xs:{input:"[&>input]:h-10",empty:"py-3 text-xs",label:"p-1 text-[10px]/3 gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailing:"gap-1",itemTrailingIcon:"size-4",itemTrailingHighlightedIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},sm:{input:"[&>input]:h-11",empty:"py-4 text-xs",label:"p-1.5 text-[10px]/3 gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailing:"gap-1.5",itemTrailingIcon:"size-4",itemTrailingHighlightedIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},md:{input:"[&>input]:h-12",empty:"py-6 text-sm",label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailing:"gap-1.5",itemTrailingIcon:"size-5",itemTrailingHighlightedIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},lg:{input:"[&>input]:h-13",empty:"py-7 text-sm",label:"p-2 text-xs gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailing:"gap-2",itemTrailingIcon:"size-5",itemTrailingHighlightedIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},xl:{input:"[&>input]:h-14",empty:"py-8 text-base",label:"p-2 text-sm gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemLeadingChip:"size-6",itemLeadingChipSize:"lg",itemTrailing:"gap-2",itemTrailingIcon:"size-6",itemTrailingHighlightedIcon:"size-6",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"lg"}},active:{true:{item:"text-highlighted before:bg-elevated",itemLeadingIcon:"text-default"},false:{item:["text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["text-dimmed group-data-highlighted:not-group-data-disabled:text-default","transition-colors"]}},loading:{true:{itemLeadingIcon:"animate-spin"}}},defaultVariants:{size:"md"}},zi=["innerHTML"],qi=["innerHTML"],Ni=["innerHTML"],Ki=Object.assign({inheritAttrs:!1},{__name:"UCommandPalette",props:it({as:{type:null,required:!1},size:{type:null,required:!1},icon:{type:[String,Boolean],required:!1,skipCheck:!0},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},childrenIcon:{type:null,required:!1},placeholder:{type:String,required:!1},autofocus:{type:Boolean,required:!1,default:!0},close:{type:[Boolean,Object],required:!1},closeIcon:{type:null,required:!1},back:{type:[Boolean,Object],required:!1,default:!0},backIcon:{type:null,required:!1},input:{type:[Boolean,Object],required:!1,default:!0},groups:{type:Array,required:!1},fuse:{type:Object,required:!1},virtualize:{type:[Boolean,Object],required:!1,default:!1},valueKey:{type:null,required:!1},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},preserveGroupOrder:{type:Boolean,required:!1,default:!1},searchDelay:{type:Number,required:!1,default:0},class:{type:null,required:!1},ui:{type:Object,required:!1},multiple:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},highlightOnHover:{type:Boolean,required:!1,default:!0},selectionBehavior:{type:String,required:!1},by:{type:[String,Function],required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},{searchTerm:{type:String,default:""},searchTermModifiers:{}}),emits:it(["update:modelValue","highlight","entryFocus","leave","update:open"],["update:searchTerm"]),setup(e,{emit:t}){const s=e,i=t,o=Ee(),a=Me("commandPalette",s),l=ze(e,"searchTerm",{type:String,default:""}),{t:u}=Ne(),r=Ce(),g=Pe(st(a,"as","disabled","multiple","modelValue","defaultValue","highlightOnHover","by"),i),m=Be(()=>a.virtualize?Le(typeof a.virtualize=="boolean"?{}:a.virtualize,{estimateSize:Xn(I.value,"md",a.descriptionKey,!!o["item-description"])}):!1),[v,d]=at({props:{item:{type:Object,required:!0},group:{type:Object,required:!1},index:{type:Number,required:!1}}}),c=O(()=>Oe({extend:Pi,...r.ui?.commandPalette||{}})({size:a.size,virtualize:!!a.virtualize})),h=O(()=>Le({},a.fuse,{fuseOptions:{ignoreLocation:!0,threshold:.1,keys:[a.labelKey,a.descriptionKey,"suffix"]},resultLimit:12,matchAllWhenSearchEmpty:!0})),y=H([]),D=O(()=>y.value[y.value.length-1]?.placeholder||a.placeholder||u("commandPalette.placeholder")),R=O(()=>y.value?.length?[y.value[y.value.length-1]]:a.groups),A=O(()=>R.value?.filter(w=>w.id?!w.ignoreFilter:(console.warn("[@nuxt/ui] CommandPalette group is missing an `id` property"),!1))?.flatMap(w=>w.items?.map(F=>({...F,group:w.id}))||[])||[]),b=dn(l,()=>a.searchDelay),{results:f}=Mi(b,A,h),x=fn(f,16,!0);function $(w,F){let p=F;return w?.postFilter&&typeof w.postFilter=="function"&&(p=w.postFilter(b.value,p)),{...w,items:p.slice(0,h.value.resultLimit).map(U=>({...U,labelHtml:U.labelHtml??mt(U,b.value,a.labelKey,void 0,h.value.fuseOptions?.useTokenSearch),suffixHtml:U.suffixHtml??mt(U,b.value,"suffix",[a.labelKey],h.value.fuseOptions?.useTokenSearch),descriptionHtml:U.descriptionHtml??mt(U,b.value,a.descriptionKey,[a.labelKey,"suffix"],h.value.fuseOptions?.useTokenSearch)}))}}const T=O(()=>{const w=R.value,F=x.value.reduce((E,K)=>{const{item:se,matches:te}=K;return se.group&&(E[se.group]||=[],E[se.group]?.push({...se,matches:te})),E},{});if(a.preserveGroupOrder){const E=[];for(const K of w||[]){if(!K.items?.length)continue;const se=K.ignoreFilter?K.items:F[K.id];if(!se?.length)continue;const te=$(K,se);te.items?.length&&E.push(te)}return E}const U=[...Object.entries(F).map(([E,K])=>{const se=w?.find(be=>be.id===E);if(!se)return;const te=$(se,K);return te.items?.length?te:void 0}).filter(E=>!!E)];for(const E of w||[]){if(!E.ignoreFilter||!E.items?.length)continue;const K=$(E,E.items);if(!K.items?.length)continue;const se=w.indexOf(E),te=new Set;for(let me=0;me<se;me++)te.add(w[me].id);let be=-1;for(let me=0;me<U.length;me++)te.has(U[me].id)&&(be=me);U.splice(be+1,0,K)}return U}),I=O(()=>T.value.flatMap(w=>w.items||[])),S=ha("rootRef");re(T,()=>{Dt(()=>{const w=S.value;w?.$el?.contains(document.activeElement)?w?.highlightFirstItem():w?.highlightSelected(void 0,!1)})});function k(w){w.children?.length&&(y.value.push({id:`history-${y.value.length}`,label:w.label,slot:w.slot,placeholder:w.placeholder,items:w.children}),l.value="",S.value?.highlightFirstItem())}function M(){y.value.length&&(y.value.pop(),l.value="",S.value?.highlightFirstItem())}function G(){l.value||M()}function J(w,F){F.children?.length?(w.preventDefault(),k(F)):F.onSelect?.(w)}return(w,F)=>(_(),V(pe,null,[B(n(v),null,{default:C(({item:p,index:U,group:E})=>[B(ma,Q(n(pn)(p),{custom:""}),{default:C(({active:K,...se})=>[B(n(Un),{value:n(a).valueKey?n(ve)(p,n(a).valueKey):n(nt)(p,["matches","group","onSelect","labelHtml","suffixHtml","descriptionHtml","children"]),disabled:p.disabled,"as-child":"",onSelect:te=>J(te,p)},{default:C(()=>[B(hn,Q(se,{"data-slot":"item",class:c.value.item({class:[n(a).ui?.item,p.ui?.item,p.class],active:K||p.active})}),{default:C(()=>[N(w.$slots,p.slot||E?.slot||"item",{item:p,index:U,ui:c.value},()=>[N(w.$slots,p.slot?`${p.slot}-leading`:E?.slot?`${E.slot}-leading`:"item-leading",{item:p,index:U,ui:c.value},()=>[p.loading?(_(),L(Ie,{key:0,name:n(a).loadingIcon||n(r).ui.icons.loading,"data-slot":"itemLeadingIcon",class:q(c.value.itemLeadingIcon({class:[n(a).ui?.itemLeadingIcon,p.ui?.itemLeadingIcon],loading:!0}))},null,8,["name","class"])):p.icon?(_(),L(Ie,{key:1,name:p.icon,"data-slot":"itemLeadingIcon",class:q(c.value.itemLeadingIcon({class:[n(a).ui?.itemLeadingIcon,p.ui?.itemLeadingIcon],active:K||p.active}))},null,8,["name","class"])):p.avatar?(_(),L(mn,Q({key:2,size:p.ui?.itemLeadingAvatarSize||n(a).ui?.itemLeadingAvatarSize||c.value.itemLeadingAvatarSize()},p.avatar,{"data-slot":"itemLeadingAvatar",class:c.value.itemLeadingAvatar({class:[n(a).ui?.itemLeadingAvatar,p.ui?.itemLeadingAvatar],active:K||p.active})}),null,16,["size","class"])):p.chip?(_(),L(vn,Q({key:3,size:p.ui?.itemLeadingChipSize||n(a).ui?.itemLeadingChipSize||c.value.itemLeadingChipSize(),inset:"",standalone:""},p.chip,{"data-slot":"itemLeadingChip",class:c.value.itemLeadingChip({class:[n(a).ui?.itemLeadingChip,p.ui?.itemLeadingChip],active:K||p.active})}),null,16,["size","class"])):P("",!0)]),p.prefix||p.labelHtml||n(ve)(p,n(a).labelKey)||p.suffixHtml||p.suffix||o[p.slot?`${p.slot}-label`:E?.slot?`${E.slot}-label`:"item-label"]||n(ve)(p,n(a).descriptionKey)||o[p.slot?`${p.slot}-description`:E?.slot?`${E.slot}-description`:"item-description"]?(_(),V("span",{key:0,"data-slot":"itemWrapper",class:q(c.value.itemWrapper({class:[n(a).ui?.itemWrapper,p.ui?.itemWrapper]}))},[W("span",{"data-slot":"itemLabel",class:q(c.value.itemLabel({class:[n(a).ui?.itemLabel,p.ui?.itemLabel],active:K||p.active}))},[N(w.$slots,p.slot?`${p.slot}-label`:E?.slot?`${E.slot}-label`:"item-label",{item:p,index:U,ui:c.value},()=>[p.prefix?(_(),V("span",{key:0,"data-slot":"itemLabelPrefix",class:q(c.value.itemLabelPrefix({class:[n(a).ui?.itemLabelPrefix,p.ui?.itemLabelPrefix]}))},oe(p.prefix),3)):P("",!0),p.labelHtml?(_(),V("span",{key:1,"data-slot":"itemLabelBase",class:q(c.value.itemLabelBase({class:[n(a).ui?.itemLabelBase,p.ui?.itemLabelBase],active:K||p.active})),innerHTML:p.labelHtml},null,10,zi)):(_(),V("span",{key:2,"data-slot":"itemLabelBase",class:q(c.value.itemLabelBase({class:[n(a).ui?.itemLabelBase,p.ui?.itemLabelBase],active:K||p.active}))},oe(n(ve)(p,n(a).labelKey)),3)),p.suffixHtml?(_(),V("span",{key:3,"data-slot":"itemLabelSuffix",class:q(c.value.itemLabelSuffix({class:[n(a).ui?.itemLabelSuffix,p.ui?.itemLabelSuffix],active:K||p.active})),innerHTML:p.suffixHtml},null,10,qi)):p.suffix?(_(),V("span",{key:4,"data-slot":"itemLabelSuffix",class:q(c.value.itemLabelSuffix({class:[n(a).ui?.itemLabelSuffix,p.ui?.itemLabelSuffix],active:K||p.active}))},oe(p.suffix),3)):P("",!0)])],2),p.descriptionHtml?(_(),V("span",{key:0,"data-slot":"itemDescription",class:q(c.value.itemDescription({class:[n(a).ui?.itemDescription,p.ui?.itemDescription]})),innerHTML:p.descriptionHtml},null,10,Ni)):n(ve)(p,n(a).descriptionKey)||o[p.slot?`${p.slot}-description`:E?.slot?`${E.slot}-description`:"item-description"]?(_(),V("span",{key:1,"data-slot":"itemDescription",class:q(c.value.itemDescription({class:[n(a).ui?.itemDescription,p.ui?.itemDescription]}))},[N(w.$slots,p.slot?`${p.slot}-description`:E?.slot?`${E.slot}-description`:"item-description",{item:p,index:U,ui:c.value},()=>[ce(oe(n(ve)(p,n(a).descriptionKey)),1)])],2)):P("",!0)],2)):P("",!0),W("span",{"data-slot":"itemTrailing",class:q(c.value.itemTrailing({class:[n(a).ui?.itemTrailing,p.ui?.itemTrailing]}))},[N(w.$slots,p.slot?`${p.slot}-trailing`:E?.slot?`${E.slot}-trailing`:"item-trailing",{item:p,index:U,ui:c.value},()=>[p.children&&p.children.length>0?(_(),L(Ie,{key:0,name:n(a).childrenIcon||n(r).ui.icons.chevronRight,"data-slot":"itemTrailingIcon",class:q(c.value.itemTrailingIcon({class:[n(a).ui?.itemTrailingIcon,p.ui?.itemTrailingIcon]}))},null,8,["name","class"])):p.kbds?.length?(_(),V("span",{key:1,"data-slot":"itemTrailingKbds",class:q(c.value.itemTrailingKbds({class:[n(a).ui?.itemTrailingKbds,p.ui?.itemTrailingKbds]}))},[(_(!0),V(pe,null,we(p.kbds,(te,be)=>(_(),L(la,Q({key:be,size:p.ui?.itemTrailingKbdsSize||n(a).ui?.itemTrailingKbdsSize||c.value.itemTrailingKbdsSize()},{ref_for:!0},typeof te=="string"?{value:te}:te),null,16,["size"]))),128))],2)):E?.highlightedIcon?(_(),L(Ie,{key:2,name:E.highlightedIcon,"data-slot":"itemTrailingHighlightedIcon",class:q(c.value.itemTrailingHighlightedIcon({class:[n(a).ui?.itemTrailingHighlightedIcon,p.ui?.itemTrailingHighlightedIcon]}))},null,8,["name","class"])):P("",!0)]),p.children?.length?P("",!0):(_(),L(n(Vn),{key:0,"as-child":""},{default:C(()=>[B(Ie,{name:n(a).selectedIcon||n(r).ui.icons.check,"data-slot":"itemTrailingIcon",class:q(c.value.itemTrailingIcon({class:[n(a).ui?.itemTrailingIcon,p.ui?.itemTrailingIcon]}))},null,8,["name","class"])]),_:2},1024))],2)])]),_:2},1040,["class"])]),_:2},1032,["value","disabled","onSelect"])]),_:2},1040)]),_:3}),B(n(Qn),Q({ref_key:"rootRef",ref:S,"data-slot":"root"},{...n(g),...w.$attrs},{"selection-behavior":n(a).selectionBehavior,class:c.value.root({class:[n(a).ui?.root,n(a).class]})}),{default:C(()=>[n(a).input?(_(),L(n(Wn),{key:0,modelValue:l.value,"onUpdate:modelValue":F[1]||(F[1]=p=>l.value=p),"as-child":""},{default:C(()=>[B(Et,Q({variant:"none",size:n(a).size,placeholder:D.value,autofocus:n(a).autofocus,loading:n(a).loading,"loading-icon":n(a).loadingIcon,"trailing-icon":n(a).trailingIcon,icon:n(a).icon===!1?void 0:n(a).icon??n(r).ui.icons.search},typeof n(a).input=="object"?n(a).input:{},{"data-slot":"input",class:c.value.input({class:n(a).ui?.input}),onKeydown:gn(G,["backspace"])}),At({_:2},[y.value?.length&&(n(a).back||o.back)?{name:"leading",fn:C(()=>[N(w.$slots,"back",{ui:c.value},()=>[B(ke,Q({size:n(a).size,icon:n(a).backIcon||n(r).ui.icons.arrowLeft,color:"neutral",variant:"link","aria-label":n(u)("commandPalette.back")},typeof n(a).back=="object"?n(a).back:{},{"data-slot":"back",class:c.value.back({class:n(a).ui?.back}),onClick:M}),null,16,["size","icon","aria-label","class"])])]),key:"0"}:void 0,n(a).close||o.close?{name:"trailing",fn:C(()=>[N(w.$slots,"close",{ui:c.value},()=>[n(a).close?(_(),L(ke,Q({key:0,size:n(a).size,icon:n(a).closeIcon||n(r).ui.icons.close,color:"neutral",variant:"ghost","aria-label":n(u)("commandPalette.close")},typeof n(a).close=="object"?n(a).close:{},{"data-slot":"close",class:c.value.close({class:n(a).ui?.close}),onClick:F[0]||(F[0]=p=>i("update:open",!1))}),null,16,["size","icon","aria-label","class"])):P("",!0)])]),key:"1"}:void 0]),1040,["size","placeholder","autofocus","loading","loading-icon","trailing-icon","icon","class"])]),_:3},8,["modelValue"])):P("",!0),B(n(Gn),{"data-slot":"content",class:q(c.value.content({class:n(a).ui?.content}))},{default:C(()=>[T.value?.length?(_(),V("div",{key:0,role:"presentation","data-slot":"viewport",class:q(c.value.viewport({class:n(a).ui?.viewport}))},[n(a).virtualize?(_(),L(n(Jn),Q({key:0,options:I.value,"text-content":p=>n(ve)(p,n(a).labelKey)},m.value),{default:C(({option:p,virtualItem:U})=>[B(n(d),{item:p,index:U.index},null,8,["item","index"])]),_:1},16,["options","text-content"])):(_(!0),V(pe,{key:1},we(T.value,p=>(_(),L(n(Yn),{key:`group-${p.id}`,"data-slot":"group",class:q(c.value.group({class:n(a).ui?.group}))},{default:C(()=>[n(ve)(p,n(a).labelKey)||o[p.slot?`${p.slot}-group-label`:"group-label"]?(_(),L(n(ds),{key:0,"data-slot":"label",class:q(c.value.label({class:n(a).ui?.label}))},{default:C(()=>[N(w.$slots,p.slot?`${p.slot}-group-label`:"group-label",{group:p,label:n(ve)(p,n(a).labelKey),ui:c.value},()=>[ce(oe(n(ve)(p,n(a).labelKey)),1)])]),_:2},1032,["class"])):P("",!0),(_(!0),V(pe,null,we(p.items,(U,E)=>(_(),L(n(d),{key:`group-${p.id}-${E}`,item:U,index:E,group:p},null,8,["item","index","group"]))),128))]),_:2},1032,["class"]))),128))],2)):(_(),V("div",{key:1,"data-slot":"empty",class:q(c.value.empty({class:n(a).ui?.empty}))},[N(w.$slots,"empty",{searchTerm:l.value},()=>[ce(oe(l.value?n(u)("commandPalette.noMatch",{searchTerm:l.value}):n(u)("commandPalette.noData")),1)])],2))]),_:3},8,["class"]),o.footer?(_(),V("div",{key:1,"data-slot":"footer",class:q(c.value.footer({class:n(a).ui?.footer}))},[N(w.$slots,"footer",{ui:c.value})],2)):P("",!0)]),_:3},16,["selection-behavior","class"])],64))}}),Hi={slots:{modal:"",input:""},variants:{fullscreen:{false:{modal:"sm:max-w-3xl h-full sm:h-[28rem]"}},size:{xs:{},sm:{},md:{},lg:{},xl:{}}},defaultVariants:{size:"md"}},Ui=/^[^-]+.*-.*[^-]+$/,Vi=/^[^_]+.*_.*[^_]+$/,sa=["arrowleft","arrowright","arrowup","arrowdown","tab","escape","enter","backspace"];function Xe(e){return/^[a-z]$/i.test(e)?`Key${e.toUpperCase()}`:/^\d$/.test(e)?`Digit${e}`:/^f\d+$/i.test(e)?e.toUpperCase():{space:"Space",enter:"Enter",escape:"Escape",tab:"Tab",backspace:"Backspace",delete:"Delete",arrowup:"ArrowUp",arrowdown:"ArrowDown",arrowleft:"ArrowLeft",arrowright:"ArrowRight"}[e.toLowerCase()]||e}function Ra(e,t={}){const s=t.chainDelay??800,i=H([]),o=()=>{i.value.splice(0,i.value.length)},a=va(o,s);let l;const u=()=>{l=void 0,g.stop()},r=()=>{const f=l;if(u(),!f)return;const x=A.value.find($=>$.key===f.shortcut.key&&!$.metaKey&&!$.ctrlKey&&!$.altKey&&!$.shiftKey);x?.enabled&&x.handler(f.event)},g=yn(()=>{r(),o()},s,{immediate:!1}),{macOS:m}=bn(),v=kn(),d=t.layoutIndependent??!1,c=sa.map(f=>Xe(f)),h=f=>{if(!f.key)return;const x=d||f.altKey,$=x?/^Key[A-Z]$/i.test(f.code):/^[a-z]{1}$/i.test(f.key),T=x?c.includes(f.code):sa.includes(f.key.toLowerCase());let I;if(i.value.push(d?f.code:f.key),i.value.length>=2){I=i.value.slice(-2).join("-");for(const S of R.value)if(S.key===I){S.enabled?(u(),f.preventDefault(),S.handler(f)):r(),o();return}}r();for(const S of A.value){if(d){if(f.code!==S.key)continue}else if(S.altKey&&f.altKey){if(f.code!==Xe(S.key))continue}else if(f.key.toLowerCase()!==S.key)continue;if(f.metaKey!==S.metaKey||f.ctrlKey!==S.ctrlKey||f.altKey!==S.altKey||($||T||S.shiftKey||f.shiftKey&&(f.metaKey||f.ctrlKey))&&f.shiftKey!==S.shiftKey)continue;if(!S.metaKey&&!S.ctrlKey&&!S.altKey&&!S.shiftKey&&b.value.has(S.key)){S.enabled&&f.preventDefault(),l={shortcut:S,event:f},g.start();return}S.enabled&&(f.preventDefault(),S.handler(f)),o();return}a()},y=O(()=>{const f=v.value?.tagName,x=v.value?.contentEditable;return f==="INPUT"||f==="TEXTAREA"||x==="true"||x==="plaintext-only"?v.value?.name||!0:!1}),D=O(()=>Object.entries(ge(e)).map(([f,x])=>{if(!x)return null;let $;f.includes("-")&&f!=="-"&&!f.includes("_")&&!f.match(Ui)?.length&&console.trace(`[Shortcut] Invalid key: "${f}"`),f.includes("_")&&f!=="_"&&!f.match(Vi)?.length&&console.trace(`[Shortcut] Invalid key: "${f}"`);const T=f.includes("-")&&f!=="-"&&!f.includes("_");if(T)d?$={key:f.split("-").map(k=>Xe(k)).join("-"),metaKey:!1,ctrlKey:!1,shiftKey:!1,altKey:!1}:$={key:f.toLowerCase(),metaKey:!1,ctrlKey:!1,shiftKey:!1,altKey:!1};else{const S=f.toLowerCase().split("_").map(M=>M);let k=S.filter(M=>!["meta","command","ctrl","shift","alt","option"].includes(M)).join("_");d&&(k=Xe(k)),$={key:k,metaKey:S.includes("meta")||S.includes("command"),ctrlKey:S.includes("ctrl"),shiftKey:S.includes("shift"),altKey:S.includes("alt")||S.includes("option")}}if($.chained=T,!m.value&&$.metaKey&&!$.ctrlKey&&($.metaKey=!1,$.ctrlKey=!0),typeof x=="function"?$.handler=x:typeof x=="object"&&($={...$,handler:x.handler}),!$.handler)return console.trace("[Shortcut] Invalid value"),null;let I=!0;return x.usingInput?typeof x.usingInput=="string"&&(I=y.value===x.usingInput):I=!y.value,$.enabled=I,$}).filter(Boolean)),R=O(()=>D.value.filter(f=>f.chained)),A=O(()=>D.value.filter(f=>!f.chained)),b=O(()=>new Set(R.value.map(f=>f.key.split("-")[0])));return wn("keydown",h)}const Wi={__name:"UDashboardSearch",props:it({size:{type:null,required:!1},close:{type:[Boolean,Object],required:!1,default:!0},input:{type:[Boolean,Object],required:!1},shortcut:{type:String,required:!1,default:"meta_k"},fuse:{type:Object,required:!1},searchDelay:{type:Number,required:!1,default:100},colorMode:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},overlay:{type:Boolean,required:!1},transition:{type:Boolean,required:!1},content:{type:Object,required:!1},dismissible:{type:Boolean,required:!1},fullscreen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},unmountOnHide:{type:Boolean,required:!1},icon:{type:[String,Boolean],required:!1,skipCheck:!0},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},childrenIcon:{type:null,required:!1},placeholder:{type:String,required:!1},autofocus:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},closeIcon:{type:null,required:!1},back:{type:[Boolean,Object],required:!1},backIcon:{type:null,required:!1},disabled:{type:Boolean,required:!1},highlightOnHover:{type:Boolean,required:!1},labelKey:{type:null,required:!1},descriptionKey:{type:null,required:!1},preserveGroupOrder:{type:Boolean,required:!1},virtualize:{type:[Boolean,Object],required:!1},groups:{type:Array,required:!1}},{open:{type:Boolean,default:!1},openModifiers:{},searchTerm:{type:String,default:""},searchTermModifiers:{}}),emits:["update:open","update:searchTerm"],setup(e,{expose:t}){const s=e,i=Ee(),o=Me("dashboardSearch",s),a=ze(e,"open",{type:Boolean,default:!1}),l=ze(e,"searchTerm",{type:String,default:""});yt("dashboard:search:toggle",()=>{a.value=!a.value});const{t:u}=Ne(),r=ra(),g=Ce(),m=Pe(st(o,"size","icon","trailingIcon","selectedIcon","childrenIcon","placeholder","autofocus","loading","loadingIcon","close","closeIcon","back","backIcon","disabled","highlightOnHover","labelKey","descriptionKey","preserveGroupOrder","virtualize","searchDelay")),v=Pe(st(o,"overlay","transition","content","dismissible","fullscreen","modal","portal","unmountOnHide")),d=O(()=>o.input===!1?!1:Le(typeof o.input=="object"?o.input:{},{fixed:!0})),c=()=>nt(i,["content"]),h=O(()=>Le({},o.fuse,{fuseOptions:{useTokenSearch:!0}})),y=O(()=>Oe({extend:Hi,...g.ui?.dashboardSearch||{}})({size:o.size,fullscreen:o.fullscreen})),D=O(()=>{const b=[];return b.push(...o.groups||[]),o.colorMode&&!r?.forced&&b.push({id:"theme",label:u("dashboardSearch.theme"),items:[{label:u("colorMode.system"),icon:g.ui.icons.system,active:r.preference==="system",onSelect:()=>{r.preference="system"}},{label:u("colorMode.light"),icon:g.ui.icons.light,active:r.preference==="light",onSelect:()=>{r.preference="light"}},{label:u("colorMode.dark"),icon:g.ui.icons.dark,active:r.preference==="dark",onSelect:()=>{r.preference="dark"}}]}),b}),R=ha("commandPaletteRef");function A(b){b.disabled||(a.value=!1,l.value="")}return Ra({[o.shortcut]:{usingInput:!0,handler:()=>a.value=!a.value}}),t({commandPaletteRef:R}),(b,f)=>(_(),L(rt,Q({open:a.value,"onUpdate:open":f[2]||(f[2]=x=>a.value=x),title:n(o).title||n(u)("dashboardSearch.title"),description:n(o).description||n(u)("dashboardSearch.description")},n(v),{"data-slot":"modal",class:y.value.modal({class:[n(o).ui?.modal,n(o).class]})}),{content:C(x=>[N(b.$slots,"content",Te(De(x)),()=>[B(Ki,Q({ref_key:"commandPaletteRef",ref:R,"search-term":l.value,"onUpdate:searchTerm":f[0]||(f[0]=$=>l.value=$)},n(m),{groups:D.value,fuse:h.value,input:d.value,ui:n(oa)(n(nt)(y.value,["modal"]),n(o).ui),"onUpdate:modelValue":A,"onUpdate:open":f[1]||(f[1]=$=>a.value=$)}),At({_:2},[we(c(),($,T)=>({name:T,fn:C(I=>[N(b.$slots,T,Te(De(I)))])}))]),1040,["search-term","groups","fuse","input","ui"])])]),_:3},16,["open","title","description","class"]))}},Gi={class:"flex items-center gap-2"},Ji={class:"space-y-4"},Yi={class:"grid grid-cols-2 gap-3"},Qi={id:"jb-products"},Xi=["value"],Zi={class:"flex items-center gap-2"},eo={class:"text-xs font-medium text-muted uppercase tracking-wider"},to={class:"flex items-center justify-between pt-1"},ao=he({__name:"OpenInIdeSettingsModal",setup(e){const{prefs:t,settingsOpen:s,settingsContext:i}=wa(),o=Object.keys(Vt).map(c=>({label:Vt[c],value:c})),a=Object.keys(Wt).map(c=>({label:Wt[c],value:c})),l=O(()=>t.value.method==="auto"||t.value.method==="vscode"),u=O(()=>t.value.method!=="vscode"),r=O(()=>i.value.projectKey??null),g=O(()=>i.value.projectName||(r.value?`project ${r.value}`:""));function m(c){return O({get:()=>r.value?t.value[c][r.value]??"":"",set:h=>{const y=r.value;if(!y)return;const D={...t.value[c]};h.trim()?D[y]=h:delete D[y],t.value[c]=D}})}const v=m("projectRoots"),d=m("jetbrainsProjectNames");return(c,h)=>{const y=Ie,D=ts,R=as,A=ka,b=Et,f=_a,x=ns,$=ss,T=es,I=ke,S=rt;return _(),L(S,{open:n(s),"onUpdate:open":h[9]||(h[9]=k=>ye(s)?s.value=k:null),ui:{content:"max-w-lg"}},{header:C(()=>[W("div",Gi,[B(y,{name:"i-lucide-external-link",class:"size-5 text-primary"}),h[10]||(h[10]=W("h2",{class:"text-base font-semibold"},"Open in IDE",-1)),B(D,{topic:"ide.open"})])]),body:C(()=>[W("div",Ji,[h[14]||(h[14]=W("p",{class:"text-sm text-muted"}," Click a source path anywhere in the dashboard to open it in your editor. These preferences are stored in this browser only. ",-1)),B(A,{label:"Method",name:"method",description:"Auto probes the JetBrains local server first, then falls back to a URL launch."},{default:C(()=>[B(R,{modelValue:n(t).method,"onUpdate:modelValue":h[0]||(h[0]=k=>n(t).method=k),items:n(o),class:"w-full"},null,8,["modelValue","items"])]),_:1}),B(A,{label:"Workspace root",name:"defaultRoot",description:"Absolute path to your local checkout — repo-relative paths are joined onto it (VS Code needs this)."},{default:C(()=>[B(b,{modelValue:n(t).defaultRoot,"onUpdate:modelValue":h[1]||(h[1]=k=>n(t).defaultRoot=k),placeholder:"/home/me/my-repo",class:"w-full"},null,8,["modelValue"])]),_:1}),n(l)?(_(),L(A,{key:0,label:"VS Code flavor",name:"vscodeScheme"},{default:C(()=>[B(R,{modelValue:n(t).vscodeScheme,"onUpdate:modelValue":h[2]||(h[2]=k=>n(t).vscodeScheme=k),items:n(a),class:"w-full"},null,8,["modelValue","items"])]),_:1})):P("",!0),n(u)?(_(),V(pe,{key:1},[W("div",Yi,[B(A,{label:"JetBrains product",name:"jetbrainsProduct",description:"e.g. idea, webstorm, pycharm."},{default:C(()=>[B(b,{modelValue:n(t).jetbrainsProduct,"onUpdate:modelValue":h[3]||(h[3]=k=>n(t).jetbrainsProduct=k),placeholder:"idea",list:"jb-products",class:"w-full"},null,8,["modelValue"]),W("datalist",Qi,[(_(!0),V(pe,null,we(n(Rn),k=>(_(),V("option",{key:k,value:k},null,8,Xi))),128))])]),_:1}),B(A,{label:"Local server port",name:"jetbrainsPort",description:"Remote Control plugin."},{default:C(()=>[B(b,{modelValue:n(t).jetbrainsPort,"onUpdate:modelValue":h[4]||(h[4]=k=>n(t).jetbrainsPort=k),modelModifiers:{number:!0},type:"number",class:"w-full"},null,8,["modelValue"])]),_:1})]),B(A,{name:"jetbrainsHttpUsesRelativePath"},{default:C(()=>[W("div",Zi,[B(f,{modelValue:n(t).jetbrainsHttpUsesRelativePath,"onUpdate:modelValue":h[5]||(h[5]=k=>n(t).jetbrainsHttpUsesRelativePath=k)},null,8,["modelValue"]),h[11]||(h[11]=W("span",{class:"text-sm"},"Send a content-root-relative path to the local server",-1))])]),_:1})],64)):P("",!0),n(r)?(_(),V(pe,{key:2},[B(x),W("p",eo,"Override for "+oe(n(g)),1),B(A,{label:"Workspace root override",name:"projectRoot",description:"Use a different local folder for this project (monorepos, multiple checkouts)."},{default:C(()=>[B(b,{modelValue:n(v),"onUpdate:modelValue":h[6]||(h[6]=k=>ye(v)?v.value=k:null),placeholder:n(t).defaultRoot||"/home/me/this-project",class:"w-full"},null,8,["modelValue","placeholder"])]),_:1}),n(u)?(_(),L(A,{key:0,label:"JetBrains project name",name:"projectJbName",description:"The open IDE project name for the jetbrains:// link."},{default:C(()=>[B(b,{modelValue:n(d),"onUpdate:modelValue":h[7]||(h[7]=k=>ye(d)?d.value=k:null),placeholder:n(g),class:"w-full"},null,8,["modelValue","placeholder"])]),_:1})):P("",!0)],64)):P("",!0),n(u)?(_(),L($,{key:3,color:"neutral",variant:"soft",icon:"i-lucide-info",title:"JetBrains prerequisites",description:"The jetbrains:// link needs JetBrains Toolbox. The local server needs the IDE Remote Control plugin with 'Allow unsigned requests', and browsers block it when this dashboard is served over HTTPS."})):P("",!0),W("div",to,[B(T,{to:"ide-integration"},{default:C(()=>[...h[12]||(h[12]=[ce("Learn more",-1)])]),_:1}),B(I,{color:"neutral",onClick:h[8]||(h[8]=k=>s.value=!1)},{default:C(()=>[...h[13]||(h[13]=[ce("Done",-1)])]),_:1})])])]),_:1},8,["open"])}}}),no=Object.assign(ao,{__name:"OpenInIdeSettingsModal"}),so={class:"flex items-center gap-2"},io={class:"space-y-4"},oo={class:"space-y-2"},lo={class:"min-w-0 flex-1"},ro={class:"text-sm truncate"},uo={class:"text-xs text-muted truncate"},co={key:0,class:"text-xs text-error"},fo={class:"grid grid-cols-2 gap-3"},po={class:"flex items-center justify-end w-full gap-2"},ho=he({__name:"DesktopImportModal",setup(e){const{files:t,open:s,removeFile:i,clear:o}=_n(),{data:a,execute:l,status:u}=Mt("/api/projects/menu",{immediate:!1,default:()=>[]},"$fWNyjYhgL_");re(s,b=>{b&&a.value.length===0&&l()});const r=H(),g=H(""),m=H(!0),v=H(!1),d=xn({}),c=O(()=>a.value.map(b=>({label:b.label||b.name,value:b.name})));function h(b){return b.split(/[\\/]/).pop()||b}function y(){const b=new Uint8Array(32);return crypto.getRandomValues(b),Array.from(b,f=>f.toString(16).padStart(2,"0")).join("")}async function D(){if(!r.value||v.value||t.value.length===0)return;v.value=!0;const b=m.value&&t.value.length>1?y():void 0;try{for(const f of[...t.value]){const x=d[f]?.status;if(!(x==="imported"||x==="duplicate")){d[f]={status:"importing"};try{const $=await $fetch("/api/desktop/import-local",{method:"POST",body:{path:f,projectName:r.value,label:g.value.trim()||void 0,importGroup:b}});d[f]={status:$.status,testRunId:$.testRunId}}catch($){d[f]={status:"error",message:os($)}}}}}finally{v.value=!1}}const R=O(()=>t.value.length>0&&t.value.every(b=>d[b]?.status==="imported"||d[b]?.status==="duplicate"));re(s,b=>{if(!b&&R.value){o();for(const f of Object.keys(d))delete d[f]}});function A(b){const f=d[b];if(!f)return null;switch(f.status){case"importing":return{label:"Importing…",color:"info"};case"imported":return{label:"Imported",color:"success"};case"duplicate":return{label:"Already imported",color:"neutral"};case"error":return{label:"Failed",color:"error"}}}return(b,f)=>{const x=Ie,$=Sn,T=ke,I=is,S=Zn,k=ka,M=Et,G=_a,J=rt;return _(),L(J,{open:n(s),"onUpdate:open":f[6]||(f[6]=w=>ye(s)?s.value=w:null),ui:{content:"max-w-xl"}},{header:C(()=>[W("div",so,[B(x,{name:"i-lucide-file-input",class:"size-5 text-primary"}),f[7]||(f[7]=W("h2",{class:"text-base font-semibold"},"Import archives",-1)),B($,{color:"neutral",variant:"subtle",size:"sm"},{default:C(()=>[ce(oe(n(t).length),1)]),_:1})])]),body:C(()=>[W("div",io,[f[9]||(f[9]=W("p",{class:"text-sm text-muted"}," Playwright blob reports become complete runs; bare traces become single executions. Re-importing the same archive is a no-op, and imports never trigger notifications or regression signals. ",-1)),W("div",oo,[(_(!0),V(pe,null,we(n(t),w=>(_(),V("div",{key:w,class:"flex items-center gap-2 rounded-md border border-default p-2"},[B(x,{name:"i-lucide-file-archive",class:"size-4 text-gray-400 shrink-0"}),W("div",lo,[W("p",ro,oe(h(w)),1),W("p",uo,oe(w),1),n(d)[w]?.message?(_(),V("p",co,oe(n(d)[w]?.message),1)):P("",!0)]),A(w)?(_(),L($,{key:0,color:A(w).color,variant:"subtle",size:"sm"},{default:C(()=>[ce(oe(A(w).label),1)]),_:2},1032,["color"])):P("",!0),n(d)[w]?.status==="imported"||n(d)[w]?.status==="duplicate"?(_(),L(T,{key:1,to:`/test-runs/${n(d)[w]?.testRunId}`,size:"xs",color:"neutral",variant:"soft",onClick:f[0]||(f[0]=F=>s.value=!1)},{default:C(()=>[...f[8]||(f[8]=[ce(" View run ",-1)])]),_:1},8,["to"])):(_(),L(T,{key:2,icon:"i-lucide-x",size:"xs",color:"neutral",variant:"ghost",disabled:n(v),"aria-label":"Remove from import",onClick:F=>n(i)(w)},null,8,["disabled","onClick"]))]))),128)),n(t).length===0?(_(),L(I,{key:0,icon:"i-lucide-file-x",text:"Nothing to import"})):P("",!0)]),B(k,{label:"Import into project",name:"projectName"},{default:C(()=>[B(S,{modelValue:n(r),"onUpdate:modelValue":f[1]||(f[1]=w=>ye(r)?r.value=w:null),items:n(c),"value-key":"value",loading:n(u)==="pending",placeholder:"Select a project…",class:"w-full",disabled:n(v)},null,8,["modelValue","items","loading","disabled"])]),_:1}),W("div",fo,[B(k,{label:"Label",name:"label",description:"Optional run label."},{default:C(()=>[B(M,{modelValue:n(g),"onUpdate:modelValue":f[2]||(f[2]=w=>ye(g)?g.value=w:null),disabled:n(v),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),n(t).length>1?(_(),L(k,{key:0,label:"Combine traces",name:"combine",description:"Gather dropped traces into one run."},{default:C(()=>[B(G,{modelValue:n(m),"onUpdate:modelValue":f[3]||(f[3]=w=>ye(m)?m.value=w:null),disabled:n(v)},null,8,["modelValue","disabled"])]),_:1})):P("",!0)])])]),footer:C(()=>[W("div",po,[B(T,{color:"neutral",variant:"ghost",onClick:f[4]||(f[4]=w=>s.value=!1)},{default:C(()=>[...f[10]||(f[10]=[ce("Close",-1)])]),_:1}),B(T,{icon:"i-lucide-file-input",loading:n(v),disabled:!n(r)||n(t).length===0||n(R),onClick:f[5]||(f[5]=w=>D())},{default:C(()=>[...f[11]||(f[11]=[ce(" Import ",-1)])]),_:1},8,["loading","disabled"])])]),_:1},8,["open"])}}}),mo=Object.assign(ho,{__name:"DesktopImportModal"}),vo={base:"fixed inset-0 flex overflow-hidden"},go={__name:"UDashboardGroup",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},storage:{type:String,required:!1,default:"cookie"},storageKey:{type:String,required:!1,default:"dashboard"},storageOptions:{type:Object,required:!1},persistent:{type:Boolean,required:!1,default:!0},unit:{type:String,required:!1,default:"%"}},setup(e){const s=Me("dashboardGroup",e),i=fa(),o=Ce(),a=O(()=>Oe({extend:vo,...o.ui?.dashboardGroup||{}})),l=H(!1),u=H(!1);return Ln({storage:s.storage,storageKey:s.storageKey,storageOptions:s.storageOptions,persistent:s.persistent,unit:s.unit,sidebarOpen:l,toggleSidebar:()=>{i.hooks.callHook("dashboard:sidebar:toggle")},sidebarCollapsed:u,collapseSidebar:r=>{i.hooks.callHook("dashboard:sidebar:collapse",r)},toggleSearch:()=>{i.hooks.callHook("dashboard:search:toggle")}}),(r,g)=>(_(),L(n(ia),{as:n(s).as,class:q(a.value({class:[n(s).ui?.base,n(s).class]}))},{default:C(()=>[N(r.$slots,"default")]),_:3},8,["as","class"]))}},yo=he({__name:"ProjectsMenu",props:{collapsed:{type:Boolean}},async setup(e){let t,s;const i=Lt(),o=ga(),{data:a,refresh:l}=([t,s]=ya(()=>Mt("/api/projects/menu","$uvvrKI5K9p")),t=await t,s(),t);Sa(l);const u=O(()=>{const m=i.params.id;return m?parseInt(m):null}),r=O(()=>{if(!u.value||!a.value)return{label:"All projects",icon:"i-lucide-folder-open"};const m=a.value.find(v=>v.id===u.value);return m?{label:m.label||m.name,icon:"i-lucide-folder"}:{label:"All projects",icon:"i-lucide-folder-open"}}),g=O(()=>{const m=[{label:"All projects",icon:"i-lucide-folder-open",onSelect(){o.push("/projects")}}];return a.value&&a.value.length>0&&m.push(...a.value.map(v=>({label:v.label||v.name,icon:"i-lucide-folder",onSelect(){o.push(`/projects/${v.id}`)}}))),[m]});return(m,v)=>{const d=ke,c=ca;return _(),L(c,{items:n(g),content:{align:"center",collisionPadding:12},ui:{content:e.collapsed?"w-40":"w-(--reka-dropdown-menu-trigger-width)"}},{default:C(()=>[B(d,Q({...n(r),label:e.collapsed?void 0:n(r)?.label,trailingIcon:e.collapsed?void 0:"i-lucide-chevrons-up-down"},{color:"neutral",variant:"ghost",block:"",square:e.collapsed,class:["data-[state=open]:bg-elevated",[!e.collapsed&&"py-2"]],ui:{trailingIcon:"text-dimmed"}}),null,16,["square","class"])]),_:1},8,["items","ui"])}}}),bo=Object.assign(yo,{__name:"ProjectsMenu"});let vt=null,gt=!1,tt=!0;window.addEventListener("focus",()=>{tt=!0}),window.addEventListener("blur",()=>{tt=!1}),tt=document.hasFocus();let Fe=null;function wo(e){const t=[];switch(e.type){case"run.finished":case"run.failed":case"run.failed.default_branch":case"flakiness.spike":case"perf.regression":{const s=e.projectName??`Project #${e.projectId}`,i=e.branch&&e.type!=="perf.regression"?` on ${e.branch}`:"";if(e.type==="run.finished"?t.push(`${s}${i}: ${e.status??"finished"}`):e.type==="run.failed"?t.push(`${s}${i}: ${e.failedTests??0}/${e.totalTests??0} tests failed`):e.type==="run.failed.default_branch"?t.push(`${s}: ${e.failedTests??0} failures on default branch`):e.type==="flakiness.spike"?t.push(`${s}: flakiness spike detected`):e.type==="perf.regression"&&t.push(`${s}: performance regression detected`),e.failedTests&&t.push(`${e.failedTests} failed, ${e.totalTests} total`),e.topFailures?.length){const[o,...a]=e.topFailures;t.push(a.length?`${o.title} +${a.length} more`:o.title)}break}case"cluster.new":t.push(`${e.projectName??`Project #${e.projectId}`}: new failure cluster`),e.signature&&t.push(e.signature);break;case"diagnosis.completed":case"diagnosis-completed":t.push(e.summary||e.rootCause||""),e.category&&t.push(`Category: ${e.category}`),e.confidence&&t.push(`Confidence: ${e.confidence}`);break}return t.filter(Boolean).join(`
|
|
2
|
-
`)}function ko(e){return e.clusterId?`/failure-clusters/${e.clusterId}`:e.runId&&e.projectId?`/test-runs/${e.runId}`:null}let Ct=null;function ja(e){if(!("Notification"in window)||Notification.permission!=="granted"||document.visibilityState==="visible"&&tt||(e.type==="diagnosis.completed"||e.type==="diagnosis-completed")&&Ct&&!Ct.value)return;if(Fe&&e.projectId!=null){const l=Fe.isEventSubscribed(e.projectId,e.type);if(console.log("[notify-stream] GATE: cookie filter",{projectId:e.projectId,type:e.type,subscribed:l,cookieProjects:Object.keys(Fe.stored.value.projects),matchingEvents:Fe.stored.value.projects[e.projectId]?.events??[]}),!l)return}const t=wo(e);if(!t)return;const s=e.clusterId??e.runId??e.signature??e.type,i=`piwi-${e.type}-${s}`,o=new Notification("Piwi Dashboard",{body:t,tag:i,icon:"/logo.svg"});console.log("[notify-stream] notification fired",{type:e.type,projectId:e.projectId});const a=ko(e);a?o.onclick=()=>{window.focus(),window.location.href=a,o.close()}:o.onclick=()=>{window.focus(),o.close()}}async function _o(){if(Ke().public.demoMode)return!0;if(!("Notification"in window)||Notification.permission!=="granted")return!1;try{return(await $fetch("/api/channels")).channels.some(t=>t.type==="browser")}catch{return!1}}async function So(){const e=Ke();return e.public.demoMode?!0:e.public.authEnabled?_o():!0}function xo(){ls(e=>{e.scope==="notification"&&ja(e.event)})}function $o(){vt=new EventSource("/api/notifications/stream"),vt.onmessage=e=>{try{const t=JSON.parse(e.data);ja(t)}catch{}},vt.onerror=()=>{}}function Io(){if(gt)return;gt=!0,gt=!0;const{active:e}=rs();Ct=e;const t=Ke();t.public.authEnabled||(Fe=us()),So().then(s=>{s&&(t.public.demoMode?xo():$o())}),pa(()=>{})}const Co=()=>{const e=ga();return Ra({"g-h":()=>e.push("/"),"g-p":()=>e.push("/projects"),"g-a":()=>e.push("/analytics"),"g-s":()=>e.push("/settings")}),{}},Ao=$n(Co),To={class:"flex flex-col gap-1 w-full"},Do=10,ll=he({__name:"default",async setup(e){let t,s;const i=Lt(),o=In(),a=Ke(),l=H(!1),u=H(""),r=H(null),g=va(async I=>{if(I.trim().length<2){r.value=null;return}try{r.value=await $fetch("/api/search",{query:{q:I.trim()}})}catch{r.value=null}},250);re(u,g),re(()=>l.value,I=>{I||(u.value="",r.value=null)});const{data:m,refresh:v}=([t,s]=ya(()=>Mt("/api/projects",{key:"projects",lazy:!0,default:()=>[]},"$uZFDOvnd1e")),t=await t,s(),t);Sa(v),Io(),Ao();const{canSeeAdmin:d}=ua(),c=O(()=>{const I=i.path.match(/^\/projects\/(\d+)/);return I?.[1]?parseInt(I[1],10):null}),h=O(()=>{if(!m.value||m.value.length===0)return[];const I=Date.now()-Do*24*60*60*1e3,S=[...m.value].sort((w,F)=>{const p=(w.label||w.name).toLowerCase(),U=(F.label||F.name).toLowerCase();return p.localeCompare(U)}),k=S.filter(w=>w.latestRun&&new Date(w.latestRun.startTime).getTime()>I),M=S.filter(w=>!w.latestRun||new Date(w.latestRun.startTime).getTime()<=I);function G(w){const F=c.value!==null&&c.value===w.id,p=w.latestRun?.status==="running"||w.latestRun?.status==="initialising",U=w.latestRun?.status||"unknown",E=U==="passed"?"i-lucide-circle-check-big":U==="failed"?"i-lucide-circle-x":"i-lucide-circle",K=U==="passed"?"success":U==="failed"?"error":p?"info":"neutral";return{label:w.label||w.name,icon:p?"i-lucide-loader-circle":"i-lucide-circle",ui:p?{linkLeadingIcon:"animate-spin"}:void 0,badge:{icon:E,color:K},value:`project-${w.id}`,type:"link",to:`/projects/${w.id}`,active:F}}const J=[];return k.length>0&&(J.push({label:`Active (${k.length})`,type:"label"}),J.push(...k.map(G))),M.length>0&&(J.push({label:`Others (${M.length})`,type:"label"}),J.push(...M.map(G))),J}),y=O(()=>{const I=[{label:"GitHub",icon:"i-lucide-github",to:"https://github.com/piwitests/platform",target:"_blank"}];return I.unshift({label:"MCP server",icon:"i-lucide-bot",to:"/mcp",onSelect:()=>{l.value=!1}}),d.value&&I.unshift({label:"Setup",icon:"i-lucide-rocket",to:"/setup",onSelect:()=>{l.value=!1}}),I.unshift({label:"API Docs",icon:"i-lucide-book-open",to:"/docs",onSelect:()=>{l.value=!1}}),[[{label:"Home",icon:"i-lucide-house",to:"/",onSelect:()=>{l.value=!1}},{label:"Analytics",icon:"i-lucide-chart-line",to:"/analytics",onSelect:()=>{l.value=!1}},{label:"Projects",icon:"i-lucide-folder",to:"/projects",onSelect:()=>{l.value=!1}},...h.value],I]}),D=I=>({label:typeof I.label=="string"?I.label:void 0,icon:I.icon,to:I.to,target:I.target,active:I.active,disabled:I.disabled,suffix:typeof I.badge=="string"?I.badge:void 0,children:I.children?.map(S=>D(S)),onSelect:I.onSelect}),R=O(()=>{const I="https://github.com/piwitests/platform/blob/main/application/app/pages",S="https://github.com/piwitests/platform/tree/main/application/app/pages",k=i.matched[i.matched.length-1]?.path??i.path;return k.includes(":")?S:`${I}${k==="/"?"/index":k}.vue`});function A(I){return I==="passed"?"i-lucide-circle-check-big":I==="failed"?"i-lucide-circle-x":I==="running"||I==="initialising"?"i-lucide-loader-circle":"i-lucide-circle"}const b=O(()=>{const I=[{id:"links",label:"Go to",items:y.value.flat().map(k=>D(k))},{id:"code",label:"Code",items:[{id:"source",label:"View page source",icon:"i-lucide-github",to:R.value,target:"_blank"}]}];if(c.value){const k=c.value,M=[["test-runs","Test runs","i-lucide-play"],["test-cases","Test cases","i-lucide-flask-conical"],["compare","Compare","i-lucide-git-compare-arrows"],["failure-clusters","Failure clusters","i-lucide-layers"],["flaky-tests","Flaky tests","i-lucide-shuffle"],["quarantine","Quarantine","i-lucide-shield-alert"],["spec-health","Spec health","i-lucide-table-2"],["performance","Performance","i-lucide-trending-up"],["timeline","Timeline","i-lucide-git-commit-horizontal"]];I.unshift({id:"project-tabs",label:"This project",items:M.map(([G,J,w])=>({id:`project-tab-${G}`,label:J,icon:w,to:`/projects/${k}?tab=${G}`,onSelect:()=>{l.value=!1}}))})}if(!r.value)return I;const S=[];return r.value.projects.length>0&&S.push({id:"search-projects",label:"Projects",ignoreFilter:!0,items:r.value.projects.map(k=>({id:`project-${k.id}`,label:k.label||k.name,description:k.label&&k.label!==k.name?k.name:void 0,icon:"i-lucide-folder",to:`/projects/${k.id}`}))}),r.value.runs.length>0&&S.push({id:"search-runs",label:"Test runs",ignoreFilter:!0,items:r.value.runs.map(k=>({id:`run-${k.id}`,label:k.label?`Run #${k.id} — ${k.label}`:`Run #${k.id}`,description:k.projectLabel||k.projectName,suffix:k.status,icon:A(k.status),to:`/test-runs/${k.id}`}))}),r.value.cases.length>0&&S.push({id:"search-cases",label:"Test cases",ignoreFilter:!0,items:r.value.cases.map(k=>({id:`case-${k.id}`,label:k.title,description:`${k.projectLabel||k.projectName} · ${k.filePath}`,icon:"i-lucide-flask-conical",to:`/test-cases/${k.id}`}))}),[...S,...I]}),f=a.public.demoMode,x=a.public.demoDataVersion,$=a.public.appVersion,{resetDemo:T}=Cn();return Bt(async()=>{if(f&&x){const I=await An();I!==null&&I!==x&&o.add({title:"New demo data available",description:'The demo seed data has been updated since your last visit. Click "Refresh" to reload with the latest data.',duration:0,color:"warning",actions:[{label:"Refresh",color:"warning",onClick:()=>{T()}},{label:"Dismiss",color:"neutral",variant:"ghost"}]})}}),(I,S)=>{const k=ps,M=Mn,G=vs,J=ma,w=Hs,F=Wi,p=no,U=mo,E=go;return _(),L(E,{unit:"rem",style:{top:"var(--demo-banner-height, 0px)",height:"calc(100dvh - var(--demo-banner-height, 0px))"}},{default:C(()=>[S[2]||(S[2]=W("a",{href:"#main-content",class:"sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:rounded-md focus:bg-primary focus:px-3 focus:py-2 focus:text-sm focus:font-medium focus:text-inverted focus:shadow-lg focus:outline-2 focus:outline-primary"}," Skip to main content ",-1)),B(w,{id:"default",open:n(l),"onUpdate:open":S[0]||(S[0]=K=>ye(l)?l.value=K:null),collapsible:"",resizable:"",width:"20",class:"bg-elevated/25",ui:{root:"min-h-full",footer:"lg:border-t lg:border-default"}},{header:C(({collapsed:K})=>[B(bo,{collapsed:K},null,8,["collapsed"])]),default:C(({collapsed:K})=>[B(k,{collapsed:K,class:"bg-transparent ring-default"},null,8,["collapsed"]),(_(),L(M,{key:n(c)??void 0,collapsed:K,items:n(y)[0],orientation:"vertical",tooltip:"",popover:""},null,8,["collapsed","items"])),B(M,{collapsed:K,items:n(y)[1],orientation:"vertical",tooltip:"",class:"mt-auto"},null,8,["collapsed","items"])]),footer:C(({collapsed:K})=>[W("div",To,[B(G,{collapsed:K},null,8,["collapsed"]),K?P("",!0):(_(),L(J,{key:0,to:"/settings/about",class:"text-xs text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-center",title:"View version and build info"},{default:C(()=>[ce(" v"+oe(n($)),1)]),_:1}))])]),_:1},8,["open"]),B(F,{"search-term":n(u),"onUpdate:searchTerm":S[1]||(S[1]=K=>ye(u)?u.value=K:null),groups:n(b),"preserve-group-order":!!n(r)},null,8,["search-term","groups","preserve-group-order"]),S[3]||(S[3]=W("span",{id:"main-content",tabindex:"-1",class:"sr-only"},"Main content",-1)),N(I.$slots,"default"),B(p),B(U)]),_:3})}}});export{ll as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{am as he,h as V,ao as O,r as x,ap as be,d as D,H as oe,J as Y,o as r,f as C,g as f,i as d,k as e,s as ae,m as b,t as $,c as h,j as c,_ as ie,v as I,F,p as J,l as A,E as ye,y as re,q,I as ue,L as ke,B as xe,V as G}from"./h49q_GXF.js";import{_ as we}from"./CRPt9SfB.js";import{_ as $e}from"./9N6hSApy.js";import{_ as ce}from"./DDN2tt0a.js";import{_ as Se}from"./BKJetfRH.js";import{_ as je}from"./B0hK-xDF.js";import{_ as Ce}from"./Dj-TetcW.js";import{_ as Ie}from"./jjOqY9Tv.js";import{e as Me,t as se,u as Ue}from"./BZnfiR67.js";import{e as Ve,j as Le,B as Re,A as ze,k as Pe}from"./CD3R-ggS.js";import{_ as Be}from"./BtSJxOdh.js";import{_ as Ee}from"./CDh_Qt7h.js";const Fe={normal:[],headed:["--headed"],debug:["--debug"],ui:["--ui"]};function De(t){const n=new Map;for(const o of t){const l=o.projectName||"";n.has(l)||n.set(l,[]),n.get(l).push(o)}return n}function Te(t,n){if(n==="grep"){const a=t.map(p=>Me(p.title));return["--grep",a.length===1?a[0]:`(${a.join("|")})`]}const o=new Set,l=[];for(const a of t){const p=n==="file-line"&&a.line?`${se(a.filePath)}:${a.line}`:se(a.filePath);o.has(p)||(o.add(p),l.push(p))}return l}function Ne(t){return/[\s"'()|]/.test(t)?`"${t.replace(/"/g,'\\"')}"`:t}function Ae(t,n={}){if(t.length===0)return[];const o=n.mode??"file-line",l=n.runMode??"normal",a=Math.min(1e3,Math.max(1,Math.floor(n.repeatEach??1))),p=[];for(const[i,u]of De(t)){const m=Te(u,o);i&&m.push(`--project=${i}`),m.push(...Fe[l]),n.trace&&m.push("--trace=on"),a>1&&m.push(`--repeat-each=${a}`),p.push({args:m,display:["playwright","test",...m.map(Ne)].join(" ")})}return p}const le=2e3;function He(){const t=x("idle"),n=x([]),o=x(null),l=x(0),a=x(0),p=V(()=>t.value==="running");let i=null,u=!1,m=!1,S=[],j=null,v=null;function T(g,_){n.value.push({text:g,error:_}),n.value.length>le&&n.value.splice(0,n.value.length-le)}function N(g){if(g.kind==="exit"){v?.(g.code);return}T(g.line??"",g.kind!=="stdout")}async function z(){if(j)return;const g=be();if(!g)throw new Error("The desktop bridge is unavailable.");j=await g.listen("piwi:local-run",({payload:_})=>{_.id===i?N(_):u&&S.push(_)})}async function P(g,_){const k=O();if(!k)throw new Error("The desktop bridge is unavailable.");const L=new Promise(M=>{v=M});u=!0,S=[];try{i=await k.invoke("desktop_run_local_tests",{projectId:String(g),args:_.args})}finally{u=!1}for(const M of S)M.id===i&&N(M);S=[];const w=await L;return i=null,v=null,w}async function B(g,_){if(!(p.value||_.length===0)){m=!1,n.value=[],o.value=null,a.value=_.length,l.value=0,t.value="running";try{await z();let k=0;for(const[L,w]of _.entries()){if(m)break;l.value=L,_.length>1&&T(`$ ${w.display}`,!1);const M=await P(g,w);if(m)break;M!==0&&(k=M??1)}m?t.value="stopped":(o.value=typeof k=="number"?k:1,t.value=k===0?"passed":"failed")}catch(k){T(Ve(k),!0),t.value="error"}}}async function R(){if(!p.value)return;m=!0;const g=O(),_=i;if(g&&_!=null)try{await g.invoke("desktop_stop_local_tests",{runId:_})}catch{}v?.(null),t.value="stopped"}return he(()=>{p.value&&R(),j?.(),j=null}),{status:t,running:p,lines:n,exitCode:o,stepIndex:l,stepCount:a,start:B,stop:R}}const Oe={class:"flex items-center gap-2 min-w-0"},qe={class:"space-y-4"},Ge={key:0,class:"space-y-3"},Je={class:"text-sm text-muted"},Xe={class:"flex items-center justify-between gap-3"},Ke={class:"flex items-center gap-2 min-w-0 text-sm"},Qe={class:"text-xs break-all"},We={class:"grid grid-cols-2 gap-3"},Ye={class:"text-xs"},Ze={class:"text-xs"},et={key:0},tt={class:"mt-1"},nt={class:"space-y-1"},st={key:1,class:"space-y-2"},lt={class:"flex items-center justify-between w-full gap-3"},ot={key:1},at={class:"flex items-center gap-2"},it=D({__name:"DesktopRunLocallyModal",props:ue({projectId:{},projectLabel:{},cases:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:["update:open"],setup(t){const n=t,o=oe(t,"open"),{link:l,busy:a,pickAndLink:p}=Ue(()=>n.projectId),{status:i,running:u,lines:m,exitCode:S,stepIndex:j,stepCount:v,start:T,stop:N}=He(),z=x("file-line"),P=x("normal"),B=x(!1),R=x(1),g=[{label:"File:line",value:"file-line"},{label:"Title (grep)",value:"grep"},{label:"File only",value:"file"}],_=[{label:"Headless",value:"normal"},{label:"Headed",value:"headed"},{label:"Debug (inspector)",value:"debug"},{label:"UI mode",value:"ui"}],k=V(()=>!!l.value?.exists),L=V(()=>[...new Set(n.cases.map(U=>U.filePath).filter(Boolean))]),w=x([]);async function M(){const U=O();if(w.value=[],!(!U||!k.value||L.value.length===0))try{const s=await U.invoke("desktop_check_local_specs",{projectId:String(n.projectId),files:L.value});w.value=s?.missing??[]}catch{}}Y([o,()=>l.value?.path,k],()=>{o.value&&M()});const X=V(()=>L.value.length>0&&w.value.length===L.value.length),K=V(()=>Ae(n.cases,{mode:z.value,runMode:P.value,trace:B.value,repeatEach:R.value})),de=V(()=>K.value.map(U=>U.display).join(`
|
|
2
|
-
`)),Q=V(()=>{switch(i.value){case"running":return{label:v.value>1?`Running ${j.value+1}/${v.value}…`:"Running…",color:"info"};case"passed":return{label:"Passed",color:"success"};case"failed":return{label:S.value!=null?`Failed (exit ${S.value})`:"Failed",color:"error"};case"stopped":return{label:"Stopped",color:"neutral"};case"error":return{label:"Could not run",color:"error"};default:return null}});async function pe(){await T(n.projectId,K.value)}Y(o,U=>{!U&&u.value&&N()});const W=x(null);return Y(()=>m.value.length,async()=>{await ke(),W.value?.scrollTo({top:W.value.scrollHeight})}),(U,s)=>{const Z=J,ee=ae,te=$e,E=ie,ne=ce,H=Se,me=ye,fe=je,ve=Ce,ge=Ie;return r(),C(ge,{open:o.value,"onUpdate:open":s[7]||(s[7]=y=>o.value=y),ui:{content:"max-w-2xl"}},{header:f(()=>[d("div",Oe,[c(Z,{name:"i-lucide-monitor-play",class:"size-5 text-primary shrink-0"}),s[8]||(s[8]=d("h2",{class:"text-base font-semibold truncate"},"Run tests locally",-1)),c(ee,{color:"neutral",variant:"subtle",size:"sm"},{default:f(()=>[b($(t.cases.length)+" test"+$(t.cases.length===1?"":"s"),1)]),_:1})])]),body:f(()=>[d("div",qe,[e(k)?(r(),h(F,{key:1},[d("div",Xe,[d("div",Ke,[c(Z,{name:"i-lucide-folder-check",class:"size-4 text-success shrink-0"}),d("code",Qe,$(e(l)?.path),1)]),c(E,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-folder-search",loading:e(a),disabled:e(u),onClick:e(p)},{default:f(()=>[...s[10]||(s[10]=[b(" Change ",-1)])]),_:1},8,["loading","disabled","onClick"])]),d("div",We,[c(H,{label:"Select tests by",name:"mode"},{default:f(()=>[c(ne,{modelValue:e(z),"onUpdate:modelValue":s[0]||(s[0]=y=>A(z)?z.value=y:null),items:g,disabled:e(u),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),c(H,{label:"Browser",name:"runMode"},{default:f(()=>[c(ne,{modelValue:e(P),"onUpdate:modelValue":s[1]||(s[1]=y=>A(P)?P.value=y:null),items:_,disabled:e(u),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),c(H,{label:"Repeat each",name:"repeatEach",description:"Run every test N times — flake reproduction."},{default:f(()=>[c(me,{modelValue:e(R),"onUpdate:modelValue":s[2]||(s[2]=y=>A(R)?R.value=y:null),modelModifiers:{number:!0},type:"number",min:"1",max:"1000",disabled:e(u),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),c(H,{label:"Trace",name:"trace",description:"Force trace recording (--trace=on)."},{default:f(()=>[c(fe,{modelValue:e(B),"onUpdate:modelValue":s[3]||(s[3]=y=>A(B)?B.value=y:null),disabled:e(u)},null,8,["modelValue","disabled"])]),_:1})]),e(w).length>0?(r(),C(te,{key:0,color:"warning",variant:"soft",icon:"i-lucide-file-question",title:e(X)?"None of these tests are in the linked folder":"Some tests are not in the linked folder"},{description:f(()=>[d("p",null,[s[11]||(s[11]=b(" Not found under ",-1)),d("code",Ye,$(e(l)?.path),1),s[12]||(s[12]=b(": ",-1)),d("code",Ze,$(e(w)[0]),1),e(w).length>1?(r(),h("span",et," and "+$(e(w).length-1)+" more",1)):I("",!0),s[13]||(s[13]=b(". ",-1))]),d("p",tt,[e(X)?(r(),h(F,{key:0},[b(" This project is probably linked to a different checkout than the one these tests come from. ")],64)):(r(),h(F,{key:1},[b(" Running anyway is fine when your Playwright config puts them elsewhere. ")],64))]),e(X)?(r(),C(E,{key:0,size:"xs",color:"warning",variant:"soft",icon:"i-lucide-folder-search",class:"mt-2",loading:e(a),disabled:e(u),onClick:e(p)},{default:f(()=>[...s[14]||(s[14]=[b(" Choose the right folder… ",-1)])]),_:1},8,["loading","disabled","onClick"])):I("",!0)]),_:1},8,["title"])):I("",!0),d("div",nt,[s[15]||(s[15]=d("div",{class:"text-xs text-muted"},"Runs in the linked folder",-1)),c(ve,{code:e(de),lang:"sh"},null,8,["code"])]),s[16]||(s[16]=d("p",{class:"text-xs text-muted"}," Results are reported by the folder's own Playwright config — with the Piwi reporter set up, the new run appears in this app automatically. ",-1)),e(i)!=="idle"?(r(),h("div",st,[d("div",{ref_key:"outputEl",ref:W,class:"h-64 overflow-y-auto rounded-md bg-zinc-950 p-3"},[(r(!0),h(F,null,re(e(m),(y,_e)=>(r(),h("p",{key:_e,class:q(["font-mono text-xs whitespace-pre-wrap",y.error?"text-red-400":"text-zinc-300"])},$(y.text||" "),3))),128))],512)])):I("",!0)],64)):(r(),h("div",Ge,[d("p",Je," Link "+$(t.projectLabel||"this project")+" to its local checkout — the folder that contains these tests. Piwi runs that folder's own Playwright with the app's bundled Node, so nothing else needs to be installed. ",1),e(l)&&!e(l).exists?(r(),C(te,{key:0,color:"warning",variant:"soft",icon:"i-lucide-folder-x",title:"The linked folder no longer exists",description:e(l).path},null,8,["description"])):I("",!0),c(E,{icon:"i-lucide-folder-plus",loading:e(a),onClick:e(p)},{default:f(()=>[...s[9]||(s[9]=[b("Choose folder…",-1)])]),_:1},8,["loading","onClick"])]))])]),footer:f(()=>[d("div",lt,[e(Q)?(r(),C(ee,{key:0,color:e(Q).color,variant:"subtle"},{default:f(()=>[b($(e(Q).label),1)]),_:1},8,["color"])):(r(),h("span",ot)),d("div",at,[c(E,{color:"neutral",variant:"ghost",onClick:s[4]||(s[4]=y=>o.value=!1)},{default:f(()=>[...s[17]||(s[17]=[b("Close",-1)])]),_:1}),e(u)?(r(),C(E,{key:0,color:"error",icon:"i-lucide-square",onClick:s[5]||(s[5]=y=>e(N)())},{default:f(()=>[...s[18]||(s[18]=[b("Stop",-1)])]),_:1})):(r(),C(E,{key:1,icon:"i-lucide-play",disabled:!e(k)||e(K).length===0||e(a),onClick:s[6]||(s[6]=y=>pe())},{default:f(()=>[b($(e(i)==="idle"?"Run":"Run again"),1)]),_:1},8,["disabled"]))])])]),_:1},8,["open"])}}}),rt=Object.assign(it,{__name:"DesktopRunLocallyModal"}),ut={key:0,class:"inline-flex"},ct=D({__name:"DesktopRunLocallyButton",props:{projectId:{},projectLabel:{},cases:{}},setup(t){const n=t,o=x(!1);xe(()=>{o.value=!!O()});const l=x(!1),a=V(()=>o.value&&n.projectId!=null&&n.cases.length>0);return(p,i)=>{const u=ie,m=we,S=rt;return e(a)?(r(),h("span",ut,[c(m,{text:"Run these tests on this machine"},{default:f(()=>[c(u,{size:"xs",color:"warning",variant:"subtle",icon:"i-lucide-monitor-play",onClick:i[0]||(i[0]=j=>l.value=!0)},{default:f(()=>[...i[2]||(i[2]=[b(" Run locally ",-1)])]),_:1})]),_:1}),c(S,{open:e(l),"onUpdate:open":i[1]||(i[1]=j=>A(l)?l.value=j:null),"project-id":t.projectId,"project-label":t.projectLabel,cases:t.cases},null,8,["open","project-id","project-label","cases"])])):I("",!0)}}}),Lt=Object.assign(ct,{__name:"DesktopRunLocallyButton"}),dt=D({__name:"StatusChip",props:{status:{},size:{}},setup(t){return(n,o)=>{const l=J,a=ae;return r(),C(a,{color:("getStatusColor"in n?n.getStatusColor:e(Le))(t.status),size:t.size,variant:"subtle",class:"capitalize gap-1 items-center font-semibold shrink-0"},{default:f(()=>[c(l,{name:("getStatusIcon"in n?n.getStatusIcon:e(ze))(t.status),class:q(["size-3.5 shrink-0",{"animate-spin":("isStatusInFlight"in n?n.isStatusInFlight:e(Re))(t.status)}])},null,8,["name","class"]),b(" "+$(("formatStatusLabel"in n?n.formatStatusLabel:e(Pe))(t.status)),1)]),_:1},8,["color","size"])}}}),Rt=Object.assign(dt,{__name:"StatusChip"}),pt=["title"],mt=D({__name:"MetaStripGroup",props:{label:{},icon:{},help:{}},setup(t){return(n,o)=>{const l=J,a=Be;return r(),h("div",{class:"inline-flex items-center flex-wrap gap-x-1.5 gap-y-1 min-w-0 py-0.5 mr-3 [&:not(:first-child)]:border-l [&:not(:first-child)]:border-default [&:not(:first-child)]:pl-3",title:t.label},[t.icon?(r(),C(l,{key:0,name:t.icon,class:"w-3.5 h-3.5 text-dimmed shrink-0"},null,8,["name"])):I("",!0),G(n.$slots,"default"),t.help?(r(),C(a,{key:1,topic:t.help},null,8,["topic"])):I("",!0)],8,pt)}}}),zt=Object.assign(mt,{__name:"MetaStripGroup"}),ft={class:"flex flex-wrap items-center gap-y-1 text-sm min-w-0"},vt=D({__name:"SummaryMetaStrip",setup(t){return(n,o)=>(r(),h("div",ft,[G(n.$slots,"default")]))}}),Pt=Object.assign(vt,{__name:"SummaryMetaStrip"}),gt={class:"flex flex-col h-full gap-4 p-1 max-lg:overflow-y-auto lg:overflow-hidden"},_t={key:0,class:"lg:shrink-0"},ht={class:"lg:shrink-0 max-lg:sticky max-lg:top-0 max-lg:z-10 max-lg:-mx-1 max-lg:bg-(--ui-bg-canvas) max-lg:px-1 max-lg:py-1.5"},bt=D({__name:"DetailPageLayout",props:ue({tabItems:{},tabPanelClass:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const n=t,o=oe(t,"modelValue"),l=x(!1),a=V(()=>n.tabItems.find(i=>i.value===o.value)?.icon);function p(i){return["min-h-0","lg:flex-1",n.tabPanelClass?.[i]??"overflow-y-auto","max-lg:!block","max-lg:!overflow-visible"]}return(i,u)=>{const m=J,S=ce,j=Ee;return r(),h("div",gt,[i.$slots.summary?(r(),h("div",_t,[d("div",{class:q(e(l)?"max-lg:hidden":"")},[G(i.$slots,"summary")],2),d("button",{type:"button",class:"lg:hidden mt-2 w-full flex items-center justify-center gap-1 rounded-md border border-default py-1.5 text-xs font-medium text-muted hover:bg-elevated/60 transition-colors",onClick:u[0]||(u[0]=v=>l.value=!e(l))},[c(m,{name:e(l)?"i-lucide-chevron-down":"i-lucide-chevron-up",class:"size-3.5"},null,8,["name"]),b(" "+$(e(l)?"Show summary":"Hide summary"),1)])])):I("",!0),d("div",ht,[c(S,{modelValue:o.value,"onUpdate:modelValue":u[1]||(u[1]=v=>o.value=v),items:t.tabItems,icon:e(a),size:"md",class:"w-full sm:hidden"},null,8,["modelValue","items","icon"]),c(j,{modelValue:o.value,"onUpdate:modelValue":u[2]||(u[2]=v=>o.value=v),items:t.tabItems,size:"sm",class:"hidden sm:flex",ui:{list:"overflow-x-auto",trigger:"shrink-0"}},null,8,["modelValue","items"])]),(r(!0),h(F,null,re(t.tabItems,v=>(r(),h(F,{key:v.value},[o.value===v.value?(r(),h("div",{key:0,class:q(p(v.value))},[G(i.$slots,`tab-${v.slot??v.value}`)],2)):I("",!0)],64))),128))])}}}),Bt=Object.assign(bt,{__name:"DetailPageLayout"});export{Rt as _,Pt as a,zt as b,Bt as c,Lt as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as W,o as r,f as m,x,k as e,g as u,V as M,p as v,v as s,h as o,m as y,K as L,l as D,j as C,c as _,t as p,i as E,F as N,y as k,r as U,_ as H}from"./h49q_GXF.js";import{H as w}from"./BjaRappk.js";import{a as G}from"./Cd8r0xk5.js";const B="https://piwitests.github.io";function X(t){return`${B}/${t.replace(/^\//,"")}`}const Y=W({__name:"DocLink",props:{to:{},noIcon:{type:Boolean}},setup(t){const a=t,h=o(()=>X(a.to));return(c,n)=>{const g=v,I=x;return r(),m(I,{to:e(h),target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-1 text-primary hover:underline"},{default:u(()=>[M(c.$slots,"default",{},()=>[n[0]||(n[0]=y("Learn more",-1))]),t.noIcon?s("",!0):(r(),m(g,{key:0,name:"i-lucide-external-link",class:"w-3.5 h-3.5 shrink-0"}))]),_:3},8,["to"])}}}),V=Object.assign(Y,{__name:"DocLink"}),P={PIWI_SITE_URL:{description:"Public base URL of the instance (e.g. https://piwi.example.com). Used to build links in emails.",category:"general",type:"url",example:"https://piwi.example.com",notes:"When unset, links in emails point to http://localhost:3000 and OAuth callback URLs are inferred from the request host — set it when running behind a reverse proxy."},PIWI_SECRET_KEY:{description:"Master key for AES-256-GCM encryption of secrets stored in the database (AI API keys, webhook/SCM secrets). Strongly recommended in production.",category:"general",secret:!0,example:"a 64-char random hex string",notes:"Falls back to an insecure built-in development key (with a startup warning in production). Generate one with `node -e \"console.log(require('node:crypto').randomBytes(32).toString('hex'))\"`."},PIWI_BUILD_DIR:{description:"Overrides the Nuxt build output directory. Used by the test harness to isolate parallel builds.",category:"build",runtimeOnly:!0,type:"path"},PIWI_BUILD_SHA:{description:"Commit SHA baked into the build for provenance. Shown on Settings → About. Set as a build-time arg.",category:"build",runtimeOnly:!0},PIWI_DESKTOP_TOKEN:{description:"Per-install access token the desktop (Tauri) app injects to gate its local server. Set automatically by the desktop shell — not user-configurable. Absent on the server build.",category:"desktop",secret:!0,runtimeOnly:!0,since:"0.16.0"},PIWI_DATABASE_PATH:{description:"Path to the SQLite database file (used when PIWI_DATABASE_URL is not set).",category:"database",type:"path",default:".data/piwi.db",relevantWhen:{PIWI_DATABASE_URL:""}},PIWI_DATABASE_URL:{description:"PostgreSQL connection string. When set, PostgreSQL is used instead of SQLite and migrations run automatically on startup.",category:"database",secret:!0,example:"postgres://piwi:piwi@db:5432/piwi",docs:"deployment#docker-compose-with-postgresql"},PIWI_RETENTION_DAYS:{description:"Days of test-run history the nightly retention sweep keeps. Unset or 0 disables automatic run pruning (the default — pruning is opt-in).",category:"database",type:"number",min:0,docs:"storage#data-retention"},PIWI_RETENTION_NOTIFICATION_DAYS:{description:"Days to keep sent/failed notification outbox rows before the nightly sweep prunes them (default 30; 0 keeps them forever).",category:"database",type:"number",default:"30",min:0},PIWI_RETENTION_DIAGNOSIS_VERSIONS:{description:"AI-diagnosis history versions kept per diagnosis by the nightly sweep (default 20; 0 disables capping).",category:"database",type:"number",default:"20",min:0},PIWI_STORAGE_TYPE:{description:'Storage backend for test artifacts (HTML reports, traces, attachments): "local" or "s3".',category:"storage",type:"enum",enum:["local","s3"],default:"local",notes:"Only the exact value `s3` selects S3; any other value falls back to local storage."},PIWI_STORAGE_PATH:{description:'Directory for local file storage (when PIWI_STORAGE_TYPE is "local").',category:"storage",type:"path",default:".data/storage",relevantWhen:{PIWI_STORAGE_TYPE:"local"}},PIWI_S3_BUCKET:{description:'S3 bucket name for artifact storage (when PIWI_STORAGE_TYPE is "s3").',category:"storage",relevantWhen:{PIWI_STORAGE_TYPE:"s3"},requiredWhen:{PIWI_STORAGE_TYPE:"s3"},docs:"storage#s3-compatible-storage"},PIWI_S3_REGION:{description:'S3 bucket region (when PIWI_STORAGE_TYPE is "s3").',category:"storage",example:"us-east-1",relevantWhen:{PIWI_STORAGE_TYPE:"s3"},requiredWhen:{PIWI_STORAGE_TYPE:"s3"}},PIWI_S3_ACCESS_KEY_ID:{description:"S3 access key id with write access to the bucket.",category:"storage",secret:!0,relevantWhen:{PIWI_STORAGE_TYPE:"s3"},requiredWhen:{PIWI_STORAGE_TYPE:"s3"}},PIWI_S3_SECRET_ACCESS_KEY:{description:"S3 secret access key.",category:"storage",secret:!0,relevantWhen:{PIWI_STORAGE_TYPE:"s3"},requiredWhen:{PIWI_STORAGE_TYPE:"s3"}},PIWI_S3_ENDPOINT:{description:"Custom endpoint for S3-compatible services (MinIO, R2, Spaces).",category:"storage",type:"url",example:"https://minio.example.com",relevantWhen:{PIWI_STORAGE_TYPE:"s3"}},PIWI_S3_FORCE_PATH_STYLE:{description:"Use path-style addressing (required by some S3-compatible services).",category:"storage",type:"boolean",relevantWhen:{PIWI_STORAGE_TYPE:"s3"},notes:"Defaults to on when a custom endpoint is set, off otherwise; only the exact value `false` turns it off explicitly."},PIWI_AUTH_ENABLED:{description:'Set to "true" to enable role-based access control and API keys. Off by default.',category:"auth",type:"boolean",default:"false"},PIWI_AUTH_SECRET:{description:"Secret used to sign/encrypt session cookies. Required when PIWI_AUTH_ENABLED is true.",category:"auth",secret:!0,relevantWhen:{PIWI_AUTH_ENABLED:"true"},requiredWhen:{PIWI_AUTH_ENABLED:"true"},notes:"The server refuses to start when auth is enabled and this is unset."},PIWI_OAUTH_GOOGLE_CLIENT_ID:{description:"Google OAuth client id (optional single sign-on).",category:"oauth",relevantWhen:{PIWI_AUTH_ENABLED:"true"},requiredWhen:{PIWI_OAUTH_GOOGLE_CLIENT_SECRET:"*"},docs:"authentication#oauth-google-github"},PIWI_OAUTH_GOOGLE_CLIENT_SECRET:{description:"Google OAuth client secret.",category:"oauth",secret:!0,relevantWhen:{PIWI_AUTH_ENABLED:"true"},requiredWhen:{PIWI_OAUTH_GOOGLE_CLIENT_ID:"*"}},PIWI_OAUTH_GITHUB_CLIENT_ID:{description:"GitHub OAuth client id (optional single sign-on).",category:"oauth",relevantWhen:{PIWI_AUTH_ENABLED:"true"},requiredWhen:{PIWI_OAUTH_GITHUB_CLIENT_SECRET:"*"},docs:"authentication#oauth-google-github"},PIWI_OAUTH_GITHUB_CLIENT_SECRET:{description:"GitHub OAuth client secret.",category:"oauth",secret:!0,relevantWhen:{PIWI_AUTH_ENABLED:"true"},requiredWhen:{PIWI_OAUTH_GITHUB_CLIENT_ID:"*"}},PIWI_OAUTH_ALLOWED_DOMAINS:{description:"Comma-separated verified email domains allowed to sign in via OAuth (all providers).",category:"oauth",type:"list",example:"example.com,corp.example.com",relevantWhen:{PIWI_AUTH_ENABLED:"true"},notes:"Only verified emails in these domains are accepted. Empty means no domain restriction."},PIWI_OAUTH_GITHUB_ALLOWED_ORGS:{description:"Comma-separated GitHub org logins a user must belong to (requests read:org scope).",category:"oauth",type:"list",relevantWhen:{PIWI_OAUTH_GITHUB_CLIENT_ID:"*"}},PIWI_AI_PROVIDER:{description:'AI provider for failure diagnosis: "anthropic" or "openai" (OpenAI-compatible).',category:"ai",type:"enum",enum:["anthropic","openai"]},PIWI_AI_API_KEY:{description:"API key for the diagnosis provider. Takes precedence over the DB-stored key.",category:"ai",secret:!0,relevantWhen:{PIWI_AI_PROVIDER:"*"},requiredWhen:{PIWI_AI_PROVIDER:"anthropic"},notes:"Optional for OpenAI-compatible providers that need no key (e.g. a local model)."},PIWI_AI_MODEL:{description:"Diagnosis model name (default: claude-opus-4-8 for Anthropic).",category:"ai",example:"claude-opus-4-8",relevantWhen:{PIWI_AI_PROVIDER:"*"},requiredWhen:{PIWI_AI_PROVIDER:"openai"}},PIWI_AI_BASE_URL:{description:"Base URL for OpenAI-compatible providers (e.g. http://localhost:11434/v1).",category:"ai",type:"url",example:"http://localhost:11434/v1",relevantWhen:{PIWI_AI_PROVIDER:"*"},requiredWhen:{PIWI_AI_PROVIDER:"openai"}},PIWI_AI_AUTO_DIAGNOSE:{description:'Set to "true" to auto-diagnose new failure clusters when a run finishes.',category:"ai",type:"boolean",default:"false",relevantWhen:{PIWI_AI_PROVIDER:"*"}},PIWI_AI_AUTO_DIAGNOSE_MAX:{description:"Max clusters auto-diagnosed per finished run (budget cap; default 3).",category:"ai",type:"number",default:"3",min:1,relevantWhen:{PIWI_AI_AUTO_DIAGNOSE:"true"}},PIWI_AI_RESEARCH_PROVIDER:{description:"Provider for the optional research (pre-analysis) stage. Falls back to PIWI_AI_PROVIDER.",category:"ai",type:"enum",enum:["anthropic","openai"],relevantWhen:{PIWI_AI_RESEARCH_MODEL:"*"}},PIWI_AI_RESEARCH_MODEL:{description:"Cheaper/faster model for the research stage. Empty disables the two-stage pipeline.",category:"ai",relevantWhen:{PIWI_AI_PROVIDER:"*"}},PIWI_AI_RESEARCH_BASE_URL:{description:"Base URL for the research-stage provider. Falls back to PIWI_AI_BASE_URL.",category:"ai",type:"url",relevantWhen:{PIWI_AI_RESEARCH_MODEL:"*"}},PIWI_AI_RESEARCH_API_KEY:{description:"API key for the research-stage provider. Falls back to PIWI_AI_API_KEY.",category:"ai",secret:!0,relevantWhen:{PIWI_AI_RESEARCH_MODEL:"*"}},PIWI_AI_EMBEDDING_PROVIDER:{description:"Provider for embeddings (semantic failure clustering). Falls back to PIWI_AI_PROVIDER.",category:"ai",type:"enum",enum:["openai"],relevantWhen:{PIWI_AI_EMBEDDING_MODEL:"*"},notes:'Must resolve to an OpenAI-compatible provider — Anthropic has no embeddings API — so the fallback only helps when the main provider is "openai".'},PIWI_AI_EMBEDDING_MODEL:{description:"Embedding model name (e.g. text-embedding-3-small).",category:"ai",example:"text-embedding-3-small",relevantWhen:{PIWI_AI_PROVIDER:"*"},notes:"Empty disables semantic clustering (and the embedding fallbacks)."},PIWI_AI_EMBEDDING_BASE_URL:{description:"Base URL for the embedding provider. Falls back to PIWI_AI_BASE_URL.",category:"ai",type:"url",relevantWhen:{PIWI_AI_EMBEDDING_MODEL:"*"}},PIWI_AI_EMBEDDING_API_KEY:{description:"API key for the embedding provider. Falls back to PIWI_AI_API_KEY.",category:"ai",secret:!0,relevantWhen:{PIWI_AI_EMBEDDING_MODEL:"*"}},PIWI_AI_MAX_SAMPLE_ERROR_CHARS:{description:"Max characters of raw error text (per error block).",category:"ai-limits",type:"number",default:"10000",min:200,max:5e4},PIWI_AI_MAX_SCM_PATCH_BUDGET:{description:"Total characters of diff patches across changed files.",category:"ai-limits",type:"number",default:"15000",min:0,max:5e4},PIWI_AI_MAX_AFFECTED_TESTS:{description:"Max affected tests listed in the diagnosis context.",category:"ai-limits",type:"number",default:"30",min:1,max:200},PIWI_AI_MAX_STEPS:{description:"Max recent test steps included.",category:"ai-limits",type:"number",default:"50",min:1,max:200},PIWI_AI_MAX_CONSOLE_ENTRIES:{description:"Max console error/warning entries included.",category:"ai-limits",type:"number",default:"30",min:0,max:200},PIWI_AI_MAX_CONSOLE_ENTRY_CHARS:{description:"Max characters per console entry.",category:"ai-limits",type:"number",default:"1000",min:50,max:5e3},PIWI_AI_MAX_NETWORK_REQUESTS:{description:"Max failed network requests included.",category:"ai-limits",type:"number",default:"25",min:0,max:200},PIWI_AI_MAX_ARIA_SNAPSHOT_CHARS:{description:"Max characters of the page ARIA snapshot.",category:"ai-limits",type:"number",default:"12000",min:0,max:5e4},PIWI_AI_MAX_TEST_SOURCE_CHARS:{description:"Max characters of the test source snippet.",category:"ai-limits",type:"number",default:"8000",min:0,max:5e4},PIWI_AI_MAX_SOURCE_FILES:{description:"Max full source files fetched from SCM to ground patches (0 disables).",category:"ai-limits",type:"number",default:"4",min:0,max:20},PIWI_AI_MAX_SOURCE_FILE_CHARS:{description:"Max characters per fetched full source file.",category:"ai-limits",type:"number",default:"12000",min:0,max:5e4},PIWI_AI_MAX_SERVER_LOG_ENTRIES:{description:"Max backend server log entries (from X-Piwi-Logs header) included.",category:"ai-limits",type:"number",default:"50",min:0,max:200},PIWI_AI_MAX_SERVER_LOG_ENTRY_CHARS:{description:"Max characters per backend server log entry.",category:"ai-limits",type:"number",default:"1000",min:50,max:5e3},PIWI_AI_MAX_SERVER_TRACE_SPANS:{description:"Max backend server spans (from X-Piwi-Trace header) included in AI diagnosis (0 disables).",category:"ai-limits",type:"number",default:"40",min:0,max:500,since:"0.16.0"},PIWI_AI_MAX_IMAGES:{description:"Max screenshots auto-included in the diagnosis context.",category:"ai-limits",type:"number",default:"5",min:0,max:20},PIWI_AI_MAX_PASSED_PEERS:{description:"Max peer tests in the same file listed when they passed.",category:"ai-limits",type:"number",default:"20",min:0,max:100},PIWI_AI_MAX_CONSOLE_WINDOW:{description:"Max console entries of any type in the window before failure.",category:"ai-limits",type:"number",default:"50",min:0,max:200},PIWI_AI_SLOW_REQUEST_MS:{description:"Network request duration (ms) threshold for flagging as slow.",category:"ai-limits",type:"number",default:"1500",min:100,max:3e4},PIWI_AI_MAX_TRACE_ACTIONS:{description:"Max actions extracted from trace ZIP for failing-action context (0 disables).",category:"ai-limits",type:"number",default:"10",min:0,max:50},PIWI_AI_TRACE_DOM_CHARS:{description:"Max characters for the trace-derived DOM/ARIA excerpt in failing-action context.",category:"ai-limits",type:"number",default:"6000",min:0,max:2e4},PIWI_AI_MAX_TRACE_STACK_FRAMES:{description:"Max call-stack frames (with source windows) from the trace call-stack section (0 disables).",category:"ai-limits",type:"number",default:"10",min:0,max:50},PIWI_AI_MAX_TRACE_NETWORK_REQUESTS:{description:"Max requests included from the trace network stream (0 disables).",category:"ai-limits",type:"number",default:"20",min:0,max:200},PIWI_AI_MAX_DOM_SNAPSHOT_CHARS:{description:"Max characters of the failure-time DOM snapshot rendered from the trace (0 disables).",category:"ai-limits",type:"number",default:"8000",min:0,max:5e4},PIWI_AI_IMAGE_MAX_EDGE:{description:"Screenshots are downscaled to at most this many pixels on the long edge before being sent.",category:"ai-limits",type:"number",default:"1920",min:512,max:8192},PIWI_INGEST_MAX_CONSOLE_ENTRIES:{description:"Max console entries stored per test execution.",category:"ingest",type:"number",default:"200",min:10,max:5e3},PIWI_IMPORT_MAX_BYTES:{description:"Max size of a single multipart upload (report upload or blob-report import), in bytes. Lower it to match a reverse proxy that rejects large bodies, so the import page rejects an oversized archive before uploading it.",category:"ingest",type:"number",default:String(500*1024*1024),min:1024*1024,max:5*1024*1024*1024,since:"0.19.0"},PIWI_EXPORT_MAX_INLINE_BYTES:{description:"Max size of a single evidence file embedded as a data: URI in an HTML export, in bytes. Larger files are left out of the single-file HTML (and listed as omitted); the ZIP export still carries them at full size.",category:"export",type:"number",default:String(8*1024*1024),min:64*1024,max:512*1024*1024,since:"0.19.0"},PIWI_EXPORT_MAX_BYTES:{description:"Max total size of one export, in bytes. Evidence is added largest-last until the budget is reached; the rest is listed as omitted. The archive is built in memory, so this also bounds what a single export costs the server.",category:"export",type:"number",default:String(500*1024*1024),min:1024*1024,max:4*1024*1024*1024,since:"0.19.0"},PIWI_EXPORT_MAX_CASES:{description:"Max member executions carrying full evidence in a failure-cluster export. Remaining affected tests are listed by name without their evidence.",category:"export",type:"number",default:"25",min:1,max:200,since:"0.19.0"},PIWI_INGEST_MAX_CONSOLE_ENTRY_CHARS:{description:"Max characters stored per console entry.",category:"ingest",type:"number",default:"2000",min:200,max:2e4},PIWI_INGEST_MAX_STEPS:{description:"Max test steps stored per execution.",category:"ingest",type:"number",default:"500",min:20,max:5e3},PIWI_INGEST_MAX_STEP_EVENTS:{description:"Max step events stored per execution.",category:"ingest",type:"number",default:"1000",min:20,max:1e4},PIWI_INGEST_MAX_ARIA_CHARS:{description:"Max characters of the ARIA snapshot stored per failing execution.",category:"ingest",type:"number",default:"100000",min:1e3,max:1e6},PIWI_INGEST_MAX_ERROR_CHARS:{description:"Max characters of error text stored per execution (head and tail are kept).",category:"ingest",type:"number",default:"20000",min:1e3,max:1e5},PIWI_INGEST_MAX_SAMPLE_ERROR_CHARS:{description:"Max characters of the sample error stored per failure cluster.",category:"ingest",type:"number",default:"50000",min:1e3,max:2e5},PIWI_INGEST_MAX_TEST_SOURCE_CHARS:{description:"Max characters of the test source snippet stored per failing execution.",category:"ingest",type:"number",default:"50000",min:1e3,max:2e5},PIWI_INGEST_MAX_SOURCE_FRAMES:{description:"Max source stack frames stored per failing execution.",category:"ingest",type:"number",default:"8",min:1,max:32},PIWI_INGEST_MAX_SOURCE_FRAME_CHARS:{description:"Max characters per stored source frame snippet.",category:"ingest",type:"number",default:"4000",min:500,max:2e4},PIWI_AUTO_MARKERS:{description:"Automatically create a timeline marker when a run’s environment, Playwright version, or reporter version changes from the previous run (default: enabled). Set to false to disable.",category:"markers",type:"boolean",default:"true",docs:"timeline-markers",notes:"Only the exact value `false` disables auto-markers."},PIWI_TEST_LOGS_DISABLED:{description:"Disable X-Piwi-Logs response header emission (default: auto-disabled in production, enabled in development).",category:"testing",type:"boolean",docs:"backend-logs",notes:"Unset: capture is on in development and off in production builds; `true` forces it off everywhere, `false` forces it on even in production."},PIWI_CLUSTER_SIMILARITY_THRESHOLD:{description:"Cosine similarity (0–1) above which two failure embeddings merge into one cluster.",category:"clustering",type:"number",default:"0.92",min:0,max:1,relevantWhen:{PIWI_AI_EMBEDDING_MODEL:"*"},notes:"Must be greater than 0 and at most 1; invalid values fall back to the default."},PIWI_CLUSTER_SUGGEST_THRESHOLD:{description:"Similarity at which a failure is suggested (not auto-merged) as related to a cluster.",category:"clustering",type:"number",default:"0.80",min:0,max:1,relevantWhen:{PIWI_AI_EMBEDDING_MODEL:"*"},notes:"Capped at the merge threshold."},PIWI_SMTP_HOST:{description:"SMTP server hostname for outbound email.",category:"smtp",example:"smtp.example.com"},PIWI_SMTP_PORT:{description:"SMTP port (default 587; 465 for implicit TLS).",category:"smtp",type:"number",default:"587",min:1,max:65535,relevantWhen:{PIWI_SMTP_HOST:"*"}},PIWI_SMTP_USER:{description:"SMTP username.",category:"smtp",relevantWhen:{PIWI_SMTP_HOST:"*"},requiredWhen:{PIWI_SMTP_HOST:"*"}},PIWI_SMTP_PASS:{description:"SMTP password. Never returned by the API.",category:"smtp",secret:!0,relevantWhen:{PIWI_SMTP_HOST:"*"},requiredWhen:{PIWI_SMTP_HOST:"*"}},PIWI_SMTP_FROM:{description:"From address for outbound email (e.g. noreply@example.com).",category:"smtp",example:"noreply@example.com",relevantWhen:{PIWI_SMTP_HOST:"*"},requiredWhen:{PIWI_SMTP_HOST:"*"}},PIWI_SMTP_FROM_NAME:{description:"Display name for the from address (optional).",category:"smtp",default:"Piwi Dashboard",relevantWhen:{PIWI_SMTP_HOST:"*"}},PIWI_SMTP_SECURE:{description:'Set to "true" for implicit TLS on port 465 (default false → STARTTLS/plain).',category:"smtp",type:"boolean",relevantWhen:{PIWI_SMTP_HOST:"*"},notes:"Defaults to on when the port is 465, off otherwise."},PIWI_WASTED_WAIT_PATTERNS:{description:"Glob patterns (comma or newline separated) defining which wait steps count as wasted time. Locks the UI when set.",category:"wasted-time",type:"list",default:"Wait for timeout*,*waitForTimeout*",notes:"Case-insensitive globs (`*` and `?`) matched against a wait step’s title or source location. Use `*` to count every wait."},PIWI_DEMO_MODE:{description:'Set to "true" to build the standalone client-side demo SPA (no server).',category:"demo",runtimeOnly:!0,type:"boolean"},PIWI_BASE_URL:{description:"Base URL the metadata test spec targets (defaults to http://localhost:3000).",category:"test",runtimeOnly:!0},PIWI_POSTGRES_TEST_URL:{description:"PostgreSQL connection string used by the Postgres test suite.",category:"test",runtimeOnly:!0,secret:!0},PIWI_S3_TEST_BUCKET:{description:"S3 bucket for the storage integration tests.",category:"test",runtimeOnly:!0},PIWI_S3_TEST_REGION:{description:"Region for the S3 storage integration tests.",category:"test",runtimeOnly:!0},PIWI_S3_TEST_ACCESS_KEY_ID:{description:"Access key id for the S3 storage integration tests.",category:"test",runtimeOnly:!0,secret:!0},PIWI_S3_TEST_SECRET_ACCESS_KEY:{description:"Secret access key for the S3 storage integration tests.",category:"test",runtimeOnly:!0,secret:!0},PIWI_S3_TEST_ENDPOINT:{description:"Custom endpoint for the S3 storage integration tests.",category:"test",runtimeOnly:!0},PIWI_MAILPIT_URL:{description:"Mailpit base URL; when set, the email/notification E2E tests run against it.",category:"test",runtimeOnly:!0},PIWI_MAILPIT_SMTP_PORT:{description:"SMTP port the email E2E tests send to (Mailpit).",category:"test",runtimeOnly:!0},PIWI_EMAIL_SERVER_URL:{description:"Base URL the email test spec targets.",category:"test",runtimeOnly:!0},PIWI_TEST_CLEANUP_ENABLED:{description:"Allow the E2E cleanup endpoint (`DELETE /api/tests/cleanup`) on a production build, which CI needs because it runs the suite against one. Never set it on a real deployment.",category:"test",runtimeOnly:!0,type:"boolean",since:"0.19.0"}};function T(t){return P[t]}function ne(t){return Object.keys(P).filter(a=>P[a].category===t)}const q={key:0,class:"font-medium mb-1"},F={class:"text-muted"},K={key:1,class:"mt-2 space-y-1"},$={class:"text-muted text-xs"},z={class:"flex flex-col gap-1.5"},Q=["title","onClick"],j={class:"block font-mono text-xs bg-elevated rounded px-1.5 py-0.5 select-all cursor-pointer group-hover:ring-1 ring-default"},Z={key:0,class:"block text-muted text-[11px] mt-0.5"},J={key:2,class:"mt-2 flex flex-col gap-1"},ee=W({__name:"HelpHint",props:{topic:{},title:{},text:{},doc:{},envVars:{},size:{}},setup(t){const a=t,{copy:h}=G(),c=o(()=>a.topic?w[a.topic]:null),n=o(()=>a.title??c.value?.title),g=o(()=>a.text??c.value?.text??""),I=o(()=>a.doc??c.value?.doc),d=o(()=>a.envVars??c.value?.envVars),A=U(!1),S=o(()=>n.value?`Help: ${n.value}`:"Help"),b=o(()=>({side:"bottom","aria-label":S.value}));return(te,l)=>{const R=H,f=V,O=L;return r(),m(O,{open:e(A),"onUpdate:open":l[0]||(l[0]=i=>D(A)?A.value=i:null),content:e(b),ui:{content:"max-w-xs p-3 text-sm"}},{content:u(()=>[e(n)?(r(),_("p",q,p(e(n)),1)):s("",!0),E("p",F,p(e(g)),1),e(d)?.length?(r(),_("div",K,[E("p",$,"Environment variable"+p(e(d).length>1?"s":"")+":",1),E("div",z,[(r(!0),_(N,null,k(e(d),i=>(r(),_("button",{key:i,type:"button",class:"group text-left",title:`Click to copy ${i}`,onClick:re=>e(h)(i,{toast:`Copied ${i}`})},[E("code",j,p(i),1),e(T)(i).description?(r(),_("span",Z,p(e(T)(i).description),1)):s("",!0)],8,Q))),128))])])):s("",!0),e(I)||e(d)?.length?(r(),_("div",J,[e(I)?(r(),m(f,{key:0,to:e(I)},{default:u(()=>[...l[1]||(l[1]=[y("Learn more",-1)])]),_:1},8,["to"])):s("",!0),e(d)?.length?(r(),m(f,{key:1,to:"configuration"},{default:u(()=>[...l[2]||(l[2]=[y("Configuration reference",-1)])]),_:1})):s("",!0)])):s("",!0)]),default:u(()=>[C(R,{size:t.size??"xs",variant:"ghost",color:"neutral",icon:"i-lucide-circle-help","aria-label":e(S),title:"What is this?",class:"text-muted hover:text-default align-middle"},null,8,["size","aria-label"])]),_:1},8,["open","content"])}}}),se=Object.assign(ee,{__name:"HelpHint"});export{se as _,V as a,X as d,ne as e,T as g};
|