termdock 1.4.255 → 1.4.257
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-CwWgEo9j.js +155 -0
- package/dist/client/assets/App-CwWgEo9j.js.br +0 -0
- package/dist/client/assets/App-CwWgEo9j.js.gz +0 -0
- package/dist/client/assets/{ChangeWalkthroughPanel-DJkbghZv.js → ChangeWalkthroughPanel-BNMCyZ2j.js} +1 -1
- package/dist/client/assets/ChangeWalkthroughPanel-BNMCyZ2j.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-BNMCyZ2j.js.gz +0 -0
- package/dist/client/assets/{DagPlayground-D7jKADVh.js → DagPlayground-DEIqaloP.js} +1 -1
- package/dist/client/assets/DagPlayground-DEIqaloP.js.br +0 -0
- package/dist/client/assets/DagPlayground-DEIqaloP.js.gz +0 -0
- package/dist/client/assets/{DiffLab-DO9GlXnk.js → DiffLab-XU3PGwhq.js} +1 -1
- package/dist/client/assets/DiffLab-XU3PGwhq.js.br +0 -0
- package/dist/client/assets/DiffLab-XU3PGwhq.js.gz +0 -0
- package/dist/client/assets/{DiffReview-DEXctUC6.js → DiffReview-BojIk7PD.js} +1 -1
- package/dist/client/assets/DiffReview-BojIk7PD.js.br +0 -0
- package/dist/client/assets/DiffReview-BojIk7PD.js.gz +0 -0
- package/dist/client/assets/{DiffReviewLab-Ly6yxJmM.js → DiffReviewLab-DLVSpFcA.js} +1 -1
- package/dist/client/assets/DiffReviewLab-DLVSpFcA.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-DLVSpFcA.js.gz +0 -0
- package/dist/client/assets/{DiffViewer-BPlz1EKX.js → DiffViewer-BSL3FmLZ.js} +1 -1
- package/dist/client/assets/DiffViewer-BSL3FmLZ.js.br +0 -0
- package/dist/client/assets/DiffViewer-BSL3FmLZ.js.gz +0 -0
- package/dist/client/assets/{ModelPreview-jn0vZDsm.js → ModelPreview-TaNUSCtI.js} +1 -1
- package/dist/client/assets/ModelPreview-TaNUSCtI.js.br +0 -0
- package/dist/client/assets/ModelPreview-TaNUSCtI.js.gz +0 -0
- package/dist/client/assets/{RightSidebar-Dv5QyBwQ.js → RightSidebar-zfxf10jV.js} +5 -5
- package/dist/client/assets/RightSidebar-zfxf10jV.js.br +0 -0
- package/dist/client/assets/RightSidebar-zfxf10jV.js.gz +0 -0
- package/dist/client/assets/{abnfDiagram-VCTEODGH-Bv96bwkp.js → abnfDiagram-VCTEODGH-B-Cra1MS.js} +1 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-B-Cra1MS.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-B-Cra1MS.js.gz +0 -0
- package/dist/client/assets/{app-DyKSx7Mz.js → app-CAES0OPd.js} +4 -4
- package/dist/client/assets/app-CAES0OPd.js.br +0 -0
- package/dist/client/assets/app-CAES0OPd.js.gz +0 -0
- package/dist/client/assets/{arc-Bdutazby.js → arc-C-urJgU0.js} +1 -1
- package/dist/client/assets/arc-C-urJgU0.js.br +0 -0
- package/dist/client/assets/arc-C-urJgU0.js.gz +0 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-C5Lutsn8.js → architectureDiagram-5GKGNRK7-DST5hBrR.js} +1 -1
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DST5hBrR.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DST5hBrR.js.gz +0 -0
- package/dist/client/assets/{blockDiagram-I7D4REHJ-DoTWrGLo.js → blockDiagram-I7D4REHJ-CIA32VBY.js} +1 -1
- package/dist/client/assets/blockDiagram-I7D4REHJ-CIA32VBY.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-CIA32VBY.js.gz +0 -0
- package/dist/client/assets/{c4Diagram-7LVT6UL2-ZRiB7mhU.js → c4Diagram-7LVT6UL2-DRqK94Wl.js} +1 -1
- package/dist/client/assets/c4Diagram-7LVT6UL2-DRqK94Wl.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-DRqK94Wl.js.gz +0 -0
- package/dist/client/assets/channel-B49Zm1Ov.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B-DhNBZb2u.js → chunk-2Q5K7J3B-t2PYNYke.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-BHZFuxQW.js → chunk-5VM5RSS4-C30D0U3i.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-CMIphDpA.js → chunk-F27PBJKO-kC0ISEfi.js} +1 -1
- package/dist/client/assets/chunk-F27PBJKO-kC0ISEfi.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-kC0ISEfi.js.gz +0 -0
- package/dist/client/assets/{chunk-IMKFNOWR-BDe7e8jA.js → chunk-IMKFNOWR-D8ucGe1R.js} +1 -1
- package/dist/client/assets/chunk-IMKFNOWR-D8ucGe1R.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-D8ucGe1R.js.gz +0 -0
- package/dist/client/assets/{chunk-JWPE2WC7-OPwpFYFs.js → chunk-JWPE2WC7-Dvn7wcLE.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-Bgn6X4is.js → chunk-POPQ4Y6H-DqnJgCc5.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-CndFuFdB.js → chunk-SVP7TREG-CU4LcBJc.js} +1 -1
- package/dist/client/assets/chunk-SVP7TREG-CU4LcBJc.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-CU4LcBJc.js.gz +0 -0
- package/dist/client/assets/{chunk-TICWLB2K-CcTAB1T8.js → chunk-TICWLB2K-P6NXaMX6.js} +1 -1
- package/dist/client/assets/chunk-TICWLB2K-P6NXaMX6.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-P6NXaMX6.js.gz +0 -0
- package/dist/client/assets/{chunk-XXDRQBXY-cRFuDAoI.js → chunk-XXDRQBXY-CKUyjRKO.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-CdF2UjFA.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-CdF2UjFA.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-CtkHODw6.js → cose-bilkent-JH36ORCC-CIWwdvtI.js} +1 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-CIWwdvtI.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-CIWwdvtI.js.gz +0 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-xjPGDvew.js → cynefin-OW5HDTMX-DuulnX-l.js} +1 -1
- package/dist/client/assets/cynefin-OW5HDTMX-DuulnX-l.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-DuulnX-l.js.gz +0 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-D0gENXW-.js → cynefinDiagram-5FMLGOSQ-D_ySd36i.js} +1 -1
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-D_ySd36i.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-D_ySd36i.js.gz +0 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-DrpJ83DN.js → dagre-GXQ25YYZ-DPFB1zud.js} +1 -1
- package/dist/client/assets/dagre-GXQ25YYZ-DPFB1zud.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-DPFB1zud.js.gz +0 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-CjcQn0kl.js → diagram-S7CK7UJ4-DZJcWZuw.js} +1 -1
- package/dist/client/assets/diagram-S7CK7UJ4-DZJcWZuw.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-DZJcWZuw.js.gz +0 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-hvQHUxqm.js → diagram-UQ7AKVKN-CNf_9IK6.js} +1 -1
- package/dist/client/assets/diagram-UQ7AKVKN-CNf_9IK6.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-CNf_9IK6.js.gz +0 -0
- package/dist/client/assets/{diagram-VSXAHHWV-BrTUApG2.js → diagram-VSXAHHWV-CbJhanMg.js} +1 -1
- package/dist/client/assets/diagram-VSXAHHWV-CbJhanMg.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-CbJhanMg.js.gz +0 -0
- package/dist/client/assets/{diagram-VX7I27RA-DmnmEkUV.js → diagram-VX7I27RA-CLx5-CXA.js} +1 -1
- package/dist/client/assets/diagram-VX7I27RA-CLx5-CXA.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-CLx5-CXA.js.gz +0 -0
- package/dist/client/assets/{diagram-Z3DM3KII-C3snQW6_.js → diagram-Z3DM3KII-CExftZHw.js} +1 -1
- package/dist/client/assets/diagram-Z3DM3KII-CExftZHw.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-CExftZHw.js.gz +0 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-CFx5y6O_.js → ebnfDiagram-PWID7BFC-D46Hoy6r.js} +1 -1
- package/dist/client/assets/ebnfDiagram-PWID7BFC-D46Hoy6r.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-D46Hoy6r.js.gz +0 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-CEO1mGX9.js → erDiagram-RLTQ6QDP-B9WJaEDP.js} +1 -1
- package/dist/client/assets/{erDiagram-RLTQ6QDP-CEO1mGX9.js.br → erDiagram-RLTQ6QDP-B9WJaEDP.js.br} +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-B9WJaEDP.js.gz +0 -0
- package/dist/client/assets/{flowDiagram-HODETNUW-DczILCSj.js → flowDiagram-HODETNUW-Cy8OlgPY.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-Cy8OlgPY.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-Cy8OlgPY.js.gz +0 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-CWfbOBx-.js → ganttDiagram-EL5Y4UJY-BkuonYYG.js} +1 -1
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-BkuonYYG.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-BkuonYYG.js.gz +0 -0
- package/dist/client/assets/{gestureArbiter-DtC8HeYn.js → gestureArbiter-CmxrY1dV.js} +1 -1
- package/dist/client/assets/gestureArbiter-CmxrY1dV.js.br +0 -0
- package/dist/client/assets/gestureArbiter-CmxrY1dV.js.gz +0 -0
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-CJaquhnL.js → gitGraphDiagram-WWUBYQGX-uXYG8nER.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-uXYG8nER.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-uXYG8nER.js.gz +0 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-BrpNYnlX.js → infoDiagram-27XIBGKW-Dm7bgZtB.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-BeUcPryy.js → ishikawaDiagram-5VMMS53U-D6nF0qot.js} +1 -1
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-D6nF0qot.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-D6nF0qot.js.gz +0 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-DrkmI2C_.js → journeyDiagram-3NMN7TZE-DO1bRqj_.js} +1 -1
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DO1bRqj_.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DO1bRqj_.js.gz +0 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-DUYKiPom.js → kanban-definition-UXKFOSKX-nlNMPB5K.js} +1 -1
- package/dist/client/assets/kanban-definition-UXKFOSKX-nlNMPB5K.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-nlNMPB5K.js.gz +0 -0
- package/dist/client/assets/{layout-XWY2OfU8.js → layout-XtyZff44.js} +1 -1
- package/dist/client/assets/layout-XtyZff44.js.br +0 -0
- package/dist/client/assets/layout-XtyZff44.js.gz +0 -0
- package/dist/client/assets/{linear-CKK22C_V.js → linear-Cl2w_4bS.js} +1 -1
- package/dist/client/assets/linear-Cl2w_4bS.js.br +0 -0
- package/dist/client/assets/linear-Cl2w_4bS.js.gz +0 -0
- package/dist/client/assets/{mermaid.core-VzkSqOKz.js → mermaid.core-BiCQSET3.js} +5 -5
- package/dist/client/assets/mermaid.core-BiCQSET3.js.br +0 -0
- package/dist/client/assets/mermaid.core-BiCQSET3.js.gz +0 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-D0g720Ty.js → mindmap-definition-YA3MSWOX-BnF1yaPM.js} +1 -1
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BnF1yaPM.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BnF1yaPM.js.gz +0 -0
- package/dist/client/assets/{passwordBootstrap-BaRrnJWI.js → passwordBootstrap-BvszNW4y.js} +1 -1
- package/dist/client/assets/{passwordBootstrap-BaRrnJWI.js.br → passwordBootstrap-BvszNW4y.js.br} +0 -0
- package/dist/client/assets/passwordBootstrap-BvszNW4y.js.gz +0 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-F-tmYn5J.js → pegDiagram-XKGWAZYB-DzU2miqF.js} +1 -1
- package/dist/client/assets/pegDiagram-XKGWAZYB-DzU2miqF.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-DzU2miqF.js.gz +0 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-w551-rUm.js → pieDiagram-E7YTZNPT-DI5NUc5a.js} +1 -1
- package/dist/client/assets/pieDiagram-E7YTZNPT-DI5NUc5a.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-DI5NUc5a.js.gz +0 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-CCEGbNxI.js → quadrantDiagram-AXDQQJYC-DojuK7Vr.js} +1 -1
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-DojuK7Vr.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-DojuK7Vr.js.gz +0 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-obfo4yCA.js → railroadDiagram-O6MQD6OU-Ck1Pkc5Y.js} +1 -1
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Ck1Pkc5Y.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Ck1Pkc5Y.js.gz +0 -0
- package/dist/client/assets/{referenceLongPress-BZpZjDWj.js → referenceLongPress-DC5qCf3R.js} +1 -1
- package/dist/client/assets/referenceLongPress-DC5qCf3R.js.br +0 -0
- package/dist/client/assets/referenceLongPress-DC5qCf3R.js.gz +0 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-DGxq6_tu.js → requirementDiagram-BXWQKSXE-CmWms243.js} +1 -1
- package/dist/client/assets/requirementDiagram-BXWQKSXE-CmWms243.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-CmWms243.js.gz +0 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-a4XciJtk.js → sankeyDiagram-P5KCCOFB-BQSXyXlf.js} +1 -1
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-BQSXyXlf.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-BQSXyXlf.js.gz +0 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-d868a5nP.js → sequenceDiagram-WJ2MYXX4-CkLTKRKf.js} +1 -1
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-CkLTKRKf.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-CkLTKRKf.js.gz +0 -0
- package/dist/client/assets/{sizeCapture-INFHLROL-DfDcxTH5.js → sizeCapture-INFHLROL-V7ZPdCua.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-V7ZPdCua.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-V7ZPdCua.js.gz +0 -0
- package/dist/client/assets/{sparkles-B-rI69hg.js → sparkles-BY96ZX6O.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-_rlkjaFb.js → stateDiagram-D77RDMKH-6z5cumyD.js} +1 -1
- package/dist/client/assets/stateDiagram-D77RDMKH-6z5cumyD.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-6z5cumyD.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-Cs-khxNl.js +1 -0
- package/dist/client/assets/{swimlanes-42K2YHIH-DoDpL828.js → swimlanes-42K2YHIH-D0Nmhc7i.js} +1 -1
- package/dist/client/assets/swimlanes-42K2YHIH-D0Nmhc7i.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-D0Nmhc7i.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-MlOn2GGD.js +8 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-DrYLDIfs.js → timeline-definition-24CTP7MA-DQPv0LoZ.js} +1 -1
- package/dist/client/assets/timeline-definition-24CTP7MA-DQPv0LoZ.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-DQPv0LoZ.js.gz +0 -0
- package/dist/client/assets/{triangle-alert-CyykxOx-.js → triangle-alert-iWMj3uGu.js} +1 -1
- package/dist/client/assets/{vennDiagram-4TSXK5OY-Ch97JoeR.js → vennDiagram-4TSXK5OY-Beyf8qNU.js} +1 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-Beyf8qNU.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-Beyf8qNU.js.gz +0 -0
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-DoXfEj4Q.js → wardleyDiagram-VM6X3IG4-CpewbpfT.js} +1 -1
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-CpewbpfT.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-CpewbpfT.js.gz +0 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-DaavXfGD.js → xychartDiagram-S5SC5T6Z-DYddmyk2.js} +1 -1
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DYddmyk2.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DYddmyk2.js.gz +0 -0
- package/dist/client/index.html +1 -1
- 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/terminal.js +5 -1
- package/dist/server/utils/settings.js +9 -0
- package/package.json +1 -1
- package/runtime-manifest.json +3 -3
- package/dist/client/assets/App-By5NgCF9.js +0 -155
- package/dist/client/assets/App-By5NgCF9.js.br +0 -0
- package/dist/client/assets/App-By5NgCF9.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-DJkbghZv.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-DJkbghZv.js.gz +0 -0
- package/dist/client/assets/DagPlayground-D7jKADVh.js.br +0 -0
- package/dist/client/assets/DagPlayground-D7jKADVh.js.gz +0 -0
- package/dist/client/assets/DiffLab-DO9GlXnk.js.br +0 -0
- package/dist/client/assets/DiffLab-DO9GlXnk.js.gz +0 -0
- package/dist/client/assets/DiffReview-DEXctUC6.js.br +0 -0
- package/dist/client/assets/DiffReview-DEXctUC6.js.gz +0 -0
- package/dist/client/assets/DiffReviewLab-Ly6yxJmM.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-Ly6yxJmM.js.gz +0 -0
- package/dist/client/assets/DiffViewer-BPlz1EKX.js.br +0 -0
- package/dist/client/assets/DiffViewer-BPlz1EKX.js.gz +0 -0
- package/dist/client/assets/ModelPreview-jn0vZDsm.js.br +0 -0
- package/dist/client/assets/ModelPreview-jn0vZDsm.js.gz +0 -0
- package/dist/client/assets/RightSidebar-Dv5QyBwQ.js.br +0 -0
- package/dist/client/assets/RightSidebar-Dv5QyBwQ.js.gz +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-Bv96bwkp.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-Bv96bwkp.js.gz +0 -0
- package/dist/client/assets/app-DyKSx7Mz.js.br +0 -0
- package/dist/client/assets/app-DyKSx7Mz.js.gz +0 -0
- package/dist/client/assets/arc-Bdutazby.js.br +0 -0
- package/dist/client/assets/arc-Bdutazby.js.gz +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-C5Lutsn8.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-C5Lutsn8.js.gz +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-DoTWrGLo.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-DoTWrGLo.js.gz +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-ZRiB7mhU.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-ZRiB7mhU.js.gz +0 -0
- package/dist/client/assets/channel-DRk1RkSj.js +0 -1
- package/dist/client/assets/chunk-F27PBJKO-CMIphDpA.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-CMIphDpA.js.gz +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-BDe7e8jA.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-BDe7e8jA.js.gz +0 -0
- package/dist/client/assets/chunk-SVP7TREG-CndFuFdB.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-CndFuFdB.js.gz +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CcTAB1T8.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CcTAB1T8.js.gz +0 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-rgfIggQ0.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-rgfIggQ0.js +0 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-CtkHODw6.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-CtkHODw6.js.gz +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-xjPGDvew.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-xjPGDvew.js.gz +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-D0gENXW-.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-D0gENXW-.js.gz +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-DrpJ83DN.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-DrpJ83DN.js.gz +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-CjcQn0kl.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-CjcQn0kl.js.gz +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-hvQHUxqm.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-hvQHUxqm.js.gz +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-BrTUApG2.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-BrTUApG2.js.gz +0 -0
- package/dist/client/assets/diagram-VX7I27RA-DmnmEkUV.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-DmnmEkUV.js.gz +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-C3snQW6_.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-C3snQW6_.js.gz +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-CFx5y6O_.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-CFx5y6O_.js.gz +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-CEO1mGX9.js.gz +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-DczILCSj.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-DczILCSj.js.gz +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CWfbOBx-.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CWfbOBx-.js.gz +0 -0
- package/dist/client/assets/gestureArbiter-DtC8HeYn.js.br +0 -0
- package/dist/client/assets/gestureArbiter-DtC8HeYn.js.gz +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-CJaquhnL.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-CJaquhnL.js.gz +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BeUcPryy.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BeUcPryy.js.gz +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DrkmI2C_.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DrkmI2C_.js.gz +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-DUYKiPom.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-DUYKiPom.js.gz +0 -0
- package/dist/client/assets/layout-XWY2OfU8.js.br +0 -0
- package/dist/client/assets/layout-XWY2OfU8.js.gz +0 -0
- package/dist/client/assets/linear-CKK22C_V.js.br +0 -0
- package/dist/client/assets/linear-CKK22C_V.js.gz +0 -0
- package/dist/client/assets/mermaid.core-VzkSqOKz.js.br +0 -0
- package/dist/client/assets/mermaid.core-VzkSqOKz.js.gz +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-D0g720Ty.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-D0g720Ty.js.gz +0 -0
- package/dist/client/assets/passwordBootstrap-BaRrnJWI.js.gz +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-F-tmYn5J.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-F-tmYn5J.js.gz +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-w551-rUm.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-w551-rUm.js.gz +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-CCEGbNxI.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-CCEGbNxI.js.gz +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-obfo4yCA.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-obfo4yCA.js.gz +0 -0
- package/dist/client/assets/referenceLongPress-BZpZjDWj.js.br +0 -0
- package/dist/client/assets/referenceLongPress-BZpZjDWj.js.gz +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-DGxq6_tu.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-DGxq6_tu.js.gz +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-a4XciJtk.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-a4XciJtk.js.gz +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-d868a5nP.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-d868a5nP.js.gz +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-DfDcxTH5.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-DfDcxTH5.js.gz +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-_rlkjaFb.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-_rlkjaFb.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-B8Kq1U38.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-DoDpL828.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-DoDpL828.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-CzMZEhpW.js +0 -8
- package/dist/client/assets/timeline-definition-24CTP7MA-DrYLDIfs.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-DrYLDIfs.js.gz +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-Ch97JoeR.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-Ch97JoeR.js.gz +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-DoXfEj4Q.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-DoXfEj4Q.js.gz +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DaavXfGD.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DaavXfGD.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelPreview-
|
|
2
|
-
import{a4 as er,bd as e,cH as Rt,cR as St,bv as ot,a as $s,aM as qd,C as ki,c as Ls,X as Gt,cE as Si,b1 as Nh,z as vs,al as Mh,cL as Z,b5 as Eh,b7 as Ki,b8 as $h,b9 as Kd,b6 as ys,ay as Lh,E as Ah,i as Ph,b4 as Th,bx as Ih,bz as Dh,bA as _h,aY as Fh,by as Vc,y as kt,f as Bh,L as jt,v as Oh,b as Uh,cG as Yc,aX as Xc,au as Jc,aq as Hh,aC as Ea,aD as Qc,cS as Cs,ah as ws,aE as zh,cF as ti,bp as Wh,cq as Zc,aw as Gh,cC as qh,b_ as Kh,aH as Vh,O as ed,N as Yh,ar as Xh,av as Jh,aA as td,c0 as Qh,s as Zh,d as $a,g as ji,m as rd,w as Vd,ad as em,_ as As,bU as tm,cP as rm,bk as nm,af as sm}from"./app-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelPreview-TaNUSCtI.js","assets/app-CAES0OPd.js","assets/react-XDCjal2T.js","assets/dnd-BCFAPC0L.js","assets/terminal-C7X98Amf.js","assets/index-mZxreyvP.css","assets/App-CwWgEo9j.js","assets/gestureArbiter-CmxrY1dV.js","assets/gestureArbiter-C2J0D0kV.css","assets/triangle-alert-iWMj3uGu.js","assets/referenceLongPress-DC5qCf3R.js","assets/DiffReview-BojIk7PD.js","assets/sparkles-BY96ZX6O.js","assets/DiffViewer-BSL3FmLZ.js","assets/DiffViewer-T3uj2-aP.css","assets/ChangeWalkthroughPanel-BNMCyZ2j.js","assets/katex-55ZPZeOF.css","assets/mermaid.core-BiCQSET3.js","assets/purify.es-4eNOHKSq.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a4 as er,bd as e,cH as Rt,cR as St,bv as ot,a as $s,aM as qd,C as ki,c as Ls,X as Gt,cE as Si,b1 as Nh,z as vs,al as Mh,cL as Z,b5 as Eh,b7 as Ki,b8 as $h,b9 as Kd,b6 as ys,ay as Lh,E as Ah,i as Ph,b4 as Th,bx as Ih,bz as Dh,bA as _h,aY as Fh,by as Vc,y as kt,f as Bh,L as jt,v as Oh,b as Uh,cG as Yc,aX as Xc,au as Jc,aq as Hh,aC as Ea,aD as Qc,cS as Cs,ah as ws,aE as zh,cF as ti,bp as Wh,cq as Zc,aw as Gh,cC as qh,b_ as Kh,aH as Vh,O as ed,N as Yh,ar as Xh,av as Jh,aA as td,c0 as Qh,s as Zh,d as $a,g as ji,m as rd,w as Vd,ad as em,_ as As,bU as tm,cP as rm,bk as nm,af as sm}from"./app-CAES0OPd.js";import{i as am,p as nd,t as Wa,g as om,V as im,P as lm,m as cm,o as dm,R as Ri,u as Yd,v as um,S as Jn,D as fm,e as Xd,c as hm,B as Jd,A as sd,y as La,w as mm,x as pm,z as gm,E as ad,T as od,H as id,f as ld,l as ri,k as Aa,d as bm,q as xm,j as vm,h as ym,r as wm,F as cd,C as km,a as Sm,G as jm}from"./App-CwWgEo9j.js";import{b as a,r as en}from"./dnd-BCFAPC0L.js";import{a as Rm,S as Cm,b as Qd,c as Ci,F as Nm}from"./gestureArbiter-CmxrY1dV.js";import{D as Ni,C as Ns,L as Zd,f as Mm,n as Em}from"./DiffReview-BojIk7PD.js";import{T as $m,L as Va,M as eu,G as Lr}from"./triangle-alert-iWMj3uGu.js";import{S as Ps}from"./sparkles-BY96ZX6O.js";import{C as tu,M as ru}from"./ChangeWalkthroughPanel-BNMCyZ2j.js";import{r as nu,s as su,l as au,u as Lm,h as ou}from"./DiffViewer-BSL3FmLZ.js";import{u as iu,G as lu}from"./referenceLongPress-DC5qCf3R.js";const Am=[["path",{d:"m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16",key:"d5nyq2"}],["path",{d:"M22 9v7",key:"pvm9v3"}],["path",{d:"M3.304 13h6.392",key:"1q3zxz"}],["circle",{cx:"18.5",cy:"12.5",r:"3.5",key:"z97x68"}]],Pm=er("case-sensitive",Am);const Tm=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Im=er("eye-off",Tm);const Dm=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Mi=er("eye",Dm);const _m=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Ei=er("file-text",_m);const Fm=[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]],Bm=er("image-plus",Fm);const Om=[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]],Um=er("maximize",Om);const Hm=[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]],zm=er("minimize",Hm);const Wm=[["path",{d:"M17 3v10",key:"15fgeh"}],["path",{d:"m12.67 5.5 8.66 5",key:"1gpheq"}],["path",{d:"m12.67 10.5 8.66-5",key:"1dkfa6"}],["path",{d:"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z",key:"swwfx4"}]],Gm=er("regex",Wm);const qm=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]],Km=er("scan",qm);const Vm=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Ym=er("upload",Vm);const Xm=[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}],["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]],Jm=er("whole-word",Xm);async function Qm(t){let n;try{await Promise.race([t(),new Promise(s=>{n=setTimeout(s,3e3)})])}catch{}finally{clearTimeout(n)}}function Zm({active:t,rootPath:n,loading:s,delay:l,lastStartedRoot:u,load:c}){a.useEffect(()=>{if(!t||!n||s||u.current===n)return;const h=window.setTimeout(()=>{u.current=n,c(n)},l);return()=>window.clearTimeout(h)},[t,n,s,l,u,c])}function ep(t,n,s){try{const l=t instanceof HTMLImageElement?t.naturalWidth:t.width,u=t instanceof HTMLImageElement?t.naturalHeight:t.height;if(!l||!u)return Promise.resolve(null);const c=t instanceof HTMLImageElement?1400/Math.max(l,u):Math.min(1,1400/Math.max(l,u)),h=document.createElement("canvas");h.width=Math.max(1,Math.round(l*c)),h.height=Math.max(1,Math.round(u*c));const m=h.getContext("2d");if(!m)return Promise.resolve(null);const g=getComputedStyle(document.documentElement);if(m.fillStyle=g.getPropertyValue("--surface").trim()||"white",m.fillRect(0,0,h.width,h.height),m.drawImage(t,0,0,h.width,h.height),s){const b=Math.max(10,Math.min(16,h.width/35));m.font=`${b}px sans-serif`;const f=[];let S="";for(const y of s.split(" "))S&&m.measureText(`${S} ${y}`).width>h.width-20?(f.push(S),S=y):S=S?`${S} ${y}`:y;S&&f.push(S),m.fillStyle=g.getPropertyValue("--surface").trim()||"white",m.fillRect(0,0,h.width,f.length*(b+4)+12),m.fillStyle=g.getPropertyValue("--foreground").trim()||"black",f.forEach((y,C)=>m.fillText(y,10,8+b+C*(b+4)))}if(n){const b=n.xPercent*h.width/100,f=n.yPercent*h.height/100,S=Math.max(4,Math.min(12,Math.min(h.width,h.height)*.015)),y=S*1.6;m.strokeStyle=g.getPropertyValue("--primary").trim()||"black",m.lineWidth=Math.max(1,S/3),m.beginPath(),m.arc(b,f,S,0,Math.PI*2),m.stroke(),m.beginPath(),m.moveTo(b-y,f),m.lineTo(b+y,f),m.moveTo(b,f-y),m.lineTo(b,f+y),m.stroke()}return new Promise(b=>h.toBlob(b,"image/png"))}catch{return Promise.resolve(null)}}function tp(t,n,s,l){return[t.trim(),n.trim(),l?`截图:${l}`:""].filter(Boolean).join(`
|
|
3
3
|
`)}function Zb(t,n,s){const l=n*Math.PI/360,u=Math.min(l,Math.atan(Math.tan(l)*Math.max(s,.05)));return Math.max(t,1e-6)/Math.sin(u)*1.15}async function rp(t,n,s,l){if(!s?.snapshot){l.isCurrent()&&l.insert(t,n);return}const u=new Date().toISOString(),c=new AbortController;let h,m;try{m=await Promise.race([(async()=>{const g=await s.snapshot;if(!(!g||c.signal.aborted||!l.isCurrent()))return l.upload(new File([g],`termdock-review-${crypto.randomUUID()}.png`,{type:"image/png"}),c.signal)})(),new Promise(g=>{h=setTimeout(()=>{c.abort(),g(void 0)},3e3)})])}catch{}finally{clearTimeout(h),c.abort()}l.isCurrent()&&l.insert(m?tp(t,"",u,m):t,n)}function np(t,n){return t===n||n.endsWith(`/${t}`)||t.endsWith(`/${n}`)}function dd(t,n){return`${t??""}\0${n}`}function sp(t,n,s){if(!t||t.length===0||!s)return{explained:0,stale:0};const l=dd(n,s);let u=0,c=0;for(const h of t){const m=[h.filePath,h.newPath,h.oldPath].filter(b=>typeof b=="string"&&b.length>0);(m.some(b=>dd(h.repoRoot,b)===l)||m.some(b=>np(b,s)))&&(u+=1)}return{explained:u,stale:c}}function ap({status:t}){if(!t)return null;const n=t.stale>0&&t.explained===0;if(!(t.explained>0||t.stale>0))return null;const l=n?"AI audit explanation is stale":"AI audit explanation available";return e.jsx("span",{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full ${n?"bg-[color:var(--warning)]/15 text-[color:var(--warning)]":"bg-accent/10 text-accent"}`,title:l,"aria-label":l,children:n?e.jsx($m,{size:10}):e.jsx(Ps,{size:10})})}function $i({changeStatus:t,auditStatus:n,renderChangeBadge:s}){return e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s(t),e.jsx(ap,{status:n})]})}const cu="termdock:right-sidebar:diff-change-list-mode:v1";function op(t){return t==="list"||t==="tree"}function ip(){return ot(cu,op)??"tree"}function lp(t){for(const l of t){const u=l.hunk;if(u.oldPath&&u.newPath&&u.oldPath!==u.newPath)return"renamed";if(!u.oldPath&&u.newPath)return"added";if(u.oldPath&&!u.newPath)return"deleted"}const n=t.some(l=>l.hunk.additions>0),s=t.some(l=>l.hunk.deletions>0);return n&&!s?"added":!n&&s?"deleted":"modified"}function cp(t){const n=new Map;for(const l of t){const u=n.get(l.hunk.filePath)??{key:l.hunk.filePath,filePath:l.hunk.filePath,items:[],additions:0,deletions:0,explained:0,stale:0,changeType:"modified"};u.items.push(l),u.additions+=l.hunk.additions,u.deletions+=l.hunk.deletions,l.current&&(u.explained+=1),l.stale&&(u.stale+=1),n.set(l.hunk.filePath,u)}const s=Array.from(n.values()).sort((l,u)=>l.filePath.localeCompare(u.filePath));for(const l of s)l.changeType=lp(l.items);return s}function dp(t){const n=t.filePath.split("/").pop()??t.filePath;return{key:t.key,path:t.filePath,displayName:n,displayDir:t.filePath.includes("/")?t.filePath.slice(0,-n.length-1):"",status:t.changeType,title:t.filePath}}function up(t,n){const s=t.filter(c=>c.trim().length>0);if(s.length<=1)return s[0]??"";const l=[],u=new Set;for(const[c,h]of s.entries()){const m=h.split(`
|
|
4
4
|
`),g=m.findIndex(S=>S.startsWith("@@ "));if(g<0){l.push(...m);continue}c===0&&l.push(...m.slice(0,g));const b=n[c];let f=g;for(;f>=0&&f<m.length;){const S=m.findIndex((E,N)=>N>f&&E.startsWith("@@ ")),y=S>=0?S:m.length,C=m.slice(f,y),I=C[0]??"",F=b?I===b:!0,B=I||b||C.join(`
|
|
5
5
|
`);F&&!u.has(B)&&(l.push(...C),u.add(B)),f=S}}return l.join(`
|
|
@@ -1635,12 +1635,12 @@ function installPreviewRuntime(capability, base, externalOrigins, shimUrl) {
|
|
|
1635
1635
|
`,Ia="/api/terminal/fs/preview/",eg=8*1024*1024,tg=32*1024*1024,rg=128,ng="data:,";function $t(t){throw new Error(t)}function sg(t){return JSON.stringify(t).replace(/</g,"\\u003c")}async function gd(t,n,s){let l="",u=0;for(const c of t.matchAll(n))l+=t.slice(u,c.index)+await s(c),u=c.index+c[0].length;return l+t.slice(u)}async function mu(t,n){const s=n.origin??location.origin,l=new URL(t,s);(l.origin!==s||!vs(l.pathname)?.startsWith(Ia))&&$t("预览地址不是有效的本地文件入口");const u=crypto.randomUUID(),c=`https://termdock-preview.invalid/${u}/`,h=[],m=G=>{!h.includes(G)&&h.length<20&&h.push(G)},g=new Set,b=[],f=new Set,S=new Map,y=new Map;let C=0,I=!1;const F=new Set,B=()=>{I=!0;for(const G of[...F])G();g.clear(),b.length=0};async function E(G){G.ok||$t(`预览资源读取失败(${G.status})`);const Y=G.body?.getReader(),L=[];let _=0;try{if(Y)for(;;){const oe=await Y.read();if(oe.done)break;_+=oe.value.byteLength,C+=oe.value.byteLength,(_>eg||C>tg)&&$t("预览资源超出大小限制"),L.push(oe.value)}}catch(oe){throw await Y?.cancel().catch(()=>{}),oe}finally{Y?.releaseLock()}const V=new Uint8Array(_);let te=0;for(const oe of L)V.set(oe,te),te+=oe.length;return{bytes:V,type:G.headers.get("content-type")??"application/octet-stream",status:G.status}}let N=l,$;for(let G=0;G<4;G++){const Y=await n.fetch(N.pathname+N.search,{signal:n.signal,redirect:"manual"});if(![301,302,303,307,308].includes(Y.status)){$=Y;break}const L=Y.headers.get("location");await Y.body?.cancel(),L||$t("预览重定向缺少目标");const _=new URL(L,N);(_.origin!==s||!vs(_.pathname)?.startsWith(Ia))&&$t("预览重定向越出文件范围"),N=_}$||$t("预览重定向次数过多");const T=vs(N.pathname),U=T.slice(Ia.length).split("/");/^[a-f0-9]{32}$/.test(U[0])||$t("服务未提供有效的预览资源授权");const D=vs(l.pathname).slice(Ia.length).split("/");/^[a-f0-9]{32}$/.test(D[0])&&D.shift(),D.join("/").replace(/\/$/,"")!==U.slice(1).join("/").replace(/\/$/,"")&&$t("预览重定向改变了文件范围");const p=T.endsWith("/")?T:T.slice(0,T.lastIndexOf("/")+1),i=new URL(N.pathname.endsWith("/")?N.pathname:N.pathname.slice(0,N.pathname.lastIndexOf("/")+1),s);function O(G,Y){const L=new URL(G,Y);return L.origin!==s?null:(vs(L.pathname)?.startsWith(p)||$t("已阻止预览访问目录之外的资源"),L)}function j(G){const Y=new URL(G,c);(Y.origin!==new URL(c).origin||!Y.pathname.startsWith(new URL(c).pathname))&&$t("已阻止预览访问服务接口或目录之外的资源");const L=Y.pathname.slice(new URL(c).pathname.length)+Y.search;return O(L,i)??$t("预览资源无效")}function q(G){const Y=G.pathname+G.search,L=S.get(Y);if(L)return L;if(I||n.signal?.aborted)return Promise.reject(new Error("预览已关闭"));if(S.size>=rg)return Promise.reject(new Error("预览资源数量超出限制"));const _=n.fetch(Y,{signal:n.signal,redirect:"manual"}).then(E);return S.set(Y,_),_}function le(G,Y){I&&$t("预览已关闭");const L=`termdock-resource-${u}-${b.length}`;return b.push({token:L,data:G,type:Y}),g.add(L),L}async function ne(G,Y,L,_=new Set){if(!G||G.startsWith("#")||/^data:(?:image|font)\//i.test(G)&&L==="resource")return G;try{const V=O(G,Y);if(!V){const $e=new URL(G,Y);return($e.protocol!=="https:"||$e.username||$e.password||$e.origin===new URL(c).origin)&&$t("已阻止不安全的外部资源"),f.add($e.origin),$e.href}const te=`${L}:${V.href}`;(_.has(te)||_.size>=8)&&$t("预览资源存在循环或过深引用");const oe=y.get(te);if(oe)return oe;const ge=new Set(_);ge.add(te);const he=(async()=>{const $e=await q(V);return L==="css"?le(await ue(new TextDecoder().decode($e.bytes),V,ge),"text/css"):L==="script"?le($e.bytes,"text/javascript"):le($e.bytes,$e.type)})();return y.set(te,he),await he}catch(V){return m(V instanceof Error?V.message:"部分预览资源未能加载"),ng}}async function ue(G,Y,L){return G=await gd(G,/@import\s+(?:url\(\s*)?["']([^"']+)["']\s*\)?([^;]*);/gi,async _=>`@import url("${await ne(_[1],Y,"css",L)}")${_[2]};`),gd(G,/url\(\s*(?:"([^"]*)"|'([^']*)'|([^)]*))\s*\)/gi,async _=>{const V=(_[1]??_[2]??_[3]).trim();return g.has(V)?_[0]:`url("${await ne(V,Y,"resource",L)}")`})}try{const G=await E($),Y=le(Qp,"text/javascript"),L=new DOMParser().parseFromString(new TextDecoder().decode(G.bytes),"text/html");L.querySelectorAll("base,meta[http-equiv],iframe,frame,object,embed").forEach(M=>M.remove());for(const M of L.querySelectorAll("*")){if(M.removeAttribute("ping"),M.removeAttribute("srcdoc"),M.hasAttribute("style")&&M.setAttribute("style",await ue(M.getAttribute("style"),N,new Set)),M.tagName==="STYLE"&&(M.textContent=await ue(M.textContent??"",N,new Set)),M.tagName==="A"||M.tagName==="AREA"){const J=M.getAttribute("href");try{if(J&&!J.startsWith("#")){const fe=O(J,N);if(fe)M.setAttribute("href",new URL(fe.pathname.slice(i.pathname.length)+fe.search+fe.hash,c).href);else{const Re=new URL(J,N);if(Re.protocol!=="https:"){M.removeAttribute("href");continue}f.add(Re.origin),M.setAttribute("href",Re.href)}}}catch(fe){M.removeAttribute("href"),m(fe instanceof Error?fe.message:"预览链接无法加载")}}for(const J of["data","manifest"])M.removeAttribute(J);if(M.tagName==="SCRIPT"&&M.getAttribute("type")==="module"){M.setAttribute("type","module-shim");const J=M.getAttribute("src");if(J){const fe=O(J,N);if(fe)M.setAttribute("src",new URL(fe.pathname.slice(i.pathname.length)+fe.search,c).href);else{const Re=new URL(J,N);if(Re.protocol!=="https:"){M.remove();continue}f.add(Re.origin),M.setAttribute("src",Re.href)}}continue}if(M.tagName==="SCRIPT"&&M.getAttribute("type")==="importmap"){M.setAttribute("type","importmap-shim");continue}if(M.tagName==="LINK"){const J=(M.getAttribute("rel")??"").toLowerCase();if(!["stylesheet","icon"].includes(J)){M.remove();continue}const fe=M.getAttribute("href");fe&&M.setAttribute("href",await ne(fe,N,J==="stylesheet"?"css":"resource"))}if(M.hasAttribute("src")&&M.setAttribute("src",await ne(M.getAttribute("src"),N,M.tagName==="SCRIPT"?"script":"resource")),M.hasAttribute("poster")&&M.setAttribute("poster",await ne(M.getAttribute("poster"),N,"resource")),M.hasAttribute("srcset")){const J=M.getAttribute("srcset");/data:/i.test(J)?(M.removeAttribute("srcset"),m("混合内嵌图片候选暂不支持安全预览")):M.setAttribute("srcset",(await Promise.all(J.split(",").map(async fe=>{const[Re,...qe]=fe.trim().split(/\s+/);return`${await ne(Re,N,"resource")} ${qe.join(" ")}`}))).join(", "))}M.setAttribute("referrerpolicy","no-referrer"),M.removeAttribute("integrity"),M.removeAttribute("crossorigin")}const _=[...f].join(" "),V=L.createElement("meta");V.httpEquiv="Content-Security-Policy",V.content=`default-src 'none'; script-src 'unsafe-inline' 'wasm-unsafe-eval' blob: ${_}; style-src 'unsafe-inline' blob: ${_}; img-src blob: data: ${_}; font-src blob: data: ${_}; media-src blob: data: ${_}; connect-src blob: ${_} ${[...f].map(M=>M.replace(/^https:/,"wss:")).join(" ")}; worker-src blob:; frame-src 'none'; object-src 'none'; base-uri https://termdock-preview.invalid; form-action 'none'`;const te=L.createElement("base");te.href=c;const oe=L.createElement("meta");oe.name="referrer",oe.content="no-referrer";const ge=L.createElement("script");ge.textContent=Zp+`
|
|
1636
1636
|
installPreviewRuntime(`+[u,c,[...f],Y].map(sg).join(",")+");";const he=L.createElement("script");he.src=Y,L.head.prepend(V,oe,te,ge,he);const $e=`<!doctype html>
|
|
1637
1637
|
`+L.documentElement.outerHTML;return{html:$e,shellUrl:`/preview-shell.html#${u}`,errors:h,attach(M,J){const fe=new Set,Re=Ce=>{if(Ce.source!==M.contentWindow||Ce.data?.capability!==u)return;if(Ce.data.type==="preview-ready"){M.contentWindow?.postMessage({type:"preview-init",capability:u,html:$e,resources:b},"*");return}if(Ce.data.type==="preview-error"){J("部分动态内容被安全预览限制");return}if(Ce.data.type==="preview-navigate"){(async()=>{const xe=j(String(Ce.data.url)),k=await mu(xe.pathname+xe.search,n);if(I){k.dispose();return}const Q=k.attach(M,J);F.add(()=>{Q(),k.dispose()}),M.src=k.shellUrl.replace("#","?navigation="+crypto.randomUUID()+"#")})().catch(xe=>J(xe instanceof Error?xe.message:"无法打开预览页面"));return}if(Ce.data.type==="preview-external"){try{const xe=new URL(String(Ce.data.url));xe.protocol==="https:"&&f.has(xe.origin)&&window.open(xe.href,"_blank","noopener,noreferrer")}catch{}return}if(Ce.data.type!=="preview-fetch"||Ce.ports.length!==1)return;const ce=Ce.ports[0];if(fe.size>=8||!["GET","HEAD"].includes(Ce.data.method)){ce.postMessage({error:"预览仅允许读取已授权目录资源"}),ce.close();return}fe.add(ce),(async()=>{const xe=j(String(Ce.data.url)),k=await q(xe);if(!fe.has(ce)||I)return;const Q=Ce.data.method==="HEAD"?new Uint8Array:k.bytes.slice();ce.postMessage({status:k.status,headers:{"content-type":k.type},data:Q.buffer},[Q.buffer])})().catch(()=>{ce.postMessage({error:"预览资源不在授权范围或无法加载"}),J("部分动态资源不可用或超出预览目录")}).finally(()=>{fe.delete(ce),ce.close()})};window.addEventListener("message",Re);const qe=()=>{window.removeEventListener("message",Re);for(const Ce of fe)Ce.close();fe.clear(),F.delete(qe)};return F.add(qe),qe},dispose:B}}catch(G){throw B(),G}}const ag=a.forwardRef(function({src:n,title:s,exitFullscreenLabel:l,onFullscreenChange:u},c){const h=a.useRef(null),[m,g]=a.useState(null),[b,f]=a.useState(),[S,y]=a.useState("");a.useEffect(()=>{const T=new AbortController;let U;return f(void 0),y(""),(async()=>{const D=await Mh();if(U=await mu(n,{fetch:(p,i)=>D.fetch(p,i),signal:T.signal}),T.signal.aborted){U.dispose();return}f(U),U.errors.length&&y(U.errors.join(";"))})().catch(D=>{T.signal.aborted||y(D instanceof Error?D.message:"安全预览加载失败")}),()=>{T.abort(),U?.dispose()}},[n]),a.useEffect(()=>{if(!(!b||!m))return b.attach(m,y)},[b,m]);const[C,I]=a.useState(!1),[F,B]=a.useState(!1),E=C||F;a.useEffect(()=>{u?.(E)},[E,u]),a.useEffect(()=>{const T=()=>{I(document.fullscreenElement===h.current)};return document.addEventListener("fullscreenchange",T),()=>document.removeEventListener("fullscreenchange",T)},[]),a.useEffect(()=>{if(!F)return;const T=U=>{U.key==="Escape"&&B(!1)};return document.addEventListener("keydown",T),()=>document.removeEventListener("keydown",T)},[F]);const N=a.useCallback(async()=>{const T=h.current;if(T){if(F){B(!1);return}if(document.fullscreenElement===T){await document.exitFullscreen();return}if(T.requestFullscreen&&document.fullscreenEnabled!==!1)try{await T.requestFullscreen();return}catch{}B(!0)}},[F]);a.useImperativeHandle(c,()=>({toggleFullscreen:N}),[N]);const $=e.jsxs("div",{ref:h,"data-html-preview-frame":!0,className:E?"fixed inset-0 z-modal-panel flex min-h-0 flex-col overflow-hidden bg-surface pt-[env(safe-area-inset-top,0px)] text-foreground":"flex h-full min-h-0 flex-col overflow-hidden bg-surface",children:[E&&e.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between gap-3 border-b border-border/15 bg-[var(--chrome-bg)] px-3",children:[e.jsx("span",{className:"min-w-0 truncate text-[12px] font-semibold",children:s}),e.jsx("button",{type:"button",onClick:()=>{N()},"aria-label":l,title:`${l} (Esc)`,className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95",children:e.jsx(ru,{size:15})})]}),S&&e.jsx("div",{role:"status",className:"shrink-0 border-b border-border px-3 py-2 text-xs text-muted-foreground",children:S}),!b&&!S&&e.jsx("div",{role:"status",className:"p-3 text-xs text-muted-foreground",children:"正在安全加载预览资源…"}),e.jsx("iframe",{ref:g,src:b?.shellUrl,referrerPolicy:"no-referrer",title:s,sandbox:"allow-scripts",className:"block min-h-0 w-full flex-1 border-0 bg-white"})]});return F?en.createPortal($,document.body):$}),pu="termdock-file-search-match",Pi="termdock-file-search-current";function og(t){const n=t.metaKey||t.ctrlKey,s=t.key.toLocaleLowerCase();return n&&s==="f"?"open":n&&s==="g"||t.key==="F3"?t.shiftKey?"previous":"next":t.key==="Escape"?"close":null}function ig(t){return t.parentElement?.closest("[data-markdown-preview-block-start], [data-file-preview-line]")??null}function lg(t,n){const s=n.trim().toLocaleLowerCase();if(!s)return[];const l=[];let u="",c=null;const h=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);for(let f=h.nextNode();f;f=h.nextNode()){if(!(f instanceof Text)||!f.data)continue;const S=ig(f);if(!S)continue;c&&c!==S&&(u+=`
|
|
1638
|
-
`);const y=u.length;u+=f.data,l.push({node:f,start:y,end:u.length,group:S}),c=S}const m=u.toLocaleLowerCase(),g=[];let b=0;for(;b<=m.length-s.length;){const f=m.indexOf(s,b);if(f<0)break;const S=f+s.length,y=l.find(I=>I.start<=f&&I.end>f),C=l.find(I=>I.start<S&&I.end>=S);if(y&&C&&y.group===C.group){const I=document.createRange();I.setStart(y.node,f-y.start),I.setEnd(C.node,S-C.start),g.push(I)}b=f+Math.max(s.length,1)}return g}function gu(){return typeof CSS<"u"&&CSS.highlights?CSS.highlights:null}function Da(){const t=gu();t?.delete(pu),t?.delete(Pi)}function bd(t,n){const s=gu();if(!s||typeof Highlight>"u")return;s.set(pu,new Highlight(...t));const l=t[n];l?s.set(Pi,new Highlight(l)):s.delete(Pi)}function xd(t){t?.startContainer.parentElement?.scrollIntoView({block:"center",inline:"nearest",behavior:"smooth"})}function cg(t){return Array.from(new Set(t.split(/[\n,]/).map(n=>n.trim().replace(/^!+/,"")).filter(Boolean))).slice(0,24)}function dg(t,n){const s=n.trim();return!s||s==="."?t:/^(?:[/\\]|[A-Za-z]:[/\\])/.test(s)?s.replace(/[\\/]+$/,""):`${t.replace(/[\\/]+$/,"")}/${s.replace(/^\.?[\\/]+/,"").replace(/[\\/]+$/,"")}`}function ug(t,n){if(n===t)return".";const s=`${t.replace(/[\\/]+$/,"")}/`;return n.startsWith(s)?n.slice(s.length):n}function bu(t,n,s){return n?t:en.createPortal(t,s)}const Vi="termdock:right-sidebar:file-tree-scroll:v1",Yi="termdock:right-sidebar:file-preview-reading-state:v1",js="termdock:right-sidebar:file-tree-width:v1",xu="termdock:right-sidebar:markdown-view-mode:v1",vu="termdock:right-sidebar:diff-change-list-mode:v1",yu="termdock:right-sidebar:diff-wrap:v1",wu="termdock:diff-viewer:view-type:v1",ku="termdock:right-sidebar:file-search-mode:v1",ai="termdock:right-sidebar:collapsed-git-repo-groups:v1",vd="termdock:right-sidebar:collapsed-diff-directories:v1",oi="termdock:right-sidebar:branch-audit-module-open:v1",Su="termdock:right-sidebar:branch-audit-module:v1",fg=150,ju="termdock:right-sidebar:active-git-repo:v1",yd="termdock:right-sidebar:context-draft-enabled:v1",wd="termdock:right-sidebar:context-draft-collapsed:v1",kd="termdock:right-sidebar:context-draft-auto-collapse:v1",ii="termdock:right-sidebar:context-draft-text:v1",hg=300,mg=20,pg=120,gg=250,bg=250,xg=120,vg=700,li=600;function Vn(t){return!!(t&&Z.getState().nestedGitScanRoots[t])}const Sd=[2e3,5e3,15e3,3e4],yg=320,wg=500,kg=20,Sg=12e3,Ti=300,jd=240,jg=560,Ru="border-r px-2 py-1.5 sm:px-3 sm:py-2",Ya="max-w-[18rem] whitespace-normal break-words sm:max-w-[27rem]",Cu=`${Ru} border-b border-border/15 font-semibold last:border-r-0`,Nu=`${Ru} border-border/10 align-top text-muted-foreground last:border-r-0`,Xi="termdock-file-preview-horizontal-scroll",Rd=a.lazy(()=>As(()=>import("./ModelPreview-jn0vZDsm.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),Mu=`${Xi} termdock-md-table-scroll max-w-full overflow-x-auto overflow-y-hidden rounded-lg border border-border/20 bg-surface`;function Eu(t,n,s){return t&&!n?"unified":s}const Rg=new Set([".md",".markdown",".mdown",".mkdn",".mkd"]);function Cg(t){return t==="preview"||t==="source"}function Ng(t){return t==="list"||t==="tree"||t==="ai"}function Cd(){return ot(xu,Cg)??"preview"}function Mg(){return ot(vu,Ng)??"tree"}function Rs(t){return typeof t=="boolean"}function Eg(t){return typeof t=="string"}function $g(){return ot(yu,Rs)??!0}function Lg(t){return t==="unified"||t==="split"}function Ag(){return ot(wu,Lg)??"unified"}function Pg(t){return t==="name"||t==="content"||t==="regex"}function Tg(){return ot(ku,Pg)??"name"}function $u(t){return t.repositories??(t.context?.root?[{id:t.context.root,root:t.context.root,relativeRoot:".",name:xt(t.context.root)||t.context.root,depth:0,nested:!1,available:t.available,files:t.files,context:t.context,error:t.error}]:[])}function Ig(t){return!!t&&typeof t=="object"&&!Array.isArray(t)&&Object.values(t).every(n=>n===null||typeof n=="string")}function Lu(){return ot(ju,Ig)??{}}function Nd(t){if(!t)return;const n=Lu();return Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0}function ci(t,n){t&&St(ju,{...Lu(),[t]:n})}function Dg(t,n){if(!n)return null;const s=new Set((t.repoFilters??[]).map(l=>l.root));return s.has(n)?n:s.size>0?null:(t.repositories??[]).some(l=>l.root===n)?n:null}function Ii(t){return!t.activeGitRepoRoot&&(t.groupCount>1||t.label!==t.rootName)}function Au(...t){const n=new Set;for(const s of t)for(const l of s)n.add(l.root);return n}function Di(t){return Array.isArray(t)&&t.every(n=>typeof n=="string")}function Md(t){const n=ot(t,Di);return n?new Set(n):new Set}function di(t,n){St(t,[...n])}function _g(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return typeof n.filePath=="string"&&typeof n.hunkHeader=="string"&&typeof n.hunkIndex=="number"&&typeof n.fingerprint=="string"&&typeof n.additions=="number"&&typeof n.deletions=="number"&&typeof n.diff=="string"&&(n.oldPath===void 0||n.oldPath===null||typeof n.oldPath=="string")&&(n.newPath===void 0||n.newPath===null||typeof n.newPath=="string")&&(n.source===void 0||n.source==="committed"||n.source==="uncommitted"||n.source==="unknown")&&(n.commit===void 0||n.commit===null||typeof n.commit=="string")}function Fg(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return typeof n.available=="boolean"&&(n.repoRoot===void 0||typeof n.repoRoot=="string")&&(n.workspaceRoot===void 0||typeof n.workspaceRoot=="string")&&(n.baseRef===void 0||typeof n.baseRef=="string")&&(n.baseBranch===void 0||typeof n.baseBranch=="string")&&(n.currentBranch===void 0||n.currentBranch===null||typeof n.currentBranch=="string")&&(n.headRef===void 0||n.headRef===null||typeof n.headRef=="string")&&(n.diffFingerprint===void 0||typeof n.diffFingerprint=="string")&&(n.stat===void 0||typeof n.stat=="string")&&(n.files===void 0||Di(n.files))&&(n.hunks===void 0||Array.isArray(n.hunks)&&n.hunks.every(_g))&&(n.commits===void 0||Di(n.commits))&&(n.commitCount===void 0||typeof n.commitCount=="number")&&(n.diff===void 0||typeof n.diff=="string")&&(n.truncated===void 0||typeof n.truncated=="boolean")&&(n.error===void 0||typeof n.error=="string")}function Bg(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return typeof n.key=="string"&&Fg(n.diff)&&typeof n.repoLabel=="string"&&typeof n.createdAt=="number"}function Og(t){return!t||typeof t!="object"||Array.isArray(t)?!1:Object.values(t).every(n=>{if(!n||typeof n!="object"||Array.isArray(n))return!1;const s=n;return Array.isArray(s.selectedRepoRoots)&&s.selectedRepoRoots.every(l=>typeof l=="string")&&!!s.repoTargetBranches&&typeof s.repoTargetBranches=="object"&&!Array.isArray(s.repoTargetBranches)&&Object.values(s.repoTargetBranches).every(l=>typeof l=="string")&&(s.repoBaseBranches===void 0||!!s.repoBaseBranches&&typeof s.repoBaseBranches=="object"&&!Array.isArray(s.repoBaseBranches)&&Object.values(s.repoBaseBranches).every(l=>typeof l=="string"))&&(s.previewEntries===void 0||Array.isArray(s.previewEntries)&&s.previewEntries.every(Bg))&&(s.selectedPreviewKey===void 0||s.selectedPreviewKey===null||typeof s.selectedPreviewKey=="string")&&(s.selectedPreviewFileKey===void 0||s.selectedPreviewFileKey===null||typeof s.selectedPreviewFileKey=="string")&&(s.previewDetailOpen===void 0||typeof s.previewDetailOpen=="boolean")&&(s.previewScrollTops===void 0||!!s.previewScrollTops&&typeof s.previewScrollTops=="object"&&!Array.isArray(s.previewScrollTops)&&Object.values(s.previewScrollTops).every(l=>typeof l=="number"))&&(s.previewMobileSlideIndex===void 0||typeof s.previewMobileSlideIndex=="number")&&(s.includeUncommitted===void 0||typeof s.includeUncommitted=="boolean")&&typeof s.updatedAt=="number"})}function Ed(){return ot(Su,Og)??{}}function $d(t){return[t.repoRoot,t.baseRef,t.branchName??"",t.headRef??"",t.diffFingerprint??""].join("\0")}function Ld(t){const n=t?.trim()??"",s=n.indexOf("/");return s>=0?n.slice(s+1):n}function Pu(t,n){const s=t?.trim(),l=n?.trim();return!s||!l?!1:s===l||Ld(s)===Ld(l)}function Ad(t){const n=t?.branch??null;return[t?.upstream,...t?.remoteBranches??[],...t?.branches??[]].find(l=>l&&!Pu(l,n))??""}function _i(t,n){const s=Math.max(jd,n-320),l=Math.min(jg,s);return Math.min(l,Math.max(jd,t))}function Ug(t){return typeof t=="number"&&Number.isFinite(t)}function Hg(t){return _i(ot(js,Ug)??Ti,t)}function Tu(t){const n=t.split(/[\\/]/).pop()??t,s=n.lastIndexOf(".");return s>=0?n.slice(s).toLowerCase():""}function ks(t){return Rg.has(Tu(t))}function Iu(t){const n=t.trim().replace(/\s+/g,"");return/^-{3,}$/.test(n)||/^\*{3,}$/.test(n)||/^_{3,}$/.test(n)}function Fi(t){const n=t.trim();return/^#{1,6}\s+/.test(n)||Iu(t)||/^>\s?/.test(n)||/^(```|~~~)/.test(n)||/^(?:[-+*]|\d+[.)])\s+/.test(n)}function Du(t){const n=t.trim();return/^(https?:|mailto:|#|\/|\.\/|\.\.\/)/i.test(n)||!/^[a-z][a-z0-9+.-]*:/i.test(n)&&!/[<>]/.test(n)?n:null}const _u=a.createContext(null);function qa(t){return t.trim().replace(/\s+/g," ").toLowerCase()}function Fu(t){return t.replace(/!\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1").replace(/[`*_~]/g,"").replace(/<[^>]+>/g,"").trim()}function Bu(t){return t.replace(/\s+#+\s*$/,"").trim()}function Bi(t,n){const l=Fu(t).toLowerCase().replace(/[^\p{L}\p{N}\s-]/gu,"").trim().replace(/\s+/g,"-")||"section",u=n.headingSlugCounts.get(l)??0;return n.headingSlugCounts.set(l,u+1),u===0?l:`${l}-${u}`}function Pd(t){return Fu(t)||t.trim()}function Xa(t){const n=t.match(/^\s{0,3}\[([^\]]+)\]:\s+(.+?)\s*$/);if(!n)return null;const s=Ui(n[2]);return s?{id:qa(n[1]),definition:{href:s.href,title:s.title}}:null}function zg(t){const n=new Map;for(const s of t){const l=Xa(s);l&&n.set(l.id,l.definition)}return n}function Ou(t){return t.trim().toLowerCase()}function Uu(t){const n=t.match(/^\s{0,3}\[\^([^\]]+)\]:\s+(.+)\s*$/);return n?{id:Ou(n[1]),text:n[2]}:null}function Wg(t){const n=new Map;let s=null;for(const l of t){const u=Uu(l);if(u){s=u.id,n.set(u.id,{id:u.id,text:u.text,index:n.size+1});continue}if(s&&/^\s{4,}\S/.test(l)){const c=n.get(s);c&&(c.text=`${c.text} ${l.trim()}`);continue}l.trim()&&(s=null)}return n}function Hu(t){const n=new Set;let s=!1;return t.forEach((l,u)=>{if(Uu(l)){n.add(u),s=!0;return}if(s&&/^\s{4,}\S/.test(l)){n.add(u);return}l.trim()&&(s=!1)}),n}function Gg(t){const n=[...t];let s=0;const l=t[0]?.trim();if(l==="---"||l==="+++"){for(n[0]="",s=1;s<t.length&&t[s].trim()!==l;)n[s]="",s+=1;s<t.length&&(n[s]="",s+=1)}for(;s<t.length;){const u=t[s].trim();if(u.startsWith("<!--")){if(n[s]="",!u.includes("-->")){for(s+=1;s<t.length&&!t[s].includes("-->");)n[s]="",s+=1;s<t.length&&(n[s]="")}s+=1;continue}s+=1}return n}function zu(t){const n=t.replace(/\/+$/,""),s=n.lastIndexOf("/");return s<=0?s===0?"/":"":n.slice(0,s)}function Ms(t){const n=t.split(/[?#]/,1)[0],s=n.startsWith("/"),l=[];for(const c of n.split("/"))if(!(!c||c===".")){if(c===".."){l.length>0&&l.pop();continue}l.push(c)}return`${s?"/":""}${l.join("/")}`||(s?"/":".")}function Ji(t,n,s){const l=t.trim();if(!l||/^(?:https?:|mailto:|javascript:|data:)/i.test(l)||/^[a-z][a-z0-9+.-]*:/i.test(l))return null;if(l.startsWith("#")){if(!n)return null;try{return{path:n,fragment:decodeURIComponent(l.slice(1))||null,directory:!1}}catch{return null}}const u=l.indexOf("#"),c=u>=0?l.slice(0,u):l,h=u>=0?l.slice(u+1):"",m=c.split("?",1)[0];if(!m)return null;let g,b=null;try{g=decodeURIComponent(m),b=h?decodeURIComponent(h):null}catch{return null}const f=s?Ms(s):null;let S;if(g.startsWith("/")){const y=f&&(g===f||g.startsWith(`${f}/`));S=Ms(f&&!y?`${f}/${g.slice(1)}`:g)}else{if(!n)return null;S=Ms(`${zu(n)}/${g}`)}return f&&S!==f&&!S.startsWith(`${f}/`)?null:{path:S,fragment:b,directory:/\/$/.test(m)}}function Qi(t,n,s,l,u){const c=t.trim();if(!c||/^(?:javascript|data):/i.test(c))return null;if(/^https?:\/\//i.test(c))return c;if(!l(c.split(/[?#]/,1)[0]))return null;let h;if(c.startsWith("/")){const m=s&&(c===s||c.startsWith(`${s}/`));h=Ms(s&&!m?`${s}/${c.slice(1)}`:c)}else{if(!n)return null;h=Ms(`${zu(n)}/${c}`)}return u(h)}function qg(t,n,s){return Qi(t,n,s,Ki,l=>`/api/terminal/fs/blob?path=${encodeURIComponent(l)}`)}function Kg(t,n,s){return Qi(t,n,s,Kd,Vd)}const Oi=128,Vg=360,ui=480;function so(t){try{return/\.svg(?=$|[?#&])/i.test(decodeURIComponent(t))}catch{return!1}}function Wu(t,n,s,l,u=0){if(!n||!s)return null;let c,h;return u>0?(c=l>0?Math.min(u,l):u,h=s*c/n):so(t)?(h=Math.min(Math.max(s,Oi),Vg),c=n*h/s):(c=n,h=s),l>0&&c>l&&(h=h*l/c,c=l),h>ui&&(c=c*ui/h,h=ui),{width:Math.max(1,Math.round(c)),height:Math.max(1,Math.round(h))}}function Yg(t){if(!t.startsWith("/api/terminal/fs/blob?"))return null;try{return new URLSearchParams(t.slice(t.indexOf("?"))).get("path")}catch{return null}}function Gu(t){const n=Yg(t),s=Z(l=>n?(l.fileChangeVersions.get(n)??0)+l.fileWatchEpoch:0);return n&&s>0?`${t}&v=${s}`:t}function Xg({src:t,alt:n,title:s,requestedWidthPx:l}){const u=so(t),c=Gu(t),h=ro(c),m=a.useRef(null),[g,b]=a.useState(!1),[f,S]=a.useState(0),[y,C]=a.useState({status:"loading"}),[I,F]=a.useState(null);a.useLayoutEffect(()=>{const N=m.current,$=N?.parentElement?.parentElement??N?.parentElement;if(!$)return;const T=()=>S($.clientWidth);if(T(),typeof ResizeObserver>"u")return;const U=new ResizeObserver(T);return U.observe($),()=>U.disconnect()},[]),a.useEffect(()=>{if(g)return;const N=m.current;if(!N||typeof IntersectionObserver>"u"){b(!0);return}const $=new IntersectionObserver(T=>{T.some(U=>U.isIntersecting)&&(b(!0),$.disconnect())},{rootMargin:"400px"});return $.observe(N),()=>$.disconnect()},[g]),a.useEffect(()=>{if(!g)return;const N=new AbortController;let $=null;C({status:"loading"});const T=window.setTimeout(()=>{N.abort(new DOMException("Image fetch timed out","TimeoutError"))},15e3);return sm(c,{signal:N.signal}).then(async U=>{if(!U.ok)throw new Error(`HTTP ${U.status}`);const D=Number(U.headers.get("X-Image-Width"))||0,p=Number(U.headers.get("X-Image-Height"))||0;return{blob:await U.blob(),width:D,height:p}}).then(({blob:U,width:D,height:p})=>{N.signal.aborted||($=URL.createObjectURL(U),D>0&&p>0&&F({width:D,height:p}),C({status:"ready",objectUrl:$}))}).catch(()=>{const U=N.signal.reason;N.signal.aborted&&!(U instanceof DOMException&&U.name==="TimeoutError")||C({status:"fallback"})}).finally(()=>{window.clearTimeout(T)}),()=>{window.clearTimeout(T),N.abort(),$&&URL.revokeObjectURL($)}},[g,c]);const B=Wu(t,I?.width??0,I?.height??0,f,l??0),E=B??(l?{width:f>0?Math.min(l,f):l,height:Math.round(l*.75)}:{width:Oi*2,height:Oi});return e.jsx("div",{ref:m,className:"block max-w-full",style:B?{width:B.width,height:B.height}:void 0,children:y.status==="ready"?e.jsx("img",{src:y.objectUrl,alt:n,title:s,decoding:"async",className:`${u?"":"termdock-fade-in "}block max-h-[480px] max-w-full object-contain`,style:B?{width:B.width,height:B.height}:void 0,onLoad:N=>{if(I)return;const $=N.currentTarget;$.naturalWidth>0&&$.naturalHeight>0&&F({width:$.naturalWidth,height:$.naturalHeight})}}):y.status==="fallback"?e.jsx("img",{src:h,alt:n,title:s,loading:"lazy",decoding:"async",className:"block max-h-[480px] max-w-full object-contain",style:B?{width:B.width,height:B.height}:void 0,onLoad:N=>{if(I)return;const $=N.currentTarget;$.naturalWidth>0&&$.naturalHeight>0&&F({width:$.naturalWidth,height:$.naturalHeight})}}):e.jsx("div",{"aria-hidden":!0,className:"flex max-w-full animate-pulse items-center justify-center rounded bg-surface-elevated/60",style:{width:E.width,height:E.height},children:e.jsx("span",{className:"text-[10px] text-muted-foreground/60",children:n||"…"})})})}function Es(t,n,s,l,u,c){const h=qg(s,u.markdownFilePath,u.rootPath);if(!h)return c?.fallbackText??``;const m=u.images.length;u.images.push({kind:"image",src:h,alt:n,title:l});const g=e.jsx(Xg,{src:h,alt:n,title:l,requestedWidthPx:c?.requestedWidthPx});return u.onImageOpen&&c?.interactive!==!1?e.jsx("button",{type:"button",className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2 text-left transition hover:border-border-strong focus:outline-none focus:ring-2 focus:ring-ring/45",title:l||n||"Open image",onClick:b=>{b.stopPropagation(),u.onImageOpen?.(m)},children:g},t):e.jsx("span",{className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2",children:g},t)}function fi(t){let n=t,s="";for(;/[.,;:!?)]$/.test(n);)s=`${n.slice(-1)}${s}`,n=n.slice(0,-1);return{linkText:n,suffix:s}}function Td(t){return/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/.test(t)}function Ui(t){const n=t.trim(),s=n.match(/^<([^>]+)>(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);if(s)return{href:s[1],title:s[2]??s[3]??s[4]};const l=n.match(/^(\S+)(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);return l?{href:l[1],title:l[2]??l[3]??l[4]}:null}const qu="",Jg=/\\([\\`*{}\[\]#+\-.!_|~>$])/g;function Qg(t){return t.replace(Jg,(n,s)=>`${qu}${s.charCodeAt(0).toString(16).padStart(4,"0")}`)}function Id(t){return t.replace(new RegExp(`${qu}([0-9a-f]{4})`,"g"),(n,s)=>String.fromCharCode(Number.parseInt(s,16))).replace(/\\([()])/g,"$1")}function Zg(t){const n=t.replace(/[\r\n]+/g," ");return/^ .+ $/.test(n)&&/[^ ]/.test(n.slice(1,-1))?n.slice(1,-1):n}const Ku={ALLOWED_TAGS:["a","abbr","b","blockquote","br","code","del","details","div","em","i","kbd","li","mark","ol","p","pre","s","span","strong","sub","summary","sup","table","tbody","td","th","thead","tr","u","ul"],ALLOWED_ATTR:["href","title","class","id","colspan","rowspan"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!0};let _a=null;function Vu(){return _a||(_a=As(()=>import("./purify.es-4eNOHKSq.js"),[]).then(t=>t.default??t).catch(t=>{throw _a=null,t})),_a}function Yu({html:t}){const{t:n}=Rt(),[s,l]=a.useState(null);return a.useEffect(()=>{let u=!1;return l(null),Vu().then(c=>{u||l(c.sanitize(t,Ku))}).catch(()=>{u||l("")}),()=>{u=!0}},[t]),s===null?e.jsx("div",{className:"py-2 text-xs text-muted-foreground",children:n("rightSidebar.renderingHtml")}):s?e.jsx("div",{className:"text-muted-foreground",dangerouslySetInnerHTML:{__html:s}}):null}function eb({html:t}){const[n,s]=a.useState(null);return a.useEffect(()=>{let l=!1;return s(null),Vu().then(u=>{l||s(u.sanitize(t,Ku))}).catch(()=>{l||s("")}),()=>{l=!0}},[t]),n===null?null:n?e.jsx("span",{dangerouslySetInnerHTML:{__html:n}}):t}function Xu(t){const n=t.trim().match(/^<(div|section|article|aside|table|p|ul|ol|li|blockquote|pre|figure|figcaption)\b[^>]*>/i);if(!n)return null;const s=n[1].toLowerCase();return{tag:s,selfContained:new RegExp(`</${s}>`,"i").test(t)}}let Fa=null;function tb(){return Fa||(Fa=Promise.all([As(()=>import("./katex-DnlPpQZa.js"),[]),As(()=>Promise.resolve({}),__vite__mapDeps([16]))]).then(([t])=>t.default??t).catch(t=>{throw Fa=null,t})),Fa}function Ts({tex:t,display:n=!1}){const[s,l]=a.useState(null),[u,c]=a.useState(!1);if(a.useEffect(()=>{let m=!1;return l(null),c(!1),tb().then(g=>{m||l(g.renderToString(t,{displayMode:n,throwOnError:!1,trust:!1,strict:"ignore"}))}).catch(()=>{m||c(!0)}),()=>{m=!0}},[n,t]),u)return e.jsx("code",{className:"rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground",children:n?`$$${t}$$`:`$${t}$`});if(!s)return e.jsx("span",{className:"text-muted-foreground/70",children:n?"Rendering formula...":t});const h=n?"my-2 overflow-auto rounded-md bg-surface-2 px-3 py-2 text-center":"inline-block align-middle";return e.jsx("span",{className:h,dangerouslySetInnerHTML:{__html:s}})}function Zi(t){const n=new Map;for(const s of t.matchAll(/([a-zA-Z_:][-a-zA-Z0-9_:.]*)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+))/gi))n.set(s[1].toLowerCase(),s[2]??s[3]??s[4]);return n}function Dd(t){const n=Zi(t),s=n.get("src")?.trim()??"",l=n.get("width")?.trim().match(/^(\d+(?:\.\d+)?)(?:px)?$/i);return{src:s,alt:n.get("alt"),title:n.get("title"),widthPx:l?Number(l[1]):void 0}}function rb(t){const n=t.indexOf(">"),s=n<0?t:t.slice(0,n+1),l=Zi(s),u=l.get("src")?.trim()??"",c=l.get("width")?.trim().match(/^(\d+(?:\.\d+)?)(?:px)?$/i),h=s.replace(/=\s*(?:"[^"]*"|'[^']*')/g," "),m=n<0?"":t.slice(n+1).replace(/<\/video\s*>$/i,"").replace(/<[^>]*>/g,"").trim();return{src:u,fallbackText:m,widthPx:c?Number(c[1]):void 0,controls:/\bcontrols\b/i.test(h)}}function nb({url:t,fallbackText:n,widthPx:s,hasControls:l}){const{t:u}=Rt(),[c,h]=a.useState(!1),m=ro(t,()=>h(!0));return m?e.jsx("span",{className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2",children:c?e.jsx("span",{className:"block px-3 py-2 text-xs text-muted-foreground",children:n?.trim()||u("rightSidebar.videoUnsupported")}):e.jsx("video",{className:"block max-w-full",src:m,style:s?{width:`${s}px`}:void 0,controls:l,preload:"metadata",playsInline:!0,onError:()=>h(!0)})}):null}function sb(t,n,s){if(/^<a\b[^>]*>\s*<\s*img\b[^>]*>\s*<\/a\s*>$/i.test(t)){const h=t.slice(0,t.indexOf(">")+1),m=Zi(h).get("href")?.trim()??"",g=t.match(/<\s*img\b[^>]*>/i)?.[0]??"",{src:b,alt:f,title:S,widthPx:y}=Dd(g);if(!b)return null;const C=Qi(b,s.markdownFilePath,s.rootPath,Ki,N=>N);if(!C)return null;const I=m?Ji(m,s.markdownFilePath,s.rootPath):null,B=!!!(I&&I.path===C)&&m?Du(m):null,E=Es(n,f??"",b,S,s,{requestedWidthPx:y,interactive:B?!1:void 0});return B?e.jsx("a",{href:B,target:"_blank",rel:"noreferrer",children:E},n):E}if(/^<\s*img\b[^>]*>$/i.test(t)){const{src:h,alt:m,title:g,widthPx:b}=Dd(t);return h?Es(n,m??"",h,g,s,{fallbackText:t,requestedWidthPx:b}):null}if(/^<\s*video\b[^>]*>[\s\S]*?<\/video\s*>$/i.test(t)){const{src:h,fallbackText:m,widthPx:g,controls:b}=rb(t);if(!h)return null;const f=Kg(h,s.markdownFilePath,s.rootPath);return f?e.jsx(nb,{url:f,fallbackText:m,widthPx:g,hasControls:b},n):null}if(/^<br\s*\/?>$/i.test(t))return e.jsx("br",{},n);const l=t.match(/^<(kbd|mark|sub|sup)>(.*?)<\/\1>$/i);if(!l)return/^<(a|abbr|span|b|strong|em|i|u|s|del|code)\b[\s\S]*<\/\1>$/i.test(t)?e.jsx(eb,{html:t},n):null;const u=l[1].toLowerCase(),c=it(l[2],`${n}-${u}`,!0,s);return u==="kbd"?e.jsx("kbd",{className:"rounded border border-border/30 bg-surface-2 px-1.5 py-0.5 font-mono text-[0.85em] text-foreground shadow-sm",children:c},n):u==="mark"?e.jsx("mark",{className:"rounded bg-warning/25 px-0.5 text-foreground",children:c},n):u==="sub"?e.jsx("sub",{children:c},n):e.jsx("sup",{children:c},n)}function it(t,n,s=!0,l){const u=Qg(t),c=/(\\\([^)]*\\\)|\$[^$\n]+\$|<br\s*\/?>|<\s*img\b[^>]*>|<\s*video\b[^>]*>[\s\S]*?<\/video\s*>|<(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)\b[\s\S]*?<\/(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)>|!?\[[^\]]*\]\((?:<[^>]+>|(?:[^\s()]+|\([^()\s]*\))+)(?:\s+(?:"[^"]*"|'[^']*'|\([^)]*\)))?\)|!?\[[^\]]+\]\[[^\]]*\]|!?\[[^\]]+\]|\[\^[^\]]+\]|(`+)([\s\S]*?)\2|~~[^~]+~~|\*\*[^*]+\*\*|__[^_]+__|\*[^*\s][^*]*\*|_[^_\s][^_]*_|<https?:\/\/[^>\s]+>|<[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+>|https?:\/\/[^\s<]+|www\.[^\s<]+|[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+)/gi,h=[];let m=0,g;for(;(g=c.exec(u))!==null;){g.index>m&&h.push(Id(u.slice(m,g.index)));const b=g[0],f=`${n}-${g.index}`,S=b.startsWith("<")?sb(b,f,l):null;if(S)h.push(S);else if(b.startsWith("\\(")&&b.endsWith("\\)"))h.push(e.jsx(Ts,{tex:b.slice(2,-2)},f));else if(b.startsWith("$")&&b.endsWith("$"))h.push(e.jsx(Ts,{tex:b.slice(1,-1)},f));else if(b.startsWith("`")){const y=b.match(/^`+/)?.[0].length??1;h.push(e.jsx("code",{className:`${s?"break-all":"whitespace-nowrap"} rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground`,children:Zg(b.slice(y,-y))},f))}else if(b.startsWith("~~"))h.push(e.jsx("del",{className:"text-muted-foreground decoration-border-strong",children:it(b.slice(2,-2),`${f}-del`,s,l)},f));else if(b.startsWith("**")||b.startsWith("__"))h.push(e.jsx("strong",{className:"font-semibold text-foreground",children:it(b.slice(2,-2),`${f}-strong`,s,l)},f));else if(b.startsWith("*")||b.startsWith("_"))h.push(e.jsx("em",{className:"italic",children:it(b.slice(1,-1),`${f}-em`,s,l)},f));else if(b.startsWith("![")){const y=b.match(/^!\[([^\]]*)\]\((.*)\)$/),C=b.match(/^!\[([^\]]+)\]\[([^\]]*)\]$/),I=b.match(/^!\[([^\]]+)\]$/);if(y){const F=Ui(y[2]);h.push(F?Es(f,y[1],F.href,F.title,l):b)}else if(C){const F=C[2]||C[1],B=l.referenceDefinitions.get(qa(F));h.push(B?Es(f,C[1],B.href,B.title,l):b)}else if(I){const F=l.referenceDefinitions.get(qa(I[1]));h.push(F?Es(f,I[1],F.href,F.title,l):b)}else h.push(b)}else if(b.startsWith("[^")){const y=Ou(b.slice(2,-1)),C=l.footnoteDefinitions.get(y);h.push(C?e.jsx("sup",{id:`fnref-${C.id}`,title:C.text,className:"ml-0.5 rounded bg-surface-2 px-1 text-[0.72em] font-semibold text-primary",children:e.jsx("a",{href:`#fn-${C.id}`,className:"text-primary no-underline",children:C.index})},f):b)}else if(b.startsWith("<http")){const y=b.slice(1,-1);h.push(e.jsx("a",{href:y,target:"_blank",rel:"noreferrer",className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f))}else if(b.startsWith("<")&&b.endsWith(">")&&Td(b.slice(1,-1))){const y=b.slice(1,-1);h.push(e.jsx("a",{href:`mailto:${y}`,className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f))}else if(Td(fi(b).linkText)){const{linkText:y,suffix:C}=fi(b);h.push(e.jsx("a",{href:`mailto:${y}`,className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f)),C&&h.push(C)}else if(b.startsWith("http")||b.startsWith("www.")){const{linkText:y,suffix:C}=fi(b),I=y.startsWith("www.")?`https://${y}`:y;h.push(e.jsx("a",{href:I,target:"_blank",rel:"noreferrer",className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f)),C&&h.push(C)}else{const y=b.match(/^\[([^\]]+)\]\((.*)\)$/),C=b.match(/^\[([^\]]+)\]\[([^\]]*)\]$/),I=b.match(/^\[([^\]]+)\]$/),F=C?C[2]||C[1]:I?.[1]??null,B=F?l.referenceDefinitions.get(qa(F)):null,E=y?Ui(y[2]):null,N=E?.href??B?.href??null,$=N?Du(N):null,T=y?.[1]??C?.[1]??I?.[1]??"";h.push($?e.jsx("a",{href:$,title:E?.title??B?.title,target:"_blank",rel:"noreferrer",className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:it(T,`${f}-link`,s,l)},f):b)}m=c.lastIndex}return m<u.length&&h.push(Id(u.slice(m))),h.length>0?h:[t]}function Ju(t){return/(?: {2,}|\\)$/.test(t)}function Qu(t){return t.replace(/(?: {2,}|\\)$/,"")}function Ja(t){return/^(?: {4}|\t)/.test(t)}function Zu(t){return t.startsWith(" ")?t.slice(1):t.replace(/^ {4}/,"")}function ef(t,n,s){const l=[];return t.forEach((u,c)=>{const h=Ju(u);l.push(...it(Qu(u),`${n}-${c}`,!0,s)),c<t.length-1&&l.push(h?e.jsx("br",{},`${n}-${c}-br`):" ")}),l}function Hi(t,n,s){const l=[],u=[];return t.forEach((c,h)=>{u.push(Ju(c)),l.push(it(Qu(c),`${n}-${h}`,!0,s))}),{perLine:l,hardBreaks:u}}function zi(t,n,s,l,u){const c=[];return t.forEach((h,m)=>{const g=s[m]??0,b=!!(u&&g>=u.start&&g<=u.end);c.push(e.jsx("span",{"data-md-ref-start":g,"data-md-ref-end":g,"data-selected":b?"true":void 0,children:h},`${l}-ref-${m}`)),m<t.length-1&&c.push(n[m]?e.jsx("br",{},`${l}-${m}-br`):" ")}),c}function Is(t){const n=t.trim().replace(/^\|/,"").replace(/\|$/,""),s=[];let l="",u=!1,c=0,h=0;for(let m=0;m<n.length;m+=1){const g=n[m];if(u){l+=g,u=!1;continue}if(g==="\\"){u=!0;continue}if(g==="`"){const b=m;for(;m+1<n.length&&n[m+1]==="`";)m+=1;const f=m-b+1;l+="`".repeat(f),c===0?c=f:c===f&&(c=0);continue}if(c===0&&g==="["?h+=1:c===0&&g==="]"&&h>0&&(h-=1),g==="|"&&c===0&&h===0){s.push(l.trim()),l="";continue}l+=g}return u&&(l+="\\"),s.push(l.trim()),s}function tf(t){return Is(t).map(n=>/^:-+:$/.test(n)?"center":/^-+:$/.test(n)?"right":/^:-+$/.test(n)?"left":null)}function Qa(t){return t==="center"?"text-center":t==="right"?"text-right":"text-left"}function Za(t){return/^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)*\|?$/.test(t.trim())}function rf(t,n){return t>96||t>44&&n>.35}function ao(t){return(t.match(/^\s*/)?.[0]??"").replace(/\t/g," ").length}function Ds(t){const n=t.trim().match(/^([-+*]|\d+[.)])\s+(.+)$/);if(!n)return null;const s=/^\d+[.)]$/.test(n[1]);return{ordered:s,start:s?Number.parseInt(n[1],10):void 0,content:n[2]}}function el(t,n,s,l,u,c=new Set){const h=[],m=[];let g=n;for(;g<t.length;){const b=t[g];if(u&&(Xa(b)||c.has(g))){g+=1;continue}const f=Ds(b),S=ao(b);if(!f){if(S>s&&m.length>0){([...m].reverse().find(F=>F.indent<S)?.item??m[m.length-1].item).paragraphs.push(b.trim());for(const F of m)F.item.lineEnd=g+1;g+=1;continue}break}if(S<s||S===s&&f.ordered!==l)break;const y={content:f.content,ordered:f.ordered,start:f.start,children:[],paragraphs:[],lineStart:g+1,lineEnd:g+1};for(;m.length>0&&m[m.length-1].indent>=S;)m.pop();const C=m[m.length-1]?.item??null;C?C.children.push(y):h.push(y),m.push({indent:S,item:y});for(const I of m)I.item.lineEnd=g+1;g+=1}return{items:h,nextIndex:g}}function ab(t){const n=t.find(l=>Ds(l));if(!n)return[];const s=Ds(n);return s?el(t,0,ao(n),s.ordered,!0,Hu(t)).items:[]}function tl(t,n,s,l=0){return t.map((u,c)=>{const h=u.content.match(/^\[([ xX])\]\s+(.+)$/);return{key:`item-${c}`,taskItem:!!h,refStart:u.lineStart+l,refEnd:u.lineEnd+l,content:e.jsxs(e.Fragment,{children:[h?e.jsx("input",{type:"checkbox",checked:h[1].toLowerCase()==="x",readOnly:!0,className:"mr-2 align-[-2px] accent-primary"}):null,it(h?.[2]??u.content,`li-${n}-${c}`,!0,s),u.paragraphs.length>0&&e.jsx("div",{className:"mt-1 space-y-1 text-muted-foreground",children:u.paragraphs.map((m,g)=>e.jsx("p",{children:it(m,`li-${n}-${c}-p-${g}`,!0,s)},`paragraph-${g}`))})]}),groups:ob(u.children,`${n}-${c}`,s,l)}})}function ob(t,n,s,l=0){const u=[];for(const c of t){const h=u[u.length-1];h&&h.ordered===c.ordered?h.items.push(c):u.push({ordered:c.ordered,items:[c]})}return u.map((c,h)=>({ordered:c.ordered,start:c.ordered?c.items[0]?.start:void 0,items:tl(c.items,`${n}-g${h}`,s,l)}))}function rl(t,n){return t.map(s=>{const l=!!(n&&s.refStart<=n.end&&s.refEnd>=n.start);return e.jsxs("li",{className:s.taskItem?"list-none":void 0,"data-md-ref-start":s.refStart,"data-md-ref-end":s.refEnd,"data-selected":l?"true":void 0,children:[s.content,s.groups.length>0&&ib(s.groups,n)]},s.key)})}function ib(t,n){return t.map((s,l)=>{const u=s.ordered?"ol":"ul";return e.jsx(u,{start:s.start,className:`${s.ordered?"list-decimal":"list-disc"} mt-1 space-y-0.5 pl-4 marker:text-muted-foreground/60`,children:rl(s.items,n)},`nested-${l}`)})}function lb(t){const n=Array.from(t.footnoteDefinitions.values()).sort((s,l)=>s.index-l.index);return n.length===0?null:e.jsxs("section",{className:"mt-3 border-t border-border/20 pt-2 text-[12px] leading-5 text-muted-foreground",children:[e.jsx("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/80",children:t.footnotesLabel}),e.jsx("ol",{className:"list-decimal space-y-1 pl-5",children:n.map(s=>e.jsxs("li",{id:`fn-${s.id}`,children:[it(s.text,`footnote-${s.id}`,!0,t)," ",e.jsx("a",{href:`#fnref-${s.id}`,className:"text-primary no-underline","aria-label":t.backToFootnoteLabel(s.index),children:"↩"})]},s.id))})]})}function cb(t,n,s,l){const u=[];let c=0;const h=m=>l?.[m]??m+1;for(;c<t.length;){const m=t[c],g=m.trim();if(!g){c+=1;continue}if(/^<details>\s*$/i.test(g)){const E=c;let N="Details";const $=[];for(c+=1;c<t.length&&!/^<\/details>\s*$/i.test(t[c].trim());){const T=t[c].trim().match(/^<summary>(.*?)<\/summary>\s*$/i);T?N=T[1].trim()||N:$.push(t[c].trimStart()),c+=1}c<t.length&&(c+=1),u.push({kind:"static",node:e.jsxs("details",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface px-3 py-2 text-muted-foreground",children:[e.jsx("summary",{className:"cursor-pointer text-sm font-semibold text-foreground",children:it(N,`${n}-details-${E}-summary`,!0,s)}),$.length>0&&e.jsx("div",{className:"mt-2 text-sm leading-6",children:ef($,`${n}-details-${E}`,s)})]},`${n}-details-${E}`)});continue}const b=Xu(m);if(b){const E=[m],N=c;for(c+=1;c<t.length&&!b.selfContained&&!new RegExp(`</${b.tag}>`,"i").test(t[c]);)E.push(t[c]),c+=1;c<t.length&&!b.selfContained&&(E.push(t[c]),c+=1),u.push({kind:"static",node:e.jsx(Yu,{html:E.join(`
|
|
1638
|
+
`);const y=u.length;u+=f.data,l.push({node:f,start:y,end:u.length,group:S}),c=S}const m=u.toLocaleLowerCase(),g=[];let b=0;for(;b<=m.length-s.length;){const f=m.indexOf(s,b);if(f<0)break;const S=f+s.length,y=l.find(I=>I.start<=f&&I.end>f),C=l.find(I=>I.start<S&&I.end>=S);if(y&&C&&y.group===C.group){const I=document.createRange();I.setStart(y.node,f-y.start),I.setEnd(C.node,S-C.start),g.push(I)}b=f+Math.max(s.length,1)}return g}function gu(){return typeof CSS<"u"&&CSS.highlights?CSS.highlights:null}function Da(){const t=gu();t?.delete(pu),t?.delete(Pi)}function bd(t,n){const s=gu();if(!s||typeof Highlight>"u")return;s.set(pu,new Highlight(...t));const l=t[n];l?s.set(Pi,new Highlight(l)):s.delete(Pi)}function xd(t){t?.startContainer.parentElement?.scrollIntoView({block:"center",inline:"nearest",behavior:"smooth"})}function cg(t){return Array.from(new Set(t.split(/[\n,]/).map(n=>n.trim().replace(/^!+/,"")).filter(Boolean))).slice(0,24)}function dg(t,n){const s=n.trim();return!s||s==="."?t:/^(?:[/\\]|[A-Za-z]:[/\\])/.test(s)?s.replace(/[\\/]+$/,""):`${t.replace(/[\\/]+$/,"")}/${s.replace(/^\.?[\\/]+/,"").replace(/[\\/]+$/,"")}`}function ug(t,n){if(n===t)return".";const s=`${t.replace(/[\\/]+$/,"")}/`;return n.startsWith(s)?n.slice(s.length):n}function bu(t,n,s){return n?t:en.createPortal(t,s)}const Vi="termdock:right-sidebar:file-tree-scroll:v1",Yi="termdock:right-sidebar:file-preview-reading-state:v1",js="termdock:right-sidebar:file-tree-width:v1",xu="termdock:right-sidebar:markdown-view-mode:v1",vu="termdock:right-sidebar:diff-change-list-mode:v1",yu="termdock:right-sidebar:diff-wrap:v1",wu="termdock:diff-viewer:view-type:v1",ku="termdock:right-sidebar:file-search-mode:v1",ai="termdock:right-sidebar:collapsed-git-repo-groups:v1",vd="termdock:right-sidebar:collapsed-diff-directories:v1",oi="termdock:right-sidebar:branch-audit-module-open:v1",Su="termdock:right-sidebar:branch-audit-module:v1",fg=150,ju="termdock:right-sidebar:active-git-repo:v1",yd="termdock:right-sidebar:context-draft-enabled:v1",wd="termdock:right-sidebar:context-draft-collapsed:v1",kd="termdock:right-sidebar:context-draft-auto-collapse:v1",ii="termdock:right-sidebar:context-draft-text:v1",hg=300,mg=20,pg=120,gg=250,bg=250,xg=120,vg=700,li=600;function Vn(t){return!!(t&&Z.getState().nestedGitScanRoots[t])}const Sd=[2e3,5e3,15e3,3e4],yg=320,wg=500,kg=20,Sg=12e3,Ti=300,jd=240,jg=560,Ru="border-r px-2 py-1.5 sm:px-3 sm:py-2",Ya="max-w-[18rem] whitespace-normal break-words sm:max-w-[27rem]",Cu=`${Ru} border-b border-border/15 font-semibold last:border-r-0`,Nu=`${Ru} border-border/10 align-top text-muted-foreground last:border-r-0`,Xi="termdock-file-preview-horizontal-scroll",Rd=a.lazy(()=>As(()=>import("./ModelPreview-TaNUSCtI.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),Mu=`${Xi} termdock-md-table-scroll max-w-full overflow-x-auto overflow-y-hidden rounded-lg border border-border/20 bg-surface`;function Eu(t,n,s){return t&&!n?"unified":s}const Rg=new Set([".md",".markdown",".mdown",".mkdn",".mkd"]);function Cg(t){return t==="preview"||t==="source"}function Ng(t){return t==="list"||t==="tree"||t==="ai"}function Cd(){return ot(xu,Cg)??"preview"}function Mg(){return ot(vu,Ng)??"tree"}function Rs(t){return typeof t=="boolean"}function Eg(t){return typeof t=="string"}function $g(){return ot(yu,Rs)??!0}function Lg(t){return t==="unified"||t==="split"}function Ag(){return ot(wu,Lg)??"unified"}function Pg(t){return t==="name"||t==="content"||t==="regex"}function Tg(){return ot(ku,Pg)??"name"}function $u(t){return t.repositories??(t.context?.root?[{id:t.context.root,root:t.context.root,relativeRoot:".",name:xt(t.context.root)||t.context.root,depth:0,nested:!1,available:t.available,files:t.files,context:t.context,error:t.error}]:[])}function Ig(t){return!!t&&typeof t=="object"&&!Array.isArray(t)&&Object.values(t).every(n=>n===null||typeof n=="string")}function Lu(){return ot(ju,Ig)??{}}function Nd(t){if(!t)return;const n=Lu();return Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0}function ci(t,n){t&&St(ju,{...Lu(),[t]:n})}function Dg(t,n){if(!n)return null;const s=new Set((t.repoFilters??[]).map(l=>l.root));return s.has(n)?n:s.size>0?null:(t.repositories??[]).some(l=>l.root===n)?n:null}function Ii(t){return!t.activeGitRepoRoot&&(t.groupCount>1||t.label!==t.rootName)}function Au(...t){const n=new Set;for(const s of t)for(const l of s)n.add(l.root);return n}function Di(t){return Array.isArray(t)&&t.every(n=>typeof n=="string")}function Md(t){const n=ot(t,Di);return n?new Set(n):new Set}function di(t,n){St(t,[...n])}function _g(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return typeof n.filePath=="string"&&typeof n.hunkHeader=="string"&&typeof n.hunkIndex=="number"&&typeof n.fingerprint=="string"&&typeof n.additions=="number"&&typeof n.deletions=="number"&&typeof n.diff=="string"&&(n.oldPath===void 0||n.oldPath===null||typeof n.oldPath=="string")&&(n.newPath===void 0||n.newPath===null||typeof n.newPath=="string")&&(n.source===void 0||n.source==="committed"||n.source==="uncommitted"||n.source==="unknown")&&(n.commit===void 0||n.commit===null||typeof n.commit=="string")}function Fg(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return typeof n.available=="boolean"&&(n.repoRoot===void 0||typeof n.repoRoot=="string")&&(n.workspaceRoot===void 0||typeof n.workspaceRoot=="string")&&(n.baseRef===void 0||typeof n.baseRef=="string")&&(n.baseBranch===void 0||typeof n.baseBranch=="string")&&(n.currentBranch===void 0||n.currentBranch===null||typeof n.currentBranch=="string")&&(n.headRef===void 0||n.headRef===null||typeof n.headRef=="string")&&(n.diffFingerprint===void 0||typeof n.diffFingerprint=="string")&&(n.stat===void 0||typeof n.stat=="string")&&(n.files===void 0||Di(n.files))&&(n.hunks===void 0||Array.isArray(n.hunks)&&n.hunks.every(_g))&&(n.commits===void 0||Di(n.commits))&&(n.commitCount===void 0||typeof n.commitCount=="number")&&(n.diff===void 0||typeof n.diff=="string")&&(n.truncated===void 0||typeof n.truncated=="boolean")&&(n.error===void 0||typeof n.error=="string")}function Bg(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;const n=t;return typeof n.key=="string"&&Fg(n.diff)&&typeof n.repoLabel=="string"&&typeof n.createdAt=="number"}function Og(t){return!t||typeof t!="object"||Array.isArray(t)?!1:Object.values(t).every(n=>{if(!n||typeof n!="object"||Array.isArray(n))return!1;const s=n;return Array.isArray(s.selectedRepoRoots)&&s.selectedRepoRoots.every(l=>typeof l=="string")&&!!s.repoTargetBranches&&typeof s.repoTargetBranches=="object"&&!Array.isArray(s.repoTargetBranches)&&Object.values(s.repoTargetBranches).every(l=>typeof l=="string")&&(s.repoBaseBranches===void 0||!!s.repoBaseBranches&&typeof s.repoBaseBranches=="object"&&!Array.isArray(s.repoBaseBranches)&&Object.values(s.repoBaseBranches).every(l=>typeof l=="string"))&&(s.previewEntries===void 0||Array.isArray(s.previewEntries)&&s.previewEntries.every(Bg))&&(s.selectedPreviewKey===void 0||s.selectedPreviewKey===null||typeof s.selectedPreviewKey=="string")&&(s.selectedPreviewFileKey===void 0||s.selectedPreviewFileKey===null||typeof s.selectedPreviewFileKey=="string")&&(s.previewDetailOpen===void 0||typeof s.previewDetailOpen=="boolean")&&(s.previewScrollTops===void 0||!!s.previewScrollTops&&typeof s.previewScrollTops=="object"&&!Array.isArray(s.previewScrollTops)&&Object.values(s.previewScrollTops).every(l=>typeof l=="number"))&&(s.previewMobileSlideIndex===void 0||typeof s.previewMobileSlideIndex=="number")&&(s.includeUncommitted===void 0||typeof s.includeUncommitted=="boolean")&&typeof s.updatedAt=="number"})}function Ed(){return ot(Su,Og)??{}}function $d(t){return[t.repoRoot,t.baseRef,t.branchName??"",t.headRef??"",t.diffFingerprint??""].join("\0")}function Ld(t){const n=t?.trim()??"",s=n.indexOf("/");return s>=0?n.slice(s+1):n}function Pu(t,n){const s=t?.trim(),l=n?.trim();return!s||!l?!1:s===l||Ld(s)===Ld(l)}function Ad(t){const n=t?.branch??null;return[t?.upstream,...t?.remoteBranches??[],...t?.branches??[]].find(l=>l&&!Pu(l,n))??""}function _i(t,n){const s=Math.max(jd,n-320),l=Math.min(jg,s);return Math.min(l,Math.max(jd,t))}function Ug(t){return typeof t=="number"&&Number.isFinite(t)}function Hg(t){return _i(ot(js,Ug)??Ti,t)}function Tu(t){const n=t.split(/[\\/]/).pop()??t,s=n.lastIndexOf(".");return s>=0?n.slice(s).toLowerCase():""}function ks(t){return Rg.has(Tu(t))}function Iu(t){const n=t.trim().replace(/\s+/g,"");return/^-{3,}$/.test(n)||/^\*{3,}$/.test(n)||/^_{3,}$/.test(n)}function Fi(t){const n=t.trim();return/^#{1,6}\s+/.test(n)||Iu(t)||/^>\s?/.test(n)||/^(```|~~~)/.test(n)||/^(?:[-+*]|\d+[.)])\s+/.test(n)}function Du(t){const n=t.trim();return/^(https?:|mailto:|#|\/|\.\/|\.\.\/)/i.test(n)||!/^[a-z][a-z0-9+.-]*:/i.test(n)&&!/[<>]/.test(n)?n:null}const _u=a.createContext(null);function qa(t){return t.trim().replace(/\s+/g," ").toLowerCase()}function Fu(t){return t.replace(/!\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/\[([^\]]+)\]\[[^\]]*\]/g,"$1").replace(/[`*_~]/g,"").replace(/<[^>]+>/g,"").trim()}function Bu(t){return t.replace(/\s+#+\s*$/,"").trim()}function Bi(t,n){const l=Fu(t).toLowerCase().replace(/[^\p{L}\p{N}\s-]/gu,"").trim().replace(/\s+/g,"-")||"section",u=n.headingSlugCounts.get(l)??0;return n.headingSlugCounts.set(l,u+1),u===0?l:`${l}-${u}`}function Pd(t){return Fu(t)||t.trim()}function Xa(t){const n=t.match(/^\s{0,3}\[([^\]]+)\]:\s+(.+?)\s*$/);if(!n)return null;const s=Ui(n[2]);return s?{id:qa(n[1]),definition:{href:s.href,title:s.title}}:null}function zg(t){const n=new Map;for(const s of t){const l=Xa(s);l&&n.set(l.id,l.definition)}return n}function Ou(t){return t.trim().toLowerCase()}function Uu(t){const n=t.match(/^\s{0,3}\[\^([^\]]+)\]:\s+(.+)\s*$/);return n?{id:Ou(n[1]),text:n[2]}:null}function Wg(t){const n=new Map;let s=null;for(const l of t){const u=Uu(l);if(u){s=u.id,n.set(u.id,{id:u.id,text:u.text,index:n.size+1});continue}if(s&&/^\s{4,}\S/.test(l)){const c=n.get(s);c&&(c.text=`${c.text} ${l.trim()}`);continue}l.trim()&&(s=null)}return n}function Hu(t){const n=new Set;let s=!1;return t.forEach((l,u)=>{if(Uu(l)){n.add(u),s=!0;return}if(s&&/^\s{4,}\S/.test(l)){n.add(u);return}l.trim()&&(s=!1)}),n}function Gg(t){const n=[...t];let s=0;const l=t[0]?.trim();if(l==="---"||l==="+++"){for(n[0]="",s=1;s<t.length&&t[s].trim()!==l;)n[s]="",s+=1;s<t.length&&(n[s]="",s+=1)}for(;s<t.length;){const u=t[s].trim();if(u.startsWith("<!--")){if(n[s]="",!u.includes("-->")){for(s+=1;s<t.length&&!t[s].includes("-->");)n[s]="",s+=1;s<t.length&&(n[s]="")}s+=1;continue}s+=1}return n}function zu(t){const n=t.replace(/\/+$/,""),s=n.lastIndexOf("/");return s<=0?s===0?"/":"":n.slice(0,s)}function Ms(t){const n=t.split(/[?#]/,1)[0],s=n.startsWith("/"),l=[];for(const c of n.split("/"))if(!(!c||c===".")){if(c===".."){l.length>0&&l.pop();continue}l.push(c)}return`${s?"/":""}${l.join("/")}`||(s?"/":".")}function Ji(t,n,s){const l=t.trim();if(!l||/^(?:https?:|mailto:|javascript:|data:)/i.test(l)||/^[a-z][a-z0-9+.-]*:/i.test(l))return null;if(l.startsWith("#")){if(!n)return null;try{return{path:n,fragment:decodeURIComponent(l.slice(1))||null,directory:!1}}catch{return null}}const u=l.indexOf("#"),c=u>=0?l.slice(0,u):l,h=u>=0?l.slice(u+1):"",m=c.split("?",1)[0];if(!m)return null;let g,b=null;try{g=decodeURIComponent(m),b=h?decodeURIComponent(h):null}catch{return null}const f=s?Ms(s):null;let S;if(g.startsWith("/")){const y=f&&(g===f||g.startsWith(`${f}/`));S=Ms(f&&!y?`${f}/${g.slice(1)}`:g)}else{if(!n)return null;S=Ms(`${zu(n)}/${g}`)}return f&&S!==f&&!S.startsWith(`${f}/`)?null:{path:S,fragment:b,directory:/\/$/.test(m)}}function Qi(t,n,s,l,u){const c=t.trim();if(!c||/^(?:javascript|data):/i.test(c))return null;if(/^https?:\/\//i.test(c))return c;if(!l(c.split(/[?#]/,1)[0]))return null;let h;if(c.startsWith("/")){const m=s&&(c===s||c.startsWith(`${s}/`));h=Ms(s&&!m?`${s}/${c.slice(1)}`:c)}else{if(!n)return null;h=Ms(`${zu(n)}/${c}`)}return u(h)}function qg(t,n,s){return Qi(t,n,s,Ki,l=>`/api/terminal/fs/blob?path=${encodeURIComponent(l)}`)}function Kg(t,n,s){return Qi(t,n,s,Kd,Vd)}const Oi=128,Vg=360,ui=480;function so(t){try{return/\.svg(?=$|[?#&])/i.test(decodeURIComponent(t))}catch{return!1}}function Wu(t,n,s,l,u=0){if(!n||!s)return null;let c,h;return u>0?(c=l>0?Math.min(u,l):u,h=s*c/n):so(t)?(h=Math.min(Math.max(s,Oi),Vg),c=n*h/s):(c=n,h=s),l>0&&c>l&&(h=h*l/c,c=l),h>ui&&(c=c*ui/h,h=ui),{width:Math.max(1,Math.round(c)),height:Math.max(1,Math.round(h))}}function Yg(t){if(!t.startsWith("/api/terminal/fs/blob?"))return null;try{return new URLSearchParams(t.slice(t.indexOf("?"))).get("path")}catch{return null}}function Gu(t){const n=Yg(t),s=Z(l=>n?(l.fileChangeVersions.get(n)??0)+l.fileWatchEpoch:0);return n&&s>0?`${t}&v=${s}`:t}function Xg({src:t,alt:n,title:s,requestedWidthPx:l}){const u=so(t),c=Gu(t),h=ro(c),m=a.useRef(null),[g,b]=a.useState(!1),[f,S]=a.useState(0),[y,C]=a.useState({status:"loading"}),[I,F]=a.useState(null);a.useLayoutEffect(()=>{const N=m.current,$=N?.parentElement?.parentElement??N?.parentElement;if(!$)return;const T=()=>S($.clientWidth);if(T(),typeof ResizeObserver>"u")return;const U=new ResizeObserver(T);return U.observe($),()=>U.disconnect()},[]),a.useEffect(()=>{if(g)return;const N=m.current;if(!N||typeof IntersectionObserver>"u"){b(!0);return}const $=new IntersectionObserver(T=>{T.some(U=>U.isIntersecting)&&(b(!0),$.disconnect())},{rootMargin:"400px"});return $.observe(N),()=>$.disconnect()},[g]),a.useEffect(()=>{if(!g)return;const N=new AbortController;let $=null;C({status:"loading"});const T=window.setTimeout(()=>{N.abort(new DOMException("Image fetch timed out","TimeoutError"))},15e3);return sm(c,{signal:N.signal}).then(async U=>{if(!U.ok)throw new Error(`HTTP ${U.status}`);const D=Number(U.headers.get("X-Image-Width"))||0,p=Number(U.headers.get("X-Image-Height"))||0;return{blob:await U.blob(),width:D,height:p}}).then(({blob:U,width:D,height:p})=>{N.signal.aborted||($=URL.createObjectURL(U),D>0&&p>0&&F({width:D,height:p}),C({status:"ready",objectUrl:$}))}).catch(()=>{const U=N.signal.reason;N.signal.aborted&&!(U instanceof DOMException&&U.name==="TimeoutError")||C({status:"fallback"})}).finally(()=>{window.clearTimeout(T)}),()=>{window.clearTimeout(T),N.abort(),$&&URL.revokeObjectURL($)}},[g,c]);const B=Wu(t,I?.width??0,I?.height??0,f,l??0),E=B??(l?{width:f>0?Math.min(l,f):l,height:Math.round(l*.75)}:{width:Oi*2,height:Oi});return e.jsx("div",{ref:m,className:"block max-w-full",style:B?{width:B.width,height:B.height}:void 0,children:y.status==="ready"?e.jsx("img",{src:y.objectUrl,alt:n,title:s,decoding:"async",className:`${u?"":"termdock-fade-in "}block max-h-[480px] max-w-full object-contain`,style:B?{width:B.width,height:B.height}:void 0,onLoad:N=>{if(I)return;const $=N.currentTarget;$.naturalWidth>0&&$.naturalHeight>0&&F({width:$.naturalWidth,height:$.naturalHeight})}}):y.status==="fallback"?e.jsx("img",{src:h,alt:n,title:s,loading:"lazy",decoding:"async",className:"block max-h-[480px] max-w-full object-contain",style:B?{width:B.width,height:B.height}:void 0,onLoad:N=>{if(I)return;const $=N.currentTarget;$.naturalWidth>0&&$.naturalHeight>0&&F({width:$.naturalWidth,height:$.naturalHeight})}}):e.jsx("div",{"aria-hidden":!0,className:"flex max-w-full animate-pulse items-center justify-center rounded bg-surface-elevated/60",style:{width:E.width,height:E.height},children:e.jsx("span",{className:"text-[10px] text-muted-foreground/60",children:n||"…"})})})}function Es(t,n,s,l,u,c){const h=qg(s,u.markdownFilePath,u.rootPath);if(!h)return c?.fallbackText??``;const m=u.images.length;u.images.push({kind:"image",src:h,alt:n,title:l});const g=e.jsx(Xg,{src:h,alt:n,title:l,requestedWidthPx:c?.requestedWidthPx});return u.onImageOpen&&c?.interactive!==!1?e.jsx("button",{type:"button",className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2 text-left transition hover:border-border-strong focus:outline-none focus:ring-2 focus:ring-ring/45",title:l||n||"Open image",onClick:b=>{b.stopPropagation(),u.onImageOpen?.(m)},children:g},t):e.jsx("span",{className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2",children:g},t)}function fi(t){let n=t,s="";for(;/[.,;:!?)]$/.test(n);)s=`${n.slice(-1)}${s}`,n=n.slice(0,-1);return{linkText:n,suffix:s}}function Td(t){return/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/.test(t)}function Ui(t){const n=t.trim(),s=n.match(/^<([^>]+)>(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);if(s)return{href:s[1],title:s[2]??s[3]??s[4]};const l=n.match(/^(\S+)(?:\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\)))?$/);return l?{href:l[1],title:l[2]??l[3]??l[4]}:null}const qu="",Jg=/\\([\\`*{}\[\]#+\-.!_|~>$])/g;function Qg(t){return t.replace(Jg,(n,s)=>`${qu}${s.charCodeAt(0).toString(16).padStart(4,"0")}`)}function Id(t){return t.replace(new RegExp(`${qu}([0-9a-f]{4})`,"g"),(n,s)=>String.fromCharCode(Number.parseInt(s,16))).replace(/\\([()])/g,"$1")}function Zg(t){const n=t.replace(/[\r\n]+/g," ");return/^ .+ $/.test(n)&&/[^ ]/.test(n.slice(1,-1))?n.slice(1,-1):n}const Ku={ALLOWED_TAGS:["a","abbr","b","blockquote","br","code","del","details","div","em","i","kbd","li","mark","ol","p","pre","s","span","strong","sub","summary","sup","table","tbody","td","th","thead","tr","u","ul"],ALLOWED_ATTR:["href","title","class","id","colspan","rowspan"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!0};let _a=null;function Vu(){return _a||(_a=As(()=>import("./purify.es-4eNOHKSq.js"),[]).then(t=>t.default??t).catch(t=>{throw _a=null,t})),_a}function Yu({html:t}){const{t:n}=Rt(),[s,l]=a.useState(null);return a.useEffect(()=>{let u=!1;return l(null),Vu().then(c=>{u||l(c.sanitize(t,Ku))}).catch(()=>{u||l("")}),()=>{u=!0}},[t]),s===null?e.jsx("div",{className:"py-2 text-xs text-muted-foreground",children:n("rightSidebar.renderingHtml")}):s?e.jsx("div",{className:"text-muted-foreground",dangerouslySetInnerHTML:{__html:s}}):null}function eb({html:t}){const[n,s]=a.useState(null);return a.useEffect(()=>{let l=!1;return s(null),Vu().then(u=>{l||s(u.sanitize(t,Ku))}).catch(()=>{l||s("")}),()=>{l=!0}},[t]),n===null?null:n?e.jsx("span",{dangerouslySetInnerHTML:{__html:n}}):t}function Xu(t){const n=t.trim().match(/^<(div|section|article|aside|table|p|ul|ol|li|blockquote|pre|figure|figcaption)\b[^>]*>/i);if(!n)return null;const s=n[1].toLowerCase();return{tag:s,selfContained:new RegExp(`</${s}>`,"i").test(t)}}let Fa=null;function tb(){return Fa||(Fa=Promise.all([As(()=>import("./katex-DnlPpQZa.js"),[]),As(()=>Promise.resolve({}),__vite__mapDeps([16]))]).then(([t])=>t.default??t).catch(t=>{throw Fa=null,t})),Fa}function Ts({tex:t,display:n=!1}){const[s,l]=a.useState(null),[u,c]=a.useState(!1);if(a.useEffect(()=>{let m=!1;return l(null),c(!1),tb().then(g=>{m||l(g.renderToString(t,{displayMode:n,throwOnError:!1,trust:!1,strict:"ignore"}))}).catch(()=>{m||c(!0)}),()=>{m=!0}},[n,t]),u)return e.jsx("code",{className:"rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground",children:n?`$$${t}$$`:`$${t}$`});if(!s)return e.jsx("span",{className:"text-muted-foreground/70",children:n?"Rendering formula...":t});const h=n?"my-2 overflow-auto rounded-md bg-surface-2 px-3 py-2 text-center":"inline-block align-middle";return e.jsx("span",{className:h,dangerouslySetInnerHTML:{__html:s}})}function Zi(t){const n=new Map;for(const s of t.matchAll(/([a-zA-Z_:][-a-zA-Z0-9_:.]*)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+))/gi))n.set(s[1].toLowerCase(),s[2]??s[3]??s[4]);return n}function Dd(t){const n=Zi(t),s=n.get("src")?.trim()??"",l=n.get("width")?.trim().match(/^(\d+(?:\.\d+)?)(?:px)?$/i);return{src:s,alt:n.get("alt"),title:n.get("title"),widthPx:l?Number(l[1]):void 0}}function rb(t){const n=t.indexOf(">"),s=n<0?t:t.slice(0,n+1),l=Zi(s),u=l.get("src")?.trim()??"",c=l.get("width")?.trim().match(/^(\d+(?:\.\d+)?)(?:px)?$/i),h=s.replace(/=\s*(?:"[^"]*"|'[^']*')/g," "),m=n<0?"":t.slice(n+1).replace(/<\/video\s*>$/i,"").replace(/<[^>]*>/g,"").trim();return{src:u,fallbackText:m,widthPx:c?Number(c[1]):void 0,controls:/\bcontrols\b/i.test(h)}}function nb({url:t,fallbackText:n,widthPx:s,hasControls:l}){const{t:u}=Rt(),[c,h]=a.useState(!1),m=ro(t,()=>h(!0));return m?e.jsx("span",{className:"my-2 block max-w-full overflow-hidden rounded-md border border-border/20 bg-surface-2",children:c?e.jsx("span",{className:"block px-3 py-2 text-xs text-muted-foreground",children:n?.trim()||u("rightSidebar.videoUnsupported")}):e.jsx("video",{className:"block max-w-full",src:m,style:s?{width:`${s}px`}:void 0,controls:l,preload:"metadata",playsInline:!0,onError:()=>h(!0)})}):null}function sb(t,n,s){if(/^<a\b[^>]*>\s*<\s*img\b[^>]*>\s*<\/a\s*>$/i.test(t)){const h=t.slice(0,t.indexOf(">")+1),m=Zi(h).get("href")?.trim()??"",g=t.match(/<\s*img\b[^>]*>/i)?.[0]??"",{src:b,alt:f,title:S,widthPx:y}=Dd(g);if(!b)return null;const C=Qi(b,s.markdownFilePath,s.rootPath,Ki,N=>N);if(!C)return null;const I=m?Ji(m,s.markdownFilePath,s.rootPath):null,B=!!!(I&&I.path===C)&&m?Du(m):null,E=Es(n,f??"",b,S,s,{requestedWidthPx:y,interactive:B?!1:void 0});return B?e.jsx("a",{href:B,target:"_blank",rel:"noreferrer",children:E},n):E}if(/^<\s*img\b[^>]*>$/i.test(t)){const{src:h,alt:m,title:g,widthPx:b}=Dd(t);return h?Es(n,m??"",h,g,s,{fallbackText:t,requestedWidthPx:b}):null}if(/^<\s*video\b[^>]*>[\s\S]*?<\/video\s*>$/i.test(t)){const{src:h,fallbackText:m,widthPx:g,controls:b}=rb(t);if(!h)return null;const f=Kg(h,s.markdownFilePath,s.rootPath);return f?e.jsx(nb,{url:f,fallbackText:m,widthPx:g,hasControls:b},n):null}if(/^<br\s*\/?>$/i.test(t))return e.jsx("br",{},n);const l=t.match(/^<(kbd|mark|sub|sup)>(.*?)<\/\1>$/i);if(!l)return/^<(a|abbr|span|b|strong|em|i|u|s|del|code)\b[\s\S]*<\/\1>$/i.test(t)?e.jsx(eb,{html:t},n):null;const u=l[1].toLowerCase(),c=it(l[2],`${n}-${u}`,!0,s);return u==="kbd"?e.jsx("kbd",{className:"rounded border border-border/30 bg-surface-2 px-1.5 py-0.5 font-mono text-[0.85em] text-foreground shadow-sm",children:c},n):u==="mark"?e.jsx("mark",{className:"rounded bg-warning/25 px-0.5 text-foreground",children:c},n):u==="sub"?e.jsx("sub",{children:c},n):e.jsx("sup",{children:c},n)}function it(t,n,s=!0,l){const u=Qg(t),c=/(\\\([^)]*\\\)|\$[^$\n]+\$|<br\s*\/?>|<\s*img\b[^>]*>|<\s*video\b[^>]*>[\s\S]*?<\/video\s*>|<(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)\b[\s\S]*?<\/(?:a|abbr|span|b|strong|em|i|u|s|del|code|kbd|mark|sub|sup)>|!?\[[^\]]*\]\((?:<[^>]+>|(?:[^\s()]+|\([^()\s]*\))+)(?:\s+(?:"[^"]*"|'[^']*'|\([^)]*\)))?\)|!?\[[^\]]+\]\[[^\]]*\]|!?\[[^\]]+\]|\[\^[^\]]+\]|(`+)([\s\S]*?)\2|~~[^~]+~~|\*\*[^*]+\*\*|__[^_]+__|\*[^*\s][^*]*\*|_[^_\s][^_]*_|<https?:\/\/[^>\s]+>|<[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+>|https?:\/\/[^\s<]+|www\.[^\s<]+|[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+)/gi,h=[];let m=0,g;for(;(g=c.exec(u))!==null;){g.index>m&&h.push(Id(u.slice(m,g.index)));const b=g[0],f=`${n}-${g.index}`,S=b.startsWith("<")?sb(b,f,l):null;if(S)h.push(S);else if(b.startsWith("\\(")&&b.endsWith("\\)"))h.push(e.jsx(Ts,{tex:b.slice(2,-2)},f));else if(b.startsWith("$")&&b.endsWith("$"))h.push(e.jsx(Ts,{tex:b.slice(1,-1)},f));else if(b.startsWith("`")){const y=b.match(/^`+/)?.[0].length??1;h.push(e.jsx("code",{className:`${s?"break-all":"whitespace-nowrap"} rounded bg-surface-2 px-1 py-0.5 font-mono text-[0.92em] text-foreground`,children:Zg(b.slice(y,-y))},f))}else if(b.startsWith("~~"))h.push(e.jsx("del",{className:"text-muted-foreground decoration-border-strong",children:it(b.slice(2,-2),`${f}-del`,s,l)},f));else if(b.startsWith("**")||b.startsWith("__"))h.push(e.jsx("strong",{className:"font-semibold text-foreground",children:it(b.slice(2,-2),`${f}-strong`,s,l)},f));else if(b.startsWith("*")||b.startsWith("_"))h.push(e.jsx("em",{className:"italic",children:it(b.slice(1,-1),`${f}-em`,s,l)},f));else if(b.startsWith("![")){const y=b.match(/^!\[([^\]]*)\]\((.*)\)$/),C=b.match(/^!\[([^\]]+)\]\[([^\]]*)\]$/),I=b.match(/^!\[([^\]]+)\]$/);if(y){const F=Ui(y[2]);h.push(F?Es(f,y[1],F.href,F.title,l):b)}else if(C){const F=C[2]||C[1],B=l.referenceDefinitions.get(qa(F));h.push(B?Es(f,C[1],B.href,B.title,l):b)}else if(I){const F=l.referenceDefinitions.get(qa(I[1]));h.push(F?Es(f,I[1],F.href,F.title,l):b)}else h.push(b)}else if(b.startsWith("[^")){const y=Ou(b.slice(2,-1)),C=l.footnoteDefinitions.get(y);h.push(C?e.jsx("sup",{id:`fnref-${C.id}`,title:C.text,className:"ml-0.5 rounded bg-surface-2 px-1 text-[0.72em] font-semibold text-primary",children:e.jsx("a",{href:`#fn-${C.id}`,className:"text-primary no-underline",children:C.index})},f):b)}else if(b.startsWith("<http")){const y=b.slice(1,-1);h.push(e.jsx("a",{href:y,target:"_blank",rel:"noreferrer",className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f))}else if(b.startsWith("<")&&b.endsWith(">")&&Td(b.slice(1,-1))){const y=b.slice(1,-1);h.push(e.jsx("a",{href:`mailto:${y}`,className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f))}else if(Td(fi(b).linkText)){const{linkText:y,suffix:C}=fi(b);h.push(e.jsx("a",{href:`mailto:${y}`,className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f)),C&&h.push(C)}else if(b.startsWith("http")||b.startsWith("www.")){const{linkText:y,suffix:C}=fi(b),I=y.startsWith("www.")?`https://${y}`:y;h.push(e.jsx("a",{href:I,target:"_blank",rel:"noreferrer",className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:y},f)),C&&h.push(C)}else{const y=b.match(/^\[([^\]]+)\]\((.*)\)$/),C=b.match(/^\[([^\]]+)\]\[([^\]]*)\]$/),I=b.match(/^\[([^\]]+)\]$/),F=C?C[2]||C[1]:I?.[1]??null,B=F?l.referenceDefinitions.get(qa(F)):null,E=y?Ui(y[2]):null,N=E?.href??B?.href??null,$=N?Du(N):null,T=y?.[1]??C?.[1]??I?.[1]??"";h.push($?e.jsx("a",{href:$,title:E?.title??B?.title,target:"_blank",rel:"noreferrer",className:`${s?"break-all":"whitespace-nowrap"} text-primary underline decoration-primary/40 underline-offset-2 hover:decoration-primary`,children:it(T,`${f}-link`,s,l)},f):b)}m=c.lastIndex}return m<u.length&&h.push(Id(u.slice(m))),h.length>0?h:[t]}function Ju(t){return/(?: {2,}|\\)$/.test(t)}function Qu(t){return t.replace(/(?: {2,}|\\)$/,"")}function Ja(t){return/^(?: {4}|\t)/.test(t)}function Zu(t){return t.startsWith(" ")?t.slice(1):t.replace(/^ {4}/,"")}function ef(t,n,s){const l=[];return t.forEach((u,c)=>{const h=Ju(u);l.push(...it(Qu(u),`${n}-${c}`,!0,s)),c<t.length-1&&l.push(h?e.jsx("br",{},`${n}-${c}-br`):" ")}),l}function Hi(t,n,s){const l=[],u=[];return t.forEach((c,h)=>{u.push(Ju(c)),l.push(it(Qu(c),`${n}-${h}`,!0,s))}),{perLine:l,hardBreaks:u}}function zi(t,n,s,l,u){const c=[];return t.forEach((h,m)=>{const g=s[m]??0,b=!!(u&&g>=u.start&&g<=u.end);c.push(e.jsx("span",{"data-md-ref-start":g,"data-md-ref-end":g,"data-selected":b?"true":void 0,children:h},`${l}-ref-${m}`)),m<t.length-1&&c.push(n[m]?e.jsx("br",{},`${l}-${m}-br`):" ")}),c}function Is(t){const n=t.trim().replace(/^\|/,"").replace(/\|$/,""),s=[];let l="",u=!1,c=0,h=0;for(let m=0;m<n.length;m+=1){const g=n[m];if(u){l+=g,u=!1;continue}if(g==="\\"){u=!0;continue}if(g==="`"){const b=m;for(;m+1<n.length&&n[m+1]==="`";)m+=1;const f=m-b+1;l+="`".repeat(f),c===0?c=f:c===f&&(c=0);continue}if(c===0&&g==="["?h+=1:c===0&&g==="]"&&h>0&&(h-=1),g==="|"&&c===0&&h===0){s.push(l.trim()),l="";continue}l+=g}return u&&(l+="\\"),s.push(l.trim()),s}function tf(t){return Is(t).map(n=>/^:-+:$/.test(n)?"center":/^-+:$/.test(n)?"right":/^:-+$/.test(n)?"left":null)}function Qa(t){return t==="center"?"text-center":t==="right"?"text-right":"text-left"}function Za(t){return/^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)*\|?$/.test(t.trim())}function rf(t,n){return t>96||t>44&&n>.35}function ao(t){return(t.match(/^\s*/)?.[0]??"").replace(/\t/g," ").length}function Ds(t){const n=t.trim().match(/^([-+*]|\d+[.)])\s+(.+)$/);if(!n)return null;const s=/^\d+[.)]$/.test(n[1]);return{ordered:s,start:s?Number.parseInt(n[1],10):void 0,content:n[2]}}function el(t,n,s,l,u,c=new Set){const h=[],m=[];let g=n;for(;g<t.length;){const b=t[g];if(u&&(Xa(b)||c.has(g))){g+=1;continue}const f=Ds(b),S=ao(b);if(!f){if(S>s&&m.length>0){([...m].reverse().find(F=>F.indent<S)?.item??m[m.length-1].item).paragraphs.push(b.trim());for(const F of m)F.item.lineEnd=g+1;g+=1;continue}break}if(S<s||S===s&&f.ordered!==l)break;const y={content:f.content,ordered:f.ordered,start:f.start,children:[],paragraphs:[],lineStart:g+1,lineEnd:g+1};for(;m.length>0&&m[m.length-1].indent>=S;)m.pop();const C=m[m.length-1]?.item??null;C?C.children.push(y):h.push(y),m.push({indent:S,item:y});for(const I of m)I.item.lineEnd=g+1;g+=1}return{items:h,nextIndex:g}}function ab(t){const n=t.find(l=>Ds(l));if(!n)return[];const s=Ds(n);return s?el(t,0,ao(n),s.ordered,!0,Hu(t)).items:[]}function tl(t,n,s,l=0){return t.map((u,c)=>{const h=u.content.match(/^\[([ xX])\]\s+(.+)$/);return{key:`item-${c}`,taskItem:!!h,refStart:u.lineStart+l,refEnd:u.lineEnd+l,content:e.jsxs(e.Fragment,{children:[h?e.jsx("input",{type:"checkbox",checked:h[1].toLowerCase()==="x",readOnly:!0,className:"mr-2 align-[-2px] accent-primary"}):null,it(h?.[2]??u.content,`li-${n}-${c}`,!0,s),u.paragraphs.length>0&&e.jsx("div",{className:"mt-1 space-y-1 text-muted-foreground",children:u.paragraphs.map((m,g)=>e.jsx("p",{children:it(m,`li-${n}-${c}-p-${g}`,!0,s)},`paragraph-${g}`))})]}),groups:ob(u.children,`${n}-${c}`,s,l)}})}function ob(t,n,s,l=0){const u=[];for(const c of t){const h=u[u.length-1];h&&h.ordered===c.ordered?h.items.push(c):u.push({ordered:c.ordered,items:[c]})}return u.map((c,h)=>({ordered:c.ordered,start:c.ordered?c.items[0]?.start:void 0,items:tl(c.items,`${n}-g${h}`,s,l)}))}function rl(t,n){return t.map(s=>{const l=!!(n&&s.refStart<=n.end&&s.refEnd>=n.start);return e.jsxs("li",{className:s.taskItem?"list-none":void 0,"data-md-ref-start":s.refStart,"data-md-ref-end":s.refEnd,"data-selected":l?"true":void 0,children:[s.content,s.groups.length>0&&ib(s.groups,n)]},s.key)})}function ib(t,n){return t.map((s,l)=>{const u=s.ordered?"ol":"ul";return e.jsx(u,{start:s.start,className:`${s.ordered?"list-decimal":"list-disc"} mt-1 space-y-0.5 pl-4 marker:text-muted-foreground/60`,children:rl(s.items,n)},`nested-${l}`)})}function lb(t){const n=Array.from(t.footnoteDefinitions.values()).sort((s,l)=>s.index-l.index);return n.length===0?null:e.jsxs("section",{className:"mt-3 border-t border-border/20 pt-2 text-[12px] leading-5 text-muted-foreground",children:[e.jsx("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/80",children:t.footnotesLabel}),e.jsx("ol",{className:"list-decimal space-y-1 pl-5",children:n.map(s=>e.jsxs("li",{id:`fn-${s.id}`,children:[it(s.text,`footnote-${s.id}`,!0,t)," ",e.jsx("a",{href:`#fnref-${s.id}`,className:"text-primary no-underline","aria-label":t.backToFootnoteLabel(s.index),children:"↩"})]},s.id))})]})}function cb(t,n,s,l){const u=[];let c=0;const h=m=>l?.[m]??m+1;for(;c<t.length;){const m=t[c],g=m.trim();if(!g){c+=1;continue}if(/^<details>\s*$/i.test(g)){const E=c;let N="Details";const $=[];for(c+=1;c<t.length&&!/^<\/details>\s*$/i.test(t[c].trim());){const T=t[c].trim().match(/^<summary>(.*?)<\/summary>\s*$/i);T?N=T[1].trim()||N:$.push(t[c].trimStart()),c+=1}c<t.length&&(c+=1),u.push({kind:"static",node:e.jsxs("details",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface px-3 py-2 text-muted-foreground",children:[e.jsx("summary",{className:"cursor-pointer text-sm font-semibold text-foreground",children:it(N,`${n}-details-${E}-summary`,!0,s)}),$.length>0&&e.jsx("div",{className:"mt-2 text-sm leading-6",children:ef($,`${n}-details-${E}`,s)})]},`${n}-details-${E}`)});continue}const b=Xu(m);if(b){const E=[m],N=c;for(c+=1;c<t.length&&!b.selfContained&&!new RegExp(`</${b.tag}>`,"i").test(t[c]);)E.push(t[c]),c+=1;c<t.length&&!b.selfContained&&(E.push(t[c]),c+=1),u.push({kind:"static",node:e.jsx(Yu,{html:E.join(`
|
|
1639
1639
|
`)},`${n}-html-${N}`)});continue}const f=g.match(/^(```|~~~)\s*(.*)$/);if(f){const E=[],N=f[1],$=f[2]?.trim(),T=c;for(c+=1;c<t.length&&!t[c].trim().startsWith(N);)E.push(t[c]),c+=1;c<t.length&&(c+=1),$.toLowerCase()==="mermaid"?u.push({kind:"static",node:e.jsx(sf,{code:E.join(`
|
|
1640
1640
|
`),blockKey:`${n}-code-${T}`},`${n}-code-${T}`)}):["math","latex","tex"].includes($.toLowerCase())?u.push({kind:"static",node:e.jsx(Ts,{tex:E.join(`
|
|
1641
1641
|
`),display:!0},`${n}-code-${T}`)}):u.push({kind:"code",key:`${n}-code-${T}`,code:E.join(`
|
|
1642
1642
|
`),lang:$,blockKey:`${n}-code-${T}`,codeStartLine:h(T)+1});continue}if(Ja(m)){const E=[],N=c;for(;c<t.length&&(Ja(t[c])||!t[c].trim());)E.push(t[c].trim()?Zu(t[c]):""),c+=1;u.push({kind:"code",key:`${n}-indented-code-${N}`,code:E.join(`
|
|
1643
|
-
`).replace(/\n+$/,""),lang:"",blockKey:`${n}-indented-code-${N}`,codeStartLine:h(N)});continue}const S=g.match(/^(#{1,6})\s+(.+)$/);if(S){const N=`h${Math.min(6,S[1].length+1)}`,$=Bu(S[2]),T=Bi($,s);u.push({kind:"static",node:e.jsx(N,{id:T,className:"scroll-mt-16 font-semibold text-foreground",children:it($,`${n}-heading-${c}`,!0,s)},`${n}-heading-${c}`)}),c+=1;continue}if(c+1<t.length&&m.includes("|")&&Za(t[c+1])){const E=Is(m),N=tf(t[c+1]),$=[],T=c;for(c+=2;c<t.length&&t[c].includes("|")&&t[c].trim();)$.push(Is(t[c])),c+=1;u.push({kind:"static",node:e.jsx("div",{className:Mu,"data-markdown-table-scroll":!0,children:e.jsxs("table",{className:"w-max min-w-full max-w-none table-auto border-collapse text-left text-[11px] sm:text-xs",children:[e.jsx("thead",{className:"bg-surface-2 text-foreground",children:e.jsx("tr",{children:E.map((U,D)=>e.jsx("th",{className:`${Cu} ${Qa(N[D]??null)}`,children:e.jsx("div",{className:Ya,children:it(U,`${n}-th-${T}-${D}`,!0,s)})},`h-${D}`))})}),e.jsx("tbody",{children:$.map((U,D)=>e.jsx("tr",{className:"border-t border-border/10",children:E.map((p,i)=>e.jsx("td",{className:`${Nu} ${Qa(N[i]??null)}`,children:e.jsx("div",{className:Ya,children:it(U[i]??"",`${n}-td-${T}-${D}-${i}`,!0,s)})},`c-${i}`))},`r-${D}`))})]})},`${n}-table-${T}`)});continue}const y=Ds(m);if(y){const E=y.ordered,N=ao(m),$=y.start,T=c,U=el(t,c,N,E,!1);c=U.nextIndex,u.push({kind:"list",keyPrefix:`${n}-list-${T}`,ordered:E,start:E?$:void 0,renders:tl(U.items,`${n}-list-${T}`,s,h(0)-1)});continue}const C=[m.trimStart()],I=[h(c)],F=c;for(c+=1;c<t.length&&t[c].trim()&&!Fi(t[c])&&!(c+1<t.length&&t[c].includes("|")&&Za(t[c+1]));)C.push(t[c].trimStart()),I.push(h(c)),c+=1;const B=Hi(C,`${n}-p-${F}`,s);u.push({kind:"paragraph",keyPrefix:`${n}-p-${F}`,perLine:B.perLine,hardBreaks:B.hardBreaks,lineNums:I})}return u}function db(t,n){return t.map(s=>{switch(s.kind){case"static":return s.node;case"paragraph":return e.jsx("p",{children:zi(s.perLine,s.hardBreaks,s.lineNums,s.keyPrefix,n)},s.keyPrefix);case"list":{const l=s.ordered?"ol":"ul";return e.jsx(l,{start:s.start,className:`${s.ordered?"list-decimal":"list-disc"} space-y-0.5 pl-4 marker:text-muted-foreground/70`,children:rl(s.renders,n)},s.keyPrefix)}case"code":return e.jsx(eo,{code:s.code,lang:s.lang,blockKey:s.blockKey,codeStartLine:s.codeStartLine,lineRange:n},s.key)}})}let Ba=null,_d=!1;const Oa=16,nf=192;function ub(){return Ba||(Ba=As(()=>import("./mermaid.core-
|
|
1643
|
+
`).replace(/\n+$/,""),lang:"",blockKey:`${n}-indented-code-${N}`,codeStartLine:h(N)});continue}const S=g.match(/^(#{1,6})\s+(.+)$/);if(S){const N=`h${Math.min(6,S[1].length+1)}`,$=Bu(S[2]),T=Bi($,s);u.push({kind:"static",node:e.jsx(N,{id:T,className:"scroll-mt-16 font-semibold text-foreground",children:it($,`${n}-heading-${c}`,!0,s)},`${n}-heading-${c}`)}),c+=1;continue}if(c+1<t.length&&m.includes("|")&&Za(t[c+1])){const E=Is(m),N=tf(t[c+1]),$=[],T=c;for(c+=2;c<t.length&&t[c].includes("|")&&t[c].trim();)$.push(Is(t[c])),c+=1;u.push({kind:"static",node:e.jsx("div",{className:Mu,"data-markdown-table-scroll":!0,children:e.jsxs("table",{className:"w-max min-w-full max-w-none table-auto border-collapse text-left text-[11px] sm:text-xs",children:[e.jsx("thead",{className:"bg-surface-2 text-foreground",children:e.jsx("tr",{children:E.map((U,D)=>e.jsx("th",{className:`${Cu} ${Qa(N[D]??null)}`,children:e.jsx("div",{className:Ya,children:it(U,`${n}-th-${T}-${D}`,!0,s)})},`h-${D}`))})}),e.jsx("tbody",{children:$.map((U,D)=>e.jsx("tr",{className:"border-t border-border/10",children:E.map((p,i)=>e.jsx("td",{className:`${Nu} ${Qa(N[i]??null)}`,children:e.jsx("div",{className:Ya,children:it(U[i]??"",`${n}-td-${T}-${D}-${i}`,!0,s)})},`c-${i}`))},`r-${D}`))})]})},`${n}-table-${T}`)});continue}const y=Ds(m);if(y){const E=y.ordered,N=ao(m),$=y.start,T=c,U=el(t,c,N,E,!1);c=U.nextIndex,u.push({kind:"list",keyPrefix:`${n}-list-${T}`,ordered:E,start:E?$:void 0,renders:tl(U.items,`${n}-list-${T}`,s,h(0)-1)});continue}const C=[m.trimStart()],I=[h(c)],F=c;for(c+=1;c<t.length&&t[c].trim()&&!Fi(t[c])&&!(c+1<t.length&&t[c].includes("|")&&Za(t[c+1]));)C.push(t[c].trimStart()),I.push(h(c)),c+=1;const B=Hi(C,`${n}-p-${F}`,s);u.push({kind:"paragraph",keyPrefix:`${n}-p-${F}`,perLine:B.perLine,hardBreaks:B.hardBreaks,lineNums:I})}return u}function db(t,n){return t.map(s=>{switch(s.kind){case"static":return s.node;case"paragraph":return e.jsx("p",{children:zi(s.perLine,s.hardBreaks,s.lineNums,s.keyPrefix,n)},s.keyPrefix);case"list":{const l=s.ordered?"ol":"ul";return e.jsx(l,{start:s.start,className:`${s.ordered?"list-decimal":"list-disc"} space-y-0.5 pl-4 marker:text-muted-foreground/70`,children:rl(s.renders,n)},s.keyPrefix)}case"code":return e.jsx(eo,{code:s.code,lang:s.lang,blockKey:s.blockKey,codeStartLine:s.codeStartLine,lineRange:n},s.key)}})}let Ba=null,_d=!1;const Oa=16,nf=192;function ub(){return Ba||(Ba=As(()=>import("./mermaid.core-BiCQSET3.js").then(t=>t.bl),__vite__mapDeps([17,1,2,3,4,5,18])).then(t=>t.default??t).catch(t=>{throw Ba=null,t})),Ba}function fb(t){_d||(t.initialize({startOnLoad:!1,securityLevel:"strict",theme:"neutral"}),_d=!0)}function hb(t){const n=t.match(/\sviewBox=(["'])([^"']+)\1/i);if(!n)return t;const[,,s]=n,l=s.trim().split(/[\s,]+/).map(Number),[,,u,c]=l;if(!Number.isFinite(u)||!Number.isFinite(c)||u<=0||c<=0)return t;const h=Math.max(nf,Math.ceil(u)),m=Math.ceil(h/u*c);return t.replace(/<svg\b([^>]*)>/i,(g,b)=>`<svg${b.replace(/\s(?:width|height)=(["']).*?\1/gi,"").replace(/\sstyle=(["']).*?\1/gi,"")} width="${h}" height="${m}">`)}function mb(t){const n=t?.querySelector("svg");if(!n)return;let s;try{s=n.getBBox()}catch{return}if(!Number.isFinite(s.width)||!Number.isFinite(s.height)||s.width<=0||s.height<=0)return;const l=s.x-Oa,u=s.y-Oa,c=s.width+Oa*2,h=s.height+Oa*2,m=Math.max(nf,Math.ceil(c)),g=Math.ceil(m/c*h);n.setAttribute("viewBox",`${l} ${u} ${c} ${h}`),n.setAttribute("width",String(m)),n.setAttribute("height",String(g)),n.removeAttribute("style")}function pb(t){const n=t.trim().split(/\s+/,1)[0]?.toLowerCase();if(!n)return null;const s=n.replace(/^language-/,"");return nu(`code.${s}`)??s}function sf({code:t,blockKey:n}){const{t:s}=Rt(),[l,u]=a.useState(null),[c,h]=a.useState(!1),m=a.useRef(null),g=a.useContext(_u);a.useEffect(()=>{let f=!1;return u(null),h(!1),ub().then(async S=>{fb(S);const y=`termdock-md-mermaid-${n.replace(/[^a-zA-Z0-9_-]/g,"-")}`,{svg:C}=await S.render(y,t);f||u(hb(C))}).catch(()=>{f||h(!0)}),()=>{f=!0}},[n,t]),a.useLayoutEffect(()=>{l&&mb(m.current)},[l]);const b=a.useCallback(()=>{const f=m.current?.querySelector("svg")?.outerHTML??l;f&&g?.(f)},[g,l]);return c?e.jsx(eo,{code:t,lang:"mermaid",blockKey:`${n}-fallback`}):e.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface shadow-sm",children:[e.jsx("div",{className:"border-b border-border/15 bg-surface-2 px-3 py-1.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:"mermaid"}),e.jsx("div",{className:"bg-surface p-3",children:l?e.jsx("button",{type:"button",className:"block max-w-full rounded text-left focus:outline-none focus:ring-2 focus:ring-ring/45",title:s("rightSidebar.openMermaidDiagram"),onClick:f=>{f.stopPropagation(),b()},children:e.jsx("span",{ref:m,role:"img","aria-label":s("rightSidebar.mermaidDiagram"),className:"block max-h-[70vh] max-w-full overflow-auto rounded bg-white p-2 text-slate-900 [&_svg]:block [&_svg]:h-auto [&_svg]:max-w-full",dangerouslySetInnerHTML:{__html:l}})}):e.jsx("div",{className:"py-6 text-center text-xs text-muted-foreground",children:s("rightSidebar.renderingDiagram")})})]})}function eo({code:t,lang:n,blockKey:s,codeStartLine:l,lineRange:u}){const c=pb(n),[h,m]=a.useState(null);a.useEffect(()=>{if(!c||!su(t)){m(null);return}let b=!1;return au().then(f=>{if(b||!f.registered(c)){b||m(null);return}try{m(ou(f,t,c))}catch{b||m(null)}}).catch(()=>{b||m(null)}),()=>{b=!0}},[s,t,c]);const g=h??(t||" ").split(`
|
|
1644
1644
|
`).map(b=>[b||" "]);return e.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface shadow-sm",children:[n&&e.jsx("div",{className:"border-b border-border/15 bg-surface-2 px-3 py-1.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:n}),e.jsx("pre",{className:`${Xi} termdock-code overflow-auto p-3 text-[11px] leading-relaxed text-foreground`,children:e.jsx("code",{children:g.map((b,f)=>{const S=l!=null?l+f:null,y=!!(u&&S!=null&&S>=u.start&&S<=u.end);return e.jsxs("span",{"data-md-ref-start":S??void 0,"data-md-ref-end":S??void 0,"data-selected":y?"true":void 0,children:[b,f<g.length-1?`
|
|
1645
1645
|
`:null]},`${s}-line-${f}`)})})})]})}function nl(t,n,s,l,u){t=Gg(t);const c=zg(t),h=Hu(t),m=[],g={markdownFilePath:n,rootPath:s,referenceDefinitions:c,footnoteDefinitions:Wg(t),headingSlugCounts:new Map,images:m,onImageOpen:l,footnotesLabel:u?.footnotes??"Footnotes",backToFootnoteLabel:u?.backToFootnote??(y=>`Back to footnote ${y}`)},b=[];let f=0;for(;f<t.length;){const y=t[f],C=y.trim();if(Xa(y)||h.has(f)){f+=1;continue}if(!C){f+=1;continue}if(/^<details>\s*$/i.test(C)){const D=f;let p="Details";const i=[];for(f+=1;f<t.length&&!/^<\/details>\s*$/i.test(t[f].trim());){const O=t[f].trim().match(/^<summary>(.*?)<\/summary>\s*$/i);O?p=O[1].trim()||p:i.push(t[f].trimStart()),f+=1}f<t.length&&(f+=1),b.push({key:`details-${D}`,startLine:D+1,endLine:f,content:e.jsxs("details",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface px-3 py-2 text-muted-foreground",children:[e.jsx("summary",{className:"cursor-pointer text-sm font-semibold text-foreground",children:it(p,`details-${D}-summary`,!0,g)}),i.length>0&&e.jsx("div",{className:"mt-2 text-sm leading-6",children:ef(i,`details-${D}`,g)})]})});continue}const I=Xu(y);if(I){const D=[y],p=f;for(f+=1;f<t.length&&!I.selfContained&&!new RegExp(`</${I.tag}>`,"i").test(t[f]);)D.push(t[f]),f+=1;f<t.length&&!I.selfContained&&(D.push(t[f]),f+=1),b.push({key:`html-${p}`,startLine:p+1,endLine:f,content:e.jsx(Yu,{html:D.join(`
|
|
1646
1646
|
`)})});continue}const F=C.match(/^(```|~~~)\s*(.*)$/);if(F){const D=[],p=F[1],i=F[2]?.trim(),O=f;for(f+=1;f<t.length&&!t[f].trim().startsWith(p);)D.push(t[f]),f+=1;f<t.length&&(f+=1),b.push({key:`code-${O}`,startLine:O+1,endLine:f,fineGrained:i.toLowerCase()!=="mermaid"&&!["math","latex","tex"].includes(i.toLowerCase()),content:i.toLowerCase()==="mermaid"?e.jsx(sf,{code:D.join(`
|
|
@@ -1656,7 +1656,7 @@ ${se}${W}
|
|
|
1656
1656
|
${A.join(`
|
|
1657
1657
|
`)}
|
|
1658
1658
|
${se}
|
|
1659
|
-
`})(),yr=`path:${Oe}`,wr=E?`path:${Oe}:${E.start}-${E.end}`:yr,_r=$===yr,Fr=$===wr,Cn=T===yr,ts=T===wr,rn=Fr||ts,Kt=E?E.start===E.end?`L${E.start}`:`L${E.start}-${E.end}`:null,Br=A=>{const W=te.current;if(!W)return;const se=W.getBoundingClientRect(),ke=A.currentTarget.getBoundingClientRect(),Ue=A.clientX||ke.left+ke.width/2,Be=(A.clientY||ke.top+ke.height/2)-se.top+W.scrollTop,We=g?116:132,tt=W.scrollLeft+Math.max(8,W.clientWidth-We),Nt=Math.min(Math.max(8,Ue-se.left+W.scrollLeft+10),tt);ge({top:Be,left:Nt})},rs=(A,W)=>{Gi()||(Br(A),N(se=>{const ke=Wi(se,W,W);return ke||ge(null),ke}))},ns=(A,W,se)=>{Br(A),N(ke=>{const Ue=Wi(ke,W,se);return Ue||ge(null),Ue})},kr=(A,W,se,ke)=>{ke==="end"&&Br(A),N({start:W,end:se})},tr=A=>{const{scrollTop:W,scrollLeft:se}=A.currentTarget;k(W),hi(i,n,{top:W,left:se,markdownTop:W})},Pe=A=>{if(A.directory){m?.(A.path);return}if(A.path===Oe||j.kind==="text"&&A.path===j.sourcePath){A.fragment&&jn(A.fragment);return}ae(W=>[...W,Oe]),Ke.current=A.path,je(A.fragment),N(null),O(A.path)},rr=()=>{const A=Q[Q.length-1];A&&(ae(W=>W.slice(0,-1)),Ke.current=A,je(null),N(null),O(A))},nn=A=>{const{scrollTop:W,scrollLeft:se}=A.currentTarget;hi(i,n,{top:W,left:se})},Nn=()=>{if(t){t(Dr,wr);return}E&&l(Dr,wr)},ss=async()=>{if(!(!Oe||Le.status==="pending")&&!(j.kind==="loading"||j.kind==="error")){we({status:"pending"});try{await em(Oe),we({status:"idle"})}catch(A){we({status:"error",message:A instanceof Error?A.message:p("rightSidebar.downloadFailed")})}}};return e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-surface text-foreground",children:[be.popoverNode,e.jsxs("div",{className:`shrink-0 border-b border-border/15 px-3 ${g&&(Ft||vr)?"py-1.5":"py-2"}`,children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[g&&h&&e.jsx("button",{type:"button",onClick:h,className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95","aria-label":p("rightSidebar.backToFileList"),title:p("rightSidebar.backToFileList"),children:e.jsx(Zd,{size:16})}),Q.length>0&&e.jsxs("button",{type:"button",onClick:rr,className:`inline-flex h-9 shrink-0 items-center justify-center gap-1 rounded-full bg-primary/10 text-primary transition hover:bg-primary/15 active:scale-95 ${g?"w-9":"px-2.5"}`,"aria-label":p("rightSidebar.backToPreviousPreview"),title:p("rightSidebar.backToPreviousPreview"),children:[e.jsx($s,{size:15}),!g&&e.jsx("span",{className:"text-[11px] font-medium",children:p("rightSidebar.backToPreviousPreview")})]}),e.jsxs("div",{className:"min-w-0",title:Oe,children:[e.jsx("div",{className:"truncate text-sm font-medium text-foreground",children:Lt.name}),Lt.dir&&e.jsx("div",{className:"mt-0.5 truncate text-[11px] text-muted-foreground",children:Lt.dir})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[Tr&&e.jsx("button",{type:"button",onClick:at?mr:Rn,className:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 ${at?"bg-surface-elevated text-foreground":"bg-surface-2"}`,"aria-label":p("rightSidebar.findInFile"),title:`${p("rightSidebar.findInFile")} (⌘/Ctrl+F)`,children:e.jsx(Jn,{size:14})}),xr&&j.kind==="text"&&e.jsx("button",{type:"button",onClick:()=>{b&&y?.(),$e(A=>{const W=A==="preview"?"source":"preview";return St(xu,W),W}),N(null)},className:`inline-flex h-9 shrink-0 items-center justify-center gap-1 rounded-full bg-surface-2 text-xs font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 ${g?"w-9 px-0":"px-3"}`,"aria-label":p(he==="preview"?"rightSidebar.markdownSource":"rightSidebar.markdownPreview"),title:p(he==="preview"?"rightSidebar.markdownSource":"rightSidebar.markdownPreview"),children:g?he==="preview"?e.jsx(Ei,{size:14}):e.jsx(Mi,{size:14}):p(he==="preview"?"rightSidebar.markdownSource":"rightSidebar.markdownPreview")}),Bs&&j.kind==="text"&&e.jsx("button",{type:"button",onClick:()=>{J(A=>{const W=A==="preview"?"source":"preview";return Cp(i,n,W),W}),N(null)},className:`inline-flex h-9 shrink-0 items-center justify-center gap-1 rounded-full bg-surface-2 text-xs font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 ${g?"w-9 px-0":"px-3"}`,"aria-label":p(M==="preview"?"rightSidebar.htmlSource":"rightSidebar.htmlPreview"),title:p(M==="preview"?"rightSidebar.htmlSource":"rightSidebar.htmlPreview"),children:g?M==="preview"?e.jsx(Ei,{size:14}):e.jsx(Mi,{size:14}):p(M==="preview"?"rightSidebar.htmlSource":"rightSidebar.htmlPreview")}),vr&&e.jsx("button",{type:"button",onClick:()=>{fe.current?.toggleFullscreen()},className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95","aria-label":p(Re?"rightSidebar.htmlFullscreenExit":"rightSidebar.htmlFullscreenEnter"),title:p(Re?"rightSidebar.htmlFullscreenExit":"rightSidebar.htmlFullscreenEnter"),children:e.jsx(eu,{size:15})}),!g&&e.jsx("button",{type:"button",onClick:()=>s(Oe,yr),...be(pr,yr),className:`inline-flex h-9 items-center gap-1 rounded-full px-3 text-xs font-semibold transition active:scale-95 ${_r||Cn?"bg-surface-elevated text-foreground":"bg-primary/15 text-primary hover:bg-primary/25"}`,title:p("rightSidebar.insertReference",{reference:pr}),children:p(Cn?"rightSidebar.copied":_r?"rightSidebar.inserted":"rightSidebar.insertFileRef")}),e.jsx("button",{type:"button",onClick:()=>{navigator.clipboard?.writeText(pr)},className:"inline-flex h-9 w-9 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95",title:p("rightSidebar.copyReference",{reference:pr}),"aria-label":p("rightSidebar.copyFileRef"),children:e.jsx(Bh,{size:13})}),e.jsx("button",{type:"button",onClick:()=>{ss()},disabled:Le.status==="pending"||j.kind==="loading"||j.kind==="error",className:"inline-flex h-9 w-9 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 disabled:opacity-50 disabled:active:scale-100",title:Le.status==="error"?Le.message??p("rightSidebar.downloadFailed"):p("rightSidebar.downloadFile"),"aria-label":p("rightSidebar.downloadFile"),children:Le.status==="pending"?e.jsx(jt,{size:13,className:"animate-spin"}):e.jsx(fm,{size:14})})]})]}),at&&Tr&&e.jsxs("div",{className:"mt-2 flex min-w-0 items-center gap-1.5","data-file-preview-search":!0,children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center rounded-lg bg-surface-2 px-2 focus-within:bg-surface-elevated",children:[e.jsx(Jn,{size:13,className:"shrink-0 text-muted-foreground","aria-hidden":"true"}),e.jsx("input",{ref:re,type:"search",value:qt,onChange:A=>lt(A.target.value),onKeyDown:A=>{A.key==="Enter"&&(A.preventDefault(),mt(A.shiftKey?-1:1))},className:"h-8 min-w-0 flex-1 bg-transparent px-2 text-xs text-foreground outline-none placeholder:text-muted-foreground/70",placeholder:p("rightSidebar.findInFilePlaceholder"),"aria-label":p("rightSidebar.findInFile")}),e.jsx("span",{className:"shrink-0 text-[10px] tabular-nums text-muted-foreground","aria-live":"polite",children:ct.length>0?`${Dt+1}/${ct.length}`:"0/0"})]}),e.jsx("button",{type:"button",onClick:()=>mt(-1),disabled:ct.length===0,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground disabled:opacity-35","aria-label":p("rightSidebar.previousSearchMatch"),title:`${p("rightSidebar.previousSearchMatch")} (Shift+Enter)`,children:e.jsx(Xd,{size:13})}),e.jsx("button",{type:"button",onClick:()=>mt(1),disabled:ct.length===0,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground disabled:opacity-35","aria-label":p("rightSidebar.nextSearchMatch"),title:`${p("rightSidebar.nextSearchMatch")} (Enter)`,children:e.jsx(hm,{size:13})}),e.jsx("button",{type:"button",onClick:mr,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground","aria-label":p("rightSidebar.closeFileSearch"),title:`${p("rightSidebar.closeFileSearch")} (Esc)`,children:e.jsx(Gt,{size:13})})]}),br&&!(g&&(Ft||vr))&&e.jsxs("div",{className:"mt-1 flex items-center gap-2 text-[10px] text-muted-foreground",children:[br.size!==null&&e.jsx("span",{children:p("rightSidebar.byteCount",{count:br.size.toLocaleString()})}),"truncated"in br&&br.truncated&&e.jsx("span",{className:"text-[color:var(--warning)]",children:p("rightSidebar.previewTruncated")}),"mimeType"in br&&e.jsx("span",{children:br.mimeType}),"dimensions"in j&&j.dimensions&&e.jsxs("span",{children:[j.dimensions.width," × ",j.dimensions.height]})]}),!(g&&(Ft||vr))&&!oo&&j.kind!=="binary"&&e.jsx("div",{className:"mt-1 flex h-4 items-center gap-2 text-[10px] text-muted-foreground/75",children:e.jsx("span",{className:"truncate",children:tn?p("rightSidebar.edaPickHint"):Fs?p("rightSidebar.csvTablePreview"):At||Zn?p("rightSidebar.kicadProjectPickHint"):Ct?p("rightSidebar.videoPreviewHint"):Os?p("rightSidebar.imagePreviewHint"):Ft?E?p("rightSidebar.selectedLineHint",{lineLabel:Kt??""}):p("rightSidebar.markdownPreviewHint"):vr?p("rightSidebar.htmlPreviewHint"):E?p("rightSidebar.selectedLineHint",{lineLabel:Kt??""}):p("rightSidebar.multiLineHint")})})]}),j.kind==="loading"?e.jsx("div",{className:"min-h-0 flex-1 overflow-auto px-3 py-8 text-center text-sm text-muted-foreground",children:j.mode==="eda"?p("rightSidebar.edaLoading"):j.mode==="image"?p("rightSidebar.loadingImage"):j.mode==="model3d"?p("rightSidebar.model3dLoading"):j.mode==="video"?p("rightSidebar.loadingVideo"):"Loading file…"}):j.kind==="error"?e.jsxs("div",{className:"min-h-0 flex-1 overflow-auto",children:[e.jsx("div",{className:"mx-3 mt-3 border border-destructive/20 bg-destructive/5 px-4 py-4 text-sm text-destructive",children:j.message}),e.jsx("button",{type:"button",onClick:Sn,className:"mx-3 mt-3 rounded-lg bg-surface-2 px-4 py-2 text-sm text-foreground hover:bg-surface-3",children:p("common.retry")})]}):j.kind==="binary"?e.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:e.jsx("div",{className:"mx-3 mt-3 rounded-xl border border-border/15 bg-surface-2 px-4 py-6 text-center text-sm text-muted-foreground",children:p("rightSidebar.binaryPreviewHint")})}):j.kind==="image"?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface p-3",children:j.meta.mimeType==="image/svg+xml"?e.jsx(hu,{blobUrl:j.objectUrl,filePath:Oe,viewLabel:"SVG 文件",onInsertAnnotation:u}):e.jsx(yf,{src:j.objectUrl,alt:Lt.name,vector:!1,onLoad:A=>{const W=A.currentTarget;q(se=>se.kind==="image"?{...se,dimensions:{width:W.naturalWidth,height:W.naturalHeight}}:se)},onError:()=>q({kind:"error",message:p("rightSidebar.imageLoadFailed")})})}):j.kind==="video"?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface p-3",children:e.jsx(Fp,{url:j.url,onLoadError:()=>q({kind:"error",message:p("rightSidebar.videoLoadFailed")})})}):j.kind==="eda"?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface",children:e.jsx(Gp,{blobUrl:j.objectUrl,filePath:j.sourcePath,view:j.view,board:Oe.toLowerCase().endsWith(".kicad_pcb"),onViewChange:ne,onInsertAnnotation:t??u,onRefresh:Sn,interactive3d:ue?e.jsx(a.Suspense,{fallback:e.jsx("div",{className:"min-h-0 flex-1 px-3 py-8 text-center text-sm text-muted-foreground",children:p("rightSidebar.model3dLoading")}),children:e.jsx(Rd,{blobUrl:ue.objectUrl,ext:".glb",fileName:Lt.name,filePath:ue.sourcePath,features:null,onInsertFeature:t??u,unitScale:1e3,dimensionUnit:"mm",coordinateSystemLabel:"KiCad 3D 导出坐标 Y-up",annotationPrefix:"PCB三维标注",normalizePickedPartName:A=>/^[A-Za-z]{1,5}\d+[A-Za-z0-9._-]*$/.test(A)?A:"PCB板体/铜箔/丝印",active:j.view==="pcb-3d"})}):void 0})}):j.kind==="model3d"?e.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-surface",children:e.jsx(a.Suspense,{fallback:e.jsx("div",{className:"min-h-0 flex-1 px-3 py-8 text-center text-sm text-muted-foreground",children:p("rightSidebar.model3dLoading")}),children:e.jsx(Rd,{blobUrl:j.objectUrl,ext:j.ext,fileName:Lt.name,filePath:j.sourcePath,features:L,onInsertFeature:t??u,onRefresh:Sn})})}):j.kind==="text"&&Fs?e.jsx(Vp,{content:j.content,filePath:Oe,onInsertAnnotation:t??u},Oe):j.kind==="text"&&(At||Zn)?e.jsx(Jp,{content:j.content,filePath:Oe,localState:Zn,onInsertAnnotation:t??u},Oe):Ft?e.jsxs("div",{ref:te,className:"termdock-native-select relative min-h-0 flex-1 overflow-auto bg-surface","data-markdown-preview-scroller":!0,onScroll:tr,style:{touchAction:"pan-x pan-y"},children:[e.jsx(cf,{content:j.content,filePath:j.sourcePath,rootPath:i,lineRange:E,onLineRangeClick:ns,onLineRangeDrag:kr,scrollTop:xe,outlineOpen:b,outlineCloseSignal:f,onOutlineOpen:S,onOutlineClose:y,lightboxOpen:C,lightboxCloseSignal:I,onLightboxOpen:F,onLightboxClose:B,onLocalLinkOpen:Pe}),E&&oe&&e.jsxs("button",{type:"button",onClick:Nn,...be(Dr,wr),style:{top:oe.top,left:oe.left,transform:"translateY(-50%)"},className:Od(g,rn),title:`Insert markdown reference: ${Ir}`,children:[e.jsx(Va,{size:g?13:11}),ts?p("rightSidebar.copied"):Fr?p("rightSidebar.inserted"):p("rightSidebar.insertLineRef",{lineLabel:Kt??""})]})]}):vr?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface",children:e.jsx(ag,{ref:fe,src:Oh(Oe),title:`${Lt.name} preview`,exitFullscreenLabel:p("rightSidebar.htmlFullscreenExit"),onFullscreenChange:qe},`${Oe}:${dr}:${fr}`)}):j.kind==="text"?e.jsxs("div",{ref:te,onScroll:nn,className:`${Xi} termdock-native-select termdock-code relative min-h-0 flex-1 overflow-auto rounded-none bg-surface p-2 font-mono text-[11px] leading-relaxed text-foreground`,children:[gr.length>0?e.jsx("div",{className:"min-w-full",children:gr.map((A,W)=>{const se=W+1,ke=!!(E&&se>=E.start&&se<=E.end),Ue=Ae&&Ae.length===gr.length?Ae[W]:null;return e.jsxs("div",{ref:Te=>{Te?V.current.set(se,Te):V.current.delete(se)},role:"button","data-file-preview-line":se,tabIndex:0,onClick:Te=>rs(Te,se),onKeyDown:Te=>{Te.key!=="Enter"&&Te.key!==" "||(Te.preventDefault(),rs(Te,se))},style:{gridTemplateColumns:`${_s}ch 1fr`},className:`group grid w-max min-w-full cursor-text gap-2 rounded-md pr-1 text-left transition ${ke?"bg-[var(--surface-2)] text-foreground":"hover:bg-surface-2"}`,title:`Tap to reference ${pr}:${se}`,children:[e.jsx("span",{className:`select-none rounded text-right text-[10px] transition ${ke?"bg-[var(--surface-elevated)] text-muted-foreground":"text-muted-foreground/55"}`,children:se}),e.jsx("span",{className:"whitespace-pre select-text","data-sidebar-selectable":!0,children:Ue??(A||" ")})]},W)})}):"Empty file.",E&&oe&&e.jsxs("button",{type:"button",onClick:Nn,...be(Dr,wr),style:{top:oe.top,left:oe.left,transform:"translateY(-50%)"},className:Od(g,rn),title:`Insert code reference: ${Ir}`,children:[e.jsx(Va,{size:g?13:11}),ts?p("rightSidebar.copied"):Fr?p("rightSidebar.inserted"):p("rightSidebar.insertLineRef",{lineLabel:Kt??""})]})]}):null]})}function Hb({isOpen:t,sessionId:n,drawerWidthPx:s,onClose:l,onOpen:u,push:c,pinned:h=!1,onTogglePinned:m,rightSidebarFilePreviewOpen:g=!1,rightSidebarFilePreviewCloseSignal:b,onOpenRightSidebarFilePreview:f,onCloseRightSidebarFilePreview:S,rightSidebarRepoPickerOpen:y=!1,rightSidebarRepoPickerCloseSignal:C,onOpenRightSidebarRepoPicker:I,onCloseRightSidebarRepoPicker:F,markdownOutlineOpen:B=!1,markdownOutlineCloseSignal:E,onOpenMarkdownOutline:N,onCloseMarkdownOutline:$,markdownImageLightboxOpen:T=!1,markdownImageLightboxCloseSignal:U,onOpenMarkdownImageLightbox:D,onCloseMarkdownImageLightbox:p}){const{t:i,locale:O}=Rt(),[j,q]=a.useState(""),[le,ne]=a.useState(null),ue=Z(r=>r.rightSearchOpen),G=Z(r=>r.setRightSearchOpen),Y=Z(r=>r.rightSidebarLayoutPreference),L=Z(r=>r.setRightSidebarLayoutPreference),[_,V]=a.useState(()=>Tg()),[te,oe]=a.useState("."),[ge,he]=a.useState(""),[$e,M]=a.useState(!1),[J,fe]=a.useState(!1),[Re,qe]=a.useState(!1),[Ce,ce]=a.useState(!1),xe=a.useDeferredValue(j),[k,Q]=a.useState(null),[ae,Ne]=a.useState([]),[je,Ke]=a.useState([]),[de,Ae]=a.useState(null),[st,Le]=a.useState(null),[we,at]=a.useState(null),[et,qt]=a.useState(null),[lt,ct]=a.useState(()=>ot(yd,Rs)??!1),[Pr,Dt]=a.useState(()=>ot(wd,Rs)??!1),[z,re]=a.useState(()=>ot(kd,Rs)??!1),[be,ze]=a.useState(()=>ot(ii,Eg)??""),[ut,dr]=a.useState(0),[ur,_t]=a.useState(!1),[fr,hr]=a.useState(!1),Sn=a.useRef(null),jn=a.useRef(null),[Tr,mr]=a.useState(!1),[Rn,mt]=a.useState(null),[Oe,Lt]=a.useState(null),[pr,gr]=a.useState(()=>Md(ai)),[_s,br]=a.useState(()=>Md(vd)),[xr,Fs]=a.useState(()=>Mg()),[At,Zn]=a.useState(()=>$g()),[Ft,Bs]=a.useState(()=>Ag()),vr="words",[Os,oo]=a.useState(0),[Ct,tn]=a.useState([]),[es,Ir]=a.useState([]),[Dr,yr]=a.useState(!1),[wr,_r]=a.useState(null),[Fr,Cn]=a.useState([]),[ts,rn]=a.useState(!1),[Kt,Br]=a.useState([]),[rs,ns]=a.useState([]),[kr,tr]=a.useState(!1),[Pe,rr]=a.useState(null),[nn,Nn]=a.useState([]),[ss,A]=a.useState({}),[W,se]=a.useState(!1),[ke,Ue]=a.useState(null),[Te,Be]=a.useState(null),[We,tt]=a.useState(null),[Nt,nr]=a.useState(null),[Vt,Mn]=a.useState(!1),[as,sn]=a.useState(""),Or=a.useDeferredValue(as),[Sr,io]=a.useState({}),[an,X]=a.useState([]),[He,Pt]=a.useState(!1),[Ur,os]=a.useState(!1),[ol,En]=a.useState(null),[lo,$n]=a.useState(!1),sr=a.useRef(null),Hr=a.useRef(0),il=a.useRef({count:0,loading:!1,loadingMore:!1,hasMore:!1}),[wf,Us]=a.useState(null),[is,ll]=a.useState(()=>ot(oi,Rs)??!1),[co,uo]=a.useState(!1),[Hs,fo]=a.useState([]),[jr,zs]=a.useState({}),[Mt,Ws]=a.useState({}),[zr,cl]=a.useState(!0),[dl,ul]=a.useState(()=>new Set),[rt,on]=a.useState(null),[ho,ln]=a.useState(null),[kf,Rr]=a.useState(!1),[fl,Cr]=a.useState(0),[,mo]=a.useState(0),[po,Gs]=a.useState(!1),[ar,go]=a.useState(!1),[Sf,hl]=a.useState(()=>Z.getState().rightTab==="diff"),[jf,ml]=a.useState(()=>Z.getState().rightTab==="android"),[Wr,pl]=a.useState(!1),Rf=Yc(r=>!!r.docks[sd]),[Ie,ls]=a.useState(null),[Ln,cs]=a.useState(null),[pt,Gr]=a.useState(null),[gl,gt]=a.useState(null),[An,bl]=a.useState(null),[bo,Cf]=a.useState(()=>Date.now()),[Nf,Mf]=a.useState(!1),[cn,qs]=a.useState(!1),[Ks,xl]=a.useState(""),[Pn,Vs]=a.useState(""),[dn,Ys]=a.useState(""),[un,Xs]=a.useState(""),[vl,Tn]=a.useState(null),[Js,Qs]=a.useState(!1),[yl,xo]=a.useState(!1),[wl,kl]=a.useState(!1),[Zs,Ef]=a.useState({key:null,nonce:0}),Sl=a.useRef(null),jl=a.useRef(null),ee=tm(s,h,Y),$f=Eu(ee,h,Ft),[vo,yo]=a.useState(()=>Hg(s)),wo=Z(r=>r.rightTab),Yt=Z(r=>r.setRightTab),x=Z(r=>r.rootPath),In=Z(r=>r.explorerRoot),Rl=Z(r=>r.pinnedExplorerRootsCache),Cl=Z(r=>r.hydratePinnedExplorerRoots),Nl=Z(r=>r.syncPinnedExplorerRoots),Bt=Z(r=>r.setExplorerRoot),Ml=Z(r=>r.resetExplorerToProject),Dn=Z(r=>r.pinExplorerRoot),fn=Z(r=>r.unpinExplorerRoot),Je=Z(r=>r.selectedFilePath),Qe=Z(r=>r.selectFile),ko=Z(r=>r.showHiddenFiles),Lf=Z(r=>r.toggleShowHiddenFiles),So=Z(r=>!!(x&&r.nestedGitScanRoots[x])),ye=Z(r=>r.changedFiles),ea=Z(r=>r.setChangedFiles),ta=Z(r=>r.invalidateDirectoryCache),Af=Z(r=>r.setDirectorySortMode),El=Z(r=>r.applyFileWatchEvents),$l=Z(r=>r.reconcileDirectoryCache),Ll=Z(r=>r.bumpFileWatchEpoch),qr=Z(r=>r.gitBundleLoading),Al=Z(r=>r.gitBundleSlow),hn=Z(r=>r.gitBundleError),_n=Z(r=>r.gitBundleLastLoadedAt),Pl=Z(r=>r.beginGitBundleLoading),Tl=Z(r=>r.setGitBundleSlowFor),jo=Z(r=>r.finishGitBundleLoading),ra=Z(r=>r.resetGitBundleLoading),Ro=Z(r=>r.setGitBundleError),Il=Z(r=>r.markGitBundleLoaded),me=In??x,Dl=a.useMemo(()=>me?dg(me,te):"",[me,te]),ds=a.useMemo(()=>cg(ge),[ge]),_l=a.useMemo(()=>({excludePatterns:ds,caseSensitive:J,wholeWord:Re,regex:Ce}),[J,ds,Ce,Re]),na=Z(r=>me?r.fileSortModes[me]??"name":"name"),Fl=Z(r=>!!(me&&r.directoryCache.has(me))),Fn=a.useRef(null),vt=a.useRef(0),[Bl]=a.useState(()=>++Db),Nr=a.useRef(null),Kr=a.useRef(null),sa=a.useRef(0),Ot=a.useRef(new Map),Ut=a.useRef(new Map),or=a.useRef(new Set),mn=a.useRef(new Set),pn=a.useRef(0),Vr=a.useRef(null),Bn=a.useRef(0),On=a.useRef(null),Un=a.useRef(0),Yr=a.useRef(null),Co=a.useRef(new Set),No=a.useRef(null),Mo=a.useRef(null),aa=a.useRef(null),Eo=a.useRef(null);a.useEffect(()=>{if(An===null)return;const r=Math.max(0,Date.now()-An),o=r<6e4?1e3:r<36e5?6e4:r<864e5?36e5:864e5,d=Math.max(50,o-r%o),v=window.setTimeout(()=>Cf(Date.now()),d);return()=>window.clearTimeout(v)},[bo,An]);const oa=a.useRef(null),Mr=a.useRef(null),ia=a.useRef(null),us=a.useRef(null),Se=a.useCallback(r=>Z.getState().rootPath===r,[]);a.useEffect(()=>{if(!t||typeof window>"u")return;const r=o=>{const d=Ob(o.target);d&&za("global_change_row_event",{...Ub(o),selectionPath:d.dataset.diffSelectionPath,filePath:d.dataset.diffFilePath,absolutePath:d.dataset.diffAbsolutePath,repoRoot:d.dataset.diffRepoRoot,status:d.dataset.diffStatus,selectedFilePath:Z.getState().selectedFilePath,rightTab:Z.getState().rightTab,activeGitRepoRoot:de,changedFiles:Z.getState().changedFiles.size})};return window.addEventListener("pointerdown",r,{capture:!0}),window.addEventListener("click",r,{capture:!0}),()=>{window.removeEventListener("pointerdown",r,{capture:!0}),window.removeEventListener("click",r,{capture:!0})}},[de,t]);const Ol=a.useCallback(async(r=x??void 0)=>{if(!r)return null;if(or.current.has(r)||mn.current.has(r))return nt("untracked_skip_cached",{cwd:r,rootPath:x,completed:or.current.has(r),running:mn.current.has(r)}),null;const o=x,d=sa.current+1;sa.current=d,Ot.current.set(r,d);const v=`right-sidebar-git-untracked:${r}`,w=new AbortController;Ut.current.set(r,w),mn.current.add(r),nt("untracked_start",{requestId:d,cwd:r,rootPath:x});try{let R=await Xc(r,w.signal,v),P=0;for(;R.status==="running"&&P<120;){if(Ot.current.get(r)!==d||w.signal.aborted)return nt("untracked_stale_result",{requestId:d,activeRequestId:Ot.current.get(r),cwd:r,status:R.status}),null;if(!Se(o))return nt("untracked_root_changed",{requestId:d,cwd:r,expectedRootPath:o,currentRootPath:Z.getState().rootPath}),null;await new Promise(K=>window.setTimeout(K,P<10?1e3:3e3)),P+=1,R=await Xc(r,w.signal,v)}if(Ot.current.get(r)!==d||!Se(o))return nt("untracked_stale_result",{requestId:d,activeRequestId:Ot.current.get(r),cwd:r,expectedRootPath:o,currentRootPath:Z.getState().rootPath,files:R.files.length,status:R.status}),null;if(R.status==="done")return ea(hf(Z.getState().changedFiles,R.files)),R.files.length>0&&Ne(K=>{const Ge=new Map(K.map(Ee=>[Ee.root,Ee])).get(r);if(!Ge)return K;const De=jb(Ge.files,R.files),Fe=K.map(Ee=>Ee.root===r?{...Ee,files:De,context:Ee.context?{...Ee.context,changedFiles:De.map(Ye=>({path:Ye.path,absolutePath:Ye.absolutePath,status:Ye.status})),truncated:!1}:Ee.context,untrackedDeferred:!1}:Ee);Ke(mf(Fe,x));const pe=Fe.find(Ee=>Ee.root===x);return pe?.context&&Q(Ee=>Ee?.root===pe.root?{...Ee,...pe.context}:Ee),Fe}),or.current.add(r),nt("untracked_apply",{requestId:d,cwd:r,files:R.files.length}),R;const H=R.error||(R.status==="running"?"Untracked file scan is still running.":"Failed to scan untracked files");return or.current.add(r),nt("untracked_error",{requestId:d,cwd:r,message:H,code:R.code,status:R.status}),null}catch(R){if(Ot.current.get(r)!==d||!Se(o)||Ar(R))return nt("untracked_aborted",{requestId:d,activeRequestId:Ot.current.get(r),cwd:r,expectedRootPath:o,currentRootPath:Z.getState().rootPath,message:R instanceof Error?R.message:String(R)}),null;const P=R instanceof Error?R.message:"Failed to scan untracked files";return or.current.add(r),nt("untracked_error",{requestId:d,cwd:r,message:P}),null}finally{Ut.current.get(r)===w&&Ut.current.delete(r),Ot.current.get(r)===d&&Ot.current.delete(r),mn.current.delete(r)}},[k,Se,x,ea]),Xt=a.useMemo(()=>{const r=new Set(je.map(d=>d.root)),o=Fr.filter(d=>r.has(d));return o.length>0?o:de?[de]:[]},[de,Fr,je]),Ul=Xt.length===0,gn=a.useMemo(()=>Xt.map(r=>ae.find(o=>o.root===r)).filter(r=>!!r),[Xt,ae]),Pf=a.useMemo(()=>je.map(r=>({root:r.root,label:r.label,branch:r.branch??null})),[je]),ir=a.useCallback(async()=>{if(!x){tn([]),Ir([]);return}const r=x,o=Bn.current+1;Bn.current=o,On.current?.abort();const d=new AbortController;On.current=d,yr(Ct.length===0),_r(null);try{const v=Xt.length>0?await Promise.all(Xt.map(w=>Jc({workspaceRoot:x,repoRoot:w},d.signal))).then(w=>({records:w.flatMap(R=>R.records),walkthroughs:w.flatMap(R=>R.walkthroughs??[])})):await Jc({workspaceRoot:x},d.signal);if(Bn.current!==o||!Se(r))return;tn(v.records),Ir(v.walkthroughs??[])}catch(v){if(Bn.current!==o||!Se(r)||Ar(v))return;_r(v instanceof Error?v.message:"Failed to load change audit explanations")}finally{On.current===d&&(On.current=null),Bn.current===o&&Se(r)&&yr(!1)}},[Ct.length,Xt,Se,x]),la=a.useCallback(async(r,o,d)=>{if(!r&&!x){Br([]),ns([]);return}const v=x,w=Un.current+1;Un.current=w,Yr.current?.abort();const R=new AbortController;Yr.current=R;try{const P=r?[r]:Array.from(new Set([x,...ae.map(K=>K.root)].filter(K=>!!K))),H=await Promise.all(P.map(K=>Hh({repoRoot:K,baseRef:o,branchName:d},R.signal))).then(K=>{const Me=new Map,Ge=new Map;for(const De of K){for(const Fe of De.records)Me.set(Fe.id,Fe);for(const Fe of De.walkthroughs??[])Ge.set(Fe.id,Fe)}return{records:Array.from(Me.values()),walkthroughs:Array.from(Ge.values())}});if(Un.current!==w||!Se(v))return;Br(H.records),ns(H.walkthroughs??[])}catch(P){if(Un.current!==w||!Se(v)||Ar(P))return;console.warn("[RightSidebar] Failed to load branch explanations",P)}finally{Yr.current===R&&(Yr.current=null)}},[ae,Se,x]),Xr=a.useCallback((r,o={})=>{if(!Se(x)){nt("apply_skipped_root_changed",{expectedRootPath:x,currentRootPath:Z.getState().rootPath,bundleRoot:r.context?.root,files:r.files.length});return}nt(r.files.length===0?"empty_bundle":"apply",{rootPath:x,available:r.available,files:r.files.length,repositories:r.repositories?.map(pe=>({root:pe.root,relativeRoot:pe.relativeRoot,files:pe.files.length,available:pe.available,error:pe.error})),repoFilters:r.repoFilters?.map(pe=>({root:pe.root,label:pe.label,count:pe.count})),cached:r.cached,stale:r.stale,cacheAgeMs:r.cacheAgeMs,untrackedDeferred:r.untrackedDeferred,error:r.error});let d=$u(r),v=r.repoFilters??[],w=r.files;const R=Z.getState().changedFiles;if(!!(o.cacheOnly&&!r.cached&&r.files.length===0&&d.length===0)&&(R.size>0||ae.length>0||k)){nt("cache_only_apply_skipped_empty_backend_cache",{rootPath:x,currentFiles:R.size,currentRepositories:ae.length});return}const H=d.some(pe=>pe.deferred);if(H&&!o.replaceWorkspace){const pe=new Set(d.filter(Ye=>!Ye.deferred||Ye.root===x).map(Ye=>Ye.root));w=[...Array.from(R.values()).filter(Ye=>!pe.has(ht(Ye,x)??"")),...r.files]}const K=Ud(R.values(),x),Me=Ud(r.files,x),Ge=d.some(pe=>pe.root!==x);if(!!(o.background&&!H&&!o.replaceWorkspace&&R.size>0&&(r.files.length===0&&!r.error||K>0&&Me===0&&!Ge))){nt("background_apply_skipped_degraded_bundle",{rootPath:x,currentFiles:R.size,nextFiles:r.files.length,currentNestedCount:K,nextNestedCount:Me,nextRepositories:d.map(pe=>({root:pe.root,relativeRoot:pe.relativeRoot,files:pe.files.length})),cached:r.cached,stale:r.stale,error:r.error});return}if(o.replaceRepoRoot){const pe=pf(R.values(),ae,r,o.replaceRepoRoot,x);w=pe.files,d=pe.repositories,v=pe.repoFilters}if(ea(ff(w)),Ne(d),Ke(v),o.syncActiveRepo!==!1){const pe=o.activeRepoRoot!==void 0?o.activeRepoRoot:de??Nd(x),Ee=Dg({...r,repositories:d,repoFilters:v},pe);Ae(Ee),ci(x,Ee)}typeof r.cacheUpdatedAt=="number"&&bl(r.cacheUpdatedAt),Q(pe=>{if(o.replaceRepoRoot&&o.replaceRepoRoot!==x)return pe;if(!r.context)return null;const Ee=pe?.root??x;return!pe?.available||Ee!==(r.context.root??x)?r.context:{...pe,...r.context}}),o.reloadDiff&&oo(pe=>pe+1);const Fe=Z.getState().selectedFilePath;if(Fe&&!Fe.startsWith("/")&&!w.some(pe=>pe.path===Fe||pe.absolutePath===Fe)&&Qe(null),gr(pe=>{const Ee=new Set(w.map(Zt=>ht(Zt,x)).filter(Boolean)),Ye=new Set;for(const Zt of pe)Ee.has(Zt)&&Ye.add(Zt);return di(ai,Ye),Ye}),o.loadDeferred!==!1){const pe=d.filter(Ee=>Ee.untrackedDeferred&&Ee.root).map(Ee=>Ee.root);for(const Ee of pe)Ol(Ee)}o.loadAudit!==!1&&ir()},[de,Se,ir,Ol,x,Qe,ea]);a.useEffect(()=>{ra(),No.current=null,Mo.current=x;const r=[],o=[],v=Nd(x);vt.current+=1,pn.current+=1,sa.current+=1,Nr.current?.abort(),kt(Xn(Kr.current?.cwd??x??void 0)),Kr.current=null,Nr.current=null,Vr.current?.abort(),kt("right-sidebar-git-details"),Vr.current=null;for(const K of Ut.current.values())K.abort();for(const K of Ut.current.keys())kt(`right-sidebar-git-untracked:${K}`);Ut.current.clear(),Ot.current.clear(),Bn.current+=1,On.current?.abort(),On.current=null,Un.current+=1,Yr.current?.abort(),Yr.current=null,Hr.current+=1,sr.current?.abort(),kt("right-sidebar-recent-commits"),sr.current=null,tn([]),Ir([]),yr(!1),_r(null),Cn([]),rn(!1),Br([]),ns([]),tr(!1),rr(null),se(!1),Ue(null),Be(null),tt(null),nr(null),Mn(!1),sn(""),X([]),Pt(!1),os(!1),En(null),$n(!1),Us(null),on(null),ln(null),ll(!1),St(oi,!1),uo(!1);const w=x?Ed()[x]:null,R=w?.previewEntries??[],P=w?.selectedPreviewKey??null,H=P?R.find(K=>K.key===P)??null:null;fo(w?.selectedRepoRoots??[]),zs(w?.repoTargetBranches??{}),Ws(w?.repoBaseBranches??{}),Nn(R),A(w?.previewScrollTops??{}),H&&w?.previewDetailOpen&&(H.diff.hunks?.length??0)>0&&(rr(H.diff),on(H.key),ln(w.selectedPreviewFileKey??(H.diff.hunks?.[0]?`${H.diff.hunks[0].filePath}\0${H.diff.hunks[0].hunkHeader}\0${H.diff.hunks[0].hunkIndex}`:null)),tr(!0)),cl(w?.includeUncommitted??!0),No.current=x,qs(!1),Ae(v??null),or.current.clear(),mn.current.clear(),ls(null),cs(null),Gr(null),gt(null),bl(null),Ne(r),Ke(o),Q(null),Eo.current=null},[ra,x]);const Jt=a.useCallback(async(r=x??void 0,o={})=>{if(!r)return null;const d=x,v=vt.current;if(await Qm(Z.getState().hydrateNestedGitScanRoots),vt.current!==v||!Se(d))return null;const w=r===x&&Vn(x),R=o.includeNested??w,P=o.refresh??o.reloadDiff??!1,H=o.cacheOnly??!1,K=o.background??!1,Me=R&&(o.discoverOnly??!1);P&&or.current.clear();const Ge=Kr.current;if(Ge&&Ge.cwd===r&&Ge.includeNested===R&&Ge.refresh===P&&Ge.cacheOnly===H&&Ge.discoverOnly===Me)return nt("reuse_pending",{cwd:r,includeNested:R,refresh:P,cacheOnly:H,discoverOnly:Me}),Ge.promise;const De=vt.current+1;vt.current=De;const Fe=`right-sidebar:${Bl}:${De}`;Nr.current?.abort();const pe=Xn(r);kt(pe);const Ee=new AbortController;Nr.current=Ee;let Ye=null;K||Pl(Fe),Ro(null),nt("start",{requestId:De,cwd:r,rootPath:x,requestSlotId:pe,includeNested:R,refresh:P,cacheOnly:H,background:K,existingChanges:ye.size,lastLoadedAt:_n}),!K&&typeof window<"u"&&(Ye=window.setTimeout(()=>{vt.current===De&&Tl(Fe,!0)},vg));const Zt=(async()=>{const _e=await Ea(r,Ee.signal,{includeNested:R,refresh:P,cacheOnly:H,discoverOnly:Me,action:P?"manual_git_refresh":"open_sidebar_git_refresh",requestSlotId:pe,requestTimeoutMs:P?null:void 0});if(Nb(_e)){if(nt("cancelled_result_ignored",{requestId:De,activeRequestId:vt.current,cwd:r,error:_e.error??_e.context?.error}),Ee.signal.aborted)return null;throw new Error(_e.error??_e.context?.error??"Failed to load Git changes")}return vt.current!==De||!Se(d)?(nt("stale_result",{requestId:De,activeRequestId:vt.current,cwd:r,expectedRootPath:d,currentRootPath:Z.getState().rootPath,files:_e.files.length,repositories:_e.repositories?.length??0}),null):(Xr(_e,{reloadDiff:o.reloadDiff,syncActiveRepo:o.replaceWorkspace?!0:R,background:K,cacheOnly:H,replaceRepoRoot:o.replaceRepoRoot,replaceWorkspace:o.replaceWorkspace}),_e)})();Kr.current={cwd:r,includeNested:R,refresh:P,cacheOnly:H,discoverOnly:Me,promise:Zt};try{const _e=await Zt;return vt.current===De&&_e&&Se(d)?Il({cached:_e.cached,stale:_e.stale,cacheAgeMs:_e.cacheAgeMs,nestedDeferred:!R||_e.nestedDeferred,untrackedDeferred:_e.untrackedDeferred}):vt.current===De&&Se(d)&&jo(Fe),_e}catch(_e){return vt.current!==De||!Se(d)||Ee.signal.aborted?(nt("aborted",{requestId:De,activeRequestId:vt.current,cwd:r,expectedRootPath:d,currentRootPath:Z.getState().rootPath,message:_e instanceof Error?_e.message:String(_e)}),null):(nt("error",{requestId:De,cwd:r,includeNested:R,refresh:P,background:K,message:_e instanceof Error?_e.message:String(_e)}),K||(Q(null),Ro(_e instanceof Error?_e.message:"Failed to load Git changes")),null)}finally{Ye!==null&&window.clearTimeout(Ye),Nr.current===Ee&&(Nr.current=null),Kr.current?.promise===Zt&&(Kr.current=null),!K&&vt.current===De&&Se(d)&&jo(Fe)}},[Xr,Pl,ye.size,jo,Bl,_n,Se,Il,x,Ro,Tl]),fs=a.useCallback(async()=>{x&&await Jt(x,{reloadDiff:!0,refresh:!0})},[Jt,x]),$o=a.useCallback(async(r=x??void 0)=>{if(!r)return null;const o=x,d=pn.current+1;pn.current=d,Vr.current?.abort(),kt("right-sidebar-git-details");const v=new AbortController;Vr.current=v,qs(!0);try{const w=await Qc(r,v.signal,"load_git_details","right-sidebar-git-details");return pn.current!==d||!Se(o)?null:(Ne(R=>R.map(P=>P.root===w.root?{...P,available:w.available,context:w,error:w.error}:P)),Q(R=>R?.root&&w.root&&R.root!==w.root?R:!R?.available||!w.available?w:{...R,...w}),w)}catch(w){return Ar(w)||!Se(o)||pn.current===d&>(w instanceof Error?w.message:"Failed to load Git details"),null}finally{Vr.current===v&&(Vr.current=null),pn.current===d&&Se(o)&&qs(!1)}},[Se,x]);a.useEffect(()=>{if(!t){vt.current+=1,ra(),Eo.current=null,pn.current+=1,sa.current+=1,Nr.current?.abort(),kt(Xn(Kr.current?.cwd??x??void 0)),Kr.current=null,Nr.current=null,Vr.current?.abort(),kt("right-sidebar-git-details"),Vr.current=null;for(const r of Ut.current.values())r.abort();for(const r of Ut.current.keys())kt(`right-sidebar-git-untracked:${r}`);Ut.current.clear(),Ot.current.clear(),Un.current+=1,Yr.current?.abort(),Yr.current=null,Hr.current+=1,sr.current?.abort(),kt("right-sidebar-recent-commits"),sr.current=null,qs(!1),se(!1),Ue(null),Be(null),tt(null),nr(null),Mn(!1),sn(""),X([]),Pt(!1),os(!1),En(null),$n(!1),q(""),G(!1),mt(null),go(!1),ml(!1),ee&&hl(!1)}},[ee,t,ra,G]),a.useEffect(()=>{if(!ue)return;const r=setTimeout(()=>{document.querySelector("input[data-right-search]")?.focus()},50);return()=>clearTimeout(r)},[ue]),a.useEffect(()=>{ee||Rr(!1)},[ee]);const hs=a.useCallback(r=>{mo(r);const o=ia.current;o&&(o.update(),o.slideTo(r,0),window.requestAnimationFrame(()=>{o.update(),o.slideTo(r,0)}))},[]);a.useEffect(()=>{if(ee)if(Rr(g),g&&Je){Cr(1);const r=Mr.current;r&&(r.update(),r.activeIndex!==1&&(us.current=1,r.slideTo(1,0)))}else{Cr(0);const r=Mr.current;r&&r.activeIndex!==0&&(us.current=0,r.slideTo(0,0)),mt(null)}},[ee,g,x,Je]),a.useEffect(()=>{if(b!==void 0&&!g){Cr(0);const r=Mr.current;r&&r.activeIndex!==0&&(us.current=0,r.slideTo(0,0)),Rr(!1),mt(null)}},[b,g]),a.useEffect(()=>{C!==void 0&&Le(null)},[C]),a.useEffect(()=>{!ee&&g&&S?.()},[ee,S,g]),a.useEffect(()=>{yo(r=>_i(r,s))},[s]);const Tf=a.useCallback(r=>{ee||(r.preventDefault(),oa.current={startX:r.clientX,startWidth:vo,pointerId:r.pointerId},r.currentTarget.setPointerCapture(r.pointerId))},[vo,ee]),If=a.useCallback(r=>{const o=oa.current;if(!o||o.pointerId!==r.pointerId)return;const d=_i(o.startWidth+r.clientX-o.startX,s);yo(d),Cs(js,d,xg)},[s]),Hl=a.useCallback(r=>{const o=oa.current;if(!(!o||o.pointerId!==r.pointerId)){oa.current=null,ws(js);try{r.currentTarget.releasePointerCapture(r.pointerId)}catch{}}},[]),Hn=!!(x&&_n!==null&&Wd(k)),Lo=!!(x&&!hn&&ye.size===0&&_n===null),lr=(()=>{let r=wo;return r==="android"&&!Wr&&(r="files"),Hn&&(r==="git"||r==="diff")&&(r="files"),r})(),Ze=lr==="git",zn=lr==="files",yt=lr==="diff",Ao=lr==="android";a.useEffect(()=>{if(!ee){Gs(!0);return}if(!t){const o=window.setTimeout(()=>{Gs(!1)},wg);return()=>window.clearTimeout(o)}Gs(!1);const r=window.setTimeout(()=>{Gs(!0)},yg);return()=>window.clearTimeout(r)},[ee,t]),a.useEffect(()=>{if(!ee||!yt)return;const r=ia.current;if(!r)return;const o=window.requestAnimationFrame(()=>{r.update()});return()=>window.cancelAnimationFrame(o)},[yt,ee]),a.useEffect(()=>{if(!Hn||!x||qr)return;const r=window.setTimeout(()=>{Jt(x,{background:!0})},3e3);return()=>window.clearTimeout(r)},[Hn,x,qr,Jt]);const Df=a.useCallback(r=>{Jt(r,{discoverOnly:!0})},[Jt]);Zm({active:t&&(Ze||yt),rootPath:x,loading:qr,delay:Ze&&!ee?0:li,lastStartedRoot:Eo,load:Df}),a.useEffect(()=>{!t||!Ze||(!ee||po)&&go(!0)},[Ze,ee,t,po]),a.useEffect(()=>{if(!t||Ze)return;const r=window.setTimeout(()=>{go(!0)},li);return()=>window.clearTimeout(r)},[Ze,t]),a.useEffect(()=>{yt&&hl(!0)},[yt]),a.useEffect(()=>{Ao&&ml(!0)},[Ao]),a.useEffect(()=>{let r=!1;return qd().then(o=>{!r&&o.androidPanel&&pl(o.androidPanel.enabled===!0)}).catch(()=>{}),()=>{r=!0}},[]);const _f=a.useCallback(r=>{pl(r),r?Yt("android"):Z.getState().rightTab==="android"&&Yt("files"),Si({androidPanel:{enabled:r}}).catch(()=>{})},[Yt]),zl=a.useCallback(r=>{me&&vb(me,r.currentTarget.scrollTop)},[me]);a.useEffect(()=>()=>{Nr.current?.abort(),ws(Vi),ws(Yi),ws(js),ws(ii)},[]),a.useEffect(()=>{if(!me||!Fl)return;const r=df()[me]?.top;if(typeof r!="number")return;let o=window.requestAnimationFrame(()=>{Fn.current&&(Fn.current.scrollTop=r),o=window.requestAnimationFrame(()=>{Fn.current&&(Fn.current.scrollTop=r)})});return()=>window.cancelAnimationFrame(o)},[me,Fl]),a.useEffect(()=>{if(!t)return;const r=new AbortController;return zh(r.signal).then(o=>kl(!!o.available)).catch(()=>kl(!1)),()=>r.abort()},[t]);const ms=a.useCallback(r=>{if(ne(null),Qe(r),mt(null),ee){Rr(!0),Cr(1),Mr.current?.slideTo(1),f?.();return}},[ee,f,Qe]),Wl=a.useCallback((r,o)=>{if(ne(null),Qe(r),Lt(o),ee){Rr(!0),Cr(1),Mr.current?.slideTo(1),f?.();return}},[ee,f,Qe]),ps=a.useCallback(async(r,o)=>{const d=o||In||x;if(!(!d||r.length===0)){Qs(!0);try{await ti(d,r),ta(d,!1)}catch(v){gt(v instanceof Error?v.message:i("rightSidebar.uploadFailed")),window.setTimeout(()=>gt(null),4e3)}finally{Qs(!1)}}},[In,x,ta,i]),Gl=a.useCallback(async r=>{try{await Wh(r)}catch(o){gt(o instanceof Error?o.message:i("fileTree.openInFileBrowserFailed")),window.setTimeout(()=>gt(null),4e3)}},[i]),ca=a.useCallback(r=>{r.preventDefault(),r.stopPropagation(),r.dataTransfer.types.includes("Files")&&xo(!0)},[]),ql=a.useCallback(r=>{r.preventDefault(),r.stopPropagation(),xo(!1)},[]),Kl=a.useCallback(r=>{r.preventDefault(),r.stopPropagation(),xo(!1);const o=r.dataTransfer.files;o.length>0&&ps(Array.from(o))},[ps]),Po=a.useCallback(r=>{at(r),window.setTimeout(()=>at(o=>o===r?null:o),1400)},[]),Er=a.useCallback(r=>{qt(r),window.setTimeout(()=>qt(o=>o===r?null:o),1400)},[]);a.useEffect(()=>{St(yd,lt)},[lt]),a.useEffect(()=>{St(wd,Pr)},[Pr]),a.useEffect(()=>{St(kd,z)},[z]),a.useEffect(()=>{Cs(ii,be,hg)},[be]),a.useEffect(()=>(Cl().catch(()=>{}),Zc(r=>{r.type==="pinned-explorer-roots"&&Nl(r.pinnedExplorerRoots)})),[Cl,Nl]);const Vl=a.useRef(crypto.randomUUID?.()??`draft-${Math.random().toString(36).slice(2)}`),da=a.useRef(null),bn=a.useRef(null),[Yl,To]=a.useState(!1);a.useEffect(()=>{if(!t)return;To(!1);let r=!1;Gh().then(d=>{r||(da.current=d.text,ze(v=>d.text&&d.text!==v?d.text:v),To(!0))}).catch(()=>{r||To(!0)});const o=Zc(d=>{d.type==="context-draft"&&d.origin!==Vl.current&&(da.current=d.text,ze(d.text))});return()=>{r=!0,o(),bn.current!==null&&(window.clearTimeout(bn.current),bn.current=null)}},[t]),a.useEffect(()=>{if(!Yl||da.current===be)return;bn.current!==null&&window.clearTimeout(bn.current);const r=be;bn.current=window.setTimeout(()=>{bn.current=null,qh(r,Vl.current).then(()=>{da.current=r}).catch(()=>{})},500)},[be,Yl]);const Wn=a.useCallback((r,o,d)=>{if(r){if(Kh(d?r+d:r)){Po(o);return}lt?(ze(v=>Sp(v,r)+(d??"")),window.matchMedia("(pointer: coarse)").matches||(Dt(!1),dr(v=>v+1))):window.dispatchEvent(new CustomEvent("termdock-insert-reference",{detail:{text:d?r+d:r,focus:!0}})),Po(o)}},[lt,Po]),ua=a.useCallback(r=>{const o=La(r,x);return mm(o,x)},[x]),Io=iu(Er),Jr=a.useCallback((r,o)=>{const d=La(r,x);Wn(pm(d,x),o??`path:${d}`)},[x,Wn]),Ff=a.useCallback(async r=>{Qs(!0);try{await gm(r,ti,o=>{Jr(o,`path:${o}`)}),ee&&!lt&&l()}catch(o){gt(o instanceof Error?o.message:i("rightSidebar.uploadFailed")),window.setTimeout(()=>gt(null),4e3)}finally{Qs(!1)}},[lt,Jr,ee,l,i]),$r=a.useCallback((r,o)=>{if(!r)return;const d=r.includes(`
|
|
1659
|
+
`})(),yr=`path:${Oe}`,wr=E?`path:${Oe}:${E.start}-${E.end}`:yr,_r=$===yr,Fr=$===wr,Cn=T===yr,ts=T===wr,rn=Fr||ts,Kt=E?E.start===E.end?`L${E.start}`:`L${E.start}-${E.end}`:null,Br=A=>{const W=te.current;if(!W)return;const se=W.getBoundingClientRect(),ke=A.currentTarget.getBoundingClientRect(),Ue=A.clientX||ke.left+ke.width/2,Be=(A.clientY||ke.top+ke.height/2)-se.top+W.scrollTop,We=g?116:132,tt=W.scrollLeft+Math.max(8,W.clientWidth-We),Nt=Math.min(Math.max(8,Ue-se.left+W.scrollLeft+10),tt);ge({top:Be,left:Nt})},rs=(A,W)=>{Gi()||(Br(A),N(se=>{const ke=Wi(se,W,W);return ke||ge(null),ke}))},ns=(A,W,se)=>{Br(A),N(ke=>{const Ue=Wi(ke,W,se);return Ue||ge(null),Ue})},kr=(A,W,se,ke)=>{ke==="end"&&Br(A),N({start:W,end:se})},tr=A=>{const{scrollTop:W,scrollLeft:se}=A.currentTarget;k(W),hi(i,n,{top:W,left:se,markdownTop:W})},Pe=A=>{if(A.directory){m?.(A.path);return}if(A.path===Oe||j.kind==="text"&&A.path===j.sourcePath){A.fragment&&jn(A.fragment);return}ae(W=>[...W,Oe]),Ke.current=A.path,je(A.fragment),N(null),O(A.path)},rr=()=>{const A=Q[Q.length-1];A&&(ae(W=>W.slice(0,-1)),Ke.current=A,je(null),N(null),O(A))},nn=A=>{const{scrollTop:W,scrollLeft:se}=A.currentTarget;hi(i,n,{top:W,left:se})},Nn=()=>{if(t){t(Dr,wr);return}E&&l(Dr,wr)},ss=async()=>{if(!(!Oe||Le.status==="pending")&&!(j.kind==="loading"||j.kind==="error")){we({status:"pending"});try{await em(Oe),we({status:"idle"})}catch(A){we({status:"error",message:A instanceof Error?A.message:p("rightSidebar.downloadFailed")})}}};return e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-surface text-foreground",children:[be.popoverNode,e.jsxs("div",{className:`shrink-0 border-b border-border/15 px-3 ${g&&(Ft||vr)?"py-1.5":"py-2"}`,children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[g&&h&&e.jsx("button",{type:"button",onClick:h,className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95","aria-label":p("rightSidebar.backToFileList"),title:p("rightSidebar.backToFileList"),children:e.jsx(Zd,{size:16})}),Q.length>0&&e.jsxs("button",{type:"button",onClick:rr,className:`inline-flex h-9 shrink-0 items-center justify-center gap-1 rounded-full bg-primary/10 text-primary transition hover:bg-primary/15 active:scale-95 ${g?"w-9":"px-2.5"}`,"aria-label":p("rightSidebar.backToPreviousPreview"),title:p("rightSidebar.backToPreviousPreview"),children:[e.jsx($s,{size:15}),!g&&e.jsx("span",{className:"text-[11px] font-medium",children:p("rightSidebar.backToPreviousPreview")})]}),e.jsxs("div",{className:"min-w-0",title:Oe,children:[e.jsx("div",{className:"truncate text-sm font-medium text-foreground",children:Lt.name}),Lt.dir&&e.jsx("div",{className:"mt-0.5 truncate text-[11px] text-muted-foreground",children:Lt.dir})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[Tr&&e.jsx("button",{type:"button",onClick:at?mr:Rn,className:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 ${at?"bg-surface-elevated text-foreground":"bg-surface-2"}`,"aria-label":p("rightSidebar.findInFile"),title:`${p("rightSidebar.findInFile")} (⌘/Ctrl+F)`,children:e.jsx(Jn,{size:14})}),xr&&j.kind==="text"&&e.jsx("button",{type:"button",onClick:()=>{b&&y?.(),$e(A=>{const W=A==="preview"?"source":"preview";return St(xu,W),W}),N(null)},className:`inline-flex h-9 shrink-0 items-center justify-center gap-1 rounded-full bg-surface-2 text-xs font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 ${g?"w-9 px-0":"px-3"}`,"aria-label":p(he==="preview"?"rightSidebar.markdownSource":"rightSidebar.markdownPreview"),title:p(he==="preview"?"rightSidebar.markdownSource":"rightSidebar.markdownPreview"),children:g?he==="preview"?e.jsx(Ei,{size:14}):e.jsx(Mi,{size:14}):p(he==="preview"?"rightSidebar.markdownSource":"rightSidebar.markdownPreview")}),Bs&&j.kind==="text"&&e.jsx("button",{type:"button",onClick:()=>{J(A=>{const W=A==="preview"?"source":"preview";return Cp(i,n,W),W}),N(null)},className:`inline-flex h-9 shrink-0 items-center justify-center gap-1 rounded-full bg-surface-2 text-xs font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 ${g?"w-9 px-0":"px-3"}`,"aria-label":p(M==="preview"?"rightSidebar.htmlSource":"rightSidebar.htmlPreview"),title:p(M==="preview"?"rightSidebar.htmlSource":"rightSidebar.htmlPreview"),children:g?M==="preview"?e.jsx(Ei,{size:14}):e.jsx(Mi,{size:14}):p(M==="preview"?"rightSidebar.htmlSource":"rightSidebar.htmlPreview")}),vr&&e.jsx("button",{type:"button",onClick:()=>{fe.current?.toggleFullscreen()},className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95","aria-label":p(Re?"rightSidebar.htmlFullscreenExit":"rightSidebar.htmlFullscreenEnter"),title:p(Re?"rightSidebar.htmlFullscreenExit":"rightSidebar.htmlFullscreenEnter"),children:e.jsx(eu,{size:15})}),!g&&e.jsx("button",{type:"button",onClick:()=>s(Oe,yr),...be(pr,yr),className:`inline-flex h-9 items-center gap-1 rounded-full px-3 text-xs font-semibold transition active:scale-95 ${_r||Cn?"bg-surface-elevated text-foreground":"bg-primary/15 text-primary hover:bg-primary/25"}`,title:p("rightSidebar.insertReference",{reference:pr}),children:p(Cn?"rightSidebar.copied":_r?"rightSidebar.inserted":"rightSidebar.insertFileRef")}),e.jsx("button",{type:"button",onClick:()=>{navigator.clipboard?.writeText(pr)},className:"inline-flex h-9 w-9 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95",title:p("rightSidebar.copyReference",{reference:pr}),"aria-label":p("rightSidebar.copyFileRef"),children:e.jsx(Bh,{size:13})}),e.jsx("button",{type:"button",onClick:()=>{ss()},disabled:Le.status==="pending"||j.kind==="loading"||j.kind==="error",className:"inline-flex h-9 w-9 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95 disabled:opacity-50 disabled:active:scale-100",title:Le.status==="error"?Le.message??p("rightSidebar.downloadFailed"):p("rightSidebar.downloadFile"),"aria-label":p("rightSidebar.downloadFile"),children:Le.status==="pending"?e.jsx(jt,{size:13,className:"animate-spin"}):e.jsx(fm,{size:14})})]})]}),at&&Tr&&e.jsxs("div",{className:"mt-2 flex min-w-0 items-center gap-1.5","data-file-preview-search":!0,children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center rounded-lg bg-surface-2 px-2 focus-within:bg-surface-elevated",children:[e.jsx(Jn,{size:13,className:"shrink-0 text-muted-foreground","aria-hidden":"true"}),e.jsx("input",{ref:re,type:"search",value:qt,onChange:A=>lt(A.target.value),onKeyDown:A=>{A.key==="Enter"&&(A.preventDefault(),mt(A.shiftKey?-1:1))},className:"h-8 min-w-0 flex-1 bg-transparent px-2 text-xs text-foreground outline-none placeholder:text-muted-foreground/70",placeholder:p("rightSidebar.findInFilePlaceholder"),"aria-label":p("rightSidebar.findInFile")}),e.jsx("span",{className:"shrink-0 text-[10px] tabular-nums text-muted-foreground","aria-live":"polite",children:ct.length>0?`${Dt+1}/${ct.length}`:"0/0"})]}),e.jsx("button",{type:"button",onClick:()=>mt(-1),disabled:ct.length===0,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground disabled:opacity-35","aria-label":p("rightSidebar.previousSearchMatch"),title:`${p("rightSidebar.previousSearchMatch")} (Shift+Enter)`,children:e.jsx(Xd,{size:13})}),e.jsx("button",{type:"button",onClick:()=>mt(1),disabled:ct.length===0,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground disabled:opacity-35","aria-label":p("rightSidebar.nextSearchMatch"),title:`${p("rightSidebar.nextSearchMatch")} (Enter)`,children:e.jsx(hm,{size:13})}),e.jsx("button",{type:"button",onClick:mr,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground","aria-label":p("rightSidebar.closeFileSearch"),title:`${p("rightSidebar.closeFileSearch")} (Esc)`,children:e.jsx(Gt,{size:13})})]}),br&&!(g&&(Ft||vr))&&e.jsxs("div",{className:"mt-1 flex items-center gap-2 text-[10px] text-muted-foreground",children:[br.size!==null&&e.jsx("span",{children:p("rightSidebar.byteCount",{count:br.size.toLocaleString()})}),"truncated"in br&&br.truncated&&e.jsx("span",{className:"text-[color:var(--warning)]",children:p("rightSidebar.previewTruncated")}),"mimeType"in br&&e.jsx("span",{children:br.mimeType}),"dimensions"in j&&j.dimensions&&e.jsxs("span",{children:[j.dimensions.width," × ",j.dimensions.height]})]}),!(g&&(Ft||vr))&&!oo&&j.kind!=="binary"&&e.jsx("div",{className:"mt-1 flex h-4 items-center gap-2 text-[10px] text-muted-foreground/75",children:e.jsx("span",{className:"truncate",children:tn?p("rightSidebar.edaPickHint"):Fs?p("rightSidebar.csvTablePreview"):At||Zn?p("rightSidebar.kicadProjectPickHint"):Ct?p("rightSidebar.videoPreviewHint"):Os?p("rightSidebar.imagePreviewHint"):Ft?E?p("rightSidebar.selectedLineHint",{lineLabel:Kt??""}):p("rightSidebar.markdownPreviewHint"):vr?p("rightSidebar.htmlPreviewHint"):E?p("rightSidebar.selectedLineHint",{lineLabel:Kt??""}):p("rightSidebar.multiLineHint")})})]}),j.kind==="loading"?e.jsx("div",{className:"min-h-0 flex-1 overflow-auto px-3 py-8 text-center text-sm text-muted-foreground",children:j.mode==="eda"?p("rightSidebar.edaLoading"):j.mode==="image"?p("rightSidebar.loadingImage"):j.mode==="model3d"?p("rightSidebar.model3dLoading"):j.mode==="video"?p("rightSidebar.loadingVideo"):"Loading file…"}):j.kind==="error"?e.jsxs("div",{className:"min-h-0 flex-1 overflow-auto",children:[e.jsx("div",{className:"mx-3 mt-3 border border-destructive/20 bg-destructive/5 px-4 py-4 text-sm text-destructive",children:j.message}),e.jsx("button",{type:"button",onClick:Sn,className:"mx-3 mt-3 rounded-lg bg-surface-2 px-4 py-2 text-sm text-foreground hover:bg-surface-3",children:p("common.retry")})]}):j.kind==="binary"?e.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:e.jsx("div",{className:"mx-3 mt-3 rounded-xl border border-border/15 bg-surface-2 px-4 py-6 text-center text-sm text-muted-foreground",children:p("rightSidebar.binaryPreviewHint")})}):j.kind==="image"?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface p-3",children:j.meta.mimeType==="image/svg+xml"?e.jsx(hu,{blobUrl:j.objectUrl,filePath:Oe,viewLabel:"SVG 文件",onInsertAnnotation:u}):e.jsx(yf,{src:j.objectUrl,alt:Lt.name,vector:!1,onLoad:A=>{const W=A.currentTarget;q(se=>se.kind==="image"?{...se,dimensions:{width:W.naturalWidth,height:W.naturalHeight}}:se)},onError:()=>q({kind:"error",message:p("rightSidebar.imageLoadFailed")})})}):j.kind==="video"?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface p-3",children:e.jsx(Fp,{url:j.url,onLoadError:()=>q({kind:"error",message:p("rightSidebar.videoLoadFailed")})})}):j.kind==="eda"?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface",children:e.jsx(Gp,{blobUrl:j.objectUrl,filePath:j.sourcePath,view:j.view,board:Oe.toLowerCase().endsWith(".kicad_pcb"),onViewChange:ne,onInsertAnnotation:t??u,onRefresh:Sn,interactive3d:ue?e.jsx(a.Suspense,{fallback:e.jsx("div",{className:"min-h-0 flex-1 px-3 py-8 text-center text-sm text-muted-foreground",children:p("rightSidebar.model3dLoading")}),children:e.jsx(Rd,{blobUrl:ue.objectUrl,ext:".glb",fileName:Lt.name,filePath:ue.sourcePath,features:null,onInsertFeature:t??u,unitScale:1e3,dimensionUnit:"mm",coordinateSystemLabel:"KiCad 3D 导出坐标 Y-up",annotationPrefix:"PCB三维标注",normalizePickedPartName:A=>/^[A-Za-z]{1,5}\d+[A-Za-z0-9._-]*$/.test(A)?A:"PCB板体/铜箔/丝印",active:j.view==="pcb-3d"})}):void 0})}):j.kind==="model3d"?e.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-surface",children:e.jsx(a.Suspense,{fallback:e.jsx("div",{className:"min-h-0 flex-1 px-3 py-8 text-center text-sm text-muted-foreground",children:p("rightSidebar.model3dLoading")}),children:e.jsx(Rd,{blobUrl:j.objectUrl,ext:j.ext,fileName:Lt.name,filePath:j.sourcePath,features:L,onInsertFeature:t??u,onRefresh:Sn})})}):j.kind==="text"&&Fs?e.jsx(Vp,{content:j.content,filePath:Oe,onInsertAnnotation:t??u},Oe):j.kind==="text"&&(At||Zn)?e.jsx(Jp,{content:j.content,filePath:Oe,localState:Zn,onInsertAnnotation:t??u},Oe):Ft?e.jsxs("div",{ref:te,className:"termdock-native-select relative min-h-0 flex-1 overflow-auto bg-surface","data-markdown-preview-scroller":!0,onScroll:tr,style:{touchAction:"pan-x pan-y"},children:[e.jsx(cf,{content:j.content,filePath:j.sourcePath,rootPath:i,lineRange:E,onLineRangeClick:ns,onLineRangeDrag:kr,scrollTop:xe,outlineOpen:b,outlineCloseSignal:f,onOutlineOpen:S,onOutlineClose:y,lightboxOpen:C,lightboxCloseSignal:I,onLightboxOpen:F,onLightboxClose:B,onLocalLinkOpen:Pe}),E&&oe&&e.jsxs("button",{type:"button",onClick:Nn,...be(Dr,wr),style:{top:oe.top,left:oe.left,transform:"translateY(-50%)"},className:Od(g,rn),title:`Insert markdown reference: ${Ir}`,children:[e.jsx(Va,{size:g?13:11}),ts?p("rightSidebar.copied"):Fr?p("rightSidebar.inserted"):p("rightSidebar.insertLineRef",{lineLabel:Kt??""})]})]}):vr?e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden bg-surface",children:e.jsx(ag,{ref:fe,src:Oh(Oe),title:`${Lt.name} preview`,exitFullscreenLabel:p("rightSidebar.htmlFullscreenExit"),onFullscreenChange:qe},`${Oe}:${dr}:${fr}`)}):j.kind==="text"?e.jsxs("div",{ref:te,onScroll:nn,className:`${Xi} termdock-native-select termdock-code relative min-h-0 flex-1 overflow-auto rounded-none bg-surface p-2 font-mono text-[11px] leading-relaxed text-foreground`,children:[gr.length>0?e.jsx("div",{className:"min-w-full",children:gr.map((A,W)=>{const se=W+1,ke=!!(E&&se>=E.start&&se<=E.end),Ue=Ae&&Ae.length===gr.length?Ae[W]:null;return e.jsxs("div",{ref:Te=>{Te?V.current.set(se,Te):V.current.delete(se)},role:"button","data-file-preview-line":se,tabIndex:0,onClick:Te=>rs(Te,se),onKeyDown:Te=>{Te.key!=="Enter"&&Te.key!==" "||(Te.preventDefault(),rs(Te,se))},style:{gridTemplateColumns:`${_s}ch 1fr`},className:`group grid w-max min-w-full cursor-text gap-2 rounded-md pr-1 text-left transition ${ke?"bg-[var(--surface-2)] text-foreground":"hover:bg-surface-2"}`,title:`Tap to reference ${pr}:${se}`,children:[e.jsx("span",{className:`select-none rounded text-right text-[10px] transition ${ke?"bg-[var(--surface-elevated)] text-muted-foreground":"text-muted-foreground/55"}`,children:se}),e.jsx("span",{className:"whitespace-pre select-text","data-sidebar-selectable":!0,children:Ue??(A||" ")})]},W)})}):"Empty file.",E&&oe&&e.jsxs("button",{type:"button",onClick:Nn,...be(Dr,wr),style:{top:oe.top,left:oe.left,transform:"translateY(-50%)"},className:Od(g,rn),title:`Insert code reference: ${Ir}`,children:[e.jsx(Va,{size:g?13:11}),ts?p("rightSidebar.copied"):Fr?p("rightSidebar.inserted"):p("rightSidebar.insertLineRef",{lineLabel:Kt??""})]})]}):null]})}function Hb({isOpen:t,sessionId:n,drawerWidthPx:s,onClose:l,onOpen:u,push:c,pinned:h=!1,onTogglePinned:m,rightSidebarFilePreviewOpen:g=!1,rightSidebarFilePreviewCloseSignal:b,onOpenRightSidebarFilePreview:f,onCloseRightSidebarFilePreview:S,rightSidebarRepoPickerOpen:y=!1,rightSidebarRepoPickerCloseSignal:C,onOpenRightSidebarRepoPicker:I,onCloseRightSidebarRepoPicker:F,markdownOutlineOpen:B=!1,markdownOutlineCloseSignal:E,onOpenMarkdownOutline:N,onCloseMarkdownOutline:$,markdownImageLightboxOpen:T=!1,markdownImageLightboxCloseSignal:U,onOpenMarkdownImageLightbox:D,onCloseMarkdownImageLightbox:p}){const{t:i,locale:O}=Rt(),[j,q]=a.useState(""),[le,ne]=a.useState(null),ue=Z(r=>r.rightSearchOpen),G=Z(r=>r.setRightSearchOpen),Y=Z(r=>r.rightSidebarLayoutPreference),L=Z(r=>r.setRightSidebarLayoutPreference),[_,V]=a.useState(()=>Tg()),[te,oe]=a.useState("."),[ge,he]=a.useState(""),[$e,M]=a.useState(!1),[J,fe]=a.useState(!1),[Re,qe]=a.useState(!1),[Ce,ce]=a.useState(!1),xe=a.useDeferredValue(j),[k,Q]=a.useState(null),[ae,Ne]=a.useState([]),[je,Ke]=a.useState([]),[de,Ae]=a.useState(null),[st,Le]=a.useState(null),[we,at]=a.useState(null),[et,qt]=a.useState(null),[lt,ct]=a.useState(()=>ot(yd,Rs)??!1),[Pr,Dt]=a.useState(()=>ot(wd,Rs)??!1),[z,re]=a.useState(()=>ot(kd,Rs)??!1),[be,ze]=a.useState(()=>ot(ii,Eg)??""),[ut,dr]=a.useState(0),[ur,_t]=a.useState(!1),[fr,hr]=a.useState(!1),Sn=a.useRef(null),jn=a.useRef(null),[Tr,mr]=a.useState(!1),[Rn,mt]=a.useState(null),[Oe,Lt]=a.useState(null),[pr,gr]=a.useState(()=>Md(ai)),[_s,br]=a.useState(()=>Md(vd)),[xr,Fs]=a.useState(()=>Mg()),[At,Zn]=a.useState(()=>$g()),[Ft,Bs]=a.useState(()=>Ag()),vr="words",[Os,oo]=a.useState(0),[Ct,tn]=a.useState([]),[es,Ir]=a.useState([]),[Dr,yr]=a.useState(!1),[wr,_r]=a.useState(null),[Fr,Cn]=a.useState([]),[ts,rn]=a.useState(!1),[Kt,Br]=a.useState([]),[rs,ns]=a.useState([]),[kr,tr]=a.useState(!1),[Pe,rr]=a.useState(null),[nn,Nn]=a.useState([]),[ss,A]=a.useState({}),[W,se]=a.useState(!1),[ke,Ue]=a.useState(null),[Te,Be]=a.useState(null),[We,tt]=a.useState(null),[Nt,nr]=a.useState(null),[Vt,Mn]=a.useState(!1),[as,sn]=a.useState(""),Or=a.useDeferredValue(as),[Sr,io]=a.useState({}),[an,X]=a.useState([]),[He,Pt]=a.useState(!1),[Ur,os]=a.useState(!1),[ol,En]=a.useState(null),[lo,$n]=a.useState(!1),sr=a.useRef(null),Hr=a.useRef(0),il=a.useRef({count:0,loading:!1,loadingMore:!1,hasMore:!1}),[wf,Us]=a.useState(null),[is,ll]=a.useState(()=>ot(oi,Rs)??!1),[co,uo]=a.useState(!1),[Hs,fo]=a.useState([]),[jr,zs]=a.useState({}),[Mt,Ws]=a.useState({}),[zr,cl]=a.useState(!0),[dl,ul]=a.useState(()=>new Set),[rt,on]=a.useState(null),[ho,ln]=a.useState(null),[kf,Rr]=a.useState(!1),[fl,Cr]=a.useState(0),[,mo]=a.useState(0),[po,Gs]=a.useState(!1),[ar,go]=a.useState(!1),[Sf,hl]=a.useState(()=>Z.getState().rightTab==="diff"),[jf,ml]=a.useState(()=>Z.getState().rightTab==="android"),[Wr,pl]=a.useState(!1),Rf=Yc(r=>!!r.docks[sd]),[Ie,ls]=a.useState(null),[Ln,cs]=a.useState(null),[pt,Gr]=a.useState(null),[gl,gt]=a.useState(null),[An,bl]=a.useState(null),[bo,Cf]=a.useState(()=>Date.now()),[Nf,Mf]=a.useState(!1),[cn,qs]=a.useState(!1),[Ks,xl]=a.useState(""),[Pn,Vs]=a.useState(""),[dn,Ys]=a.useState(""),[un,Xs]=a.useState(""),[vl,Tn]=a.useState(null),[Js,Qs]=a.useState(!1),[yl,xo]=a.useState(!1),[wl,kl]=a.useState(!1),[Zs,Ef]=a.useState({key:null,nonce:0}),Sl=a.useRef(null),jl=a.useRef(null),ee=tm(s,h,Y),$f=Eu(ee,h,Ft),[vo,yo]=a.useState(()=>Hg(s)),wo=Z(r=>r.rightTab),Yt=Z(r=>r.setRightTab),x=Z(r=>r.rootPath),In=Z(r=>r.explorerRoot),Rl=Z(r=>r.pinnedExplorerRootsCache),Cl=Z(r=>r.hydratePinnedExplorerRoots),Nl=Z(r=>r.syncPinnedExplorerRoots),Bt=Z(r=>r.setExplorerRoot),Ml=Z(r=>r.resetExplorerToProject),Dn=Z(r=>r.pinExplorerRoot),fn=Z(r=>r.unpinExplorerRoot),Je=Z(r=>r.selectedFilePath),Qe=Z(r=>r.selectFile),ko=Z(r=>r.showHiddenFiles),Lf=Z(r=>r.toggleShowHiddenFiles),So=Z(r=>!!(x&&r.nestedGitScanRoots[x])),ye=Z(r=>r.changedFiles),ea=Z(r=>r.setChangedFiles),ta=Z(r=>r.invalidateDirectoryCache),Af=Z(r=>r.setDirectorySortMode),El=Z(r=>r.applyFileWatchEvents),$l=Z(r=>r.reconcileDirectoryCache),Ll=Z(r=>r.bumpFileWatchEpoch),qr=Z(r=>r.gitBundleLoading),Al=Z(r=>r.gitBundleSlow),hn=Z(r=>r.gitBundleError),_n=Z(r=>r.gitBundleLastLoadedAt),Pl=Z(r=>r.beginGitBundleLoading),Tl=Z(r=>r.setGitBundleSlowFor),jo=Z(r=>r.finishGitBundleLoading),ra=Z(r=>r.resetGitBundleLoading),Ro=Z(r=>r.setGitBundleError),Il=Z(r=>r.markGitBundleLoaded),me=In??x,Dl=a.useMemo(()=>me?dg(me,te):"",[me,te]),ds=a.useMemo(()=>cg(ge),[ge]),_l=a.useMemo(()=>({excludePatterns:ds,caseSensitive:J,wholeWord:Re,regex:Ce}),[J,ds,Ce,Re]),na=Z(r=>me?r.fileSortModes[me]??"name":"name"),Fl=Z(r=>!!(me&&r.directoryCache.has(me))),Fn=a.useRef(null),vt=a.useRef(0),[Bl]=a.useState(()=>++Db),Nr=a.useRef(null),Kr=a.useRef(null),sa=a.useRef(0),Ot=a.useRef(new Map),Ut=a.useRef(new Map),or=a.useRef(new Set),mn=a.useRef(new Set),pn=a.useRef(0),Vr=a.useRef(null),Bn=a.useRef(0),On=a.useRef(null),Un=a.useRef(0),Yr=a.useRef(null),Co=a.useRef(new Set),No=a.useRef(null),Mo=a.useRef(null),aa=a.useRef(null),Eo=a.useRef(null);a.useEffect(()=>{if(An===null)return;const r=Math.max(0,Date.now()-An),o=r<6e4?1e3:r<36e5?6e4:r<864e5?36e5:864e5,d=Math.max(50,o-r%o),v=window.setTimeout(()=>Cf(Date.now()),d);return()=>window.clearTimeout(v)},[bo,An]);const oa=a.useRef(null),Mr=a.useRef(null),ia=a.useRef(null),us=a.useRef(null),Se=a.useCallback(r=>Z.getState().rootPath===r,[]);a.useEffect(()=>{if(!t||typeof window>"u")return;const r=o=>{const d=Ob(o.target);d&&za("global_change_row_event",{...Ub(o),selectionPath:d.dataset.diffSelectionPath,filePath:d.dataset.diffFilePath,absolutePath:d.dataset.diffAbsolutePath,repoRoot:d.dataset.diffRepoRoot,status:d.dataset.diffStatus,selectedFilePath:Z.getState().selectedFilePath,rightTab:Z.getState().rightTab,activeGitRepoRoot:de,changedFiles:Z.getState().changedFiles.size})};return window.addEventListener("pointerdown",r,{capture:!0}),window.addEventListener("click",r,{capture:!0}),()=>{window.removeEventListener("pointerdown",r,{capture:!0}),window.removeEventListener("click",r,{capture:!0})}},[de,t]);const Ol=a.useCallback(async(r=x??void 0)=>{if(!r)return null;if(or.current.has(r)||mn.current.has(r))return nt("untracked_skip_cached",{cwd:r,rootPath:x,completed:or.current.has(r),running:mn.current.has(r)}),null;const o=x,d=sa.current+1;sa.current=d,Ot.current.set(r,d);const v=`right-sidebar-git-untracked:${r}`,w=new AbortController;Ut.current.set(r,w),mn.current.add(r),nt("untracked_start",{requestId:d,cwd:r,rootPath:x});try{let R=await Xc(r,w.signal,v),P=0;for(;R.status==="running"&&P<120;){if(Ot.current.get(r)!==d||w.signal.aborted)return nt("untracked_stale_result",{requestId:d,activeRequestId:Ot.current.get(r),cwd:r,status:R.status}),null;if(!Se(o))return nt("untracked_root_changed",{requestId:d,cwd:r,expectedRootPath:o,currentRootPath:Z.getState().rootPath}),null;await new Promise(K=>window.setTimeout(K,P<10?1e3:3e3)),P+=1,R=await Xc(r,w.signal,v)}if(Ot.current.get(r)!==d||!Se(o))return nt("untracked_stale_result",{requestId:d,activeRequestId:Ot.current.get(r),cwd:r,expectedRootPath:o,currentRootPath:Z.getState().rootPath,files:R.files.length,status:R.status}),null;if(R.status==="done")return ea(hf(Z.getState().changedFiles,R.files)),R.files.length>0&&Ne(K=>{const Ge=new Map(K.map(Ee=>[Ee.root,Ee])).get(r);if(!Ge)return K;const De=jb(Ge.files,R.files),Fe=K.map(Ee=>Ee.root===r?{...Ee,files:De,context:Ee.context?{...Ee.context,changedFiles:De.map(Ye=>({path:Ye.path,absolutePath:Ye.absolutePath,status:Ye.status})),truncated:!1}:Ee.context,untrackedDeferred:!1}:Ee);Ke(mf(Fe,x));const pe=Fe.find(Ee=>Ee.root===x);return pe?.context&&Q(Ee=>Ee?.root===pe.root?{...Ee,...pe.context}:Ee),Fe}),or.current.add(r),nt("untracked_apply",{requestId:d,cwd:r,files:R.files.length}),R;const H=R.error||(R.status==="running"?"Untracked file scan is still running.":"Failed to scan untracked files");return or.current.add(r),nt("untracked_error",{requestId:d,cwd:r,message:H,code:R.code,status:R.status}),null}catch(R){if(Ot.current.get(r)!==d||!Se(o)||Ar(R))return nt("untracked_aborted",{requestId:d,activeRequestId:Ot.current.get(r),cwd:r,expectedRootPath:o,currentRootPath:Z.getState().rootPath,message:R instanceof Error?R.message:String(R)}),null;const P=R instanceof Error?R.message:"Failed to scan untracked files";return or.current.add(r),nt("untracked_error",{requestId:d,cwd:r,message:P}),null}finally{Ut.current.get(r)===w&&Ut.current.delete(r),Ot.current.get(r)===d&&Ot.current.delete(r),mn.current.delete(r)}},[k,Se,x,ea]),Xt=a.useMemo(()=>{const r=new Set(je.map(d=>d.root)),o=Fr.filter(d=>r.has(d));return o.length>0?o:de?[de]:[]},[de,Fr,je]),Ul=Xt.length===0,gn=a.useMemo(()=>Xt.map(r=>ae.find(o=>o.root===r)).filter(r=>!!r),[Xt,ae]),Pf=a.useMemo(()=>je.map(r=>({root:r.root,label:r.label,branch:r.branch??null})),[je]),ir=a.useCallback(async()=>{if(!x){tn([]),Ir([]);return}const r=x,o=Bn.current+1;Bn.current=o,On.current?.abort();const d=new AbortController;On.current=d,yr(Ct.length===0),_r(null);try{const v=Xt.length>0?await Promise.all(Xt.map(w=>Jc({workspaceRoot:x,repoRoot:w},d.signal))).then(w=>({records:w.flatMap(R=>R.records),walkthroughs:w.flatMap(R=>R.walkthroughs??[])})):await Jc({workspaceRoot:x},d.signal);if(Bn.current!==o||!Se(r))return;tn(v.records),Ir(v.walkthroughs??[])}catch(v){if(Bn.current!==o||!Se(r)||Ar(v))return;_r(v instanceof Error?v.message:"Failed to load change audit explanations")}finally{On.current===d&&(On.current=null),Bn.current===o&&Se(r)&&yr(!1)}},[Ct.length,Xt,Se,x]),la=a.useCallback(async(r,o,d)=>{if(!r&&!x){Br([]),ns([]);return}const v=x,w=Un.current+1;Un.current=w,Yr.current?.abort();const R=new AbortController;Yr.current=R;try{const P=r?[r]:Array.from(new Set([x,...ae.map(K=>K.root)].filter(K=>!!K))),H=await Promise.all(P.map(K=>Hh({repoRoot:K,baseRef:o,branchName:d},R.signal))).then(K=>{const Me=new Map,Ge=new Map;for(const De of K){for(const Fe of De.records)Me.set(Fe.id,Fe);for(const Fe of De.walkthroughs??[])Ge.set(Fe.id,Fe)}return{records:Array.from(Me.values()),walkthroughs:Array.from(Ge.values())}});if(Un.current!==w||!Se(v))return;Br(H.records),ns(H.walkthroughs??[])}catch(P){if(Un.current!==w||!Se(v)||Ar(P))return;console.warn("[RightSidebar] Failed to load branch explanations",P)}finally{Yr.current===R&&(Yr.current=null)}},[ae,Se,x]),Xr=a.useCallback((r,o={})=>{if(!Se(x)){nt("apply_skipped_root_changed",{expectedRootPath:x,currentRootPath:Z.getState().rootPath,bundleRoot:r.context?.root,files:r.files.length});return}nt(r.files.length===0?"empty_bundle":"apply",{rootPath:x,available:r.available,files:r.files.length,repositories:r.repositories?.map(pe=>({root:pe.root,relativeRoot:pe.relativeRoot,files:pe.files.length,available:pe.available,error:pe.error})),repoFilters:r.repoFilters?.map(pe=>({root:pe.root,label:pe.label,count:pe.count})),cached:r.cached,stale:r.stale,cacheAgeMs:r.cacheAgeMs,untrackedDeferred:r.untrackedDeferred,error:r.error});let d=$u(r),v=r.repoFilters??[],w=r.files;const R=Z.getState().changedFiles;if(!!(o.cacheOnly&&!r.cached&&r.files.length===0&&d.length===0)&&(R.size>0||ae.length>0||k)){nt("cache_only_apply_skipped_empty_backend_cache",{rootPath:x,currentFiles:R.size,currentRepositories:ae.length});return}const H=d.some(pe=>pe.deferred);if(H&&!o.replaceWorkspace){const pe=new Set(d.filter(Ye=>!Ye.deferred||Ye.root===x).map(Ye=>Ye.root));w=[...Array.from(R.values()).filter(Ye=>!pe.has(ht(Ye,x)??"")),...r.files]}const K=Ud(R.values(),x),Me=Ud(r.files,x),Ge=d.some(pe=>pe.root!==x);if(!!(o.background&&!H&&!o.replaceWorkspace&&R.size>0&&(r.files.length===0&&!r.error||K>0&&Me===0&&!Ge))){nt("background_apply_skipped_degraded_bundle",{rootPath:x,currentFiles:R.size,nextFiles:r.files.length,currentNestedCount:K,nextNestedCount:Me,nextRepositories:d.map(pe=>({root:pe.root,relativeRoot:pe.relativeRoot,files:pe.files.length})),cached:r.cached,stale:r.stale,error:r.error});return}if(o.replaceRepoRoot){const pe=pf(R.values(),ae,r,o.replaceRepoRoot,x);w=pe.files,d=pe.repositories,v=pe.repoFilters}if(ea(ff(w)),Ne(d),Ke(v),o.syncActiveRepo!==!1){const pe=o.activeRepoRoot!==void 0?o.activeRepoRoot:de??Nd(x),Ee=Dg({...r,repositories:d,repoFilters:v},pe);Ae(Ee),ci(x,Ee)}typeof r.cacheUpdatedAt=="number"&&bl(r.cacheUpdatedAt),Q(pe=>{if(o.replaceRepoRoot&&o.replaceRepoRoot!==x)return pe;if(!r.context)return null;const Ee=pe?.root??x;return!pe?.available||Ee!==(r.context.root??x)?r.context:{...pe,...r.context}}),o.reloadDiff&&oo(pe=>pe+1);const Fe=Z.getState().selectedFilePath;if(Fe&&!Fe.startsWith("/")&&!w.some(pe=>pe.path===Fe||pe.absolutePath===Fe)&&Qe(null),gr(pe=>{const Ee=new Set(w.map(Zt=>ht(Zt,x)).filter(Boolean)),Ye=new Set;for(const Zt of pe)Ee.has(Zt)&&Ye.add(Zt);return di(ai,Ye),Ye}),o.loadDeferred!==!1){const pe=d.filter(Ee=>Ee.untrackedDeferred&&Ee.root).map(Ee=>Ee.root);for(const Ee of pe)Ol(Ee)}o.loadAudit!==!1&&ir()},[de,Se,ir,Ol,x,Qe,ea]);a.useEffect(()=>{ra(),No.current=null,Mo.current=x;const r=[],o=[],v=Nd(x);vt.current+=1,pn.current+=1,sa.current+=1,Nr.current?.abort(),kt(Xn(Kr.current?.cwd??x??void 0)),Kr.current=null,Nr.current=null,Vr.current?.abort(),kt("right-sidebar-git-details"),Vr.current=null;for(const K of Ut.current.values())K.abort();for(const K of Ut.current.keys())kt(`right-sidebar-git-untracked:${K}`);Ut.current.clear(),Ot.current.clear(),Bn.current+=1,On.current?.abort(),On.current=null,Un.current+=1,Yr.current?.abort(),Yr.current=null,Hr.current+=1,sr.current?.abort(),kt("right-sidebar-recent-commits"),sr.current=null,tn([]),Ir([]),yr(!1),_r(null),Cn([]),rn(!1),Br([]),ns([]),tr(!1),rr(null),se(!1),Ue(null),Be(null),tt(null),nr(null),Mn(!1),sn(""),X([]),Pt(!1),os(!1),En(null),$n(!1),Us(null),on(null),ln(null),ll(!1),St(oi,!1),uo(!1);const w=x?Ed()[x]:null,R=w?.previewEntries??[],P=w?.selectedPreviewKey??null,H=P?R.find(K=>K.key===P)??null:null;fo(w?.selectedRepoRoots??[]),zs(w?.repoTargetBranches??{}),Ws(w?.repoBaseBranches??{}),Nn(R),A(w?.previewScrollTops??{}),H&&w?.previewDetailOpen&&(H.diff.hunks?.length??0)>0&&(rr(H.diff),on(H.key),ln(w.selectedPreviewFileKey??(H.diff.hunks?.[0]?`${H.diff.hunks[0].filePath}\0${H.diff.hunks[0].hunkHeader}\0${H.diff.hunks[0].hunkIndex}`:null)),tr(!0)),cl(w?.includeUncommitted??!0),No.current=x,qs(!1),Ae(v??null),or.current.clear(),mn.current.clear(),ls(null),cs(null),Gr(null),gt(null),bl(null),Ne(r),Ke(o),Q(null),Eo.current=null},[ra,x]);const Jt=a.useCallback(async(r=x??void 0,o={})=>{if(!r)return null;const d=x,v=vt.current;if(await Qm(Z.getState().hydrateNestedGitScanRoots),vt.current!==v||!Se(d))return null;const w=r===x&&Vn(x),R=o.includeNested??w,P=o.refresh??o.reloadDiff??!1,H=o.cacheOnly??!1,K=o.background??!1,Me=R&&(o.discoverOnly??!1);P&&or.current.clear();const Ge=Kr.current;if(Ge&&Ge.cwd===r&&Ge.includeNested===R&&Ge.refresh===P&&Ge.cacheOnly===H&&Ge.discoverOnly===Me)return nt("reuse_pending",{cwd:r,includeNested:R,refresh:P,cacheOnly:H,discoverOnly:Me}),Ge.promise;const De=vt.current+1;vt.current=De;const Fe=`right-sidebar:${Bl}:${De}`;Nr.current?.abort();const pe=Xn(r);kt(pe);const Ee=new AbortController;Nr.current=Ee;let Ye=null;K||Pl(Fe),Ro(null),nt("start",{requestId:De,cwd:r,rootPath:x,requestSlotId:pe,includeNested:R,refresh:P,cacheOnly:H,background:K,existingChanges:ye.size,lastLoadedAt:_n}),!K&&typeof window<"u"&&(Ye=window.setTimeout(()=>{vt.current===De&&Tl(Fe,!0)},vg));const Zt=(async()=>{const _e=await Ea(r,Ee.signal,{includeNested:R,refresh:P,cacheOnly:H,discoverOnly:Me,action:P?"manual_git_refresh":"open_sidebar_git_refresh",requestSlotId:pe,requestTimeoutMs:P?null:void 0});if(Nb(_e)){if(nt("cancelled_result_ignored",{requestId:De,activeRequestId:vt.current,cwd:r,error:_e.error??_e.context?.error}),Ee.signal.aborted)return null;throw new Error(_e.error??_e.context?.error??"Failed to load Git changes")}return vt.current!==De||!Se(d)?(nt("stale_result",{requestId:De,activeRequestId:vt.current,cwd:r,expectedRootPath:d,currentRootPath:Z.getState().rootPath,files:_e.files.length,repositories:_e.repositories?.length??0}),null):(Xr(_e,{reloadDiff:o.reloadDiff,syncActiveRepo:o.replaceWorkspace?!0:R,background:K,cacheOnly:H,replaceRepoRoot:o.replaceRepoRoot,replaceWorkspace:o.replaceWorkspace}),_e)})();Kr.current={cwd:r,includeNested:R,refresh:P,cacheOnly:H,discoverOnly:Me,promise:Zt};try{const _e=await Zt;return vt.current===De&&_e&&Se(d)?Il({cached:_e.cached,stale:_e.stale,cacheAgeMs:_e.cacheAgeMs,nestedDeferred:!R||_e.nestedDeferred,untrackedDeferred:_e.untrackedDeferred}):vt.current===De&&Se(d)&&jo(Fe),_e}catch(_e){return vt.current!==De||!Se(d)||Ee.signal.aborted?(nt("aborted",{requestId:De,activeRequestId:vt.current,cwd:r,expectedRootPath:d,currentRootPath:Z.getState().rootPath,message:_e instanceof Error?_e.message:String(_e)}),null):(nt("error",{requestId:De,cwd:r,includeNested:R,refresh:P,background:K,message:_e instanceof Error?_e.message:String(_e)}),K||(Q(null),Ro(_e instanceof Error?_e.message:"Failed to load Git changes")),null)}finally{Ye!==null&&window.clearTimeout(Ye),Nr.current===Ee&&(Nr.current=null),Kr.current?.promise===Zt&&(Kr.current=null),!K&&vt.current===De&&Se(d)&&jo(Fe)}},[Xr,Pl,ye.size,jo,Bl,_n,Se,Il,x,Ro,Tl]),fs=a.useCallback(async()=>{x&&await Jt(x,{reloadDiff:!0,refresh:!0})},[Jt,x]),$o=a.useCallback(async(r=x??void 0)=>{if(!r)return null;const o=x,d=pn.current+1;pn.current=d,Vr.current?.abort(),kt("right-sidebar-git-details");const v=new AbortController;Vr.current=v,qs(!0);try{const w=await Qc(r,v.signal,"load_git_details","right-sidebar-git-details");return pn.current!==d||!Se(o)?null:(Ne(R=>R.map(P=>P.root===w.root?{...P,available:w.available,context:w,error:w.error}:P)),Q(R=>R?.root&&w.root&&R.root!==w.root?R:!R?.available||!w.available?w:{...R,...w}),w)}catch(w){return Ar(w)||!Se(o)||pn.current===d&>(w instanceof Error?w.message:"Failed to load Git details"),null}finally{Vr.current===v&&(Vr.current=null),pn.current===d&&Se(o)&&qs(!1)}},[Se,x]);a.useEffect(()=>{if(!t){vt.current+=1,ra(),Eo.current=null,pn.current+=1,sa.current+=1,Nr.current?.abort(),kt(Xn(Kr.current?.cwd??x??void 0)),Kr.current=null,Nr.current=null,Vr.current?.abort(),kt("right-sidebar-git-details"),Vr.current=null;for(const r of Ut.current.values())r.abort();for(const r of Ut.current.keys())kt(`right-sidebar-git-untracked:${r}`);Ut.current.clear(),Ot.current.clear(),Un.current+=1,Yr.current?.abort(),Yr.current=null,Hr.current+=1,sr.current?.abort(),kt("right-sidebar-recent-commits"),sr.current=null,qs(!1),se(!1),Ue(null),Be(null),tt(null),nr(null),Mn(!1),sn(""),X([]),Pt(!1),os(!1),En(null),$n(!1),q(""),G(!1),mt(null),go(!1),ml(!1),ee&&hl(!1)}},[ee,t,ra,G]),a.useEffect(()=>{if(!ue)return;const r=setTimeout(()=>{document.querySelector("input[data-right-search]")?.focus()},50);return()=>clearTimeout(r)},[ue]),a.useEffect(()=>{ee||Rr(!1)},[ee]);const hs=a.useCallback(r=>{mo(r);const o=ia.current;o&&(o.update(),o.slideTo(r,0),window.requestAnimationFrame(()=>{o.update(),o.slideTo(r,0)}))},[]);a.useEffect(()=>{if(ee)if(Rr(g),g&&Je){Cr(1);const r=Mr.current;r&&(r.update(),r.activeIndex!==1&&(us.current=1,r.slideTo(1,0)))}else{Cr(0);const r=Mr.current;r&&r.activeIndex!==0&&(us.current=0,r.slideTo(0,0)),mt(null)}},[ee,g,x,Je]),a.useEffect(()=>{if(b!==void 0&&!g){Cr(0);const r=Mr.current;r&&r.activeIndex!==0&&(us.current=0,r.slideTo(0,0)),Rr(!1),mt(null)}},[b,g]),a.useEffect(()=>{C!==void 0&&Le(null)},[C]),a.useEffect(()=>{!ee&&g&&S?.()},[ee,S,g]),a.useEffect(()=>{yo(r=>_i(r,s))},[s]);const Tf=a.useCallback(r=>{ee||(r.preventDefault(),oa.current={startX:r.clientX,startWidth:vo,pointerId:r.pointerId},r.currentTarget.setPointerCapture(r.pointerId))},[vo,ee]),If=a.useCallback(r=>{const o=oa.current;if(!o||o.pointerId!==r.pointerId)return;const d=_i(o.startWidth+r.clientX-o.startX,s);yo(d),Cs(js,d,xg)},[s]),Hl=a.useCallback(r=>{const o=oa.current;if(!(!o||o.pointerId!==r.pointerId)){oa.current=null,ws(js);try{r.currentTarget.releasePointerCapture(r.pointerId)}catch{}}},[]),Hn=!!(x&&_n!==null&&Wd(k)),Lo=!!(x&&!hn&&ye.size===0&&_n===null),lr=(()=>{let r=wo;return r==="android"&&!Wr&&(r="files"),Hn&&(r==="git"||r==="diff")&&(r="files"),r})(),Ze=lr==="git",zn=lr==="files",yt=lr==="diff",Ao=lr==="android";a.useEffect(()=>{if(!ee){Gs(!0);return}if(!t){const o=window.setTimeout(()=>{Gs(!1)},wg);return()=>window.clearTimeout(o)}Gs(!1);const r=window.setTimeout(()=>{Gs(!0)},yg);return()=>window.clearTimeout(r)},[ee,t]),a.useEffect(()=>{if(!ee||!yt)return;const r=ia.current;if(!r)return;const o=window.requestAnimationFrame(()=>{r.update()});return()=>window.cancelAnimationFrame(o)},[yt,ee]),a.useEffect(()=>{if(!Hn||!x||qr)return;const r=window.setTimeout(()=>{Jt(x,{background:!0})},3e3);return()=>window.clearTimeout(r)},[Hn,x,qr,Jt]);const Df=a.useCallback(r=>{Jt(r,{discoverOnly:!0})},[Jt]);Zm({active:t&&(Ze||yt),rootPath:x,loading:qr,delay:Ze&&!ee?0:li,lastStartedRoot:Eo,load:Df}),a.useEffect(()=>{!t||!Ze||(!ee||po)&&go(!0)},[Ze,ee,t,po]),a.useEffect(()=>{if(!t||Ze)return;const r=window.setTimeout(()=>{go(!0)},li);return()=>window.clearTimeout(r)},[Ze,t]),a.useEffect(()=>{yt&&hl(!0)},[yt]),a.useEffect(()=>{!t||!Ao||ml(!0)},[Ao,t]),a.useEffect(()=>{let r=!1;return qd().then(o=>{!r&&o.androidPanel&&pl(o.androidPanel.enabled===!0)}).catch(()=>{}),()=>{r=!0}},[]);const _f=a.useCallback(r=>{pl(r),r?Yt("android"):Z.getState().rightTab==="android"&&Yt("files"),Si({androidPanel:{enabled:r}}).catch(()=>{})},[Yt]),zl=a.useCallback(r=>{me&&vb(me,r.currentTarget.scrollTop)},[me]);a.useEffect(()=>()=>{Nr.current?.abort(),ws(Vi),ws(Yi),ws(js),ws(ii)},[]),a.useEffect(()=>{if(!me||!Fl)return;const r=df()[me]?.top;if(typeof r!="number")return;let o=window.requestAnimationFrame(()=>{Fn.current&&(Fn.current.scrollTop=r),o=window.requestAnimationFrame(()=>{Fn.current&&(Fn.current.scrollTop=r)})});return()=>window.cancelAnimationFrame(o)},[me,Fl]),a.useEffect(()=>{if(!t)return;const r=new AbortController;return zh(r.signal).then(o=>kl(!!o.available)).catch(()=>kl(!1)),()=>r.abort()},[t]);const ms=a.useCallback(r=>{if(ne(null),Qe(r),mt(null),ee){Rr(!0),Cr(1),Mr.current?.slideTo(1),f?.();return}},[ee,f,Qe]),Wl=a.useCallback((r,o)=>{if(ne(null),Qe(r),Lt(o),ee){Rr(!0),Cr(1),Mr.current?.slideTo(1),f?.();return}},[ee,f,Qe]),ps=a.useCallback(async(r,o)=>{const d=o||In||x;if(!(!d||r.length===0)){Qs(!0);try{await ti(d,r),ta(d,!1)}catch(v){gt(v instanceof Error?v.message:i("rightSidebar.uploadFailed")),window.setTimeout(()=>gt(null),4e3)}finally{Qs(!1)}}},[In,x,ta,i]),Gl=a.useCallback(async r=>{try{await Wh(r)}catch(o){gt(o instanceof Error?o.message:i("fileTree.openInFileBrowserFailed")),window.setTimeout(()=>gt(null),4e3)}},[i]),ca=a.useCallback(r=>{r.preventDefault(),r.stopPropagation(),r.dataTransfer.types.includes("Files")&&xo(!0)},[]),ql=a.useCallback(r=>{r.preventDefault(),r.stopPropagation(),xo(!1)},[]),Kl=a.useCallback(r=>{r.preventDefault(),r.stopPropagation(),xo(!1);const o=r.dataTransfer.files;o.length>0&&ps(Array.from(o))},[ps]),Po=a.useCallback(r=>{at(r),window.setTimeout(()=>at(o=>o===r?null:o),1400)},[]),Er=a.useCallback(r=>{qt(r),window.setTimeout(()=>qt(o=>o===r?null:o),1400)},[]);a.useEffect(()=>{St(yd,lt)},[lt]),a.useEffect(()=>{St(wd,Pr)},[Pr]),a.useEffect(()=>{St(kd,z)},[z]),a.useEffect(()=>{Cs(ii,be,hg)},[be]),a.useEffect(()=>(Cl().catch(()=>{}),Zc(r=>{r.type==="pinned-explorer-roots"&&Nl(r.pinnedExplorerRoots)})),[Cl,Nl]);const Vl=a.useRef(crypto.randomUUID?.()??`draft-${Math.random().toString(36).slice(2)}`),da=a.useRef(null),bn=a.useRef(null),[Yl,To]=a.useState(!1);a.useEffect(()=>{if(!t)return;To(!1);let r=!1;Gh().then(d=>{r||(da.current=d.text,ze(v=>d.text&&d.text!==v?d.text:v),To(!0))}).catch(()=>{r||To(!0)});const o=Zc(d=>{d.type==="context-draft"&&d.origin!==Vl.current&&(da.current=d.text,ze(d.text))});return()=>{r=!0,o(),bn.current!==null&&(window.clearTimeout(bn.current),bn.current=null)}},[t]),a.useEffect(()=>{if(!Yl||da.current===be)return;bn.current!==null&&window.clearTimeout(bn.current);const r=be;bn.current=window.setTimeout(()=>{bn.current=null,qh(r,Vl.current).then(()=>{da.current=r}).catch(()=>{})},500)},[be,Yl]);const Wn=a.useCallback((r,o,d)=>{if(r){if(Kh(d?r+d:r)){Po(o);return}lt?(ze(v=>Sp(v,r)+(d??"")),window.matchMedia("(pointer: coarse)").matches||(Dt(!1),dr(v=>v+1))):window.dispatchEvent(new CustomEvent("termdock-insert-reference",{detail:{text:d?r+d:r,focus:!0}})),Po(o)}},[lt,Po]),ua=a.useCallback(r=>{const o=La(r,x);return mm(o,x)},[x]),Io=iu(Er),Jr=a.useCallback((r,o)=>{const d=La(r,x);Wn(pm(d,x),o??`path:${d}`)},[x,Wn]),Ff=a.useCallback(async r=>{Qs(!0);try{await gm(r,ti,o=>{Jr(o,`path:${o}`)}),ee&&!lt&&l()}catch(o){gt(o instanceof Error?o.message:i("rightSidebar.uploadFailed")),window.setTimeout(()=>gt(null),4e3)}finally{Qs(!1)}},[lt,Jr,ee,l,i]),$r=a.useCallback((r,o)=>{if(!r)return;const d=r.includes(`
|
|
1660
1660
|
`)?`
|
|
1661
1661
|
`:void 0;Wn(r.endsWith(`
|
|
1662
1662
|
`)||r.endsWith(" ")?r:`${r} `,o,d)},[Wn]),Xl=a.useRef($r);Xl.current=$r;const Do=a.useRef(!0);a.useEffect(()=>(Do.current=!0,()=>{Do.current=!1}),[]);const _o=a.useRef(new Set),Jl=a.useCallback((r,o,d)=>{if(_o.current.has(o))return;const v=ad.getState().activeSessionId;_o.current.add(o),rp(r,o,d,{insert:$r,upload:async(w,R)=>(await ti("/tmp",[w],R)).files[0]?.path,isCurrent:()=>Do.current&&Xl.current===$r&&v===ad.getState().activeSessionId}).finally(()=>_o.current.delete(o))},[$r]),Qr=a.useCallback((r,o,d)=>{o&&Wn(o.endsWith(" ")?o:`${o} `,d??`context:${r}`,`
|
|
Binary file
|
|
Binary file
|
package/dist/client/assets/{abnfDiagram-VCTEODGH-Bv96bwkp.js → abnfDiagram-VCTEODGH-B-Cra1MS.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-SVP7TREG-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-SVP7TREG-CU4LcBJc.js";import{p as f}from"./chunk-JWPE2WC7-Dvn7wcLE.js";import{d as n,bg as o}from"./mermaid.core-BiCQSET3.js";import{M as c,c as d}from"./cynefin-OW5HDTMX-DuulnX-l.js";import"./app-CAES0OPd.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";import"./purify.es-4eNOHKSq.js";var g=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(v);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),v=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),m=t?parseInt(t,10):0,l=s?parseInt(s,10):1/0;return{min:m,max:l}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=g.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},D={parser:R,db:a,renderer:u,styles:p};export{D as diagram};
|
|
Binary file
|
|
Binary file
|