termdock 1.4.328 → 1.4.330
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/client/assets/{App-xr2R4dST.js → App-JL8Fd8uO.js} +54 -54
- package/dist/client/assets/App-JL8Fd8uO.js.br +0 -0
- package/dist/client/assets/App-JL8Fd8uO.js.gz +0 -0
- package/dist/client/assets/{ArchitecturePanel-XprzcGMT.js → ArchitecturePanel-CwvZXpvS.js} +2 -2
- package/dist/client/assets/ArchitecturePanel-CwvZXpvS.js.br +0 -0
- package/dist/client/assets/ArchitecturePanel-CwvZXpvS.js.gz +0 -0
- package/dist/client/assets/{ChangeWalkthroughPanel-g83lCwJi.js → ChangeWalkthroughPanel-BF3p_M6Y.js} +1 -1
- package/dist/client/assets/ChangeWalkthroughPanel-BF3p_M6Y.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-BF3p_M6Y.js.gz +0 -0
- package/dist/client/assets/{CollaborationMainWorkspace-BbkFTnw1.js → CollaborationMainWorkspace-CYpn4j_x.js} +1 -1
- package/dist/client/assets/CollaborationMainWorkspace-CYpn4j_x.js.br +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-CYpn4j_x.js.gz +0 -0
- package/dist/client/assets/CollaborationTaskContent-BjjX05Cv.js +2 -0
- package/dist/client/assets/ComputerControlView-DWlZmlCH.js +6 -0
- package/dist/client/assets/ComputerControlView-DWlZmlCH.js.br +0 -0
- package/dist/client/assets/ComputerControlView-DWlZmlCH.js.gz +0 -0
- package/dist/client/assets/{DagPlayground--KDWJkVL.js → DagPlayground-IbzlcDVX.js} +1 -1
- package/dist/client/assets/DagPlayground-IbzlcDVX.js.br +0 -0
- package/dist/client/assets/DagPlayground-IbzlcDVX.js.gz +0 -0
- package/dist/client/assets/{DiffLab-BAyGlKKp.js → DiffLab-DEAYEwfY.js} +1 -1
- package/dist/client/assets/DiffLab-DEAYEwfY.js.br +0 -0
- package/dist/client/assets/DiffLab-DEAYEwfY.js.gz +0 -0
- package/dist/client/assets/{DiffReview-CLKpyDPZ.js → DiffReview-BPHfC8nZ.js} +1 -1
- package/dist/client/assets/DiffReview-BPHfC8nZ.js.br +0 -0
- package/dist/client/assets/DiffReview-BPHfC8nZ.js.gz +0 -0
- package/dist/client/assets/{DiffReviewLab-BoFElesI.js → DiffReviewLab-2iKu20Ik.js} +1 -1
- package/dist/client/assets/DiffReviewLab-2iKu20Ik.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-2iKu20Ik.js.gz +0 -0
- package/dist/client/assets/{DiffViewer-DDiASWHf.js → DiffViewer-C4S3oEQV.js} +1 -1
- package/dist/client/assets/DiffViewer-C4S3oEQV.js.br +0 -0
- package/dist/client/assets/{DiffViewer-DDiASWHf.js.gz → DiffViewer-C4S3oEQV.js.gz} +0 -0
- package/dist/client/assets/{ModelPreview-PJWJT35T.js → ModelPreview-D_KABt7i.js} +1 -1
- package/dist/client/assets/ModelPreview-D_KABt7i.js.br +0 -0
- package/dist/client/assets/ModelPreview-D_KABt7i.js.gz +0 -0
- package/dist/client/assets/{RightSidebar-CfOJHcXO.js → RightSidebar-scaBEaFJ.js} +35 -35
- package/dist/client/assets/RightSidebar-scaBEaFJ.js.br +0 -0
- package/dist/client/assets/RightSidebar-scaBEaFJ.js.gz +0 -0
- package/dist/client/assets/{abnfDiagram-VCTEODGH-CwEvSK80.js → abnfDiagram-VCTEODGH-OAQJcJ5a.js} +1 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-OAQJcJ5a.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-OAQJcJ5a.js.gz +0 -0
- package/dist/client/assets/{app-DNnVU3VK.js → app-aNkllBsm.js} +3 -3
- package/dist/client/assets/app-aNkllBsm.js.br +0 -0
- package/dist/client/assets/app-aNkllBsm.js.gz +0 -0
- package/dist/client/assets/{arc-Ctz1KMpY.js → arc-B29HLhod.js} +1 -1
- package/dist/client/assets/arc-B29HLhod.js.br +0 -0
- package/dist/client/assets/arc-B29HLhod.js.gz +0 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-DJSgVQQQ.js → architectureDiagram-5GKGNRK7-CQeKeLzl.js} +1 -1
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CQeKeLzl.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CQeKeLzl.js.gz +0 -0
- package/dist/client/assets/{blockDiagram-I7D4REHJ-N_yr-Q8w.js → blockDiagram-I7D4REHJ-CgQQGQN_.js} +1 -1
- package/dist/client/assets/blockDiagram-I7D4REHJ-CgQQGQN_.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-CgQQGQN_.js.gz +0 -0
- package/dist/client/assets/{c4Diagram-7LVT6UL2-DVQnawpY.js → c4Diagram-7LVT6UL2-BTeUIAS9.js} +1 -1
- package/dist/client/assets/c4Diagram-7LVT6UL2-BTeUIAS9.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-BTeUIAS9.js.gz +0 -0
- package/dist/client/assets/channel-DPAqeRss.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B-BXZwjzSA.js → chunk-2Q5K7J3B-Bao8D59Y.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-mKa-FMDa.js → chunk-5VM5RSS4-RIpn4ucJ.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-BW5JuQIW.js → chunk-F27PBJKO-Cu3ypVNN.js} +1 -1
- package/dist/client/assets/chunk-F27PBJKO-Cu3ypVNN.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-Cu3ypVNN.js.gz +0 -0
- package/dist/client/assets/{chunk-IMKFNOWR-CDGBumC-.js → chunk-IMKFNOWR-BioTa0jG.js} +1 -1
- package/dist/client/assets/chunk-IMKFNOWR-BioTa0jG.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-BioTa0jG.js.gz +0 -0
- package/dist/client/assets/{chunk-JWPE2WC7-CGx9O6IX.js → chunk-JWPE2WC7-BPE5l-1s.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-BkWYxDSy.js → chunk-POPQ4Y6H-DUF-0HB1.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-BGwkXakv.js → chunk-SVP7TREG-BHaV6_ki.js} +1 -1
- package/dist/client/assets/chunk-SVP7TREG-BHaV6_ki.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BHaV6_ki.js.gz +0 -0
- package/dist/client/assets/{chunk-TICWLB2K-CMxjLRcv.js → chunk-TICWLB2K-SU15adqY.js} +1 -1
- package/dist/client/assets/chunk-TICWLB2K-SU15adqY.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-SU15adqY.js.gz +0 -0
- package/dist/client/assets/{chunk-XXDRQBXY-DCIQ1i4z.js → chunk-XXDRQBXY-oLy1dZJs.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-kQeU2Z7d.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-kQeU2Z7d.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-Des2am0k.js → cose-bilkent-JH36ORCC-EE27IbbX.js} +1 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-EE27IbbX.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-EE27IbbX.js.gz +0 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-BOJs6wCD.js → cynefin-OW5HDTMX-CpY9J9iu.js} +1 -1
- package/dist/client/assets/cynefin-OW5HDTMX-CpY9J9iu.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-CpY9J9iu.js.gz +0 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-DVLqWiJ6.js → cynefinDiagram-5FMLGOSQ-mJxcQnkp.js} +1 -1
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-mJxcQnkp.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-mJxcQnkp.js.gz +0 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-e7mtFW8V.js → dagre-GXQ25YYZ-DAUZrxwq.js} +1 -1
- package/dist/client/assets/dagre-GXQ25YYZ-DAUZrxwq.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-DAUZrxwq.js.gz +0 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-B9P-CEm4.js → diagram-S7CK7UJ4-3rquuCu6.js} +1 -1
- package/dist/client/assets/diagram-S7CK7UJ4-3rquuCu6.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-3rquuCu6.js.gz +0 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-DvTmtjeC.js → diagram-UQ7AKVKN-CZWjaDbi.js} +1 -1
- package/dist/client/assets/diagram-UQ7AKVKN-CZWjaDbi.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-CZWjaDbi.js.gz +0 -0
- package/dist/client/assets/{diagram-VSXAHHWV-BmwhsB8_.js → diagram-VSXAHHWV-CNQEg3jR.js} +1 -1
- package/dist/client/assets/diagram-VSXAHHWV-CNQEg3jR.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-CNQEg3jR.js.gz +0 -0
- package/dist/client/assets/{diagram-VX7I27RA-CvV9NUzM.js → diagram-VX7I27RA-DYorDR1n.js} +1 -1
- package/dist/client/assets/diagram-VX7I27RA-DYorDR1n.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-DYorDR1n.js.gz +0 -0
- package/dist/client/assets/{diagram-Z3DM3KII-DT1POaEF.js → diagram-Z3DM3KII-BPgvVftJ.js} +1 -1
- package/dist/client/assets/diagram-Z3DM3KII-BPgvVftJ.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-BPgvVftJ.js.gz +0 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-QZNS7lcr.js → ebnfDiagram-PWID7BFC-KqpJv-fX.js} +1 -1
- package/dist/client/assets/ebnfDiagram-PWID7BFC-KqpJv-fX.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-KqpJv-fX.js.gz +0 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-C9KhKBAJ.js → erDiagram-RLTQ6QDP-Bwj_TPoi.js} +1 -1
- package/dist/client/assets/{erDiagram-RLTQ6QDP-C9KhKBAJ.js.br → erDiagram-RLTQ6QDP-Bwj_TPoi.js.br} +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-Bwj_TPoi.js.gz +0 -0
- package/dist/client/assets/{flowDiagram-HODETNUW-Du-YKajw.js → flowDiagram-HODETNUW-BYALZ5I6.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-BYALZ5I6.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-BYALZ5I6.js.gz +0 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-I9ibR23C.js → ganttDiagram-EL5Y4UJY-DwrR8yW_.js} +1 -1
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-DwrR8yW_.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-DwrR8yW_.js.gz +0 -0
- package/dist/client/assets/{gestureArbiter-BE8k_FL7.js → gestureArbiter-4NWfZprH.js} +1 -1
- package/dist/client/assets/gestureArbiter-4NWfZprH.js.br +0 -0
- package/dist/client/assets/gestureArbiter-4NWfZprH.js.gz +0 -0
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-BK6myYCK.js → gitGraphDiagram-WWUBYQGX-C3pH5ZGR.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-C3pH5ZGR.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-C3pH5ZGR.js.gz +0 -0
- package/dist/client/assets/index-e1PkqIqN.css +1 -0
- package/dist/client/assets/index-e1PkqIqN.css.br +0 -0
- package/dist/client/assets/{index-C6xPtOPw.css.gz → index-e1PkqIqN.css.gz} +0 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-D1tExNKF.js → infoDiagram-27XIBGKW-DpnbClE9.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-CwY6cf7s.js → ishikawaDiagram-5VMMS53U-BFhiY6uy.js} +1 -1
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BFhiY6uy.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BFhiY6uy.js.gz +0 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-Cqy1TbUI.js → journeyDiagram-3NMN7TZE-Beg2Cmg4.js} +1 -1
- package/dist/client/assets/journeyDiagram-3NMN7TZE-Beg2Cmg4.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-Beg2Cmg4.js.gz +0 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-SXzevtXv.js → kanban-definition-UXKFOSKX-CNb51-_F.js} +1 -1
- package/dist/client/assets/kanban-definition-UXKFOSKX-CNb51-_F.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-CNb51-_F.js.gz +0 -0
- package/dist/client/assets/{layout-CFH4KsMu.js → layout-B07GM-uc.js} +1 -1
- package/dist/client/assets/layout-B07GM-uc.js.br +0 -0
- package/dist/client/assets/layout-B07GM-uc.js.gz +0 -0
- package/dist/client/assets/{linear-DSGS6T8F.js → linear-DRJlaLbJ.js} +1 -1
- package/dist/client/assets/linear-DRJlaLbJ.js.br +0 -0
- package/dist/client/assets/linear-DRJlaLbJ.js.gz +0 -0
- package/dist/client/assets/{mermaid.core-BpDQIw7m.js → mermaid.core-BySznxI_.js} +5 -5
- package/dist/client/assets/mermaid.core-BySznxI_.js.br +0 -0
- package/dist/client/assets/mermaid.core-BySznxI_.js.gz +0 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-D7H6k38f.js → mindmap-definition-YA3MSWOX-BtStMFHK.js} +1 -1
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BtStMFHK.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BtStMFHK.js.gz +0 -0
- package/dist/client/assets/{passwordBootstrap-B4SLDWeK.js → passwordBootstrap-B-T8YSfQ.js} +1 -1
- package/dist/client/assets/passwordBootstrap-B-T8YSfQ.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-B-T8YSfQ.js.gz +0 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-DT21hoef.js → pegDiagram-XKGWAZYB-BNJzxFGK.js} +1 -1
- package/dist/client/assets/pegDiagram-XKGWAZYB-BNJzxFGK.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-BNJzxFGK.js.gz +0 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-CP_7qBRV.js → pieDiagram-E7YTZNPT-Df1Y6zou.js} +1 -1
- package/dist/client/assets/pieDiagram-E7YTZNPT-Df1Y6zou.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-Df1Y6zou.js.gz +0 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-CLBVrI3n.js → quadrantDiagram-AXDQQJYC-Q3jN6--F.js} +1 -1
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-Q3jN6--F.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-Q3jN6--F.js.gz +0 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-DJoM5WtF.js → railroadDiagram-O6MQD6OU-c-1SN7pC.js} +1 -1
- package/dist/client/assets/railroadDiagram-O6MQD6OU-c-1SN7pC.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-c-1SN7pC.js.gz +0 -0
- package/dist/client/assets/{rdpSession-C0jVZfFV.js → rdpSession-B6j6_C4D.js} +1 -1
- package/dist/client/assets/rdpSession-B6j6_C4D.js.br +0 -0
- package/dist/client/assets/rdpSession-B6j6_C4D.js.gz +0 -0
- package/dist/client/assets/{referenceLongPress-LCYPFdN8.js → referenceLongPress-Bln9X6SW.js} +1 -1
- package/dist/client/assets/referenceLongPress-Bln9X6SW.js.br +0 -0
- package/dist/client/assets/referenceLongPress-Bln9X6SW.js.gz +0 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-BHLyxBdU.js → requirementDiagram-BXWQKSXE-wcsUZu82.js} +1 -1
- package/dist/client/assets/requirementDiagram-BXWQKSXE-wcsUZu82.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-wcsUZu82.js.gz +0 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-CUgEsLUw.js → sankeyDiagram-P5KCCOFB-CfXyROPC.js} +1 -1
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-CfXyROPC.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-CfXyROPC.js.gz +0 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-qEb89gHp.js → sequenceDiagram-WJ2MYXX4-D-IasKbj.js} +1 -1
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D-IasKbj.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D-IasKbj.js.gz +0 -0
- package/dist/client/assets/{sizeCapture-INFHLROL-BUOHBGK2.js → sizeCapture-INFHLROL-Cyoh7jyx.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-Cyoh7jyx.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-Cyoh7jyx.js.gz +0 -0
- package/dist/client/assets/{sparkles-Cm9xs8pz.js → sparkles-kooHQYLJ.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-Dx0afnU6.js → stateDiagram-D77RDMKH-BFeLYGOW.js} +1 -1
- package/dist/client/assets/stateDiagram-D77RDMKH-BFeLYGOW.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-BFeLYGOW.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-Cn5inEsZ.js +1 -0
- package/dist/client/assets/{swimlanes-42K2YHIH-DeG8X6CN.js → swimlanes-42K2YHIH-BtMhgPB2.js} +1 -1
- package/dist/client/assets/{swimlanes-42K2YHIH-DeG8X6CN.js.br → swimlanes-42K2YHIH-BtMhgPB2.js.br} +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-BtMhgPB2.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-Di2Vfydj.js +8 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-Bkts868I.js → timeline-definition-24CTP7MA-BccUO5W0.js} +1 -1
- package/dist/client/assets/timeline-definition-24CTP7MA-BccUO5W0.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-BccUO5W0.js.gz +0 -0
- package/dist/client/assets/{triangle-alert-D1VnXjVL.js → triangle-alert-rgLWcpfP.js} +1 -1
- package/dist/client/assets/{vennDiagram-4TSXK5OY-BOoHxntl.js → vennDiagram-4TSXK5OY-hNN_O594.js} +1 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-hNN_O594.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-hNN_O594.js.gz +0 -0
- package/dist/client/assets/{videoCompression-BONtNnBl.js → videoCompression-DS0r00L6.js} +1 -1
- package/dist/client/assets/videoCompression-DS0r00L6.js.br +0 -0
- package/dist/client/assets/videoCompression-DS0r00L6.js.gz +0 -0
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-BAuuRkvt.js → wardleyDiagram-VM6X3IG4-C6h02bPv.js} +1 -1
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-C6h02bPv.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-C6h02bPv.js.gz +0 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-DvJOw2Ss.js → xychartDiagram-S5SC5T6Z-DvNnLmXs.js} +1 -1
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DvNnLmXs.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DvNnLmXs.js.gz +0 -0
- package/dist/client/index.html +2 -2
- package/dist/client/index.html.br +0 -0
- package/dist/client/index.html.gz +0 -0
- package/dist/client/sw.js +1 -1
- package/dist/client/sw.js.br +0 -0
- package/dist/client/sw.js.gz +0 -0
- package/dist/server/routes/rdp.js +1 -1
- package/dist/server/routes/terminal.js +44 -24
- package/dist/server/utils/tmuxClientCapabilities.js +1 -1
- package/dist/server/utils/tmuxSizeOwnership.js +18 -0
- package/package.json +1 -1
- package/runtime-manifest.json +3 -3
- package/dist/client/assets/App-xr2R4dST.js.br +0 -0
- package/dist/client/assets/App-xr2R4dST.js.gz +0 -0
- package/dist/client/assets/ArchitecturePanel-XprzcGMT.js.br +0 -0
- package/dist/client/assets/ArchitecturePanel-XprzcGMT.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-g83lCwJi.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-g83lCwJi.js.gz +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-BbkFTnw1.js.br +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-BbkFTnw1.js.gz +0 -0
- package/dist/client/assets/CollaborationTaskContent-C8Nrrlcz.js +0 -2
- package/dist/client/assets/ComputerControlView-yBUQcmwF.js +0 -6
- package/dist/client/assets/ComputerControlView-yBUQcmwF.js.br +0 -0
- package/dist/client/assets/ComputerControlView-yBUQcmwF.js.gz +0 -0
- package/dist/client/assets/DagPlayground--KDWJkVL.js.br +0 -0
- package/dist/client/assets/DagPlayground--KDWJkVL.js.gz +0 -0
- package/dist/client/assets/DiffLab-BAyGlKKp.js.br +0 -0
- package/dist/client/assets/DiffLab-BAyGlKKp.js.gz +0 -0
- package/dist/client/assets/DiffReview-CLKpyDPZ.js.br +0 -0
- package/dist/client/assets/DiffReview-CLKpyDPZ.js.gz +0 -0
- package/dist/client/assets/DiffReviewLab-BoFElesI.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-BoFElesI.js.gz +0 -0
- package/dist/client/assets/DiffViewer-DDiASWHf.js.br +0 -0
- package/dist/client/assets/ModelPreview-PJWJT35T.js.br +0 -0
- package/dist/client/assets/ModelPreview-PJWJT35T.js.gz +0 -0
- package/dist/client/assets/RightSidebar-CfOJHcXO.js.br +0 -0
- package/dist/client/assets/RightSidebar-CfOJHcXO.js.gz +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-CwEvSK80.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-CwEvSK80.js.gz +0 -0
- package/dist/client/assets/app-DNnVU3VK.js.br +0 -0
- package/dist/client/assets/app-DNnVU3VK.js.gz +0 -0
- package/dist/client/assets/arc-Ctz1KMpY.js.br +0 -0
- package/dist/client/assets/arc-Ctz1KMpY.js.gz +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DJSgVQQQ.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DJSgVQQQ.js.gz +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-N_yr-Q8w.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-N_yr-Q8w.js.gz +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-DVQnawpY.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-DVQnawpY.js.gz +0 -0
- package/dist/client/assets/channel-b8iCTsm_.js +0 -1
- package/dist/client/assets/chunk-F27PBJKO-BW5JuQIW.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-BW5JuQIW.js.gz +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-CDGBumC-.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-CDGBumC-.js.gz +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BGwkXakv.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BGwkXakv.js.gz +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CMxjLRcv.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CMxjLRcv.js.gz +0 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-DrGmXJ_R.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-DrGmXJ_R.js +0 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-Des2am0k.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-Des2am0k.js.gz +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-BOJs6wCD.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-BOJs6wCD.js.gz +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-DVLqWiJ6.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-DVLqWiJ6.js.gz +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-e7mtFW8V.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-e7mtFW8V.js.gz +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-B9P-CEm4.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-B9P-CEm4.js.gz +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-DvTmtjeC.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-DvTmtjeC.js.gz +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-BmwhsB8_.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-BmwhsB8_.js.gz +0 -0
- package/dist/client/assets/diagram-VX7I27RA-CvV9NUzM.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-CvV9NUzM.js.gz +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-DT1POaEF.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-DT1POaEF.js.gz +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-QZNS7lcr.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-QZNS7lcr.js.gz +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-C9KhKBAJ.js.gz +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-Du-YKajw.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-Du-YKajw.js.gz +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-I9ibR23C.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-I9ibR23C.js.gz +0 -0
- package/dist/client/assets/gestureArbiter-BE8k_FL7.js.br +0 -0
- package/dist/client/assets/gestureArbiter-BE8k_FL7.js.gz +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BK6myYCK.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BK6myYCK.js.gz +0 -0
- package/dist/client/assets/index-C6xPtOPw.css +0 -1
- package/dist/client/assets/index-C6xPtOPw.css.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-CwY6cf7s.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-CwY6cf7s.js.gz +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-Cqy1TbUI.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-Cqy1TbUI.js.gz +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-SXzevtXv.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-SXzevtXv.js.gz +0 -0
- package/dist/client/assets/layout-CFH4KsMu.js.br +0 -0
- package/dist/client/assets/layout-CFH4KsMu.js.gz +0 -0
- package/dist/client/assets/linear-DSGS6T8F.js.br +0 -0
- package/dist/client/assets/linear-DSGS6T8F.js.gz +0 -0
- package/dist/client/assets/mermaid.core-BpDQIw7m.js.br +0 -0
- package/dist/client/assets/mermaid.core-BpDQIw7m.js.gz +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-D7H6k38f.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-D7H6k38f.js.gz +0 -0
- package/dist/client/assets/passwordBootstrap-B4SLDWeK.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-B4SLDWeK.js.gz +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-DT21hoef.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-DT21hoef.js.gz +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-CP_7qBRV.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-CP_7qBRV.js.gz +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-CLBVrI3n.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-CLBVrI3n.js.gz +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-DJoM5WtF.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-DJoM5WtF.js.gz +0 -0
- package/dist/client/assets/rdpSession-C0jVZfFV.js.br +0 -0
- package/dist/client/assets/rdpSession-C0jVZfFV.js.gz +0 -0
- package/dist/client/assets/referenceLongPress-LCYPFdN8.js.br +0 -0
- package/dist/client/assets/referenceLongPress-LCYPFdN8.js.gz +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-BHLyxBdU.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-BHLyxBdU.js.gz +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-CUgEsLUw.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-CUgEsLUw.js.gz +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-qEb89gHp.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-qEb89gHp.js.gz +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-BUOHBGK2.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-BUOHBGK2.js.gz +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-Dx0afnU6.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-Dx0afnU6.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CzHE6VoX.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-DeG8X6CN.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-B4wu-iuA.js +0 -8
- package/dist/client/assets/timeline-definition-24CTP7MA-Bkts868I.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-Bkts868I.js.gz +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-BOoHxntl.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-BOoHxntl.js.gz +0 -0
- package/dist/client/assets/videoCompression-BONtNnBl.js.br +0 -0
- package/dist/client/assets/videoCompression-BONtNnBl.js.gz +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-BAuuRkvt.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-BAuuRkvt.js.gz +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DvJOw2Ss.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DvJOw2Ss.js.gz +0 -0
package/package.json
CHANGED
package/runtime-manifest.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"packageName": "termdock",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.330",
|
|
5
5
|
"runtimeProtocolVersion": 1,
|
|
6
6
|
"minimumDesktopVersion": "1.4.46",
|
|
7
7
|
"nodeMajor": 22,
|
|
8
8
|
"dependencyHash": "sha256-oaGYi/P5ob8sd6VnNBOwshKozjhdV+hYiCmLAsn5x00=",
|
|
9
|
-
"serverBundleHash": "sha256-
|
|
10
|
-
"clientBundleHash": "sha256-
|
|
9
|
+
"serverBundleHash": "sha256-R3DBIQv0z+SBN+LCWHRsFbWHqQ92u8mBkCkfn1MJdok=",
|
|
10
|
+
"clientBundleHash": "sha256-MLNBIgsbEuR7PI6Npn9Zt4OyvUR6y5f88Gic0erRCvE=",
|
|
11
11
|
"entrypoint": "dist/server/cli.js",
|
|
12
12
|
"clientEntrypoint": "dist/client/index.html"
|
|
13
13
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{bA as r}from"./app-DNnVU3VK.js";import{b as m}from"./dnd-BCFAPC0L.js";import{b as n}from"./RightSidebar-CfOJHcXO.js";import"./react-XDCjal2T.js";import"./terminal-C7X98Amf.js";import"./App-xr2R4dST.js";import"./gestureArbiter-BE8k_FL7.js";import"./triangle-alert-D1VnXjVL.js";import"./referenceLongPress-LCYPFdN8.js";import"./DiffReview-CLKpyDPZ.js";import"./sparkles-Cm9xs8pz.js";import"./DiffViewer-DDiASWHf.js";import"./ChangeWalkthroughPanel-g83lCwJi.js";function g({content:o}){const e=m.useMemo(()=>n(o.split(`
|
|
2
|
-
`),null,null),[o]);return r.jsx("div",{className:"min-w-0 space-y-3 break-words text-sm leading-6 text-foreground [&_h1]:text-lg [&_h2]:text-base [&_h3]:text-sm [&_pre]:max-w-full [&_table]:text-xs",children:e.map((t,i)=>r.jsx("div",{className:"min-w-0",children:typeof t.content=="function"?t.content(null):t.content},i))})}export{g as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/rdpSession-C0jVZfFV.js","assets/app-DNnVU3VK.js","assets/react-XDCjal2T.js","assets/dnd-BCFAPC0L.js","assets/terminal-C7X98Amf.js","assets/index-C6xPtOPw.css","assets/ChangeWalkthroughPanel-g83lCwJi.js","assets/sparkles-Cm9xs8pz.js","assets/triangle-alert-D1VnXjVL.js","assets/App-xr2R4dST.js","assets/gestureArbiter-BE8k_FL7.js","assets/gestureArbiter-C2J0D0kV.css","assets/referenceLongPress-LCYPFdN8.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{ah as Ve,cz as Ot,df as St,bA as t,a4 as Ft,cw as $e,bz as qe,W as yt,o as vt,l as Kt,X as $t,_ as wt}from"./app-DNnVU3VK.js";import{b as s,r as Ze}from"./dnd-BCFAPC0L.js";import{a as Ut}from"./ChangeWalkthroughPanel-g83lCwJi.js";import{s as Ct,Y as kt,K as Ge,j as jt}from"./App-xr2R4dST.js";import{M as Bt}from"./triangle-alert-D1VnXjVL.js";const Vt=[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]],Ht=Ve("mouse-pointer-2",Vt);const Yt=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Xt=Ve("settings-2",Yt);const Wt=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],qt=Ve("zoom-in",Wt);const Zt=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],Gt=Ve("zoom-out",Zt);function Qe(e){const n=e==="darwin"?"mac":e==="win32"?"windows":"linux",c={host:"127.0.0.1",platform:n,protocol:n==="mac"?"vnc":"rdp",port:"3389",username:"",domain:"",ignoreCert:!1,rememberLogin:!0};return{target:"local",local:c,remote:{...c,host:""},viewOnly:!1,fit:!0,autoConnect:!0}}function Et(e,n){const c=Qe(n);if(!e||typeof e!="object")return c;const a=e,i=(y,u)=>{const l=y&&typeof y=="object"?y:{},g=(f,x)=>typeof l[f]=="string"&&l[f].length<=x&&!/[\x00-\x1f]/.test(l[f])?l[f]:u[f];return{host:g("host",253),username:g("username",255),domain:g("domain",255),platform:["mac","linux","windows"].includes(String(l.platform))?l.platform:u.platform,protocol:l.protocol==="rdp"||l.protocol==="vnc"?l.protocol:u.protocol,port:typeof l.port=="string"&&/^\d{0,5}$/.test(l.port)&&Number(l.port)<=65535?l.port:u.port,ignoreCert:l.ignoreCert===!0,rememberLogin:l.rememberLogin!==!1}};return{target:a.target==="remote"?"remote":"local",local:{...i(a.local,c.local),host:"127.0.0.1"},remote:i(a.remote,c.remote),viewOnly:a.viewOnly===!0,fit:a.fit!==!1,autoConnect:a.autoConnect!==!1}}function Tt(e){return JSON.stringify([e.host.trim().toLowerCase(),e.protocol,e.protocol==="vnc"?5900:Number(e.port),e.username.trim(),e.domain.trim()])}function Jt(e){const[n,c]=s.useState(Qe),[a,i]=s.useState(!1),[y,u]=s.useState("loading"),[l,g]=s.useState(0),[f,x]=s.useState([]),[k,v]=s.useState("idle"),b=s.useRef(n),P=s.useRef(0),E=s.useRef(0),h=s.useRef(""),p=s.useRef(null),j=s.useRef(new Set),N=s.useCallback(S=>{b.current=S(b.current),P.current++,c(b.current),u("saving")},[]);s.useEffect(()=>{const S=++E.current;P.current=0,h.current="",p.current=null,b.current=Qe(),c(b.current),i(!1),u("loading"),x([]),v("idle");const T=new AbortController;return fetch("/api/computer/preferences",{signal:T.signal}).then(async R=>{if(!R.ok)throw new Error("PREFERENCES_LOAD_FAILED");return await R.json()}).then(R=>{if(S!==E.current||T.signal.aborted)return;let w=Et(R.preferences);const V=P.current>0;if(!R.configured&&!V)try{const I=localStorage.getItem(`termdock:computer-host:${e}`);if(I){const J=/^(127\.0\.0\.1|localhost|::1|\[::1\])$/i.test(I)?"local":"remote";w=Et({...w,target:J,[J]:{...w[J],host:I,platform:localStorage.getItem(`termdock:computer-platform:${e}`)||w[J].platform,protocol:localStorage.getItem(`termdock:computer-protocol:${e}`)||"vnc",port:localStorage.getItem(`termdock:computer-rdp-port:${e}`)||"3389"}}),P.current++}}catch{}V||(b.current=w),h.current=R.configured?JSON.stringify(w):"",c(b.current),i(!0),u(R.configured?"saved":"saving"),x(Array.isArray(R.credentialKeys)?R.credentialKeys.filter(I=>typeof I=="string"):[]),v(R.credentialError?"error":"idle")}).catch(()=>{!T.signal.aborted&&S===E.current&&u("error")}),()=>{++E.current,T.abort();for(const R of j.current)R.abort();j.current.clear()}},[e,l]);const _=s.useCallback(()=>{if(p.current)return p.current;if(!a)return Promise.resolve(!1);const S=E.current,T=(async()=>{for(;h.current!==JSON.stringify(b.current);){const R=JSON.stringify(b.current),w=new AbortController;j.current.add(w),u("saving");try{if(!(await fetch("/api/computer/preferences",{method:"PUT",headers:{"Content-Type":"application/json"},body:R,signal:w.signal})).ok)throw new Error("PREFERENCES_SAVE_FAILED");if(S!==E.current)return!1;h.current=R}catch{return S===E.current&&u("error"),!1}finally{j.current.delete(w)}}return S===E.current&&u("saved"),!0})();return p.current=T,T.finally(()=>{p.current===T&&(p.current=null)}),T},[a]);s.useEffect(()=>{if(!a||h.current===JSON.stringify(n))return;const S=setTimeout(()=>{_()},300);return()=>clearTimeout(S)},[a,n,_]);const Y=s.useCallback(async(S,T,R)=>{const w=E.current,V=new AbortController;S!=="use"&&v("saving");try{if(!await _()||w!==E.current)throw new Error("COMPUTER_CREDENTIALS_FAILED");j.current.add(V);const I=await fetch(`/api/computer/credentials/${S}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:T,...S==="save"?{password:R}:{}}),signal:V.signal});if(w!==E.current)throw new Error("COMPUTER_CREDENTIALS_FAILED");if(!I.ok)throw new Error(S==="use"&&I.status===404?"COMPUTER_CREDENTIALS_MISSING":"COMPUTER_CREDENTIALS_FAILED");const K=await I.json();if(w!==E.current)throw new Error("COMPUTER_CREDENTIALS_FAILED");const J=Tt(T);if(S==="save"&&x(ee=>[...new Set([...ee,J])]),S==="forget"&&x(ee=>ee.filter(we=>we!==J)),S==="use"&&(typeof K.password!="string"||!K.password))throw new Error("COMPUTER_CREDENTIALS_MISSING");return v("idle"),K.password}catch(I){throw w===E.current&&!V.signal.aborted&&v("error"),I}finally{j.current.delete(V)}},[_]);return{preferences:n,change:N,loaded:a,saveState:y,flush:_,credentialKeys:f,loginState:k,credentialRequest:Y,retry:()=>a?void _():g(S=>S+1)}}class Qt{binaryType="arraybuffer";protocol="";CONNECTING=0;OPEN=1;CLOSING=2;CLOSED=3;onopen=null;onmessage=null;onerror=null;onclose=null;socket;get readyState(){return this.socket.readyState}constructor(n,c){this.socket=Ot(`/api/computer/ws?host=${encodeURIComponent(n)}`),this.socket.onopen=a=>this.onopen?.(a),this.socket.onerror=a=>this.onerror?.(a),this.socket.onclose=a=>{(a.code!==1e3||a.reason)&&c(a.reason||"COMPUTER_DISCONNECTED"),this.onclose?.(a)},this.socket.onmessage=a=>{try{const i=JSON.parse(a.data);if(i.type!=="data"||typeof i.data!="string"||!Number.isSafeInteger(i.seq))throw new Error("Invalid VNC record");const y=Uint8Array.from(atob(i.data),u=>u.charCodeAt(0));this.onmessage?.(new MessageEvent("message",{data:y.buffer})),this.socket.readyState===1&&this.socket.send(JSON.stringify({type:"ack",seq:i.seq}))}catch{c("COMPUTER_INVALID_MESSAGE"),this.close(),this.onclose?.(new CloseEvent("close",{code:4400}))}}}send(n){const c=ArrayBuffer.isView(n)?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(n);for(let a=0;a<c.length;a+=32*1024){const i=c.subarray(a,a+32768);let y="";for(const u of i)y+=String.fromCharCode(u);this.socket.send(JSON.stringify({type:"data",data:btoa(y)}))}}close(){this.socket.close()}}function er(e){return e==="mac"||e==="linux"||e==="windows"}function tr(e){const n=e==="mac"?[65513,"MetaLeft"]:[65507,"ControlLeft"],c=e==="mac"?n:[65515,"MetaLeft"];return{escape:[[65307,"Escape"]],enter:[[65293,"Enter"]],backspace:[[65288,"Backspace"]],tab:[e==="mac"?n:[65513,"AltLeft"],[65289,"Tab"]],search:e==="mac"?[c,[32,"Space"]]:[c],copy:[n,[99,"KeyC"]],paste:[n,[118,"KeyV"]],up:[[65362,"ArrowUp"]],down:[[65364,"ArrowDown"]],left:[[65361,"ArrowLeft"]],right:[[65363,"ArrowRight"]]}}function rr(e){const n=e;return{rendersCursor:!0,position:()=>({x:Number.isFinite(n._mousePos.x)?n._display.absX(n._mousePos.x):n._fbWidth/2,y:Number.isFinite(n._mousePos.y)?n._display.absY(n._mousePos.y):n._fbHeight/2}),size:()=>({width:n._fbWidth,height:n._fbHeight}),surface:()=>n._canvas,send:(c,a,i)=>{const y=n._display.scale,u=(c-n._display.absX(0))*y,l=(a-n._display.absY(0))*y;n._mousePos={x:u,y:l},n._mouseMoveTimer!==null&&clearTimeout(n._mouseMoveTimer),n._mouseMoveTimer=null,n._mouseButtonMask=i,n._mouseLastMoveTime=Date.now(),n._sendMouse(u,l,i);const g=n._canvas.getBoundingClientRect();n._cursor?.move(g.left+u,g.top+l)}}}function nr(e,n,c){const a=new AbortController,i=new Set,y=new Set;let u,l,g=!1,f=performance.now();const x=()=>i.size>0||y.size>0,k=h=>{u=void 0,!(g||!x())&&(performance.now()-f>1e3||(c.record("browser-frame",{time:h,interval:l===void 0?null:h-l,logical:n.position?.(),renderer:n.observeCursor?.()}),l=h,u=requestAnimationFrame(k)))},v=()=>{x()?u===void 0&&(l=void 0,u=requestAnimationFrame(k)):(u!==void 0&&cancelAnimationFrame(u),u=void 0,l=void 0)},b=h=>{if(h.pointerType!=="touch"&&h.pointerType!=="pen")return;f=performance.now(),h.type==="pointerdown"?i.add(h.pointerId):(h.type==="pointerup"||h.type==="pointercancel"||h.type==="lostpointercapture")&&i.delete(h.pointerId);const p=h.getCoalescedEvents?.()??[];c.record("raw-pointer",{type:h.type,time:h.timeStamp,id:h.pointerId,pointerType:h.pointerType,client:[h.clientX,h.clientY],trusted:h.isTrusted,coalesced:p.slice(-16).map(j=>[j.timeStamp,j.clientX,j.clientY])}),v()},P=h=>{f=performance.now(),y.clear();for(const p of Array.from(h.touches))y.add(p.identifier);c.record("raw-touch",{type:h.type,time:h.timeStamp,trusted:h.isTrusted,touches:Array.from(h.touches,p=>[p.identifier,p.clientX,p.clientY]),changed:Array.from(h.changedTouches,p=>[p.identifier,p.clientX,p.clientY])}),v()},E={capture:!0,passive:!0,signal:a.signal};for(const h of["pointerdown","pointermove","pointerup","pointercancel","lostpointercapture"])e.addEventListener(h,b,E);for(const h of["touchstart","touchmove","touchend","touchcancel"])e.addEventListener(h,P,E);return c.record("observation-start",{version:2,pointerEvents:typeof PointerEvent<"u",touchEvents:"ontouchstart"in window}),()=>{g=!0,a.abort(),u!==void 0&&cancelAnimationFrame(u),c.record("observation-stop"),c.flush("observation-stop")}}const Lt="termdock:computer-touch-mode:v1";function or(){try{const e=localStorage.getItem(Lt);if(e==="trackpad"||e==="direct")return e}catch{}return navigator.maxTouchPoints>0&&window.matchMedia("(any-pointer: coarse)").matches?"trackpad":"direct"}function sr(e){try{localStorage.setItem(Lt,e)}catch{}}const Oe=8,ar=300,cr=450,Nt=18,ir=50,Ue=(e,n)=>Math.max(0,Math.min(e,Math.max(0,n-1)));function lr(e,n,c,a,i={}){const y=new AbortController,u=i.trace?nr(e,n,i.trace):void 0,l=new Map;let g=0,f=0,x=!1,k=!1,v=!1,b=!1,P=0,E=1,h="pending",p=[],j={x:0,y:0},N={x:0,y:0},_,Y=0,S=0,T,R=!0,w,V=!1;const I=()=>{const o=n.size(),d=a.current??={x:o.width/2,y:o.height/2};return d.x=Ue(d.x,o.width),d.y=Ue(d.y,o.height),d};let K;const J=()=>{const o=n.size();if((!K||K.width!==o.width||K.height!==o.height)&&(R=!0),!R&&K)return K;const d=n.surface(),C=e.getBoundingClientRect(),$=d.getBoundingClientRect(),D=[];for(let M=d.parentElement;M&&M!==e;M=M.parentElement){const F=getComputedStyle(M),B=/auto|scroll/.test(F.overflowX)?Math.max(0,M.scrollWidth-M.clientWidth):0,se=/auto|scroll/.test(F.overflowY)?Math.max(0,M.scrollHeight-M.clientHeight):0;if(!B&&!se)continue;const ae=M.getBoundingClientRect();D.push({element:M,left:ae.left-C.left,top:ae.top-C.top,right:ae.right-C.left,bottom:ae.bottom-C.top,maxX:B,maxY:se})}return K={...o,left:$.left-C.left,top:$.top-C.top,scaleX:o.width&&$.width?$.width/o.width:1,scaleY:o.height&&$.height?$.height/o.height:1,viewportWidth:C.width,viewportHeight:C.height,clientLeft:C.left,clientTop:C.top,scrollers:D},R=!1,K},ee=(o,d)=>{if(!i.trace)return;const C=K;i.trace.record(o,{mode:i.mode,pointerType:d?.pointerType,pointerId:d?.pointerId,client:d?[d.clientX,d.clientY]:void 0,inputTime:d?.timeStamp,target:a.current?[a.current.x,a.current.y]:null,actual:n.position?.(),buttons:S,fingers:l.size,moved:x,pinching:b,scrolling:v,zoom:i.zoom?.get(),scale:C?[C.scaleX,C.scaleY]:void 0,surface:C?[C.left,C.top,C.width,C.height]:void 0,viewport:C?[C.clientLeft,C.clientTop,C.viewportWidth,C.viewportHeight]:void 0})};i.trace?.record("touchpad-attached",{mode:i.mode,viewOnly:i.viewOnly}),c.hidden=!0;const we=()=>{const o=J(),d=I();if(!o.width||!o.height||b||i.viewOnly)return;let C=o.left+d.x*o.scaleX,$=o.top+d.y*o.scaleY;for(const D of o.scrollers){if(D.maxX){const M=D.element.scrollLeft,F=C<D.left+20?C-D.left-20:C>D.right-20?C-D.right+20:0,B=Math.max(0,Math.min(D.maxX,M+F));M!==B&&(D.element.scrollLeft=B,C-=B-M,o.left-=B-M)}if(D.maxY){const M=D.element.scrollTop,F=$<D.top+20?$-D.top-20:$>D.bottom-20?$-D.bottom+20:0,B=Math.max(0,Math.min(D.maxY,M+F));M!==B&&(D.element.scrollTop=B,$-=B-M,o.top-=B-M)}}},ne=(o=S)=>{if(i.viewOnly)return;const d=I(),C=n.position?.();n.send(Math.round(d.x),Math.round(d.y),o),i.trace?.record("send",{target:[Math.round(d.x),Math.round(d.y)],buttons:o,before:C,after:n.position?.()})},Me=()=>{T=void 0,we();let o=0;for(;Math.abs(Y)>=Nt&&o++<8;){const d=Y>0?16:8;ne(d),ne(0),Y-=Math.sign(Y)*Nt}},Ce=()=>{V||(T??=requestAnimationFrame(Me))},Pe=()=>{T!==void 0&&(cancelAnimationFrame(T),Me())},q=()=>{T!==void 0&&cancelAnimationFrame(T),T=void 0,Y=0},ke=()=>{clearTimeout(w),Pe(),S&&(S=0,ne())},re=o=>{o.cancelable&&o.preventDefault(),o.stopImmediatePropagation()},Q=()=>{const[o,d]=[...l.values()];return{distance:Math.hypot(o.x-d.x,o.y-d.y),x:(o.x+d.x)/2,y:(o.y+d.y)/2}},U=(o=!1)=>{if(V||k||l.size!==2||f!==2)return;const d=Q();if(h==="pending"){const C=[...l.values()].map((B,se)=>({x:B.x-p[se].x,y:B.y-p[se].y})),$=C.map(B=>Math.hypot(B.x,B.y));if(Math.max(...$)<Oe)return;if(!o&&Math.min(...$)<Oe){_??=setTimeout(()=>{_=void 0,U(!0)},ir);return}clearTimeout(_),_=void 0;const D=Math.abs(d.distance-P),M=C[0].x*C[1].x+C[0].y*C[1].y<0,F=Math.min(...$)>=Oe?M:D>Math.max(Math.abs(d.x-j.x),Math.abs(d.y-j.y));h=i.zoom&&D>=Oe&&F?"pinch":i.mode==="direct"&&i.zoom&&i.zoom.get()>1?"pan":"scroll",b=h==="pinch",x=!0,ee("two-finger-classified")}h==="pinch"&&P>0?(i.zoom?.set(E*d.distance/P,d),i.zoom?.pan(d.x-N.x,d.y-N.y),R=!0):h==="pan"?(i.zoom?.pan(d.x-N.x,d.y-N.y),R=!0):Y+=N.y-d.y,N=d,Ce()},te=o=>{const d=J();a.current={x:Ue((o.clientX-d.clientLeft-d.left)/d.scaleX,d.width),y:Ue((o.clientY-d.clientTop-d.top)/d.scaleY,d.height)}},de=o=>{if(!(o.pointerType!=="touch"&&o.pointerType!=="pen")){re(o),l.size||(R=!0,clearTimeout(_),_=void 0,g=performance.now(),f=0,x=!1,k=!1,v=!1,b=!1,Y=0,i.mode==="direct"?te(o):n.position&&(a.current={...n.position()},I())),l.set(o.pointerId,{x:o.clientX,y:o.clientY,startX:o.clientX,startY:o.clientY}),f=Math.max(f,l.size),ee("down",o);try{e.setPointerCapture(o.pointerId)}catch{}if(clearTimeout(w),l.size===1&&f===1)w=setTimeout(()=>{!V&&l.size===1&&!x&&!k&&(S=1,ne())},cr);else if(ke(),v=!0,l.size===2&&f===2){const d=Q();P=d.distance,E=i.zoom?.get()??1,j=N=d,h="pending",p=[...l.values()].map(({x:C,y:$})=>({x:C,y:$}))}else k=!0,clearTimeout(_),_=void 0}},pe=o=>{if(o.pointerType==="mouse")return;const d=l.get(o.pointerId);if(!d)return;re(o);const C=o.clientX-d.x,$=o.clientY-d.y;if(d.x=o.clientX,d.y=o.clientY,ee("move-input",o),Math.hypot(d.x-d.startX,d.y-d.startY)>Oe&&(x=!0,clearTimeout(w)),l.size===2&&!k)U();else if(l.size===1&&!v&&!k){if(i.mode==="direct"){te(o),x&&(S=1),ne(),Ce();return}const D=I(),M=J();D.x+=C/M.scaleX,D.y+=$/M.scaleY,I(),ne(),Ce()}},Ie=o=>{if(!l.has(o.pointerId))return;re(o),ee(o.type,o),clearTimeout(_),_=void 0;const d=S!==0;o.type!=="pointerup"&&(k=!0,q()),ke(),l.delete(o.pointerId);try{e.hasPointerCapture(o.pointerId)&&e.releasePointerCapture(o.pointerId)}catch{}l.size||(Y=0,!k&&!d&&!x&&f<=2&&performance.now()-g<=ar&&(i.mode!=="direct"||f===1)&&(ne(f===2?4:1),ne(0)),ee("gesture-end",o),i.trace?.flush("gesture-end"))},je=()=>{k=!0,q(),clearTimeout(_),_=void 0,ke();const o=[...l.keys()];l.clear(),Y=0;for(const d of o)try{e.hasPointerCapture(d)&&e.releasePointerCapture(d)}catch{}},X={capture:!0,passive:!1,signal:y.signal};e.addEventListener("pointerdown",de,X),e.addEventListener("pointermove",pe,X),e.addEventListener("pointerup",Ie,X),e.addEventListener("pointercancel",Ie,X),e.addEventListener("lostpointercapture",Ie,X);for(const o of["touchstart","touchmove","touchend","touchcancel","contextmenu"])e.addEventListener(o,re,X);const oe=()=>{R=!0,Ce()};e.addEventListener("scroll",oe,{capture:!0,signal:y.signal}),window.addEventListener("blur",je,{signal:y.signal});const L=()=>{document.hidden&&je()};document.addEventListener("visibilitychange",L,{signal:y.signal});const W=new ResizeObserver(oe);return W.observe(e),W.observe(n.surface()),!a.current&&n.position&&(a.current={...n.position()}),we(),()=>{V||(V=!0,ee("touchpad-detached"),y.abort(),je(),W.disconnect(),c.hidden=!0,u?.(),i.trace?.flush("touchpad-detached"))}}function ur(e,n){e=Math.max(1,e||1280),n=Math.max(1,n||800);const c=Math.max(1,640/e,480/n);return{width:Math.max(640,Math.min(2560,Math.round(e*c))),height:Math.max(480,Math.min(1600,Math.round(n*c)))}}const Je="",dr={Enter:"enter",Backspace:"backspace",Delete:"delete",Tab:"tab",ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right"};function pr({sendText:e,sendKey:n,sendChord:c,commandKey:a=[65515,"MetaLeft"],inputRef:i,onFocusChange:y}){const{t:u}=St(),l=s.useRef(null),g=s.useRef(!1),f=s.useRef(null),x=i??l,k=s.useRef({sendText:e,sendKey:n});k.current={sendText:e,sendKey:n};const[v,b]=s.useState(!1),P=()=>{x.current&&(x.current.value=Je,x.current.setSelectionRange(1,1)),b(!1)},E=()=>{const p=(x.current?.value||"").replace(/^\u200b/,"");p&&k.current.sendText(p),P()},h=()=>{f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),E()};return s.useLayoutEffect(()=>{const p=x.current;p.value=Je,p.setSelectionRange(1,1),p.focus({preventScroll:!0});const j=N=>{if(g.current||N.isComposing)return;const _=N.inputType==="deleteContentBackward"?"backspace":N.inputType==="deleteContentForward"?"delete":["insertLineBreak","insertParagraph"].includes(N.inputType)?"enter":null;if(!_)return;N.preventDefault();const Y=_==="enter"&&f.current!==null;h(),Y||k.current.sendKey(_)};return p.addEventListener("beforeinput",j),()=>{if(p.removeEventListener("beforeinput",j),f.current!==null){cancelAnimationFrame(f.current),f.current=null;const N=p.value.replace(/^\u200b/,"");!g.current&&N&&k.current.sendText(N)}}},[]),t.jsxs("div",{className:"relative shrink-0 border-t border-border bg-surface px-3 py-2",children:[!v&&t.jsx("span",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-2 left-6 flex items-center text-sm text-muted-foreground",children:u("computer.keyboardPlaceholder")}),t.jsx("input",{ref:x,className:"min-h-11 w-full rounded-md border border-border bg-background px-3 text-base outline-none focus:border-primary","aria-label":u("computer.keyboardInput"),autoCapitalize:"none",autoCorrect:"off",autoComplete:"off",spellCheck:!1,inputMode:"text",enterKeyHint:"enter",maxLength:1025,defaultValue:Je,onChange:p=>{if(b(!!p.target.value.replace(/^\u200b/,"")),g.current||p.nativeEvent.isComposing||f.current!==null)return;p.nativeEvent.inputType==="deleteContentBackward"&&!p.target.value?(k.current.sendKey("backspace"),P()):E()},onCompositionStart:()=>{f.current!==null&&h(),g.current=!0},onCompositionEnd:()=>{g.current=!1,f.current!==null&&cancelAnimationFrame(f.current),f.current=requestAnimationFrame(()=>{f.current=null,E()})},onFocus:()=>y?.(!0),onBlur:()=>{!g.current&&f.current!==null&&h(),y?.(!1)},onKeyDown:p=>{if(g.current||p.nativeEvent.isComposing||p.keyCode===229)return;const j=p.ctrlKey||p.altKey||p.metaKey,N=(p.ctrlKey||p.metaKey)&&!p.altKey&&p.key.toLowerCase()==="v";if(c&&!N&&!p.getModifierState("AltGraph")&&(j||p.shiftKey)){const S={Enter:65293,Backspace:65288,Delete:65535,Tab:65289,ArrowUp:65362,ArrowDown:65364,ArrowLeft:65361,ArrowRight:65363,Home:65360,End:65367,PageUp:65365,PageDown:65366}[p.key]??(j&&p.key.length===1?p.key.toLowerCase().codePointAt(0):void 0);if(S!==void 0){p.preventDefault(),h();const T=[];p.ctrlKey&&T.push([65507,"ControlLeft"]),p.altKey&&T.push([65513,"AltLeft"]),p.metaKey&&!T.some(([R])=>R===a[0])&&T.push(a),p.shiftKey&&T.push([65505,"ShiftLeft"]),T.push([S,p.code||p.key]),c(T);return}}const _=dr[p.key];_&&(p.preventDefault(),h(),k.current.sendKey(_))}})]})}function mr(e){let n=[],c=null;const a=new Map,i=()=>{c=null,n.splice(0,32).forEach(y=>{e(y),y[2]?a.set(y[0],y):a.delete(y[0])}),n.length&&(c=requestAnimationFrame(i))};return{send(y){n.push(...y),c===null&&i()},clear(){c!==null&&cancelAnimationFrame(c),c=null,n=[];const y=[...a.values()].reverse();a.clear();for(const[u,l]of y)try{e([u,l,!1])}catch{}}}}const fr=e=>Math.max(1,Math.min(8,Number.isFinite(e)?e:1));function hr(e,n){let c=1;const a="viewportZoom"in e,i=e,y=()=>a?e.pointerTarget.surface():i._canvas,u=()=>a?e.viewportScroller:i._screen,l=a?void 0:i._updateScale;return l&&(i._updateScale=function(){l.call(i),i._display.scale*=c}),{get:()=>c,set(g,f){const x=fr(g),k=y(),v=u(),b=k.getBoundingClientRect(),P=v.getBoundingClientRect(),E=f??{x:P.left+P.width/2,y:P.top+P.height/2},h={x:(E.x-b.left)/(b.width||1),y:(E.y-b.top)/(b.height||1)};c=x,a?e.viewportZoom=c:i._updateScale();const p=k.getBoundingClientRect();v.scrollLeft+=p.left+h.x*p.width-E.x,v.scrollTop+=p.top+h.y*p.height-E.y,c===1&&(v.scrollLeft=0,v.scrollTop=0),n(c)},pan(g,f){const x=u();x.scrollLeft-=g,x.scrollTop-=f},dispose(){l&&(i._updateScale=l)}}}function gr(e,n){const c=e,a=c._keyboard,i=a._target,y=e.focus,u=document.createElement("textarea");u.tabIndex=-1,u.setAttribute("aria-label","Remote desktop keyboard"),u.autocapitalize="off",u.autocomplete="off",u.spellcheck=!1,Object.assign(u.style,{position:"absolute",left:"0",top:"0",width:"1px",height:"1px",fontSize:"16px",opacity:"0",pointerEvents:"none"}),c._screen.append(u);const l=new AbortController;let g=!1,f=null,x=!1;const k=()=>{c._mouseMoveTimer!==null&&clearTimeout(c._mouseMoveTimer),c._mouseMoveTimer=null,c._mouseButtonMask&&(c._mouseButtonMask=0,c._sendMouse(c._mousePos.x,c._mousePos.y,0))};window.addEventListener("blur",k,{signal:l.signal}),document.addEventListener("visibilitychange",()=>{document.hidden&&(a._allKeysUp(),k())},{signal:l.signal});const v=()=>{f!==null&&cancelAnimationFrame(f),f=null;const b=u.value;u.value="",b&&!e.viewOnly&&n(b)};return u.addEventListener("keydown",b=>{(g||b.isComposing||b.keyCode===229)&&b.stopImmediatePropagation()},{capture:!0,signal:l.signal}),u.addEventListener("compositionstart",()=>{f!==null&&v(),g=!0,a._allKeysUp()},{signal:l.signal}),u.addEventListener("compositionend",()=>{g=!1,f!==null&&cancelAnimationFrame(f),f=requestAnimationFrame(v)},{signal:l.signal}),u.addEventListener("input",b=>{!g&&!b.isComposing&&f===null&&v()},{signal:l.signal}),u.addEventListener("blur",()=>{!g&&f!==null&&v(),a._allKeysUp()},{signal:l.signal}),a.ungrab(),a._target=u,e.viewOnly||a.grab(),e.focus=b=>{!x&&!e.viewOnly&&u.focus(b)},document.activeElement===i&&e.focus({preventScroll:!0}),()=>{x||(x=!0,f!==null&&(g?cancelAnimationFrame(f):v()),k(),l.abort(),a.ungrab(),a._target=i,e.viewOnly||a.grab(),e.focus=y,u.remove())}}function*xr(e){for(const n of e.replace(/\r\n?/g,`
|
|
3
|
-
`)){const c=n.codePointAt(0);yield n===`
|
|
4
|
-
`?65293:n===" "?65289:c<256?c:16777216|c}}const et=1048576;function br(e,n,c){const a=new AbortController;let i=!1,y=-1/0,u=!0;const l=new Set,g=v=>{if(!(v.ctrlKey||v.metaKey)||v.altKey||v.isComposing)return;const b=v.key.toLowerCase();b==="v"?(i=v.shiftKey,l.add(v.code||v.key),v.stopImmediatePropagation()):(b==="c"||b==="x")&&(y=performance.now())},f=v=>{v.preventDefault(),v.stopImmediatePropagation();const b=v.clipboardData;if(!b||!Array.from(b.types).includes("text/plain")){c.failed();return}const P=b.getData("text/plain");if(P.length>et){c.failed();return}try{c.paste(P,i)}catch{c.failed()}i=!1},x=v=>{const b=v.detail?.text;if(typeof b!="string"||b.length>et){c.failed();return}c.receive(b),performance.now()-y<2e3&&(y=-1/0,navigator.clipboard?.writeText?navigator.clipboard.writeText(b).catch(()=>{u&&c.failed()}):c.failed())},k={capture:!0,signal:a.signal};return e.addEventListener("keydown",g,k),e.addEventListener("keyup",v=>{l.delete(v.code||v.key)&&v.stopImmediatePropagation()},k),e.addEventListener("paste",f,k),n.addEventListener("clipboard",x,{signal:a.signal}),n.addEventListener("clipboarderror",c.failed,{signal:a.signal}),window.addEventListener("blur",()=>{l.clear(),i=!1,y=-1/0},{signal:a.signal}),()=>{u=!1,a.abort()}}function yr(){const e=performance.now(),n=e+15*6e4,c=`motion-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;let a=[],i=0,y=0,u=!1,l;const g=f=>{if(clearTimeout(l),l=void 0,!a.length)return;const x=a;a=[];for(let k=0;k<x.length;k+=64)Ft("info","COMPUTER_MOTION_TRACE",{version:2,id:c,sequence:++y,startedAt:performance.timeOrigin+e,reason:f,dropped:k?0:i,samples:x.slice(k,k+64)});i=0};return{record(f,x={}){if(u)return;const k=performance.now()-e;if(performance.now()>=n){g("expired"),u=!0;return}a.length>=8192&&(a.splice(2048,1),i++),a.push([Math.round(k*10)/10,f,x]),clearTimeout(l),l=setTimeout(()=>g("idle"),750)},flush:g,dispose(){u||(u=!0,g("dispose"))}}}const xe="inline-flex min-h-9 items-center justify-center gap-1.5 rounded-md border border-border px-2.5 text-xs hover:bg-surface-2 disabled:opacity-40",be="min-h-11 w-full rounded-md border border-border bg-background px-2 text-sm outline-none focus:border-primary";function Be(e){return/API_NOT_ALLOWED|AUTHORIZATION|revoked|PAIRING/.test(e)?"computer.permission":e.includes("RDP_BACKEND_UNAVAILABLE")?"computer.rdpBackendUnavailable":e.includes("RDP_CERTIFICATE")?"computer.rdpCertificate":e.includes("CREDENTIALS_MISSING")?"computer.loginExpired":e.includes("CREDENTIALS_FAILED")?"computer.loginSaveFailed":e.includes("AUTH_FAILED")?"computer.authFailed":e.includes("RDP_FAILED")?"computer.rdpFailed":e.includes("SCREEN_SHARING_OFF")?"computer.sharingOff":e.includes("PRIVATE_HOST_ONLY")?"computer.privateOnly":e.includes("INVALID_HOST")?"computer.invalidHost":e.includes("TIMEOUT")?"computer.timeout":e.includes("UNREACHABLE")?"computer.unreachable":e.includes("DISCONNECTED")?"computer.disconnected":"computer.failed"}function vr(){const{t:e}=St(),n=s.useMemo(()=>yr(),[]);s.useEffect(()=>(n.record("panel-open",{viewport:[window.innerWidth,window.innerHeight],dpr:window.devicePixelRatio}),n.flush("panel-open"),()=>n.flush("panel-unmounted")),[n]);const[c,a]=s.useState(()=>$e()?.targetPeerId??""),[i,y]=s.useState(null),{preferences:u,change:l,loaded:g,saveState:f,flush:x,retry:k,credentialKeys:v,loginState:b,credentialRequest:P}=Jt(c),E=u.target==="local",h=u[u.target],{host:p,platform:j,protocol:N,port:_,domain:Y,ignoreCert:S,username:T}=h,R=N==="rdp"&&i?.rdpAvailable===!1,{viewOnly:w,fit:V}=u,I=h.rememberLogin&&v.includes(Tt(h)),K=r=>l(m=>({...m,[m.target]:{...m[m.target],...r}})),J=r=>K({username:r}),ee=r=>K({domain:r}),we=r=>{K({ignoreCert:r}),x()},ne=r=>K({port:r}),Me=r=>{r&&(ye.current(),ze.clear(),W(null)),l(m=>({...m,viewOnly:r})),x()},[Ce,Pe]=s.useState(!1),q=tr(j),ke=j==="mac"?"⌘V":"Ctrl+V",[re,Q]=s.useState(""),[U,te]=s.useState("idle"),[de,pe]=s.useState(null),[Ie,je]=s.useState(""),[X,oe]=s.useState(!1),[L,W]=s.useState(null),o=s.useRef(null),[d,C]=s.useState(!1),[$,D]=s.useState(!1),M=s.useRef(0),[F,B]=s.useState(()=>navigator.maxTouchPoints>0||window.innerWidth<=640);s.useEffect(()=>{const r=()=>B(navigator.maxTouchPoints>0||window.innerWidth<=640);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]);const se=L==="keyboard"&&d&&(!F||!window.visualViewport||$),[ae,tt]=s.useState(1),ce=s.useRef(null),rt=s.useRef(null),[Ee,nt]=s.useState(""),[At,Ne]=s.useState(!1),[He,ot]=s.useState(null),[_t,ie]=s.useState(!1),[Rt,Ye]=s.useState(!1),[Mt,Pt]=s.useState(!1),[me,It]=s.useState(or),st=s.useRef(null),at=s.useRef(null),ye=s.useRef(()=>{}),De=s.useRef(()=>{}),[ct,Dt]=s.useState(qe),Ae=s.useRef(!1),ve=s.useRef(""),it=s.useRef(()=>{}),lt=s.useRef(null),Fe=s.useRef(null),fe=s.useMemo(()=>{const r=document.createElement("div");return r.className="h-full w-full min-h-0 overflow-hidden",r},[]),O=s.useRef(null),ut=s.useRef(!1);ut.current=U==="connected"&&!w;const ze=s.useMemo(()=>mr(([r,m,z])=>O.current?.sendKey(r,m,z)),[]),Xe=s.useRef(null),he=s.useRef(0),We=s.useRef(void 0),le=s.useCallback(()=>{ye.current(),De.current(),ce.current?.dispose(),ce.current=null,ze.clear(),at.current=null,he.current++,clearTimeout(We.current);const r=O.current;O.current=null,r?.disconnect(),Xe.current?.close(),Xe.current=null,fe.replaceChildren()},[fe,ze]);s.useLayoutEffect(()=>(Fe.current?.appendChild(fe),()=>{fe.remove()}),[fe,X]),s.useEffect(()=>()=>le(),[le]),s.useEffect(()=>{const r=()=>{const m=qe();Dt(m),!m&&(Ae.current=!1,ve.current="",le(),te("idle"),Q(""),oe(!1),W(null))};return window.addEventListener(yt,r),()=>window.removeEventListener(yt,r)},[le]),s.useEffect(()=>{const r=()=>a($e()?.targetPeerId??"");return window.addEventListener(vt,r),()=>window.removeEventListener(vt,r)},[]),s.useEffect(()=>{le(),Ae.current=!1,ve.current="",te("idle"),pe(null),Q(""),y(null),oe(!1),W(null),Pe(!1),je(""),nt(""),Ne(!1);const r=new AbortController;return fetch("/api/computer/status",{signal:r.signal}).then(async m=>{if(!m.ok)throw new Error(m.status===403?"API_NOT_ALLOWED":"COMPUTER_FAILED");return await m.json()}).then(m=>{r.signal.aborted||y(m)}).catch(m=>{r.signal.aborted||pe(Be(String(m)))}),()=>{r.abort(),le()}},[c,le]),s.useEffect(()=>{w&&De.current(),O.current&&(O.current.viewOnly=w)},[w]),s.useEffect(()=>{O.current&&(O.current.scaleViewport=V)},[V]),s.useEffect(()=>{O.current&&"pauseResize"in O.current&&(O.current.pauseResize=!!L)},[L]),s.useEffect(()=>{const r=O.current;r&&("keyboardActive"in r?r.keyboardActive=L==="keyboard":r.focusOnClick=L!=="keyboard")},[L]);const dt=r=>{r===E||Z||!g||(Q(""),pe(null),l(m=>({...m,target:r?"local":"remote"})),x())},pt=()=>{Ae.current=!0,ve.current="",le(),te("idle"),Q(""),oe(!1),W(null),Ne(!1)},mt=async r=>{if(r?.preventDefault(),R)return;if(Ae.current=!0,U==="credentials"&&O.current&&"sendCredentials"in O.current){ve.current=re,O.current.sendCredentials({username:T,password:re}),te("connecting");return}if(!qe()||!g||!re&&!I)return;x(),ot(null),ie(!1),Ye(!1),le(),pe(null),je(""),te("connecting"),Ne(!1);const m=he.current,z=H=>{m===he.current&&(le(),te("error"),pe(H),W(null),ve.current="",(H==="computer.authFailed"||H==="computer.permission"||H==="computer.loginExpired")&&Q(""),I&&(H==="computer.authFailed"||H==="computer.loginExpired")&&P("forget",h).catch(()=>{}))};We.current=setTimeout(()=>z("computer.timeout"),6e4);try{let H=re||await P("use",h);if(m!==he.current)return;ve.current=H||"";let G;if(N==="rdp"){const{RdpSession:ue}=await wt(async()=>{const{RdpSession:Le}=await import("./rdpSession-C0jVZfFV.js");return{RdpSession:Le}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]));if(m!==he.current)return;document.activeElement?.blur?.(),Ze.flushSync(()=>{te("connecting"),window.innerWidth<=640&&oe(!0)});const Se=Fe.current?.getBoundingClientRect(),Te=ur(Se?.width||1280,Se?.height||800);G=new ue(fe,{host:p.trim(),port:Number(_),username:T.trim(),password:H||"",domain:Y.trim(),ignoreCert:S,...Te},Le=>z(Be(Le)),n)}else{const{default:ue}=await wt(async()=>{const{default:Le}=await import("./rfb-CxsXsMUX.js");return{default:Le}},[]);if(m!==he.current)return;const Se=new Qt(p.trim(),Le=>z(Be(Le)));Xe.current=Se;const Te=new ue(fe,Se,{shared:!0,credentials:{username:T.trim()||void 0,password:H}});Te.background="var(--chrome-bg)",Te.resizeSession=!1,Te.qualityLevel=6,Te.compressionLevel=2,G=Te}H=void 0,O.current=G,G.scaleViewport=V,G.viewOnly=w,G.addEventListener("connect",()=>{if(m!==he.current)return;clearTimeout(We.current),te("connected"),Q(""),window.innerWidth<=640&&(document.activeElement?.blur?.(),oe(!0));const ue=ve.current;ve.current="",h.rememberLogin&&ue&&P("save",h,ue).catch(()=>{})}),G.addEventListener("credentialsrequired",ue=>{if(m!==he.current)return;const Se=ue.detail.types;Pt(Se.includes("username")),te("credentials")}),G.addEventListener("securityfailure",()=>z("computer.authFailed")),G.addEventListener("disconnect",()=>z("computer.disconnected")),G.addEventListener("desktopname",ue=>{m===he.current&&je(ue.detail.name)})}catch(H){z(Be(String(H)))}},ge=r=>{const m=O.current;!m||U!=="connected"||w||(L==="keyboard"?o.current?.focus({preventScroll:!0}):L!=="clipboard"&&!F&&m.focus?.({preventScroll:!0}),ze.send([...r.map(([z,H])=>[z,H,!0]),...[...r].reverse().map(([z,H])=>[z,H,!1])]))},A=U==="connected",Z=U==="connecting"||U==="credentials",Ke=A||U==="connecting";s.useEffect(()=>{const r=O.current;if(!A||!r||!("viewportZoom"in r)&&!("_display"in r))return;const m=hr(r,tt);return ce.current=m,tt(1),()=>{m.dispose(),ce.current===m&&(ce.current=null)}},[A]),s.useEffect(()=>{const r=O.current,m=Fe.current,z=st.current;if(!A||L&&L!=="keyboard"||me!=="trackpad"&&!(navigator.maxTouchPoints>0)||!r||!m||!z)return;const H="pointerTarget"in r?r.pointerTarget:rr(r),G=lr(m,H,z,at,{mode:me,zoom:ce.current??void 0,viewOnly:w,trace:n});return ye.current=G,()=>{G(),ye.current===G&&(ye.current=()=>{})}},[A,w,me,X,L,n]),s.useEffect(()=>{const r=O.current;if(!(!A||w||!r))return br(fe,r,{paste:(m,z)=>{r.clipboardPasteFrom(m),ge(z?[...q.paste.slice(0,1),[65505,"ShiftLeft"],...q.paste.slice(1)]:q.paste),Ne(!0),ie(!1)},receive:m=>{ot(m),Ye(!1)},failed:()=>{ie(!0),W("clipboard")}})},[A,w,j,fe]),s.useEffect(()=>{const r=O.current;if(!A||w||!r||"pointerTarget"in r||!("_keyboard"in r))return;const m=gr(r,gt);return De.current=m,()=>{m(),De.current===m&&(De.current=()=>{})}},[A,w]);const ft=r=>{r!==me&&(ye.current(),It(r),sr(r))};it.current=()=>{mt()},s.useEffect(()=>{ct&&g&&i&&!R&&u.autoConnect&&I&&U==="idle"&&!Ae.current&&it.current()},[ct,g,i,R,u.autoConnect,I,U]);const ht=()=>{Ae.current=!0,P("forget",h).catch(()=>{})},_e=r=>{if(r==="keyboard"){if(L==="keyboard"&&!se){o.current?.blur(),o.current?.focus({preventScroll:!0});return}ye.current(),M.current=window.visualViewport?.height??window.innerHeight,Ze.flushSync(()=>{C(!1),D(!1),W(m=>m===r?null:r)})}else ye.current(),W(m=>m===r?null:r)},zt=()=>{ce.current?.set(1),l(r=>({...r,fit:!0})),x()},gt=r=>{if(!O.current||!ut.current)return;const m=[];for(const z of xr(r))m.push([z,null,!0],[z,null,!1]);ze.send(m)};s.useEffect(()=>{if(!A||L!=="keyboard"&&L!=="clipboard"||!window.visualViewport)return;const r=window.visualViewport,m=rt.current,z=()=>{L==="keyboard"&&D(d&&M.current-r.height>100),X&&m&&r.height>=160&&(m.style.height=`${r.height}px`,m.style.top=`${r.offsetTop}px`)};return z(),r.addEventListener("resize",z),r.addEventListener("scroll",z),()=>{r.removeEventListener("resize",z),r.removeEventListener("scroll",z),m&&(m.style.height="",m.style.top="")}},[A,L,X,d]);const xt=t.jsxs("div",{className:"flex shrink-0 items-center text-xs",role:"group","aria-label":e("computer.desktopZoom"),title:F?e("computer.pinchHint"):void 0,children:[t.jsx("button",{type:"button",className:"flex min-h-11 min-w-11 items-center justify-center","aria-label":e("computer.zoomOut"),disabled:!A||ae<=1,onPointerDown:r=>r.preventDefault(),onClick:()=>ce.current?.set(ae/1.25),children:t.jsx(Gt,{size:16})}),t.jsxs("button",{type:"button",className:"min-h-11 min-w-11","aria-label":e("computer.resetZoom"),disabled:!A,onPointerDown:r=>r.preventDefault(),onClick:zt,children:[Math.round(ae*100),"%"]}),t.jsx("button",{type:"button",className:"flex min-h-11 min-w-11 items-center justify-center","aria-label":e("computer.zoomIn"),disabled:!A||ae>=8,onPointerDown:r=>r.preventDefault(),onClick:()=>ce.current?.set(ae*1.25),children:t.jsx(qt,{size:16})}),F&&t.jsx("span",{className:"hidden pr-2 text-[10px] text-muted-foreground sm:inline",children:e("computer.pinchHint")})]}),Re=`flex shrink-0 items-center justify-center rounded-md hover:bg-surface-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary ${F?"min-h-11 min-w-11":"h-8 min-w-8"}`,bt=t.jsxs("div",{ref:rt,className:`flex min-h-0 flex-col bg-surface text-foreground ${X?"fixed inset-0 z-modal-panel h-dvh pb-[env(safe-area-inset-bottom)] pt-[env(safe-area-inset-top)]":"relative h-full"}`,role:X?"dialog":void 0,"aria-modal":X||void 0,"aria-label":e("computer.title"),onKeyDown:r=>{r.stopPropagation(),r.key==="Escape"&&!r.nativeEvent.isComposing&&L&&(r.preventDefault(),W(null))},onKeyUp:r=>r.stopPropagation(),children:[t.jsxs("div",{className:`relative z-30 flex shrink-0 items-center gap-2 border-b border-border bg-surface px-2 ${F?"min-h-12":"min-h-8"}`,children:[X&&t.jsx("button",{type:"button",className:Re,onClick:()=>{oe(!1),W(null)},"aria-label":e("computer.exitFullscreen"),children:t.jsx(Ut,{size:20})}),t.jsx(Kt,{size:16,className:"shrink-0 text-muted-foreground"}),t.jsx("span",{className:"min-w-0 flex-1 truncate text-xs font-medium",children:A&&(Ie||(E?i?.hostname||$e()?.serviceName:p))||e("computer.title")}),A&&t.jsx("span",{className:"text-[11px] text-primary",children:e("computer.connected")}),A&&b==="error"&&t.jsx("span",{role:"alert",className:"text-[11px] text-destructive",children:e("computer.loginSaveFailed")}),A&&f==="saving"&&t.jsx("span",{role:"status","aria-label":e("computer.settingsSaving"),title:e("computer.settingsSaving"),children:t.jsx(Ct,{size:12,className:"animate-spin text-muted-foreground"})}),A&&f==="error"&&t.jsxs("button",{type:"button",className:xe,title:e("computer.settingsSaveFailed"),"aria-label":e("computer.settingsSaveFailed"),onClick:k,children:["! ",e("computer.retry")]}),Z&&t.jsxs("button",{type:"button",className:`${Re} gap-1 px-1 text-xs`,onClick:pt,children:[t.jsx(kt,{size:14}),e("computer.cancel")]}),A&&!F&&L==="keyboard"&&t.jsx("button",{type:"button",className:Re,onClick:()=>_e("keyboard"),"aria-label":e("computer.keyboard"),"aria-pressed":se,children:t.jsx(Ge,{size:18})}),A&&!F&&t.jsx("button",{type:"button",className:`${Re} ${L==="clipboard"?"bg-surface-2 text-primary":""}`,disabled:w,onClick:()=>_e("clipboard"),"aria-label":e("computer.clipboardTool"),title:e("computer.clipboardTool"),"aria-pressed":L==="clipboard",children:t.jsx(jt,{size:18})}),A&&!X&&t.jsxs("button",{type:"button",className:`${Re} gap-1 px-1 text-xs`,onClick:()=>oe(!0),"aria-label":e("computer.fullscreen"),children:[t.jsx(Bt,{size:16}),e("computer.expand")]}),A&&t.jsx("button",{type:"button",className:Re,onClick:()=>_e("tools"),"aria-label":e("computer.tools"),"aria-expanded":L==="tools",children:t.jsx(Xt,{size:18})})]}),!Ke&&t.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-4 sm:p-6",children:t.jsxs("div",{className:"mx-auto w-full max-w-md",children:[t.jsxs("form",{className:"space-y-3",onSubmit:r=>{mt(r)},children:[t.jsxs("div",{className:"grid grid-cols-2 gap-1 rounded-lg bg-background p-1",role:"group","aria-label":e("computer.target"),children:[t.jsx("button",{type:"button",className:`min-h-11 rounded-md px-3 text-sm font-medium ${E?"bg-surface-2 text-foreground":"text-muted-foreground hover:bg-surface"}`,"aria-pressed":E,disabled:Z||!i||!g,onClick:()=>dt(!0),children:e("computer.thisComputer")}),t.jsx("button",{type:"button",className:`min-h-11 rounded-md px-3 text-sm font-medium ${E?"text-muted-foreground hover:bg-surface":"bg-surface-2 text-foreground"}`,"aria-pressed":!E,disabled:Z||!g,onClick:()=>dt(!1),children:e("computer.otherComputer")})]}),E?t.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",role:"status",children:i?e("computer.localService",{name:$e()?.serviceName||i.hostname}):e("computer.loading")}):t.jsxs("label",{className:"block space-y-1 text-xs",children:[t.jsx("span",{children:e("computer.host")}),t.jsx("input",{className:be,value:p,disabled:Z||!g,onChange:r=>{K({host:r.target.value,domain:"",ignoreCert:!1}),Q(""),pe(null)},placeholder:e("computer.hostPlaceholder"),onBlur:()=>{x()},autoCapitalize:"none",autoCorrect:"off",spellCheck:!1,required:!0,maxLength:253})]}),t.jsxs("p",{className:"text-xs text-muted-foreground",children:[j==="mac"?"macOS":j==="linux"?"Ubuntu / Linux":"Windows"," · ",N.toUpperCase()," · ",N==="rdp"?_||"3389":"5900",w?` · ${e("computer.viewOnly")}`:""]}),t.jsxs("label",{className:"block space-y-1 text-xs",children:[t.jsx("span",{children:e(N==="rdp"?"computer.rdpUsername":"computer.username")}),t.jsx("input",{className:be,value:T,disabled:!g,onChange:r=>J(r.target.value),onBlur:()=>{x()},autoCapitalize:"none",autoCorrect:"off",autoComplete:"off",required:N==="rdp"||U==="credentials"&&Mt,maxLength:255})]}),t.jsxs("label",{className:"block space-y-1 text-xs",children:[t.jsx("span",{children:e("computer.password")}),t.jsx("input",{className:be,type:"password",value:re,disabled:!g,onChange:r=>Q(r.target.value),placeholder:I&&U!=="credentials"?e("computer.savedPassword"):void 0,autoComplete:"new-password",required:!I||U==="credentials",maxLength:1024})]}),t.jsx("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:e(N==="rdp"?"computer.rdpLoginHint":"computer.vncLoginHint")}),t.jsxs("div",{className:"flex min-h-11 items-center justify-between gap-2 text-xs",children:[t.jsxs("label",{className:"flex min-h-11 items-center gap-2",children:[t.jsx("input",{type:"checkbox",checked:h.rememberLogin,disabled:Z||!g||b==="saving",onChange:r=>{const m=r.target.checked;K({rememberLogin:m}),!m&&I?P("forget",{...h,rememberLogin:m}).catch(()=>{}):x()}}),e("computer.rememberLogin")]}),I&&t.jsx("button",{type:"button",className:"min-h-11 text-muted-foreground underline",disabled:Z||b==="saving",onClick:ht,children:e("computer.forgetLogin")})]}),b==="error"&&!de&&t.jsx("p",{role:"alert",className:"text-xs text-destructive",children:e("computer.loginSaveFailed")}),R&&t.jsxs("div",{role:"status",className:"space-y-1 text-xs leading-relaxed text-muted-foreground",children:[t.jsx("p",{children:e("computer.rdpBackendUnavailable")}),t.jsx("p",{children:e("computer.rdpBackendRecovery")})]}),U==="credentials"&&t.jsx("p",{className:"text-xs text-primary",children:e("computer.credentials")}),de&&t.jsxs("div",{role:"alert",className:"rounded-md bg-surface-2 p-3 text-xs leading-relaxed text-destructive",children:[e(de),de==="computer.rdpCertificate"&&t.jsxs("label",{className:"mt-1 flex min-h-11 items-center gap-2 text-foreground",children:[t.jsx("input",{type:"checkbox",checked:S,onChange:r=>we(r.target.checked)}),e("computer.trustCertificateHere")]}),U==="error"&&de!=="computer.rdpCertificate"&&t.jsx("button",{type:"button",className:"mt-1 block min-h-9 text-foreground underline",onClick:()=>{Pe(!0),requestAnimationFrame(()=>lt.current?.scrollIntoView?.({block:"nearest",behavior:"smooth"}))},children:e("computer.checkSettings")})]}),t.jsx("button",{type:"submit",className:"inline-flex min-h-11 w-full items-center justify-center gap-2 rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground disabled:opacity-40",disabled:!g||R||b==="saving"||E&&!i||!p.trim()||!re&&(!I||U==="credentials")||N==="rdp"&&(!T.trim()||!Number.isInteger(Number(_))||Number(_)<1||Number(_)>65535),children:e(U==="credentials"?"computer.authenticate":U==="error"?"computer.retryConnect":"computer.connect")}),t.jsxs("details",{ref:lt,className:"border-b border-border text-xs",open:Ce,onToggle:r=>Pe(r.currentTarget.open),children:[t.jsxs("summary",{className:"flex min-h-11 cursor-pointer list-none items-center justify-between text-muted-foreground",children:[t.jsx("span",{children:e("computer.advanced")}),t.jsx("span",{"aria-hidden":"true",children:Ce?"−":"+"})]}),t.jsxs("div",{className:"space-y-3 pb-4",children:[t.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[t.jsxs("label",{className:"block space-y-1",children:[t.jsx("span",{children:e("computer.platform")}),t.jsxs("select",{className:be,value:j,disabled:Z||!g,onChange:r=>{er(r.target.value)&&K({platform:r.target.value,protocol:r.target.value==="mac"?"vnc":"rdp",ignoreCert:!1}),Q(""),x()},children:[t.jsx("option",{value:"mac",children:"macOS"}),t.jsx("option",{value:"linux",children:"Ubuntu / Linux"}),t.jsx("option",{value:"windows",children:"Windows"})]})]}),t.jsxs("label",{className:"block space-y-1",children:[t.jsx("span",{children:e("computer.protocol")}),t.jsxs("select",{className:be,value:N,disabled:Z||!g,onChange:r=>{K({protocol:r.target.value==="rdp"?"rdp":"vnc"}),Q(""),pe(null),x()},children:[t.jsx("option",{value:"rdp",children:"RDP"}),t.jsx("option",{value:"vnc",children:"VNC"})]})]})]}),N==="rdp"&&t.jsxs(t.Fragment,{children:[t.jsxs("label",{className:"block space-y-1",children:[t.jsx("span",{children:e("computer.port")}),t.jsx("input",{className:be,type:"number",min:1,max:65535,step:1,value:_,disabled:Z||!g,onBlur:()=>{x()},onChange:r=>ne(r.target.value)})]}),t.jsxs("label",{className:"block space-y-1",children:[t.jsx("span",{children:e("computer.domain")}),t.jsx("input",{className:be,value:Y,disabled:Z||!g,onBlur:()=>{x()},onChange:r=>ee(r.target.value),autoComplete:"off",maxLength:255})]}),t.jsxs("label",{className:"flex min-h-11 items-center gap-2",children:[t.jsx("input",{type:"checkbox",checked:S,disabled:Z||!g,onChange:r=>we(r.target.checked)}),e("computer.trustCertificate")]})]}),t.jsxs("label",{className:"flex min-h-11 items-center gap-2",children:[t.jsx("input",{type:"checkbox",checked:w,disabled:Z||!g,onChange:r=>Me(r.target.checked)}),e("computer.viewOnly")]}),t.jsxs("label",{className:"flex min-h-11 items-center gap-2",children:[t.jsx("input",{type:"checkbox",checked:u.autoConnect,disabled:Z||!g,onChange:r=>{l(m=>({...m,autoConnect:r.target.checked})),x()}}),e("computer.autoConnect")]})]})]})]}),t.jsxs("p",{role:"status",className:"mt-2 text-[11px] leading-relaxed text-muted-foreground",children:[e(f==="saved"?"computer.settingsSaved":f==="error"?g?"computer.settingsSaveFailed":"computer.settingsLoadFailed":f==="loading"?"computer.settingsLoading":"computer.settingsSaving"),f==="error"&&t.jsx("button",{type:"button",className:"ml-2 min-h-9 text-primary underline",onClick:k,children:e("computer.retry")})]}),t.jsxs("details",{className:"text-xs",children:[t.jsx("summary",{className:"flex min-h-11 cursor-pointer items-center text-muted-foreground",children:e("computer.setup")}),t.jsxs("ol",{className:"ml-4 list-decimal space-y-2 pt-2 leading-relaxed text-muted-foreground",children:[t.jsx("li",{children:e(N==="rdp"?j==="linux"?"computer.rdpLinuxStep1":"computer.rdpStep1":j==="mac"?"computer.step1":j==="linux"?"computer.linuxStep1":"computer.windowsStep1")}),t.jsx("li",{children:e(N==="rdp"?"computer.rdpStep2":j==="mac"?"computer.step2":j==="linux"?"computer.linuxStep2":"computer.windowsStep2")}),t.jsx("li",{children:e("computer.step3")})]}),N==="vnc"&&j==="linux"&&t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"mt-3 leading-relaxed text-muted-foreground",children:e("computer.linuxCommandHint")}),t.jsx("pre",{className:"mt-2 overflow-x-auto rounded-md bg-background p-2 text-[11px]",children:t.jsx("code",{children:`sudo apt install x11vnc
|
|
5
|
-
x11vnc -storepasswd
|
|
6
|
-
x11vnc -display "$DISPLAY" -auth guess -localhost -usepw -forever -shared -rfbport 5900`})}),t.jsx("p",{className:"mt-2 leading-relaxed text-muted-foreground",children:e("computer.linuxProtocolHint")})]}),t.jsx("p",{className:"mt-3 leading-relaxed text-muted-foreground",children:e(N==="rdp"?"computer.rdpNetworkHint":"computer.networkHint")})]})]})}),A&&L==="tools"&&t.jsx("button",{type:"button",className:`absolute inset-x-0 ${F?"bottom-14 top-12":"bottom-0 top-8"} z-20 bg-background/40`,"aria-label":e("computer.returnToDesktop"),onClick:()=>W(null)}),A&&t.jsxs("div",{hidden:L!=="tools",className:`${L==="tools"?"flex":"hidden"} absolute inset-x-3 ${F?"top-14":"top-10"} z-30 max-h-[calc(100%-7rem)] flex-wrap items-center gap-3 overflow-y-auto rounded-lg border border-border bg-surface px-4 py-3 text-xs shadow-lg [&_button]:min-h-11 [&_select]:min-h-11 [&_label]:min-h-11`,role:"region","aria-label":e("computer.tools"),children:[t.jsxs("div",{className:"flex w-full items-center justify-between",children:[t.jsx("span",{className:"font-medium",children:e("computer.tools")}),t.jsx("button",{type:"button",className:"flex min-w-11 items-center justify-center","aria-label":e("computer.closeTools"),onClick:()=>W(null),children:t.jsx($t,{size:18})})]}),F&&t.jsx("div",{className:"flex w-full items-center gap-2",children:t.jsx("div",{className:"inline-flex rounded-md bg-background p-0.5",role:"group","aria-label":e("computer.touchMode"),children:["trackpad","direct"].map(r=>t.jsx("button",{type:"button",className:`min-h-9 rounded px-3 text-xs ${me===r?"bg-surface-2 text-foreground":"text-muted-foreground hover:bg-surface"}`,"aria-pressed":me===r,onClick:()=>ft(r),children:e(r==="trackpad"?"computer.trackpadMode":"computer.directTouchMode")},r))})}),!F&&t.jsxs(t.Fragment,{children:[xt,t.jsxs("button",{type:"button",className:xe,disabled:w,onClick:()=>_e("keyboard"),children:[t.jsx(Ge,{size:14}),e("computer.keyboard")]})]}),t.jsxs("label",{className:"flex min-h-9 items-center gap-1.5",children:[t.jsx("input",{type:"checkbox",checked:w,onChange:r=>Me(r.target.checked)}),e("computer.viewOnly")]}),t.jsx("button",{type:"button",className:xe,onClick:()=>{ce.current?.set(1),l(r=>({...r,fit:!r.fit})),x()},children:e(V?"computer.actualSize":"computer.fit")}),t.jsxs("select",{className:`${xe} min-w-0 bg-surface`,"aria-label":e("computer.shortcuts"),value:"",disabled:w,onChange:r=>{ge(q[r.target.value]??[])},children:[t.jsx("option",{value:"",disabled:!0,children:e("computer.shortcuts")}),t.jsxs("option",{value:"tab",children:[j==="mac"?"⌘ Tab":"Alt+Tab"," · ",e("computer.switchApps")]}),t.jsxs("option",{value:"search",children:[j==="mac"?"⌘ Space":"Super / Win"," · ",e(j==="mac"?"computer.spotlight":"computer.systemSearch")]}),t.jsx("option",{value:"copy",children:j==="mac"?"⌘C":"Ctrl+C"}),t.jsx("option",{value:"paste",children:ke}),t.jsx("option",{value:"escape",children:"Esc"}),t.jsx("option",{value:"enter",children:"Enter"}),t.jsx("option",{value:"backspace",children:"⌫"}),t.jsx("option",{value:"up",children:"↑"}),t.jsx("option",{value:"down",children:"↓"}),t.jsx("option",{value:"left",children:"←"}),t.jsx("option",{value:"right",children:"→"})]}),t.jsxs("div",{className:"flex w-full items-center justify-between border-t border-border pt-2",children:[I&&t.jsx("button",{type:"button",className:xe,disabled:b==="saving",onClick:ht,children:e("computer.forgetLogin")}),t.jsxs("button",{type:"button",className:`${xe} ml-auto text-destructive`,onClick:pt,children:[t.jsx(kt,{size:14}),e("computer.disconnect")]})]})]}),t.jsxs("div",{ref:Fe,"data-sidebar-gesture-ignore":"",className:`relative z-10 min-h-0 flex-1 overflow-hidden bg-[var(--chrome-bg)] ${Ke?"":"hidden"}`,onMouseDownCapture:r=>{L==="keyboard"&&r.preventDefault()},style:{touchAction:A?"none":void 0},"aria-label":e("computer.remoteTitle"),children:[!A&&Ke&&t.jsxs("div",{role:"status",className:"absolute inset-0 z-20 flex items-center justify-center gap-2 bg-surface text-xs text-muted-foreground",children:[t.jsx(Ct,{size:16,className:"animate-spin"}),e("computer.connecting")]}),A&&t.jsx("div",{ref:st,hidden:!0,"aria-hidden":"true",className:"pointer-events-none absolute left-0 top-0 z-20 h-5 w-5 will-change-transform"})]}),t.jsx("div",{hidden:L!=="tools",children:A&&F&&!w&&t.jsx("p",{className:"shrink-0 border-t border-border px-2 py-1 text-[10px] leading-relaxed text-muted-foreground",children:e(me==="trackpad"?"computer.trackpadHint":"computer.directTouchHint")})}),A&&L==="keyboard"&&!w&&t.jsxs(t.Fragment,{children:[t.jsx(pr,{sendChord:ge,commandKey:q.copy[0],inputRef:o,onFocusChange:C,sendText:gt,sendKey:r=>ge(r==="tab"?[[65289,"Tab"]]:r==="delete"?[[65535,"Delete"]]:q[r])}),t.jsx("div",{className:"grid shrink-0 grid-cols-6 gap-1 bg-surface px-1",role:"group","aria-label":e("computer.keyboardNavigation"),children:["escape","left","down","up","right","selectAll"].map(r=>t.jsx("button",{type:"button",className:"min-h-11 rounded-md text-sm hover:bg-surface-2","aria-label":e(`computer.key${r[0].toUpperCase()}${r.slice(1)}`),onPointerDown:m=>m.preventDefault(),onClick:()=>ge(r==="selectAll"?[...q.copy.slice(0,1),[97,"KeyA"]]:q[r]),children:{escape:"Esc",left:"←",down:"↓",up:"↑",right:"→",selectAll:j==="mac"?"⌘A":"Ctrl+A"}[r]},r))})]}),A&&L==="clipboard"&&!w&&t.jsxs("form",{className:"shrink-0 space-y-2 border-t border-border p-3",onSubmit:r=>{if(r.preventDefault(),!(!Ee||!O.current))try{O.current.clipboardPasteFrom(Ee),Ne(!0),ie(!1)}catch{ie(!0)}},children:[t.jsx("textarea",{className:`${be} min-w-0 resize-none py-2 text-base`,rows:2,"aria-label":e("computer.clipboard"),placeholder:e("computer.clipboardPlaceholder"),value:Ee,onChange:r=>{nt(r.target.value),Ne(!1)},maxLength:et}),t.jsxs("div",{className:"flex gap-2",children:[t.jsx("button",{type:"submit",className:`${xe} min-h-11 flex-1`,disabled:!Ee,children:e("computer.clipboard")}),t.jsx("button",{type:"button",className:`${xe} min-h-11`,onClick:()=>{try{Ee&&O.current?.clipboardPasteFrom(Ee),ge(q.paste),ie(!1),Ne(!!Ee)}catch{ie(!0)}},children:ke})]}),t.jsx("p",{role:"status",className:"text-[10px] leading-relaxed text-muted-foreground",children:At?e("computer.clipboardSent"):e("computer.clipboardHint",{shortcut:ke})}),He!==null&&t.jsxs("div",{className:"space-y-1",children:[t.jsx("textarea",{className:`${be} resize-none py-2 text-base`,rows:2,readOnly:!0,value:He,"aria-label":e("computer.remoteClipboard"),onFocus:r=>r.currentTarget.select()}),t.jsx("button",{type:"button",className:xe,onClick:()=>{if(!navigator.clipboard?.writeText){ie(!0);return}navigator.clipboard.writeText(He).then(()=>{Ye(!0),ie(!1)},()=>ie(!0))},children:e(Rt?"computer.clipboardCopied":"computer.copyToDevice")})]}),_t&&t.jsx("p",{role:"alert",className:"text-xs text-destructive",children:e("computer.clipboardAccessFailed")}),de&&t.jsx("p",{role:"alert",className:"text-xs text-destructive",children:e(de)})]}),Ke&&F&&t.jsxs("div",{className:"relative z-30 flex shrink-0 items-center border-t border-border bg-surface px-1 py-1 text-[11px]",children:[t.jsxs("div",{className:`grid min-w-0 flex-1 ${L==="keyboard"?"grid-cols-5":"grid-cols-3"}`,children:[t.jsxs("button",{type:"button",className:`flex min-h-11 flex-col items-center justify-center gap-0.5 rounded-md ${se?"bg-surface-2 text-primary":""}`,disabled:!A||w,onClick:()=>_e("keyboard"),"aria-pressed":se,children:[t.jsx(Ge,{size:18}),e("computer.keyboard")]}),t.jsxs("button",{type:"button",className:`flex min-h-11 flex-col items-center justify-center gap-0.5 rounded-md ${L==="clipboard"?"bg-surface-2 text-primary":""}`,disabled:!A||w,onClick:()=>_e("clipboard"),"aria-pressed":L==="clipboard",children:[t.jsx(jt,{size:18}),e("computer.clipboardTool")]}),L==="keyboard"?t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",className:"min-h-11 rounded-md text-sm",onPointerDown:r=>r.preventDefault(),onClick:()=>ge([[65289,"Tab"]]),children:"Tab"}),t.jsx("button",{type:"button",className:"min-h-11 rounded-md text-lg",onPointerDown:r=>r.preventDefault(),onClick:()=>ge(q.backspace),children:"⌫"}),t.jsx("button",{type:"button",className:"min-h-11 rounded-md text-lg",onPointerDown:r=>r.preventDefault(),onClick:()=>ge(q.enter),children:"↵"})]}):t.jsx(t.Fragment,{children:t.jsxs("button",{type:"button",className:"flex min-h-11 flex-col items-center justify-center gap-0.5 rounded-md",disabled:!A||w,onClick:()=>ft(me==="trackpad"?"direct":"trackpad"),"aria-label":e("computer.switchTouchMode"),children:[t.jsx(Ht,{size:18}),e(me==="trackpad"?"computer.trackpadMode":"computer.directTouchMode")]})})]}),xt]})]});return X?Ze.createPortal(bt,document.body):bt}const Nr=Object.freeze(Object.defineProperty({__proto__:null,default:vr},Symbol.toStringTag,{value:"Module"}));export{et as C,Nr as a,xr as b,ur as c};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as a,C as n}from"./mermaid.core-BpDQIw7m.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as t,C as e}from"./chunk-TICWLB2K-CMxjLRcv.js";import{d as i}from"./mermaid.core-BpDQIw7m.js";import"./chunk-5VM5RSS4-mKa-FMDa.js";import"./chunk-XXDRQBXY-DCIQ1i4z.js";import"./chunk-POPQ4Y6H-BkWYxDSy.js";import"./chunk-F27PBJKO-BW5JuQIW.js";import"./purify.es-4eNOHKSq.js";import"./app-DNnVU3VK.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as t,C as e}from"./chunk-TICWLB2K-CMxjLRcv.js";import{d as i}from"./mermaid.core-BpDQIw7m.js";import"./chunk-5VM5RSS4-mKa-FMDa.js";import"./chunk-XXDRQBXY-DCIQ1i4z.js";import"./chunk-POPQ4Y6H-BkWYxDSy.js";import"./chunk-F27PBJKO-BW5JuQIW.js";import"./purify.es-4eNOHKSq.js";import"./app-DNnVU3VK.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|