@band-app/server 0.16.9 → 0.17.0
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/DockviewBrowserContainer-B_oEene2.js +5 -0
- package/dist/client/assets/DockviewTerminalContainer-CfQMvR_k.js +2 -0
- package/dist/client/assets/TerminalPanel-DxZK0ClB.js +5 -0
- package/dist/client/assets/{_basePickBy-uVqvgsJc.js → _basePickBy-Ct-e0Qqq.js} +1 -1
- package/dist/client/assets/{_baseUniq-7i7L1uNE.js → _baseUniq-CxKOXF1k.js} +1 -1
- package/dist/client/assets/arc-CKSDLbJ_.js +1 -0
- package/dist/client/assets/architectureDiagram-VXUJARFQ-DX7YfptV.js +36 -0
- package/dist/client/assets/{blockDiagram-VD42YOAC-CXQSSz3O.js → blockDiagram-VD42YOAC-CsuIx-c9.js} +5 -5
- package/dist/client/assets/{c4Diagram-YG6GDRKO-DplRXCR2.js → c4Diagram-YG6GDRKO-DychwT1W.js} +3 -3
- package/dist/client/assets/channel-B-u6m7I1.js +1 -0
- package/dist/client/assets/chunk-4BX2VUAB-loz8MPPD.js +1 -0
- package/dist/client/assets/chunk-55IACEB6-D29ChrqC.js +1 -0
- package/dist/client/assets/{chunk-B4BG7PRW-DlN9tUxh.js → chunk-B4BG7PRW-DKCONMEK.js} +6 -6
- package/dist/client/assets/{chunk-DI55MBZ5-a11zyhq4.js → chunk-DI55MBZ5-D5zzjeE8.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-aGGVV1yn.js → chunk-FMBD7UC4-D1xESdhD.js} +1 -1
- package/dist/client/assets/chunk-QN33PNHL-DXisPMUT.js +1 -0
- package/dist/client/assets/chunk-QZHKN3VN-Ch8ZVx4Y.js +1 -0
- package/dist/client/assets/chunk-TZMSLE5B-GuM5n4Rs.js +1 -0
- package/dist/client/assets/classDiagram-2ON5EDUG-ZLOOfEOW.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-ZLOOfEOW.js +1 -0
- package/dist/client/assets/clone-CDLv4lRU.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-Cf0f3nH9.js +1 -0
- package/dist/client/assets/dagre-6UL2VRFP-BEjucV14.js +4 -0
- package/dist/client/assets/diagram-PSM6KHXK-4UTMLb3J.js +24 -0
- package/dist/client/assets/diagram-QEK2KX5R-B9rhi9zE.js +43 -0
- package/dist/client/assets/diagram-S2PKOQOG-CS7F4WJO.js +24 -0
- package/dist/client/assets/{erDiagram-Q2GNP2WA-kUd-gmjz.js → erDiagram-Q2GNP2WA-D-EqIR9o.js} +4 -4
- package/dist/client/assets/{flowDiagram-NV44I4VS-CHbLqCKB.js → flowDiagram-NV44I4VS-_GH1A_sS.js} +5 -5
- package/dist/client/assets/ganttDiagram-JELNMOA3-Dtb6N1ze.js +267 -0
- package/dist/client/assets/gitGraphDiagram-V2S2FVAM-B_QsP5ak.js +65 -0
- package/dist/client/assets/{graph-CSi_akmB.js → graph-H6OCDpse.js} +1 -1
- package/dist/client/assets/highlighted-body-B3W2YXNL-Pz2rshlt.js +1 -0
- package/dist/client/assets/index-B-KsZlI_.js +1 -0
- package/dist/client/assets/{index-udv0M-ix.js → index-BCbe81ki.js} +2 -2
- package/dist/client/assets/index-BOdifnXB.js +1 -0
- package/dist/client/assets/{index-BPf6S9f1.js → index-BQW7Zpk7.js} +1 -1
- package/dist/client/assets/index-BX_7-t5E.js +1 -0
- package/dist/client/assets/{index-B0ZcEU4c.js → index-BktK8Iwc.js} +1 -1
- package/dist/client/assets/{index-C-6dsPog.js → index-BtEs1oEp.js} +1 -1
- package/dist/client/assets/{index-T_1b5WRg.js → index-BtajlvkF.js} +1 -1
- package/dist/client/assets/{index-CNQHGhCu.js → index-Bx3rRbZG.js} +1 -1
- package/dist/client/assets/{index-DfHcm4JM.js → index-C6MgAn1q.js} +1 -1
- package/dist/client/assets/{index-C4ee_PQ0.js → index-CzCjpAqZ.js} +5 -5
- package/dist/client/assets/{index-oolizINO.js → index-DQAckahj.js} +1 -1
- package/dist/client/assets/index-DaRnNd02.js +7 -0
- package/dist/client/assets/{index-BJP1qdPz.js → index-Im7rGMYn.js} +1 -1
- package/dist/client/assets/{index-CA1NuCd_.js → index-WmGuuT8Z.js} +1 -1
- package/dist/client/assets/{index-C-3PAt1d.js → index-aTt3zXBv.js} +1 -1
- package/dist/client/assets/{index-5X7JRvnK.js → index-nPplcWzt.js} +1 -1
- package/dist/client/assets/{index-spwNnd85.js → index-vaGaAlmP.js} +1 -1
- package/dist/client/assets/infoDiagram-HS3SLOUP-Dp2iuUeA.js +2 -0
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DIY8FE8Z.js → journeyDiagram-XKPGCS4Q-BaVzrE3V.js} +3 -3
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-Cd_JJ8FN.js → kanban-definition-3W4ZIXB7-DdbWsnm7.js} +8 -8
- package/dist/client/assets/{layout-Bhb5FQCr.js → layout-vxWf40Ht.js} +1 -1
- package/dist/client/assets/{linear-Cmk2RyH_.js → linear-BstrgKy8.js} +1 -1
- package/dist/client/assets/{main-BlRcPsmZ.js → main-DRq9Axai.js} +227 -226
- package/dist/client/assets/main-evBJruhw.css +1 -0
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-B-WhBVeY.js → mindmap-definition-VGOIOE7T-CAEEMYhK.js} +3 -3
- package/dist/client/assets/pieDiagram-ADFJNKIX-DCNv4UlO.js +30 -0
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-DHBoMUCQ.js → quadrantDiagram-AYHSOK5B-BeP4t0hp.js} +2 -2
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DjS5RONh.js → requirementDiagram-UZGBJVZJ-CAdiLb_M.js} +2 -2
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-DW9xKT5Y.js +10 -0
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-CzqbRfb_.js → sequenceDiagram-WL72ISMW-D9y8fK_R.js} +1 -1
- package/dist/client/assets/{square-terminal-CNHJa6OY.js → square-terminal-VjG9-RoZ.js} +1 -1
- package/dist/client/assets/stateDiagram-FKZM4ZOC-QYuyBeVm.js +1 -0
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-VVONI0Hb.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-CNKMKDwq.js → timeline-definition-IT6M3QCI-Ci_SXZdO.js} +4 -4
- package/dist/client/assets/{treemap-GDKQZRPO-DCEPrZh7.js → treemap-GDKQZRPO-fDacl-jS.js} +1 -1
- package/dist/client/assets/workspace._workspaceId-C9BVWo6-.js +2 -0
- package/dist/client/assets/workspace._workspaceId-CMlw9wn8.js +1 -0
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-Cr18I3A3.js → xychartDiagram-PRI3JC2R-rRpBADcB.js} +4 -4
- package/dist/migrations/20260525163504_add_projects_has_origin/migration.sql +1 -0
- package/dist/migrations/20260525163504_add_projects_has_origin/snapshot.json +866 -0
- package/dist/openapi.json +414 -4
- package/dist/server/assets/{DockviewBrowserContainer-Bm7ARaqd.js → DockviewBrowserContainer-BAe7TLKD.js} +42 -22
- package/dist/server/assets/{DockviewTerminalContainer-BbMZgBJ8.js → DockviewTerminalContainer-CC7i0yMZ.js} +44 -24
- package/dist/server/assets/{TerminalPanel-BmhYCf33.js → TerminalPanel-gBh8VBn0.js} +1 -1
- package/dist/server/assets/{_basePickBy-C7CNOUDi.js → _basePickBy-CTks6QXq.js} +2 -2
- package/dist/server/assets/{_baseUniq-DeF47vVO.js → _baseUniq-BJI4qneQ.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-CfuSyuIp.js +4 -0
- package/dist/server/assets/{arc-P5FY7IYH.js → arc-Fdc_l0PB.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-LvprLHYS.js → architecture-7HQA4BMR-CfPXboDr.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-Br4iiUzH.js → architectureDiagram-VXUJARFQ-D6UEkzy_.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-BahODDhX.js → blockDiagram-VD42YOAC-BvasIENt.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-CQcZX6cr.js → c4Diagram-YG6GDRKO-MW5H9zoJ.js} +2 -2
- package/dist/server/assets/{channel-BmAB_ZKU.js → channel-XhTiPor2.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-YUvszr4w.js → chunk-4BX2VUAB-C6POw9HJ.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-BUgBPiJd.js → chunk-55IACEB6-BZ0x-UQb.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-BxuWeZlV.js → chunk-B4BG7PRW-BAYqNQHL.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-DuGkdvte.js → chunk-DI55MBZ5-DbsR50vR.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-qY-BVG34.js → chunk-FMBD7UC4-D_KXTL87.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-BM_oi8-e.js → chunk-QN33PNHL-RXXHu7T0.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-BL6_-at8.js → chunk-QZHKN3VN-5QE6weTd.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-38NhX5at.js → chunk-TZMSLE5B-HlRXkCDZ.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CwIsZ53p.js → classDiagram-2ON5EDUG-B90fR_EV.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-CwIsZ53p.js → classDiagram-v2-WZHVMYZB-B90fR_EV.js} +5 -5
- package/dist/server/assets/{clone-BXHuGM8i.js → clone-Bjcb6OQr.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-D1CdgGvI.js → cose-bilkent-S5V4N54A-BgnWrjAl.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-UMvdMLG3.js → dagre-6UL2VRFP-LfRXD26Q.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-DtOD93m7.js → diagram-PSM6KHXK-DLrJ9Eja.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-DViyYq-y.js → diagram-QEK2KX5R-atbHIh96.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-C42mRVEn.js → diagram-S2PKOQOG-BnxctnIJ.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-D14z9IvB.js → erDiagram-Q2GNP2WA-Ct1zXovC.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-BYBNOZwM.js → flowDiagram-NV44I4VS-DtWHb6Ay.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-CaG3uoK-.js → ganttDiagram-JELNMOA3-CySyldy4.js} +2 -2
- package/dist/server/assets/{gitGraph-G5XIXVHT-Dsx3dV0R.js → gitGraph-G5XIXVHT-DFo7FJzL.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-CrSfx7b3.js → gitGraphDiagram-V2S2FVAM-DvT5EUG7.js} +7 -7
- package/dist/server/assets/{graph-gBFInK6H.js → graph-B5XlkLf_.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-DjTWk17l.js → highlighted-body-B3W2YXNL-CLJWhRU_.js} +1 -1
- package/dist/server/assets/{index-C3N_Nx6h.js → index--4MijjkY.js} +2 -2
- package/dist/server/assets/{index-C245EJn1.js → index-4SOjxyuO.js} +2 -2
- package/dist/server/assets/{index-3wtbr7va.js → index-BQ5LDgRA.js} +3 -3
- package/dist/server/assets/{index-CD97pPmc.js → index-BanzNq86.js} +1 -1
- package/dist/server/assets/{index-2gWBdIrR.js → index-BvJzvUfR.js} +2 -2
- package/dist/server/assets/{index-B84Urg23.js → index-C2GzB22l.js} +2 -2
- package/dist/server/assets/{index-QxgXX0fb.js → index-CAJcSCqE.js} +2 -2
- package/dist/server/assets/{index-Bs6a6-xI.js → index-CLUle2oh.js} +5 -5
- package/dist/server/assets/{index-5N2Gh0ba.js → index-CMO4FLK_.js} +2 -2
- package/dist/server/assets/{index-6Zof9vm8.js → index-CXMNOcuN.js} +1 -1
- package/dist/server/assets/{index-Dv-16VYI.js → index-CXmMBSCL.js} +2 -2
- package/dist/server/assets/{index-DXgP0Lsu.js → index-CdgmRfZg.js} +2 -2
- package/dist/server/assets/{index-CwQ5qWPC.js → index-DJ8A5E65.js} +5 -5
- package/dist/server/assets/{index-DZZ6NiTf.js → index-DjySh3G7.js} +3 -3
- package/dist/server/assets/{index-Bd5jTryJ.js → index-DuXjusjn.js} +2 -2
- package/dist/server/assets/{index-DsGPaWHg.js → index-QiPzMfSX.js} +2 -2
- package/dist/server/assets/{index-Bw42FDwO.js → index-SuLB6TaE.js} +2 -2
- package/dist/server/assets/{index-egmIrLx2.js → index-bmq-aMYV.js} +4 -4
- package/dist/server/assets/{info-VBDWY6EO-CueOsYFZ.js → info-VBDWY6EO-CW57QiJi.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-CeyMzohL.js → infoDiagram-HS3SLOUP-D_Zdx-MM.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-ANqeM_TM.js → journeyDiagram-XKPGCS4Q-BcO9qzr2.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-B0RkH45q.js → kanban-definition-3W4ZIXB7-BatZ7RKG.js} +2 -2
- package/dist/server/assets/{layout-JjP5jdu6.js → layout-Cwuj9CwZ.js} +4 -4
- package/dist/server/assets/{linear-BJgoq5J4.js → linear-CP3xC85V.js} +1 -1
- package/dist/server/assets/{mermaid-3ZIDBTTL-CFPuUseQ.js → mermaid-3ZIDBTTL-BZm8jQDo.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-CKKZ1VFr.js → mermaid-parser.core-Cx17C8XR.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-DlEXF5z8.js → mindmap-definition-VGOIOE7T-CpzqFomk.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-CvyxHTRM.js → packet-DYOGHKS2-x3ihoqUO.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-DfpVZlpC.js → pie-VRWISCQL-DsMBDe8r.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-CWkrHsNk.js → pieDiagram-ADFJNKIX-DI4Hh6KE.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-C25p2xz7.js → quadrantDiagram-AYHSOK5B-Cqc_vrUG.js} +2 -2
- package/dist/server/assets/{radar-ZZBFDIW7-DWqPsDMi.js → radar-ZZBFDIW7-CqwCJm3D.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-ACRVXQGO.js → requirementDiagram-UZGBJVZJ-96ab-40P.js} +3 -3
- package/dist/server/assets/{router-GhGSLKfP.js → router-CYNdQEN4.js} +1116 -579
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-uzNSHudY.js → sankeyDiagram-TZEHDZUN-Bux2-BQd.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-C_wFtq8b.js → sequenceDiagram-WL72ISMW-CFKyfvmC.js} +3 -3
- package/dist/server/assets/{square-terminal-cghvb5Il.js → square-terminal-gVSeBp7-.js} +1 -1
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-B9MGwsuS.js → stateDiagram-FKZM4ZOC-DGZQd18J.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-CLHd8oUa.js → stateDiagram-v2-4FDKWEC3-DJXeLDOB.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-CqKot5RT.js → timeline-definition-IT6M3QCI-DzTJZPN5.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-mMRojqRQ.js → treemap-GDKQZRPO-CD9jkQrA.js} +6 -6
- package/dist/server/assets/workspace._workspaceId-ClAAZ5aq.js +23 -0
- package/dist/server/assets/{workspace._workspaceId-DwsRTXCg.js → workspace._workspaceId-DT6Kz8RH.js} +125 -97
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-j8PckQEj.js → xychartDiagram-PRI3JC2R-ByA0_p8p.js} +2 -2
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +489 -242
- package/package.json +4 -4
- package/dist/client/assets/DockviewBrowserContainer-CCBAkU1p.js +0 -5
- package/dist/client/assets/DockviewTerminalContainer-B9hdDoMz.js +0 -2
- package/dist/client/assets/TerminalPanel-BKfWmj6W.js +0 -5
- package/dist/client/assets/arc-DiYEQGs3.js +0 -1
- package/dist/client/assets/architectureDiagram-VXUJARFQ-C5z8L1iK.js +0 -36
- package/dist/client/assets/channel-BnMJuhcI.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-B4Mk_d7A.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-B0hf8Eje.js +0 -1
- package/dist/client/assets/chunk-QN33PNHL-Dit4S-yJ.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-L-h1VSi0.js +0 -1
- package/dist/client/assets/chunk-TZMSLE5B-DpK-hWaC.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-D89oCSXI.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-D89oCSXI.js +0 -1
- package/dist/client/assets/clone-X7FA7kE2.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-CzoIK-3W.js +0 -1
- package/dist/client/assets/dagre-6UL2VRFP-BhfXeb7k.js +0 -4
- package/dist/client/assets/diagram-PSM6KHXK-BwFVwR1b.js +0 -24
- package/dist/client/assets/diagram-QEK2KX5R-BO-CEopy.js +0 -43
- package/dist/client/assets/diagram-S2PKOQOG-BxiH83lN.js +0 -24
- package/dist/client/assets/ganttDiagram-JELNMOA3-B7gBcAFl.js +0 -267
- package/dist/client/assets/gitGraphDiagram-V2S2FVAM-gca_jqKQ.js +0 -65
- package/dist/client/assets/highlighted-body-B3W2YXNL-C2a-lsk8.js +0 -1
- package/dist/client/assets/index-2F-slvqo.js +0 -1
- package/dist/client/assets/index-C4PISrIW.js +0 -1
- package/dist/client/assets/index-CiKTedrx.js +0 -1
- package/dist/client/assets/index-DNrK0iIn.js +0 -7
- package/dist/client/assets/infoDiagram-HS3SLOUP-BK3MmhkJ.js +0 -2
- package/dist/client/assets/main-BLOY6Nam.css +0 -1
- package/dist/client/assets/pieDiagram-ADFJNKIX-CYoHsaM9.js +0 -30
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-DmhEbBY-.js +0 -10
- package/dist/client/assets/stateDiagram-FKZM4ZOC-CafvdTb3.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BkKHK-CQ.js +0 -1
- package/dist/client/assets/useSessionListContext-xer-Wcmf.js +0 -1
- package/dist/client/assets/workspace._workspaceId-CgG1n_1x.js +0 -1
- package/dist/client/assets/workspace._workspaceId.changes-BKX7lUhX.js +0 -1
- package/dist/client/assets/workspace._workspaceId.code-BcnxRdZi.js +0 -1
- package/dist/client/assets/workspace._workspaceId.code._-BbOt6tOD.js +0 -1
- package/dist/client/assets/workspace._workspaceId.code.index-DC2535x-.js +0 -1
- package/dist/client/assets/workspace._workspaceId.index-CNjq1nDf.js +0 -1
- package/dist/client/assets/workspace._workspaceId.terminal-DhYn8I5t.js +0 -2
- package/dist/server/assets/_tanstack-start-manifest_v-BNCQ-izx.js +0 -4
- package/dist/server/assets/useSessionListContext-D_vX6E2e.js +0 -23
- package/dist/server/assets/workspace._workspaceId.changes-C6vwSbUh.js +0 -38
- package/dist/server/assets/workspace._workspaceId.code-Cuj0zH98.js +0 -12
- package/dist/server/assets/workspace._workspaceId.code._-BJdg1-Gs.js +0 -44
- package/dist/server/assets/workspace._workspaceId.code.index-CE_CMD_I.js +0 -36
- package/dist/server/assets/workspace._workspaceId.index-BPhXMwl8.js +0 -112
- package/dist/server/assets/workspace._workspaceId.terminal-BdVDaWNH.js +0 -24
|
@@ -443,7 +443,7 @@ const Link = reactExports.forwardRef(
|
|
|
443
443
|
return reactExports.createElement(_asChild, linkProps, children2);
|
|
444
444
|
}
|
|
445
445
|
);
|
|
446
|
-
let Route$
|
|
446
|
+
let Route$3 = class Route extends BaseRoute {
|
|
447
447
|
/**
|
|
448
448
|
* @deprecated Use the `createRoute` function instead.
|
|
449
449
|
*/
|
|
@@ -495,7 +495,7 @@ let Route$9 = class Route extends BaseRoute {
|
|
|
495
495
|
}
|
|
496
496
|
};
|
|
497
497
|
function createRoute(options) {
|
|
498
|
-
return new Route$
|
|
498
|
+
return new Route$3(
|
|
499
499
|
// TODO: Help us TypeChris, you're our only hope!
|
|
500
500
|
options
|
|
501
501
|
);
|
|
@@ -633,7 +633,7 @@ function lazyRouteComponent(importer, exportName) {
|
|
|
633
633
|
if (!loadPromise) {
|
|
634
634
|
loadPromise = importer().then((res) => {
|
|
635
635
|
loadPromise = void 0;
|
|
636
|
-
comp = res[exportName];
|
|
636
|
+
comp = res[exportName ?? "default"];
|
|
637
637
|
}).catch((err) => {
|
|
638
638
|
error = err;
|
|
639
639
|
if (isModuleNotFoundError(error)) {
|
|
@@ -1093,6 +1093,16 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
1093
1093
|
Component.displayName = toPascalCase(iconName);
|
|
1094
1094
|
return Component;
|
|
1095
1095
|
};
|
|
1096
|
+
const __iconNode$1p = [
|
|
1097
|
+
[
|
|
1098
|
+
"path",
|
|
1099
|
+
{
|
|
1100
|
+
d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
|
|
1101
|
+
key: "169zse"
|
|
1102
|
+
}
|
|
1103
|
+
]
|
|
1104
|
+
];
|
|
1105
|
+
const Activity = createLucideIcon("activity", __iconNode$1p);
|
|
1096
1106
|
const __iconNode$1o = [
|
|
1097
1107
|
["path", { d: "M12 17V3", key: "1cwfxf" }],
|
|
1098
1108
|
["path", { d: "m6 11 6 6 6-6", key: "12ii2o" }],
|
|
@@ -40500,53 +40510,53 @@ async function loadLanguage(lang) {
|
|
|
40500
40510
|
try {
|
|
40501
40511
|
switch (lang) {
|
|
40502
40512
|
case "javascript":
|
|
40503
|
-
return import("./index-
|
|
40513
|
+
return import("./index-CAJcSCqE.js").then((m2) => m2.javascript());
|
|
40504
40514
|
case "jsx":
|
|
40505
|
-
return import("./index-
|
|
40515
|
+
return import("./index-CAJcSCqE.js").then((m2) => m2.javascript({ jsx: true }));
|
|
40506
40516
|
case "typescript":
|
|
40507
|
-
return import("./index-
|
|
40517
|
+
return import("./index-CAJcSCqE.js").then(
|
|
40508
40518
|
(m2) => m2.javascript({ typescript: true })
|
|
40509
40519
|
);
|
|
40510
40520
|
case "tsx":
|
|
40511
|
-
return import("./index-
|
|
40521
|
+
return import("./index-CAJcSCqE.js").then(
|
|
40512
40522
|
(m2) => m2.javascript({ jsx: true, typescript: true })
|
|
40513
40523
|
);
|
|
40514
40524
|
case "python":
|
|
40515
|
-
return import("./index-
|
|
40525
|
+
return import("./index-QiPzMfSX.js").then((m2) => m2.python());
|
|
40516
40526
|
case "html":
|
|
40517
|
-
return import("./index-
|
|
40527
|
+
return import("./index-bmq-aMYV.js").then((m2) => m2.html());
|
|
40518
40528
|
case "css":
|
|
40519
|
-
return import("./index-
|
|
40529
|
+
return import("./index-4SOjxyuO.js").then((m2) => m2.css());
|
|
40520
40530
|
case "scss":
|
|
40521
40531
|
case "sass":
|
|
40522
|
-
return import("./index-
|
|
40532
|
+
return import("./index-BQ5LDgRA.js").then((m2) => m2.sass());
|
|
40523
40533
|
case "less":
|
|
40524
|
-
return import("./index-
|
|
40534
|
+
return import("./index-DjySh3G7.js").then((m2) => m2.less());
|
|
40525
40535
|
case "json":
|
|
40526
40536
|
case "jsonc":
|
|
40527
|
-
return import("./index-
|
|
40537
|
+
return import("./index-CdgmRfZg.js").then((m2) => m2.json());
|
|
40528
40538
|
case "markdown":
|
|
40529
40539
|
case "mdx":
|
|
40530
|
-
return import("./index-
|
|
40540
|
+
return import("./index-CLUle2oh.js").then((m2) => m2.markdown());
|
|
40531
40541
|
case "xml":
|
|
40532
|
-
return import("./index-
|
|
40542
|
+
return import("./index-CMO4FLK_.js").then((m2) => m2.xml());
|
|
40533
40543
|
case "yaml":
|
|
40534
|
-
return import("./index-
|
|
40544
|
+
return import("./index-SuLB6TaE.js").then((m2) => m2.yaml());
|
|
40535
40545
|
case "sql":
|
|
40536
|
-
return import("./index-
|
|
40546
|
+
return import("./index-CXmMBSCL.js").then((m2) => m2.sql());
|
|
40537
40547
|
case "rust":
|
|
40538
|
-
return import("./index
|
|
40548
|
+
return import("./index--4MijjkY.js").then((m2) => m2.rust());
|
|
40539
40549
|
case "go":
|
|
40540
|
-
return import("./index-
|
|
40550
|
+
return import("./index-C2GzB22l.js").then((m2) => m2.go());
|
|
40541
40551
|
case "java":
|
|
40542
|
-
return import("./index-
|
|
40552
|
+
return import("./index-DuXjusjn.js").then((m2) => m2.java());
|
|
40543
40553
|
case "kotlin":
|
|
40544
|
-
return import("./index-
|
|
40554
|
+
return import("./index-DuXjusjn.js").then((m2) => m2.java());
|
|
40545
40555
|
case "c":
|
|
40546
40556
|
case "cpp":
|
|
40547
|
-
return import("./index-
|
|
40557
|
+
return import("./index-BvJzvUfR.js").then((m2) => m2.cpp());
|
|
40548
40558
|
case "php":
|
|
40549
|
-
return import("./index-
|
|
40559
|
+
return import("./index-DJ8A5E65.js").then((m2) => m2.php());
|
|
40550
40560
|
// Legacy modes via StreamLanguage
|
|
40551
40561
|
case "bash":
|
|
40552
40562
|
case "fish":
|
|
@@ -40612,7 +40622,7 @@ function baseViewerExtensions(isDark2 = true, opts) {
|
|
|
40612
40622
|
rootDarkStyles.height = "100%";
|
|
40613
40623
|
rootLightStyles.height = "100%";
|
|
40614
40624
|
}
|
|
40615
|
-
const scrollerStyles = naturalHeight ? {
|
|
40625
|
+
const scrollerStyles = naturalHeight ? { overflowX: "auto", height: "auto" } : { overflow: "auto" };
|
|
40616
40626
|
return [
|
|
40617
40627
|
EditorState.readOnly.of(true),
|
|
40618
40628
|
EditorView.editable.of(false),
|
|
@@ -41928,6 +41938,7 @@ function useLabelFilter() {
|
|
|
41928
41938
|
}, []);
|
|
41929
41939
|
return [value, setLabelFilter];
|
|
41930
41940
|
}
|
|
41941
|
+
const EMPTY_PROJECTS = Object.freeze([]);
|
|
41931
41942
|
function useProjects() {
|
|
41932
41943
|
const adapter2 = useAdapter();
|
|
41933
41944
|
const { data, isLoading, error } = useQuery({
|
|
@@ -41936,7 +41947,7 @@ function useProjects() {
|
|
|
41936
41947
|
refetchInterval: 3e4
|
|
41937
41948
|
});
|
|
41938
41949
|
return {
|
|
41939
|
-
projects: data ??
|
|
41950
|
+
projects: data ?? EMPTY_PROJECTS,
|
|
41940
41951
|
isLoading,
|
|
41941
41952
|
error: error ? String(error) : null
|
|
41942
41953
|
};
|
|
@@ -46654,6 +46665,11 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
46654
46665
|
// "currently-active link in a list of related links".
|
|
46655
46666
|
"data-active": isActive || void 0,
|
|
46656
46667
|
"aria-current": isActive ? "page" : void 0,
|
|
46668
|
+
// Stable test hook keyed by workspaceId so integration tests can right-
|
|
46669
|
+
// click the specific card (issue #508). Branches with `/` in them are
|
|
46670
|
+
// collapsed to `-` by `toWorkspaceId` so the attribute value matches
|
|
46671
|
+
// the canonical workspace id used everywhere else in the UI.
|
|
46672
|
+
"data-testid": `project-list__workspace-card--${workspaceId}`,
|
|
46657
46673
|
onClick: (e2) => {
|
|
46658
46674
|
e2.stopPropagation();
|
|
46659
46675
|
handleClick();
|
|
@@ -53702,6 +53718,7 @@ function storeViewMode(mode) {
|
|
|
53702
53718
|
}
|
|
53703
53719
|
const UNCOMMITTED_VALUE = "__uncommitted__";
|
|
53704
53720
|
const EXPAND_ALL_KEY = "band:diff-expand-all";
|
|
53721
|
+
const MAX_MOUNTED_EDITORS = 50;
|
|
53705
53722
|
function getStoredExpandAll() {
|
|
53706
53723
|
try {
|
|
53707
53724
|
return localStorage.getItem(EXPAND_ALL_KEY) === "true";
|
|
@@ -54055,6 +54072,8 @@ function LazyFileRow({
|
|
|
54055
54072
|
isOpen,
|
|
54056
54073
|
isActive,
|
|
54057
54074
|
scrollContainerEl,
|
|
54075
|
+
isMountedAllowed,
|
|
54076
|
+
onRowVisible,
|
|
54058
54077
|
onToggle,
|
|
54059
54078
|
onLoadMoreContext,
|
|
54060
54079
|
onShowFullFile,
|
|
@@ -54067,7 +54086,8 @@ function LazyFileRow({
|
|
|
54067
54086
|
const [revertDialogOpen, setRevertDialogOpen] = reactExports.useState(false);
|
|
54068
54087
|
const containerRef = reactExports.useRef(null);
|
|
54069
54088
|
const diffBodyRef = reactExports.useRef(null);
|
|
54070
|
-
const [
|
|
54089
|
+
const [everMounted, setEverMounted] = reactExports.useState(false);
|
|
54090
|
+
const shouldRender = everMounted && isMountedAllowed;
|
|
54071
54091
|
const [editorRendered, setEditorRendered] = reactExports.useState(false);
|
|
54072
54092
|
const editorRenderRafRef = reactExports.useRef(null);
|
|
54073
54093
|
reactExports.useEffect(() => {
|
|
@@ -54078,9 +54098,11 @@ function LazyFileRow({
|
|
|
54078
54098
|
}
|
|
54079
54099
|
};
|
|
54080
54100
|
}, []);
|
|
54101
|
+
const onRowVisibleRef = reactExports.useRef(onRowVisible);
|
|
54102
|
+
onRowVisibleRef.current = onRowVisible;
|
|
54081
54103
|
reactExports.useEffect(() => {
|
|
54082
54104
|
if (!isOpen) {
|
|
54083
|
-
|
|
54105
|
+
setEverMounted(false);
|
|
54084
54106
|
return;
|
|
54085
54107
|
}
|
|
54086
54108
|
const el = containerRef.current;
|
|
@@ -54092,7 +54114,10 @@ function LazyFileRow({
|
|
|
54092
54114
|
if (!entry) return;
|
|
54093
54115
|
const root2 = entry.rootBounds;
|
|
54094
54116
|
if (root2 && root2.width === 0 && root2.height === 0) return;
|
|
54095
|
-
|
|
54117
|
+
if (entry.isIntersecting) {
|
|
54118
|
+
setEverMounted(true);
|
|
54119
|
+
onRowVisibleRef.current(filename);
|
|
54120
|
+
}
|
|
54096
54121
|
},
|
|
54097
54122
|
{
|
|
54098
54123
|
root: scrollContainerEl,
|
|
@@ -54105,9 +54130,9 @@ function LazyFileRow({
|
|
|
54105
54130
|
);
|
|
54106
54131
|
observer.observe(el);
|
|
54107
54132
|
return () => observer.disconnect();
|
|
54108
|
-
}, [isOpen, scrollContainerEl]);
|
|
54133
|
+
}, [isOpen, scrollContainerEl, filename]);
|
|
54109
54134
|
reactExports.useEffect(() => {
|
|
54110
|
-
if (!
|
|
54135
|
+
if (!shouldRender || !editorRendered || !onMeasureHeight) return;
|
|
54111
54136
|
const el = diffBodyRef.current;
|
|
54112
54137
|
if (!el) return;
|
|
54113
54138
|
if (typeof ResizeObserver === "undefined") return;
|
|
@@ -54132,7 +54157,7 @@ function LazyFileRow({
|
|
|
54132
54157
|
if (frame2 != null) cancelAnimationFrame(frame2);
|
|
54133
54158
|
observer.disconnect();
|
|
54134
54159
|
};
|
|
54135
|
-
}, [
|
|
54160
|
+
}, [shouldRender, editorRendered, filename, onMeasureHeight]);
|
|
54136
54161
|
const handleEditorViews = reactExports.useCallback(
|
|
54137
54162
|
(views) => {
|
|
54138
54163
|
onEditorViews?.(filename, views);
|
|
@@ -54152,11 +54177,11 @@ function LazyFileRow({
|
|
|
54152
54177
|
[filename, onEditorViews]
|
|
54153
54178
|
);
|
|
54154
54179
|
reactExports.useEffect(() => {
|
|
54155
|
-
if (!isOpen || !
|
|
54180
|
+
if (!isOpen || !shouldRender) return;
|
|
54156
54181
|
return () => {
|
|
54157
54182
|
onEditorViews?.(filename, []);
|
|
54158
54183
|
};
|
|
54159
|
-
}, [isOpen,
|
|
54184
|
+
}, [isOpen, shouldRender, filename, onEditorViews]);
|
|
54160
54185
|
const toggle = reactExports.useCallback(() => {
|
|
54161
54186
|
onToggle(filename);
|
|
54162
54187
|
}, [filename, onToggle]);
|
|
@@ -54183,6 +54208,7 @@ function LazyFileRow({
|
|
|
54183
54208
|
{
|
|
54184
54209
|
type: "button",
|
|
54185
54210
|
onClick: toggle,
|
|
54211
|
+
"data-testid": "diff-view__file-row-toggle",
|
|
54186
54212
|
className: "sticky top-0 z-10 flex w-full items-center gap-2 bg-muted px-4 py-2.5 text-left text-sm hover:bg-accent",
|
|
54187
54213
|
children: [
|
|
54188
54214
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -54286,26 +54312,39 @@ function LazyFileRow({
|
|
|
54286
54312
|
),
|
|
54287
54313
|
isOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-t border-border/20 bg-muted/30", children: [
|
|
54288
54314
|
diffError && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-4 py-4 text-sm text-destructive", children: diffError }),
|
|
54289
|
-
diff2 !== null && (
|
|
54315
|
+
diff2 !== null && (shouldRender ? (
|
|
54290
54316
|
// Wrapper is observed by the ResizeObserver in the effect
|
|
54291
54317
|
// above. Its rendered height — "Show full file" bar plus the
|
|
54292
54318
|
// CodeMirror editor — is reported back as
|
|
54293
54319
|
// `measuredHeight`, then reused verbatim as the placeholder
|
|
54294
|
-
// height on the next unmount cycle
|
|
54320
|
+
// height on the next unmount cycle (a never-visited row or
|
|
54321
|
+
// an LRU-evicted one).
|
|
54295
54322
|
//
|
|
54296
54323
|
// The `minHeight` hold prevents a layout shift during the
|
|
54297
|
-
// window between (a)
|
|
54298
|
-
// the editor's async `setup` finishing (loadLanguage
|
|
54299
|
-
// + new MergeView() + first paint). Without it the
|
|
54300
|
-
// is empty-auto-height for that window, collapsing
|
|
54301
|
-
// to the "Show full file" bar (~30px) and pushing
|
|
54302
|
-
// row below it upward; when the editor paints they
|
|
54303
|
-
// back down. We pin the wrapper to the
|
|
54304
|
-
// height (the same value the placeholder
|
|
54305
|
-
// `editorRendered` flips, then let the
|
|
54306
|
-
// height take over. The ResizeObserver
|
|
54307
|
-
// `editorRendered` is true (see deps
|
|
54308
|
-
// value never bleeds into the
|
|
54324
|
+
// window between (a) `shouldRender` flipping to true and
|
|
54325
|
+
// (b) the editor's async `setup` finishing (loadLanguage
|
|
54326
|
+
// await + new MergeView() + first paint). Without it the
|
|
54327
|
+
// wrapper is empty-auto-height for that window, collapsing
|
|
54328
|
+
// the row to the "Show full file" bar (~30px) and pushing
|
|
54329
|
+
// every row below it upward; when the editor paints they
|
|
54330
|
+
// snap back down. We pin the wrapper to the
|
|
54331
|
+
// cached/estimated height (the same value the placeholder
|
|
54332
|
+
// uses) until `editorRendered` flips, then let the
|
|
54333
|
+
// editor's natural height take over. The ResizeObserver
|
|
54334
|
+
// only attaches once `editorRendered` is true (see deps
|
|
54335
|
+
// above), so the held value never bleeds into the
|
|
54336
|
+
// measuredHeight cache.
|
|
54337
|
+
//
|
|
54338
|
+
// Mount-once: once `shouldRender` flips true, it stays
|
|
54339
|
+
// true across scroll-aways. The editor's natural height
|
|
54340
|
+
// remains in the layout — the row stays the same size
|
|
54341
|
+
// whether the user is currently looking at it or
|
|
54342
|
+
// scrolled past — so there's no scroll-shift trade-off
|
|
54343
|
+
// to manage. The browser handles culling offscreen tiles
|
|
54344
|
+
// cheaply; the only thing that brings `shouldRender`
|
|
54345
|
+
// back to false is collapse / LRU eviction / target
|
|
54346
|
+
// change, all of which deliberately tear the editor
|
|
54347
|
+
// down.
|
|
54309
54348
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
54310
54349
|
"div",
|
|
54311
54350
|
{
|
|
@@ -54337,10 +54376,12 @@ function LazyFileRow({
|
|
|
54337
54376
|
) : (
|
|
54338
54377
|
// Placeholder occupying the SAME pixel height the CodeMirror
|
|
54339
54378
|
// editor would render at, so the row's overall size doesn't
|
|
54340
|
-
// change when
|
|
54341
|
-
//
|
|
54342
|
-
//
|
|
54343
|
-
//
|
|
54379
|
+
// change when LRU eviction tears the editor down (or while
|
|
54380
|
+
// a never-visited row waits for its first IO intersect).
|
|
54381
|
+
// Without this, switching the body between editor and
|
|
54382
|
+
// placeholder would push everything below upward —
|
|
54383
|
+
// visually identical to a layout shift, even though no
|
|
54384
|
+
// content actually moved.
|
|
54344
54385
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": true, style: { height: placeholderHeight } })
|
|
54345
54386
|
))
|
|
54346
54387
|
] })
|
|
@@ -54394,6 +54435,31 @@ function DiffView({
|
|
|
54394
54435
|
const [expandedFiles, setExpandedFiles] = reactExports.useState(/* @__PURE__ */ new Set());
|
|
54395
54436
|
const expandedFilesRef = reactExports.useRef(expandedFiles);
|
|
54396
54437
|
expandedFilesRef.current = expandedFiles;
|
|
54438
|
+
const [mountedFiles, setMountedFiles] = reactExports.useState(() => /* @__PURE__ */ new Set());
|
|
54439
|
+
const mountRecencyRef = reactExports.useRef(/* @__PURE__ */ new Map());
|
|
54440
|
+
const recencyCounterRef = reactExports.useRef(0);
|
|
54441
|
+
const handleRowVisible = reactExports.useCallback((filename) => {
|
|
54442
|
+
recencyCounterRef.current += 1;
|
|
54443
|
+
mountRecencyRef.current.set(filename, recencyCounterRef.current);
|
|
54444
|
+
setMountedFiles((prev2) => {
|
|
54445
|
+
if (prev2.has(filename) && prev2.size <= MAX_MOUNTED_EDITORS) return prev2;
|
|
54446
|
+
const next2 = new Set(prev2);
|
|
54447
|
+
next2.add(filename);
|
|
54448
|
+
if (next2.size > MAX_MOUNTED_EDITORS) {
|
|
54449
|
+
let oldestFilename = null;
|
|
54450
|
+
let oldestRecency = Number.POSITIVE_INFINITY;
|
|
54451
|
+
for (const candidate of next2) {
|
|
54452
|
+
const r2 = mountRecencyRef.current.get(candidate) ?? 0;
|
|
54453
|
+
if (r2 < oldestRecency) {
|
|
54454
|
+
oldestRecency = r2;
|
|
54455
|
+
oldestFilename = candidate;
|
|
54456
|
+
}
|
|
54457
|
+
}
|
|
54458
|
+
if (oldestFilename !== null) next2.delete(oldestFilename);
|
|
54459
|
+
}
|
|
54460
|
+
return next2;
|
|
54461
|
+
});
|
|
54462
|
+
}, []);
|
|
54397
54463
|
const prevFilenamesRef = reactExports.useRef(/* @__PURE__ */ new Set());
|
|
54398
54464
|
const prevFingerprintRef = reactExports.useRef("");
|
|
54399
54465
|
const [viewMode, setViewModeState] = reactExports.useState(getStoredViewMode);
|
|
@@ -54805,6 +54871,8 @@ function DiffView({
|
|
|
54805
54871
|
summaryRef.current = null;
|
|
54806
54872
|
setDiffCache(/* @__PURE__ */ new Map());
|
|
54807
54873
|
setExpandedFiles(/* @__PURE__ */ new Set());
|
|
54874
|
+
setMountedFiles(/* @__PURE__ */ new Set());
|
|
54875
|
+
mountRecencyRef.current.clear();
|
|
54808
54876
|
prevFilenamesRef.current = /* @__PURE__ */ new Set();
|
|
54809
54877
|
prevFingerprintRef.current = "";
|
|
54810
54878
|
const fetchSummary = (forceRefresh = false) => {
|
|
@@ -54983,6 +55051,23 @@ function DiffView({
|
|
|
54983
55051
|
if (shouldDispatchFetch(diffCacheRef.current.get(n2))) fetchFileDiff(n2);
|
|
54984
55052
|
}
|
|
54985
55053
|
}, [filenames, expandAll, fetchFileDiff]);
|
|
55054
|
+
reactExports.useEffect(() => {
|
|
55055
|
+
const live = new Set(filenames);
|
|
55056
|
+
setMountedFiles((prev2) => {
|
|
55057
|
+
let changed = false;
|
|
55058
|
+
const next2 = new Set(prev2);
|
|
55059
|
+
for (const name2 of prev2) {
|
|
55060
|
+
if (!live.has(name2)) {
|
|
55061
|
+
next2.delete(name2);
|
|
55062
|
+
changed = true;
|
|
55063
|
+
}
|
|
55064
|
+
}
|
|
55065
|
+
return changed ? next2 : prev2;
|
|
55066
|
+
});
|
|
55067
|
+
for (const name2 of Array.from(mountRecencyRef.current.keys())) {
|
|
55068
|
+
if (!live.has(name2)) mountRecencyRef.current.delete(name2);
|
|
55069
|
+
}
|
|
55070
|
+
}, [filenames]);
|
|
54986
55071
|
const focusedDiffEntry = focusedFile && diffCache.get(focusedFile.path);
|
|
54987
55072
|
const focusedLineCounts = focusedDiffEntry ? focusedDiffEntry.lineCounts : null;
|
|
54988
55073
|
const lastScrollRef = reactExports.useRef({
|
|
@@ -55334,42 +55419,52 @@ function DiffView({
|
|
|
55334
55419
|
)
|
|
55335
55420
|
}
|
|
55336
55421
|
),
|
|
55337
|
-
hasChanges && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
55338
|
-
|
|
55339
|
-
|
|
55340
|
-
|
|
55341
|
-
|
|
55342
|
-
|
|
55343
|
-
|
|
55344
|
-
|
|
55345
|
-
|
|
55346
|
-
|
|
55347
|
-
|
|
55348
|
-
|
|
55349
|
-
|
|
55350
|
-
|
|
55351
|
-
|
|
55352
|
-
|
|
55353
|
-
|
|
55354
|
-
|
|
55355
|
-
|
|
55356
|
-
|
|
55357
|
-
|
|
55358
|
-
|
|
55359
|
-
|
|
55360
|
-
|
|
55361
|
-
|
|
55362
|
-
|
|
55363
|
-
|
|
55364
|
-
|
|
55365
|
-
|
|
55366
|
-
|
|
55367
|
-
|
|
55368
|
-
|
|
55369
|
-
|
|
55370
|
-
|
|
55371
|
-
|
|
55372
|
-
|
|
55422
|
+
hasChanges && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
55423
|
+
"div",
|
|
55424
|
+
{
|
|
55425
|
+
ref: setScrollContainerNode,
|
|
55426
|
+
"data-testid": "diff-view__scroller",
|
|
55427
|
+
className: "min-h-0 flex-1 overflow-y-auto",
|
|
55428
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-3 p-3", children: filenames.map((filename, index2) => {
|
|
55429
|
+
const isLast = index2 === filenames.length - 1;
|
|
55430
|
+
const row2 = /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
55431
|
+
LazyFileRow,
|
|
55432
|
+
{
|
|
55433
|
+
filename,
|
|
55434
|
+
status: fileStatuses[filename],
|
|
55435
|
+
cacheEntry: diffCache.get(filename),
|
|
55436
|
+
viewMode: effectiveViewMode,
|
|
55437
|
+
isOpen: expandedFiles.has(filename),
|
|
55438
|
+
isActive: activeFile === filename,
|
|
55439
|
+
scrollContainerEl,
|
|
55440
|
+
isMountedAllowed: mountedFiles.has(filename),
|
|
55441
|
+
onRowVisible: handleRowVisible,
|
|
55442
|
+
onToggle: handleToggleFile,
|
|
55443
|
+
onLoadMoreContext: handleLoadMoreContext,
|
|
55444
|
+
onShowFullFile: handleShowFullFile,
|
|
55445
|
+
onOpenFile,
|
|
55446
|
+
onRevertFile: adapter2.revertFile ? handleRevertFile : void 0,
|
|
55447
|
+
onEditorViews: handleEditorViews,
|
|
55448
|
+
onMeasureHeight: handleMeasureHeight
|
|
55449
|
+
},
|
|
55450
|
+
filename
|
|
55451
|
+
);
|
|
55452
|
+
if (!isLast) return row2;
|
|
55453
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
55454
|
+
"div",
|
|
55455
|
+
{
|
|
55456
|
+
className: "flex flex-col",
|
|
55457
|
+
style: scrollContainerHeight > 0 ? { minHeight: scrollContainerHeight } : void 0,
|
|
55458
|
+
children: [
|
|
55459
|
+
row2,
|
|
55460
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "flex-1" })
|
|
55461
|
+
]
|
|
55462
|
+
},
|
|
55463
|
+
`${filename}-last-wrapper`
|
|
55464
|
+
);
|
|
55465
|
+
}) })
|
|
55466
|
+
}
|
|
55467
|
+
),
|
|
55373
55468
|
gitOpStatus && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
55374
55469
|
"div",
|
|
55375
55470
|
{
|
|
@@ -64309,22 +64404,16 @@ class WebDashboardAdapter {
|
|
|
64309
64404
|
});
|
|
64310
64405
|
}
|
|
64311
64406
|
}
|
|
64312
|
-
const VALID_TAB_PREFIXES = ["/changes", "/code", "/terminal"];
|
|
64313
64407
|
class WebCapabilities {
|
|
64314
64408
|
copyPath = false;
|
|
64315
64409
|
navigate;
|
|
64410
|
+
// The workspace URL no longer carries a sub-path for the active tab —
|
|
64411
|
+
// tab state lives entirely inside `MobileWorkspaceLayout`, and the
|
|
64412
|
+
// desktop dockview at AppShell renders every panel regardless of URL.
|
|
64413
|
+
// See issue #467 for the refactor that removed the `band-tab:` session
|
|
64414
|
+
// store and the `/changes` / `/code` / `/terminal` child routes.
|
|
64316
64415
|
getWorkspaceHref(workspaceId) {
|
|
64317
|
-
|
|
64318
|
-
try {
|
|
64319
|
-
const stored = sessionStorage.getItem(`band-tab:${workspaceId}`);
|
|
64320
|
-
if (stored !== null) {
|
|
64321
|
-
if (stored === "" || VALID_TAB_PREFIXES.some((p2) => stored.startsWith(p2))) {
|
|
64322
|
-
return `${base2}${stored}`;
|
|
64323
|
-
}
|
|
64324
|
-
}
|
|
64325
|
-
} catch {
|
|
64326
|
-
}
|
|
64327
|
-
return base2;
|
|
64416
|
+
return `/workspace/${encodeURIComponent(workspaceId)}`;
|
|
64328
64417
|
}
|
|
64329
64418
|
async openUrl(url) {
|
|
64330
64419
|
window.open(url, "_blank");
|
|
@@ -79943,6 +80032,101 @@ function applyMaximizedGroupToApi(api, desired) {
|
|
|
79943
80032
|
if (next2.api.isMaximized()) return;
|
|
79944
80033
|
next2.api.maximize();
|
|
79945
80034
|
}
|
|
80035
|
+
const EDGE_GROUP_IDS$1 = {
|
|
80036
|
+
left: "edge-left",
|
|
80037
|
+
right: "edge-right",
|
|
80038
|
+
bottom: "edge-bottom"
|
|
80039
|
+
};
|
|
80040
|
+
function ensureEdgeGroups(api) {
|
|
80041
|
+
if (api.getEdgeGroup("top")) {
|
|
80042
|
+
try {
|
|
80043
|
+
api.removeEdgeGroup("top");
|
|
80044
|
+
} catch {
|
|
80045
|
+
}
|
|
80046
|
+
}
|
|
80047
|
+
for (const direction of Object.keys(EDGE_GROUP_IDS$1)) {
|
|
80048
|
+
const id28 = EDGE_GROUP_IDS$1[direction];
|
|
80049
|
+
if (!api.groups.some((g2) => g2.id === id28)) {
|
|
80050
|
+
try {
|
|
80051
|
+
api.addEdgeGroup(direction, { id: id28, collapsed: true });
|
|
80052
|
+
} catch {
|
|
80053
|
+
}
|
|
80054
|
+
}
|
|
80055
|
+
}
|
|
80056
|
+
refreshEdgeGroupVisibility(api, false);
|
|
80057
|
+
}
|
|
80058
|
+
function refreshEdgeGroupVisibility(api, forceVisible) {
|
|
80059
|
+
for (const direction of Object.keys(EDGE_GROUP_IDS$1)) {
|
|
80060
|
+
const id28 = EDGE_GROUP_IDS$1[direction];
|
|
80061
|
+
const group = api.groups.find((g2) => g2.id === id28);
|
|
80062
|
+
if (!group) continue;
|
|
80063
|
+
const isEmpty2 = group.panels.length === 0;
|
|
80064
|
+
try {
|
|
80065
|
+
api.setEdgeGroupVisible(direction, forceVisible || !isEmpty2);
|
|
80066
|
+
} catch {
|
|
80067
|
+
}
|
|
80068
|
+
}
|
|
80069
|
+
}
|
|
80070
|
+
const innerDockviewRegistrations = /* @__PURE__ */ new Set();
|
|
80071
|
+
function registerInnerDockview(containerEl, api) {
|
|
80072
|
+
const registration = { containerEl, api };
|
|
80073
|
+
innerDockviewRegistrations.add(registration);
|
|
80074
|
+
return () => {
|
|
80075
|
+
innerDockviewRegistrations.delete(registration);
|
|
80076
|
+
};
|
|
80077
|
+
}
|
|
80078
|
+
function findFocusedInnerDockview() {
|
|
80079
|
+
const active = document.activeElement;
|
|
80080
|
+
if (!active) return null;
|
|
80081
|
+
for (const reg of innerDockviewRegistrations) {
|
|
80082
|
+
if (reg.containerEl.contains(active)) {
|
|
80083
|
+
return reg.api;
|
|
80084
|
+
}
|
|
80085
|
+
}
|
|
80086
|
+
return null;
|
|
80087
|
+
}
|
|
80088
|
+
function toggleEdgeGroup(api, direction) {
|
|
80089
|
+
const id28 = EDGE_GROUP_IDS$1[direction];
|
|
80090
|
+
const group = api.groups.find((g2) => g2.id === id28);
|
|
80091
|
+
if (!group) return false;
|
|
80092
|
+
if (group.panels.length === 0) return false;
|
|
80093
|
+
try {
|
|
80094
|
+
if (group.api.isCollapsed()) group.api.expand();
|
|
80095
|
+
else group.api.collapse();
|
|
80096
|
+
} catch {
|
|
80097
|
+
return false;
|
|
80098
|
+
}
|
|
80099
|
+
return true;
|
|
80100
|
+
}
|
|
80101
|
+
function attachEdgeGroupDragVisibility(api) {
|
|
80102
|
+
let isDragging = false;
|
|
80103
|
+
const refresh = () => {
|
|
80104
|
+
refreshEdgeGroupVisibility(api, isDragging);
|
|
80105
|
+
};
|
|
80106
|
+
const startDrag = () => {
|
|
80107
|
+
isDragging = true;
|
|
80108
|
+
refresh();
|
|
80109
|
+
};
|
|
80110
|
+
const endDrag = () => {
|
|
80111
|
+
isDragging = false;
|
|
80112
|
+
refresh();
|
|
80113
|
+
};
|
|
80114
|
+
const d1 = api.onWillDragPanel(startDrag);
|
|
80115
|
+
const d2 = api.onWillDragGroup(startDrag);
|
|
80116
|
+
const d3 = api.onDidMovePanel(endDrag);
|
|
80117
|
+
const d4 = api.onDidRemovePanel(endDrag);
|
|
80118
|
+
const onDragEndNative = () => endDrag();
|
|
80119
|
+
document.addEventListener("drop", onDragEndNative, true);
|
|
80120
|
+
document.addEventListener("dragend", onDragEndNative, true);
|
|
80121
|
+
return () => {
|
|
80122
|
+
d1.dispose();
|
|
80123
|
+
d2.dispose();
|
|
80124
|
+
d3.dispose();
|
|
80125
|
+
d4.dispose();
|
|
80126
|
+
document.removeEventListener("drop", onDragEndNative, true);
|
|
80127
|
+
document.removeEventListener("dragend", onDragEndNative, true);
|
|
80128
|
+
};
|
|
80129
|
+
}
|
|
79946
80130
|
function parseWorkspaceFromPath(pathname) {
|
|
79947
80131
|
const match = pathname.match(/^\/workspace\/([^/]+)/);
|
|
79948
80132
|
return match ? decodeURIComponent(match[1]) : null;
|
|
@@ -108159,7 +108343,7 @@ var tn = f$5("block", "before:content-[counter(line)]", "before:inline-block", "
|
|
|
108159
108343
|
var et$1 = ({ className: e2, language: t2, style: o3, isIncomplete: n2, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f$5("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e2), "data-incomplete": n2 || void 0, "data-language": t2, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o3 }, ...s2 });
|
|
108160
108344
|
var Se$1 = reactExports.createContext({ code: "" }), de$2 = () => reactExports.useContext(Se$1);
|
|
108161
108345
|
var ot$1 = ({ language: e2 }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e2, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e2 }) });
|
|
108162
|
-
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-
|
|
108346
|
+
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-CLJWhRU_.js").then((e2) => ({ default: e2.HighlightedCodeBlockBody }))), rt = ({ code: e2, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
|
|
108163
108347
|
let i2 = reactExports.useMemo(() => e2.replace(cn, ""), [e2]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
|
|
108164
108348
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
|
|
108165
108349
|
return jsxRuntimeExports.jsx(Se$1.Provider, { value: { code: e2 }, children: jsxRuntimeExports.jsxs(et$1, { isIncomplete: s2, language: t2, children: [jsxRuntimeExports.jsx(ot$1, { language: t2 }), n2 ? jsxRuntimeExports.jsx("div", { className: "pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end", children: jsxRuntimeExports.jsx("div", { className: "pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur", "data-streamdown": "code-block-actions", children: n2 }) }) : null, jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: jsxRuntimeExports.jsx(Qe$1, { className: o3, language: t2, result: c2, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o3, code: i2, language: t2, raw: c2, ...r2 }) })] }) });
|
|
@@ -108481,7 +108665,7 @@ var Dt = ({ children: e2, className: t2, onDownload: o3, onError: n2 }) => {
|
|
|
108481
108665
|
}, []), jsxRuntimeExports.jsxs("div", { className: "relative", ref: i2, children: [jsxRuntimeExports.jsx("button", { className: f$5("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", t2), disabled: c2, onClick: () => r2(!s2), title: "Download table", type: "button", children: e2 != null ? e2 : jsxRuntimeExports.jsx(Z$2, { size: 14 }) }), s2 ? jsxRuntimeExports.jsxs("div", { className: "absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg", children: [jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("csv"), title: "Download table as CSV", type: "button", children: "CSV" }), jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("markdown"), title: "Download table as Markdown", type: "button", children: "Markdown" })] }) : null] });
|
|
108482
108666
|
};
|
|
108483
108667
|
var Vt = ({ children: e2, className: t2, showControls: o3, ...n2 }) => jsxRuntimeExports.jsxs("div", { className: "my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2", "data-streamdown": "table-wrapper", children: [o3 ? jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end gap-1", children: [jsxRuntimeExports.jsx(Ht, {}), jsxRuntimeExports.jsx(Dt, {})] }) : null, jsxRuntimeExports.jsx("div", { className: "border-collapse overflow-x-auto overscroll-y-auto rounded-md border border-border bg-background", children: jsxRuntimeExports.jsx("table", { className: f$5("w-full divide-y divide-border", t2), "data-streamdown": "table", ...n2, children: e2 }) })] });
|
|
108484
|
-
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-
|
|
108668
|
+
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-BZm8jQDo.js").then((e2) => ({ default: e2.Mermaid }))), Kn = /language-([^\s]+)/;
|
|
108485
108669
|
function ke$1(e2, t2) {
|
|
108486
108670
|
if (!(e2 != null && e2.position || t2 != null && t2.position)) return true;
|
|
108487
108671
|
if (!(e2 != null && e2.position && (t2 != null && t2.position))) return false;
|
|
@@ -158283,12 +158467,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
158283
158467
|
registerLayoutLoaders([
|
|
158284
158468
|
{
|
|
158285
158469
|
name: "dagre",
|
|
158286
|
-
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-
|
|
158470
|
+
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-LfRXD26Q.js"), "loader")
|
|
158287
158471
|
},
|
|
158288
158472
|
...[
|
|
158289
158473
|
{
|
|
158290
158474
|
name: "cose-bilkent",
|
|
158291
|
-
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-
|
|
158475
|
+
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-BgnWrjAl.js"), "loader")
|
|
158292
158476
|
}
|
|
158293
158477
|
]
|
|
158294
158478
|
]);
|
|
@@ -158727,7 +158911,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
158727
158911
|
return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
|
|
158728
158912
|
}, "detector");
|
|
158729
158913
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
158730
|
-
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-
|
|
158914
|
+
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-MW5H9zoJ.js");
|
|
158731
158915
|
return { id, diagram: diagram2 };
|
|
158732
158916
|
}, "loader");
|
|
158733
158917
|
var plugin = {
|
|
@@ -158744,7 +158928,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
158744
158928
|
return /^\s*graph/.test(txt);
|
|
158745
158929
|
}, "detector");
|
|
158746
158930
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
158747
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
158931
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DtWHb6Ay.js");
|
|
158748
158932
|
return { id: id2, diagram: diagram2 };
|
|
158749
158933
|
}, "loader");
|
|
158750
158934
|
var plugin2 = {
|
|
@@ -158767,7 +158951,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
158767
158951
|
return /^\s*flowchart/.test(txt);
|
|
158768
158952
|
}, "detector");
|
|
158769
158953
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
158770
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
158954
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DtWHb6Ay.js");
|
|
158771
158955
|
return { id: id3, diagram: diagram2 };
|
|
158772
158956
|
}, "loader");
|
|
158773
158957
|
var plugin3 = {
|
|
@@ -158781,7 +158965,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
158781
158965
|
return /^\s*erDiagram/.test(txt);
|
|
158782
158966
|
}, "detector");
|
|
158783
158967
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
158784
|
-
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-
|
|
158968
|
+
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-Ct1zXovC.js");
|
|
158785
158969
|
return { id: id4, diagram: diagram2 };
|
|
158786
158970
|
}, "loader");
|
|
158787
158971
|
var plugin4 = {
|
|
@@ -158795,7 +158979,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
158795
158979
|
return /^\s*gitGraph/.test(txt);
|
|
158796
158980
|
}, "detector");
|
|
158797
158981
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
158798
|
-
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-
|
|
158982
|
+
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-DvT5EUG7.js");
|
|
158799
158983
|
return { id: id5, diagram: diagram2 };
|
|
158800
158984
|
}, "loader");
|
|
158801
158985
|
var plugin5 = {
|
|
@@ -158809,7 +158993,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
158809
158993
|
return /^\s*gantt/.test(txt);
|
|
158810
158994
|
}, "detector");
|
|
158811
158995
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
158812
|
-
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-
|
|
158996
|
+
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-CySyldy4.js");
|
|
158813
158997
|
return { id: id6, diagram: diagram2 };
|
|
158814
158998
|
}, "loader");
|
|
158815
158999
|
var plugin6 = {
|
|
@@ -158823,7 +159007,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
158823
159007
|
return /^\s*info/.test(txt);
|
|
158824
159008
|
}, "detector");
|
|
158825
159009
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
158826
|
-
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-
|
|
159010
|
+
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-D_Zdx-MM.js");
|
|
158827
159011
|
return { id: id7, diagram: diagram2 };
|
|
158828
159012
|
}, "loader");
|
|
158829
159013
|
var info = {
|
|
@@ -158836,7 +159020,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
158836
159020
|
return /^\s*pie/.test(txt);
|
|
158837
159021
|
}, "detector");
|
|
158838
159022
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
158839
|
-
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-
|
|
159023
|
+
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-DI4Hh6KE.js");
|
|
158840
159024
|
return { id: id8, diagram: diagram2 };
|
|
158841
159025
|
}, "loader");
|
|
158842
159026
|
var pie = {
|
|
@@ -158849,7 +159033,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
158849
159033
|
return /^\s*quadrantChart/.test(txt);
|
|
158850
159034
|
}, "detector");
|
|
158851
159035
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
158852
|
-
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-
|
|
159036
|
+
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-Cqc_vrUG.js");
|
|
158853
159037
|
return { id: id9, diagram: diagram2 };
|
|
158854
159038
|
}, "loader");
|
|
158855
159039
|
var plugin7 = {
|
|
@@ -158863,7 +159047,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
158863
159047
|
return /^\s*xychart(-beta)?/.test(txt);
|
|
158864
159048
|
}, "detector");
|
|
158865
159049
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
158866
|
-
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-
|
|
159050
|
+
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-ByA0_p8p.js");
|
|
158867
159051
|
return { id: id10, diagram: diagram2 };
|
|
158868
159052
|
}, "loader");
|
|
158869
159053
|
var plugin8 = {
|
|
@@ -158877,7 +159061,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
158877
159061
|
return /^\s*requirement(Diagram)?/.test(txt);
|
|
158878
159062
|
}, "detector");
|
|
158879
159063
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
158880
|
-
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-
|
|
159064
|
+
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-96ab-40P.js");
|
|
158881
159065
|
return { id: id11, diagram: diagram2 };
|
|
158882
159066
|
}, "loader");
|
|
158883
159067
|
var plugin9 = {
|
|
@@ -158891,7 +159075,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
158891
159075
|
return /^\s*sequenceDiagram/.test(txt);
|
|
158892
159076
|
}, "detector");
|
|
158893
159077
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
158894
|
-
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-
|
|
159078
|
+
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-CFKyfvmC.js");
|
|
158895
159079
|
return { id: id12, diagram: diagram2 };
|
|
158896
159080
|
}, "loader");
|
|
158897
159081
|
var plugin10 = {
|
|
@@ -158908,7 +159092,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
158908
159092
|
return /^\s*classDiagram/.test(txt);
|
|
158909
159093
|
}, "detector");
|
|
158910
159094
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
158911
|
-
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-
|
|
159095
|
+
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-B90fR_EV.js");
|
|
158912
159096
|
return { id: id13, diagram: diagram2 };
|
|
158913
159097
|
}, "loader");
|
|
158914
159098
|
var plugin11 = {
|
|
@@ -158925,7 +159109,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
158925
159109
|
return /^\s*classDiagram-v2/.test(txt);
|
|
158926
159110
|
}, "detector");
|
|
158927
159111
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
158928
|
-
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-
|
|
159112
|
+
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-B90fR_EV.js");
|
|
158929
159113
|
return { id: id14, diagram: diagram2 };
|
|
158930
159114
|
}, "loader");
|
|
158931
159115
|
var plugin12 = {
|
|
@@ -158942,7 +159126,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
158942
159126
|
return /^\s*stateDiagram/.test(txt);
|
|
158943
159127
|
}, "detector");
|
|
158944
159128
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
158945
|
-
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-
|
|
159129
|
+
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-DGZQd18J.js");
|
|
158946
159130
|
return { id: id15, diagram: diagram2 };
|
|
158947
159131
|
}, "loader");
|
|
158948
159132
|
var plugin13 = {
|
|
@@ -158962,7 +159146,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
158962
159146
|
return false;
|
|
158963
159147
|
}, "detector");
|
|
158964
159148
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
158965
|
-
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-
|
|
159149
|
+
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-DJXeLDOB.js");
|
|
158966
159150
|
return { id: id16, diagram: diagram2 };
|
|
158967
159151
|
}, "loader");
|
|
158968
159152
|
var plugin14 = {
|
|
@@ -158976,7 +159160,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
158976
159160
|
return /^\s*journey/.test(txt);
|
|
158977
159161
|
}, "detector");
|
|
158978
159162
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
158979
|
-
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-
|
|
159163
|
+
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-BcO9qzr2.js");
|
|
158980
159164
|
return { id: id17, diagram: diagram2 };
|
|
158981
159165
|
}, "loader");
|
|
158982
159166
|
var plugin15 = {
|
|
@@ -159043,7 +159227,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
159043
159227
|
return false;
|
|
159044
159228
|
}, "detector");
|
|
159045
159229
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
159046
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
159230
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DtWHb6Ay.js");
|
|
159047
159231
|
return { id: id18, diagram: diagram2 };
|
|
159048
159232
|
}, "loader");
|
|
159049
159233
|
var plugin16 = {
|
|
@@ -159057,7 +159241,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
159057
159241
|
return /^\s*timeline/.test(txt);
|
|
159058
159242
|
}, "detector");
|
|
159059
159243
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
159060
|
-
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-
|
|
159244
|
+
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-DzTJZPN5.js");
|
|
159061
159245
|
return { id: id19, diagram: diagram2 };
|
|
159062
159246
|
}, "loader");
|
|
159063
159247
|
var plugin17 = {
|
|
@@ -159071,7 +159255,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
159071
159255
|
return /^\s*mindmap/.test(txt);
|
|
159072
159256
|
}, "detector");
|
|
159073
159257
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
159074
|
-
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-
|
|
159258
|
+
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-CpzqFomk.js");
|
|
159075
159259
|
return { id: id20, diagram: diagram2 };
|
|
159076
159260
|
}, "loader");
|
|
159077
159261
|
var plugin18 = {
|
|
@@ -159085,7 +159269,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
159085
159269
|
return /^\s*kanban/.test(txt);
|
|
159086
159270
|
}, "detector");
|
|
159087
159271
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
159088
|
-
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-
|
|
159272
|
+
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-BatZ7RKG.js");
|
|
159089
159273
|
return { id: id21, diagram: diagram2 };
|
|
159090
159274
|
}, "loader");
|
|
159091
159275
|
var plugin19 = {
|
|
@@ -159099,7 +159283,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
159099
159283
|
return /^\s*sankey(-beta)?/.test(txt);
|
|
159100
159284
|
}, "detector");
|
|
159101
159285
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
159102
|
-
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-
|
|
159286
|
+
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-Bux2-BQd.js");
|
|
159103
159287
|
return { id: id22, diagram: diagram2 };
|
|
159104
159288
|
}, "loader");
|
|
159105
159289
|
var plugin20 = {
|
|
@@ -159113,7 +159297,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
159113
159297
|
return /^\s*packet(-beta)?/.test(txt);
|
|
159114
159298
|
}, "detector");
|
|
159115
159299
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
159116
|
-
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-
|
|
159300
|
+
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-BnxctnIJ.js");
|
|
159117
159301
|
return { id: id23, diagram: diagram2 };
|
|
159118
159302
|
}, "loader");
|
|
159119
159303
|
var packet = {
|
|
@@ -159126,7 +159310,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
159126
159310
|
return /^\s*radar-beta/.test(txt);
|
|
159127
159311
|
}, "detector");
|
|
159128
159312
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
159129
|
-
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-
|
|
159313
|
+
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-atbHIh96.js");
|
|
159130
159314
|
return { id: id24, diagram: diagram2 };
|
|
159131
159315
|
}, "loader");
|
|
159132
159316
|
var radar = {
|
|
@@ -159139,7 +159323,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
159139
159323
|
return /^\s*block(-beta)?/.test(txt);
|
|
159140
159324
|
}, "detector");
|
|
159141
159325
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
159142
|
-
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-
|
|
159326
|
+
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-BvasIENt.js");
|
|
159143
159327
|
return { id: id25, diagram: diagram2 };
|
|
159144
159328
|
}, "loader");
|
|
159145
159329
|
var plugin21 = {
|
|
@@ -159153,7 +159337,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
159153
159337
|
return /^\s*architecture/.test(txt);
|
|
159154
159338
|
}, "detector");
|
|
159155
159339
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
159156
|
-
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-
|
|
159340
|
+
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-D6UEkzy_.js");
|
|
159157
159341
|
return { id: id26, diagram: diagram2 };
|
|
159158
159342
|
}, "loader");
|
|
159159
159343
|
var architecture = {
|
|
@@ -159167,7 +159351,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
|
|
|
159167
159351
|
return /^\s*treemap/.test(txt);
|
|
159168
159352
|
}, "detector");
|
|
159169
159353
|
var loader27 = /* @__PURE__ */ __name(async () => {
|
|
159170
|
-
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-
|
|
159354
|
+
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-DLrJ9Eja.js");
|
|
159171
159355
|
return { id: id27, diagram: diagram2 };
|
|
159172
159356
|
}, "loader");
|
|
159173
159357
|
var treemap = {
|
|
@@ -161491,8 +161675,13 @@ function readElement(group) {
|
|
|
161491
161675
|
const el = group.element;
|
|
161492
161676
|
return el && typeof el.getBoundingClientRect === "function" ? el : null;
|
|
161493
161677
|
}
|
|
161494
|
-
function
|
|
161495
|
-
const groups = api.groups.filter((g2) =>
|
|
161678
|
+
function getNavigableGroupsInVisualOrder(api) {
|
|
161679
|
+
const groups = api.groups.filter((g2) => {
|
|
161680
|
+
const loc = g2.api.location;
|
|
161681
|
+
if (loc.type === "grid") return true;
|
|
161682
|
+
if (loc.type === "edge") return g2.panels.length > 0;
|
|
161683
|
+
return false;
|
|
161684
|
+
});
|
|
161496
161685
|
if (groups.length < 2) return groups;
|
|
161497
161686
|
const rects = [];
|
|
161498
161687
|
for (const g2 of groups) {
|
|
@@ -161512,7 +161701,7 @@ function getGridGroupsInVisualOrder(api) {
|
|
|
161512
161701
|
}
|
|
161513
161702
|
function cycleGridGroups(api, direction, refocus) {
|
|
161514
161703
|
if (!api) return;
|
|
161515
|
-
const groups =
|
|
161704
|
+
const groups = getNavigableGroupsInVisualOrder(api);
|
|
161516
161705
|
if (groups.length < 2) return;
|
|
161517
161706
|
const current = api.activeGroup;
|
|
161518
161707
|
const idx = current ? groups.findIndex((g2) => g2.id === current.id) : -1;
|
|
@@ -161536,7 +161725,7 @@ function selectNeighbourBeforeRemove(api, panelId) {
|
|
|
161536
161725
|
return;
|
|
161537
161726
|
}
|
|
161538
161727
|
if (!group) return;
|
|
161539
|
-
const ordered =
|
|
161728
|
+
const ordered = getNavigableGroupsInVisualOrder(api);
|
|
161540
161729
|
if (ordered.length <= 1) return;
|
|
161541
161730
|
const groupIdx = ordered.findIndex((g2) => g2.id === group.id);
|
|
161542
161731
|
if (groupIdx < 0) return;
|
|
@@ -170212,12 +170401,33 @@ function extractMarkdown(item) {
|
|
|
170212
170401
|
}
|
|
170213
170402
|
function StatusDot({ isError, isInProgress }) {
|
|
170214
170403
|
if (isError) {
|
|
170215
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
170404
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
170405
|
+
"span",
|
|
170406
|
+
{
|
|
170407
|
+
"data-testid": "tool-call__status-dot",
|
|
170408
|
+
"data-status": "error",
|
|
170409
|
+
className: "size-2 shrink-0 rounded-full bg-red-500"
|
|
170410
|
+
}
|
|
170411
|
+
);
|
|
170216
170412
|
}
|
|
170217
170413
|
if (isInProgress) {
|
|
170218
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
170414
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
170415
|
+
"span",
|
|
170416
|
+
{
|
|
170417
|
+
"data-testid": "tool-call__status-dot",
|
|
170418
|
+
"data-status": "in-progress",
|
|
170419
|
+
className: "size-2 shrink-0 animate-pulse rounded-full bg-orange-500"
|
|
170420
|
+
}
|
|
170421
|
+
);
|
|
170219
170422
|
}
|
|
170220
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
170423
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
170424
|
+
"span",
|
|
170425
|
+
{
|
|
170426
|
+
"data-testid": "tool-call__status-dot",
|
|
170427
|
+
"data-status": "complete",
|
|
170428
|
+
className: "size-2 shrink-0 rounded-full bg-green-500"
|
|
170429
|
+
}
|
|
170430
|
+
);
|
|
170221
170431
|
}
|
|
170222
170432
|
function ToolCall({ item }) {
|
|
170223
170433
|
if (item.toolName === "AskUserQuestion" && item.approvalId && item.isInProgress) {
|
|
@@ -170232,20 +170442,29 @@ function ToolCall({ item }) {
|
|
|
170232
170442
|
}
|
|
170233
170443
|
const title = item.displayTitle ?? item.toolName;
|
|
170234
170444
|
const markdown = extractMarkdown(item);
|
|
170445
|
+
const status = item.isError ? "error" : item.isInProgress ? "in-progress" : "complete";
|
|
170235
170446
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
170236
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
170237
|
-
|
|
170238
|
-
|
|
170239
|
-
|
|
170240
|
-
|
|
170241
|
-
|
|
170242
|
-
|
|
170243
|
-
|
|
170244
|
-
|
|
170245
|
-
|
|
170246
|
-
|
|
170247
|
-
|
|
170248
|
-
|
|
170447
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
170448
|
+
Collapsible,
|
|
170449
|
+
{
|
|
170450
|
+
"data-testid": "tool-call__container",
|
|
170451
|
+
"data-status": status,
|
|
170452
|
+
className: "group not-prose w-full rounded border border-border/30 bg-muted/20",
|
|
170453
|
+
children: [
|
|
170454
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "flex w-full items-center justify-between gap-4 px-2 py-1.5", children: [
|
|
170455
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
170456
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(StatusDot, { isError: item.isError, isInProgress: item.isInProgress }),
|
|
170457
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate font-medium text-xs text-muted-foreground", children: title })
|
|
170458
|
+
] }),
|
|
170459
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-4 shrink-0 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" })
|
|
170460
|
+
] }),
|
|
170461
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleContent, { className: "space-y-3 border-t border-border/30 px-3 py-2 text-popover-foreground", children: [
|
|
170462
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ToolInput, { input: item.input }),
|
|
170463
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ToolOutput, { output: item.output, errorText: item.errorText })
|
|
170464
|
+
] })
|
|
170465
|
+
]
|
|
170466
|
+
}
|
|
170467
|
+
),
|
|
170249
170468
|
markdown && /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: markdown })
|
|
170250
170469
|
] });
|
|
170251
170470
|
}
|
|
@@ -170512,16 +170731,31 @@ function chatEventReducer(state2, event) {
|
|
|
170512
170731
|
};
|
|
170513
170732
|
}
|
|
170514
170733
|
case "tool-output-available": {
|
|
170515
|
-
|
|
170516
|
-
|
|
170517
|
-
|
|
170518
|
-
|
|
170519
|
-
|
|
170520
|
-
|
|
170521
|
-
|
|
170734
|
+
let ownerId;
|
|
170735
|
+
let prevPart;
|
|
170736
|
+
for (let i2 = state2.messages.length - 1; i2 >= 0; i2--) {
|
|
170737
|
+
const msg = state2.messages[i2];
|
|
170738
|
+
if (msg.role !== "assistant") continue;
|
|
170739
|
+
const part = msg.parts.find((p2) => {
|
|
170740
|
+
const pp = p2;
|
|
170741
|
+
return pp.toolCallId === event.toolCallId;
|
|
170742
|
+
});
|
|
170743
|
+
if (part) {
|
|
170744
|
+
ownerId = msg.id;
|
|
170745
|
+
prevPart = part;
|
|
170746
|
+
break;
|
|
170747
|
+
}
|
|
170748
|
+
}
|
|
170749
|
+
if (!ownerId) {
|
|
170750
|
+
console.warn(
|
|
170751
|
+
"[chat] tool-output-available for unknown toolCallId — dropping",
|
|
170752
|
+
event.toolCallId
|
|
170753
|
+
);
|
|
170754
|
+
return { ...state2, lastEventId };
|
|
170755
|
+
}
|
|
170522
170756
|
const messages = replaceToolPart(
|
|
170523
170757
|
state2.messages,
|
|
170524
|
-
|
|
170758
|
+
ownerId,
|
|
170525
170759
|
event.toolCallId,
|
|
170526
170760
|
makeToolOutputPart(prevPart, event)
|
|
170527
170761
|
);
|
|
@@ -172172,29 +172406,32 @@ const closeTabRef = {
|
|
|
172172
172406
|
current: null
|
|
172173
172407
|
};
|
|
172174
172408
|
const RightHeaderActions = React$1.memo(function RightHeaderActions2(props) {
|
|
172409
|
+
const isGridGroup = (props.location?.type ?? "grid") === "grid";
|
|
172175
172410
|
const { onAdd: onAdd2, onSplit } = addTabRef.current;
|
|
172176
172411
|
const groupId = props.group.id;
|
|
172177
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full items-center", children: [
|
|
172178
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
172179
|
-
|
|
172180
|
-
|
|
172181
|
-
|
|
172182
|
-
|
|
172183
|
-
|
|
172184
|
-
|
|
172185
|
-
|
|
172186
|
-
|
|
172187
|
-
|
|
172188
|
-
|
|
172189
|
-
|
|
172190
|
-
|
|
172191
|
-
|
|
172192
|
-
|
|
172193
|
-
|
|
172194
|
-
|
|
172195
|
-
|
|
172196
|
-
|
|
172197
|
-
|
|
172412
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full w-full items-center justify-center", children: [
|
|
172413
|
+
isGridGroup && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
172414
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
172415
|
+
"button",
|
|
172416
|
+
{
|
|
172417
|
+
type: "button",
|
|
172418
|
+
className: "inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",
|
|
172419
|
+
onClick: () => onSplit(groupId, "right"),
|
|
172420
|
+
title: "Split right",
|
|
172421
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Columns2, { className: "size-3.5" })
|
|
172422
|
+
}
|
|
172423
|
+
),
|
|
172424
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
172425
|
+
"button",
|
|
172426
|
+
{
|
|
172427
|
+
type: "button",
|
|
172428
|
+
className: "inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",
|
|
172429
|
+
onClick: () => onSplit(groupId, "below"),
|
|
172430
|
+
title: "Split down",
|
|
172431
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Rows2, { className: "size-3.5" })
|
|
172432
|
+
}
|
|
172433
|
+
)
|
|
172434
|
+
] }),
|
|
172198
172435
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
172199
172436
|
"button",
|
|
172200
172437
|
{
|
|
@@ -172223,6 +172460,8 @@ function DockviewChatContainer({
|
|
|
172223
172460
|
const apiRef = reactExports.useRef(null);
|
|
172224
172461
|
const isRestoringRef = reactExports.useRef(false);
|
|
172225
172462
|
const containerRef = reactExports.useRef(null);
|
|
172463
|
+
const edgeDragDisposerRef = reactExports.useRef(null);
|
|
172464
|
+
const innerRegisterDisposerRef = reactExports.useRef(null);
|
|
172226
172465
|
const { data: initialData } = useQuery({
|
|
172227
172466
|
queryKey: chatLayoutKey(workspaceId),
|
|
172228
172467
|
queryFn: async () => {
|
|
@@ -172434,6 +172673,14 @@ function DockviewChatContainer({
|
|
|
172434
172673
|
}, [adapter2, workspaceId]);
|
|
172435
172674
|
addTabRef.current = { onAdd: handleAddTab, onSplit: handleSplit };
|
|
172436
172675
|
closeTabRef.current = closeTab;
|
|
172676
|
+
reactExports.useEffect(() => {
|
|
172677
|
+
return () => {
|
|
172678
|
+
edgeDragDisposerRef.current?.();
|
|
172679
|
+
edgeDragDisposerRef.current = null;
|
|
172680
|
+
innerRegisterDisposerRef.current?.();
|
|
172681
|
+
innerRegisterDisposerRef.current = null;
|
|
172682
|
+
};
|
|
172683
|
+
}, []);
|
|
172437
172684
|
const initialLayoutRef = reactExports.useRef(null);
|
|
172438
172685
|
initialLayoutRef.current = initialData?.layout ?? null;
|
|
172439
172686
|
const initialChatIdsRef = reactExports.useRef(null);
|
|
@@ -172475,6 +172722,13 @@ function DockviewChatContainer({
|
|
|
172475
172722
|
createDefaultPanel(event.api, workspaceId);
|
|
172476
172723
|
persistToServer(workspaceId, event.api.toJSON(), { queryClient: queryClientRef.current });
|
|
172477
172724
|
}
|
|
172725
|
+
ensureEdgeGroups(event.api);
|
|
172726
|
+
edgeDragDisposerRef.current?.();
|
|
172727
|
+
edgeDragDisposerRef.current = attachEdgeGroupDragVisibility(event.api);
|
|
172728
|
+
innerRegisterDisposerRef.current?.();
|
|
172729
|
+
if (containerRef.current) {
|
|
172730
|
+
innerRegisterDisposerRef.current = registerInnerDockview(containerRef.current, event.api);
|
|
172731
|
+
}
|
|
172478
172732
|
const persist = () => schedulePersist();
|
|
172479
172733
|
event.api.onDidLayoutChange(persist);
|
|
172480
172734
|
event.api.onDidAddPanel(persist);
|
|
@@ -172596,6 +172850,33 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
|
|
|
172596
172850
|
return next2;
|
|
172597
172851
|
});
|
|
172598
172852
|
}, [activeWorkspaceId]);
|
|
172853
|
+
const { projects, isLoading, error } = useProjects();
|
|
172854
|
+
reactExports.useEffect(() => {
|
|
172855
|
+
if (isLoading || error) return;
|
|
172856
|
+
const validIds = /* @__PURE__ */ new Set();
|
|
172857
|
+
for (const project of projects) {
|
|
172858
|
+
for (const worktree of project.worktrees) {
|
|
172859
|
+
validIds.add(toWorkspaceId(project.name, worktree.branch));
|
|
172860
|
+
}
|
|
172861
|
+
}
|
|
172862
|
+
setCache((prev2) => {
|
|
172863
|
+
let hasStale = false;
|
|
172864
|
+
for (const id28 of prev2.keys()) {
|
|
172865
|
+
if (!validIds.has(id28) && id28 !== activeWorkspaceId) {
|
|
172866
|
+
hasStale = true;
|
|
172867
|
+
break;
|
|
172868
|
+
}
|
|
172869
|
+
}
|
|
172870
|
+
if (!hasStale) return prev2;
|
|
172871
|
+
const next2 = new Map(prev2);
|
|
172872
|
+
for (const id28 of next2.keys()) {
|
|
172873
|
+
if (!validIds.has(id28) && id28 !== activeWorkspaceId) {
|
|
172874
|
+
next2.delete(id28);
|
|
172875
|
+
}
|
|
172876
|
+
}
|
|
172877
|
+
return next2;
|
|
172878
|
+
});
|
|
172879
|
+
}, [projects, isLoading, error, activeWorkspaceId]);
|
|
172599
172880
|
const lastCacheKeysRef = reactExports.useRef(/* @__PURE__ */ new Set());
|
|
172600
172881
|
reactExports.useEffect(() => {
|
|
172601
172882
|
const current = new Set(cache.keys());
|
|
@@ -172610,6 +172891,7 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
|
|
|
172610
172891
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
172611
172892
|
"div",
|
|
172612
172893
|
{
|
|
172894
|
+
"data-testid": `workspace-panel-host__cached-entry--${workspaceId}`,
|
|
172613
172895
|
className: "absolute inset-0 transition-opacity duration-150 ease-out",
|
|
172614
172896
|
style: {
|
|
172615
172897
|
opacity: isActive ? 1 : 0,
|
|
@@ -173857,6 +174139,325 @@ function PrereqDialog({ open: open2, onOpenChange, onReady }) {
|
|
|
173857
174139
|
] })
|
|
173858
174140
|
] }) });
|
|
173859
174141
|
}
|
|
174142
|
+
const BYTES_PER_MB = 1024 * 1024;
|
|
174143
|
+
function formatMB(bytes) {
|
|
174144
|
+
return `${(bytes / BYTES_PER_MB).toFixed(1)} MB`;
|
|
174145
|
+
}
|
|
174146
|
+
function formatBytes(bytes) {
|
|
174147
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
174148
|
+
if (bytes < BYTES_PER_MB) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
174149
|
+
if (bytes < BYTES_PER_MB * 1024) return `${(bytes / BYTES_PER_MB).toFixed(1)} MB`;
|
|
174150
|
+
return `${(bytes / (BYTES_PER_MB * 1024)).toFixed(2)} GB`;
|
|
174151
|
+
}
|
|
174152
|
+
function formatUptime(seconds) {
|
|
174153
|
+
const s2 = Math.floor(seconds % 60);
|
|
174154
|
+
const m2 = Math.floor(seconds / 60 % 60);
|
|
174155
|
+
const h2 = Math.floor(seconds / 3600 % 24);
|
|
174156
|
+
const d2 = Math.floor(seconds / 86400);
|
|
174157
|
+
const parts = [];
|
|
174158
|
+
if (d2 > 0) parts.push(`${d2}d`);
|
|
174159
|
+
if (h2 > 0) parts.push(`${h2}h`);
|
|
174160
|
+
if (m2 > 0) parts.push(`${m2}m`);
|
|
174161
|
+
parts.push(`${s2}s`);
|
|
174162
|
+
return parts.join(" ");
|
|
174163
|
+
}
|
|
174164
|
+
function formatCpuMs(micros) {
|
|
174165
|
+
const ms = micros / 1e3;
|
|
174166
|
+
if (ms < 1e3) return `${ms.toFixed(1)} ms`;
|
|
174167
|
+
return `${(ms / 1e3).toFixed(2)} s`;
|
|
174168
|
+
}
|
|
174169
|
+
function testIdForWorktree(project, branch) {
|
|
174170
|
+
const safe = (s2) => s2.replace(/[^\w-]/g, "_");
|
|
174171
|
+
return `${safe(project)}__${safe(branch)}`;
|
|
174172
|
+
}
|
|
174173
|
+
const PROJECT_FETCH_CONCURRENCY = 3;
|
|
174174
|
+
async function runWithLimit(items, limit, fn2, isCancelled) {
|
|
174175
|
+
let nextIdx = 0;
|
|
174176
|
+
async function worker() {
|
|
174177
|
+
while (true) {
|
|
174178
|
+
if (isCancelled()) return;
|
|
174179
|
+
const idx = nextIdx++;
|
|
174180
|
+
if (idx >= items.length) return;
|
|
174181
|
+
await fn2(items[idx]);
|
|
174182
|
+
}
|
|
174183
|
+
}
|
|
174184
|
+
await Promise.all(Array.from({ length: Math.min(limit, items.length) }, () => worker()));
|
|
174185
|
+
}
|
|
174186
|
+
function ResourcesPage() {
|
|
174187
|
+
const serverQuery = useQuery({
|
|
174188
|
+
queryKey: ["resources", "server"],
|
|
174189
|
+
queryFn: () => trpc.services.resourcesServer.query()
|
|
174190
|
+
});
|
|
174191
|
+
const projectsQuery = useQuery({
|
|
174192
|
+
queryKey: ["resources", "projects"],
|
|
174193
|
+
queryFn: () => trpc.services.resourcesProjects.query(),
|
|
174194
|
+
refetchOnWindowFocus: false,
|
|
174195
|
+
refetchOnReconnect: false,
|
|
174196
|
+
refetchInterval: false,
|
|
174197
|
+
staleTime: Number.POSITIVE_INFINITY
|
|
174198
|
+
});
|
|
174199
|
+
const [sizes, setSizes] = reactExports.useState(() => /* @__PURE__ */ new Map());
|
|
174200
|
+
const [refreshKey, setRefreshKey] = reactExports.useState(0);
|
|
174201
|
+
const server = serverQuery.data;
|
|
174202
|
+
const projects = projectsQuery.data?.projects ?? [];
|
|
174203
|
+
const projectNames = projects.map((p2) => p2.project).join("\n");
|
|
174204
|
+
const projectsRef = reactExports.useMemo(() => projects, [projectNames]);
|
|
174205
|
+
reactExports.useEffect(() => {
|
|
174206
|
+
if (projectsRef.length === 0) return;
|
|
174207
|
+
let cancelled = false;
|
|
174208
|
+
setSizes(/* @__PURE__ */ new Map());
|
|
174209
|
+
void runWithLimit(
|
|
174210
|
+
projectsRef,
|
|
174211
|
+
PROJECT_FETCH_CONCURRENCY,
|
|
174212
|
+
async (p2) => {
|
|
174213
|
+
try {
|
|
174214
|
+
const data = await trpc.services.resourcesProjectSize.query({ project: p2.project });
|
|
174215
|
+
if (cancelled) return;
|
|
174216
|
+
setSizes((prev2) => {
|
|
174217
|
+
const next2 = new Map(prev2);
|
|
174218
|
+
next2.set(p2.project, data);
|
|
174219
|
+
return next2;
|
|
174220
|
+
});
|
|
174221
|
+
} catch (err) {
|
|
174222
|
+
if (cancelled) return;
|
|
174223
|
+
setSizes((prev2) => {
|
|
174224
|
+
const next2 = new Map(prev2);
|
|
174225
|
+
next2.set(p2.project, {
|
|
174226
|
+
project: p2.project,
|
|
174227
|
+
sizeBytes: 0,
|
|
174228
|
+
worktrees: [],
|
|
174229
|
+
error: err instanceof Error ? err.message : String(err)
|
|
174230
|
+
});
|
|
174231
|
+
return next2;
|
|
174232
|
+
});
|
|
174233
|
+
}
|
|
174234
|
+
},
|
|
174235
|
+
() => cancelled
|
|
174236
|
+
);
|
|
174237
|
+
return () => {
|
|
174238
|
+
cancelled = true;
|
|
174239
|
+
};
|
|
174240
|
+
}, [projectsRef, refreshKey]);
|
|
174241
|
+
const handleRefreshSizes = reactExports.useCallback(async () => {
|
|
174242
|
+
await projectsQuery.refetch();
|
|
174243
|
+
setRefreshKey((k2) => k2 + 1);
|
|
174244
|
+
}, [projectsQuery]);
|
|
174245
|
+
const [expandedProjects, setExpandedProjects] = reactExports.useState(() => /* @__PURE__ */ new Set());
|
|
174246
|
+
const toggleProject = (project) => {
|
|
174247
|
+
setExpandedProjects((prev2) => {
|
|
174248
|
+
const next2 = new Set(prev2);
|
|
174249
|
+
if (next2.has(project)) next2.delete(project);
|
|
174250
|
+
else next2.add(project);
|
|
174251
|
+
return next2;
|
|
174252
|
+
});
|
|
174253
|
+
};
|
|
174254
|
+
const sortedProjects = [...projects].sort((a2, b2) => {
|
|
174255
|
+
const sa = sizes.get(a2.project);
|
|
174256
|
+
const sb = sizes.get(b2.project);
|
|
174257
|
+
if (sa && sb) return sb.sizeBytes - sa.sizeBytes;
|
|
174258
|
+
if (sa && !sb) return -1;
|
|
174259
|
+
if (!sa && sb) return 1;
|
|
174260
|
+
return 0;
|
|
174261
|
+
});
|
|
174262
|
+
const knownTotalBytes = Array.from(sizes.values()).reduce((sum, s2) => sum + s2.sizeBytes, 0);
|
|
174263
|
+
const allLoaded = sizes.size === projects.length;
|
|
174264
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "h-full w-full", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-auto flex max-w-5xl flex-col gap-8 px-6 py-4", children: [
|
|
174265
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("section", { "data-testid": "resources-server-card", className: "space-y-3", children: [
|
|
174266
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row items-start justify-between gap-2", children: [
|
|
174267
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
|
|
174268
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-base font-semibold leading-none", children: "Server" }),
|
|
174269
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-muted-foreground", children: [
|
|
174270
|
+
"The Node process serving the Band dashboard (",
|
|
174271
|
+
server ? `pid ${server.pid}` : "…",
|
|
174272
|
+
")."
|
|
174273
|
+
] })
|
|
174274
|
+
] }),
|
|
174275
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
174276
|
+
Button,
|
|
174277
|
+
{
|
|
174278
|
+
variant: "outline",
|
|
174279
|
+
size: "sm",
|
|
174280
|
+
"data-testid": "resources-refresh-server",
|
|
174281
|
+
onClick: () => serverQuery.refetch(),
|
|
174282
|
+
disabled: serverQuery.isFetching,
|
|
174283
|
+
children: [
|
|
174284
|
+
serverQuery.isFetching ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-3.5" }),
|
|
174285
|
+
"Refresh"
|
|
174286
|
+
]
|
|
174287
|
+
}
|
|
174288
|
+
)
|
|
174289
|
+
] }),
|
|
174290
|
+
serverQuery.isError ? /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-destructive", children: [
|
|
174291
|
+
"Failed to load server snapshot: ",
|
|
174292
|
+
String(serverQuery.error)
|
|
174293
|
+
] }) : !server ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
174294
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }),
|
|
174295
|
+
"Loading…"
|
|
174296
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-x-6 gap-y-2 text-sm md:grid-cols-3", children: [
|
|
174297
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "PID", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { "data-testid": "resources-server-pid", children: server.pid }) }),
|
|
174298
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Uptime", children: formatUptime(server.uptimeSeconds) }),
|
|
174299
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Node", children: server.nodeVersion }),
|
|
174300
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ServerField, { label: "Platform", children: [
|
|
174301
|
+
server.platform,
|
|
174302
|
+
" (",
|
|
174303
|
+
server.arch,
|
|
174304
|
+
")"
|
|
174305
|
+
] }),
|
|
174306
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "RSS", children: formatMB(server.memory.rssBytes) }),
|
|
174307
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Heap used", children: formatMB(server.memory.heapUsedBytes) }),
|
|
174308
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Heap total", children: formatMB(server.memory.heapTotalBytes) }),
|
|
174309
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "External", children: formatMB(server.memory.externalBytes) }),
|
|
174310
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Array buffers", children: formatMB(server.memory.arrayBuffersBytes) }),
|
|
174311
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Total CPU time (user)", children: formatCpuMs(server.cpu.userMicros) }),
|
|
174312
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Total CPU time (system)", children: formatCpuMs(server.cpu.systemMicros) })
|
|
174313
|
+
] })
|
|
174314
|
+
] }),
|
|
174315
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("section", { "data-testid": "resources-worktrees-card", className: "space-y-3", children: [
|
|
174316
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row items-start justify-between gap-2", children: [
|
|
174317
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
|
|
174318
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-base font-semibold leading-none", children: "Worktrees" }),
|
|
174319
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-muted-foreground", children: [
|
|
174320
|
+
"Disk usage per tracked git project (allocated blocks, as reported by",
|
|
174321
|
+
" ",
|
|
174322
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "rounded bg-muted px-1 py-0.5 text-xs", children: "du" }),
|
|
174323
|
+
"). Sizes load per project in batches of ",
|
|
174324
|
+
PROJECT_FETCH_CONCURRENCY,
|
|
174325
|
+
". Click a project to see its per-worktree breakdown."
|
|
174326
|
+
] })
|
|
174327
|
+
] }),
|
|
174328
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
174329
|
+
Button,
|
|
174330
|
+
{
|
|
174331
|
+
variant: "outline",
|
|
174332
|
+
size: "sm",
|
|
174333
|
+
"data-testid": "resources-refresh-worktrees",
|
|
174334
|
+
onClick: handleRefreshSizes,
|
|
174335
|
+
disabled: projectsQuery.isFetching || !allLoaded,
|
|
174336
|
+
children: [
|
|
174337
|
+
projectsQuery.isFetching || !allLoaded ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-3.5" }),
|
|
174338
|
+
"Refresh"
|
|
174339
|
+
]
|
|
174340
|
+
}
|
|
174341
|
+
)
|
|
174342
|
+
] }),
|
|
174343
|
+
projectsQuery.isError ? /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-destructive", children: [
|
|
174344
|
+
"Failed to load projects: ",
|
|
174345
|
+
String(projectsQuery.error)
|
|
174346
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative overflow-x-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
174347
|
+
"table",
|
|
174348
|
+
{
|
|
174349
|
+
"data-testid": "resources-projects-table",
|
|
174350
|
+
className: "w-full border-collapse text-sm",
|
|
174351
|
+
children: [
|
|
174352
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("thead", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { className: "border-b border-border text-left text-xs font-medium uppercase tracking-wide text-muted-foreground", children: [
|
|
174353
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3", children: "Project" }),
|
|
174354
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3 text-right", children: "Worktrees" }),
|
|
174355
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3 text-right", children: "Total size" })
|
|
174356
|
+
] }) }),
|
|
174357
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("tbody", { children: sortedProjects.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("tr", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("td", { colSpan: 3, className: "py-6 text-center text-sm text-muted-foreground", children: projectsQuery.isFetching ? "Loading…" : "No git projects found" }) }) : sortedProjects.map((project) => {
|
|
174358
|
+
const size2 = sizes.get(project.project);
|
|
174359
|
+
const isExpanded = expandedProjects.has(project.project);
|
|
174360
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(reactExports.Fragment, { children: [
|
|
174361
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
174362
|
+
"tr",
|
|
174363
|
+
{
|
|
174364
|
+
"data-testid": `resources-project-row-${project.project}`,
|
|
174365
|
+
"data-expanded": isExpanded ? "true" : "false",
|
|
174366
|
+
className: "border-b border-border/60 last:border-0 hover:bg-muted/40",
|
|
174367
|
+
children: [
|
|
174368
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-2 pr-3 font-medium", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
174369
|
+
"button",
|
|
174370
|
+
{
|
|
174371
|
+
type: "button",
|
|
174372
|
+
"aria-expanded": isExpanded,
|
|
174373
|
+
onClick: () => toggleProject(project.project),
|
|
174374
|
+
className: "inline-flex w-full cursor-pointer items-center gap-1 text-left",
|
|
174375
|
+
children: [
|
|
174376
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174377
|
+
ChevronRight,
|
|
174378
|
+
{
|
|
174379
|
+
className: `size-3.5 shrink-0 transition-transform ${isExpanded ? "rotate-90" : ""}`
|
|
174380
|
+
}
|
|
174381
|
+
),
|
|
174382
|
+
project.project
|
|
174383
|
+
]
|
|
174384
|
+
}
|
|
174385
|
+
) }),
|
|
174386
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-2 pr-3 text-right tabular-nums", children: project.worktrees.length }),
|
|
174387
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174388
|
+
"td",
|
|
174389
|
+
{
|
|
174390
|
+
className: "py-2 pr-3 text-right tabular-nums",
|
|
174391
|
+
"data-testid": `resources-project-size-${project.project}`,
|
|
174392
|
+
children: size2 === void 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center justify-end gap-1.5 text-muted-foreground", children: [
|
|
174393
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }),
|
|
174394
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs", children: "measuring…" })
|
|
174395
|
+
] }) : size2.error ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-destructive", title: size2.error, children: "error" }) : formatBytes(size2.sizeBytes)
|
|
174396
|
+
}
|
|
174397
|
+
)
|
|
174398
|
+
]
|
|
174399
|
+
}
|
|
174400
|
+
),
|
|
174401
|
+
isExpanded && (size2 === void 0 ? (
|
|
174402
|
+
// Sizes haven't landed yet — show one
|
|
174403
|
+
// child row with a spinner so the
|
|
174404
|
+
// expand isn't an empty void.
|
|
174405
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("tr", { className: "border-b border-border/40 bg-muted/20", children: /* @__PURE__ */ jsxRuntimeExports.jsx("td", { colSpan: 3, className: "py-2 pl-8 pr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-2 text-xs text-muted-foreground", children: [
|
|
174406
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }),
|
|
174407
|
+
"Measuring worktrees…"
|
|
174408
|
+
] }) }) })
|
|
174409
|
+
) : size2.worktrees.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("tr", { className: "border-b border-border/40 bg-muted/20", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174410
|
+
"td",
|
|
174411
|
+
{
|
|
174412
|
+
colSpan: 3,
|
|
174413
|
+
className: "py-2 pl-8 pr-3 text-xs text-muted-foreground",
|
|
174414
|
+
children: "No worktrees"
|
|
174415
|
+
}
|
|
174416
|
+
) }) : size2.worktrees.map((wt2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
174417
|
+
"tr",
|
|
174418
|
+
{
|
|
174419
|
+
"data-testid": `resources-worktree-row-${testIdForWorktree(project.project, wt2.branch)}`,
|
|
174420
|
+
className: "border-b border-border/40 bg-muted/20 last:border-0",
|
|
174421
|
+
children: [
|
|
174422
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-1.5 pl-8 pr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col", children: [
|
|
174423
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono text-xs", children: wt2.branch || "—" }),
|
|
174424
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate font-mono text-[11px] text-muted-foreground", children: wt2.path })
|
|
174425
|
+
] }) }),
|
|
174426
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-1.5 pr-3" }),
|
|
174427
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-1.5 pr-3 text-right tabular-nums", children: wt2.error ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-destructive", children: "error" }) : formatBytes(wt2.sizeBytes) })
|
|
174428
|
+
]
|
|
174429
|
+
},
|
|
174430
|
+
`${project.project}::${wt2.branch}::${wt2.path}`
|
|
174431
|
+
)))
|
|
174432
|
+
] }, project.project);
|
|
174433
|
+
}) }),
|
|
174434
|
+
projects.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("tfoot", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { className: "border-t-2 border-border font-medium", children: [
|
|
174435
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("td", { className: "py-2 pr-3", children: [
|
|
174436
|
+
"Total",
|
|
174437
|
+
allLoaded ? "" : " (partial)"
|
|
174438
|
+
] }),
|
|
174439
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-2 pr-3 text-right tabular-nums", children: projects.reduce((sum, p2) => sum + p2.worktrees.length, 0) }),
|
|
174440
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174441
|
+
"td",
|
|
174442
|
+
{
|
|
174443
|
+
className: "py-2 pr-3 text-right tabular-nums",
|
|
174444
|
+
"data-testid": "resources-projects-total",
|
|
174445
|
+
children: formatBytes(knownTotalBytes)
|
|
174446
|
+
}
|
|
174447
|
+
)
|
|
174448
|
+
] }) })
|
|
174449
|
+
]
|
|
174450
|
+
}
|
|
174451
|
+
) })
|
|
174452
|
+
] })
|
|
174453
|
+
] }) });
|
|
174454
|
+
}
|
|
174455
|
+
function ServerField({ label, children: children2 }) {
|
|
174456
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
174457
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: label }),
|
|
174458
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono text-sm", children: children2 })
|
|
174459
|
+
] });
|
|
174460
|
+
}
|
|
173860
174461
|
function relativeTime(ms) {
|
|
173861
174462
|
const seconds = Math.floor((Date.now() - ms) / 1e3);
|
|
173862
174463
|
if (seconds < 60) return "just now";
|
|
@@ -175532,6 +176133,7 @@ function useAnyToolbarDialogOpen() {
|
|
|
175532
176133
|
function ToolbarOverflowProvider({ children: children2 }) {
|
|
175533
176134
|
const [showTasksDialog, setShowTasksDialog] = reactExports.useState(false);
|
|
175534
176135
|
const [showCronjobsDialog, setShowCronjobsDialog] = reactExports.useState(false);
|
|
176136
|
+
const [showResourcesDialog, setShowResourcesDialog] = reactExports.useState(false);
|
|
175535
176137
|
const {
|
|
175536
176138
|
webServerRunning,
|
|
175537
176139
|
tunnelUrl,
|
|
@@ -175548,11 +176150,19 @@ function ToolbarOverflowProvider({ children: children2 }) {
|
|
|
175548
176150
|
const openTasks = reactExports.useCallback(() => setShowTasksDialog(true), []);
|
|
175549
176151
|
const openCronjobs = reactExports.useCallback(() => setShowCronjobsDialog(true), []);
|
|
175550
176152
|
const openTunnel = reactExports.useCallback(() => openTunnelDialog(), [openTunnelDialog]);
|
|
176153
|
+
const openResources = reactExports.useCallback(() => setShowResourcesDialog(true), []);
|
|
175551
176154
|
const tunnelStatus = tunnelError ? "error" : webServerRunning ? "running" : "idle";
|
|
175552
|
-
const anyDialogOpen = showTasksDialog || showCronjobsDialog || showTunnelDialog || showPrereq;
|
|
176155
|
+
const anyDialogOpen = showTasksDialog || showCronjobsDialog || showTunnelDialog || showPrereq || showResourcesDialog;
|
|
175553
176156
|
const value = reactExports.useMemo(
|
|
175554
|
-
() => ({
|
|
175555
|
-
|
|
176157
|
+
() => ({
|
|
176158
|
+
openTasks,
|
|
176159
|
+
openCronjobs,
|
|
176160
|
+
openTunnel,
|
|
176161
|
+
openResources,
|
|
176162
|
+
tunnelStatus,
|
|
176163
|
+
anyDialogOpen
|
|
176164
|
+
}),
|
|
176165
|
+
[openTasks, openCronjobs, openTunnel, openResources, tunnelStatus, anyDialogOpen]
|
|
175556
176166
|
);
|
|
175557
176167
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(ToolbarOverflowContext.Provider, { value, children: [
|
|
175558
176168
|
children2,
|
|
@@ -175564,6 +176174,17 @@ function ToolbarOverflowProvider({ children: children2 }) {
|
|
|
175564
176174
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 border-b border-border/50 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Cronjobs" }) }),
|
|
175565
176175
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CronjobsPageContent, {})
|
|
175566
176176
|
] }) }),
|
|
176177
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showResourcesDialog, onOpenChange: setShowResourcesDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
176178
|
+
DialogContent,
|
|
176179
|
+
{
|
|
176180
|
+
className: "sm:max-w-6xl h-[80vh] flex flex-col p-0 gap-0",
|
|
176181
|
+
"data-testid": "resources-dialog",
|
|
176182
|
+
children: [
|
|
176183
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 border-b border-border/50 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Resources" }) }),
|
|
176184
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ResourcesPage, {}) })
|
|
176185
|
+
]
|
|
176186
|
+
}
|
|
176187
|
+
) }),
|
|
175567
176188
|
/* @__PURE__ */ jsxRuntimeExports.jsx(PrereqDialog, { open: showPrereq, onOpenChange: setShowPrereq, onReady: onPrereqReady }),
|
|
175568
176189
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175569
176190
|
TunnelDialog,
|
|
@@ -175599,6 +176220,10 @@ function ToolbarOverflowMenuItems() {
|
|
|
175599
176220
|
}
|
|
175600
176221
|
),
|
|
175601
176222
|
ctx.tunnelStatus === "running" ? "Mobile access" : "Start tunnel"
|
|
176223
|
+
] }),
|
|
176224
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onClick: ctx.openResources, "data-testid": "menu__resources", children: [
|
|
176225
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Activity, { className: "size-4" }),
|
|
176226
|
+
"Resources"
|
|
175602
176227
|
] })
|
|
175603
176228
|
] });
|
|
175604
176229
|
}
|
|
@@ -175622,12 +176247,12 @@ const PANEL_SHORTCUTS = {
|
|
|
175622
176247
|
browser: "⇧⌘B"
|
|
175623
176248
|
};
|
|
175624
176249
|
const DockviewTerminalContainer = reactExports.lazy(
|
|
175625
|
-
() => import("./DockviewTerminalContainer-
|
|
176250
|
+
() => import("./DockviewTerminalContainer-CC7i0yMZ.js").then((m2) => ({
|
|
175626
176251
|
default: m2.DockviewTerminalContainer
|
|
175627
176252
|
}))
|
|
175628
176253
|
);
|
|
175629
176254
|
const DockviewBrowserContainer = reactExports.lazy(
|
|
175630
|
-
() => import("./DockviewBrowserContainer-
|
|
176255
|
+
() => import("./DockviewBrowserContainer-BAe7TLKD.js").then((m2) => ({
|
|
175631
176256
|
default: m2.DockviewBrowserContainer
|
|
175632
176257
|
}))
|
|
175633
176258
|
);
|
|
@@ -176241,13 +176866,21 @@ function SharedDockviewLayout() {
|
|
|
176241
176866
|
window.dispatchEvent(new CustomEvent("band:focus-browser"));
|
|
176242
176867
|
});
|
|
176243
176868
|
}
|
|
176244
|
-
} else if (key2 === "b" && !e2.shiftKey && api) {
|
|
176869
|
+
} else if (key2 === "b" && !e2.shiftKey && !e2.altKey && api) {
|
|
176245
176870
|
e2.preventDefault();
|
|
176246
|
-
const
|
|
176247
|
-
if (left)
|
|
176248
|
-
|
|
176249
|
-
|
|
176250
|
-
|
|
176871
|
+
const inner2 = findFocusedInnerDockview();
|
|
176872
|
+
if (inner2 && toggleEdgeGroup(inner2, "left")) return;
|
|
176873
|
+
toggleEdgeGroup(api, "left");
|
|
176874
|
+
} else if (e2.code === "KeyB" && e2.altKey && !e2.shiftKey && api) {
|
|
176875
|
+
e2.preventDefault();
|
|
176876
|
+
const inner2 = findFocusedInnerDockview();
|
|
176877
|
+
if (inner2 && toggleEdgeGroup(inner2, "right")) return;
|
|
176878
|
+
toggleEdgeGroup(api, "right");
|
|
176879
|
+
} else if (key2 === "j" && !e2.shiftKey && !e2.altKey && api) {
|
|
176880
|
+
e2.preventDefault();
|
|
176881
|
+
const inner2 = findFocusedInnerDockview();
|
|
176882
|
+
if (inner2 && toggleEdgeGroup(inner2, "bottom")) return;
|
|
176883
|
+
toggleEdgeGroup(api, "bottom");
|
|
176251
176884
|
} else if (key2 === "m" && e2.shiftKey && api) {
|
|
176252
176885
|
e2.preventDefault();
|
|
176253
176886
|
const active = api.activeGroup;
|
|
@@ -176871,32 +177504,23 @@ function useZoom() {
|
|
|
176871
177504
|
return () => window.removeEventListener("keydown", handler, true);
|
|
176872
177505
|
}, []);
|
|
176873
177506
|
}
|
|
176874
|
-
function dispatchOpenFileEvent(event,
|
|
177507
|
+
function dispatchOpenFileEvent(event, handlers2) {
|
|
176875
177508
|
if (event.kind !== "open-file") return { handled: false, reason: "not-open-file" };
|
|
176876
177509
|
const workspaceId = typeof event.workspaceId === "string" ? event.workspaceId : void 0;
|
|
176877
177510
|
if (!workspaceId) return { handled: false, reason: "missing-workspace-id" };
|
|
176878
177511
|
const filePath = typeof event.filePath === "string" ? event.filePath : void 0;
|
|
176879
177512
|
if (!filePath) return { handled: false, reason: "missing-file-path" };
|
|
176880
|
-
const { isDockview, handlers: handlers2 } = options;
|
|
176881
177513
|
if (event.external === true) {
|
|
176882
177514
|
enqueueExternalOpen(workspaceId, filePath);
|
|
176883
|
-
|
|
176884
|
-
|
|
176885
|
-
return { handled: true, kind: "dockview-external" };
|
|
176886
|
-
}
|
|
176887
|
-
handlers2.navigateToWorkspaceCode(workspaceId);
|
|
176888
|
-
return { handled: true, kind: "mobile-external" };
|
|
176889
|
-
}
|
|
176890
|
-
if (isDockview) {
|
|
176891
|
-
handlers2.onOpenFile(workspaceId, filePath);
|
|
176892
|
-
return { handled: true, kind: "dockview-in-workspace" };
|
|
177515
|
+
handlers2.onActivateFilesPanel(workspaceId);
|
|
177516
|
+
return { handled: true, kind: "external" };
|
|
176893
177517
|
}
|
|
176894
|
-
handlers2.
|
|
176895
|
-
return { handled: true, kind: "
|
|
177518
|
+
handlers2.onOpenFile(workspaceId, filePath);
|
|
177519
|
+
return { handled: true, kind: "in-workspace" };
|
|
176896
177520
|
}
|
|
176897
177521
|
const adapter = isDesktop ? new DesktopDashboardAdapter() : new WebDashboardAdapter();
|
|
176898
177522
|
const capabilities = isDesktop ? new NativeShellCapabilities() : new WebCapabilities();
|
|
176899
|
-
const Route$
|
|
177523
|
+
const Route$2 = createRootRoute({
|
|
176900
177524
|
head: () => ({
|
|
176901
177525
|
meta: [
|
|
176902
177526
|
{ charSet: "utf-8" },
|
|
@@ -177060,27 +177684,14 @@ function AppShell() {
|
|
|
177060
177684
|
useDesktopLayoutRef.current = useDesktopLayout;
|
|
177061
177685
|
reactExports.useEffect(() => {
|
|
177062
177686
|
const unsubscribe = adapter.subscribeStatusEvents((event) => {
|
|
177687
|
+
if (!useDesktopLayoutRef.current) return;
|
|
177063
177688
|
dispatchOpenFileEvent(event, {
|
|
177064
|
-
|
|
177065
|
-
|
|
177066
|
-
onOpenFile: crossPanelHandlers.onOpenFile,
|
|
177067
|
-
onActivateFilesPanel: crossPanelHandlers.onActivateFilesPanel,
|
|
177068
|
-
navigateInWorkspace: (workspaceId, filePath) => router2.navigate({
|
|
177069
|
-
to: "/workspace/$workspaceId/code/$",
|
|
177070
|
-
params: {
|
|
177071
|
-
workspaceId: encodeURIComponent(workspaceId),
|
|
177072
|
-
_splat: filePath
|
|
177073
|
-
}
|
|
177074
|
-
}),
|
|
177075
|
-
navigateToWorkspaceCode: (workspaceId) => router2.navigate({
|
|
177076
|
-
to: "/workspace/$workspaceId/code",
|
|
177077
|
-
params: { workspaceId: encodeURIComponent(workspaceId) }
|
|
177078
|
-
})
|
|
177079
|
-
}
|
|
177689
|
+
onOpenFile: crossPanelHandlers.onOpenFile,
|
|
177690
|
+
onActivateFilesPanel: crossPanelHandlers.onActivateFilesPanel
|
|
177080
177691
|
});
|
|
177081
177692
|
});
|
|
177082
177693
|
return unsubscribe;
|
|
177083
|
-
}, [
|
|
177694
|
+
}, []);
|
|
177084
177695
|
const panelItems = reactExports.useMemo(
|
|
177085
177696
|
() => [
|
|
177086
177697
|
{ id: "chat", label: "Chat", icon: MessageSquare, shortcut: "⌃⌘I" },
|
|
@@ -177175,112 +177786,42 @@ function RootLayout() {
|
|
|
177175
177786
|
] })
|
|
177176
177787
|
] });
|
|
177177
177788
|
}
|
|
177178
|
-
const $$splitComponentImporter$
|
|
177179
|
-
const Route$
|
|
177180
|
-
component: lazyRouteComponent($$splitComponentImporter$7, "component")
|
|
177181
|
-
});
|
|
177182
|
-
const $$splitComponentImporter$6 = () => import("./workspace._workspaceId-DwsRTXCg.js");
|
|
177183
|
-
const Route$6 = createFileRoute("/workspace/$workspaceId")({
|
|
177184
|
-
component: lazyRouteComponent($$splitComponentImporter$6, "component")
|
|
177185
|
-
});
|
|
177186
|
-
const DiffStatsContext = reactExports.createContext({
|
|
177187
|
-
diffStats: null,
|
|
177188
|
-
setDiffStats: () => {
|
|
177189
|
-
}
|
|
177190
|
-
});
|
|
177191
|
-
function useDiffStatsContext() {
|
|
177192
|
-
return reactExports.useContext(DiffStatsContext);
|
|
177193
|
-
}
|
|
177194
|
-
const FindInFileContext = reactExports.createContext({
|
|
177195
|
-
setFindInFile: () => {
|
|
177196
|
-
}
|
|
177197
|
-
});
|
|
177198
|
-
function useFindInFileContext() {
|
|
177199
|
-
return reactExports.useContext(FindInFileContext);
|
|
177200
|
-
}
|
|
177201
|
-
const $$splitComponentImporter$5 = () => import("./workspace._workspaceId.index-BPhXMwl8.js");
|
|
177202
|
-
const Route$5 = createFileRoute("/workspace/$workspaceId/")({
|
|
177203
|
-
component: lazyRouteComponent($$splitComponentImporter$5, "component")
|
|
177204
|
-
});
|
|
177205
|
-
const $$splitComponentImporter$4 = () => import("./workspace._workspaceId.terminal-BdVDaWNH.js");
|
|
177206
|
-
const Route$4 = createFileRoute("/workspace/$workspaceId/terminal")({
|
|
177207
|
-
component: lazyRouteComponent($$splitComponentImporter$4, "component")
|
|
177208
|
-
});
|
|
177209
|
-
const $$splitComponentImporter$3 = () => import("./workspace._workspaceId.code-Cuj0zH98.js");
|
|
177210
|
-
const Route$3 = createFileRoute("/workspace/$workspaceId/code")({
|
|
177211
|
-
component: lazyRouteComponent($$splitComponentImporter$3, "component")
|
|
177212
|
-
});
|
|
177213
|
-
const $$splitComponentImporter$2 = () => import("./workspace._workspaceId.changes-C6vwSbUh.js");
|
|
177214
|
-
const Route$2 = createFileRoute("/workspace/$workspaceId/changes")({
|
|
177215
|
-
component: lazyRouteComponent($$splitComponentImporter$2, "component")
|
|
177216
|
-
});
|
|
177217
|
-
const $$splitComponentImporter$1 = () => import("./workspace._workspaceId.code.index-CE_CMD_I.js");
|
|
177218
|
-
const Route$1 = createFileRoute("/workspace/$workspaceId/code/")({
|
|
177789
|
+
const $$splitComponentImporter$1 = () => import("./index-CXMNOcuN.js");
|
|
177790
|
+
const Route$1 = createFileRoute("/")({
|
|
177219
177791
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
177220
177792
|
});
|
|
177221
|
-
const $$
|
|
177222
|
-
const
|
|
177223
|
-
|
|
177793
|
+
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-ClAAZ5aq.js");
|
|
177794
|
+
const $$splitComponentImporter = () => import("./workspace._workspaceId-DT6Kz8RH.js");
|
|
177795
|
+
const Route2 = createFileRoute("/workspace/$workspaceId")({
|
|
177796
|
+
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
177797
|
+
// Bookmarks / shared links from before route unification (`/workspace/$id/changes`,
|
|
177798
|
+
// `/workspace/$id/code/foo.ts`, `/workspace/$id/terminal`) used to resolve to
|
|
177799
|
+
// child routes that no longer exist. Redirect them to the canonical workspace
|
|
177800
|
+
// URL instead of showing the root 404. See issue #467.
|
|
177801
|
+
//
|
|
177802
|
+
// CAVEAT: this catches ANY unmatched sub-path under `/workspace/$id`, not
|
|
177803
|
+
// just the five retired routes. If a future child route is added here, a
|
|
177804
|
+
// typo'd link (e.g. `/workspace/$id/settigns` for a real `/settings` route)
|
|
177805
|
+
// will silently land on the workspace root rather than surfacing a 404.
|
|
177806
|
+
// If that becomes a problem, narrow this to an allowlist of known retired
|
|
177807
|
+
// path prefixes.
|
|
177808
|
+
notFoundComponent: lazyRouteComponent($$splitNotFoundComponentImporter, "notFoundComponent")
|
|
177224
177809
|
});
|
|
177225
|
-
const IndexRoute = Route$
|
|
177810
|
+
const IndexRoute = Route$1.update({
|
|
177226
177811
|
id: "/",
|
|
177227
177812
|
path: "/",
|
|
177228
|
-
getParentRoute: () => Route$
|
|
177813
|
+
getParentRoute: () => Route$2
|
|
177229
177814
|
});
|
|
177230
|
-
const WorkspaceWorkspaceIdRoute =
|
|
177815
|
+
const WorkspaceWorkspaceIdRoute = Route2.update({
|
|
177231
177816
|
id: "/workspace/$workspaceId",
|
|
177232
177817
|
path: "/workspace/$workspaceId",
|
|
177233
|
-
getParentRoute: () => Route$
|
|
177234
|
-
});
|
|
177235
|
-
const WorkspaceWorkspaceIdIndexRoute = Route$5.update({
|
|
177236
|
-
id: "/",
|
|
177237
|
-
path: "/",
|
|
177238
|
-
getParentRoute: () => WorkspaceWorkspaceIdRoute
|
|
177818
|
+
getParentRoute: () => Route$2
|
|
177239
177819
|
});
|
|
177240
|
-
const WorkspaceWorkspaceIdTerminalRoute = Route$4.update({
|
|
177241
|
-
id: "/terminal",
|
|
177242
|
-
path: "/terminal",
|
|
177243
|
-
getParentRoute: () => WorkspaceWorkspaceIdRoute
|
|
177244
|
-
});
|
|
177245
|
-
const WorkspaceWorkspaceIdCodeRoute = Route$3.update({
|
|
177246
|
-
id: "/code",
|
|
177247
|
-
path: "/code",
|
|
177248
|
-
getParentRoute: () => WorkspaceWorkspaceIdRoute
|
|
177249
|
-
});
|
|
177250
|
-
const WorkspaceWorkspaceIdChangesRoute = Route$2.update({
|
|
177251
|
-
id: "/changes",
|
|
177252
|
-
path: "/changes",
|
|
177253
|
-
getParentRoute: () => WorkspaceWorkspaceIdRoute
|
|
177254
|
-
});
|
|
177255
|
-
const WorkspaceWorkspaceIdCodeIndexRoute = Route$1.update({
|
|
177256
|
-
id: "/",
|
|
177257
|
-
path: "/",
|
|
177258
|
-
getParentRoute: () => WorkspaceWorkspaceIdCodeRoute
|
|
177259
|
-
});
|
|
177260
|
-
const WorkspaceWorkspaceIdCodeSplatRoute = Route2.update({
|
|
177261
|
-
id: "/$",
|
|
177262
|
-
path: "/$",
|
|
177263
|
-
getParentRoute: () => WorkspaceWorkspaceIdCodeRoute
|
|
177264
|
-
});
|
|
177265
|
-
const WorkspaceWorkspaceIdCodeRouteChildren = {
|
|
177266
|
-
WorkspaceWorkspaceIdCodeSplatRoute,
|
|
177267
|
-
WorkspaceWorkspaceIdCodeIndexRoute
|
|
177268
|
-
};
|
|
177269
|
-
const WorkspaceWorkspaceIdCodeRouteWithChildren = WorkspaceWorkspaceIdCodeRoute._addFileChildren(
|
|
177270
|
-
WorkspaceWorkspaceIdCodeRouteChildren
|
|
177271
|
-
);
|
|
177272
|
-
const WorkspaceWorkspaceIdRouteChildren = {
|
|
177273
|
-
WorkspaceWorkspaceIdChangesRoute,
|
|
177274
|
-
WorkspaceWorkspaceIdCodeRoute: WorkspaceWorkspaceIdCodeRouteWithChildren,
|
|
177275
|
-
WorkspaceWorkspaceIdTerminalRoute,
|
|
177276
|
-
WorkspaceWorkspaceIdIndexRoute
|
|
177277
|
-
};
|
|
177278
|
-
const WorkspaceWorkspaceIdRouteWithChildren = WorkspaceWorkspaceIdRoute._addFileChildren(WorkspaceWorkspaceIdRouteChildren);
|
|
177279
177820
|
const rootRouteChildren = {
|
|
177280
177821
|
IndexRoute,
|
|
177281
|
-
WorkspaceWorkspaceIdRoute
|
|
177822
|
+
WorkspaceWorkspaceIdRoute
|
|
177282
177823
|
};
|
|
177283
|
-
const routeTree = Route$
|
|
177824
|
+
const routeTree = Route$2._addFileChildren(rootRouteChildren)._addFileTypes();
|
|
177284
177825
|
function getRouter() {
|
|
177285
177826
|
return createRouter({
|
|
177286
177827
|
routeTree,
|
|
@@ -177292,275 +177833,271 @@ const router = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
|
|
|
177292
177833
|
getRouter
|
|
177293
177834
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
177294
177835
|
export {
|
|
177295
|
-
|
|
177296
|
-
|
|
177297
|
-
|
|
177298
|
-
|
|
177299
|
-
|
|
177300
|
-
|
|
177301
|
-
|
|
177302
|
-
|
|
177303
|
-
|
|
177836
|
+
wrapLabel as $,
|
|
177837
|
+
cycleTabsInActiveGroup as A,
|
|
177838
|
+
cycleGridGroups as B,
|
|
177839
|
+
Columns2 as C,
|
|
177840
|
+
DefaultBufferLength as D,
|
|
177841
|
+
R$4 as E,
|
|
177842
|
+
setAccDescription as F,
|
|
177843
|
+
getAccDescription as G,
|
|
177844
|
+
getAccTitle as H,
|
|
177304
177845
|
IterMode as I,
|
|
177305
|
-
|
|
177306
|
-
|
|
177846
|
+
setAccTitle as J,
|
|
177847
|
+
Ks as K,
|
|
177307
177848
|
LanguageSupport as L,
|
|
177308
|
-
|
|
177849
|
+
getConfig2 as M,
|
|
177309
177850
|
Nt as N,
|
|
177310
|
-
|
|
177851
|
+
select as O,
|
|
177311
177852
|
Parser$2 as P,
|
|
177312
|
-
|
|
177313
|
-
|
|
177314
|
-
|
|
177853
|
+
Qe$1 as Q,
|
|
177854
|
+
Route2 as R,
|
|
177855
|
+
log as S,
|
|
177315
177856
|
Tree as T,
|
|
177316
|
-
|
|
177317
|
-
|
|
177318
|
-
|
|
177857
|
+
configureSvgSize as U,
|
|
177858
|
+
assignWithDepth_default as V,
|
|
177859
|
+
calculateTextWidth as W,
|
|
177319
177860
|
X$7 as X,
|
|
177320
|
-
|
|
177321
|
-
|
|
177322
|
-
|
|
177861
|
+
sanitizeText as Y,
|
|
177862
|
+
distExports as Z,
|
|
177863
|
+
__name as _,
|
|
177323
177864
|
Navigate as a,
|
|
177324
|
-
|
|
177325
|
-
|
|
177326
|
-
|
|
177327
|
-
|
|
177328
|
-
|
|
177329
|
-
|
|
177330
|
-
|
|
177331
|
-
|
|
177332
|
-
|
|
177333
|
-
|
|
177334
|
-
|
|
177335
|
-
|
|
177336
|
-
|
|
177337
|
-
|
|
177338
|
-
|
|
177339
|
-
|
|
177340
|
-
|
|
177341
|
-
|
|
177342
|
-
|
|
177343
|
-
|
|
177344
|
-
|
|
177345
|
-
|
|
177346
|
-
|
|
177347
|
-
|
|
177348
|
-
|
|
177349
|
-
|
|
177350
|
-
|
|
177351
|
-
|
|
177352
|
-
|
|
177353
|
-
|
|
177354
|
-
|
|
177355
|
-
|
|
177356
|
-
|
|
177357
|
-
|
|
177358
|
-
|
|
177359
|
-
|
|
177360
|
-
|
|
177361
|
-
|
|
177362
|
-
|
|
177363
|
-
|
|
177364
|
-
|
|
177365
|
-
|
|
177366
|
-
|
|
177367
|
-
|
|
177368
|
-
|
|
177369
|
-
|
|
177370
|
-
|
|
177371
|
-
|
|
177372
|
-
|
|
177373
|
-
|
|
177374
|
-
|
|
177375
|
-
|
|
177376
|
-
|
|
177377
|
-
|
|
177378
|
-
|
|
177379
|
-
|
|
177380
|
-
|
|
177381
|
-
|
|
177382
|
-
|
|
177383
|
-
|
|
177384
|
-
|
|
177385
|
-
|
|
177386
|
-
|
|
177387
|
-
|
|
177388
|
-
|
|
177389
|
-
|
|
177390
|
-
|
|
177391
|
-
|
|
177392
|
-
|
|
177393
|
-
|
|
177394
|
-
|
|
177395
|
-
|
|
177396
|
-
|
|
177397
|
-
|
|
177398
|
-
|
|
177399
|
-
|
|
177400
|
-
|
|
177401
|
-
|
|
177402
|
-
|
|
177403
|
-
|
|
177404
|
-
|
|
177405
|
-
|
|
177406
|
-
|
|
177407
|
-
|
|
177408
|
-
|
|
177409
|
-
|
|
177410
|
-
|
|
177411
|
-
|
|
177412
|
-
|
|
177413
|
-
|
|
177414
|
-
|
|
177415
|
-
|
|
177416
|
-
|
|
177417
|
-
|
|
177418
|
-
|
|
177419
|
-
|
|
177420
|
-
|
|
177421
|
-
|
|
177422
|
-
|
|
177423
|
-
|
|
177424
|
-
|
|
177425
|
-
|
|
177426
|
-
|
|
177427
|
-
|
|
177428
|
-
|
|
177429
|
-
|
|
177430
|
-
|
|
177431
|
-
|
|
177432
|
-
|
|
177433
|
-
|
|
177434
|
-
|
|
177435
|
-
|
|
177436
|
-
|
|
177437
|
-
|
|
177438
|
-
|
|
177439
|
-
|
|
177440
|
-
|
|
177441
|
-
|
|
177442
|
-
|
|
177443
|
-
|
|
177444
|
-
|
|
177445
|
-
|
|
177446
|
-
|
|
177447
|
-
|
|
177448
|
-
|
|
177449
|
-
|
|
177450
|
-
|
|
177451
|
-
|
|
177452
|
-
|
|
177453
|
-
|
|
177454
|
-
|
|
177455
|
-
|
|
177456
|
-
|
|
177457
|
-
|
|
177458
|
-
|
|
177459
|
-
|
|
177460
|
-
|
|
177461
|
-
|
|
177462
|
-
|
|
177463
|
-
|
|
177464
|
-
|
|
177465
|
-
|
|
177466
|
-
|
|
177467
|
-
|
|
177468
|
-
|
|
177469
|
-
|
|
177470
|
-
|
|
177471
|
-
|
|
177472
|
-
|
|
177473
|
-
|
|
177474
|
-
|
|
177475
|
-
|
|
177476
|
-
|
|
177477
|
-
|
|
177478
|
-
|
|
177479
|
-
|
|
177480
|
-
|
|
177481
|
-
|
|
177482
|
-
|
|
177483
|
-
|
|
177484
|
-
|
|
177485
|
-
|
|
177486
|
-
|
|
177487
|
-
|
|
177488
|
-
|
|
177489
|
-
|
|
177490
|
-
|
|
177491
|
-
|
|
177492
|
-
|
|
177493
|
-
|
|
177494
|
-
|
|
177495
|
-
|
|
177496
|
-
|
|
177497
|
-
|
|
177498
|
-
|
|
177499
|
-
|
|
177500
|
-
|
|
177501
|
-
|
|
177502
|
-
|
|
177503
|
-
|
|
177504
|
-
|
|
177505
|
-
|
|
177506
|
-
|
|
177507
|
-
|
|
177508
|
-
|
|
177509
|
-
|
|
177510
|
-
|
|
177511
|
-
|
|
177512
|
-
|
|
177513
|
-
|
|
177514
|
-
|
|
177515
|
-
|
|
177516
|
-
|
|
177517
|
-
|
|
177518
|
-
|
|
177519
|
-
|
|
177520
|
-
|
|
177521
|
-
|
|
177522
|
-
|
|
177523
|
-
|
|
177524
|
-
|
|
177525
|
-
|
|
177526
|
-
|
|
177527
|
-
|
|
177528
|
-
|
|
177529
|
-
|
|
177530
|
-
|
|
177531
|
-
|
|
177532
|
-
|
|
177533
|
-
|
|
177534
|
-
|
|
177535
|
-
|
|
177536
|
-
|
|
177537
|
-
|
|
177538
|
-
|
|
177539
|
-
|
|
177540
|
-
|
|
177541
|
-
|
|
177542
|
-
|
|
177543
|
-
|
|
177544
|
-
|
|
177545
|
-
|
|
177546
|
-
|
|
177547
|
-
|
|
177548
|
-
|
|
177549
|
-
|
|
177550
|
-
|
|
177551
|
-
|
|
177552
|
-
|
|
177553
|
-
|
|
177554
|
-
continuedIndent as o,
|
|
177555
|
-
foldNodeProp as p,
|
|
177556
|
-
foldInside as q,
|
|
177557
|
-
tags as r,
|
|
177865
|
+
getSubGraphTitleMargins as a$,
|
|
177866
|
+
common_default as a0,
|
|
177867
|
+
calculateTextHeight as a1,
|
|
177868
|
+
lineBreakRegex as a2,
|
|
177869
|
+
setConfig2 as a3,
|
|
177870
|
+
getRegisteredLayoutAlgorithm as a4,
|
|
177871
|
+
render$1 as a5,
|
|
177872
|
+
utils_default as a6,
|
|
177873
|
+
setDiagramTitle as a7,
|
|
177874
|
+
getDiagramTitle as a8,
|
|
177875
|
+
load as a9,
|
|
177876
|
+
atan2 as aA,
|
|
177877
|
+
constant$1 as aB,
|
|
177878
|
+
asin as aC,
|
|
177879
|
+
acos as aD,
|
|
177880
|
+
max as aE,
|
|
177881
|
+
getThemeVariables3 as aF,
|
|
177882
|
+
hasKatex as aG,
|
|
177883
|
+
calculateMathMLDimensions as aH,
|
|
177884
|
+
parseFontSize as aI,
|
|
177885
|
+
ZERO_WIDTH_SPACE as aJ,
|
|
177886
|
+
getUrl as aK,
|
|
177887
|
+
renderKatexSanitized as aL,
|
|
177888
|
+
parseGenericTypes as aM,
|
|
177889
|
+
line$1 as aN,
|
|
177890
|
+
curveBasis as aO,
|
|
177891
|
+
generateId as aP,
|
|
177892
|
+
setupGraphViewbox as aQ,
|
|
177893
|
+
isDark as aR,
|
|
177894
|
+
lighten as aS,
|
|
177895
|
+
darken as aT,
|
|
177896
|
+
commonDb_exports as aU,
|
|
177897
|
+
insertCluster as aV,
|
|
177898
|
+
insertNode as aW,
|
|
177899
|
+
positionNode as aX,
|
|
177900
|
+
getLineFunctionsWithOffset as aY,
|
|
177901
|
+
evaluate as aZ,
|
|
177902
|
+
createText as a_,
|
|
177903
|
+
JSON_SCHEMA as aa,
|
|
177904
|
+
isValidShape as ab,
|
|
177905
|
+
getEdgeId as ac,
|
|
177906
|
+
clear$2 as ad,
|
|
177907
|
+
defaultConfig2 as ae,
|
|
177908
|
+
rgba$1 as af,
|
|
177909
|
+
Utils as ag,
|
|
177910
|
+
Color$1 as ah,
|
|
177911
|
+
__export$1 as ai,
|
|
177912
|
+
setupGraphViewbox2 as aj,
|
|
177913
|
+
cleanAndMerge as ak,
|
|
177914
|
+
defaultConfig_default as al,
|
|
177915
|
+
getConfig as am,
|
|
177916
|
+
random as an,
|
|
177917
|
+
selectSvgElement as ao,
|
|
177918
|
+
package_default as ap,
|
|
177919
|
+
withPath as aq,
|
|
177920
|
+
halfPi as ar,
|
|
177921
|
+
epsilon as as,
|
|
177922
|
+
tau as at,
|
|
177923
|
+
cos as au,
|
|
177924
|
+
sin as av,
|
|
177925
|
+
min as aw,
|
|
177926
|
+
abs$1 as ax,
|
|
177927
|
+
pi as ay,
|
|
177928
|
+
sqrt as az,
|
|
177929
|
+
LRLanguage as b,
|
|
177930
|
+
array$2 as b$,
|
|
177931
|
+
replaceIconSubstring as b0,
|
|
177932
|
+
decodeEntities as b1,
|
|
177933
|
+
getStylesFromArray as b2,
|
|
177934
|
+
delimitedIndent as b3,
|
|
177935
|
+
NodeWeakMap as b4,
|
|
177936
|
+
snippetCompletion as b5,
|
|
177937
|
+
Tag as b6,
|
|
177938
|
+
parseMixed as b7,
|
|
177939
|
+
EditorSelection as b8,
|
|
177940
|
+
countColumn as b9,
|
|
177941
|
+
insertEdge as bA,
|
|
177942
|
+
positionEdgeLabel as bB,
|
|
177943
|
+
insertEdgeLabel as bC,
|
|
177944
|
+
computeDimensionOfText as bD,
|
|
177945
|
+
Ut$1 as bE,
|
|
177946
|
+
Yt$1 as bF,
|
|
177947
|
+
DashboardShell as bG,
|
|
177948
|
+
Qt$1 as bH,
|
|
177949
|
+
MessageSquare as bI,
|
|
177950
|
+
useIsDesktop as bJ,
|
|
177951
|
+
ToolbarOverflowProvider as bK,
|
|
177952
|
+
ToolbarOverflowMenuItems as bL,
|
|
177953
|
+
isDesktop as bM,
|
|
177954
|
+
GitCompare as bN,
|
|
177955
|
+
FolderOpen as bO,
|
|
177956
|
+
useDashboardStore as bP,
|
|
177957
|
+
useNavigate as bQ,
|
|
177958
|
+
DesktopDragRegion as bR,
|
|
177959
|
+
ArrowLeft as bS,
|
|
177960
|
+
DiffView as bT,
|
|
177961
|
+
CodeBrowserView as bU,
|
|
177962
|
+
QuickOpenDialog as bV,
|
|
177963
|
+
SearchFilesDialog as bW,
|
|
177964
|
+
useDiffTarget as bX,
|
|
177965
|
+
useSettingsQuery as bY,
|
|
177966
|
+
agentTypeSupportsSessionListing as bZ,
|
|
177967
|
+
ChatView as b_,
|
|
177968
|
+
Prec as ba,
|
|
177969
|
+
keymap as bb,
|
|
177970
|
+
EditorView as bc,
|
|
177971
|
+
Language as bd,
|
|
177972
|
+
indentUnit as be,
|
|
177973
|
+
foldService as bf,
|
|
177974
|
+
defineLanguageFacet as bg,
|
|
177975
|
+
CompletionContext as bh,
|
|
177976
|
+
EditorState as bi,
|
|
177977
|
+
languageDataProp as bj,
|
|
177978
|
+
LanguageDescription as bk,
|
|
177979
|
+
ParseContext as bl,
|
|
177980
|
+
bracketMatchingHandle as bm,
|
|
177981
|
+
flatIndent as bn,
|
|
177982
|
+
sublanguageProp as bo,
|
|
177983
|
+
baseRest as bp,
|
|
177984
|
+
isArrayLikeObject as bq,
|
|
177985
|
+
constant as br,
|
|
177986
|
+
isFunction as bs,
|
|
177987
|
+
isEmpty as bt,
|
|
177988
|
+
markers_default as bu,
|
|
177989
|
+
clear2 as bv,
|
|
177990
|
+
clear as bw,
|
|
177991
|
+
clear$1 as bx,
|
|
177992
|
+
updateNodeBounds as by,
|
|
177993
|
+
setNodeElem as bz,
|
|
177994
|
+
continuedIndent as c,
|
|
177995
|
+
baseKeys as c$,
|
|
177996
|
+
getUserDefinedConfig as c0,
|
|
177997
|
+
ArrowRight as c1,
|
|
177998
|
+
ArrowUp as c2,
|
|
177999
|
+
ArrowDown as c3,
|
|
178000
|
+
ClipboardPaste as c4,
|
|
178001
|
+
getCurrentZoomLevel as c5,
|
|
178002
|
+
openExternalUrl as c6,
|
|
178003
|
+
subscribeToZoomChanges as c7,
|
|
178004
|
+
SearchBar as c8,
|
|
178005
|
+
ZOOM_CSS_VAR as c9,
|
|
178006
|
+
isIndex as cA,
|
|
178007
|
+
assignValue as cB,
|
|
178008
|
+
constant$2 as cC,
|
|
178009
|
+
interpolateNumber as cD,
|
|
178010
|
+
color as cE,
|
|
178011
|
+
interpolateRgb as cF,
|
|
178012
|
+
interpolateString as cG,
|
|
178013
|
+
styles2String as cH,
|
|
178014
|
+
isLabelStyle as cI,
|
|
178015
|
+
Rgb as cJ,
|
|
178016
|
+
rgbConvert as cK,
|
|
178017
|
+
define as cL,
|
|
178018
|
+
extend$2 as cM,
|
|
178019
|
+
Color as cN,
|
|
178020
|
+
nogamma as cO,
|
|
178021
|
+
hue as cP,
|
|
178022
|
+
dayjs2 as cQ,
|
|
178023
|
+
setToString as cR,
|
|
178024
|
+
overRest as cS,
|
|
178025
|
+
baseFor as cT,
|
|
178026
|
+
baseAssignValue as cU,
|
|
178027
|
+
baseUnary as cV,
|
|
178028
|
+
merge$1 as cW,
|
|
178029
|
+
isObjectLike as cX,
|
|
178030
|
+
baseGetTag as cY,
|
|
178031
|
+
Symbol$1 as cZ,
|
|
178032
|
+
arrayLikeKeys as c_,
|
|
178033
|
+
getIconSVG as ca,
|
|
178034
|
+
registerIconPacks as cb,
|
|
178035
|
+
unknownIcon as cc,
|
|
178036
|
+
invoke as cd,
|
|
178037
|
+
listen as ce,
|
|
178038
|
+
reactDomExports as cf,
|
|
178039
|
+
Globe as cg,
|
|
178040
|
+
Popover as ch,
|
|
178041
|
+
PopoverTrigger as ci,
|
|
178042
|
+
PopoverContent as cj,
|
|
178043
|
+
Search as ck,
|
|
178044
|
+
Trash2 as cl,
|
|
178045
|
+
DropdownMenu as cm,
|
|
178046
|
+
DropdownMenuTrigger as cn,
|
|
178047
|
+
ChevronDown as co,
|
|
178048
|
+
DropdownMenuContent as cp,
|
|
178049
|
+
DropdownMenuItem as cq,
|
|
178050
|
+
TriangleAlert as cr,
|
|
178051
|
+
RotateCw as cs,
|
|
178052
|
+
isObject$1 as ct,
|
|
178053
|
+
isIterateeCall as cu,
|
|
178054
|
+
keysIn as cv,
|
|
178055
|
+
eq as cw,
|
|
178056
|
+
isArrayLike as cx,
|
|
178057
|
+
isArray as cy,
|
|
178058
|
+
identity as cz,
|
|
178059
|
+
foldInside as d,
|
|
178060
|
+
memoize as d0,
|
|
178061
|
+
isArguments as d1,
|
|
178062
|
+
copyObject as d2,
|
|
178063
|
+
getPrototype as d3,
|
|
178064
|
+
cloneArrayBuffer as d4,
|
|
178065
|
+
cloneTypedArray as d5,
|
|
178066
|
+
getTag as d6,
|
|
178067
|
+
nodeUtil as d7,
|
|
178068
|
+
copyArray as d8,
|
|
178069
|
+
isBuffer as d9,
|
|
178070
|
+
cloneBuffer as da,
|
|
178071
|
+
initCloneObject as db,
|
|
178072
|
+
Stack as dc,
|
|
178073
|
+
MapCache as dd,
|
|
178074
|
+
Uint8Array$1 as de,
|
|
178075
|
+
isTypedArray as df,
|
|
178076
|
+
isLength as dg,
|
|
178077
|
+
Set$1 as dh,
|
|
178078
|
+
createAssigner as di,
|
|
178079
|
+
isPrototype as dj,
|
|
178080
|
+
router as dk,
|
|
178081
|
+
ifNotIn as e,
|
|
178082
|
+
foldNodeProp as f,
|
|
178083
|
+
completeFromList as g,
|
|
178084
|
+
syntaxTree as h,
|
|
178085
|
+
indentNodeProp as i,
|
|
178086
|
+
NodeSet as j,
|
|
178087
|
+
NodeType as k,
|
|
178088
|
+
NodeProp as l,
|
|
178089
|
+
createLucideIcon as m,
|
|
178090
|
+
useQueryClient as n,
|
|
178091
|
+
useQuery as o,
|
|
178092
|
+
trpc as p,
|
|
178093
|
+
selectNeighbourBeforeRemove as q,
|
|
178094
|
+
ensureEdgeGroups as r,
|
|
177558
178095
|
styleTags as s,
|
|
177559
|
-
|
|
177560
|
-
|
|
177561
|
-
|
|
177562
|
-
|
|
177563
|
-
|
|
177564
|
-
|
|
177565
|
-
|
|
178096
|
+
tags as t,
|
|
178097
|
+
useAdapter as u,
|
|
178098
|
+
attachEdgeGroupDragVisibility as v,
|
|
178099
|
+
registerInnerDockview as w,
|
|
178100
|
+
DockviewReact as x,
|
|
178101
|
+
Rows2 as y,
|
|
178102
|
+
Plus as z
|
|
177566
178103
|
};
|