@selvajs/selva 4.4.0 → 4.5.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/build/client/_app/immutable/chunks/{j-UbJSFZ.js → D_C_YIH8.js} +1 -1
- package/build/client/_app/immutable/chunks/D_C_YIH8.js.br +0 -0
- package/build/client/_app/immutable/chunks/D_C_YIH8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D-jj-Uww.js → DnURu9OT.js} +1 -1
- package/build/client/_app/immutable/chunks/DnURu9OT.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnURu9OT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{B-fj8b7K.js → DsuMOTav.js} +1 -1
- package/build/client/_app/immutable/chunks/DsuMOTav.js.br +0 -0
- package/build/client/_app/immutable/chunks/DsuMOTav.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CdGNQgyw.js → Dtx1M6QG.js} +1 -1
- package/build/client/_app/immutable/chunks/Dtx1M6QG.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dtx1M6QG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D7wuDTx2.js → DuHtWI31.js} +1 -1
- package/build/client/_app/immutable/chunks/DuHtWI31.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuHtWI31.js.gz +0 -0
- package/build/client/_app/immutable/chunks/U_alzAUv.js +3 -0
- package/build/client/_app/immutable/chunks/U_alzAUv.js.br +0 -0
- package/build/client/_app/immutable/chunks/U_alzAUv.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CsJrZk_i.js → app.DXOixdTQ.js} +2 -2
- package/build/client/_app/immutable/entry/app.DXOixdTQ.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DXOixdTQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.lHsRDqJ_.js +1 -0
- package/build/client/_app/immutable/entry/start.lHsRDqJ_.js.br +2 -0
- package/build/client/_app/immutable/entry/start.lHsRDqJ_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.wSjQD-9E.js → 1.Cgpx1yHy.js} +1 -1
- package/build/client/_app/immutable/nodes/1.Cgpx1yHy.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Cgpx1yHy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.cZPocN3B.js → 11.BIaqG9xz.js} +1 -1
- package/build/client/_app/immutable/nodes/11.BIaqG9xz.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BIaqG9xz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{13.CZxapN5I.js → 13.ByWkldPP.js} +1 -1
- package/build/client/_app/immutable/nodes/13.ByWkldPP.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.ByWkldPP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{14.ChDvrNjp.js → 14.87fRSA-Y.js} +1 -1
- package/build/client/_app/immutable/nodes/14.87fRSA-Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.87fRSA-Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{16.Cewxge5m.js → 16.DWG3CLUv.js} +1 -1
- package/build/client/_app/immutable/nodes/16.DWG3CLUv.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.DWG3CLUv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.NlvAvTSP.js → 17.CgiETa37.js} +1 -1
- package/build/client/_app/immutable/nodes/17.CgiETa37.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.CgiETa37.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{19.qNGlcD7l.js → 19.DO2ja5iW.js} +1 -1
- package/build/client/_app/immutable/nodes/19.DO2ja5iW.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.DO2ja5iW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.CgydK0lI.js → 2.DIAYMP4_.js} +1 -1
- package/build/client/_app/immutable/nodes/2.DIAYMP4_.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DIAYMP4_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.DYgQYcr-.js +5021 -0
- package/build/client/_app/immutable/nodes/20.DYgQYcr-.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.DYgQYcr-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{21.CdZLvQ68.js → 21.CTwryTPC.js} +1 -1
- package/build/client/_app/immutable/nodes/21.CTwryTPC.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.CTwryTPC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{23.CmSUvEas.js → 23.uUN6jlSq.js} +1 -1
- package/build/client/_app/immutable/nodes/23.uUN6jlSq.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.uUN6jlSq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{24.BLrWFvpH.js → 24.cDDvPQLh.js} +1 -1
- package/build/client/_app/immutable/nodes/24.cDDvPQLh.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.cDDvPQLh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{27.DF8_FNgX.js → 27.lHQ_8tDM.js} +1 -1
- package/build/client/_app/immutable/nodes/27.lHQ_8tDM.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.lHQ_8tDM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{28.u-nHYDMp.js → 28.DZO_WZjq.js} +1 -1
- package/build/client/_app/immutable/nodes/28.DZO_WZjq.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.DZO_WZjq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{29.zcWmCBtG.js → 29.BBkvtbbm.js} +1 -1
- package/build/client/_app/immutable/nodes/29.BBkvtbbm.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.BBkvtbbm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.CGYG-fBC.js → 3.Clu5JbAY.js} +1 -1
- package/build/client/_app/immutable/nodes/3.Clu5JbAY.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Clu5JbAY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{30.CFRFw3XM.js → 30.CunrYTKW.js} +1 -1
- package/build/client/_app/immutable/nodes/30.CunrYTKW.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CunrYTKW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.BIDVFrKz.js → 5.CwEyn2eq.js} +1 -1
- package/build/client/_app/immutable/nodes/5.CwEyn2eq.js.br +1 -0
- package/build/client/_app/immutable/nodes/5.CwEyn2eq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.G8VTWVfQ.js → 6.Cybg-4zL.js} +1 -1
- package/build/client/_app/immutable/nodes/6.Cybg-4zL.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Cybg-4zL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.DaJ_YKCW.js → 7.U-nwvAMy.js} +1 -1
- package/build/client/_app/immutable/nodes/7.U-nwvAMy.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.U-nwvAMy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.c3ONIRmr.js → 8.Ds78IC3h.js} +1 -1
- package/build/client/_app/immutable/nodes/8.Ds78IC3h.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Ds78IC3h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.BucDMSoZ.js → 9.B4Dh5-cJ.js} +1 -1
- package/build/client/_app/immutable/nodes/9.B4Dh5-cJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.B4Dh5-cJ.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-DIp1vX-0.js → 0-DhT7yxre.js} +2 -2
- package/build/server/chunks/{0-DIp1vX-0.js.map → 0-DhT7yxre.js.map} +1 -1
- package/build/server/chunks/{1-2fHcSF9r.js → 1-B3qAsEuf.js} +2 -2
- package/build/server/chunks/{1-2fHcSF9r.js.map → 1-B3qAsEuf.js.map} +1 -1
- package/build/server/chunks/{10-D4slAhbl.js → 10-YMBFU3cy.js} +5 -5
- package/build/server/chunks/{10-D4slAhbl.js.map → 10-YMBFU3cy.js.map} +1 -1
- package/build/server/chunks/{11-BIn4AcHz.js → 11-DEH3nbKm.js} +6 -6
- package/build/server/chunks/{11-BIn4AcHz.js.map → 11-DEH3nbKm.js.map} +1 -1
- package/build/server/chunks/{12-BTFEd1df.js → 12-Bra8rAOu.js} +2 -2
- package/build/server/chunks/{12-BTFEd1df.js.map → 12-Bra8rAOu.js.map} +1 -1
- package/build/server/chunks/{13-DoxggNWI.js → 13-D_djeolg.js} +3 -3
- package/build/server/chunks/{13-DoxggNWI.js.map → 13-D_djeolg.js.map} +1 -1
- package/build/server/chunks/{14-dn1AxT2y.js → 14-B1A-3AIw.js} +3 -3
- package/build/server/chunks/{14-dn1AxT2y.js.map → 14-B1A-3AIw.js.map} +1 -1
- package/build/server/chunks/{15-CwlxfscS.js → 15-KF7YQWQR.js} +3 -3
- package/build/server/chunks/{15-CwlxfscS.js.map → 15-KF7YQWQR.js.map} +1 -1
- package/build/server/chunks/{16-CYmJwOTN.js → 16-27Ug2Gl4.js} +6 -6
- package/build/server/chunks/{16-CYmJwOTN.js.map → 16-27Ug2Gl4.js.map} +1 -1
- package/build/server/chunks/{17-2g3z6ge8.js → 17-B9EWzdfY.js} +2 -2
- package/build/server/chunks/{17-2g3z6ge8.js.map → 17-B9EWzdfY.js.map} +1 -1
- package/build/server/chunks/{18-DS1IDuFS.js → 18-Lwe4TEuf.js} +2 -2
- package/build/server/chunks/{18-DS1IDuFS.js.map → 18-Lwe4TEuf.js.map} +1 -1
- package/build/server/chunks/{19-D7P-oKm4.js → 19-DFpWVk9Q.js} +3 -3
- package/build/server/chunks/{19-D7P-oKm4.js.map → 19-DFpWVk9Q.js.map} +1 -1
- package/build/server/chunks/{2-x36H91MM.js → 2-psSdZh8h.js} +6 -6
- package/build/server/chunks/{2-x36H91MM.js.map → 2-psSdZh8h.js.map} +1 -1
- package/build/server/chunks/{20-Cb9g4A7Q.js → 20-B3RVyzHq.js} +9 -9
- package/build/server/chunks/{20-Cb9g4A7Q.js.map → 20-B3RVyzHq.js.map} +1 -1
- package/build/server/chunks/{21-CpI2moj3.js → 21-DjJlF-s8.js} +3 -3
- package/build/server/chunks/{21-CpI2moj3.js.map → 21-DjJlF-s8.js.map} +1 -1
- package/build/server/chunks/{23-cbMfA5sY.js → 23-Cv-iXsup.js} +6 -6
- package/build/server/chunks/{23-cbMfA5sY.js.map → 23-Cv-iXsup.js.map} +1 -1
- package/build/server/chunks/{24-CA3DPT0t.js → 24-C9N_eRrr.js} +4 -4
- package/build/server/chunks/{24-CA3DPT0t.js.map → 24-C9N_eRrr.js.map} +1 -1
- package/build/server/chunks/{25-DludrCpg.js → 25-DL8VLuLg.js} +2 -2
- package/build/server/chunks/{25-DludrCpg.js.map → 25-DL8VLuLg.js.map} +1 -1
- package/build/server/chunks/{27-BDtKZzPl.js → 27-HUwDEbMb.js} +4 -4
- package/build/server/chunks/{27-BDtKZzPl.js.map → 27-HUwDEbMb.js.map} +1 -1
- package/build/server/chunks/{28-Dvh0YyMK.js → 28-l4BuMkhA.js} +3 -3
- package/build/server/chunks/{28-Dvh0YyMK.js.map → 28-l4BuMkhA.js.map} +1 -1
- package/build/server/chunks/{29-OZbtFuyd.js → 29-DefkuWIf.js} +3 -3
- package/build/server/chunks/{29-OZbtFuyd.js.map → 29-DefkuWIf.js.map} +1 -1
- package/build/server/chunks/{3-BFx3bdEz.js → 3-FhxHeIS3.js} +2 -2
- package/build/server/chunks/{3-BFx3bdEz.js.map → 3-FhxHeIS3.js.map} +1 -1
- package/build/server/chunks/{30-BuoO_cIR.js → 30-BC7V7mS7.js} +3 -3
- package/build/server/chunks/{30-BuoO_cIR.js.map → 30-BC7V7mS7.js.map} +1 -1
- package/build/server/chunks/{31-Dzl1y1lc.js → 31-DJIq1bRM.js} +2 -2
- package/build/server/chunks/{31-Dzl1y1lc.js.map → 31-DJIq1bRM.js.map} +1 -1
- package/build/server/chunks/{32-DEYwWtss.js → 32-fvzIyQyk.js} +2 -2
- package/build/server/chunks/{32-DEYwWtss.js.map → 32-fvzIyQyk.js.map} +1 -1
- package/build/server/chunks/{5-BNfM-tOw.js → 5-BSabZ7B0.js} +2 -2
- package/build/server/chunks/{5-BNfM-tOw.js.map → 5-BSabZ7B0.js.map} +1 -1
- package/build/server/chunks/{6-CEx1JO4m.js → 6-BDAMjeLc.js} +3 -3
- package/build/server/chunks/{6-CEx1JO4m.js.map → 6-BDAMjeLc.js.map} +1 -1
- package/build/server/chunks/{7-Cz-fnTMA.js → 7-C5uuYI8Y.js} +2 -2
- package/build/server/chunks/{7-Cz-fnTMA.js.map → 7-C5uuYI8Y.js.map} +1 -1
- package/build/server/chunks/{8-CFNvkchb.js → 8-Yg3bHJY8.js} +3 -3
- package/build/server/chunks/{8-CFNvkchb.js.map → 8-Yg3bHJY8.js.map} +1 -1
- package/build/server/chunks/{9-DrF9Yg9r.js → 9-BOWShy6C.js} +4 -4
- package/build/server/chunks/{9-DrF9Yg9r.js.map → 9-BOWShy6C.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-wUV5pt7K.js → _page.svelte-BDLD6pXj.js} +182 -43
- package/build/server/chunks/_page.svelte-BDLD6pXj.js.map +1 -0
- package/build/server/chunks/{_server.ts-Mywogv28.js → _server.ts-13_Xvown.js} +5 -5
- package/build/server/chunks/{_server.ts-Mywogv28.js.map → _server.ts-13_Xvown.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C8hNi-NM.js → _server.ts-6F3Ly0cY.js} +5 -5
- package/build/server/chunks/{_server.ts-C8hNi-NM.js.map → _server.ts-6F3Ly0cY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CmB_7_VV.js → _server.ts-AtxnIvMI.js} +5 -5
- package/build/server/chunks/{_server.ts-CmB_7_VV.js.map → _server.ts-AtxnIvMI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DgbeoluB.js → _server.ts-B9uegfmw.js} +5 -5
- package/build/server/chunks/{_server.ts-DgbeoluB.js.map → _server.ts-B9uegfmw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CvjBKoOG.js → _server.ts-BQetLy9N.js} +5 -5
- package/build/server/chunks/{_server.ts-CvjBKoOG.js.map → _server.ts-BQetLy9N.js.map} +1 -1
- package/build/server/chunks/{_server.ts-vGCP86Du.js → _server.ts-BZH3tqYX.js} +48 -7
- package/build/server/chunks/_server.ts-BZH3tqYX.js.map +1 -0
- package/build/server/chunks/{_server.ts-CXvixtRW.js → _server.ts-Be15h83H.js} +5 -5
- package/build/server/chunks/{_server.ts-CXvixtRW.js.map → _server.ts-Be15h83H.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DOepVbAV.js → _server.ts-BgVWq0qd.js} +5 -5
- package/build/server/chunks/{_server.ts-DOepVbAV.js.map → _server.ts-BgVWq0qd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BnV_32U5.js → _server.ts-Bke_K04J.js} +5 -5
- package/build/server/chunks/{_server.ts-BnV_32U5.js.map → _server.ts-Bke_K04J.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BNSHTRhw.js → _server.ts-BlVwuKrl.js} +5 -5
- package/build/server/chunks/{_server.ts-BNSHTRhw.js.map → _server.ts-BlVwuKrl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DCmcZ1Gb.js → _server.ts-BmjNVAmP.js} +5 -5
- package/build/server/chunks/{_server.ts-DCmcZ1Gb.js.map → _server.ts-BmjNVAmP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DbcwlSqy.js → _server.ts-BwMyXo0z.js} +5 -5
- package/build/server/chunks/{_server.ts-DbcwlSqy.js.map → _server.ts-BwMyXo0z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-aJ-1nqR3.js → _server.ts-CF65FKS6.js} +5 -5
- package/build/server/chunks/{_server.ts-aJ-1nqR3.js.map → _server.ts-CF65FKS6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-A5TZCqa5.js → _server.ts-CMHRHdCD.js} +5 -5
- package/build/server/chunks/{_server.ts-A5TZCqa5.js.map → _server.ts-CMHRHdCD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-pUwXCS2e.js → _server.ts-Ca_OJJFC.js} +5 -5
- package/build/server/chunks/{_server.ts-pUwXCS2e.js.map → _server.ts-Ca_OJJFC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-y7PjdP_H.js → _server.ts-Cc-srcRk.js} +3 -3
- package/build/server/chunks/{_server.ts-y7PjdP_H.js.map → _server.ts-Cc-srcRk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DgjIv5VO.js → _server.ts-Cg1WgIQn.js} +5 -5
- package/build/server/chunks/{_server.ts-DgjIv5VO.js.map → _server.ts-Cg1WgIQn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-jICcnrLz.js → _server.ts-Cg6LtEov.js} +2 -2
- package/build/server/chunks/{_server.ts-jICcnrLz.js.map → _server.ts-Cg6LtEov.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CFmfnLGv.js → _server.ts-CpsGzKQC.js} +5 -5
- package/build/server/chunks/{_server.ts-CFmfnLGv.js.map → _server.ts-CpsGzKQC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CtwHDS7C.js → _server.ts-D2Qb9pui.js} +5 -5
- package/build/server/chunks/{_server.ts-CtwHDS7C.js.map → _server.ts-D2Qb9pui.js.map} +1 -1
- package/build/server/chunks/{_server.ts-eAeNUEse.js → _server.ts-DEBzt_W2.js} +5 -5
- package/build/server/chunks/{_server.ts-eAeNUEse.js.map → _server.ts-DEBzt_W2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C4BxZ2rC.js → _server.ts-DRlwVsIx.js} +5 -5
- package/build/server/chunks/{_server.ts-C4BxZ2rC.js.map → _server.ts-DRlwVsIx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C4lve0n9.js → _server.ts-DVOhTvBf.js} +6 -6
- package/build/server/chunks/{_server.ts-C4lve0n9.js.map → _server.ts-DVOhTvBf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cu7fT_h2.js → _server.ts-DW-Oh4l9.js} +3 -3
- package/build/server/chunks/{_server.ts-Cu7fT_h2.js.map → _server.ts-DW-Oh4l9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CYnQlbaG.js → _server.ts-DamGRKop.js} +5 -5
- package/build/server/chunks/{_server.ts-CYnQlbaG.js.map → _server.ts-DamGRKop.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DzoHhw3c.js → _server.ts-DethCmgs.js} +5 -5
- package/build/server/chunks/{_server.ts-DzoHhw3c.js.map → _server.ts-DethCmgs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-_nasPzxH.js → _server.ts-DlN3WSBT.js} +3 -3
- package/build/server/chunks/{_server.ts-_nasPzxH.js.map → _server.ts-DlN3WSBT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DQdxI18h.js → _server.ts-DvBucq0r.js} +5 -5
- package/build/server/chunks/{_server.ts-DQdxI18h.js.map → _server.ts-DvBucq0r.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BBenjXRj.js → _server.ts-Dz4bsmph.js} +5 -5
- package/build/server/chunks/{_server.ts-BBenjXRj.js.map → _server.ts-Dz4bsmph.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ctmv-46q.js → _server.ts-DzA4EZf_.js} +5 -5
- package/build/server/chunks/{_server.ts-Ctmv-46q.js.map → _server.ts-DzA4EZf_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BDVOe9oZ.js → _server.ts-L9PpKy16.js} +5 -5
- package/build/server/chunks/{_server.ts-BDVOe9oZ.js.map → _server.ts-L9PpKy16.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Drk8mhhT.js → _server.ts-Oi8Qzh0h.js} +5 -5
- package/build/server/chunks/{_server.ts-Drk8mhhT.js.map → _server.ts-Oi8Qzh0h.js.map} +1 -1
- package/build/server/chunks/{_server.ts-TGu9dCIM.js → _server.ts-PKbOblCf.js} +6 -6
- package/build/server/chunks/{_server.ts-TGu9dCIM.js.map → _server.ts-PKbOblCf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CoZrqfhl.js → _server.ts-XAkApigL.js} +5 -5
- package/build/server/chunks/{_server.ts-CoZrqfhl.js.map → _server.ts-XAkApigL.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DaL0WEpS.js → _server.ts-bhjqtBoy.js} +5 -5
- package/build/server/chunks/{_server.ts-DaL0WEpS.js.map → _server.ts-bhjqtBoy.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bel_bV82.js → _server.ts-cHSphefi.js} +5 -5
- package/build/server/chunks/{_server.ts-Bel_bV82.js.map → _server.ts-cHSphefi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dsn1xqkb.js → _server.ts-d6YTPmkY.js} +4 -4
- package/build/server/chunks/{_server.ts-Dsn1xqkb.js.map → _server.ts-d6YTPmkY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ck8MaVCN.js → _server.ts-kTCuqLDl.js} +5 -5
- package/build/server/chunks/{_server.ts-Ck8MaVCN.js.map → _server.ts-kTCuqLDl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CVgSO8yh.js → _server.ts-kbr9HYg5.js} +5 -5
- package/build/server/chunks/{_server.ts-CVgSO8yh.js.map → _server.ts-kbr9HYg5.js.map} +1 -1
- package/build/server/chunks/{access.server-BueyYEoY.js → access.server-CAPd1-c2.js} +4 -4
- package/build/server/chunks/{access.server-BueyYEoY.js.map → access.server-CAPd1-c2.js.map} +1 -1
- package/build/server/chunks/{api-errors-BckwXK7Q.js → api-errors-BhVEeWTV.js} +3 -3
- package/build/server/chunks/{api-errors-BckwXK7Q.js.map → api-errors-BhVEeWTV.js.map} +1 -1
- package/build/server/chunks/{auth-bootstrap.server-BOTw9HkY.js → auth-bootstrap.server-DKc9-3PR.js} +2 -2
- package/build/server/chunks/{auth-bootstrap.server-BOTw9HkY.js.map → auth-bootstrap.server-DKc9-3PR.js.map} +1 -1
- package/build/server/chunks/{bootHealth.server-BwEi-Qp8.js → bootHealth.server-IPXOSqqQ.js} +2 -2
- package/build/server/chunks/{bootHealth.server-BwEi-Qp8.js.map → bootHealth.server-IPXOSqqQ.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BHmZpgdz.js → hooks.server-BEbVZKxO.js} +4 -4
- package/build/server/chunks/{hooks.server-BHmZpgdz.js.map → hooks.server-BEbVZKxO.js.map} +1 -1
- package/build/server/chunks/{package-CGdqH7nx.js → package-MTlbeZ-4.js} +2 -2
- package/build/server/chunks/{package-CGdqH7nx.js.map → package-MTlbeZ-4.js.map} +1 -1
- package/build/server/chunks/{permissions.server-D1KUdeD1.js → permissions.server-zs4XAJCp.js} +2 -2
- package/build/server/chunks/{permissions.server-D1KUdeD1.js.map → permissions.server-zs4XAJCp.js.map} +1 -1
- package/build/server/chunks/{providers.server-BYk2ehLM.js → providers.server-C3fQ7ZdV.js} +78 -21
- package/build/server/chunks/providers.server-C3fQ7ZdV.js.map +1 -0
- package/build/server/chunks/{resolve.server-D79ZavTd.js → resolve.server-t1UmqtsG.js} +2 -2
- package/build/server/chunks/{resolve.server-D79ZavTd.js.map → resolve.server-t1UmqtsG.js.map} +1 -1
- package/build/server/chunks/{utils2-UQQTHTw-.js → utils2-BqfluBM6.js} +2 -2
- package/build/server/chunks/{utils2-UQQTHTw-.js.map → utils2-BqfluBM6.js.map} +1 -1
- package/build/server/index.js +2 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +70 -70
- package/build/server/manifest.js.map +1 -1
- package/package.json +5 -5
- package/build/client/_app/immutable/chunks/B-fj8b7K.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-fj8b7K.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BU70HLVx.js +0 -3
- package/build/client/_app/immutable/chunks/BU70HLVx.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU70HLVx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CdGNQgyw.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdGNQgyw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-jj-Uww.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-jj-Uww.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7wuDTx2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7wuDTx2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/j-UbJSFZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/j-UbJSFZ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CsJrZk_i.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CsJrZk_i.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.vCkjGHiU.js +0 -1
- package/build/client/_app/immutable/entry/start.vCkjGHiU.js.br +0 -2
- package/build/client/_app/immutable/entry/start.vCkjGHiU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.wSjQD-9E.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.wSjQD-9E.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.cZPocN3B.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.cZPocN3B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CZxapN5I.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CZxapN5I.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.ChDvrNjp.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.ChDvrNjp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/16.Cewxge5m.js.br +0 -0
- package/build/client/_app/immutable/nodes/16.Cewxge5m.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.NlvAvTSP.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.NlvAvTSP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/19.qNGlcD7l.js.br +0 -0
- package/build/client/_app/immutable/nodes/19.qNGlcD7l.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CgydK0lI.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CgydK0lI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/20.CoGCSB-X.js +0 -5021
- package/build/client/_app/immutable/nodes/20.CoGCSB-X.js.br +0 -0
- package/build/client/_app/immutable/nodes/20.CoGCSB-X.js.gz +0 -0
- package/build/client/_app/immutable/nodes/21.CdZLvQ68.js.br +0 -0
- package/build/client/_app/immutable/nodes/21.CdZLvQ68.js.gz +0 -0
- package/build/client/_app/immutable/nodes/23.CmSUvEas.js.br +0 -0
- package/build/client/_app/immutable/nodes/23.CmSUvEas.js.gz +0 -0
- package/build/client/_app/immutable/nodes/24.BLrWFvpH.js.br +0 -0
- package/build/client/_app/immutable/nodes/24.BLrWFvpH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/27.DF8_FNgX.js.br +0 -0
- package/build/client/_app/immutable/nodes/27.DF8_FNgX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/28.u-nHYDMp.js.br +0 -0
- package/build/client/_app/immutable/nodes/28.u-nHYDMp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/29.zcWmCBtG.js.br +0 -0
- package/build/client/_app/immutable/nodes/29.zcWmCBtG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CGYG-fBC.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CGYG-fBC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/30.CFRFw3XM.js.br +0 -0
- package/build/client/_app/immutable/nodes/30.CFRFw3XM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BIDVFrKz.js.br +0 -2
- package/build/client/_app/immutable/nodes/5.BIDVFrKz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.G8VTWVfQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.G8VTWVfQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DaJ_YKCW.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DaJ_YKCW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.c3ONIRmr.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.c3ONIRmr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BucDMSoZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BucDMSoZ.js.gz +0 -0
- package/build/server/chunks/_page.svelte-wUV5pt7K.js.map +0 -1
- package/build/server/chunks/_server.ts-vGCP86Du.js.map +0 -1
- package/build/server/chunks/providers.server-BYk2ehLM.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as ve,aN as ue,a2 as ce,$ as me,V as m,b7 as s,af as b,aW as l,bk as Y,ac as $,aJ as P,be as E,aK as fe}from"../chunks/DEk358l3.js";import{s as I}from"../chunks/T-Nslbso.js";import{a as o,f as v,c as J,t as w}from"../chunks/DS1KfRtl.js";import{i as p}from"../chunks/BnZOgasr.js";import{e as he,g as pe,r as K,l as Q}from"../chunks/6CzuHfQM.js";import{c as C}from"../chunks/DCBLBrrW.js";import{h as _e}from"../chunks/DfVTcmam.js";import{p as V}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as ve,aN as ue,a2 as ce,$ as me,V as m,b7 as s,af as b,aW as l,bk as Y,ac as $,aJ as P,be as E,aK as fe}from"../chunks/DEk358l3.js";import{s as I}from"../chunks/T-Nslbso.js";import{a as o,f as v,c as J,t as w}from"../chunks/DS1KfRtl.js";import{i as p}from"../chunks/BnZOgasr.js";import{e as he,g as pe,r as K,l as Q}from"../chunks/6CzuHfQM.js";import{c as C}from"../chunks/DCBLBrrW.js";import{h as _e}from"../chunks/DfVTcmam.js";import{p as V}from"../chunks/DuHtWI31.js";import{C as W}from"../chunks/DFnVpznB.js";import{a as F,A as X}from"../chunks/DApsykQI.js";import{B as O}from"../chunks/BH9oGrlA.js";import{L as U}from"../chunks/DzNzLgOO.js";import{I as D}from"../chunks/B48NJnzU.js";const Z=(S,t=fe)=>{var _=xe(),H=m(_),R=m(H);l(H);var q=s(H,2),T=m(q,!0);l(q),l(_),E(k=>{I(R,`Request headers (${t().length??""})`),I(T,k)},[()=>t().map(k=>`${k.name}: ${k.value}`).join(`
|
|
2
2
|
`)]),o(S,_)};var xe=v('<details class="border-border rounded border p-3 text-xs"><summary class="text-muted-foreground cursor-pointer font-medium"> </summary> <pre class="text-muted-foreground mt-2 max-h-96 overflow-auto break-all whitespace-pre-wrap"> </pre></details>'),ge=v("<!> <!>",1),ye=v('<a class="block"><!></a>'),be=v('<div class="space-y-2"></div>'),Pe=v('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),we=v('<input type="hidden" name="redirectTo"/>'),ke=v('<form method="POST" action="/auth/email/start" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <!></form>'),Ae=v('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),qe=v('<input type="hidden" name="redirectTo"/>'),Ee=v('<form method="POST" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <!></form>'),He=v(`<div class="space-y-3"><p class="text-muted-foreground text-sm">This deployment uses forward-auth — sign-in happens upstream at your identity provider,
|
|
3
3
|
not on this page. If you're seeing this page, your proxy didn't forward the identity
|
|
4
4
|
headers. Check that:</p> <ul class="text-muted-foreground list-disc space-y-1 pl-5 text-xs"><li>You're reaching the app through the proxy, not directly</li> <li>The proxy authenticated you (visit the IdP first if needed)</li> <li>The proxy is forwarding the configured identity header</li></ul> <p class="text-muted-foreground text-xs">Operators: see <code>HEADER_AUTH_UPN_HEADER</code> and your proxy's forward-auth config.</p> <!></div>`),Te=v(`<div class="space-y-3"><p class="text-muted-foreground text-sm">You're signed in with your identity provider, but your account hasn't been granted access
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{ba as m,au as Lt,af as e,bk as R,a_ as o,aQ as et,ac as f,aN as tt,V as s,aK as Ur,aW as n,a as Er,b7 as a,be as Y,aJ as u,aP as nt,bl as yt,M as Fr,a8 as Or,$ as Lr}from"../chunks/DEk358l3.js";import{a as qt,r as Ft,p as Qe,c as _,b as Qt,d as Rr,s as Mr}from"../chunks/DCBLBrrW.js";import{f as $r,e as rt,d as wt,s as E}from"../chunks/T-Nslbso.js";import{p as zr,c as Ge,a as r,f as i,t as A}from"../chunks/DS1KfRtl.js";import{i as W}from"../chunks/BnZOgasr.js";import{u as Vr}from"../chunks/CO55fzTt.js";import{a as Gr,g as jt,j as mt,e as gt,f as yr,s as wr,b as Xt,r as St,k as nr}from"../chunks/6CzuHfQM.js";import{h as Br}from"../chunks/DfVTcmam.js";import{i as ut,g as hr}from"../chunks/BU70HLVx.js";import{p as qr}from"../chunks/CdGNQgyw.js";import{F as ir}from"../chunks/X4d9Q9UP.js";import{F as Pr}from"../chunks/RmXOMQTe.js";import{D as Yt,b as Vt,c as Gt,a as Bt,R as Zt}from"../chunks/Cpd8PqU3.js";import{L as Ke}from"../chunks/DzNzLgOO.js";import{I as pt}from"../chunks/B48NJnzU.js";import{d as er,T as kr,b as jr,c as Mt,a as zt}from"../chunks/COSBQK9i.js";import{B as De}from"../chunks/BH9oGrlA.js";import{U as fr,D as Wt,P as lr,F as Jr}from"../chunks/qxoHibue.js";import{B as Sr}from"../chunks/BNs1__IY.js";import{X as Pt}from"../chunks/DfcDRMtE.js";import{t as Se}from"../chunks/BfHBnYuG.js";import{c as pr,b as sr}from"../chunks/C46MGZre.js";import{P as Kt}from"../chunks/CJPg7PqR.js";import{S as Cr}from"../chunks/Ckd6DpGW.js";import{U as dr}from"../chunks/KIV0kKdR.js";import{U as xr}from"../chunks/CE8BcsFf.js";import{T as tr}from"../chunks/BHzbkLpq.js";import{E as mr}from"../chunks/BnIDUuJL.js";import{U as Hr}from"../chunks/BfraRswf.js";import{a as Wr,s as Kr,f as Dr,m as Qr,h as Xr,S as Yr,V as Zr,D as ea}from"../chunks/BoqXamYe.js";import{I as rr,c as ta}from"../chunks/DUpVdSFf.js";import{s as cr}from"../chunks/9DES--UJ.js";import{a as ra,d as aa,k as oa,l as na,h as Ht,v as sa}from"../chunks/BTm-dDt9.js";import{R as Ct,b as Dt,e as It,f as Nt,c as Tt,d as At,a as Ut,A as Et}from"../chunks/atM6maCg.js";import{C as ia}from"../chunks/Db5P7BwC.js";import{T as vr}from"../chunks/C-j7zMFr.js";import{C as la}from"../chunks/BsZHa2Wi.js";import{L as da}from"../chunks/Bex2dy3F.js";import{C as br}from"../chunks/CBjt6cm5.js";import{A as ca}from"../chunks/BKZ_D8Qd.js";import{S as va}from"../chunks/BiG82jCv.js";import{S as ua}from"../chunks/DCgyaAAq.js";const fa=Symbol();class pa extends URLSearchParams{#e=m(0);#a=ga();#t=!1;#r(){if(!this.#a||this.#t)return;this.#t=!0;const t=this.toString();this.#a.search=t&&`?${t}`,this.#t=!1}[fa](t){if(!this.#t){this.#t=!0;for(const p of[...super.keys()])super.delete(p);for(const[p,S]of t)super.append(p,S);Lt(this.#e),this.#t=!1}}append(t,p){super.append(t,p),this.#r(),Lt(this.#e)}delete(t,p){var S=super.has(t,p);super.delete(t,p),S&&(this.#r(),Lt(this.#e))}get(t){return e(this.#e),super.get(t)}getAll(t){return e(this.#e),super.getAll(t)}has(t,p){return e(this.#e),super.has(t,p)}keys(){return e(this.#e),super.keys()}set(t,p){var S=super.getAll(t).join("");super.set(t,p),S!==super.getAll(t).join("")&&(this.#r(),Lt(this.#e))}sort(){super.sort(),this.#r(),Lt(this.#e)}toString(){return e(this.#e),super.toString()}values(){return e(this.#e),super.values()}entries(){return e(this.#e),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#e),super.size}}let ma=null;function ga(){return ma}function _a(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["path",{d:"M12 13v8"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"}],["path",{d:"m8 17 4-4 4 4"}]];rr(Pe,qt({name:"cloud-upload"},()=>p,{get iconNode(){return S}}))}function ha(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];rr(Pe,qt({name:"ellipsis"},()=>p,{get iconNode(){return S}}))}function xa(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}],["circle",{cx:"9",cy:"9",r:"2"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"}]];rr(Pe,qt({name:"image"},()=>p,{get iconNode(){return S}}))}function ba(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["circle",{cx:"18",cy:"5",r:"3"}],["circle",{cx:"6",cy:"12",r:"3"}],["circle",{cx:"18",cy:"19",r:"3"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49"}]];rr(Pe,qt({name:"share-2"},()=>p,{get iconNode(){return S}}))}const $a=oa({component:"separator",parts:["root"]});class gr{static create(t){return new gr(t)}opts;attachment;constructor(t){this.opts=t,this.attachment=ra(t.ref)}#e=R(()=>({id:this.opts.id.current,role:this.opts.decorative.current?"none":"separator","aria-orientation":this.opts.orientation.current,"aria-hidden":aa(this.opts.decorative.current),"data-orientation":this.opts.orientation.current,[$a.root]:"",...this.attachment}));get props(){return e(this.#e)}set props(t){o(this.#e,t)}}var ya=i("<div><!></div>");function wa(Pe,t){const p=zr();et(t,!0);let S=Qe(t,"id",19,()=>na(p)),F=Qe(t,"ref",15,null),M=Qe(t,"decorative",3,!1),G=Qe(t,"orientation",3,"horizontal"),x=Ft(t,["$$slots","$$events","$$legacy","id","ref","child","children","decorative","orientation"]);const w=gr.create({ref:Ht(()=>F(),oe=>F(oe)),id:Ht(()=>S()),decorative:Ht(()=>M()),orientation:Ht(()=>G())}),B=R(()=>sa(x,w.props));var se=Ge(),V=f(se);{var be=oe=>{var re=Ge(),we=f(re);cr(we,()=>t.child,()=>({props:e(B)})),r(oe,re)},$e=oe=>{var re=ya();Gr(re,()=>({...e(B)}));var we=s(re);cr(we,()=>t.children??Ur),n(re),r(oe,re)};W(V,oe=>{t.child?oe(be):oe($e,-1)})}r(Pe,se),tt()}function ur(Pe,t){et(t,!0);let p=Qe(t,"ref",15,null),S=Qe(t,"data-slot",3,"separator"),F=Ft(t,["$$slots","$$events","$$legacy","ref","class","data-slot"]);var M=Ge(),G=f(M);{let x=R(()=>ta("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:min-h-full data-[orientation=vertical]:w-px",t.class));_(G,()=>wa,(w,B)=>{B(w,qt({get"data-slot"(){return S()},get class(){return e(x)}},()=>F,{get ref(){return p()},set ref(se){p(se)}}))})}r(Pe,M),tt()}var Pa=i('<div role="button" tabindex="-1" class="inset-0 bg-black/30 fixed z-50"></div> <div><!></div>',1);function Ir(Pe,t){et(t,!0);let p=Qe(t,"width",3,"w-125"),S=Qe(t,"ariaLabel",3,"Close drawer");function F(B){B.key==="Escape"&&t.onClose()}var M=Pa();$r("keydown",Er,F);var G=f(M),x=a(G,2),w=s(x);cr(w,()=>t.children),n(x),Y(()=>{jt(G,"aria-label",S()),mt(x,1,`animate-in slide-in-from-right-4 top-0 right-0 fixed z-50 flex h-full border-border bg-background ${p()??""} flex-col overflow-y-auto border-l duration-150`)}),rt("click",G,function(...B){t.onClose?.apply(this,B)}),rt("keydown",G,F),r(Pe,M),tt()}wt(["click","keydown"]);var ka=i('<!> <span class="sm:inline hidden"> </span>',1),ja=i('<div class="gap-2 sm:flex-row sm:items-center flex flex-col"><input type="file" accept="image/*" class="h-10 px-3 py-2 text-sm file:text-sm file:font-medium flex flex-1 rounded-md border border-input bg-background file:border-0 file:bg-transparent focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:opacity-50"/> <!></div>'),Sa=i('<div class="space-y-2"><div class="gap-1 p-0.5 flex rounded-md border"><!> <!></div> <!></div>');function Nr(Pe,t){et(t,!0);let p=Qe(t,"mode",3,"url"),S=Qe(t,"value",3,""),F=Qe(t,"disabled",3,!1),M=Qe(t,"isUploading",3,!1),G=Qe(t,"hasFile",3,!1),x=Qe(t,"inputRef",15);var w=Sa(),B=s(w),se=s(B);{let re=R(()=>p()!=="upload"?"default":"ghost");De(se,{size:"sm",get variant(){return e(re)},onclick:()=>t.onModeChange?.("url"),class:"h-7 text-xs flex-1",children:(we,C)=>{u();var U=A("URL");r(we,U)},$$slots:{default:!0}})}var V=a(se,2);{let re=R(()=>p()==="upload"?"default":"ghost");De(V,{size:"sm",get variant(){return e(re)},onclick:()=>t.onModeChange?.("upload"),class:"h-7 text-xs flex-1",children:(we,C)=>{u();var U=A("Upload File");r(we,U)},$$slots:{default:!0}})}n(B);var be=a(B,2);{var $e=re=>{var we=ja(),C=s(we);Qt(C,fe=>x(fe),()=>x());var U=a(C,2);{let fe=R(()=>F()||!G()||M());De(U,{size:"sm",get disabled(){return e(fe)},get onclick(){return t.onUpload},class:"shrink-0",children:(O,ae)=>{var _e=ka(),ue=f(_e);fr(ue,{class:"mr-2 h-4 w-4"});var Ie=a(ue,2),ke=s(Ie,!0);n(Ie),Y(()=>E(ke,M()?"Uploading…":"Upload")),r(O,_e)},$$slots:{default:!0}})}n(we),Y(()=>C.disabled=F()),rt("change",C,function(...fe){t.onFileSelected?.apply(this,fe)}),r(re,we)},oe=re=>{pt(re,{type:"text",get value(){return S()},get disabled(){return F()},oninput:we=>t.onUrlChange?.(we.target.value),placeholder:"https://..."})};W(be,re=>{p()==="upload"?re($e):re(oe,-1)})}n(w),r(Pe,w),tt()}wt(["change"]);const Rt=1e3;function Tr(Pe,t){et(t,!0);let p=Qe(t,"placeholder",3,"Select a project");const S=R(()=>t.projects.map(F=>({id:F.id,label:F.name})));ir(Pe,{get items(){return e(S)},get value(){return t.value},get onChange(){return t.onChange},get id(){return t.id},get placeholder(){return p()},get triggerIcon(){return Pr},searchPlaceholder:"Filter projects"}),tt()}var Ca=i("<!> <!>",1),Da=i('<div class="space-y-1"><!> <!></div>'),Ia=i('<div class="space-y-1"><!> <div class="bg-muted rounded-md px-3 py-2"><p class="text-sm font-medium"> </p></div></div>'),Na=i("<option> </option>"),Ta=i('<div class="space-y-1"><!> <select id="new-server" class="border-input bg-background focus-visible:ring-ring h-10 w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none"></select></div>'),Aa=i("<div><!> <!></div>"),Ua=i('Grasshopper File <span class="text-destructive">*</span>',1),Ea=i('<p class="text-muted-foreground flex items-center gap-2 text-xs"><svg class="h-3 w-3 animate-spin" viewBox="0 0 24 24" fill="none"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"></path></svg> Validating definition…</p>'),Fa=i(`<div class="border-destructive/40 bg-destructive/5 rounded-md border p-3"><p class="text-destructive text-xs font-medium">Validation failed</p> <p class="text-destructive/80 mt-0.5 text-xs"> </p> <p class="text-destructive/60 mt-1 text-xs">This definition can't be uploaded until it validates against an online compute server.</p></div>`),Oa=i('<div class="border-success/30 bg-success/5 flex items-center gap-3 rounded-md border p-3"><div class="min-w-0 flex-1"><p class="text-success text-xs font-medium">Valid Selva definition</p> <p class="text-muted-foreground mt-0.5 text-xs"> </p></div></div>'),La=i('Display Name <span class="text-destructive">*</span>',1),Ra=i(' <button type="button" class="ml-0.5 inline-flex items-center justify-center transition-opacity hover:opacity-70" title="Remove tag"><!></button>',1),Ma=i('<div class="mb-2 flex flex-wrap gap-2"></div>'),za=i("<!> <!>",1),Va=i('<!> <div class="space-y-4"><!> <div class="space-y-2"><!> <input id="new-file" type="file" accept=".gh,.ghx" class="border-input bg-background focus-visible:ring-ring flex h-10 w-full rounded-md border px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50"/> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="grid grid-cols-1 gap-3 md:grid-cols-2"><div class="space-y-1"><div class="flex items-center justify-between"><!> <p class="text-muted-foreground text-xs"> </p></div> <!></div> <div class="space-y-1"><div class="flex items-center justify-between"><!> <p class="text-muted-foreground text-xs"> </p></div> <!> <!></div></div> <div class="space-y-2"><!> <!></div></div> <!>',1);function Ga(Pe,t){et(t,!0);let p=Qe(t,"open",3,!1),S=Qe(t,"isAdding",3,!1),F=Qe(t,"projects",19,()=>[]),M=Qe(t,"computeServers",19,()=>[]),G=Qe(t,"defaultComputeServerId",3,null),x=Qe(t,"showProjectDropdown",3,!1),w=m(""),B=m(""),se=m(""),V=m(nt([])),be=m(""),$e=m("url"),oe=m(""),re=m("");yt(()=>{t.defaultProjectId&&o(oe,t.defaultProjectId,!0)});let we=m(null);yt(()=>{if(!e(oe)||!e(U))return;const g=[e(oe),e(re),e(U).name,e(U).size,e(U).lastModified].join("|");g===e(we)||e(ae)||(o(we,g,!0),Ae())});let C=m(void 0),U=m(null),fe=m(void 0),O=m(!1),ae=m(!1),_e=m(null),ue=m(null);function Ie(g){return g.name.replace(/\.(gh|ghx)$/i,"").replace(/[_-]/g," ").replace(/\b\w/g,d=>d.toUpperCase())}function ke(){const g=e(C)?.files?.[0]??null;o(_e,null),o(ue,null),o(B,""),o(V,[],!0),o(U,g,!0),o(w,g?Ie(g):"",!0)}async function Ae(){const g=e(U);if(!(!g||!e(oe))){o(ae,!0);try{const d=new FormData;d.append("files",g);const P=new URLSearchParams(e(re)?{projectId:e(oe),computeServerId:e(re)}:{projectId:e(oe)}).toString(),$=await fetch(`/api/compute/schema?${P}`,{method:"POST",body:d});if(!$.ok){const y=await $.json().catch(()=>null);o(_e,y?.message??($.status===503?"Compute server is unreachable. It must be online to upload a definition.":"Validation failed"),!0);return}const c=(await $.json())?.[0];if(!c){o(_e,"No valid Selva schema found in this definition.");return}o(ue,c,!0),c.name&&o(w,c.name,!0),c.description&&o(B,c.description,!0),c.tags?.length&&o(V,c.tags,!0)}catch{o(_e,"Compute server is unreachable. It must be online to upload a definition.")}finally{o(ae,!1)}}}async function Ue(){if(!e(w).trim()){Se.error("Display name is required");return}if(!e(C)?.files||e(C).files.length===0){Se.error("A Grasshopper file is required");return}if(x()&&!e(oe)){Se.error("Please pick a project");return}if(!e(ue)){Se.error(e(_e)??"The definition must be validated against an online compute server first");return}const g=new FormData;g.append("displayName",e(w).trim()),g.append("description",e(B)),g.append("category",e(se)),g.append("tags",e(V).join(",")),e($e)==="upload"&&e(fe)?.files?.[0]?g.append("image",e(fe).files[0]):e($e)==="url"&&e(be).trim()&&g.append("coverImage",e(be).trim()),g.append("file",e(C).files[0]),e(oe)&&g.append("projectId",e(oe)),e(re)&&g.append("computeServerId",e(re));try{await t.onSubmit?.(g)}catch{}}function pe(){o(w,""),o(B,""),o(se,""),o(V,[],!0),o(be,""),o($e,"url"),o(oe,t.defaultProjectId??"",!0),o(re,""),o(ae,!1),o(_e,null),o(ue,null),e(C)&&(e(C).value=""),o(U,null),o(we,null),e(fe)&&(e(fe).value=""),o(O,!1)}function N(g){g||pe(),t.onOpenChange?.(g)}yt(()=>{p()||pe()});var D=Ge(),q=f(D);_(q,()=>Zt,(g,d)=>{d(g,{get open(){return p()},onOpenChange:N,children:(P,$)=>{var v=Ge(),c=f(v);_(c,()=>Yt,(y,k)=>{k(y,{class:"max-w-xl",children:(Q,T)=>{var J=Va(),ee=f(J);_(ee,()=>Vt,(me,Ce)=>{Ce(me,{children:(Ne,Ze)=>{var Ye=Ca(),ot=f(Ye);_(ot,()=>Gt,(Oe,Le)=>{Le(Oe,{children:(Me,Je)=>{u();var We=A("Add New Definition");r(Me,We)},$$slots:{default:!0}})});var it=a(ot,2);_(it,()=>Bt,(Oe,Le)=>{Le(Oe,{children:(Me,Je)=>{u();var We=A("Upload a Grasshopper file and fill in the metadata.");r(Me,We)},$$slots:{default:!0}})}),r(Ne,Ye)},$$slots:{default:!0}})});var he=a(ee,2),ce=s(he);{var ie=me=>{var Ce=Aa(),Ne=s(Ce);{var Ze=Oe=>{var Le=Da(),Me=s(Le);Ke(Me,{for:"new-project",children:(We,ct)=>{u();var lt=A("Project");r(We,lt)},$$slots:{default:!0}});var Je=a(Me,2);Tr(Je,{id:"new-project",get projects(){return F()},get value(){return e(oe)},onChange:We=>o(oe,We,!0)}),n(Le),r(Oe,Le)},Ye=Oe=>{const Le=R(()=>F().find(vt=>vt.id===t.defaultProjectId));var Me=Ia(),Je=s(Me);Ke(Je,{children:(vt,Ee)=>{u();var ze=A("Project");r(vt,ze)},$$slots:{default:!0}});var We=a(Je,2),ct=s(We),lt=s(ct,!0);n(ct),n(We),n(Me),Y(()=>E(lt,e(Le)?.name??"Unknown")),r(Oe,Me)};W(Ne,Oe=>{x()?Oe(Ze):t.defaultProjectId&&Oe(Ye,1)})}var ot=a(Ne,2);{var it=Oe=>{var Le=Ta(),Me=s(Le);Ke(Me,{for:"new-server",children:(ct,lt)=>{u();var vt=A("Compute Server");r(ct,vt)},$$slots:{default:!0}});var Je=a(Me,2);gt(Je,21,M,ct=>ct.id,(ct,lt)=>{var vt=Na(),Ee=s(vt);n(vt);var ze={};Y(()=>{E(Ee,`${e(lt).label??""}${e(lt).id===G()?" (Default)":""}`),ze!==(ze=e(lt).id)&&(vt.value=(vt.__value=e(lt).id)??"")}),r(ct,vt)}),n(Je);var We;yr(Je),n(Le),Y(()=>{We!==(We=e(re)||(G()??""))&&(Je.value=(Je.__value=e(re)||(G()??""))??"",wr(Je,e(re)||(G()??"")))}),rt("change",Je,ct=>{const lt=ct.currentTarget.value;o(re,lt===G()?"":lt,!0)}),r(Oe,Le)};W(ot,Oe=>{M().length>0&&Oe(it)})}n(Ce),Y(()=>mt(Ce,1,`grid gap-3 ${x()&&M().length>0?"sm:grid-cols-2":""}`)),r(me,Ce)};W(ce,me=>{(x()||M().length>0)&&me(ie)})}var ge=a(ce,2),ve=s(ge);Ke(ve,{for:"new-file",children:(me,Ce)=>{u();var Ne=Ua();u(),r(me,Ne)},$$slots:{default:!0}});var L=a(ve,2);Qt(L,me=>o(C,me),()=>e(C));var H=a(L,2);{var I=me=>{var Ce=Ea();r(me,Ce)},j=me=>{var Ce=Fa(),Ne=a(s(Ce),2),Ze=s(Ne,!0);n(Ne),u(2),n(Ce),Y(()=>E(Ze,e(_e))),r(me,Ce)},X=me=>{var Ce=Oa(),Ne=s(Ce),Ze=a(s(Ne),2),Ye=s(Ze);n(Ze),n(Ne),n(Ce),Y(()=>E(Ye,`${e(ue).inputs.length??""} input${e(ue).inputs.length===1?"":"s"},
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{ba as m,au as Lt,af as e,bk as R,a_ as o,aQ as et,ac as f,aN as tt,V as s,aK as Ur,aW as n,a as Er,b7 as a,be as Y,aJ as u,aP as nt,bl as yt,M as Fr,a8 as Or,$ as Lr}from"../chunks/DEk358l3.js";import{a as qt,r as Ft,p as Qe,c as _,b as Qt,d as Rr,s as Mr}from"../chunks/DCBLBrrW.js";import{f as $r,e as rt,d as wt,s as E}from"../chunks/T-Nslbso.js";import{p as zr,c as Ge,a as r,f as i,t as A}from"../chunks/DS1KfRtl.js";import{i as W}from"../chunks/BnZOgasr.js";import{u as Vr}from"../chunks/CO55fzTt.js";import{a as Gr,g as jt,j as mt,e as gt,f as yr,s as wr,b as Xt,r as St,k as nr}from"../chunks/6CzuHfQM.js";import{h as Br}from"../chunks/DfVTcmam.js";import{i as ut,g as hr}from"../chunks/U_alzAUv.js";import{p as qr}from"../chunks/Dtx1M6QG.js";import{F as ir}from"../chunks/X4d9Q9UP.js";import{F as Pr}from"../chunks/RmXOMQTe.js";import{D as Yt,b as Vt,c as Gt,a as Bt,R as Zt}from"../chunks/Cpd8PqU3.js";import{L as Ke}from"../chunks/DzNzLgOO.js";import{I as pt}from"../chunks/B48NJnzU.js";import{d as er,T as kr,b as jr,c as Mt,a as zt}from"../chunks/COSBQK9i.js";import{B as De}from"../chunks/BH9oGrlA.js";import{U as fr,D as Wt,P as lr,F as Jr}from"../chunks/qxoHibue.js";import{B as Sr}from"../chunks/BNs1__IY.js";import{X as Pt}from"../chunks/DfcDRMtE.js";import{t as Se}from"../chunks/BfHBnYuG.js";import{c as pr,b as sr}from"../chunks/C46MGZre.js";import{P as Kt}from"../chunks/CJPg7PqR.js";import{S as Cr}from"../chunks/Ckd6DpGW.js";import{U as dr}from"../chunks/KIV0kKdR.js";import{U as xr}from"../chunks/CE8BcsFf.js";import{T as tr}from"../chunks/BHzbkLpq.js";import{E as mr}from"../chunks/BnIDUuJL.js";import{U as Hr}from"../chunks/BfraRswf.js";import{a as Wr,s as Kr,f as Dr,m as Qr,h as Xr,S as Yr,V as Zr,D as ea}from"../chunks/BoqXamYe.js";import{I as rr,c as ta}from"../chunks/DUpVdSFf.js";import{s as cr}from"../chunks/9DES--UJ.js";import{a as ra,d as aa,k as oa,l as na,h as Ht,v as sa}from"../chunks/BTm-dDt9.js";import{R as Ct,b as Dt,e as It,f as Nt,c as Tt,d as At,a as Ut,A as Et}from"../chunks/atM6maCg.js";import{C as ia}from"../chunks/Db5P7BwC.js";import{T as vr}from"../chunks/C-j7zMFr.js";import{C as la}from"../chunks/BsZHa2Wi.js";import{L as da}from"../chunks/Bex2dy3F.js";import{C as br}from"../chunks/CBjt6cm5.js";import{A as ca}from"../chunks/BKZ_D8Qd.js";import{S as va}from"../chunks/BiG82jCv.js";import{S as ua}from"../chunks/DCgyaAAq.js";const fa=Symbol();class pa extends URLSearchParams{#e=m(0);#a=ga();#t=!1;#r(){if(!this.#a||this.#t)return;this.#t=!0;const t=this.toString();this.#a.search=t&&`?${t}`,this.#t=!1}[fa](t){if(!this.#t){this.#t=!0;for(const p of[...super.keys()])super.delete(p);for(const[p,S]of t)super.append(p,S);Lt(this.#e),this.#t=!1}}append(t,p){super.append(t,p),this.#r(),Lt(this.#e)}delete(t,p){var S=super.has(t,p);super.delete(t,p),S&&(this.#r(),Lt(this.#e))}get(t){return e(this.#e),super.get(t)}getAll(t){return e(this.#e),super.getAll(t)}has(t,p){return e(this.#e),super.has(t,p)}keys(){return e(this.#e),super.keys()}set(t,p){var S=super.getAll(t).join("");super.set(t,p),S!==super.getAll(t).join("")&&(this.#r(),Lt(this.#e))}sort(){super.sort(),this.#r(),Lt(this.#e)}toString(){return e(this.#e),super.toString()}values(){return e(this.#e),super.values()}entries(){return e(this.#e),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#e),super.size}}let ma=null;function ga(){return ma}function _a(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["path",{d:"M12 13v8"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"}],["path",{d:"m8 17 4-4 4 4"}]];rr(Pe,qt({name:"cloud-upload"},()=>p,{get iconNode(){return S}}))}function ha(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];rr(Pe,qt({name:"ellipsis"},()=>p,{get iconNode(){return S}}))}function xa(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}],["circle",{cx:"9",cy:"9",r:"2"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"}]];rr(Pe,qt({name:"image"},()=>p,{get iconNode(){return S}}))}function ba(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const S=[["circle",{cx:"18",cy:"5",r:"3"}],["circle",{cx:"6",cy:"12",r:"3"}],["circle",{cx:"18",cy:"19",r:"3"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49"}]];rr(Pe,qt({name:"share-2"},()=>p,{get iconNode(){return S}}))}const $a=oa({component:"separator",parts:["root"]});class gr{static create(t){return new gr(t)}opts;attachment;constructor(t){this.opts=t,this.attachment=ra(t.ref)}#e=R(()=>({id:this.opts.id.current,role:this.opts.decorative.current?"none":"separator","aria-orientation":this.opts.orientation.current,"aria-hidden":aa(this.opts.decorative.current),"data-orientation":this.opts.orientation.current,[$a.root]:"",...this.attachment}));get props(){return e(this.#e)}set props(t){o(this.#e,t)}}var ya=i("<div><!></div>");function wa(Pe,t){const p=zr();et(t,!0);let S=Qe(t,"id",19,()=>na(p)),F=Qe(t,"ref",15,null),M=Qe(t,"decorative",3,!1),G=Qe(t,"orientation",3,"horizontal"),x=Ft(t,["$$slots","$$events","$$legacy","id","ref","child","children","decorative","orientation"]);const w=gr.create({ref:Ht(()=>F(),oe=>F(oe)),id:Ht(()=>S()),decorative:Ht(()=>M()),orientation:Ht(()=>G())}),B=R(()=>sa(x,w.props));var se=Ge(),V=f(se);{var be=oe=>{var re=Ge(),we=f(re);cr(we,()=>t.child,()=>({props:e(B)})),r(oe,re)},$e=oe=>{var re=ya();Gr(re,()=>({...e(B)}));var we=s(re);cr(we,()=>t.children??Ur),n(re),r(oe,re)};W(V,oe=>{t.child?oe(be):oe($e,-1)})}r(Pe,se),tt()}function ur(Pe,t){et(t,!0);let p=Qe(t,"ref",15,null),S=Qe(t,"data-slot",3,"separator"),F=Ft(t,["$$slots","$$events","$$legacy","ref","class","data-slot"]);var M=Ge(),G=f(M);{let x=R(()=>ta("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:min-h-full data-[orientation=vertical]:w-px",t.class));_(G,()=>wa,(w,B)=>{B(w,qt({get"data-slot"(){return S()},get class(){return e(x)}},()=>F,{get ref(){return p()},set ref(se){p(se)}}))})}r(Pe,M),tt()}var Pa=i('<div role="button" tabindex="-1" class="inset-0 bg-black/30 fixed z-50"></div> <div><!></div>',1);function Ir(Pe,t){et(t,!0);let p=Qe(t,"width",3,"w-125"),S=Qe(t,"ariaLabel",3,"Close drawer");function F(B){B.key==="Escape"&&t.onClose()}var M=Pa();$r("keydown",Er,F);var G=f(M),x=a(G,2),w=s(x);cr(w,()=>t.children),n(x),Y(()=>{jt(G,"aria-label",S()),mt(x,1,`animate-in slide-in-from-right-4 top-0 right-0 fixed z-50 flex h-full border-border bg-background ${p()??""} flex-col overflow-y-auto border-l duration-150`)}),rt("click",G,function(...B){t.onClose?.apply(this,B)}),rt("keydown",G,F),r(Pe,M),tt()}wt(["click","keydown"]);var ka=i('<!> <span class="sm:inline hidden"> </span>',1),ja=i('<div class="gap-2 sm:flex-row sm:items-center flex flex-col"><input type="file" accept="image/*" class="h-10 px-3 py-2 text-sm file:text-sm file:font-medium flex flex-1 rounded-md border border-input bg-background file:border-0 file:bg-transparent focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:opacity-50"/> <!></div>'),Sa=i('<div class="space-y-2"><div class="gap-1 p-0.5 flex rounded-md border"><!> <!></div> <!></div>');function Nr(Pe,t){et(t,!0);let p=Qe(t,"mode",3,"url"),S=Qe(t,"value",3,""),F=Qe(t,"disabled",3,!1),M=Qe(t,"isUploading",3,!1),G=Qe(t,"hasFile",3,!1),x=Qe(t,"inputRef",15);var w=Sa(),B=s(w),se=s(B);{let re=R(()=>p()!=="upload"?"default":"ghost");De(se,{size:"sm",get variant(){return e(re)},onclick:()=>t.onModeChange?.("url"),class:"h-7 text-xs flex-1",children:(we,C)=>{u();var U=A("URL");r(we,U)},$$slots:{default:!0}})}var V=a(se,2);{let re=R(()=>p()==="upload"?"default":"ghost");De(V,{size:"sm",get variant(){return e(re)},onclick:()=>t.onModeChange?.("upload"),class:"h-7 text-xs flex-1",children:(we,C)=>{u();var U=A("Upload File");r(we,U)},$$slots:{default:!0}})}n(B);var be=a(B,2);{var $e=re=>{var we=ja(),C=s(we);Qt(C,fe=>x(fe),()=>x());var U=a(C,2);{let fe=R(()=>F()||!G()||M());De(U,{size:"sm",get disabled(){return e(fe)},get onclick(){return t.onUpload},class:"shrink-0",children:(O,ae)=>{var _e=ka(),ue=f(_e);fr(ue,{class:"mr-2 h-4 w-4"});var Ie=a(ue,2),ke=s(Ie,!0);n(Ie),Y(()=>E(ke,M()?"Uploading…":"Upload")),r(O,_e)},$$slots:{default:!0}})}n(we),Y(()=>C.disabled=F()),rt("change",C,function(...fe){t.onFileSelected?.apply(this,fe)}),r(re,we)},oe=re=>{pt(re,{type:"text",get value(){return S()},get disabled(){return F()},oninput:we=>t.onUrlChange?.(we.target.value),placeholder:"https://..."})};W(be,re=>{p()==="upload"?re($e):re(oe,-1)})}n(w),r(Pe,w),tt()}wt(["change"]);const Rt=1e3;function Tr(Pe,t){et(t,!0);let p=Qe(t,"placeholder",3,"Select a project");const S=R(()=>t.projects.map(F=>({id:F.id,label:F.name})));ir(Pe,{get items(){return e(S)},get value(){return t.value},get onChange(){return t.onChange},get id(){return t.id},get placeholder(){return p()},get triggerIcon(){return Pr},searchPlaceholder:"Filter projects"}),tt()}var Ca=i("<!> <!>",1),Da=i('<div class="space-y-1"><!> <!></div>'),Ia=i('<div class="space-y-1"><!> <div class="bg-muted rounded-md px-3 py-2"><p class="text-sm font-medium"> </p></div></div>'),Na=i("<option> </option>"),Ta=i('<div class="space-y-1"><!> <select id="new-server" class="border-input bg-background focus-visible:ring-ring h-10 w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none"></select></div>'),Aa=i("<div><!> <!></div>"),Ua=i('Grasshopper File <span class="text-destructive">*</span>',1),Ea=i('<p class="text-muted-foreground flex items-center gap-2 text-xs"><svg class="h-3 w-3 animate-spin" viewBox="0 0 24 24" fill="none"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"></path></svg> Validating definition…</p>'),Fa=i(`<div class="border-destructive/40 bg-destructive/5 rounded-md border p-3"><p class="text-destructive text-xs font-medium">Validation failed</p> <p class="text-destructive/80 mt-0.5 text-xs"> </p> <p class="text-destructive/60 mt-1 text-xs">This definition can't be uploaded until it validates against an online compute server.</p></div>`),Oa=i('<div class="border-success/30 bg-success/5 flex items-center gap-3 rounded-md border p-3"><div class="min-w-0 flex-1"><p class="text-success text-xs font-medium">Valid Selva definition</p> <p class="text-muted-foreground mt-0.5 text-xs"> </p></div></div>'),La=i('Display Name <span class="text-destructive">*</span>',1),Ra=i(' <button type="button" class="ml-0.5 inline-flex items-center justify-center transition-opacity hover:opacity-70" title="Remove tag"><!></button>',1),Ma=i('<div class="mb-2 flex flex-wrap gap-2"></div>'),za=i("<!> <!>",1),Va=i('<!> <div class="space-y-4"><!> <div class="space-y-2"><!> <input id="new-file" type="file" accept=".gh,.ghx" class="border-input bg-background focus-visible:ring-ring flex h-10 w-full rounded-md border px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50"/> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="grid grid-cols-1 gap-3 md:grid-cols-2"><div class="space-y-1"><div class="flex items-center justify-between"><!> <p class="text-muted-foreground text-xs"> </p></div> <!></div> <div class="space-y-1"><div class="flex items-center justify-between"><!> <p class="text-muted-foreground text-xs"> </p></div> <!> <!></div></div> <div class="space-y-2"><!> <!></div></div> <!>',1);function Ga(Pe,t){et(t,!0);let p=Qe(t,"open",3,!1),S=Qe(t,"isAdding",3,!1),F=Qe(t,"projects",19,()=>[]),M=Qe(t,"computeServers",19,()=>[]),G=Qe(t,"defaultComputeServerId",3,null),x=Qe(t,"showProjectDropdown",3,!1),w=m(""),B=m(""),se=m(""),V=m(nt([])),be=m(""),$e=m("url"),oe=m(""),re=m("");yt(()=>{t.defaultProjectId&&o(oe,t.defaultProjectId,!0)});let we=m(null);yt(()=>{if(!e(oe)||!e(U))return;const g=[e(oe),e(re),e(U).name,e(U).size,e(U).lastModified].join("|");g===e(we)||e(ae)||(o(we,g,!0),Ae())});let C=m(void 0),U=m(null),fe=m(void 0),O=m(!1),ae=m(!1),_e=m(null),ue=m(null);function Ie(g){return g.name.replace(/\.(gh|ghx)$/i,"").replace(/[_-]/g," ").replace(/\b\w/g,d=>d.toUpperCase())}function ke(){const g=e(C)?.files?.[0]??null;o(_e,null),o(ue,null),o(B,""),o(V,[],!0),o(U,g,!0),o(w,g?Ie(g):"",!0)}async function Ae(){const g=e(U);if(!(!g||!e(oe))){o(ae,!0);try{const d=new FormData;d.append("files",g);const P=new URLSearchParams(e(re)?{projectId:e(oe),computeServerId:e(re)}:{projectId:e(oe)}).toString(),$=await fetch(`/api/compute/schema?${P}`,{method:"POST",body:d});if(!$.ok){const y=await $.json().catch(()=>null);o(_e,y?.message??($.status===503?"Compute server is unreachable. It must be online to upload a definition.":"Validation failed"),!0);return}const c=(await $.json())?.[0];if(!c){o(_e,"No valid Selva schema found in this definition.");return}o(ue,c,!0),c.name&&o(w,c.name,!0),c.description&&o(B,c.description,!0),c.tags?.length&&o(V,c.tags,!0)}catch{o(_e,"Compute server is unreachable. It must be online to upload a definition.")}finally{o(ae,!1)}}}async function Ue(){if(!e(w).trim()){Se.error("Display name is required");return}if(!e(C)?.files||e(C).files.length===0){Se.error("A Grasshopper file is required");return}if(x()&&!e(oe)){Se.error("Please pick a project");return}if(!e(ue)){Se.error(e(_e)??"The definition must be validated against an online compute server first");return}const g=new FormData;g.append("displayName",e(w).trim()),g.append("description",e(B)),g.append("category",e(se)),g.append("tags",e(V).join(",")),e($e)==="upload"&&e(fe)?.files?.[0]?g.append("image",e(fe).files[0]):e($e)==="url"&&e(be).trim()&&g.append("coverImage",e(be).trim()),g.append("file",e(C).files[0]),e(oe)&&g.append("projectId",e(oe)),e(re)&&g.append("computeServerId",e(re));try{await t.onSubmit?.(g)}catch{}}function pe(){o(w,""),o(B,""),o(se,""),o(V,[],!0),o(be,""),o($e,"url"),o(oe,t.defaultProjectId??"",!0),o(re,""),o(ae,!1),o(_e,null),o(ue,null),e(C)&&(e(C).value=""),o(U,null),o(we,null),e(fe)&&(e(fe).value=""),o(O,!1)}function N(g){g||pe(),t.onOpenChange?.(g)}yt(()=>{p()||pe()});var D=Ge(),q=f(D);_(q,()=>Zt,(g,d)=>{d(g,{get open(){return p()},onOpenChange:N,children:(P,$)=>{var v=Ge(),c=f(v);_(c,()=>Yt,(y,k)=>{k(y,{class:"max-w-xl",children:(Q,T)=>{var J=Va(),ee=f(J);_(ee,()=>Vt,(me,Ce)=>{Ce(me,{children:(Ne,Ze)=>{var Ye=Ca(),ot=f(Ye);_(ot,()=>Gt,(Oe,Le)=>{Le(Oe,{children:(Me,Je)=>{u();var We=A("Add New Definition");r(Me,We)},$$slots:{default:!0}})});var it=a(ot,2);_(it,()=>Bt,(Oe,Le)=>{Le(Oe,{children:(Me,Je)=>{u();var We=A("Upload a Grasshopper file and fill in the metadata.");r(Me,We)},$$slots:{default:!0}})}),r(Ne,Ye)},$$slots:{default:!0}})});var he=a(ee,2),ce=s(he);{var ie=me=>{var Ce=Aa(),Ne=s(Ce);{var Ze=Oe=>{var Le=Da(),Me=s(Le);Ke(Me,{for:"new-project",children:(We,ct)=>{u();var lt=A("Project");r(We,lt)},$$slots:{default:!0}});var Je=a(Me,2);Tr(Je,{id:"new-project",get projects(){return F()},get value(){return e(oe)},onChange:We=>o(oe,We,!0)}),n(Le),r(Oe,Le)},Ye=Oe=>{const Le=R(()=>F().find(vt=>vt.id===t.defaultProjectId));var Me=Ia(),Je=s(Me);Ke(Je,{children:(vt,Ee)=>{u();var ze=A("Project");r(vt,ze)},$$slots:{default:!0}});var We=a(Je,2),ct=s(We),lt=s(ct,!0);n(ct),n(We),n(Me),Y(()=>E(lt,e(Le)?.name??"Unknown")),r(Oe,Me)};W(Ne,Oe=>{x()?Oe(Ze):t.defaultProjectId&&Oe(Ye,1)})}var ot=a(Ne,2);{var it=Oe=>{var Le=Ta(),Me=s(Le);Ke(Me,{for:"new-server",children:(ct,lt)=>{u();var vt=A("Compute Server");r(ct,vt)},$$slots:{default:!0}});var Je=a(Me,2);gt(Je,21,M,ct=>ct.id,(ct,lt)=>{var vt=Na(),Ee=s(vt);n(vt);var ze={};Y(()=>{E(Ee,`${e(lt).label??""}${e(lt).id===G()?" (Default)":""}`),ze!==(ze=e(lt).id)&&(vt.value=(vt.__value=e(lt).id)??"")}),r(ct,vt)}),n(Je);var We;yr(Je),n(Le),Y(()=>{We!==(We=e(re)||(G()??""))&&(Je.value=(Je.__value=e(re)||(G()??""))??"",wr(Je,e(re)||(G()??"")))}),rt("change",Je,ct=>{const lt=ct.currentTarget.value;o(re,lt===G()?"":lt,!0)}),r(Oe,Le)};W(ot,Oe=>{M().length>0&&Oe(it)})}n(Ce),Y(()=>mt(Ce,1,`grid gap-3 ${x()&&M().length>0?"sm:grid-cols-2":""}`)),r(me,Ce)};W(ce,me=>{(x()||M().length>0)&&me(ie)})}var ge=a(ce,2),ve=s(ge);Ke(ve,{for:"new-file",children:(me,Ce)=>{u();var Ne=Ua();u(),r(me,Ne)},$$slots:{default:!0}});var L=a(ve,2);Qt(L,me=>o(C,me),()=>e(C));var H=a(L,2);{var I=me=>{var Ce=Ea();r(me,Ce)},j=me=>{var Ce=Fa(),Ne=a(s(Ce),2),Ze=s(Ne,!0);n(Ne),u(2),n(Ce),Y(()=>E(Ze,e(_e))),r(me,Ce)},X=me=>{var Ce=Oa(),Ne=s(Ce),Ze=a(s(Ne),2),Ye=s(Ze);n(Ze),n(Ne),n(Ce),Y(()=>E(Ye,`${e(ue).inputs.length??""} input${e(ue).inputs.length===1?"":"s"},
|
|
2
2
|
${e(ue).outputs.length??""} output${e(ue).outputs.length===1?"":"s"}`)),r(me,Ce)};W(H,me=>{e(ae)?me(I):e(_e)?me(j,1):e(ue)&&me(X,2)})}n(ge);var te=a(ge,2),xe=s(te);Ke(xe,{for:"new-dn",children:(me,Ce)=>{u();var Ne=La();u(),r(me,Ne)},$$slots:{default:!0}});var ne=a(xe,2);pt(ne,{id:"new-dn",type:"text",placeholder:"e.g., Parametric Tower",get value(){return e(w)},set value(me){o(w,me,!0)}}),n(te);var le=a(te,2),je=s(le);Ke(je,{for:"new-desc",children:(me,Ce)=>{u();var Ne=A("Description");r(me,Ne)},$$slots:{default:!0}});var Be=a(je,2);er(Be,{id:"new-desc",rows:3,placeholder:"Describe what this definition does…",get value(){return e(B)},set value(me){o(B,me,!0)}}),n(le);var z=a(le,2),Z=s(z),de=s(Z),K=s(de);Ke(K,{for:"new-cat",children:(me,Ce)=>{u();var Ne=A("Category");r(me,Ne)},$$slots:{default:!0}});var Te=a(K,2),l=s(Te);n(Te),n(de);var b=a(de,2);pt(b,{id:"new-cat",type:"text",maxlength:40,placeholder:"e.g., Architecture",get value(){return e(se)},set value(me){o(se,me,!0)}}),n(Z);var h=a(Z,2),ye=s(h),Re=s(ye);Ke(Re,{for:"new-tags",children:(me,Ce)=>{u();var Ne=A("Tags");r(me,Ne)},$$slots:{default:!0}});var Fe=a(Re,2),Ve=s(Fe);n(Fe),n(ye);var qe=a(ye,2);{var at=me=>{var Ce=Ma();gt(Ce,20,()=>e(V),Ne=>Ne,(Ne,Ze)=>{Sr(Ne,{variant:"outline",class:"cursor-pointer gap-1",children:(Ye,ot)=>{u();var it=Ra(),Oe=f(it),Le=a(Oe),Me=s(Le);Pt(Me,{class:"h-3 w-3"}),n(Le),Y(()=>E(Oe,`${Ze??""} `)),rt("click",Le,()=>{o(V,e(V).filter(Je=>Je!==Ze),!0)}),r(Ye,it)},$$slots:{default:!0}})}),n(Ce),r(me,Ce)};W(qe,me=>{e(V).length>0&&me(at)})}var He=a(qe,2);{let me=R(()=>e(V).length>=5);pt(He,{id:"new-tags",type:"text",placeholder:"Add tag and press Enter",get disabled(){return e(me)},onkeydown:Ce=>{if(Ce.key==="Enter"){Ce.preventDefault();const Ne=Ce.currentTarget,Ze=Ne.value.trim();Ze&&!e(V).includes(Ze)&&e(V).length<5&&(o(V,[...e(V),Ze],!0),Ne.value="")}}})}n(h),n(z);var dt=a(z,2),ft=s(dt);Ke(ft,{children:(me,Ce)=>{u();var Ne=A("Cover Image");r(me,Ne)},$$slots:{default:!0}});var st=a(ft,2);Nr(st,{get mode(){return e($e)},get value(){return e(be)},get hasFile(){return e(O)},onModeChange:me=>o($e,me,!0),onUpload:()=>{},onFileSelected:()=>o(O,!!e(fe)?.files?.length),onUrlChange:me=>o(be,me,!0),get inputRef(){return e(fe)},set inputRef(me){o(fe,me,!0)}}),n(dt),n(he);var _t=a(he,2);_(_t,()=>Wt,(me,Ce)=>{Ce(me,{class:"gap-2 sm:justify-end",children:(Ne,Ze)=>{var Ye=za(),ot=f(Ye);De(ot,{variant:"outline",onclick:()=>t.onOpenChange?.(!1),children:(Oe,Le)=>{u();var Me=A("Cancel");r(Oe,Me)},$$slots:{default:!0}});var it=a(ot,2);{let Oe=R(()=>S()||e(ae)||!e(ue));De(it,{onclick:Ue,get disabled(){return e(Oe)},children:(Le,Me)=>{u();var Je=A();Y(()=>E(Je,S()?"Creating…":e(ae)?"Validating…":"Create Definition")),r(Le,Je)},$$slots:{default:!0}})}r(Ne,Ye)},$$slots:{default:!0}})}),Y(()=>{E(l,`${e(se)?.length??0??""}/40`),E(Ve,`${e(V).length??""}/5`)}),rt("change",L,ke),r(Q,J)},$$slots:{default:!0}})}),r(P,v)},$$slots:{default:!0}})}),r(Pe,D),tt()}wt(["change","click"]);var Ba=i('<button class="text-muted-foreground hover:text-foreground rounded p-0.5 transition-colors" title="New project" aria-label="New project"><!></button>'),qa=i('<div class="border-border bg-muted/40 mx-3 mb-3 space-y-2 rounded-md border p-3"><!> <select class="border-input bg-background w-full rounded-md border px-2.5 py-1.5 text-xs outline-none"><option>Public</option><option>Org</option><option>Private</option></select> <div class="flex gap-1.5"><!> <!></div></div>'),Ja=i('<div class="relative mx-3 mb-2"><!> <input placeholder="Filter projects" class="border-input bg-background placeholder:text-muted-foreground focus:border-ring h-7 w-full rounded-md border pr-2 pl-7 text-xs transition-colors outline-none"/></div>'),Ha=i('<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>'),Wa=i('<div class="border-border/60 my-2 border-t"></div>'),Ka=i('<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>'),Qa=i('<button><!> <span class="flex-1 truncate text-sm font-medium"> </span> <span class="shrink-0 font-mono text-[11px] tabular-nums opacity-60"> </span></button>'),Xa=i('<p class="text-muted-foreground px-2 py-4 text-center text-xs">No projects yet</p>'),Ya=i('<p class="text-muted-foreground px-2 py-4 text-center text-xs"> </p>'),Za=i('<aside class="border-border bg-background flex w-60 shrink-0 flex-col overflow-y-auto border-r"><div class="flex items-center justify-between px-4 pt-5 pb-3"><span class="text-muted-foreground text-xs font-medium tracking-wider uppercase">Projects</span> <!></div> <!> <!> <nav class="flex-1 space-y-px pr-2 pb-4"><button><!> <!> <span class="flex-1 truncate text-sm font-medium">All projects</span></button> <!> <!> <!></nav></aside>');function eo(Pe,t){et(t,!0);let p=m(!1),S=m(""),F=m(""),M=m("public"),G=m(!1),x=m("");const w=R(()=>{const N=e(x).trim().toLowerCase();return N?t.projects.filter(D=>D.name.toLowerCase().includes(N)):t.projects});async function B(){if(e(S).trim()){o(G,!0);try{await t.onCreate({name:e(S).trim(),description:e(F),visibility:e(M)}),o(S,""),o(F,""),o(M,"public"),o(p,!1)}finally{o(G,!1)}}}var se=Za(),V=s(se),be=a(s(V),2);{var $e=N=>{var D=Ba(),q=s(D);Kt(q,{class:"h-3.5 w-3.5"}),n(D),rt("click",D,()=>o(p,!e(p))),r(N,D)};W(be,N=>{t.canManageProjects&&N($e)})}n(V);var oe=a(V,2);{var re=N=>{var D=qa(),q=s(D);pt(q,{placeholder:"Project name",class:"h-8 text-xs",get value(){return e(S)},set value(k){o(S,k,!0)}});var g=a(q,2),d=s(g);d.value=d.__value="public";var P=a(d);P.value=P.__value="org";var $=a(P);$.value=$.__value="private",n(g);var v=a(g,2),c=s(v);{let k=R(()=>e(G)||!e(S).trim());De(c,{onclick:B,get disabled(){return e(k)},size:"sm",class:"h-6 flex-1 text-xs",children:(Q,T)=>{u();var J=A();Y(()=>E(J,e(G)?"…":"Create")),r(Q,J)},$$slots:{default:!0}})}var y=a(c,2);De(y,{onclick:()=>o(p,!1),variant:"ghost",size:"sm",class:"h-6 px-2 text-xs",children:(k,Q)=>{Pt(k,{class:"h-3 w-3"})},$$slots:{default:!0}}),n(v),n(D),Xt(g,()=>e(M),k=>o(M,k)),r(N,D)};W(oe,N=>{e(p)&&t.canManageProjects&&N(re)})}var we=a(oe,2);{var C=N=>{var D=Ja(),q=s(D);Cr(q,{class:"text-muted-foreground pointer-events-none absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2"});var g=a(q,2);St(g),n(D),pr(g,()=>e(x),d=>o(x,d)),r(N,D)};W(we,N=>{t.projects.length>4&&N(C)})}var U=a(we,2),fe=s(U),O=s(fe);{var ae=N=>{var D=Ha();r(N,D)};W(O,N=>{t.activeProjectId===null&&N(ae)})}var _e=a(O,2);Pr(_e,{class:"h-3.5 w-3.5 shrink-0 opacity-70"}),u(2),n(fe);var ue=a(fe,2);{var Ie=N=>{var D=Wa();r(N,D)};W(ue,N=>{e(w).length>0&&N(Ie)})}var ke=a(ue,2);gt(ke,17,()=>e(w),N=>N.id,(N,D)=>{const q=R(()=>t.activeProjectId===e(D).id),g=R(()=>t.records.filter(Q=>Q.projectId===e(D).id).length);var d=Qa(),P=s(d);{var $=Q=>{var T=Ka();r(Q,T)};W(P,Q=>{e(q)&&Q($)})}var v=a(P,2),c=s(v,!0);n(v);var y=a(v,2),k=s(y,!0);n(y),n(d),Y(()=>{mt(d,1,`group relative flex w-full items-center gap-2 py-1.5 pr-2.5 text-left transition-colors ${e(q)?"bg-accent text-accent-foreground rounded-r-md pl-4":"text-muted-foreground hover:bg-muted/60 hover:text-foreground mx-2 rounded-md pl-2.5"}`),E(c,e(D).name),E(k,e(g))}),rt("click",d,()=>t.onSelect(e(D).id)),r(N,d)});var Ae=a(ke,2);{var Ue=N=>{var D=Xa();r(N,D)},pe=N=>{var D=Ya(),q=s(D);n(D),Y(()=>E(q,`No matches for "${e(x)??""}"`)),r(N,D)};W(Ae,N=>{t.projects.length===0?N(Ue):e(w).length===0&&e(x)&&N(pe,1)})}n(U),n(se),Y(()=>mt(fe,1,`group relative flex w-full items-center gap-2 py-1.5 pr-2.5 text-left transition-colors ${t.activeProjectId===null?"bg-accent text-accent-foreground rounded-r-md pl-4":"text-muted-foreground hover:bg-muted/60 hover:text-foreground mx-2 rounded-md pl-2.5"}`)),rt("click",fe,()=>t.onSelect(null)),r(Pe,se),tt()}wt(["click"]);var to=i('<p class="text-muted-foreground px-3 py-6 text-center text-xs"> </p>'),ro=i('<p class="text-muted-foreground truncate font-mono text-xs"> </p>'),ao=i('<button type="button"><!> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <!></div></button>'),oo=i('<div class="border-border relative border-b"><!> <input placeholder="Search by name or email" class="placeholder:text-muted-foreground h-9 w-full rounded-t-md bg-transparent pr-9 pl-9 text-sm outline-none"/> <button type="button" class="text-muted-foreground hover:text-foreground absolute top-1/2 right-2 -translate-y-1/2 rounded p-1" aria-label="Cancel"><!></button></div> <div class="max-h-60 overflow-y-auto py-1"><!></div>',1),no=i('<p class="text-muted-foreground truncate font-mono text-xs"> </p>'),so=i('<div class="flex items-center gap-3 p-2.5"><!> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <!></div> <select class="border-input bg-background h-8 rounded-md border px-2 text-xs outline-none"><option>Owner</option><option>Editor</option><option>Viewer</option></select> <!> <!></div>'),io=i('<div class="border-border bg-card rounded-md border"><!></div>');function lo(Pe,t){et(t,!0);let p=m(""),S=m(0),F=m(null),M=m("viewer"),G=m(void 0);const x=R(()=>{const C=e(p).trim().toLowerCase();return C?t.availableUsers.filter(U=>{const fe=(U.displayName??"").toLowerCase(),O=(U.email??"").toLowerCase();return fe.includes(C)||O.includes(C)}).slice(0,50):t.availableUsers.slice(0,50)});yt(()=>{e(x),o(S,0)});function w(C){return C.displayName??C.email??C.id.slice(0,8)}function B(C){o(F,C,!0),o(p,"")}async function se(){e(F)&&(await t.onAdd(e(F).id,e(M)),o(F,null),o(M,"viewer"))}function V(C){if(!e(F))if(C.key==="ArrowDown")C.preventDefault(),o(S,Math.min(e(S)+1,e(x).length-1),!0),be();else if(C.key==="ArrowUp")C.preventDefault(),o(S,Math.max(e(S)-1,0),!0),be();else if(C.key==="Enter"){C.preventDefault();const U=e(x)[e(S)];U&&B(U)}else C.key==="Escape"&&(C.preventDefault(),t.onCancel())}function be(){e(G)?.querySelector(`[data-idx="${e(S)}"]`)?.scrollIntoView({block:"nearest"})}var $e=io(),oe=s($e);{var re=C=>{var U=oo(),fe=f(U),O=s(fe);Cr(O,{class:"text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-3.5 w-3.5 -translate-y-1/2"});var ae=a(O,2);St(ae),Fr(ae,!0);var _e=a(ae,2),ue=s(_e);Pt(ue,{class:"h-3.5 w-3.5"}),n(_e),n(fe);var Ie=a(fe,2),ke=s(Ie);{var Ae=pe=>{var N=to(),D=s(N,!0);n(N),Y(()=>E(D,t.availableUsers.length===0?"Everyone in this org is already on the project.":`No matches for "${e(p)}"`)),r(pe,N)},Ue=pe=>{var N=Ge(),D=f(N);gt(D,19,()=>e(x),q=>q.id,(q,g,d)=>{var P=ao(),$=s(P);{let T=R(()=>w(e(g)));dr($,{get name(){return e(T)},size:"sm"})}var v=a($,2),c=s(v),y=s(c,!0);n(c);var k=a(c,2);{var Q=T=>{var J=ro(),ee=s(J,!0);n(J),Y(()=>E(ee,e(g).email)),r(T,J)};W(k,T=>{e(g).displayName&&e(g).email&&T(Q)})}n(v),n(P),Y(T=>{jt(P,"data-idx",e(d)),mt(P,1,`flex w-full items-center gap-3 px-3 py-2 text-left transition-colors ${e(S)===e(d)?"bg-accent text-accent-foreground":"hover:bg-muted/60"}`),E(y,T)},[()=>w(e(g))]),rt("click",P,()=>B(e(g))),$r("mouseenter",P,()=>o(S,e(d),!0)),r(q,P)}),r(pe,N)};W(ke,pe=>{e(x).length===0?pe(Ae):pe(Ue,-1)})}n(Ie),Qt(Ie,pe=>o(G,pe),()=>e(G)),rt("keydown",ae,V),pr(ae,()=>e(p),pe=>o(p,pe)),rt("click",_e,function(...pe){t.onCancel?.apply(this,pe)}),r(C,U)},we=C=>{var U=so(),fe=s(U);{let q=R(()=>w(e(F)));dr(fe,{get name(){return e(q)},size:"sm"})}var O=a(fe,2),ae=s(O),_e=s(ae,!0);n(ae);var ue=a(ae,2);{var Ie=q=>{var g=no(),d=s(g,!0);n(g),Y(()=>E(d,e(F).email)),r(q,g)};W(ue,q=>{e(F).email&&e(F).displayName&&q(Ie)})}n(O);var ke=a(O,2),Ae=s(ke);Ae.value=Ae.__value="owner";var Ue=a(Ae);Ue.value=Ue.__value="editor";var pe=a(Ue);pe.value=pe.__value="viewer",n(ke);var N=a(ke,2);De(N,{onclick:se,get disabled(){return t.adding},size:"sm",children:(q,g)=>{u();var d=A();Y(()=>E(d,t.adding?"Adding…":"Add")),r(q,d)},$$slots:{default:!0}});var D=a(N,2);De(D,{onclick:()=>o(F,null),variant:"ghost",size:"icon",class:"text-muted-foreground h-8 w-8","aria-label":"Pick a different user",children:(q,g)=>{Pt(q,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}}),n(U),Y(q=>E(_e,q),[()=>w(e(F))]),Xt(ke,()=>e(M),q=>o(M,q)),r(C,U)};W(oe,C=>{e(F)?C(we,-1):C(re)})}n($e),r(Pe,$e),tt()}wt(["keydown","click"]);var co=i("<!> <!>",1),vo=i('<!> Members <span class="text-muted-foreground ml-1 font-mono text-[11px]"> </span>',1),uo=i("<!> <!>",1),fo=i("<!> Delete project",1),po=i('<div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <select id="proj-vis" class="border-input bg-background h-10 w-full rounded-md border px-3 text-sm"><option>Public — any authenticated user can solve</option><option>Org — any org member can solve</option><option>Private — only project members can solve</option></select></div> <div class="flex items-center justify-between pt-2"><!> <div class="flex gap-2"><!> <!></div></div>',1),mo=i('<p class="text-muted-foreground truncate font-mono text-xs"> </p>'),go=i('<div class="border-border flex items-center gap-3 border-b px-3 py-2.5 last:border-0"><!> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <!></div> <select class="border-input bg-background h-8 rounded-md border px-2 text-xs outline-none"><option>Owner</option><option>Editor</option><option>Viewer</option></select> <!></div>'),_o=i('<div class="border-border bg-card overflow-hidden rounded-md border"></div>'),ho=i("<!> Add member",1),xo=i("<!> <!>",1),bo=i("<!> <!> <!>",1),$o=i("<!> <!>",1);function yo(Pe,t){et(t,!0);let p=m(nt(t.project.name)),S=m(nt(t.project.description??"")),F=m(nt(t.project.visibility)),M=m(!1),G=m(!1),x=m(!1),w=m(null);function B(C){const U=t.users.find(fe=>fe.id===C);return U?.displayName??U?.email??C.slice(0,8)}function se(C){return t.users.find(U=>U.id===C)?.email}const V=R(()=>{const C=new Set(t.project.members.map(U=>U.userId));return t.users.filter(U=>!C.has(U.id))});async function be(){o(M,!0);try{await t.onSave(t.project.id,{name:e(p),description:e(S),visibility:e(F)})}finally{o(M,!1)}}async function $e(C,U){o(x,!0);try{await t.onAddMember(t.project.id,C,U),o(G,!1)}finally{o(x,!1)}}async function oe(C){o(w,C,!0);try{await t.onRemoveMember(t.project.id,C)}finally{o(w,null)}}var re=Ge(),we=f(re);_(we,()=>Zt,(C,U)=>{U(C,{get open(){return t.open},get onOpenChange(){return t.onOpenChange},children:(fe,O)=>{var ae=Ge(),_e=f(ae);_(_e,()=>Yt,(ue,Ie)=>{Ie(ue,{class:"max-w-lg",children:(ke,Ae)=>{var Ue=$o(),pe=f(Ue);_(pe,()=>Vt,(D,q)=>{q(D,{children:(g,d)=>{var P=co(),$=f(P);_($,()=>Gt,(c,y)=>{y(c,{children:(k,Q)=>{u();var T=A("Project settings");r(k,T)},$$slots:{default:!0}})});var v=a($,2);_(v,()=>Bt,(c,y)=>{y(c,{children:(k,Q)=>{u();var T=A("Manage this project's details and members.");r(k,T)},$$slots:{default:!0}})}),r(g,P)},$$slots:{default:!0}})});var N=a(pe,2);_(N,()=>kr,(D,q)=>{q(D,{value:"general",class:"mt-2",children:(g,d)=>{var P=bo(),$=f(P);_($,()=>jr,(y,k)=>{k(y,{class:"grid w-full grid-cols-2",children:(Q,T)=>{var J=uo(),ee=f(J);_(ee,()=>Mt,(ce,ie)=>{ie(ce,{value:"general",children:(ge,ve)=>{u();var L=A("General");r(ge,L)},$$slots:{default:!0}})});var he=a(ee,2);_(he,()=>Mt,(ce,ie)=>{ie(ce,{value:"members",class:"gap-1.5",children:(ge,ve)=>{var L=vo(),H=f(L);xr(H,{class:"h-3.5 w-3.5"});var I=a(H,2),j=s(I,!0);n(I),Y(()=>E(j,t.project.members.length)),r(ge,L)},$$slots:{default:!0}})}),r(Q,J)},$$slots:{default:!0}})});var v=a($,2);_(v,()=>zt,(y,k)=>{k(y,{value:"general",class:"mt-4 space-y-4",children:(Q,T)=>{var J=po(),ee=f(J),he=s(ee);Ke(he,{for:"proj-name",children:(z,Z)=>{u();var de=A("Name");r(z,de)},$$slots:{default:!0}});var ce=a(he,2);pt(ce,{id:"proj-name",get value(){return e(p)},set value(z){o(p,z,!0)}}),n(ee);var ie=a(ee,2),ge=s(ie);Ke(ge,{for:"proj-desc",children:(z,Z)=>{u();var de=A("Description");r(z,de)},$$slots:{default:!0}});var ve=a(ge,2);er(ve,{id:"proj-desc",rows:2,get value(){return e(S)},set value(z){o(S,z,!0)}}),n(ie);var L=a(ie,2),H=s(L);Ke(H,{for:"proj-vis",children:(z,Z)=>{u();var de=A("Visibility");r(z,de)},$$slots:{default:!0}});var I=a(H,2),j=s(I);j.value=j.__value="public";var X=a(j);X.value=X.__value="org";var te=a(X);te.value=te.__value="private",n(I),n(L);var xe=a(L,2),ne=s(xe);De(ne,{onclick:()=>t.onDelete(t.project.id),variant:"ghost",size:"sm",class:"text-destructive hover:text-destructive gap-1.5 px-2",children:(z,Z)=>{var de=fo(),K=f(de);tr(K,{class:"h-3.5 w-3.5"}),u(),r(z,de)},$$slots:{default:!0}});var le=a(ne,2),je=s(le);De(je,{onclick:()=>t.onOpenChange(!1),variant:"outline",size:"sm",children:(z,Z)=>{u();var de=A("Cancel");r(z,de)},$$slots:{default:!0}});var Be=a(je,2);De(Be,{onclick:be,get disabled(){return e(M)},size:"sm",children:(z,Z)=>{u();var de=A();Y(()=>E(de,e(M)?"Saving…":"Save")),r(z,de)},$$slots:{default:!0}}),n(le),n(xe),Xt(I,()=>e(F),z=>o(F,z)),r(Q,J)},$$slots:{default:!0}})});var c=a(v,2);_(c,()=>zt,(y,k)=>{k(y,{value:"members",class:"mt-4 space-y-3",children:(Q,T)=>{var J=xo(),ee=f(J);{var he=L=>{mr(L,{size:"sm",get icon(){return xr},title:"No members yet",description:"Add members to control who can edit this project."})},ce=L=>{var H=_o();gt(H,21,()=>t.project.members,I=>`${I.projectId}:${I.userId}`,(I,j)=>{var X=go(),te=s(X);{let h=R(()=>B(e(j).userId));dr(te,{get name(){return e(h)},size:"sm"})}var xe=a(te,2),ne=s(xe),le=s(ne,!0);n(ne);var je=a(ne,2);{var Be=h=>{var ye=mo(),Re=s(ye,!0);n(ye),Y(Fe=>E(Re,Fe),[()=>se(e(j).userId)]),r(h,ye)},z=R(()=>se(e(j).userId)&&se(e(j).userId)!==B(e(j).userId));W(je,h=>{e(z)&&h(Be)})}n(xe);var Z=a(xe,2),de=s(Z);de.value=de.__value="owner";var K=a(de);K.value=K.__value="editor";var Te=a(K);Te.value=Te.__value="viewer",n(Z);var l;yr(Z);var b=a(Z,2);{let h=R(()=>e(w)===e(j).userId);De(b,{onclick:()=>oe(e(j).userId),get disabled(){return e(h)},variant:"ghost",size:"icon",class:"text-muted-foreground hover:text-destructive h-7 w-7",children:(ye,Re)=>{Pt(ye,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}n(X),Y(h=>{E(le,h),l!==(l=e(j).role)&&(Z.value=(Z.__value=e(j).role)??"",wr(Z,e(j).role))},[()=>B(e(j).userId)]),rt("change",Z,h=>t.onUpdateMemberRole(t.project.id,e(j).userId,h.target.value)),r(I,X)}),n(H),r(L,H)};W(ee,L=>{t.project.members.length===0&&!e(G)?L(he):t.project.members.length>0&&L(ce,1)})}var ie=a(ee,2);{var ge=L=>{lo(L,{get availableUsers(){return e(V)},get adding(){return e(x)},onAdd:$e,onCancel:()=>o(G,!1)})},ve=L=>{De(L,{onclick:()=>o(G,!0),variant:"outline",size:"sm",class:"gap-1.5",children:(H,I)=>{var j=ho(),X=f(j);Hr(X,{class:"h-3.5 w-3.5"}),u(),r(H,j)},$$slots:{default:!0}})};W(ie,L=>{e(G)?L(ge):L(ve,-1)})}r(Q,J)},$$slots:{default:!0}})}),r(g,P)},$$slots:{default:!0}})}),r(ke,Ue)},$$slots:{default:!0}})}),r(fe,ae)},$$slots:{default:!0}})}),r(Pe,re),tt()}wt(["change"]);var wo=i("<span><span></span> </span>");function Ar(Pe,t){et(t,!0);let p=Qe(t,"class",3,"");var S=wo(),F=s(S),M=a(F);n(S),Y((G,x)=>{mt(S,1,`inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 font-mono text-[11px] tracking-wide ${G??""} ${p()??""}`),mt(F,1,`h-1.5 w-1.5 rounded-full ${x??""}`),E(M,` ${t.status??""}`)},[()=>Wr(t.status),()=>Kr(t.status)]),r(Pe,S),tt()}var Po=i('<div class="flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"><img alt="" class="h-full w-full object-cover"/></div>'),ko=i('<div class="tool-cover-fallback flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"><span class="text-foreground/40 text-base font-semibold"> </span></div>'),jo=i('<span class="text-muted-foreground ml-2 text-[12px]"> </span>'),So=i('<div><!> <span class="min-w-0"><span class="font-semibold"> </span> <!></span> <span class="text-muted-foreground"> </span> <span><!></span> <span class="text-muted-foreground font-mono text-[12px]"> </span> <span class="text-right font-mono text-[12px]"> </span> <span class="flex justify-end"><button type="button" class="text-muted-foreground hover:bg-muted hover:text-foreground rounded p-1 transition-colors"><!></button></span></div>'),Co=i('<div class="border-border bg-card overflow-hidden rounded-xl border"><div class="border-border bg-muted/50 text-muted-foreground grid border-b px-4 py-2.5 font-mono text-[10.5px] tracking-widest uppercase"><span></span><span>Definition</span><span>Project</span><span>Status</span><span>Updated</span> <span class="text-right">Runs</span><span></span></div> <!></div>');function Do(Pe,t){et(t,!0);const p="grid-template-columns: 40px 1.6fr 0.9fr 0.8fr 0.7fr 0.6fr 36px";function S(x){return t.projects.find(w=>w.id===x)?.name??""}var F=Co(),M=s(F);nr(M,p);var G=a(M,2);gt(G,19,()=>t.records,x=>x.guid,(x,w,B)=>{var se=So();nr(se,p);var V=s(se);{var be=D=>{var q=Po(),g=s(q);n(q),Y(()=>jt(g,"src",e(w).coverImage)),r(D,q)},$e=D=>{const q=R(()=>Xr(e(w).guid));var g=ko();let d;var P=s(g),$=s(P,!0);n(P),n(g),Y(v=>{d=nr(g,"",d,{"--tool-h1":e(q).h1,"--tool-h2":e(q).h2}),E($,v)},[()=>Qr(e(w).displayName)]),r(D,g)};W(V,D=>{e(w).coverImage?D(be):D($e,-1)})}var oe=a(V,2),re=s(oe),we=s(re,!0);n(re);var C=a(re,2);{var U=D=>{var q=jo(),g=s(q);n(q),Y(d=>E(g,`${d??""}${e(w).description.length>60?"…":""}`),[()=>e(w).description.slice(0,60)]),r(D,q)};W(C,D=>{e(w).description&&D(U)})}n(oe);var fe=a(oe,2),O=s(fe,!0);n(fe);var ae=a(fe,2),_e=s(ae);Ar(_e,{get status(){return e(w).status}}),n(ae);var ue=a(ae,2),Ie=s(ue,!0);n(ue);var ke=a(ue,2),Ae=s(ke,!0);n(ke);var Ue=a(ke,2),pe=s(Ue),N=s(pe);ha(N,{class:"h-4 w-4"}),n(pe),n(Ue),n(se),Y((D,q,g)=>{mt(se,1,`grid items-center gap-4 px-4 py-3 text-[13px] ${e(B)<t.records.length-1?"border-border border-b":""}`),E(we,e(w).displayName),E(O,D),E(Ie,q),E(Ae,g),jt(pe,"aria-label",`Open ${e(w).displayName??""}`)},[()=>S(e(w).projectId),()=>Dr(e(w).updatedAt),()=>e(w).solveCount.toLocaleString()]),rt("click",pe,()=>t.onOpen(e(w))),r(x,se)}),n(F),r(Pe,F),tt()}wt(["click"]);var Io=i('<p class="text-muted-foreground mt-1 text-sm"> </p>'),No=i('<img class="border-border aspect-4/3 w-full rounded-lg border object-cover"/>'),To=i('<div class="border-border bg-muted flex aspect-4/3 w-full items-center justify-center rounded-lg border"><span class="text-muted-foreground font-mono text-[11px] tracking-widest uppercase">No preview</span></div>'),Ao=i("<!> Run",1),Uo=i("<!> <!>",1),Eo=i('<div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Category</p> <p class="mt-1 text-sm"> </p></div>'),Fo=i('<span class="bg-muted text-muted-foreground rounded px-2 py-0.5 font-mono text-[11px]"> </span>'),Oo=i('<div><!> <div class="flex flex-wrap gap-1.5"></div></div>'),Lo=i('<div class="border-border flex items-start justify-between gap-4 border-b p-6"><div class="min-w-0"><div class="flex items-center gap-2"><!> <span class="text-muted-foreground font-mono text-[11px] tracking-wide uppercase"> </span></div> <h2 class="mt-2.5 text-xl font-semibold tracking-tight"> </h2> <!></div> <!></div> <div class="flex-1 space-y-5 overflow-y-auto p-6"><!> <div class="flex gap-2"><!> <!></div> <!> <div class="grid grid-cols-2 gap-x-4 gap-y-3"><div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Updated</p> <p class="mt-1 text-sm"> </p></div> <div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Runs</p> <p class="mt-1 text-sm"> </p></div> <!></div> <!></div>',1);function Ro(Pe,t){et(t,!0),Ir(Pe,{get onClose(){return t.onClose},children:(p,S)=>{var F=Lo(),M=f(F),G=s(M),x=s(G),w=s(x);Ar(w,{get status(){return t.record.status}});var B=a(w,2),se=s(B,!0);n(B),n(x);var V=a(x,2),be=s(V,!0);n(V);var $e=a(V,2);{var oe=v=>{var c=Io(),y=s(c,!0);n(c),Y(()=>E(y,t.record.description)),r(v,c)};W($e,v=>{t.record.description&&v(oe)})}n(G);var re=a(G,2);De(re,{variant:"ghost",size:"icon",get onclick(){return t.onClose},class:"mt-0.5 h-8 w-8 shrink-0",children:(v,c)=>{Pt(v,{class:"h-4 w-4"})},$$slots:{default:!0}}),n(M);var we=a(M,2),C=s(we);{var U=v=>{var c=No();Y(()=>{jt(c,"src",t.record.coverImage),jt(c,"alt",t.record.displayName)}),r(v,c)},fe=v=>{var c=To();r(v,c)};W(C,v=>{t.record.coverImage?v(U):v(fe,-1)})}var O=a(C,2),ae=s(O);De(ae,{class:"flex-1",onclick:()=>t.onOpenRunner(t.record.guid,"live"),children:(v,c)=>{var y=Ao(),k=f(y);lr(k,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(v,y)},$$slots:{default:!0}});var _e=a(ae,2);{var ue=v=>{var c=Uo(),y=f(c);{var k=T=>{De(T,{variant:"outline",size:"icon",onclick:()=>t.onShare(t.record),title:"Share links",children:(J,ee)=>{ba(J,{class:"h-4 w-4"})},$$slots:{default:!0}})};W(y,T=>{t.showShare&&T(k)})}var Q=a(y,2);De(Q,{variant:"outline",onclick:()=>t.onEdit(t.record),children:(T,J)=>{u();var ee=A("Edit");r(T,ee)},$$slots:{default:!0}}),r(v,c)};W(_e,v=>{t.canEdit&&v(ue)})}n(O);var Ie=a(O,2);ur(Ie,{});var ke=a(Ie,2),Ae=s(ke),Ue=a(s(Ae),2),pe=s(Ue);n(Ue),n(Ae);var N=a(Ae,2),D=a(s(N),2),q=s(D,!0);n(D),n(N);var g=a(N,2);{var d=v=>{var c=Eo(),y=a(s(c),2),k=s(y,!0);n(y),n(c),Y(()=>E(k,t.record.category)),r(v,c)};W(g,v=>{t.record.category&&v(d)})}n(ke);var P=a(ke,2);{var $=v=>{var c=Oo(),y=s(c);ur(y,{class:"mb-4"});var k=a(y,2);gt(k,20,()=>t.record.tags,Q=>Q,(Q,T)=>{var J=Fo(),ee=s(J);n(J),Y(()=>E(ee,`#${T??""}`)),r(Q,J)}),n(k),n(c),r(v,c)};W(P,v=>{t.record.tags?.length&&v($)})}n(we),Y((v,c)=>{E(se,t.projectName),E(be,t.record.displayName),E(pe,`${v??""} ago`),E(q,c)},[()=>Dr(t.record.updatedAt),()=>t.record.solveCount.toLocaleString()]),r(p,F)},$$slots:{default:!0}}),tt()}var Mo=i(`The upload becomes <strong> </strong> as a draft. The live channel stays unchanged
|
|
3
3
|
until you publish.`,1),zo=i("<!> <!>",1),Vo=i('<p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground text-xs">Click to choose a different file</p>',1),Go=i('<p class="text-sm font-medium">Pick a .gh or .ghx file</p> <p class="text-muted-foreground text-xs"> </p>',1),Bo=i('What changed? <span class="text-muted-foreground font-normal">(optional)</span>',1),qo=i("<!> ",1),Jo=i("<!> <!>",1),Ho=i('<!> <div class="mt-4 space-y-4"><div class="space-y-1.5"><!> <label for="upload-file" class="border-border hover:bg-accent/30 flex cursor-pointer items-center gap-3 rounded-md border-2 border-dashed px-4 py-5 transition-colors"><!> <div class="min-w-0 flex-1"><!></div></label> <input id="upload-file" type="file" accept=".gh,.ghx" class="hidden"/></div> <div class="space-y-1.5"><!> <!></div></div> <!>',1);function Wo(Pe,t){et(t,!0);let p=m(void 0),S=m(null),F=m(""),M=m(!1);yt(()=>{t.open||G()});function G(){o(S,null),o(F,""),o(M,!1),e(p)&&(e(p).value="")}function x(){o(S,e(p)?.files?.[0]?.name??null,!0)}async function w(){if(!e(p)?.files?.length)return;o(M,!0);const V=new FormData;V.append("file",e(p).files[0]),e(F).trim()&&V.append("changeNote",e(F).trim());try{const be=await fetch(`/api/definitions/${t.definitionGuid}`,{method:"POST",body:V});if(be.ok){const $e=await be.json();Se.success(`v${$e.version?.versionNumber??t.nextVersionNumber} uploaded as draft`),t.onUploaded(),await ut(),t.onOpenChange(!1)}else{const $e=await be.json().catch(()=>({}));Se.error($e.message||$e.error||"Upload failed")}}catch{Se.error("Upload failed")}finally{o(M,!1)}}var B=Ge(),se=f(B);_(se,()=>Zt,(V,be)=>{be(V,{get open(){return t.open},get onOpenChange(){return t.onOpenChange},children:($e,oe)=>{var re=Ge(),we=f(re);_(we,()=>Yt,(C,U)=>{U(C,{class:"max-w-md",children:(fe,O)=>{var ae=Ho(),_e=f(ae);_(_e,()=>Vt,(c,y)=>{y(c,{children:(k,Q)=>{var T=zo(),J=f(T);_(J,()=>Gt,(he,ce)=>{ce(he,{children:(ie,ge)=>{u();var ve=A("Upload new version");r(ie,ve)},$$slots:{default:!0}})});var ee=a(J,2);_(ee,()=>Bt,(he,ce)=>{ce(he,{children:(ie,ge)=>{u();var ve=Mo(),L=a(f(ve)),H=s(L);n(L),u(),Y(()=>E(H,`v${t.nextVersionNumber??""}`)),r(ie,ve)},$$slots:{default:!0}})}),r(k,T)},$$slots:{default:!0}})});var ue=a(_e,2),Ie=s(ue),ke=s(Ie);Ke(ke,{for:"upload-file",children:(c,y)=>{u();var k=A("Grasshopper file");r(c,k)},$$slots:{default:!0}});var Ae=a(ke,2),Ue=s(Ae);Jr(Ue,{class:"text-muted-foreground h-5 w-5 shrink-0"});var pe=a(Ue,2),N=s(pe);{var D=c=>{var y=Vo(),k=f(y),Q=s(k,!0);n(k),u(2),Y(()=>E(Q,e(S))),r(c,y)},q=c=>{var y=Go(),k=a(f(y),2),Q=s(k);n(k),Y(()=>E(Q,`Becomes v${t.nextVersionNumber??""} draft`)),r(c,y)};W(N,c=>{e(S)?c(D):c(q,-1)})}n(pe),n(Ae);var g=a(Ae,2);Qt(g,c=>o(p,c),()=>e(p)),n(Ie);var d=a(Ie,2),P=s(d);Ke(P,{for:"upload-note",children:(c,y)=>{u();var k=Bo();u(),r(c,k)},$$slots:{default:!0}});var $=a(P,2);er($,{id:"upload-note",rows:2,maxlength:1e3,placeholder:"e.g. Fixed wall thickness calculation",get value(){return e(F)},set value(c){o(F,c,!0)}}),n(d),n(ue);var v=a(ue,2);_(v,()=>Wt,(c,y)=>{y(c,{class:"mt-4",children:(k,Q)=>{var T=Jo(),J=f(T);De(J,{variant:"outline",onclick:()=>t.onOpenChange(!1),children:(he,ce)=>{u();var ie=A("Cancel");r(he,ie)},$$slots:{default:!0}});var ee=a(J,2);{let he=R(()=>e(M)||!e(S));De(ee,{onclick:w,get disabled(){return e(he)},children:(ce,ie)=>{var ge=Ge(),ve=f(ge);{var L=I=>{var j=A("Uploading…");r(I,j)},H=I=>{var j=qo(),X=f(j);fr(X,{class:"mr-1.5 h-3.5 w-3.5"});var te=a(X);Y(()=>E(te,` Upload v${t.nextVersionNumber??""}`)),r(I,j)};W(ve,I=>{e(M)?I(L):I(H,-1)})}r(ce,ge)},$$slots:{default:!0}})}r(k,T)},$$slots:{default:!0}})}),rt("change",g,x),r(fe,ae)},$$slots:{default:!0}})}),r($e,re)},$$slots:{default:!0}})}),r(Pe,B),tt()}wt(["change"]);var Ko=i('<div class="border-border bg-muted/30 rounded-md border px-4 py-3"><p class="text-muted-foreground text-xs">Loading versions…</p></div>'),Qo=i('<div class="border-border bg-muted/30 text-muted-foreground rounded-md border px-4 py-3 text-sm">No versions yet. Upload one to get started.</div>'),Xo=i('<span class="text-muted-foreground">· newer version uploaded</span>'),Yo=i('<span class="text-muted-foreground">· up to date</span>'),Zo=i("<span><strong>Live now</strong> </span> <!>",1),en=i('<span class="text-muted-foreground">Not yet published — promote a draft to go live</span>'),tn=i("<!> ",1),rn=i('<div class="border-border bg-muted/30 flex items-center justify-between gap-3 rounded-md border px-4 py-3"><div class="flex min-w-0 items-center gap-2 text-sm"><span class="bg-success h-2 w-2 shrink-0 rounded-full"></span> <!></div> <!></div>'),an=i("<!> Upload new version",1),on=i('<span class="bg-success/10 text-success rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">live</span>'),nn=i('<span class="bg-warning/10 text-warning rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">draft</span>'),sn=i('<p class="mt-1 truncate text-sm"> </p>'),ln=i('<p class="text-muted-foreground mt-1 truncate font-mono text-xs"> </p>'),dn=i("<!> Run",1),cn=i("<!> Run",1),vn=i("<!> <!>",1),un=i('<div><div class="flex items-start justify-between gap-3"><div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-2"><span class="font-mono text-sm font-semibold"> </span> <!> <!></div> <!> <p class="text-muted-foreground mt-1 text-xs"> </p></div> <div class="flex shrink-0 items-center gap-1"><!> <!></div></div></div>'),fn=i('<div class="space-y-2"></div>'),pn=i("<!> <!>",1),mn=i("<!> <!>",1),gn=i("<!> <!>",1),_n=i("<!> <!>",1),hn=i("<!> <!>",1),xn=i("<!> <!>",1),bn=i(`<div class="space-y-4"><!> <div class="flex items-center justify-between gap-3"><div><h3 class="text-base font-semibold tracking-tight">Versions</h3> <p class="text-muted-foreground mt-1 text-xs">Each upload becomes a version. The live version is what runs when someone uses this
|
|
4
4
|
definition.</p></div> <!></div> <!></div> <!> <!> <!>`,1);function $n(Pe,t){et(t,!0);let p=m(nt([])),S=m(null),F=m(null),M=m(!0),G=m(!1),x=m(null),w=m(!1),B=m(!1),se=m(null),V=m(null);yt(()=>{t.definitionGuid,be()});async function be(){o(M,!0);try{const d=await fetch(`/api/definitions/${t.definitionGuid}/versions`);if(!d.ok)throw new Error(`${d.status}`);const P=await d.json();o(p,P.versions,!0),o(S,P.liveVersionId,!0),o(F,P.draftVersionId,!0)}catch{Se.error("Failed to load versions")}finally{o(M,!1)}}const $e=R(()=>e(p).find(d=>d.id===e(S))??null),oe=R(()=>e(p).find(d=>d.id===e(F))??null),re=R(()=>e(oe)!==null&&e($e)!==null&&e(oe).id!==e($e).id),we=R(()=>(e(p)[0]?.versionNumber??0)+1);function C(d){const P=Date.now()-new Date(d).getTime(),$=Math.floor(P/6e4);if($<1)return"Just now";if($<60)return`${$}m ago`;const v=Math.floor($/60);if(v<24)return`${v}h ago`;const c=Math.floor(v/24);return c===1?"Yesterday":c<30?`${c}d ago`:new Date(d).toLocaleDateString()}async function U(d){o(B,!0);try{const P=d?{versionId:d.id}:{},$=await fetch(`/api/definitions/${t.definitionGuid}/publish`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(P)});if(!$.ok){const c=await $.json().catch(()=>({}));Se.error(c.message||c.error||"Failed to publish");return}const v=await $.json();Se.success(`v${v.version?.versionNumber??"?"} is now live`),await be(),await ut()}catch{Se.error("Failed to publish")}finally{o(B,!1),o(x,null),o(w,!1)}}async function fe(d){o(V,d.id,!0);try{const P=await fetch(`/api/definitions/${t.definitionGuid}/versions/${d.id}`,{method:"DELETE"});if(!P.ok){const $=await P.json().catch(()=>({}));Se.error($.message||$.error||"Failed to delete version. Live or draft versions cannot be deleted.");return}Se.success(`v${d.versionNumber} deleted`),await be(),await ut()}catch{Se.error("Failed to delete version")}finally{o(V,null),o(se,null)}}var O=bn(),ae=f(O),_e=s(ae);{var ue=d=>{var P=Ko();r(d,P)},Ie=d=>{var P=Qo();r(d,P)},ke=d=>{var P=rn(),$=s(P),v=a(s($),2);{var c=T=>{var J=Zo(),ee=f(J),he=a(s(ee));n(ee);var ce=a(ee,2);{var ie=ve=>{var L=Xo();r(ve,L)},ge=ve=>{var L=Yo();r(ve,L)};W(ce,ve=>{e(re)&&e(oe)?ve(ie):ve(ge,-1)})}Y(()=>E(he,` — v${e($e).versionNumber??""}`)),r(T,J)},y=T=>{var J=en();r(T,J)};W(v,T=>{e($e)?T(c):T(y,-1)})}n($);var k=a($,2);{var Q=T=>{De(T,{size:"sm",onclick:()=>U(null),get disabled(){return e(B)},class:"shrink-0",children:(J,ee)=>{var he=tn(),ce=f(he);_a(ce,{class:"mr-1.5 h-3.5 w-3.5"});var ie=a(ce);Y(()=>E(ie,` Publish v${e(oe).versionNumber??""}`)),r(J,he)},$$slots:{default:!0}})};W(k,T=>{e(re)&&e(oe)&&T(Q)})}n(P),r(d,P)};W(_e,d=>{e(M)?d(ue):e(p).length===0?d(Ie,1):d(ke,-1)})}var Ae=a(_e,2),Ue=a(s(Ae),2);De(Ue,{variant:"outline",size:"sm",onclick:()=>o(G,!0),class:"shrink-0",children:(d,P)=>{var $=an(),v=f($);fr(v,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(d,$)},$$slots:{default:!0}}),n(Ae);var pe=a(Ae,2);{var N=d=>{var P=fn();gt(P,21,()=>e(p),$=>$.id,($,v)=>{const c=R(()=>e(v).id===e(S)),y=R(()=>e(v).id===e(F)&&!e(c));var k=un(),Q=s(k),T=s(Q),J=s(T),ee=s(J),he=s(ee);n(ee);var ce=a(ee,2);{var ie=z=>{var Z=on();r(z,Z)};W(ce,z=>{e(c)&&z(ie)})}var ge=a(ce,2);{var ve=z=>{var Z=nn();r(z,Z)};W(ge,z=>{e(y)&&z(ve)})}n(J);var L=a(J,2);{var H=z=>{var Z=sn(),de=s(Z,!0);n(Z),Y(()=>E(de,e(v).changeNote)),r(z,Z)},I=z=>{var Z=ln(),de=s(Z,!0);n(Z),Y(()=>E(de,e(v).originalFilename)),r(z,Z)};W(L,z=>{e(v).changeNote?z(H):e(v).originalFilename&&z(I,1)})}var j=a(L,2),X=s(j);n(j),n(T);var te=a(T,2),xe=s(te);{var ne=z=>{De(z,{size:"sm",variant:"outline",onclick:()=>t.onOpenRunner(t.definitionGuid,"live"),children:(Z,de)=>{var K=dn(),Te=f(K);lr(Te,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(Z,K)},$$slots:{default:!0}})},le=z=>{var Z=vn(),de=f(Z);{var K=l=>{De(l,{size:"sm",variant:"ghost",onclick:()=>t.onOpenRunner(t.definitionGuid,"draft"),children:(b,h)=>{var ye=cn(),Re=f(ye);lr(Re,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(b,ye)},$$slots:{default:!0}})};W(de,l=>{e(y)&&l(K)})}var Te=a(de,2);De(Te,{size:"sm",variant:"outline",get disabled(){return e(B)},onclick:()=>{o(x,e(v),!0),o(w,!0)},children:(l,b)=>{u();var h=A("Make live");r(l,h)},$$slots:{default:!0}}),r(z,Z)};W(xe,z=>{e(c)?z(ne):z(le,-1)})}var je=a(xe,2);{var Be=z=>{{let Z=R(()=>e(V)===e(v).id);De(z,{size:"sm",variant:"ghost",onclick:()=>o(se,e(v),!0),get disabled(){return e(Z)},class:"text-muted-foreground hover:text-destructive h-8 w-8 p-0","aria-label":"Delete version",children:(de,K)=>{tr(de,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}};W(je,z=>{!e(c)&&!e(y)&&z(Be)})}n(te),n(Q),n(k),Y(z=>{mt(k,1,`rounded-md border p-3 transition-colors ${e(c)?"border-primary/40 bg-accent/40":"border-border bg-card hover:bg-muted/30"}`),E(he,`v${e(v).versionNumber??""}`),E(X,`Uploaded ${z??""}`)},[()=>C(e(v).uploadedAt)]),r($,k)}),n(P),r(d,P)};W(pe,d=>{!e(M)&&e(p).length>0&&d(N)})}n(ae);var D=a(ae,2);Wo(D,{get definitionGuid(){return t.definitionGuid},get nextVersionNumber(){return e(we)},get open(){return e(G)},onOpenChange:d=>o(G,d,!0),onUploaded:be});var q=a(D,2);_(q,()=>Ct,(d,P)=>{P(d,{get open(){return e(w)},onOpenChange:$=>{$||(o(x,null),o(w,!1))},children:($,v)=>{var c=Ge(),y=f(c);_(y,()=>Dt,(k,Q)=>{Q(k,{children:(T,J)=>{var ee=gn(),he=f(ee);_(he,()=>It,(ie,ge)=>{ge(ie,{children:(ve,L)=>{var H=pn(),I=f(H);_(I,()=>Nt,(X,te)=>{te(X,{children:(xe,ne)=>{var le=Ge(),je=f(le);{var Be=Z=>{var de=A();Y(()=>E(de,`Make v${e(x).versionNumber??""} live?`)),r(Z,de)},z=Z=>{var de=A("Publish current draft?");r(Z,de)};W(je,Z=>{e(x)?Z(Be):Z(z,-1)})}r(xe,le)},$$slots:{default:!0}})});var j=a(I,2);_(j,()=>Tt,(X,te)=>{te(X,{children:(xe,ne)=>{var le=Ge(),je=f(le);{var Be=de=>{var K=A();Y(()=>E(K,`Rolling back to an older version. Anyone running this definition will immediately get v${e(x).versionNumber??""}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as la,aN as na,a2 as va,$ as ma,V as v,b7 as t,aW as m,ac as E,aJ as f,be as L}from"../chunks/DEk358l3.js";import{s as B}from"../chunks/T-Nslbso.js";import{a as e,f as p,c as R,t as g}from"../chunks/DS1KfRtl.js";import{i as w}from"../chunks/BnZOgasr.js";import{e as ca,g as ua}from"../chunks/6CzuHfQM.js";import{c as N}from"../chunks/DCBLBrrW.js";import{h as fa}from"../chunks/DfVTcmam.js";import{p as pa}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as la,aN as na,a2 as va,$ as ma,V as v,b7 as t,aW as m,ac as E,aJ as f,be as L}from"../chunks/DEk358l3.js";import{s as B}from"../chunks/T-Nslbso.js";import{a as e,f as p,c as R,t as g}from"../chunks/DS1KfRtl.js";import{i as w}from"../chunks/BnZOgasr.js";import{e as ca,g as ua}from"../chunks/6CzuHfQM.js";import{c as N}from"../chunks/DCBLBrrW.js";import{h as fa}from"../chunks/DfVTcmam.js";import{p as pa}from"../chunks/DuHtWI31.js";import{C as D}from"../chunks/DFnVpznB.js";import{a as G,A as F}from"../chunks/DApsykQI.js";import{B as I}from"../chunks/BH9oGrlA.js";import{L as k}from"../chunks/DzNzLgOO.js";import{I as C}from"../chunks/B48NJnzU.js";var ha=p("<!> <!>",1),_a=p('<a class="block"><!></a>'),xa=p('<div class="space-y-2"><p class="text-muted-foreground text-center text-xs">The first user to sign in becomes the platform admin.</p> <!></div>'),ga=p('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),ya=p(`<form method="POST" action="/auth/email/start?redirectTo=%2Fadmin" class="space-y-4"><p class="text-muted-foreground text-center text-xs">Sign in via email link. Set <code>BOOTSTRAP_INSTANCE_ADMIN_EMAIL</code> in your env to control
|
|
2
2
|
which address becomes admin.</p> <div class="space-y-2"><!> <!></div> <!></form>`),ba=p('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),Pa=p('<form method="POST" class="space-y-4"><div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <!></form>'),$a=p('<p class="text-sm">Expected email: <code class="bg-muted rounded px-1 py-0.5"> </code></p>'),wa=p(`<code>BOOTSTRAP_INSTANCE_ADMIN_EMAIL</code> is unset. Set it in <code>.env</code>, restart, and reload this page — otherwise the first
|
|
3
3
|
proxy-authenticated visitor would gain admin (and may not be you).`,1),Aa=p("<!> <!>",1),Ea=p(`<div class="space-y-3"><p class="text-muted-foreground text-sm">This deployment authenticates via your upstream proxy (forward-auth). To claim admin, sign
|
|
4
4
|
in through the proxy with the email below — the first proxy-authenticated visit will be
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as Ne,ba as Z,aP as ze,bl as De,af as t,a_ as c,aN as Te,a8 as Oe,ac as k,b7 as i,be as ee,bk as J,V as K,$ as Le,aJ as I,aW as $,aK as $e}from"../chunks/DEk358l3.js";import{d as Re,s as Q,e as ne}from"../chunks/T-Nslbso.js";import{a,f,t as O,c as te}from"../chunks/DS1KfRtl.js";import{i as L}from"../chunks/BnZOgasr.js";import{e as ye}from"../chunks/6CzuHfQM.js";import{c as S}from"../chunks/DCBLBrrW.js";import{h as Be}from"../chunks/DfVTcmam.js";import{p as Fe}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as Ne,ba as Z,aP as ze,bl as De,af as t,a_ as c,aN as Te,a8 as Oe,ac as k,b7 as i,be as ee,bk as J,V as K,$ as Le,aJ as I,aW as $,aK as $e}from"../chunks/DEk358l3.js";import{d as Re,s as Q,e as ne}from"../chunks/T-Nslbso.js";import{a,f,t as O,c as te}from"../chunks/DS1KfRtl.js";import{i as L}from"../chunks/BnZOgasr.js";import{e as ye}from"../chunks/6CzuHfQM.js";import{c as S}from"../chunks/DCBLBrrW.js";import{h as Be}from"../chunks/DfVTcmam.js";import{p as Fe}from"../chunks/DuHtWI31.js";import{i as je}from"../chunks/U_alzAUv.js";import{S as Ge}from"../chunks/BiG82jCv.js";import{B as ae}from"../chunks/BH9oGrlA.js";import{t as de}from"../chunks/BfHBnYuG.js";import{C as ue,a as ve}from"../chunks/FdBsYR_f.js";import{C as ce}from"../chunks/DU8tQv0c.js";import{a as fe,C as me}from"../chunks/2BnY_oab.js";import{F as Ve}from"../chunks/X4d9Q9UP.js";import{E as pe}from"../chunks/BnIDUuJL.js";import{S as re}from"../chunks/BjB88iwt.js";import{B as oe}from"../chunks/BNs1__IY.js";import{P as Pe}from"../chunks/CJPg7PqR.js";import{I as q}from"../chunks/B48NJnzU.js";import{T as Je}from"../chunks/BHzbkLpq.js";import{r as We}from"../chunks/Cbu9Tg11.js";import{S as Ye}from"../chunks/Ba74WbdD.js";var He=f('<span class="flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-800 dark:bg-green-900/30 dark:text-green-400"><!> org default</span>'),Qe=f('<button class="text-muted-foreground hover:text-destructive shrink-0 text-xs underline-offset-2 hover:underline">Clear</button>'),qe=f('<button class="text-muted-foreground hover:text-foreground shrink-0 text-xs underline-offset-2 hover:underline">Undo</button>'),Xe=f('<button type="button" class="text-muted-foreground hover:text-foreground text-xs underline-offset-2 hover:underline">Make org default</button>'),Ze=f('<div class="bg-muted/30 space-y-3 rounded-lg border p-4"><div class="flex items-center justify-between"><div class="flex items-center gap-2"><!> <!></div> <!></div> <div class="grid gap-2 sm:grid-cols-2"><div class="space-y-1"><p class="text-muted-foreground text-xs">Server URL</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">API Key (optional)</p> <div class="flex gap-1.5"><!> <!></div></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Timeout (ms)</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Retries</p> <!></div></div> <!></div>'),et=f("<!> Add server",1),tt=f("<!> <!>",1),at=f("<!> <!>",1),rt=f(`<p class="text-warning text-xs">No global default is configured. Solves will fail until either a global default is set or
|
|
2
2
|
you pick an org default.</p>`),ot=f("<!> <!>",1),st=f("<!> <!>",1),lt=f("<!> <!>",1),it=f('<li class="flex items-center gap-3 px-3 py-2 text-sm"><!> <span class="font-medium"> </span> <code class="text-muted-foreground truncate font-mono text-xs"> </code> <div class="ml-auto flex items-center gap-1.5"><!> <!> <!></div></li>'),nt=f('<ul class="divide-border divide-y rounded-md border"></ul>'),dt=f("<!> <!>",1),ut=f(' <code class="text-xs">ALLOW_ORG_COMPUTE_OVERRIDE</code> if you need to bring your own compute.',1),vt=f("<!> <!>",1),ct=f("<!> Add server",1),ft=f("<!> <!>",1),mt=f('<div class="space-y-6"><!> <!> <!> <!></div>');function Rt(we,M){Ne(M,!0);const Ce=(l,e=$e,p=$e)=>{var N=Ze(),g=K(N),x=K(g),b=K(x);q(b,{placeholder:"label",get value(){return e().label},oninput:s=>{const u=s.target;e().label=u.value.toLowerCase().replace(/[^a-z0-9_-]/g,""),u.value=e().label,c(U,!0)},class:"h-7 w-32 font-mono text-xs"});var _=i(b,2);{var y=s=>{var u=He(),H=K(u);Ye(H,{class:"h-3 w-3"}),I(),$(u),a(s,u)};L(_,s=>{e().id===t(D)&&s(y)})}$(x);var m=i(x,2);ae(m,{variant:"ghost",size:"sm",onclick:()=>Se(p()),class:"text-destructive hover:text-destructive h-7 w-7 p-0",children:(s,u)=>{Je(s,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}}),$(g);var T=i(g,2),d=K(T),h=i(K(d),2);q(h,{placeholder:"http://localhost:5000",oninput:()=>c(U,!0),class:"font-mono text-xs",get value(){return e().serverUrl},set value(s){e().serverUrl=s}}),$(d);var P=i(d,2),v=i(K(P),2),r=K(v);{let s=J(()=>e().hasApiKey&&e().apiKey!==j&&!e().apiKey?"Key set - enter new value to replace":e().apiKey===j?"Key will be cleared on save":""),u=J(()=>e().apiKey===j?"":e().apiKey),H=J(()=>e().apiKey===j);q(r,{type:"password",get placeholder(){return t(s)},get value(){return t(u)},get disabled(){return t(H)},oninput:le=>{e().apiKey=le.target.value,c(U,!0)},class:"font-mono text-xs"})}var o=i(r,2);{var w=s=>{var u=Qe();ne("click",u,()=>{e().apiKey=j,c(U,!0)}),a(s,u)},n=s=>{var u=qe();ne("click",u,()=>e().apiKey=""),a(s,u)};L(o,s=>{e().hasApiKey&&e().apiKey!==j&&!e().apiKey?s(w):e().apiKey===j&&s(n,1)})}$(v),$(P);var C=i(P,2),F=i(K(C),2);q(F,{type:"number",placeholder:"30000",oninput:()=>c(U,!0),onblur:()=>{e().timeoutMs=Math.min(3e5,Math.max(1e3,Number(e().timeoutMs)||3e4))},class:"text-xs",get value(){return e().timeoutMs},set value(s){e().timeoutMs=s}}),$(C);var E=i(C,2),z=i(K(E),2);q(z,{type:"number",placeholder:"0",oninput:()=>c(U,!0),onblur:()=>{e().retryCount=Math.min(5,Math.max(0,Number(e().retryCount)||0))},class:"text-xs",get value(){return e().retryCount},set value(s){e().retryCount=s}}),$(E),$(T);var B=i(T,2);{var Y=s=>{var u=Xe();ne("click",u,()=>{c(D,e().id,!0),c(U,!0)}),a(s,u)};L(B,s=>{e().id!==t(D)&&s(Y)})}$(N),a(l,N)},W=J(()=>Fe.data.branding.name),j="__clear__";let R=Z(ze([])),D=Z(""),X=Z(!1),U=Z(!1);De(()=>{t(U)||(c(R,M.data.ownServers.map(l=>({id:l.id,label:l.label,serverUrl:l.serverUrl,timeoutMs:l.timeoutMs??3e4,retryCount:l.retryCount??0,apiKey:"",hasApiKey:l.hasApiKey})),!0),c(D,M.data.orgDefaultServerId??"",!0))});const ke=J(()=>M.data.catalog.find(l=>l.id===M.data.globalDefaultServerId)?.label??"(none configured)"),Ke=J(()=>[{id:"",label:`Use global default — ${t(ke)}`},...M.data.catalog.map(l=>({id:l.id,label:`${l.label} ${l.source==="org"?"(your org)":l.isGlobalDefault?"(global default)":"(platform)"}`}))]);function ge(){M.data.overrideEnabled&&(c(R,[...t(R),{id:We(),label:"org-server",serverUrl:"http://localhost:5000",timeoutMs:3e4,retryCount:0,apiKey:"",hasApiKey:!1}],!0),c(U,!0))}function Se(l){const e=t(R)[l];c(R,t(R).filter((p,N)=>N!==l),!0),t(D)===e.id&&c(D,""),c(U,!0)}async function Me(){c(X,!0);try{const l={defaultServerId:t(D)===""?null:t(D),servers:t(R).map(({apiKey:p,hasApiKey:N,retryCount:g,timeoutMs:x,...b})=>({...b,timeoutMs:Math.min(3e5,Math.max(1e3,Number(x)||3e4)),...p===j?{apiKey:null}:p?{apiKey:p}:{},...Number(g)?{retryCount:Math.min(5,Math.max(0,Number(g)))}:{}}))},e=await fetch("/api/org/compute",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(e.ok)de.success("Compute settings saved"),await je(),c(U,!1);else{const p=await e.json().catch(()=>({error:"Unknown error"}));de.error(p.message||p.error||`Failed to save (${e.status})`)}}catch{de.error("Failed to save compute settings")}finally{c(X,!1)}}var se=mt();Be("t08wys",l=>{Oe(()=>{Le.title="Team · Compute"})});var _e=K(se);Ge(_e,{eyebrow:"Team",title:"Compute",get description(){return`Compute servers available to this organization. Platform servers are managed by ${t(W)??""} staff and shown read-only; you can add your own org-private servers and pick which server is your org's default.`},actions:e=>{var p=tt(),N=k(p);{var g=b=>{ae(b,{variant:"outline",size:"sm",onclick:ge,children:(_,y)=>{var m=et(),T=k(m);Pe(T,{class:"mr-1.5 h-3.5 w-3.5"}),I(),a(_,m)},$$slots:{default:!0}})};L(N,b=>{M.data.overrideEnabled&&b(g)})}var x=i(N,2);{let b=J(()=>t(X)||!t(U));ae(x,{size:"sm",onclick:Me,get disabled(){return t(b)},children:(_,y)=>{I();var m=O();ee(()=>Q(m,t(X)?"Saving…":"Save")),a(_,m)},$$slots:{default:!0}})}a(e,p)},$$slots:{actions:!0}});var he=i(_e,2);S(he,()=>me,(l,e)=>{e(l,{children:(p,N)=>{var g=st(),x=k(g);S(x,()=>ue,(_,y)=>{y(_,{children:(m,T)=>{var d=at(),h=k(d);S(h,()=>ve,(v,r)=>{r(v,{class:"text-sm font-medium",children:(o,w)=>{I();var n=O("Org default");a(o,n)},$$slots:{default:!0}})});var P=i(h,2);S(P,()=>ce,(v,r)=>{r(v,{children:(o,w)=>{I();var n=O(`The server new definitions in this org use unless they're pinned to a specific one. Picks
|
|
3
3
|
from any server visible to your org. Leave on "Use global default" to inherit the
|
|
4
4
|
platform-wide pick.`);a(o,n)},$$slots:{default:!0}})}),a(m,d)},$$slots:{default:!0}})});var b=i(x,2);S(b,()=>fe,(_,y)=>{y(_,{class:"space-y-2",children:(m,T)=>{var d=ot(),h=k(d);Ve(h,{class:"max-w-md",get items(){return t(Ke)},get value(){return t(D)},onChange:r=>{c(D,r,!0),c(U,!0)}});var P=i(h,2);{var v=r=>{var o=rt();a(r,o)};L(P,r=>{t(D)===""&&M.data.globalDefaultServerId===null&&r(v)})}a(m,d)},$$slots:{default:!0}})}),a(p,g)},$$slots:{default:!0}})});var xe=i(he,2);S(xe,()=>me,(l,e)=>{e(l,{children:(p,N)=>{var g=dt(),x=k(g);S(x,()=>ue,(_,y)=>{y(_,{children:(m,T)=>{var d=lt(),h=k(d);S(h,()=>ve,(v,r)=>{r(v,{class:"text-sm font-medium",children:(o,w)=>{I();var n=O("Available servers");a(o,n)},$$slots:{default:!0}})});var P=i(h,2);S(P,()=>ce,(v,r)=>{r(v,{children:(o,w)=>{I();var n=O();ee(()=>Q(n,`Every server visible to this organization. Platform rows are managed by ${t(W)??""} staff.`)),a(o,n)},$$slots:{default:!0}})}),a(m,d)},$$slots:{default:!0}})});var b=i(x,2);S(b,()=>fe,(_,y)=>{y(_,{children:(m,T)=>{var d=te(),h=k(d);{var P=r=>{pe(r,{size:"sm",get icon(){return re},title:"No servers visible",get description(){return`No platform server is shared with this org and no global default is configured. Ask a ${t(W)??""} admin to share a server or set a global default.`}})},v=r=>{var o=nt();ye(o,21,()=>M.data.catalog,w=>w.id,(w,n)=>{var C=it(),F=K(C);re(F,{class:"text-muted-foreground h-3.5 w-3.5 shrink-0"});var E=i(F,2),z=K(E,!0);$(E);var B=i(E,2),Y=K(B,!0);$(B);var s=i(B,2),u=K(s);{var H=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("your org");a(G,V)},$$slots:{default:!0}})},le=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("platform");a(G,V)},$$slots:{default:!0}})};L(u,A=>{t(n).source==="org"?A(H):A(le,-1)})}var be=i(u,2);{var Ie=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("global default");a(G,V)},$$slots:{default:!0}})};L(be,A=>{t(n).isGlobalDefault&&A(Ie)})}var Ue=i(be,2);{var Ee=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("org default");a(G,V)},$$slots:{default:!0}})};L(Ue,A=>{t(n).id===M.data.orgDefaultServerId&&A(Ee)})}$(s),$(C),ee(()=>{Q(z,t(n).label),Q(Y,t(n).serverUrl)}),a(w,C)}),$(o),a(r,o)};L(h,r=>{M.data.catalog.length===0?r(P):r(v,-1)})}a(m,d)},$$slots:{default:!0}})}),a(p,g)},$$slots:{default:!0}})});var Ae=i(xe,2);S(Ae,()=>me,(l,e)=>{e(l,{children:(p,N)=>{var g=ft(),x=k(g);S(x,()=>ue,(_,y)=>{y(_,{children:(m,T)=>{var d=vt(),h=k(d);S(h,()=>ve,(v,r)=>{r(v,{class:"text-sm font-medium",children:(o,w)=>{I();var n=O("Your org's servers");a(o,n)},$$slots:{default:!0}})});var P=i(h,2);S(P,()=>ce,(v,r)=>{r(v,{children:(o,w)=>{var n=te(),C=k(n);{var F=z=>{var B=O("Compute servers managed by your org. Visible only to members of this organization.");a(z,B)},E=z=>{var B=ut(),Y=k(B);I(2),ee(()=>Q(Y,`Org-private servers are disabled on this ${t(W)??""} instance. Ask the platform admin to flip `)),a(z,B)};L(C,z=>{M.data.overrideEnabled?z(F):z(E,-1)})}a(o,n)},$$slots:{default:!0}})}),a(m,d)},$$slots:{default:!0}})});var b=i(x,2);S(b,()=>fe,(_,y)=>{y(_,{class:"space-y-3",children:(m,T)=>{var d=te(),h=k(d);{var P=o=>{pe(o,{size:"sm",get icon(){return re},title:"Org-private servers disabled",get description(){return`This ${t(W)??""} instance does not allow per-org compute servers.`}})},v=o=>{pe(o,{size:"sm",get icon(){return re},title:"No org-private servers yet",actions:n=>{ae(n,{variant:"outline",size:"sm",onclick:ge,children:(C,F)=>{var E=ct(),z=k(E);Pe(z,{class:"mr-1.5 h-3.5 w-3.5"}),I(),a(C,E)},$$slots:{default:!0}})},$$slots:{actions:!0}})},r=o=>{var w=te(),n=k(w);ye(n,19,()=>t(R),C=>C.id,(C,F,E)=>{Ce(C,()=>t(F),()=>t(E))}),a(o,w)};L(h,o=>{!M.data.overrideEnabled&&t(R).length===0?o(P):t(R).length===0?o(v,1):o(r,-1)})}a(m,d)},$$slots:{default:!0}})}),a(p,g)},$$slots:{default:!0}})}),$(se),a(we,se),Te()}Re(["click"]);export{Rt as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as ut,ba as Z,aP as ft,aN as _t,a8 as pt,af as e,ac as S,bk as y,V as i,$ as gt,b7 as l,aW as r,aJ as Q,a_ as x,be as h}from"../chunks/DEk358l3.js";import{d as xt,s as b,e as Ae}from"../chunks/T-Nslbso.js";import{a as t,f as d,c as me,t as ee}from"../chunks/DS1KfRtl.js";import{i as L}from"../chunks/BnZOgasr.js";import{e as ue,f as ht,j as Ee,s as bt,g as $t,r as ze,h as Be,b as wt}from"../chunks/6CzuHfQM.js";import{c as j}from"../chunks/DCBLBrrW.js";import{h as yt}from"../chunks/DfVTcmam.js";import{i as Oe}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as ut,ba as Z,aP as ft,aN as _t,a8 as pt,af as e,ac as S,bk as y,V as i,$ as gt,b7 as l,aW as r,aJ as Q,a_ as x,be as h}from"../chunks/DEk358l3.js";import{d as xt,s as b,e as Ae}from"../chunks/T-Nslbso.js";import{a as t,f as d,c as me,t as ee}from"../chunks/DS1KfRtl.js";import{i as L}from"../chunks/BnZOgasr.js";import{e as ue,f as ht,j as Ee,s as bt,g as $t,r as ze,h as Be,b as wt}from"../chunks/6CzuHfQM.js";import{c as j}from"../chunks/DCBLBrrW.js";import{h as yt}from"../chunks/DfVTcmam.js";import{i as Oe}from"../chunks/U_alzAUv.js";import{O as Fe,M as It,C as kt,A as Je}from"../chunks/Db5P7BwC.js";import{S as Pt}from"../chunks/BiG82jCv.js";import{B as fe}from"../chunks/BH9oGrlA.js";import{M as St}from"../chunks/NPsDidaV.js";import{C as Ye,a as Ge}from"../chunks/FdBsYR_f.js";import{C as He}from"../chunks/DU8tQv0c.js";import{a as Re,C as Ce}from"../chunks/2BnY_oab.js";import{E as At}from"../chunks/BnIDUuJL.js";import{U as Et}from"../chunks/BfraRswf.js";import{t as z}from"../chunks/BfHBnYuG.js";import{I as Ot}from"../chunks/B48NJnzU.js";import{X as Rt}from"../chunks/DfcDRMtE.js";import{T as Ct}from"../chunks/BHzbkLpq.js";var Mt=d("<!> Invite member",1),Nt=d("<option> </option>"),Lt=d('<p class="text-muted-foreground mb-2 text-xs"> <span class="font-mono">member</span> to grant a custom subset.</p>'),jt=d('<label><input type="checkbox"/> </label>'),Tt=d(`<div><p class="text-sm font-medium">Invite member</p> <p class="text-muted-foreground text-xs">The invitee sets their own credentials when they open the link. No password leaves
|
|
2
2
|
your machine.</p></div> <div class="grid gap-3 sm:grid-cols-2"><!> <select class="border-input bg-background h-9 rounded-md border px-3 text-sm"></select></div> <div><p class="mb-2 text-xs font-medium">Permissions</p> <!> <div class="flex flex-wrap gap-3"></div></div> <div class="flex gap-2"><!> <!></div>`,1),Dt=d("<!> Copy",1),Ut=d('<div class="border-success/30 bg-success/5 flex items-start gap-3 rounded-lg border p-4"><div class="min-w-0 flex-1"><p class="text-sm font-medium">Invite ready — copy the link and share it</p> <p class="text-muted-foreground mt-1 truncate font-mono text-xs"> </p></div> <!> <!></div>'),zt=d("<!> <!>",1),Bt=d("<option> </option>"),Ft=d("<select></select>"),Jt=d("<span> </span>"),Yt=d('<label class="flex cursor-pointer items-center gap-1.5 text-xs"><input type="checkbox"/> </label>'),Gt=d('<span class="bg-muted text-muted-foreground rounded-full px-2 py-0.5 font-mono text-[10px]"> </span>'),Ht=d('<div class="mt-2 flex flex-wrap gap-3"></div>'),Wt=d('<p class="text-muted-foreground mt-2 text-xs"> </p>'),Qt=d('<div class="px-4 py-3"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><p class="truncate text-sm font-medium"> </p> <!></div> <p class="text-muted-foreground text-xs"><!></p></div></div> <!></div>'),Vt=d('<div class="divide-y rounded-lg border"></div>'),Xt=d("<!> <!>",1),qt=d("<!> <!>",1),Kt=d('<div class="flex items-center justify-between gap-4 px-4 py-3"><div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground text-xs"> </p></div> <!></div>'),Zt=d('<div class="divide-y rounded-lg border"></div>'),ea=d("<!> <!>",1),ta=d("<!> <!> <!> <!>",1),aa=d('<div class="space-y-6"><!> <!></div>');function ka(We,_){ut(_,!0);const Me=y(()=>_.data.actorRole==="owner"),Ne=y(()=>_.data.actorRole==="owner"||_.data.actorRole==="admin"),Qe=y(()=>_.data.members.filter(o=>o.role==="owner").length);let xe=Z(null);async function Le(o,v){if(_.data.orgId){x(xe,o,!0);try{const O=await fetch(`/api/orgs/${_.data.orgId}/members/${o}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(v)});if(O.ok)z.success("Updated"),await Oe();else{const Y=await O.json().catch(()=>({}));z.error(Y.message||Y.error||"Update failed")}}catch{z.error("Update failed")}finally{x(xe,null)}}}function Ve(o,v){o.role!==v&&Le(o.userId,{role:v})}function Xe(o,v,O){const Y=O?Array.from(new Set([...o.permissions,v])):o.permissions.filter(ie=>ie!==v);Le(o.userId,{permissions:Y})}const je=["owner","admin","member"],$e={manage_org_members:"Manage members",manage_org_compute:"Manage compute",manage_definitions:"Manage definitions",manage_projects:"Manage projects"},Te={owner:"border-amber-500/40 text-amber-600 dark:text-amber-400",admin:"border-blue-500/40 text-blue-600 dark:text-blue-400",member:"border-border text-muted-foreground"};let oe=Z(!1),se=Z(""),V=Z("member"),ne=Z(ft([])),he=Z(!1),_e=Z(null),we=Z(null);const qe=y(()=>e(V)==="member"?Je.filter(o=>!Fe.includes(o)):[...Je]);function Ke(o,v){x(ne,v?[...e(ne),o]:e(ne).filter(O=>O!==o),!0)}async function Ze(){x(he,!0);try{const o=await fetch("/api/invites",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e(se),orgRole:e(V),permissions:e(ne)})});if(o.ok){const{acceptUrl:v}=await o.json();x(_e,v,!0),z.success(`Invite created for ${e(se)}`),x(se,""),x(V,"member"),x(ne,[],!0),x(oe,!1),await Oe()}else{const v=await o.json().catch(()=>({error:"Unknown error"}));z.error(v.message||v.error||"Failed to create invite")}}catch{z.error("Failed to create invite")}finally{x(he,!1)}}async function et(o,v){if(confirm(`Revoke invite for "${v}"?`)){x(we,o,!0);try{(await fetch(`/api/invites/${o}`,{method:"DELETE"})).ok?(z.success("Invite revoked"),await Oe()):z.error("Failed to revoke invite")}catch{z.error("Failed to revoke invite")}finally{x(we,null)}}}var ye=aa();yt("1mgom9i",o=>{pt(()=>{gt.title="Team · Members"})});var De=i(ye);{const o=O=>{var Y=me(),ie=S(Y);{var Ie=le=>{{let ke=y(()=>e(oe)?"outline":"default");fe(le,{onclick:()=>x(oe,!e(oe)),get variant(){return e(ke)},children:(Pe,I)=>{var k=Mt(),T=S(k);St(T,{class:"mr-2 h-4 w-4"}),Q(),t(Pe,k)},$$slots:{default:!0}})}};L(ie,le=>{_.data.orgId&&le(Ie)})}t(O,Y)};let v=y(()=>_.data.orgId?`${_.data.members.length} member${_.data.members.length===1?"":"s"} in this organization.`:"No active organization. Switch orgs from the user menu.");Pt(De,{eyebrow:"Team",title:"Members & roles",get description(){return e(v)},actions:o,$$slots:{actions:!0}})}var tt=l(De,2);{var at=o=>{var v=ta(),O=S(v);{var Y=I=>{var k=me(),T=S(k);j(T,()=>Ce,(te,X)=>{X(te,{children:(G,pe)=>{var A=me(),B=S(A);j(B,()=>Re,(F,H)=>{H(F,{class:"space-y-3 pt-6",children:(D,W)=>{var q=Tt(),$=l(S(q),2),m=i($);Ot(m,{type:"email",placeholder:"Email",get value(){return e(se)},set value(n){x(se,n,!0)}});var c=l(m,2);ue(c,20,()=>je,n=>n,(n,p)=>{var u=Nt(),g=i(u,!0);r(u);var M={};h(()=>{b(g,p),M!==(M=p)&&(u.value=(u.__value=p)??"")}),t(n,u)}),r(c),r($);var w=l($,2),a=l(i(w),2);{var R=n=>{var p=Lt(),u=i(p);Q(2),r(p),h(()=>b(u,`${e(V)==="owner"?"Owners":"Admins"} automatically receive all organization
|
|
3
3
|
permissions. Pick `)),t(n,p)};L(a,n=>{e(V)!=="member"&&n(R)})}var U=l(a,2);ue(U,20,()=>e(qe),n=>n,(n,p)=>{const u=y(()=>e(V)!=="member");var g=jt(),M=i(g);ze(M);var ge=l(M);r(g),h(de=>{Ee(g,1,`flex items-center gap-1.5 text-xs ${e(u)?"cursor-not-allowed opacity-60":"cursor-pointer"}`),Be(M,de),M.disabled=e(u),b(ge,` ${$e[p]??""}`)},[()=>e(u)||e(ne).includes(p)]),Ae("change",M,de=>Ke(p,de.target.checked)),t(n,g)}),r(U),r(w);var E=l(w,2),C=i(E);{let n=y(()=>e(he)||!e(se));fe(C,{onclick:Ze,get disabled(){return e(n)},children:(p,u)=>{Q();var g=ee();h(()=>b(g,e(he)?"Creating…":"Create invite")),t(p,g)},$$slots:{default:!0}})}var J=l(C,2);fe(J,{variant:"outline",onclick:()=>x(oe,!1),children:(n,p)=>{Q();var u=ee("Cancel");t(n,u)},$$slots:{default:!0}}),r(E),wt(c,()=>e(V),n=>x(V,n)),t(D,q)},$$slots:{default:!0}})}),t(G,A)},$$slots:{default:!0}})}),t(I,k)};L(O,I=>{e(oe)&&I(Y)})}var ie=l(O,2);{var Ie=I=>{var k=Ut(),T=i(k),te=l(i(T),2),X=i(te,!0);r(te),r(T);var G=l(T,2);fe(G,{size:"sm",variant:"outline",onclick:async()=>{try{await navigator.clipboard.writeText(e(_e)),z.success("Invite link copied")}catch{z.error("Could not copy to clipboard")}},children:(A,B)=>{var F=Dt(),H=S(F);kt(H,{class:"mr-1.5 h-3.5 w-3.5"}),Q(),t(A,F)},$$slots:{default:!0}});var pe=l(G,2);fe(pe,{size:"sm",variant:"ghost",onclick:()=>x(_e,null),children:(A,B)=>{Rt(A,{class:"h-4 w-4"})},$$slots:{default:!0}}),r(k),h(()=>b(X,e(_e))),t(I,k)};L(ie,I=>{e(_e)&&I(Ie)})}var le=l(ie,2);j(le,()=>Ce,(I,k)=>{k(I,{children:(T,te)=>{var X=Xt(),G=S(X);j(G,()=>Ye,(A,B)=>{B(A,{children:(F,H)=>{var D=zt(),W=S(D);j(W,()=>Ge,($,m)=>{m($,{class:"text-sm font-medium",children:(c,w)=>{Q();var a=ee("Roster");t(c,a)},$$slots:{default:!0}})});var q=l(W,2);j(q,()=>He,($,m)=>{m($,{children:(c,w)=>{Q();var a=ee();h(()=>b(a,`Roles and per-member permissions.${e(Me)?" You can change roles and permissions.":e(Ne)?" You can grant member permissions; only the owner can change roles.":""}`)),t(c,a)},$$slots:{default:!0}})}),t(F,D)},$$slots:{default:!0}})});var pe=l(G,2);j(pe,()=>Re,(A,B)=>{B(A,{children:(F,H)=>{var D=me(),W=S(D);{var q=m=>{At(m,{get icon(){return Et},title:"No members yet",description:"Invite teammates to get started."})},$=m=>{var c=Vt();ue(c,21,()=>_.data.members,w=>w.userId,(w,a)=>{const R=y(()=>e(a).userId===_.data.actorUserId),U=y(()=>e(a).role==="owner"&&e(Qe)===1),E=y(()=>e(Me)&&!e(R)&&!e(U)),C=y(()=>e(Ne)&&e(a).role==="member");var J=Qt(),n=i(J),p=i(n),u=i(p),g=i(u),M=i(g,!0);r(g);var ge=l(g,2);{var de=f=>{var s=Ft();ue(s,20,()=>je,N=>N,(N,ce)=>{var K=Bt(),Se=i(K,!0);r(K);var be={};h(()=>{b(Se,ce),be!==(be=ce)&&(K.value=(K.__value=ce)??"")}),t(N,K)}),r(s);var P;ht(s),h(()=>{s.disabled=e(xe)===e(a).userId,Ee(s,1,`border-input bg-background h-6 rounded-md border px-1.5 font-mono text-[10px] tracking-wide uppercase ${Te[e(a).role]}`),P!==(P=e(a).role)&&(s.value=(s.__value=e(a).role)??"",bt(s,e(a).role))}),Ae("change",s,N=>Ve(e(a),N.target.value)),t(f,s)},rt=f=>{var s=Jt(),P=i(s,!0);r(s),h(()=>{Ee(s,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${Te[e(a).role]}`),$t(s,"title",e(U)?"Sole owner — promote another member to owner before changing this role.":e(R)?"You cannot change your own role.":void 0),b(P,e(a).role)}),t(f,s)};L(ge,f=>{e(E)?f(de):f(rt,-1)})}r(u);var Ue=l(u,2),ot=i(Ue);{var st=f=>{var s=ee();h(P=>b(s,`Joined ${P??""}`),[()=>new Date(e(a).joinedAt).toLocaleDateString()]),t(f,s)},nt=f=>{var s=ee();h(P=>b(s,`Invited ${P??""} · never signed in`),[()=>new Date(e(a).joinedAt).toLocaleDateString()]),t(f,s)};L(ot,f=>{e(a).lastLoginAt?f(st):f(nt,-1)})}r(Ue),r(p),r(n);var it=l(n,2);{var lt=f=>{var s=Ht();ue(s,20,()=>It,P=>P,(P,N)=>{const ce=y(()=>e(a).permissions.includes(N));var K=me(),Se=S(K);{var be=ve=>{var ae=Yt(),re=i(ae);ze(re);var vt=l(re);r(ae),h(()=>{Be(re,e(ce)),re.disabled=e(xe)===e(a).userId,b(vt,` ${$e[N]??N??""}`)}),Ae("change",re,mt=>Xe(e(a),N,mt.target.checked)),t(ve,ae)},ct=ve=>{var ae=Gt(),re=i(ae,!0);r(ae),h(()=>b(re,$e[N]??N)),t(ve,ae)};L(Se,ve=>{e(C)?ve(be):e(ce)&&ve(ct,1)})}t(P,K)}),r(s),t(f,s)},dt=f=>{var s=Wt(),P=i(s);r(s),h(()=>b(P,`${e(a).role==="owner"?"Owners":"Admins"} hold all organization permissions
|
|
4
4
|
by default.`)),t(f,s)};L(it,f=>{e(a).role==="member"?f(lt):Fe.length>0&&f(dt,1)})}r(J),h(()=>b(M,e(a).email??e(a).displayName??e(a).userId)),t(w,J)}),r(c),t(m,c)};L(W,m=>{_.data.members.length===0?m(q):m($,-1)})}t(F,D)},$$slots:{default:!0}})}),t(T,X)},$$slots:{default:!0}})});var ke=l(le,2);{var Pe=I=>{var k=me(),T=S(k);j(T,()=>Ce,(te,X)=>{X(te,{children:(G,pe)=>{var A=ea(),B=S(A);j(B,()=>Ye,(H,D)=>{D(H,{children:(W,q)=>{var $=qt(),m=S($);j(m,()=>Ge,(w,a)=>{a(w,{class:"text-sm font-medium",children:(R,U)=>{Q();var E=ee("Invites");t(R,E)},$$slots:{default:!0}})});var c=l(m,2);j(c,()=>He,(w,a)=>{a(w,{children:(R,U)=>{Q();var E=ee();h((C,J)=>b(E,`${C??""} pending, ${J??""} accepted`),[()=>_.data.invites.filter(C=>!C.acceptedAt).length,()=>_.data.invites.filter(C=>C.acceptedAt).length]),t(R,E)},$$slots:{default:!0}})}),t(W,$)},$$slots:{default:!0}})});var F=l(B,2);j(F,()=>Re,(H,D)=>{D(H,{children:(W,q)=>{var $=Zt();ue($,21,()=>_.data.invites,m=>m.id,(m,c)=>{const w=y(()=>Date.parse(e(c).expiresAt)<=Date.now()),a=y(()=>e(c).acceptedAt?"Accepted":e(w)?"Expired":"Pending");var R=Kt(),U=i(R),E=i(U),C=i(E,!0);r(E);var J=l(E,2),n=i(J);r(J),r(U);var p=l(U,2);{var u=g=>{{let M=y(()=>e(we)===e(c).id);fe(g,{size:"sm",variant:"ghost",get disabled(){return e(M)},onclick:()=>et(e(c).id,e(c).email),class:"text-destructive hover:text-destructive",children:(ge,de)=>{Ct(ge,{class:"h-4 w-4"})},$$slots:{default:!0}})}};L(p,g=>{!e(c).acceptedAt&&!e(w)&&g(u)})}r(R),h(g=>{b(C,e(c).email),b(n,`${e(a)??""} · ${e(c).orgRole??""} · expires ${g??""}`)},[()=>new Date(e(c).expiresAt).toLocaleDateString()]),t(m,R)}),r($),t(W,$)},$$slots:{default:!0}})}),t(G,A)},$$slots:{default:!0}})}),t(I,k)};L(ke,I=>{_.data.invites.length>0&&I(Pe)})}t(o,v)};L(tt,o=>{_.data.orgId&&o(at)})}r(ye),t(We,ye),_t()}xt(["change"]);export{ka as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as Ie,ac as d,aN as Ce,a8 as De,af as e,bk as K,V as v,$ as Te,b7 as s,aK as Ae,aW as c,aJ as F,be as G,a_ as n,ba as O}from"../chunks/DEk358l3.js";import{s as P}from"../chunks/T-Nslbso.js";import{a as r,f as y,c as V,t as X}from"../chunks/DS1KfRtl.js";import{i as oe}from"../chunks/BnZOgasr.js";import{g as me,j as Ne,e as Se,b as Ee}from"../chunks/6CzuHfQM.js";import{a as Fe,r as Oe,c as _}from"../chunks/DCBLBrrW.js";import{h as Ve}from"../chunks/DfVTcmam.js";import{i as fe}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as Ie,ac as d,aN as Ce,a8 as De,af as e,bk as K,V as v,$ as Te,b7 as s,aK as Ae,aW as c,aJ as F,be as G,a_ as n,ba as O}from"../chunks/DEk358l3.js";import{s as P}from"../chunks/T-Nslbso.js";import{a as r,f as y,c as V,t as X}from"../chunks/DS1KfRtl.js";import{i as oe}from"../chunks/BnZOgasr.js";import{g as me,j as Ne,e as Se,b as Ee}from"../chunks/6CzuHfQM.js";import{a as Fe,r as Oe,c as _}from"../chunks/DCBLBrrW.js";import{h as Ve}from"../chunks/DfVTcmam.js";import{i as fe}from"../chunks/U_alzAUv.js";import{S as Be}from"../chunks/BiG82jCv.js";import{a as _e,C as ge}from"../chunks/2BnY_oab.js";import{E as Le}from"../chunks/BnIDUuJL.js";import{F as Me}from"../chunks/DH_OLMrQ.js";import{D as ze}from"../chunks/DkpwXYYZ.js";import{b as He,e as Je,f as Ke,c as Re,d as Ye,a as qe,A as Qe,R as Ue}from"../chunks/atM6maCg.js";import{I as We}from"../chunks/DUpVdSFf.js";import{B as se}from"../chunks/BH9oGrlA.js";import{T as Ge}from"../chunks/BHzbkLpq.js";import{t as R}from"../chunks/BfHBnYuG.js";import{P as Xe}from"../chunks/CJPg7PqR.js";import{I as $e}from"../chunks/B48NJnzU.js";function Ze(le,j){let Z=Oe(j,["$$slots","$$events","$$legacy"]);const ne=[["path",{d:"M15 3h6v6"}],["path",{d:"M10 14 21 3"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]];We(le,Fe({name:"external-link"},()=>Z,{get iconNode(){return ne}}))}var et=y("<!> New project",1),tt=y("<option> </option>"),rt=y('<div><p class="text-sm font-medium">New project</p> <p class="text-muted-foreground text-xs">Visibility can be changed later. Public requires the platform flag.</p></div> <div class="grid gap-3 sm:grid-cols-2"><!> <select class="border-input bg-background h-9 rounded-md border px-3 text-sm"></select></div> <!> <div class="flex gap-2"><!> <!></div>',1),at=y('<div class="min-w-0"><div class="flex items-center gap-2"><a class="truncate text-sm font-medium hover:underline"> </a> <a class="text-muted-foreground hover:text-foreground" aria-label="Open project"><!></a></div> <p class="text-muted-foreground truncate font-mono text-xs"> </p></div> <span> </span> <span class="text-right font-mono text-sm tabular-nums"> </span> <span class="text-muted-foreground text-right text-xs"> </span> <div class="flex justify-end"><!></div>',1),ot=y(`<strong> </strong> will be removed from view immediately. Permanent deletion
|
|
2
2
|
happens after the retention window.`,1),st=y("<!> <!>",1),lt=y("<!> <!>",1),nt=y("<!> <!>",1),it=y('<div class="space-y-6"><!> <!> <!></div> <!>',1);function At(le,j){Ie(j,!0);const Z={public:"border-success/40 text-success",org:"border-blue-500/40 text-blue-600 dark:text-blue-400",private:"border-border text-muted-foreground"},ne=["private","org","public"];let B=O(!1),L=O(""),ee=O(""),te=O("private"),re=O(!1),k=O(null),Y=O(null);async function he(){n(re,!0);try{const o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e(L),description:e(ee)||void 0,visibility:e(te)})});if(o.ok)R.success(`Project "${e(L)}" created`),n(L,""),n(ee,""),n(te,"private"),n(B,!1),await fe();else{const u=await o.json().catch(()=>({}));R.error(u.message||u.error||"Failed to create project")}}catch{R.error("Failed to create project")}finally{n(re,!1)}}async function xe(o){n(Y,o.id,!0);try{const u=await fetch(`/api/projects/${o.id}`,{method:"DELETE"});if(u.ok)R.success(`Deleted "${o.name}"`),await fe();else{const x=await u.json().catch(()=>({}));R.error(x.message||x.error||"Failed to delete project")}}catch{R.error("Failed to delete project")}finally{n(Y,null),n(k,null)}}var ce=it();Ve("1o7kh6r",o=>{De(()=>{Te.title="Team · Projects"})});var ie=d(ce),ue=v(ie);{const o=x=>{var b=V(),N=d(b);{var I=C=>{{let D=K(()=>e(B)?"outline":"default");se(C,{onclick:()=>n(B,!e(B)),get variant(){return e(D)},children:(S,q)=>{var T=et(),A=d(T);Xe(A,{class:"mr-2 h-4 w-4"}),F(),r(S,T)},$$slots:{default:!0}})}};oe(N,C=>{j.data.canCreate&&C(I)})}r(x,b)};let u=K(()=>`${j.data.projects.length} project${j.data.projects.length===1?"":"s"} in this organization.`);Be(ue,{eyebrow:"Team",title:"Projects",get description(){return e(u)},actions:o,$$slots:{actions:!0}})}var pe=s(ue,2);{var be=o=>{var u=V(),x=d(u);_(x,()=>ge,(b,N)=>{N(b,{children:(I,C)=>{var D=V(),S=d(D);_(S,()=>_e,(q,T)=>{T(q,{class:"space-y-3 pt-6",children:(A,Q)=>{var M=rt(),p=s(d(M),2),E=v(p);$e(E,{placeholder:"Project name",get value(){return e(L)},set value(t){n(L,t,!0)}});var g=s(E,2);Se(g,20,()=>ne,t=>t,(t,l)=>{var a=tt(),h=v(a,!0);c(a);var m={};G(()=>{P(h,l),m!==(m=l)&&(a.value=(a.__value=l)??"")}),r(t,a)}),c(g),c(p);var i=s(p,2);$e(i,{placeholder:"Description (optional)",get value(){return e(ee)},set value(t){n(ee,t,!0)}});var $=s(i,2),f=v($);{let t=K(()=>e(re)||!e(L));se(f,{onclick:he,get disabled(){return e(t)},children:(l,a)=>{F();var h=X();G(()=>P(h,e(re)?"Creating…":"Create project")),r(l,h)},$$slots:{default:!0}})}var w=s(f,2);se(w,{variant:"outline",onclick:()=>n(B,!1),children:(t,l)=>{F();var a=X("Cancel");r(t,a)},$$slots:{default:!0}}),c($),Ee(g,()=>e(te),t=>n(te,t)),r(A,M)},$$slots:{default:!0}})}),r(I,D)},$$slots:{default:!0}})}),r(o,u)};oe(pe,o=>{e(B)&&o(be)})}var we=s(pe,2);_(we,()=>ge,(o,u)=>{u(o,{children:(x,b)=>{var N=V(),I=d(N);_(I,()=>_e,(C,D)=>{D(C,{class:"pt-6",children:(S,q)=>{var T=V(),A=d(T);{var Q=p=>{Le(p,{get icon(){return Me},title:"No projects yet",description:"Create your first project to start uploading definitions."})},M=p=>{ze(p,{get rows(){return j.data.projects},getKey:g=>g.id,columns:[{label:"Project"},{label:"Visibility",width:"120px"},{label:"Members",width:"100px",align:"right"},{label:"Updated",width:"120px",align:"right"},{label:"",width:"80px"}],row:(g,i=Ae)=>{var $=at(),f=d($),w=v(f),t=v(w),l=v(t,!0);c(t);var a=s(t,2),h=v(a);Ze(h,{class:"h-3.5 w-3.5"}),c(a),c(w);var m=s(w,2),z=v(m,!0);c(m),c(f);var H=s(f,2),U=v(H,!0);c(H);var J=s(H,2),ae=v(J,!0);c(J);var W=s(J,2),ye=v(W,!0);c(W);var ve=s(W,2),je=v(ve);{let de=K(()=>e(Y)===i().id);se(je,{size:"sm",variant:"ghost",get disabled(){return e(de)},onclick:()=>n(k,i(),!0),class:"text-destructive hover:text-destructive h-8 w-8 p-0",children:(ke,dt)=>{Ge(ke,{class:"h-4 w-4"})},$$slots:{default:!0}})}c(ve),G(de=>{me(t,"href",`/projects?project=${i().slug}`),P(l,i().name),me(a,"href",`/projects?project=${i().slug}`),P(z,i().slug),Ne(H,1,`w-fit rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${Z[i().visibility]??Z.private}`),P(U,i().visibility),P(ae,i().memberCount),P(ye,de)},[()=>new Date(i().updatedAt).toLocaleDateString()]),r(g,$)},$$slots:{row:!0}})};oe(A,p=>{j.data.projects.length===0?p(Q):p(M,-1)})}r(S,T)},$$slots:{default:!0}})}),r(x,N)},$$slots:{default:!0}})}),c(ie);var Pe=s(ie,2);{let o=K(()=>!!e(k));_(Pe,()=>Ue,(u,x)=>{x(u,{get open(){return e(o)},onOpenChange:b=>!b&&n(k,null),children:(b,N)=>{var I=V(),C=d(I);_(C,()=>He,(D,S)=>{S(D,{children:(q,T)=>{var A=nt(),Q=d(A);_(Q,()=>Je,(p,E)=>{E(p,{children:(g,i)=>{var $=st(),f=d($);_(f,()=>Ke,(t,l)=>{l(t,{children:(a,h)=>{F();var m=X("Delete this project?");r(a,m)},$$slots:{default:!0}})});var w=s(f,2);_(w,()=>Re,(t,l)=>{l(t,{children:(a,h)=>{var m=V(),z=d(m);{var H=U=>{var J=ot(),ae=d(J),W=v(ae,!0);c(ae),F(),G(()=>P(W,e(k).name)),r(U,J)};oe(z,U=>{e(k)&&U(H)})}r(a,m)},$$slots:{default:!0}})}),r(g,$)},$$slots:{default:!0}})});var M=s(Q,2);_(M,()=>Ye,(p,E)=>{E(p,{children:(g,i)=>{var $=lt(),f=d($);_(f,()=>qe,(t,l)=>{l(t,{children:(a,h)=>{F();var m=X("Cancel");r(a,m)},$$slots:{default:!0}})});var w=s(f,2);{let t=K(()=>!!e(Y));_(w,()=>Qe,(l,a)=>{a(l,{onclick:()=>e(k)&&xe(e(k)),get disabled(){return e(t)},children:(h,m)=>{F();var z=X();G(()=>P(z,e(Y)?"Deleting…":"Delete")),r(h,z)},$$slots:{default:!0}})})}r(g,$)},$$slots:{default:!0}})}),r(q,A)},$$slots:{default:!0}})}),r(b,I)},$$slots:{default:!0}})})}r(le,ce),Ce()}export{At as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as p,aN as m,af as i,bk as n,V as d,aW as f}from"../chunks/DEk358l3.js";import{a as u,f as v}from"../chunks/DS1KfRtl.js";import{p as a}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as p,aN as m,af as i,bk as n,V as d,aW as f}from"../chunks/DEk358l3.js";import{a as u,f as v}from"../chunks/DS1KfRtl.js";import{p as a}from"../chunks/DuHtWI31.js";import{E as g}from"../chunks/5h7wo9xN.js";var c=v('<div class="px-6 py-6"><!></div>');function b(e,s){p(s,!0);var r=c(),t=d(r);{let o=n(()=>a.error?.message);g(t,{get status(){return a.status},get message(){return i(o)}})}f(r),u(e,r),m()}export{b as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as dt,ac as e,aN as ct,a8 as mt,V as g,$ as ut,b7 as s,aK as ft,aW as $,aJ as k,af as a,be as Q,a_ as T,bk as W,ba as at}from"../chunks/DEk358l3.js";import{s as R}from"../chunks/T-Nslbso.js";import{a as t,f as b,c as O,t as q}from"../chunks/DS1KfRtl.js";import{i as rt}from"../chunks/BnZOgasr.js";import{c as i}from"../chunks/DCBLBrrW.js";import{h as pt}from"../chunks/DfVTcmam.js";import{j as _t}from"../chunks/6CzuHfQM.js";import{i as vt}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as dt,ac as e,aN as ct,a8 as mt,V as g,$ as ut,b7 as s,aK as ft,aW as $,aJ as k,af as a,be as Q,a_ as T,bk as W,ba as at}from"../chunks/DEk358l3.js";import{s as R}from"../chunks/T-Nslbso.js";import{a as t,f as b,c as O,t as q}from"../chunks/DS1KfRtl.js";import{i as rt}from"../chunks/BnZOgasr.js";import{c as i}from"../chunks/DCBLBrrW.js";import{h as pt}from"../chunks/DfVTcmam.js";import{j as _t}from"../chunks/6CzuHfQM.js";import{i as vt}from"../chunks/U_alzAUv.js";import{S as gt}from"../chunks/BiG82jCv.js";import{a as $t,C as ht}from"../chunks/2BnY_oab.js";import{E as xt}from"../chunks/BnIDUuJL.js";import{F as bt}from"../chunks/RmXOMQTe.js";import{D as wt}from"../chunks/DkpwXYYZ.js";import{b as yt,e as Pt,f as Rt,c as At,d as kt,a as Tt,A as Ct,R as It}from"../chunks/atM6maCg.js";import{B as St}from"../chunks/BH9oGrlA.js";import{R as jt}from"../chunks/Dw6fzgfW.js";import{t as G}from"../chunks/BfHBnYuG.js";var zt=b("<!> Reclaim",1),Ft=b('<div class="min-w-0"><p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-xs"> </p></div> <span> </span> <span class="text-right font-mono text-sm tabular-nums"> </span> <div class="flex justify-end"><!></div>',1),Nt=b(`You'll be added as a co-owner of <strong> </strong>. The existing owner is
|
|
2
2
|
not demoted. This action is recorded in the audit log.`,1),Ot=b("<!> <!>",1),Bt=b("<!> <!>",1),Et=b("<!> <!>",1),Vt=b('<div class="space-y-6"><!> <!></div> <!>',1);function se(ot,B){dt(B,!0);let f=at(null),A=at(null);const U={public:"border-success/40 text-success",org:"border-blue-500/40 text-blue-600 dark:text-blue-400",private:"border-border text-muted-foreground"};async function st(p){T(A,p.id,!0);try{const w=await fetch(`/api/projects/${p.id}/reclaim`,{method:"POST"});if(w.ok)G.success(`Reclaimed "${p.name}"`),await vt();else{const y=await w.json().catch(()=>({}));G.error(y.message||y.error||"Failed to reclaim")}}catch{G.error("Failed to reclaim")}finally{T(A,null),T(f,null)}}var X=Vt();pt("1h6uwd2",p=>{mt(()=>{ut.title="Team · Reclaim"})});var E=e(X),Z=g(E);gt(Z,{eyebrow:"Organization",title:"Reclaim project",description:"Take co-ownership of any project in this organization. Reclaiming does not demote the existing owner — it adds you alongside them. Recorded in the audit log."});var it=s(Z,2);i(it,()=>ht,(p,w)=>{w(p,{children:(y,C)=>{var V=O(),I=e(V);i(I,()=>$t,(D,K)=>{K(D,{class:"pt-6",children:(Y,tt)=>{var H=O(),S=e(H);{var j=r=>{xt(r,{get icon(){return bt},title:"No projects",description:"No projects exist in this organization yet."})},J=r=>{wt(r,{get rows(){return B.data.projects},getKey:h=>h.id,columns:[{label:"Project"},{label:"Visibility",width:"120px"},{label:"Members",width:"100px",align:"right"},{label:"",width:"100px"}],row:(h,l=ft)=>{var _=Ft(),n=e(_),x=g(n),d=g(x,!0);$(x);var o=s(x,2),c=g(o,!0);$(o),$(n);var m=s(n,2),u=g(m,!0);$(m);var v=s(m,2),L=g(v,!0);$(v);var P=s(v,2),F=g(P);{let N=W(()=>a(A)===l().id);St(F,{size:"sm",variant:"outline",get disabled(){return a(N)},onclick:()=>T(f,l(),!0),children:(M,Dt)=>{var et=zt(),nt=e(et);jt(nt,{class:"mr-1.5 h-3.5 w-3.5"}),k(),t(M,et)},$$slots:{default:!0}})}$(P),Q(()=>{R(d,l().name),R(c,l().id),_t(m,1,`w-fit rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${U[l().visibility]??U.private}`),R(u,l().visibility),R(L,l().memberCount)}),t(h,_)},$$slots:{row:!0}})};rt(S,r=>{B.data.projects.length===0?r(j):r(J,-1)})}t(Y,H)},$$slots:{default:!0}})}),t(y,V)},$$slots:{default:!0}})}),$(E);var lt=s(E,2);{let p=W(()=>!!a(f));i(lt,()=>It,(w,y)=>{y(w,{get open(){return a(p)},onOpenChange:C=>!C&&T(f,null),children:(C,V)=>{var I=O(),D=e(I);i(D,()=>yt,(K,Y)=>{Y(K,{children:(tt,H)=>{var S=Et(),j=e(S);i(j,()=>Pt,(r,z)=>{z(r,{children:(h,l)=>{var _=Ot(),n=e(_);i(n,()=>Rt,(d,o)=>{o(d,{children:(c,m)=>{k();var u=q("Reclaim this project?");t(c,u)},$$slots:{default:!0}})});var x=s(n,2);i(x,()=>At,(d,o)=>{o(d,{children:(c,m)=>{var u=O(),v=e(u);{var L=P=>{var F=Nt(),N=s(e(F)),M=g(N,!0);$(N),k(),Q(()=>R(M,a(f).name)),t(P,F)};rt(v,P=>{a(f)&&P(L)})}t(c,u)},$$slots:{default:!0}})}),t(h,_)},$$slots:{default:!0}})});var J=s(j,2);i(J,()=>kt,(r,z)=>{z(r,{children:(h,l)=>{var _=Bt(),n=e(_);i(n,()=>Tt,(d,o)=>{o(d,{children:(c,m)=>{k();var u=q("Cancel");t(c,u)},$$slots:{default:!0}})});var x=s(n,2);{let d=W(()=>!!a(A));i(x,()=>Ct,(o,c)=>{c(o,{onclick:()=>a(f)&&st(a(f)),get disabled(){return a(d)},children:(m,u)=>{k();var v=q();Q(()=>R(v,a(A)?"Reclaiming…":"Reclaim")),t(m,v)},$$slots:{default:!0}})})}t(h,_)},$$slots:{default:!0}})}),t(tt,S)},$$slots:{default:!0}})}),t(C,I)},$$slots:{default:!0}})})}t(ot,X),ct()}export{se as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{ac as p,aK as m}from"../chunks/DEk358l3.js";import{c as s,a as i}from"../chunks/DS1KfRtl.js";import{s as n}from"../chunks/9DES--UJ.js";import{A as d}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{ac as p,aK as m}from"../chunks/DEk358l3.js";import{c as s,a as i}from"../chunks/DS1KfRtl.js";import{s as n}from"../chunks/9DES--UJ.js";import{A as d}from"../chunks/D_C_YIH8.js";function _(r,a){d(r,{mode:"fixed",children:(t,f)=>{var o=s(),e=p(o);n(e,()=>a.children??m),i(t,o)},$$slots:{default:!0}})}export{_ as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
g@dpn��Ķ�9�Ē���V�%)]ho�Q��ͦ�}&D�!�j����<�og8�~��]l�b#t>�Z�٣���~�Eq��Wj�f��+lIT|e�(z(��.�^w�#��9֢Gq���-�ѥM�ɸ�i<�0wjK�*F�V)S&�ȩ5����.6�Z�Wp���(�Ɍ���{���T�T��>�I?W��a���%L��6
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as R,aN as U,af as g,ac as C,bk as v,V as r,aK as F,aW as o,b7 as w,be as L}from"../chunks/DEk358l3.js";import{a as B,r as K,s as O,d as Q}from"../chunks/DCBLBrrW.js";import{s as u}from"../chunks/T-Nslbso.js";import{s as V}from"../chunks/9DES--UJ.js";import{i as W}from"../chunks/BnZOgasr.js";import{a as _,f as y,c as q}from"../chunks/DS1KfRtl.js";import{p as D}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as R,aN as U,af as g,ac as C,bk as v,V as r,aK as F,aW as o,b7 as w,be as L}from"../chunks/DEk358l3.js";import{a as B,r as K,s as O,d as Q}from"../chunks/DCBLBrrW.js";import{s as u}from"../chunks/T-Nslbso.js";import{s as V}from"../chunks/9DES--UJ.js";import{i as W}from"../chunks/BnZOgasr.js";import{a as _,f as y,c as q}from"../chunks/DS1KfRtl.js";import{p as D}from"../chunks/Dtx1M6QG.js";import{A as E}from"../chunks/D_C_YIH8.js";import{S as J,G as T}from"../chunks/DnURu9OT.js";import{U as X}from"../chunks/CE8BcsFf.js";import{F as Y}from"../chunks/DH_OLMrQ.js";import{R as Z}from"../chunks/Dw6fzgfW.js";import{A as ee}from"../chunks/OVtUuDzp.js";import{L as ae}from"../chunks/Bex2dy3F.js";import{S as te}from"../chunks/BjB88iwt.js";import{I as re}from"../chunks/DUpVdSFf.js";function oe(m,e){let p=K(e,["$$slots","$$events","$$legacy"]);const c=[["path",{d:"M10 5H3"}],["path",{d:"M12 19H3"}],["path",{d:"M14 3v4"}],["path",{d:"M16 17v4"}],["path",{d:"M21 12h-9"}],["path",{d:"M21 19h-5"}],["path",{d:"M21 5h-7"}],["path",{d:"M8 10v4"}],["path",{d:"M8 12H3"}]];re(m,B({name:"sliders-horizontal"},()=>p,{get iconNode(){return c}}))}var se=y('<div class="border-border bg-accent/40 flex items-center gap-2 rounded-md border px-2.5 py-2"><span class="bg-primary/15 text-primary flex h-6 w-6 shrink-0 items-center justify-center rounded font-mono text-[11px] font-semibold"> </span> <div class="min-w-0 flex-1"><p class="truncate text-sm leading-tight font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-[10px]"> </p></div></div>'),ie=y('<div class="px-(--page-px) py-(--page-py)"><!></div>');function Se(m,e){R(e,!0);const p=()=>Q(D,"$page",c),[c,M]=O(),S=v(()=>e.data.ctx?.orgPermissions??[]),a=t=>g(S).includes(t),k=v(()=>!!p().data.flags?.enableSharing),$=v(()=>[{href:"/team",label:"General",icon:T,show:!0},{href:"/team/members",label:"Members & roles",icon:X,match:"prefix",show:a("manage_org_members")},{href:"/team/projects",label:"Projects",icon:Y,match:"prefix",show:a("manage_projects")},{href:"/team/reclaim",label:"Reclaim",icon:Z,match:"prefix",show:a("manage_org_members")},{href:"/team/activity",label:"Activity",icon:ee,match:"prefix",show:!0},{href:"/team/shares",label:"Share links",icon:ae,match:"prefix",show:g(k)&&a("manage_definitions")},{href:"/team/compute",label:"Compute",icon:te,match:"prefix",show:a("manage_org_compute")},{href:"/team/settings",label:"Settings",icon:oe,match:"prefix",show:a("manage_org_members")}].filter(t=>t.show));function j(t){return t.split(/\s+/).filter(Boolean).slice(0,2).map(s=>s[0].toUpperCase()).join("")}E(m,{sidenav:s=>{J(s,{get items(){return g($)},eyebrow:"Organization",header:i=>{var n=q(),H=C(n);{var N=l=>{var d=se(),f=r(d),P=r(f,!0);o(f);var b=w(f,2),h=r(b),z=r(h,!0);o(h);var x=w(h,2),G=r(x,!0);o(x),o(b),o(d),L(I=>{u(P,I),u(z,e.data.org.name),u(G,e.data.org.slug)},[()=>j(e.data.org.name)]),_(l,d)};W(H,l=>{e.data.org&&l(N)})}_(i,n)},$$slots:{header:!0}})},children:(s,A)=>{var i=ie(),n=r(i);V(n,()=>e.children??F),o(i),_(s,i)},$$slots:{sidenav:!0,default:!0}}),U(),M()}export{Se as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as J,aN as N,a2 as O,be as Q,$ as S,af as r,V as e,aW as a,b7 as v,aJ as u,bk as x}from"../chunks/DEk358l3.js";import{s as h}from"../chunks/T-Nslbso.js";import{a as p,f as U,t as g}from"../chunks/DS1KfRtl.js";import{i as V}from"../chunks/BnZOgasr.js";import{h as W}from"../chunks/DfVTcmam.js";import{p as $}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as J,aN as N,a2 as O,be as Q,$ as S,af as r,V as e,aW as a,b7 as v,aJ as u,bk as x}from"../chunks/DEk358l3.js";import{s as h}from"../chunks/T-Nslbso.js";import{a as p,f as U,t as g}from"../chunks/DS1KfRtl.js";import{i as V}from"../chunks/BnZOgasr.js";import{h as W}from"../chunks/DfVTcmam.js";import{p as $}from"../chunks/DuHtWI31.js";import{A as q}from"../chunks/D_C_YIH8.js";import{B as _}from"../chunks/BH9oGrlA.js";var z=U('<div class="flex flex-1 flex-col items-center justify-center px-4 text-center"><div class="max-w-md space-y-6"><h1 class="text-4xl font-bold tracking-tight"> </h1> <p class="text-muted-foreground text-lg"> </p> <div class="flex justify-center gap-3"><!></div></div></div>');function T(b,y){J(y,!0);const k=x(()=>!!$.data.user),s=x(()=>$.data.branding);W("1uha8ag",f=>{O(()=>{S.title=r(s).name??""})}),q(b,{homeUrl:"/",children:(f,C)=>{var o=z(),m=e(o),i=e(m),A=e(i,!0);a(i);var l=v(i,2),P=e(l,!0);a(l);var c=v(l,2),j=e(c);{var B=t=>{_(t,{href:"/library",children:(d,H)=>{u();var n=g("Open library");p(d,n)},$$slots:{default:!0}})},w=t=>{_(t,{href:"/login",children:(d,H)=>{u();var n=g("Sign in");p(d,n)},$$slots:{default:!0}})};V(j,t=>{r(k)?t(B):t(w,-1)})}a(c),a(m),a(o),Q(()=>{h(A,r(s).name),h(P,r(s).tagline)}),p(f,o)},$$slots:{default:!0}}),N()}export{T as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as aa,aN as ta,a2 as ea,$ as ra,V as r,aW as o,ac as g,b7 as t,aJ as v,be as $}from"../chunks/DEk358l3.js";import{s as y}from"../chunks/T-Nslbso.js";import{a as e,f as u,t as f,c as oa}from"../chunks/DS1KfRtl.js";import{i as A}from"../chunks/BnZOgasr.js";import{c as R}from"../chunks/DCBLBrrW.js";import{h as sa}from"../chunks/DfVTcmam.js";import{r as ia,l as da}from"../chunks/6CzuHfQM.js";import{p as na}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as aa,aN as ta,a2 as ea,$ as ra,V as r,aW as o,ac as g,b7 as t,aJ as v,be as $}from"../chunks/DEk358l3.js";import{s as y}from"../chunks/T-Nslbso.js";import{a as e,f as u,t as f,c as oa}from"../chunks/DS1KfRtl.js";import{i as A}from"../chunks/BnZOgasr.js";import{c as R}from"../chunks/DCBLBrrW.js";import{h as sa}from"../chunks/DfVTcmam.js";import{r as ia,l as da}from"../chunks/6CzuHfQM.js";import{p as na}from"../chunks/DuHtWI31.js";import{B as la}from"../chunks/BH9oGrlA.js";import{C as va}from"../chunks/DFnVpznB.js";import{a as ma,A as ca}from"../chunks/DApsykQI.js";import{L as S}from"../chunks/DzNzLgOO.js";import{I as Y}from"../chunks/B48NJnzU.js";var pa=u('<div class="space-y-1 text-center"><h2 class="text-foreground text-2xl font-bold tracking-tight">Invite unavailable</h2> <p class="text-muted-foreground text-sm"> </p></div> <div class="text-center"><a href="/login" class="text-primary text-sm underline">Go to login</a></div>',1),fa=u("<!> <!>",1),ua=u('Display name <span class="text-muted-foreground">(optional)</span>',1),_a=u('<div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div>',1),xa=u('<div class="space-y-1 text-center"><h2 class="text-foreground text-2xl font-bold tracking-tight"> </h2> <p class="text-muted-foreground text-sm">You were invited as <span class="font-medium"> </span>. <!></p></div> <form method="POST" class="space-y-4"><input type="hidden" name="token"/> <!> <!> <!></form>',1),ha=u('<div class="bg-background flex min-h-screen items-center justify-center px-4 py-12 sm:px-6 lg:px-8"><div class="w-full max-w-sm space-y-6"><!></div></div>');function La(T,s){aa(s,!0);var C=ha();sa("p8b09p",n=>{ea(()=>{ra.title=`Accept invite - ${na.data.branding.name??""}`})});var j=r(C),V=r(j);{var W=n=>{var _=pa(),m=g(_),c=t(r(m),2),N=r(c,!0);o(c),o(m),v(2),$(()=>y(N,s.data.reason)),e(n,_)},z=n=>{var _=xa(),m=g(_),c=r(m),N=r(c);o(c);var D=t(c,2),I=t(r(D)),E=r(I,!0);o(I);var F=t(I,2);{var H=a=>{var i=f(`Click below to finish creating your account — your identity is verified by your company
|
|
2
2
|
sign-in.`);e(a,i)},K=a=>{var i=f("Set a password to finish creating your account.");e(a,i)};A(F,a=>{s.data.mode==="proxy"?a(H):a(K,-1)})}o(D),o(m);var G=t(m,2),q=r(G);ia(q);var M=t(q,2);{var U=a=>{var i=oa(),d=g(i);R(d,()=>ca,(b,B)=>{B(b,{variant:"destructive",children:(x,J)=>{var w=fa(),h=g(w);va(h,{});var k=t(h,2);R(k,()=>ma,(L,l)=>{l(L,{children:(P,p)=>{v();var Q=f();$(()=>y(Q,s.form.error)),e(P,Q)},$$slots:{default:!0}})}),e(x,w)},$$slots:{default:!0}})}),e(a,i)};A(M,a=>{s.form?.error&&a(U)})}var O=t(M,2);{var X=a=>{var i=_a(),d=g(i),b=r(d);S(b,{for:"displayName",children:(l,P)=>{v();var p=ua();v(),e(l,p)},$$slots:{default:!0}});var B=t(b,2);Y(B,{id:"displayName",name:"displayName",type:"text",placeholder:"Your name"}),o(d);var x=t(d,2),J=r(x);S(J,{for:"password",children:(l,P)=>{v();var p=f("Password");e(l,p)},$$slots:{default:!0}});var w=t(J,2);Y(w,{id:"password",name:"password",type:"password",required:!0,placeholder:"Min. 8 characters"}),o(x);var h=t(x,2),k=r(h);S(k,{for:"confirm",children:(l,P)=>{v();var p=f("Confirm password");e(l,p)},$$slots:{default:!0}});var L=t(k,2);Y(L,{id:"confirm",name:"confirm",type:"password",required:!0,placeholder:"Repeat password"}),o(h),e(a,i)};A(O,a=>{s.data.mode==="password"&&a(X)})}var Z=t(O,2);la(Z,{type:"submit",class:"w-full",children:(a,i)=>{v();var d=f();$(()=>y(d,s.data.mode==="proxy"?"Accept invite":"Create account")),e(a,d)},$$slots:{default:!0}}),o(G),$(()=>{y(N,`Join ${s.data.orgName??""}`),y(E,s.data.email),da(q,s.data.token)}),e(n,_)};A(V,n=>{s.data.ok?n(z,-1):n(W)})}o(j),o(C),e(T,C),ta()}export{La as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunks/DsnmJJEf.js";import{aQ as D,aN as H,a8 as J,$ as L,V as x,af as $,b7 as d,aW as l,ac as b,aJ as O,be as Q,bk as A}from"../chunks/DEk358l3.js";import{s as W}from"../chunks/T-Nslbso.js";import{a as n,f as m,c as q}from"../chunks/DS1KfRtl.js";import{e as E}from"../chunks/6CzuHfQM.js";import{a as w,r as N,c}from"../chunks/DCBLBrrW.js";import{h as F}from"../chunks/DfVTcmam.js";import{p as K}from"../chunks/
|
|
1
|
+
import"../chunks/DsnmJJEf.js";import{aQ as D,aN as H,a8 as J,$ as L,V as x,af as $,b7 as d,aW as l,ac as b,aJ as O,be as Q,bk as A}from"../chunks/DEk358l3.js";import{s as W}from"../chunks/T-Nslbso.js";import{a as n,f as m,c as q}from"../chunks/DS1KfRtl.js";import{e as E}from"../chunks/6CzuHfQM.js";import{a as w,r as N,c}from"../chunks/DCBLBrrW.js";import{h as F}from"../chunks/DfVTcmam.js";import{p as K}from"../chunks/DuHtWI31.js";import{S as R}from"../chunks/Cauzi832.js";import{S as T}from"../chunks/BiG82jCv.js";import{C as X,a as Y}from"../chunks/FdBsYR_f.js";import{I as j}from"../chunks/DUpVdSFf.js";import{a as Z,C as aa}from"../chunks/2BnY_oab.js";import{U as ea}from"../chunks/CE8BcsFf.js";import{B as ta}from"../chunks/B5HD-6Ib.js";import{S as sa}from"../chunks/BjB88iwt.js";function ra(r,a){let o=N(a,["$$slots","$$events","$$legacy"]);const t=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1"}]];j(r,w({name:"layout-dashboard"},()=>o,{get iconNode(){return t}}))}function oa(r,a){let o=N(a,["$$slots","$$events","$$legacy"]);const t=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z"}],["path",{d:"M12 22V12"}],["polyline",{points:"3.29 7 12 12 20.71 7"}],["path",{d:"m7.5 4.27 9 5.15"}]];j(r,w({name:"package"},()=>o,{get iconNode(){return t}}))}var na=m("<!> Installed version",1),ia=m('<div class="flex flex-wrap items-baseline gap-x-3 gap-y-1"><code class="text-foreground font-mono text-xs">@selvajs/selva</code> <span class="text-muted-foreground text-xs"> </span></div>'),da=m("<!> <!>",1),la=m('<div class="space-y-6"><!> <div class="grid gap-3 sm:grid-cols-2 lg:grid-cols-3"></div> <!></div>');function Na(r,a){D(a,!0);const o=A(()=>K.data.branding.name),t=e=>a.data.platformPermissions.includes("instance_admin")||a.data.platformPermissions.includes(e),U=A(()=>[{href:"/admin/users",icon:ea,value:a.data.stats.users??"—",label:a.data.stats.users===null?"User store unavailable":`User${a.data.stats.users===1?"":"s"}`,show:t("manage_instance_users")},{href:"/admin/organizations",icon:ta,value:"Organizations",label:"All orgs on this instance",show:t("instance_admin")},{href:"/admin/compute",icon:sa,value:"Compute",label:"Servers, status & config",show:t("manage_compute")},{href:"/projects",icon:ra,value:"Content",label:"Definitions & projects",show:t("instance_admin")}].filter(e=>e.show));var f=la();F("1jef3w8",e=>{J(()=>{L.title="Admin · General"})});var y=x(f);T(y,{eyebrow:"Admin",title:"General",get description(){return`At-a-glance health of this ${$(o)??""} instance — users, compute, and content.`}});var p=d(y,2);E(p,21,()=>$(U),e=>e.href,(e,u)=>{R(e,w(()=>$(u)))}),l(p);var k=d(p,2);c(k,()=>aa,(e,u)=>{u(e,{children:(z,ca)=>{var C=da(),P=b(C);c(P,()=>X,(h,v)=>{v(h,{children:(g,V)=>{var s=q(),i=b(s);c(i,()=>Y,(_,B)=>{B(_,{class:"flex items-center gap-2 text-sm font-medium",children:(G,ma)=>{var S=na(),M=b(S);oa(M,{class:"text-muted-foreground h-4 w-4"}),O(),n(G,S)},$$slots:{default:!0}})}),n(g,s)},$$slots:{default:!0}})});var I=d(P,2);c(I,()=>Z,(h,v)=>{v(h,{children:(g,V)=>{var s=ia(),i=d(x(s),2),_=x(i);l(i),l(s),Q(()=>W(_,`v${a.data.version??""}`)),n(g,s)},$$slots:{default:!0}})}),n(z,C)},$$slots:{default:!0}})}),l(f),n(r,f),H()}export{Na as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1781503643442"}
|
|
Binary file
|
|
Binary file
|