@saluzi/saluzi-edu 0.4.4 → 0.4.5
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/dist/cli.js +48 -48
- package/dist/rcs-web/assets/{AdminPanel-XUPCFYy3.js → AdminPanel-CpzAO2vZ.js} +1 -1
- package/dist/rcs-web/assets/{ArtifactView-DNXqmMry.js → ArtifactView-CEyKbOJh.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/ArtifactsGallery-TqoBn1Gk.js → dist/rcs-web/assets/ArtifactsGallery-B_JcCYh1.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/Claim-DiftF6v2.js → dist/rcs-web/assets/Claim-CGxjGaui.js} +1 -1
- package/dist/rcs-web/assets/{Dashboard-jHKJZ6t_.js → Dashboard-DCq-h_y9.js} +2 -2
- package/dist/rcs-web/assets/{Join-BwIxg7cf.js → Join-BM43XjA0.js} +1 -1
- package/dist/rcs-web/assets/{Login-B3RpkrIW.js → Login-CPx4Dc28.js} +1 -1
- package/dist/rcs-web/assets/{Register-D-P_EHZt.js → Register-BV3xfUvd.js} +1 -1
- package/dist/rcs-web/assets/SessionDetail-DgMDo7Ge.js +88 -0
- package/dist/rcs-web/assets/{SessionVisibilityBadge-1GnXHTQ2.js → SessionVisibilityBadge-CvqFRTea.js} +1 -1
- package/dist/rcs-web/assets/{Setup-Dgwde_jD.js → Setup-GfWdRpvh.js} +1 -1
- package/dist/rcs-web/assets/{ShareLanding-BfoPJPl3.js → ShareLanding-BuEXTqqz.js} +1 -1
- package/dist/rcs-web/assets/{TeamCreate-B_Us0Z-O.js → TeamCreate-DalKoyLy.js} +1 -1
- package/dist/rcs-web/assets/{TeamDetail-CRfnzqpF.js → TeamDetail-DevkNiHQ.js} +2 -2
- package/dist/rcs-web/assets/{TeamList-Bp9gOv8_.js → TeamList-B1pHxRaK.js} +1 -1
- package/dist/rcs-web/assets/{TeamSettings-G2gI007X.js → TeamSettings-DWnEJMTx.js} +1 -1
- package/dist/rcs-web/assets/{UserSearchInput-Df2D_8d5.js → UserSearchInput-DgktGnh2.js} +1 -1
- package/dist/rcs-web/assets/{UserSettings-D4fd1xf3.js → UserSettings-DPhvsn9k.js} +1 -1
- package/dist/rcs-web/assets/{arc-CBGdsIh-.js → arc-C7foUDWz.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/architectureDiagram-3BPJPVTR-DorxkDDi.js → dist/rcs-web/assets/architectureDiagram-3BPJPVTR-BzsYecpv.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/blockDiagram-GPEHLZMM-D2NfI8QU.js → dist/rcs-web/assets/blockDiagram-GPEHLZMM-D4BSEcZT.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-D8POOSxc.js → dist/rcs-web/assets/c4Diagram-AAUBKEIU-CIap7aYJ.js} +1 -1
- package/dist/rcs-web/assets/channel-69qfoCOr.js +1 -0
- package/dist/rcs-web/assets/{chunk-2J33WTMH-94J74-8z.js → chunk-2J33WTMH-s9V4oCUf.js} +1 -1
- package/dist/rcs-web/assets/{chunk-4BX2VUAB-BBcpBLxW.js → chunk-4BX2VUAB-CJrYwRaR.js} +1 -1
- package/dist/rcs-web/assets/{chunk-55IACEB6-BnVNN6wz.js → chunk-55IACEB6-D8swZDnP.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/chunk-727SXJPM-BFA9U6Tt.js → dist/rcs-web/assets/chunk-727SXJPM-vJ6LjIbB.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/chunk-AQP2D5EJ-CbXGEiY2.js → dist/rcs-web/assets/chunk-AQP2D5EJ-COrMlHZr.js} +1 -1
- package/dist/rcs-web/assets/{chunk-FMBD7UC4-CzvDBtBa.js → chunk-FMBD7UC4-0lUT-961.js} +1 -1
- package/dist/rcs-web/assets/{chunk-ND2GUHAM-sjvYji_m.js → chunk-ND2GUHAM-BWqVDbg4.js} +1 -1
- package/dist/rcs-web/assets/{chunk-QZHKN3VN-WiDDkzYa.js → chunk-QZHKN3VN-CfeMmsaw.js} +1 -1
- package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-DihFTUAb.js +1 -0
- package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-DihFTUAb.js +1 -0
- package/dist/rcs-web/assets/{code-block-IT6T5CEO-Bx7lAeeI.js → code-block-IT6T5CEO-FipRU7Gt.js} +1 -1
- package/dist/rcs-web/assets/{copy-CM8iJdCD.js → copy-RtDWH7m7.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A-CC3LEak7.js → dist/rcs-web/assets/cose-bilkent-S5V4N54A-wlwIwiSf.js} +1 -1
- package/dist/rcs-web/assets/{dagre-BM42HDAG-2AKIj2nY.js → dagre-BM42HDAG-FlvB-WBQ.js} +1 -1
- package/dist/rcs-web/assets/{diagram-2AECGRRQ-D7x_-74x.js → diagram-2AECGRRQ-Dd5G25-Q.js} +1 -1
- package/dist/rcs-web/assets/{diagram-5GNKFQAL-BM5476us.js → diagram-5GNKFQAL-CnS79Wiq.js} +1 -1
- package/dist/rcs-web/assets/{diagram-KO2AKTUF-DS18dM8U.js → diagram-KO2AKTUF-oeffrVzV.js} +1 -1
- package/dist/rcs-web/assets/{diagram-LMA3HP47-BGetNvFW.js → diagram-LMA3HP47-Dc4rRllI.js} +1 -1
- package/dist/rcs-web/assets/{diagram-OG6HWLK6-ChYQZDqt.js → diagram-OG6HWLK6-QYKwztsm.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/dialog-DYv3nFNt.js → dist/rcs-web/assets/dialog-C6bSop75.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/erDiagram-TEJ5UH35-HnXSUhgQ.js → dist/rcs-web/assets/erDiagram-TEJ5UH35-CFoDAbeH.js} +1 -1
- package/dist/rcs-web/assets/{flowDiagram-I6XJVG4X-B_hKhp1A.js → flowDiagram-I6XJVG4X-zOHsjkHO.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/ganttDiagram-6RSMTGT7-8wN2M_TF.js → dist/rcs-web/assets/ganttDiagram-6RSMTGT7-DmdYR8vQ.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/gitGraphDiagram-PVQCEYII-fPAxO3fb.js → dist/rcs-web/assets/gitGraphDiagram-PVQCEYII-ChNq0nxK.js} +1 -1
- package/dist/rcs-web/assets/{infoDiagram-5YYISTIA-BcwXADoa.js → infoDiagram-5YYISTIA-CTOfXwsH.js} +1 -1
- package/dist/rcs-web/assets/{ishikawaDiagram-YF4QCWOH-_12LFXDQ.js → ishikawaDiagram-YF4QCWOH-AbFaqfWq.js} +1 -1
- package/dist/rcs-web/assets/{journeyDiagram-JHISSGLW-BQauj_0q.js → journeyDiagram-JHISSGLW-BZ5YDbY5.js} +1 -1
- package/dist/rcs-web/assets/{kanban-definition-UN3LZRKU-DGngaCZy.js → kanban-definition-UN3LZRKU-2ujiDLTJ.js} +1 -1
- package/dist/rcs-web/assets/{linear-9Tvqv7kO.js → linear-hvc2NcTZ.js} +1 -1
- package/dist/rcs-web/assets/{main-CRNlYxLI.js → main-2KqxLOVo.js} +4 -4
- package/dist/rcs-web/assets/main-Blk5Y8OW.css +1 -0
- package/{packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-2wv7TFHR.js → dist/rcs-web/assets/mermaid-VLURNSYL-CjE066pc.js} +4 -4
- package/dist/rcs-web/assets/{mermaid.core-BsvpTs-b.js → mermaid.core-D0z5iBed.js} +5 -5
- package/{packages/remote-control-server/web/dist/assets/mindmap-definition-RKZ34NQL-D0-ESz0i.js → dist/rcs-web/assets/mindmap-definition-RKZ34NQL-DN_a_x4Q.js} +1 -1
- package/dist/rcs-web/assets/{pieDiagram-4H26LBE5-DCWjJaQM.js → pieDiagram-4H26LBE5-EaZYytph.js} +1 -1
- package/dist/rcs-web/assets/{quadrantDiagram-W4KKPZXB-uSBEAi2X.js → quadrantDiagram-W4KKPZXB-BbYaZQ_j.js} +1 -1
- package/dist/rcs-web/assets/{refresh-cw-kJbb11GS.js → refresh-cw-2QNtciSF.js} +1 -1
- package/dist/rcs-web/assets/{requirementDiagram-4Y6WPE33-WUpK9KLE.js → requirementDiagram-4Y6WPE33-sQpG_uMR.js} +1 -1
- package/dist/rcs-web/assets/{sankeyDiagram-5OEKKPKP-D0H9ppQi.js → sankeyDiagram-5OEKKPKP-Dk-ywMbO.js} +1 -1
- package/dist/rcs-web/assets/{sequenceDiagram-3UESZ5HK-DQNjsp_9.js → sequenceDiagram-3UESZ5HK-B8kXKWV0.js} +1 -1
- package/dist/rcs-web/assets/{stateDiagram-AJRCARHV-DJwnYmKo.js → stateDiagram-AJRCARHV-BIjc-tAY.js} +1 -1
- package/dist/rcs-web/assets/{stateDiagram-v2-BHNVJYJU-DvUiurqW.js → stateDiagram-v2-BHNVJYJU-BjJyk52d.js} +1 -1
- package/{packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-gknKo8gT.js → dist/rcs-web/assets/timeline-definition-PNZ67QCA-9Myr5rlZ.js} +1 -1
- package/dist/rcs-web/assets/{vennDiagram-CIIHVFJN-DB2f8KRG.js → vennDiagram-CIIHVFJN-B_0p3XFw.js} +1 -1
- package/dist/rcs-web/assets/{wardleyDiagram-YWT4CUSO-C0IQ4e5h.js → wardleyDiagram-YWT4CUSO-JKVEgrM5.js} +1 -1
- package/dist/rcs-web/assets/{xychartDiagram-2RQKCTM6-DKeWjAUB.js → xychartDiagram-2RQKCTM6-DUPPleBK.js} +1 -1
- package/dist/rcs-web/index.html +2 -2
- package/package.json +1 -1
- package/packages/remote-control-server/src/__tests__/routes.test.ts +41 -0
- package/packages/remote-control-server/src/__tests__/sse-writer.test.ts +39 -4
- package/packages/remote-control-server/src/routes/web/sessions.ts +5 -1
- package/packages/remote-control-server/src/transport/sse-writer.ts +16 -2
- package/packages/remote-control-server/web/dist/assets/{AdminPanel-XUPCFYy3.js → AdminPanel-CpzAO2vZ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ArtifactView-DNXqmMry.js → ArtifactView-CEyKbOJh.js} +1 -1
- package/{dist/rcs-web/assets/ArtifactsGallery-TqoBn1Gk.js → packages/remote-control-server/web/dist/assets/ArtifactsGallery-B_JcCYh1.js} +1 -1
- package/{dist/rcs-web/assets/Claim-DiftF6v2.js → packages/remote-control-server/web/dist/assets/Claim-CGxjGaui.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Dashboard-jHKJZ6t_.js → Dashboard-DCq-h_y9.js} +2 -2
- package/packages/remote-control-server/web/dist/assets/{Join-BwIxg7cf.js → Join-BM43XjA0.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Login-B3RpkrIW.js → Login-CPx4Dc28.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Register-D-P_EHZt.js → Register-BV3xfUvd.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/SessionDetail-DgMDo7Ge.js +88 -0
- package/packages/remote-control-server/web/dist/assets/{SessionVisibilityBadge-1GnXHTQ2.js → SessionVisibilityBadge-CvqFRTea.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{Setup-Dgwde_jD.js → Setup-GfWdRpvh.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ShareLanding-BfoPJPl3.js → ShareLanding-BuEXTqqz.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamCreate-B_Us0Z-O.js → TeamCreate-DalKoyLy.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamDetail-CRfnzqpF.js → TeamDetail-DevkNiHQ.js} +2 -2
- package/packages/remote-control-server/web/dist/assets/{TeamList-Bp9gOv8_.js → TeamList-B1pHxRaK.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{TeamSettings-G2gI007X.js → TeamSettings-DWnEJMTx.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{UserSearchInput-Df2D_8d5.js → UserSearchInput-DgktGnh2.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{UserSettings-D4fd1xf3.js → UserSettings-DPhvsn9k.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{arc-CBGdsIh-.js → arc-C7foUDWz.js} +1 -1
- package/{dist/rcs-web/assets/architectureDiagram-3BPJPVTR-DorxkDDi.js → packages/remote-control-server/web/dist/assets/architectureDiagram-3BPJPVTR-BzsYecpv.js} +1 -1
- package/{dist/rcs-web/assets/blockDiagram-GPEHLZMM-D2NfI8QU.js → packages/remote-control-server/web/dist/assets/blockDiagram-GPEHLZMM-D4BSEcZT.js} +1 -1
- package/{dist/rcs-web/assets/c4Diagram-AAUBKEIU-D8POOSxc.js → packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-CIap7aYJ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/channel-69qfoCOr.js +1 -0
- package/packages/remote-control-server/web/dist/assets/{chunk-2J33WTMH-94J74-8z.js → chunk-2J33WTMH-s9V4oCUf.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-4BX2VUAB-BBcpBLxW.js → chunk-4BX2VUAB-CJrYwRaR.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-55IACEB6-BnVNN6wz.js → chunk-55IACEB6-D8swZDnP.js} +1 -1
- package/{dist/rcs-web/assets/chunk-727SXJPM-BFA9U6Tt.js → packages/remote-control-server/web/dist/assets/chunk-727SXJPM-vJ6LjIbB.js} +1 -1
- package/{dist/rcs-web/assets/chunk-AQP2D5EJ-CbXGEiY2.js → packages/remote-control-server/web/dist/assets/chunk-AQP2D5EJ-COrMlHZr.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-FMBD7UC4-CzvDBtBa.js → chunk-FMBD7UC4-0lUT-961.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-ND2GUHAM-sjvYji_m.js → chunk-ND2GUHAM-BWqVDbg4.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{chunk-QZHKN3VN-WiDDkzYa.js → chunk-QZHKN3VN-CfeMmsaw.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-DihFTUAb.js +1 -0
- package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-DihFTUAb.js +1 -0
- package/packages/remote-control-server/web/dist/assets/{code-block-IT6T5CEO-Bx7lAeeI.js → code-block-IT6T5CEO-FipRU7Gt.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{copy-CM8iJdCD.js → copy-RtDWH7m7.js} +1 -1
- package/{dist/rcs-web/assets/cose-bilkent-S5V4N54A-CC3LEak7.js → packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A-wlwIwiSf.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{dagre-BM42HDAG-2AKIj2nY.js → dagre-BM42HDAG-FlvB-WBQ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-2AECGRRQ-D7x_-74x.js → diagram-2AECGRRQ-Dd5G25-Q.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-5GNKFQAL-BM5476us.js → diagram-5GNKFQAL-CnS79Wiq.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-KO2AKTUF-DS18dM8U.js → diagram-KO2AKTUF-oeffrVzV.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-LMA3HP47-BGetNvFW.js → diagram-LMA3HP47-Dc4rRllI.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{diagram-OG6HWLK6-ChYQZDqt.js → diagram-OG6HWLK6-QYKwztsm.js} +1 -1
- package/{dist/rcs-web/assets/dialog-DYv3nFNt.js → packages/remote-control-server/web/dist/assets/dialog-C6bSop75.js} +1 -1
- package/{dist/rcs-web/assets/erDiagram-TEJ5UH35-HnXSUhgQ.js → packages/remote-control-server/web/dist/assets/erDiagram-TEJ5UH35-CFoDAbeH.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{flowDiagram-I6XJVG4X-B_hKhp1A.js → flowDiagram-I6XJVG4X-zOHsjkHO.js} +1 -1
- package/{dist/rcs-web/assets/ganttDiagram-6RSMTGT7-8wN2M_TF.js → packages/remote-control-server/web/dist/assets/ganttDiagram-6RSMTGT7-DmdYR8vQ.js} +1 -1
- package/{dist/rcs-web/assets/gitGraphDiagram-PVQCEYII-fPAxO3fb.js → packages/remote-control-server/web/dist/assets/gitGraphDiagram-PVQCEYII-ChNq0nxK.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{infoDiagram-5YYISTIA-BcwXADoa.js → infoDiagram-5YYISTIA-CTOfXwsH.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{ishikawaDiagram-YF4QCWOH-_12LFXDQ.js → ishikawaDiagram-YF4QCWOH-AbFaqfWq.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{journeyDiagram-JHISSGLW-BQauj_0q.js → journeyDiagram-JHISSGLW-BZ5YDbY5.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{kanban-definition-UN3LZRKU-DGngaCZy.js → kanban-definition-UN3LZRKU-2ujiDLTJ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{linear-9Tvqv7kO.js → linear-hvc2NcTZ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{main-CRNlYxLI.js → main-2KqxLOVo.js} +4 -4
- package/packages/remote-control-server/web/dist/assets/main-Blk5Y8OW.css +1 -0
- package/{dist/rcs-web/assets/mermaid-VLURNSYL-2wv7TFHR.js → packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-CjE066pc.js} +4 -4
- package/packages/remote-control-server/web/dist/assets/{mermaid.core-BsvpTs-b.js → mermaid.core-D0z5iBed.js} +5 -5
- package/{dist/rcs-web/assets/mindmap-definition-RKZ34NQL-D0-ESz0i.js → packages/remote-control-server/web/dist/assets/mindmap-definition-RKZ34NQL-DN_a_x4Q.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{pieDiagram-4H26LBE5-DCWjJaQM.js → pieDiagram-4H26LBE5-EaZYytph.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{quadrantDiagram-W4KKPZXB-uSBEAi2X.js → quadrantDiagram-W4KKPZXB-BbYaZQ_j.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{refresh-cw-kJbb11GS.js → refresh-cw-2QNtciSF.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{requirementDiagram-4Y6WPE33-WUpK9KLE.js → requirementDiagram-4Y6WPE33-sQpG_uMR.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{sankeyDiagram-5OEKKPKP-D0H9ppQi.js → sankeyDiagram-5OEKKPKP-Dk-ywMbO.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{sequenceDiagram-3UESZ5HK-DQNjsp_9.js → sequenceDiagram-3UESZ5HK-B8kXKWV0.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{stateDiagram-AJRCARHV-DJwnYmKo.js → stateDiagram-AJRCARHV-BIjc-tAY.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{stateDiagram-v2-BHNVJYJU-DvUiurqW.js → stateDiagram-v2-BHNVJYJU-BjJyk52d.js} +1 -1
- package/{dist/rcs-web/assets/timeline-definition-PNZ67QCA-gknKo8gT.js → packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-9Myr5rlZ.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{vennDiagram-CIIHVFJN-DB2f8KRG.js → vennDiagram-CIIHVFJN-B_0p3XFw.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{wardleyDiagram-YWT4CUSO-C0IQ4e5h.js → wardleyDiagram-YWT4CUSO-JKVEgrM5.js} +1 -1
- package/packages/remote-control-server/web/dist/assets/{xychartDiagram-2RQKCTM6-DKeWjAUB.js → xychartDiagram-2RQKCTM6-DUPPleBK.js} +1 -1
- package/packages/remote-control-server/web/dist/index.html +2 -2
- package/dist/rcs-web/assets/SessionDetail-DpDoV99q.js +0 -88
- package/dist/rcs-web/assets/channel-CtQd38gZ.js +0 -1
- package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-DAkylD2J.js +0 -1
- package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-DAkylD2J.js +0 -1
- package/dist/rcs-web/assets/main-C11d2HlT.css +0 -1
- package/packages/remote-control-server/web/dist/assets/SessionDetail-DpDoV99q.js +0 -88
- package/packages/remote-control-server/web/dist/assets/channel-CtQd38gZ.js +0 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-DAkylD2J.js +0 -1
- package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-DAkylD2J.js +0 -1
- package/packages/remote-control-server/web/dist/assets/main-C11d2HlT.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as d,j as e}from"./vendor-DE_-CLIE.js";import{
|
|
1
|
+
import{e as d,j as e}from"./vendor-DE_-CLIE.js";import{aC as x,aD as o,Y as m,aw as s,al as l,z as u}from"./main-2KqxLOVo.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function j(){x();const[a,i]=d.useState([]),{myTeams:r,isLoading:c}=o(),n=d.useCallback(async()=>{try{const t=await m();i(t||[])}catch(t){console.error("Admin: failed to load sessions",t)}},[]);return d.useEffect(()=>{n()},[n]),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsxs("div",{className:"mx-auto max-w-5xl px-4 py-8",children:[e.jsx("h1",{className:"mb-6 font-display text-2xl font-semibold text-text-primary",children:s("admin.title")}),e.jsxs("section",{className:"mb-10",children:[e.jsxs("h2",{className:"mb-4 font-display text-lg font-semibold text-text-primary",children:[s("admin.teams")," (",r.length,")"]}),c?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-4 text-center text-text-muted",children:s("common.loading")}):r.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-4 text-center text-text-muted",children:s("admin.noTeams")}):e.jsx("div",{className:"space-y-2",children:r.map(t=>e.jsxs("a",{href:`/teams/${t.slug}`,className:"flex items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 no-underline transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"font-medium text-text-primary",children:t.name}),e.jsx("span",{className:"ml-2 text-xs text-text-muted",children:t.slug})]}),e.jsx("span",{className:"text-xs text-text-muted",children:l(new Date(t.created_at).getTime()/1e3)})]},t.id))})]}),e.jsxs("section",{children:[e.jsxs("h2",{className:"mb-4 font-display text-lg font-semibold text-text-primary",children:[s("admin.sessions")," (",a.length,")"]}),a.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-4 text-center text-text-muted",children:s("admin.noSessions")}):e.jsx("div",{className:"space-y-2",children:a.map(t=>e.jsxs("a",{href:`/code/${t.id}`,className:"flex items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 no-underline transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium text-text-primary",children:t.title||t.id}),e.jsx("span",{className:"rounded-full bg-surface-2 px-2 py-0.5 text-xs text-text-muted",children:t.source||"unknown"})]}),e.jsx("div",{className:"truncate text-xs text-text-muted",children:t.id})]}),e.jsxs("div",{className:"ml-4 flex items-center gap-3",children:[e.jsx(u,{status:t.status}),e.jsx("span",{className:"text-xs text-text-muted",children:l(t.updated_at||t.created_at)})]})]},t.id))})]})]})})}export{j as AdminPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as a,j as t}from"./vendor-DE_-CLIE.js";import{
|
|
1
|
+
import{e as a,j as t}from"./vendor-DE_-CLIE.js";import{aC as A,Z as j,aw as r,V as q,ah as R,P as U,G as F}from"./main-2KqxLOVo.js";import{S as O,E as G,C as K}from"./ArtifactsGallery-B_JcCYh1.js";import{R as P}from"./refresh-cw-2QNtciSF.js";import{C as V}from"./copy-RtDWH7m7.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";import"./dialog-C6bSop75.js";let m=null;function J(n,c,e=0){b();const o=`/web/sessions/${n}/events`,l=new EventSource(o,{withCredentials:!0});m=l;let u=e;l.addEventListener("message",p=>{try{const x=JSON.parse(p.data);if(x.seqNum!==void 0&&x.seqNum<=u)return;x.seqNum!==void 0&&(u=x.seqNum),c(x)}catch{}}),l.addEventListener("error",()=>{console.warn("[SSE] error, readyState:",l.readyState),l.readyState===EventSource.CLOSED&&(l.close(),b())})}function b(){m&&(m.close(),m=null)}function M(n,c){const e=a.useRef(c);e.current=c;const o=a.useCallback(l=>{e.current(l)},[]);a.useEffect(()=>{if(n)return J(n,o),()=>{b()}},[n,o])}function I({artifactId:n,onBack:c}){A();const[e,o]=a.useState(null),[l,u]=a.useState(""),[p,x]=a.useState(!1),[S,f]=a.useState(0),[w,h]=a.useState(!1),[g,C]=a.useState(null),[E,k]=a.useState("template"),[d,y]=a.useState(!1);a.useEffect(()=>{let s=!1;return j(n).then(i=>{s||o(i)}).catch(i=>{s||u(i instanceof Error?i.message:r("artifacts.viewNotFound"))}),()=>{s=!0}},[n]);const v=a.useCallback(()=>{j(n).then(s=>o(s)).catch(()=>{})},[n]),_=a.useCallback(s=>{var i;s.type==="artifact_updated"&&((i=s.payload)!=null&&i.id&&s.payload.id!==n||(v(),f(D=>D+1),y(!0)))},[n,v]);M((e==null?void 0:e.session_id)??null,_),a.useEffect(()=>{if(!d)return;const s=setTimeout(()=>y(!1),2500);return()=>clearTimeout(s)},[d]);const N=a.useCallback(s=>{e&&(C(e),k(s),h(!0))},[e]),$=a.useCallback(s=>{h(!1),o(i=>i?{...i,...s}:s),f(i=>i+1)},[]),T=a.useCallback(async()=>{if(window.confirm(r("artifacts.delete")+" — "+n.slice(0,8)+"…?"))try{await q(n),c()}catch(s){alert(s instanceof Error?s.message:r("artifacts.deleteFailed"))}},[n,c]),L=a.useCallback(async()=>{if(!e)return;await R(`${window.location.origin}${e.url}`)&&(x(!0),setTimeout(()=>x(!1),1500))},[e]);return l?t.jsx("div",{className:"flex flex-1 items-center justify-center",children:t.jsxs("div",{className:"text-center",children:[t.jsx("p",{className:"text-status-error",children:r("artifacts.viewNotFound")}),t.jsx("p",{className:"mt-1 text-xs text-text-muted",children:l}),t.jsx("button",{type:"button",onClick:c,className:"mt-4 rounded-md border border-border px-4 py-2 text-sm text-text-secondary hover:bg-surface-2",children:r("artifacts.backToGallery")})]})}):e?t.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b border-border bg-surface-1 px-4 py-2.5",children:[t.jsx("button",{type:"button",onClick:c,className:"text-sm text-text-muted hover:text-text-primary",children:r("artifacts.backToGallery")}),t.jsx("span",{className:"text-text-muted/40",children:"/"}),t.jsx("span",{className:"truncate font-medium text-text-primary",children:e.title||e.id.slice(0,12)}),t.jsx("span",{className:`rounded-full px-2 py-0.5 text-[11px] transition-colors ${d?"bg-status-active/15 text-status-active":"bg-surface-3 text-text-muted"}`,title:d?r("artifacts.view.liveUpdated"):void 0,children:d?`↻ v${e.version}`:`v${e.version}`}),e.session_id&&t.jsxs("a",{href:`/code/${e.session_id}`,className:"truncate font-mono text-[11px] text-text-muted hover:text-accent",title:e.session_id,children:[r("artifacts.session"),": ",e.session_id.slice(0,14),"…"]}),e.expires_at&&t.jsxs("span",{className:"text-[11px] text-text-muted",title:e.expires_at,children:[r("artifacts.expires"),": ",new Date(e.expires_at).toLocaleDateString()]}),t.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[t.jsx("button",{type:"button",onClick:()=>f(s=>s+1),className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:r("common.loading"),children:t.jsx(P,{className:"h-3.5 w-3.5"})}),t.jsx("button",{type:"button",onClick:()=>N("ai"),className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:r("artifacts.aiUpdate"),children:t.jsx(O,{className:"h-3.5 w-3.5"})}),e.can_manage&&t.jsx("button",{type:"button",onClick:()=>N("template"),className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:r("artifacts.edit"),children:t.jsx(U,{className:"h-3.5 w-3.5"})}),t.jsxs("button",{type:"button",onClick:L,className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:`${r("artifacts.copyLink")} · ${r("artifacts.linkNotice")}`,children:[t.jsx(V,{className:"h-3.5 w-3.5"}),p&&t.jsx("span",{className:"text-status-active",children:r("artifacts.copied")})]}),t.jsx("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-surface-2 hover:text-text-primary",title:r("artifacts.openInNewTab"),children:t.jsx(G,{className:"h-3.5 w-3.5"})}),t.jsx("button",{type:"button",onClick:T,className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-text-secondary hover:bg-status-error/10 hover:text-status-error",title:r("artifacts.delete"),children:t.jsx(F,{className:"h-3.5 w-3.5"})})]})]}),t.jsx("iframe",{src:`${e.url}${e.url.includes("?")?"&":"?"}_=${Date.now()}`,title:e.title||e.id,className:"min-h-0 w-full flex-1 border-0 bg-white",sandbox:"allow-scripts allow-popups allow-forms"},S),t.jsx(K,{open:w,onClose:()=>h(!1),onCreated:$,editArtifact:g,initialMode:E})]}):t.jsx("div",{className:"flex flex-1 items-center justify-center text-text-muted",children:r("common.loading")})}export{I as ArtifactView};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var ht=Object.defineProperty;var ut=(t,e,r)=>e in t?ht(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var S=(t,e,r)=>ut(t,typeof e!="symbol"?e+"":e,r);import{e as k,j as o}from"./vendor-DE_-CLIE.js";import{ai as Re,am as ft,
|
|
1
|
+
var ht=Object.defineProperty;var ut=(t,e,r)=>e in t?ht(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var S=(t,e,r)=>ut(t,typeof e!="symbol"?e+"":e,r);import{e as k,j as o}from"./vendor-DE_-CLIE.js";import{ai as Re,am as ft,aC as Ve,aD as mt,_ as xt,aw as f,V as gt,ah as bt,F as kt,g as yt,P as wt,G as vt,q as He,Z as St,a3 as Rt,ar as Tt,a2 as $t,ab as jt,ac as Et,K as Nt,b as Ct}from"./main-2KqxLOVo.js";import{D as It,a as At,c as Lt,d as zt,b as _t}from"./dialog-C6bSop75.js";import{C as Dt}from"./copy-RtDWH7m7.js";/**
|
|
2
2
|
* @license lucide-react v0.555.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{I as u,Y as f}from"./main-
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{I as u,Y as f}from"./main-2KqxLOVo.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";const v=2e3,N=3e4;function E(){const c=window.location.pathname.split("/"),i=c[c.length-1]||"",[s,n]=r.useState("idle"),[m,l]=r.useState(null),[a,d]=r.useState(null);return r.useEffect(()=>{if(!i||!i.startsWith("clm_")){l("Invalid claim token"),n("error");return}n("claiming"),u(i).then(t=>{d(t.environment_id),n("waiting")}).catch(t=>{l(t instanceof Error?t.message:"Claim failed"),n("error")})},[i]),r.useEffect(()=>{if(s!=="waiting"||!a)return;let t=!1;const x=Date.now(),o=setInterval(()=>{if(Date.now()-x>N){clearInterval(o),t||n("timeout");return}f().then(h=>{t||(h||[]).some(p=>p.environment_id===a)&&(clearInterval(o),window.location.href="/code/")}).catch(()=>{})},v);return()=>{t=!0,clearInterval(o)}},[s,a]),s==="claiming"?e.jsx("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:e.jsx("p",{className:"text-sm text-text-muted",children:"Claiming environment..."})}):s==="error"?e.jsxs("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:[e.jsx("p",{className:"text-sm text-destructive",children:m}),e.jsx("a",{href:"/code",className:"mt-4 inline-block text-accent hover:underline",children:"Back to dashboard"})]}):s==="waiting"||s==="timeout"?e.jsxs("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:[e.jsxs("header",{className:"mb-10",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold tracking-tight text-text-primary",children:"Environment claimed"}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:"You are now the owner of this environment."})]}),e.jsxs("div",{className:"space-y-4",children:[a&&e.jsx("p",{className:"font-mono text-xs text-text-muted",children:a}),s==="waiting"?e.jsxs("p",{className:"text-sm text-text-muted",children:["Waiting for the worker to create a session",e.jsx("span",{className:"animate-pulse",children:"…"})]}):e.jsx("p",{className:"text-sm text-text-muted",children:"The worker has not created a session yet — it may be offline or stopped. The session will appear on the dashboard once the worker connects."}),e.jsx("a",{href:"/code",className:"inline-block rounded-md bg-accent px-4 py-2 text-sm font-medium text-white hover:bg-accent/90 transition-colors",children:"Go to dashboard"})]})]}):e.jsx("div",{className:"px-6 py-16 sm:px-10 sm:py-20",children:e.jsx("p",{className:"text-sm text-text-muted",children:"Claiming environment..."})})}export{E as Claim};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{j as e,e as n}from"./vendor-DE_-CLIE.js";import{ai as O,ag as S,
|
|
1
|
+
import{j as e,e as n}from"./vendor-DE_-CLIE.js";import{ai as O,ag as S,aD as T,aB as L,z as F,aC as M,aw as a,al as R,r as $,t as A,e as W,s as q,d as I,ao as H,N as Q,aa as V,Y as z,$ as U,W as Y}from"./main-2KqxLOVo.js";import{g as E}from"./workerType-Bd-zteMi.js";import{S as Z}from"./SessionVisibilityBadge-CvqFRTea.js";import{D as G,a as J,c as K,d as X,b as ee}from"./dialog-C6bSop75.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";/**
|
|
2
2
|
* @license lucide-react v0.555.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const te=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],se=O("folder",te);function re({teamName:c,className:u}){return c?e.jsx("span",{className:S("inline-flex items-center rounded-full border border-border/60 bg-surface-2 px-2 py-0.5 text-xs text-text-muted",u),children:c}):null}function ae({environments:c,onSelectEnvironment:u}){const{activeTeam:b}=D(),{user:p}=L(),i=n.useMemo(()=>(p==null?void 0:p.role)==="admin"?c:b?c.filter(l=>l.team_id===b.id):c.filter(l=>!l.team_id),[c,b,p]);return!i||i.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No active environments"}):e.jsx("div",{className:"space-y-2",children:i.map(l=>{const m=l.worker_type==="acp",j=T(l.worker_type),h=j.fullLabel,g=j.colorClass;return e.jsxs("button",{type:"button",onClick:()=>u==null?void 0:u(l),disabled:m,className:`flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors ${m?"cursor-default opacity-80":"hover:border-border-light cursor-pointer"}`,children:[e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-text-primary",children:l.machine_name||l.id}),e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${g}`,children:h}),e.jsx(re,{teamName:l.team_name??null})]}),e.jsx("div",{className:"text-sm text-text-muted",children:l.directory||""})]})}),e.jsxs("div",{className:"text-right",children:[e.jsx(F,{status:l.status}),e.jsx("div",{className:"mt-1 text-xs text-text-muted",children:l.branch||""})]})]},l.id)})})}function ne({sessions:c,environments:u,onSelect:b,onDelete:p}){M();const{activeTeam:i,myTeams:l}=D(),{user:m}=L(),j=n.useMemo(()=>{const t=new Map;for(const d of l)t.set(d.id,d.name);return t},[l]),h=n.useMemo(()=>(m==null?void 0:m.role)==="admin"?c:i?c.filter(t=>t.owner_type==="team"&&t.owner_id===i.id):c.filter(t=>t.owner_type==="user"||t.access_level==="write"||t.access_level==="read"),[c,i,m]),{mySessions:g,sharedSessions:v}=n.useMemo(()=>{const t=[],d=[];for(const o of h)i?t.push(o):o.access_level==="write"||o.access_level==="read"?d.push(o):t.push(o);return{mySessions:t,sharedSessions:d}},[h,i]),w=new Map;for(const t of u??[])t!=null&&t.id&&t.worker_type&&w.set(t.id,t.worker_type);const N=(t,d)=>(d.updated_at||0)-(t.updated_at||0);function f(t){const d=!!p&&t.access_level!=="write"&&t.access_level!=="read";return e.jsxs("div",{className:"group flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("button",{type:"button",onClick:()=>b(t.id),className:"min-w-0 flex-1 text-left",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium text-text-primary",children:t.title||t.id}),t.visibility&&e.jsx(Z,{visibility:t.visibility||"private"}),(()=>{var x;let o=t.source==="acp"?"acp":(x=t.environment)==null?void 0:x.worker_type;!o&&t.environment_id&&(o=w.get(t.environment_id));const r=T(o);return e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${r.colorClass}`,children:r.fullLabel})})()]}),e.jsxs("div",{className:"flex items-center gap-2 truncate text-xs text-text-muted",children:[e.jsx("span",{className:"truncate font-mono",children:t.id}),t.owner_type==="team"&&t.owner_id&&e.jsxs("span",{className:"inline-flex items-center gap-2 truncate",children:[e.jsx("span",{className:"text-text-muted/40",children:"|"}),e.jsx("span",{className:"truncate",children:j.get(t.owner_id)||t.owner_id})]})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(F,{status:t.status}),e.jsx("span",{className:"text-xs text-text-muted",children:A(t.created_at||t.updated_at)}),d&&e.jsx("button",{type:"button",onClick:o=>{o.stopPropagation(),p(t.id)},className:"rounded p-1 text-text-muted opacity-0 transition-all hover:text-status-error group-hover:opacity-100",title:"Delete session",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]},t.id)}if(h.length===0)return e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No sessions"});const y=[...g].sort(N),k=[...v].sort(N);return e.jsxs("div",{className:"space-y-4",children:[y.length>0&&e.jsxs("section",{className:"space-y-2",children:[!i&&k.length>0&&e.jsx("h3",{className:"px-1 text-xs font-medium uppercase tracking-wide text-text-muted",children:a("session.mySessions")}),y.map(f)]}),k.length>0&&e.jsxs("section",{className:"space-y-2",children:[e.jsx("h3",{className:"px-1 text-xs font-medium uppercase tracking-wide text-text-muted",children:a("session.sharedWithMe")}),k.map(f)]})]})}function le({open:c,environments:u,onClose:b,onCreated:p}){M();const{activeTeam:i}=D(),{user:l}=L(),[m,j]=n.useState(""),[h,g]=n.useState(""),[v,w]=n.useState("same-dir"),[N,f]=n.useState(""),[y,k]=n.useState(!1),[t,d]=n.useState(!1),o=n.useMemo(()=>(l==null?void 0:l.role)==="admin"?u:i?u.filter(s=>s.team_id===i.id):u.filter(s=>!s.team_id),[u,i,l]);n.useEffect(()=>{c&&(j(""),g(""),w("same-dir"),f(""),d(!1))},[c]);const r=o.find(s=>s.id===h)||null,x=r?o.findIndex(s=>s.id===r.id)+1:null,_=async()=>{k(!0),f("");try{const s={};m.trim()&&(s.title=m.trim()),h&&(s.environment_id=h),s.spawn_mode=v;const C=H();C&&(s.team_id=C);const E=await Q(s);p(E)}catch(s){f(s instanceof Error?s.message:a("dialog.createFailed"))}finally{k(!1)}};return e.jsx(G,{open:c,onOpenChange:s=>{s||b()},children:e.jsxs(J,{className:"max-w-md rounded-2xl border-border bg-surface-1 p-6 shadow-2xl",children:[e.jsx(K,{children:e.jsx(X,{className:"font-display text-lg font-semibold text-text-primary",children:a("dialog.newSession")})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:a("dialog.titleOptional")}),e.jsx("input",{type:"text",value:m,onChange:s=>j(s.target.value),placeholder:a("dialog.titlePlaceholder"),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:a("dialog.environment")}),e.jsxs(R,{open:t,onOpenChange:d,children:[e.jsx($,{asChild:!0,children:e.jsxs("button",{type:"button",className:"flex w-full items-center justify-between rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary hover:border-border-light focus:border-brand focus:outline-none transition-colors",children:[e.jsx("span",{className:S("flex items-center gap-2 truncate",!r&&"text-text-muted"),children:r?e.jsxs(e.Fragment,{children:[x!==null&&e.jsxs("span",{className:"shrink-0 rounded bg-surface-3 px-1.5 py-0.5 text-[10px] font-mono text-text-muted",children:["#",x]}),e.jsx("span",{className:"truncate",children:r.machine_name||r.id}),e.jsx("span",{className:"shrink-0 text-text-muted",children:"·"}),e.jsx("span",{className:"shrink-0 text-text-muted",children:T(r.worker_type).shortLabel})]}):e.jsx("span",{children:a("dialog.none")})}),e.jsx(W,{className:"h-4 w-4 shrink-0 text-text-muted"})]})}),e.jsxs(q,{align:"start",className:"max-h-80 w-80 overflow-y-auto rounded-lg border-border bg-surface-1 p-1 shadow-xl",children:[e.jsxs("button",{type:"button",onClick:()=>{g(""),d(!1)},className:"flex w-full items-center justify-between rounded-md px-3 py-2 text-sm text-text-secondary hover:bg-surface-2 transition-colors",children:[e.jsx("span",{children:a("dialog.none")}),!h&&e.jsx(I,{className:"h-3.5 w-3.5 text-brand"})]}),o.length===0?e.jsx("p",{className:"px-3 py-2 text-xs text-text-muted",children:a("dialog.envEmpty")}):e.jsx("div",{className:"space-y-1 pt-1",children:o.map((s,C)=>{const E=T(s.worker_type),P=!!s.team_id,B=s.id===h;return e.jsxs("button",{type:"button",onClick:()=>{g(s.id),d(!1)},className:S("flex w-full flex-col gap-1.5 rounded-md px-3 py-2 text-left transition-colors",B?"bg-brand/10":"hover:bg-surface-2"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"shrink-0 rounded bg-surface-3 px-1.5 py-0.5 text-[10px] font-mono text-text-muted",children:["#",C+1]}),e.jsx("span",{className:"truncate font-medium text-text-primary",children:s.machine_name||s.id}),e.jsx("span",{className:S("shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium",E.colorClass),children:E.shortLabel}),e.jsx("span",{className:S("shrink-0 rounded-full border px-2 py-0.5 text-[10px] font-medium",P?"border-border/60 bg-surface-2 text-text-muted":"border-brand/30 bg-brand/10 text-brand"),children:P?`${a("dialog.envTeam")}: ${s.team_name||s.team_id}`:a("dialog.envPersonal")}),B&&e.jsx(I,{className:"ml-auto h-3.5 w-3.5 shrink-0 text-brand"})]}),s.directory&&e.jsxs("div",{className:"flex items-center gap-1.5 truncate text-xs text-text-muted",children:[e.jsx(se,{className:"h-3 w-3 shrink-0"}),e.jsx("span",{className:"truncate font-mono",children:s.directory}),s.branch&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-text-muted/40",children:"·"}),e.jsx("span",{className:"truncate",children:s.branch})]})]})]},s.id)})})]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:a("dialog.workspaceMode")}),e.jsxs("select",{value:v,onChange:s=>w(s.target.value),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary focus:border-brand focus:outline-none",children:[e.jsx("option",{value:"same-dir",children:a("dialog.sameDir")}),e.jsx("option",{value:"worktree",children:a("dialog.worktree")})]})]}),N&&e.jsx("div",{className:"text-sm text-status-error",children:N})]}),e.jsxs(ee,{children:[e.jsx("button",{onClick:b,className:"rounded-lg border border-border px-4 py-2 text-sm text-text-secondary hover:bg-surface-2 transition-colors",children:a("common.cancel")}),e.jsx("button",{onClick:_,disabled:y,className:"rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white hover:bg-brand-light disabled:opacity-50 transition-colors",children:y?a("common.creating"):a("common.create")})]})]})})}function pe({onNavigateSession:c}){M();const[u,b]=n.useState([]),[p,i]=n.useState([]),[l,m]=n.useState(!1),[j,h]=n.useState(""),[g,v]=n.useState(null),[w,N]=n.useState(!1),f=n.useRef(0);n.useEffect(()=>{const r=j.trim();if(!r){f.current+=1,v(null),N(!1);return}N(!0);const x=++f.current,_=setTimeout(()=>{V(r).then(s=>{f.current===x&&v(s.results??[])}).catch(()=>{f.current===x&&v([])}).finally(()=>{f.current===x&&N(!1)})},300);return()=>clearTimeout(_)},[j]);const y=n.useCallback(async()=>{try{const[r,x]=await Promise.all([z(),U()]);b(r||[]),i(x||[])}catch(r){console.error("Dashboard render error:",r)}},[]);n.useEffect(()=>{y();const r=setInterval(y,5e3);return window.addEventListener("focus",y),()=>{clearInterval(r),window.removeEventListener("focus",y)}},[y]);const k=r=>{m(!1),c(r.id)},t=n.useCallback(r=>{},[]),d=n.useCallback(r=>{c(r)},[c]),o=n.useCallback(async r=>{if(window.confirm(a("dashboard.confirmDelete").replace("{id}",r)))try{await Y(r),b(x=>x.filter(_=>_.id!==r))}catch(x){alert(x instanceof Error?x.message:a("dashboard.deleteFailed"))}},[]);return e.jsx("div",{className:"px-6 py-12 sm:px-10 sm:py-16",children:e.jsxs("div",{children:[e.jsx("h1",{className:"sr-only",children:a("dashboard.title")}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"mb-6 text-sm font-medium text-text-primary",children:a("dashboard.environments")}),e.jsx(ae,{environments:p,onSelectEnvironment:t})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[e.jsx("h2",{className:"text-sm font-medium text-text-primary",children:a("dashboard.sessions")}),e.jsx("button",{onClick:()=>m(!0),className:"rounded-md bg-accent px-3 py-1.5 text-sm font-medium text-white hover:bg-accent/90 transition-colors",children:a("dashboard.newSession")})]}),e.jsxs("div",{className:"mb-6 flex items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2",children:[e.jsxs("svg",{className:"h-4 w-4 flex-shrink-0 text-text-muted",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[e.jsx("circle",{cx:"11",cy:"11",r:"8"}),e.jsx("path",{d:"m21 21-4.35-4.35"})]}),e.jsx("input",{value:j,onChange:r=>h(r.target.value),placeholder:a("dashboard.searchPlaceholder"),className:"w-full bg-transparent text-sm text-text-primary placeholder:text-text-muted focus:outline-none"}),w&&e.jsx("span",{className:"flex-shrink-0 text-xs text-text-muted",children:"搜索中…"})]}),g!==null?e.jsxs("div",{className:"space-y-2",children:[g.length===0&&!w&&e.jsx("p",{className:"text-sm text-text-muted",children:a("dashboard.searchNoResults")}),g.map(r=>e.jsxs("button",{type:"button",onClick:()=>c(r.session_id),className:"block w-full rounded-lg border border-border bg-surface-1 px-4 py-3 text-left transition-colors hover:bg-surface-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"truncate text-sm font-medium text-text-primary",children:r.title||r.session_id}),e.jsxs("span",{className:"flex-shrink-0 text-xs text-text-muted",children:[r.match_count," 处匹配"]})]}),e.jsx("p",{className:"mt-1 line-clamp-2 text-xs leading-relaxed text-text-muted",children:r.snippet})]},r.session_id))]}):e.jsx(ne,{sessions:u,environments:p,onSelect:d,onDelete:o})]}),e.jsx(le,{open:l,environments:p,onClose:()=>m(!1),onCreated:k})]})})}export{pe as Dashboard};
|
|
6
|
+
*/const te=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],se=O("folder",te);function re({teamName:c,className:u}){return c?e.jsx("span",{className:S("inline-flex items-center rounded-full border border-border/60 bg-surface-2 px-2 py-0.5 text-xs text-text-muted",u),children:c}):null}function ae({environments:c,onSelectEnvironment:u}){const{activeTeam:b}=T(),{user:p}=L(),i=n.useMemo(()=>(p==null?void 0:p.role)==="admin"?c:b?c.filter(l=>l.team_id===b.id):c.filter(l=>!l.team_id),[c,b,p]);return!i||i.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No active environments"}):e.jsx("div",{className:"space-y-2",children:i.map(l=>{const m=l.worker_type==="acp",j=E(l.worker_type),h=j.fullLabel,g=j.colorClass;return e.jsxs("button",{type:"button",onClick:()=>u==null?void 0:u(l),disabled:m,className:`flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors ${m?"cursor-default opacity-80":"hover:border-border-light cursor-pointer"}`,children:[e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-text-primary",children:l.machine_name||l.id}),e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${g}`,children:h}),e.jsx(re,{teamName:l.team_name??null})]}),e.jsx("div",{className:"text-sm text-text-muted",children:l.directory||""})]})}),e.jsxs("div",{className:"text-right",children:[e.jsx(F,{status:l.status}),e.jsx("div",{className:"mt-1 text-xs text-text-muted",children:l.branch||""})]})]},l.id)})})}function ne({sessions:c,environments:u,onSelect:b,onDelete:p}){M();const{activeTeam:i,myTeams:l}=T(),{user:m}=L(),j=n.useMemo(()=>{const t=new Map;for(const d of l)t.set(d.id,d.name);return t},[l]),h=n.useMemo(()=>(m==null?void 0:m.role)==="admin"?c:i?c.filter(t=>t.owner_type==="team"&&t.owner_id===i.id):c.filter(t=>t.owner_type==="user"||t.access_level==="write"||t.access_level==="read"),[c,i,m]),{mySessions:g,sharedSessions:v}=n.useMemo(()=>{const t=[],d=[];for(const o of h)i?t.push(o):o.access_level==="write"||o.access_level==="read"?d.push(o):t.push(o);return{mySessions:t,sharedSessions:d}},[h,i]),w=new Map;for(const t of u??[])t!=null&&t.id&&t.worker_type&&w.set(t.id,t.worker_type);const N=(t,d)=>(d.updated_at||0)-(t.updated_at||0);function f(t){const d=!!p&&t.access_level!=="write"&&t.access_level!=="read";return e.jsxs("div",{className:"group flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("button",{type:"button",onClick:()=>b(t.id),className:"min-w-0 flex-1 text-left",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium text-text-primary",children:t.title||t.id}),t.visibility&&e.jsx(Z,{visibility:t.visibility||"private"}),(()=>{var x;let o=t.source==="acp"?"acp":(x=t.environment)==null?void 0:x.worker_type;!o&&t.environment_id&&(o=w.get(t.environment_id));const r=E(o);return e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${r.colorClass}`,children:r.fullLabel})})()]}),e.jsxs("div",{className:"flex items-center gap-2 truncate text-xs text-text-muted",children:[e.jsx("span",{className:"truncate font-mono",children:t.id}),t.owner_type==="team"&&t.owner_id&&e.jsxs("span",{className:"inline-flex items-center gap-2 truncate",children:[e.jsx("span",{className:"text-text-muted/40",children:"|"}),e.jsx("span",{className:"truncate",children:j.get(t.owner_id)||t.owner_id})]})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(F,{status:t.status}),e.jsx("span",{className:"text-xs text-text-muted",children:R(t.created_at||t.updated_at)}),d&&e.jsx("button",{type:"button",onClick:o=>{o.stopPropagation(),p(t.id)},className:"rounded p-1 text-text-muted opacity-0 transition-all hover:text-status-error group-hover:opacity-100",title:"Delete session",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]},t.id)}if(h.length===0)return e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No sessions"});const y=[...g].sort(N),k=[...v].sort(N);return e.jsxs("div",{className:"space-y-4",children:[y.length>0&&e.jsxs("section",{className:"space-y-2",children:[!i&&k.length>0&&e.jsx("h3",{className:"px-1 text-xs font-medium uppercase tracking-wide text-text-muted",children:a("session.mySessions")}),y.map(f)]}),k.length>0&&e.jsxs("section",{className:"space-y-2",children:[e.jsx("h3",{className:"px-1 text-xs font-medium uppercase tracking-wide text-text-muted",children:a("session.sharedWithMe")}),k.map(f)]})]})}function le({open:c,environments:u,onClose:b,onCreated:p}){M();const{activeTeam:i}=T(),{user:l}=L(),[m,j]=n.useState(""),[h,g]=n.useState(""),[v,w]=n.useState("same-dir"),[N,f]=n.useState(""),[y,k]=n.useState(!1),[t,d]=n.useState(!1),o=n.useMemo(()=>(l==null?void 0:l.role)==="admin"?u:i?u.filter(s=>s.team_id===i.id):u.filter(s=>!s.team_id),[u,i,l]);n.useEffect(()=>{c&&(j(""),g(""),w("same-dir"),f(""),d(!1))},[c]);const r=o.find(s=>s.id===h)||null,x=r?o.findIndex(s=>s.id===r.id)+1:null,_=async()=>{k(!0),f("");try{const s={};m.trim()&&(s.title=m.trim()),h&&(s.environment_id=h),s.spawn_mode=v;const C=H();C&&(s.team_id=C);const D=await Q(s);p(D)}catch(s){f(s instanceof Error?s.message:a("dialog.createFailed"))}finally{k(!1)}};return e.jsx(G,{open:c,onOpenChange:s=>{s||b()},children:e.jsxs(J,{className:"max-w-md rounded-2xl border-border bg-surface-1 p-6 shadow-2xl",children:[e.jsx(K,{children:e.jsx(X,{className:"font-display text-lg font-semibold text-text-primary",children:a("dialog.newSession")})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:a("dialog.titleOptional")}),e.jsx("input",{type:"text",value:m,onChange:s=>j(s.target.value),placeholder:a("dialog.titlePlaceholder"),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:a("dialog.environment")}),e.jsxs($,{open:t,onOpenChange:d,children:[e.jsx(A,{asChild:!0,children:e.jsxs("button",{type:"button",className:"flex w-full items-center justify-between rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary hover:border-border-light focus:border-brand focus:outline-none transition-colors",children:[e.jsx("span",{className:S("flex items-center gap-2 truncate",!r&&"text-text-muted"),children:r?e.jsxs(e.Fragment,{children:[x!==null&&e.jsxs("span",{className:"shrink-0 rounded bg-surface-3 px-1.5 py-0.5 text-[10px] font-mono text-text-muted",children:["#",x]}),e.jsx("span",{className:"truncate",children:r.machine_name||r.id}),e.jsx("span",{className:"shrink-0 text-text-muted",children:"·"}),e.jsx("span",{className:"shrink-0 text-text-muted",children:E(r.worker_type).shortLabel})]}):e.jsx("span",{children:a("dialog.none")})}),e.jsx(W,{className:"h-4 w-4 shrink-0 text-text-muted"})]})}),e.jsxs(q,{align:"start",className:"max-h-80 w-80 overflow-y-auto rounded-lg border-border bg-surface-1 p-1 shadow-xl",children:[e.jsxs("button",{type:"button",onClick:()=>{g(""),d(!1)},className:"flex w-full items-center justify-between rounded-md px-3 py-2 text-sm text-text-secondary hover:bg-surface-2 transition-colors",children:[e.jsx("span",{children:a("dialog.none")}),!h&&e.jsx(I,{className:"h-3.5 w-3.5 text-brand"})]}),o.length===0?e.jsx("p",{className:"px-3 py-2 text-xs text-text-muted",children:a("dialog.envEmpty")}):e.jsx("div",{className:"space-y-1 pt-1",children:o.map((s,C)=>{const D=E(s.worker_type),P=!!s.team_id,B=s.id===h;return e.jsxs("button",{type:"button",onClick:()=>{g(s.id),d(!1)},className:S("flex w-full flex-col gap-1.5 rounded-md px-3 py-2 text-left transition-colors",B?"bg-brand/10":"hover:bg-surface-2"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"shrink-0 rounded bg-surface-3 px-1.5 py-0.5 text-[10px] font-mono text-text-muted",children:["#",C+1]}),e.jsx("span",{className:"truncate font-medium text-text-primary",children:s.machine_name||s.id}),e.jsx("span",{className:S("shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium",D.colorClass),children:D.shortLabel}),e.jsx("span",{className:S("shrink-0 rounded-full border px-2 py-0.5 text-[10px] font-medium",P?"border-border/60 bg-surface-2 text-text-muted":"border-brand/30 bg-brand/10 text-brand"),children:P?`${a("dialog.envTeam")}: ${s.team_name||s.team_id}`:a("dialog.envPersonal")}),B&&e.jsx(I,{className:"ml-auto h-3.5 w-3.5 shrink-0 text-brand"})]}),s.directory&&e.jsxs("div",{className:"flex items-center gap-1.5 truncate text-xs text-text-muted",children:[e.jsx(se,{className:"h-3 w-3 shrink-0"}),e.jsx("span",{className:"truncate font-mono",children:s.directory}),s.branch&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-text-muted/40",children:"·"}),e.jsx("span",{className:"truncate",children:s.branch})]})]})]},s.id)})})]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:a("dialog.workspaceMode")}),e.jsxs("select",{value:v,onChange:s=>w(s.target.value),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary focus:border-brand focus:outline-none",children:[e.jsx("option",{value:"same-dir",children:a("dialog.sameDir")}),e.jsx("option",{value:"worktree",children:a("dialog.worktree")})]})]}),N&&e.jsx("div",{className:"text-sm text-status-error",children:N})]}),e.jsxs(ee,{children:[e.jsx("button",{onClick:b,className:"rounded-lg border border-border px-4 py-2 text-sm text-text-secondary hover:bg-surface-2 transition-colors",children:a("common.cancel")}),e.jsx("button",{onClick:_,disabled:y,className:"rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white hover:bg-brand-light disabled:opacity-50 transition-colors",children:y?a("common.creating"):a("common.create")})]})]})})}function pe({onNavigateSession:c}){M();const[u,b]=n.useState([]),[p,i]=n.useState([]),[l,m]=n.useState(!1),[j,h]=n.useState(""),[g,v]=n.useState(null),[w,N]=n.useState(!1),f=n.useRef(0);n.useEffect(()=>{const r=j.trim();if(!r){f.current+=1,v(null),N(!1);return}N(!0);const x=++f.current,_=setTimeout(()=>{V(r).then(s=>{f.current===x&&v(s.results??[])}).catch(()=>{f.current===x&&v([])}).finally(()=>{f.current===x&&N(!1)})},300);return()=>clearTimeout(_)},[j]);const y=n.useCallback(async()=>{try{const[r,x]=await Promise.all([z(),U()]);b(r||[]),i(x||[])}catch(r){console.error("Dashboard render error:",r)}},[]);n.useEffect(()=>{y();const r=setInterval(y,5e3);return window.addEventListener("focus",y),()=>{clearInterval(r),window.removeEventListener("focus",y)}},[y]);const k=r=>{m(!1),c(r.id)},t=n.useCallback(r=>{},[]),d=n.useCallback(r=>{c(r)},[c]),o=n.useCallback(async r=>{if(window.confirm(a("dashboard.confirmDelete").replace("{id}",r)))try{await Y(r),b(x=>x.filter(_=>_.id!==r))}catch(x){alert(x instanceof Error?x.message:a("dashboard.deleteFailed"))}},[]);return e.jsx("div",{className:"px-6 py-12 sm:px-10 sm:py-16",children:e.jsxs("div",{children:[e.jsx("h1",{className:"sr-only",children:a("dashboard.title")}),e.jsxs("section",{className:"mb-16",children:[e.jsx("h2",{className:"mb-6 text-sm font-medium text-text-primary",children:a("dashboard.environments")}),e.jsx(ae,{environments:p,onSelectEnvironment:t})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[e.jsx("h2",{className:"text-sm font-medium text-text-primary",children:a("dashboard.sessions")}),e.jsx("button",{onClick:()=>m(!0),className:"rounded-md bg-accent px-3 py-1.5 text-sm font-medium text-white hover:bg-accent/90 transition-colors",children:a("dashboard.newSession")})]}),e.jsxs("div",{className:"mb-6 flex items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2",children:[e.jsxs("svg",{className:"h-4 w-4 flex-shrink-0 text-text-muted",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[e.jsx("circle",{cx:"11",cy:"11",r:"8"}),e.jsx("path",{d:"m21 21-4.35-4.35"})]}),e.jsx("input",{value:j,onChange:r=>h(r.target.value),placeholder:a("dashboard.searchPlaceholder"),className:"w-full bg-transparent text-sm text-text-primary placeholder:text-text-muted focus:outline-none"}),w&&e.jsx("span",{className:"flex-shrink-0 text-xs text-text-muted",children:"搜索中…"})]}),g!==null?e.jsxs("div",{className:"space-y-2",children:[g.length===0&&!w&&e.jsx("p",{className:"text-sm text-text-muted",children:a("dashboard.searchNoResults")}),g.map(r=>e.jsxs("button",{type:"button",onClick:()=>c(r.session_id),className:"block w-full rounded-lg border border-border bg-surface-1 px-4 py-3 text-left transition-colors hover:bg-surface-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"truncate text-sm font-medium text-text-primary",children:r.title||r.session_id}),e.jsxs("span",{className:"flex-shrink-0 text-xs text-text-muted",children:[r.match_count," 处匹配"]})]}),e.jsx("p",{className:"mt-1 line-clamp-2 text-xs leading-relaxed text-text-muted",children:r.snippet})]},r.session_id))]}):e.jsx(ne,{sessions:u,environments:p,onSelect:d,onDelete:o})]}),e.jsx(le,{open:l,environments:p,onClose:()=>m(!1),onCreated:k})]})})}export{pe as Dashboard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as v,aw as t}from"./main-2KqxLOVo.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function E({onSuccess:b,onInvalidInvite:l}){const{join:h}=v(),[u,f]=r.useState(""),[d,j]=r.useState(""),[o,w]=r.useState(""),[c,g]=r.useState(""),[m,n]=r.useState(""),[x,p]=r.useState(!1);r.useEffect(()=>{const a=new URLSearchParams(window.location.search).get("invite");a?f(a):l()},[l]);const y=async s=>{if(s.preventDefault(),n(""),o.length<8){n(t("auth.setup.passwordTooShort"));return}if(o!==c){n(t("auth.setup.passwordMismatch"));return}p(!0);try{await h(u,d,o),b()}catch(a){const i=a instanceof Error?a.message:"Join failed";if(i.includes("Invalid invitation")||i.includes("expired")||i.includes("already used")){l();return}n(i)}finally{p(!1)}};return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface-0 px-4",children:e.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold text-text-primary",children:t("auth.join.title")}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:t("auth.join.welcome")}),e.jsx("p",{className:"mt-1 text-sm text-text-muted",children:t("auth.join.description")})]}),e.jsxs("form",{onSubmit:y,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.username")}),e.jsx("input",{type:"text",value:d,onChange:s=>j(s.target.value),required:!0,autoComplete:"username",autoFocus:!0,className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.password")}),e.jsx("input",{type:"password",value:o,onChange:s=>w(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.confirmPassword")}),e.jsx("input",{type:"password",value:c,onChange:s=>g(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),m&&e.jsx("p",{className:"text-sm text-status-error",children:m}),e.jsx("button",{type:"submit",disabled:x||!u,className:"w-full rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-brand-light disabled:cursor-not-allowed disabled:opacity-50",children:x?t("common.loading"):t("auth.join.submit")})]})]})})}export{E as Join};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as f,aw as t}from"./main-2KqxLOVo.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function v({onSuccess:u,onNavigateRegister:c}){const{login:m,registrationAllowed:x,singleUserMode:p}=f(),[a,b]=r.useState(""),[o,h]=r.useState(""),[n,l]=r.useState(""),[i,d]=r.useState(!1),g=async s=>{s.preventDefault(),l(""),d(!0);try{await m(a,o),u()}catch{l(t("auth.login.failed"))}finally{d(!1)}};return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface-0 px-4",children:e.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold text-text-primary",children:t("auth.login.title")}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:t("auth.login.description")})]}),e.jsxs("form",{onSubmit:g,className:"space-y-4",children:[p&&e.jsxs("div",{className:"rounded-lg border border-border bg-surface-2 px-3 py-2 text-xs text-text-secondary",children:[e.jsx("p",{children:t("auth.login.singleUserHint")}),e.jsx("p",{className:"mt-1 font-mono text-text-primary",children:"admin / admin123"}),e.jsx("p",{className:"mt-1 text-text-muted",children:t("auth.login.singleUserHintFooter")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.username")}),e.jsx("input",{type:"text",value:a,onChange:s=>b(s.target.value),required:!0,autoComplete:"username",autoFocus:!0,className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.password")}),e.jsx("input",{type:"password",value:o,onChange:s=>h(s.target.value),required:!0,autoComplete:"current-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),n&&e.jsx("p",{className:"text-sm text-status-error",children:n}),e.jsx("button",{type:"submit",disabled:i,className:"w-full rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-brand-light disabled:cursor-not-allowed disabled:opacity-50",children:i?t("common.loading"):t("auth.login.submit")})]}),x&&e.jsx("button",{type:"button",onClick:c,className:"w-full text-center text-sm text-text-muted hover:text-text-primary transition-colors",children:t("auth.login.register")})]})})}export{v as Login};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{
|
|
1
|
+
import{e as r,j as e}from"./vendor-DE_-CLIE.js";import{aB as w,aw as t}from"./main-2KqxLOVo.js";import"./shiki-mEP5vQQu.js";import"./motion-BILbV7YQ.js";function S({onSuccess:m,onBack:x}){const{register:p}=w(),[n,b]=r.useState(""),[a,h]=r.useState(""),[l,f]=r.useState(""),[i,o]=r.useState(""),[u,d]=r.useState(!1),g=async s=>{if(s.preventDefault(),o(""),a.length<8){o(t("auth.setup.passwordTooShort"));return}if(a!==l){o(t("auth.setup.passwordMismatch"));return}d(!0);try{await p(n,a),m()}catch(c){o(c instanceof Error?c.message:t("auth.register.failed"))}finally{d(!1)}};return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-surface-0 px-4",children:e.jsxs("div",{className:"w-full max-w-sm space-y-6",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"font-display text-2xl font-semibold text-text-primary",children:t("auth.register.title")}),e.jsx("p",{className:"mt-2 text-sm text-text-muted",children:t("auth.register.description")})]}),e.jsxs("form",{onSubmit:g,className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.username")}),e.jsx("input",{type:"text",value:n,onChange:s=>b(s.target.value),required:!0,autoComplete:"username",autoFocus:!0,className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.login.password")}),e.jsx("input",{type:"password",value:a,onChange:s=>h(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm font-medium text-text-secondary",children:t("auth.join.confirmPassword")}),e.jsx("input",{type:"password",value:l,onChange:s=>f(s.target.value),required:!0,autoComplete:"new-password",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),i&&e.jsx("p",{className:"text-sm text-status-error",children:i}),e.jsx("button",{type:"submit",disabled:u,className:"w-full rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-brand-light disabled:cursor-not-allowed disabled:opacity-50",children:u?t("common.loading"):t("auth.register.submit")})]}),e.jsx("button",{type:"button",onClick:x,className:"w-full text-center text-sm text-text-muted hover:text-text-primary transition-colors",children:t("auth.register.backToLogin")})]})})}export{S as Register};
|