termdock 1.4.352 → 1.4.354
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/AndroidMirrorView-D9CMPmet.js +3 -0
- package/dist/client/assets/AndroidMirrorView-D9CMPmet.js.br +0 -0
- package/dist/client/assets/AndroidMirrorView-D9CMPmet.js.gz +0 -0
- package/dist/client/assets/{App-DqRkfVSm.js → App-CqLXOAnv.js} +7 -7
- package/dist/client/assets/App-CqLXOAnv.js.br +0 -0
- package/dist/client/assets/App-CqLXOAnv.js.gz +0 -0
- package/dist/client/assets/{ArchitecturePanel-m9GKl3cl.js → ArchitecturePanel-Dlnd9PH-.js} +2 -2
- package/dist/client/assets/ArchitecturePanel-Dlnd9PH-.js.br +0 -0
- package/dist/client/assets/ArchitecturePanel-Dlnd9PH-.js.gz +0 -0
- package/dist/client/assets/{ChangeWalkthroughPanel-HZ0zvFvi.js → ChangeWalkthroughPanel-BYb27GTC.js} +2 -2
- package/dist/client/assets/ChangeWalkthroughPanel-BYb27GTC.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-BYb27GTC.js.gz +0 -0
- package/dist/client/assets/{CollaborationMainWorkspace-B4OMk92m.js → CollaborationMainWorkspace-BJ_pbIlW.js} +1 -1
- package/dist/client/assets/CollaborationMainWorkspace-BJ_pbIlW.js.br +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-BJ_pbIlW.js.gz +0 -0
- package/dist/client/assets/{CollaborationTaskContent-Cbg3iH6E.js → CollaborationTaskContent-GMhtQgeq.js} +2 -2
- package/dist/client/assets/{ComputerControlView-CSs54lf0.js → ComputerControlView-VNUyl2Gb.js} +3 -3
- package/dist/client/assets/ComputerControlView-VNUyl2Gb.js.br +0 -0
- package/dist/client/assets/ComputerControlView-VNUyl2Gb.js.gz +0 -0
- package/dist/client/assets/{DagPlayground-yoS2llnB.js → DagPlayground-Bzu6gfYW.js} +1 -1
- package/dist/client/assets/DagPlayground-Bzu6gfYW.js.br +0 -0
- package/dist/client/assets/DagPlayground-Bzu6gfYW.js.gz +0 -0
- package/dist/client/assets/{DiffLab-Dj1MT9pY.js → DiffLab-CKBHu65J.js} +1 -1
- package/dist/client/assets/DiffLab-CKBHu65J.js.br +0 -0
- package/dist/client/assets/DiffLab-CKBHu65J.js.gz +0 -0
- package/dist/client/assets/{DiffReview-BX2S9hNp.js → DiffReview-DAUBgpsh.js} +1 -1
- package/dist/client/assets/DiffReview-DAUBgpsh.js.br +0 -0
- package/dist/client/assets/DiffReview-DAUBgpsh.js.gz +0 -0
- package/dist/client/assets/{DiffReviewLab-DqI14GEk.js → DiffReviewLab--PbhIP71.js} +1 -1
- package/dist/client/assets/DiffReviewLab--PbhIP71.js.br +0 -0
- package/dist/client/assets/DiffReviewLab--PbhIP71.js.gz +0 -0
- package/dist/client/assets/{DiffViewer-AZvdDGfH.js → DiffViewer-Cg3GhKcU.js} +1 -1
- package/dist/client/assets/DiffViewer-Cg3GhKcU.js.br +0 -0
- package/dist/client/assets/DiffViewer-Cg3GhKcU.js.gz +0 -0
- package/dist/client/assets/{GitLoadingSkeleton-CBPykkZP.js → GitLoadingSkeleton-ieGTuTuO.js} +1 -1
- package/dist/client/assets/GitLoadingSkeleton-ieGTuTuO.js.br +0 -0
- package/dist/client/assets/GitLoadingSkeleton-ieGTuTuO.js.gz +0 -0
- package/dist/client/assets/{MarkdownPreview-DpvTnKkj.js → MarkdownPreview-b_bwDNcY.js} +2 -2
- package/dist/client/assets/MarkdownPreview-b_bwDNcY.js.br +0 -0
- package/dist/client/assets/MarkdownPreview-b_bwDNcY.js.gz +0 -0
- package/dist/client/assets/{ModelPreview-Du_AyPr9.js → ModelPreview-C9nka14O.js} +1 -1
- package/dist/client/assets/ModelPreview-C9nka14O.js.br +0 -0
- package/dist/client/assets/ModelPreview-C9nka14O.js.gz +0 -0
- package/dist/client/assets/{RecordingSaveDialog-CtXaGgIo.js → RecordingSaveDialog-1YvzwTzo.js} +1 -1
- package/dist/client/assets/RecordingSaveDialog-1YvzwTzo.js.br +0 -0
- package/dist/client/assets/RecordingSaveDialog-1YvzwTzo.js.gz +0 -0
- package/dist/client/assets/{RightSidebar-DU3gwdzg.js → RightSidebar-CCk8ovoK.js} +3 -3
- package/dist/client/assets/RightSidebar-CCk8ovoK.js.br +0 -0
- package/dist/client/assets/RightSidebar-CCk8ovoK.js.gz +0 -0
- package/dist/client/assets/{SessionChatView-CxfwJMuK.js → SessionChatView-DORRzcNq.js} +5 -5
- package/dist/client/assets/SessionChatView-DORRzcNq.js.br +0 -0
- package/dist/client/assets/SessionChatView-DORRzcNq.js.gz +0 -0
- package/dist/client/assets/SessionResourceSidebar-De0sHmdG.js +2 -0
- package/dist/client/assets/SessionResourceSidebar-De0sHmdG.js.br +0 -0
- package/dist/client/assets/SessionResourceSidebar-De0sHmdG.js.gz +0 -0
- package/dist/client/assets/{TodoWorkspace-j9BLgk94.js → TodoWorkspace-BHHT954s.js} +1 -1
- package/dist/client/assets/TodoWorkspace-BHHT954s.js.br +0 -0
- package/dist/client/assets/TodoWorkspace-BHHT954s.js.gz +0 -0
- package/dist/client/assets/{abnfDiagram-VCTEODGH-LfmMIpPX.js → abnfDiagram-VCTEODGH-CTqKSsYV.js} +1 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-CTqKSsYV.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-CTqKSsYV.js.gz +0 -0
- package/dist/client/assets/app-stNRNTO-.js +37 -0
- package/dist/client/assets/app-stNRNTO-.js.br +0 -0
- package/dist/client/assets/app-stNRNTO-.js.gz +0 -0
- package/dist/client/assets/{arc-DMzcmH2U.js → arc-CcvWcKBR.js} +1 -1
- package/dist/client/assets/arc-CcvWcKBR.js.br +0 -0
- package/dist/client/assets/arc-CcvWcKBR.js.gz +0 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-CphS_S5Q.js → architectureDiagram-5GKGNRK7-B_2ae8Tt.js} +1 -1
- package/dist/client/assets/architectureDiagram-5GKGNRK7-B_2ae8Tt.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-B_2ae8Tt.js.gz +0 -0
- package/dist/client/assets/{arrow-down-D-WZS308.js → arrow-down-DaWRHIlh.js} +1 -1
- package/dist/client/assets/{arrow-up-CelbB9FE.js → arrow-up-DE9Z7GTI.js} +1 -1
- package/dist/client/assets/{blockDiagram-I7D4REHJ-Dx_4qkcL.js → blockDiagram-I7D4REHJ-CGXUOwJg.js} +1 -1
- package/dist/client/assets/blockDiagram-I7D4REHJ-CGXUOwJg.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-CGXUOwJg.js.gz +0 -0
- package/dist/client/assets/{c4Diagram-7LVT6UL2-DiGdnPo4.js → c4Diagram-7LVT6UL2-BSU3omYQ.js} +1 -1
- package/dist/client/assets/c4Diagram-7LVT6UL2-BSU3omYQ.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-BSU3omYQ.js.gz +0 -0
- package/dist/client/assets/channel-CREmT4wq.js +1 -0
- package/dist/client/assets/{chevron-left-5sk7gL3u.js → chevron-left-ZgHOf4aC.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-M50KNmR8.js → chunk-2Q5K7J3B-B67WsCJN.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-wXVM-Max.js → chunk-5VM5RSS4-B8k7JXrn.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-BfQILS9u.js → chunk-F27PBJKO-CP85XeHB.js} +1 -1
- package/dist/client/assets/chunk-F27PBJKO-CP85XeHB.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-CP85XeHB.js.gz +0 -0
- package/dist/client/assets/{chunk-IMKFNOWR-D111Jpl3.js → chunk-IMKFNOWR-BjTbac0d.js} +1 -1
- package/dist/client/assets/chunk-IMKFNOWR-BjTbac0d.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-BjTbac0d.js.gz +0 -0
- package/dist/client/assets/{chunk-JWPE2WC7-BBDyly5c.js → chunk-JWPE2WC7-vEdRTCxh.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-BaI-_yc7.js → chunk-POPQ4Y6H-BI8tSW7F.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-BvQafCMJ.js → chunk-SVP7TREG-Dde8KTpr.js} +1 -1
- package/dist/client/assets/chunk-SVP7TREG-Dde8KTpr.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-Dde8KTpr.js.gz +0 -0
- package/dist/client/assets/{chunk-TICWLB2K-CQXPwGBz.js → chunk-TICWLB2K-DIBgH5zV.js} +1 -1
- package/dist/client/assets/chunk-TICWLB2K-DIBgH5zV.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-DIBgH5zV.js.gz +0 -0
- package/dist/client/assets/{chunk-XXDRQBXY-CmwZc4xV.js → chunk-XXDRQBXY-LSjj35mz.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-CTHA5GVu.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-CTHA5GVu.js +1 -0
- package/dist/client/assets/{clipboard-uSv3AiJM.js → clipboard-BGpbRBdi.js} +1 -1
- package/dist/client/assets/{clipboardText-5puxqqm_.js → clipboardText-B0NK9NMn.js} +1 -1
- package/dist/client/assets/clipboardText-B0NK9NMn.js.br +0 -0
- package/dist/client/assets/clipboardText-B0NK9NMn.js.gz +0 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-CqWarkUj.js → cose-bilkent-JH36ORCC-v4utSIkX.js} +1 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-v4utSIkX.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-v4utSIkX.js.gz +0 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-CFW2ifig.js → cynefin-OW5HDTMX-BdbtIufa.js} +1 -1
- package/dist/client/assets/cynefin-OW5HDTMX-BdbtIufa.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-BdbtIufa.js.gz +0 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-yggxM55S.js → cynefinDiagram-5FMLGOSQ-B9EVx2-N.js} +1 -1
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-B9EVx2-N.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-B9EVx2-N.js.gz +0 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-inq7o--x.js → dagre-GXQ25YYZ-Do2YjWuC.js} +1 -1
- package/dist/client/assets/dagre-GXQ25YYZ-Do2YjWuC.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-Do2YjWuC.js.gz +0 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-BUXMnyQN.js → diagram-S7CK7UJ4-BnJa3bbo.js} +1 -1
- package/dist/client/assets/diagram-S7CK7UJ4-BnJa3bbo.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-BnJa3bbo.js.gz +0 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-BJbw-Imf.js → diagram-UQ7AKVKN-C09N8-nE.js} +1 -1
- package/dist/client/assets/diagram-UQ7AKVKN-C09N8-nE.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-C09N8-nE.js.gz +0 -0
- package/dist/client/assets/{diagram-VSXAHHWV-CSfl8yS7.js → diagram-VSXAHHWV-mMv3O2zK.js} +1 -1
- package/dist/client/assets/diagram-VSXAHHWV-mMv3O2zK.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-mMv3O2zK.js.gz +0 -0
- package/dist/client/assets/{diagram-VX7I27RA-zV-Vrv89.js → diagram-VX7I27RA-B0aepUKS.js} +1 -1
- package/dist/client/assets/diagram-VX7I27RA-B0aepUKS.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-B0aepUKS.js.gz +0 -0
- package/dist/client/assets/{diagram-Z3DM3KII-CRnE-snw.js → diagram-Z3DM3KII-BstqsbCO.js} +1 -1
- package/dist/client/assets/diagram-Z3DM3KII-BstqsbCO.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-BstqsbCO.js.gz +0 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-CE30oImc.js → ebnfDiagram-PWID7BFC-CPINc9LK.js} +1 -1
- package/dist/client/assets/ebnfDiagram-PWID7BFC-CPINc9LK.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-CPINc9LK.js.gz +0 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-D-5bIySI.js → erDiagram-RLTQ6QDP-dUgaGLHP.js} +1 -1
- package/dist/client/assets/erDiagram-RLTQ6QDP-dUgaGLHP.js.br +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-dUgaGLHP.js.gz +0 -0
- package/dist/client/assets/{flowDiagram-HODETNUW-E_jPKtQR.js → flowDiagram-HODETNUW-4ottFlnS.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-4ottFlnS.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-4ottFlnS.js.gz +0 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-BWvLOUzC.js → ganttDiagram-EL5Y4UJY-CZOkoivd.js} +1 -1
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CZOkoivd.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CZOkoivd.js.gz +0 -0
- package/dist/client/assets/{git-compare-BlcHEuBI.js → git-compare-C7n2uha2.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-nOlVCBmL.js → gitGraphDiagram-WWUBYQGX-kh9xx53r.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-kh9xx53r.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-kh9xx53r.js.gz +0 -0
- package/dist/client/assets/{index-CA1fR_jI.css → index-bfj9dYEg.css} +1 -1
- package/dist/client/assets/index-bfj9dYEg.css.br +0 -0
- package/dist/client/assets/{index-CA1fR_jI.css.gz → index-bfj9dYEg.css.gz} +0 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-CjVm9Lzz.js → infoDiagram-27XIBGKW-zRkMruS-.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DmVMaGVp.js → ishikawaDiagram-5VMMS53U-DPntAz12.js} +1 -1
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-DPntAz12.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-DPntAz12.js.gz +0 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-DLwkoAy9.js → journeyDiagram-3NMN7TZE-B074bD6a.js} +1 -1
- package/dist/client/assets/journeyDiagram-3NMN7TZE-B074bD6a.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-B074bD6a.js.gz +0 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-GWkp_QiO.js → kanban-definition-UXKFOSKX-wPbpE7ij.js} +1 -1
- package/dist/client/assets/kanban-definition-UXKFOSKX-wPbpE7ij.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-wPbpE7ij.js.gz +0 -0
- package/dist/client/assets/{layout-DFg5a61y.js → layout-D-nTHjVE.js} +1 -1
- package/dist/client/assets/layout-D-nTHjVE.js.br +0 -0
- package/dist/client/assets/{layout-DFg5a61y.js.gz → layout-D-nTHjVE.js.gz} +0 -0
- package/dist/client/assets/{linear-B0OdJLe1.js → linear-BVxgfw5H.js} +1 -1
- package/dist/client/assets/linear-BVxgfw5H.js.br +0 -0
- package/dist/client/assets/linear-BVxgfw5H.js.gz +0 -0
- package/dist/client/assets/{link-BnxdKJ7b.js → link-D-fkBp5k.js} +1 -1
- package/dist/client/assets/link-D-fkBp5k.js.br +0 -0
- package/dist/client/assets/link-D-fkBp5k.js.gz +0 -0
- package/dist/client/assets/{list-tree-Bou8VSzi.js → list-tree-DKTcSR9r.js} +1 -1
- package/dist/client/assets/{loader-circle-q7h8uwFI.js → loader-circle-DZn9iP0u.js} +1 -1
- package/dist/client/assets/{maximize-2-BGTBw-Ku.js → maximize-2-dFjMEqgh.js} +1 -1
- package/dist/client/assets/{mermaid.core-DQA3ykXv.js → mermaid.core-D89ctjDO.js} +5 -5
- package/dist/client/assets/mermaid.core-D89ctjDO.js.br +0 -0
- package/dist/client/assets/mermaid.core-D89ctjDO.js.gz +0 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-DsZAVAGP.js → mindmap-definition-YA3MSWOX-1TrbOKNK.js} +1 -1
- package/dist/client/assets/mindmap-definition-YA3MSWOX-1TrbOKNK.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-1TrbOKNK.js.gz +0 -0
- package/dist/client/assets/{passwordBootstrap-CEZSL94g.js → passwordBootstrap-8XHlXyYk.js} +1 -1
- package/dist/client/assets/passwordBootstrap-8XHlXyYk.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-8XHlXyYk.js.gz +0 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-C3ar01Lf.js → pegDiagram-XKGWAZYB-CJYo1Bz4.js} +1 -1
- package/dist/client/assets/pegDiagram-XKGWAZYB-CJYo1Bz4.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-CJYo1Bz4.js.gz +0 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-C8LIa9gE.js → pieDiagram-E7YTZNPT-DyE6_2FS.js} +1 -1
- package/dist/client/assets/pieDiagram-E7YTZNPT-DyE6_2FS.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-DyE6_2FS.js.gz +0 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-BuRJ1f9F.js → quadrantDiagram-AXDQQJYC-OgNN7-oZ.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-BuRJ1f9F.js.br → quadrantDiagram-AXDQQJYC-OgNN7-oZ.js.br} +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-OgNN7-oZ.js.gz +0 -0
- package/dist/client/assets/{quote-qXNI_NTi.js → quote-QwQvV6RF.js} +1 -1
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-D7iZy3dO.js → railroadDiagram-O6MQD6OU-Dmqw_B10.js} +1 -1
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Dmqw_B10.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Dmqw_B10.js.gz +0 -0
- package/dist/client/assets/{rdpSession-DUBlG26K.js → rdpSession-tgxFIJYE.js} +1 -1
- package/dist/client/assets/rdpSession-tgxFIJYE.js.br +0 -0
- package/dist/client/assets/rdpSession-tgxFIJYE.js.gz +0 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-DhY8g8qK.js → requirementDiagram-BXWQKSXE-nZK7--1f.js} +1 -1
- package/dist/client/assets/requirementDiagram-BXWQKSXE-nZK7--1f.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-nZK7--1f.js.gz +0 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-DDA_LQcg.js → sankeyDiagram-P5KCCOFB-Db_TVWjx.js} +1 -1
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-Db_TVWjx.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-Db_TVWjx.js.gz +0 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-bWgfdfwY.js → sequenceDiagram-WJ2MYXX4-B7TK9j0_.js} +1 -1
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-B7TK9j0_.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-B7TK9j0_.js.gz +0 -0
- package/dist/client/assets/{settings-2-B-sr3wQM.js → settings-2-9tlRImVo.js} +1 -1
- package/dist/client/assets/{sizeCapture-INFHLROL-BYxi7e0R.js → sizeCapture-INFHLROL-roX-pGgF.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-roX-pGgF.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-roX-pGgF.js.gz +0 -0
- package/dist/client/assets/{sparkles-CCLflSFy.js → sparkles-B64EiCUM.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-6vqC2h36.js → stateDiagram-D77RDMKH-BdBm0h1F.js} +1 -1
- package/dist/client/assets/stateDiagram-D77RDMKH-BdBm0h1F.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-BdBm0h1F.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-ClZ2Tfz8.js +1 -0
- package/dist/client/assets/{sun-B9_TfxlA.js → sun-BFxiDkET.js} +1 -1
- package/dist/client/assets/{swimlanes-42K2YHIH-B4qrXam7.js → swimlanes-42K2YHIH-DUulb0LD.js} +1 -1
- package/dist/client/assets/swimlanes-42K2YHIH-DUulb0LD.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-DUulb0LD.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-CGI6rSok.js +8 -0
- package/dist/client/assets/{syntaxHighlight-bcOB6oww.js → syntaxHighlight-Bgt0lmWx.js} +1 -1
- package/dist/client/assets/syntaxHighlight-Bgt0lmWx.js.br +0 -0
- package/dist/client/assets/syntaxHighlight-Bgt0lmWx.js.gz +0 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-D0_004MF.js → timeline-definition-24CTP7MA-CIQuxjVB.js} +1 -1
- package/dist/client/assets/timeline-definition-24CTP7MA-CIQuxjVB.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-CIQuxjVB.js.gz +0 -0
- package/dist/client/assets/{triangle-alert-D3w7mA17.js → triangle-alert-LpKfIn7N.js} +1 -1
- package/dist/client/assets/{unplug-BSblgecr.js → unplug-CLBg6VOD.js} +1 -1
- package/dist/client/assets/{vennDiagram-4TSXK5OY-Bqrx-47p.js → vennDiagram-4TSXK5OY-CMRFApvJ.js} +1 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-CMRFApvJ.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-CMRFApvJ.js.gz +0 -0
- package/dist/client/assets/{videoCompression-df1Ej3AR.js → videoCompression-DjyAuV3i.js} +1 -1
- package/dist/client/assets/videoCompression-DjyAuV3i.js.br +0 -0
- package/dist/client/assets/videoCompression-DjyAuV3i.js.gz +0 -0
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-C4LCUdfd.js → wardleyDiagram-VM6X3IG4-BEb3x-zl.js} +1 -1
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-BEb3x-zl.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-BEb3x-zl.js.gz +0 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-E5AQcZVI.js → xychartDiagram-S5SC5T6Z-DUvoeYl2.js} +1 -1
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DUvoeYl2.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-DUvoeYl2.js.gz +0 -0
- package/dist/client/index.html +2 -2
- package/dist/client/index.html.br +0 -0
- package/dist/client/index.html.gz +0 -0
- package/dist/client/sw.js +1 -1
- package/dist/client/sw.js.br +0 -0
- package/dist/client/sw.js.gz +0 -0
- package/package.json +1 -1
- package/runtime-manifest.json +2 -2
- package/dist/client/assets/AndroidMirrorView-DkOZxYLg.js +0 -3
- package/dist/client/assets/AndroidMirrorView-DkOZxYLg.js.br +0 -0
- package/dist/client/assets/AndroidMirrorView-DkOZxYLg.js.gz +0 -0
- package/dist/client/assets/App-DqRkfVSm.js.br +0 -0
- package/dist/client/assets/App-DqRkfVSm.js.gz +0 -0
- package/dist/client/assets/ArchitecturePanel-m9GKl3cl.js.br +0 -0
- package/dist/client/assets/ArchitecturePanel-m9GKl3cl.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-HZ0zvFvi.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-HZ0zvFvi.js.gz +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-B4OMk92m.js.br +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-B4OMk92m.js.gz +0 -0
- package/dist/client/assets/ComputerControlView-CSs54lf0.js.br +0 -0
- package/dist/client/assets/ComputerControlView-CSs54lf0.js.gz +0 -0
- package/dist/client/assets/DagPlayground-yoS2llnB.js.br +0 -0
- package/dist/client/assets/DagPlayground-yoS2llnB.js.gz +0 -0
- package/dist/client/assets/DiffLab-Dj1MT9pY.js.br +0 -0
- package/dist/client/assets/DiffLab-Dj1MT9pY.js.gz +0 -0
- package/dist/client/assets/DiffReview-BX2S9hNp.js.br +0 -0
- package/dist/client/assets/DiffReview-BX2S9hNp.js.gz +0 -0
- package/dist/client/assets/DiffReviewLab-DqI14GEk.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-DqI14GEk.js.gz +0 -0
- package/dist/client/assets/DiffViewer-AZvdDGfH.js.br +0 -0
- package/dist/client/assets/DiffViewer-AZvdDGfH.js.gz +0 -0
- package/dist/client/assets/GitLoadingSkeleton-CBPykkZP.js.br +0 -0
- package/dist/client/assets/GitLoadingSkeleton-CBPykkZP.js.gz +0 -0
- package/dist/client/assets/MarkdownPreview-DpvTnKkj.js.br +0 -0
- package/dist/client/assets/MarkdownPreview-DpvTnKkj.js.gz +0 -0
- package/dist/client/assets/ModelPreview-Du_AyPr9.js.br +0 -0
- package/dist/client/assets/ModelPreview-Du_AyPr9.js.gz +0 -0
- package/dist/client/assets/RecordingSaveDialog-CtXaGgIo.js.br +0 -0
- package/dist/client/assets/RecordingSaveDialog-CtXaGgIo.js.gz +0 -0
- package/dist/client/assets/RightSidebar-DU3gwdzg.js.br +0 -0
- package/dist/client/assets/RightSidebar-DU3gwdzg.js.gz +0 -0
- package/dist/client/assets/SessionChatView-CxfwJMuK.js.br +0 -0
- package/dist/client/assets/SessionChatView-CxfwJMuK.js.gz +0 -0
- package/dist/client/assets/SessionResourceSidebar-B31PU57J.js +0 -2
- package/dist/client/assets/SessionResourceSidebar-B31PU57J.js.br +0 -0
- package/dist/client/assets/SessionResourceSidebar-B31PU57J.js.gz +0 -0
- package/dist/client/assets/TodoWorkspace-j9BLgk94.js.br +0 -0
- package/dist/client/assets/TodoWorkspace-j9BLgk94.js.gz +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-LfmMIpPX.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-LfmMIpPX.js.gz +0 -0
- package/dist/client/assets/app-BMJesFDU.js +0 -36
- package/dist/client/assets/app-BMJesFDU.js.br +0 -0
- package/dist/client/assets/app-BMJesFDU.js.gz +0 -0
- package/dist/client/assets/arc-DMzcmH2U.js.br +0 -0
- package/dist/client/assets/arc-DMzcmH2U.js.gz +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CphS_S5Q.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CphS_S5Q.js.gz +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-Dx_4qkcL.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-Dx_4qkcL.js.gz +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-DiGdnPo4.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-DiGdnPo4.js.gz +0 -0
- package/dist/client/assets/channel-BxAJ9Qmh.js +0 -1
- package/dist/client/assets/chunk-F27PBJKO-BfQILS9u.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-BfQILS9u.js.gz +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-D111Jpl3.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-D111Jpl3.js.gz +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BvQafCMJ.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BvQafCMJ.js.gz +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CQXPwGBz.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CQXPwGBz.js.gz +0 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-D0oXVFxd.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-D0oXVFxd.js +0 -1
- package/dist/client/assets/clipboardText-5puxqqm_.js.br +0 -0
- package/dist/client/assets/clipboardText-5puxqqm_.js.gz +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-CqWarkUj.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-CqWarkUj.js.gz +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-CFW2ifig.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-CFW2ifig.js.gz +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-yggxM55S.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-yggxM55S.js.gz +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-inq7o--x.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-inq7o--x.js.gz +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-BUXMnyQN.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-BUXMnyQN.js.gz +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-BJbw-Imf.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-BJbw-Imf.js.gz +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-CSfl8yS7.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-CSfl8yS7.js.gz +0 -0
- package/dist/client/assets/diagram-VX7I27RA-zV-Vrv89.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-zV-Vrv89.js.gz +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-CRnE-snw.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-CRnE-snw.js.gz +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-CE30oImc.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-CE30oImc.js.gz +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-D-5bIySI.js.br +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-D-5bIySI.js.gz +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-E_jPKtQR.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-E_jPKtQR.js.gz +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-BWvLOUzC.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-BWvLOUzC.js.gz +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-nOlVCBmL.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-nOlVCBmL.js.gz +0 -0
- package/dist/client/assets/index-CA1fR_jI.css.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-DmVMaGVp.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-DmVMaGVp.js.gz +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DLwkoAy9.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DLwkoAy9.js.gz +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-GWkp_QiO.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-GWkp_QiO.js.gz +0 -0
- package/dist/client/assets/layout-DFg5a61y.js.br +0 -0
- package/dist/client/assets/linear-B0OdJLe1.js.br +0 -0
- package/dist/client/assets/linear-B0OdJLe1.js.gz +0 -0
- package/dist/client/assets/link-BnxdKJ7b.js.br +0 -0
- package/dist/client/assets/link-BnxdKJ7b.js.gz +0 -0
- package/dist/client/assets/mermaid.core-DQA3ykXv.js.br +0 -0
- package/dist/client/assets/mermaid.core-DQA3ykXv.js.gz +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-DsZAVAGP.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-DsZAVAGP.js.gz +0 -0
- package/dist/client/assets/passwordBootstrap-CEZSL94g.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-CEZSL94g.js.gz +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-C3ar01Lf.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-C3ar01Lf.js.gz +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-C8LIa9gE.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-C8LIa9gE.js.gz +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BuRJ1f9F.js.gz +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-D7iZy3dO.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-D7iZy3dO.js.gz +0 -0
- package/dist/client/assets/rdpSession-DUBlG26K.js.br +0 -0
- package/dist/client/assets/rdpSession-DUBlG26K.js.gz +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-DhY8g8qK.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-DhY8g8qK.js.gz +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-DDA_LQcg.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-DDA_LQcg.js.gz +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-bWgfdfwY.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-bWgfdfwY.js.gz +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-BYxi7e0R.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-BYxi7e0R.js.gz +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-6vqC2h36.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-6vqC2h36.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-Bb23lB9W.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-B4qrXam7.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-B4qrXam7.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-CQ1XJUVU.js +0 -8
- package/dist/client/assets/syntaxHighlight-bcOB6oww.js.br +0 -0
- package/dist/client/assets/syntaxHighlight-bcOB6oww.js.gz +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-D0_004MF.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-D0_004MF.js.gz +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-Bqrx-47p.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-Bqrx-47p.js.gz +0 -0
- package/dist/client/assets/videoCompression-df1Ej3AR.js.br +0 -0
- package/dist/client/assets/videoCompression-df1Ej3AR.js.gz +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-C4LCUdfd.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-C4LCUdfd.js.gz +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-E5AQcZVI.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-E5AQcZVI.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/MarkdownPreview-
|
|
2
|
-
import{aQ as gt,bn as At,e5 as he,cb as e,a1 as Dt,l as Ge,dg as et,dh as Mt,e6 as We,H as yt,a0 as Se,ee as tt,C as Tt,L as Ft,R as jt,o as Lt,q as Pt,j as It,g as Fe,e as Ot,c as Ht,f as vt,ej as Bt}from"./app-BMJesFDU.js";import{b as s,r as wt}from"./dnd-BCFAPC0L.js";import{k as Je,p as Le,A as Nt,g as _t,H as qt,h as Ut,c as qe,a as xe,b as kt,d as Wt,f as nt,l as Jt,n as Vt,i as Kt,D as Ee,e as Xt}from"./link-BnxdKJ7b.js";import{U as Zt}from"./RecordingSaveDialog-CtXaGgIo.js";import{L as Yt}from"./DiffViewer-AZvdDGfH.js";import Qt from"./purify.es-4eNOHKSq.js";import{l as Gt,i as er}from"./MarkdownPreview-DpvTnKkj.js";import{f as tr,H as rr}from"./AndroidMirrorView-DkOZxYLg.js";import{S as sr}from"./RightSidebar-DU3gwdzg.js";import{A as nr}from"./arrow-up-CelbB9FE.js";import{S as St}from"./sparkles-CCLflSFy.js";import{N as mt}from"./GitLoadingSkeleton-CBPykkZP.js";import"./react-XDCjal2T.js";import"./terminal-Dea8wJF3.js";import"./use-gesture-react.esm-DYpdiE_k.js";import"./gestureArbiter-DszagC-d.js";import"./syntaxHighlight-bcOB6oww.js";import"./git-compare-BlcHEuBI.js";import"./swiper-DJjq1TYT.js";import"./list-tree-Bou8VSzi.js";import"./v4-EwEgHOG0.js";import"./unplug-BSblgecr.js";import"./DiffReview-BX2S9hNp.js";import"./triangle-alert-D3w7mA17.js";import"./ChangeWalkthroughPanel-HZ0zvFvi.js";import"./chevron-left-5sk7gL3u.js";import"./maximize-2-BGTBw-Ku.js";import"./loader-circle-q7h8uwFI.js";import"./arrow-down-D-WZS308.js";const ir=[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]],ar=gt("arrow-down-left",ir);const lr=[["path",{d:"m15 15 6 6",key:"1s409w"}],["path",{d:"m15 9 6-6",key:"ko1vev"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}],["path",{d:"M3 16v5h5",key:"1t08am"}],["path",{d:"m3 21 6-6",key:"wwnumi"}],["path",{d:"M3 8V3h5",key:"1ln10m"}],["path",{d:"M9 9 3 3",key:"v551iv"}]],cr=gt("expand",lr);function or(r,o){const a=new Map,d={id:"all-perspectives",title:o,summary:r.summary,nodes:[],edges:[]};return r.perspectives.forEach((x,n)=>{const p=`perspective${n}`,g=new Map(x.nodes.map((u,c)=>[u.id,`${p}_node${c}`]));a.set(p,{perspective:x.id}),d.nodes.push({id:p,title:x.title,summary:x.summary,files:[],description:x.description});for(const u of x.nodes){const c=g.get(u.id);a.set(c,{perspective:x.id,node:u.id}),d.nodes.push({...u,id:c,parentId:u.parentId?g.get(u.parentId):p})}d.edges.push(...x.edges.map(u=>({...u,from:g.get(u.from),to:g.get(u.to)})))}),{view:d,references:a}}async function $e(r,o,a,d){const x=new URLSearchParams({root:r}),n=await fetch(`/api/terminal/architecture/${o}${d?"":`${o.includes("?")?"&":"?"}${x}`}`,{signal:a,cache:"no-store",...d?{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":await At()},body:JSON.stringify({root:r,...d})}:{}}),p=await n.json();if(!n.ok)throw new Error(p.error||`HTTP ${n.status}`);return p}async function ur(r,o){const a=await $e(r,"documents",o);if(!Array.isArray(a.files))throw new Error("Invalid architecture library");return[...new Set(a.files.filter(d=>typeof d=="string"&&Je(d)))].sort()}async function Ue(r,o,a){if(!Je(o))throw new Error("Invalid architecture file");const d=await $e(r,`document?${new URLSearchParams({file:o})}`,a);if(!("document"in d)||d.revision!==null&&typeof d.revision!="string")throw new Error("Invalid architecture response");return{document:d.document?Le(JSON.stringify(d.document)):null,revision:typeof d.revision=="string"?d.revision:null}}async function dr(r,o,a,d,x,n,p){const g=await $e(r,"field",void 0,{file:o,perspective:a,node:d,field:x,value:n,revision:p});return Le(JSON.stringify(g.document))}async function mr(r,o,a){const d=await $e(r,`history?${new URLSearchParams({file:o})}`,a);if(!Array.isArray(d.versions))throw new Error("Invalid architecture history");return d.versions}async function hr(r,o){return $e(r,`bundle?${new URLSearchParams({file:o})}`)}async function pr(r,o,a){const d=await $e(r,"bundle",void 0,{bundle:o,revision:a});return Le(JSON.stringify(d.document))}async function xr(r,o,a,d){const x=await $e(r,"document",void 0,{file:o,document:a,...d!==void 0?{revision:d}:{}});return Le(JSON.stringify(x.document))}const fr=s.lazy(()=>Dt(()=>import("./MarkdownPreview-DpvTnKkj.js").then(r=>r.b),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(r=>({default:r.MarkdownPreview})));function rt(r,o){return o?{description:"说明",diagram:"关系图源码",context:"上下文",constraint:"约束",concern:"问题与风险",todo:"待办",note:"备注"}[r]:{description:"Description",diagram:"Diagram source",context:"Context",constraint:"Constraints",concern:"Concerns",todo:"To do",note:"Notes"}[r]}function st({value:r,rootPath:o,onEdit:a,onOpenFile:d}){const{locale:x}=he(),n=x==="zh",p=r.description?.replace(/^#\s+([^\n]+)\n\s*/,(u,c)=>c.trim()===r.title?"":u),g=u=>e.jsx(s.Suspense,{fallback:e.jsx("p",{className:"whitespace-pre-wrap text-sm",children:u}),children:e.jsx(fr,{referenceLines:!1,content:u,filePath:null,rootPath:o??null,lineRange:null,onLineRangeClick:()=>{},scrollTop:0,outlineOpen:!1,lightboxOpen:!1,onLocalLinkOpen:c=>d?.({path:o&&c.path.startsWith(`${o}/`)?c.path.slice(o.length+1):c.path})})});return e.jsxs("div",{className:"space-y-2",children:[p&&e.jsx("div",{className:"min-w-0 overflow-x-auto",children:g(p)}),Nt.filter(u=>u!=="description"&&r[u]).map(u=>e.jsxs("details",{className:"rounded-lg border border-border/15 px-2",children:[e.jsx("summary",{className:"min-h-11 cursor-pointer py-3 text-xs font-medium",children:rt(u,n)}),e.jsxs("div",{className:"min-w-0 overflow-x-auto pb-2",children:[u==="diagram"?e.jsx("pre",{className:"whitespace-pre-wrap break-all text-xs",children:r[u]}):g(r[u]),a&&e.jsx("button",{type:"button",className:"min-h-11 rounded px-2 text-xs text-primary hover:bg-surface-elevated",onClick:()=>a(u),children:n?"编辑此字段":"Edit field"})]})]},u)),a&&e.jsx("button",{type:"button",className:"min-h-11 rounded-lg px-3 text-xs text-primary hover:bg-surface-elevated",onClick:()=>a("description"),children:n?"编辑文档":"Edit document"}),r.meta&&e.jsxs("details",{children:[e.jsx("summary",{className:"min-h-11 cursor-pointer py-3 text-xs text-muted-foreground",children:n?"版本信息":"Version information"}),e.jsx("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 break-all pb-3 text-xs text-muted-foreground",children:Object.entries(r.meta).filter(([u])=>u!=="previousDiagram").map(([u,c])=>e.jsxs("div",{className:"contents",children:[e.jsx("dt",{children:{created:n?"创建":"Created",updated:n?"更新":"Updated",updateCount:n?"更新次数":"Updates",gitCommit:"Commit",gitBranch:n?"分支":"Branch"}[u]??u}),e.jsx("dd",{children:String(c)})]},u))})]})]})}function Qe({root:r,file:o,perspective:a,node:d,initialField:x,onSaved:n,onCancel:p}){const{locale:g}=he(),u=g==="zh",[c,F]=s.useState(null),[M,k]=s.useState(x),[C,R]=s.useState(""),[N,E]=s.useState(""),[z,$]=s.useState(""),[l,b]=s.useState(!1),h=s.useRef(!0),j=s.useRef(0);s.useEffect(()=>{h.current=!0;const f=++j.current;F(null),$("");const H=new AbortController;return Ue(r,o,H.signal).then(P=>{!H.signal.aborted&&f===j.current&&F(P)}).catch(P=>{!H.signal.aborted&&f===j.current&&$(String(P.message))}),()=>{h.current=!1,++j.current,H.abort()}},[r,o]),s.useEffect(()=>{const f=c?.document?.perspectives.find(U=>U.id===a),H=d?f?.nodes.find(U=>U.id===d):f;if(!H||!f)return;const P=H[M]??(M==="description"?H.summary:M==="diagram"?_t(f,d):"");R(P),E(P)},[c,a,d,M]);const B=C!==N;return e.jsxs("form",{className:"flex min-h-0 flex-1 flex-col gap-3",onSubmit:f=>{if(f.preventDefault(),!c||l||!B)return;const H=j.current;b(!0),$(""),dr(r,o,a,d,M,C,c.revision).then(P=>{h.current&&H===j.current&&n(P)}).catch(P=>{h.current&&H===j.current&&$(P.message)}).finally(()=>{h.current&&H===j.current&&b(!1)})},children:[e.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[u?"字段":"Field",e.jsx("select",{"aria-label":u?"文档字段":"Document field",className:"min-h-11 min-w-0 flex-1 rounded bg-surface-2 px-2",value:M,disabled:l||B,onChange:f=>k(f.target.value),children:Nt.map(f=>e.jsx("option",{value:f,children:rt(f,u)},f))})]}),B&&e.jsx("p",{className:"text-xs text-muted-foreground",children:u?"保存当前字段后可切换字段。":"Save this field before switching fields."}),!c&&!z&&e.jsx("p",{role:"status",className:"text-xs",children:u?"读取最新文档…":"Loading the latest document…"}),e.jsx("textarea",{"aria-label":rt(M,u),spellCheck:!1,className:"min-h-56 w-full flex-1 resize-y rounded-lg border border-border/30 bg-surface-2 p-3 font-mono text-sm focus-visible:ring-2 focus-visible:ring-ring",disabled:!c||l,maxLength:1e5,value:C,onChange:f=>R(f.target.value)}),z&&e.jsx("p",{role:"alert",className:"break-words text-xs text-destructive",children:z}),e.jsxs("div",{className:"sticky bottom-0 flex gap-2 bg-surface py-2",children:[e.jsx("button",{type:"submit",className:"min-h-11 rounded-lg bg-primary/15 px-4 text-sm text-primary disabled:opacity-40",disabled:!c||l||!B,children:l?u?"保存中…":"Saving…":u?"保存":"Save"}),e.jsx("button",{type:"button",className:"min-h-11 rounded-lg px-4 text-sm hover:bg-surface-elevated",disabled:l,onClick:p,children:u?"取消":"Cancel"})]})]})}function br({root:r,file:o,document:a,onLoaded:d}){const{locale:x}=he(),n=x==="zh",[p,g]=s.useState(""),[u,c]=s.useState(""),[F,M]=s.useState(!1),[k,C]=s.useState(null),[R,N]=s.useState(null),E=s.useRef(null),z=s.useRef(0);s.useEffect(()=>(z.current++,N(null),C(null),g(""),c(""),M(!1),()=>{z.current++}),[r,o]);async function $(b){const h=++z.current;M(!0),g(""),c("");try{await b(()=>h===z.current)}catch(j){h===z.current&&g(j instanceof Error?j.message:String(j))}finally{h===z.current&&M(!1)}}const l="inline-flex min-h-11 items-center gap-1.5 rounded-lg px-3 text-xs hover:bg-surface-elevated disabled:opacity-40";return e.jsxs("details",{className:"rounded-lg border border-border/15 px-3",children:[e.jsx("summary",{className:"min-h-11 cursor-pointer py-3 text-xs text-muted-foreground",children:n?"历史、导入与分享":"History, import and sharing"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async b=>{const h=await mr(r,o);b()&&C(h)})},children:[e.jsx(qt,{size:14}),n?"更新差异":"Changes"]}),e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async()=>{await et(new Blob([JSON.stringify(a,null,2)],{type:"application/json"}),"termdock-architecture.json")})},children:[e.jsx(Ge,{size:14}),"JSON"]}),e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async()=>{const b=await hr(r,o);await et(new Blob([JSON.stringify(b,null,2)],{type:"application/json"}),"architecture.omm.json")})},children:[e.jsx(Ge,{size:14}),".omm"]}),e.jsxs("button",{className:l,type:"button",disabled:F,onClick:()=>E.current?.click(),children:[e.jsx(Zt,{size:14}),n?"导入":"Import"]}),e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async()=>{const b=Mt(),h=Ut(window.location.origin,{root:r,file:o,...b?{peerId:b.targetPeerId,serviceName:b.serviceName}:{}});await navigator.clipboard.writeText(h),c(n?"链接已复制,打开时需要登录此 Termdock 服务。":"Link copied. Sign in to this Termdock service to view it.")})},children:[e.jsx(Yt,{size:14}),n?"复制查看链接":"Copy viewer link"]})]}),e.jsx("input",{ref:E,hidden:!0,type:"file",accept:".json,application/json",onChange:b=>{const h=b.target.files?.[0];b.target.value="",h&&$(async j=>{if(h.size>5e6)throw new Error(n?"文档超过 5 MB。":"Document exceeds 5 MB.");const B=await h.text();if(!j())return;const f=JSON.parse(B);if(f?.format==="termdock-omm-bundle"){const Q=await Ue(r,".omm");if(!j())return;N({name:h.name,value:f,file:".omm",revision:Q.revision});return}const H=Le(B),P=H.analysis?qe(H.analysis):xe,U=await Ue(r,P);j()&&N({name:h.name,value:H,file:P,revision:U.revision})})}}),R&&e.jsxs("div",{className:"my-2 rounded-lg bg-surface-2 p-3 text-xs",children:[e.jsxs("p",{className:"break-all",children:[R.name," → ",R.file]}),e.jsx("p",{className:"mt-1 text-muted-foreground",children:R.file===".omm"?n?"合并文档中的目录和字段;同名字段将更新。":"Merge bundled directories and fields; matching fields are updated.":n?"保存为此范围的架构,并保留此前的版本。":"Save this scope and retain its previous version."}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx("button",{className:`${l} text-primary`,disabled:F,type:"button",onClick:()=>{$(async b=>{const h=R.file===".omm"?await pr(r,R.value,R.revision):await xr(r,R.file,R.value,R.revision);b()&&(N(null),d(R.file,h))})},children:n?"确认导入":"Import document"}),e.jsx("button",{className:l,disabled:F,type:"button",onClick:()=>N(null),children:n?"取消":"Cancel"})]})]}),F&&e.jsx("p",{role:"status",className:"py-2 text-xs",children:n?"处理中…":"Working…"}),p&&e.jsx("p",{role:"alert",className:"break-words py-2 text-xs text-destructive",children:p}),u&&e.jsx("p",{role:"status",className:"py-2 text-xs text-muted-foreground",children:u}),k&&e.jsxs("div",{className:"space-y-2 pb-3",children:[k.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground",children:n?"还没有历史版本。使用原生命令或文档编辑保存后会保留版本。":"No previous versions. Native saves and document edits retain history."}),k.map(b=>e.jsxs("details",{children:[e.jsxs("summary",{className:"min-h-11 cursor-pointer py-3 text-xs",children:[new Date(b.savedAt).toLocaleString()," · ",b.changes.length," ",n?"处差异":"changes"]}),e.jsx("ul",{className:"space-y-1 text-xs text-muted-foreground",children:b.changes.map((h,j)=>e.jsxs("li",{className:"break-words",children:[h.kind==="added"?"+":h.kind==="removed"?"−":"~"," ",h.perspective?h.title:n?"项目总览":h.title," · ",h.fields.join(", ")]},j))})]},b.id))]})]})}async function gr(r,o,a=xe){const{document:d}=await Ue(r,a,o);if(d?.analysis&&qe(d.analysis)!==a)throw new kt("Architecture scope does not match its file");return d}async function yr(r,o){return ur(r,o)}function jr({view:r,parentId:o,selectedId:a,onSelect:d,active:x=!0,referenceWidth:n,inspector:p,inspectorStage:g="details",onDismissInspector:u,onExpandedChange:c,navigation:F,heading:M}){const{t:k,locale:C}=he(),[R,N]=s.useState(1),E=s.useId().replace(/[^a-zA-Z0-9]/g,""),z=s.useRef(null),$=s.useRef(null),l=s.useRef(null),b=s.useRef(null),h=s.useRef(null),[j,B]=s.useState(""),[f,H]=s.useState(!1),[P,U]=s.useState(1),Q=s.useRef(1),[T,ne]=s.useState(!1),fe=s.useRef(!0),V=s.useRef({inspector:p,onDismissInspector:u});V.current={inspector:p,onDismissInspector:u};const _=s.useRef(c);_.current=c;const ee=s.useRef({left:0,top:0}),[ie,oe]=s.useState(!1),[ae,pe]=s.useState({width:320,height:320,clipHeight:0}),v=s.useRef(new Map),O=s.useRef(!1),K=s.useRef(0),le=s.useMemo(()=>Wt(r,o,R),[r,o,R]),Y=s.useMemo(()=>nt(r,o).edges,[r,o]),W=s.useMemo(()=>{const i=j.match(/viewBox="([^"]+)"/)?.[1].split(/\s+/).map(Number),S=i?.[2]||320,m=i?.[3]||240,A=T?window.innerWidth:n||ae.width,w=Math.max(1,Math.min(1.4,Math.max(160,A-24)/S));return{width:S,height:m,scale:w}},[j,ae.width,T,n]),ce={width:W.width*W.scale*P,height:W.height*W.scale*P},ue=(i,S,m)=>{const A=Math.max(.01,Math.min(4,i)),w=$.current;if(w){const J=w.getBoundingClientRect(),be=S===void 0?w.clientWidth/2:S-J.left,me=m===void 0?w.clientHeight/2:m-J.top,Z=A/Q.current,ve=(w.scrollLeft+be)*Z-be,ge=(w.scrollTop+me)*Z-me,Ie=()=>{$.current===w&&(w.scrollLeft=ve,w.scrollTop=ge)};window.requestAnimationFrame?window.requestAnimationFrame(Ie):window.setTimeout(Ie,0)}Q.current=A,U(A)},se=()=>{Q.current=1,U(1),$.current&&($.current.scrollLeft=0,$.current.scrollTop=0)};s.useEffect(()=>{let i=!1;return B(""),H(!1),se(),oe(!1),v.current.clear(),le.nodes.length>300?(H(!0),()=>{i=!0}):(Gt().then(async S=>{er(S);const m=await S.render(`td-architecture-${E}`,le.code);i||B(Qt.sanitize(m.svg,{USE_PROFILES:{svg:!0,svgFilters:!0}}))}).catch(()=>{i||H(!0)}),()=>{i=!0})},[le.code,E]),s.useEffect(()=>{x||ne(!1)},[x]),s.useEffect(()=>{_.current?.(T)},[T]),s.useEffect(()=>()=>_.current?.(!1),[]),s.useLayoutEffect(()=>{const i=$.current;if(i)return i.scrollLeft=ee.current.left,i.scrollTop=ee.current.top,()=>{ee.current={left:i.scrollLeft,top:i.scrollTop}}},[T,!!j]),s.useEffect(()=>{const i=$.current;if(!i)return;const S=i.closest("[data-architecture-content]"),m=()=>{pe({width:i.clientWidth||320,height:i.clientHeight||320,clipHeight:S?.clientHeight||0})};m();const A=new ResizeObserver(m);return A.observe(i),S&&A.observe(S),()=>A.disconnect()},[j,T]),We(l,T&&x,()=>{V.current.inspector?V.current.onDismissInspector?.():ne(!1)},()=>fe.current?h.current:null),s.useEffect(()=>{if(!T)return;const i=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=i,v.current.clear()}},[T]),s.useLayoutEffect(()=>{const i=z.current?.querySelector("svg"),S=i?.querySelector("g");if(!(!i||!S||typeof S.getBBox!="function"))try{const m=S.getBBox();if(![m.x,m.y,m.width,m.height].every(Number.isFinite)||m.width<=0||m.height<=0)return;const A=`${m.x-16} ${m.y-16} ${m.width+32} ${m.height+32}`;if(i.getAttribute("viewBox")===A)return;i.setAttribute("viewBox",A),B(i.outerHTML)}catch{}},[j,T]),s.useLayoutEffect(()=>{z.current?.querySelectorAll("g.node, g.cluster").forEach(i=>{const S=Number(i.id.match(/(?:^|-)n(\d+)(?:-|$)/)?.[1]),m=le.nodes[S];if(!m)return;i.dataset.architectureRole=m.role,i.dataset.architectureNode=m.id,i.dataset.architectureRelated=String(!!a&&Y.some(w=>w.from===a&&w.to===m.id||w.to===a&&w.from===m.id));const A=i.matches("g.cluster")?i.querySelector("g.cluster-label")??i:i;A!==i&&(i.removeAttribute("role"),i.removeAttribute("tabindex")),A.dataset.architectureNode=m.id,A.setAttribute("role","button"),A.setAttribute("tabindex","0"),A.setAttribute("aria-label",m.title),A.setAttribute("aria-pressed",String(a===m.id)),i.setAttribute("aria-pressed",String(a===m.id))})}),s.useLayoutEffect(()=>{if(!a||g==="source"||g==="analysis")return;const i=$.current,S=[...z.current?.querySelectorAll("[data-architecture-node]")??[]].find(Z=>Z.dataset.architectureNode===a);if(!i||!S)return;let m=i.getBoundingClientRect();const A=i.closest("[data-architecture-content]");if(!T&&A&&m.width>24&&m.height>24){const Z=A.getBoundingClientRect();Z.height>160&&m.height<=Z.height&&(m.top<Z.top?A.scrollTop+=m.top-Z.top:m.bottom>Z.bottom&&(A.scrollTop+=m.bottom-Z.bottom),m=i.getBoundingClientRect());const ve=Math.max(m.top,Z.top),ge=Math.min(m.bottom,Z.bottom);m=new DOMRect(m.left,ve,m.width,Math.max(0,ge-ve))}const w=S.getBoundingClientRect();if(m.width<=24||m.height<=24||w.width<=0||w.height<=0)return;const J=12,be=w.width>m.width-2*J?(w.left+w.right-m.left-m.right)/2:w.left<m.left+J?w.left-m.left-J:w.right>m.right-J?w.right-m.right+J:0,me=w.height>m.height-2*J?(w.top+w.bottom-m.top-m.bottom)/2:w.top<m.top+J?w.top-m.top-J:w.bottom>m.bottom-J?w.bottom-m.bottom+J:0;i.scrollLeft+=be,i.scrollTop+=me},[a,ae.width,ae.height,ae.clipHeight,T,g,j]);const D=i=>{[...z.current?.querySelectorAll("[data-architecture-node]")??[]].find(S=>S.dataset.architectureNode===i)?.focus?.({preventScroll:!0}),d(i)},X="flex h-11 min-w-11 items-center justify-center rounded-lg px-2 hover:bg-surface-elevated focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40",q=e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.zoomOut"),disabled:P<=.01,onClick:()=>ue(Q.current/1.25),children:e.jsx(tr,{size:17})}),e.jsxs("button",{type:"button",className:`${X} text-xs tabular-nums`,"aria-label":k("architecture.resetZoom"),title:k("architecture.resetZoom"),onClick:se,children:[Math.round(W.scale*P*100),"%"]}),e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.zoomIn"),disabled:P>=4,onClick:()=>ue(Q.current*1.25),children:e.jsx(yt,{size:17})}),e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.fitGraph"),onClick:()=>ue(Math.min((ae.width-24)/W.width,(ae.height-24)/W.height)/W.scale),children:e.jsx(sr,{size:17})}),!T&&e.jsx("button",{ref:h,type:"button",className:X,"aria-label":k("architecture.fullscreen"),onClick:()=>{fe.current=!0,ne(!0)},children:e.jsx(cr,{size:17})}),e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.download"),disabled:!j,onClick:()=>{oe(!1),et(new Blob([j],{type:"image/svg+xml"}),`architecture-${r.id}.svg`).catch(()=>oe(!0))},children:e.jsx(Ge,{size:17})})]}),Ce=r.nodes.find(i=>i.id===o)?.title??r.title,Pe=e.jsxs(e.Fragment,{children:[T?e.jsxs("header",{className:"shrink-0 border-b border-border/15 px-2 py-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"min-w-0 flex-1 px-1",children:M??e.jsx("h2",{className:"truncate text-xs font-semibold",title:Ce,children:Ce})}),e.jsxs("label",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",children:[C==="zh"?"展开":"Levels",e.jsx("select",{"aria-label":C==="zh"?"展开层级":"Expand levels",className:"h-11 max-w-20 rounded bg-surface px-1 text-foreground",value:R,onChange:i=>N(Number(i.target.value)),children:[0,1,2,6].map(i=>e.jsx("option",{value:i,children:i===0?C==="zh"?"当前层":"Current":i===6?C==="zh"?"全部":"All":`${i}`},i))})]}),e.jsx("button",{ref:b,type:"button",className:X,"aria-label":k("architecture.closeFullscreen"),onClick:()=>ne(!1),children:e.jsx(Se,{size:18})})]}),e.jsx("div",{className:"flex items-center justify-between gap-1",title:k("architecture.panHint"),children:q})]}):e.jsxs("div",{className:"shrink-0 border-b border-border/15 bg-surface-2 px-2 py-1",children:[e.jsx("div",{className:"flex items-center justify-between gap-1",children:q}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-1 px-1 text-xs text-muted-foreground",children:[e.jsx("span",{children:k("architecture.panHint")}),e.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[C==="zh"?"展开层级":"Expand levels",e.jsx("select",{"aria-label":C==="zh"?"展开层级":"Expand levels",className:"min-h-8 rounded bg-surface-2 px-2 text-foreground",value:R,onChange:i=>N(Number(i.target.value)),children:[0,1,2,6].map(i=>e.jsx("option",{value:i,children:i===0?C==="zh"?"当前层":"Current level":i===6?C==="zh"?"全部":"All":`${i}`},i))})]})]})]}),T&&F&&e.jsx("div",{className:"shrink-0 px-2",children:F}),ie&&e.jsx("p",{role:"alert",className:"px-3 py-2 text-xs text-destructive",children:k("architecture.downloadFailed")}),e.jsxs("div",{className:T?"relative flex min-h-0 flex-1 flex-col overflow-hidden min-[768px]:flex-row":"relative",children:[f?e.jsx("p",{role:"alert",className:"p-4 text-sm text-muted-foreground",children:le.nodes.length>300?C==="zh"?"图中模块较多,请减少展开层级或选择单个视角。":"This graph has many modules. Expand fewer levels or select one perspective.":k("architecture.diagramFailed")}):j?e.jsx("div",{ref:$,"data-sidebar-gesture-ignore":!0,className:`termdock-architecture-viewport overflow-auto overscroll-contain p-3 ${T?"min-h-0 min-w-0 flex-1":"h-[min(50dvh,26rem)]"}`,style:{touchAction:"none",maxHeight:!T&&ae.clipHeight?Math.max(160,ae.clipHeight-150):void 0},onPointerDown:i=>{if(i.button!==0)return;v.current.size||(O.current=!1,K.current=0);const S=i.target.closest("[data-architecture-node]")?.getAttribute("data-architecture-node")??void 0;v.current.set(i.pointerId,{x:i.clientX,y:i.clientY,nodeId:S}),v.current.size>1&&(O.current=!0);try{i.currentTarget.setPointerCapture?.(i.pointerId)}catch{}},onPointerMove:i=>{const S=v.current.get(i.pointerId);if(!S)return;const m=[...v.current.values()];v.current.set(i.pointerId,{...S,x:i.clientX,y:i.clientY});const A=[...v.current.values()];if(A.length>=2){const w=me=>Math.hypot(me[0].x-me[1].x,me[0].y-me[1].y),J=w(m),be=w(A);J>0&&ue(Q.current*be/J,(A[0].x+A[1].x)/2,(A[0].y+A[1].y)/2),O.current=!0}else{const w=S.x-i.clientX,J=S.y-i.clientY;K.current+=Math.hypot(w,J),K.current>5&&(O.current=!0),i.currentTarget.scrollLeft+=w,i.currentTarget.scrollTop+=J}},onPointerUp:i=>{const S=v.current.get(i.pointerId),m=v.current.size===1&&!O.current&&S?.nodeId;v.current.delete(i.pointerId),m&&(O.current=!0,D(m))},onPointerCancel:i=>{v.current.delete(i.pointerId),O.current=!0},onLostPointerCapture:i=>{v.current.delete(i.pointerId)},children:e.jsx("div",{ref:z,role:"group","aria-label":k("architecture.modules"),className:"termdock-architecture-diagram mx-auto",style:ce,onClick:i=>{if(O.current)return;const m=i.target.closest("[data-architecture-node]")?.getAttribute("data-architecture-node");m&&D(m)},onKeyDown:i=>{if(i.key!=="Enter"&&i.key!==" ")return;const S=i.target.closest("[data-architecture-node]")?.getAttribute("data-architecture-node");S&&(i.preventDefault(),D(S))},dangerouslySetInnerHTML:{__html:j}})}):e.jsx("p",{role:"status",className:"p-4 text-sm text-muted-foreground",children:k("architecture.rendering")}),T&&p]})]});return T?wt.createPortal(e.jsx("section",{ref:l,tabIndex:-1,role:"dialog","aria-modal":"true","aria-label":k("architecture.diagram"),"data-sidebar-gesture-ignore":!0,className:"fixed inset-0 z-modal-panel flex flex-col overflow-hidden bg-surface text-foreground pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]",children:Pe}),document.body):e.jsx("section",{className:"overflow-clip rounded-xl border border-border/20 bg-surface-2","aria-label":k("architecture.diagram"),children:Pe})}function je(r,o){let a=r.trim().replace(/^@/,"");/^([`"']).*\1$/.test(a)&&(a=a.slice(1,-1)),a=a.replace(/\\ /g," ").replace(/:\d+(?:-\d+)?$/,"").replace(/\/+$/,""),/^([`"']).*\1$/.test(a)&&(a=a.slice(1,-1));const d=o.replace(/\/+$/,"");if(a.startsWith("/")){if(!a.startsWith(`${d}/`))return null;a=a.slice(d.length+1)}return a=a.replace(/^\.\//,""),a.length<=1024&&Jt(a)?a:null}function ht(r,o){const a=[...r.matchAll(/^# (.+?): hunk \d+,/gm)].map(p=>p[1]),x=(a.length?a:r.split(/\r?\n/).map(p=>p.trim()).filter(Boolean)).map(p=>je(p,o));if(x.some(p=>p===null))return null;const n=[...new Set(x)];return n.length<=20?n:null}function $t({rootPath:r,initialDirectory:o,selected:a,onChange:d,selectionDisabled:x=!1,compact:n=!1}){const{t:p}=he(),g=r.replace(/\/+$/,"")||"/",[u,c]=s.useState(()=>o&&je(o,g)?o.replace(/\/+$/,""):g),[F,M]=s.useState(""),[k,C]=s.useState(null),[R,N]=s.useState(0),[E,z]=s.useState(null);s.useEffect(()=>{if(!E)return;const f=window.setTimeout(()=>z(null),1800);return()=>window.clearTimeout(f)},[E]);const $=tt(f=>f.invalidateDirectoryCache),l=new Set(a.map(f=>`${g==="/"?"":g}/${f}`)),b=f=>{const H=je(f,g);x||!H||a.includes(H)||a.length>=20||d([...a,H])},h=f=>{f!==g&&!je(f,g)||(c(f),M(""),C(null))},j=`inline-flex shrink-0 items-center justify-center rounded-lg text-xs hover:bg-surface-elevated focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40 ${n?"h-8 w-8 [@media(pointer:coarse)]:h-11 [@media(pointer:coarse)]:w-11":"h-11 w-11"}`,B=je(u,g);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"shrink-0 px-2 py-1",children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{type:"button",className:j,disabled:u===g,"aria-label":p("rightSidebar.parentFolder"),onClick:()=>h(u.slice(0,u.lastIndexOf("/"))||g),children:e.jsx(nr,{size:17})}),e.jsx("button",{type:"button",className:j,disabled:u===g,"aria-label":p("rightSidebar.backToProjectRoot"),onClick:()=>h(g),children:e.jsx(rr,{size:16})}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs font-medium",title:u,children:B??(u.split("/").pop()||"/")}),B&&e.jsx("button",{type:"button",className:`${j} text-primary`,disabled:x||!a.includes(B)&&a.length>=20,"aria-label":`${p("architecture.addScopeReference")}: ${u.split("/").pop()}`,title:B,"aria-pressed":a.includes(B),onClick:()=>b(u),children:a.includes(B)?e.jsx(Tt,{size:15}):e.jsx(Ft,{size:15})}),e.jsx("button",{type:"button",className:j,"aria-label":p("rightSidebar.refreshFiles"),onClick:()=>{$(u,!0),N(f=>f+1)},children:e.jsx(jt,{size:15})})]})}),x&&e.jsx("p",{role:"alert",className:"shrink-0 px-3 pb-2 text-xs text-muted-foreground",children:p("architecture.correctPathsFirst")}),e.jsx("div",{className:"shrink-0 border-b border-border/15 px-3 pb-2",children:e.jsx("input",{"aria-label":p("architecture.searchScopePaths"),placeholder:p("architecture.searchScopePaths"),value:F,onChange:f=>M(f.target.value),className:`${n?"h-9 [@media(pointer:coarse)]:h-11":"h-11"} w-full rounded-lg border border-border/20 bg-surface-2 px-3 text-sm focus-visible:ring-2 focus-visible:ring-ring`})}),e.jsx("div",{className:"min-h-0 flex-1 overflow-auto overscroll-contain bg-surface",children:e.jsx(Lt,{rootPath:u,selectedFilePath:k,onFileSelect:f=>{C(f),b(f)},onDirectoryRoot:h,onPathReference:b,getReferenceText:f=>je(f,g)??f,query:F,onReferenceCopied:z,copiedReferenceKey:E,onSearchFromDirectory:h,referenceSelection:{paths:l,label:p("architecture.addScopeReference"),disabled:x||a.length>=20}},`${u}:${R}`)})]})}function vr({rootPath:r,initialDirectory:o,initial:a,onConfirm:d,onCancel:x}){const{t:n}=he(),p=s.useRef(null);We(p,!0,x);const g=s.useId(),[u,c]=s.useState(a);s.useEffect(()=>{const M=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=M}},[]);const F="inline-flex min-h-11 items-center justify-center gap-1.5 rounded-lg px-3 text-xs hover:bg-surface-elevated focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40";return wt.createPortal(e.jsxs("div",{className:"fixed inset-0 z-popover flex items-center justify-center p-[max(0.75rem,env(safe-area-inset-top))]",children:[e.jsx("button",{type:"button",className:"absolute inset-0 z-10 cursor-default bg-[var(--app-backdrop)]","aria-label":n("common.cancel"),onClick:x}),e.jsxs("section",{ref:p,id:`${g}-dialog`,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":g,"aria-describedby":`${g}-hint`,className:"relative z-20 flex h-full max-h-[42rem] w-full max-w-xl flex-col overflow-hidden rounded-xl border border-border/20 bg-surface text-foreground shadow-xl",children:[e.jsxs("header",{className:"shrink-0 px-3 py-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h2",{id:g,className:"min-w-0 flex-1 text-sm font-semibold",title:n("architecture.browsePathsHint"),children:n("architecture.choosePaths")}),e.jsx("button",{type:"button",className:F,"aria-label":n("common.close"),onClick:x,children:e.jsx(Se,{size:17})})]}),e.jsx("p",{id:`${g}-hint`,className:"sr-only",children:n("architecture.browsePathsHint")})]}),e.jsx($t,{rootPath:r,initialDirectory:o,selected:u,onChange:c}),e.jsxs("footer",{className:"shrink-0 space-y-2 border-t border-border/15 p-3",children:[e.jsxs("p",{className:"text-xs text-muted-foreground",children:[n("architecture.selectedPaths")," ",u.length," / 20"]}),u.length>0&&e.jsx("div",{className:"flex max-h-24 flex-wrap gap-1 overflow-y-auto",children:u.map(M=>e.jsxs("button",{type:"button",className:`${F} min-w-0 max-w-full bg-surface-2`,"aria-label":`${n("architecture.removePath")}: ${M}`,onClick:()=>c(k=>k.filter(C=>C!==M)),children:[e.jsx("span",{className:"truncate font-mono",children:M}),e.jsx(Se,{size:13,className:"shrink-0"})]},M))}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx("button",{type:"button",className:F,onClick:x,children:n("common.cancel")}),e.jsx("button",{type:"button",className:`${F} bg-primary/15 text-primary`,onClick:()=>d(u),children:n("architecture.usePaths")})]})]})]})]}),document.body)}function pt({rootPath:r,initial:o,outputFile:a,currentFile:d,currentDirectory:x,active:n=!0,onInsertPrompt:p,onPrepared:g,onClose:u}){const{t:c,locale:F}=he(),M=s.useRef(null),k=s.useRef(null);We(k,n,u),s.useLayoutEffect(()=>{n&&k.current?.scrollIntoView?.({block:"start"})},[n]);const[C,R]=s.useState(!1);s.useLayoutEffect(()=>{const D=k.current;if(!n||!D)return;const X=()=>R(D.clientWidth>=900);if(X(),typeof ResizeObserver>"u")return;const q=new ResizeObserver(X);return q.observe(D),()=>q.disconnect()},[n]);const N=s.useId(),[E,z]=s.useState(o.kind),[$,l]=s.useState(o.target),[b,h]=s.useState(o.paths.join(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownPreview-b_bwDNcY.js","assets/app-stNRNTO-.js","assets/react-XDCjal2T.js","assets/dnd-BCFAPC0L.js","assets/terminal-Dea8wJF3.js","assets/index-bfj9dYEg.css","assets/use-gesture-react.esm-DYpdiE_k.js","assets/swiper-DJjq1TYT.js","assets/swiper-C2J0D0kV.css","assets/syntaxHighlight-Bgt0lmWx.js","assets/list-tree-DKTcSR9r.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{aR as gt,bo as At,e6 as he,cc as e,a1 as Dt,l as Ge,dh as et,di as Mt,e7 as We,H as yt,a0 as Se,ef as tt,C as Tt,L as Ft,R as jt,o as Lt,q as Pt,j as It,g as Fe,e as Ot,c as Ht,f as vt,ek as Bt}from"./app-stNRNTO-.js";import{b as s,r as wt}from"./dnd-BCFAPC0L.js";import{k as Je,p as Le,A as Nt,g as _t,H as qt,h as Ut,c as qe,a as xe,b as kt,d as Wt,f as nt,l as Jt,n as Vt,i as Kt,D as Ee,e as Xt}from"./link-D-fkBp5k.js";import{U as Zt}from"./RecordingSaveDialog-1YvzwTzo.js";import{L as Yt}from"./DiffViewer-Cg3GhKcU.js";import Qt from"./purify.es-4eNOHKSq.js";import{l as Gt,i as er}from"./MarkdownPreview-b_bwDNcY.js";import{f as tr,H as rr}from"./AndroidMirrorView-D9CMPmet.js";import{S as sr}from"./RightSidebar-CCk8ovoK.js";import{A as nr}from"./arrow-up-DE9Z7GTI.js";import{S as St}from"./sparkles-B64EiCUM.js";import{N as mt}from"./GitLoadingSkeleton-ieGTuTuO.js";import"./react-XDCjal2T.js";import"./terminal-Dea8wJF3.js";import"./use-gesture-react.esm-DYpdiE_k.js";import"./gestureArbiter-DszagC-d.js";import"./syntaxHighlight-Bgt0lmWx.js";import"./git-compare-C7n2uha2.js";import"./swiper-DJjq1TYT.js";import"./list-tree-DKTcSR9r.js";import"./v4-EwEgHOG0.js";import"./unplug-CLBg6VOD.js";import"./DiffReview-DAUBgpsh.js";import"./triangle-alert-LpKfIn7N.js";import"./ChangeWalkthroughPanel-BYb27GTC.js";import"./chevron-left-ZgHOf4aC.js";import"./maximize-2-dFjMEqgh.js";import"./loader-circle-DZn9iP0u.js";import"./arrow-down-DaWRHIlh.js";const ir=[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]],ar=gt("arrow-down-left",ir);const lr=[["path",{d:"m15 15 6 6",key:"1s409w"}],["path",{d:"m15 9 6-6",key:"ko1vev"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}],["path",{d:"M3 16v5h5",key:"1t08am"}],["path",{d:"m3 21 6-6",key:"wwnumi"}],["path",{d:"M3 8V3h5",key:"1ln10m"}],["path",{d:"M9 9 3 3",key:"v551iv"}]],cr=gt("expand",lr);function or(r,o){const a=new Map,d={id:"all-perspectives",title:o,summary:r.summary,nodes:[],edges:[]};return r.perspectives.forEach((x,n)=>{const p=`perspective${n}`,g=new Map(x.nodes.map((u,c)=>[u.id,`${p}_node${c}`]));a.set(p,{perspective:x.id}),d.nodes.push({id:p,title:x.title,summary:x.summary,files:[],description:x.description});for(const u of x.nodes){const c=g.get(u.id);a.set(c,{perspective:x.id,node:u.id}),d.nodes.push({...u,id:c,parentId:u.parentId?g.get(u.parentId):p})}d.edges.push(...x.edges.map(u=>({...u,from:g.get(u.from),to:g.get(u.to)})))}),{view:d,references:a}}async function $e(r,o,a,d){const x=new URLSearchParams({root:r}),n=await fetch(`/api/terminal/architecture/${o}${d?"":`${o.includes("?")?"&":"?"}${x}`}`,{signal:a,cache:"no-store",...d?{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":await At()},body:JSON.stringify({root:r,...d})}:{}}),p=await n.json();if(!n.ok)throw new Error(p.error||`HTTP ${n.status}`);return p}async function ur(r,o){const a=await $e(r,"documents",o);if(!Array.isArray(a.files))throw new Error("Invalid architecture library");return[...new Set(a.files.filter(d=>typeof d=="string"&&Je(d)))].sort()}async function Ue(r,o,a){if(!Je(o))throw new Error("Invalid architecture file");const d=await $e(r,`document?${new URLSearchParams({file:o})}`,a);if(!("document"in d)||d.revision!==null&&typeof d.revision!="string")throw new Error("Invalid architecture response");return{document:d.document?Le(JSON.stringify(d.document)):null,revision:typeof d.revision=="string"?d.revision:null}}async function dr(r,o,a,d,x,n,p){const g=await $e(r,"field",void 0,{file:o,perspective:a,node:d,field:x,value:n,revision:p});return Le(JSON.stringify(g.document))}async function mr(r,o,a){const d=await $e(r,`history?${new URLSearchParams({file:o})}`,a);if(!Array.isArray(d.versions))throw new Error("Invalid architecture history");return d.versions}async function hr(r,o){return $e(r,`bundle?${new URLSearchParams({file:o})}`)}async function pr(r,o,a){const d=await $e(r,"bundle",void 0,{bundle:o,revision:a});return Le(JSON.stringify(d.document))}async function xr(r,o,a,d){const x=await $e(r,"document",void 0,{file:o,document:a,...d!==void 0?{revision:d}:{}});return Le(JSON.stringify(x.document))}const fr=s.lazy(()=>Dt(()=>import("./MarkdownPreview-b_bwDNcY.js").then(r=>r.b),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(r=>({default:r.MarkdownPreview})));function rt(r,o){return o?{description:"说明",diagram:"关系图源码",context:"上下文",constraint:"约束",concern:"问题与风险",todo:"待办",note:"备注"}[r]:{description:"Description",diagram:"Diagram source",context:"Context",constraint:"Constraints",concern:"Concerns",todo:"To do",note:"Notes"}[r]}function st({value:r,rootPath:o,onEdit:a,onOpenFile:d}){const{locale:x}=he(),n=x==="zh",p=r.description?.replace(/^#\s+([^\n]+)\n\s*/,(u,c)=>c.trim()===r.title?"":u),g=u=>e.jsx(s.Suspense,{fallback:e.jsx("p",{className:"whitespace-pre-wrap text-sm",children:u}),children:e.jsx(fr,{referenceLines:!1,content:u,filePath:null,rootPath:o??null,lineRange:null,onLineRangeClick:()=>{},scrollTop:0,outlineOpen:!1,lightboxOpen:!1,onLocalLinkOpen:c=>d?.({path:o&&c.path.startsWith(`${o}/`)?c.path.slice(o.length+1):c.path})})});return e.jsxs("div",{className:"space-y-2",children:[p&&e.jsx("div",{className:"min-w-0 overflow-x-auto",children:g(p)}),Nt.filter(u=>u!=="description"&&r[u]).map(u=>e.jsxs("details",{className:"rounded-lg border border-border/15 px-2",children:[e.jsx("summary",{className:"min-h-11 cursor-pointer py-3 text-xs font-medium",children:rt(u,n)}),e.jsxs("div",{className:"min-w-0 overflow-x-auto pb-2",children:[u==="diagram"?e.jsx("pre",{className:"whitespace-pre-wrap break-all text-xs",children:r[u]}):g(r[u]),a&&e.jsx("button",{type:"button",className:"min-h-11 rounded px-2 text-xs text-primary hover:bg-surface-elevated",onClick:()=>a(u),children:n?"编辑此字段":"Edit field"})]})]},u)),a&&e.jsx("button",{type:"button",className:"min-h-11 rounded-lg px-3 text-xs text-primary hover:bg-surface-elevated",onClick:()=>a("description"),children:n?"编辑文档":"Edit document"}),r.meta&&e.jsxs("details",{children:[e.jsx("summary",{className:"min-h-11 cursor-pointer py-3 text-xs text-muted-foreground",children:n?"版本信息":"Version information"}),e.jsx("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 break-all pb-3 text-xs text-muted-foreground",children:Object.entries(r.meta).filter(([u])=>u!=="previousDiagram").map(([u,c])=>e.jsxs("div",{className:"contents",children:[e.jsx("dt",{children:{created:n?"创建":"Created",updated:n?"更新":"Updated",updateCount:n?"更新次数":"Updates",gitCommit:"Commit",gitBranch:n?"分支":"Branch"}[u]??u}),e.jsx("dd",{children:String(c)})]},u))})]})]})}function Qe({root:r,file:o,perspective:a,node:d,initialField:x,onSaved:n,onCancel:p}){const{locale:g}=he(),u=g==="zh",[c,F]=s.useState(null),[M,k]=s.useState(x),[C,R]=s.useState(""),[N,E]=s.useState(""),[z,$]=s.useState(""),[l,b]=s.useState(!1),h=s.useRef(!0),j=s.useRef(0);s.useEffect(()=>{h.current=!0;const f=++j.current;F(null),$("");const H=new AbortController;return Ue(r,o,H.signal).then(P=>{!H.signal.aborted&&f===j.current&&F(P)}).catch(P=>{!H.signal.aborted&&f===j.current&&$(String(P.message))}),()=>{h.current=!1,++j.current,H.abort()}},[r,o]),s.useEffect(()=>{const f=c?.document?.perspectives.find(U=>U.id===a),H=d?f?.nodes.find(U=>U.id===d):f;if(!H||!f)return;const P=H[M]??(M==="description"?H.summary:M==="diagram"?_t(f,d):"");R(P),E(P)},[c,a,d,M]);const B=C!==N;return e.jsxs("form",{className:"flex min-h-0 flex-1 flex-col gap-3",onSubmit:f=>{if(f.preventDefault(),!c||l||!B)return;const H=j.current;b(!0),$(""),dr(r,o,a,d,M,C,c.revision).then(P=>{h.current&&H===j.current&&n(P)}).catch(P=>{h.current&&H===j.current&&$(P.message)}).finally(()=>{h.current&&H===j.current&&b(!1)})},children:[e.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[u?"字段":"Field",e.jsx("select",{"aria-label":u?"文档字段":"Document field",className:"min-h-11 min-w-0 flex-1 rounded bg-surface-2 px-2",value:M,disabled:l||B,onChange:f=>k(f.target.value),children:Nt.map(f=>e.jsx("option",{value:f,children:rt(f,u)},f))})]}),B&&e.jsx("p",{className:"text-xs text-muted-foreground",children:u?"保存当前字段后可切换字段。":"Save this field before switching fields."}),!c&&!z&&e.jsx("p",{role:"status",className:"text-xs",children:u?"读取最新文档…":"Loading the latest document…"}),e.jsx("textarea",{"aria-label":rt(M,u),spellCheck:!1,className:"min-h-56 w-full flex-1 resize-y rounded-lg border border-border/30 bg-surface-2 p-3 font-mono text-sm focus-visible:ring-2 focus-visible:ring-ring",disabled:!c||l,maxLength:1e5,value:C,onChange:f=>R(f.target.value)}),z&&e.jsx("p",{role:"alert",className:"break-words text-xs text-destructive",children:z}),e.jsxs("div",{className:"sticky bottom-0 flex gap-2 bg-surface py-2",children:[e.jsx("button",{type:"submit",className:"min-h-11 rounded-lg bg-primary/15 px-4 text-sm text-primary disabled:opacity-40",disabled:!c||l||!B,children:l?u?"保存中…":"Saving…":u?"保存":"Save"}),e.jsx("button",{type:"button",className:"min-h-11 rounded-lg px-4 text-sm hover:bg-surface-elevated",disabled:l,onClick:p,children:u?"取消":"Cancel"})]})]})}function br({root:r,file:o,document:a,onLoaded:d}){const{locale:x}=he(),n=x==="zh",[p,g]=s.useState(""),[u,c]=s.useState(""),[F,M]=s.useState(!1),[k,C]=s.useState(null),[R,N]=s.useState(null),E=s.useRef(null),z=s.useRef(0);s.useEffect(()=>(z.current++,N(null),C(null),g(""),c(""),M(!1),()=>{z.current++}),[r,o]);async function $(b){const h=++z.current;M(!0),g(""),c("");try{await b(()=>h===z.current)}catch(j){h===z.current&&g(j instanceof Error?j.message:String(j))}finally{h===z.current&&M(!1)}}const l="inline-flex min-h-11 items-center gap-1.5 rounded-lg px-3 text-xs hover:bg-surface-elevated disabled:opacity-40";return e.jsxs("details",{className:"rounded-lg border border-border/15 px-3",children:[e.jsx("summary",{className:"min-h-11 cursor-pointer py-3 text-xs text-muted-foreground",children:n?"历史、导入与分享":"History, import and sharing"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async b=>{const h=await mr(r,o);b()&&C(h)})},children:[e.jsx(qt,{size:14}),n?"更新差异":"Changes"]}),e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async()=>{await et(new Blob([JSON.stringify(a,null,2)],{type:"application/json"}),"termdock-architecture.json")})},children:[e.jsx(Ge,{size:14}),"JSON"]}),e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async()=>{const b=await hr(r,o);await et(new Blob([JSON.stringify(b,null,2)],{type:"application/json"}),"architecture.omm.json")})},children:[e.jsx(Ge,{size:14}),".omm"]}),e.jsxs("button",{className:l,type:"button",disabled:F,onClick:()=>E.current?.click(),children:[e.jsx(Zt,{size:14}),n?"导入":"Import"]}),e.jsxs("button",{className:l,type:"button",disabled:F||!a,onClick:()=>{$(async()=>{const b=Mt(),h=Ut(window.location.origin,{root:r,file:o,...b?{peerId:b.targetPeerId,serviceName:b.serviceName}:{}});await navigator.clipboard.writeText(h),c(n?"链接已复制,打开时需要登录此 Termdock 服务。":"Link copied. Sign in to this Termdock service to view it.")})},children:[e.jsx(Yt,{size:14}),n?"复制查看链接":"Copy viewer link"]})]}),e.jsx("input",{ref:E,hidden:!0,type:"file",accept:".json,application/json",onChange:b=>{const h=b.target.files?.[0];b.target.value="",h&&$(async j=>{if(h.size>5e6)throw new Error(n?"文档超过 5 MB。":"Document exceeds 5 MB.");const B=await h.text();if(!j())return;const f=JSON.parse(B);if(f?.format==="termdock-omm-bundle"){const Q=await Ue(r,".omm");if(!j())return;N({name:h.name,value:f,file:".omm",revision:Q.revision});return}const H=Le(B),P=H.analysis?qe(H.analysis):xe,U=await Ue(r,P);j()&&N({name:h.name,value:H,file:P,revision:U.revision})})}}),R&&e.jsxs("div",{className:"my-2 rounded-lg bg-surface-2 p-3 text-xs",children:[e.jsxs("p",{className:"break-all",children:[R.name," → ",R.file]}),e.jsx("p",{className:"mt-1 text-muted-foreground",children:R.file===".omm"?n?"合并文档中的目录和字段;同名字段将更新。":"Merge bundled directories and fields; matching fields are updated.":n?"保存为此范围的架构,并保留此前的版本。":"Save this scope and retain its previous version."}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx("button",{className:`${l} text-primary`,disabled:F,type:"button",onClick:()=>{$(async b=>{const h=R.file===".omm"?await pr(r,R.value,R.revision):await xr(r,R.file,R.value,R.revision);b()&&(N(null),d(R.file,h))})},children:n?"确认导入":"Import document"}),e.jsx("button",{className:l,disabled:F,type:"button",onClick:()=>N(null),children:n?"取消":"Cancel"})]})]}),F&&e.jsx("p",{role:"status",className:"py-2 text-xs",children:n?"处理中…":"Working…"}),p&&e.jsx("p",{role:"alert",className:"break-words py-2 text-xs text-destructive",children:p}),u&&e.jsx("p",{role:"status",className:"py-2 text-xs text-muted-foreground",children:u}),k&&e.jsxs("div",{className:"space-y-2 pb-3",children:[k.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground",children:n?"还没有历史版本。使用原生命令或文档编辑保存后会保留版本。":"No previous versions. Native saves and document edits retain history."}),k.map(b=>e.jsxs("details",{children:[e.jsxs("summary",{className:"min-h-11 cursor-pointer py-3 text-xs",children:[new Date(b.savedAt).toLocaleString()," · ",b.changes.length," ",n?"处差异":"changes"]}),e.jsx("ul",{className:"space-y-1 text-xs text-muted-foreground",children:b.changes.map((h,j)=>e.jsxs("li",{className:"break-words",children:[h.kind==="added"?"+":h.kind==="removed"?"−":"~"," ",h.perspective?h.title:n?"项目总览":h.title," · ",h.fields.join(", ")]},j))})]},b.id))]})]})}async function gr(r,o,a=xe){const{document:d}=await Ue(r,a,o);if(d?.analysis&&qe(d.analysis)!==a)throw new kt("Architecture scope does not match its file");return d}async function yr(r,o){return ur(r,o)}function jr({view:r,parentId:o,selectedId:a,onSelect:d,active:x=!0,referenceWidth:n,inspector:p,inspectorStage:g="details",onDismissInspector:u,onExpandedChange:c,navigation:F,heading:M}){const{t:k,locale:C}=he(),[R,N]=s.useState(1),E=s.useId().replace(/[^a-zA-Z0-9]/g,""),z=s.useRef(null),$=s.useRef(null),l=s.useRef(null),b=s.useRef(null),h=s.useRef(null),[j,B]=s.useState(""),[f,H]=s.useState(!1),[P,U]=s.useState(1),Q=s.useRef(1),[T,ne]=s.useState(!1),fe=s.useRef(!0),V=s.useRef({inspector:p,onDismissInspector:u});V.current={inspector:p,onDismissInspector:u};const _=s.useRef(c);_.current=c;const ee=s.useRef({left:0,top:0}),[ie,oe]=s.useState(!1),[ae,pe]=s.useState({width:320,height:320,clipHeight:0}),v=s.useRef(new Map),O=s.useRef(!1),K=s.useRef(0),le=s.useMemo(()=>Wt(r,o,R),[r,o,R]),Y=s.useMemo(()=>nt(r,o).edges,[r,o]),W=s.useMemo(()=>{const i=j.match(/viewBox="([^"]+)"/)?.[1].split(/\s+/).map(Number),S=i?.[2]||320,m=i?.[3]||240,A=T?window.innerWidth:n||ae.width,w=Math.max(1,Math.min(1.4,Math.max(160,A-24)/S));return{width:S,height:m,scale:w}},[j,ae.width,T,n]),ce={width:W.width*W.scale*P,height:W.height*W.scale*P},ue=(i,S,m)=>{const A=Math.max(.01,Math.min(4,i)),w=$.current;if(w){const J=w.getBoundingClientRect(),be=S===void 0?w.clientWidth/2:S-J.left,me=m===void 0?w.clientHeight/2:m-J.top,Z=A/Q.current,ve=(w.scrollLeft+be)*Z-be,ge=(w.scrollTop+me)*Z-me,Ie=()=>{$.current===w&&(w.scrollLeft=ve,w.scrollTop=ge)};window.requestAnimationFrame?window.requestAnimationFrame(Ie):window.setTimeout(Ie,0)}Q.current=A,U(A)},se=()=>{Q.current=1,U(1),$.current&&($.current.scrollLeft=0,$.current.scrollTop=0)};s.useEffect(()=>{let i=!1;return B(""),H(!1),se(),oe(!1),v.current.clear(),le.nodes.length>300?(H(!0),()=>{i=!0}):(Gt().then(async S=>{er(S);const m=await S.render(`td-architecture-${E}`,le.code);i||B(Qt.sanitize(m.svg,{USE_PROFILES:{svg:!0,svgFilters:!0}}))}).catch(()=>{i||H(!0)}),()=>{i=!0})},[le.code,E]),s.useEffect(()=>{x||ne(!1)},[x]),s.useEffect(()=>{_.current?.(T)},[T]),s.useEffect(()=>()=>_.current?.(!1),[]),s.useLayoutEffect(()=>{const i=$.current;if(i)return i.scrollLeft=ee.current.left,i.scrollTop=ee.current.top,()=>{ee.current={left:i.scrollLeft,top:i.scrollTop}}},[T,!!j]),s.useEffect(()=>{const i=$.current;if(!i)return;const S=i.closest("[data-architecture-content]"),m=()=>{pe({width:i.clientWidth||320,height:i.clientHeight||320,clipHeight:S?.clientHeight||0})};m();const A=new ResizeObserver(m);return A.observe(i),S&&A.observe(S),()=>A.disconnect()},[j,T]),We(l,T&&x,()=>{V.current.inspector?V.current.onDismissInspector?.():ne(!1)},()=>fe.current?h.current:null),s.useEffect(()=>{if(!T)return;const i=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=i,v.current.clear()}},[T]),s.useLayoutEffect(()=>{const i=z.current?.querySelector("svg"),S=i?.querySelector("g");if(!(!i||!S||typeof S.getBBox!="function"))try{const m=S.getBBox();if(![m.x,m.y,m.width,m.height].every(Number.isFinite)||m.width<=0||m.height<=0)return;const A=`${m.x-16} ${m.y-16} ${m.width+32} ${m.height+32}`;if(i.getAttribute("viewBox")===A)return;i.setAttribute("viewBox",A),B(i.outerHTML)}catch{}},[j,T]),s.useLayoutEffect(()=>{z.current?.querySelectorAll("g.node, g.cluster").forEach(i=>{const S=Number(i.id.match(/(?:^|-)n(\d+)(?:-|$)/)?.[1]),m=le.nodes[S];if(!m)return;i.dataset.architectureRole=m.role,i.dataset.architectureNode=m.id,i.dataset.architectureRelated=String(!!a&&Y.some(w=>w.from===a&&w.to===m.id||w.to===a&&w.from===m.id));const A=i.matches("g.cluster")?i.querySelector("g.cluster-label")??i:i;A!==i&&(i.removeAttribute("role"),i.removeAttribute("tabindex")),A.dataset.architectureNode=m.id,A.setAttribute("role","button"),A.setAttribute("tabindex","0"),A.setAttribute("aria-label",m.title),A.setAttribute("aria-pressed",String(a===m.id)),i.setAttribute("aria-pressed",String(a===m.id))})}),s.useLayoutEffect(()=>{if(!a||g==="source"||g==="analysis")return;const i=$.current,S=[...z.current?.querySelectorAll("[data-architecture-node]")??[]].find(Z=>Z.dataset.architectureNode===a);if(!i||!S)return;let m=i.getBoundingClientRect();const A=i.closest("[data-architecture-content]");if(!T&&A&&m.width>24&&m.height>24){const Z=A.getBoundingClientRect();Z.height>160&&m.height<=Z.height&&(m.top<Z.top?A.scrollTop+=m.top-Z.top:m.bottom>Z.bottom&&(A.scrollTop+=m.bottom-Z.bottom),m=i.getBoundingClientRect());const ve=Math.max(m.top,Z.top),ge=Math.min(m.bottom,Z.bottom);m=new DOMRect(m.left,ve,m.width,Math.max(0,ge-ve))}const w=S.getBoundingClientRect();if(m.width<=24||m.height<=24||w.width<=0||w.height<=0)return;const J=12,be=w.width>m.width-2*J?(w.left+w.right-m.left-m.right)/2:w.left<m.left+J?w.left-m.left-J:w.right>m.right-J?w.right-m.right+J:0,me=w.height>m.height-2*J?(w.top+w.bottom-m.top-m.bottom)/2:w.top<m.top+J?w.top-m.top-J:w.bottom>m.bottom-J?w.bottom-m.bottom+J:0;i.scrollLeft+=be,i.scrollTop+=me},[a,ae.width,ae.height,ae.clipHeight,T,g,j]);const D=i=>{[...z.current?.querySelectorAll("[data-architecture-node]")??[]].find(S=>S.dataset.architectureNode===i)?.focus?.({preventScroll:!0}),d(i)},X="flex h-11 min-w-11 items-center justify-center rounded-lg px-2 hover:bg-surface-elevated focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40",q=e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.zoomOut"),disabled:P<=.01,onClick:()=>ue(Q.current/1.25),children:e.jsx(tr,{size:17})}),e.jsxs("button",{type:"button",className:`${X} text-xs tabular-nums`,"aria-label":k("architecture.resetZoom"),title:k("architecture.resetZoom"),onClick:se,children:[Math.round(W.scale*P*100),"%"]}),e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.zoomIn"),disabled:P>=4,onClick:()=>ue(Q.current*1.25),children:e.jsx(yt,{size:17})}),e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.fitGraph"),onClick:()=>ue(Math.min((ae.width-24)/W.width,(ae.height-24)/W.height)/W.scale),children:e.jsx(sr,{size:17})}),!T&&e.jsx("button",{ref:h,type:"button",className:X,"aria-label":k("architecture.fullscreen"),onClick:()=>{fe.current=!0,ne(!0)},children:e.jsx(cr,{size:17})}),e.jsx("button",{type:"button",className:X,"aria-label":k("architecture.download"),disabled:!j,onClick:()=>{oe(!1),et(new Blob([j],{type:"image/svg+xml"}),`architecture-${r.id}.svg`).catch(()=>oe(!0))},children:e.jsx(Ge,{size:17})})]}),Ce=r.nodes.find(i=>i.id===o)?.title??r.title,Pe=e.jsxs(e.Fragment,{children:[T?e.jsxs("header",{className:"shrink-0 border-b border-border/15 px-2 py-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"min-w-0 flex-1 px-1",children:M??e.jsx("h2",{className:"truncate text-xs font-semibold",title:Ce,children:Ce})}),e.jsxs("label",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",children:[C==="zh"?"展开":"Levels",e.jsx("select",{"aria-label":C==="zh"?"展开层级":"Expand levels",className:"h-11 max-w-20 rounded bg-surface px-1 text-foreground",value:R,onChange:i=>N(Number(i.target.value)),children:[0,1,2,6].map(i=>e.jsx("option",{value:i,children:i===0?C==="zh"?"当前层":"Current":i===6?C==="zh"?"全部":"All":`${i}`},i))})]}),e.jsx("button",{ref:b,type:"button",className:X,"aria-label":k("architecture.closeFullscreen"),onClick:()=>ne(!1),children:e.jsx(Se,{size:18})})]}),e.jsx("div",{className:"flex items-center justify-between gap-1",title:k("architecture.panHint"),children:q})]}):e.jsxs("div",{className:"shrink-0 border-b border-border/15 bg-surface-2 px-2 py-1",children:[e.jsx("div",{className:"flex items-center justify-between gap-1",children:q}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-1 px-1 text-xs text-muted-foreground",children:[e.jsx("span",{children:k("architecture.panHint")}),e.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[C==="zh"?"展开层级":"Expand levels",e.jsx("select",{"aria-label":C==="zh"?"展开层级":"Expand levels",className:"min-h-8 rounded bg-surface-2 px-2 text-foreground",value:R,onChange:i=>N(Number(i.target.value)),children:[0,1,2,6].map(i=>e.jsx("option",{value:i,children:i===0?C==="zh"?"当前层":"Current level":i===6?C==="zh"?"全部":"All":`${i}`},i))})]})]})]}),T&&F&&e.jsx("div",{className:"shrink-0 px-2",children:F}),ie&&e.jsx("p",{role:"alert",className:"px-3 py-2 text-xs text-destructive",children:k("architecture.downloadFailed")}),e.jsxs("div",{className:T?"relative flex min-h-0 flex-1 flex-col overflow-hidden min-[768px]:flex-row":"relative",children:[f?e.jsx("p",{role:"alert",className:"p-4 text-sm text-muted-foreground",children:le.nodes.length>300?C==="zh"?"图中模块较多,请减少展开层级或选择单个视角。":"This graph has many modules. Expand fewer levels or select one perspective.":k("architecture.diagramFailed")}):j?e.jsx("div",{ref:$,"data-sidebar-gesture-ignore":!0,className:`termdock-architecture-viewport overflow-auto overscroll-contain p-3 ${T?"min-h-0 min-w-0 flex-1":"h-[min(50dvh,26rem)]"}`,style:{touchAction:"none",maxHeight:!T&&ae.clipHeight?Math.max(160,ae.clipHeight-150):void 0},onPointerDown:i=>{if(i.button!==0)return;v.current.size||(O.current=!1,K.current=0);const S=i.target.closest("[data-architecture-node]")?.getAttribute("data-architecture-node")??void 0;v.current.set(i.pointerId,{x:i.clientX,y:i.clientY,nodeId:S}),v.current.size>1&&(O.current=!0);try{i.currentTarget.setPointerCapture?.(i.pointerId)}catch{}},onPointerMove:i=>{const S=v.current.get(i.pointerId);if(!S)return;const m=[...v.current.values()];v.current.set(i.pointerId,{...S,x:i.clientX,y:i.clientY});const A=[...v.current.values()];if(A.length>=2){const w=me=>Math.hypot(me[0].x-me[1].x,me[0].y-me[1].y),J=w(m),be=w(A);J>0&&ue(Q.current*be/J,(A[0].x+A[1].x)/2,(A[0].y+A[1].y)/2),O.current=!0}else{const w=S.x-i.clientX,J=S.y-i.clientY;K.current+=Math.hypot(w,J),K.current>5&&(O.current=!0),i.currentTarget.scrollLeft+=w,i.currentTarget.scrollTop+=J}},onPointerUp:i=>{const S=v.current.get(i.pointerId),m=v.current.size===1&&!O.current&&S?.nodeId;v.current.delete(i.pointerId),m&&(O.current=!0,D(m))},onPointerCancel:i=>{v.current.delete(i.pointerId),O.current=!0},onLostPointerCapture:i=>{v.current.delete(i.pointerId)},children:e.jsx("div",{ref:z,role:"group","aria-label":k("architecture.modules"),className:"termdock-architecture-diagram mx-auto",style:ce,onClick:i=>{if(O.current)return;const m=i.target.closest("[data-architecture-node]")?.getAttribute("data-architecture-node");m&&D(m)},onKeyDown:i=>{if(i.key!=="Enter"&&i.key!==" ")return;const S=i.target.closest("[data-architecture-node]")?.getAttribute("data-architecture-node");S&&(i.preventDefault(),D(S))},dangerouslySetInnerHTML:{__html:j}})}):e.jsx("p",{role:"status",className:"p-4 text-sm text-muted-foreground",children:k("architecture.rendering")}),T&&p]})]});return T?wt.createPortal(e.jsx("section",{ref:l,tabIndex:-1,role:"dialog","aria-modal":"true","aria-label":k("architecture.diagram"),"data-sidebar-gesture-ignore":!0,className:"fixed inset-0 z-modal-panel flex flex-col overflow-hidden bg-surface text-foreground pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]",children:Pe}),document.body):e.jsx("section",{className:"overflow-clip rounded-xl border border-border/20 bg-surface-2","aria-label":k("architecture.diagram"),children:Pe})}function je(r,o){let a=r.trim().replace(/^@/,"");/^([`"']).*\1$/.test(a)&&(a=a.slice(1,-1)),a=a.replace(/\\ /g," ").replace(/:\d+(?:-\d+)?$/,"").replace(/\/+$/,""),/^([`"']).*\1$/.test(a)&&(a=a.slice(1,-1));const d=o.replace(/\/+$/,"");if(a.startsWith("/")){if(!a.startsWith(`${d}/`))return null;a=a.slice(d.length+1)}return a=a.replace(/^\.\//,""),a.length<=1024&&Jt(a)?a:null}function ht(r,o){const a=[...r.matchAll(/^# (.+?): hunk \d+,/gm)].map(p=>p[1]),x=(a.length?a:r.split(/\r?\n/).map(p=>p.trim()).filter(Boolean)).map(p=>je(p,o));if(x.some(p=>p===null))return null;const n=[...new Set(x)];return n.length<=20?n:null}function $t({rootPath:r,initialDirectory:o,selected:a,onChange:d,selectionDisabled:x=!1,compact:n=!1}){const{t:p}=he(),g=r.replace(/\/+$/,"")||"/",[u,c]=s.useState(()=>o&&je(o,g)?o.replace(/\/+$/,""):g),[F,M]=s.useState(""),[k,C]=s.useState(null),[R,N]=s.useState(0),[E,z]=s.useState(null);s.useEffect(()=>{if(!E)return;const f=window.setTimeout(()=>z(null),1800);return()=>window.clearTimeout(f)},[E]);const $=tt(f=>f.invalidateDirectoryCache),l=new Set(a.map(f=>`${g==="/"?"":g}/${f}`)),b=f=>{const H=je(f,g);x||!H||a.includes(H)||a.length>=20||d([...a,H])},h=f=>{f!==g&&!je(f,g)||(c(f),M(""),C(null))},j=`inline-flex shrink-0 items-center justify-center rounded-lg text-xs hover:bg-surface-elevated focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40 ${n?"h-8 w-8 [@media(pointer:coarse)]:h-11 [@media(pointer:coarse)]:w-11":"h-11 w-11"}`,B=je(u,g);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"shrink-0 px-2 py-1",children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{type:"button",className:j,disabled:u===g,"aria-label":p("rightSidebar.parentFolder"),onClick:()=>h(u.slice(0,u.lastIndexOf("/"))||g),children:e.jsx(nr,{size:17})}),e.jsx("button",{type:"button",className:j,disabled:u===g,"aria-label":p("rightSidebar.backToProjectRoot"),onClick:()=>h(g),children:e.jsx(rr,{size:16})}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs font-medium",title:u,children:B??(u.split("/").pop()||"/")}),B&&e.jsx("button",{type:"button",className:`${j} text-primary`,disabled:x||!a.includes(B)&&a.length>=20,"aria-label":`${p("architecture.addScopeReference")}: ${u.split("/").pop()}`,title:B,"aria-pressed":a.includes(B),onClick:()=>b(u),children:a.includes(B)?e.jsx(Tt,{size:15}):e.jsx(Ft,{size:15})}),e.jsx("button",{type:"button",className:j,"aria-label":p("rightSidebar.refreshFiles"),onClick:()=>{$(u,!0),N(f=>f+1)},children:e.jsx(jt,{size:15})})]})}),x&&e.jsx("p",{role:"alert",className:"shrink-0 px-3 pb-2 text-xs text-muted-foreground",children:p("architecture.correctPathsFirst")}),e.jsx("div",{className:"shrink-0 border-b border-border/15 px-3 pb-2",children:e.jsx("input",{"aria-label":p("architecture.searchScopePaths"),placeholder:p("architecture.searchScopePaths"),value:F,onChange:f=>M(f.target.value),className:`${n?"h-9 [@media(pointer:coarse)]:h-11":"h-11"} w-full rounded-lg border border-border/20 bg-surface-2 px-3 text-sm focus-visible:ring-2 focus-visible:ring-ring`})}),e.jsx("div",{className:"min-h-0 flex-1 overflow-auto overscroll-contain bg-surface",children:e.jsx(Lt,{rootPath:u,selectedFilePath:k,onFileSelect:f=>{C(f),b(f)},onDirectoryRoot:h,onPathReference:b,getReferenceText:f=>je(f,g)??f,query:F,onReferenceCopied:z,copiedReferenceKey:E,onSearchFromDirectory:h,referenceSelection:{paths:l,label:p("architecture.addScopeReference"),disabled:x||a.length>=20}},`${u}:${R}`)})]})}function vr({rootPath:r,initialDirectory:o,initial:a,onConfirm:d,onCancel:x}){const{t:n}=he(),p=s.useRef(null);We(p,!0,x);const g=s.useId(),[u,c]=s.useState(a);s.useEffect(()=>{const M=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=M}},[]);const F="inline-flex min-h-11 items-center justify-center gap-1.5 rounded-lg px-3 text-xs hover:bg-surface-elevated focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40";return wt.createPortal(e.jsxs("div",{className:"fixed inset-0 z-popover flex items-center justify-center p-[max(0.75rem,env(safe-area-inset-top))]",children:[e.jsx("button",{type:"button",className:"absolute inset-0 z-10 cursor-default bg-[var(--app-backdrop)]","aria-label":n("common.cancel"),onClick:x}),e.jsxs("section",{ref:p,id:`${g}-dialog`,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":g,"aria-describedby":`${g}-hint`,className:"relative z-20 flex h-full max-h-[42rem] w-full max-w-xl flex-col overflow-hidden rounded-xl border border-border/20 bg-surface text-foreground shadow-xl",children:[e.jsxs("header",{className:"shrink-0 px-3 py-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h2",{id:g,className:"min-w-0 flex-1 text-sm font-semibold",title:n("architecture.browsePathsHint"),children:n("architecture.choosePaths")}),e.jsx("button",{type:"button",className:F,"aria-label":n("common.close"),onClick:x,children:e.jsx(Se,{size:17})})]}),e.jsx("p",{id:`${g}-hint`,className:"sr-only",children:n("architecture.browsePathsHint")})]}),e.jsx($t,{rootPath:r,initialDirectory:o,selected:u,onChange:c}),e.jsxs("footer",{className:"shrink-0 space-y-2 border-t border-border/15 p-3",children:[e.jsxs("p",{className:"text-xs text-muted-foreground",children:[n("architecture.selectedPaths")," ",u.length," / 20"]}),u.length>0&&e.jsx("div",{className:"flex max-h-24 flex-wrap gap-1 overflow-y-auto",children:u.map(M=>e.jsxs("button",{type:"button",className:`${F} min-w-0 max-w-full bg-surface-2`,"aria-label":`${n("architecture.removePath")}: ${M}`,onClick:()=>c(k=>k.filter(C=>C!==M)),children:[e.jsx("span",{className:"truncate font-mono",children:M}),e.jsx(Se,{size:13,className:"shrink-0"})]},M))}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx("button",{type:"button",className:F,onClick:x,children:n("common.cancel")}),e.jsx("button",{type:"button",className:`${F} bg-primary/15 text-primary`,onClick:()=>d(u),children:n("architecture.usePaths")})]})]})]})]}),document.body)}function pt({rootPath:r,initial:o,outputFile:a,currentFile:d,currentDirectory:x,active:n=!0,onInsertPrompt:p,onPrepared:g,onClose:u}){const{t:c,locale:F}=he(),M=s.useRef(null),k=s.useRef(null);We(k,n,u),s.useLayoutEffect(()=>{n&&k.current?.scrollIntoView?.({block:"start"})},[n]);const[C,R]=s.useState(!1);s.useLayoutEffect(()=>{const D=k.current;if(!n||!D)return;const X=()=>R(D.clientWidth>=900);if(X(),typeof ResizeObserver>"u")return;const q=new ResizeObserver(X);return q.observe(D),()=>q.disconnect()},[n]);const N=s.useId(),[E,z]=s.useState(o.kind),[$,l]=s.useState(o.target),[b,h]=s.useState(o.paths.join(`
|
|
3
3
|
`)),[j,B]=s.useState(o.depth),[f,H]=s.useState(o.focus),[P,U]=s.useState(null),[Q,T]=s.useState(!1),[ne,fe]=s.useState(!1),V=s.useRef(0);s.useEffect(()=>()=>{V.current++},[]),s.useEffect(()=>{n||(V.current++,T(!1),fe(!1))},[n]);const _=ht(b,r),ee=d?je(d,r):null,ie=x?je(x,r):null,oe=ie?x:ee?d.slice(0,d.lastIndexOf("/")):r,pe=n&&C&&E!=="project"&&!a&&!ne;let v=null;try{(E==="project"||_)&&(v=Vt({kind:E,target:$,paths:_??[],depth:j,focus:f}))}catch{}const O=v?Kt(r,F,v,a):"",K="inline-flex min-h-11 items-center justify-center gap-1.5 rounded-lg text-xs font-medium transition hover:bg-surface-elevated focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-40",le=`${K} px-3`,Y=`${K} px-1`,W="min-h-10 w-full min-w-0 rounded-lg border border-border/20 bg-surface px-2 py-2 text-sm text-foreground focus-visible:ring-2 focus-visible:ring-ring",ce=()=>{V.current++,T(!1),U(null)},ue=D=>{h(_?[...new Set([..._,D])].join(`
|
|
4
4
|
`):`${b.trim()}
|
|
5
5
|
${D}`),ce()},se=v;return e.jsxs("div",{ref:k,id:`${N}-workspace`,tabIndex:-1,className:pe?"grid min-h-0 min-w-0 flex-1 grid-cols-[20rem_minmax(0,1fr)] grid-rows-[minmax(0,1fr)] items-start gap-3":"min-w-0 shrink-0",children:[pe&&e.jsxs("section",{"aria-label":c("architecture.choosePaths"),"aria-describedby":`${N}-browser-hint`,className:"flex h-full min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border border-border/20 bg-surface-2",children:[e.jsxs("header",{className:"flex min-h-9 shrink-0 items-center gap-2 px-3",children:[e.jsx("h3",{className:"min-w-0 flex-1 truncate text-xs font-medium",title:c("architecture.browsePathsHint"),children:c("architecture.choosePaths")}),e.jsxs("p",{role:"status","aria-label":`${c("architecture.selectedPaths")} ${_?.length??0} / 20`,className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:[_?.length??0," / 20"]}),e.jsx("p",{id:`${N}-browser-hint`,className:"sr-only",children:c("architecture.browsePathsHint")})]}),e.jsx($t,{compact:!0,rootPath:r,initialDirectory:oe,selected:_??[],selectionDisabled:!_,onChange:D=>{h(D.join(`
|
|
Binary file
|
|
Binary file
|
package/dist/client/assets/{ChangeWalkthroughPanel-HZ0zvFvi.js → ChangeWalkthroughPanel-BYb27GTC.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{aQ as ie,e5 as ce,cb as s,g as le,L as de}from"./app-BMJesFDU.js";import{b as D}from"./dnd-BCFAPC0L.js";import{S as me}from"./sparkles-CCLflSFy.js";import{C as he}from"./chevron-left-5sk7gL3u.js";import{M as ue}from"./maximize-2-BGTBw-Ku.js";import{G as xe,T as fe,C as pe}from"./triangle-alert-D3w7mA17.js";const ye=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],ge=ie("minimize-2",ye);function be(t,d){return(d?t.filter(o=>o.repoRoot===d):t).slice().sort((o,r)=>r.injectedAt-o.injectedAt)[0]??null}function ke(t){switch(t){case"entry":case"source":return"bg-sky-400";case"ui":return"bg-fuchsia-400";case"risk":return"bg-destructive";case"test":return"bg-emerald-400";default:return"bg-primary"}}function ve(t){if(!t)return;const d=typeof t.sectionIndex=="number"?` section ${t.sectionIndex+1}`:"",i=typeof t.hunkIndex=="number"?` hunk ${t.hunkIndex+1}`:"";return`${t.filePath}${i}${d}`}function Z({anchor:t,children:d,onNavigate:i,className:o,style:r,elementRef:g,onActivate:l}){return!t&&!l?s.jsx("span",{ref:g,className:o,style:r,children:d}):s.jsx("button",{ref:g,type:"button",onClick:()=>{l?.(),t&&i(t)},title:ve(t),className:`${o} text-left transition hover:border-primary/35 hover:bg-primary/15 active:scale-[0.99]`,style:r,children:d})}const H=190,X=92,q=132,Ne=28,C=16,J=18,T=54,ee=24,re=18,we=8,B=24,z=["rgb(var(--primary-rgb))","rgb(var(--accent-rgb))","rgb(var(--warning-rgb))","rgb(var(--success-rgb))","rgb(192 132 252)"];function te(t){return z[t%z.length]}function je(t,d){return`${t.from}->${t.to}:${d}`}function Me(t,d,i){const o=Math.max(d.get(t)?.length??0,i.get(t)?.length??0);return Math.max(X,36+Math.max(0,o-1)*re)}function ne(t,d,i){if(i<=1)return t.y+t.height/2;const o=Math.max(0,t.height-36),r=Math.min(o,(i-1)*re);return t.y+t.height/2-r/2+r/(i-1)*d}function se(t,d,i){return t.slice().sort((o,r)=>{const g=d[o],l=d[r],a=i==="from"?g.toNode:g.fromNode,h=i==="from"?l.toNode:l.fromNode;return a.y-h.y||a.index-h.index||g.index-l.index})}function Ee(t,d){const i=new Map;for(const o of t){if(Math.abs(o.toNode.layer-o.fromNode.layer)!==1)continue;const r=`${o.fromNode.layer}:${o.toNode.layer}`,g=i.get(r)??[];g.push(o),i.set(r,g)}for(const o of i.values()){o.sort((h,x)=>(h.fromY+h.toY)/2-(x.fromY+x.toY)/2||h.index-x.index);const r=[];o.forEach((h,x)=>{const N=(h.fromY+h.toY)/2,M=Math.max(B,d[h.key]??0)/2;if(x===0){r.push(N);return}const w=o[x-1],E=Math.max(B,d[w.key]??0)/2;r.push(Math.max(N,r[x-1]+E+M+we))});const g=r.reduce((h,x,N)=>h+x-(o[N].fromY+o[N].toY)/2,0)/Math.max(1,r.length),l=Math.min(...r.map((h,x)=>h-g-Math.max(B,d[o[x].key]??0)/2)),a=Math.max(0,C-l);o.forEach((h,x)=>{h.laneY=r[x]-g+a})}}function $e(t,d,i={},o={}){const r=new Map(t.map((n,m)=>[n.id,{node:n,index:m}])),g=d.filter(n=>r.has(n.from)&&r.has(n.to)),l=new Map,a=new Map;for(const n of t)l.set(n.id,[]),a.set(n.id,[]);for(const n of g)l.get(n.to)?.push(n.from),a.get(n.from)?.push(n.to);const h=new Map,x=new Set,N=n=>{const m=h.get(n);if(m!==void 0)return m;if(x.has(n))return 0;x.add(n);const c=l.get(n)??[],u=c.length===0?0:Math.max(...c.map(N))+1;return x.delete(n),h.set(n,u),u};for(const n of t)N(n.id);const M=new Map;for(const n of t){const m=h.get(n.id)??0,c=M.get(m)??[],u=r.get(n.id);u&&c.push(u),M.set(m,c)}const w=[];for(const[n,m]of M.entries()){m.sort((u,f)=>u.index-f.index);let c=C+T;m.forEach(({node:u,index:f},j)=>{const I=Math.max(Me(u.id,l,a),Math.ceil(i[u.id]??X));w.push({node:u,index:f,layer:n,row:j,x:C+n*(H+q),y:c,height:I}),c+=I+Ne})}const E=new Map(w.map(n=>[n.node.id,n])),v=g.flatMap((n,m)=>{const c=E.get(n.from),u=E.get(n.to);return!c||!u?[]:[{...n,key:je(n,m),index:m,fromNode:c,toNode:u,routeIndex:m,fromPortIndex:0,toPortIndex:0,fromY:c.y+c.height/2,toY:u.y+u.height/2,laneY:(c.y+c.height/2+u.y+u.height/2)/2}]}),$=new Map,G=new Map;v.forEach((n,m)=>{$.set(n.from,[...$.get(n.from)??[],m]),G.set(n.to,[...G.get(n.to)??[],m])});for(const[n,m]of $){const c=se(m,v,"from");c.forEach((u,f)=>{const j=v[u];j.fromPortIndex=f,j.fromY=ne(E.get(n),f,c.length)})}for(const[n,m]of G){const c=se(m,v,"to");c.forEach((u,f)=>{const j=v[u];j.toPortIndex=f,j.toY=ne(E.get(n),f,c.length)})}Ee(v,o);let Y=0;v.forEach(n=>{const m=Math.min(n.fromNode.layer,n.toNode.layer),c=Math.max(n.fromNode.layer,n.toNode.layer);if(c-m<=1)return;const f=Y;Y+=1,n.routeIndex=f;const j=w.filter(A=>A.layer>=m&&A.layer<=c),I=Math.min(...j.map(A=>A.y))-ee-(Math.floor(f/2)+1)*J,S=Math.max(...j.map(A=>A.y+A.height))+ee+(Math.floor(f/2)+1)*J;n.laneY=f%2===0?Math.max(C,I):S});const O=Math.max(0,...w.map(n=>n.layer)),W=Math.max(C+T+X,...w.map(n=>n.y+n.height),...v.map(n=>n.laneY+Math.max(B,o[n.key]??0)/2));return{nodes:w,edges:v,width:C*2+(O+1)*H+O*q,height:W+C+T}}function oe(t,d=12){const i=t[0];if(!i)return"";const o=[`M ${i.x} ${i.y}`];for(let r=1;r<t.length;r+=1){const g=t[r-1],l=t[r],a=t[r+1];if(!a){o.push(`L ${l.x} ${l.y}`);continue}const h=l.x-g.x,x=l.y-g.y,N=a.x-l.x,M=a.y-l.y,w=Math.abs(h)+Math.abs(x),E=Math.abs(N)+Math.abs(M);if(w===0||E===0||h&&N||x&&M){o.push(`L ${l.x} ${l.y}`);continue}const v=Math.min(d,w/2,E/2),$={x:l.x-Math.sign(h)*v,y:l.y-Math.sign(x)*v},G={x:l.x+Math.sign(N)*v,y:l.y+Math.sign(M)*v};o.push(`L ${$.x} ${$.y}`),o.push(`Q ${l.x} ${l.y} ${G.x} ${G.y}`)}return o.join(" ")}function _e(t){const d=t.fromNode.x+H+8,i=t.fromY,o=t.toNode.x-8,r=t.toY,g=Math.abs(t.toNode.layer-t.fromNode.layer),l=d+22+t.fromPortIndex*5,a=o-22-t.toPortIndex*5;return g<=1?oe([{x:d,y:i},{x:l,y:i},{x:l,y:t.laneY},{x:a,y:t.laneY},{x:a,y:r},{x:o,y:r}]):oe([{x:d,y:i},{x:l,y:i},{x:l,y:t.laneY},{x:a,y:t.laneY},{x:a,y:r},{x:o,y:r}])}function De(t){const d=t.fromNode.x+H+8,i=t.toNode.x-8,o=Math.abs(t.toNode.layer-t.fromNode.layer),r=Math.max(34,Math.abs(i-d));return o<=1?{x:(d+i)/2,y:t.laneY,maxWidth:Math.max(72,Math.min(108,r-34))}:{x:(d+i)/2,y:t.laneY,maxWidth:Math.max(84,Math.min(120,r*.3))}}function Ce({walkthroughs:t,repoRoot:d,onNavigate:i,fullscreen:o=!1,onToggleFullscreen:r}){const{t:g}=ce(),l=D.useId(),a=be(t,d),h=D.useRef(new Map),x=D.useRef(new Map),[N,M]=D.useState({}),[w,E]=D.useState({}),[v,$]=D.useState(null),[G,Y]=D.useState(null),[O,W]=D.useState(null),[n,m]=D.useState(null),c=D.useMemo(()=>a?$e(a.nodes,a.edges,N,w):null,[N,w,a]);if(D.useLayoutEffect(()=>{if(!a)return;const e={};for(const p of a.nodes){const b=h.current.get(p.id);b&&(e[p.id]=b.offsetHeight)}M(p=>{const b=Object.keys(p),_=Object.keys(e);return b.length===_.length&&_.every(k=>p[k]===e[k])?p:e});const y={};for(const[p,b]of x.current)y[p]=b.offsetHeight;E(p=>{const b=Object.keys(p),_=Object.keys(y);return b.length===_.length&&_.every(k=>p[k]===y[k])?p:y})},[a]),!a||!c)return null;const u=`walkthrough-arrow-${l.replace(/[^a-zA-Z0-9_-]/g,"")||"default"}`,f=O??n,j=f?null:v??G,I=c.edges.some(e=>e.key===j)?j:null,S=c.edges.find(e=>e.key===I),A=f?c.edges.filter(e=>e.from===f||e.to===f):[],U=f?new Set(A.map(e=>e.key)):null,F=f?new Set([f,...A.flatMap(e=>[e.from,e.to])]):S?new Set([S.from,S.to]):null,K=new Map(a.sections.filter(e=>e.nodeId&&e.anchor).map(e=>[e.nodeId,e.anchor])),L=a.nodes.filter(e=>e.anchor??K.get(e.id)),R=L.findIndex(e=>e.id===n),Q=e=>{if(L.length===0)return;const y=R<0?e<0?L.length-1:0:Math.min(L.length-1,Math.max(0,R+e)),p=L[y],b=p.anchor??K.get(p.id);b&&(m(p.id),Y(null),i(b))};return s.jsxs("section",{className:"mb-2 px-0 py-0",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-primary/12 text-primary",children:s.jsx(me,{size:14})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("div",{className:"whitespace-normal break-words text-[12px] font-semibold leading-snug text-foreground",children:a.title}),a.summary&&s.jsx("div",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:a.summary})]}),s.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[o&&L.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",onClick:()=>Q(-1),disabled:R===0,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95 disabled:pointer-events-none disabled:opacity-30",title:"Previous change","aria-label":"Previous change",children:s.jsx(he,{size:15})}),s.jsxs("span",{className:"min-w-8 text-center text-[10px] tabular-nums text-muted-foreground",children:[R<0?"—":R+1,"/",L.length]}),s.jsx("button",{type:"button",onClick:()=>Q(1),disabled:R===L.length-1,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95 disabled:pointer-events-none disabled:opacity-30",title:"Next change","aria-label":"Next change",children:s.jsx(le,{size:15})})]}),r&&s.jsx("button",{type:"button",onClick:r,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95",title:o?"Exit full-screen DAG review":"Review from DAG in full screen","aria-label":o?"Exit full-screen DAG review":"Review from DAG in full screen",children:o?s.jsx(ge,{size:15}):s.jsx(ue,{size:15})})]})]}),a.highlights.length>0&&s.jsx("div",{className:"mt-2 grid gap-1.5",children:a.highlights.slice(0,4).map((e,y)=>s.jsxs("div",{className:"rounded-md bg-surface-2 px-2 py-1.5",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[e.tag&&s.jsx("span",{className:"shrink-0 rounded bg-surface-elevated px-1.5 py-0.5 text-[9px] font-semibold text-primary",children:e.tag}),s.jsx("span",{className:"min-w-0 flex-1 whitespace-normal break-words text-[11px] font-semibold leading-snug text-foreground",children:e.what})]}),s.jsx("div",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:e.effect})]},`${e.what}-${y}`))}),a.nodes.length>0&&s.jsxs("div",{className:"mt-2",children:[s.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2 text-[10px] text-muted-foreground",children:[s.jsxs("div",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-[0.12em]",children:[s.jsx(xe,{size:11}),"DAG"]}),a.edges.some(e=>e.label?.trim())&&s.jsx("span",{className:"normal-case tracking-normal",children:g("diffViewer.focusPathHint")})]}),s.jsx("div",{className:"overflow-x-auto rounded-md border border-border/15 bg-surface-2 p-1.5",onWheel:e=>e.stopPropagation(),children:s.jsxs("div",{className:"relative",style:{width:c.width,height:c.height},children:[s.jsxs("svg",{className:"absolute inset-0",width:c.width,height:c.height,"aria-hidden":"true",children:[s.jsx("defs",{children:z.map((e,y)=>s.jsx("marker",{id:`${u}-${y}`,viewBox:"0 0 10 10",refX:"8.5",refY:"5",markerWidth:"5",markerHeight:"5",orient:"auto",markerUnits:"strokeWidth",children:s.jsx("path",{d:"M0,0 L10,5 L0,10 Z",fill:e})},e))}),c.edges.map(e=>{const y=_e(e),p=te(e.index),b=I===e.key||!!U?.has(e.key),_=!!((I||f)&&!b);return s.jsxs("g",{className:"transition-opacity duration-150",style:{opacity:_?.3:1},children:[s.jsx("path",{className:"pointer-events-none",d:y,fill:"none",stroke:"var(--surface-2)",strokeWidth:b?7:5,strokeLinecap:"round"}),s.jsx("path",{className:"pointer-events-none transition-[stroke-width,opacity] duration-150",d:y,fill:"none",stroke:p,strokeWidth:b?3:1.8,strokeLinecap:"round",markerEnd:`url(#${u}-${e.index%z.length})`}),s.jsx("path",{"data-dag-edge":e.key,d:y,fill:"none",stroke:"transparent",strokeWidth:"14",className:"cursor-pointer",onPointerEnter:()=>$(e.key),onPointerLeave:()=>$(k=>k===e.key?null:k),onClick:()=>{m(null),Y(k=>k===e.key?null:e.key)}}),s.jsx("circle",{className:"pointer-events-none",cx:e.fromNode.x+H+8,cy:e.fromY,r:b?4:3,fill:p,stroke:"var(--surface-2)",strokeWidth:"2"}),s.jsx("circle",{className:"pointer-events-none",cx:e.toNode.x-8,cy:e.toY,r:b?4:3,fill:p,stroke:"var(--surface-2)",strokeWidth:"2"})]},e.key)})]}),c.edges.map(e=>{const y=e.label?.trim();if(!y)return null;const{x:p,y:b,maxWidth:_}=De(e),k=te(e.index),V=I===e.key||!!U?.has(e.key),ae=!!((I||f)&&!V);return s.jsxs("button",{ref:P=>{P?x.current.set(e.key,P):x.current.delete(e.key)},type:"button","data-dag-edge-label":e.key,className:"absolute -translate-x-1/2 -translate-y-1/2 whitespace-normal break-words rounded-md border bg-surface-elevated px-1.5 py-1 text-center text-[9px] leading-[11px] shadow-sm transition-[opacity,box-shadow,transform] duration-150 [overflow-wrap:anywhere] hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60",style:{left:p,top:b,maxWidth:_,width:"max-content",borderColor:k,color:k,opacity:ae?.38:1,boxShadow:V?`0 0 0 2px ${k}, 0 6px 18px rgb(0 0 0 / 0.24)`:void 0},title:`${e.fromNode.index+1} ${e.fromNode.node.title} → ${e.toNode.index+1} ${e.toNode.node.title}${e.desc?`
|
|
2
|
-
${e.desc}`:""}`,"aria-pressed":G===e.key,onPointerEnter:()=>$(e.key),onPointerLeave:()=>$(P=>P===e.key?null:P),onClick:()=>{m(null),Y(P=>P===e.key?null:e.key)},children:[s.jsxs("span",{className:"block font-bold tabular-nums",children:[e.fromNode.index+1," → ",e.toNode.index+1]}),s.jsx("span",{className:"block text-muted-foreground",children:y})]},`${e.key}-label`)}),c.nodes.map(({node:e,index:y,x:p,y:b,height:_})=>s.jsxs(
|
|
1
|
+
import{aR as ie,e6 as ce,cc as s,g as le,L as de}from"./app-stNRNTO-.js";import{b as D}from"./dnd-BCFAPC0L.js";import{S as me}from"./sparkles-B64EiCUM.js";import{C as he}from"./chevron-left-ZgHOf4aC.js";import{M as ue}from"./maximize-2-dFjMEqgh.js";import{G as xe,T as fe,C as pe}from"./triangle-alert-LpKfIn7N.js";const ye=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],ge=ie("minimize-2",ye);function be(t,d){return(d?t.filter(o=>o.repoRoot===d):t).slice().sort((o,r)=>r.injectedAt-o.injectedAt)[0]??null}function ke(t){switch(t){case"entry":case"source":return"bg-sky-400";case"ui":return"bg-fuchsia-400";case"risk":return"bg-destructive";case"test":return"bg-emerald-400";default:return"bg-primary"}}function ve(t){if(!t)return;const d=typeof t.sectionIndex=="number"?` section ${t.sectionIndex+1}`:"",i=typeof t.hunkIndex=="number"?` hunk ${t.hunkIndex+1}`:"";return`${t.filePath}${i}${d}`}function Q({anchor:t,children:d,onNavigate:i,className:o,style:r,elementRef:g,onActivate:l}){return!t&&!l?s.jsx("span",{ref:g,className:o,style:r,children:d}):s.jsx("button",{ref:g,type:"button",onClick:()=>{l?.(),t&&i(t)},title:ve(t),className:`${o} text-left transition hover:border-primary/35 hover:bg-primary/15 active:scale-[0.99]`,style:r,children:d})}const H=190,X=92,q=132,Ne=28,C=16,J=18,T=54,ee=24,re=18,we=8,B=24,z=["rgb(var(--primary-rgb))","rgb(var(--accent-rgb))","rgb(var(--warning-rgb))","rgb(var(--success-rgb))","rgb(192 132 252)"];function te(t){return z[t%z.length]}function je(t,d){return`${t.from}->${t.to}:${d}`}function Me(t,d,i){const o=Math.max(d.get(t)?.length??0,i.get(t)?.length??0);return Math.max(X,36+Math.max(0,o-1)*re)}function ne(t,d,i){if(i<=1)return t.y+t.height/2;const o=Math.max(0,t.height-36),r=Math.min(o,(i-1)*re);return t.y+t.height/2-r/2+r/(i-1)*d}function se(t,d,i){return t.slice().sort((o,r)=>{const g=d[o],l=d[r],a=i==="from"?g.toNode:g.fromNode,h=i==="from"?l.toNode:l.fromNode;return a.y-h.y||a.index-h.index||g.index-l.index})}function Ee(t,d){const i=new Map;for(const o of t){if(Math.abs(o.toNode.layer-o.fromNode.layer)!==1)continue;const r=`${o.fromNode.layer}:${o.toNode.layer}`,g=i.get(r)??[];g.push(o),i.set(r,g)}for(const o of i.values()){o.sort((h,x)=>(h.fromY+h.toY)/2-(x.fromY+x.toY)/2||h.index-x.index);const r=[];o.forEach((h,x)=>{const N=(h.fromY+h.toY)/2,M=Math.max(B,d[h.key]??0)/2;if(x===0){r.push(N);return}const w=o[x-1],E=Math.max(B,d[w.key]??0)/2;r.push(Math.max(N,r[x-1]+E+M+we))});const g=r.reduce((h,x,N)=>h+x-(o[N].fromY+o[N].toY)/2,0)/Math.max(1,r.length),l=Math.min(...r.map((h,x)=>h-g-Math.max(B,d[o[x].key]??0)/2)),a=Math.max(0,C-l);o.forEach((h,x)=>{h.laneY=r[x]-g+a})}}function $e(t,d,i={},o={}){const r=new Map(t.map((n,m)=>[n.id,{node:n,index:m}])),g=d.filter(n=>r.has(n.from)&&r.has(n.to)),l=new Map,a=new Map;for(const n of t)l.set(n.id,[]),a.set(n.id,[]);for(const n of g)l.get(n.to)?.push(n.from),a.get(n.from)?.push(n.to);const h=new Map,x=new Set,N=n=>{const m=h.get(n);if(m!==void 0)return m;if(x.has(n))return 0;x.add(n);const c=l.get(n)??[],u=c.length===0?0:Math.max(...c.map(N))+1;return x.delete(n),h.set(n,u),u};for(const n of t)N(n.id);const M=new Map;for(const n of t){const m=h.get(n.id)??0,c=M.get(m)??[],u=r.get(n.id);u&&c.push(u),M.set(m,c)}const w=[];for(const[n,m]of M.entries()){m.sort((u,f)=>u.index-f.index);let c=C+T;m.forEach(({node:u,index:f},j)=>{const I=Math.max(Me(u.id,l,a),Math.ceil(i[u.id]??X));w.push({node:u,index:f,layer:n,row:j,x:C+n*(H+q),y:c,height:I}),c+=I+Ne})}const E=new Map(w.map(n=>[n.node.id,n])),v=g.flatMap((n,m)=>{const c=E.get(n.from),u=E.get(n.to);return!c||!u?[]:[{...n,key:je(n,m),index:m,fromNode:c,toNode:u,routeIndex:m,fromPortIndex:0,toPortIndex:0,fromY:c.y+c.height/2,toY:u.y+u.height/2,laneY:(c.y+c.height/2+u.y+u.height/2)/2}]}),$=new Map,G=new Map;v.forEach((n,m)=>{$.set(n.from,[...$.get(n.from)??[],m]),G.set(n.to,[...G.get(n.to)??[],m])});for(const[n,m]of $){const c=se(m,v,"from");c.forEach((u,f)=>{const j=v[u];j.fromPortIndex=f,j.fromY=ne(E.get(n),f,c.length)})}for(const[n,m]of G){const c=se(m,v,"to");c.forEach((u,f)=>{const j=v[u];j.toPortIndex=f,j.toY=ne(E.get(n),f,c.length)})}Ee(v,o);let Y=0;v.forEach(n=>{const m=Math.min(n.fromNode.layer,n.toNode.layer),c=Math.max(n.fromNode.layer,n.toNode.layer);if(c-m<=1)return;const f=Y;Y+=1,n.routeIndex=f;const j=w.filter(A=>A.layer>=m&&A.layer<=c),I=Math.min(...j.map(A=>A.y))-ee-(Math.floor(f/2)+1)*J,S=Math.max(...j.map(A=>A.y+A.height))+ee+(Math.floor(f/2)+1)*J;n.laneY=f%2===0?Math.max(C,I):S});const O=Math.max(0,...w.map(n=>n.layer)),W=Math.max(C+T+X,...w.map(n=>n.y+n.height),...v.map(n=>n.laneY+Math.max(B,o[n.key]??0)/2));return{nodes:w,edges:v,width:C*2+(O+1)*H+O*q,height:W+C+T}}function oe(t,d=12){const i=t[0];if(!i)return"";const o=[`M ${i.x} ${i.y}`];for(let r=1;r<t.length;r+=1){const g=t[r-1],l=t[r],a=t[r+1];if(!a){o.push(`L ${l.x} ${l.y}`);continue}const h=l.x-g.x,x=l.y-g.y,N=a.x-l.x,M=a.y-l.y,w=Math.abs(h)+Math.abs(x),E=Math.abs(N)+Math.abs(M);if(w===0||E===0||h&&N||x&&M){o.push(`L ${l.x} ${l.y}`);continue}const v=Math.min(d,w/2,E/2),$={x:l.x-Math.sign(h)*v,y:l.y-Math.sign(x)*v},G={x:l.x+Math.sign(N)*v,y:l.y+Math.sign(M)*v};o.push(`L ${$.x} ${$.y}`),o.push(`Q ${l.x} ${l.y} ${G.x} ${G.y}`)}return o.join(" ")}function _e(t){const d=t.fromNode.x+H+8,i=t.fromY,o=t.toNode.x-8,r=t.toY,g=Math.abs(t.toNode.layer-t.fromNode.layer),l=d+22+t.fromPortIndex*5,a=o-22-t.toPortIndex*5;return g<=1?oe([{x:d,y:i},{x:l,y:i},{x:l,y:t.laneY},{x:a,y:t.laneY},{x:a,y:r},{x:o,y:r}]):oe([{x:d,y:i},{x:l,y:i},{x:l,y:t.laneY},{x:a,y:t.laneY},{x:a,y:r},{x:o,y:r}])}function De(t){const d=t.fromNode.x+H+8,i=t.toNode.x-8,o=Math.abs(t.toNode.layer-t.fromNode.layer),r=Math.max(34,Math.abs(i-d));return o<=1?{x:(d+i)/2,y:t.laneY,maxWidth:Math.max(72,Math.min(108,r-34))}:{x:(d+i)/2,y:t.laneY,maxWidth:Math.max(84,Math.min(120,r*.3))}}function Ce({walkthroughs:t,repoRoot:d,onNavigate:i,fullscreen:o=!1,onToggleFullscreen:r}){const{t:g}=ce(),l=D.useId(),a=be(t,d),h=D.useRef(new Map),x=D.useRef(new Map),[N,M]=D.useState({}),[w,E]=D.useState({}),[v,$]=D.useState(null),[G,Y]=D.useState(null),[O,W]=D.useState(null),[n,m]=D.useState(null),c=D.useMemo(()=>a?$e(a.nodes,a.edges,N,w):null,[N,w,a]);if(D.useLayoutEffect(()=>{if(!a)return;const e={};for(const p of a.nodes){const b=h.current.get(p.id);b&&(e[p.id]=b.offsetHeight)}M(p=>{const b=Object.keys(p),_=Object.keys(e);return b.length===_.length&&_.every(k=>p[k]===e[k])?p:e});const y={};for(const[p,b]of x.current)y[p]=b.offsetHeight;E(p=>{const b=Object.keys(p),_=Object.keys(y);return b.length===_.length&&_.every(k=>p[k]===y[k])?p:y})},[a]),!a||!c)return null;const u=`walkthrough-arrow-${l.replace(/[^a-zA-Z0-9_-]/g,"")||"default"}`,f=O??n,j=f?null:v??G,I=c.edges.some(e=>e.key===j)?j:null,S=c.edges.find(e=>e.key===I),A=f?c.edges.filter(e=>e.from===f||e.to===f):[],U=f?new Set(A.map(e=>e.key)):null,F=f?new Set([f,...A.flatMap(e=>[e.from,e.to])]):S?new Set([S.from,S.to]):null,K=new Map(a.sections.filter(e=>e.nodeId&&e.anchor).map(e=>[e.nodeId,e.anchor])),L=a.nodes.filter(e=>e.anchor??K.get(e.id)),R=L.findIndex(e=>e.id===n),V=e=>{if(L.length===0)return;const y=R<0?e<0?L.length-1:0:Math.min(L.length-1,Math.max(0,R+e)),p=L[y],b=p.anchor??K.get(p.id);b&&(m(p.id),Y(null),i(b))};return s.jsxs("section",{className:"mb-2 px-0 py-0",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-primary/12 text-primary",children:s.jsx(me,{size:14})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("div",{className:"whitespace-normal break-words text-[12px] font-semibold leading-snug text-foreground",children:a.title}),a.summary&&s.jsx("div",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:a.summary})]}),s.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[o&&L.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",onClick:()=>V(-1),disabled:R===0,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95 disabled:pointer-events-none disabled:opacity-30",title:"Previous change","aria-label":"Previous change",children:s.jsx(he,{size:15})}),s.jsxs("span",{className:"min-w-8 text-center text-[10px] tabular-nums text-muted-foreground",children:[R<0?"—":R+1,"/",L.length]}),s.jsx("button",{type:"button",onClick:()=>V(1),disabled:R===L.length-1,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95 disabled:pointer-events-none disabled:opacity-30",title:"Next change","aria-label":"Next change",children:s.jsx(le,{size:15})})]}),r&&s.jsx("button",{type:"button",onClick:r,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95",title:o?"Exit full-screen DAG review":"Review from DAG in full screen","aria-label":o?"Exit full-screen DAG review":"Review from DAG in full screen",children:o?s.jsx(ge,{size:15}):s.jsx(ue,{size:15})})]})]}),a.highlights.length>0&&s.jsx("div",{className:"mt-2 grid gap-1.5",children:a.highlights.slice(0,4).map((e,y)=>s.jsxs("div",{className:"rounded-md bg-surface-2 px-2 py-1.5",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[e.tag&&s.jsx("span",{className:"shrink-0 rounded bg-surface-elevated px-1.5 py-0.5 text-[9px] font-semibold text-primary",children:e.tag}),s.jsx("span",{className:"min-w-0 flex-1 whitespace-normal break-words text-[11px] font-semibold leading-snug text-foreground",children:e.what})]}),s.jsx("div",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:e.effect})]},`${e.what}-${y}`))}),a.nodes.length>0&&s.jsxs("div",{className:"mt-2",children:[s.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2 text-[10px] text-muted-foreground",children:[s.jsxs("div",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-[0.12em]",children:[s.jsx(xe,{size:11}),"DAG"]}),a.edges.some(e=>e.label?.trim())&&s.jsx("span",{className:"normal-case tracking-normal",children:g("diffViewer.focusPathHint")})]}),s.jsx("div",{className:"overflow-x-auto rounded-md border border-border/15 bg-surface-2 p-1.5",onWheel:e=>e.stopPropagation(),children:s.jsxs("div",{className:"relative",style:{width:c.width,height:c.height},children:[s.jsxs("svg",{className:"absolute inset-0",width:c.width,height:c.height,"aria-hidden":"true",children:[s.jsx("defs",{children:z.map((e,y)=>s.jsx("marker",{id:`${u}-${y}`,viewBox:"0 0 10 10",refX:"8.5",refY:"5",markerWidth:"5",markerHeight:"5",orient:"auto",markerUnits:"strokeWidth",children:s.jsx("path",{d:"M0,0 L10,5 L0,10 Z",fill:e})},e))}),c.edges.map(e=>{const y=_e(e),p=te(e.index),b=I===e.key||!!U?.has(e.key),_=!!((I||f)&&!b);return s.jsxs("g",{className:"transition-opacity duration-150",style:{opacity:_?.3:1},children:[s.jsx("path",{className:"pointer-events-none",d:y,fill:"none",stroke:"var(--surface-2)",strokeWidth:b?7:5,strokeLinecap:"round"}),s.jsx("path",{className:"pointer-events-none transition-[stroke-width,opacity] duration-150",d:y,fill:"none",stroke:p,strokeWidth:b?3:1.8,strokeLinecap:"round",markerEnd:`url(#${u}-${e.index%z.length})`}),s.jsx("path",{"data-dag-edge":e.key,d:y,fill:"none",stroke:"transparent",strokeWidth:"14",className:"cursor-pointer",onPointerEnter:()=>$(e.key),onPointerLeave:()=>$(k=>k===e.key?null:k),onClick:()=>{m(null),Y(k=>k===e.key?null:e.key)}}),s.jsx("circle",{className:"pointer-events-none",cx:e.fromNode.x+H+8,cy:e.fromY,r:b?4:3,fill:p,stroke:"var(--surface-2)",strokeWidth:"2"}),s.jsx("circle",{className:"pointer-events-none",cx:e.toNode.x-8,cy:e.toY,r:b?4:3,fill:p,stroke:"var(--surface-2)",strokeWidth:"2"})]},e.key)})]}),c.edges.map(e=>{const y=e.label?.trim();if(!y)return null;const{x:p,y:b,maxWidth:_}=De(e),k=te(e.index),Z=I===e.key||!!U?.has(e.key),ae=!!((I||f)&&!Z);return s.jsxs("button",{ref:P=>{P?x.current.set(e.key,P):x.current.delete(e.key)},type:"button","data-dag-edge-label":e.key,className:"absolute -translate-x-1/2 -translate-y-1/2 whitespace-normal break-words rounded-md border bg-surface-elevated px-1.5 py-1 text-center text-[9px] leading-[11px] shadow-sm transition-[opacity,box-shadow,transform] duration-150 [overflow-wrap:anywhere] hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60",style:{left:p,top:b,maxWidth:_,width:"max-content",borderColor:k,color:k,opacity:ae?.38:1,boxShadow:Z?`0 0 0 2px ${k}, 0 6px 18px rgb(0 0 0 / 0.24)`:void 0},title:`${e.fromNode.index+1} ${e.fromNode.node.title} → ${e.toNode.index+1} ${e.toNode.node.title}${e.desc?`
|
|
2
|
+
${e.desc}`:""}`,"aria-pressed":G===e.key,onPointerEnter:()=>$(e.key),onPointerLeave:()=>$(P=>P===e.key?null:P),onClick:()=>{m(null),Y(P=>P===e.key?null:e.key)},children:[s.jsxs("span",{className:"block font-bold tabular-nums",children:[e.fromNode.index+1," → ",e.toNode.index+1]}),s.jsx("span",{className:"block text-muted-foreground",children:y})]},`${e.key}-label`)}),c.nodes.map(({node:e,index:y,x:p,y:b,height:_})=>s.jsxs(Q,{elementRef:k=>{k?h.current.set(e.id,k):h.current.delete(e.id)},anchor:e.anchor??K.get(e.id),onActivate:()=>{m(e.id),Y(null)},onNavigate:i,className:`absolute overflow-hidden rounded-lg border bg-surface/95 px-2.5 py-2 text-foreground shadow-[0_10px_24px_rgba(0,0,0,0.18)] transition-[opacity,border-color,box-shadow] duration-150 ${F?.has(e.id)?"border-primary/60 shadow-[0_0_0_1px_rgb(var(--primary-rgb)/0.28),0_10px_24px_rgba(0,0,0,0.22)]":F?"border-border/15 opacity-40":"border-border/25"}`,style:{left:p,top:b,width:H,minHeight:_},children:[s.jsx("span",{className:"absolute inset-0",onPointerEnter:()=>W(e.id),onPointerLeave:()=>W(k=>k===e.id?null:k)}),s.jsx("span",{className:`pointer-events-none absolute bottom-2 left-0 top-2 w-[3px] rounded-r-full ${ke(e.kind)}`}),s.jsxs("div",{className:"pointer-events-none relative flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-primary/15 text-[9px] font-bold text-primary",children:y+1}),s.jsx("span",{className:"min-w-0 flex-1 whitespace-normal break-words text-[11px] font-semibold leading-snug text-foreground",children:e.title}),e.anchor&&s.jsx(de,{size:11,className:"shrink-0 opacity-70"})]}),e.kind&&s.jsx("div",{className:"pointer-events-none relative mt-0.5 truncate text-[9px] font-semibold uppercase tracking-[0.08em] text-muted-foreground/80",children:e.kind}),s.jsx("div",{className:"pointer-events-none relative mt-0.5 whitespace-normal break-words text-[10px] leading-snug text-muted-foreground",children:e.business})]},e.id))]})})]}),(a.risks.length>0||a.checks.length>0)&&s.jsxs("div",{className:"mt-2 grid gap-1.5",children:[a.risks.slice(0,3).map((e,y)=>s.jsxs(Q,{anchor:e.anchor,onNavigate:i,className:"flex w-full items-start gap-1.5 rounded-md border border-[rgb(var(--warning-rgb)_/_0.25)] bg-[rgb(var(--warning-rgb)_/_0.10)] px-2 py-1.5 text-[10px] text-muted-foreground",children:[s.jsx(fe,{size:12,className:"mt-0.5 shrink-0 text-[color:var(--warning)]"}),s.jsx("span",{className:"min-w-0 whitespace-normal break-words leading-snug",children:e.title})]},`${e.title}-${y}`)),a.checks.slice(0,3).map((e,y)=>s.jsxs("div",{className:"flex items-start gap-1.5 rounded-md bg-surface-2 px-2 py-1.5 text-[10px] text-muted-foreground",children:[s.jsx(pe,{size:12,className:"mt-0.5 shrink-0 text-primary"}),s.jsx("span",{className:"min-w-0 whitespace-normal break-words leading-snug",children:e})]},`${e}-${y}`))]})]})}export{Ce as C,ge as M};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{e5 as B,cj as K,bd as U,bG as Y,dN as q,cc as e,x as F,b$ as k,R as C,S as H}from"./app-stNRNTO-.js";import{b as s}from"./dnd-BCFAPC0L.js";import{m as a,c as J,k as Q,P as X,W as Z,C as ee,o as te,e as se}from"./App-CqLXOAnv.js";import"./react-XDCjal2T.js";import"./terminal-Dea8wJF3.js";import"./link-D-fkBp5k.js";import"./AndroidMirrorView-D9CMPmet.js";import"./v4-EwEgHOG0.js";import"./RecordingSaveDialog-1YvzwTzo.js";import"./use-gesture-react.esm-DYpdiE_k.js";import"./gestureArbiter-DszagC-d.js";import"./arrow-up-DE9Z7GTI.js";import"./unplug-CLBg6VOD.js";import"./swiper-DJjq1TYT.js";import"./loader-circle-DZn9iP0u.js";import"./clipboardText-B0NK9NMn.js";import"./GitLoadingSkeleton-ieGTuTuO.js";import"./clipboard-BGpbRBdi.js";import"./triangle-alert-LpKfIn7N.js";import"./sun-BFxiDkET.js";import"./maximize-2-dFjMEqgh.js";import"./git-compare-C7n2uha2.js";import"./arrow-down-DaWRHIlh.js";function Se({groupId:n,activeSessionId:u,onOpenSidebar:w,leftSidebarVisible:S=!1,onToggleRightSidebar:x,rightSidebarOpen:p=!1,defaultSessionMode:E}){const b=s.useRef(null);s.useEffect(()=>{b.current?.focus()},[]);const[i,h]=s.useState(null),[R,P]=s.useState([]),[l,d]=s.useState(null),[g,D]=s.useState(null),[f,G]=s.useState(null),[z,T]=s.useState(null),r=B(),[L,j]=s.useState(!1);s.useEffect(()=>{if(r==="ready"){j(!1);return}const t=setTimeout(()=>j(!0),1e3);return()=>clearTimeout(t)},[r]);const V=a(t=>t.view),W=a(t=>t.drafts),y=a(t=>t.setDraft),[A,M]=s.useState(n),c=s.useCallback(async()=>{try{const t=await K();h(t),d(null)}catch(t){d(t instanceof Error?t.message:"协作组加载失败")}},[]);s.useEffect(()=>{let t=!1;U().then(o=>{t||P(o)}).catch(()=>{}),Y().then(o=>{if(t)return;const O=o.collaborationPanels?.[J()]?.drafts;for(const[v,_]of Object.entries(O??{}))a.getState().drafts[v]||y(v,_)}).catch(()=>{});const $=q(o=>{t||(h(o),d(null))}),I=Q(()=>{navigator.onLine!==!1&&c()},1e4,[H,"pageshow"]);return()=>{t=!0,$(),I()}},[c]);const m=i?.groups.find(t=>t.id===n),N=async t=>{await se(t),a.getState().terminal()};return e.jsxs("section",{"aria-label":"协作主工作区",className:"absolute inset-0 flex min-h-0 min-w-0 flex-col bg-[var(--chrome-bg)] text-foreground",children:[e.jsxs("header",{"data-termdock-window-header":"true",className:"flex min-h-14 shrink-0 items-center gap-1 border-b border-border/15 px-2 sm:min-h-16 sm:gap-3 sm:px-6",children:[!S&&e.jsx("button",{type:"button","aria-label":"打开会话侧栏",className:"inline-flex min-h-11 min-w-11 items-center justify-center rounded-lg text-muted-foreground hover:bg-surface-2",onClick:w,children:e.jsx(X,{size:17})}),e.jsx(Z,{size:18,className:"hidden shrink-0 text-primary sm:block"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("h2",{ref:b,tabIndex:-1,className:"truncate text-base font-semibold outline-none",children:m?.name??"协作工作区"}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:m?`${m.sessionIds.length} 位成员`:"正在连接工作组"})]}),x&&e.jsx("button",{type:"button","aria-label":"文件侧栏",title:"文件侧栏","aria-pressed":p,className:`inline-flex min-h-11 min-w-11 items-center justify-center rounded-lg ${p?"bg-surface-2 text-primary":"text-muted-foreground hover:bg-surface-2"}`,onClick:x,children:e.jsx(F,{size:17})})]}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col px-4 py-2 sm:px-6",children:[(L||k(l))&&e.jsxs("div",{role:"status",className:"mb-2 flex shrink-0 items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(C,{size:13,className:r==="offline"?"":"animate-spin"}),e.jsx("span",{children:r==="offline"?"网络已断开,联网后自动恢复":"正在恢复连接,当前结果和草稿已保留"})]}),(g||l&&r==="ready"&&!k(l))&&e.jsxs("div",{role:"alert",className:"mb-3 flex shrink-0 items-center gap-2 rounded-lg bg-destructive/10 p-3 text-xs text-destructive",children:[e.jsx("span",{className:"flex-1",children:g||l}),e.jsx("button",{type:"button","aria-label":"重新加载协作组",className:"min-h-11 px-3",onClick:()=>{c()},children:e.jsx(C,{size:14})})]}),f&&e.jsx("p",{role:"status",className:"mb-3 shrink-0 text-xs text-primary",children:f}),i?m?e.jsx(ee,{fullWorkspace:!0,initialView:V,active:!0,notice:f,groups:i.groups,sessions:i.sessions,agents:R,sessionsState:"loaded",selectedGroupId:A,setSelectedGroupId:M,initialGroupId:n,activeSessionId:u,initialDrafts:W,onDraftChange:y,docked:!1,inputKeySuffix:"main",floatingVisible:!0,floating:!1,onOpenSession:N,onOpenTaskSession:N,onDockMessages:u?async()=>{await te(n,u)}:void 0,defaultSessionMode:E,busy:z,setBusy:T,setError:D,setNotice:G,refresh:c}):e.jsx("p",{className:"py-10 text-center text-sm text-muted-foreground",children:"协作组已移除或暂不可用。任务记录仍保留在原服务中。"}):e.jsx("p",{role:"status",className:"py-10 text-center text-sm text-muted-foreground",children:"正在加载协作工作区…"})]})]})}export{Se as default};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`),null,null),[e]);return o.jsx("div",{className:"min-w-0 space-y-3 break-words text-sm leading-6 text-foreground [&_h1]:text-lg [&_h2]:text-base [&_h3]:text-sm [&_pre]:max-w-full [&_table]:text-xs",children:r.map((t,n)=>o.jsx("div",{className:"min-w-0",children:typeof t.content=="function"?t.content(null):t.content},n))})}export{
|
|
1
|
+
import{cc as o}from"./app-stNRNTO-.js";import{b as s}from"./dnd-BCFAPC0L.js";import{c as i}from"./MarkdownPreview-b_bwDNcY.js";import"./react-XDCjal2T.js";import"./terminal-Dea8wJF3.js";import"./use-gesture-react.esm-DYpdiE_k.js";import"./swiper-DJjq1TYT.js";import"./syntaxHighlight-Bgt0lmWx.js";import"./list-tree-DKTcSR9r.js";function w({content:e}){const r=s.useMemo(()=>i(e.split(`
|
|
2
|
+
`),null,null),[e]);return o.jsx("div",{className:"min-w-0 space-y-3 break-words text-sm leading-6 text-foreground [&_h1]:text-lg [&_h2]:text-base [&_h3]:text-sm [&_pre]:max-w-full [&_table]:text-xs",children:r.map((t,n)=>o.jsx("div",{className:"min-w-0",children:typeof t.content=="function"?t.content(null):t.content},n))})}export{w as default};
|