@piwitests/server 0.15.0 → 0.17.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/{DCCMLWel.js → -9tk1FrT.js} +1 -1
- package/.output/public/_nuxt/26ll_vBr.js +1 -0
- package/.output/public/_nuxt/{BpepjHwc.js → 3QTorEhJ.js} +1 -1
- package/.output/public/_nuxt/{DKTDub7I.js → 3QTvYrZp.js} +1 -1
- package/.output/public/_nuxt/{CHSkT2s0.js → 73aPL7Ir.js} +1 -1
- package/.output/public/_nuxt/8jZmK2De.js +4 -0
- package/.output/public/_nuxt/8xyZSRSO.js +1 -0
- package/.output/public/_nuxt/{V1BQiRoh.js → 99tAfVF5.js} +1 -1
- package/.output/public/_nuxt/{BY0AkhJh.js → B1CUXGbl.js} +1 -1
- package/.output/public/_nuxt/B6hPf4UR.js +1 -0
- package/.output/public/_nuxt/{F07TcX0U.js → B6w76fJT.js} +1 -1
- package/.output/public/_nuxt/{B32-7cBF.js → BDcIWTTq.js} +1 -1
- package/.output/public/_nuxt/{OG2n3p77.js → BE8ykmwr.js} +1 -1
- package/.output/public/_nuxt/{rvaZFYoE.js → BEsJE07U.js} +1 -1
- package/.output/public/_nuxt/{DQpa8F03.js → BGZQONfm.js} +1 -1
- package/.output/public/_nuxt/{DZoSxwj6.js → BRdhP5lm.js} +1 -1
- package/.output/public/_nuxt/{n7Htv9PJ.js → BU6xjw05.js} +1 -1
- package/.output/public/_nuxt/{DvdOsTLb.js → BWFY2RuU.js} +1 -1
- package/.output/public/_nuxt/{60-Zii7v.js → B_QIrc7l.js} +1 -1
- package/.output/public/_nuxt/{CrFCPOnY.js → Ba4_ydKG.js} +1 -1
- package/.output/public/_nuxt/{BfshMo9k.js → BcLXUmKT.js} +2 -2
- package/.output/public/_nuxt/{CD-xwM9N.js → BciovqwK.js} +1 -1
- package/.output/public/_nuxt/{i38YGG9S.js → BgDEjrcz.js} +1 -1
- package/.output/public/_nuxt/{rWwWS3Kj.js → BoRJdCd4.js} +1 -1
- package/.output/public/_nuxt/{O1A-LRgV.js → Bpha13F_.js} +1 -1
- package/.output/public/_nuxt/{2PU-adwy.js → Bq0PQfQY.js} +1 -1
- package/.output/public/_nuxt/{B8fs6GU9.js → BrT_Sys2.js} +31 -31
- package/.output/public/_nuxt/{ETOCcsVw.js → Bua_L6p4.js} +1 -1
- package/.output/public/_nuxt/{nUsJV5qo.js → BwKwWgQe.js} +1 -1
- package/.output/public/_nuxt/{4fB15L_7.js → BxRsAYRS.js} +1 -1
- package/.output/public/_nuxt/{DVdOm5Bg.js → ByoIgYX_.js} +1 -1
- package/.output/public/_nuxt/{Bq2ZPvIH.js → C7nwFokE.js} +1 -1
- package/.output/public/_nuxt/CEuVRSr0.js +3 -0
- package/.output/public/_nuxt/{CokbKVE6.js → CHHqhAsw.js} +1 -1
- package/.output/public/_nuxt/{BBJ9Pu3M.js → CHIbdzqp.js} +1 -1
- package/.output/public/_nuxt/{C9jjVEQU.js → CMB-NkFa.js} +1 -1
- package/.output/public/_nuxt/{CU-OXXdh.js → CNULGfLp.js} +1 -1
- package/.output/public/_nuxt/{Surk4Lw-.js → COVRAesU.js} +1 -1
- package/.output/public/_nuxt/{h-e-Ca3f.js → CSAmL8XJ.js} +1 -1
- package/.output/public/_nuxt/{CHgsEM4U.js → CWmQcueG.js} +1 -1
- package/.output/public/_nuxt/{BgR7oL4p.js → CYuWAvXE.js} +1 -1
- package/.output/public/_nuxt/CbuWynGG.js +1 -0
- package/.output/public/_nuxt/{CIOQo6gB.js → Ce3tBrN7.js} +1 -1
- package/.output/public/_nuxt/{DNP5tTJo.js → Cf4h8qty.js} +1 -1
- package/.output/public/_nuxt/{B9Q_4Mjt.js → Cl96oI21.js} +1 -1
- package/.output/public/_nuxt/{PPFO8UVt.js → ClJkng9p.js} +1 -1
- package/.output/public/_nuxt/{B32ySRXg.js → CoKEjZX7.js} +1 -1
- package/.output/public/_nuxt/CvtYJHkY.js +1 -0
- package/.output/public/_nuxt/{BCK4f6Y3.js → CxLN5Tmq.js} +1 -1
- package/.output/public/_nuxt/{ChWPXucC.js → Cz2HhsB6.js} +1 -1
- package/.output/public/_nuxt/{B_80i5Ge.js → D0-HTQTD.js} +1 -1
- package/.output/public/_nuxt/{CHMpVLqo.js → D13ybpY3.js} +1 -1
- package/.output/public/_nuxt/{CvCF77E-.js → D7P0ML0H.js} +2 -2
- package/.output/public/_nuxt/{BW1UOxWn.js → D811X8KM.js} +1 -1
- package/.output/public/_nuxt/DATh_1DQ.js +1 -0
- package/.output/public/_nuxt/{BEKwVcvQ.js → DAeYmPfX.js} +1 -1
- package/.output/public/_nuxt/DCffDvxl.js +1 -0
- package/.output/public/_nuxt/DDPptydi.js +2 -0
- package/.output/public/_nuxt/{DkFbpSsi.js → DFM2jv9I.js} +1 -1
- package/.output/public/_nuxt/{D4nLD93c.js → DJHNEqb7.js} +1 -1
- package/.output/public/_nuxt/{DaKVSp-6.js → DPSOtRoz.js} +1 -1
- package/.output/public/_nuxt/{DYDGGqZ3.js → DRTxhZBV.js} +1 -1
- package/.output/public/_nuxt/{Cgr8IKY4.js → DS9yGVFL.js} +1 -1
- package/.output/public/_nuxt/{Cfk2_UCm.js → DT5rhzhJ.js} +1 -1
- package/.output/public/_nuxt/{DFw8I2FL.js → DTH2lteW.js} +1 -1
- package/.output/public/_nuxt/DUe6xuKQ.js +1 -0
- package/.output/public/_nuxt/D_A6axXa.js +1 -0
- package/.output/public/_nuxt/D_TbJDHY.js +1 -0
- package/.output/public/_nuxt/{B59-l1Cv.js → Df3QtbpW.js} +1 -1
- package/.output/public/_nuxt/{BkhdAGx0.js → DjRhouSr.js} +1 -1
- package/.output/public/_nuxt/Dn6cGVYB.js +1 -0
- package/.output/public/_nuxt/{0KrkW531.js → DpJrGwCr.js} +2 -2
- package/.output/public/_nuxt/DqsMiUoW.js +2 -0
- package/.output/public/_nuxt/{C7RarFGi.js → Ds2Y3oms.js} +1 -1
- package/.output/public/_nuxt/Ds4Lb1vi.js +7 -0
- package/.output/public/_nuxt/{DWzdeQ3Z.js → DtXREpk_.js} +1 -1
- package/.output/public/_nuxt/{Dejf0f7D.js → DvC5Adg1.js} +3 -3
- package/.output/public/_nuxt/{o5WQ5Z7k.js → DvXvJzFP.js} +1 -1
- package/.output/public/_nuxt/{DAeYEeCC.js → Dvc1aWpA.js} +1 -1
- package/.output/public/_nuxt/{DzbOHjZH.js → DwZiG9xH.js} +1 -1
- package/.output/public/_nuxt/Dx1oCMgy.js +47 -0
- package/.output/public/_nuxt/{BGsuOpiq.js → DxQq_L07.js} +1 -1
- package/.output/public/_nuxt/{CqA3gM8h.js → Dym66h3p.js} +1 -1
- package/.output/public/_nuxt/{CNzoIhwN.js → Dz3Wbekz.js} +1 -1
- package/.output/public/_nuxt/HCK35QD8.js +1 -0
- package/.output/public/_nuxt/{Cpquifvd.js → L6HlmmEa.js} +1 -1
- package/.output/public/_nuxt/{BMQIO38j.js → PxPbRVF-.js} +1 -1
- package/.output/public/_nuxt/{DiUGa0CT.js → QFMx1VKs.js} +1 -1
- package/.output/public/_nuxt/{DHVmXA9K.js → Sgf5OLhm.js} +1 -1
- package/.output/public/_nuxt/US3YSX4T.js +1 -0
- package/.output/public/_nuxt/{DZLrAp2i.js → Wfk1m0ni.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/05a2dd95-d1c1-4e3a-8625-ac6bfea83837.json +1 -0
- package/.output/public/_nuxt/{too3WhRB.js → cBj9fai9.js} +1 -1
- package/.output/public/_nuxt/{DxXZN6ed.js → csqspBeX.js} +1 -1
- package/.output/public/_nuxt/entry.BaIGwMjT.css +1 -0
- package/.output/public/_nuxt/{__m3KqHO.js → jlBi8Byu.js} +1 -1
- package/.output/public/_nuxt/{Dv2B_nw_.js → lCkcEykv.js} +1 -1
- package/.output/public/_nuxt/qYFZH4Z8.js +34 -0
- package/.output/public/_nuxt/{3SnTawZW.js → r3SBLxtE.js} +1 -1
- package/.output/public/_nuxt/{DI_-kFec.js → r9WApUfF.js} +1 -1
- package/.output/public/_nuxt/{BC_Wu-fv.js → rw7Hdll3.js} +1 -1
- package/.output/public/_nuxt/{IdQR_Djw.js → sMFaPAAR.js} +1 -1
- package/.output/public/_nuxt/{CKZn0TUX.js → vzXhOO8R.js} +1 -1
- package/.output/public/_nuxt/{CFn3w5jn.js → yZ4LuI9d.js} +1 -1
- package/.output/public/_nuxt/{BtJkQ3to.js → z7PmsnBG.js} +1 -1
- package/.output/public/_nuxt/{lRMjXqiA.js → za5M7BGh.js} +1 -1
- package/.output/public/demo/seed.version.json +2 -2
- package/.output/public/sw.js +1 -1
- package/.output/server/chunks/_/markers.mjs +1 -1
- package/.output/server/chunks/_/users.mjs +1 -1
- package/.output/server/chunks/build/{BrowserBadge-BTA4QU_J.mjs → BrowserBadge-DNCp9pF-.mjs} +3 -3
- package/.output/server/chunks/build/BrowserBadge-DNCp9pF-.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartCard-BqAhMip2.mjs → ChartCard-Fr557IbV.mjs} +2 -2
- package/.output/server/chunks/build/ChartCard-Fr557IbV.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-_1nGm_DR.mjs → Checkbox-cVOSIY93.mjs} +6 -6
- package/.output/server/chunks/build/Checkbox-cVOSIY93.mjs.map +1 -0
- package/.output/server/chunks/build/{CiEnvCard-DAufYuJw.mjs → CiEnvCard-DXPOhdSG.mjs} +5 -5
- package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs.map +1 -0
- package/.output/server/chunks/build/{CodeBlock-BVKHuYjU.mjs → CodeBlock-BGwNmJ8J.mjs} +2 -2
- package/.output/server/chunks/build/CodeBlock-BGwNmJ8J.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardNavbar-BR6j4VLd.mjs → DashboardNavbar-Bdp-OwTN.mjs} +2 -2
- package/.output/server/chunks/build/DashboardNavbar-Bdp-OwTN.mjs.map +1 -0
- package/.output/server/chunks/build/DashboardSidebarToggle-Ji6ADuqF.mjs +1 -1
- package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs +102 -0
- package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs.map +1 -0
- package/.output/server/chunks/build/DesktopMcpCard-B4JuUTKj.mjs +122 -0
- package/.output/server/chunks/build/DesktopMcpCard-B4JuUTKj.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisPanel-BnrdXDvd.mjs → DiagnosisPanel-DV1xwGu4.mjs} +6 -6
- package/.output/server/chunks/build/DiagnosisPanel-DV1xwGu4.mjs.map +1 -0
- package/.output/server/chunks/build/EntityLinks-DeOP13Kr.mjs +1 -1
- package/.output/server/chunks/build/{EnvManagedBadge-DdnEtjIl.mjs → EnvManagedBadge-Qpn58Nmr.mjs} +5 -5
- package/.output/server/chunks/build/EnvManagedBadge-Qpn58Nmr.mjs.map +1 -0
- package/.output/server/chunks/build/{HelpHint-D_GJzMpW.mjs → HelpHint-YEMWtKu1.mjs} +18 -2
- package/.output/server/chunks/build/HelpHint-YEMWtKu1.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-COIjm3js.mjs → Modal-CfA78Hm1.mjs} +2 -2
- package/.output/server/chunks/build/Modal-CfA78Hm1.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-D97W6On1.mjs → OpenInIdeLink-B92wosXu.mjs} +3 -3
- package/.output/server/chunks/build/{OpenInIdeLink-D97W6On1.mjs.map → OpenInIdeLink-B92wosXu.mjs.map} +1 -1
- package/.output/server/chunks/build/{PageStateCard-C1HFN4Nv.mjs → PageStateCard-Bwee6JTk.mjs} +10 -10
- package/.output/server/chunks/build/{PageStateCard-C1HFN4Nv.mjs.map → PageStateCard-Bwee6JTk.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-XFBPQGIX.mjs → ProjectTestCasesTable-9Ia825h8.mjs} +9 -9
- package/.output/server/chunks/build/ProjectTestCasesTable-9Ia825h8.mjs.map +1 -0
- package/.output/server/chunks/build/{RunReports-ChNkmuWa.mjs → RunReports-BpJqLHY9.mjs} +2 -2
- package/.output/server/chunks/build/RunReports-BpJqLHY9.mjs.map +1 -0
- package/.output/server/chunks/build/{RunStatusBadge-CXpuCUGQ.mjs → RunStatusBadge-BhmJ_RKM.mjs} +2 -2
- package/.output/server/chunks/build/RunStatusBadge-BhmJ_RKM.mjs.map +1 -0
- package/.output/server/chunks/build/{SectionCard-zs9FDzps.mjs → SectionCard-COd9TuDq.mjs} +2 -2
- package/.output/server/chunks/build/SectionCard-COd9TuDq.mjs.map +1 -0
- package/.output/server/chunks/build/{Select-r3S5nkSY.mjs → Select-ppPz926C.mjs} +5 -4
- package/.output/server/chunks/build/Select-ppPz926C.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-Dk6f8i9o.mjs → SelectMenu-799c_Ils.mjs} +4 -4
- package/.output/server/chunks/build/{SelectMenu-Dk6f8i9o.mjs.map → SelectMenu-799c_Ils.mjs.map} +1 -1
- package/.output/server/chunks/build/{Separator-pqpPG0up.mjs → Separator-CxZdx8kw.mjs} +2 -2
- package/.output/server/chunks/build/Separator-CxZdx8kw.mjs.map +1 -0
- package/.output/server/chunks/build/{SettingsField-Wdpzlt13.mjs → SettingsField-DDD4oqys.mjs} +5 -5
- package/.output/server/chunks/build/SettingsField-DDD4oqys.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-02XjJjn0.mjs → Slideover-B95Rj237.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-B95Rj237.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-gx_JXgCo.mjs → Switch-xQQ3_ME1.mjs} +3 -3
- package/.output/server/chunks/build/Switch-xQQ3_ME1.mjs.map +1 -0
- package/.output/server/chunks/build/{Table-C64RrBp3.mjs → Table-CPhhVzDv.mjs} +3 -3
- package/.output/server/chunks/build/Table-CPhhVzDv.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar--u4VX_Xf.mjs → TestStatusBar-CEzt76wk.mjs} +2 -2
- package/.output/server/chunks/build/TestStatusBar-CEzt76wk.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-ui_BVvqr.mjs → Tooltip-7vwuDPrZ.mjs} +3 -3
- package/.output/server/chunks/build/Tooltip-7vwuDPrZ.mjs.map +1 -0
- package/.output/server/chunks/build/{VisuallyHiddenInput-mMsqmkjz.mjs → VisuallyHiddenInput-C9eJVpPW.mjs} +2 -2
- package/.output/server/chunks/build/VisuallyHiddenInput-C9eJVpPW.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-R6KGfZOC.mjs → _id_-B2yirIuA.mjs} +259 -85
- package/.output/server/chunks/build/_id_-B2yirIuA.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CFVnSs8B.mjs → _id_-B4V5fop6.mjs} +21 -19
- package/.output/server/chunks/build/{_id_-CFVnSs8B.mjs.map → _id_-B4V5fop6.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-pkxJKe17.mjs → _id_-CE0Gso6i.mjs} +11 -11
- package/.output/server/chunks/build/_id_-CE0Gso6i.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-DXJQABO8.mjs → _id_-bWcP2xFl.mjs} +27 -26
- package/.output/server/chunks/build/{_id_-DXJQABO8.mjs.map → _id_-bWcP2xFl.mjs.map} +1 -1
- package/.output/server/chunks/build/about-TuEZ9n1Q.mjs +625 -0
- package/.output/server/chunks/build/about-TuEZ9n1Q.mjs.map +1 -0
- package/.output/server/chunks/build/{account-AbLuwiZP.mjs → account-Cn-eZqXM.mjs} +4 -4
- package/.output/server/chunks/build/account-Cn-eZqXM.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-DR_slopS.mjs → ai-7jdaPOmj.mjs} +19 -18
- package/.output/server/chunks/build/ai-7jdaPOmj.mjs.map +1 -0
- package/.output/server/chunks/build/{analytics-BbT2-Tr-.mjs → analytics-B276WPeU.mjs} +237 -65
- package/.output/server/chunks/build/analytics-B276WPeU.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{db.client-DlA_u5y9.mjs → db.client-aHcD0wyX.mjs} +47 -22
- package/.output/server/chunks/build/db.client-aHcD0wyX.mjs.map +1 -0
- package/.output/server/chunks/build/{default-D6diRCW0.mjs → default-BSzdkM_L.mjs} +20 -17
- package/.output/server/chunks/build/default-BSzdkM_L.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-DbYoZafk.mjs → docs-EXhN3sqC.mjs} +7 -6
- package/.output/server/chunks/build/{docs-DbYoZafk.mjs.map → docs-EXhN3sqC.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-CNV4xdYj.mjs → edit-C9Z7oZeu.mjs} +10 -9
- package/.output/server/chunks/build/edit-C9Z7oZeu.mjs.map +1 -0
- package/.output/server/chunks/build/fetch-8kznMtBM.mjs +1 -1
- package/.output/server/chunks/build/handleAndDispatchCustomEvent-Bk_AVSSo.mjs +13 -0
- package/.output/server/chunks/build/handleAndDispatchCustomEvent-Bk_AVSSo.mjs.map +1 -0
- package/.output/server/chunks/build/{help-content-BMumoQQF.mjs → help-content-DmFnuhNu.mjs} +6 -1
- package/.output/server/chunks/build/help-content-DmFnuhNu.mjs.map +1 -0
- package/.output/server/chunks/build/{index-C3Ou18qD.mjs → index-BK9PTRpd.mjs} +34 -18
- package/.output/server/chunks/build/{index-C3Ou18qD.mjs.map → index-BK9PTRpd.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-Dw526KXV.mjs → index-BR9hw6qk.mjs} +10 -10
- package/.output/server/chunks/build/index-BR9hw6qk.mjs.map +1 -0
- package/.output/server/chunks/build/{index-dwYB76GO.mjs → index-Ba-Fifra.mjs} +4 -4
- package/.output/server/chunks/build/index-Ba-Fifra.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DmHBPf7T.mjs → index-CULN3-en.mjs} +11 -2
- package/.output/server/chunks/build/index-CULN3-en.mjs.map +1 -0
- package/.output/server/chunks/build/{index-rSHkKNna.mjs → index-DVUtBexc.mjs} +507 -85
- package/.output/server/chunks/build/index-DVUtBexc.mjs.map +1 -0
- package/.output/server/chunks/build/{isValueEqualOrExist-DTJ5ejZs.mjs → isValueEqualOrExist-DBZjbD_3.mjs} +3 -3
- package/.output/server/chunks/build/isValueEqualOrExist-DBZjbD_3.mjs.map +1 -0
- package/.output/server/chunks/build/{login-Da5C8jP2.mjs → login-D2XZDuek.mjs} +3 -3
- package/.output/server/chunks/build/login-D2XZDuek.mjs.map +1 -0
- package/.output/server/chunks/build/{mcp-DM1t-9L_.mjs → mcp-CQ-21rwc.mjs} +138 -31
- package/.output/server/chunks/build/mcp-CQ-21rwc.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-BTPF0xA7.mjs → notifications-Dzm9c0u_.mjs} +13 -12
- package/.output/server/chunks/build/notifications-Dzm9c0u_.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +37 -28
- package/.output/server/chunks/build/{settings-metadata-CksLgMun.mjs → settings-metadata-B0wo5R-W.mjs} +14 -3
- package/.output/server/chunks/build/settings-metadata-B0wo5R-W.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-Bmw_JdBS.mjs → settings-pNyPBXVa.mjs} +9 -7
- package/.output/server/chunks/build/settings-pNyPBXVa.mjs.map +1 -0
- package/.output/server/chunks/build/{storage-BqR4acgi.mjs → storage-XelzuyPy.mjs} +23 -12
- package/.output/server/chunks/build/storage-XelzuyPy.mjs.map +1 -0
- package/.output/server/chunks/build/{tags-miPAzIr3.mjs → tags-DrCQ7QSw.mjs} +6 -6
- package/.output/server/chunks/build/tags-DrCQ7QSw.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-D-LqhLpk.mjs → test-cases-pmOxi-AN.mjs} +16 -15
- package/.output/server/chunks/build/test-cases-pmOxi-AN.mjs.map +1 -0
- package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs +318 -0
- package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs.map +1 -0
- package/.output/server/chunks/build/{useAiStatus-FwqbA4gz.mjs → useAiStatus-ZO987RY7.mjs} +8 -7
- package/.output/server/chunks/build/useAiStatus-ZO987RY7.mjs.map +1 -0
- package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs +9 -0
- package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs.map +1 -0
- package/.output/server/chunks/build/useIsDesktop-BS13spVj.mjs +9 -0
- package/.output/server/chunks/build/useIsDesktop-BS13spVj.mjs.map +1 -0
- package/.output/server/chunks/build/{useSettingsNav-v_dFuTw9.mjs → useSettingsNav-NjI2seBy.mjs} +9 -7
- package/.output/server/chunks/build/useSettingsNav-NjI2seBy.mjs.map +1 -0
- package/.output/server/chunks/build/{users-D-GDKZmZ.mjs → users-NmAUZs3i.mjs} +6 -6
- package/.output/server/chunks/build/users-NmAUZs3i.mjs.map +1 -0
- package/.output/server/chunks/build/{virtualizer-BcC1XuFf.mjs → virtualizer-ZaqK4guJ.mjs} +6 -5
- package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs.map +1 -0
- package/.output/server/chunks/build/{wasted-time-CFmeT_e2.mjs → wasted-time-CguAF9zc.mjs} +8 -8
- package/.output/server/chunks/build/wasted-time-CguAF9zc.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +1009 -722
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs +51 -0
- package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/admin/stats.get.mjs +5 -1
- package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +75 -6
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +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/reporter-config.get.mjs +45 -0
- package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.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/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/slow-tests.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +50 -0
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -0
- 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/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 +40 -0
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +46 -0
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
- package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/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/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/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/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/0037_tired_hellion.sql +1 -0
- package/.output/server/database/migrations/0038_glamorous_ulik.sql +1 -0
- package/.output/server/database/migrations/meta/0037_snapshot.json +3384 -0
- package/.output/server/database/migrations/meta/0038_snapshot.json +3391 -0
- package/.output/server/database/migrations/meta/_journal.json +14 -0
- package/.output/server/database/migrations-pg/0038_tranquil_moira_mactaggert.sql +1 -0
- package/.output/server/database/migrations-pg/0039_fat_starjammers.sql +1 -0
- package/.output/server/database/migrations-pg/meta/0038_snapshot.json +4027 -0
- package/.output/server/database/migrations-pg/meta/0039_snapshot.json +4033 -0
- package/.output/server/database/migrations-pg/meta/_journal.json +14 -0
- package/.output/server/index.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/2kfkdDTz.js +0 -1
- package/.output/public/_nuxt/BXEDsEwG.js +0 -1
- package/.output/public/_nuxt/BbgBGuMG.js +0 -1
- package/.output/public/_nuxt/CBrCcDzR.js +0 -1
- package/.output/public/_nuxt/CFXonrwQ.js +0 -3
- package/.output/public/_nuxt/CJGJI2Of.js +0 -34
- package/.output/public/_nuxt/Ce4EdfL_.js +0 -4
- package/.output/public/_nuxt/Cf3RuiXF.js +0 -46
- package/.output/public/_nuxt/CkpB9oBr.js +0 -1
- package/.output/public/_nuxt/D1tZEdSi.js +0 -1
- package/.output/public/_nuxt/DK9uMTYX.js +0 -1
- package/.output/public/_nuxt/DgZlpN9l.js +0 -1
- package/.output/public/_nuxt/DjCfCT_5.js +0 -1
- package/.output/public/_nuxt/YDWXnWou.js +0 -1
- package/.output/public/_nuxt/builds/meta/f549de31-8db6-4504-b526-482778a55eba.json +0 -1
- package/.output/public/_nuxt/entry.BxXHl1Vy.css +0 -1
- package/.output/public/_nuxt/evCxpgbd.js +0 -2
- package/.output/public/_nuxt/wCQds5_f.js +0 -1
- package/.output/server/chunks/build/BrowserBadge-BTA4QU_J.mjs.map +0 -1
- package/.output/server/chunks/build/ChartCard-BqAhMip2.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-_1nGm_DR.mjs.map +0 -1
- package/.output/server/chunks/build/CiEnvCard-DAufYuJw.mjs.map +0 -1
- package/.output/server/chunks/build/CodeBlock-BVKHuYjU.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardNavbar-BR6j4VLd.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-BnrdXDvd.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-DdnEtjIl.mjs.map +0 -1
- package/.output/server/chunks/build/HelpHint-D_GJzMpW.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-COIjm3js.mjs.map +0 -1
- package/.output/server/chunks/build/ProjectTestCasesTable-XFBPQGIX.mjs.map +0 -1
- package/.output/server/chunks/build/RunReports-ChNkmuWa.mjs.map +0 -1
- package/.output/server/chunks/build/RunStatusBadge-CXpuCUGQ.mjs.map +0 -1
- package/.output/server/chunks/build/SectionCard-zs9FDzps.mjs.map +0 -1
- package/.output/server/chunks/build/Select-r3S5nkSY.mjs.map +0 -1
- package/.output/server/chunks/build/Separator-pqpPG0up.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-Wdpzlt13.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-02XjJjn0.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-gx_JXgCo.mjs.map +0 -1
- package/.output/server/chunks/build/Table-C64RrBp3.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar--u4VX_Xf.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-ui_BVvqr.mjs.map +0 -1
- package/.output/server/chunks/build/VisuallyHiddenInput-mMsqmkjz.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-R6KGfZOC.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-pkxJKe17.mjs.map +0 -1
- package/.output/server/chunks/build/about-CmtGYbC6.mjs +0 -313
- package/.output/server/chunks/build/about-CmtGYbC6.mjs.map +0 -1
- package/.output/server/chunks/build/account-AbLuwiZP.mjs.map +0 -1
- package/.output/server/chunks/build/ai-DR_slopS.mjs.map +0 -1
- package/.output/server/chunks/build/analytics-BbT2-Tr-.mjs.map +0 -1
- package/.output/server/chunks/build/db.client-DlA_u5y9.mjs.map +0 -1
- package/.output/server/chunks/build/default-D6diRCW0.mjs.map +0 -1
- package/.output/server/chunks/build/edit-CNV4xdYj.mjs.map +0 -1
- package/.output/server/chunks/build/help-content-BMumoQQF.mjs.map +0 -1
- package/.output/server/chunks/build/index-DmHBPf7T.mjs.map +0 -1
- package/.output/server/chunks/build/index-Dw526KXV.mjs.map +0 -1
- package/.output/server/chunks/build/index-dwYB76GO.mjs.map +0 -1
- package/.output/server/chunks/build/index-rSHkKNna.mjs.map +0 -1
- package/.output/server/chunks/build/isValueEqualOrExist-DTJ5ejZs.mjs.map +0 -1
- package/.output/server/chunks/build/login-Da5C8jP2.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-DM1t-9L_.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-BTPF0xA7.mjs.map +0 -1
- package/.output/server/chunks/build/settings-Bmw_JdBS.mjs.map +0 -1
- package/.output/server/chunks/build/settings-metadata-CksLgMun.mjs.map +0 -1
- package/.output/server/chunks/build/storage-BqR4acgi.mjs.map +0 -1
- package/.output/server/chunks/build/tags-miPAzIr3.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-D-LqhLpk.mjs.map +0 -1
- package/.output/server/chunks/build/useAiStatus-FwqbA4gz.mjs.map +0 -1
- package/.output/server/chunks/build/useFormControl-DFTjniPG.mjs +0 -19
- package/.output/server/chunks/build/useFormControl-DFTjniPG.mjs.map +0 -1
- package/.output/server/chunks/build/useSettingsNav-v_dFuTw9.mjs.map +0 -1
- package/.output/server/chunks/build/users-D-GDKZmZ.mjs.map +0 -1
- package/.output/server/chunks/build/virtualizer-BcC1XuFf.mjs.map +0 -1
- package/.output/server/chunks/build/wasted-time-CFmeT_e2.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as m}from"./
|
|
1
|
+
import{_ as m}from"./BGZQONfm.js";import{d,o as t,c as r,O as l,i as n,j as s,t as a,s as x,g as k,m as u,q as o}from"./BrT_Sys2.js";const g={class:"p-2 text-sm text-gray-900 dark:text-gray-100 space-y-1"},_={class:"text-xs text-muted"},y={key:0,class:"text-xs"},h={key:1,class:"text-xs text-muted"},p=d({__name:"ChartMarkerTooltip",props:{marker:{},pos:{}},setup(e){return(f,v)=>{const c=m,i=x;return e.marker?(t(),r("div",{key:0,class:"fixed z-50 pointer-events-none bg-white dark:bg-gray-800 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700 max-w-[260px]",style:l({left:`${e.pos.x}px`,top:`${e.pos.y}px`})},[n("div",g,[s(c,{marker:e.marker},null,8,["marker"]),n("div",_,a(new Date(e.marker.occurredAt).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})),1),e.marker.environment?(t(),r("div",y,[s(i,{color:"neutral",variant:"subtle",size:"xs"},{default:k(()=>[u(a(e.marker.environment),1)]),_:1})])):o("",!0),e.marker.description?(t(),r("p",h,a(e.marker.description),1)):o("",!0)])],4)):o("",!0)}}}),B=Object.assign(p,{__name:"ChartMarkerTooltip"});export{B as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as i,o as a,c as t,T as n,F as r,y as c,f as d,g as _,i as m,t as b,_ as u}from"./
|
|
1
|
+
import{d as i,o as a,c as t,T as n,F as r,y as c,f as d,g as _,i as m,t as b,_ as u}from"./BrT_Sys2.js";const p={class:"flex items-center gap-1.5"},f={class:"hidden sm:inline"},g=i({__name:"NavbarActions",props:{actions:{},size:{default:"md"}},setup(s){return(l,k)=>{const o=u;return a(),t("div",p,[n(l.$slots,"leading"),(a(!0),t(r,null,c(s.actions,e=>(a(),d(o,{key:e.label,icon:e.icon,size:s.size,color:e.color,variant:e.variant,to:e.to,loading:e.loading,disabled:e.disabled,"aria-label":e.label,title:e.label,onClick:v=>e.onClick?.()},{default:_(()=>[m("span",f,b(e.label),1)]),_:2},1032,["icon","size","color","variant","to","loading","disabled","aria-label","title","onClick"]))),128)),n(l.$slots,"default")])}}}),B=Object.assign(g,{__name:"NavbarActions"});export{B as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{k as C,B as W,al as N,az as P,cc as j,h as B}from"./B8fs6GU9.js";function H(l,h,t){const e=new Array(l);return new Proxy(e,{get(s,i,o){if(typeof i=="string"){const n=i.charCodeAt(0);if(n>=48&&n<=57){const r=+i;if(Number.isInteger(r)&&r>=0&&r<l){let a=s[r];if(!a){const d=h[r*2];a=s[r]={index:r,key:t(r),start:d,size:h[r*2+1],end:d+h[r*2+1],lane:0}}return a}}if(i==="length")return l}return Reflect.get(s,i,o)}})}function z(l,h,t){let e=t.initialDeps??[],s,i=!0;function o(){const n=l();return(n.length!==e.length||n.some((a,d)=>e[d]!==a))&&(e=n,s=h(...n),t?.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(s),i=!1),s}return o.updateDeps=n=>{e=n},o}function L(l,h){if(l===void 0)throw new Error("Unexpected undefined");return l}const J=(l,h)=>Math.abs(l-h)<1.01,U=(l,h,t)=>{let e;return function(...s){l.clearTimeout(e),e=l.setTimeout(()=>h.apply(this,s),t)}};let M;const R=()=>{if(M!==void 0)return M;if(typeof navigator>"u")return M=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return M=!0;const l=navigator.maxTouchPoints;return M=navigator.platform==="MacIntel"&&l!==void 0&&l>0},V=l=>{const{offsetWidth:h,offsetHeight:t}=l;return{width:h,height:t}},q=l=>l,X=l=>{const h=Math.max(l.startIndex-l.overscan,0),e=Math.min(l.endIndex+l.overscan,l.count-1)-h+1,s=new Array(e);for(let i=0;i<e;i++)s[i]=h+i;return s},$=(l,h)=>{const t=l.scrollElement;if(!t)return;const e=l.targetWindow;if(!e)return;const s=o=>{const{width:n,height:r}=o;h({width:Math.round(n),height:Math.round(r)})};if(s(V(t)),!e.ResizeObserver)return()=>{};const i=new e.ResizeObserver(o=>{const n=()=>{const r=o[0];if(r?.borderBoxSize){const a=r.borderBoxSize[0];if(a){s({width:a.inlineSize,height:a.blockSize});return}}s(V(t))};l.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},A={passive:!0},G=typeof window>"u"?!0:"onscrollend"in window,Q=(l,h,t)=>{const e=l.scrollElement;if(!e)return;const s=l.targetWindow;if(!s)return;const i=l.options.useScrollendEvent&&G;let o=0;const n=i?null:U(s,()=>h(o,!1),l.options.isScrollingResetDelay),r=m=>()=>{o=t(e),n?.(),h(o,m)},a=r(!0),d=r(!1);return e.addEventListener("scroll",a,A),i&&e.addEventListener("scrollend",d,A),()=>{e.removeEventListener("scroll",a),i&&e.removeEventListener("scrollend",d)}},Y=(l,h)=>Q(l,h,t=>{const{horizontal:e,isRtl:s}=l.options;return e?t.scrollLeft*(s&&-1||1):t.scrollTop}),Z=(l,h,t)=>{if(t.options.useCachedMeasurements){const e=t.indexFromElement(l),s=t.options.getItemKey(e);return t.itemSizeCache.get(s)??t.options.estimateSize(e)}if(h?.borderBoxSize){const e=h.borderBoxSize[0];if(e)return Math.round(e[t.options.horizontal?"inlineSize":"blockSize"])}if(!h){const e=t.indexFromElement(l),s=t.options.getItemKey(e),i=t.itemSizeCache.get(s);if(i!==void 0)return i}return l[t.options.horizontal?"offsetWidth":"offsetHeight"]},tt=(l,{adjustments:h=0,behavior:t},e)=>{var s,i;(i=(s=e.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[e.options.horizontal?"left":"top"]:l+h,behavior:t})},et=tt;class st{constructor(h){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,e,s;return((s=(e=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:e.now)==null?void 0:s.call(e))??Date.now()},this.observer=(()=>{let t=null;const e=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=()=>{const n=i.target,r=this.indexFromElement(n);if(!n.isConnected){this.observer.unobserve(n);for(const[a,d]of this.elementsCache)if(d===n){this.elementsCache.delete(a);break}return}this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(n,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=e())==null||s.disconnect(),t=null},observe:s=>{var i;return(i=e())==null?void 0:i.observe(s,{box:"border-box"})},unobserve:s=>{var i;return(i=e())==null?void 0:i.unobserve(s)}}})(),this.range=null,this.setOptions=t=>{var e,s;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:q,rangeExtractor:X,onChange:()=>{},measureElement:Z,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const u in t){const g=t[u];g!==void 0&&(i[u]=g)}const o=this.options;let n=null,r=null,a=!1;if(o!==void 0&&o.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const u=o.count,g=i.count,S=this.getMeasurements(),E=u>0?((e=S[0])==null?void 0:e.key)??o.getItemKey(0):null,O=u>0?((s=S[u-1])==null?void 0:s.key)??o.getItemKey(u-1):null;if(g!==u||u>0&&g>0&&(i.getItemKey(0)!==E||i.getItemKey(g-1)!==O)){a=!0;const b=u>0?this.getVirtualItemForOffset(this.getScrollOffset())??S[0]:null;b&&(n=[b.key,this.getScrollOffset()-b.start]);const v=i.followOnAppend===!0?"auto":i.followOnAppend||null;v&&g>u&&this.isAtEnd(o.scrollEndThreshold)&&(u===0||i.getItemKey(g-1)!==O)&&(r=v)}}this.options=i,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let d=!1,m=0;if(n&&this.scrollOffset!==null){const[u,g]=n,S=this.getMeasurements(),{count:E,getItemKey:O}=this.options;let c=0;for(;c<E&&O(c)!==u;)c++;if(c<E){const f=S[c];if(f){const b=f.start+g;b!==this.scrollOffset&&(m=b-this.scrollOffset,this.scrollOffset=b,d=!0)}}}(d||r)&&(this.pendingScrollAnchor=[d?n[0]:null,d?n[1]:0,r,m])},this.notify=t=>{var e,s;(s=(e=this.options).onChange)==null||s.call(e,this,t)},this.maybeNotify=z(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,o)=>{if(o&&this._intendedScrollOffset===null&&i===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const n=this.getScrollOffset();this.scrollDirection=o?n===i?this.scrollDirection:n<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=o,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const i=this.scrollElement,o=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!R()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",o,A),i.addEventListener("touchend",n,A),this.unsubs.push(()=>{i.removeEventListener("touchstart",o),i.removeEventListener("touchend",n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[i,o,n,r]=s;i!==null&&!n&&(R()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?r!==0&&(this._iosDeferredAdjustment+=r):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),n&&this.scrollToEnd({behavior:n})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),e=this.getMaxScrollOffset();if(t<0||t>e)return;const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=z(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,e,s,i,o,n,r,a)=>(this.prevLanes!==void 0&&this.prevLanes!==n&&(this.lanesChangedFlag=!0),this.prevLanes=n,this.pendingMin=null,{count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:a}),{key:!1}),this.getMeasurements=z(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:a},d)=>{const m=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const c of this.laneAssignments.keys())c>=t&&this.laneAssignments.delete(c);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(c=>{this.itemSizeCache.set(c.key,c.size)}));const u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),n===1){const c=t*2;let f=this._flatMeasurements;if(!f||f.length<c){const p=new Float64Array(c);f&&u>0&&p.set(f.subarray(0,u*2)),f=p,this._flatMeasurements=f}let b;if(u===0)b=e+s;else{const p=u-1;b=f[p*2]+f[p*2+1]+a}for(let p=u;p<t;p++){const T=i(p),w=m.get(T),x=typeof w=="number"?w:this.options.estimateSize(p);f[p*2]=b,f[p*2+1]=x,b+=x+a}const v=H(t,f,i);return this.measurementsCache=v,v}const g=this.measurementsCache.slice(0,u),S=new Array(n).fill(void 0),E=new Float64Array(n);let O=0;for(let c=0;c<u;c++){const f=g[c];f&&(S[f.lane]===void 0&&O++,S[f.lane]=c,E[f.lane]=f.end)}for(let c=u;c<t;c++){const f=i(c),b=this.laneAssignments.get(c);let v,p;const T=r==="estimate"||m.has(f);if(b!==void 0&&this.options.lanes>1){v=b;const y=S[v],I=y!==void 0?g[y]:void 0;p=I?I.end+a:e+s}else if(O===n){let y=0,I=E[0],D=S[0];for(let _=1;_<n;_++){const F=E[_];(F<I||F===I&&S[_]<D)&&(y=_,I=F,D=S[_])}v=y,p=I+a,T&&this.laneAssignments.set(c,v)}else v=c%this.options.lanes,p=e+s,T&&this.laneAssignments.set(c,v);const w=m.get(f),x=typeof w=="number"?w:this.options.estimateSize(c),k=p+x;g[c]={index:c,start:p,size:x,end:k,key:f,lane:v},S[v]===void 0&&O++,S[v]=c,E[v]=k}return this.measurementsCache=g,g},{key:!1,debug:()=>this.options.debug}),this.calculateRange=z(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,e,s,i)=>t.length===0||e===0?(this.range=null,null):(this.range=nt(t,e,s,i,i===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=z(()=>{let t=null,e=null;const s=this.calculateRange();return s&&(t=s.startIndex,e=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,e]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,e]},(t,e,s,i,o)=>i===null||o===null?[]:t({startIndex:i,endIndex:o,overscan:e,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const e=this.options.indexAttribute,s=t.getAttribute(e);return s?parseInt(s,10):(console.warn(`Missing attribute name '${e}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var e;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((e=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:e.index);if(s!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-i),n=Math.min(this.options.count-1,s+i);return t>=o&&t<=n}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((o,n)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(n))});return}const e=this.indexFromElement(t),s=this.options.getItemKey(e),i=this.elementsCache.get(s);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(s,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(e)&&this.resizeItem(e,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,e)=>{var s,i;if(t<0||t>=this.options.count)return;let o,n,r;const a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)r=this.options.getItemKey(t),n=a[t*2],o=a[t*2+1];else{const u=this.measurementsCache[t];if(!u)return;r=u.key,n=u.start,o=u.size}const d=this.itemSizeCache.get(r)??o,m=e-d;if(m!==0){const u=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,g=u?this.getTotalSize():0,S=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:r,start:n,size:o,end:n+o,lane:0},m,this):n<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(r)||this.scrollDirection!=="backward"));(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(r,e),this.itemSizeCacheVersion++,u?this.applyScrollAdjustment(this.getTotalSize()-g):S&&this.applyScrollAdjustment(m),this.notify(!1)}},this.getVirtualItems=z(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,e)=>{const s=[];for(let i=0,o=t.length;i<o;i++){const n=t[i],r=e[n];s.push(r)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{const e=this.getMeasurements();if(e.length===0)return;const s=this._flatMeasurements,i=this.options.lanes===1&&s!=null,o=K(0,e.length-1,i?n=>s[n*2]:n=>L(e[n]).start,t);return L(e[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,e,s=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),o=this.getScrollOffset();e==="auto"&&(e=t>=o+i?"end":"start"),e==="center"?t+=(s-i)/2:e==="end"&&(t-=i);const n=this.getMaxScrollOffset();return Math.max(Math.min(n,t),0)},this.getOffsetForIndex=(t,e="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const s=this.getSize(),i=this.getScrollOffset(),o=this.measurementsCache[t];if(!o)return;if(e==="auto")if(o.end>=i+s-this.options.scrollPaddingEnd)e="end";else if(o.start<=i+this.options.scrollPaddingStart)e="start";else return[i,e];if(e==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),e];const n=e==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,e,o.size),e]},this.scrollToOffset=(t,{align:e="start",behavior:s="auto"}={})=>{const i=this.getOffsetForAlignment(t,e),o=this.now();this.scrollState={index:null,align:e,behavior:s,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:e="auto",behavior:s="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,e);if(!i)return;const[o,n]=i,r=this.now();this.scrollState={index:t,align:n,behavior:s,startedAt:r,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:e="auto"}={})=>{const s=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:e,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const e=this.getMeasurements();let s;if(e.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const i=e.length-1,o=this._flatMeasurements;o!=null?s=o[i*2]+o[i*2+1]:s=((t=e[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let o=e.length-1;for(;o>=0&&i.some(n=>n===null);){const n=e[o];i[n.lane]===null&&(i[n.lane]=n.end),o--}s=Math.max(...i.filter(n=>n!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const e=this.getMeasurements();for(const s of e)s&&this.itemSizeCache.has(s.key)&&t.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return t},this._scrollToOffset=(t,{adjustments:e,behavior:s})=>{this._intendedScrollOffset=t+(e??0),this.options.scrollToFn(t,{behavior:s,adjustments:e},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(h)}applyScrollAdjustment(h,t){h!==0&&(R()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=h:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=h,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const e=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=e?e[0]:this.scrollState.lastTargetOffset,i=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&J(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const n=this.getSize()||600,r=Math.abs(s-this.getScrollOffset()),a=this.scrollState.behavior==="smooth"&&r>n;this.scrollState.lastTargetOffset=s,a||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:a?"smooth":"auto"})}this.scheduleScrollReconcile()}}const K=(l,h,t,e)=>{for(;l<=h;){const s=(l+h)/2|0,i=t(s);if(i<e)l=s+1;else if(i>e)h=s-1;else return s}return l>0?l-1:0};function it(l,h,t){let e=0;for(;e<=h;){const s=(e+h)/2|0,i=l[s*2];if(i<t)e=s+1;else if(i>t)h=s-1;else return s}return e>0?e-1:0}function nt(l,h,t,e,s){const i=l.length-1;if(l.length<=e)return{startIndex:0,endIndex:i};if(e===1&&s!==null){const a=it(s,i,t);let d=a;const m=t+h;for(;d<i&&s[d*2]+s[d*2+1]<m;)d++;return{startIndex:a,endIndex:d}}let n=K(0,i,a=>l[a].start,t),r=n;if(e===1)for(;r<i&&l[r].end<t+h;)r++;else if(e>1){const a=Array(e).fill(0);for(;r<i&&a.some(m=>m<t+h);){const m=l[r];a[m.lane]=m.end,r++}const d=Array(e).fill(t+h);for(;n>=0&&d.some(m=>m>=t);){const m=l[n];d[m.lane]=m.start,n--}n=Math.max(0,n-n%e),r=Math.min(i,r+(e-1-r%e))}return{startIndex:n,endIndex:r}}function ot(l){const h=new st(C(l)),t=P(h),e=h._didMount();return W(()=>C(l).getScrollElement(),s=>{s&&h._willUpdate()},{immediate:!0}),W(()=>C(l),s=>{h.setOptions({...s,onChange:(i,o)=>{var n;j(t),(n=s.onChange)==null||n.call(s,i,o)}}),h._willUpdate(),j(t)},{immediate:!0}),N(e),t}function rt(l){return ot(B(()=>({observeElementRect:$,observeElementOffset:Y,scrollToFn:et,...C(l)})))}export{rt as u};
|
|
1
|
+
import{k as C,B as W,al as N,az as P,cb as j,h as B}from"./BrT_Sys2.js";function H(l,h,t){const e=new Array(l);return new Proxy(e,{get(s,i,o){if(typeof i=="string"){const n=i.charCodeAt(0);if(n>=48&&n<=57){const r=+i;if(Number.isInteger(r)&&r>=0&&r<l){let a=s[r];if(!a){const d=h[r*2];a=s[r]={index:r,key:t(r),start:d,size:h[r*2+1],end:d+h[r*2+1],lane:0}}return a}}if(i==="length")return l}return Reflect.get(s,i,o)}})}function z(l,h,t){let e=t.initialDeps??[],s,i=!0;function o(){const n=l();return(n.length!==e.length||n.some((a,d)=>e[d]!==a))&&(e=n,s=h(...n),t?.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(s),i=!1),s}return o.updateDeps=n=>{e=n},o}function L(l,h){if(l===void 0)throw new Error("Unexpected undefined");return l}const J=(l,h)=>Math.abs(l-h)<1.01,U=(l,h,t)=>{let e;return function(...s){l.clearTimeout(e),e=l.setTimeout(()=>h.apply(this,s),t)}};let M;const R=()=>{if(M!==void 0)return M;if(typeof navigator>"u")return M=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return M=!0;const l=navigator.maxTouchPoints;return M=navigator.platform==="MacIntel"&&l!==void 0&&l>0},V=l=>{const{offsetWidth:h,offsetHeight:t}=l;return{width:h,height:t}},q=l=>l,X=l=>{const h=Math.max(l.startIndex-l.overscan,0),e=Math.min(l.endIndex+l.overscan,l.count-1)-h+1,s=new Array(e);for(let i=0;i<e;i++)s[i]=h+i;return s},$=(l,h)=>{const t=l.scrollElement;if(!t)return;const e=l.targetWindow;if(!e)return;const s=o=>{const{width:n,height:r}=o;h({width:Math.round(n),height:Math.round(r)})};if(s(V(t)),!e.ResizeObserver)return()=>{};const i=new e.ResizeObserver(o=>{const n=()=>{const r=o[0];if(r?.borderBoxSize){const a=r.borderBoxSize[0];if(a){s({width:a.inlineSize,height:a.blockSize});return}}s(V(t))};l.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},A={passive:!0},G=typeof window>"u"?!0:"onscrollend"in window,Q=(l,h,t)=>{const e=l.scrollElement;if(!e)return;const s=l.targetWindow;if(!s)return;const i=l.options.useScrollendEvent&&G;let o=0;const n=i?null:U(s,()=>h(o,!1),l.options.isScrollingResetDelay),r=m=>()=>{o=t(e),n?.(),h(o,m)},a=r(!0),d=r(!1);return e.addEventListener("scroll",a,A),i&&e.addEventListener("scrollend",d,A),()=>{e.removeEventListener("scroll",a),i&&e.removeEventListener("scrollend",d)}},Y=(l,h)=>Q(l,h,t=>{const{horizontal:e,isRtl:s}=l.options;return e?t.scrollLeft*(s&&-1||1):t.scrollTop}),Z=(l,h,t)=>{if(t.options.useCachedMeasurements){const e=t.indexFromElement(l),s=t.options.getItemKey(e);return t.itemSizeCache.get(s)??t.options.estimateSize(e)}if(h?.borderBoxSize){const e=h.borderBoxSize[0];if(e)return Math.round(e[t.options.horizontal?"inlineSize":"blockSize"])}if(!h){const e=t.indexFromElement(l),s=t.options.getItemKey(e),i=t.itemSizeCache.get(s);if(i!==void 0)return i}return l[t.options.horizontal?"offsetWidth":"offsetHeight"]},tt=(l,{adjustments:h=0,behavior:t},e)=>{var s,i;(i=(s=e.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[e.options.horizontal?"left":"top"]:l+h,behavior:t})},et=tt;class st{constructor(h){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,e,s;return((s=(e=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:e.now)==null?void 0:s.call(e))??Date.now()},this.observer=(()=>{let t=null;const e=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=()=>{const n=i.target,r=this.indexFromElement(n);if(!n.isConnected){this.observer.unobserve(n);for(const[a,d]of this.elementsCache)if(d===n){this.elementsCache.delete(a);break}return}this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(n,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=e())==null||s.disconnect(),t=null},observe:s=>{var i;return(i=e())==null?void 0:i.observe(s,{box:"border-box"})},unobserve:s=>{var i;return(i=e())==null?void 0:i.unobserve(s)}}})(),this.range=null,this.setOptions=t=>{var e,s;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:q,rangeExtractor:X,onChange:()=>{},measureElement:Z,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const u in t){const g=t[u];g!==void 0&&(i[u]=g)}const o=this.options;let n=null,r=null,a=!1;if(o!==void 0&&o.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const u=o.count,g=i.count,S=this.getMeasurements(),E=u>0?((e=S[0])==null?void 0:e.key)??o.getItemKey(0):null,O=u>0?((s=S[u-1])==null?void 0:s.key)??o.getItemKey(u-1):null;if(g!==u||u>0&&g>0&&(i.getItemKey(0)!==E||i.getItemKey(g-1)!==O)){a=!0;const b=u>0?this.getVirtualItemForOffset(this.getScrollOffset())??S[0]:null;b&&(n=[b.key,this.getScrollOffset()-b.start]);const v=i.followOnAppend===!0?"auto":i.followOnAppend||null;v&&g>u&&this.isAtEnd(o.scrollEndThreshold)&&(u===0||i.getItemKey(g-1)!==O)&&(r=v)}}this.options=i,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let d=!1,m=0;if(n&&this.scrollOffset!==null){const[u,g]=n,S=this.getMeasurements(),{count:E,getItemKey:O}=this.options;let c=0;for(;c<E&&O(c)!==u;)c++;if(c<E){const f=S[c];if(f){const b=f.start+g;b!==this.scrollOffset&&(m=b-this.scrollOffset,this.scrollOffset=b,d=!0)}}}(d||r)&&(this.pendingScrollAnchor=[d?n[0]:null,d?n[1]:0,r,m])},this.notify=t=>{var e,s;(s=(e=this.options).onChange)==null||s.call(e,this,t)},this.maybeNotify=z(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,o)=>{if(o&&this._intendedScrollOffset===null&&i===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const n=this.getScrollOffset();this.scrollDirection=o?n===i?this.scrollDirection:n<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=o,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const i=this.scrollElement,o=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!R()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",o,A),i.addEventListener("touchend",n,A),this.unsubs.push(()=>{i.removeEventListener("touchstart",o),i.removeEventListener("touchend",n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[i,o,n,r]=s;i!==null&&!n&&(R()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?r!==0&&(this._iosDeferredAdjustment+=r):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),n&&this.scrollToEnd({behavior:n})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),e=this.getMaxScrollOffset();if(t<0||t>e)return;const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=z(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,e,s,i,o,n,r,a)=>(this.prevLanes!==void 0&&this.prevLanes!==n&&(this.lanesChangedFlag=!0),this.prevLanes=n,this.pendingMin=null,{count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:a}),{key:!1}),this.getMeasurements=z(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:r,gap:a},d)=>{const m=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const c of this.laneAssignments.keys())c>=t&&this.laneAssignments.delete(c);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(c=>{this.itemSizeCache.set(c.key,c.size)}));const u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),n===1){const c=t*2;let f=this._flatMeasurements;if(!f||f.length<c){const p=new Float64Array(c);f&&u>0&&p.set(f.subarray(0,u*2)),f=p,this._flatMeasurements=f}let b;if(u===0)b=e+s;else{const p=u-1;b=f[p*2]+f[p*2+1]+a}for(let p=u;p<t;p++){const T=i(p),w=m.get(T),x=typeof w=="number"?w:this.options.estimateSize(p);f[p*2]=b,f[p*2+1]=x,b+=x+a}const v=H(t,f,i);return this.measurementsCache=v,v}const g=this.measurementsCache.slice(0,u),S=new Array(n).fill(void 0),E=new Float64Array(n);let O=0;for(let c=0;c<u;c++){const f=g[c];f&&(S[f.lane]===void 0&&O++,S[f.lane]=c,E[f.lane]=f.end)}for(let c=u;c<t;c++){const f=i(c),b=this.laneAssignments.get(c);let v,p;const T=r==="estimate"||m.has(f);if(b!==void 0&&this.options.lanes>1){v=b;const y=S[v],I=y!==void 0?g[y]:void 0;p=I?I.end+a:e+s}else if(O===n){let y=0,I=E[0],D=S[0];for(let _=1;_<n;_++){const F=E[_];(F<I||F===I&&S[_]<D)&&(y=_,I=F,D=S[_])}v=y,p=I+a,T&&this.laneAssignments.set(c,v)}else v=c%this.options.lanes,p=e+s,T&&this.laneAssignments.set(c,v);const w=m.get(f),x=typeof w=="number"?w:this.options.estimateSize(c),k=p+x;g[c]={index:c,start:p,size:x,end:k,key:f,lane:v},S[v]===void 0&&O++,S[v]=c,E[v]=k}return this.measurementsCache=g,g},{key:!1,debug:()=>this.options.debug}),this.calculateRange=z(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,e,s,i)=>t.length===0||e===0?(this.range=null,null):(this.range=nt(t,e,s,i,i===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=z(()=>{let t=null,e=null;const s=this.calculateRange();return s&&(t=s.startIndex,e=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,e]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,e]},(t,e,s,i,o)=>i===null||o===null?[]:t({startIndex:i,endIndex:o,overscan:e,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const e=this.options.indexAttribute,s=t.getAttribute(e);return s?parseInt(s,10):(console.warn(`Missing attribute name '${e}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var e;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((e=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:e.index);if(s!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-i),n=Math.min(this.options.count-1,s+i);return t>=o&&t<=n}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((o,n)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(n))});return}const e=this.indexFromElement(t),s=this.options.getItemKey(e),i=this.elementsCache.get(s);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(s,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(e)&&this.resizeItem(e,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,e)=>{var s,i;if(t<0||t>=this.options.count)return;let o,n,r;const a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)r=this.options.getItemKey(t),n=a[t*2],o=a[t*2+1];else{const u=this.measurementsCache[t];if(!u)return;r=u.key,n=u.start,o=u.size}const d=this.itemSizeCache.get(r)??o,m=e-d;if(m!==0){const u=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,g=u?this.getTotalSize():0,S=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:r,start:n,size:o,end:n+o,lane:0},m,this):n<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(r)||this.scrollDirection!=="backward"));(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(r,e),this.itemSizeCacheVersion++,u?this.applyScrollAdjustment(this.getTotalSize()-g):S&&this.applyScrollAdjustment(m),this.notify(!1)}},this.getVirtualItems=z(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,e)=>{const s=[];for(let i=0,o=t.length;i<o;i++){const n=t[i],r=e[n];s.push(r)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{const e=this.getMeasurements();if(e.length===0)return;const s=this._flatMeasurements,i=this.options.lanes===1&&s!=null,o=K(0,e.length-1,i?n=>s[n*2]:n=>L(e[n]).start,t);return L(e[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,e,s=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),o=this.getScrollOffset();e==="auto"&&(e=t>=o+i?"end":"start"),e==="center"?t+=(s-i)/2:e==="end"&&(t-=i);const n=this.getMaxScrollOffset();return Math.max(Math.min(n,t),0)},this.getOffsetForIndex=(t,e="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const s=this.getSize(),i=this.getScrollOffset(),o=this.measurementsCache[t];if(!o)return;if(e==="auto")if(o.end>=i+s-this.options.scrollPaddingEnd)e="end";else if(o.start<=i+this.options.scrollPaddingStart)e="start";else return[i,e];if(e==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),e];const n=e==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,e,o.size),e]},this.scrollToOffset=(t,{align:e="start",behavior:s="auto"}={})=>{const i=this.getOffsetForAlignment(t,e),o=this.now();this.scrollState={index:null,align:e,behavior:s,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:e="auto",behavior:s="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,e);if(!i)return;const[o,n]=i,r=this.now();this.scrollState={index:t,align:n,behavior:s,startedAt:r,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:e="auto"}={})=>{const s=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:e,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const e=this.getMeasurements();let s;if(e.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const i=e.length-1,o=this._flatMeasurements;o!=null?s=o[i*2]+o[i*2+1]:s=((t=e[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let o=e.length-1;for(;o>=0&&i.some(n=>n===null);){const n=e[o];i[n.lane]===null&&(i[n.lane]=n.end),o--}s=Math.max(...i.filter(n=>n!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const e=this.getMeasurements();for(const s of e)s&&this.itemSizeCache.has(s.key)&&t.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return t},this._scrollToOffset=(t,{adjustments:e,behavior:s})=>{this._intendedScrollOffset=t+(e??0),this.options.scrollToFn(t,{behavior:s,adjustments:e},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(h)}applyScrollAdjustment(h,t){h!==0&&(R()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=h:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=h,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const e=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=e?e[0]:this.scrollState.lastTargetOffset,i=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&J(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const n=this.getSize()||600,r=Math.abs(s-this.getScrollOffset()),a=this.scrollState.behavior==="smooth"&&r>n;this.scrollState.lastTargetOffset=s,a||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:a?"smooth":"auto"})}this.scheduleScrollReconcile()}}const K=(l,h,t,e)=>{for(;l<=h;){const s=(l+h)/2|0,i=t(s);if(i<e)l=s+1;else if(i>e)h=s-1;else return s}return l>0?l-1:0};function it(l,h,t){let e=0;for(;e<=h;){const s=(e+h)/2|0,i=l[s*2];if(i<t)e=s+1;else if(i>t)h=s-1;else return s}return e>0?e-1:0}function nt(l,h,t,e,s){const i=l.length-1;if(l.length<=e)return{startIndex:0,endIndex:i};if(e===1&&s!==null){const a=it(s,i,t);let d=a;const m=t+h;for(;d<i&&s[d*2]+s[d*2+1]<m;)d++;return{startIndex:a,endIndex:d}}let n=K(0,i,a=>l[a].start,t),r=n;if(e===1)for(;r<i&&l[r].end<t+h;)r++;else if(e>1){const a=Array(e).fill(0);for(;r<i&&a.some(m=>m<t+h);){const m=l[r];a[m.lane]=m.end,r++}const d=Array(e).fill(t+h);for(;n>=0&&d.some(m=>m>=t);){const m=l[n];d[m.lane]=m.start,n--}n=Math.max(0,n-n%e),r=Math.min(i,r+(e-1-r%e))}return{startIndex:n,endIndex:r}}function ot(l){const h=new st(C(l)),t=P(h),e=h._didMount();return W(()=>C(l).getScrollElement(),s=>{s&&h._willUpdate()},{immediate:!0}),W(()=>C(l),s=>{h.setOptions({...s,onChange:(i,o)=>{var n;j(t),(n=s.onChange)==null||n.call(s,i,o)}}),h._willUpdate(),j(t)},{immediate:!0}),N(e),t}function rt(l){return ot(B(()=>({observeElementRect:$,observeElementOffset:Y,scrollToFn:et,...C(l)})))}export{rt as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as m,B as h,o as n,f as o,U as p,bG as g,ba as B,h as d,c as f,q as E,F as y,y as V}from"./
|
|
1
|
+
import{d as m,B as h,o as n,f as o,U as p,bG as g,ba as B,h as d,c as f,q as E,F as y,y as V}from"./BrT_Sys2.js";var k=m({inheritAttrs:!1,__name:"VisuallyHiddenInputBubble",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(i){const e=i,{primitiveElement:s,currentElement:l}=B(),t=d(()=>e.checked??e.value);return h(t,(a,r)=>{if(!l.value)return;const u=l.value,b=window.HTMLInputElement.prototype,v=Object.getOwnPropertyDescriptor(b,"value").set;if(v&&a!==r){const _=new Event("input",{bubbles:!0}),q=new Event("change",{bubbles:!0});v.call(u,a),u.dispatchEvent(_),u.dispatchEvent(q)}}),(a,r)=>(n(),o(g,p({ref_key:"primitiveElement",ref:s},{...e,...a.$attrs},{as:"input"}),null,16))}}),c=k,A=m({inheritAttrs:!1,__name:"VisuallyHiddenInput",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(i){const e=i,s=d(()=>typeof e.value=="object"&&Array.isArray(e.value)&&e.value.length===0&&e.required),l=d(()=>typeof e.value=="string"||typeof e.value=="number"||typeof e.value=="boolean"||e.value===null||e.value===void 0?[{name:e.name,value:e.value}]:typeof e.value=="object"&&Array.isArray(e.value)?e.value.flatMap((t,a)=>typeof t=="object"?Object.entries(t).map(([r,u])=>({name:`${e.name}[${a}][${r}]`,value:u})):{name:`${e.name}[${a}]`,value:t}):e.value!==null&&typeof e.value=="object"&&!Array.isArray(e.value)?Object.entries(e.value).map(([t,a])=>({name:`${e.name}[${t}]`,value:a})):[]);return(t,a)=>(n(),f(y,null,[E(" We render single input if it's required "),s.value?(n(),o(c,p({key:t.name},{...e,...t.$attrs},{name:t.name,value:t.value}),null,16,["name","value"])):(n(!0),f(y,{key:1},V(l.value,r=>(n(),o(c,p({key:r.name},{ref_for:!0},{...e,...t.$attrs},{name:r.name,value:r.value}),null,16,["name","value"]))),128))],2112))}}),I=A;export{I as V};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as b}from"./
|
|
1
|
+
import{u as b}from"./z7PmsnBG.js";import{h as j,bQ as m}from"./BrT_Sys2.js";const g="piwi-browser-notify";function a(){return{projects:{}}}function y(e){try{const n=JSON.parse(e);if(typeof n!="object"||n===null)return a();const c={};if(n.projects&&typeof n.projects=="object")for(const[i,r]of Object.entries(n.projects)){const u=Number(i);Number.isNaN(u)||r&&typeof r=="object"&&Array.isArray(r.events)&&(c[u]={events:r.events.filter(f=>typeof f=="string")})}return{projects:c}}catch{return a()}}const h=m(!0);let l=null,p=null;function S(){p||h.run(()=>{l=b(g,{default:()=>"",maxAge:3600*24*365,sameSite:"lax",path:"/",secure:location.protocol==="https:",encode:e=>encodeURIComponent(e),decode:e=>decodeURIComponent(e)}),p=j({get:()=>{const e=l.value;return e?y(e):a()},set:e=>{l.value=JSON.stringify(e)}})})}function O(){S();const e=p;function n(t){return e.value.projects[t]??{events:[]}}function c(t,o){if(o.length===0){const s={...e.value};delete s.projects[t],e.value=s}else e.value={...e.value,projects:{...e.value.projects,[t]:{events:o}}}}function i(t,o){const s=n(t).events,v=s.includes(o)?s.filter(d=>d!==o):[...s,o];c(t,v)}function r(t){return n(t).events.length>0}function u(t,o){return n(t).events.includes(o)}function f(){return Object.values(e.value.projects).some(t=>t.events.length>0)}return{getProject:n,setEvents:c,toggleEvent:i,isSubscribed:r,isEventSubscribed:u,hasAnySubscription:f,stored:e}}export{O as u};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{_ as N,a as Y}from"./CMB-NkFa.js";import{_ as G}from"./BU6xjw05.js";import{_ as F}from"./DqsMiUoW.js";import{d as H,w as K,e as W,f as h,g as o,K as $,o as n,i as t,k as r,q as v,j as i,c as a,F as l,y as V,v as J,t as b,m as s,_ as Q,h as c}from"./BrT_Sys2.js";import{_ as X}from"./CHIbdzqp.js";import{_ as Z}from"./DpJrGwCr.js";import{_ as ee}from"./CxLN5Tmq.js";import{u as te}from"./DUe6xuKQ.js";import{u as se}from"./Dvc1aWpA.js";import"./z7PmsnBG.js";import"./DtXREpk_.js";import"./B6hPf4UR.js";import"./r3SBLxtE.js";import"./CoKEjZX7.js";import"./D7P0ML0H.js";import"./D0-HTQTD.js";const re=[{name:"list_projects",description:"List all projects with stats: total runs, test cases, latest run status and branch. Use this first to discover available projects and their IDs.",inputSchema:{type:"object",properties:{}}},{name:"get_project",description:"Get project details and its recent test runs with pass/fail counts. Results are paginated — use pageSize and cursor for the runs list.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Project ID from list_projects"},pageSize:{type:"number",description:"Runs per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page of runs"}},required:["id"]}},{name:"list_runs",description:"List test runs for a project with filters.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},status:{type:"string",enum:["passed","failed","running","initialising","aborted"],description:"Filter by status"},branch:{type:"string",description:"Filter by branch name (exact match against SCM metadata)"},pageSize:{type:"number",description:"Results per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page"}},required:["projectId"]}},{name:"get_run",description:"Get a test run summary plus its test cases (paginated), with status, truncated error text, and failure cluster IDs. Filter by status and page with pageSize/cursor.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Test run ID"},status_filter:{type:"string",enum:["failed","flaky","all"],description:'Which test cases to include (default: "failed" — only failed+timedOut; "flaky" — only flaky; "all" — every case)'},pageSize:{type:"number",description:"Cases per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response for the next page of cases"}},required:["id"]}},{name:"list_failed_cases",description:"List failed and timed-out test cases across recent runs for a project.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},pageSize:{type:"number",description:"Results per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page"},runId:{type:"number",description:"Optional: restrict to a specific run"}},required:["projectId"]}},{name:"list_flaky_tests",description:"List flaky tests for a project with flakiness scores.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},runs:{type:"number",description:"Number of recent runs to analyze (default 50, max 200)"},pageSize:{type:"number",description:"Results per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response. Cursor is the flakyScore value (descending)."}},required:["projectId"]}},{name:"get_test_case",description:"Get test case details including aggregated pass/fail stats, flakiness metrics, and recent executions (paginated). Use testCaseId (stable identity), not the per-run caseId.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Test case ID (testCaseId from list_failed_cases or list_flaky_tests)"},pageSize:{type:"number",description:"Executions per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page of executions"}},required:["id"]}},{name:"list_clusters",description:"List failure clusters for a project. Each cluster groups similar failures by error fingerprint.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},status:{type:"string",enum:["open","resolved","ignored"],description:"Filter by triage status (default: all statuses)"},pageSize:{type:"number",description:"Results per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page"}},required:["projectId"]}},{name:"get_cluster",description:"Get full details for a failure cluster including all affected test cases, a compact diagnosis summary, and locator healing suggestions for up to 5 affected cases. Each healing entry includes the failing locator, the recommended fix, and the number of alternatives available. Use get_cluster_diagnosis for the full diagnosis text, or get_cluster_context for the raw AI evidence.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Cluster ID from list_clusters"}},required:["id"]}},{name:"get_cluster_diagnosis",description:"Get the stored AI diagnosis for a failure cluster. Returns category, confidence, root cause, evidence, and suggested fix. Returns null if no diagnosis has been run yet.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Cluster ID"}},required:["id"]}},{name:"get_test_case_context",description:"Get the AI evidence context for a specific test-run-case (execution scope). Use this when debugging a single test failure — it provides the execution-scoped evidence including steps, console, network, and SCM diff.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Test run case ID"}},required:["id"]}},{name:"get_case_screenshots",description:"Get screenshots for a test-run-case. By default returns metadata only (name, type, size). Set content=true to include base64-encoded image data (max 3, capped at ~100 KB each). Call metadata-only first to discover what exists, then request content for the ones you need.",inputSchema:{type:"object",properties:{testRunsCaseId:{type:"number",description:"Test run case ID"},content:{type:"boolean",description:"Include base64 image data (default false — metadata only)"}},required:["testRunsCaseId"]}},{name:"get_cluster_context",description:"Get the full AI evidence context for a failure cluster — the same data sent to the diagnosis AI. Includes error samples, stack traces, test steps, console logs, network failures, ARIA snapshots, SCM diff (changed files since last green run), and a per-section breakdown with char counts and truncation flags. This is the richest available evidence for debugging a failure.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Cluster ID"},baseCommit:{type:"string",description:"Optional: override the baseline commit SHA for SCM diff comparison"},selectedCommitShas:{type:"array",items:{type:"string"},description:"Optional: specific commit SHAs to include in the diff context (max 10)"}},required:["id"]}},{name:"search_test_cases",description:"Search test cases by title or file path within a project. Accepts a free-text query and returns matching test cases with basic stats. Use this to find a test case when you don't know its ID.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},q:{type:"string",description:"Search query — matched against title and file path (case-insensitive)"},pageSize:{type:"number",description:"Results per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page"}},required:["projectId","q"]}},{name:"get_test_run_case",description:"Get a single test-run-case execution record with full (untruncated) error text plus steps, console logs, web vitals, and ARIA snapshot. Use include to fetch only the blobs you need. The ID is the executionId from get_run.cases or testRunsCaseId from get_cluster.affectedTestCases.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Test run case ID (executionId from get_run.cases or testRunsCaseId from get_cluster.affectedTestCases)"},include:{type:"array",items:{type:"string",enum:["steps","console","webVitals","aria","source"]},description:"Optional: which heavy blobs to include (default: all). The error, status, and summary are always returned."}},required:["id"]}},{name:"list_recent_activity",description:"List the most recent test runs across all projects. No projectId required — returns a cross-project view of recent CI activity. Paginated by startTime descending.",inputSchema:{type:"object",properties:{pageSize:{type:"number",description:"Results per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page"}}}},{name:"get_repo_commits",description:"List recent commits for a project's repository. Requires SCM token configuration (per-project or global). Returns commit details (SHA, message, author, date).",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},branch:{type:"string",description:"Branch name (default: repository default branch)"},limit:{type:"number",description:"Max commits (default 20, max 100)"}},required:["projectId"]}},{name:"get_repo_diff",description:"Get the diff (changed files with patches) for a single commit in a project's repository. Requires SCM token configuration (per-project or global). Useful for inspecting what code changed in a specific commit suspected of causing a failure.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},sha:{type:"string",description:"Full commit SHA"}},required:["projectId","sha"]}},{name:"get_run_insights",description:'Compare a run to its last green baseline: pass-rate delta, new regressions, recurrences, recovered tests, new flaky tests, biggest perf improvements/regressions, worker imbalance, and newly opened clusters. Use this to answer "what changed?" and "did my fix work?".',inputSchema:{type:"object",properties:{id:{type:"number",description:"Test run ID"}},required:["id"]}},{name:"get_spec_health",description:"Per-spec-file health for a project: pass rate, flaky rate, failure count, test count, and average duration grouped by spec-file prefix over the last N days. Use to find which areas of the suite are unhealthy.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},days:{type:"number",description:"Lookback window in days (default 30, max 90)"}},required:["projectId"]}},{name:"get_slow_tests",description:"Slowest test cases in a project by average duration, with max/min and trend direction across recent runs. Use to target performance work.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},runs:{type:"number",description:"Recent runs to analyze (default 50, max 100)"}},required:["projectId"]}},{name:"get_performance_trend",description:'Time series of run duration, average test duration, and p90 test duration for a project. Use to answer "is the suite getting slower?".',inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},limit:{type:"number",description:"Number of recent runs (default 30, max 100)"}},required:["projectId"]}},{name:"get_test_stability_trend",description:'Time-series stability for a single test case: flaky rate, pass rate, and average duration bucketed over its recent execution history. Use to answer "is this test getting flakier?".',inputSchema:{type:"object",properties:{id:{type:"number",description:"Test case ID (stable testCaseId)"},buckets:{type:"number",description:"Number of time buckets (default 20, 5–50)"}},required:["id"]}},{name:"get_network_requests",description:"A run's network requests aggregated by method + normalized route, sorted by average duration, with status codes and captured backend server logs. Use to pin a UI failure on a slow or failing endpoint.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Test run ID"}},required:["id"]}},{name:"get_failure_groups",description:"One run's failures grouped by failure cluster, with per-group affected cases and worker correlation. Run-scoped counterpart to list_clusters.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Test run ID"}},required:["id"]}},{name:"get_locator_healing",description:"Ranked alternative locators for a failing test-run-case: the failing locator, the recommended durable fix, and the full alternative lists (from prior success, element match, and ARIA snapshot). Use when fixing a broken selector.",inputSchema:{type:"object",properties:{testRunsCaseId:{type:"number",description:"Test run case ID (executionId)"}},required:["testRunsCaseId"]}},{name:"search",description:"Global search across all in-scope projects, runs (by label or numeric id), and test cases (by title). Use to find a run by its label or locate an entity across projects.",inputSchema:{type:"object",properties:{q:{type:"string",description:"Search query (min 2 chars)"}},required:["q"]}},{name:"list_case_traces",description:"List Playwright trace files for a test-run-case, with a download path for each. Fetch the bytes via GET /api/files/<path>.",inputSchema:{type:"object",properties:{testRunsCaseId:{type:"number",description:"Test run case ID (executionId)"}},required:["testRunsCaseId"]}},{name:"list_links",description:"List external entity links (Jira, GitHub PR/issue, etc.) attached to a run, test-run-case, or test case, with provider and unfurled status.",inputSchema:{type:"object",properties:{entityType:{type:"string",enum:["test_run","test_runs_case","test_case"],description:"Which entity the links are attached to"},id:{type:"number",description:"The entity ID matching entityType"}},required:["entityType","id"]}},{name:"list_tags",description:"List the project tag catalog (id, text, color).",inputSchema:{type:"object",properties:{}}},{name:"get_project_test_catalog",description:"The full test-case catalog for a project with aggregated pass/fail/flaky counts, average duration, and last status per test. Offset-paginated bulk companion to get_test_case.",inputSchema:{type:"object",properties:{projectId:{type:"number",description:"Project ID"},pageSize:{type:"number",description:"Results per page (default 10, max 50)"},offset:{type:"number",description:"Row offset for paging (default 0)"},query:{type:"string",description:"Optional case-insensitive substring filter on title or file path"}},required:["projectId"]}},{name:"list_open_clusters",description:"Open failure clusters across all in-scope projects, ranked by occurrences — a cross-project triage queue. Filter by status; paginate with pageSize/cursor.",inputSchema:{type:"object",properties:{status:{type:"string",enum:["open","resolved","ignored"],description:"Triage status (default: open)"},pageSize:{type:"number",description:"Results per page (default 10, max 50)"},cursor:{type:"string",description:"Opaque cursor from a previous response to get the next page"}}}},{name:"get_instance_stats",description:"Instance-wide counts (projects, runs, test cases, executions, files) and total storage size. Admin only.",inputSchema:{type:"object",properties:{}}},{name:"explain_failure",description:"One-call evidence bundle for a single failing execution: error, steps, console, ARIA snapshot, the recommended locator fix, a screenshot count, and the AI diagnosis context. Prefer this over chaining get_test_run_case + get_locator_healing + get_test_case_context.",inputSchema:{type:"object",properties:{testRunsCaseId:{type:"number",description:"Test run case ID (executionId)"}},required:["testRunsCaseId"]}},{name:"set_cluster_status",description:"Triage a failure cluster: set its status to open, resolved, or ignored with an optional note. Requires reporter or admin access. Use after fixing the underlying issue.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Cluster ID"},status:{type:"string",enum:["open","resolved","ignored"],description:"New triage status"},triageNote:{type:"string",description:"Optional note explaining the status change"}},required:["id","status"]}},{name:"set_cluster_base_commit",description:'Pin the baseline commit SHA a cluster uses for its SCM-diff diagnosis context, so "what changed since green" is accurate. Requires reporter or admin access.',inputSchema:{type:"object",properties:{id:{type:"number",description:"Cluster ID"},commit:{type:"string",description:"Baseline commit SHA (empty to clear)"}},required:["id","commit"]}},{name:"submit_diagnosis_feedback",description:"Record thumbs up/down feedback on a stored diagnosis, with an optional note. Requires reporter or admin access.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Diagnosis ID"},feedback:{type:"string",enum:["up","down"],description:"Rating (omit to clear)"},feedbackNote:{type:"string",description:"Optional note"}},required:["id"]}},{name:"run_cluster_diagnosis",description:"Trigger an AI diagnosis for a failure cluster and return the result (category, confidence, root cause, suggested fix). Returns the existing completed diagnosis unless force is set. Requires reporter or admin access and a configured AI provider.",inputSchema:{type:"object",properties:{id:{type:"number",description:"Cluster ID"},force:{type:"boolean",description:"Re-run even if a completed diagnosis exists (default false)"},baseCommit:{type:"string",description:"Optional baseline commit SHA for SCM-diff context"}},required:["id"]}}];function ie(j){return new URL(globalThis.location.href)}const oe={class:"max-w-3xl mx-auto p-6 space-y-6"},ne={class:"flex flex-col gap-1.5"},ae={class:"min-w-0"},pe={class:"text-sm font-mono font-semibold text-foreground"},ce={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5"},de={class:"space-y-3 text-sm text-gray-600 dark:text-gray-400"},ue={key:0},le={key:1},me={key:2,class:"text-xs text-gray-400"},ge={key:3,class:"text-xs text-gray-400"},fe={class:"text-sm text-gray-500 dark:text-gray-400 mb-4"},ye={class:"space-y-3"},he={class:"space-y-3"},be={class:"space-y-3"},_e={class:"space-y-3"},xe={class:"space-y-3"},Ie={class:"space-y-3"},ve={class:"space-y-2"},je={class:"flex items-center gap-2"},we={class:"flex-1 px-3 py-2 bg-muted rounded-md text-sm font-mono break-all"},ke={class:"text-xs text-gray-400"},Ye=H({__name:"mcp",async setup(j){let m,_;const x=$(),I=x.public.demoMode,u=te(),{data:f}=([m,_]=K(()=>se("/api/desktop/reporter-config",{immediate:u,default:()=>null},"$fdl6kilREP")),m=await m,_(),m),w=ie(),p=c(()=>`${x.public.siteUrl||w.origin}/mcp`);W({title:"MCP server — Piwi Dashboard"});const k=re,S=[{label:"Claude Code",slot:"claude-code"},{label:"Cursor",slot:"cursor"},{label:"VS Code",slot:"vscode"},{label:"Claude Desktop",slot:"claude-desktop"},{label:"Gemini CLI",slot:"gemini"},{label:"Windsurf / Continue",slot:"windsurf"}],C=c(()=>`claude mcp add --transport http piwi ${p.value} \\
|
|
2
|
+
--header "Authorization: Bearer pd_YOUR_API_KEY"`),q=c(()=>JSON.stringify({mcpServers:{piwi:{url:p.value,headers:{Authorization:"Bearer pd_YOUR_API_KEY"}}}},null,2)),R=c(()=>JSON.stringify({servers:{piwi:{type:"http",url:p.value,headers:{Authorization:"Bearer pd_YOUR_API_KEY"}}}},null,2)),A=c(()=>JSON.stringify({mcpServers:{piwi:{type:"http",url:p.value,headers:{Authorization:"Bearer pd_YOUR_API_KEY"}}}},null,2)),P=c(()=>`gemini mcp add --transport http piwi ${p.value} \\
|
|
3
|
+
--header "Authorization: Bearer pd_YOUR_API_KEY"`),D=c(()=>JSON.stringify({mcpServers:{piwi:{serverUrl:p.value,headers:{Authorization:"Bearer pd_YOUR_API_KEY"}}}},null,2));return(T,e)=>{const U=Y,O=G,z=F,L=J,g=X,d=Z,M=ee,E=Q,B=N;return n(),h(B,null,{header:o(()=>[i(U,{title:"MCP server"})]),body:o(()=>[t("div",oe,[r(I)?(n(),h(O,{key:0,color:"info",icon:"i-lucide-bot",title:"Feature preview",description:"The MCP endpoint is not active in this demo — it requires a real Piwi backend. The tools and client setup shown below reflect what your own deployment exposes."})):v("",!0),r(f)?(n(),h(z,{key:1,url:r(f).url,token:r(f).token},null,8,["url","token"])):v("",!0),i(g,{icon:"i-lucide-bot",title:"What it provides",help:"mcp.tools"},{default:o(()=>[t("div",ne,[(n(!0),a(l,null,V(r(k),y=>(n(),a("div",{key:y.name,class:"flex items-start gap-3 px-3 py-2.5 rounded-md bg-elevated/50 border border-default hover:bg-elevated transition-colors"},[i(L,{name:"i-lucide-wrench",class:"size-4 mt-0.5 shrink-0 text-primary"}),t("div",ae,[t("p",pe,b(y.name),1),t("p",ce,b(y.description),1)])]))),128))])]),_:1}),i(g,{icon:"i-lucide-key",title:"Authentication",help:"mcp.auth"},{default:o(()=>[t("div",de,[e[4]||(e[4]=t("p",null,[s(" MCP requests are authenticated with the same API keys used by the REST API. API keys start with "),t("code",{class:"px-1 py-0.5 bg-muted rounded text-xs font-mono"},"pd_"),s(". ")],-1)),r(u)?(n(),a("p",le,[...e[1]||(e[1]=[s(" This app provides a local access token automatically — see ",-1),t("strong",null,"Connect an AI assistant (MCP)",-1),s(" above. Use it wherever the snippets show ",-1),t("code",{class:"px-1 py-0.5 bg-muted rounded text-xs font-mono"},"pd_YOUR_API_KEY",-1),s(". ",-1)])])):(n(),a("p",ue,[...e[0]||(e[0]=[s(" Generate a key in ",-1),t("strong",null,"Settings → Users → [your account] → API keys",-1),s(", then replace ",-1),t("code",{class:"px-1 py-0.5 bg-muted rounded text-xs font-mono"},"pd_YOUR_API_KEY",-1),s(" in the snippets below. ",-1)])])),r(u)?(n(),a("p",ge,[...e[3]||(e[3]=[s(" This desktop app keeps sign-in off but still requires its own local access token on every request — use the token shown above as the ",-1),t("code",{class:"font-mono"},"Bearer",-1),s(" value. The endpoint is not open. ",-1)])])):(n(),a("p",me,[...e[2]||(e[2]=[s(" When authentication is disabled (",-1),t("code",{class:"font-mono"},"PIWI_AUTH_ENABLED",-1),s(" not set), any request is accepted without a key. ",-1)])]))])]),_:1}),i(g,{icon:"i-lucide-settings-2",title:"Client setup",help:"mcp.client-setup"},{default:o(()=>[t("p",fe,[e[5]||(e[5]=s(" Replace ",-1)),e[6]||(e[6]=t("code",{class:"px-1 py-0.5 bg-muted rounded text-xs font-mono"},"pd_YOUR_API_KEY",-1)),e[7]||(e[7]=s(" with ",-1)),r(u)?(n(),a(l,{key:0},[s("this app's access token (shown above)")],64)):(n(),a(l,{key:1},[s("your actual API key")],64)),e[8]||(e[8]=s(". The MCP URL shown below is auto-detected from your current browser origin. ",-1))]),i(M,{items:S,ui:{list:"mb-4"}},{"claude-code":o(()=>[t("div",ye,[e[9]||(e[9]=t("p",{class:"text-sm text-gray-600 dark:text-gray-400"}," Run once in any terminal. Claude Code stores the server in your global MCP config. ",-1)),i(d,{code:r(C),lang:"sh"},null,8,["code"]),e[10]||(e[10]=t("p",{class:"text-xs text-gray-400"},[s(" After adding, restart Claude Code and use "),t("code",{class:"font-mono"},"/mcp"),s(" to verify "),t("strong",null,"piwi"),s(" is connected. Claude will call the tools automatically when you ask about test results or failures. ")],-1))])]),cursor:o(()=>[t("div",he,[e[11]||(e[11]=t("p",{class:"text-sm text-gray-600 dark:text-gray-400"},[s(" Add to "),t("code",{class:"font-mono text-xs"},"~/.cursor/mcp.json"),s(" (global) or "),t("code",{class:"font-mono text-xs"},".cursor/mcp.json"),s(" in your project root: ")],-1)),i(d,{code:r(q),lang:"json"},null,8,["code"]),e[12]||(e[12]=t("p",{class:"text-xs text-gray-400"}," Restart Cursor, then enable the MCP server in Cursor Settings → MCP. ",-1))])]),vscode:o(()=>[t("div",be,[e[13]||(e[13]=t("p",{class:"text-sm text-gray-600 dark:text-gray-400"},[s(" Add to "),t("code",{class:"font-mono text-xs"},".vscode/mcp.json"),s(" in your workspace (VS Code Copilot agent mode, version 1.99+): ")],-1)),i(d,{code:r(R),lang:"json"},null,8,["code"]),e[14]||(e[14]=t("p",{class:"text-xs text-gray-400"}," The server appears in the Copilot chat agent drop-down once the file is saved. ",-1))])]),"claude-desktop":o(()=>[t("div",_e,[e[15]||(e[15]=t("p",{class:"text-sm text-gray-600 dark:text-gray-400"},"Add to your Claude Desktop config file:",-1)),e[16]||(e[16]=t("ul",{class:"text-xs text-gray-400 space-y-0.5 mb-2"},[t("li",null,[t("strong",null,"macOS:"),t("code",{class:"font-mono"},"~/Library/Application Support/Claude/claude_desktop_config.json")]),t("li",null,[t("strong",null,"Windows:"),t("code",{class:"font-mono"},"%APPDATA%\\Claude\\claude_desktop_config.json")])],-1)),i(d,{code:r(A),lang:"json"},null,8,["code"]),e[17]||(e[17]=t("p",{class:"text-xs text-gray-400"}," Requires Claude Desktop with remote MCP support (released early 2025). Restart the app after saving. ",-1))])]),gemini:o(()=>[t("div",xe,[e[18]||(e[18]=t("p",{class:"text-sm text-gray-600 dark:text-gray-400"},"Run once to register the server with Gemini CLI:",-1)),i(d,{code:r(P),lang:"sh"},null,8,["code"]),e[19]||(e[19]=t("p",{class:"text-xs text-gray-400"}," Gemini CLI fetches the tool list on startup and makes them available in agent mode. ",-1))])]),windsurf:o(()=>[t("div",Ie,[e[20]||(e[20]=t("p",{class:"text-sm text-gray-600 dark:text-gray-400"},[s(" Add to your Windsurf or Continue MCP config. For Windsurf: "),t("code",{class:"font-mono text-xs"},"~/.codeium/windsurf/mcp_config.json"),s(". For Continue: "),t("code",{class:"font-mono text-xs"},"~/.continue/config.json"),s(" under "),t("code",{class:"font-mono text-xs"},"mcpServers"),s(". ")],-1)),i(d,{code:r(D),lang:"json"},null,8,["code"])])]),_:1})]),_:1}),i(g,{icon:"i-lucide-link",title:"Server URL"},{default:o(()=>[t("div",ve,[t("div",je,[t("code",we,b(r(p)),1),i(E,{icon:"i-lucide-external-link",size:"sm",color:"neutral",variant:"outline",title:"Open API docs",to:"/docs",external:!r(I)},{default:o(()=>[...e[21]||(e[21]=[s(" REST API docs ",-1)])]),_:1},8,["external"])]),t("p",ke,[e[28]||(e[28]=s(" This is your Piwi instance's MCP endpoint. It is also the server URL to paste into client configs above. ",-1)),r(u)?(n(),a(l,{key:0},[e[22]||(e[22]=s("This desktop app requires its local access token as the ",-1)),e[23]||(e[23]=t("code",{class:"font-mono"},"Bearer",-1)),e[24]||(e[24]=s(" value on every request.",-1))],64)):(n(),a(l,{key:1},[e[25]||(e[25]=s("The server requires a valid Bearer token (or no auth if ",-1)),e[26]||(e[26]=t("code",{class:"font-mono"},"PIWI_AUTH_ENABLED",-1)),e[27]||(e[27]=s(" is not set).",-1))],64))])])]),_:1})])]),_:1})}}});export{Ye as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as l}from"./
|
|
1
|
+
import{_ as l}from"./CHIbdzqp.js";import{d as a,o as i,f as c,aa as r,g as n,T as s}from"./BrT_Sys2.js";const u=a({__name:"ChartCard",props:{title:{},subtitle:{},icon:{},iconClass:{},help:{}},setup(e){return(t,m)=>{const o=l;return i(),c(o,{title:e.title,subtitle:e.subtitle,icon:e.icon,"icon-class":e.iconClass,help:e.help},r({default:n(()=>[s(t.$slots,"default")]),_:2},[t.$slots.subtitle?{name:"subtitle",fn:n(()=>[s(t.$slots,"subtitle")]),key:"0"}:void 0,t.$slots.legend||t.$slots.actions?{name:"actions",fn:n(()=>[s(t.$slots,"legend"),s(t.$slots,"actions")]),key:"1"}:void 0]),1032,["title","subtitle","icon","icon-class","help"])}}}),C=Object.assign(u,{__name:"ChartCard"});export{C as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as _,f as i,aa as h,g as l,o as s,T as o,i as a,v as k,p as g,q as n,m as c,t as m,c as r,F as p}from"./
|
|
1
|
+
import{d as _,f as i,aa as h,g as l,o as s,T as o,i as a,v as k,p as g,q as n,m as c,t as m,c as r,F as p}from"./BrT_Sys2.js";import{_ as y}from"./B6hPf4UR.js";import{_ as C}from"./CoKEjZX7.js";const $={class:"flex items-start justify-between gap-2"},b={class:"flex items-center gap-2 min-w-0"},x={class:"min-w-0"},v={class:"text-lg font-medium inline-flex items-center gap-1"},w={key:0,class:"text-sm text-gray-500 mt-0.5"},S={key:0,class:"flex items-center gap-1 shrink-0"},B=_({__name:"SectionCard",props:{title:{},icon:{},subtitle:{},count:{},iconClass:{default:"text-primary"},help:{}},setup(t){return(e,N)=>{const u=k,d=y,f=C;return s(),i(f,null,h({header:l(()=>[a("div",$,[a("div",b,[t.icon?(s(),i(u,{key:0,name:t.icon,class:g(["w-5 h-5 shrink-0",t.iconClass])},null,8,["name","class"])):n("",!0),a("div",x,[a("h3",v,[c(m(t.title),1),t.count!=null?(s(),r(p,{key:0},[c(" ("+m(t.count)+")",1)],64)):n("",!0),t.help?(s(),i(d,{key:1,topic:t.help},null,8,["topic"])):n("",!0)]),t.subtitle||e.$slots.subtitle?(s(),r("p",w,[o(e.$slots,"subtitle",{},()=>[c(m(t.subtitle),1)])])):n("",!0)])]),e.$slots.actions?(s(),r("div",S,[o(e.$slots,"actions")])):n("",!0)])]),default:l(()=>[o(e.$slots,"default")]),_:2},[e.$slots.footer?{name:"footer",fn:l(()=>[o(e.$slots,"footer")]),key:"0"}:void 0]),1024)}}}),H=Object.assign(B,{__name:"SectionCard"});export{H as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as P,a1 as D,a3 as C,b2 as B,o as i,c as k,j as w,g as z,T as a,Z as c,$ as g,k as e,f as h,U as S,q as f,i as m,p as n,v as O,m as R,t as V,V as M,F as N,h as T,a6 as x,aN as A,b3 as U}from"./
|
|
1
|
+
import{a0 as P,a1 as D,a3 as C,b2 as B,o as i,c as k,j as w,g as z,T as a,Z as c,$ as g,k as e,f as h,U as S,q as f,i as m,p as n,v as O,m as R,t as V,V as M,F as N,h as T,a6 as x,aN as A,b3 as U}from"./BrT_Sys2.js";import{a as j,_ as F,b as K,c as E}from"./z7PmsnBG.js";const I={slots:{root:"h-(--ui-header-height) shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5",left:"flex items-center gap-1.5 min-w-0",icon:"shrink-0 size-5 self-center me-1.5",title:"flex items-center gap-1.5 font-semibold text-highlighted truncate",center:"hidden lg:flex",right:"flex items-center shrink-0 gap-1.5",toggle:""},variants:{toggleSide:{left:{toggle:""},right:{toggle:""}}}},Q=Object.assign({inheritAttrs:!1},{__name:"UDashboardNavbar",props:{as:{type:null,required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},toggle:{type:[Boolean,Object],required:!1,default:!0},toggleSide:{type:String,required:!1,default:"left"},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(b){const q=b,r=P(),s=D("dashboardNavbar",q),p=C(),o=j({}),[y,u]=B(),t=T(()=>x({extend:I,...p.ui?.dashboardNavbar||{}})());return(l,v)=>(i(),k(N,null,[w(e(y),null,{default:z(()=>[a(l.$slots,"toggle",c(g({...e(o),ui:t.value})),()=>[e(s).toggle?(i(),h(F,S({key:0},typeof e(s).toggle=="object"?e(s).toggle:{},{side:e(s).toggleSide,"data-slot":"toggle",class:t.value.toggle({class:e(s).ui?.toggle,toggleSide:e(s).toggleSide})}),null,16,["side","class"])):f("",!0)])]),_:3}),w(e(M),S({as:e(s).as,"data-slot":"root"},l.$attrs,{class:t.value.root({class:[e(s).ui?.root,e(s).class]})}),{default:z(()=>[m("div",{"data-slot":"left",class:n(t.value.left({class:e(s).ui?.left}))},[e(s).toggleSide==="left"?(i(),h(e(u),{key:0})):f("",!0),a(l.$slots,"left",c(g(e(o))),()=>[a(l.$slots,"leading",c(g({...e(o),ui:t.value})),()=>[e(s).icon?(i(),h(O,{key:0,name:e(s).icon,"data-slot":"icon",class:n(t.value.icon({class:e(s).ui?.icon}))},null,8,["name","class"])):f("",!0)]),m("h1",{"data-slot":"title",class:n(t.value.title({class:e(s).ui?.title}))},[a(l.$slots,"title",{},()=>[R(V(e(s).title),1)])],2),a(l.$slots,"trailing",c(g({...e(o),ui:t.value})))])],2),r.default?(i(),k("div",{key:0,"data-slot":"center",class:n(t.value.center({class:e(s).ui?.center}))},[a(l.$slots,"default",c(g(e(o))))],2)):f("",!0),m("div",{"data-slot":"right",class:n(t.value.right({class:e(s).ui?.right}))},[a(l.$slots,"right",c(g(e(o)))),e(s).toggleSide==="right"?(i(),h(e(u),{key:0})):f("",!0)],2)]),_:3},16,["as","class"])],64))}}),Z={slots:{root:"relative flex flex-col min-w-0 min-h-svh lg:not-last:border-e lg:not-last:border-default shrink-0",body:"flex flex-col gap-4 sm:gap-6 flex-1 overflow-y-auto p-4 sm:p-6",handle:""},variants:{size:{true:{root:"w-full lg:w-(--width)"},false:{root:"flex-1"}}}},G=["data-dragging"],W=Object.assign({inheritAttrs:!1},{__name:"UDashboardPanel",props:{class:{type:null,required:!1},ui:{type:Object,required:!1},id:{type:String,required:!1},minSize:{type:Number,required:!1,default:15},maxSize:{type:Number,required:!1},defaultSize:{type:Number,required:!1},resizable:{type:Boolean,required:!1,default:!1}},setup(b){const r=D("dashboardPanel",b),s=C(),p=j({storageKey:"dashboard",unit:"%"}),o=`${p.storageKey}-panel-${r.id||A()}`,{el:y,size:u,isDragging:t,onMouseDown:l,onTouchStart:v,onDoubleClick:_}=K(o,U(()=>({...p,...r}))),$=T(()=>x({extend:Z,...s.ui?.dashboardPanel||{}})({size:!!u.value}));return(d,H)=>(i(),k(N,null,[m("div",S({id:o,ref_key:"el",ref:y,"data-slot":"root"},d.$attrs,{"data-dragging":e(t),class:$.value.root({class:[e(r).ui?.root,e(r).class]}),style:[e(u)?{"--width":`${e(u)}${e(p).unit}`}:void 0]}),[a(d.$slots,"default",{},()=>[a(d.$slots,"header"),m("div",{"data-slot":"body",class:n($.value.body({class:e(r).ui?.body}))},[a(d.$slots,"body")],2),a(d.$slots,"footer")])],16,G),a(d.$slots,"resize-handle",{onMouseDown:e(l),onTouchStart:e(v),onDoubleClick:e(_)},()=>[e(r).resizable?(i(),h(E,{key:0,"aria-controls":o,"data-slot":"handle",class:n($.value.handle({class:e(r).ui?.handle})),onMousedown:e(l),onTouchstart:e(v),onDblclick:e(_)},null,8,["class","onMousedown","onTouchstart","onDblclick"])):f("",!0)])],64))}});export{W as _,Q as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{x as U,y as g,z as q,A as Q,B as Z,D as ee,E as J,X as te,C as ne,c as E,d as ae,i as re,e as se,F as $,j as ie,G as R,f as Y,g as X,k as oe,r as O,n as P,s as T,l as W,H as z,I,J as le,K as ce,p as ue,t as he,P as de,v as ye}from"./
|
|
1
|
+
import{x as U,y as g,z as q,A as Q,B as Z,D as ee,E as J,X as te,C as ne,c as E,d as ae,i as re,e as se,F as $,j as ie,G as R,f as Y,g as X,k as oe,r as O,n as P,s as T,l as W,H as z,I,J as le,K as ce,p as ue,t as he,P as de,v as ye}from"./D811X8KM.js";import{d as fe,am as pe,C as ve,G as ge,ab as me,B as V,o as ke,c as xe,h as be,r as Se}from"./BrT_Sys2.js";function Ae(p,n,e){var r=null,s=g(!0),l=null,o=q,c=null,m=U(a);p=typeof p=="function"?p:p===void 0?Q:g(+p),n=typeof n=="function"?n:n===void 0?g(0):g(+n),e=typeof e=="function"?e:e===void 0?Z:g(+e);function a(t){var u,x,h,d=(t=ee(t)).length,f,v=!1,b,i=new Array(d),y=new Array(d);for(l==null&&(c=o(b=m())),u=0;u<=d;++u){if(!(u<d&&s(f=t[u],u,t))===v)if(v=!v)x=u,c.areaStart(),c.lineStart();else{for(c.lineEnd(),c.lineStart(),h=u-1;h>=x;--h)c.point(i[h],y[h]);c.lineEnd(),c.areaEnd()}v&&(i[u]=+p(f,u,t),y[u]=+n(f,u,t),c.point(r?+r(f,u,t):i[u],e?+e(f,u,t):y[u]))}if(b)return c=null,b+""||null}function k(){return J().defined(s).curve(o).context(l)}return a.x=function(t){return arguments.length?(p=typeof t=="function"?t:g(+t),r=null,a):p},a.x0=function(t){return arguments.length?(p=typeof t=="function"?t:g(+t),a):p},a.x1=function(t){return arguments.length?(r=t==null?null:typeof t=="function"?t:g(+t),a):r},a.y=function(t){return arguments.length?(n=typeof t=="function"?t:g(+t),e=null,a):n},a.y0=function(t){return arguments.length?(n=typeof t=="function"?t:g(+t),a):n},a.y1=function(t){return arguments.length?(e=t==null?null:typeof t=="function"?t:g(+t),a):e},a.lineX0=a.lineY0=function(){return k().x(p).y(n)},a.lineY1=function(){return k().x(p).y(e)},a.lineX1=function(){return k().x(r).y(n)},a.defined=function(t){return arguments.length?(s=typeof t=="function"?t:g(!!t),a):s},a.curve=function(t){return arguments.length?(o=t,l!=null&&(c=o(l)),a):o},a.context=function(t){return arguments.length?(t==null?l=c=null:c=o(l=t),a):l},a}const De=Object.assign(Object.assign({},te),{color:void 0,curveType:ne.MonotoneX,baseline:()=>0,opacity:1,cursor:null,line:!1,lineColor:void 0,lineWidth:2,lineDashArray:void 0,minHeight1Px:!1,minHeight:void 0,stackMinHeight:!1}),K=E`
|
|
2
2
|
label: area-component;
|
|
3
3
|
`,Ce=re`
|
|
4
4
|
:root {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as n,o as s,c as o,j as c,v as r,i as l,t as i,T as d,p as m}from"./
|
|
1
|
+
import{d as n,o as s,c as o,j as c,v as r,i as l,t as i,T as d,p as m}from"./BrT_Sys2.js";const _={class:"text-sm text-red-500"},p=n({__name:"ErrorState",props:{text:{},icon:{default:"i-lucide-circle-alert"},padded:{type:Boolean,default:!0}},setup(e){return(t,u)=>{const a=r;return s(),o("div",{role:"alert",class:m(["flex flex-col items-center justify-center gap-2 text-center",e.padded&&"p-4"])},[c(a,{name:e.icon,class:"size-5 text-red-400"},null,8,["name"]),l("p",_,i(e.text),1),d(t.$slots,"action")],2)}}}),f=Object.assign(p,{__name:"ErrorState"});export{f as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as C,b as S,o as r,f as k,g as s,i as y,O as U,c as g,F as j,y as F,z as p,j as o,D as I,q as v,m as h,A as w}from"./
|
|
1
|
+
import{d as C,b as S,o as r,f as k,g as s,i as y,O as U,c as g,F as j,y as F,z as p,j as o,D as I,q as v,m as h,A as w}from"./BrT_Sys2.js";import{_ as A}from"./ClJkng9p.js";import{_ as $}from"./Dz3Wbekz.js";import{_ as B}from"./B6hPf4UR.js";import{_ as L}from"./DvXvJzFP.js";import{_ as O}from"./Sgf5OLhm.js";import{A as P}from"./D7P0ML0H.js";const D={key:0,class:"flex flex-wrap gap-1 py-0.5"},H={key:1,class:"text-[var(--ui-text-muted)]"},N=C({__name:"TagsSelect",props:{modelValue:{},allTags:{}},emits:["update:modelValue","tagCreated"],setup(t,{emit:V}){const u=t,d=V,b=S();async function _(f){const n=f.trim();if(!n)return;const i=u.allTags.find(a=>a.text.toLowerCase()===n.toLowerCase());if(i){u.modelValue.some(a=>a.id===i.id)||d("update:modelValue",[...u.modelValue,i]);return}try{const a=await $fetch("/api/tags",{method:"POST",body:{text:n,color:P()}});d("tagCreated",a.tag),d("update:modelValue",[...u.modelValue,a.tag])}catch(a){const e=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;b.add({title:"Failed to create tag",description:e||"An error occurred",color:"error"})}}return(f,n)=>{const i=L,a=O;return r(),k(a,{"model-value":t.modelValue,items:t.allTags,multiple:"","create-item":"always","label-key":"text",by:"id",placeholder:"Select or create tags…",class:"w-full","onUpdate:modelValue":n[0]||(n[0]=e=>d("update:modelValue",e)),onCreate:_},{default:s(({modelValue:e})=>[e.length?(r(),g("div",D,[(r(!0),g(j,null,F(e,m=>(r(),k(i,{key:m.id,text:m.text,color:m.color},null,8,["text","color"]))),128))])):(r(),g("span",H,"Select or create tags…"))]),"item-leading":s(({item:e})=>[y("span",{class:"inline-block size-2 rounded-full shrink-0",style:U({backgroundColor:e.color})},null,4)]),_:1},8,["model-value","items"])}}}),q=Object.assign(N,{__name:"TagsSelect"}),z={class:"space-y-5"},E={class:"inline-flex items-center gap-1"},G={class:"inline-flex items-center gap-1"},J=C({__name:"ProjectFormFields",props:w({mode:{},allTags:{},hasToken:{type:Boolean,default:!1}},{name:{default:""},nameModifiers:{},label:{default:""},labelModifiers:{},description:{default:""},descriptionModifiers:{},diagnosisInstructions:{default:""},diagnosisInstructionsModifiers:{},scmToken:{default:""},scmTokenModifiers:{},tags:{default:()=>[]},tagsModifiers:{}}),emits:w(["tag-created"],["update:name","update:label","update:description","update:diagnosisInstructions","update:scmToken","update:tags"]),setup(t,{emit:V}){const u=V,d=p(t,"name"),b=p(t,"label"),_=p(t,"description"),f=p(t,"diagnosisInstructions"),n=p(t,"scmToken"),i=p(t,"tags");return(a,e)=>{const m=I,c=A,x=$,T=B,M=q;return r(),g("div",z,[t.mode==="create"?(r(),k(c,{key:0,label:"Project name",name:"name",required:"",description:"A unique identifier used to match test results from the reporter."},{default:s(()=>[o(m,{modelValue:d.value,"onUpdate:modelValue":e[0]||(e[0]=l=>d.value=l),placeholder:"e.g. my-app",class:"w-full"},null,8,["modelValue"])]),_:1})):v("",!0),o(c,{label:"Display label",name:"label",description:"A friendly name shown in the UI (defaults to project name if not set)."},{default:s(()=>[o(m,{modelValue:b.value,"onUpdate:modelValue":e[1]||(e[1]=l=>b.value=l),placeholder:"e.g. My Application",class:"w-full"},null,8,["modelValue"])]),_:1}),o(c,{label:"Description",name:"description",description:"Optional description of this project."},{default:s(()=>[o(x,{modelValue:_.value,"onUpdate:modelValue":e[2]||(e[2]=l=>_.value=l),placeholder:"Enter project description",rows:3,class:"w-full"},null,8,["modelValue"])]),_:1}),t.mode==="edit"?(r(),g(j,{key:1},[o(c,{name:"diagnosisInstructions",description:"Combined with the global instructions from Settings → AI."},{label:s(()=>[y("span",E,[e[7]||(e[7]=h(" AI diagnosis instructions ",-1)),o(T,{topic:"project.ai-instructions"})])]),default:s(()=>[o(x,{modelValue:f.value,"onUpdate:modelValue":e[3]||(e[3]=l=>f.value=l),placeholder:"e.g. This project tests the payment checkout flow. The backend uses Stripe for payments and the payment API is at /api/v2/payments. Database errors are usually caused by connection pool exhaustion under load.",rows:5,class:"w-full font-mono text-sm"},null,8,["modelValue"])]),_:1}),o(c,{name:"scmToken",description:t.hasToken?"Leave empty to keep the stored token, enter a new value to replace it, or save empty to remove it":"For GitHub, GitLab, or Bitbucket. Falls back to the global SCM token if not set."},{label:s(()=>[y("span",G,[e[8]||(e[8]=h("SCM token ",-1)),o(T,{topic:"project.scm-token"})])]),default:s(()=>[o(m,{modelValue:n.value,"onUpdate:modelValue":e[4]||(e[4]=l=>n.value=l),type:"password",placeholder:t.hasToken?"•••••••• (unchanged)":"ghp_..., glpat-..., or bitbucket token",class:"w-full font-mono"},null,8,["modelValue","placeholder"])]),_:1},8,["description"])],64)):v("",!0),o(c,{label:"Tags",name:"tags",description:"Select existing tags or type a new name and press Enter to create one."},{default:s(()=>[o(M,{modelValue:i.value,"onUpdate:modelValue":e[5]||(e[5]=l=>i.value=l),"all-tags":t.allTags,class:"w-full",onTagCreated:e[6]||(e[6]=l=>u("tag-created"))},null,8,["modelValue","all-tags"])]),_:1})])}}}),ee=Object.assign(J,{__name:"ProjectFormFields"});export{ee as _};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as _,o as l,f as p,g as u,j as d,v as f,p as g,k as a,h as o}from"./
|
|
1
|
+
import{d as _,o as l,f as p,g as u,j as d,v as f,p as g,k as a,h as o}from"./BrT_Sys2.js";import{_ as v}from"./DTH2lteW.js";import{g as x}from"./B6hPf4UR.js";const h=_({__name:"EnvManagedBadge",props:{envVars:{},size:{default:"sm"}},setup(r){const s=r,c=o(()=>{switch(s.size){case"xs":return"size-3";case"md":return"size-4";default:return"size-3.5"}}),i=o(()=>{if(!s.envVars?.length)return"Managed by environment variable";const e=s.envVars.map(n=>{const t=x(n).description;return t?`${n} — ${t}`:n});return e.length===1?`Set via ${e[0]}`:["Set via environment variables:",...e].join(`
|
|
2
2
|
`)});return(e,n)=>{const t=f,m=v;return l(),p(m,{text:a(i),ui:{content:"whitespace-pre-line max-w-sm"}},{default:u(()=>[d(t,{name:"i-lucide-lock",class:g(["text-gray-400",a(c)])},null,8,["class"])]),_:1},8,["text"])}}}),b=Object.assign(h,{__name:"EnvManagedBadge"});export{b as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as a,o,c as n,i as l,T as s,O as i,p as m}from"./
|
|
1
|
+
import{d as a,o,c as n,i as l,T as s,O as i,p as m}from"./BrT_Sys2.js";const r=a({__name:"TableScroller",props:{minWidth:{},bleed:{type:Boolean,default:!0}},setup(e){return(t,c)=>(o(),n("div",{class:m(["overflow-x-auto",e.bleed?"-mx-4 px-4 sm:mx-0 sm:px-0":""])},[l("div",{style:i(e.minWidth?{minWidth:e.minWidth}:void 0)},[s(t.$slots,"default")],4)],2))}}),p=Object.assign(r,{__name:"TableScroller"});export{p as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as z,X as ke,W as me,S as P,o as f,f as x,g as h,T as D,k as e,V as K,Y as le,ay as se,r as B,B as he,C as _e,aK as Ve,j as T,U as O,q as V,aA as ue,h as N,G as Be,aL as Te,ax as Se,Q as $e,bR as Le,bi as Z,b5 as ie,bS as Re,at as Ce,a7 as je,bk as Ge,bn as Ue,a$ as Qe,bT as qe,af as Ae,aC as re,c as $,F as j,bG as Xe,bU as Ye,a0 as Je,a1 as Ze,a3 as et,a4 as Ee,a5 as tt,b2 as Me,aG as at,bt as nt,v as W,p as q,aF as X,m as ce,t as ee,ae as oe,s as lt,aI as fe,b0 as pe,E as it,b1 as te,i as Y,y as ae,b3 as ve,bw as Oe,a6 as ot,by as rt,L as st,a9 as ut,K as dt}from"./BrT_Sys2.js";import{i as ct}from"./vzXhOO8R.js";import{_ as ft}from"./DTH2lteW.js";import{S as pt}from"./D_TbJDHY.js";import{u as vt}from"./DUe6xuKQ.js";const[ze,gt]=le("CollapsibleRoot");var ht=z({__name:"CollapsibleRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:open"],setup(s,{expose:r,emit:l}){const n=s,t=ke(n,"open",l,{defaultValue:n.defaultOpen,passive:n.open===void 0}),{disabled:u,unmountOnHide:d}=me(n);return gt({contentId:"",disabled:u,open:t,unmountOnHide:d,onOpenToggle:()=>{u.value||(t.value=!t.value)}}),r({open:t}),P(),(c,_)=>(f(),x(e(K),{as:c.as,"as-child":n.asChild,"data-state":e(t)?"open":"closed","data-disabled":e(u)?"":void 0},{default:h(()=>[D(c.$slots,"default",{open:e(t)})]),_:3},8,["as","as-child","data-state","data-disabled"]))}}),bt=ht,yt=z({inheritAttrs:!1,__name:"CollapsibleContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["contentFound"],setup(s,{emit:r}){const l=s,n=r,i=ze();i.contentId||=se(void 0,"reka-collapsible-content");const t=B(),{forwardRef:u,currentElement:d}=P(),c=B(0),_=B(0),I=N(()=>i.open.value),y=B(I.value),M=B();he(()=>[I.value,t.value?.present],async()=>{await Be();const p=d.value;if(!p)return;M.value=M.value||{transitionDuration:p.style.transitionDuration,animationName:p.style.animationName},p.style.transitionDuration="0s",p.style.animationName="none";const C=p.getBoundingClientRect();_.value=C.height,c.value=C.width,y.value||(p.style.transitionDuration=M.value.transitionDuration,p.style.animationName=M.value.animationName)},{immediate:!0});const L=N(()=>y.value&&i.open.value);return _e(()=>{requestAnimationFrame(()=>{y.value=!1})}),Ve(d,"beforematch",p=>{requestAnimationFrame(()=>{i.onOpenToggle(),n("contentFound")})}),(p,C)=>(f(),x(e(ue),{ref_key:"presentRef",ref:t,present:p.forceMount||e(i).open.value,"force-mount":!0},{default:h(({present:o})=>[T(e(K),O(p.$attrs,{id:e(i).contentId,ref:e(u),"as-child":l.asChild,as:p.as,hidden:o?void 0:e(i).unmountOnHide.value?"":"until-found","data-state":L.value?void 0:e(i).open.value?"open":"closed","data-disabled":e(i).disabled?.value?"":void 0,style:{"--reka-collapsible-content-height":`${_.value}px`,"--reka-collapsible-content-width":`${c.value}px`}}),{default:h(()=>[!e(i).unmountOnHide.value||o?D(p.$slots,"default",{key:0}):V("v-if",!0)]),_:2},1040,["id","as-child","as","hidden","data-state","data-disabled","style"])]),_:3},8,["present"]))}}),kt=yt,mt=z({__name:"CollapsibleTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(s){const r=s;P();const l=ze();return(n,i)=>(f(),x(e(K),{type:n.as==="button"?"button":void 0,as:n.as,"as-child":r.asChild,"aria-controls":e(l).contentId,"aria-expanded":e(l).open.value,"data-state":e(l).open.value?"open":"closed","data-disabled":e(l).disabled?.value?"":void 0,disabled:e(l).disabled?.value,onClick:e(l).onOpenToggle},{default:h(()=>[D(n.$slots,"default")]),_:3},8,["type","as","as-child","aria-controls","aria-expanded","data-state","data-disabled","disabled","onClick"]))}}),_t=mt;function Lt({type:s,defaultValue:r,modelValue:l}){const n=l||r;return l!==void 0||r!==void 0?Array.isArray(n)?"multiple":"single":s??"single"}function Ct({type:s,defaultValue:r,modelValue:l}){return s||Lt({type:s,defaultValue:r,modelValue:l})}function xt({type:s,defaultValue:r}){return r!==void 0?r:s==="single"?void 0:[]}function wt(s,r){const l=N(()=>Ct(s)),n=ke(s,"modelValue",r,{defaultValue:xt(s),passive:s.modelValue===void 0,deep:!0});function i(u){if(l.value==="single")n.value=Te(u,n.value)?void 0:u;else{const d=Array.isArray(n.value)?[...n.value||[]]:[n.value].filter(Boolean);if(ct(d,u)){const c=d.findIndex(_=>Te(_,u));d.splice(c,1)}else d.push(u);n.value=d}}const t=N(()=>l.value==="single");return{modelValue:n,changeModelValue:i,isSingle:t}}const[xe,It]=le("AccordionRoot");var Tt=z({__name:"AccordionRoot",props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"vertical"},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:["update:modelValue"],setup(s,{emit:r}){const l=s,n=r,{dir:i,disabled:t,unmountOnHide:u}=me(l),d=Se(i),{modelValue:c,changeModelValue:_,isSingle:I}=wt(l,n),{forwardRef:y,currentElement:M}=P();return It({disabled:t,direction:d,orientation:l.orientation,parentElement:M,isSingle:I,collapsible:l.collapsible,modelValue:c,changeModelValue:_,unmountOnHide:u}),(L,p)=>(f(),x(e(K),{ref:e(y),"as-child":L.asChild,as:L.as},{default:h(()=>[D(L.$slots,"default",{modelValue:e(c)})]),_:3},8,["as-child","as"]))}}),De=Tt,be=(function(s){return s.Open="open",s.Closed="closed",s})(be||{});const[Pe,qt]=le("AccordionItem");var Et=z({__name:"AccordionItem",props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s,{expose:r}){const l=s,n=xe(),i=N(()=>n.isSingle.value?l.value===n.modelValue.value:Array.isArray(n.modelValue.value)&&n.modelValue.value.includes(l.value)),t=N(()=>n.disabled.value||l.disabled),u=N(()=>t.value?"":void 0),d=N(()=>i.value?be.Open:be.Closed);r({open:i,dataDisabled:u});const{currentRef:c,currentElement:_}=P();qt({open:i,dataState:d,disabled:t,dataDisabled:u,triggerId:"",currentRef:c,currentElement:_,value:N(()=>l.value)});function I(y){const M=y.target;if(Array.from(n.parentElement.value?.querySelectorAll("[data-reka-collection-item]")??[]).findIndex(C=>C===M)===-1)return null;Le(y,M,n.parentElement.value,{arrowKeyOptions:n.orientation,dir:n.direction.value,focus:!0})}return(y,M)=>(f(),x(e(bt),{"data-orientation":e(n).orientation,"data-disabled":u.value,"data-state":d.value,disabled:t.value,open:i.value,as:l.as,"as-child":l.asChild,"unmount-on-hide":l.unmountOnHide??e(n).unmountOnHide.value,onKeydown:$e(I,["up","down","left","right","home","end"])},{default:h(()=>[D(y.$slots,"default",{open:i.value})]),_:3},8,["data-orientation","data-disabled","data-state","disabled","open","as","as-child","unmount-on-hide"]))}}),Mt=Et,Ot=z({__name:"AccordionContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,l=xe(),n=Pe();return P(),(i,t)=>(f(),x(e(kt),{role:"region","as-child":r.asChild,as:i.as,"force-mount":r.forceMount,"aria-labelledby":e(n).triggerId,"data-state":e(n).dataState.value,"data-disabled":e(n).dataDisabled.value,"data-orientation":e(l).orientation,style:{"--reka-accordion-content-width":"var(--reka-collapsible-content-width)","--reka-accordion-content-height":"var(--reka-collapsible-content-height)"},onContentFound:t[0]||(t[0]=u=>e(l).changeModelValue(e(n).value.value))},{default:h(()=>[D(i.$slots,"default")]),_:3},8,["as-child","as","force-mount","aria-labelledby","data-state","data-disabled","data-orientation"]))}}),Dt=Ot,Nt=z({__name:"AccordionTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,l=xe(),n=Pe();n.triggerId||=se(void 0,"reka-accordion-trigger");function i(){const t=l.isSingle.value&&n.open.value&&!l.collapsible;n.disabled.value||t||l.changeModelValue(n.value.value)}return(t,u)=>(f(),x(e(_t),{id:e(n).triggerId,ref:e(n).currentRef,"data-reka-collection-item":"",as:r.as,"as-child":r.asChild,"aria-disabled":e(n).disabled.value||void 0,"aria-expanded":e(n).open.value||!1,"data-disabled":e(n).dataDisabled.value,"data-orientation":e(l).orientation,"data-state":e(n).dataState.value,disabled:e(n).disabled.value,onClick:i},{default:h(()=>[D(t.$slots,"default")]),_:3},8,["id","as","as-child","aria-disabled","aria-expanded","data-disabled","data-orientation","data-state","disabled"]))}}),Ne=Nt;function de(s){return s?"open":"closed"}function Ke(s,r){return`${s}-trigger-${r}`}function we(s,r){return`${s}-content-${r}`}const Vt="navigationMenu.linkSelect",ne="navigationMenu.rootContentDismiss";function ye(s){const r=[],l=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;l.nextNode();)r.push(l.currentNode);return r}function Fe(s){const r=Z();return s.some(l=>l===r?!0:(l.focus(),Z()!==r))}function Bt(s){return s.forEach(r=>{r.dataset.tabindex=r.getAttribute("tabindex")||"",r.setAttribute("tabindex","-1")}),()=>{s.forEach(r=>{const l=r.dataset.tabindex;r.setAttribute("tabindex",l)})}}function He(s){return r=>r.pointerType==="mouse"?s(r):void 0}const[J,St]=le(["NavigationMenuRoot","NavigationMenuSub"],"NavigationMenuContext");var $t=z({__name:"NavigationMenuRoot",props:{modelValue:{type:String,required:!1,default:void 0},defaultValue:{type:String,required:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"horizontal"},delayDuration:{type:Number,required:!1,default:200},skipDelayDuration:{type:Number,required:!1,default:300},disableClickTrigger:{type:Boolean,required:!1,default:!1},disableHoverTrigger:{type:Boolean,required:!1,default:!1},disablePointerLeaveClose:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"nav"}},emits:["update:modelValue"],setup(s,{emit:r}){const l=s,i=ke(l,"modelValue",r,{defaultValue:l.defaultValue??"",passive:l.modelValue===void 0}),t=B(""),{forwardRef:u,currentElement:d}=P(),c=B(),_=B(),I=B(),{getItems:y,CollectionSlot:M}=ie({key:"NavigationMenu",isProvider:!0}),{delayDuration:L,skipDelayDuration:p,dir:C,disableClickTrigger:o,disableHoverTrigger:R,unmountOnHide:g}=me(l),b=Se(C),E=Re(!1,p),v=B(!1),w=N(()=>i.value!==""||E.value?150:L.value),a=je(k=>{if(typeof k=="string"){if(k===""&&v.value){v.value=!1;return}t.value=i.value,i.value=k,k===""&&(E.value=!0)}},w);Ce(()=>{if(!i.value)return;const k=y().map(S=>S.ref);I.value=k.find(S=>S.id.includes(i.value))}),Ve(d,ne,m),St({isRootMenu:!0,modelValue:i,previousValue:t,baseId:se(void 0,"reka-navigation-menu"),disableClickTrigger:o,disableHoverTrigger:R,dir:b,unmountOnHide:g,orientation:l.orientation,rootNavigationMenu:d,indicatorTrack:c,activeTrigger:I,onIndicatorTrackChange:k=>{c.value=k},viewport:_,onViewportChange:k=>{_.value=k},onTriggerEnter:k=>{i.value!==""?(v.value=!0,t.value=i.value,i.value=k):a(k)},onTriggerLeave:()=>{v.value=!1,a("")},onContentEnter:()=>{a()},onContentLeave:()=>{l.disablePointerLeaveClose||(v.value=!1,a(""))},onItemSelect:k=>{t.value=i.value,i.value=k},onItemDismiss:m});function m(){t.value=i.value,i.value=""}return(k,S)=>(f(),x(e(M),null,{default:h(()=>[T(e(K),{ref:e(u),as:k.as,"as-child":k.asChild,"data-orientation":k.orientation,dir:e(b),"data-reka-navigation-menu":""},{default:h(()=>[D(k.$slots,"default",{modelValue:e(i)})]),_:3},8,["as","as-child","data-orientation","dir"])]),_:3}))}}),Rt=$t;const[Ie,At]=le("NavigationMenuItem");var zt=z({__name:"NavigationMenuItem",props:{value:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},setup(s){const r=s;P();const{getItems:l}=ie({key:"NavigationMenu"}),n=J(),i=se(r.value),t=B(),u=B(),d=we(n.baseId,i);let c=()=>({});const _=B(!1);async function I(p="start"){const C=document.getElementById(d);if(C){c();const o=ye(C);o.length&&Fe(p==="start"?o:o.reverse())}}function y(){const p=document.getElementById(d);if(p){const C=ye(p);C.length&&(c=Bt(C))}}At({value:i,contentId:d,triggerRef:t,focusProxyRef:u,wasEscapeCloseRef:_,onEntryKeyDown:I,onFocusProxyEnter:I,onContentFocusOutside:y,onRootContentClose:y});function M(){n.onItemDismiss(),t.value?.focus()}function L(p){const C=Z();if(p.keyCode===32||p.key==="Enter")if(n.modelValue.value===i){M(),p.preventDefault();return}else{p.target.click(),p.preventDefault();return}const o=l().filter(g=>g.ref.parentElement?.hasAttribute("data-menu-item")).map(g=>g.ref);if(!o.includes(C))return;const R=Le(p,C,void 0,{itemsArray:o,loop:!1});R&&R?.focus(),p.preventDefault(),p.stopPropagation()}return(p,C)=>(f(),x(e(K),{"as-child":p.asChild,as:p.as,"data-menu-item":"",onKeydown:$e(L,["up","down","left","right","home","end","space"])},{default:h(()=>[D(p.$slots,"default")]),_:3},8,["as-child","as"]))}}),Pt=zt,Kt=z({__name:"NavigationMenuContentImpl",props:{disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(s,{emit:r}){const l=s,n=r,{getItems:i}=ie({key:"NavigationMenu"}),{forwardRef:t,currentElement:u}=P(),d=J(),c=Ie(),_=Ke(d.baseId,c.value),I=we(d.baseId,c.value),y=B(null),M=N(()=>{const g=i().map(m=>m.ref.id.split("trigger-")[1]);d.dir.value==="rtl"&&g.reverse();const b=g.indexOf(d.modelValue.value),E=g.indexOf(d.previousValue.value),v=c.value===d.modelValue.value,w=E===g.indexOf(c.value);if(!v&&!w)return y.value;const a=(()=>{if(b!==E){if(v&&E!==-1)return b>E?"from-end":"from-start";if(w&&b!==-1)return b>E?"to-start":"to-end"}return null})();return y.value=a,a});function L(g){if(n("focusOutside",g),n("interactOutside",g),g.detail.originalEvent.target.hasAttribute("data-navigation-menu-trigger")&&g.preventDefault(),!g.defaultPrevented){c.onContentFocusOutside();const E=g.target;d.rootNavigationMenu?.value?.contains(E)&&g.preventDefault()}}function p(g){if(n("pointerDownOutside",g),!g.defaultPrevented){const b=g.target,E=i().some(w=>w.ref.contains(b)),v=d.isRootMenu&&d.viewport.value?.contains(b);(E||v||!d.isRootMenu)&&g.preventDefault()}}Ce(g=>{const b=u.value;if(d.isRootMenu&&b){const E=()=>{d.onItemDismiss(),c.onRootContentClose(),b.contains(Z())&&c.triggerRef.value?.focus()};b.addEventListener(ne,E),g(()=>b.removeEventListener(ne,E))}});function C(g){n("escapeKeyDown",g),g.defaultPrevented||(d.onItemDismiss(),c.triggerRef?.value?.focus(),c.wasEscapeCloseRef.value=!0)}function o(g){if(g.target.closest("[data-reka-navigation-menu]")!==d.rootNavigationMenu.value)return;const b=g.altKey||g.ctrlKey||g.metaKey,E=g.key==="Tab"&&!b,v=ye(g.currentTarget);if(E){const a=Z(),m=v.findIndex(A=>A===a),S=g.shiftKey?v.slice(0,m).reverse():v.slice(m+1,v.length);if(Fe(S))g.preventDefault();else{c.focusProxyRef.value?.focus();return}}Le(g,Z(),void 0,{itemsArray:v,loop:!1,enableIgnoredElement:!0})?.focus()}function R(){if(d.modelValue.value!==c.value)return;const g=new Event(ne,{bubbles:!0,cancelable:!0});u.value?.dispatchEvent(g)}return(g,b)=>(f(),x(e(Ge),O({id:e(I),ref:e(t),"aria-labelledby":e(_),"data-motion":M.value,"data-state":e(de)(e(d).modelValue.value===e(c).value),"data-orientation":e(d).orientation},l,{onKeydown:o,onEscapeKeyDown:C,onPointerDownOutside:p,onFocusOutside:L,onDismiss:R}),{default:h(()=>[D(g.$slots,"default")]),_:3},16,["id","aria-labelledby","data-motion","data-state","data-orientation"]))}}),Ft=Kt,Ht=z({inheritAttrs:!1,__name:"NavigationMenuContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(s,{emit:r}){const l=s,n=r,i=Ue(Qe(l,"forceMount"),n),{forwardRef:t}=P(),u=J(),d=Ie(),c=N(()=>d.value===u.modelValue.value),_=N(()=>u.viewport.value&&!u.modelValue.value&&u.previousValue.value?u.previousValue.value===d.value:!1);return(I,y)=>(f(),x(Ae,{to:e(qe)&&e(u).viewport.value?e(u).viewport.value:"body",disabled:e(qe)&&e(u).viewport.value?!e(u).viewport.value:!0},[T(e(ue),{present:I.forceMount||c.value||_.value,"force-mount":!e(u).unmountOnHide.value},{default:h(({present:M})=>[T(Ft,O({ref:e(t),"data-state":e(de)(c.value),style:{pointerEvents:!c.value&&e(u).isRootMenu?"none":void 0}},{...I.$attrs,...e(i)},{hidden:!M,onPointerenter:y[0]||(y[0]=L=>e(u).onContentEnter(e(d).value)),onPointerleave:y[1]||(y[1]=L=>e(He)(()=>e(u).onContentLeave())(L)),onPointerDownOutside:y[2]||(y[2]=L=>n("pointerDownOutside",L)),onFocusOutside:y[3]||(y[3]=L=>n("focusOutside",L)),onInteractOutside:y[4]||(y[4]=L=>n("interactOutside",L))}),{default:h(()=>[D(I.$slots,"default")]),_:2},1040,["data-state","style","hidden"])]),_:3},8,["present","force-mount"])],8,["to","disabled"]))}}),Wt=Ht,jt=z({inheritAttrs:!1,__name:"NavigationMenuIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,{forwardRef:l}=P(),n=J(),i=B(),t=N(()=>n.orientation==="horizontal"),u=N(()=>!!n.modelValue.value),{activeTrigger:d}=n;function c(){d.value&&(i.value={size:t.value?d.value.offsetWidth:d.value.offsetHeight,position:t.value?d.value.offsetLeft:d.value.offsetTop})}return Ce(()=>{n.modelValue.value&&c()}),re(d,c),re(n.indicatorTrack,c),(_,I)=>e(n).indicatorTrack.value?(f(),x(Ae,{key:0,to:e(n).indicatorTrack.value},[T(e(ue),{present:_.forceMount||u.value},{default:h(()=>[T(e(K),O({ref:e(l),"aria-hidden":"true","data-state":u.value?"visible":"hidden","data-orientation":e(n).orientation,"as-child":r.asChild,as:_.as,style:{...i.value?{"--reka-navigation-menu-indicator-size":`${i.value.size}px`,"--reka-navigation-menu-indicator-position":`${i.value.position}px`}:{}}},_.$attrs),{default:h(()=>[D(_.$slots,"default")]),_:3},16,["data-state","data-orientation","as-child","as","style"])]),_:3},8,["present"])],8,["to"])):V("v-if",!0)}}),Gt=jt,Ut=z({__name:"NavigationMenuLink",props:{active:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"a"}},emits:["select"],setup(s,{emit:r}){const l=s,n=r,{CollectionItem:i}=ie({key:"NavigationMenu"});P();async function t(u){const d=new CustomEvent(Vt,{bubbles:!0,cancelable:!0,detail:{originalEvent:u}});if(n("select",d),!d.defaultPrevented&&!u.metaKey){const c=new CustomEvent(ne,{bubbles:!0,cancelable:!0});u.target?.dispatchEvent(c)}}return(u,d)=>(f(),x(e(i),null,{default:h(()=>[T(e(K),{as:u.as,"data-active":u.active?"":void 0,"aria-current":u.active?"page":void 0,"as-child":l.asChild,onClick:t},{default:h(()=>[D(u.$slots,"default")]),_:3},8,["as","data-active","aria-current","as-child"])]),_:3}))}}),ge=Ut,Qt=z({inheritAttrs:!1,__name:"NavigationMenuList",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"ul"}},setup(s){const r=s,l=J(),{forwardRef:n,currentElement:i}=P();return _e(()=>{l.onIndicatorTrackChange(i.value)}),(t,u)=>(f(),x(e(K),{ref:e(n),style:{position:"relative"}},{default:h(()=>[T(e(K),O(t.$attrs,{"as-child":r.asChild,as:t.as,"data-orientation":e(l).orientation}),{default:h(()=>[D(t.$slots,"default")]),_:3},16,["as-child","as","data-orientation"])]),_:3},512))}}),Xt=Qt;const Yt=["aria-owns"];var Jt=z({inheritAttrs:!1,__name:"NavigationMenuTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(s){const r=s,l=J(),n=Ie(),{CollectionItem:i}=ie({key:"NavigationMenu"}),{forwardRef:t,currentElement:u}=P(),d=B(""),c=B(""),_=Re(!1,300),I=B(!1),y=N(()=>n.value===l.modelValue.value);_e(()=>{n.triggerRef=u,d.value=Ke(l.baseId,n.value),c.value=we(l.baseId,n.value)});function M(){l.disableHoverTrigger.value||(I.value=!1,n.wasEscapeCloseRef.value=!1)}function L(b){if(!l.disableHoverTrigger.value&&b.pointerType==="mouse"){if(r.disabled||I.value||n.wasEscapeCloseRef.value||_.value)return;l.onTriggerEnter(n.value),_.value=!0}}function p(b){if(!l.disableHoverTrigger.value&&b.pointerType==="mouse"){if(r.disabled)return;l.onTriggerLeave(),_.value=!1}}function C(b){(!("pointerType"in b)||b.pointerType==="mouse")&&l.disableClickTrigger.value||_.value||(y.value?l.onItemSelect(""):l.onItemSelect(n.value),I.value=y.value)}function o(b){const v={horizontal:"ArrowDown",vertical:l.dir.value==="rtl"?"ArrowLeft":"ArrowRight"}[l.orientation];y.value&&b.key===v&&(n.onEntryKeyDown(),b.preventDefault(),b.stopPropagation())}function R(b){b&&(n.focusProxyRef.value=Ye(b))}function g(b){const E=document.getElementById(n.contentId),v=b.relatedTarget,w=v===u.value,a=E?.contains(v);(w||!a)&&n.onFocusProxyEnter(w?"start":"end")}return(b,E)=>(f(),$(j,null,[T(e(i),null,{default:h(()=>[T(e(K),O({id:d.value,ref:e(t),disabled:b.disabled,"data-disabled":b.disabled?"":void 0,"data-state":e(de)(y.value),"data-navigation-menu-trigger":"","aria-expanded":y.value,"aria-controls":c.value,"as-child":r.asChild,as:b.as},b.$attrs,{onPointerenter:M,onPointermove:L,onPointerleave:p,onClick:C,onKeydown:o}),{default:h(()=>[D(b.$slots,"default")]),_:3},16,["id","disabled","data-disabled","data-state","aria-expanded","aria-controls","as-child","as"])]),_:3}),y.value?(f(),$(j,{key:0},[T(e(Xe),{ref:R,"aria-hidden":"true",tabindex:0,onFocus:g}),e(l).viewport?(f(),$("span",{key:0,"aria-owns":c.value},null,8,Yt)):V("v-if",!0)],64)):V("v-if",!0)],64))}}),Zt=Jt,ea=z({inheritAttrs:!1,__name:"NavigationMenuViewport",props:{forceMount:{type:Boolean,required:!1},align:{type:String,required:!1,default:"center"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const r=s,{forwardRef:l,currentElement:n}=P(),i=J(),{activeTrigger:t,rootNavigationMenu:u,modelValue:d}=i,c=B(),_=B(),I=N(()=>!!i.modelValue.value);he(n,()=>{i.onViewportChange(n.value)});const y=B();he([d,I],()=>{Be(()=>{n.value&&requestAnimationFrame(()=>{const L=n.value?.querySelector("[data-state=open]");y.value=L})})},{immediate:!0});function M(){if(y.value&&t.value&&u.value){const L=document.documentElement.offsetWidth,p=document.documentElement.offsetHeight,C=u.value.getBoundingClientRect(),o=t.value.getBoundingClientRect(),{offsetWidth:R,offsetHeight:g}=y.value,b=o.left-C.left,E=o.top-C.top;let v=null,w=null;switch(r.align){case"start":v=b,w=E;break;case"end":v=b-R+o.width,w=E-g+o.height;break;default:v=b-R/2+o.width/2,w=E-g/2+o.height/2}const a=10;v+C.left<a&&(v=a-C.left);const m=v+C.left+R;m>L-a&&(v-=m-L+a,v<a-C.left&&(v=a-C.left)),w+C.top<a&&(w=a-C.top);const k=w+C.top+g;k>p-a&&(w-=k-p+a,w<a-C.top&&(w=a-C.top)),v=Math.round(v),w=Math.round(w),_.value={left:v,top:w}}}return re(y,()=>{y.value&&(c.value={width:y.value.offsetWidth,height:y.value.offsetHeight},M())}),re([globalThis.document?.body,u],()=>{M()}),(L,p)=>(f(),x(e(ue),{present:L.forceMount||I.value,"force-mount":!e(i).unmountOnHide.value,onAfterLeave:p[2]||(p[2]=()=>{c.value=void 0,_.value=void 0})},{default:h(({present:C})=>[T(e(K),O(L.$attrs,{ref:e(l),as:L.as,"as-child":L.asChild,"data-state":e(de)(I.value),"data-orientation":e(i).orientation,style:{pointerEvents:!I.value&&e(i).isRootMenu?"none":void 0,"--reka-navigation-menu-viewport-width":c.value?`${c.value?.width}px`:void 0,"--reka-navigation-menu-viewport-height":c.value?`${c.value?.height}px`:void 0,"--reka-navigation-menu-viewport-left":_.value?`${_.value?.left}px`:void 0,"--reka-navigation-menu-viewport-top":_.value?`${_.value?.top}px`:void 0},hidden:!C,onPointerenter:p[0]||(p[0]=o=>e(i).onContentEnter(e(i).modelValue.value)),onPointerleave:p[1]||(p[1]=o=>e(He)(()=>e(i).onContentLeave())(o))}),{default:h(()=>[D(L.$slots,"default")]),_:2},1040,["as","as-child","data-state","data-orientation","style","hidden"])]),_:3},8,["present","force-mount"]))}}),ta=ea;const aa={slots:{root:"relative flex gap-1.5 [&>div]:min-w-0",list:"isolate min-w-0",label:"w-full flex items-center gap-1.5 font-semibold text-xs/5 text-highlighted px-2.5 py-1.5",item:"min-w-0",link:"group relative w-full flex items-center gap-1.5 font-medium text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:outline-3",linkLeadingIcon:"shrink-0 size-5",linkLeadingAvatar:"shrink-0",linkLeadingAvatarSize:"2xs",linkLeadingChipSize:"sm",linkTrailing:"group ms-auto inline-flex gap-1.5 items-center",linkTrailingBadge:"shrink-0",linkTrailingBadgeSize:"sm",linkTrailingIcon:"size-5 transform shrink-0 group-data-[state=open]:rotate-180 transition-transform duration-200",linkLabel:"truncate",linkLabelExternalIcon:"inline-block size-3 align-top text-dimmed",childList:"isolate",childLabel:"text-xs text-highlighted",childItem:"",childLink:"group relative size-full flex items-start text-start text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:outline-3",childLinkWrapper:"min-w-0",childLinkIcon:"size-5 shrink-0",childLinkLabel:"truncate",childLinkLabelExternalIcon:"inline-block size-3 align-top text-dimmed",childLinkDescription:"text-muted",separator:"px-2 h-px bg-border",viewportWrapper:"absolute top-full start-0 flex w-full",viewport:"relative overflow-hidden bg-default shadow-lg rounded-md ring ring-default h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left,right] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] z-1",content:"",indicator:"absolute left-0 data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-2 w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",arrow:"relative top-[50%] size-2.5 rotate-45 border border-default bg-default z-1 rounded-xs"},variants:{color:{primary:{link:"before:outline-primary/25",childLink:"before:outline-primary/25"},secondary:{link:"before:outline-secondary/25",childLink:"before:outline-secondary/25"},success:{link:"before:outline-success/25",childLink:"before:outline-success/25"},info:{link:"before:outline-info/25",childLink:"before:outline-info/25"},warning:{link:"before:outline-warning/25",childLink:"before:outline-warning/25"},error:{link:"before:outline-error/25",childLink:"before:outline-error/25"},neutral:{link:"before:outline-inverted/25",childLink:"before:outline-inverted/25"}},highlightColor:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},variant:{pill:"",link:""},orientation:{horizontal:{root:"items-center justify-between",list:"flex items-center",item:"py-2",link:"px-2.5 py-1.5 before:inset-x-px before:inset-y-0",childList:"grid p-2",childLink:"px-3 py-2 gap-2 before:inset-x-px before:inset-y-0",childLinkLabel:"font-medium",content:"absolute top-0 start-0 w-full max-h-[70vh] overflow-y-auto"},vertical:{root:"flex-col",link:"flex-row px-2.5 py-1.5 before:inset-y-px before:inset-x-0",childLabel:"px-1.5 py-0.5",childLink:"p-1.5 gap-1.5 before:inset-y-px before:inset-x-0"}},contentOrientation:{horizontal:{viewportWrapper:"justify-center",content:"data-[motion=from-start]:animate-[enter-from-left_200ms_ease] data-[motion=from-end]:animate-[enter-from-right_200ms_ease] data-[motion=to-start]:animate-[exit-to-left_200ms_ease] data-[motion=to-end]:animate-[exit-to-right_200ms_ease]"},vertical:{viewport:"sm:w-(--reka-navigation-menu-viewport-width) left-(--reka-navigation-menu-viewport-left) rtl:left-auto rtl:right-[calc(100%-var(--reka-navigation-menu-viewport-left)-var(--reka-navigation-menu-viewport-width))]"}},active:{true:{childLink:"before:bg-elevated text-highlighted",childLinkIcon:"text-default"},false:{link:"text-muted",linkLeadingIcon:"text-dimmed",childLink:["hover:before:bg-elevated/50 text-default hover:text-highlighted","transition-colors before:transition-colors"],childLinkIcon:["text-dimmed group-hover:text-default","transition-colors"]}},disabled:{true:{link:"cursor-not-allowed opacity-75"}},highlight:{true:""},level:{true:""},collapsed:{true:""}},compoundVariants:[{orientation:"horizontal",contentOrientation:"horizontal",class:{childList:"grid-cols-2 gap-2"}},{orientation:"horizontal",contentOrientation:"vertical",class:{childList:"gap-1",content:"w-60"}},{orientation:"vertical",collapsed:!1,class:{childList:"ms-5 border-s border-default",childItem:"ps-1.5 -ms-px",content:"data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] data-[state=closed]:overflow-hidden"}},{orientation:"vertical",collapsed:!0,class:{link:"px-1.5",linkLabel:"hidden",linkTrailing:"hidden",content:"shadow-sm rounded-sm min-h-6 p-1"}},{orientation:"horizontal",highlight:!0,class:{link:["after:absolute after:-bottom-2 after:inset-x-2.5 after:block after:h-px after:rounded-full","after:transition-colors"]}},{orientation:"vertical",highlight:!0,level:!0,class:{link:["after:absolute after:-start-1.5 after:inset-y-0.5 after:block after:w-px after:rounded-full","after:transition-colors"]}},{disabled:!1,active:!1,variant:"pill",class:{link:["hover:text-highlighted hover:before:bg-elevated/50","transition-colors before:transition-colors"],linkLeadingIcon:["group-hover:text-default","transition-colors"]}},{disabled:!1,active:!1,variant:"pill",orientation:"horizontal",class:{link:"data-[state=open]:text-highlighted",linkLeadingIcon:"group-data-[state=open]:text-default"}},{disabled:!1,variant:"pill",highlight:!0,orientation:"horizontal",class:{link:"data-[state=open]:before:bg-elevated/50"}},{disabled:!1,variant:"pill",highlight:!1,active:!1,orientation:"horizontal",class:{link:"data-[state=open]:before:bg-elevated/50"}},{color:"primary",variant:"pill",active:!0,class:{link:"text-primary",linkLeadingIcon:"text-primary group-data-[state=open]:text-primary"}},{color:"secondary",variant:"pill",active:!0,class:{link:"text-secondary",linkLeadingIcon:"text-secondary group-data-[state=open]:text-secondary"}},{color:"success",variant:"pill",active:!0,class:{link:"text-success",linkLeadingIcon:"text-success group-data-[state=open]:text-success"}},{color:"info",variant:"pill",active:!0,class:{link:"text-info",linkLeadingIcon:"text-info group-data-[state=open]:text-info"}},{color:"warning",variant:"pill",active:!0,class:{link:"text-warning",linkLeadingIcon:"text-warning group-data-[state=open]:text-warning"}},{color:"error",variant:"pill",active:!0,class:{link:"text-error",linkLeadingIcon:"text-error group-data-[state=open]:text-error"}},{color:"neutral",variant:"pill",active:!0,class:{link:"text-highlighted",linkLeadingIcon:"text-highlighted group-data-[state=open]:text-highlighted"}},{variant:"pill",active:!0,highlight:!1,class:{link:"before:bg-elevated"}},{variant:"pill",active:!0,highlight:!0,disabled:!1,class:{link:["hover:before:bg-elevated/50","before:transition-colors"]}},{disabled:!1,active:!1,variant:"link",class:{link:["hover:text-highlighted","transition-colors"],linkLeadingIcon:["group-hover:text-default","transition-colors"]}},{disabled:!1,active:!1,variant:"link",orientation:"horizontal",class:{link:"data-[state=open]:text-highlighted",linkLeadingIcon:"group-data-[state=open]:text-default"}},{color:"primary",variant:"link",active:!0,class:{link:"text-primary",linkLeadingIcon:"text-primary group-data-[state=open]:text-primary"}},{color:"secondary",variant:"link",active:!0,class:{link:"text-secondary",linkLeadingIcon:"text-secondary group-data-[state=open]:text-secondary"}},{color:"success",variant:"link",active:!0,class:{link:"text-success",linkLeadingIcon:"text-success group-data-[state=open]:text-success"}},{color:"info",variant:"link",active:!0,class:{link:"text-info",linkLeadingIcon:"text-info group-data-[state=open]:text-info"}},{color:"warning",variant:"link",active:!0,class:{link:"text-warning",linkLeadingIcon:"text-warning group-data-[state=open]:text-warning"}},{color:"error",variant:"link",active:!0,class:{link:"text-error",linkLeadingIcon:"text-error group-data-[state=open]:text-error"}},{color:"neutral",variant:"link",active:!0,class:{link:"text-highlighted",linkLeadingIcon:"text-highlighted group-data-[state=open]:text-highlighted"}},{highlightColor:"primary",highlight:!0,level:!0,active:!0,class:{link:"after:bg-primary"}},{highlightColor:"secondary",highlight:!0,level:!0,active:!0,class:{link:"after:bg-secondary"}},{highlightColor:"success",highlight:!0,level:!0,active:!0,class:{link:"after:bg-success"}},{highlightColor:"info",highlight:!0,level:!0,active:!0,class:{link:"after:bg-info"}},{highlightColor:"warning",highlight:!0,level:!0,active:!0,class:{link:"after:bg-warning"}},{highlightColor:"error",highlight:!0,level:!0,active:!0,class:{link:"after:bg-error"}},{highlightColor:"neutral",highlight:!0,level:!0,active:!0,class:{link:"after:bg-inverted"}}],defaultVariants:{color:"primary",highlightColor:"primary",variant:"pill"}},sa=Object.assign({inheritAttrs:!1},{__name:"UNavigationMenu",props:{as:{type:null,required:!1},type:{type:null,required:!1,default:"multiple"},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},trailingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},items:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},orientation:{type:null,required:!1,default:"horizontal"},collapsed:{type:Boolean,required:!1},tooltip:{type:[Boolean,Object],required:!1},popover:{type:[Boolean,Object],required:!1},highlight:{type:Boolean,required:!1},highlightColor:{type:null,required:!1},content:{type:Object,required:!1},contentOrientation:{type:null,required:!1,default:"horizontal"},arrow:{type:Boolean,required:!1},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:Object,required:!1},delayDuration:{type:Number,required:!1,default:0},disableClickTrigger:{type:Boolean,required:!1},disableHoverTrigger:{type:Boolean,required:!1},skipDelayDuration:{type:Number,required:!1},disablePointerLeaveClose:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},disabled:{type:Boolean,required:!1},collapsible:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],setup(s,{emit:r}){const l=s,n=r,i=Je(),t=Ze("navigationMenu",l),u=et(),d=Ee(N(()=>({as:t.as,delayDuration:t.delayDuration,skipDelayDuration:t.skipDelayDuration,orientation:t.orientation,disableClickTrigger:t.disableClickTrigger,disableHoverTrigger:t.disableHoverTrigger,disablePointerLeaveClose:t.disablePointerLeaveClose,unmountOnHide:t.unmountOnHide})),n),c=Ee(tt(t,"collapsible","disabled","type","unmountOnHide"),n),_=ve(()=>t.content),I=ve(()=>Oe(typeof t.tooltip=="boolean"?{}:t.tooltip,{...t.orientation==="vertical"&&{delayDuration:0,content:{side:"right"}}})),y=ve(()=>Oe(typeof t.popover=="boolean"?{}:t.popover,{mode:"hover",content:{side:"right",align:"start",alignOffset:2}})),[M,L]=Me(),[p,C]=Me({props:{item:Object,index:Number,level:Number,listIndex:Number}}),o=N(()=>ot({extend:aa,...u.ui?.navigationMenu||{}})({orientation:t.orientation,contentOrientation:t.orientation==="vertical"?void 0:t.contentOrientation,collapsed:t.collapsed,color:t.color,variant:t.variant,highlight:t.highlight,highlightColor:t.highlightColor||t.color})),R=N(()=>t.items?.length?rt(t.items)?t.items:[t.items]:[]);function g(v,w,a,m){const k=R.value.length>1?`group-${m}-`:"";return X(v,t.valueKey)??(a>0?`${k}item-${a}-${w}`:`${k}item-${w}`)}function b(v,w=0,a=0){const m=v.reduce((k,S,A)=>((S.defaultOpen||S.open)&&k.push(g(S,A,w,a)),k),[]);return t.type==="single"?m[0]:m}function E(v,w){w.children?.length&&(t.orientation==="horizontal"?v.preventDefault():t.orientation==="vertical"&&!t.collapsed&&(v.preventDefault(),v.stopPropagation()))}return(v,w)=>(f(),$(j,null,[T(e(M),null,{default:h(({item:a,active:m,index:k})=>[D(v.$slots,a.slot||"item",{item:a,index:k,active:m,ui:o.value},()=>[D(v.$slots,a.slot?`${a.slot}-leading`:"item-leading",{item:a,active:m,index:k,ui:o.value},()=>[a.avatar?(f(),x(at,O({key:0,size:a.ui?.linkLeadingAvatarSize||e(t).ui?.linkLeadingAvatarSize||o.value.linkLeadingAvatarSize()},a.avatar,{"data-slot":"linkLeadingAvatar",class:o.value.linkLeadingAvatar({class:[e(t).ui?.linkLeadingAvatar,a.ui?.linkLeadingAvatar],active:m,disabled:!!a.disabled})}),null,16,["size","class"])):a.icon&&a.chip?(f(),x(nt,O({key:1,size:a.ui?.linkLeadingChipSize||e(t).ui?.linkLeadingChipSize||o.value.linkLeadingChipSize(),inset:""},typeof a.chip=="object"?a.chip:{},{"data-slot":"linkLeadingChip"}),{default:h(()=>[T(W,{name:a.icon,"data-slot":"linkLeadingIcon",class:q(o.value.linkLeadingIcon({class:[e(t).ui?.linkLeadingIcon,a.ui?.linkLeadingIcon],active:m,disabled:!!a.disabled}))},null,8,["name","class"])]),_:2},1040,["size"])):a.icon?(f(),x(W,{key:2,name:a.icon,"data-slot":"linkLeadingIcon",class:q(o.value.linkLeadingIcon({class:[e(t).ui?.linkLeadingIcon,a.ui?.linkLeadingIcon],active:m,disabled:!!a.disabled}))},null,8,["name","class"])):V("",!0)]),e(X)(a,e(t).labelKey)||i[a.slot?`${a.slot}-label`:"item-label"]?(f(),$("span",{key:0,"data-slot":"linkLabel",class:q(o.value.linkLabel({class:[e(t).ui?.linkLabel,a.ui?.linkLabel]}))},[D(v.$slots,a.slot?`${a.slot}-label`:"item-label",{item:a,active:m,index:k},()=>[ce(ee(e(X)(a,e(t).labelKey)),1)]),a.target==="_blank"&&e(t).externalIcon!==!1?(f(),x(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(u).ui.icons.external,"data-slot":"linkLabelExternalIcon",class:q(o.value.linkLabelExternalIcon({class:[e(t).ui?.linkLabelExternalIcon,a.ui?.linkLabelExternalIcon],active:m}))},null,8,["name","class"])):V("",!0)],2)):V("",!0),a.badge||a.badge===0||e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])||e(t).orientation==="vertical"&&a.children?.length||a.trailingIcon||i[a.slot?`${a.slot}-trailing`:"item-trailing"]?(f(),x(oe(e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?e(Ne):"span"),{key:1,as:e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?"span":void 0,"data-slot":"linkTrailing",class:q(o.value.linkTrailing({class:[e(t).ui?.linkTrailing,a.ui?.linkTrailing]})),onClick:S=>E(S,a)},{default:h(()=>[D(v.$slots,a.slot?`${a.slot}-trailing`:"item-trailing",{item:a,active:m,index:k,ui:o.value},()=>[a.badge||a.badge===0?(f(),x(lt,O({key:0,color:"neutral",variant:"outline",size:a.ui?.linkTrailingBadgeSize||e(t).ui?.linkTrailingBadgeSize||o.value.linkTrailingBadgeSize()},typeof a.badge=="string"||typeof a.badge=="number"?{label:a.badge}:a.badge,{"data-slot":"linkTrailingBadge",class:o.value.linkTrailingBadge({class:[e(t).ui?.linkTrailingBadge,a.ui?.linkTrailingBadge]})}),null,16,["size","class"])):V("",!0),e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])||e(t).orientation==="vertical"&&a.children?.length?(f(),x(W,{key:1,name:a.trailingIcon||e(t).trailingIcon||e(u).ui.icons.chevronDown,"data-slot":"linkTrailingIcon",class:q(o.value.linkTrailingIcon({class:[e(t).ui?.linkTrailingIcon,a.ui?.linkTrailingIcon],active:m}))},null,8,["name","class"])):a.trailingIcon?(f(),x(W,{key:2,name:a.trailingIcon,"data-slot":"linkTrailingIcon",class:q(o.value.linkTrailingIcon({class:[e(t).ui?.linkTrailingIcon,a.ui?.linkTrailingIcon],active:m}))},null,8,["name","class"])):V("",!0)])]),_:2},1032,["as","class","onClick"])):V("",!0)])]),_:3}),T(e(p),null,{default:h(({item:a,index:m,level:k=0,listIndex:S=0})=>[(f(),x(oe(e(t).orientation==="vertical"&&!e(t).collapsed?e(Mt):e(Pt)),O({as:"li"},e(t).orientation==="vertical"&&!e(t).collapsed?{disabled:!!a.disabled}:{},{value:g(a,m,k,S)}),{default:h(()=>[e(t).orientation==="vertical"&&a.type==="label"&&!e(t).collapsed?(f(),$("div",{key:0,"data-slot":"label",class:q(o.value.label({class:[e(t).ui?.label,a.ui?.label,a.class]}))},[T(e(L),{item:a,index:m},null,8,["item","index"])],2)):a.type!=="label"?(f(),x(fe,O({key:1},e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed&&a.type==="trigger"?{}:e(pe)(a),{custom:""}),{default:h(({active:A,...U})=>[(f(),x(oe(e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])?e(Zt):e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed&&!U.href?e(Ne):e(ge)),{"as-child":"",active:A||a.active,disabled:a.disabled,onSelect:a.onSelect},{default:h(()=>[e(t).orientation==="vertical"&&e(t).collapsed&&a.children?.length&&(e(t).popover||a.popover)?(f(),x(it,O({key:0},{...y.value,...typeof a.popover=="boolean"?{}:a.popover||{}},{ui:{content:o.value.content({class:[e(t).ui?.content,a.ui?.content]})}}),{content:h(({close:F})=>[D(v.$slots,a.slot?`${a.slot}-content`:"item-content",{item:a,active:A||a.active,index:m,ui:o.value,close:F},()=>[Y("ul",{"data-slot":"childList",class:q(o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]}))},[Y("li",{"data-slot":"childLabel",class:q(o.value.childLabel({class:[e(t).ui?.childLabel,a.ui?.childLabel]}))},ee(e(X)(a,e(t).labelKey)),3),(f(!0),$(j,null,ae(a.children,(H,G)=>(f(),$("li",{key:G,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,a.ui?.childItem]}))},[T(fe,O({ref_for:!0},e(pe)(H),{custom:""}),{default:h(({active:Q,...We})=>[T(e(ge),{"as-child":"",active:Q,onSelect:H.onSelect},{default:h(()=>[T(te,O({ref_for:!0},We,{"data-slot":"childLink",class:o.value.childLink({class:[e(t).ui?.childLink,a.ui?.childLink,H.class],active:Q})}),{default:h(()=>[H.icon?(f(),x(W,{key:0,name:H.icon,"data-slot":"childLinkIcon",class:q(o.value.childLinkIcon({class:[e(t).ui?.childLinkIcon,a.ui?.childLinkIcon],active:Q}))},null,8,["name","class"])):V("",!0),Y("span",{"data-slot":"childLinkLabel",class:q(o.value.childLinkLabel({class:[e(t).ui?.childLinkLabel,a.ui?.childLinkLabel],active:Q}))},[ce(ee(e(X)(H,e(t).labelKey))+" ",1),H.target==="_blank"&&e(t).externalIcon!==!1?(f(),x(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(u).ui.icons.external,"data-slot":"childLinkLabelExternalIcon",class:q(o.value.childLinkLabelExternalIcon({class:[e(t).ui?.childLinkLabelExternalIcon,a.ui?.childLinkLabelExternalIcon],active:Q}))},null,8,["name","class"])):V("",!0)],2)]),_:2},1040,["class"])]),_:2},1032,["active","onSelect"])]),_:2},1040)],2))),128))],2)])]),default:h(()=>[T(te,O(U,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:k>0})}),{default:h(()=>[T(e(L),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040,["ui"])):e(t).orientation==="vertical"&&e(t).collapsed&&(e(t).tooltip||a.tooltip)||e(t).orientation==="horizontal"&&a.tooltip?(f(),x(ft,O({key:1,text:e(X)(a,e(t).labelKey)},{...I.value,...typeof a.tooltip=="boolean"?{}:a.tooltip||{}}),{default:h(()=>[T(te,O(U,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:k>0})}),{default:h(()=>[T(e(L),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040,["text"])):(f(),x(te,O({key:2},U,{"data-slot":"link",class:o.value.link({class:[e(t).ui?.link,a.ui?.link,a.class],active:A||a.active,disabled:!!a.disabled,level:e(t).orientation==="horizontal"||k>0})}),{default:h(()=>[T(e(L),{item:a,active:A||a.active,index:m},null,8,["item","active","index"])]),_:2},1040,["class"]))]),_:2},1064,["active","disabled","onSelect"])),e(t).orientation==="horizontal"&&(a.children?.length||i[a.slot?`${a.slot}-content`:"item-content"])?(f(),x(e(Wt),O({key:0},_.value,{"data-slot":"content",class:o.value.content({class:[e(t).ui?.content,a.ui?.content]})}),{default:h(()=>[D(v.$slots,a.slot?`${a.slot}-content`:"item-content",{item:a,active:A||a.active,index:m,ui:o.value},()=>[Y("ul",{"data-slot":"childList",class:q(o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]}))},[(f(!0),$(j,null,ae(a.children,(F,H)=>(f(),$("li",{key:H,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,a.ui?.childItem]}))},[T(fe,O({ref_for:!0},e(pe)(F),{custom:""}),{default:h(({active:G,...Q})=>[T(e(ge),{"as-child":"",active:G,onSelect:F.onSelect},{default:h(()=>[T(te,O({ref_for:!0},Q,{"data-slot":"childLink",class:o.value.childLink({class:[e(t).ui?.childLink,a.ui?.childLink,F.class],active:G})}),{default:h(()=>[F.icon?(f(),x(W,{key:0,name:F.icon,"data-slot":"childLinkIcon",class:q(o.value.childLinkIcon({class:[e(t).ui?.childLinkIcon,a.ui?.childLinkIcon],active:G}))},null,8,["name","class"])):V("",!0),Y("div",{"data-slot":"childLinkWrapper",class:q(o.value.childLinkWrapper({class:[e(t).ui?.childLinkWrapper,a.ui?.childLinkWrapper]}))},[Y("p",{"data-slot":"childLinkLabel",class:q(o.value.childLinkLabel({class:[e(t).ui?.childLinkLabel,a.ui?.childLinkLabel],active:G}))},[ce(ee(e(X)(F,e(t).labelKey))+" ",1),F.target==="_blank"&&e(t).externalIcon!==!1?(f(),x(W,{key:0,name:typeof e(t).externalIcon=="string"?e(t).externalIcon:e(u).ui.icons.external,"data-slot":"childLinkLabelExternalIcon",class:q(o.value.childLinkLabelExternalIcon({class:[e(t).ui?.childLinkLabelExternalIcon,a.ui?.childLinkLabelExternalIcon],active:G}))},null,8,["name","class"])):V("",!0)],2),F.description?(f(),$("p",{key:0,"data-slot":"childLinkDescription",class:q(o.value.childLinkDescription({class:[e(t).ui?.childLinkDescription,a.ui?.childLinkDescription],active:G}))},ee(F.description),3)):V("",!0)],2)]),_:2},1040,["class"])]),_:2},1032,["active","onSelect"])]),_:2},1040)],2))),128))],2)])]),_:2},1040,["class"])):V("",!0)]),_:2},1040)):V("",!0),e(t).orientation==="vertical"&&a.children?.length&&!e(t).collapsed?(f(),x(e(Dt),{key:2,"data-slot":"content",class:q(o.value.content({class:[e(t).ui?.content,a.ui?.content]}))},{default:h(()=>[T(e(De),O({...e(c),defaultValue:b(a.children,k+1,S)},{as:"ul","data-slot":"childList",class:o.value.childList({class:[e(t).ui?.childList,a.ui?.childList]})}),{default:h(()=>[(f(!0),$(j,null,ae(a.children,(A,U)=>(f(),x(e(C),{key:U,item:A,index:U,level:k+1,"list-index":S,"data-slot":"childItem",class:q(o.value.childItem({class:[e(t).ui?.childItem,A.ui?.childItem]}))},null,8,["item","index","level","list-index","class"]))),128))]),_:2},1040,["class"])]),_:2},1032,["class"])):V("",!0)]),_:2},1040,["value"]))]),_:3}),T(e(Rt),O({"data-slot":"root"},{...e(d),...e(t).orientation==="horizontal"?{modelValue:e(t).modelValue,defaultValue:e(t).defaultValue}:{},...v.$attrs},{"data-collapsed":e(t).collapsed,class:o.value.root({class:[e(t).ui?.root,e(t).class]})}),{default:h(()=>[D(v.$slots,"list-leading"),(f(!0),$(j,null,ae(R.value,(a,m)=>(f(),$(j,{key:`list-${m}`},[(f(),x(oe(e(t).orientation==="vertical"?e(De):e(Xt)),O({ref_for:!0},e(t).orientation==="vertical"&&!e(t).collapsed?{...e(c),modelValue:e(t).modelValue,defaultValue:e(t).defaultValue??b(a,0,m)}:{},{as:"ul","data-slot":"list",class:o.value.list({class:e(t).ui?.list})}),{default:h(()=>[(f(!0),$(j,null,ae(a,(k,S)=>(f(),x(e(C),{key:`list-${m}-${S}`,item:k,index:S,"list-index":m,"data-slot":"item",class:q(o.value.item({class:[e(t).ui?.item,k.ui?.item]}))},null,8,["item","index","list-index","class"]))),128))]),_:2},1040,["class"])),e(t).orientation==="vertical"&&m<R.value.length-1?(f(),$("div",{key:0,"data-slot":"separator",class:q(o.value.separator({class:e(t).ui?.separator}))},null,2)):V("",!0)],64))),128)),D(v.$slots,"list-trailing"),e(t).orientation==="horizontal"?(f(),$("div",{key:0,"data-slot":"viewportWrapper",class:q(o.value.viewportWrapper({class:e(t).ui?.viewportWrapper}))},[e(t).arrow?(f(),x(e(Gt),{key:0,"data-slot":"indicator",class:q(o.value.indicator({class:e(t).ui?.indicator}))},{default:h(()=>[Y("div",{"data-slot":"arrow",class:q(o.value.arrow({class:e(t).ui?.arrow}))},null,2)]),_:1},8,["class"])):V("",!0),T(e(ta),{"data-slot":"viewport",class:q(o.value.viewport({class:e(t).ui?.viewport}))},null,8,["class"])],2)):V("",!0)]),_:3},16,["data-collapsed","class"])],64))}});function ua(s){const{isAdmin:r}=st(),l=dt(),n=N(()=>!l.public.authEnabled||r.value),i=vt();return N(()=>{const u=n.value,d=s?ut(s):void 0;return pt.filter(c=>(!c.roles||u)&&!(i&&c.authOnly)).map(c=>{const _=d?.[c.id]??!1;return{label:c.label,icon:c.icon,to:c.to,..._?{badge:{icon:"i-lucide-lock",color:"neutral"}}:{}}})})}export{sa as _,ua as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as ee,w as te,b as oe,L as ae,c as A,i as n,k as t,f as u,g as s,j as a,F as le,P as se,o as d,_ as ne,q as m,t as j,O as re,v as ie,D as ce,M as q,ai as M,m as S,h as P,r as v,I as B,K as de}from"./
|
|
1
|
+
import{d as ee,w as te,b as oe,L as ae,c as A,i as n,k as t,f as u,g as s,j as a,F as le,P as se,o as d,_ as ne,q as m,t as j,O as re,v as ie,D as ce,M as q,ai as M,m as S,h as P,r as v,I as B,K as de}from"./BrT_Sys2.js";import{_ as ue}from"./DvXvJzFP.js";import{_ as me}from"./DJHNEqb7.js";import{_ as pe}from"./CHIbdzqp.js";import{_ as ge}from"./ClJkng9p.js";import{o as fe,s as N,_ as xe}from"./DwZiG9xH.js";import{_ as _e}from"./BciovqwK.js";import{p as ve}from"./D7P0ML0H.js";import{u as be}from"./Dvc1aWpA.js";import"./BxRsAYRS.js";import"./B6hPf4UR.js";import"./r3SBLxtE.js";import"./DtXREpk_.js";import"./CoKEjZX7.js";import"./rw7Hdll3.js";const ye={class:"space-y-6"},Te={class:"flex items-center gap-2"},Ce={class:"text-sm font-mono text-muted"},ke={class:"text-sm text-muted"},he={class:"flex gap-1 justify-end"},$e={class:"text-center py-12"},Ue={class:"flex justify-center mb-4"},Ve={class:"flex items-center gap-3"},we={key:0,class:"mt-2"},Ae={class:"flex items-center gap-3"},De={key:0,class:"mt-2"},b="#6366f1",Ge=ee({__name:"tags",async setup(Fe){let y,D;const{data:z,refresh:U}=([y,D]=te(()=>be("/api/tags","$WIWNTsOq96")),y=await y,D(),y),p=oe(),{authState:I}=ae(),K=de(),V=P(()=>z.value?.tags||[]),T=P(()=>K.public.authEnabled?I.value.user?.role==="administrator":!0),L=[{accessorKey:"text",header:"Tag"},{accessorKey:"color",header:"Color"},{accessorKey:"createdAt",header:"Created"},{accessorKey:"actions",header:""}],g=v(!1),F=fe({text:N().min(1,"Tag text is required").max(50,"Tag text must be at most 50 characters"),color:N().min(1,"Color is required")}),r=B({text:"",color:b}),x=v(!1),C=v(null),i=B({text:"",color:b});function R(l){C.value=l,i.text=l.text,i.color=l.color,x.value=!0}async function W(){try{await $fetch("/api/tags",{method:"POST",body:r}),p.add({title:"Tag created",description:`Tag "${r.text}" has been created successfully`,color:"success"}),g.value=!1,r.text="",r.color=b,await U()}catch(l){const e=l&&typeof l=="object"&&"data"in l?l.data?.message:void 0;p.add({title:"Failed to create tag",description:e||"An error occurred",color:"error"})}}async function G(){if(C.value)try{await $fetch(`/api/tags/${C.value.id}`,{method:"PUT",body:{text:i.text,color:i.color}}),p.add({title:"Tag updated",description:"Tag has been updated successfully",color:"success"}),x.value=!1,C.value=null,await U()}catch(l){const e=l&&typeof l=="object"&&"data"in l?l.data?.message:void 0;p.add({title:"Failed to update tag",description:e||"An error occurred",color:"error"})}}const _=v(!1),f=v(null);function H(l){f.value=l,_.value=!0}async function J(){const l=f.value;if(l){_.value=!1,f.value=null;try{await $fetch(`/api/tags/${l.id}`,{method:"DELETE"}),p.add({title:"Tag deleted",description:`Tag "${l.text}" has been deleted`,color:"success"}),await U()}catch(e){const c=e&&typeof e=="object"&&"data"in e?e.data?.message:void 0;p.add({title:"Failed to delete tag",description:c||"An error occurred",color:"error"})}}}return(l,e)=>{const c=ne,k=ue,Q=me,E=pe,X=ie,h=ce,$=ge,O=xe,w=_e,Y=se;return d(),A(le,null,[n("div",ye,[t(V).length>0?(d(),u(E,{key:0,title:"Tags",count:t(V).length,help:"settings.tags"},{actions:s(()=>[t(T)?(d(),u(c,{key:0,label:"Add tag",icon:"i-lucide-tag",size:"sm",onClick:e[0]||(e[0]=o=>g.value=!0)})):m("",!0)]),default:s(()=>[a(Q,{data:t(V),columns:L},{"text-cell":s(({row:o})=>[a(k,{text:o.original.text,color:o.original.color},null,8,["text","color"])]),"color-cell":s(({row:o})=>[n("div",Te,[n("span",{class:"inline-block w-4 h-4 rounded-full border border-black/10",style:re({backgroundColor:o.original.color})},null,4),n("span",Ce,j(o.original.color),1)])]),"createdAt-cell":s(({row:o})=>[n("span",ke,j(("prettyDateFormat"in l?l.prettyDateFormat:t(ve))(o.original.createdAt,{dateOnly:!0})),1)]),"actions-cell":s(({row:o})=>[n("div",he,[t(T)?(d(),u(c,{key:0,icon:"i-lucide-pencil",color:"neutral",variant:"ghost",size:"sm",onClick:Z=>R(o.original)},null,8,["onClick"])):m("",!0),t(T)?(d(),u(c,{key:1,icon:"i-lucide-trash-2",color:"error",variant:"ghost",size:"sm",onClick:Z=>H(o.original)},null,8,["onClick"])):m("",!0)])]),_:1},8,["data"])]),_:1},8,["count"])):(d(),u(E,{key:1,title:"Tags",count:0,help:"settings.tags"},{default:s(()=>[n("div",$e,[n("div",Ue,[a(X,{name:"i-lucide-tags",class:"text-4xl text-muted"})]),e[14]||(e[14]=n("h3",{class:"text-lg font-semibold mb-2"},"No tags yet",-1)),e[15]||(e[15]=n("p",{class:"text-muted mb-4"},"Create tags to categorize and filter your projects",-1)),t(T)?(d(),u(c,{key:0,label:"Add tag",icon:"i-lucide-tag",onClick:e[1]||(e[1]=o=>g.value=!0)})):m("",!0)])]),_:1}))]),a(Y,null,{default:s(()=>[a(w,{open:t(g),title:"Add new tag","onUpdate:open":e[6]||(e[6]=o=>g.value=o)},{body:s(()=>[a(O,{schema:t(F),state:t(r)},{default:s(()=>[a($,{label:"Tag text",name:"text",required:"",class:"mb-4"},{default:s(()=>[a(h,{modelValue:t(r).text,"onUpdate:modelValue":e[2]||(e[2]=o=>t(r).text=o),placeholder:"Enter tag name"},null,8,["modelValue"])]),_:1}),a($,{label:"Color",name:"color",required:"",class:"mb-4"},{default:s(()=>[n("div",Ve,[q(n("input",{"onUpdate:modelValue":e[3]||(e[3]=o=>t(r).color=o),type:"color",class:"w-10 h-10 rounded cursor-pointer border border-default","aria-label":"Pick tag color"},null,512),[[M,t(r).color]]),a(h,{modelValue:t(r).color,"onUpdate:modelValue":e[4]||(e[4]=o=>t(r).color=o),class:"flex-1 font-mono",placeholder:"#6366f1"},null,8,["modelValue"])])]),_:1}),t(r).text?(d(),A("div",we,[e[16]||(e[16]=n("span",{class:"text-sm text-muted mr-2"},"Preview:",-1)),a(k,{text:t(r).text,color:t(r).color||b},null,8,["text","color"])])):m("",!0)]),_:1},8,["schema","state"])]),footer:s(()=>[a(c,{type:"button",color:"neutral",variant:"ghost",label:"Cancel",onClick:e[5]||(e[5]=o=>g.value=!1)}),a(c,{type:"submit",label:"Create tag",icon:"i-lucide-tag",onClick:W})]),_:1},8,["open"]),a(w,{open:t(x),title:"Edit tag","onUpdate:open":e[11]||(e[11]=o=>x.value=o)},{body:s(()=>[a(O,{schema:t(F),state:t(i)},{default:s(()=>[a($,{label:"Tag text",name:"text",required:"",class:"mb-4"},{default:s(()=>[a(h,{modelValue:t(i).text,"onUpdate:modelValue":e[7]||(e[7]=o=>t(i).text=o),placeholder:"Enter tag name"},null,8,["modelValue"])]),_:1}),a($,{label:"Color",name:"color",required:"",class:"mb-4"},{default:s(()=>[n("div",Ae,[q(n("input",{"onUpdate:modelValue":e[8]||(e[8]=o=>t(i).color=o),type:"color",class:"w-10 h-10 rounded cursor-pointer border border-default","aria-label":"Pick tag color"},null,512),[[M,t(i).color]]),a(h,{modelValue:t(i).color,"onUpdate:modelValue":e[9]||(e[9]=o=>t(i).color=o),class:"flex-1 font-mono",placeholder:"#6366f1"},null,8,["modelValue"])])]),_:1}),t(i).text?(d(),A("div",De,[e[17]||(e[17]=n("span",{class:"text-sm text-muted mr-2"},"Preview:",-1)),a(k,{text:t(i).text,color:t(i).color||b},null,8,["text","color"])])):m("",!0)]),_:1},8,["schema","state"])]),footer:s(()=>[a(c,{type:"button",color:"neutral",variant:"ghost",label:"Cancel",onClick:e[10]||(e[10]=o=>x.value=!1)}),a(c,{type:"submit",label:"Save changes",icon:"i-lucide-check",onClick:G})]),_:1},8,["open"]),a(w,{open:t(_),title:"Delete tag","onUpdate:open":e[13]||(e[13]=o=>_.value=o)},{body:s(()=>[n("p",null,[e[18]||(e[18]=S(" Are you sure you want to delete tag ",-1)),t(f)?(d(),u(k,{key:0,text:t(f).text,color:t(f).color,class:"inline-flex"},null,8,["text","color"])):m("",!0),e[19]||(e[19]=S("? It will be removed from all projects. ",-1))])]),footer:s(()=>[a(c,{color:"neutral",variant:"ghost",label:"Cancel",onClick:e[12]||(e[12]=o=>_.value=!1)}),a(c,{color:"error",label:"Delete",icon:"i-lucide-trash-2",onClick:J})]),_:1},8,["open"])]),_:1})],64)}}});export{Ge as default};
|