@band-app/server 0.23.0 → 0.24.1
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-c5TBCFK6.js → DockviewBrowserContainer-pecXom0M.js} +2 -2
- package/dist/client/assets/{DockviewTerminalContainer-De1DHQ5S.js → DockviewTerminalContainer-B_36q2Dz.js} +2 -2
- package/dist/client/assets/TerminalPanel-DbxLiy2t.js +5 -0
- package/dist/client/assets/{_basePickBy-DjS8T81h.js → _basePickBy-CtbD70T-.js} +1 -1
- package/dist/client/assets/{_baseUniq-BoA3Q22r.js → _baseUniq-Cb5igq_8.js} +1 -1
- package/dist/client/assets/{arc-DzFH-F6i.js → arc-BEzsE6TU.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-DpWdRDqh.js → architectureDiagram-VXUJARFQ-BnV97au3.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-In-FvNuA.js → blockDiagram-VD42YOAC-CVv0vV-s.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-uWim35od.js → c4Diagram-YG6GDRKO-W3bslfZm.js} +1 -1
- package/dist/client/assets/channel-2Of2aNA_.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-uNqF21Qn.js → chunk-4BX2VUAB-B4zNuPCM.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-BEB0DppO.js → chunk-55IACEB6-CJb5GOdO.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-Csf_UWBG.js → chunk-B4BG7PRW-m9UNdA4H.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-ehQAiitH.js → chunk-DI55MBZ5-Dyl4ba3F.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-Ddw3wom4.js → chunk-FMBD7UC4-Ds1gRx94.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-ICAdKyID.js → chunk-QN33PNHL-yK0yp12G.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CWKRx0Nc.js → chunk-QZHKN3VN-BiZtPmD0.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-DEAJFNe9.js → chunk-TZMSLE5B-DCz64hjM.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-D6UcKhcB.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-D6UcKhcB.js +1 -0
- package/dist/client/assets/clone-DBCpY5Fq.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CbS4okPK.js → cose-bilkent-S5V4N54A-BZFGVpWR.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-BsLKz8AK.js → dagre-6UL2VRFP-DRDPL67k.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-M6PnJuei.js → diagram-PSM6KHXK-DYAOsIc0.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-B__5YbI4.js → diagram-QEK2KX5R-CnjVQgn2.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-DKHL_M-B.js → diagram-S2PKOQOG-B8sAgSNe.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-BfFW0JbE.js → erDiagram-Q2GNP2WA-WnEcSFDk.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-DjhRrkWq.js → flowDiagram-NV44I4VS-BONBJZ3h.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-COYeUCef.js → ganttDiagram-JELNMOA3-BDhpQL_t.js} +3 -3
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-BxnB-BVL.js → gitGraphDiagram-V2S2FVAM-CZGjCgZ_.js} +1 -1
- package/dist/client/assets/{graph-B6AmaXta.js → graph-DmGEXolJ.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-wXSbO2Nz.js → highlighted-body-B3W2YXNL-m0iS7EC3.js} +1 -1
- package/dist/client/assets/{index-DQcyjj1n.js → index-0oNHljPn.js} +1 -1
- package/dist/client/assets/{index-dPGgxYg7.js → index-3O6bsWX3.js} +1 -1
- package/dist/client/assets/{index-DPAcHZUY.js → index-B-4gD4iz.js} +1 -1
- package/dist/client/assets/{index-B_tLkjtQ.js → index-B102sYPH.js} +1 -1
- package/dist/client/assets/{index-DKFuGU2w.js → index-BBy73G4g.js} +1 -1
- package/dist/client/assets/{index-e6iwsWag.js → index-BMTzG2fm.js} +1 -1
- package/dist/client/assets/index-BoLCZb5I.js +1 -0
- package/dist/client/assets/{index-BR4JJgox.js → index-BpxKDn01.js} +1 -1
- package/dist/client/assets/{index-DOipD6Mc.js → index-BvzISRCa.js} +1 -1
- package/dist/client/assets/{index-B-xrNHzx.js → index-C46YYuZo.js} +1 -1
- package/dist/client/assets/{index-Bu4tJzS5.js → index-CDJOOMr2.js} +1 -1
- package/dist/client/assets/{index-DjFJyRsb.js → index-CFnCbQSl.js} +1 -1
- package/dist/client/assets/{index-CFh_QYgy.js → index-CfW6UcUl.js} +1 -1
- package/dist/client/assets/{index-C9my7XIp.js → index-CiKuHiO0.js} +1 -1
- package/dist/client/assets/{index-CXAmq9J9.js → index-D6Afu1pA.js} +1 -1
- package/dist/client/assets/{index-YemckZzk.js → index-DBnjKdGf.js} +1 -1
- package/dist/client/assets/{index-oWFAyhhb.js → index-DgEnCq6K.js} +1 -1
- package/dist/client/assets/{index-C5FWnSNO.js → index-Dmse4WDP.js} +1 -1
- package/dist/client/assets/{infoDiagram-HS3SLOUP-8jgZTWHc.js → infoDiagram-HS3SLOUP-Bf3MrisJ.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-C7UnOrYP.js → journeyDiagram-XKPGCS4Q-Dlf8x32q.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-BfAJ2XMs.js → kanban-definition-3W4ZIXB7-BVJThDju.js} +1 -1
- package/dist/client/assets/{layout-BFiS4INQ.js → layout-CbZgayJn.js} +1 -1
- package/dist/client/assets/main-DOmWiUwE.css +1 -0
- package/dist/client/assets/{main-SDku1HcN.js → main-RztHx-sU.js} +236 -236
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-CHJqgPgK.js → mindmap-definition-VGOIOE7T-C4kJ6VHG.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-v1PBCyig.js → pieDiagram-ADFJNKIX-B4aWIFbt.js} +2 -2
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-BmSciYlO.js → quadrantDiagram-AYHSOK5B-Bec9Hhh2.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-Cpc8-ItX.js → requirementDiagram-UZGBJVZJ-CsOubtSM.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BimDWo8J.js → sankeyDiagram-TZEHDZUN-C8Gm96t1.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-CL72CIvP.js → sequenceDiagram-WL72ISMW-Bvgi8x7V.js} +1 -1
- package/dist/client/assets/{square-terminal-DAh77hNm.js → square-terminal-BHkrAD3A.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-DPD5YOcB.js → stateDiagram-FKZM4ZOC-TzlVvqDv.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BibE5lUV.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-UujIEPPc.js → timeline-definition-IT6M3QCI-BNBrcAuE.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-CnxwYqSA.js → treemap-GDKQZRPO-Dt5TrQzS.js} +1 -1
- package/dist/client/assets/workspace._workspaceId-Cx9WUFHK.js +2 -0
- package/dist/client/assets/{workspace._workspaceId--WY7ydFH.js → workspace._workspaceId-DGQl6asL.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-QNPzTKdU.js → xychartDiagram-PRI3JC2R-BbVpQ6GU.js} +1 -1
- package/dist/migrations/20260703151516_add_worktree_name/migration.sql +2 -0
- package/dist/migrations/20260703151516_add_worktree_name/snapshot.json +1167 -0
- package/dist/openapi.json +26 -16
- package/dist/server/assets/{DockviewBrowserContainer-B8W-NI5l.js → DockviewBrowserContainer-BDsafKFK.js} +1 -1
- package/dist/server/assets/{DockviewTerminalContainer-D6ZTAITZ.js → DockviewTerminalContainer-CMbrr8wZ.js} +3 -3
- package/dist/server/assets/{TerminalPanel-D1qOucYL.js → TerminalPanel-nFYTCFHx.js} +26 -24
- package/dist/server/assets/{_basePickBy-DCBLSYIo.js → _basePickBy-ljLFy5Cm.js} +2 -2
- package/dist/server/assets/{_baseUniq-D6dm-LAQ.js → _baseUniq-DQmNpetJ.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-v9ri0NYD.js +4 -0
- package/dist/server/assets/{arc-BAoORaWl.js → arc-KHCw-8vd.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-bh4pvUjy.js → architecture-7HQA4BMR-BScKJqpc.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-B6S0AQBn.js → architectureDiagram-VXUJARFQ-T9CAFBo1.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-DLnnO4-n.js → blockDiagram-VD42YOAC-BKZ2vg7U.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-CqN2DKBx.js → c4Diagram-YG6GDRKO-D585k1An.js} +2 -2
- package/dist/server/assets/{channel-f3Ahc3R0.js → channel-CyG4ozZq.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-CuDavVBE.js → chunk-4BX2VUAB-BHWbP2Lt.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-D_qe5s0S.js → chunk-55IACEB6-CrerCu6v.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-C0ML39A6.js → chunk-B4BG7PRW-D3sl50Aa.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-DGj3ha0C.js → chunk-DI55MBZ5-DR6gThvq.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-D-f7FIcf.js → chunk-FMBD7UC4-Cil9b1Ts.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-DSo_m7vF.js → chunk-QN33PNHL-BAKy9Ygg.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-gT8icS8l.js → chunk-QZHKN3VN-G4fU4Ucn.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-CoUTe4U3.js → chunk-TZMSLE5B-LzSrmWV5.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CbQuH3ni.js → classDiagram-2ON5EDUG-Ds7CCTUR.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-CbQuH3ni.js → classDiagram-v2-WZHVMYZB-Ds7CCTUR.js} +5 -5
- package/dist/server/assets/{clone-DhkQMQiL.js → clone-B4KVJdwD.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-Q7Nl8Zqm.js → cose-bilkent-S5V4N54A-DaKuQRAN.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-RuiqkM_u.js → dagre-6UL2VRFP-CNIyd6rH.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-mvCbaKci.js → diagram-PSM6KHXK-ByElNwdP.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-B30M6IEM.js → diagram-QEK2KX5R-Bpupf8hI.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-BapZgpGh.js → diagram-S2PKOQOG-CSa3a_oJ.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-LKD5sOpF.js → erDiagram-Q2GNP2WA-B3yUU2uu.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-Cg70kWHZ.js → flowDiagram-NV44I4VS-CUlvxSwr.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-CpgS7Gbo.js → ganttDiagram-JELNMOA3-BWxUm4vA.js} +1 -1
- package/dist/server/assets/{gitGraph-G5XIXVHT-BX-0wA2S.js → gitGraph-G5XIXVHT-DexlvPgJ.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-BNe2zRpL.js → gitGraphDiagram-V2S2FVAM-CepF7ieg.js} +7 -7
- package/dist/server/assets/{graph-BohWfDeQ.js → graph-BB3rQyk7.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-DpfzVM5P.js → highlighted-body-B3W2YXNL-CktYi1nO.js} +1 -1
- package/dist/server/assets/{index-CUej4Ihg.js → index-5St5BCcJ.js} +2 -2
- package/dist/server/assets/{index-B6FFge5B.js → index-8fW2N3v4.js} +2 -2
- package/dist/server/assets/{index-DsRToCeg.js → index-B9xqso9p.js} +5 -5
- package/dist/server/assets/{index-Cvf2IVNx.js → index-BDqHa1DL.js} +5 -5
- package/dist/server/assets/{index-Cznd5qP8.js → index-BZSAPXc2.js} +5 -5
- package/dist/server/assets/{index-DoAhyHsE.js → index-BiMwh0FT.js} +3 -3
- package/dist/server/assets/{index-BMCwJ6BW.js → index-CGm8Czks.js} +2 -2
- package/dist/server/assets/{index-CTCq_dqo.js → index-CUnnFiRO.js} +4 -4
- package/dist/server/assets/{index-W2MLsk-k.js → index-DEZw9nkv.js} +2 -2
- package/dist/server/assets/{index-Cyz3st2N.js → index-DR892S39.js} +2 -2
- package/dist/server/assets/{index-C4lG0OWB.js → index-DYiuwMzT.js} +2 -2
- package/dist/server/assets/{index-DF9DvOkv.js → index-DipxLM5f.js} +2 -2
- package/dist/server/assets/{index-CWhqy8Ta.js → index-DsPBpNpr.js} +2 -2
- package/dist/server/assets/{index-y6X09Ksj.js → index-O03NM4sL.js} +2 -2
- package/dist/server/assets/{index-z7NiBua9.js → index-bbP5Ilkt.js} +3 -3
- package/dist/server/assets/{index-CE_oTIBT.js → index-dAOow3Ru.js} +2 -2
- package/dist/server/assets/{index-CnNg602B.js → index-igT3OuCm.js} +2 -2
- package/dist/server/assets/{index-Cvmi6T35.js → index-zM-wWcHV.js} +1 -1
- package/dist/server/assets/{info-VBDWY6EO-BQ8N2eDS.js → info-VBDWY6EO-BDX5_HTZ.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-I1ZLYjFY.js → infoDiagram-HS3SLOUP-BMd22txJ.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-lFTyhPiV.js → journeyDiagram-XKPGCS4Q-DyIx8DQc.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-BEr5w27W.js → kanban-definition-3W4ZIXB7-D6P6mjw2.js} +2 -2
- package/dist/server/assets/{layout-2KXyirN2.js → layout-_MqV9Ys8.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-BfFd_m4-.js → mermaid-3ZIDBTTL-CIBz4-1r.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-SoqLW9t8.js → mermaid-parser.core-Cga0uwWI.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-D9ZbRdf_.js → mindmap-definition-VGOIOE7T-C2EIvkPG.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-B2EvMQj5.js → packet-DYOGHKS2-CCOI47dY.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-YRbpkB5e.js → pie-VRWISCQL-BLqEHL1E.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-Bat_eWvt.js → pieDiagram-ADFJNKIX-Cv-DbjH6.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-CtqGnRnF.js → quadrantDiagram-AYHSOK5B-DFyjNST4.js} +1 -1
- package/dist/server/assets/{radar-ZZBFDIW7-DvOi2qX_.js → radar-ZZBFDIW7-CWlYIMXf.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-CtysqbZ4.js → requirementDiagram-UZGBJVZJ-DFM89i-H.js} +3 -3
- package/dist/server/assets/{router-ChvYGLZB.js → router-cAoMUC9Q.js} +1148 -745
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BTLsDOUO.js → sankeyDiagram-TZEHDZUN-Nmb2f9ga.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-CK0kbINT.js → sequenceDiagram-WL72ISMW-BiqqAguj.js} +3 -3
- package/dist/server/assets/{square-terminal-BLO1pEjb.js → square-terminal-DerzWAi-.js} +1 -1
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-D5FS7RFa.js → stateDiagram-FKZM4ZOC-CkiJXki8.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-DoCLlTuy.js → stateDiagram-v2-4FDKWEC3-Bt1BL33e.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-jFqO_Cet.js → timeline-definition-IT6M3QCI-DCRlJiLq.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-CuHJYOCT.js → treemap-GDKQZRPO-Ci-r6jiA.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-CGq293LY.js → workspace._workspaceId-BMnOV3pd.js} +101 -11
- package/dist/server/assets/{workspace._workspaceId-B0M_Sxj3.js → workspace._workspaceId-Dj6Y8WPo.js} +1 -1
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-DPvU_7PC.js → xychartDiagram-PRI3JC2R-r_3LO6yK.js} +1 -1
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +508 -374
- package/package.json +4 -4
- package/dist/client/assets/TerminalPanel-DR6CDpEJ.js +0 -5
- package/dist/client/assets/channel-BwZLW4yW.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-CVjdMCqG.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-CVjdMCqG.js +0 -1
- package/dist/client/assets/clone-Dj_6A90e.js +0 -1
- package/dist/client/assets/index-baLsgCNJ.js +0 -1
- package/dist/client/assets/main-tmFPjHOC.css +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BAf0jK91.js +0 -1
- package/dist/client/assets/workspace._workspaceId-jpBhz8sr.js +0 -2
- package/dist/server/assets/_tanstack-start-manifest_v-BffwvUC-.js +0 -4
|
@@ -1226,7 +1226,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
1226
1226
|
Component.displayName = toPascalCase(iconName);
|
|
1227
1227
|
return Component;
|
|
1228
1228
|
};
|
|
1229
|
-
const __iconNode$
|
|
1229
|
+
const __iconNode$1s = [
|
|
1230
1230
|
[
|
|
1231
1231
|
"path",
|
|
1232
1232
|
{
|
|
@@ -1235,45 +1235,45 @@ const __iconNode$1r = [
|
|
|
1235
1235
|
}
|
|
1236
1236
|
]
|
|
1237
1237
|
];
|
|
1238
|
-
const Activity = createLucideIcon("activity", __iconNode$
|
|
1239
|
-
const __iconNode$
|
|
1238
|
+
const Activity = createLucideIcon("activity", __iconNode$1s);
|
|
1239
|
+
const __iconNode$1r = [
|
|
1240
1240
|
["path", { d: "M12 17V3", key: "1cwfxf" }],
|
|
1241
1241
|
["path", { d: "m6 11 6 6 6-6", key: "12ii2o" }],
|
|
1242
1242
|
["path", { d: "M19 21H5", key: "150jfl" }]
|
|
1243
1243
|
];
|
|
1244
|
-
const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$
|
|
1245
|
-
const __iconNode$
|
|
1244
|
+
const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$1r);
|
|
1245
|
+
const __iconNode$1q = [
|
|
1246
1246
|
["path", { d: "M12 5v14", key: "s699le" }],
|
|
1247
1247
|
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
1248
1248
|
];
|
|
1249
|
-
const ArrowDown = createLucideIcon("arrow-down", __iconNode$
|
|
1250
|
-
const __iconNode$
|
|
1249
|
+
const ArrowDown = createLucideIcon("arrow-down", __iconNode$1q);
|
|
1250
|
+
const __iconNode$1p = [
|
|
1251
1251
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
1252
1252
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
1253
1253
|
];
|
|
1254
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
1255
|
-
const __iconNode$
|
|
1254
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1p);
|
|
1255
|
+
const __iconNode$1o = [
|
|
1256
1256
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
1257
1257
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
1258
1258
|
];
|
|
1259
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
1260
|
-
const __iconNode$
|
|
1259
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$1o);
|
|
1260
|
+
const __iconNode$1n = [
|
|
1261
1261
|
["path", { d: "m18 9-6-6-6 6", key: "kcunyi" }],
|
|
1262
1262
|
["path", { d: "M12 3v14", key: "7cf3v8" }],
|
|
1263
1263
|
["path", { d: "M5 21h14", key: "11awu3" }]
|
|
1264
1264
|
];
|
|
1265
|
-
const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$
|
|
1266
|
-
const __iconNode$
|
|
1265
|
+
const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$1n);
|
|
1266
|
+
const __iconNode$1m = [
|
|
1267
1267
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
1268
1268
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
1269
1269
|
];
|
|
1270
|
-
const ArrowUp = createLucideIcon("arrow-up", __iconNode$
|
|
1271
|
-
const __iconNode$
|
|
1270
|
+
const ArrowUp = createLucideIcon("arrow-up", __iconNode$1m);
|
|
1271
|
+
const __iconNode$1l = [
|
|
1272
1272
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1273
1273
|
["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }]
|
|
1274
1274
|
];
|
|
1275
|
-
const Ban = createLucideIcon("ban", __iconNode$
|
|
1276
|
-
const __iconNode$
|
|
1275
|
+
const Ban = createLucideIcon("ban", __iconNode$1l);
|
|
1276
|
+
const __iconNode$1k = [
|
|
1277
1277
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
1278
1278
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
1279
1279
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -1281,77 +1281,77 @@ const __iconNode$1j = [
|
|
|
1281
1281
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
1282
1282
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
1283
1283
|
];
|
|
1284
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
1285
|
-
const __iconNode$
|
|
1284
|
+
const Bot = createLucideIcon("bot", __iconNode$1k);
|
|
1285
|
+
const __iconNode$1j = [
|
|
1286
1286
|
["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
|
|
1287
1287
|
["path", { d: "M22 9v7", key: "pvm9v3" }],
|
|
1288
1288
|
["path", { d: "M3.304 13h6.392", key: "1q3zxz" }],
|
|
1289
1289
|
["circle", { cx: "18.5", cy: "12.5", r: "3.5", key: "z97x68" }]
|
|
1290
1290
|
];
|
|
1291
|
-
const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$
|
|
1292
|
-
const __iconNode$
|
|
1291
|
+
const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$1j);
|
|
1292
|
+
const __iconNode$1i = [
|
|
1293
1293
|
["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
|
|
1294
1294
|
["path", { d: "M18 17V9", key: "2bz60n" }],
|
|
1295
1295
|
["path", { d: "M13 17V5", key: "1frdt8" }],
|
|
1296
1296
|
["path", { d: "M8 17v-3", key: "17ska0" }]
|
|
1297
1297
|
];
|
|
1298
|
-
const ChartColumn = createLucideIcon("chart-column", __iconNode$
|
|
1299
|
-
const __iconNode$
|
|
1300
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
1301
|
-
const __iconNode$
|
|
1302
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
1303
|
-
const __iconNode$
|
|
1304
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
1305
|
-
const __iconNode$
|
|
1306
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
1307
|
-
const __iconNode$
|
|
1308
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
1309
|
-
const __iconNode$
|
|
1298
|
+
const ChartColumn = createLucideIcon("chart-column", __iconNode$1i);
|
|
1299
|
+
const __iconNode$1h = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
1300
|
+
const Check = createLucideIcon("check", __iconNode$1h);
|
|
1301
|
+
const __iconNode$1g = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
1302
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$1g);
|
|
1303
|
+
const __iconNode$1f = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
1304
|
+
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1f);
|
|
1305
|
+
const __iconNode$1e = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
1306
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$1e);
|
|
1307
|
+
const __iconNode$1d = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
1308
|
+
const ChevronUp = createLucideIcon("chevron-up", __iconNode$1d);
|
|
1309
|
+
const __iconNode$1c = [
|
|
1310
1310
|
["path", { d: "m7 20 5-5 5 5", key: "13a0gw" }],
|
|
1311
1311
|
["path", { d: "m7 4 5 5 5-5", key: "1kwcof" }]
|
|
1312
1312
|
];
|
|
1313
|
-
const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$
|
|
1314
|
-
const __iconNode$
|
|
1313
|
+
const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$1c);
|
|
1314
|
+
const __iconNode$1b = [
|
|
1315
1315
|
["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
|
|
1316
1316
|
["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
|
|
1317
1317
|
];
|
|
1318
|
-
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$
|
|
1319
|
-
const __iconNode$
|
|
1318
|
+
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$1b);
|
|
1319
|
+
const __iconNode$1a = [
|
|
1320
1320
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1321
1321
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
1322
1322
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
1323
1323
|
];
|
|
1324
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
1325
|
-
const __iconNode$
|
|
1324
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$1a);
|
|
1325
|
+
const __iconNode$19 = [
|
|
1326
1326
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1327
1327
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
1328
1328
|
];
|
|
1329
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
1330
|
-
const __iconNode$
|
|
1329
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$19);
|
|
1330
|
+
const __iconNode$18 = [
|
|
1331
1331
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1332
1332
|
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
1333
1333
|
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
1334
1334
|
];
|
|
1335
|
-
const CircleX = createLucideIcon("circle-x", __iconNode$
|
|
1336
|
-
const __iconNode$
|
|
1337
|
-
const Circle = createLucideIcon("circle", __iconNode$
|
|
1338
|
-
const __iconNode$
|
|
1335
|
+
const CircleX = createLucideIcon("circle-x", __iconNode$18);
|
|
1336
|
+
const __iconNode$17 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
|
|
1337
|
+
const Circle = createLucideIcon("circle", __iconNode$17);
|
|
1338
|
+
const __iconNode$16 = [
|
|
1339
1339
|
["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
|
|
1340
1340
|
["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2", key: "4jdomd" }],
|
|
1341
1341
|
["path", { d: "M16 4h2a2 2 0 0 1 2 2v4", key: "3hqy98" }],
|
|
1342
1342
|
["path", { d: "M21 14H11", key: "1bme5i" }],
|
|
1343
1343
|
["path", { d: "m15 10-4 4 4 4", key: "5dvupr" }]
|
|
1344
1344
|
];
|
|
1345
|
-
const ClipboardCopy = createLucideIcon("clipboard-copy", __iconNode$
|
|
1346
|
-
const __iconNode$
|
|
1345
|
+
const ClipboardCopy = createLucideIcon("clipboard-copy", __iconNode$16);
|
|
1346
|
+
const __iconNode$15 = [
|
|
1347
1347
|
["path", { d: "M11 14h10", key: "1w8e9d" }],
|
|
1348
1348
|
["path", { d: "M16 4h2a2 2 0 0 1 2 2v1.344", key: "1e62lh" }],
|
|
1349
1349
|
["path", { d: "m17 18 4-4-4-4", key: "z2g111" }],
|
|
1350
1350
|
["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113", key: "bjbb7m" }],
|
|
1351
1351
|
["rect", { x: "8", y: "2", width: "8", height: "4", rx: "1", key: "ublpy" }]
|
|
1352
1352
|
];
|
|
1353
|
-
const ClipboardPaste = createLucideIcon("clipboard-paste", __iconNode$
|
|
1354
|
-
const __iconNode$
|
|
1353
|
+
const ClipboardPaste = createLucideIcon("clipboard-paste", __iconNode$15);
|
|
1354
|
+
const __iconNode$14 = [
|
|
1355
1355
|
["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
|
|
1356
1356
|
[
|
|
1357
1357
|
"path",
|
|
@@ -1361,52 +1361,58 @@ const __iconNode$13 = [
|
|
|
1361
1361
|
}
|
|
1362
1362
|
]
|
|
1363
1363
|
];
|
|
1364
|
-
const Clipboard = createLucideIcon("clipboard", __iconNode$
|
|
1365
|
-
const __iconNode$
|
|
1364
|
+
const Clipboard = createLucideIcon("clipboard", __iconNode$14);
|
|
1365
|
+
const __iconNode$13 = [
|
|
1366
1366
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1367
1367
|
["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
|
|
1368
1368
|
];
|
|
1369
|
-
const Clock = createLucideIcon("clock", __iconNode$
|
|
1370
|
-
const __iconNode$
|
|
1369
|
+
const Clock = createLucideIcon("clock", __iconNode$13);
|
|
1370
|
+
const __iconNode$12 = [
|
|
1371
1371
|
["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
|
|
1372
1372
|
["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
|
|
1373
1373
|
["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
|
|
1374
1374
|
];
|
|
1375
|
-
const CodeXml = createLucideIcon("code-xml", __iconNode$
|
|
1376
|
-
const __iconNode$
|
|
1375
|
+
const CodeXml = createLucideIcon("code-xml", __iconNode$12);
|
|
1376
|
+
const __iconNode$11 = [
|
|
1377
1377
|
["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
|
|
1378
1378
|
["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
|
|
1379
1379
|
];
|
|
1380
|
-
const Code = createLucideIcon("code", __iconNode$
|
|
1381
|
-
const __iconNode
|
|
1380
|
+
const Code = createLucideIcon("code", __iconNode$11);
|
|
1381
|
+
const __iconNode$10 = [
|
|
1382
1382
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
1383
1383
|
["path", { d: "M12 3v18", key: "108xh3" }]
|
|
1384
1384
|
];
|
|
1385
|
-
const Columns2 = createLucideIcon("columns-2", __iconNode
|
|
1386
|
-
const __iconNode
|
|
1385
|
+
const Columns2 = createLucideIcon("columns-2", __iconNode$10);
|
|
1386
|
+
const __iconNode$$ = [
|
|
1387
1387
|
[
|
|
1388
1388
|
"path",
|
|
1389
1389
|
{ d: "M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3", key: "11bfej" }
|
|
1390
1390
|
]
|
|
1391
1391
|
];
|
|
1392
|
-
const Command$1 = createLucideIcon("command", __iconNode
|
|
1393
|
-
const __iconNode$
|
|
1392
|
+
const Command$1 = createLucideIcon("command", __iconNode$$);
|
|
1393
|
+
const __iconNode$_ = [
|
|
1394
1394
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
1395
1395
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
1396
1396
|
];
|
|
1397
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
1398
|
-
const __iconNode$
|
|
1397
|
+
const Copy = createLucideIcon("copy", __iconNode$_);
|
|
1398
|
+
const __iconNode$Z = [
|
|
1399
1399
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
1400
1400
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
1401
1401
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
1402
1402
|
];
|
|
1403
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
1404
|
-
const __iconNode$
|
|
1403
|
+
const Download = createLucideIcon("download", __iconNode$Z);
|
|
1404
|
+
const __iconNode$Y = [
|
|
1405
1405
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
1406
1406
|
["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
|
|
1407
1407
|
["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
|
|
1408
1408
|
];
|
|
1409
|
-
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$
|
|
1409
|
+
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$Y);
|
|
1410
|
+
const __iconNode$X = [
|
|
1411
|
+
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
1412
|
+
["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
|
|
1413
|
+
["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
|
|
1414
|
+
];
|
|
1415
|
+
const Ellipsis = createLucideIcon("ellipsis", __iconNode$X);
|
|
1410
1416
|
const __iconNode$W = [
|
|
1411
1417
|
["path", { d: "m15 15 6 6", key: "1s409w" }],
|
|
1412
1418
|
["path", { d: "m15 9 6-6", key: "ko1vev" }],
|
|
@@ -14762,23 +14768,80 @@ function DialogOverlay({
|
|
|
14762
14768
|
}
|
|
14763
14769
|
);
|
|
14764
14770
|
}
|
|
14771
|
+
const DIALOG_CONTENT_VARIANTS = {
|
|
14772
|
+
default: "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
|
|
14773
|
+
"bottom-sheet": [
|
|
14774
|
+
// Shared
|
|
14775
|
+
"fixed z-50 flex flex-col bg-background shadow-lg duration-200 outline-none",
|
|
14776
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
14777
|
+
// Mobile (< lg): bottom drawer
|
|
14778
|
+
"inset-x-0 bottom-0 w-full max-w-none rounded-t-2xl border border-b-0 p-6",
|
|
14779
|
+
"max-h-[calc(100dvh-env(safe-area-inset-top)-1.5rem)]",
|
|
14780
|
+
"max-lg:data-[state=open]:slide-in-from-bottom max-lg:data-[state=closed]:slide-out-to-bottom",
|
|
14781
|
+
// Desktop (lg+): revert to the centred modal
|
|
14782
|
+
"lg:inset-auto lg:top-[50%] lg:left-[50%] lg:bottom-auto lg:w-full lg:max-w-lg lg:max-h-[85vh] lg:translate-x-[-50%] lg:translate-y-[-50%] lg:rounded-lg lg:border-b",
|
|
14783
|
+
"lg:data-[state=open]:zoom-in-95 lg:data-[state=closed]:zoom-out-95"
|
|
14784
|
+
].join(" "),
|
|
14785
|
+
"command-palette": [
|
|
14786
|
+
// Shared
|
|
14787
|
+
"fixed z-50 flex flex-col bg-background shadow-lg duration-200 outline-none",
|
|
14788
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
14789
|
+
// Mobile (< lg): bottom drawer with the input pinned to the bottom. Flip
|
|
14790
|
+
// the command's flex direction so the input sits below the results list,
|
|
14791
|
+
// and flip the input wrapper's divider to a top border to match. The sheet
|
|
14792
|
+
// floats at `bottom: var(--kb-inset)` (keyboard height; 0 when closed) so
|
|
14793
|
+
// the input clears the on-screen keyboard — see `useKeyboardInset`.
|
|
14794
|
+
"inset-x-0 bottom-[var(--kb-inset,0px)] w-full max-w-none rounded-t-2xl border border-b-0",
|
|
14795
|
+
"max-h-[calc(100dvh-var(--kb-inset,0px)-env(safe-area-inset-top)-1.5rem)]",
|
|
14796
|
+
"max-lg:[&_[data-slot=command]]:flex-col-reverse",
|
|
14797
|
+
"max-lg:[&_[cmdk-input-wrapper]]:border-t max-lg:[&_[cmdk-input-wrapper]]:border-b-0",
|
|
14798
|
+
"max-lg:data-[state=open]:slide-in-from-bottom max-lg:data-[state=closed]:slide-out-to-bottom",
|
|
14799
|
+
// Desktop (lg+): anchored in the upper third by its TOP edge — no
|
|
14800
|
+
// `translate-y`, so the input never moves as the list grows downward.
|
|
14801
|
+
"lg:inset-x-auto lg:bottom-auto lg:top-[12vh] lg:left-1/2 lg:w-full lg:max-w-lg lg:max-h-[70vh] lg:-translate-x-1/2 lg:rounded-lg lg:border",
|
|
14802
|
+
"lg:data-[state=open]:zoom-in-95 lg:data-[state=closed]:zoom-out-95"
|
|
14803
|
+
].join(" ")
|
|
14804
|
+
};
|
|
14805
|
+
const keyboardInsetHolders = /* @__PURE__ */ new Set();
|
|
14806
|
+
function useKeyboardInset(active) {
|
|
14807
|
+
reactExports.useEffect(() => {
|
|
14808
|
+
const vv = window.visualViewport;
|
|
14809
|
+
if (!active || !vv) return;
|
|
14810
|
+
const root2 = document.documentElement;
|
|
14811
|
+
const token2 = {};
|
|
14812
|
+
const update = () => {
|
|
14813
|
+
const inset = Math.max(0, window.innerHeight - vv.height - vv.offsetTop);
|
|
14814
|
+
root2.style.setProperty("--kb-inset", `${inset}px`);
|
|
14815
|
+
};
|
|
14816
|
+
keyboardInsetHolders.add(token2);
|
|
14817
|
+
update();
|
|
14818
|
+
vv.addEventListener("resize", update);
|
|
14819
|
+
vv.addEventListener("scroll", update);
|
|
14820
|
+
return () => {
|
|
14821
|
+
vv.removeEventListener("resize", update);
|
|
14822
|
+
vv.removeEventListener("scroll", update);
|
|
14823
|
+
keyboardInsetHolders.delete(token2);
|
|
14824
|
+
if (keyboardInsetHolders.size === 0) root2.style.removeProperty("--kb-inset");
|
|
14825
|
+
};
|
|
14826
|
+
}, [active]);
|
|
14827
|
+
}
|
|
14765
14828
|
function DialogContent({
|
|
14766
14829
|
className,
|
|
14767
14830
|
overlayClassName,
|
|
14768
14831
|
children: children2,
|
|
14769
14832
|
showCloseButton = true,
|
|
14833
|
+
variant = "default",
|
|
14770
14834
|
...props
|
|
14771
14835
|
}) {
|
|
14836
|
+
useKeyboardInset(variant === "command-palette");
|
|
14772
14837
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
14773
14838
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogOverlay, { className: overlayClassName }),
|
|
14774
14839
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
14775
14840
|
Content$1,
|
|
14776
14841
|
{
|
|
14777
14842
|
"data-slot": "dialog-content",
|
|
14778
|
-
|
|
14779
|
-
|
|
14780
|
-
className
|
|
14781
|
-
),
|
|
14843
|
+
"data-variant": variant,
|
|
14844
|
+
className: cn$2(DIALOG_CONTENT_VARIANTS[variant], className),
|
|
14782
14845
|
...props,
|
|
14783
14846
|
children: [
|
|
14784
14847
|
children2,
|
|
@@ -20261,16 +20324,16 @@ function createDashboardStore(adapter2) {
|
|
|
20261
20324
|
set2({ error: String(e3) });
|
|
20262
20325
|
}
|
|
20263
20326
|
},
|
|
20264
|
-
gitPull: async (project,
|
|
20327
|
+
gitPull: async (project, name2) => {
|
|
20265
20328
|
try {
|
|
20266
|
-
await adapter2.gitPull(project,
|
|
20329
|
+
await adapter2.gitPull(project, name2);
|
|
20267
20330
|
} catch (e3) {
|
|
20268
20331
|
set2({ error: String(e3) });
|
|
20269
20332
|
}
|
|
20270
20333
|
},
|
|
20271
|
-
gitPush: async (project,
|
|
20334
|
+
gitPush: async (project, name2) => {
|
|
20272
20335
|
try {
|
|
20273
|
-
await adapter2.gitPush(project,
|
|
20336
|
+
await adapter2.gitPush(project, name2);
|
|
20274
20337
|
} catch (e3) {
|
|
20275
20338
|
set2({ error: String(e3) });
|
|
20276
20339
|
}
|
|
@@ -20487,15 +20550,18 @@ function useRemoveWorkspace() {
|
|
|
20487
20550
|
const openWorkspace = useDashboardStore((s2) => s2.openWorkspace);
|
|
20488
20551
|
const store = useRawDashboardStore();
|
|
20489
20552
|
return useMutation({
|
|
20490
|
-
mutationFn: ({ project,
|
|
20491
|
-
onSuccess: (_data, { project,
|
|
20553
|
+
mutationFn: ({ project, name: name2 }) => adapter2.removeWorkspace(project, name2),
|
|
20554
|
+
onSuccess: (_data, { project, name: name2 }) => {
|
|
20492
20555
|
queryClient2.invalidateQueries({ queryKey: queryKeys.projects });
|
|
20493
|
-
const deletedWorkspaceId = toWorkspaceId(project,
|
|
20556
|
+
const deletedWorkspaceId = toWorkspaceId(project, name2);
|
|
20494
20557
|
if (store.getState().activeWorkspaceId === deletedWorkspaceId) {
|
|
20495
20558
|
const projects = queryClient2.getQueryData(queryKeys.projects);
|
|
20496
20559
|
const projectInfo = projects?.find((p2) => p2.name === project);
|
|
20497
20560
|
if (projectInfo) {
|
|
20498
|
-
|
|
20561
|
+
const mainWt = projectInfo.worktrees.find(
|
|
20562
|
+
(wt2) => wt2.name === projectInfo.defaultBranch || wt2.branch === projectInfo.defaultBranch
|
|
20563
|
+
);
|
|
20564
|
+
openWorkspace(toWorkspaceId(project, mainWt?.name ?? projectInfo.defaultBranch));
|
|
20499
20565
|
}
|
|
20500
20566
|
}
|
|
20501
20567
|
},
|
|
@@ -20568,7 +20634,7 @@ function AddProjectDialog({ open: open2, onOpenChange, defaultLabel }) {
|
|
|
20568
20634
|
}
|
|
20569
20635
|
};
|
|
20570
20636
|
const isBusy = addProjectMutation.isPending;
|
|
20571
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContent, { className: "
|
|
20637
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContent, { variant: "bottom-sheet", className: "lg:max-w-[425px]", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, children: [
|
|
20572
20638
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
|
|
20573
20639
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Register Project" }),
|
|
20574
20640
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: "Add a folder to manage its workspaces. Git repositories enable branches and PRs; plain folders work too, with a single implicit workspace." })
|
|
@@ -42697,53 +42763,53 @@ async function loadLanguage(lang) {
|
|
|
42697
42763
|
try {
|
|
42698
42764
|
switch (lang) {
|
|
42699
42765
|
case "javascript":
|
|
42700
|
-
return import("./index-
|
|
42766
|
+
return import("./index-8fW2N3v4.js").then((m2) => m2.javascript());
|
|
42701
42767
|
case "jsx":
|
|
42702
|
-
return import("./index-
|
|
42768
|
+
return import("./index-8fW2N3v4.js").then((m2) => m2.javascript({ jsx: true }));
|
|
42703
42769
|
case "typescript":
|
|
42704
|
-
return import("./index-
|
|
42770
|
+
return import("./index-8fW2N3v4.js").then(
|
|
42705
42771
|
(m2) => m2.javascript({ typescript: true })
|
|
42706
42772
|
);
|
|
42707
42773
|
case "tsx":
|
|
42708
|
-
return import("./index-
|
|
42774
|
+
return import("./index-8fW2N3v4.js").then(
|
|
42709
42775
|
(m2) => m2.javascript({ jsx: true, typescript: true })
|
|
42710
42776
|
);
|
|
42711
42777
|
case "python":
|
|
42712
|
-
return import("./index-
|
|
42778
|
+
return import("./index-DsPBpNpr.js").then((m2) => m2.python());
|
|
42713
42779
|
case "html":
|
|
42714
|
-
return import("./index-
|
|
42780
|
+
return import("./index-CUnnFiRO.js").then((m2) => m2.html());
|
|
42715
42781
|
case "css":
|
|
42716
|
-
return import("./index-
|
|
42782
|
+
return import("./index-O03NM4sL.js").then((m2) => m2.css());
|
|
42717
42783
|
case "scss":
|
|
42718
42784
|
case "sass":
|
|
42719
|
-
return import("./index-
|
|
42785
|
+
return import("./index-bbP5Ilkt.js").then((m2) => m2.sass());
|
|
42720
42786
|
case "less":
|
|
42721
|
-
return import("./index-
|
|
42787
|
+
return import("./index-BiMwh0FT.js").then((m2) => m2.less());
|
|
42722
42788
|
case "json":
|
|
42723
42789
|
case "jsonc":
|
|
42724
|
-
return import("./index-
|
|
42790
|
+
return import("./index-DipxLM5f.js").then((m2) => m2.json());
|
|
42725
42791
|
case "markdown":
|
|
42726
42792
|
case "mdx":
|
|
42727
|
-
return import("./index-
|
|
42793
|
+
return import("./index-BDqHa1DL.js").then((m2) => m2.markdown());
|
|
42728
42794
|
case "xml":
|
|
42729
|
-
return import("./index-
|
|
42795
|
+
return import("./index-DEZw9nkv.js").then((m2) => m2.xml());
|
|
42730
42796
|
case "yaml":
|
|
42731
|
-
return import("./index-
|
|
42797
|
+
return import("./index-dAOow3Ru.js").then((m2) => m2.yaml());
|
|
42732
42798
|
case "sql":
|
|
42733
|
-
return import("./index-
|
|
42799
|
+
return import("./index-igT3OuCm.js").then((m2) => m2.sql());
|
|
42734
42800
|
case "rust":
|
|
42735
|
-
return import("./index-
|
|
42801
|
+
return import("./index-CGm8Czks.js").then((m2) => m2.rust());
|
|
42736
42802
|
case "go":
|
|
42737
|
-
return import("./index-
|
|
42803
|
+
return import("./index-DYiuwMzT.js").then((m2) => m2.go());
|
|
42738
42804
|
case "java":
|
|
42739
|
-
return import("./index-
|
|
42805
|
+
return import("./index-5St5BCcJ.js").then((m2) => m2.java());
|
|
42740
42806
|
case "kotlin":
|
|
42741
|
-
return import("./index-
|
|
42807
|
+
return import("./index-5St5BCcJ.js").then((m2) => m2.java());
|
|
42742
42808
|
case "c":
|
|
42743
42809
|
case "cpp":
|
|
42744
|
-
return import("./index-
|
|
42810
|
+
return import("./index-DR892S39.js").then((m2) => m2.cpp());
|
|
42745
42811
|
case "php":
|
|
42746
|
-
return import("./index-
|
|
42812
|
+
return import("./index-BZSAPXc2.js").then((m2) => m2.php());
|
|
42747
42813
|
// Legacy modes via StreamLanguage
|
|
42748
42814
|
case "bash":
|
|
42749
42815
|
case "fish":
|
|
@@ -43808,22 +43874,30 @@ function CommandPaletteDialog({ open: open2, onOpenChange, commands }) {
|
|
|
43808
43874
|
},
|
|
43809
43875
|
[onOpenChange]
|
|
43810
43876
|
);
|
|
43811
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
43812
|
-
|
|
43813
|
-
|
|
43814
|
-
|
|
43815
|
-
|
|
43816
|
-
|
|
43817
|
-
|
|
43818
|
-
|
|
43819
|
-
|
|
43820
|
-
|
|
43821
|
-
|
|
43822
|
-
|
|
43823
|
-
|
|
43824
|
-
|
|
43825
|
-
|
|
43826
|
-
|
|
43877
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
43878
|
+
DialogContent,
|
|
43879
|
+
{
|
|
43880
|
+
variant: "command-palette",
|
|
43881
|
+
className: "overflow-hidden p-0 lg:max-w-[520px]",
|
|
43882
|
+
showCloseButton: false,
|
|
43883
|
+
children: [
|
|
43884
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { className: "sr-only", children: [
|
|
43885
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Command Palette" }),
|
|
43886
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: "Search for a command to run" })
|
|
43887
|
+
] }),
|
|
43888
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Command, { children: [
|
|
43889
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandInput, { placeholder: "Search commands..." }),
|
|
43890
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(CommandList, { className: "max-h-[360px]", children: [
|
|
43891
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandEmpty, { children: "No commands found." }),
|
|
43892
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandGroup, { children: commands.map((cmd2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(CommandItem, { value: cmd2.label, onSelect: () => handleSelect(cmd2), children: [
|
|
43893
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm", children: cmd2.label }),
|
|
43894
|
+
cmd2.shortcut && /* @__PURE__ */ jsxRuntimeExports.jsx(CommandShortcut, { children: formatShortcut(cmd2.shortcut) })
|
|
43895
|
+
] }, cmd2.id)) })
|
|
43896
|
+
] })
|
|
43897
|
+
] })
|
|
43898
|
+
]
|
|
43899
|
+
}
|
|
43900
|
+
) });
|
|
43827
43901
|
}
|
|
43828
43902
|
function CommitDialog({
|
|
43829
43903
|
open: open2,
|
|
@@ -48707,7 +48781,7 @@ function usePinnedWorkspaces() {
|
|
|
48707
48781
|
list2.push({
|
|
48708
48782
|
project,
|
|
48709
48783
|
worktree: wt2,
|
|
48710
|
-
workspaceId: toWorkspaceId(project.name, wt2.
|
|
48784
|
+
workspaceId: toWorkspaceId(project.name, wt2.name)
|
|
48711
48785
|
});
|
|
48712
48786
|
}
|
|
48713
48787
|
}
|
|
@@ -48719,10 +48793,10 @@ function usePinnedWorkspaces() {
|
|
|
48719
48793
|
const mutation = useMutation({
|
|
48720
48794
|
mutationFn: ({
|
|
48721
48795
|
project,
|
|
48722
|
-
|
|
48796
|
+
name: name2,
|
|
48723
48797
|
pinned: nextPinned
|
|
48724
|
-
}) => adapter2.setWorkspacePinned(project,
|
|
48725
|
-
onMutate: async ({ project,
|
|
48798
|
+
}) => adapter2.setWorkspacePinned(project, name2, nextPinned),
|
|
48799
|
+
onMutate: async ({ project, name: name2, pinned: nextPinned }) => {
|
|
48726
48800
|
await queryClient2.cancelQueries({ queryKey: queryKeys.projects });
|
|
48727
48801
|
const previous2 = queryClient2.getQueryData(queryKeys.projects);
|
|
48728
48802
|
if (previous2) {
|
|
@@ -48730,7 +48804,7 @@ function usePinnedWorkspaces() {
|
|
|
48730
48804
|
(p2) => p2.name === project ? {
|
|
48731
48805
|
...p2,
|
|
48732
48806
|
worktrees: p2.worktrees.map(
|
|
48733
|
-
(w3) => w3.
|
|
48807
|
+
(w3) => w3.name === name2 ? { ...w3, pinned: nextPinned } : w3
|
|
48734
48808
|
)
|
|
48735
48809
|
} : p2
|
|
48736
48810
|
);
|
|
@@ -48749,7 +48823,7 @@ function usePinnedWorkspaces() {
|
|
|
48749
48823
|
}
|
|
48750
48824
|
});
|
|
48751
48825
|
const toggle = reactExports.useCallback(
|
|
48752
|
-
(project,
|
|
48826
|
+
(project, name2, currentlyPinned) => mutation.mutate({ project, name: name2, pinned: !currentlyPinned }),
|
|
48753
48827
|
[mutation.mutate]
|
|
48754
48828
|
);
|
|
48755
48829
|
return { pinned, isPinned, toggle };
|
|
@@ -49013,7 +49087,7 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
49013
49087
|
const gitPush = useDashboardStore((s2) => s2.gitPush);
|
|
49014
49088
|
const removeWorkspaceMutation = useRemoveWorkspace();
|
|
49015
49089
|
const isPinned = worktree.pinned;
|
|
49016
|
-
const workspaceId = toWorkspaceId(projectName, worktree.
|
|
49090
|
+
const workspaceId = toWorkspaceId(projectName, worktree.name);
|
|
49017
49091
|
const isActive = useDashboardStore((s2) => s2.activeWorkspaceId === workspaceId);
|
|
49018
49092
|
const href = capabilities2.getWorkspaceHref?.(workspaceId);
|
|
49019
49093
|
reactExports.useEffect(() => {
|
|
@@ -49063,11 +49137,11 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
49063
49137
|
const hasUnpushedCommits = (branchStatus?.git.ahead ?? 0) > 0;
|
|
49064
49138
|
const handleDelete2 = () => {
|
|
49065
49139
|
if (!hasUnmergedPR && !isDirty && !hasUnpushedCommits) {
|
|
49066
|
-
removeWorkspaceMutation.mutate({ project: projectName,
|
|
49140
|
+
removeWorkspaceMutation.mutate({ project: projectName, name: worktree.name });
|
|
49067
49141
|
} else {
|
|
49068
49142
|
onShowDeleteDialog({
|
|
49069
49143
|
projectName,
|
|
49070
|
-
|
|
49144
|
+
name: worktree.name,
|
|
49071
49145
|
isUnmerged: hasUnmergedPR,
|
|
49072
49146
|
isDirty,
|
|
49073
49147
|
hasUnpushedCommits
|
|
@@ -49083,11 +49157,11 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
49083
49157
|
"span",
|
|
49084
49158
|
{
|
|
49085
49159
|
className: `text-sm truncate ${isActive ? "font-bold text-foreground" : "font-medium text-muted-foreground"}`,
|
|
49086
|
-
children: showProjectName ? `${projectName}/${worktree.
|
|
49160
|
+
children: showProjectName ? `${projectName}/${worktree.name}` : worktree.name
|
|
49087
49161
|
}
|
|
49088
49162
|
)
|
|
49089
49163
|
] }) }),
|
|
49090
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "right", children: `${projectName}/${worktree.
|
|
49164
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "right", children: `${projectName}/${worktree.name}` })
|
|
49091
49165
|
] }),
|
|
49092
49166
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
|
|
49093
49167
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SetupStatusIndicator, { setup: setupStatus }),
|
|
@@ -49096,7 +49170,7 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
49096
49170
|
] })
|
|
49097
49171
|
] }) }),
|
|
49098
49172
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuContent, { children: [
|
|
49099
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => onTogglePinned(projectName, worktree.
|
|
49173
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => onTogglePinned(projectName, worktree.name, isPinned), children: [
|
|
49100
49174
|
isPinned ? /* @__PURE__ */ jsxRuntimeExports.jsx(PinOff, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(Pin, {}),
|
|
49101
49175
|
isPinned ? "Unpin workspace" : "Pin workspace"
|
|
49102
49176
|
] }),
|
|
@@ -49117,15 +49191,15 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
49117
49191
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Square, {}),
|
|
49118
49192
|
"Run teardown"
|
|
49119
49193
|
] }),
|
|
49120
|
-
!isPlain && /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => gitPull(projectName, worktree.
|
|
49194
|
+
!isPlain && /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => gitPull(projectName, worktree.name), children: [
|
|
49121
49195
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ArrowDownToLine, {}),
|
|
49122
49196
|
"Git pull"
|
|
49123
49197
|
] }),
|
|
49124
|
-
!isPlain && /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => gitPush(projectName, worktree.
|
|
49198
|
+
!isPlain && /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => gitPush(projectName, worktree.name), children: [
|
|
49125
49199
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ArrowUpFromLine, {}),
|
|
49126
49200
|
"Git push"
|
|
49127
49201
|
] }),
|
|
49128
|
-
!isPlain && worktree.
|
|
49202
|
+
!isPlain && worktree.name !== defaultBranch && /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { variant: "destructive", onClick: handleDelete2, children: [
|
|
49129
49203
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Trash2, {}),
|
|
49130
49204
|
"Delete workspace"
|
|
49131
49205
|
] })
|
|
@@ -49165,8 +49239,8 @@ function SortableProject({
|
|
|
49165
49239
|
};
|
|
49166
49240
|
const openWorkspace = useDashboardStore((s2) => s2.openWorkspace);
|
|
49167
49241
|
const clearNeedsAttention = useDashboardStore((s2) => s2.clearNeedsAttention);
|
|
49168
|
-
const
|
|
49169
|
-
const plainWorkspaceId = isPlain ? toWorkspaceId(project.name,
|
|
49242
|
+
const plainName = isPlain ? project.worktrees[0].name : "";
|
|
49243
|
+
const plainWorkspaceId = isPlain ? toWorkspaceId(project.name, plainName) : "";
|
|
49170
49244
|
const plainIsActive = useDashboardStore(
|
|
49171
49245
|
(s2) => isPlain && s2.activeWorkspaceId === plainWorkspaceId
|
|
49172
49246
|
);
|
|
@@ -49175,7 +49249,7 @@ function SortableProject({
|
|
|
49175
49249
|
const plainIsFocused = isPlain && workspaceIndexStart === focusedIndex;
|
|
49176
49250
|
const activeWorkspaceId = useDashboardStore((s2) => s2.activeWorkspaceId);
|
|
49177
49251
|
const gitHeaderIsActive = reactExports.useMemo(
|
|
49178
|
-
() => !isPlain && project.worktrees.some((wt2) => toWorkspaceId(project.name, wt2.
|
|
49252
|
+
() => !isPlain && project.worktrees.some((wt2) => toWorkspaceId(project.name, wt2.name) === activeWorkspaceId),
|
|
49179
49253
|
[isPlain, project.worktrees, project.name, activeWorkspaceId]
|
|
49180
49254
|
);
|
|
49181
49255
|
const handlePlainOpen = () => {
|
|
@@ -49320,7 +49394,7 @@ function SortableProject({
|
|
|
49320
49394
|
// the project header above, not as sibling rows. The indentation alone
|
|
49321
49395
|
// (no divider rail) conveys the hierarchy, keeping the list uncluttered.
|
|
49322
49396
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-0.5 overflow-hidden ml-3", children: project.worktrees.length === 0 ? hasPinnedSiblings ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground px-4 py-2", children: "No workspaces yet" }) : project.worktrees.map((wt2) => {
|
|
49323
|
-
const wsId = toWorkspaceId(project.name, wt2.
|
|
49397
|
+
const wsId = toWorkspaceId(project.name, wt2.name);
|
|
49324
49398
|
const currentIndex = workspaceIndex++;
|
|
49325
49399
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
49326
49400
|
WorkspaceCard,
|
|
@@ -49336,7 +49410,7 @@ function SortableProject({
|
|
|
49336
49410
|
onShowDeleteDialog,
|
|
49337
49411
|
onTogglePinned
|
|
49338
49412
|
},
|
|
49339
|
-
wt2.
|
|
49413
|
+
wt2.name
|
|
49340
49414
|
);
|
|
49341
49415
|
}) })
|
|
49342
49416
|
] });
|
|
@@ -49472,7 +49546,7 @@ function ProjectList({ labelFilter }) {
|
|
|
49472
49546
|
if (headerVisible && labelCollapse.isCollapsed(groupKey)) return [];
|
|
49473
49547
|
return g2.projects.flatMap((p2) => {
|
|
49474
49548
|
if (projectCollapse.isCollapsed(p2.name)) return [];
|
|
49475
|
-
return p2.worktrees.map((wt2) => toWorkspaceId(p2.name, wt2.
|
|
49549
|
+
return p2.worktrees.map((wt2) => toWorkspaceId(p2.name, wt2.name));
|
|
49476
49550
|
});
|
|
49477
49551
|
});
|
|
49478
49552
|
return [...pinnedPart, ...rest];
|
|
@@ -49532,7 +49606,7 @@ function ProjectList({ labelFilter }) {
|
|
|
49532
49606
|
for (const group of groups) {
|
|
49533
49607
|
for (const project of group.projects) {
|
|
49534
49608
|
const containsActive = project.worktrees.some(
|
|
49535
|
-
(wt2) => toWorkspaceId(project.name, wt2.
|
|
49609
|
+
(wt2) => toWorkspaceId(project.name, wt2.name) === activeWorkspaceId
|
|
49536
49610
|
);
|
|
49537
49611
|
if (!containsActive) continue;
|
|
49538
49612
|
if (labelFilter && group.labelId !== labelFilter) return;
|
|
@@ -49766,12 +49840,12 @@ function ProjectList({ labelFilter }) {
|
|
|
49766
49840
|
if (deleteDialog) {
|
|
49767
49841
|
removeWorkspaceMutation.mutate({
|
|
49768
49842
|
project: deleteDialog.projectName,
|
|
49769
|
-
|
|
49843
|
+
name: deleteDialog.name
|
|
49770
49844
|
});
|
|
49771
49845
|
setDeleteDialog(null);
|
|
49772
49846
|
}
|
|
49773
49847
|
},
|
|
49774
|
-
branchName: deleteDialog?.
|
|
49848
|
+
branchName: deleteDialog?.name ?? "",
|
|
49775
49849
|
isUnmerged: deleteDialog?.isUnmerged ?? false,
|
|
49776
49850
|
isDirty: deleteDialog?.isDirty ?? false,
|
|
49777
49851
|
hasUnpushedCommits: deleteDialog?.hasUnpushedCommits ?? false
|
|
@@ -50222,16 +50296,8 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
50222
50296
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
50223
50297
|
DialogContent,
|
|
50224
50298
|
{
|
|
50225
|
-
|
|
50226
|
-
|
|
50227
|
-
// top-anchored so the address-bar doesn't clip the footer.
|
|
50228
|
-
// Desktop (sm+): float as a centered, capped-width card.
|
|
50229
|
-
[
|
|
50230
|
-
"inset-0 left-0 top-0 h-dvh w-full max-w-none translate-x-0 translate-y-0 rounded-none",
|
|
50231
|
-
"sm:inset-auto sm:top-[50%] sm:left-[50%] sm:h-[80vh] sm:w-full sm:max-w-2xl sm:translate-x-[-50%] sm:translate-y-[-50%] sm:rounded-lg",
|
|
50232
|
-
"overflow-hidden p-0 flex flex-col gap-0"
|
|
50233
|
-
].join(" ")
|
|
50234
|
-
),
|
|
50299
|
+
variant: "bottom-sheet",
|
|
50300
|
+
className: "flex flex-col gap-0 overflow-hidden p-0 lg:h-[80vh] lg:max-w-2xl",
|
|
50235
50301
|
children: [
|
|
50236
50302
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Settings" }) }),
|
|
50237
50303
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-6 px-6 pb-6", children: [
|
|
@@ -50871,7 +50937,7 @@ async function desktopInvoke$1(cmd2, args) {
|
|
|
50871
50937
|
if (bridge) return await bridge.invoke(cmd2, args);
|
|
50872
50938
|
throw new Error(`desktopInvoke('${cmd2}') called outside the desktop shell`);
|
|
50873
50939
|
}
|
|
50874
|
-
function DashboardShell({
|
|
50940
|
+
function DashboardShell({ bottomActions, hideTitleBar }) {
|
|
50875
50941
|
const { projects, isLoading: loading } = useProjects();
|
|
50876
50942
|
const { settings } = useSettingsQuery();
|
|
50877
50943
|
const labels = settings.labels ?? [];
|
|
@@ -50911,7 +50977,7 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
|
|
|
50911
50977
|
);
|
|
50912
50978
|
const findProjectForWorkspace = reactExports.useCallback(
|
|
50913
50979
|
(workspaceId) => projects.find(
|
|
50914
|
-
(p2) => p2.worktrees.some((wt2) => toWorkspaceId(p2.name, wt2.
|
|
50980
|
+
(p2) => p2.worktrees.some((wt2) => toWorkspaceId(p2.name, wt2.name) === workspaceId)
|
|
50915
50981
|
),
|
|
50916
50982
|
[projects]
|
|
50917
50983
|
);
|
|
@@ -51033,93 +51099,68 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
|
|
|
51033
51099
|
}
|
|
51034
51100
|
),
|
|
51035
51101
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-9 shrink-0 items-center justify-between border-b border-border", children: [
|
|
51036
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex min-w-0 items-center", children: /* @__PURE__ */ jsxRuntimeExports.
|
|
51037
|
-
|
|
51038
|
-
|
|
51039
|
-
|
|
51040
|
-
|
|
51041
|
-
|
|
51042
|
-
|
|
51043
|
-
|
|
51044
|
-
|
|
51045
|
-
|
|
51046
|
-
"
|
|
51047
|
-
|
|
51048
|
-
|
|
51049
|
-
|
|
51050
|
-
|
|
51051
|
-
|
|
51052
|
-
|
|
51053
|
-
|
|
51054
|
-
|
|
51055
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
51056
|
-
"Settings"
|
|
51102
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex min-w-0 items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-1 pl-2", children: labels.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
|
|
51103
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
51104
|
+
Button,
|
|
51105
|
+
{
|
|
51106
|
+
size: "sm",
|
|
51107
|
+
variant: "ghost",
|
|
51108
|
+
"data-testid": "dashboard__label-filter-trigger",
|
|
51109
|
+
className: `min-w-0 text-sm h-7 px-2 gap-1.5 ${labelFilter ? "bg-accent text-accent-foreground" : "text-muted-foreground"}`,
|
|
51110
|
+
children: activeLabel ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
51111
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
51112
|
+
"span",
|
|
51113
|
+
{
|
|
51114
|
+
className: "size-2.5 rounded-full shrink-0",
|
|
51115
|
+
style: { backgroundColor: activeLabel.color }
|
|
51116
|
+
}
|
|
51117
|
+
),
|
|
51118
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: activeLabel.name })
|
|
51119
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
51120
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tag$1, { className: "size-3.5 shrink-0" }),
|
|
51121
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: "All" })
|
|
51057
51122
|
] })
|
|
51058
|
-
|
|
51059
|
-
|
|
51060
|
-
|
|
51061
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
51062
|
-
|
|
51123
|
+
}
|
|
51124
|
+
) }),
|
|
51125
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuContent, { align: "start", children: [
|
|
51126
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
51127
|
+
DropdownMenuItem,
|
|
51063
51128
|
{
|
|
51064
|
-
|
|
51065
|
-
|
|
51066
|
-
|
|
51067
|
-
|
|
51068
|
-
|
|
51129
|
+
"data-testid": "dashboard__label-filter-item--all",
|
|
51130
|
+
onClick: () => setLabelFilter(null),
|
|
51131
|
+
children: [
|
|
51132
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tag$1, { className: "size-3.5 shrink-0 mr-2 text-muted-foreground" }),
|
|
51133
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: "All" }),
|
|
51134
|
+
!labelFilter && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3 ml-2 shrink-0" }),
|
|
51135
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-auto pl-3 text-xs text-muted-foreground tracking-widest", children: "⌘0" })
|
|
51136
|
+
]
|
|
51137
|
+
}
|
|
51138
|
+
),
|
|
51139
|
+
labels.map((lbl, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
51140
|
+
DropdownMenuItem,
|
|
51141
|
+
{
|
|
51142
|
+
"data-testid": `dashboard__label-filter-item--${lbl.id}`,
|
|
51143
|
+
onClick: () => setLabelFilter(lbl.id),
|
|
51144
|
+
children: [
|
|
51069
51145
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
51070
51146
|
"span",
|
|
51071
51147
|
{
|
|
51072
|
-
className: "size-2.5 rounded-full shrink-0",
|
|
51073
|
-
style: { backgroundColor:
|
|
51148
|
+
className: "size-2.5 rounded-full shrink-0 mr-2",
|
|
51149
|
+
style: { backgroundColor: lbl.color }
|
|
51074
51150
|
}
|
|
51075
51151
|
),
|
|
51076
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children:
|
|
51077
|
-
|
|
51078
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
51079
|
-
|
|
51080
|
-
|
|
51081
|
-
|
|
51082
|
-
|
|
51083
|
-
|
|
51084
|
-
|
|
51085
|
-
|
|
51086
|
-
{
|
|
51087
|
-
"data-testid": "dashboard__label-filter-item--all",
|
|
51088
|
-
onClick: () => setLabelFilter(null),
|
|
51089
|
-
children: [
|
|
51090
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tag$1, { className: "size-3.5 shrink-0 mr-2 text-muted-foreground" }),
|
|
51091
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: "All" }),
|
|
51092
|
-
!labelFilter && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3 ml-2 shrink-0" }),
|
|
51093
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-auto pl-3 text-xs text-muted-foreground tracking-widest", children: "⌘0" })
|
|
51094
|
-
]
|
|
51095
|
-
}
|
|
51096
|
-
),
|
|
51097
|
-
labels.map((lbl, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
51098
|
-
DropdownMenuItem,
|
|
51099
|
-
{
|
|
51100
|
-
"data-testid": `dashboard__label-filter-item--${lbl.id}`,
|
|
51101
|
-
onClick: () => setLabelFilter(lbl.id),
|
|
51102
|
-
children: [
|
|
51103
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
51104
|
-
"span",
|
|
51105
|
-
{
|
|
51106
|
-
className: "size-2.5 rounded-full shrink-0 mr-2",
|
|
51107
|
-
style: { backgroundColor: lbl.color }
|
|
51108
|
-
}
|
|
51109
|
-
),
|
|
51110
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: lbl.name }),
|
|
51111
|
-
labelFilter === lbl.id && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3 ml-2 shrink-0" }),
|
|
51112
|
-
idx < 9 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-auto pl-3 text-xs text-muted-foreground tracking-widest", children: [
|
|
51113
|
-
"⌘",
|
|
51114
|
-
idx + 1
|
|
51115
|
-
] })
|
|
51116
|
-
]
|
|
51117
|
-
},
|
|
51118
|
-
lbl.id
|
|
51119
|
-
))
|
|
51120
|
-
] })
|
|
51152
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: lbl.name }),
|
|
51153
|
+
labelFilter === lbl.id && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3 ml-2 shrink-0" }),
|
|
51154
|
+
idx < 9 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-auto pl-3 text-xs text-muted-foreground tracking-widest", children: [
|
|
51155
|
+
"⌘",
|
|
51156
|
+
idx + 1
|
|
51157
|
+
] })
|
|
51158
|
+
]
|
|
51159
|
+
},
|
|
51160
|
+
lbl.id
|
|
51161
|
+
))
|
|
51121
51162
|
] })
|
|
51122
|
-
] }) }),
|
|
51163
|
+
] }) }) }),
|
|
51123
51164
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1 pr-2", children: [
|
|
51124
51165
|
projects.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
51125
51166
|
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -51216,6 +51257,30 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
|
|
|
51216
51257
|
}
|
|
51217
51258
|
)
|
|
51218
51259
|
] }),
|
|
51260
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
51261
|
+
"div",
|
|
51262
|
+
{
|
|
51263
|
+
className: "shrink-0 flex h-9 items-center justify-between gap-1 border-t border-border px-2",
|
|
51264
|
+
"data-testid": "project-list__action-bar",
|
|
51265
|
+
children: [
|
|
51266
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
51267
|
+
Button,
|
|
51268
|
+
{
|
|
51269
|
+
size: "sm",
|
|
51270
|
+
variant: "ghost",
|
|
51271
|
+
className: "text-muted-foreground",
|
|
51272
|
+
"data-testid": "project-list__settings-button",
|
|
51273
|
+
onClick: handleSettingsClick,
|
|
51274
|
+
children: [
|
|
51275
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Settings$1, { className: "size-4" }),
|
|
51276
|
+
"Settings"
|
|
51277
|
+
]
|
|
51278
|
+
}
|
|
51279
|
+
),
|
|
51280
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-0.5", children: bottomActions })
|
|
51281
|
+
]
|
|
51282
|
+
}
|
|
51283
|
+
),
|
|
51219
51284
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showErrorDialog, onOpenChange: setShowErrorDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { children: [
|
|
51220
51285
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
|
|
51221
51286
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { className: "text-destructive", children: "Error" }),
|
|
@@ -52791,7 +52856,7 @@ function readStoredDiffMode(workspaceId) {
|
|
|
52791
52856
|
if (v2 === "uncommitted" || v2 === "branch") return v2;
|
|
52792
52857
|
} catch {
|
|
52793
52858
|
}
|
|
52794
|
-
return "
|
|
52859
|
+
return "uncommitted";
|
|
52795
52860
|
}
|
|
52796
52861
|
function readStoredCompareBranch(workspaceId) {
|
|
52797
52862
|
try {
|
|
@@ -52881,7 +52946,7 @@ function useProjectKindMap() {
|
|
|
52881
52946
|
const map2 = /* @__PURE__ */ new Map();
|
|
52882
52947
|
for (const p2 of projects) {
|
|
52883
52948
|
for (const wt2 of p2.worktrees) {
|
|
52884
|
-
map2.set(toWorkspaceId(p2.name, wt2.
|
|
52949
|
+
map2.set(toWorkspaceId(p2.name, wt2.name), p2.kind);
|
|
52885
52950
|
}
|
|
52886
52951
|
}
|
|
52887
52952
|
return map2;
|
|
@@ -53013,7 +53078,7 @@ function useWorkspacePath(workspaceId) {
|
|
|
53013
53078
|
return reactExports.useMemo(() => {
|
|
53014
53079
|
for (const proj of projects) {
|
|
53015
53080
|
for (const wt2 of proj.worktrees) {
|
|
53016
|
-
if (toWorkspaceId(proj.name, wt2.
|
|
53081
|
+
if (toWorkspaceId(proj.name, wt2.name) === workspaceId) {
|
|
53017
53082
|
return wt2.path;
|
|
53018
53083
|
}
|
|
53019
53084
|
}
|
|
@@ -56403,7 +56468,10 @@ const SearchBar = reactExports.forwardRef(function SearchBar2({
|
|
|
56403
56468
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
56404
56469
|
"div",
|
|
56405
56470
|
{
|
|
56406
|
-
className:
|
|
56471
|
+
className: cn$2(
|
|
56472
|
+
"flex shrink-0 items-center gap-1.5 border-b border-border bg-muted/30 px-3 py-1.5",
|
|
56473
|
+
className
|
|
56474
|
+
),
|
|
56407
56475
|
children: [
|
|
56408
56476
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "size-3.5 shrink-0 text-muted-foreground" }),
|
|
56409
56477
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -56483,6 +56551,17 @@ function storeViewMode(mode) {
|
|
|
56483
56551
|
}
|
|
56484
56552
|
}
|
|
56485
56553
|
const UNCOMMITTED_VALUE = "__uncommitted__";
|
|
56554
|
+
const STAGING_BRANCH_PRIORITY = [
|
|
56555
|
+
"develop",
|
|
56556
|
+
"dev",
|
|
56557
|
+
"development",
|
|
56558
|
+
"stage",
|
|
56559
|
+
"staging",
|
|
56560
|
+
"integration",
|
|
56561
|
+
"release",
|
|
56562
|
+
"qa",
|
|
56563
|
+
"uat"
|
|
56564
|
+
];
|
|
56486
56565
|
const EXPAND_ALL_KEY = "band:diff-expand-all";
|
|
56487
56566
|
const MAX_MOUNTED_EDITORS = 50;
|
|
56488
56567
|
function getStoredExpandAll() {
|
|
@@ -57076,81 +57155,91 @@ function LazyFileRow({
|
|
|
57076
57155
|
fileStatus: status
|
|
57077
57156
|
}
|
|
57078
57157
|
),
|
|
57079
|
-
isOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
57080
|
-
|
|
57081
|
-
|
|
57082
|
-
|
|
57083
|
-
|
|
57084
|
-
|
|
57085
|
-
|
|
57086
|
-
|
|
57087
|
-
|
|
57088
|
-
|
|
57089
|
-
|
|
57090
|
-
|
|
57091
|
-
|
|
57092
|
-
|
|
57093
|
-
|
|
57094
|
-
|
|
57095
|
-
|
|
57096
|
-
|
|
57097
|
-
|
|
57098
|
-
|
|
57099
|
-
|
|
57100
|
-
|
|
57101
|
-
|
|
57102
|
-
|
|
57103
|
-
|
|
57104
|
-
|
|
57105
|
-
|
|
57106
|
-
|
|
57107
|
-
|
|
57108
|
-
|
|
57109
|
-
|
|
57110
|
-
|
|
57111
|
-
|
|
57112
|
-
|
|
57113
|
-
|
|
57114
|
-
|
|
57115
|
-
|
|
57116
|
-
|
|
57117
|
-
|
|
57118
|
-
|
|
57119
|
-
|
|
57120
|
-
|
|
57121
|
-
|
|
57122
|
-
|
|
57123
|
-
|
|
57124
|
-
|
|
57125
|
-
|
|
57126
|
-
|
|
57127
|
-
|
|
57128
|
-
|
|
57129
|
-
|
|
57130
|
-
|
|
57131
|
-
|
|
57132
|
-
|
|
57133
|
-
|
|
57134
|
-
|
|
57135
|
-
|
|
57136
|
-
|
|
57137
|
-
|
|
57138
|
-
|
|
57139
|
-
|
|
57140
|
-
|
|
57141
|
-
|
|
57142
|
-
|
|
57143
|
-
|
|
57144
|
-
|
|
57145
|
-
|
|
57146
|
-
|
|
57147
|
-
|
|
57148
|
-
|
|
57149
|
-
|
|
57150
|
-
|
|
57151
|
-
|
|
57152
|
-
|
|
57153
|
-
|
|
57158
|
+
isOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
57159
|
+
"div",
|
|
57160
|
+
{
|
|
57161
|
+
className: "border-t border-border/20 bg-muted/30",
|
|
57162
|
+
style: placeholderHeight > 0 ? {
|
|
57163
|
+
contentVisibility: "auto",
|
|
57164
|
+
containIntrinsicBlockSize: `${placeholderHeight}px`
|
|
57165
|
+
} : void 0,
|
|
57166
|
+
children: [
|
|
57167
|
+
diffError && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-4 py-4 text-sm text-destructive", children: diffError }),
|
|
57168
|
+
diff2 !== null && (shouldRender ? (
|
|
57169
|
+
// Wrapper is observed by the ResizeObserver in the effect
|
|
57170
|
+
// above. Its rendered height — "Show full file" bar plus the
|
|
57171
|
+
// CodeMirror editor — is reported back as
|
|
57172
|
+
// `measuredHeight`, then reused verbatim as the placeholder
|
|
57173
|
+
// height on the next unmount cycle (a never-visited row or
|
|
57174
|
+
// an LRU-evicted one).
|
|
57175
|
+
//
|
|
57176
|
+
// The `minHeight` hold prevents a layout shift during the
|
|
57177
|
+
// window between (a) `shouldRender` flipping to true and
|
|
57178
|
+
// (b) the editor's async `setup` finishing (loadLanguage
|
|
57179
|
+
// await + new MergeView() + first paint). Without it the
|
|
57180
|
+
// wrapper is empty-auto-height for that window, collapsing
|
|
57181
|
+
// the row to the "Show full file" bar (~30px) and pushing
|
|
57182
|
+
// every row below it upward; when the editor paints they
|
|
57183
|
+
// snap back down. We pin the wrapper to the
|
|
57184
|
+
// cached/estimated height (the same value the placeholder
|
|
57185
|
+
// uses) until `editorRendered` flips, then let the
|
|
57186
|
+
// editor's natural height take over. The ResizeObserver
|
|
57187
|
+
// only attaches once `editorRendered` is true (see deps
|
|
57188
|
+
// above), so the held value never bleeds into the
|
|
57189
|
+
// measuredHeight cache.
|
|
57190
|
+
//
|
|
57191
|
+
// Mount-once: once `shouldRender` flips true, it stays
|
|
57192
|
+
// true across scroll-aways. The editor's natural height
|
|
57193
|
+
// remains in the layout — the row stays the same size
|
|
57194
|
+
// whether the user is currently looking at it or
|
|
57195
|
+
// scrolled past — so there's no scroll-shift trade-off
|
|
57196
|
+
// to manage. The browser handles culling offscreen tiles
|
|
57197
|
+
// cheaply; the only thing that brings `shouldRender`
|
|
57198
|
+
// back to false is collapse / LRU eviction / target
|
|
57199
|
+
// change, all of which deliberately tear the editor
|
|
57200
|
+
// down.
|
|
57201
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
57202
|
+
"div",
|
|
57203
|
+
{
|
|
57204
|
+
ref: diffBodyRef,
|
|
57205
|
+
style: editorRendered ? void 0 : { minHeight: placeholderHeight },
|
|
57206
|
+
children: [
|
|
57207
|
+
canLoadMore && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center justify-center border-b border-border/20 px-4 py-1.5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
57208
|
+
"button",
|
|
57209
|
+
{
|
|
57210
|
+
type: "button",
|
|
57211
|
+
onClick: () => onShowFullFile(filename),
|
|
57212
|
+
className: "text-xs text-muted-foreground transition-colors hover:text-foreground",
|
|
57213
|
+
children: "Show full file"
|
|
57214
|
+
}
|
|
57215
|
+
) }),
|
|
57216
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
57217
|
+
DiffFileContent,
|
|
57218
|
+
{
|
|
57219
|
+
hunks: diff2,
|
|
57220
|
+
filename,
|
|
57221
|
+
viewMode,
|
|
57222
|
+
onEditorViews: handleEditorViews,
|
|
57223
|
+
onLoadMoreContext: canLoadMore ? () => onLoadMoreContext(filename) : void 0
|
|
57224
|
+
}
|
|
57225
|
+
)
|
|
57226
|
+
]
|
|
57227
|
+
}
|
|
57228
|
+
)
|
|
57229
|
+
) : (
|
|
57230
|
+
// Placeholder occupying the SAME pixel height the CodeMirror
|
|
57231
|
+
// editor would render at, so the row's overall size doesn't
|
|
57232
|
+
// change when LRU eviction tears the editor down (or while
|
|
57233
|
+
// a never-visited row waits for its first IO intersect).
|
|
57234
|
+
// Without this, switching the body between editor and
|
|
57235
|
+
// placeholder would push everything below upward —
|
|
57236
|
+
// visually identical to a layout shift, even though no
|
|
57237
|
+
// content actually moved.
|
|
57238
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": true, style: { height: placeholderHeight } })
|
|
57239
|
+
))
|
|
57240
|
+
]
|
|
57241
|
+
}
|
|
57242
|
+
)
|
|
57154
57243
|
]
|
|
57155
57244
|
}
|
|
57156
57245
|
);
|
|
@@ -57191,6 +57280,7 @@ function DiffView({
|
|
|
57191
57280
|
const workspacePath = useWorkspacePath(workspaceId);
|
|
57192
57281
|
const [summary, setSummary] = reactExports.useState(null);
|
|
57193
57282
|
const summaryRef = reactExports.useRef(null);
|
|
57283
|
+
const lastHeadBranchRef = reactExports.useRef(null);
|
|
57194
57284
|
const [error, setError] = reactExports.useState(null);
|
|
57195
57285
|
const [loading, setLoading] = reactExports.useState(true);
|
|
57196
57286
|
const fetchSummaryRef = reactExports.useRef(null);
|
|
@@ -57726,16 +57816,22 @@ function DiffView({
|
|
|
57726
57816
|
}, [active]);
|
|
57727
57817
|
const summaryCompareBranch = summary?.compareBranch ?? null;
|
|
57728
57818
|
const defaultBranch = summary?.defaultBranch ?? availableDefaultBranch ?? null;
|
|
57729
|
-
const branchOptions =
|
|
57819
|
+
const branchOptions = reactExports.useMemo(
|
|
57820
|
+
() => availableBranches.length > 0 ? availableBranches : summaryCompareBranch ? [summaryCompareBranch] : [],
|
|
57821
|
+
[availableBranches, summaryCompareBranch]
|
|
57822
|
+
);
|
|
57730
57823
|
const targetBranch = compareBranch ?? branchOptions[0] ?? summaryCompareBranch;
|
|
57731
|
-
const topSectionBranches =
|
|
57732
|
-
|
|
57733
|
-
|
|
57734
|
-
|
|
57735
|
-
|
|
57736
|
-
|
|
57737
|
-
|
|
57738
|
-
|
|
57824
|
+
const { topSectionBranches, otherBranches } = reactExports.useMemo(() => {
|
|
57825
|
+
const stagingBranches = STAGING_BRANCH_PRIORITY.map(
|
|
57826
|
+
(name2) => branchOptions.find((b2) => b2.toLowerCase() === name2)
|
|
57827
|
+
).filter((b2) => b2 != null);
|
|
57828
|
+
const topSection = [...stagingBranches];
|
|
57829
|
+
if (defaultBranch && branchOptions.includes(defaultBranch) && !topSection.includes(defaultBranch)) {
|
|
57830
|
+
topSection.push(defaultBranch);
|
|
57831
|
+
}
|
|
57832
|
+
const others = branchOptions.filter((b2) => !topSection.includes(b2)).sort((a2, b2) => a2.localeCompare(b2));
|
|
57833
|
+
return { topSectionBranches: topSection, otherBranches: others };
|
|
57834
|
+
}, [branchOptions, defaultBranch]);
|
|
57739
57835
|
const diffSelectValue = diffMode === "uncommitted" ? UNCOMMITTED_VALUE : targetBranch ?? UNCOMMITTED_VALUE;
|
|
57740
57836
|
const handleDiffSelectChange = (value) => {
|
|
57741
57837
|
if (value === UNCOMMITTED_VALUE) {
|
|
@@ -57746,11 +57842,18 @@ function DiffView({
|
|
|
57746
57842
|
}
|
|
57747
57843
|
};
|
|
57748
57844
|
const renderDiffSelect = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: diffSelectValue, onValueChange: handleDiffSelectChange, children: [
|
|
57749
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
57845
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
57846
|
+
SelectTrigger,
|
|
57847
|
+
{
|
|
57848
|
+
"data-testid": "diff-view__target-select",
|
|
57849
|
+
className: "h-6 w-auto max-w-[300px] gap-1 rounded-md border-0 bg-transparent px-1.5 text-xs font-medium text-foreground shadow-none hover:bg-accent [&>[data-slot=select-value]]:truncate [&>[data-slot=select-value]]:block",
|
|
57850
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {})
|
|
57851
|
+
}
|
|
57852
|
+
),
|
|
57750
57853
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
|
|
57854
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: UNCOMMITTED_VALUE, "data-testid": "diff-view__target-option-uncommitted", children: "Uncommitted" }),
|
|
57751
57855
|
topSectionBranches.map((branch) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: branch, children: branch }, branch)),
|
|
57752
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
57753
|
-
otherBranches.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(SelectSeparator, {}),
|
|
57856
|
+
topSectionBranches.length > 0 && otherBranches.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(SelectSeparator, {}),
|
|
57754
57857
|
otherBranches.map((branch) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: branch, children: branch }, branch))
|
|
57755
57858
|
] })
|
|
57756
57859
|
] });
|
|
@@ -57762,6 +57865,10 @@ function DiffView({
|
|
|
57762
57865
|
);
|
|
57763
57866
|
filenamesRef.current = filenames;
|
|
57764
57867
|
const stats = hasChanges ? summary.stats : null;
|
|
57868
|
+
reactExports.useEffect(() => {
|
|
57869
|
+
if (summary?.headBranch) lastHeadBranchRef.current = summary.headBranch;
|
|
57870
|
+
}, [summary?.headBranch]);
|
|
57871
|
+
const headBranchLabel = summary?.headBranch ?? lastHeadBranchRef.current;
|
|
57765
57872
|
reactExports.useEffect(() => {
|
|
57766
57873
|
const container = scrollContainerRef.current;
|
|
57767
57874
|
if (!container) return;
|
|
@@ -57919,9 +58026,9 @@ function DiffView({
|
|
|
57919
58026
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-3.5" })
|
|
57920
58027
|
}
|
|
57921
58028
|
);
|
|
57922
|
-
const renderBranchIndicator = (
|
|
57923
|
-
|
|
57924
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-foreground", children:
|
|
58029
|
+
const renderBranchIndicator = (headBranchLabel2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
58030
|
+
headBranchLabel2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1.5 @[32rem]/diff:flex", children: [
|
|
58031
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { "data-testid": "diff-view__head-branch", className: "font-medium text-foreground", children: headBranchLabel2 }),
|
|
57925
58032
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "size-3", "aria-hidden": true })
|
|
57926
58033
|
] }),
|
|
57927
58034
|
renderDiffSelect()
|
|
@@ -57997,7 +58104,7 @@ function DiffView({
|
|
|
57997
58104
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-9 shrink-0 items-center justify-between gap-3 border-b border-border pl-2 pr-3", children: [
|
|
57998
58105
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
57999
58106
|
renderSidebarToggle(),
|
|
58000
|
-
renderBranchIndicator(
|
|
58107
|
+
renderBranchIndicator(headBranchLabel)
|
|
58001
58108
|
] }),
|
|
58002
58109
|
!hasChanges && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
58003
58110
|
renderGitSyncButtons(),
|
|
@@ -59433,44 +59540,52 @@ function LanguagePickerDialog({
|
|
|
59433
59540
|
},
|
|
59434
59541
|
[onOpenChange, onSelect]
|
|
59435
59542
|
);
|
|
59436
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59437
|
-
|
|
59438
|
-
|
|
59439
|
-
|
|
59440
|
-
|
|
59441
|
-
|
|
59442
|
-
|
|
59443
|
-
|
|
59444
|
-
|
|
59445
|
-
|
|
59446
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandGroup, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59447
|
-
CommandItem,
|
|
59448
|
-
{
|
|
59449
|
-
value: "Auto Detect",
|
|
59450
|
-
onSelect: () => handleSelect(AUTO_DETECT_LANGUAGE_ID),
|
|
59451
|
-
children: [
|
|
59452
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(WandSparkles, { className: "size-3.5" }),
|
|
59453
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1 text-sm", children: "Auto Detect" })
|
|
59454
|
-
]
|
|
59455
|
-
}
|
|
59456
|
-
) }),
|
|
59457
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandSeparator, {})
|
|
59543
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59544
|
+
DialogContent,
|
|
59545
|
+
{
|
|
59546
|
+
variant: "command-palette",
|
|
59547
|
+
className: "overflow-hidden p-0 lg:max-w-[480px]",
|
|
59548
|
+
showCloseButton: false,
|
|
59549
|
+
children: [
|
|
59550
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { className: "sr-only", children: [
|
|
59551
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Select Language Mode" }),
|
|
59552
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: "Search for a language to syntax-highlight the file" })
|
|
59458
59553
|
] }),
|
|
59459
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
59460
|
-
|
|
59461
|
-
{
|
|
59462
|
-
|
|
59463
|
-
|
|
59464
|
-
|
|
59465
|
-
|
|
59466
|
-
|
|
59467
|
-
|
|
59468
|
-
|
|
59469
|
-
|
|
59470
|
-
|
|
59471
|
-
|
|
59472
|
-
|
|
59473
|
-
|
|
59554
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Command, { children: [
|
|
59555
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandInput, { placeholder: "Select language mode…", autoFocus: true }),
|
|
59556
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(CommandList, { className: "max-h-[360px]", children: [
|
|
59557
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandEmpty, { children: "No languages found." }),
|
|
59558
|
+
hasOverride && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
59559
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandGroup, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59560
|
+
CommandItem,
|
|
59561
|
+
{
|
|
59562
|
+
value: "Auto Detect",
|
|
59563
|
+
onSelect: () => handleSelect(AUTO_DETECT_LANGUAGE_ID),
|
|
59564
|
+
children: [
|
|
59565
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WandSparkles, { className: "size-3.5" }),
|
|
59566
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1 text-sm", children: "Auto Detect" })
|
|
59567
|
+
]
|
|
59568
|
+
}
|
|
59569
|
+
) }),
|
|
59570
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandSeparator, {})
|
|
59571
|
+
] }),
|
|
59572
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandGroup, { children: SUPPORTED_LANGUAGES.map((lang) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59573
|
+
CommandItem,
|
|
59574
|
+
{
|
|
59575
|
+
value: `${lang.label} ${lang.id}`,
|
|
59576
|
+
onSelect: () => handleSelect(lang.id),
|
|
59577
|
+
children: [
|
|
59578
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1 text-sm", children: lang.label }),
|
|
59579
|
+
lang.id === currentLanguage && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3.5 text-muted-foreground" })
|
|
59580
|
+
]
|
|
59581
|
+
},
|
|
59582
|
+
lang.id
|
|
59583
|
+
)) })
|
|
59584
|
+
] })
|
|
59585
|
+
] })
|
|
59586
|
+
]
|
|
59587
|
+
}
|
|
59588
|
+
) });
|
|
59474
59589
|
}
|
|
59475
59590
|
function PdfPreview({ src, filename }) {
|
|
59476
59591
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full flex-col", children: /* @__PURE__ */ jsxRuntimeExports.jsx("iframe", { src, title: filename, className: "h-full w-full border-0" }) });
|
|
@@ -60165,7 +60280,8 @@ function QuickOpenDialog({
|
|
|
60165
60280
|
DialogContent,
|
|
60166
60281
|
{
|
|
60167
60282
|
"data-testid": "quick-open__root",
|
|
60168
|
-
|
|
60283
|
+
variant: "command-palette",
|
|
60284
|
+
className: "overflow-hidden p-0 lg:max-w-[520px]",
|
|
60169
60285
|
showCloseButton: false,
|
|
60170
60286
|
children: [
|
|
60171
60287
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { className: "sr-only", children: [
|
|
@@ -60312,62 +60428,72 @@ function SearchFilesDialog({
|
|
|
60312
60428
|
[onOpenFile, onOpenChange]
|
|
60313
60429
|
);
|
|
60314
60430
|
const totalMatches = results.length;
|
|
60315
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
60316
|
-
|
|
60317
|
-
|
|
60318
|
-
|
|
60319
|
-
|
|
60320
|
-
|
|
60321
|
-
|
|
60322
|
-
|
|
60323
|
-
{
|
|
60324
|
-
|
|
60325
|
-
|
|
60326
|
-
|
|
60327
|
-
|
|
60328
|
-
|
|
60329
|
-
|
|
60330
|
-
}
|
|
60331
|
-
),
|
|
60332
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(CommandList, { className: "max-h-[400px]", children: [
|
|
60333
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandEmpty, { children: loading ? "Searching..." : query.length < 2 ? "Type at least 2 characters to search." : "No results found." }),
|
|
60334
|
-
grouped.map(([file2, matches2]) => {
|
|
60335
|
-
const FileIcon = getFileIcon(file2);
|
|
60336
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
60337
|
-
CommandGroup,
|
|
60431
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
60432
|
+
DialogContent,
|
|
60433
|
+
{
|
|
60434
|
+
"data-testid": "search-files__root",
|
|
60435
|
+
variant: "command-palette",
|
|
60436
|
+
className: "overflow-hidden p-0 lg:max-w-[640px]",
|
|
60437
|
+
showCloseButton: false,
|
|
60438
|
+
children: [
|
|
60439
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { className: "sr-only", children: [
|
|
60440
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Search in Files" }),
|
|
60441
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: "Text search across workspace files" })
|
|
60442
|
+
] }),
|
|
60443
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Command, { shouldFilter: false, value: selectedValue, onValueChange: setSelectedValue, children: [
|
|
60444
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
60445
|
+
SearchBar,
|
|
60338
60446
|
{
|
|
60339
|
-
|
|
60340
|
-
|
|
60341
|
-
|
|
60342
|
-
|
|
60343
|
-
|
|
60344
|
-
|
|
60447
|
+
ref: searchBarRef,
|
|
60448
|
+
query,
|
|
60449
|
+
onQueryChange: setQuery,
|
|
60450
|
+
options: searchOptions,
|
|
60451
|
+
onOptionsChange: setSearchOptions,
|
|
60452
|
+
placeholder: "Search in files...",
|
|
60453
|
+
className: "max-lg:border-t max-lg:border-b-0"
|
|
60454
|
+
}
|
|
60455
|
+
),
|
|
60456
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(CommandList, { className: "max-h-[400px]", children: [
|
|
60457
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CommandEmpty, { children: loading ? "Searching..." : query.length < 2 ? "Type at least 2 characters to search." : "No results found." }),
|
|
60458
|
+
grouped.map(([file2, matches2]) => {
|
|
60459
|
+
const FileIcon = getFileIcon(file2);
|
|
60460
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
60461
|
+
CommandGroup,
|
|
60345
60462
|
{
|
|
60346
|
-
|
|
60347
|
-
|
|
60348
|
-
|
|
60349
|
-
|
|
60350
|
-
|
|
60351
|
-
|
|
60463
|
+
heading: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
60464
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FileIcon, { className: "size-3" }),
|
|
60465
|
+
file2
|
|
60466
|
+
] }),
|
|
60467
|
+
children: matches2.map((match) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
60468
|
+
CommandItem,
|
|
60469
|
+
{
|
|
60470
|
+
value: `${file2}:${match.line}:${match.content}`,
|
|
60471
|
+
onSelect: () => handleSelect(file2, match.line),
|
|
60472
|
+
children: [
|
|
60473
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-8 shrink-0 text-right font-mono text-xs text-muted-foreground", children: match.line }),
|
|
60474
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "min-w-0 truncate font-mono text-xs", children: match.content })
|
|
60475
|
+
]
|
|
60476
|
+
},
|
|
60477
|
+
`${file2}:${match.line}:${match.content}`
|
|
60478
|
+
))
|
|
60352
60479
|
},
|
|
60353
|
-
|
|
60354
|
-
)
|
|
60355
|
-
}
|
|
60356
|
-
|
|
60357
|
-
|
|
60358
|
-
|
|
60359
|
-
|
|
60360
|
-
|
|
60361
|
-
|
|
60362
|
-
|
|
60363
|
-
|
|
60364
|
-
|
|
60365
|
-
|
|
60366
|
-
|
|
60367
|
-
|
|
60368
|
-
|
|
60369
|
-
|
|
60370
|
-
] }) });
|
|
60480
|
+
file2
|
|
60481
|
+
);
|
|
60482
|
+
})
|
|
60483
|
+
] }),
|
|
60484
|
+
totalMatches > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-t px-3 py-1.5 text-xs text-muted-foreground", children: [
|
|
60485
|
+
totalMatches,
|
|
60486
|
+
" result",
|
|
60487
|
+
totalMatches !== 1 ? "s" : "",
|
|
60488
|
+
" in ",
|
|
60489
|
+
grouped.length,
|
|
60490
|
+
" file",
|
|
60491
|
+
grouped.length !== 1 ? "s" : ""
|
|
60492
|
+
] })
|
|
60493
|
+
] })
|
|
60494
|
+
]
|
|
60495
|
+
}
|
|
60496
|
+
) });
|
|
60371
60497
|
}
|
|
60372
60498
|
const STORAGE_KEY = "band-recent-workspaces";
|
|
60373
60499
|
const MAX_ENTRIES = 50;
|
|
@@ -60413,10 +60539,11 @@ function WorkspacePickerDialog({ open: open2, onOpenChange }) {
|
|
|
60413
60539
|
const entries2 = [];
|
|
60414
60540
|
for (const project of projects) {
|
|
60415
60541
|
for (const worktree of project.worktrees) {
|
|
60416
|
-
const workspaceId = toWorkspaceId(project.name, worktree.
|
|
60542
|
+
const workspaceId = toWorkspaceId(project.name, worktree.name);
|
|
60417
60543
|
entries2.push({
|
|
60418
60544
|
workspaceId,
|
|
60419
60545
|
projectName: project.name,
|
|
60546
|
+
name: worktree.name,
|
|
60420
60547
|
branch: worktree.branch,
|
|
60421
60548
|
agent: statuses.get(workspaceId)?.agent
|
|
60422
60549
|
});
|
|
@@ -60454,8 +60581,8 @@ function WorkspacePickerDialog({ open: open2, onOpenChange }) {
|
|
|
60454
60581
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
60455
60582
|
DialogContent,
|
|
60456
60583
|
{
|
|
60457
|
-
|
|
60458
|
-
|
|
60584
|
+
variant: "command-palette",
|
|
60585
|
+
className: "overflow-hidden p-0 lg:max-w-[520px]",
|
|
60459
60586
|
showCloseButton: false,
|
|
60460
60587
|
"data-testid": "workspace-picker",
|
|
60461
60588
|
onOpenAutoFocus: (e3) => {
|
|
@@ -60476,7 +60603,7 @@ function WorkspacePickerDialog({ open: open2, onOpenChange }) {
|
|
|
60476
60603
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
60477
60604
|
CommandItem,
|
|
60478
60605
|
{
|
|
60479
|
-
value: `${entry.projectName} ${entry.branch}`,
|
|
60606
|
+
value: `${entry.projectName} ${entry.name} ${entry.branch}`,
|
|
60480
60607
|
onSelect: () => handleSelect(entry.workspaceId),
|
|
60481
60608
|
"data-testid": `workspace-picker__item--${entry.workspaceId}`,
|
|
60482
60609
|
className: "group touch-manipulation [@media(pointer:coarse)]:min-h-11 [@media(pointer:coarse)]:gap-3",
|
|
@@ -60485,7 +60612,7 @@ function WorkspacePickerDialog({ open: open2, onOpenChange }) {
|
|
|
60485
60612
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-sm font-medium", children: [
|
|
60486
60613
|
entry.projectName,
|
|
60487
60614
|
"/",
|
|
60488
|
-
entry.
|
|
60615
|
+
entry.name
|
|
60489
60616
|
] }),
|
|
60490
60617
|
pinnedNow && /* @__PURE__ */ jsxRuntimeExports.jsx(Pin, { className: "size-3 -rotate-45 text-muted-foreground shrink-0" }),
|
|
60491
60618
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
@@ -60502,7 +60629,7 @@ function WorkspacePickerDialog({ open: open2, onOpenChange }) {
|
|
|
60502
60629
|
onClick: (e3) => {
|
|
60503
60630
|
e3.preventDefault();
|
|
60504
60631
|
e3.stopPropagation();
|
|
60505
|
-
togglePinned(entry.projectName, entry.
|
|
60632
|
+
togglePinned(entry.projectName, entry.name, pinnedNow);
|
|
60506
60633
|
},
|
|
60507
60634
|
children: pinnedNow ? /* @__PURE__ */ jsxRuntimeExports.jsx(PinOff, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Pin, { className: "size-3.5" })
|
|
60508
60635
|
}
|
|
@@ -67006,11 +67133,11 @@ class WebDashboardAdapter {
|
|
|
67006
67133
|
async createWorkspace(project, branch, base2, prompt) {
|
|
67007
67134
|
await this.trpc.workspaces.create.mutate({ project, branch, base: base2, prompt });
|
|
67008
67135
|
}
|
|
67009
|
-
async removeWorkspace(project,
|
|
67010
|
-
await this.trpc.workspaces.remove.mutate({ project,
|
|
67136
|
+
async removeWorkspace(project, name2) {
|
|
67137
|
+
await this.trpc.workspaces.remove.mutate({ project, name: name2 });
|
|
67011
67138
|
}
|
|
67012
|
-
async setWorkspacePinned(project,
|
|
67013
|
-
await this.trpc.workspaces.setPinned.mutate({ project,
|
|
67139
|
+
async setWorkspacePinned(project, name2, pinned) {
|
|
67140
|
+
await this.trpc.workspaces.setPinned.mutate({ project, name: name2, pinned });
|
|
67014
67141
|
}
|
|
67015
67142
|
async clearNeedsAttention(workspaceId) {
|
|
67016
67143
|
await this.trpc.statuses.clearNeedsAttention.mutate({ workspaceId });
|
|
@@ -67018,11 +67145,11 @@ class WebDashboardAdapter {
|
|
|
67018
67145
|
async runScript(path2, scriptType) {
|
|
67019
67146
|
await this.trpc.workspaces.runScript.mutate({ path: path2, scriptType });
|
|
67020
67147
|
}
|
|
67021
|
-
async gitPull(project,
|
|
67022
|
-
await this.trpc.workspaces.gitPull.mutate({ project,
|
|
67148
|
+
async gitPull(project, name2) {
|
|
67149
|
+
await this.trpc.workspaces.gitPull.mutate({ project, name: name2 });
|
|
67023
67150
|
}
|
|
67024
|
-
async gitPush(project,
|
|
67025
|
-
await this.trpc.workspaces.gitPush.mutate({ project,
|
|
67151
|
+
async gitPush(project, name2) {
|
|
67152
|
+
await this.trpc.workspaces.gitPush.mutate({ project, name: name2 });
|
|
67026
67153
|
}
|
|
67027
67154
|
async getSettings() {
|
|
67028
67155
|
return await this.trpc.settings.get.query();
|
|
@@ -109252,7 +109379,7 @@ var tn = f$5("block", "before:content-[counter(line)]", "before:inline-block", "
|
|
|
109252
109379
|
var et$1 = ({ className: e3, 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", e3), "data-incomplete": n2 || void 0, "data-language": t2, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o3 }, ...s2 });
|
|
109253
109380
|
var Se$1 = reactExports.createContext({ code: "" }), de$2 = () => reactExports.useContext(Se$1);
|
|
109254
109381
|
var ot$1 = ({ language: e3 }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e3, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e3 }) });
|
|
109255
|
-
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-
|
|
109382
|
+
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-CktYi1nO.js").then((e3) => ({ default: e3.HighlightedCodeBlockBody }))), rt = ({ code: e3, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
|
|
109256
109383
|
let i2 = reactExports.useMemo(() => e3.replace(cn, ""), [e3]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
|
|
109257
109384
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
|
|
109258
109385
|
return jsxRuntimeExports.jsx(Se$1.Provider, { value: { code: e3 }, 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 }) })] }) });
|
|
@@ -109574,7 +109701,7 @@ var Dt = ({ children: e3, className: t2, onDownload: o3, onError: n2 }) => {
|
|
|
109574
109701
|
}, []), 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: e3 != null ? e3 : 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] });
|
|
109575
109702
|
};
|
|
109576
109703
|
var Vt = ({ children: e3, 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: e3 }) })] });
|
|
109577
|
-
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-
|
|
109704
|
+
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-CIBz4-1r.js").then((e3) => ({ default: e3.Mermaid }))), Kn = /language-([^\s]+)/;
|
|
109578
109705
|
function ke$1(e3, t2) {
|
|
109579
109706
|
if (!(e3 != null && e3.position || t2 != null && t2.position)) return true;
|
|
109580
109707
|
if (!(e3 != null && e3.position && (t2 != null && t2.position))) return false;
|
|
@@ -161745,12 +161872,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
161745
161872
|
registerLayoutLoaders([
|
|
161746
161873
|
{
|
|
161747
161874
|
name: "dagre",
|
|
161748
|
-
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-
|
|
161875
|
+
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-CNIyd6rH.js"), "loader")
|
|
161749
161876
|
},
|
|
161750
161877
|
...[
|
|
161751
161878
|
{
|
|
161752
161879
|
name: "cose-bilkent",
|
|
161753
|
-
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-
|
|
161880
|
+
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-DaKuQRAN.js"), "loader")
|
|
161754
161881
|
}
|
|
161755
161882
|
]
|
|
161756
161883
|
]);
|
|
@@ -162189,7 +162316,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
162189
162316
|
return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
|
|
162190
162317
|
}, "detector");
|
|
162191
162318
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
162192
|
-
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-
|
|
162319
|
+
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-D585k1An.js");
|
|
162193
162320
|
return { id, diagram: diagram2 };
|
|
162194
162321
|
}, "loader");
|
|
162195
162322
|
var plugin = {
|
|
@@ -162206,7 +162333,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
162206
162333
|
return /^\s*graph/.test(txt);
|
|
162207
162334
|
}, "detector");
|
|
162208
162335
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
162209
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
162336
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-CUlvxSwr.js");
|
|
162210
162337
|
return { id: id2, diagram: diagram2 };
|
|
162211
162338
|
}, "loader");
|
|
162212
162339
|
var plugin2 = {
|
|
@@ -162229,7 +162356,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
162229
162356
|
return /^\s*flowchart/.test(txt);
|
|
162230
162357
|
}, "detector");
|
|
162231
162358
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
162232
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
162359
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-CUlvxSwr.js");
|
|
162233
162360
|
return { id: id3, diagram: diagram2 };
|
|
162234
162361
|
}, "loader");
|
|
162235
162362
|
var plugin3 = {
|
|
@@ -162243,7 +162370,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
162243
162370
|
return /^\s*erDiagram/.test(txt);
|
|
162244
162371
|
}, "detector");
|
|
162245
162372
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
162246
|
-
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-
|
|
162373
|
+
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-B3yUU2uu.js");
|
|
162247
162374
|
return { id: id4, diagram: diagram2 };
|
|
162248
162375
|
}, "loader");
|
|
162249
162376
|
var plugin4 = {
|
|
@@ -162257,7 +162384,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
162257
162384
|
return /^\s*gitGraph/.test(txt);
|
|
162258
162385
|
}, "detector");
|
|
162259
162386
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
162260
|
-
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-
|
|
162387
|
+
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-CepF7ieg.js");
|
|
162261
162388
|
return { id: id5, diagram: diagram2 };
|
|
162262
162389
|
}, "loader");
|
|
162263
162390
|
var plugin5 = {
|
|
@@ -162271,7 +162398,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
162271
162398
|
return /^\s*gantt/.test(txt);
|
|
162272
162399
|
}, "detector");
|
|
162273
162400
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
162274
|
-
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-
|
|
162401
|
+
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-BWxUm4vA.js");
|
|
162275
162402
|
return { id: id6, diagram: diagram2 };
|
|
162276
162403
|
}, "loader");
|
|
162277
162404
|
var plugin6 = {
|
|
@@ -162285,7 +162412,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
162285
162412
|
return /^\s*info/.test(txt);
|
|
162286
162413
|
}, "detector");
|
|
162287
162414
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
162288
|
-
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-
|
|
162415
|
+
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-BMd22txJ.js");
|
|
162289
162416
|
return { id: id7, diagram: diagram2 };
|
|
162290
162417
|
}, "loader");
|
|
162291
162418
|
var info = {
|
|
@@ -162298,7 +162425,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
162298
162425
|
return /^\s*pie/.test(txt);
|
|
162299
162426
|
}, "detector");
|
|
162300
162427
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
162301
|
-
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-
|
|
162428
|
+
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-Cv-DbjH6.js");
|
|
162302
162429
|
return { id: id8, diagram: diagram2 };
|
|
162303
162430
|
}, "loader");
|
|
162304
162431
|
var pie = {
|
|
@@ -162311,7 +162438,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
162311
162438
|
return /^\s*quadrantChart/.test(txt);
|
|
162312
162439
|
}, "detector");
|
|
162313
162440
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
162314
|
-
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-
|
|
162441
|
+
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-DFyjNST4.js");
|
|
162315
162442
|
return { id: id9, diagram: diagram2 };
|
|
162316
162443
|
}, "loader");
|
|
162317
162444
|
var plugin7 = {
|
|
@@ -162325,7 +162452,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
162325
162452
|
return /^\s*xychart(-beta)?/.test(txt);
|
|
162326
162453
|
}, "detector");
|
|
162327
162454
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
162328
|
-
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-
|
|
162455
|
+
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-r_3LO6yK.js");
|
|
162329
162456
|
return { id: id10, diagram: diagram2 };
|
|
162330
162457
|
}, "loader");
|
|
162331
162458
|
var plugin8 = {
|
|
@@ -162339,7 +162466,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
162339
162466
|
return /^\s*requirement(Diagram)?/.test(txt);
|
|
162340
162467
|
}, "detector");
|
|
162341
162468
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
162342
|
-
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-
|
|
162469
|
+
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-DFM89i-H.js");
|
|
162343
162470
|
return { id: id11, diagram: diagram2 };
|
|
162344
162471
|
}, "loader");
|
|
162345
162472
|
var plugin9 = {
|
|
@@ -162353,7 +162480,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
162353
162480
|
return /^\s*sequenceDiagram/.test(txt);
|
|
162354
162481
|
}, "detector");
|
|
162355
162482
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
162356
|
-
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-
|
|
162483
|
+
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-BiqqAguj.js");
|
|
162357
162484
|
return { id: id12, diagram: diagram2 };
|
|
162358
162485
|
}, "loader");
|
|
162359
162486
|
var plugin10 = {
|
|
@@ -162370,7 +162497,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
162370
162497
|
return /^\s*classDiagram/.test(txt);
|
|
162371
162498
|
}, "detector");
|
|
162372
162499
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
162373
|
-
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-
|
|
162500
|
+
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-Ds7CCTUR.js");
|
|
162374
162501
|
return { id: id13, diagram: diagram2 };
|
|
162375
162502
|
}, "loader");
|
|
162376
162503
|
var plugin11 = {
|
|
@@ -162387,7 +162514,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
162387
162514
|
return /^\s*classDiagram-v2/.test(txt);
|
|
162388
162515
|
}, "detector");
|
|
162389
162516
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
162390
|
-
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-
|
|
162517
|
+
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-Ds7CCTUR.js");
|
|
162391
162518
|
return { id: id14, diagram: diagram2 };
|
|
162392
162519
|
}, "loader");
|
|
162393
162520
|
var plugin12 = {
|
|
@@ -162404,7 +162531,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
162404
162531
|
return /^\s*stateDiagram/.test(txt);
|
|
162405
162532
|
}, "detector");
|
|
162406
162533
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
162407
|
-
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-
|
|
162534
|
+
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-CkiJXki8.js");
|
|
162408
162535
|
return { id: id15, diagram: diagram2 };
|
|
162409
162536
|
}, "loader");
|
|
162410
162537
|
var plugin13 = {
|
|
@@ -162424,7 +162551,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
162424
162551
|
return false;
|
|
162425
162552
|
}, "detector");
|
|
162426
162553
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
162427
|
-
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-
|
|
162554
|
+
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-Bt1BL33e.js");
|
|
162428
162555
|
return { id: id16, diagram: diagram2 };
|
|
162429
162556
|
}, "loader");
|
|
162430
162557
|
var plugin14 = {
|
|
@@ -162438,7 +162565,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
162438
162565
|
return /^\s*journey/.test(txt);
|
|
162439
162566
|
}, "detector");
|
|
162440
162567
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
162441
|
-
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-
|
|
162568
|
+
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-DyIx8DQc.js");
|
|
162442
162569
|
return { id: id17, diagram: diagram2 };
|
|
162443
162570
|
}, "loader");
|
|
162444
162571
|
var plugin15 = {
|
|
@@ -162505,7 +162632,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
162505
162632
|
return false;
|
|
162506
162633
|
}, "detector");
|
|
162507
162634
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
162508
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
162635
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-CUlvxSwr.js");
|
|
162509
162636
|
return { id: id18, diagram: diagram2 };
|
|
162510
162637
|
}, "loader");
|
|
162511
162638
|
var plugin16 = {
|
|
@@ -162519,7 +162646,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
162519
162646
|
return /^\s*timeline/.test(txt);
|
|
162520
162647
|
}, "detector");
|
|
162521
162648
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
162522
|
-
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-
|
|
162649
|
+
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-DCRlJiLq.js");
|
|
162523
162650
|
return { id: id19, diagram: diagram2 };
|
|
162524
162651
|
}, "loader");
|
|
162525
162652
|
var plugin17 = {
|
|
@@ -162533,7 +162660,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
162533
162660
|
return /^\s*mindmap/.test(txt);
|
|
162534
162661
|
}, "detector");
|
|
162535
162662
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
162536
|
-
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-
|
|
162663
|
+
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-C2EIvkPG.js");
|
|
162537
162664
|
return { id: id20, diagram: diagram2 };
|
|
162538
162665
|
}, "loader");
|
|
162539
162666
|
var plugin18 = {
|
|
@@ -162547,7 +162674,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
162547
162674
|
return /^\s*kanban/.test(txt);
|
|
162548
162675
|
}, "detector");
|
|
162549
162676
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
162550
|
-
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-
|
|
162677
|
+
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-D6P6mjw2.js");
|
|
162551
162678
|
return { id: id21, diagram: diagram2 };
|
|
162552
162679
|
}, "loader");
|
|
162553
162680
|
var plugin19 = {
|
|
@@ -162561,7 +162688,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
162561
162688
|
return /^\s*sankey(-beta)?/.test(txt);
|
|
162562
162689
|
}, "detector");
|
|
162563
162690
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
162564
|
-
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-
|
|
162691
|
+
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-Nmb2f9ga.js");
|
|
162565
162692
|
return { id: id22, diagram: diagram2 };
|
|
162566
162693
|
}, "loader");
|
|
162567
162694
|
var plugin20 = {
|
|
@@ -162575,7 +162702,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
162575
162702
|
return /^\s*packet(-beta)?/.test(txt);
|
|
162576
162703
|
}, "detector");
|
|
162577
162704
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
162578
|
-
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-
|
|
162705
|
+
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-CSa3a_oJ.js");
|
|
162579
162706
|
return { id: id23, diagram: diagram2 };
|
|
162580
162707
|
}, "loader");
|
|
162581
162708
|
var packet = {
|
|
@@ -162588,7 +162715,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
162588
162715
|
return /^\s*radar-beta/.test(txt);
|
|
162589
162716
|
}, "detector");
|
|
162590
162717
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
162591
|
-
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-
|
|
162718
|
+
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-Bpupf8hI.js");
|
|
162592
162719
|
return { id: id24, diagram: diagram2 };
|
|
162593
162720
|
}, "loader");
|
|
162594
162721
|
var radar = {
|
|
@@ -162601,7 +162728,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
162601
162728
|
return /^\s*block(-beta)?/.test(txt);
|
|
162602
162729
|
}, "detector");
|
|
162603
162730
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
162604
|
-
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-
|
|
162731
|
+
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-BKZ2vg7U.js");
|
|
162605
162732
|
return { id: id25, diagram: diagram2 };
|
|
162606
162733
|
}, "loader");
|
|
162607
162734
|
var plugin21 = {
|
|
@@ -162615,7 +162742,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
162615
162742
|
return /^\s*architecture/.test(txt);
|
|
162616
162743
|
}, "detector");
|
|
162617
162744
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
162618
|
-
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-
|
|
162745
|
+
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-T9CAFBo1.js");
|
|
162619
162746
|
return { id: id26, diagram: diagram2 };
|
|
162620
162747
|
}, "loader");
|
|
162621
162748
|
var architecture = {
|
|
@@ -162629,7 +162756,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
|
|
|
162629
162756
|
return /^\s*treemap/.test(txt);
|
|
162630
162757
|
}, "detector");
|
|
162631
162758
|
var loader27 = /* @__PURE__ */ __name(async () => {
|
|
162632
|
-
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-
|
|
162759
|
+
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-ByElNwdP.js");
|
|
162633
162760
|
return { id: id27, diagram: diagram2 };
|
|
162634
162761
|
}, "loader");
|
|
162635
162762
|
var treemap = {
|
|
@@ -178037,7 +178164,7 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
|
|
|
178037
178164
|
const validIds = /* @__PURE__ */ new Set();
|
|
178038
178165
|
for (const project of projects) {
|
|
178039
178166
|
for (const worktree of project.worktrees) {
|
|
178040
|
-
validIds.add(toWorkspaceId(project.name, worktree.
|
|
178167
|
+
validIds.add(toWorkspaceId(project.name, worktree.name));
|
|
178041
178168
|
}
|
|
178042
178169
|
}
|
|
178043
178170
|
setCache((prev2) => {
|
|
@@ -199345,6 +199472,11 @@ function ResourcesPage() {
|
|
|
199345
199472
|
queryKey: ["resources", "server"],
|
|
199346
199473
|
queryFn: () => trpc.services.resourcesServer.query()
|
|
199347
199474
|
});
|
|
199475
|
+
const appMetricsQuery = useQuery({
|
|
199476
|
+
queryKey: ["resources", "app-metrics"],
|
|
199477
|
+
queryFn: () => invoke("get_app_metrics"),
|
|
199478
|
+
enabled: isDesktop
|
|
199479
|
+
});
|
|
199348
199480
|
const projectsQuery = useQuery({
|
|
199349
199481
|
queryKey: ["resources", "projects"],
|
|
199350
199482
|
queryFn: () => trpc.services.resourcesProjects.query(),
|
|
@@ -199408,43 +199540,55 @@ function ResourcesPage() {
|
|
|
199408
199540
|
return next2;
|
|
199409
199541
|
});
|
|
199410
199542
|
};
|
|
199411
|
-
const sortedProjects =
|
|
199412
|
-
|
|
199413
|
-
|
|
199414
|
-
|
|
199415
|
-
|
|
199416
|
-
|
|
199417
|
-
|
|
199418
|
-
|
|
199419
|
-
|
|
199543
|
+
const sortedProjects = reactExports.useMemo(
|
|
199544
|
+
() => [...projects].sort((a2, b2) => {
|
|
199545
|
+
const sa = sizes.get(a2.project);
|
|
199546
|
+
const sb = sizes.get(b2.project);
|
|
199547
|
+
if (sa && sb) return sb.sizeBytes - sa.sizeBytes;
|
|
199548
|
+
if (sa && !sb) return -1;
|
|
199549
|
+
if (!sa && sb) return 1;
|
|
199550
|
+
return 0;
|
|
199551
|
+
}),
|
|
199552
|
+
[projects, sizes]
|
|
199553
|
+
);
|
|
199554
|
+
const knownTotalBytes = reactExports.useMemo(
|
|
199555
|
+
() => Array.from(sizes.values()).reduce((sum, s2) => sum + s2.sizeBytes, 0),
|
|
199556
|
+
[sizes]
|
|
199557
|
+
);
|
|
199558
|
+
const totalWorktreeCount = reactExports.useMemo(
|
|
199559
|
+
() => projects.reduce((sum, p2) => sum + p2.worktrees.length, 0),
|
|
199560
|
+
[projects]
|
|
199561
|
+
);
|
|
199420
199562
|
const allLoaded = sizes.size === projects.length;
|
|
199421
|
-
|
|
199422
|
-
|
|
199423
|
-
|
|
199424
|
-
|
|
199425
|
-
|
|
199426
|
-
|
|
199427
|
-
|
|
199428
|
-
|
|
199429
|
-
|
|
199430
|
-
|
|
199431
|
-
|
|
199432
|
-
|
|
199433
|
-
|
|
199434
|
-
|
|
199435
|
-
|
|
199436
|
-
|
|
199437
|
-
|
|
199438
|
-
|
|
199439
|
-
|
|
199440
|
-
|
|
199441
|
-
|
|
199442
|
-
|
|
199443
|
-
|
|
199444
|
-
|
|
199445
|
-
|
|
199446
|
-
|
|
199447
|
-
|
|
199563
|
+
const [serverOpen, setServerOpen] = reactExports.useState(false);
|
|
199564
|
+
const [worktreesOpen, setWorktreesOpen] = reactExports.useState(false);
|
|
199565
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "h-full w-full", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mx-auto max-w-5xl px-6 py-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "overflow-hidden rounded-xl border border-border [&>*+*]:border-t [&>*+*]:border-border", children: [
|
|
199566
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open: serverOpen, onOpenChange: setServerOpen, asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { "data-testid": "resources-server-card", children: [
|
|
199567
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199568
|
+
PanelHeader,
|
|
199569
|
+
{
|
|
199570
|
+
title: "Server",
|
|
199571
|
+
toggleTestId: "resources-server-toggle",
|
|
199572
|
+
open: serverOpen,
|
|
199573
|
+
totalTestId: "resources-server-total",
|
|
199574
|
+
total: server ? formatMB(server.memory.rssBytes) : "…",
|
|
199575
|
+
description: `The Node process serving the Band dashboard (${server ? `pid ${server.pid}` : "…"}).`,
|
|
199576
|
+
refresh: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199577
|
+
Button,
|
|
199578
|
+
{
|
|
199579
|
+
variant: "outline",
|
|
199580
|
+
size: "icon-sm",
|
|
199581
|
+
"aria-label": "Refresh",
|
|
199582
|
+
title: "Refresh",
|
|
199583
|
+
"data-testid": "resources-refresh-server",
|
|
199584
|
+
onClick: () => serverQuery.refetch(),
|
|
199585
|
+
disabled: serverQuery.isFetching,
|
|
199586
|
+
children: serverQuery.isFetching ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-3.5" })
|
|
199587
|
+
}
|
|
199588
|
+
)
|
|
199589
|
+
}
|
|
199590
|
+
),
|
|
199591
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border p-4", children: serverQuery.isError ? /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-destructive", children: [
|
|
199448
199592
|
"Failed to load server snapshot: ",
|
|
199449
199593
|
String(serverQuery.error)
|
|
199450
199594
|
] }) : !server ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
@@ -199467,37 +199611,42 @@ function ResourcesPage() {
|
|
|
199467
199611
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Array buffers", children: formatMB(server.memory.arrayBuffersBytes) }),
|
|
199468
199612
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Total CPU time (user)", children: formatCpuMs(server.cpu.userMicros) }),
|
|
199469
199613
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ServerField, { label: "Total CPU time (system)", children: formatCpuMs(server.cpu.systemMicros) })
|
|
199470
|
-
] })
|
|
199471
|
-
] }),
|
|
199472
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
199473
|
-
|
|
199474
|
-
|
|
199475
|
-
|
|
199476
|
-
|
|
199614
|
+
] }) }) })
|
|
199615
|
+
] }) }),
|
|
199616
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ElectronCard, { query: appMetricsQuery }),
|
|
199617
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open: worktreesOpen, onOpenChange: setWorktreesOpen, asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { "data-testid": "resources-worktrees-card", children: [
|
|
199618
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199619
|
+
PanelHeader,
|
|
199620
|
+
{
|
|
199621
|
+
title: "Worktrees",
|
|
199622
|
+
toggleTestId: "resources-worktrees-toggle",
|
|
199623
|
+
open: worktreesOpen,
|
|
199624
|
+
totalTestId: "resources-worktrees-total",
|
|
199625
|
+
total: `${formatBytes(knownTotalBytes)}${allLoaded ? "" : " (partial)"}`,
|
|
199626
|
+
description: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
199477
199627
|
"Disk usage per tracked git project (allocated blocks, as reported by",
|
|
199478
199628
|
" ",
|
|
199479
199629
|
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "rounded bg-muted px-1 py-0.5 text-xs", children: "du" }),
|
|
199480
199630
|
"). Sizes load per project in batches of ",
|
|
199481
199631
|
PROJECT_FETCH_CONCURRENCY,
|
|
199482
199632
|
". Click a project to see its per-worktree breakdown."
|
|
199483
|
-
] })
|
|
199484
|
-
|
|
199485
|
-
|
|
199486
|
-
|
|
199487
|
-
|
|
199488
|
-
|
|
199489
|
-
|
|
199490
|
-
|
|
199491
|
-
|
|
199492
|
-
|
|
199493
|
-
|
|
199494
|
-
projectsQuery.isFetching || !allLoaded ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-3.5" })
|
|
199495
|
-
|
|
199496
|
-
|
|
199497
|
-
|
|
199498
|
-
|
|
199499
|
-
|
|
199500
|
-
projectsQuery.isError ? /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-destructive", children: [
|
|
199633
|
+
] }),
|
|
199634
|
+
refresh: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199635
|
+
Button,
|
|
199636
|
+
{
|
|
199637
|
+
variant: "outline",
|
|
199638
|
+
size: "icon-sm",
|
|
199639
|
+
"aria-label": "Refresh",
|
|
199640
|
+
title: "Refresh",
|
|
199641
|
+
"data-testid": "resources-refresh-worktrees",
|
|
199642
|
+
onClick: handleRefreshSizes,
|
|
199643
|
+
disabled: projectsQuery.isFetching || !allLoaded,
|
|
199644
|
+
children: projectsQuery.isFetching || !allLoaded ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-3.5" })
|
|
199645
|
+
}
|
|
199646
|
+
)
|
|
199647
|
+
}
|
|
199648
|
+
),
|
|
199649
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border p-4", children: projectsQuery.isError ? /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-destructive", children: [
|
|
199501
199650
|
"Failed to load projects: ",
|
|
199502
199651
|
String(projectsQuery.error)
|
|
199503
199652
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative overflow-x-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -199511,7 +199660,14 @@ function ResourcesPage() {
|
|
|
199511
199660
|
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3 text-right", children: "Worktrees" }),
|
|
199512
199661
|
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3 text-right", children: "Total size" })
|
|
199513
199662
|
] }) }),
|
|
199514
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("tbody", { children: sortedProjects.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("tr", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199663
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("tbody", { children: sortedProjects.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("tr", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199664
|
+
"td",
|
|
199665
|
+
{
|
|
199666
|
+
colSpan: 3,
|
|
199667
|
+
className: "py-6 text-center text-sm text-muted-foreground",
|
|
199668
|
+
children: projectsQuery.isFetching ? "Loading…" : "No git projects found"
|
|
199669
|
+
}
|
|
199670
|
+
) }) : sortedProjects.map((project) => {
|
|
199515
199671
|
const size2 = sizes.get(project.project);
|
|
199516
199672
|
const isExpanded = expandedProjects.has(project.project);
|
|
199517
199673
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(reactExports.Fragment, { children: [
|
|
@@ -199593,7 +199749,7 @@ function ResourcesPage() {
|
|
|
199593
199749
|
"Total",
|
|
199594
199750
|
allLoaded ? "" : " (partial)"
|
|
199595
199751
|
] }),
|
|
199596
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-2 pr-3 text-right tabular-nums", children:
|
|
199752
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-2 pr-3 text-right tabular-nums", children: totalWorktreeCount }),
|
|
199597
199753
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199598
199754
|
"td",
|
|
199599
199755
|
{
|
|
@@ -199605,10 +199761,144 @@ function ResourcesPage() {
|
|
|
199605
199761
|
] }) })
|
|
199606
199762
|
]
|
|
199607
199763
|
}
|
|
199608
|
-
) })
|
|
199609
|
-
] })
|
|
199764
|
+
) }) }) })
|
|
199765
|
+
] }) })
|
|
199766
|
+
] }) }) });
|
|
199767
|
+
}
|
|
199768
|
+
function ElectronCard({ query }) {
|
|
199769
|
+
const [open2, setOpen] = reactExports.useState(false);
|
|
199770
|
+
if (!isDesktop) return null;
|
|
199771
|
+
const metrics = query.data;
|
|
199772
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open: open2, onOpenChange: setOpen, asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { "data-testid": "resources-electron-card", children: [
|
|
199773
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199774
|
+
PanelHeader,
|
|
199775
|
+
{
|
|
199776
|
+
title: "Desktop app (Electron)",
|
|
199777
|
+
toggleTestId: "resources-electron-toggle",
|
|
199778
|
+
open: open2,
|
|
199779
|
+
totalTestId: "resources-electron-total",
|
|
199780
|
+
total: metrics ? formatBytes(metrics.totalMemoryKB * 1024) : "…",
|
|
199781
|
+
description: "Per-process CPU and memory for the Electron main process, GPU process, Chromium renderers (the dashboard and each browser tab), and utility helpers.",
|
|
199782
|
+
refresh: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199783
|
+
Button,
|
|
199784
|
+
{
|
|
199785
|
+
variant: "outline",
|
|
199786
|
+
size: "icon-sm",
|
|
199787
|
+
"aria-label": "Refresh",
|
|
199788
|
+
title: "Refresh",
|
|
199789
|
+
"data-testid": "resources-refresh-electron",
|
|
199790
|
+
onClick: () => query.refetch(),
|
|
199791
|
+
disabled: query.isFetching,
|
|
199792
|
+
children: query.isFetching ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-3.5" })
|
|
199793
|
+
}
|
|
199794
|
+
)
|
|
199795
|
+
}
|
|
199796
|
+
),
|
|
199797
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border p-4", children: query.isError ? /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-destructive", children: [
|
|
199798
|
+
"Failed to load Electron metrics: ",
|
|
199799
|
+
String(query.error)
|
|
199800
|
+
] }) : !metrics ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
199801
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }),
|
|
199802
|
+
"Loading…"
|
|
199803
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative overflow-x-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
199804
|
+
"table",
|
|
199805
|
+
{
|
|
199806
|
+
"data-testid": "resources-electron-table",
|
|
199807
|
+
className: "w-full border-collapse text-sm",
|
|
199808
|
+
children: [
|
|
199809
|
+
/* @__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: [
|
|
199810
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3", children: "Process" }),
|
|
199811
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3", children: "Type" }),
|
|
199812
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3 text-right", children: "PID" }),
|
|
199813
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3 text-right", children: "CPU" }),
|
|
199814
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "py-2 pr-3 text-right", children: "Memory" })
|
|
199815
|
+
] }) }),
|
|
199816
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("tbody", { children: metrics.processes.map((p2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
199817
|
+
"tr",
|
|
199818
|
+
{
|
|
199819
|
+
"data-testid": `resources-electron-row-${p2.pid}`,
|
|
199820
|
+
className: "border-b border-border/60 last:border-0 hover:bg-muted/40",
|
|
199821
|
+
children: [
|
|
199822
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-1.5 pr-3", children: p2.label }),
|
|
199823
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-1.5 pr-3 text-muted-foreground", children: p2.type }),
|
|
199824
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-1.5 pr-3 text-right tabular-nums", children: p2.pid }),
|
|
199825
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("td", { className: "py-1.5 pr-3 text-right tabular-nums", children: [
|
|
199826
|
+
p2.cpuPercent.toFixed(1),
|
|
199827
|
+
"%"
|
|
199828
|
+
] }),
|
|
199829
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-1.5 pr-3 text-right tabular-nums", children: formatBytes(p2.memoryKB * 1024) })
|
|
199830
|
+
]
|
|
199831
|
+
},
|
|
199832
|
+
p2.pid
|
|
199833
|
+
)) }),
|
|
199834
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("tfoot", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { className: "border-t-2 border-border font-medium", children: [
|
|
199835
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("td", { className: "py-2 pr-3", "data-testid": "resources-electron-total-count", children: [
|
|
199836
|
+
"Total (",
|
|
199837
|
+
metrics.processCount,
|
|
199838
|
+
")"
|
|
199839
|
+
] }),
|
|
199840
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-2 pr-3" }),
|
|
199841
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "py-2 pr-3" }),
|
|
199842
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
199843
|
+
"td",
|
|
199844
|
+
{
|
|
199845
|
+
className: "py-2 pr-3 text-right tabular-nums",
|
|
199846
|
+
"data-testid": "resources-electron-total-cpu",
|
|
199847
|
+
children: [
|
|
199848
|
+
metrics.totalCpuPercent.toFixed(1),
|
|
199849
|
+
"%"
|
|
199850
|
+
]
|
|
199851
|
+
}
|
|
199852
|
+
),
|
|
199853
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199854
|
+
"td",
|
|
199855
|
+
{
|
|
199856
|
+
className: "py-2 pr-3 text-right tabular-nums",
|
|
199857
|
+
"data-testid": "resources-electron-total-memory",
|
|
199858
|
+
children: formatBytes(metrics.totalMemoryKB * 1024)
|
|
199859
|
+
}
|
|
199860
|
+
)
|
|
199861
|
+
] }) })
|
|
199862
|
+
]
|
|
199863
|
+
}
|
|
199864
|
+
) }) }) })
|
|
199610
199865
|
] }) });
|
|
199611
199866
|
}
|
|
199867
|
+
function PanelHeader({
|
|
199868
|
+
title,
|
|
199869
|
+
toggleTestId,
|
|
199870
|
+
open: open2,
|
|
199871
|
+
total,
|
|
199872
|
+
totalTestId,
|
|
199873
|
+
description,
|
|
199874
|
+
refresh
|
|
199875
|
+
}) {
|
|
199876
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row items-start justify-between gap-2 p-4", children: [
|
|
199877
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [
|
|
199878
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-base font-semibold leading-none", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
199879
|
+
CollapsibleTrigger,
|
|
199880
|
+
{
|
|
199881
|
+
"data-testid": toggleTestId,
|
|
199882
|
+
className: "group flex w-full items-center gap-2 text-left",
|
|
199883
|
+
children: [
|
|
199884
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-4 shrink-0 text-muted-foreground transition-transform group-data-[state=open]:rotate-90" }),
|
|
199885
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: title }),
|
|
199886
|
+
!open2 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199887
|
+
"span",
|
|
199888
|
+
{
|
|
199889
|
+
"data-testid": totalTestId,
|
|
199890
|
+
className: "ml-auto pl-2 font-mono text-sm font-normal text-muted-foreground",
|
|
199891
|
+
children: total
|
|
199892
|
+
}
|
|
199893
|
+
)
|
|
199894
|
+
]
|
|
199895
|
+
}
|
|
199896
|
+
) }),
|
|
199897
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "pl-6 text-sm text-muted-foreground", children: description })
|
|
199898
|
+
] }),
|
|
199899
|
+
refresh
|
|
199900
|
+
] });
|
|
199901
|
+
}
|
|
199612
199902
|
function ServerField({ label, children: children2 }) {
|
|
199613
199903
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
199614
199904
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: label }),
|
|
@@ -199698,14 +199988,14 @@ function TasksPageContent() {
|
|
|
199698
199988
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col overflow-hidden", children: [
|
|
199699
199989
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b border-border/50 px-4 py-2", children: [
|
|
199700
199990
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: projectFilter, onValueChange: setProjectFilter, children: [
|
|
199701
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 w-40 text-xs", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "All Projects" }) }),
|
|
199991
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 w-40 text-xs", "data-testid": "tasks__project-filter", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "All Projects" }) }),
|
|
199702
199992
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
|
|
199703
199993
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: "all", children: "All Projects" }),
|
|
199704
199994
|
projectNames.map((name2) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: name2, children: name2 }, name2))
|
|
199705
199995
|
] })
|
|
199706
199996
|
] }),
|
|
199707
199997
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: statusFilter, onValueChange: (v2) => setStatusFilter(v2), children: [
|
|
199708
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 w-40 text-xs", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "All Statuses" }) }),
|
|
199998
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 w-40 text-xs", "data-testid": "tasks__status-filter", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "All Statuses" }) }),
|
|
199709
199999
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: ["all", "running", "completed", "failed"].map((status) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: status, className: "capitalize", children: status === "all" ? "All Statuses" : status }, status)) })
|
|
199710
200000
|
] }),
|
|
199711
200001
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ml-auto flex items-center gap-1", children: [
|
|
@@ -199724,6 +200014,7 @@ function TasksPageContent() {
|
|
|
199724
200014
|
variant: "outline",
|
|
199725
200015
|
size: "xs",
|
|
199726
200016
|
className: "hidden sm:inline-flex",
|
|
200017
|
+
"data-testid": "tasks__new-task-button",
|
|
199727
200018
|
onClick: () => setShowNewTask(true),
|
|
199728
200019
|
children: [
|
|
199729
200020
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "size-3" }),
|
|
@@ -199752,13 +200043,20 @@ function TasksPageContent() {
|
|
|
199752
200043
|
"Retry"
|
|
199753
200044
|
] })
|
|
199754
200045
|
] }),
|
|
199755
|
-
!loading && !error && filteredTasks.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
199756
|
-
|
|
199757
|
-
|
|
199758
|
-
|
|
199759
|
-
|
|
199760
|
-
|
|
199761
|
-
|
|
200046
|
+
!loading && !error && filteredTasks.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
200047
|
+
"div",
|
|
200048
|
+
{
|
|
200049
|
+
className: "flex flex-col items-center justify-center gap-3 py-16 text-center",
|
|
200050
|
+
"data-testid": "tasks__empty-state",
|
|
200051
|
+
children: [
|
|
200052
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListTodo, { className: "size-10 text-muted-foreground" }),
|
|
200053
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
200054
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "font-medium", children: "No tasks found" }),
|
|
200055
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: tasks.length > 0 ? "Try adjusting your filters" : "Dispatch a new task to get started" })
|
|
200056
|
+
] })
|
|
200057
|
+
]
|
|
200058
|
+
}
|
|
200059
|
+
),
|
|
199762
200060
|
filteredTasks.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-2 p-4", children: filteredTasks.map((task2) => /* @__PURE__ */ jsxRuntimeExports.jsx(TaskCard, { task: task2, onAction: fetchData, agentMap }, task2.id)) })
|
|
199763
200061
|
] }),
|
|
199764
200062
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -199774,17 +200072,25 @@ function TasksPageContent() {
|
|
|
199774
200072
|
function StatusBadge({ status }) {
|
|
199775
200073
|
switch (status) {
|
|
199776
200074
|
case "running":
|
|
199777
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "secondary", className: "gap-1.5", children: [
|
|
200075
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "secondary", className: "gap-1.5", "data-testid": "tasks__status-badge--running", children: [
|
|
199778
200076
|
/* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3 animate-spin" }),
|
|
199779
200077
|
"Running"
|
|
199780
200078
|
] });
|
|
199781
200079
|
case "completed":
|
|
199782
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
199783
|
-
|
|
199784
|
-
|
|
199785
|
-
|
|
200080
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
200081
|
+
Badge,
|
|
200082
|
+
{
|
|
200083
|
+
variant: "secondary",
|
|
200084
|
+
className: "gap-1.5 text-green-600 dark:text-green-400",
|
|
200085
|
+
"data-testid": "tasks__status-badge--completed",
|
|
200086
|
+
children: [
|
|
200087
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheck, { className: "size-3" }),
|
|
200088
|
+
"Completed"
|
|
200089
|
+
]
|
|
200090
|
+
}
|
|
200091
|
+
);
|
|
199786
200092
|
case "failed":
|
|
199787
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "destructive", className: "gap-1.5", children: [
|
|
200093
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "destructive", className: "gap-1.5", "data-testid": "tasks__status-badge--failed", children: [
|
|
199788
200094
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { className: "size-3" }),
|
|
199789
200095
|
"Failed"
|
|
199790
200096
|
] });
|
|
@@ -199819,78 +200125,86 @@ function TaskCard({
|
|
|
199819
200125
|
setActing(false);
|
|
199820
200126
|
}
|
|
199821
200127
|
}, [task2.id, onAction]);
|
|
199822
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
199823
|
-
|
|
199824
|
-
|
|
199825
|
-
|
|
199826
|
-
|
|
199827
|
-
|
|
199828
|
-
|
|
199829
|
-
|
|
199830
|
-
|
|
199831
|
-
|
|
199832
|
-
|
|
199833
|
-
|
|
199834
|
-
|
|
199835
|
-
|
|
199836
|
-
|
|
199837
|
-
|
|
199838
|
-
|
|
199839
|
-
|
|
199840
|
-
|
|
199841
|
-
|
|
199842
|
-
|
|
199843
|
-
|
|
199844
|
-
|
|
199845
|
-
|
|
199846
|
-
|
|
199847
|
-
|
|
199848
|
-
|
|
199849
|
-
|
|
199850
|
-
|
|
199851
|
-
|
|
199852
|
-
|
|
199853
|
-
|
|
199854
|
-
|
|
199855
|
-
|
|
199856
|
-
|
|
199857
|
-
|
|
199858
|
-
|
|
199859
|
-
|
|
199860
|
-
|
|
199861
|
-
|
|
199862
|
-
|
|
199863
|
-
|
|
199864
|
-
|
|
199865
|
-
|
|
199866
|
-
|
|
199867
|
-
|
|
199868
|
-
|
|
199869
|
-
|
|
199870
|
-
|
|
199871
|
-
|
|
199872
|
-
|
|
199873
|
-
|
|
199874
|
-
|
|
199875
|
-
|
|
199876
|
-
|
|
199877
|
-
|
|
199878
|
-
|
|
199879
|
-
|
|
199880
|
-
|
|
199881
|
-
|
|
199882
|
-
|
|
199883
|
-
|
|
199884
|
-
|
|
199885
|
-
|
|
199886
|
-
|
|
199887
|
-
|
|
199888
|
-
|
|
199889
|
-
|
|
199890
|
-
|
|
199891
|
-
|
|
199892
|
-
|
|
199893
|
-
|
|
200128
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
200129
|
+
"div",
|
|
200130
|
+
{
|
|
200131
|
+
className: "flex flex-col gap-2 rounded-lg border-2 border-border/50 p-4 transition-colors hover:border-border",
|
|
200132
|
+
"data-testid": `tasks__card--${task2.id}`,
|
|
200133
|
+
children: [
|
|
200134
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
200135
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "line-clamp-2 min-w-0 flex-1 text-sm font-medium text-foreground", children: task2.prompt }),
|
|
200136
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
200137
|
+
task2.status === "running" && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
200138
|
+
Button,
|
|
200139
|
+
{
|
|
200140
|
+
variant: "ghost",
|
|
200141
|
+
size: "icon",
|
|
200142
|
+
className: "size-7",
|
|
200143
|
+
onClick: handleCancel,
|
|
200144
|
+
disabled: acting,
|
|
200145
|
+
title: "Cancel task",
|
|
200146
|
+
children: acting ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(CircleX, { className: "size-3.5" })
|
|
200147
|
+
}
|
|
200148
|
+
),
|
|
200149
|
+
(task2.status === "completed" || task2.status === "failed") && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
200150
|
+
Button,
|
|
200151
|
+
{
|
|
200152
|
+
variant: "ghost",
|
|
200153
|
+
size: "icon",
|
|
200154
|
+
className: "size-7",
|
|
200155
|
+
onClick: handleRerun,
|
|
200156
|
+
disabled: acting,
|
|
200157
|
+
title: "Re-run task",
|
|
200158
|
+
children: acting ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RotateCcw, { className: "size-3.5" })
|
|
200159
|
+
}
|
|
200160
|
+
),
|
|
200161
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(StatusBadge, { status: task2.status })
|
|
200162
|
+
] })
|
|
200163
|
+
] }),
|
|
200164
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground", children: [
|
|
200165
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-medium text-foreground/70", children: [
|
|
200166
|
+
task2.project,
|
|
200167
|
+
"/",
|
|
200168
|
+
task2.branch
|
|
200169
|
+
] }),
|
|
200170
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-border", children: "·" }),
|
|
200171
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-1", children: [
|
|
200172
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { className: "size-3" }),
|
|
200173
|
+
relativeTime(task2.startedAt)
|
|
200174
|
+
] }),
|
|
200175
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-border", children: "·" }),
|
|
200176
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: formatDuration(task2.startedAt, task2.completedAt) }),
|
|
200177
|
+
task2.codingAgentId && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
200178
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-border", children: "·" }),
|
|
200179
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: agentMap.get(task2.codingAgentId)?.label ?? task2.codingAgentId })
|
|
200180
|
+
] }),
|
|
200181
|
+
task2.model && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
200182
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-border", children: "·" }),
|
|
200183
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: task2.model })
|
|
200184
|
+
] }),
|
|
200185
|
+
task2.mode && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
200186
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-border", children: "·" }),
|
|
200187
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "capitalize", children: task2.mode })
|
|
200188
|
+
] }),
|
|
200189
|
+
sessionHref && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
200190
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-border", children: "·" }),
|
|
200191
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
200192
|
+
Link,
|
|
200193
|
+
{
|
|
200194
|
+
to: sessionHref,
|
|
200195
|
+
className: "inline-flex items-center gap-1 text-primary hover:underline",
|
|
200196
|
+
"data-testid": "tasks__session-link",
|
|
200197
|
+
children: [
|
|
200198
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink$1, { className: "size-3" }),
|
|
200199
|
+
"Session"
|
|
200200
|
+
]
|
|
200201
|
+
}
|
|
200202
|
+
)
|
|
200203
|
+
] })
|
|
200204
|
+
] })
|
|
200205
|
+
]
|
|
200206
|
+
}
|
|
200207
|
+
);
|
|
199894
200208
|
}
|
|
199895
200209
|
function NewTaskDialog({
|
|
199896
200210
|
open: open2,
|
|
@@ -199988,7 +200302,7 @@ function NewTaskDialog({
|
|
|
199988
200302
|
setSubmitting(false);
|
|
199989
200303
|
}
|
|
199990
200304
|
}, [workspaceId, prompt, selectedMode, selectedModel, selectedAgent, onSubmit]);
|
|
199991
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { children: [
|
|
200305
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { "data-testid": "tasks__new-task-dialog", children: [
|
|
199992
200306
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
|
|
199993
200307
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "New Task" }),
|
|
199994
200308
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: "Dispatch a new task to a coding agent" })
|
|
@@ -199997,7 +200311,7 @@ function NewTaskDialog({
|
|
|
199997
200311
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
199998
200312
|
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "text-sm font-medium", htmlFor: "project-select", children: "Project" }),
|
|
199999
200313
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: selectedProject, onValueChange: handleProjectChange, children: [
|
|
200000
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { id: "project-select", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Select a project" }) }),
|
|
200314
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { id: "project-select", "data-testid": "tasks__new-task-project", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Select a project" }) }),
|
|
200001
200315
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: projects.map((p2) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: p2.name, children: p2.name }, p2.name)) })
|
|
200002
200316
|
] })
|
|
200003
200317
|
] }),
|
|
@@ -200010,7 +200324,7 @@ function NewTaskDialog({
|
|
|
200010
200324
|
onValueChange: setSelectedBranch,
|
|
200011
200325
|
disabled: !selectedProject,
|
|
200012
200326
|
children: [
|
|
200013
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { id: "branch-select", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
200327
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { id: "branch-select", "data-testid": "tasks__new-task-workspace", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
200014
200328
|
SelectValue,
|
|
200015
200329
|
{
|
|
200016
200330
|
placeholder: selectedProject ? "Select a workspace" : "Select a project first"
|
|
@@ -200027,6 +200341,7 @@ function NewTaskDialog({
|
|
|
200027
200341
|
Textarea,
|
|
200028
200342
|
{
|
|
200029
200343
|
id: "task-prompt",
|
|
200344
|
+
"data-testid": "tasks__new-task-prompt",
|
|
200030
200345
|
placeholder: "Describe what the agent should do...",
|
|
200031
200346
|
value: prompt,
|
|
200032
200347
|
onChange: (e3) => setPrompt(e3.target.value),
|
|
@@ -201402,6 +201717,79 @@ function ToolbarOverflowMenuItems() {
|
|
|
201402
201717
|
] })
|
|
201403
201718
|
] });
|
|
201404
201719
|
}
|
|
201720
|
+
function ToolbarActionBar() {
|
|
201721
|
+
const ctx = reactExports.useContext(ToolbarOverflowContext);
|
|
201722
|
+
if (!ctx) {
|
|
201723
|
+
throw new Error("ToolbarActionBar must be used inside ToolbarOverflowProvider");
|
|
201724
|
+
}
|
|
201725
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
201726
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
201727
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
201728
|
+
Button,
|
|
201729
|
+
{
|
|
201730
|
+
size: "icon-sm",
|
|
201731
|
+
variant: "ghost",
|
|
201732
|
+
className: "text-muted-foreground",
|
|
201733
|
+
"aria-label": "Resources",
|
|
201734
|
+
"data-testid": "project-list__resources-button",
|
|
201735
|
+
onClick: ctx.openResources,
|
|
201736
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Activity, { className: "size-4" })
|
|
201737
|
+
}
|
|
201738
|
+
) }),
|
|
201739
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "top", children: "Resources" })
|
|
201740
|
+
] }),
|
|
201741
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
201742
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
201743
|
+
Button,
|
|
201744
|
+
{
|
|
201745
|
+
size: "icon-sm",
|
|
201746
|
+
variant: "ghost",
|
|
201747
|
+
className: "text-muted-foreground",
|
|
201748
|
+
"aria-label": "Usage",
|
|
201749
|
+
"data-testid": "project-list__usage-button",
|
|
201750
|
+
onClick: ctx.openReports,
|
|
201751
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChartColumn, { className: "size-4" })
|
|
201752
|
+
}
|
|
201753
|
+
) }),
|
|
201754
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "top", children: "Usage" })
|
|
201755
|
+
] }),
|
|
201756
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
|
|
201757
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
201758
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
201759
|
+
Button,
|
|
201760
|
+
{
|
|
201761
|
+
size: "icon-sm",
|
|
201762
|
+
variant: "ghost",
|
|
201763
|
+
className: "text-muted-foreground",
|
|
201764
|
+
"aria-label": "More actions",
|
|
201765
|
+
"data-testid": "project-list__overflow-trigger",
|
|
201766
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Ellipsis, { className: "size-4" })
|
|
201767
|
+
}
|
|
201768
|
+
) }) }),
|
|
201769
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "top", children: "More" })
|
|
201770
|
+
] }),
|
|
201771
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuContent, { align: "end", children: [
|
|
201772
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onClick: ctx.openTasks, children: [
|
|
201773
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ListTodo, { className: "size-4" }),
|
|
201774
|
+
"Tasks"
|
|
201775
|
+
] }),
|
|
201776
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onClick: ctx.openCronjobs, children: [
|
|
201777
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Timer$1, { className: "size-4" }),
|
|
201778
|
+
"Cronjobs"
|
|
201779
|
+
] }),
|
|
201780
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onClick: ctx.openTunnel, children: [
|
|
201781
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
201782
|
+
Globe,
|
|
201783
|
+
{
|
|
201784
|
+
className: ctx.tunnelStatus === "error" ? "size-4 text-red-500" : ctx.tunnelStatus === "running" ? "size-4 text-green-500" : "size-4"
|
|
201785
|
+
}
|
|
201786
|
+
),
|
|
201787
|
+
ctx.tunnelStatus === "running" ? "Mobile access" : "Start tunnel"
|
|
201788
|
+
] })
|
|
201789
|
+
] })
|
|
201790
|
+
] })
|
|
201791
|
+
] });
|
|
201792
|
+
}
|
|
201405
201793
|
const bandTheme = {
|
|
201406
201794
|
name: "band",
|
|
201407
201795
|
className: "dockview-theme-band"
|
|
@@ -201421,12 +201809,12 @@ const PANEL_SHORTCUTS = {
|
|
|
201421
201809
|
browser: "⇧⌘B"
|
|
201422
201810
|
};
|
|
201423
201811
|
const DockviewTerminalContainer = reactExports.lazy(
|
|
201424
|
-
() => import("./DockviewTerminalContainer-
|
|
201812
|
+
() => import("./DockviewTerminalContainer-CMbrr8wZ.js").then((m2) => ({
|
|
201425
201813
|
default: m2.DockviewTerminalContainer
|
|
201426
201814
|
}))
|
|
201427
201815
|
);
|
|
201428
201816
|
const DockviewBrowserContainer = reactExports.lazy(
|
|
201429
|
-
() => import("./DockviewBrowserContainer-
|
|
201817
|
+
() => import("./DockviewBrowserContainer-BDsafKFK.js").then((m2) => ({
|
|
201430
201818
|
default: m2.DockviewBrowserContainer
|
|
201431
201819
|
}))
|
|
201432
201820
|
);
|
|
@@ -203125,8 +203513,15 @@ function AppShell() {
|
|
|
203125
203513
|
className: "h-full flex flex-col overflow-hidden border-r border-border bg-sidebar",
|
|
203126
203514
|
"data-testid": "app-shell__sidebar",
|
|
203127
203515
|
children: [
|
|
203128
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
203129
|
-
|
|
203516
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
203517
|
+
SidebarTitleBar,
|
|
203518
|
+
{
|
|
203519
|
+
...navControlProps,
|
|
203520
|
+
menuItems: void 0,
|
|
203521
|
+
offsetClass: titleBarOffset
|
|
203522
|
+
}
|
|
203523
|
+
),
|
|
203524
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DashboardShell, { hideTitleBar: true, bottomActions: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarActionBar, {}) }) })
|
|
203130
203525
|
]
|
|
203131
203526
|
}
|
|
203132
203527
|
)
|
|
@@ -203176,12 +203571,12 @@ function RootLayout() {
|
|
|
203176
203571
|
] })
|
|
203177
203572
|
] });
|
|
203178
203573
|
}
|
|
203179
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
203574
|
+
const $$splitComponentImporter$1 = () => import("./index-B9xqso9p.js");
|
|
203180
203575
|
const Route$1 = createFileRoute("/")({
|
|
203181
203576
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
203182
203577
|
});
|
|
203183
|
-
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-
|
|
203184
|
-
const $$splitComponentImporter = () => import("./workspace._workspaceId-
|
|
203578
|
+
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-Dj6Y8WPo.js");
|
|
203579
|
+
const $$splitComponentImporter = () => import("./workspace._workspaceId-BMnOV3pd.js");
|
|
203185
203580
|
const Route2 = createFileRoute("/workspace/$workspaceId")({
|
|
203186
203581
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
203187
203582
|
// Bookmarks / shared links from before route unification (`/workspace/$id/changes`,
|
|
@@ -203317,7 +203712,7 @@ export {
|
|
|
203317
203712
|
sin as ay,
|
|
203318
203713
|
min as az,
|
|
203319
203714
|
LRLanguage as b,
|
|
203320
|
-
|
|
203715
|
+
cn$2 as b$,
|
|
203321
203716
|
insertNode as b0,
|
|
203322
203717
|
positionNode as b1,
|
|
203323
203718
|
getLineFunctionsWithOffset as b2,
|
|
@@ -203348,13 +203743,13 @@ export {
|
|
|
203348
203743
|
MessageSquare as bR,
|
|
203349
203744
|
useIsDesktop as bS,
|
|
203350
203745
|
ToolbarOverflowProvider as bT,
|
|
203351
|
-
|
|
203746
|
+
ToolbarActionBar as bU,
|
|
203352
203747
|
isDesktop as bV,
|
|
203353
|
-
|
|
203354
|
-
|
|
203355
|
-
|
|
203356
|
-
|
|
203357
|
-
|
|
203748
|
+
array$2 as bW,
|
|
203749
|
+
ordinal as bX,
|
|
203750
|
+
Root$5 as bY,
|
|
203751
|
+
Content$1 as bZ,
|
|
203752
|
+
Close as b_,
|
|
203358
203753
|
NodeWeakMap as ba,
|
|
203359
203754
|
snippetCompletion as bb,
|
|
203360
203755
|
Tag as bc,
|
|
@@ -203382,121 +203777,129 @@ export {
|
|
|
203382
203777
|
isFunction$1 as by,
|
|
203383
203778
|
isEmpty as bz,
|
|
203384
203779
|
continuedIndent as c,
|
|
203385
|
-
|
|
203386
|
-
|
|
203387
|
-
|
|
203388
|
-
|
|
203389
|
-
|
|
203390
|
-
|
|
203391
|
-
|
|
203392
|
-
|
|
203393
|
-
|
|
203394
|
-
|
|
203395
|
-
|
|
203396
|
-
|
|
203397
|
-
|
|
203398
|
-
|
|
203399
|
-
|
|
203400
|
-
|
|
203401
|
-
|
|
203402
|
-
|
|
203403
|
-
|
|
203404
|
-
|
|
203405
|
-
|
|
203406
|
-
|
|
203407
|
-
|
|
203408
|
-
|
|
203409
|
-
|
|
203410
|
-
|
|
203411
|
-
|
|
203412
|
-
|
|
203413
|
-
|
|
203414
|
-
|
|
203415
|
-
|
|
203416
|
-
|
|
203417
|
-
|
|
203418
|
-
|
|
203419
|
-
|
|
203420
|
-
|
|
203421
|
-
|
|
203422
|
-
|
|
203423
|
-
|
|
203424
|
-
|
|
203425
|
-
|
|
203426
|
-
|
|
203427
|
-
|
|
203428
|
-
|
|
203429
|
-
|
|
203430
|
-
|
|
203431
|
-
|
|
203432
|
-
|
|
203433
|
-
|
|
203434
|
-
|
|
203435
|
-
|
|
203436
|
-
|
|
203437
|
-
|
|
203438
|
-
|
|
203439
|
-
|
|
203440
|
-
|
|
203441
|
-
|
|
203442
|
-
|
|
203443
|
-
|
|
203444
|
-
|
|
203445
|
-
|
|
203446
|
-
|
|
203447
|
-
|
|
203448
|
-
|
|
203780
|
+
dayjs2 as c$,
|
|
203781
|
+
Title as c0,
|
|
203782
|
+
Description as c1,
|
|
203783
|
+
Portal$4 as c2,
|
|
203784
|
+
Overlay$1 as c3,
|
|
203785
|
+
GitCompare as c4,
|
|
203786
|
+
FolderOpen as c5,
|
|
203787
|
+
useDashboardStore as c6,
|
|
203788
|
+
DesktopDragRegion as c7,
|
|
203789
|
+
Menu$1 as c8,
|
|
203790
|
+
ChevronsUpDown as c9,
|
|
203791
|
+
ZOOM_CSS_VAR as cA,
|
|
203792
|
+
invoke as cB,
|
|
203793
|
+
listen as cC,
|
|
203794
|
+
reactDomExports as cD,
|
|
203795
|
+
Globe as cE,
|
|
203796
|
+
Popover as cF,
|
|
203797
|
+
PopoverTrigger as cG,
|
|
203798
|
+
PopoverContent as cH,
|
|
203799
|
+
Search as cI,
|
|
203800
|
+
Trash2 as cJ,
|
|
203801
|
+
DropdownMenu as cK,
|
|
203802
|
+
DropdownMenuTrigger as cL,
|
|
203803
|
+
ChevronDown as cM,
|
|
203804
|
+
DropdownMenuContent as cN,
|
|
203805
|
+
DropdownMenuItem as cO,
|
|
203806
|
+
TriangleAlert as cP,
|
|
203807
|
+
RotateCw as cQ,
|
|
203808
|
+
Rgb as cR,
|
|
203809
|
+
rgbConvert as cS,
|
|
203810
|
+
define as cT,
|
|
203811
|
+
extend$2 as cU,
|
|
203812
|
+
Color as cV,
|
|
203813
|
+
nogamma as cW,
|
|
203814
|
+
hue as cX,
|
|
203815
|
+
time$2 as cY,
|
|
203816
|
+
min$1 as cZ,
|
|
203817
|
+
max$1 as c_,
|
|
203818
|
+
DiffView as ca,
|
|
203819
|
+
CodeBrowserView as cb,
|
|
203820
|
+
QuickOpenDialog as cc,
|
|
203821
|
+
SearchFilesDialog as cd,
|
|
203822
|
+
WorkspacePickerDialog as ce,
|
|
203823
|
+
useDiffTarget as cf,
|
|
203824
|
+
useSettingsQuery as cg,
|
|
203825
|
+
agentTypeSupportsSessionListing as ch,
|
|
203826
|
+
ChatView as ci,
|
|
203827
|
+
getUserDefinedConfig as cj,
|
|
203828
|
+
getIconSVG as ck,
|
|
203829
|
+
registerIconPacks as cl,
|
|
203830
|
+
unknownIcon as cm,
|
|
203831
|
+
isFilePath as cn,
|
|
203832
|
+
writeClipboardText as co,
|
|
203833
|
+
readClipboardText as cp,
|
|
203834
|
+
ArrowLeft as cq,
|
|
203835
|
+
ArrowUp as cr,
|
|
203836
|
+
ArrowDown as cs,
|
|
203837
|
+
ArrowRight as ct,
|
|
203838
|
+
ClipboardCopy as cu,
|
|
203839
|
+
ClipboardPaste as cv,
|
|
203840
|
+
getCurrentZoomLevel as cw,
|
|
203841
|
+
openExternalUrl as cx,
|
|
203842
|
+
subscribeToZoomChanges as cy,
|
|
203843
|
+
SearchBar as cz,
|
|
203449
203844
|
foldInside as d,
|
|
203450
|
-
|
|
203451
|
-
|
|
203452
|
-
|
|
203453
|
-
|
|
203454
|
-
|
|
203455
|
-
|
|
203456
|
-
|
|
203457
|
-
|
|
203458
|
-
|
|
203459
|
-
|
|
203460
|
-
|
|
203461
|
-
|
|
203462
|
-
|
|
203463
|
-
|
|
203464
|
-
|
|
203465
|
-
|
|
203466
|
-
|
|
203467
|
-
|
|
203468
|
-
|
|
203469
|
-
|
|
203470
|
-
|
|
203471
|
-
|
|
203472
|
-
|
|
203473
|
-
|
|
203474
|
-
|
|
203475
|
-
|
|
203476
|
-
|
|
203477
|
-
|
|
203478
|
-
|
|
203479
|
-
|
|
203480
|
-
|
|
203481
|
-
|
|
203482
|
-
|
|
203483
|
-
|
|
203484
|
-
|
|
203485
|
-
|
|
203486
|
-
|
|
203487
|
-
|
|
203488
|
-
|
|
203489
|
-
|
|
203490
|
-
|
|
203491
|
-
|
|
203492
|
-
|
|
203493
|
-
|
|
203494
|
-
|
|
203495
|
-
|
|
203496
|
-
|
|
203497
|
-
|
|
203498
|
-
|
|
203499
|
-
|
|
203845
|
+
timeFormat as d0,
|
|
203846
|
+
timeMonth as d1,
|
|
203847
|
+
timeSunday as d2,
|
|
203848
|
+
timeSaturday as d3,
|
|
203849
|
+
timeFriday as d4,
|
|
203850
|
+
timeThursday as d5,
|
|
203851
|
+
timeWednesday as d6,
|
|
203852
|
+
timeTuesday as d7,
|
|
203853
|
+
timeMonday as d8,
|
|
203854
|
+
timeDay as d9,
|
|
203855
|
+
arrayLikeKeys as dA,
|
|
203856
|
+
baseKeys as dB,
|
|
203857
|
+
memoize as dC,
|
|
203858
|
+
isArguments$1 as dD,
|
|
203859
|
+
copyObject as dE,
|
|
203860
|
+
getPrototype as dF,
|
|
203861
|
+
cloneArrayBuffer as dG,
|
|
203862
|
+
cloneTypedArray as dH,
|
|
203863
|
+
getTag$1 as dI,
|
|
203864
|
+
nodeUtil as dJ,
|
|
203865
|
+
copyArray as dK,
|
|
203866
|
+
isBuffer$1 as dL,
|
|
203867
|
+
cloneBuffer as dM,
|
|
203868
|
+
initCloneObject as dN,
|
|
203869
|
+
Stack as dO,
|
|
203870
|
+
MapCache as dP,
|
|
203871
|
+
Uint8Array$1 as dQ,
|
|
203872
|
+
isTypedArray$1 as dR,
|
|
203873
|
+
isLength$1 as dS,
|
|
203874
|
+
Set$1 as dT,
|
|
203875
|
+
createAssigner as dU,
|
|
203876
|
+
isPrototype as dV,
|
|
203877
|
+
router as dW,
|
|
203878
|
+
timeHour as da,
|
|
203879
|
+
timeMinute as db,
|
|
203880
|
+
second as dc,
|
|
203881
|
+
millisecond as dd,
|
|
203882
|
+
isObject$2 as de,
|
|
203883
|
+
isIterateeCall$1 as df,
|
|
203884
|
+
keysIn as dg,
|
|
203885
|
+
eq as dh,
|
|
203886
|
+
isArrayLike$1 as di,
|
|
203887
|
+
isArray$1 as dj,
|
|
203888
|
+
identity$1 as dk,
|
|
203889
|
+
isIndex$1 as dl,
|
|
203890
|
+
assignValue as dm,
|
|
203891
|
+
format as dn,
|
|
203892
|
+
styles2String as dp,
|
|
203893
|
+
isLabelStyle as dq,
|
|
203894
|
+
setToString as dr,
|
|
203895
|
+
overRest as ds,
|
|
203896
|
+
baseFor as dt,
|
|
203897
|
+
baseAssignValue as du,
|
|
203898
|
+
baseUnary as dv,
|
|
203899
|
+
merge$1 as dw,
|
|
203900
|
+
isObjectLike$1 as dx,
|
|
203901
|
+
baseGetTag as dy,
|
|
203902
|
+
Symbol$1 as dz,
|
|
203500
203903
|
ifNotIn as e,
|
|
203501
203904
|
foldNodeProp as f,
|
|
203502
203905
|
completeFromList as g,
|