termdock 1.4.260 → 1.4.262
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/App-Cb_XllaU.js +156 -0
- package/dist/client/assets/App-Cb_XllaU.js.br +0 -0
- package/dist/client/assets/App-Cb_XllaU.js.gz +0 -0
- package/dist/client/assets/{ChangeWalkthroughPanel-C-WqvjtC.js → ChangeWalkthroughPanel-jX6d1ENn.js} +2 -2
- package/dist/client/assets/ChangeWalkthroughPanel-jX6d1ENn.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-jX6d1ENn.js.gz +0 -0
- package/dist/client/assets/{DagPlayground-BZDpEJGy.js → DagPlayground-TGM2t4Ye.js} +1 -1
- package/dist/client/assets/DagPlayground-TGM2t4Ye.js.br +0 -0
- package/dist/client/assets/DagPlayground-TGM2t4Ye.js.gz +0 -0
- package/dist/client/assets/{DiffLab-C3-p91uh.js → DiffLab-Cw8cAI4p.js} +2 -2
- package/dist/client/assets/DiffLab-Cw8cAI4p.js.br +0 -0
- package/dist/client/assets/DiffLab-Cw8cAI4p.js.gz +0 -0
- package/dist/client/assets/{DiffReview-CWhKgYZN.js → DiffReview-BpxhFZLY.js} +1 -1
- package/dist/client/assets/DiffReview-BpxhFZLY.js.br +0 -0
- package/dist/client/assets/DiffReview-BpxhFZLY.js.gz +0 -0
- package/dist/client/assets/{DiffReviewLab-DVwuJrVG.js → DiffReviewLab-CV_QO6UR.js} +1 -1
- package/dist/client/assets/DiffReviewLab-CV_QO6UR.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-CV_QO6UR.js.gz +0 -0
- package/dist/client/assets/DiffViewer-680KNh4c.js +36 -0
- package/dist/client/assets/DiffViewer-680KNh4c.js.br +0 -0
- package/dist/client/assets/DiffViewer-680KNh4c.js.gz +0 -0
- package/dist/client/assets/{ModelPreview-CB63ulOp.js → ModelPreview-CUlJCDwX.js} +1 -1
- package/dist/client/assets/ModelPreview-CUlJCDwX.js.br +0 -0
- package/dist/client/assets/ModelPreview-CUlJCDwX.js.gz +0 -0
- package/dist/client/assets/RightSidebar-ClSRXoi2.js +1678 -0
- package/dist/client/assets/RightSidebar-ClSRXoi2.js.br +0 -0
- package/dist/client/assets/RightSidebar-ClSRXoi2.js.gz +0 -0
- package/dist/client/assets/{abnfDiagram-VCTEODGH-DXqSSIIQ.js → abnfDiagram-VCTEODGH-BOd7FTr2.js} +1 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-BOd7FTr2.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-BOd7FTr2.js.gz +0 -0
- package/dist/client/assets/app-Bl11JYak.js +35 -0
- package/dist/client/assets/app-Bl11JYak.js.br +0 -0
- package/dist/client/assets/app-Bl11JYak.js.gz +0 -0
- package/dist/client/assets/{arc-DbWPugQ5.js → arc-BPAf1nZK.js} +1 -1
- package/dist/client/assets/arc-BPAf1nZK.js.br +0 -0
- package/dist/client/assets/arc-BPAf1nZK.js.gz +0 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-DMFOu5nX.js → architectureDiagram-5GKGNRK7-fQvzZnB9.js} +1 -1
- package/dist/client/assets/architectureDiagram-5GKGNRK7-fQvzZnB9.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-fQvzZnB9.js.gz +0 -0
- package/dist/client/assets/{blockDiagram-I7D4REHJ-CKLkxDEj.js → blockDiagram-I7D4REHJ-BwLMUrdi.js} +1 -1
- package/dist/client/assets/blockDiagram-I7D4REHJ-BwLMUrdi.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-BwLMUrdi.js.gz +0 -0
- package/dist/client/assets/{c4Diagram-7LVT6UL2-C78zNGxr.js → c4Diagram-7LVT6UL2-EoyhDhQx.js} +1 -1
- package/dist/client/assets/c4Diagram-7LVT6UL2-EoyhDhQx.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-EoyhDhQx.js.gz +0 -0
- package/dist/client/assets/channel-BUQABAmH.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B-uCAhVp1i.js → chunk-2Q5K7J3B-BV2VpCfF.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-T4xbmOTq.js → chunk-5VM5RSS4-BFiQW7Ta.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-ClPpIDx4.js → chunk-F27PBJKO-DqlURJFH.js} +1 -1
- package/dist/client/assets/chunk-F27PBJKO-DqlURJFH.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-DqlURJFH.js.gz +0 -0
- package/dist/client/assets/{chunk-IMKFNOWR-Bx2Jj2by.js → chunk-IMKFNOWR-BcM_EtAP.js} +1 -1
- package/dist/client/assets/chunk-IMKFNOWR-BcM_EtAP.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-BcM_EtAP.js.gz +0 -0
- package/dist/client/assets/{chunk-JWPE2WC7-CIVmiUX8.js → chunk-JWPE2WC7-B8NvVdil.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-DU6qR259.js → chunk-POPQ4Y6H-B5Vz70dF.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-zxsu_mRX.js → chunk-SVP7TREG-CVv3_3sI.js} +1 -1
- package/dist/client/assets/chunk-SVP7TREG-CVv3_3sI.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-CVv3_3sI.js.gz +0 -0
- package/dist/client/assets/{chunk-TICWLB2K-DfhkM5vB.js → chunk-TICWLB2K-Wpnx00aD.js} +1 -1
- package/dist/client/assets/chunk-TICWLB2K-Wpnx00aD.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-Wpnx00aD.js.gz +0 -0
- package/dist/client/assets/{chunk-XXDRQBXY-mPuTW6Qu.js → chunk-XXDRQBXY-aBQvQ4Ji.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-ZOMwbuDI.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-ZOMwbuDI.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-nFW6grC2.js → cose-bilkent-JH36ORCC-DWySu0Hm.js} +1 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-DWySu0Hm.js.br +0 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-nFW6grC2.js.gz → cose-bilkent-JH36ORCC-DWySu0Hm.js.gz} +0 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-WWNymBE7.js → cynefin-OW5HDTMX-BEUAB_wN.js} +1 -1
- package/dist/client/assets/cynefin-OW5HDTMX-BEUAB_wN.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-BEUAB_wN.js.gz +0 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-Cnu1881_.js → cynefinDiagram-5FMLGOSQ-CCfHefWz.js} +1 -1
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-CCfHefWz.js.br +0 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-Cnu1881_.js.gz → cynefinDiagram-5FMLGOSQ-CCfHefWz.js.gz} +0 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-ZnFSJ_PQ.js → dagre-GXQ25YYZ-CRPX2oo7.js} +1 -1
- package/dist/client/assets/dagre-GXQ25YYZ-CRPX2oo7.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-CRPX2oo7.js.gz +0 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-NDwa39k2.js → diagram-S7CK7UJ4-Pg--K2pK.js} +1 -1
- package/dist/client/assets/diagram-S7CK7UJ4-Pg--K2pK.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-Pg--K2pK.js.gz +0 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-GvOo_Md9.js → diagram-UQ7AKVKN-CzU1IUDD.js} +1 -1
- package/dist/client/assets/diagram-UQ7AKVKN-CzU1IUDD.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-CzU1IUDD.js.gz +0 -0
- package/dist/client/assets/{diagram-VSXAHHWV-D0tpjVaU.js → diagram-VSXAHHWV-D3ns7ZFW.js} +1 -1
- package/dist/client/assets/diagram-VSXAHHWV-D3ns7ZFW.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-D3ns7ZFW.js.gz +0 -0
- package/dist/client/assets/{diagram-VX7I27RA-CE8gl6ZC.js → diagram-VX7I27RA-0PzViCov.js} +1 -1
- package/dist/client/assets/diagram-VX7I27RA-0PzViCov.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-0PzViCov.js.gz +0 -0
- package/dist/client/assets/{diagram-Z3DM3KII-Dn9svAcp.js → diagram-Z3DM3KII-Cm6dBe6-.js} +1 -1
- package/dist/client/assets/diagram-Z3DM3KII-Cm6dBe6-.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-Cm6dBe6-.js.gz +0 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-BeIVOITU.js → ebnfDiagram-PWID7BFC-BxSW6eBA.js} +1 -1
- package/dist/client/assets/ebnfDiagram-PWID7BFC-BxSW6eBA.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-BxSW6eBA.js.gz +0 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-CYb2hJnW.js → erDiagram-RLTQ6QDP-DpWE-TjX.js} +1 -1
- package/dist/client/assets/{erDiagram-RLTQ6QDP-CYb2hJnW.js.br → erDiagram-RLTQ6QDP-DpWE-TjX.js.br} +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-DpWE-TjX.js.gz +0 -0
- package/dist/client/assets/{flowDiagram-HODETNUW-BrCWf4Jw.js → flowDiagram-HODETNUW-DYO0LUmp.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-DYO0LUmp.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-DYO0LUmp.js.gz +0 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-CaEV35iE.js → ganttDiagram-EL5Y4UJY-CIq6FHXs.js} +1 -1
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CIq6FHXs.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CIq6FHXs.js.gz +0 -0
- package/dist/client/assets/{gestureArbiter-CqdDGsl4.js → gestureArbiter-DPglmaJZ.js} +1 -1
- package/dist/client/assets/gestureArbiter-DPglmaJZ.js.br +0 -0
- package/dist/client/assets/gestureArbiter-DPglmaJZ.js.gz +0 -0
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-BSW6F8uE.js → gitGraphDiagram-WWUBYQGX-Ck5V0n5a.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-Ck5V0n5a.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-Ck5V0n5a.js.gz +0 -0
- package/dist/client/assets/{index-mZxreyvP.css → index-ddQQwU7M.css} +1 -1
- package/dist/client/assets/index-ddQQwU7M.css.br +0 -0
- package/dist/client/assets/index-ddQQwU7M.css.gz +0 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-DC9P1VSK.js → infoDiagram-27XIBGKW-DCWx_lXp.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-CC5aFdsA.js → ishikawaDiagram-5VMMS53U-Dri_MMmE.js} +1 -1
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-Dri_MMmE.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-Dri_MMmE.js.gz +0 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-2Aoz11wC.js → journeyDiagram-3NMN7TZE-BIBa8ZPU.js} +1 -1
- package/dist/client/assets/journeyDiagram-3NMN7TZE-BIBa8ZPU.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-BIBa8ZPU.js.gz +0 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-D6YFB_Z0.js → kanban-definition-UXKFOSKX-CVvCyGTR.js} +1 -1
- package/dist/client/assets/kanban-definition-UXKFOSKX-CVvCyGTR.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-CVvCyGTR.js.gz +0 -0
- package/dist/client/assets/{layout-Dd8_VbyA.js → layout-CePKkZZM.js} +1 -1
- package/dist/client/assets/layout-CePKkZZM.js.br +0 -0
- package/dist/client/assets/layout-CePKkZZM.js.gz +0 -0
- package/dist/client/assets/{linear-CJMS1SaH.js → linear-C2Jk6X94.js} +1 -1
- package/dist/client/assets/linear-C2Jk6X94.js.br +0 -0
- package/dist/client/assets/linear-C2Jk6X94.js.gz +0 -0
- package/dist/client/assets/{mermaid.core-D2G7U75v.js → mermaid.core-B0TLkbaQ.js} +5 -5
- package/dist/client/assets/mermaid.core-B0TLkbaQ.js.br +0 -0
- package/dist/client/assets/mermaid.core-B0TLkbaQ.js.gz +0 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-BMKObGIP.js → mindmap-definition-YA3MSWOX-BiqaDyAI.js} +1 -1
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BiqaDyAI.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BiqaDyAI.js.gz +0 -0
- package/dist/client/assets/{passwordBootstrap-Bq6gHj2O.js → passwordBootstrap-D8QzMobL.js} +2 -2
- package/dist/client/assets/passwordBootstrap-D8QzMobL.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-D8QzMobL.js.gz +0 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-DqLntL3k.js → pegDiagram-XKGWAZYB-mBmk-WA4.js} +1 -1
- package/dist/client/assets/pegDiagram-XKGWAZYB-mBmk-WA4.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-mBmk-WA4.js.gz +0 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-C-vUASJL.js → pieDiagram-E7YTZNPT-CNLgv2X-.js} +1 -1
- package/dist/client/assets/pieDiagram-E7YTZNPT-CNLgv2X-.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-CNLgv2X-.js.gz +0 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-BD5TrRYq.js → quadrantDiagram-AXDQQJYC-B6R_6sAT.js} +1 -1
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-B6R_6sAT.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-B6R_6sAT.js.gz +0 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-BwYnnmcE.js → railroadDiagram-O6MQD6OU-CMHZvyFR.js} +1 -1
- package/dist/client/assets/railroadDiagram-O6MQD6OU-CMHZvyFR.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-CMHZvyFR.js.gz +0 -0
- package/dist/client/assets/{referenceLongPress-DC0noWIU.js → referenceLongPress-BclZaogy.js} +1 -1
- package/dist/client/assets/referenceLongPress-BclZaogy.js.br +0 -0
- package/dist/client/assets/referenceLongPress-BclZaogy.js.gz +0 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-B0rZBE2S.js → requirementDiagram-BXWQKSXE-Chcr9JIV.js} +1 -1
- package/dist/client/assets/requirementDiagram-BXWQKSXE-Chcr9JIV.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-Chcr9JIV.js.gz +0 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-8xihEeEz.js → sankeyDiagram-P5KCCOFB-DgOdSJOh.js} +1 -1
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-DgOdSJOh.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-DgOdSJOh.js.gz +0 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-C7nrszfj.js → sequenceDiagram-WJ2MYXX4-CLgh_PNU.js} +1 -1
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-CLgh_PNU.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-CLgh_PNU.js.gz +0 -0
- package/dist/client/assets/{sizeCapture-INFHLROL-Cpbpxkib.js → sizeCapture-INFHLROL-C7Ai3zIt.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-C7Ai3zIt.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-C7Ai3zIt.js.gz +0 -0
- package/dist/client/assets/{sparkles-C6EB6xDX.js → sparkles-DikPE3OY.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-LLshgiUk.js → stateDiagram-D77RDMKH-BjzRCePZ.js} +1 -1
- package/dist/client/assets/stateDiagram-D77RDMKH-BjzRCePZ.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-BjzRCePZ.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-C9yeiSIs.js +1 -0
- package/dist/client/assets/{swimlanes-42K2YHIH-D5kogY3u.js → swimlanes-42K2YHIH-DfyuNxsB.js} +1 -1
- package/dist/client/assets/swimlanes-42K2YHIH-DfyuNxsB.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-DfyuNxsB.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-BFAodsZz.js +8 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-F4vFRXIm.js → timeline-definition-24CTP7MA-BvSf8YQs.js} +1 -1
- package/dist/client/assets/timeline-definition-24CTP7MA-BvSf8YQs.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-BvSf8YQs.js.gz +0 -0
- package/dist/client/assets/{triangle-alert-HOIUoGzB.js → triangle-alert-nWNzdjS5.js} +1 -1
- package/dist/client/assets/{vennDiagram-4TSXK5OY-C1W4mA7H.js → vennDiagram-4TSXK5OY-BPs48uzW.js} +1 -1
- package/dist/client/assets/{vennDiagram-4TSXK5OY-C1W4mA7H.js.br → vennDiagram-4TSXK5OY-BPs48uzW.js.br} +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-BPs48uzW.js.gz +0 -0
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-Bj-fiIIR.js → wardleyDiagram-VM6X3IG4-DSa8jkGg.js} +1 -1
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-DSa8jkGg.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-DSa8jkGg.js.gz +0 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-BBUrV_aE.js → xychartDiagram-S5SC5T6Z-C4Gb4X25.js} +1 -1
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-C4Gb4X25.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-C4Gb4X25.js.gz +0 -0
- package/dist/client/index.html +2 -2
- package/dist/client/index.html.br +0 -0
- package/dist/client/index.html.gz +0 -0
- package/dist/client/sw.js +1 -1
- package/dist/client/sw.js.br +0 -0
- package/dist/client/sw.js.gz +0 -0
- package/dist/server/cli.js +336 -99
- package/dist/server/entry.js +11 -0
- package/dist/server/routes/terminal.js +45 -0
- package/dist/server/supervisor.js +525 -0
- package/dist/server/utils/backoff.js +15 -0
- package/dist/server/utils/crashForensics.js +227 -0
- package/dist/server/utils/healthProbe.js +92 -0
- package/dist/server/utils/ptySpawnBackoff.js +2 -1
- package/dist/server/utils/serverHealth.js +126 -0
- package/dist/server/utils/serverLogger.js +27 -4
- package/dist/server/utils/supervisorClient.js +151 -0
- package/dist/server/utils/supervisorProtocol.js +159 -0
- package/dist/server/utils/termdockState.js +62 -0
- package/package.json +1 -1
- package/runtime-manifest.json +3 -3
- package/dist/client/assets/App-CZk_DziZ.js +0 -156
- package/dist/client/assets/App-CZk_DziZ.js.br +0 -0
- package/dist/client/assets/App-CZk_DziZ.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-C-WqvjtC.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-C-WqvjtC.js.gz +0 -0
- package/dist/client/assets/DagPlayground-BZDpEJGy.js.br +0 -0
- package/dist/client/assets/DagPlayground-BZDpEJGy.js.gz +0 -0
- package/dist/client/assets/DiffLab-C3-p91uh.js.br +0 -0
- package/dist/client/assets/DiffLab-C3-p91uh.js.gz +0 -0
- package/dist/client/assets/DiffReview-CWhKgYZN.js.br +0 -0
- package/dist/client/assets/DiffReview-CWhKgYZN.js.gz +0 -0
- package/dist/client/assets/DiffReviewLab-DVwuJrVG.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-DVwuJrVG.js.gz +0 -0
- package/dist/client/assets/DiffViewer-CVrIRwTf.js +0 -35
- package/dist/client/assets/DiffViewer-CVrIRwTf.js.br +0 -0
- package/dist/client/assets/DiffViewer-CVrIRwTf.js.gz +0 -0
- package/dist/client/assets/ModelPreview-CB63ulOp.js.br +0 -0
- package/dist/client/assets/ModelPreview-CB63ulOp.js.gz +0 -0
- package/dist/client/assets/RightSidebar-B9JmuyiA.js +0 -1678
- package/dist/client/assets/RightSidebar-B9JmuyiA.js.br +0 -0
- package/dist/client/assets/RightSidebar-B9JmuyiA.js.gz +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-DXqSSIIQ.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-DXqSSIIQ.js.gz +0 -0
- package/dist/client/assets/app-B32WWSws.js +0 -35
- package/dist/client/assets/app-B32WWSws.js.br +0 -0
- package/dist/client/assets/app-B32WWSws.js.gz +0 -0
- package/dist/client/assets/arc-DbWPugQ5.js.br +0 -0
- package/dist/client/assets/arc-DbWPugQ5.js.gz +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DMFOu5nX.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DMFOu5nX.js.gz +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-CKLkxDEj.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-CKLkxDEj.js.gz +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-C78zNGxr.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-C78zNGxr.js.gz +0 -0
- package/dist/client/assets/channel-Dv1JMWuX.js +0 -1
- package/dist/client/assets/chunk-F27PBJKO-ClPpIDx4.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-ClPpIDx4.js.gz +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-Bx2Jj2by.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-Bx2Jj2by.js.gz +0 -0
- package/dist/client/assets/chunk-SVP7TREG-zxsu_mRX.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-zxsu_mRX.js.gz +0 -0
- package/dist/client/assets/chunk-TICWLB2K-DfhkM5vB.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-DfhkM5vB.js.gz +0 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-BlTnvDlc.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BlTnvDlc.js +0 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-nFW6grC2.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-WWNymBE7.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-WWNymBE7.js.gz +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-Cnu1881_.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-ZnFSJ_PQ.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-ZnFSJ_PQ.js.gz +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-NDwa39k2.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-NDwa39k2.js.gz +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-GvOo_Md9.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-GvOo_Md9.js.gz +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-D0tpjVaU.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-D0tpjVaU.js.gz +0 -0
- package/dist/client/assets/diagram-VX7I27RA-CE8gl6ZC.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-CE8gl6ZC.js.gz +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-Dn9svAcp.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-Dn9svAcp.js.gz +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-BeIVOITU.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-BeIVOITU.js.gz +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-CYb2hJnW.js.gz +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-BrCWf4Jw.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-BrCWf4Jw.js.gz +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CaEV35iE.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CaEV35iE.js.gz +0 -0
- package/dist/client/assets/gestureArbiter-CqdDGsl4.js.br +0 -0
- package/dist/client/assets/gestureArbiter-CqdDGsl4.js.gz +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BSW6F8uE.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BSW6F8uE.js.gz +0 -0
- package/dist/client/assets/index-mZxreyvP.css.br +0 -0
- package/dist/client/assets/index-mZxreyvP.css.gz +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-CC5aFdsA.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-CC5aFdsA.js.gz +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-2Aoz11wC.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-2Aoz11wC.js.gz +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-D6YFB_Z0.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-D6YFB_Z0.js.gz +0 -0
- package/dist/client/assets/layout-Dd8_VbyA.js.br +0 -0
- package/dist/client/assets/layout-Dd8_VbyA.js.gz +0 -0
- package/dist/client/assets/linear-CJMS1SaH.js.br +0 -0
- package/dist/client/assets/linear-CJMS1SaH.js.gz +0 -0
- package/dist/client/assets/mermaid.core-D2G7U75v.js.br +0 -0
- package/dist/client/assets/mermaid.core-D2G7U75v.js.gz +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BMKObGIP.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BMKObGIP.js.gz +0 -0
- package/dist/client/assets/passwordBootstrap-Bq6gHj2O.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-Bq6gHj2O.js.gz +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-DqLntL3k.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-DqLntL3k.js.gz +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-C-vUASJL.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-C-vUASJL.js.gz +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BD5TrRYq.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BD5TrRYq.js.gz +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-BwYnnmcE.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-BwYnnmcE.js.gz +0 -0
- package/dist/client/assets/referenceLongPress-DC0noWIU.js.br +0 -0
- package/dist/client/assets/referenceLongPress-DC0noWIU.js.gz +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-B0rZBE2S.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-B0rZBE2S.js.gz +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-8xihEeEz.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-8xihEeEz.js.gz +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-C7nrszfj.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-C7nrszfj.js.gz +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-Cpbpxkib.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-Cpbpxkib.js.gz +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-LLshgiUk.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-LLshgiUk.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-rk1xljvU.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-D5kogY3u.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-D5kogY3u.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DsAFJkqm.js +0 -8
- package/dist/client/assets/timeline-definition-24CTP7MA-F4vFRXIm.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-F4vFRXIm.js.gz +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-C1W4mA7H.js.gz +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-Bj-fiIIR.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-Bj-fiIIR.js.gz +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-BBUrV_aE.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-BBUrV_aE.js.gz +0 -0
|
Binary file
|
|
Binary file
|
package/dist/client/assets/{ChangeWalkthroughPanel-C-WqvjtC.js → ChangeWalkthroughPanel-jX6d1ENn.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a4 as re,cH as ce,bd as s,d as le}from"./app-B32WWSws.js";import{b as D}from"./dnd-BCFAPC0L.js";import{S as de}from"./sparkles-C6EB6xDX.js";import{M as me,G as he,L as ue,T as xe,C as fe}from"./triangle-alert-HOIUoGzB.js";const pe=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],ye=re("chevron-left",pe);const ge=[["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"}]],be=re("minimize-2",ge);function ke(t,d){return(d?t.filter(o=>o.repoRoot===d):t).slice().sort((o,r)=>r.injectedAt-o.injectedAt)[0]??null}function ve(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 Ne(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:Ne(t),className:`${o} text-left transition hover:border-primary/35 hover:bg-primary/15 active:scale-[0.99]`,style:r,children:d})}const R=190,X=92,q=132,we=28,C=16,J=18,T=54,ee=24,ae=18,je=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 Me(t,d){return`${t.from}->${t.to}:${d}`}function Ee(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)*ae)}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)*ae);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 $e(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+je))});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(Ee(u.id,l,a),Math.ceil(i[u.id]??X));w.push({node:u,index:f,layer:n,row:j,x:C+n*(R+q),y:c,height:I}),c+=I+we})}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:Me(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)})}$e(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)*R+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 De(t){const d=t.fromNode.x+R+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 Ie(t){const d=t.fromNode.x+R+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 Pe({walkthroughs:t,repoRoot:d,onNavigate:i,fullscreen:o=!1,onToggleFullscreen:r}){const{t:g}=ce(),l=D.useId(),a=ke(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)),H=L.findIndex(e=>e.id===n),V=e=>{if(L.length===0)return;const y=H<0?e<0?L.length-1:0:Math.min(L.length-1,Math.max(0,H+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(de,{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:H===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(ye,{size:15})}),s.jsxs("span",{className:"min-w-8 text-center text-[10px] tabular-nums text-muted-foreground",children:[H<0?"—":H+1,"/",L.length]}),s.jsx("button",{type:"button",onClick:()=>V(1),disabled:H===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(be,{size:15}):s.jsx(me,{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(he,{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=De(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+R+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:_}=Ie(e),k=te(e.index),Z=I===e.key||!!U?.has(e.key),ie=!!((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:ie?.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(
|
|
1
|
+
import{a4 as re,cJ as ce,bf as s,d as le}from"./app-Bl11JYak.js";import{b as D}from"./dnd-BCFAPC0L.js";import{S as de}from"./sparkles-DikPE3OY.js";import{M as me,G as he,L as ue,T as xe,C as fe}from"./triangle-alert-nWNzdjS5.js";const pe=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],ye=re("chevron-left",pe);const ge=[["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"}]],be=re("minimize-2",ge);function ke(t,d){return(d?t.filter(o=>o.repoRoot===d):t).slice().sort((o,r)=>r.injectedAt-o.injectedAt)[0]??null}function ve(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 Ne(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 J({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:Ne(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,we=28,C=16,q=18,T=54,ee=24,ae=18,je=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 Me(t,d){return`${t.from}->${t.to}:${d}`}function Ee(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)*ae)}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)*ae);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 $e(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+je))});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(Ee(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+we})}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:Me(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)})}$e(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)*q,S=Math.max(...j.map(A=>A.y+A.height))+ee+(Math.floor(f/2)+1)*q;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 De(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 Ie(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 Pe({walkthroughs:t,repoRoot:d,onNavigate:i,fullscreen:o=!1,onToggleFullscreen:r}){const{t:g}=ce(),l=D.useId(),a=ke(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(de,{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(ye,{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(be,{size:15}):s.jsx(me,{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(he,{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=De(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:_}=Ie(e),k=te(e.index),Z=I===e.key||!!U?.has(e.key),ie=!!((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:ie?.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(J,{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 ${ve(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(ue,{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(J,{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(xe,{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(fe,{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{Pe as C,be as M};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{bf as t}from"./app-Bl11JYak.js";import{C as s}from"./ChangeWalkthroughPanel-jX6d1ENn.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";import"./sparkles-DikPE3OY.js";import"./triangle-alert-nWNzdjS5.js";const e="/tmp/termdock-dag-playground",i={version:1,id:"dag-playground",repoRoot:e,workspaceRoot:e,title:"改动解释升级为可点击导览",summary:"这是一页免登录 playground,用真实 ChangeWalkthroughPanel 调 DAG 的节点、边、label 和密度。",generatedBy:"dag-playground",injectedAt:Date.now(),highlights:[{what:"先看总览,再看链路",effect:"读者不用先进入 diff,也能理解整批改动目的。",tag:"理解"},{what:"多条链路直接画出来",effect:"分支、汇合、验证路径不再靠 next 文本猜。",tag:"链路"},{what:"点击节点跳回证据",effect:"导览和真实 diff 之间形成闭环。",tag:"导航"}],nodes:[{id:"export",title:"导出 section 级 diff",kind:"source",business:"CLI 把 hunk 拆成多个连续改动 section,并为每个 section 生成稳定 fingerprint。这里故意写长一点,用来验证 DAG 节点是否会按照真实文本高度撑开,而不是被固定高度裁掉。",anchor:{repoRoot:e,filePath:"src/server/cli.ts",hunkIndex:0,sectionIndex:0}},{id:"prompt",title:"约束 AI 输出",kind:"process",business:"提示词要求先写总览,再逐 section 生成解释。",anchor:{repoRoot:e,filePath:"src/lib/components/sidebar/RightSidebar.tsx",hunkIndex:0}},{id:"schema",title:"校验导览结构",kind:"process",business:"检查节点、边和锚点字段是否完整。",anchor:{repoRoot:e,filePath:"src/server/utils/changeAuditStore.ts",hunkIndex:0}},{id:"fallback",title:"补齐兼容字段",kind:"process",business:"旧版结果缺字段时生成稳定回退值。",anchor:{repoRoot:e,filePath:"src/server/utils/changeAuditStore.ts",hunkIndex:1}},{id:"store",title:"保存整批导览结构",kind:"process",business:"服务端把 walkthrough 作为一等数据持久化。",anchor:{repoRoot:e,filePath:"src/server/utils/changeAuditStore.ts",hunkIndex:0}},{id:"api",title:"前端读取总览",kind:"api",business:"一次请求拿到 records 和 walkthroughs。",anchor:{repoRoot:e,filePath:"src/lib/terminal/api.ts",hunkIndex:0}},{id:"panel",title:"渲染 DAG 导览",kind:"ui",business:"用节点和边表达实现链路,节点可点击。节点内容可能是一两句话,也可能包含较长的业务解释;布局需要先测量 DOM 高度,再重新计算每一行节点的 y 坐标和连线端点。",anchor:{repoRoot:e,filePath:"src/lib/components/sidebar/ChangeWalkthroughPanel.tsx",hunkIndex:0}},{id:"jump",title:"跳回真实 diff",kind:"ui",business:"点击节点后定位到文件、hunk 或 section。",anchor:{repoRoot:e,filePath:"src/lib/components/sidebar/RightSidebar.tsx",hunkIndex:1}},{id:"section",title:"贴近改动展示解释",kind:"ui",business:"section 解释跟在对应 diff 块后面,而不是堆在 hunk 顶部。这个节点也故意写得更长,用来观察右侧分支和下方验证节点的连线是否会避让变高后的卡片。",anchor:{repoRoot:e,filePath:"src/lib/components/sidebar/DiffViewer.tsx",hunkIndex:0,sectionIndex:1}},{id:"verify",title:"验证导出和注入",kind:"test",business:"跑 lint、install、health、资源检查和注入自测。"}],edges:[{from:"export",to:"prompt",label:"提供输入",desc:"sectionFingerprint 让 AI 可以稳定引用。"},{from:"export",to:"schema",label:"结构校验",desc:"先确认输入可以稳定落库。"},{from:"export",to:"fallback",label:"兼容旧数据",desc:"为历史记录补齐必要字段。"},{from:"prompt",to:"store",label:"注入",desc:"AI payload 写回本地服务。"},{from:"schema",to:"store",label:"通过后保存",desc:"合法结构进入存储层。"},{from:"fallback",to:"store",label:"归一化后保存",desc:"兼容数据与新数据走同一链路。"},{from:"store",to:"api",label:"读取",desc:"浏览器从服务端拿到导览。"},{from:"api",to:"panel",label:"渲染",desc:"结构化数据变成导览图。"},{from:"panel",to:"jump",label:"点击",desc:"节点驱动 diff 定位。"},{from:"jump",to:"section",label:"定位",desc:"落到对应 section 解释。"},{from:"export",to:"verify",label:"验证",desc:"导出结构要覆盖 tracked/untracked。"},{from:"section",to:"verify",label:"回归",desc:"确认展示位置和交互。"}],sections:[],risks:[{title:"边和 label 不能遮住节点主体。"},{title:"窄侧栏下横向滚动要可控。"}],checks:["在 360px、560px、900px 宽度下截图检查。","确认边的箭头、label 背板和节点层级清楚。","确认节点点击区域和 hover 状态可感知。"]};function p(){return t.jsx("div",{className:"min-h-screen bg-background p-5 text-foreground","data-dag-playground":!0,children:t.jsxs("div",{className:"mx-auto max-w-[72rem]",children:[t.jsxs("div",{className:"mb-3",children:[t.jsx("h1",{className:"text-sm font-semibold",children:"DAG Playground"}),t.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"Auth-free playground for tuning the real ChangeWalkthroughPanel."})]}),t.jsxs("div",{className:"grid gap-4 lg:grid-cols-[360px_minmax(0,1fr)]",children:[t.jsx("div",{className:"min-w-0",children:t.jsx(s,{walkthroughs:[i],repoRoot:e,onNavigate:o=>{console.info("[DagPlayground] navigate",o)}})}),t.jsx("div",{className:"min-w-0",children:t.jsx(s,{walkthroughs:[i],repoRoot:e,onNavigate:o=>{console.info("[DagPlayground] navigate",o)}})})]})]})})}export{p as DagPlayground};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{bf as e}from"./app-Bl11JYak.js";import{b as a}from"./dnd-BCFAPC0L.js";import{c as I,S as N,D as R}from"./DiffViewer-680KNh4c.js";import"./react-XDCjal2T.js";import"./terminal-C7X98Amf.js";import"./referenceLongPress-BclZaogy.js";const u={chineseParagraphExpansion:{label:"Chinese paragraph expansion (AGENTS.md)",path:"AGENTS.md",diff:"diff --git a/AGENTS.md b/AGENTS.md\n--- a/AGENTS.md\n+++ b/AGENTS.md\n@@ -51,3 +51,3 @@\n 5. 编辑任务不自动授权提交或发布。\n-6. 查看字节内部平台链接或页面时优先查找并使用 `bytedcli` 对应子命令获取结构化信息;仅在确认 `bytedcli` 不支持、受鉴权或能力限制,或无法取得具体信息后,才使用 AI Chrome / `agent-browser` 等浏览器方式补充,禁止一开始直接使用浏览器。\n+6. 查看或读取字节内部平台的数据、链接或页面时,先使用对应的结构化 CLI:飞书群聊、文档、Base、Minutes 等优先使用 `lark-cli`,其他内部平台先查找并使用 `bytedcli` 对应子命令。只有确认 CLI 不支持、受鉴权或能力限制,或无法取得具体信息后,才允许用 AI Chrome、`agent-browser`、Computer Use 或其他桌面 GUI 方式补充。用户说“读一下群消息”“看一下页面内容”等,默认是数据读取请求,不因为目标应用已经打开或登录就视为桌面操作请求;只有用户明确要求点击、输入、拖拽等可见界面操作时,才可直接使用 Computer Use。\n 7. 值班机 / DevBox 共享运维仓库例外。"},multilineRewrite:{label:"Multi-line alignment function rewrite",path:"DiffViewer.tsx",diff:`diff --git a/DiffViewer.tsx b/DiffViewer.tsx
|
|
2
2
|
--- a/DiffViewer.tsx
|
|
3
3
|
+++ b/DiffViewer.tsx
|
|
4
4
|
@@ -714,28 +714,14 @@
|
|
@@ -406,4 +406,4 @@ new file mode 100644
|
|
|
406
406
|
+++ b/Second.ts
|
|
407
407
|
@@ -0,0 +1,2 @@
|
|
408
408
|
+export const second = true;
|
|
409
|
-
+announce(second);`}};function
|
|
409
|
+
+announce(second);`}};function b(){if(typeof window>"u")return"kotlin";const r=new URLSearchParams(window.location.search).get("fixture");return r&&r in u?r:"kotlin"}function x(){return typeof window>"u"?"unified":new URLSearchParams(window.location.search).get("view")==="split"?"split":"unified"}function w(){if(typeof window>"u")return"words";const i=new URLSearchParams(window.location.search).get("inline");return i==="none"||i==="chars"||i==="words"?i:"words"}function v(){return typeof window>"u"?!0:new URLSearchParams(window.location.search).get("wrap")!=="off"}function F(){const[i,r]=a.useState(()=>b()),[d,c]=a.useState(()=>x()),[p,S]=a.useState(()=>I()),[f,m]=a.useState(()=>w()),[l,g]=a.useState(()=>v()),[h,y]=a.useState(null),s=u[i],k=a.useMemo(()=>Object.entries(u),[]),o=d==="split"&&!p?"unified":d;return a.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const t=window.matchMedia(N),n=()=>S(t.matches);return n(),t.addEventListener?.("change",n),()=>t.removeEventListener?.("change",n)},[]),a.useEffect(()=>{if(typeof window>"u")return;let t=window.location.search;const n=()=>{window.location.search!==t&&(t=window.location.search,r(b()),c(x()),m(w()),g(v()))};window.addEventListener("popstate",n),window.addEventListener("pageshow",n),window.addEventListener("focus",n);const C=window.setInterval(n,250);return()=>{window.removeEventListener("popstate",n),window.removeEventListener("pageshow",n),window.removeEventListener("focus",n),window.clearInterval(C)}},[]),e.jsx("div",{className:"min-h-screen bg-background-subtle text-foreground","data-diff-lab":!0,"data-diff-lab-fixture":i,"data-diff-lab-view":o,"data-diff-lab-requested-view":d,"data-diff-lab-inline":f,"data-diff-lab-wrap":l?"on":"off",children:e.jsxs("div",{className:"mx-auto flex min-h-screen max-w-[1180px] flex-col px-4 py-4",children:[e.jsxs("header",{className:"mb-3 flex flex-wrap items-center justify-between gap-3 border-b border-border/20 pb-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-semibold",children:"Diff Lab"}),e.jsx("div",{className:"mt-0.5 text-[11px] text-muted-foreground",children:"Fixed fixtures for iterating diff rendering without app auth, PWA state, or live Git data."})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("select",{value:i,onChange:t=>r(t.target.value),"aria-label":"Fixture",className:"h-8 rounded-md border border-border/30 bg-surface px-2 text-xs text-foreground outline-none",children:k.map(([t,n])=>e.jsx("option",{value:t,children:n.label},t))}),e.jsxs("div",{className:"inline-flex h-8 overflow-hidden rounded-full bg-surface-2 p-0.5",children:[e.jsx("button",{type:"button",onClick:()=>c("unified"),"aria-pressed":o==="unified",className:`rounded-full px-3 text-xs font-semibold ${o==="unified"?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:"Unified"}),e.jsx("button",{type:"button",onClick:()=>c("split"),disabled:!p,"aria-pressed":o==="split",className:`rounded-full px-3 text-xs font-semibold ${o==="split"?"bg-surface-elevated text-foreground":"text-muted-foreground"} disabled:cursor-not-allowed disabled:opacity-40`,children:"Split"})]}),e.jsx("div",{className:"inline-flex h-8 overflow-hidden rounded-full bg-surface-2 p-0.5",children:["none","words","chars"].map(t=>e.jsx("button",{type:"button",onClick:()=>m(t),className:`rounded-full px-3 text-xs font-semibold ${f===t?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:t},t))}),e.jsxs("button",{type:"button",onClick:()=>g(t=>!t),className:`h-8 rounded-full px-3 text-xs font-semibold ${l?"bg-primary/15 text-primary":"bg-surface-2 text-muted-foreground"}`,children:["Wrap ",l?"on":"off"]})]})]}),e.jsx("main",{className:"min-h-0 flex-1 overflow-auto rounded-lg border border-border/20 bg-surface",children:e.jsx(R,{onInsertDiffReference:(t,n)=>y({label:t,text:n}),filePath:s.path,repoRoot:"/tmp/termdock-diff-lab",changedFile:{path:s.path,absolutePath:`/tmp/termdock-diff-lab/${s.path}`,repoRoot:"/tmp/termdock-diff-lab",status:"modified",staged:!1,unstaged:!0,untracked:!1,tracked:!0,canStage:!1,canUnstage:!1,canStash:!1,canRestoreWorktree:!1},diffOverride:s.diff,oldSourceOverride:s.oldSource,active:!0,wrap:l,embedded:new URLSearchParams(window.location.search).get("embedded")==="1",viewType:o,inlineMode:f})}),e.jsxs("section",{className:"mt-3 rounded-lg border border-border/20 bg-surface p-3",children:[e.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-[0.12em] text-muted-foreground",children:"Inserted reference"}),e.jsx("div",{className:"mt-1 font-mono text-[11px] text-foreground","data-diff-lab-inserted-label":!0,children:h?.label??""}),e.jsx("pre",{className:"mt-1 max-h-64 overflow-auto whitespace-pre-wrap break-all rounded border border-border/20 bg-surface-2 p-2 font-mono text-[11px] text-foreground","data-diff-lab-inserted":!0,children:h?.text??""})]})]})})}export{u as DIFF_FIXTURES,F as DiffLab};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a4 as Qe,bd as r,d as ut,c as dt,cH as ft,cS as ht,ah as mt,a as pt,cR as xt,bv as gt,X as vt}from"./app-B32WWSws.js";import{b as o,r as Ye}from"./dnd-BCFAPC0L.js";import{h as Je,F as bt,b as yt,c as Xe}from"./gestureArbiter-CqdDGsl4.js";import{S as Ze}from"./sparkles-C6EB6xDX.js";import{D as wt,i as kt}from"./DiffViewer-CVrIRwTf.js";const Rt=[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]],jt=Qe("list-tree",Rt);const Nt=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],Mt=Qe("list",Nt);function et({selected:t,depth:n=0,title:i,leading:p,children:h,trailing:a,role:y,tabIndex:v,ariaExpanded:x,onClick:f,onKeyDown:b,onPointerDown:L,onPointerUp:M,onPointerCancel:C,dataAttributes:$}){return r.jsxs("div",{role:y,tabIndex:v,"aria-expanded":x,title:i,onClick:f,onKeyDown:b,onPointerDown:L,onPointerUp:M,onPointerCancel:C,...$,className:`group flex w-full cursor-pointer items-center gap-1 rounded px-2 py-1.5 text-left text-[13px] transition active:scale-[0.99] ${t?"bg-surface-elevated text-foreground":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,style:{paddingLeft:`${n*14+8}px`},children:[r.jsx("span",{className:"flex min-w-[14px] shrink-0 items-center justify-center text-muted-foreground/80",children:p}),r.jsx("span",{className:"min-w-0 flex-1",children:h}),a]})}function tt(t){return t.path.replace(/^\/+/,"")}function Tt(t){if(t.displayName!==void 0||t.displayDir!==void 0)return{name:t.displayName||t.path,dir:t.displayDir||""};const n=t.path.split("/").filter(Boolean);return{name:n.pop()||t.path,dir:n.join("/")}}function rt(t,n){const i=new Map,p=(a,y,v,x)=>{const f=a.get(y);if(f)return f;const b={path:v,name:y,childCount:0,directories:[],files:[]};return a.set(y,b),x?.directories.push(b),b};for(const a of t){const y=n(a).split("/").filter(Boolean);if(y.length<=1)continue;let v=i,x=null,f="";for(const b of y.slice(0,-1)){f=f?`${f}/${b}`:b;const L=p(v,b,f,x);x=L,v=new Map(L.directories.map(M=>[M.name,M]))}x?.files.push(a)}const h=a=>{const y=a.directories.map(h).sort((x,f)=>x.name.localeCompare(f.name)),v=a.files.sort((x,f)=>x.path.localeCompare(f.path));return{...a,directories:y,files:v,childCount:y.reduce((x,f)=>x+f.childCount,0)+v.length}};return Array.from(i.values()).map(h).sort((a,y)=>a.name.localeCompare(y.name))}function He(t,n,i=0){const p=n.selectedKey===t.key||n.selectedKey===t.path||n.selectedKey===t.absolutePath,h=Tt(t);return r.jsx(et,{selected:p,role:"button",tabIndex:0,title:t.title??t.absolutePath??t.path,onClick:()=>{Je()||n.onSelectFile(t)},onKeyDown:a=>{a.key!=="Enter"&&a.key!==" "||(a.preventDefault(),n.onSelectFile(t))},leading:n.renderLeading(t),depth:i,trailing:n.renderTrailing?.(t),dataAttributes:{"data-diff-selection-path":t.key,"data-diff-file-path":t.path,"data-diff-absolute-path":t.absolutePath??"","data-diff-status":t.status},children:r.jsxs("span",{className:"select-text","data-sidebar-selectable":!0,children:[r.jsx("span",{className:`block truncate leading-snug ${p?"font-medium":""}`,children:h.name}),n.mode!=="tree"&&h.dir&&r.jsx("span",{className:"block truncate text-[10px] text-muted-foreground/75",children:h.dir}),n.renderSubtitle?.(t)]})},t.key)}function nt(t,n,i,p,h){let a=t;const y=[t.name];for(;a.files.length===0&&a.directories.length===1;)a=a.directories[0],y.push(a.name);const v=y.join("/"),x=`${n}:${a.path}`,f=i.collapsedDirectoryKeys.has(x);return r.jsxs("div",{className:"space-y-px",children:[r.jsx(et,{role:"button",tabIndex:0,onClick:()=>{Je()||i.onToggleDirectory(x)},onKeyDown:b=>{b.key!=="Enter"&&b.key!==" "||(b.preventDefault(),i.onToggleDirectory(x))},ariaExpanded:!f,depth:p,title:a.path,leading:f?r.jsx(ut,{size:13}):r.jsx(dt,{size:13}),trailing:r.jsxs("span",{className:"flex shrink-0 items-center gap-1",children:[r.jsx("span",{className:"shrink-0 rounded bg-surface-2 px-1.5 py-0.5 text-[10px] text-muted-foreground/60 transition group-hover:text-muted-foreground",children:a.childCount}),i.renderDirectoryTrailing?.(a.path,h)]}),children:r.jsxs("span",{className:"flex min-w-0 items-center gap-1",children:[r.jsx(bt,{size:14,className:"shrink-0 text-[color:var(--folder)]"}),r.jsx("span",{className:"min-w-0 flex-1 truncate leading-snug select-text","data-sidebar-selectable":!0,children:v})]})}),!f&&r.jsxs("div",{className:"space-y-px",children:[a.directories.map(b=>nt(b,n,i,p+1,h)),a.files.length>0&&r.jsx("div",{className:"space-y-px",children:a.files.map(b=>He(b,i,p+1))})]})]},x)}function Dt(t,n){const i=n.getFileTreePath??tt,p=t.files.filter(a=>i(a).split("/").filter(Boolean).length<=1),h=rt(t.files,i);return r.jsxs("div",{className:"space-y-px",children:[h.map(a=>nt(a,t.key,n,0,t)),p.length>0&&r.jsx("div",{className:"space-y-px",children:p.map(a=>He(a,n))})]})}function St(t,n=tt){const i=[],p=a=>{for(const y of a.directories)p(y);i.push(...a.files)};for(const a of rt(t,n))p(a);const h=new Set(i.map(a=>a.key));return i.push(...t.filter(a=>!h.has(a.key))),i}function It(t){return r.jsx("div",{className:t.mode==="tree"?"space-y-px pt-1":"space-y-2",children:t.groups.map(n=>{const i=!!n.header,p=!!n.collapsed;return r.jsxs("section",{className:i?"overflow-hidden rounded-lg border border-border/15 bg-surface/60":"",children:[n.header,!p&&r.jsx("div",{className:t.mode==="tree"?i?"space-y-px bg-surface/60 p-1":"space-y-px":i?"space-y-px bg-surface/60 p-1.5":"space-y-px",children:t.mode==="tree"?Dt(n,t):n.files.map(h=>He(h,t))})]},n.key)})})}const Ee="termdock:diff-review:list-width:v1",Et=120,Le=320,Ke=220,Ct=560;function Ft(t){return typeof t=="number"&&Number.isFinite(t)}function Oe(t,n){const i=Math.max(Ke,n-360),p=Math.min(Ct,i);return Math.min(p,Math.max(Ke,t))}function _t(){return gt(Ee,Ft)??Le}function At({list:t,detail:n,mobile:i,mobileListHeader:p,mobileDetailHeader:h,desktopListHeader:a,backLabel:y,onMobileSlideChange:v,externalSwiperRef:x,desktopLayout:f="split",onDetailScroll:b,desktopSidePanel:L,desktopListClassName:M,detailOwnsScroll:C=!1}){const{t:$}=ft(),P=o.useRef(null),O=o.useRef(null),F=o.useRef(null),[V,q]=o.useState(_t);o.useEffect(()=>{if(i||f!=="split")return;const m=O.current;m&&q(j=>Oe(j,m.clientWidth))},[f,i]);const se=o.useCallback(m=>{i||f!=="split"||(m.preventDefault(),F.current={startX:m.clientX,startWidth:V,pointerId:m.pointerId},m.currentTarget.setPointerCapture(m.pointerId))},[f,V,i]),le=o.useCallback(m=>{const j=F.current;if(!j||j.pointerId!==m.pointerId)return;const T=O.current?.clientWidth??window.innerWidth,D=Oe(j.startWidth+m.clientX-j.startX,T);q(D),ht(Ee,D,Et)},[]),oe=o.useCallback(m=>{const j=F.current;if(!(!j||j.pointerId!==m.pointerId)){F.current=null,mt(Ee);try{m.currentTarget.releasePointerCapture(m.pointerId)}catch{}}},[]);if(i){const m=()=>{const w=P.current;w&&w.slideTo(1)},j=()=>{const w=P.current;w&&w.slideTo(0)},T=typeof t=="function"?t({slideToDetail:m}):t,D=typeof h=="function"?h({slideToList:j,slideToDetail:m}):h;return r.jsxs(yt,{className:"h-full min-h-0 w-full",slidesPerView:1,resistanceRatio:.45,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:".swiper-no-swiping",allowTouchMove:!1,touchAngle:75,touchStartPreventDefault:!1,onSwiper:w=>{P.current=w,x&&(x.current=w)},onSlideChange:w=>{v?.(w.activeIndex)},children:[r.jsx(Xe,{className:"h-full min-h-0",children:r.jsxs("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[p&&r.jsx("div",{className:"shrink-0 border-b border-border/15 px-3 py-2",children:p}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain",children:T})]})}),r.jsx(Xe,{className:"h-full min-h-0",children:r.jsxs("div",{className:"flex h-full min-h-0 flex-col overflow-hidden bg-surface",children:[r.jsx("div",{className:"shrink-0 border-b border-border/15 px-3 py-2",children:D??r.jsxs("button",{type:"button",onClick:j,className:"inline-flex h-9 shrink-0 items-center gap-1.5 rounded-full bg-surface-2 px-3 text-xs font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95",children:[r.jsx(pt,{size:14}),y]})}),r.jsx("div",{className:C?"min-h-0 flex-1 overflow-hidden":"termdock-diff-stream-scroller min-h-0 flex-1 overflow-y-auto overscroll-contain",onScroll:C?void 0:w=>b?.(w.currentTarget),children:n})]})})]})}const G=typeof t=="function"?t({slideToDetail:()=>{}}):t;return f==="stacked"?C?r.jsxs("div",{className:"termdock-native-select min-h-0 flex-1 overflow-hidden px-2 pb-[calc(env(safe-area-inset-bottom)+4.5rem)]",children:[a&&r.jsx("div",{className:"sticky top-0 z-10 border-b border-border/15 bg-surface px-2 py-2",children:a}),G,r.jsx("div",{className:"mt-3 h-[calc(100%-3rem)] min-h-0 overflow-hidden rounded-xl border border-border/15 bg-surface",children:n})]}):r.jsxs("div",{className:"termdock-native-select termdock-diff-stream-scroller min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 pb-[calc(env(safe-area-inset-bottom)+4.5rem)]",onScroll:m=>b?.(m.currentTarget),children:[a&&r.jsx("div",{className:"sticky top-0 z-10 border-b border-border/15 bg-surface px-2 py-2",children:a}),G,r.jsx("div",{className:"mt-3 overflow-hidden rounded-xl border border-border/15 bg-surface",children:n})]}):r.jsxs("div",{ref:O,className:"flex h-full min-h-0 overflow-hidden",children:[L,r.jsxs("div",{className:M??"shrink-0 overflow-y-auto overscroll-contain border-r border-border/15 bg-surface",style:{width:V},children:[a&&r.jsx("div",{className:"sticky top-0 z-10 border-b border-border/15 bg-surface px-2 py-2",children:a}),G]}),r.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":$("diffViewer.resizeNavigation"),title:$("diffViewer.resizeNavigation"),className:"group relative z-10 w-2 shrink-0 cursor-col-resize touch-none border-r border-border/15 bg-surface",onPointerDown:se,onPointerMove:le,onPointerUp:oe,onPointerCancel:oe,onDoubleClick:()=>{q(Le),xt(Ee,Le)},children:r.jsx("span",{className:"pointer-events-none absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-border/30 transition group-hover:bg-primary/60"})}),r.jsx("div",{className:C?"min-w-0 flex-1 overflow-hidden":"termdock-diff-stream-scroller min-w-0 flex-1 overflow-y-auto overscroll-contain",onScroll:C?void 0:m=>b?.(m.currentTarget),children:n})]})}function zt({mode:t,onModeChange:n,showAi:i=!1}){return r.jsxs("div",{className:"inline-flex h-7 shrink-0 overflow-hidden rounded-md bg-surface-2 p-0.5",children:[r.jsx("button",{type:"button",onClick:()=>n("list"),"aria-pressed":t==="list",className:`inline-flex h-6 w-7 items-center justify-center rounded-md transition active:scale-95 ${t==="list"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:r.jsx(Mt,{size:13})}),r.jsx("button",{type:"button",onClick:()=>n("tree"),"aria-pressed":t==="tree",className:`inline-flex h-6 w-7 items-center justify-center rounded-md transition active:scale-95 ${t==="tree"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:r.jsx(jt,{size:13})}),i&&r.jsx("button",{type:"button",onClick:()=>n("ai"),"aria-pressed":t==="ai",className:`inline-flex h-6 w-7 items-center justify-center rounded-md transition active:scale-95 ${t==="ai"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:r.jsx(Ze,{size:13})})]})}function Lt({groups:t,mode:n,onModeChange:i,selectedKey:p,collapsedDirectoryKeys:h,onToggleDirectory:a,onSelectFile:y,renderLeading:v,renderTrailing:x,renderDirectoryTrailing:f,renderSubtitle:b,detail:L,mobile:M,backLabel:C,compact:$=!1,emptyContent:P,listPrefix:O,aiContent:F,listContainerClassName:V="px-2 py-2",detailContainerClassName:q="termdock-native-select termdock-diff-stream-scroller min-h-0",renderListHeader:se,renderMobileDetailHeader:le,externalSwiperRef:oe,onMobileSlideChange:G,slideToDetailOnMobile:m=!0,desktopLayout:j="split",onDetailScroll:T,desktopSidePanel:D,desktopListClassName:w,detailOwnsScroll:J}){const[X,ce]=o.useState(!1);o.useEffect(()=>{if(!X)return;const E=H=>{H.key==="Escape"&&ce(!1)};return document.addEventListener("keydown",E),()=>document.removeEventListener("keydown",E)},[X]);const me=r.jsx(zt,{mode:n,onModeChange:i,showAi:!!F}),pe=n==="tree"?"tree":"list",Z=se?se(me):r.jsx("div",{className:"flex justify-end",children:me}),ee=t.some(E=>E.files.length>0),te=r.jsx(At,{mobile:X?!1:M,backLabel:C,externalSwiperRef:oe,onMobileSlideChange:G,desktopLayout:X?"split":j,onDetailScroll:T,desktopSidePanel:D,desktopListClassName:w,detailOwnsScroll:J,mobileListHeader:M?Z:void 0,desktopListHeader:M?void 0:Z,mobileDetailHeader:le,list:({slideToDetail:E})=>r.jsx("div",{className:V,children:n==="ai"?typeof F=="function"?F({slideToDetail:E,fullscreen:X,toggleFullscreen:()=>ce(H=>!H)}):F??P:r.jsxs(r.Fragment,{children:[O,ee?r.jsx(It,{groups:t,selectedKey:p,mode:pe,mobile:M,compact:$,collapsedDirectoryKeys:h,onToggleDirectory:a,onSelectFile:H=>{y(H),M&&m&&window.requestAnimationFrame(E)},renderLeading:v,renderTrailing:x,renderDirectoryTrailing:f,renderSubtitle:b}):P]})}),detail:r.jsx("div",{className:J?"h-full min-h-0":q,children:L})});return!X||typeof document>"u"?te:Ye.createPortal(r.jsxs("div",{className:"fixed inset-0 z-modal-panel flex min-h-0 flex-col bg-surface text-foreground",children:[r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b border-border/15 bg-[var(--chrome-bg)] px-3",children:[r.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[r.jsx(Ze,{size:15,className:"shrink-0 text-primary"}),r.jsx("span",{className:"truncate text-[12px] font-semibold",children:"DAG Review"}),r.jsx("span",{className:"hidden text-[10px] text-muted-foreground sm:inline",children:"Select a step to inspect its exact change"})]}),r.jsx("button",{type:"button",onClick:()=>ce(!1),className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95",title:"Exit full-screen DAG review (Esc)","aria-label":"Exit full-screen DAG review",children:r.jsx(vt,{size:16})})]}),r.jsx("div",{className:"min-h-0 flex-1",children:te})]}),document.body)}const Ht=96,Ae=44;function Pt({file:t,repoRoot:n,selectionPath:i,displayName:p,displayDir:h,selected:a,activePane:y,visible:v,reusableContent:x=!1,estimatedHeight:f,lightweight:b=!1,wrap:L,viewType:M,inlineMode:C,diffOptions:$,reloadKey:P=0,auditRecords:O,diffOverride:F,preparedDiff:V,renderBadge:q,onInsertDiffReference:se,onHunkGitAction:le,onReferenceCopied:oe,insertedReferenceKey:G,copiedReferenceKey:m,onClearAuditRecord:j,onContentReady:T,onHeightChange:D}){const w=o.useRef(null),J=o.useRef(null),X=o.useRef(null),[ce,me]=o.useState(null),pe=o.useRef(64),Z=o.useRef(f??104),ee=o.useRef(null),te=o.useRef(null),E=o.useRef(!1),H=o.useRef(!1),z=o.useRef(null),[K,ue]=o.useState(!1),[ke,Te]=o.useState(!1),Re=t.absolutePath||(n?`${n}/${t.path}`:t.path),ie=o.useCallback(()=>{H.current||(H.current=!0,Te(!0),T?.(i))},[T,i]);o.useLayoutEffect(()=>(E.current=!1,H.current=!1,ee.current=null,te.current=null,z.current!==null&&(window.clearTimeout(z.current),z.current=null),ue(!1),Te(!1),()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)}),[F,V,P,x,v]),o.useLayoutEffect(()=>{const I=ee.current;!K||I===null||Math.abs((f??104)-I)>=1||(ee.current=null,ie())},[ie,f,K]),o.useLayoutEffect(()=>{if(!v||!K)return;const I=X.current;if(!I)return;const je=()=>{if(!E.current)return;const xe=I.firstElementChild;if(!xe)return;const W=Math.ceil(Math.max(xe.getBoundingClientRect().height,xe.scrollHeight,64)),fe=pe.current;if(W>0&&fe!==W&&(pe.current=W,me(W)),!w.current)return;const U=J.current?.getBoundingClientRect().height??Ae,S=Math.ceil(U+W+1);S<=0||te.current===S||(te.current=S,z.current!==null&&window.clearTimeout(z.current),z.current=window.setTimeout(()=>{if(z.current=null,!E.current)return;const A=te.current;if(A===null)return;const ae=Z.current;if(H.current){Z.current=A,Math.abs(ae-A)>=1&&D?.(i,ae,A),T?.(i);return}if(ee.current=A,Math.abs(ae-A)<1||!D){Z.current=A,ee.current=null,ie();return}Z.current=A,D(i,ae,A)},Ht))};if(je(),typeof ResizeObserver>"u")return;const de=new ResizeObserver(je);return de.observe(I),I.firstElementChild&&de.observe(I.firstElementChild),J.current&&de.observe(J.current),()=>de.disconnect()},[ie,T,D,i,K,v,L,M,C]);const _=v&&!ke;return r.jsxs("div",{ref:w,"data-diff-stream-item":i,"data-diff-selection-path":i,"data-diff-file-path":t.path,"data-diff-absolute-path":Re,className:`scroll-mt-3 border-b border-border/15 last:border-b-0 ${_||!v?"overflow-hidden":""} ${a?"bg-surface-elevated/35":""}`,style:v?_?{height:f??104}:void 0:{height:f??104},children:[r.jsxs("div",{ref:J,"data-diff-stream-header":!0,className:`sticky top-0 z-10 flex min-w-0 items-center gap-2 border-b border-border/15 px-3 py-2 backdrop-blur ${a?"bg-surface-elevated/95":"bg-surface/95"}`,children:[q(t.status),r.jsxs("div",{className:"min-w-0 flex-1",title:Re,children:[r.jsx("div",{className:"truncate text-xs font-semibold text-foreground",children:p}),h&&r.jsx("div",{className:"truncate text-[10px] text-muted-foreground",children:h})]})]}),r.jsxs("div",{ref:X,className:"relative","data-diff-stream-body":!0,style:v?{minHeight:ke?64:Math.max(ce??64,(f??104)-Ae)}:{height:Math.max(ce??64,(f??104)-Ae)},children:[v?r.jsx(wt,{active:y,repoRoot:n,filePath:t.path,referenceFilePath:Re,changedFile:t,wrap:L,viewType:M,inlineMode:C,diffOptions:$,reloadKey:P,embedded:!0,lightweight:b,auditRecords:O,diffOverride:F,preparedDiff:V,onClearAuditRecord:j,onContentReady:()=>{if(x){E.current=!0,ue(!0),ie();return}E.current||(E.current=!0,ue(!0))},onInsertDiffReference:se,onHunkGitAction:le,onReferenceCopied:oe,insertedReferenceKey:G,copiedReferenceKey:m}):r.jsx("div",{className:"flex h-full min-h-16 items-center justify-center bg-surface px-3 py-4 text-center text-xs text-muted-foreground",children:t.path}),v&&K&&!ke&&r.jsx("div",{"data-diff-measuring-overlay":!0,className:"absolute inset-0 z-20 bg-surface"})]})]})}const qe=8,ze=1600,Ue=104,Wt=1e3,we=new Map;function Bt(t,n){for(we.delete(t),we.set(t,n);we.size>Wt;){const i=we.keys().next().value;if(i===void 0)break;we.delete(i)}}function $t(t,n){return!!(t&&t.diffOverride===n.diffOverride&&t.reloadKey===n.reloadKey&&t.wrap===n.wrap&&t.viewType===n.viewType&&t.inlineMode===n.inlineMode&&t.algorithm===n.algorithm&&t.whitespace===n.whitespace&&t.context===n.context)}const Vt={added:{label:"A",className:"text-[color:var(--diff-insert-strong)]",title:"Added"},modified:{label:"M",className:"text-[color:var(--diff-hunk-accent)]",title:"Modified"},deleted:{label:"D",className:"text-[color:var(--diff-delete-strong)]",title:"Deleted"},renamed:{label:"R",className:"text-muted-foreground",title:"Renamed"},copied:{label:"C",className:"text-[color:var(--diff-insert-strong)]",title:"Copied"},untracked:{label:"U",className:"text-[color:var(--diff-insert-strong)]",title:"Untracked (new file)"},conflicted:{label:"!",className:"text-destructive",title:"Conflicted"},unknown:{label:"?",className:"text-muted-foreground",title:"Unknown"}};function Yt({status:t}){const n=Vt[t]??{label:"?",className:"text-muted-foreground",title:t};return r.jsx("span",{className:`w-4 shrink-0 text-center text-[10px] font-mono font-bold ${n.className}`,title:n.title,children:n.label})}function Jt(t,n){return n?{key:n,nonce:t.nonce+1}:t}function Zt({files:t,groups:n,selectedKey:i,onSelectFile:p,mode:h,onModeChange:a,collapsedDirectoryKeys:y,onToggleDirectory:v,renderLeading:x,renderTrailing:f,renderDirectoryTrailing:b,renderSubtitle:L,renderStreamBadge:M,onInsertDiffReference:C,onHunkGitAction:$,onReferenceCopied:P,insertedReferenceKey:O,copiedReferenceKey:F,onClearAuditRecord:V,mobile:q,backLabel:se,compact:le,desktopLayout:oe,wrap:G,diffViewType:m,inlineMode:j,diffOptions:T,activePane:D,reloadKey:w=0,renderListHeader:J,renderMobileDetailHeader:X,emptyContent:ce,listPrefix:me,aiContent:pe,listContainerClassName:Z,detailContainerClassName:ee,desktopSidePanel:te,desktopListClassName:E,onDetailScroll:H,initialDetailScrollTop:z,scrollToKey:K,scrollToKeyNonce:ue=0,externalSwiperRef:ke,onMobileSlideChange:Te,slideToDetailOnMobile:Re}){const ie=o.useMemo(()=>e=>i===e.key||i===e.path||i===e.absolutePath,[i]),_=o.useMemo(()=>{const e=new Map;for(const c of t)e.set(c.key,c),c.path&&e.set(c.path,c),c.absolutePath&&e.set(c.absolutePath,c);const s=[],l=new Set;for(const c of n){const d=h==="tree"?St(c.files):c.files;for(const g of d){const u=e.get(g.key);!u||l.has(u.key)||(s.push(u),l.add(u.key))}}for(const c of t)l.has(c.key)||s.push(c);return s},[t,n,h]),I=o.useRef(null),je=o.useRef(null),de=o.useRef(null),xe=o.useRef(w),W=o.useRef(0),fe=o.useRef(null),ge=o.useRef(new Map(we)),U=o.useRef({key:null,top:0}),S=o.useRef(new Set),A=o.useRef(new Map),ae=o.useRef(new Map),B=o.useRef(null),Pe=o.useRef(()=>{}),Ne=o.useRef([]),he=o.useRef(new Map),We=o.useRef({tops:[],heights:[],bottom:0}),[De,st]=o.useState(()=>new Set),[ot,ct]=o.useState(0),[Q,ve]=o.useState({top:0,height:0}),Se=o.useMemo(()=>_.map(e=>e.key),[_]),Ie=Se.join("");ae.current=new Map(_.map(e=>[e.key,{diffOverride:e.diffOverride,reloadKey:w,wrap:G,viewType:m,inlineMode:j,algorithm:T?.algorithm,whitespace:T?.whitespace,context:T?.context}])),Ne.current=Se,he.current=new Map(Se.map((e,s)=>[e,s]));const k=o.useMemo(()=>{const e=Se.map(c=>ge.current.get(c)??Ue),s=new Array(e.length);for(let c=0;c<e.length;c+=1)s[c]=c===0?0:s[c-1]+e[c-1];const l=e.length>0?s[e.length-1]+e[e.length-1]:0;return{tops:s,heights:e,bottom:l}},[ot,Ie]);We.current=k;const re=o.useMemo(()=>K?_.find(e=>K===e.key||K===e.path||K===e.absolutePath)?.key??null:null,[_,K]),Ce=o.useMemo(()=>i?_.find(e=>i===e.key||i===e.path||i===e.absolutePath)?.key??null:null,[_,i]),Me=o.useMemo(()=>{const e=k.tops.length;if(e===0)return-1;let s=0,l=e;for(;s<l;){const c=Math.floor((s+l)/2);k.tops[c]<=Q.top+1?s=c+1:l=c}return Math.min(e-1,Math.max(0,s-1))},[k.tops,Q.top]),ne=o.useCallback(e=>{S.current=e,st(e)},[]),Be=o.useMemo(()=>{const e=Q.top-ze,s=Q.top+Q.height+ze,l=new Set;let c=0,d=k.tops.length;for(;c<d;){const u=Math.floor((c+d)/2);k.tops[u]<=e?c=u+1:d=u}const g=Math.max(0,c-1);for(let u=g;u<k.tops.length;u+=1){const R=k.tops[u];if(R>s)break;R+k.heights[u]>=e&&R<=s&&l.add(u)}for(let u=Me-1;u<=Me+1;u+=1)u>=0&&u<k.tops.length&&l.add(u);for(const u of De){const R=he.current.get(u);R!==void 0&&l.add(R)}return Array.from(l).sort((u,R)=>u-R)},[k,Q,De,Me]),Fe=o.useCallback(()=>{if(!D||B.current)return;const e=Ne.current;if(e.length===0)return;const s=U.current.key,l=Math.min(e.length-1,(s!==null?he.current.get(s):void 0)??Math.max(0,Me)),c=u=>Math.abs((he.current.get(u)??0)-l),d=[];S.current.has(e[l])||d.push(e[l]);for(let u=1;u<=qe;u+=1){const R=l+u,N=l-u;R<e.length&&!S.current.has(e[R])&&d.push(e[R]),N>=0&&!S.current.has(e[N])&&d.push(e[N])}const g=d[0];if(g){if(S.current.size>=qe){const u=c(g),R=Array.from(S.current).filter(Y=>Y!==B.current).sort((Y,ye)=>c(ye)-c(Y))[0];if(!R||c(R)<=u)return;const N=new Set(S.current);N.delete(R),ne(N)}B.current=g,ne(new Set(S.current).add(g))}},[D,ne,Me]);Pe.current=Fe;const be=o.useCallback(e=>{if(S.current.has(e))return;const s=B.current;if(s&&s!==e){const l=new Set(S.current);l.delete(s),ne(l),B.current=null}B.current=e,ne(new Set(S.current).add(e))},[ne]),$e=o.useCallback(e=>{if(!S.current.has(e))return;const s=ae.current.get(e);s&&A.current.set(e,s),B.current===e&&(B.current=null),window.requestAnimationFrame(()=>Pe.current())},[]),Ve=o.useCallback((e,s,l)=>{if(Math.abs(l-s)<1)return;const c=ge.current.get(e);c!==void 0&&Math.abs(c-l)<1||(ge.current.set(e,l),Bt(e,l),ct(d=>d+1))},[]);o.useLayoutEffect(()=>{if(xe.current!==w){xe.current=w;for(const e of _){if(e.diffOverride!==void 0)continue;const s=Xt(e.path,e.repoRoot);kt(s,e.repoRoot??void 0,T)}}},[_,T,w]),o.useLayoutEffect(()=>{const e=I.current;if(!e)return;const s=()=>{const c=Math.max(0,Math.ceil(e.clientHeight));if(c===0)return;const d=e.scrollTop;ve(g=>g.height===c&&g.top===d?g:{top:d,height:c})};if(s(),typeof ResizeObserver>"u")return;const l=new ResizeObserver(s);return l.observe(e),()=>l.disconnect()},[q]),o.useEffect(()=>{D&&Ce&&be(Ce)},[D,be,Ce]),o.useEffect(()=>{const e=new Set(Ne.current);for(const s of Array.from(ge.current.keys()))e.has(s)||ge.current.delete(s);for(const s of Array.from(S.current))if(!e.has(s)){const l=new Set(S.current);l.delete(s),ne(l)}for(const s of Array.from(A.current.keys()))e.has(s)||A.current.delete(s);if(B.current&&!e.has(B.current)&&(B.current=null),_.length===0){B.current=null,A.current.clear(),ne(new Set);return}Fe()},[_.length,Ie,Fe,Be,ne]);const Ge=o.useCallback(e=>{I.current=e;const s=W.current,l=e.scrollTop;W.current=l;const c=d=>{const g=We.current,u=Ne.current;let R=0,N=g.tops.length;for(;R<N;){const _e=Math.floor((R+N)/2);g.tops[_e]<=d+1?R=_e+1:N=_e}const Y=Math.min(u.length-1,Math.max(0,R-1)),ye=u[Y]??null;U.current={key:ye,top:g.tops[Y]??0},ye&&be(ye)};Math.abs(l-s)>=ze?(Ye.flushSync(()=>{ve({top:l,height:e.clientHeight})}),c(l)):fe.current===null&&(fe.current=window.requestAnimationFrame(()=>{fe.current=null;const d=I.current;if(d){const g=d.scrollTop;ve({top:g,height:d.clientHeight}),c(g)}})),H?.(e)},[H,be]);o.useEffect(()=>()=>{fe.current!==null&&window.cancelAnimationFrame(fe.current)},[]),o.useLayoutEffect(()=>{const e=I.current;if(!e)return;const s=U.current;if(s.key===null)return;const l=he.current.get(s.key);if(l===void 0)return;const c=(k.tops[l]??s.top)-s.top;if(Math.abs(c)<1)return;const d=e.scrollTop+c;W.current=d,ve(g=>({top:d,height:g.height})),typeof e.scrollTo=="function"?e.scrollTo({top:d,behavior:"instant"}):e.scrollTop=d},[k]),o.useLayoutEffect(()=>{const e=Ne.current,s=k.tops;if(e.length===0){U.current={key:null,top:0};return}const l=W.current,c=l+(I.current?.clientHeight??Q.height),d=U.current;if(d.key!==null){const N=he.current.get(d.key);if(N!==void 0){const Y=s[N]??0;if(Y+(k.heights[N]??Ue)>l&&Y<c){U.current={key:d.key,top:Y};return}}}let g=0,u=s.length;for(;g<u;){const N=Math.floor((g+u)/2);s[N]<=l+1?g=N+1:u=N}const R=Math.min(s.length-1,Math.max(0,g-1));U.current={key:e[R]??null,top:s[R]??0}}),o.useLayoutEffect(()=>{if(!re)return;const e=je.current;if(e?.key===re&&e.nonce===ue)return;const s=he.current.get(re);if(s===void 0)return;be(re),U.current={key:re,top:k.tops[s]??0};const l=I.current;if(!l||l.clientHeight===0||Q.height!==l.clientHeight)return;je.current={key:re,nonce:ue};const c=k.tops[s]??0;typeof l.scrollTo=="function"?l.scrollTo({top:c,behavior:"instant"}):l.scrollTop=c;const d=l.scrollTop;W.current=d,ve({top:d,height:l.clientHeight})},[k,Q.height,be,re,ue]),o.useLayoutEffect(()=>{if(z===void 0||re)return;const e=Ie;if(de.current===e)return;const s=I.current;if(!s)return;de.current=e;const l=Math.max(0,k.bottom-s.clientHeight),c=Math.min(Math.max(0,z),l);typeof s.scrollTo=="function"?s.scrollTo({top:c,behavior:"instant"}):s.scrollTop=c;const d=s.scrollTop;W.current=d,ve({top:d,height:s.clientHeight})},[k.bottom,z,Ie,re]);const it=o.useCallback((e,s)=>{const l=ie(e),c=ae.current.get(e.key),d=c!==void 0&&$t(A.current.get(e.key),c);return r.jsx(Pt,{file:Gt(e),repoRoot:e.repoRoot,selectionPath:e.key,displayName:e.displayName,displayDir:e.displayDir,selected:l,activePane:D,visible:De.has(e.key),reusableContent:d,estimatedHeight:s,lightweight:!1,wrap:G,viewType:m,inlineMode:j,diffOptions:T,reloadKey:w,auditRecords:e.auditRecords,diffOverride:e.diffOverride,renderBadge:g=>M(g,e),onInsertDiffReference:e.onInsertDiffReference??C,onHunkGitAction:e.onHunkGitAction??$,onReferenceCopied:P,insertedReferenceKey:O,copiedReferenceKey:F,onClearAuditRecord:V,onContentReady:$e,onHeightChange:Ve})},[D,F,T,m,$e,Ve,j,O,ie,De,V,$,C,P,w,M,G]),at=r.jsx("div",{"data-diff-stream-content":!0,"data-diff-stream-canvas":!0,className:"termdock-diff-stream relative overflow-clip bg-surface will-change-transform",style:{height:Math.max(k.bottom,(k.tops.at(-1)??0)+Q.height)},children:Be.map(e=>{const s=_[e];return s?r.jsx("div",{"data-diff-canvas-slot":s.key,className:"absolute inset-x-0",style:{top:k.tops[e]},children:it(s,k.heights[e])},s.key):null})}),lt=r.jsx("div",{ref:I,className:"termdock-diff-stream termdock-diff-stream-scroller h-full max-h-full min-h-0 overflow-y-auto overscroll-contain bg-surface [overflow-anchor:none]",onScroll:e=>Ge(e.currentTarget),children:at});return r.jsx(Lt,{groups:n,mode:h,onModeChange:a,selectedKey:i,collapsedDirectoryKeys:y,onToggleDirectory:v,onSelectFile:p,renderLeading:x,renderTrailing:f,renderDirectoryTrailing:b,renderSubtitle:L,detail:lt,mobile:q,backLabel:se,compact:le,emptyContent:ce,listPrefix:me,aiContent:pe,listContainerClassName:Z,detailContainerClassName:ee,renderListHeader:J,renderMobileDetailHeader:X,externalSwiperRef:ke,onMobileSlideChange:Te,slideToDetailOnMobile:Re,desktopLayout:oe,onDetailScroll:Ge,desktopSidePanel:te,desktopListClassName:E,detailOwnsScroll:!0})}function Gt(t){return{path:t.path,absolutePath:t.absolutePath,status:t.status}}function Xt(t,n){if(t)return n&&t.startsWith(`${n}/`)?t.slice(n.length+1):t}export{Yt as C,Zt as D,jt as L,St as f,Jt as n};
|
|
1
|
+
import{a4 as Qe,bf as r,d as ut,c as dt,cJ as ft,cU as ht,ai as mt,a as pt,cT as xt,bx as gt,X as bt}from"./app-Bl11JYak.js";import{b as o,r as Ye}from"./dnd-BCFAPC0L.js";import{h as Je,F as vt,b as yt,c as Xe}from"./gestureArbiter-DPglmaJZ.js";import{S as Ze}from"./sparkles-DikPE3OY.js";import{D as wt,i as kt}from"./DiffViewer-680KNh4c.js";const Rt=[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]],jt=Qe("list-tree",Rt);const Nt=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],Mt=Qe("list",Nt);function et({selected:t,depth:n=0,title:i,leading:p,children:h,trailing:a,role:y,tabIndex:b,ariaExpanded:x,onClick:f,onKeyDown:v,onPointerDown:L,onPointerUp:M,onPointerCancel:C,dataAttributes:$}){return r.jsxs("div",{role:y,tabIndex:b,"aria-expanded":x,title:i,onClick:f,onKeyDown:v,onPointerDown:L,onPointerUp:M,onPointerCancel:C,...$,className:`group flex w-full cursor-pointer items-center gap-1 rounded px-2 py-1.5 text-left text-[13px] transition active:scale-[0.99] ${t?"bg-surface-elevated text-foreground":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,style:{paddingLeft:`${n*14+8}px`},children:[r.jsx("span",{className:"flex min-w-[14px] shrink-0 items-center justify-center text-muted-foreground/80",children:p}),r.jsx("span",{className:"min-w-0 flex-1",children:h}),a]})}function tt(t){return t.path.replace(/^\/+/,"")}function Tt(t){if(t.displayName!==void 0||t.displayDir!==void 0)return{name:t.displayName||t.path,dir:t.displayDir||""};const n=t.path.split("/").filter(Boolean);return{name:n.pop()||t.path,dir:n.join("/")}}function rt(t,n){const i=new Map,p=(a,y,b,x)=>{const f=a.get(y);if(f)return f;const v={path:b,name:y,childCount:0,directories:[],files:[]};return a.set(y,v),x?.directories.push(v),v};for(const a of t){const y=n(a).split("/").filter(Boolean);if(y.length<=1)continue;let b=i,x=null,f="";for(const v of y.slice(0,-1)){f=f?`${f}/${v}`:v;const L=p(b,v,f,x);x=L,b=new Map(L.directories.map(M=>[M.name,M]))}x?.files.push(a)}const h=a=>{const y=a.directories.map(h).sort((x,f)=>x.name.localeCompare(f.name)),b=a.files.sort((x,f)=>x.path.localeCompare(f.path));return{...a,directories:y,files:b,childCount:y.reduce((x,f)=>x+f.childCount,0)+b.length}};return Array.from(i.values()).map(h).sort((a,y)=>a.name.localeCompare(y.name))}function He(t,n,i=0){const p=n.selectedKey===t.key||n.selectedKey===t.path||n.selectedKey===t.absolutePath,h=Tt(t);return r.jsx(et,{selected:p,role:"button",tabIndex:0,title:t.title??t.absolutePath??t.path,onClick:()=>{Je()||n.onSelectFile(t)},onKeyDown:a=>{a.key!=="Enter"&&a.key!==" "||(a.preventDefault(),n.onSelectFile(t))},leading:n.renderLeading(t),depth:i,trailing:n.renderTrailing?.(t),dataAttributes:{"data-diff-selection-path":t.key,"data-diff-file-path":t.path,"data-diff-absolute-path":t.absolutePath??"","data-diff-status":t.status},children:r.jsxs("span",{className:"select-text","data-sidebar-selectable":!0,children:[r.jsx("span",{className:`block truncate leading-snug ${p?"font-medium":""}`,children:h.name}),n.mode!=="tree"&&h.dir&&r.jsx("span",{className:"block truncate text-[10px] text-muted-foreground/75",children:h.dir}),n.renderSubtitle?.(t)]})},t.key)}function nt(t,n,i,p,h){let a=t;const y=[t.name];for(;a.files.length===0&&a.directories.length===1;)a=a.directories[0],y.push(a.name);const b=y.join("/"),x=`${n}:${a.path}`,f=i.collapsedDirectoryKeys.has(x);return r.jsxs("div",{className:"space-y-px",children:[r.jsx(et,{role:"button",tabIndex:0,onClick:()=>{Je()||i.onToggleDirectory(x)},onKeyDown:v=>{v.key!=="Enter"&&v.key!==" "||(v.preventDefault(),i.onToggleDirectory(x))},ariaExpanded:!f,depth:p,title:a.path,leading:f?r.jsx(ut,{size:13}):r.jsx(dt,{size:13}),trailing:r.jsxs("span",{className:"flex shrink-0 items-center gap-1",children:[r.jsx("span",{className:"shrink-0 rounded bg-surface-2 px-1.5 py-0.5 text-[10px] text-muted-foreground/60 transition group-hover:text-muted-foreground",children:a.childCount}),i.renderDirectoryTrailing?.(a.path,h)]}),children:r.jsxs("span",{className:"flex min-w-0 items-center gap-1",children:[r.jsx(vt,{size:14,className:"shrink-0 text-[color:var(--folder)]"}),r.jsx("span",{className:"min-w-0 flex-1 truncate leading-snug select-text","data-sidebar-selectable":!0,children:b})]})}),!f&&r.jsxs("div",{className:"space-y-px",children:[a.directories.map(v=>nt(v,n,i,p+1,h)),a.files.length>0&&r.jsx("div",{className:"space-y-px",children:a.files.map(v=>He(v,i,p+1))})]})]},x)}function Dt(t,n){const i=n.getFileTreePath??tt,p=t.files.filter(a=>i(a).split("/").filter(Boolean).length<=1),h=rt(t.files,i);return r.jsxs("div",{className:"space-y-px",children:[h.map(a=>nt(a,t.key,n,0,t)),p.length>0&&r.jsx("div",{className:"space-y-px",children:p.map(a=>He(a,n))})]})}function St(t,n=tt){const i=[],p=a=>{for(const y of a.directories)p(y);i.push(...a.files)};for(const a of rt(t,n))p(a);const h=new Set(i.map(a=>a.key));return i.push(...t.filter(a=>!h.has(a.key))),i}function It(t){return r.jsx("div",{className:t.mode==="tree"?"space-y-px pt-1":"space-y-2",children:t.groups.map(n=>{const i=!!n.header,p=!!n.collapsed;return r.jsxs("section",{className:i?"overflow-hidden rounded-lg border border-border/15 bg-surface/60":"",children:[n.header,!p&&r.jsx("div",{className:t.mode==="tree"?i?"space-y-px bg-surface/60 p-1":"space-y-px":i?"space-y-px bg-surface/60 p-1.5":"space-y-px",children:t.mode==="tree"?Dt(n,t):n.files.map(h=>He(h,t))})]},n.key)})})}const Ee="termdock:diff-review:list-width:v1",Et=120,Le=320,Ke=220,Ct=560;function Ft(t){return typeof t=="number"&&Number.isFinite(t)}function Oe(t,n){const i=Math.max(Ke,n-360),p=Math.min(Ct,i);return Math.min(p,Math.max(Ke,t))}function _t(){return gt(Ee,Ft)??Le}function At({list:t,detail:n,mobile:i,mobileListHeader:p,mobileDetailHeader:h,desktopListHeader:a,backLabel:y,onMobileSlideChange:b,externalSwiperRef:x,desktopLayout:f="split",onDetailScroll:v,desktopSidePanel:L,desktopListClassName:M,detailOwnsScroll:C=!1}){const{t:$}=ft(),P=o.useRef(null),O=o.useRef(null),F=o.useRef(null),[V,q]=o.useState(_t);o.useEffect(()=>{if(i||f!=="split")return;const m=O.current;m&&q(j=>Oe(j,m.clientWidth))},[f,i]);const se=o.useCallback(m=>{i||f!=="split"||(m.preventDefault(),F.current={startX:m.clientX,startWidth:V,pointerId:m.pointerId},m.currentTarget.setPointerCapture(m.pointerId))},[f,V,i]),le=o.useCallback(m=>{const j=F.current;if(!j||j.pointerId!==m.pointerId)return;const T=O.current?.clientWidth??window.innerWidth,D=Oe(j.startWidth+m.clientX-j.startX,T);q(D),ht(Ee,D,Et)},[]),oe=o.useCallback(m=>{const j=F.current;if(!(!j||j.pointerId!==m.pointerId)){F.current=null,mt(Ee);try{m.currentTarget.releasePointerCapture(m.pointerId)}catch{}}},[]);if(i){const m=()=>{const w=P.current;w&&w.slideTo(1)},j=()=>{const w=P.current;w&&w.slideTo(0)},T=typeof t=="function"?t({slideToDetail:m}):t,D=typeof h=="function"?h({slideToList:j,slideToDetail:m}):h;return r.jsxs(yt,{className:"h-full min-h-0 w-full",slidesPerView:1,resistanceRatio:.45,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:".swiper-no-swiping",allowTouchMove:!1,touchAngle:75,touchStartPreventDefault:!1,onSwiper:w=>{P.current=w,x&&(x.current=w)},onSlideChange:w=>{b?.(w.activeIndex)},children:[r.jsx(Xe,{className:"h-full min-h-0",children:r.jsxs("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[p&&r.jsx("div",{className:"shrink-0 border-b border-border/15 px-3 py-2",children:p}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain",children:T})]})}),r.jsx(Xe,{className:"h-full min-h-0",children:r.jsxs("div",{className:"flex h-full min-h-0 flex-col overflow-hidden bg-surface",children:[r.jsx("div",{className:"shrink-0 border-b border-border/15 px-3 py-2",children:D??r.jsxs("button",{type:"button",onClick:j,className:"inline-flex h-9 shrink-0 items-center gap-1.5 rounded-full bg-surface-2 px-3 text-xs font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95",children:[r.jsx(pt,{size:14}),y]})}),r.jsx("div",{className:C?"min-h-0 flex-1 overflow-hidden":"termdock-diff-stream-scroller min-h-0 flex-1 overflow-y-auto overscroll-contain",onScroll:C?void 0:w=>v?.(w.currentTarget),children:n})]})})]})}const G=typeof t=="function"?t({slideToDetail:()=>{}}):t;return f==="stacked"?C?r.jsxs("div",{className:"termdock-native-select min-h-0 flex-1 overflow-hidden px-2 pb-[calc(env(safe-area-inset-bottom)+4.5rem)]",children:[a&&r.jsx("div",{className:"sticky top-0 z-10 border-b border-border/15 bg-surface px-2 py-2",children:a}),G,r.jsx("div",{className:"mt-3 h-[calc(100%-3rem)] min-h-0 overflow-hidden rounded-xl border border-border/15 bg-surface",children:n})]}):r.jsxs("div",{className:"termdock-native-select termdock-diff-stream-scroller min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 pb-[calc(env(safe-area-inset-bottom)+4.5rem)]",onScroll:m=>v?.(m.currentTarget),children:[a&&r.jsx("div",{className:"sticky top-0 z-10 border-b border-border/15 bg-surface px-2 py-2",children:a}),G,r.jsx("div",{className:"mt-3 overflow-hidden rounded-xl border border-border/15 bg-surface",children:n})]}):r.jsxs("div",{ref:O,className:"flex h-full min-h-0 overflow-hidden",children:[L,r.jsxs("div",{className:M??"shrink-0 overflow-y-auto overscroll-contain border-r border-border/15 bg-surface",style:{width:V},children:[a&&r.jsx("div",{className:"sticky top-0 z-10 border-b border-border/15 bg-surface px-2 py-2",children:a}),G]}),r.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":$("diffViewer.resizeNavigation"),title:$("diffViewer.resizeNavigation"),className:"group relative z-10 w-2 shrink-0 cursor-col-resize touch-none border-r border-border/15 bg-surface",onPointerDown:se,onPointerMove:le,onPointerUp:oe,onPointerCancel:oe,onDoubleClick:()=>{q(Le),xt(Ee,Le)},children:r.jsx("span",{className:"pointer-events-none absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-border/30 transition group-hover:bg-primary/60"})}),r.jsx("div",{className:C?"min-w-0 flex-1 overflow-hidden":"termdock-diff-stream-scroller min-w-0 flex-1 overflow-y-auto overscroll-contain",onScroll:C?void 0:m=>v?.(m.currentTarget),children:n})]})}function zt({mode:t,onModeChange:n,showAi:i=!1}){return r.jsxs("div",{className:"inline-flex h-7 shrink-0 overflow-hidden rounded-md bg-surface-2 p-0.5",children:[r.jsx("button",{type:"button",onClick:()=>n("list"),"aria-pressed":t==="list",className:`inline-flex h-6 w-7 items-center justify-center rounded-md transition active:scale-95 ${t==="list"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:r.jsx(Mt,{size:13})}),r.jsx("button",{type:"button",onClick:()=>n("tree"),"aria-pressed":t==="tree",className:`inline-flex h-6 w-7 items-center justify-center rounded-md transition active:scale-95 ${t==="tree"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:r.jsx(jt,{size:13})}),i&&r.jsx("button",{type:"button",onClick:()=>n("ai"),"aria-pressed":t==="ai",className:`inline-flex h-6 w-7 items-center justify-center rounded-md transition active:scale-95 ${t==="ai"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:r.jsx(Ze,{size:13})})]})}function Lt({groups:t,mode:n,onModeChange:i,selectedKey:p,collapsedDirectoryKeys:h,onToggleDirectory:a,onSelectFile:y,renderLeading:b,renderTrailing:x,renderDirectoryTrailing:f,renderSubtitle:v,detail:L,mobile:M,backLabel:C,compact:$=!1,emptyContent:P,listPrefix:O,aiContent:F,listContainerClassName:V="px-2 py-2",detailContainerClassName:q="termdock-native-select termdock-diff-stream-scroller min-h-0",renderListHeader:se,renderMobileDetailHeader:le,externalSwiperRef:oe,onMobileSlideChange:G,slideToDetailOnMobile:m=!0,desktopLayout:j="split",onDetailScroll:T,desktopSidePanel:D,desktopListClassName:w,detailOwnsScroll:J}){const[X,ce]=o.useState(!1);o.useEffect(()=>{if(!X)return;const E=H=>{H.key==="Escape"&&ce(!1)};return document.addEventListener("keydown",E),()=>document.removeEventListener("keydown",E)},[X]);const me=r.jsx(zt,{mode:n,onModeChange:i,showAi:!!F}),pe=n==="tree"?"tree":"list",Z=se?se(me):r.jsx("div",{className:"flex justify-end",children:me}),ee=t.some(E=>E.files.length>0),te=r.jsx(At,{mobile:X?!1:M,backLabel:C,externalSwiperRef:oe,onMobileSlideChange:G,desktopLayout:X?"split":j,onDetailScroll:T,desktopSidePanel:D,desktopListClassName:w,detailOwnsScroll:J,mobileListHeader:M?Z:void 0,desktopListHeader:M?void 0:Z,mobileDetailHeader:le,list:({slideToDetail:E})=>r.jsx("div",{className:V,children:n==="ai"?typeof F=="function"?F({slideToDetail:E,fullscreen:X,toggleFullscreen:()=>ce(H=>!H)}):F??P:r.jsxs(r.Fragment,{children:[O,ee?r.jsx(It,{groups:t,selectedKey:p,mode:pe,mobile:M,compact:$,collapsedDirectoryKeys:h,onToggleDirectory:a,onSelectFile:H=>{y(H),M&&m&&window.requestAnimationFrame(E)},renderLeading:b,renderTrailing:x,renderDirectoryTrailing:f,renderSubtitle:v}):P]})}),detail:r.jsx("div",{className:J?"h-full min-h-0":q,children:L})});return!X||typeof document>"u"?te:Ye.createPortal(r.jsxs("div",{className:"fixed inset-0 z-modal-panel flex min-h-0 flex-col bg-surface text-foreground",children:[r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b border-border/15 bg-[var(--chrome-bg)] px-3",children:[r.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[r.jsx(Ze,{size:15,className:"shrink-0 text-primary"}),r.jsx("span",{className:"truncate text-[12px] font-semibold",children:"DAG Review"}),r.jsx("span",{className:"hidden text-[10px] text-muted-foreground sm:inline",children:"Select a step to inspect its exact change"})]}),r.jsx("button",{type:"button",onClick:()=>ce(!1),className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition hover:bg-surface-2 hover:text-foreground active:scale-95",title:"Exit full-screen DAG review (Esc)","aria-label":"Exit full-screen DAG review",children:r.jsx(bt,{size:16})})]}),r.jsx("div",{className:"min-h-0 flex-1",children:te})]}),document.body)}const Ht=96,Ae=44;function Pt({file:t,repoRoot:n,selectionPath:i,displayName:p,displayDir:h,selected:a,activePane:y,visible:b,reusableContent:x=!1,estimatedHeight:f,lightweight:v=!1,wrap:L,viewType:M,inlineMode:C,diffOptions:$,reloadKey:P=0,auditRecords:O,diffOverride:F,preparedDiff:V,renderBadge:q,onInsertDiffReference:se,onHunkGitAction:le,onReferenceCopied:oe,insertedReferenceKey:G,copiedReferenceKey:m,onClearAuditRecord:j,onContentReady:T,onHeightChange:D}){const w=o.useRef(null),J=o.useRef(null),X=o.useRef(null),[ce,me]=o.useState(null),pe=o.useRef(64),Z=o.useRef(f??104),ee=o.useRef(null),te=o.useRef(null),E=o.useRef(!1),H=o.useRef(!1),z=o.useRef(null),[K,ue]=o.useState(!1),[ke,Te]=o.useState(!1),Re=t.absolutePath||(n?`${n}/${t.path}`:t.path),ie=o.useCallback(()=>{H.current||(H.current=!0,Te(!0),T?.(i))},[T,i]);o.useLayoutEffect(()=>(E.current=!1,H.current=!1,ee.current=null,te.current=null,z.current!==null&&(window.clearTimeout(z.current),z.current=null),ue(!1),Te(!1),()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)}),[F,V,P,x,b]),o.useLayoutEffect(()=>{const I=ee.current;!K||I===null||Math.abs((f??104)-I)>=1||(ee.current=null,ie())},[ie,f,K]),o.useLayoutEffect(()=>{if(!b||!K)return;const I=X.current;if(!I)return;const je=()=>{if(!E.current)return;const xe=I.firstElementChild;if(!xe)return;const W=Math.ceil(Math.max(xe.getBoundingClientRect().height,xe.scrollHeight,64)),fe=pe.current;if(W>0&&fe!==W&&(pe.current=W,me(W)),!w.current)return;const U=J.current?.getBoundingClientRect().height??Ae,S=Math.ceil(U+W+1);S<=0||te.current===S||(te.current=S,z.current!==null&&window.clearTimeout(z.current),z.current=window.setTimeout(()=>{if(z.current=null,!E.current)return;const A=te.current;if(A===null)return;const ae=Z.current;if(H.current){Z.current=A,Math.abs(ae-A)>=1&&D?.(i,ae,A),T?.(i);return}if(ee.current=A,Math.abs(ae-A)<1||!D){Z.current=A,ee.current=null,ie();return}Z.current=A,D(i,ae,A)},Ht))};if(je(),typeof ResizeObserver>"u")return;const de=new ResizeObserver(je);return de.observe(I),I.firstElementChild&&de.observe(I.firstElementChild),J.current&&de.observe(J.current),()=>de.disconnect()},[ie,T,D,i,K,b,L,M,C]);const _=b&&!ke;return r.jsxs("div",{ref:w,"data-diff-stream-item":i,"data-diff-selection-path":i,"data-diff-file-path":t.path,"data-diff-absolute-path":Re,className:`scroll-mt-3 border-b border-border/15 last:border-b-0 ${_||!b?"overflow-hidden":""} ${a?"bg-surface-elevated/35":""}`,style:b?_?{height:f??104}:void 0:{height:f??104},children:[r.jsxs("div",{ref:J,"data-diff-stream-header":!0,className:`sticky top-0 z-10 flex min-w-0 items-center gap-2 border-b border-border/15 px-3 py-2 backdrop-blur ${a?"bg-surface-elevated/95":"bg-surface/95"}`,children:[q(t.status),r.jsxs("div",{className:"min-w-0 flex-1",title:Re,children:[r.jsx("div",{className:"truncate text-xs font-semibold text-foreground",children:p}),h&&r.jsx("div",{className:"truncate text-[10px] text-muted-foreground",children:h})]})]}),r.jsxs("div",{ref:X,className:"relative","data-diff-stream-body":!0,style:b?{minHeight:ke?64:Math.max(ce??64,(f??104)-Ae)}:{height:Math.max(ce??64,(f??104)-Ae)},children:[b?r.jsx(wt,{active:y,repoRoot:n,filePath:t.path,referenceFilePath:Re,changedFile:t,wrap:L,viewType:M,inlineMode:C,diffOptions:$,reloadKey:P,embedded:!0,lightweight:v,auditRecords:O,diffOverride:F,preparedDiff:V,onClearAuditRecord:j,onContentReady:()=>{if(x){E.current=!0,ue(!0),ie();return}E.current||(E.current=!0,ue(!0))},onInsertDiffReference:se,onHunkGitAction:le,onReferenceCopied:oe,insertedReferenceKey:G,copiedReferenceKey:m}):r.jsx("div",{className:"flex h-full min-h-16 items-center justify-center bg-surface px-3 py-4 text-center text-xs text-muted-foreground",children:t.path}),b&&K&&!ke&&r.jsx("div",{"data-diff-measuring-overlay":!0,className:"absolute inset-0 z-20 bg-surface"})]})]})}const qe=8,ze=1600,Ue=104,Wt=1e3,we=new Map;function Bt(t,n){for(we.delete(t),we.set(t,n);we.size>Wt;){const i=we.keys().next().value;if(i===void 0)break;we.delete(i)}}function $t(t,n){return!!(t&&t.diffOverride===n.diffOverride&&t.reloadKey===n.reloadKey&&t.wrap===n.wrap&&t.viewType===n.viewType&&t.inlineMode===n.inlineMode&&t.algorithm===n.algorithm&&t.whitespace===n.whitespace&&t.context===n.context)}const Vt={added:{label:"A",className:"text-[color:var(--diff-insert-strong)]",title:"Added"},modified:{label:"M",className:"text-[color:var(--diff-hunk-accent)]",title:"Modified"},deleted:{label:"D",className:"text-[color:var(--diff-delete-strong)]",title:"Deleted"},renamed:{label:"R",className:"text-muted-foreground",title:"Renamed"},copied:{label:"C",className:"text-[color:var(--diff-insert-strong)]",title:"Copied"},untracked:{label:"U",className:"text-[color:var(--diff-insert-strong)]",title:"Untracked (new file)"},conflicted:{label:"!",className:"text-destructive",title:"Conflicted"},unknown:{label:"?",className:"text-muted-foreground",title:"Unknown"}};function Yt({status:t}){const n=Vt[t]??{label:"?",className:"text-muted-foreground",title:t};return r.jsx("span",{className:`w-4 shrink-0 text-center text-[10px] font-mono font-bold ${n.className}`,title:n.title,children:n.label})}function Jt(t,n){return n?{key:n,nonce:t.nonce+1}:t}function Zt({files:t,groups:n,selectedKey:i,onSelectFile:p,mode:h,onModeChange:a,collapsedDirectoryKeys:y,onToggleDirectory:b,renderLeading:x,renderTrailing:f,renderDirectoryTrailing:v,renderSubtitle:L,renderStreamBadge:M,onInsertDiffReference:C,onHunkGitAction:$,onReferenceCopied:P,insertedReferenceKey:O,copiedReferenceKey:F,onClearAuditRecord:V,mobile:q,backLabel:se,compact:le,desktopLayout:oe,wrap:G,diffViewType:m,inlineMode:j,diffOptions:T,activePane:D,reloadKey:w=0,renderListHeader:J,renderMobileDetailHeader:X,emptyContent:ce,listPrefix:me,aiContent:pe,listContainerClassName:Z,detailContainerClassName:ee,desktopSidePanel:te,desktopListClassName:E,onDetailScroll:H,initialDetailScrollTop:z,scrollToKey:K,scrollToKeyNonce:ue=0,externalSwiperRef:ke,onMobileSlideChange:Te,slideToDetailOnMobile:Re}){const ie=o.useMemo(()=>e=>i===e.key||i===e.path||i===e.absolutePath,[i]),_=o.useMemo(()=>{const e=new Map;for(const c of t)e.set(c.key,c),c.path&&e.set(c.path,c),c.absolutePath&&e.set(c.absolutePath,c);const s=[],l=new Set;for(const c of n){const d=h==="tree"?St(c.files):c.files;for(const g of d){const u=e.get(g.key);!u||l.has(u.key)||(s.push(u),l.add(u.key))}}for(const c of t)l.has(c.key)||s.push(c);return s},[t,n,h]),I=o.useRef(null),je=o.useRef(null),de=o.useRef(null),xe=o.useRef(w),W=o.useRef(0),fe=o.useRef(null),ge=o.useRef(new Map(we)),U=o.useRef({key:null,top:0}),S=o.useRef(new Set),A=o.useRef(new Map),ae=o.useRef(new Map),B=o.useRef(null),Pe=o.useRef(()=>{}),Ne=o.useRef([]),he=o.useRef(new Map),We=o.useRef({tops:[],heights:[],bottom:0}),[De,st]=o.useState(()=>new Set),[ot,ct]=o.useState(0),[Q,be]=o.useState({top:0,height:0}),Se=o.useMemo(()=>_.map(e=>e.key),[_]),Ie=Se.join("");ae.current=new Map(_.map(e=>[e.key,{diffOverride:e.diffOverride,reloadKey:w,wrap:G,viewType:m,inlineMode:j,algorithm:T?.algorithm,whitespace:T?.whitespace,context:T?.context}])),Ne.current=Se,he.current=new Map(Se.map((e,s)=>[e,s]));const k=o.useMemo(()=>{const e=Se.map(c=>ge.current.get(c)??Ue),s=new Array(e.length);for(let c=0;c<e.length;c+=1)s[c]=c===0?0:s[c-1]+e[c-1];const l=e.length>0?s[e.length-1]+e[e.length-1]:0;return{tops:s,heights:e,bottom:l}},[ot,Ie]);We.current=k;const re=o.useMemo(()=>K?_.find(e=>K===e.key||K===e.path||K===e.absolutePath)?.key??null:null,[_,K]),Ce=o.useMemo(()=>i?_.find(e=>i===e.key||i===e.path||i===e.absolutePath)?.key??null:null,[_,i]),Me=o.useMemo(()=>{const e=k.tops.length;if(e===0)return-1;let s=0,l=e;for(;s<l;){const c=Math.floor((s+l)/2);k.tops[c]<=Q.top+1?s=c+1:l=c}return Math.min(e-1,Math.max(0,s-1))},[k.tops,Q.top]),ne=o.useCallback(e=>{S.current=e,st(e)},[]),Be=o.useMemo(()=>{const e=Q.top-ze,s=Q.top+Q.height+ze,l=new Set;let c=0,d=k.tops.length;for(;c<d;){const u=Math.floor((c+d)/2);k.tops[u]<=e?c=u+1:d=u}const g=Math.max(0,c-1);for(let u=g;u<k.tops.length;u+=1){const R=k.tops[u];if(R>s)break;R+k.heights[u]>=e&&R<=s&&l.add(u)}for(let u=Me-1;u<=Me+1;u+=1)u>=0&&u<k.tops.length&&l.add(u);for(const u of De){const R=he.current.get(u);R!==void 0&&l.add(R)}return Array.from(l).sort((u,R)=>u-R)},[k,Q,De,Me]),Fe=o.useCallback(()=>{if(!D||B.current)return;const e=Ne.current;if(e.length===0)return;const s=U.current.key,l=Math.min(e.length-1,(s!==null?he.current.get(s):void 0)??Math.max(0,Me)),c=u=>Math.abs((he.current.get(u)??0)-l),d=[];S.current.has(e[l])||d.push(e[l]);for(let u=1;u<=qe;u+=1){const R=l+u,N=l-u;R<e.length&&!S.current.has(e[R])&&d.push(e[R]),N>=0&&!S.current.has(e[N])&&d.push(e[N])}const g=d[0];if(g){if(S.current.size>=qe){const u=c(g),R=Array.from(S.current).filter(Y=>Y!==B.current).sort((Y,ye)=>c(ye)-c(Y))[0];if(!R||c(R)<=u)return;const N=new Set(S.current);N.delete(R),ne(N)}B.current=g,ne(new Set(S.current).add(g))}},[D,ne,Me]);Pe.current=Fe;const ve=o.useCallback(e=>{if(S.current.has(e))return;const s=B.current;if(s&&s!==e){const l=new Set(S.current);l.delete(s),ne(l),B.current=null}B.current=e,ne(new Set(S.current).add(e))},[ne]),$e=o.useCallback(e=>{if(!S.current.has(e))return;const s=ae.current.get(e);s&&A.current.set(e,s),B.current===e&&(B.current=null),window.requestAnimationFrame(()=>Pe.current())},[]),Ve=o.useCallback((e,s,l)=>{if(Math.abs(l-s)<1)return;const c=ge.current.get(e);c!==void 0&&Math.abs(c-l)<1||(ge.current.set(e,l),Bt(e,l),ct(d=>d+1))},[]);o.useLayoutEffect(()=>{if(xe.current!==w){xe.current=w;for(const e of _){if(e.diffOverride!==void 0)continue;const s=Xt(e.path,e.repoRoot);kt(s,e.repoRoot??void 0,T)}}},[_,T,w]),o.useLayoutEffect(()=>{const e=I.current;if(!e)return;const s=()=>{const c=Math.max(0,Math.ceil(e.clientHeight));if(c===0)return;const d=e.scrollTop;be(g=>g.height===c&&g.top===d?g:{top:d,height:c})};if(s(),typeof ResizeObserver>"u")return;const l=new ResizeObserver(s);return l.observe(e),()=>l.disconnect()},[q]),o.useEffect(()=>{D&&Ce&&ve(Ce)},[D,ve,Ce]),o.useEffect(()=>{const e=new Set(Ne.current);for(const s of Array.from(ge.current.keys()))e.has(s)||ge.current.delete(s);for(const s of Array.from(S.current))if(!e.has(s)){const l=new Set(S.current);l.delete(s),ne(l)}for(const s of Array.from(A.current.keys()))e.has(s)||A.current.delete(s);if(B.current&&!e.has(B.current)&&(B.current=null),_.length===0){B.current=null,A.current.clear(),ne(new Set);return}Fe()},[_.length,Ie,Fe,Be,ne]);const Ge=o.useCallback(e=>{I.current=e;const s=W.current,l=e.scrollTop;W.current=l;const c=d=>{const g=We.current,u=Ne.current;let R=0,N=g.tops.length;for(;R<N;){const _e=Math.floor((R+N)/2);g.tops[_e]<=d+1?R=_e+1:N=_e}const Y=Math.min(u.length-1,Math.max(0,R-1)),ye=u[Y]??null;U.current={key:ye,top:g.tops[Y]??0},ye&&ve(ye)};Math.abs(l-s)>=ze?(Ye.flushSync(()=>{be({top:l,height:e.clientHeight})}),c(l)):fe.current===null&&(fe.current=window.requestAnimationFrame(()=>{fe.current=null;const d=I.current;if(d){const g=d.scrollTop;be({top:g,height:d.clientHeight}),c(g)}})),H?.(e)},[H,ve]);o.useEffect(()=>()=>{fe.current!==null&&window.cancelAnimationFrame(fe.current)},[]),o.useLayoutEffect(()=>{const e=I.current;if(!e)return;const s=U.current;if(s.key===null)return;const l=he.current.get(s.key);if(l===void 0)return;const c=(k.tops[l]??s.top)-s.top;if(Math.abs(c)<1)return;const d=e.scrollTop+c;W.current=d,be(g=>({top:d,height:g.height})),typeof e.scrollTo=="function"?e.scrollTo({top:d,behavior:"instant"}):e.scrollTop=d},[k]),o.useLayoutEffect(()=>{const e=Ne.current,s=k.tops;if(e.length===0){U.current={key:null,top:0};return}const l=W.current,c=l+(I.current?.clientHeight??Q.height),d=U.current;if(d.key!==null){const N=he.current.get(d.key);if(N!==void 0){const Y=s[N]??0;if(Y+(k.heights[N]??Ue)>l&&Y<c){U.current={key:d.key,top:Y};return}}}let g=0,u=s.length;for(;g<u;){const N=Math.floor((g+u)/2);s[N]<=l+1?g=N+1:u=N}const R=Math.min(s.length-1,Math.max(0,g-1));U.current={key:e[R]??null,top:s[R]??0}}),o.useLayoutEffect(()=>{if(!re)return;const e=je.current;if(e?.key===re&&e.nonce===ue)return;const s=he.current.get(re);if(s===void 0)return;ve(re),U.current={key:re,top:k.tops[s]??0};const l=I.current;if(!l||l.clientHeight===0||Q.height!==l.clientHeight)return;je.current={key:re,nonce:ue};const c=k.tops[s]??0;typeof l.scrollTo=="function"?l.scrollTo({top:c,behavior:"instant"}):l.scrollTop=c;const d=l.scrollTop;W.current=d,be({top:d,height:l.clientHeight})},[k,Q.height,ve,re,ue]),o.useLayoutEffect(()=>{if(z===void 0||re)return;const e=Ie;if(de.current===e)return;const s=I.current;if(!s)return;de.current=e;const l=Math.max(0,k.bottom-s.clientHeight),c=Math.min(Math.max(0,z),l);typeof s.scrollTo=="function"?s.scrollTo({top:c,behavior:"instant"}):s.scrollTop=c;const d=s.scrollTop;W.current=d,be({top:d,height:s.clientHeight})},[k.bottom,z,Ie,re]);const it=o.useCallback((e,s)=>{const l=ie(e),c=ae.current.get(e.key),d=c!==void 0&&$t(A.current.get(e.key),c);return r.jsx(Pt,{file:Gt(e),repoRoot:e.repoRoot,selectionPath:e.key,displayName:e.displayName,displayDir:e.displayDir,selected:l,activePane:D,visible:De.has(e.key),reusableContent:d,estimatedHeight:s,lightweight:!1,wrap:G,viewType:m,inlineMode:j,diffOptions:T,reloadKey:w,auditRecords:e.auditRecords,diffOverride:e.diffOverride,renderBadge:g=>M(g,e),onInsertDiffReference:e.onInsertDiffReference??C,onHunkGitAction:e.onHunkGitAction??$,onReferenceCopied:P,insertedReferenceKey:O,copiedReferenceKey:F,onClearAuditRecord:V,onContentReady:$e,onHeightChange:Ve})},[D,F,T,m,$e,Ve,j,O,ie,De,V,$,C,P,w,M,G]),at=r.jsx("div",{"data-diff-stream-content":!0,"data-diff-stream-canvas":!0,className:"termdock-diff-stream relative overflow-clip bg-surface will-change-transform",style:{height:Math.max(k.bottom,(k.tops.at(-1)??0)+Q.height)},children:Be.map(e=>{const s=_[e];return s?r.jsx("div",{"data-diff-canvas-slot":s.key,className:"absolute inset-x-0",style:{top:k.tops[e]},children:it(s,k.heights[e])},s.key):null})}),lt=r.jsx("div",{ref:I,className:"termdock-diff-stream termdock-diff-stream-scroller h-full max-h-full min-h-0 overflow-y-auto overscroll-contain bg-surface [overflow-anchor:none]",onScroll:e=>Ge(e.currentTarget),children:at});return r.jsx(Lt,{groups:n,mode:h,onModeChange:a,selectedKey:i,collapsedDirectoryKeys:y,onToggleDirectory:b,onSelectFile:p,renderLeading:x,renderTrailing:f,renderDirectoryTrailing:v,renderSubtitle:L,detail:lt,mobile:q,backLabel:se,compact:le,emptyContent:ce,listPrefix:me,aiContent:pe,listContainerClassName:Z,detailContainerClassName:ee,renderListHeader:J,renderMobileDetailHeader:X,externalSwiperRef:ke,onMobileSlideChange:Te,slideToDetailOnMobile:Re,desktopLayout:oe,onDetailScroll:Ge,desktopSidePanel:te,desktopListClassName:E,detailOwnsScroll:!0})}function Gt(t){return{path:t.path,absolutePath:t.absolutePath,status:t.status}}function Xt(t,n){if(t)return n&&t.startsWith(`${n}/`)?t.slice(n.length+1):t}export{Yt as C,Zt as D,jt as L,St as f,Jt as n};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{bf as i}from"./app-Bl11JYak.js";import{b as n}from"./dnd-BCFAPC0L.js";import{D as I}from"./DiffReview-BpxhFZLY.js";import"./react-XDCjal2T.js";import"./terminal-C7X98Amf.js";import"./gestureArbiter-DPglmaJZ.js";import"./sparkles-DikPE3OY.js";import"./DiffViewer-680KNh4c.js";import"./referenceLongPress-BclZaogy.js";const x=40,b="/tmp/termdock-diff-review-lab";function S(r,c,l=!1){const d=[`diff --git a/${r} b/${r}`,`--- a/${r}`,`+++ b/${r}`,`@@ -1,${c} +1,${c} @@`];for(let t=0;t<c;t+=1)t%5===0&&d.push(`-const removed_${t} = ${t};`),t%3===0&&d.push(`+const added_${t} = ${t} * 2;`),d.push(` context line ${t} in ${r}${l?" long content for repeated wrap and resize checks".repeat(10):""}`);return d.join(`
|
|
2
2
|
`)}function T(r,c,l){return Array.from({length:x},(d,t)=>{const f=6+t*7%60,a=`src/module${String(t).padStart(2,"0")}/File${t}.ts`,m=`${b}/${a}`,w=S(a,f,l),o=S(a,1,l);return{key:m,path:a,absolutePath:m,status:"modified",repoRoot:b,displayName:`File${t}.ts`,displayDir:`src/module${String(t).padStart(2,"0")} · ${f} lines`,diffOverride:!c||r.has(t)?w:o,auditRecords:[]}})}function B(){const[r,c]=n.useState(()=>new URLSearchParams(window.location.search).get("wrap")!=="off"),[l,d]=n.useState(()=>new URLSearchParams(window.location.search).get("view")==="split"),t=n.useMemo(()=>new URLSearchParams(window.location.search).get("long")==="1",[]),f=n.useMemo(()=>{if(typeof window>"u")return 0;const e=new URLSearchParams(window.location.search).get("delay"),s=e===null?0:Number.parseInt(e,10);return Number.isInteger(s)&&s>0?s:0},[]),a=f>0,[m,w]=n.useState(()=>new Set);n.useEffect(()=>{if(!a)return;const e=Array.from({length:x},(s,u)=>window.setTimeout(()=>{w(M=>{const g=new Set(M);return g.add(u),g})},f+u*20));return()=>e.forEach(s=>window.clearTimeout(s))},[a,f]);const o=n.useMemo(()=>T(m,a,t),[m,a,t]),k=n.useMemo(()=>[{key:"mock-repo",root:b,label:"diff-review-lab",files:o.map(e=>({key:e.key,path:e.path,absolutePath:e.absolutePath,displayName:e.displayName,displayDir:e.displayDir,status:e.status}))}],[o]),p=n.useMemo(()=>{if(typeof window>"u")return null;const e=new URLSearchParams(window.location.search).get("select");if(e===null)return null;const s=Number.parseInt(e,10);return Number.isInteger(s)&&s>=0&&s<o.length?s:null},[o.length]),[h,$]=n.useState(()=>p!==null?o[p].key:null),[y,R]=n.useState(()=>({key:p!==null?o[p].key:null,nonce:p!==null?1:0})),[N,v]=n.useState("list"),[D,j]=n.useState(new Set),[L,P]=n.useState(p!==null?1:0);return i.jsxs("div",{className:"flex h-screen flex-col bg-background text-foreground","data-diff-review-lab":!0,children:[i.jsxs("div",{className:"shrink-0 border-b border-border/20 px-3 py-2 text-xs text-muted-foreground",children:[i.jsxs("button",{type:"button",className:"mr-2 rounded bg-surface-2 px-2 py-1",onClick:()=>c(e=>!e),"aria-pressed":r,children:["Wrap ",r?"on":"off"]}),i.jsx("button",{type:"button",className:"mr-2 rounded bg-surface-2 px-2 py-1",onClick:()=>d(e=>!e),"aria-pressed":l,children:l?"Split":"Unified"}),"DiffReview Lab · ",o.length," mock files · selected: ",i.jsx("span",{"data-lab-selected":!0,children:h??"none"})," · slide ",L]}),i.jsx("div",{className:"min-h-0 flex-1",children:i.jsx(I,{mobile:!0,backLabel:"Back",files:o,groups:k,selectedKey:h,scrollToKey:y.key,scrollToKeyNonce:y.nonce,mode:N,onModeChange:e=>{e!=="ai"&&v(e)},collapsedDirectoryKeys:D,onToggleDirectory:e=>j(s=>{const u=new Set(s);return u.has(e)?u.delete(e):u.add(e),u}),onSelectFile:e=>{$(e.key),R(s=>({key:e.key,nonce:s.nonce+1}))},onMobileSlideChange:P,renderLeading:()=>null,renderStreamBadge:e=>i.jsx("span",{className:"text-[10px] text-muted-foreground",children:e}),wrap:r,diffViewType:l?"split":"unified",activePane:!0})})]})}export{B as DiffReviewLab};
|
|
Binary file
|
|
Binary file
|