@band-app/server 0.5.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/DockviewTerminalContainer-Cz9WlWdH.js +2 -0
  3. package/dist/client/assets/{TerminalPanel-B_30SH7w.js → TerminalPanel-CFXq1WFm.js} +1 -1
  4. package/dist/client/assets/{_basePickBy-DS1DdKpI.js → _basePickBy-BlSII9jq.js} +1 -1
  5. package/dist/client/assets/{_baseUniq-CfquXO5o.js → _baseUniq-LspNqeMx.js} +1 -1
  6. package/dist/client/assets/{arc-BzAFHN3h.js → arc-BHqnoTLh.js} +1 -1
  7. package/dist/client/assets/{architectureDiagram-VXUJARFQ-0gyHmaKw.js → architectureDiagram-VXUJARFQ-DCIibmHk.js} +1 -1
  8. package/dist/client/assets/{blockDiagram-VD42YOAC-BcU0ZZZI.js → blockDiagram-VD42YOAC-Dyw6cz7i.js} +1 -1
  9. package/dist/client/assets/{c4Diagram-YG6GDRKO-Ciwoec2M.js → c4Diagram-YG6GDRKO-CBhD8_Hh.js} +1 -1
  10. package/dist/client/assets/channel-DyVBSQNn.js +1 -0
  11. package/dist/client/assets/{chunk-4BX2VUAB-W_tkduvw.js → chunk-4BX2VUAB-BfoIiC3c.js} +1 -1
  12. package/dist/client/assets/{chunk-55IACEB6-DJCn0BUX.js → chunk-55IACEB6-MseixGRc.js} +1 -1
  13. package/dist/client/assets/{chunk-B4BG7PRW-OLwhCa5k.js → chunk-B4BG7PRW-kNN7PAII.js} +1 -1
  14. package/dist/client/assets/{chunk-DI55MBZ5-MFZ5-oPD.js → chunk-DI55MBZ5-CfSoI0vz.js} +1 -1
  15. package/dist/client/assets/{chunk-FMBD7UC4-BDlrNnpZ.js → chunk-FMBD7UC4-F6mPv_S0.js} +1 -1
  16. package/dist/client/assets/{chunk-QN33PNHL-CjwPbo5G.js → chunk-QN33PNHL-BYvpvAhN.js} +1 -1
  17. package/dist/client/assets/{chunk-QZHKN3VN-3lGRploy.js → chunk-QZHKN3VN-CAQ7z_Ie.js} +1 -1
  18. package/dist/client/assets/{chunk-TZMSLE5B-Dez84DVY.js → chunk-TZMSLE5B-C-XQ_CRy.js} +1 -1
  19. package/dist/client/assets/classDiagram-2ON5EDUG-B-cHSWlO.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-WZHVMYZB-B-cHSWlO.js +1 -0
  21. package/dist/client/assets/clone-DTHJUKz4.js +1 -0
  22. package/dist/client/assets/{cose-bilkent-S5V4N54A-olv_le13.js → cose-bilkent-S5V4N54A-ngzXR_kx.js} +1 -1
  23. package/dist/client/assets/{dagre-6UL2VRFP-DSasPOdo.js → dagre-6UL2VRFP-BbAzSMAb.js} +1 -1
  24. package/dist/client/assets/{diagram-PSM6KHXK-ebd2t3Dh.js → diagram-PSM6KHXK-D1y4JtW0.js} +1 -1
  25. package/dist/client/assets/{diagram-QEK2KX5R-DETGbCmh.js → diagram-QEK2KX5R-BG_iQN5l.js} +1 -1
  26. package/dist/client/assets/{diagram-S2PKOQOG-Duif0gCe.js → diagram-S2PKOQOG-CNtjaaSX.js} +1 -1
  27. package/dist/client/assets/{erDiagram-Q2GNP2WA-7NKTniGi.js → erDiagram-Q2GNP2WA-Bo66PPvm.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-B29HpwMu.js → flowDiagram-NV44I4VS-Exg4ftcx.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-Do43fY0t.js → ganttDiagram-JELNMOA3-D6zmdAtV.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-BernJnLk.js → gitGraphDiagram-V2S2FVAM-Cu6NAnrE.js} +1 -1
  31. package/dist/client/assets/{graph-Cj575nQq.js → graph-WQ-pCgIF.js} +1 -1
  32. package/dist/client/assets/{highlighted-body-B3W2YXNL-WhJuPudb.js → highlighted-body-B3W2YXNL-DwzNwzXb.js} +1 -1
  33. package/dist/client/assets/{index-DlCjHJGt.js → index-BBPUst2I.js} +1 -1
  34. package/dist/client/assets/{index-yYDoQlcT.js → index-BCYiMfLp.js} +1 -1
  35. package/dist/client/assets/{index-DNJro5ce.js → index-B_Cl_jLZ.js} +1 -1
  36. package/dist/client/assets/{index-BTx3LYAO.js → index-Bk2XF8BE.js} +1 -1
  37. package/dist/client/assets/{index-DeMltHzV.js → index-Bp5eP514.js} +1 -1
  38. package/dist/client/assets/{index-DziJ_w_s.js → index-Bq_xY4Ph.js} +1 -1
  39. package/dist/client/assets/index-CZ3BA0Cx.js +1 -0
  40. package/dist/client/assets/{index-DGMdHUd-.js → index-CrvLihp0.js} +1 -1
  41. package/dist/client/assets/{index-CXlGPE4F.js → index-D4GE4Sw0.js} +1 -1
  42. package/dist/client/assets/{index-Dgv8mF9A.js → index-DDT5MV0f.js} +1 -1
  43. package/dist/client/assets/{index-DOlTzcT9.js → index-DIETCrpj.js} +1 -1
  44. package/dist/client/assets/{index-B8ZpCpou.js → index-DSACz9Bz.js} +1 -1
  45. package/dist/client/assets/{index-CUcxKuUy.js → index-DcZkOXX6.js} +1 -1
  46. package/dist/client/assets/{index-D4KvM7Nf.js → index-DijU73Gl.js} +1 -1
  47. package/dist/client/assets/{index-BMY-nliE.js → index-DrmwayhT.js} +1 -1
  48. package/dist/client/assets/{index-xZP1WFvU.js → index-PbwTEF33.js} +1 -1
  49. package/dist/client/assets/{index-dscSHXn-.js → index-plFoXjgS.js} +1 -1
  50. package/dist/client/assets/{index-BuCOraAN.js → index-tEjp_PJF.js} +1 -1
  51. package/dist/client/assets/{infoDiagram-HS3SLOUP-CwWuIWke.js → infoDiagram-HS3SLOUP-CgP-ZkOl.js} +1 -1
  52. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-CwAt4sg1.js → journeyDiagram-XKPGCS4Q-BQA_b_yg.js} +1 -1
  53. package/dist/client/assets/{kanban-definition-3W4ZIXB7-IyDhCRuM.js → kanban-definition-3W4ZIXB7-DPOkqRAd.js} +1 -1
  54. package/dist/client/assets/{layout-Cu0JMbW5.js → layout-DeyOgqC6.js} +1 -1
  55. package/dist/client/assets/{linear-DZDqd87L.js → linear-DGKC-_dh.js} +1 -1
  56. package/dist/client/assets/{main-Cv7pKZy_.js → main-BreB9CwG.js} +210 -210
  57. package/dist/client/assets/main-D081MUyS.css +1 -0
  58. package/dist/client/assets/{mindmap-definition-VGOIOE7T-Dth1CqLW.js → mindmap-definition-VGOIOE7T-D33s8vQk.js} +1 -1
  59. package/dist/client/assets/{pieDiagram-ADFJNKIX-CF2YDYMu.js → pieDiagram-ADFJNKIX-DkcUUXhA.js} +1 -1
  60. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-nxHcYBhT.js → quadrantDiagram-AYHSOK5B-Db6ej3fP.js} +1 -1
  61. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DYuaF4G9.js → requirementDiagram-UZGBJVZJ-CRoYkr69.js} +1 -1
  62. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-DCeOMpHq.js → sankeyDiagram-TZEHDZUN-C5kJHH1U.js} +1 -1
  63. package/dist/client/assets/{sequenceDiagram-WL72ISMW-D3ZzpnOf.js → sequenceDiagram-WL72ISMW-Bjl7tEqi.js} +1 -1
  64. package/dist/client/assets/{stateDiagram-FKZM4ZOC-CephZuT8.js → stateDiagram-FKZM4ZOC-BOHkzYsN.js} +1 -1
  65. package/dist/client/assets/stateDiagram-v2-4FDKWEC3--yckNXlZ.js +1 -0
  66. package/dist/client/assets/{timeline-definition-IT6M3QCI-CMR_brz2.js → timeline-definition-IT6M3QCI-BRYv8Zo9.js} +1 -1
  67. package/dist/client/assets/{treemap-GDKQZRPO-Dr2RtG6j.js → treemap-GDKQZRPO-CreIyeFj.js} +1 -1
  68. package/dist/client/assets/{useSessionListContext-Deo93kBU.js → useSessionListContext-B45AkDTo.js} +1 -1
  69. package/dist/client/assets/{workspace._workspaceId-B6AmUJBH.js → workspace._workspaceId-DDqIo28l.js} +1 -1
  70. package/dist/client/assets/{workspace._workspaceId.changes-DRRihouM.js → workspace._workspaceId.changes-tNj-aYnb.js} +1 -1
  71. package/dist/client/assets/workspace._workspaceId.code-dlq2gsqz.js +1 -0
  72. package/dist/client/assets/{workspace._workspaceId.code._-C2W-zGSx.js → workspace._workspaceId.code._-CZQLyXwR.js} +1 -1
  73. package/dist/client/assets/{workspace._workspaceId.code.index-D56jkXpA.js → workspace._workspaceId.code.index-BZ26pRQu.js} +1 -1
  74. package/dist/client/assets/{workspace._workspaceId.index-DVYXZuSd.js → workspace._workspaceId.index-D_hEywpO.js} +1 -1
  75. package/dist/client/assets/{workspace._workspaceId.terminal--TZaT08S.js → workspace._workspaceId.terminal-D_kBTm-z.js} +2 -2
  76. package/dist/client/assets/{xychartDiagram-PRI3JC2R-CQ1vfZE5.js → xychartDiagram-PRI3JC2R-Cn2h5HVO.js} +1 -1
  77. package/dist/server/assets/{DockviewTerminalContainer-B7m50Lcc.js → DockviewTerminalContainer-DSwflA0D.js} +3 -3
  78. package/dist/server/assets/{TerminalPanel-C2nFSkcn.js → TerminalPanel-D2eWHeSY.js} +2 -2
  79. package/dist/server/assets/{_basePickBy-J3VjyO9D.js → _basePickBy-C6PzK77c.js} +2 -2
  80. package/dist/server/assets/{_baseUniq-DlbIVh20.js → _baseUniq-DiQVR768.js} +1 -1
  81. package/dist/server/assets/{_tanstack-start-manifest_v-C9pSWi1i.js → _tanstack-start-manifest_v-CsSFK95L.js} +1 -1
  82. package/dist/server/assets/{arc-Ds6-Gtmo.js → arc-gx_AD1U3.js} +1 -1
  83. package/dist/server/assets/{architecture-7HQA4BMR-DT3MUSS5.js → architecture-7HQA4BMR-BGd5uu6b.js} +6 -6
  84. package/dist/server/assets/{architectureDiagram-VXUJARFQ-ClVOs7P1.js → architectureDiagram-VXUJARFQ-C_xYzE4-.js} +6 -6
  85. package/dist/server/assets/{blockDiagram-VD42YOAC-CnVWNic_.js → blockDiagram-VD42YOAC-DpPRXIow.js} +6 -6
  86. package/dist/server/assets/{c4Diagram-YG6GDRKO-D9aranD0.js → c4Diagram-YG6GDRKO-CAy_xf6J.js} +2 -2
  87. package/dist/server/assets/{channel-DQjskrHf.js → channel-6B-t4Soa.js} +1 -1
  88. package/dist/server/assets/{chunk-4BX2VUAB-BctuYILS.js → chunk-4BX2VUAB-B42FHAWg.js} +1 -1
  89. package/dist/server/assets/{chunk-55IACEB6-CxcgMpfR.js → chunk-55IACEB6-MqdTOSaC.js} +1 -1
  90. package/dist/server/assets/{chunk-B4BG7PRW-CfsNsYIg.js → chunk-B4BG7PRW-CTB3bXV5.js} +4 -4
  91. package/dist/server/assets/{chunk-DI55MBZ5-B6n-fRVB.js → chunk-DI55MBZ5-BQenTOqK.js} +3 -3
  92. package/dist/server/assets/{chunk-FMBD7UC4-CvBepTeZ.js → chunk-FMBD7UC4-BZoha8Qg.js} +1 -1
  93. package/dist/server/assets/{chunk-QN33PNHL-DS5M3nQE.js → chunk-QN33PNHL-qKkMgf6f.js} +1 -1
  94. package/dist/server/assets/{chunk-QZHKN3VN-DCLb0fZ1.js → chunk-QZHKN3VN-VrtEAJzx.js} +1 -1
  95. package/dist/server/assets/{chunk-TZMSLE5B-B-Uhio6_.js → chunk-TZMSLE5B-DSYbndjw.js} +1 -1
  96. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-B7uMu4wG.js → classDiagram-2ON5EDUG-i_tSGvo3.js} +5 -5
  97. package/dist/server/assets/{classDiagram-2ON5EDUG-B7uMu4wG.js → classDiagram-v2-WZHVMYZB-i_tSGvo3.js} +5 -5
  98. package/dist/server/assets/{clone-B7a1FujU.js → clone-Cxt50u0y.js} +1 -1
  99. package/dist/server/assets/{cose-bilkent-S5V4N54A-_7cffNle.js → cose-bilkent-S5V4N54A-CxYiUQkd.js} +1 -1
  100. package/dist/server/assets/{dagre-6UL2VRFP-Cefu204F.js → dagre-6UL2VRFP-Df3ty00_.js} +6 -6
  101. package/dist/server/assets/{diagram-PSM6KHXK-BeMp8Xfu.js → diagram-PSM6KHXK-Cfylqj1t.js} +7 -7
  102. package/dist/server/assets/{diagram-QEK2KX5R-UNhxZG5g.js → diagram-QEK2KX5R-BOdeY2WM.js} +6 -6
  103. package/dist/server/assets/{diagram-S2PKOQOG-CHWLN67z.js → diagram-S2PKOQOG-DjK_qPmk.js} +6 -6
  104. package/dist/server/assets/{erDiagram-Q2GNP2WA-9TUXBEEN.js → erDiagram-Q2GNP2WA-CDZKFxtV.js} +4 -4
  105. package/dist/server/assets/{flowDiagram-NV44I4VS-DkHr76XI.js → flowDiagram-NV44I4VS-BkuGyDjs.js} +5 -5
  106. package/dist/server/assets/{ganttDiagram-JELNMOA3-D62VSFN-.js → ganttDiagram-JELNMOA3-BivmZcb7.js} +2 -2
  107. package/dist/server/assets/{gitGraph-G5XIXVHT-wAj_iVxo.js → gitGraph-G5XIXVHT-CC7wmTrx.js} +6 -6
  108. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-Cq6NrkS2.js → gitGraphDiagram-V2S2FVAM-CQIdCHfs.js} +7 -7
  109. package/dist/server/assets/{graph-BQR4IW-M.js → graph-C8gb_m5f.js} +2 -2
  110. package/dist/server/assets/{highlighted-body-B3W2YXNL-f4qauOuN.js → highlighted-body-B3W2YXNL-DrUth0S5.js} +1 -1
  111. package/dist/server/assets/{index-BgRkMr0S.js → index-BjGAzo0D.js} +3 -3
  112. package/dist/server/assets/{index-CZPx4FSZ.js → index-BmO8Ehgw.js} +4 -4
  113. package/dist/server/assets/{index-DXlyuzHk.js → index-Bmsr-fBO.js} +2 -2
  114. package/dist/server/assets/{index-DZkn94Qw.js → index-BnH9YiLC.js} +2 -2
  115. package/dist/server/assets/{index-DbtmJMHb.js → index-C4P3mulg.js} +5 -5
  116. package/dist/server/assets/{index-C70O-HGl.js → index-C5Oqi8tP.js} +2 -2
  117. package/dist/server/assets/{index-DgI6m9w2.js → index-CCjk4zsA.js} +2 -2
  118. package/dist/server/assets/{index-CGs_KUt6.js → index-CKHwQloa.js} +2 -2
  119. package/dist/server/assets/{index-OT8s82kA.js → index-CT4xIbKa.js} +2 -2
  120. package/dist/server/assets/{index-CiQmjF-z.js → index-CcD8oUXa.js} +2 -2
  121. package/dist/server/assets/{index-CFtz0N_G.js → index-CitKRHQd.js} +3 -3
  122. package/dist/server/assets/{index-DGpgWNbR.js → index-CmrSb5ez.js} +1 -1
  123. package/dist/server/assets/{index-Y-3cIxVF.js → index-DKxaFXTI.js} +2 -2
  124. package/dist/server/assets/{index-B07RUisL.js → index-DOYPjTos.js} +2 -2
  125. package/dist/server/assets/{index-C-_PyKI8.js → index-DhHjumm2.js} +5 -5
  126. package/dist/server/assets/{index-ClnAaUnc.js → index-Dn5q9HW4.js} +2 -2
  127. package/dist/server/assets/{index-oSZ-5UB6.js → index-F50ZRwue.js} +2 -2
  128. package/dist/server/assets/{index-BnaMl2Ta.js → index-qd9Me3nB.js} +2 -2
  129. package/dist/server/assets/{info-VBDWY6EO-DCfkIc0K.js → info-VBDWY6EO-DyGhnNke.js} +6 -6
  130. package/dist/server/assets/{infoDiagram-HS3SLOUP-z48Ilxyy.js → infoDiagram-HS3SLOUP-Ba9kta0e.js} +5 -5
  131. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-2_BMX1ei.js → journeyDiagram-XKPGCS4Q-DpIqL8B7.js} +4 -4
  132. package/dist/server/assets/{kanban-definition-3W4ZIXB7-YMu0hChh.js → kanban-definition-3W4ZIXB7-DX4-cLBH.js} +2 -2
  133. package/dist/server/assets/{layout-Cp5xjTuv.js → layout-C_dXxi6_.js} +4 -4
  134. package/dist/server/assets/{linear-CC3vfL_Z.js → linear-BEU5iS3c.js} +1 -1
  135. package/dist/server/assets/{mermaid-3ZIDBTTL-nj6kJNsf.js → mermaid-3ZIDBTTL-dDSIn_hx.js} +1 -1
  136. package/dist/server/assets/{mermaid-parser.core-CS8wPCwT.js → mermaid-parser.core-BTu6on9w.js} +11 -11
  137. package/dist/server/assets/{mindmap-definition-VGOIOE7T-BbNEUTwc.js → mindmap-definition-VGOIOE7T-EvNNmlYT.js} +3 -3
  138. package/dist/server/assets/{packet-DYOGHKS2-C4ObDfPs.js → packet-DYOGHKS2-BSKBycIf.js} +6 -6
  139. package/dist/server/assets/{pie-VRWISCQL-24cVROwS.js → pie-VRWISCQL-BjrUlgyt.js} +6 -6
  140. package/dist/server/assets/{pieDiagram-ADFJNKIX-BDcmTNeb.js → pieDiagram-ADFJNKIX-YhPnTxVL.js} +7 -7
  141. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-DVfUAm25.js → quadrantDiagram-AYHSOK5B-C_QHaemj.js} +2 -2
  142. package/dist/server/assets/{radar-ZZBFDIW7-Xb4_ybap.js → radar-ZZBFDIW7-CO0WzTp4.js} +6 -6
  143. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-CQfWrrP_.js → requirementDiagram-UZGBJVZJ-BSt0bNXX.js} +3 -3
  144. package/dist/server/assets/{router-BnXOl-F9.js → router-Ccw5_Sy3.js} +396 -282
  145. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BW9xc6Gi.js → sankeyDiagram-TZEHDZUN-C7SL1Bn9.js} +1 -1
  146. package/dist/server/assets/{sequenceDiagram-WL72ISMW-_VMzymo9.js → sequenceDiagram-WL72ISMW-DdfWdBp2.js} +3 -3
  147. package/dist/server/assets/{stateDiagram-FKZM4ZOC-P9tJlZ70.js → stateDiagram-FKZM4ZOC-BD7Oj-hn.js} +8 -8
  148. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-Cb6P-c6h.js → stateDiagram-v2-4FDKWEC3-e4PXqg0B.js} +4 -4
  149. package/dist/server/assets/{timeline-definition-IT6M3QCI-tuTHzmXv.js → timeline-definition-IT6M3QCI-f7G2avSH.js} +2 -2
  150. package/dist/server/assets/{treemap-GDKQZRPO-COB3TLcF.js → treemap-GDKQZRPO-CndQ71as.js} +6 -6
  151. package/dist/server/assets/{workspace._workspaceId-Ca5XltsV.js → workspace._workspaceId-CR4TOS5A.js} +1 -1
  152. package/dist/server/assets/{workspace._workspaceId.changes-z2xCX4Ct.js → workspace._workspaceId.changes-B7PK-I72.js} +1 -1
  153. package/dist/server/assets/{workspace._workspaceId.code._-DQTK_1av.js → workspace._workspaceId.code._-CA9dP_-G.js} +1 -1
  154. package/dist/server/assets/{workspace._workspaceId.code.index-DTziHng0.js → workspace._workspaceId.code.index-CLRAQ6Pf.js} +1 -1
  155. package/dist/server/assets/{workspace._workspaceId.index-C2U_2sVz.js → workspace._workspaceId.index-alkhfxK3.js} +1 -1
  156. package/dist/server/assets/{workspace._workspaceId.terminal-i2FfY7JG.js → workspace._workspaceId.terminal-BvpiNe_s.js} +2 -2
  157. package/dist/server/assets/{xychartDiagram-PRI3JC2R-B8xp3EP5.js → xychartDiagram-PRI3JC2R-CAkP7cKw.js} +2 -2
  158. package/dist/server/server.js +2 -2
  159. package/dist/start-server.mjs +347 -92
  160. package/package.json +5 -5
  161. package/dist/client/assets/DockviewTerminalContainer-BObwxoXE.js +0 -2
  162. package/dist/client/assets/channel-BGuyGJa3.js +0 -1
  163. package/dist/client/assets/classDiagram-2ON5EDUG-Bcoh3oTO.js +0 -1
  164. package/dist/client/assets/classDiagram-v2-WZHVMYZB-Bcoh3oTO.js +0 -1
  165. package/dist/client/assets/clone-DTSWxIr_.js +0 -1
  166. package/dist/client/assets/index-D9yhhi7d.js +0 -1
  167. package/dist/client/assets/main-rWzqMN1o.css +0 -1
  168. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-B2E3_eDe.js +0 -1
  169. package/dist/client/assets/workspace._workspaceId.code-ClodXGQ6.js +0 -1
@@ -1093,44 +1093,44 @@ const createLucideIcon = (iconName, iconNode) => {
1093
1093
  Component.displayName = toPascalCase(iconName);
1094
1094
  return Component;
1095
1095
  };
1096
- const __iconNode$1j = [
1096
+ const __iconNode$1k = [
1097
1097
  ["path", { d: "M12 17V3", key: "1cwfxf" }],
1098
1098
  ["path", { d: "m6 11 6 6 6-6", key: "12ii2o" }],
1099
1099
  ["path", { d: "M19 21H5", key: "150jfl" }]
1100
1100
  ];
1101
- const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$1j);
1102
- const __iconNode$1i = [
1101
+ const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$1k);
1102
+ const __iconNode$1j = [
1103
1103
  ["path", { d: "M12 5v14", key: "s699le" }],
1104
1104
  ["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
1105
1105
  ];
1106
- const ArrowDown = createLucideIcon("arrow-down", __iconNode$1i);
1107
- const __iconNode$1h = [
1106
+ const ArrowDown = createLucideIcon("arrow-down", __iconNode$1j);
1107
+ const __iconNode$1i = [
1108
1108
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
1109
1109
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
1110
1110
  ];
1111
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1h);
1112
- const __iconNode$1g = [
1111
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1i);
1112
+ const __iconNode$1h = [
1113
1113
  ["path", { d: "M5 12h14", key: "1ays0h" }],
1114
1114
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
1115
1115
  ];
1116
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$1g);
1117
- const __iconNode$1f = [
1116
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$1h);
1117
+ const __iconNode$1g = [
1118
1118
  ["path", { d: "m18 9-6-6-6 6", key: "kcunyi" }],
1119
1119
  ["path", { d: "M12 3v14", key: "7cf3v8" }],
1120
1120
  ["path", { d: "M5 21h14", key: "11awu3" }]
1121
1121
  ];
1122
- const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$1f);
1123
- const __iconNode$1e = [
1122
+ const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$1g);
1123
+ const __iconNode$1f = [
1124
1124
  ["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
1125
1125
  ["path", { d: "M12 19V5", key: "x0mq9r" }]
1126
1126
  ];
1127
- const ArrowUp = createLucideIcon("arrow-up", __iconNode$1e);
1128
- const __iconNode$1d = [
1127
+ const ArrowUp = createLucideIcon("arrow-up", __iconNode$1f);
1128
+ const __iconNode$1e = [
1129
1129
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1130
1130
  ["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }]
1131
1131
  ];
1132
- const Ban = createLucideIcon("ban", __iconNode$1d);
1133
- const __iconNode$1c = [
1132
+ const Ban = createLucideIcon("ban", __iconNode$1e);
1133
+ const __iconNode$1d = [
1134
1134
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
1135
1135
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
1136
1136
  ["path", { d: "M2 14h2", key: "vft8re" }],
@@ -1138,8 +1138,8 @@ const __iconNode$1c = [
1138
1138
  ["path", { d: "M15 13v2", key: "1xurst" }],
1139
1139
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
1140
1140
  ];
1141
- const Bot = createLucideIcon("bot", __iconNode$1c);
1142
- const __iconNode$1b = [
1141
+ const Bot = createLucideIcon("bot", __iconNode$1d);
1142
+ const __iconNode$1c = [
1143
1143
  [
1144
1144
  "path",
1145
1145
  { d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1", key: "ezmyqa" }
@@ -1152,54 +1152,54 @@ const __iconNode$1b = [
1152
1152
  }
1153
1153
  ]
1154
1154
  ];
1155
- const Braces = createLucideIcon("braces", __iconNode$1b);
1156
- const __iconNode$1a = [
1155
+ const Braces = createLucideIcon("braces", __iconNode$1c);
1156
+ const __iconNode$1b = [
1157
1157
  ["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
1158
1158
  ["path", { d: "M22 9v7", key: "pvm9v3" }],
1159
1159
  ["path", { d: "M3.304 13h6.392", key: "1q3zxz" }],
1160
1160
  ["circle", { cx: "18.5", cy: "12.5", r: "3.5", key: "z97x68" }]
1161
1161
  ];
1162
- const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$1a);
1163
- const __iconNode$19 = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
1164
- const Check = createLucideIcon("check", __iconNode$19);
1165
- const __iconNode$18 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1166
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$18);
1167
- const __iconNode$17 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
1168
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$17);
1169
- const __iconNode$16 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1170
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$16);
1171
- const __iconNode$15 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
1172
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$15);
1173
- const __iconNode$14 = [
1162
+ const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$1b);
1163
+ const __iconNode$1a = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
1164
+ const Check = createLucideIcon("check", __iconNode$1a);
1165
+ const __iconNode$19 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1166
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$19);
1167
+ const __iconNode$18 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
1168
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$18);
1169
+ const __iconNode$17 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1170
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$17);
1171
+ const __iconNode$16 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
1172
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$16);
1173
+ const __iconNode$15 = [
1174
1174
  ["path", { d: "m7 20 5-5 5 5", key: "13a0gw" }],
1175
1175
  ["path", { d: "m7 4 5 5 5-5", key: "1kwcof" }]
1176
1176
  ];
1177
- const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$14);
1178
- const __iconNode$13 = [
1177
+ const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$15);
1178
+ const __iconNode$14 = [
1179
1179
  ["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
1180
1180
  ["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
1181
1181
  ];
1182
- const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$13);
1183
- const __iconNode$12 = [
1182
+ const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$14);
1183
+ const __iconNode$13 = [
1184
1184
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1185
1185
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
1186
1186
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
1187
1187
  ];
1188
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$12);
1189
- const __iconNode$11 = [
1188
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$13);
1189
+ const __iconNode$12 = [
1190
1190
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1191
1191
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
1192
1192
  ];
1193
- const CircleCheck = createLucideIcon("circle-check", __iconNode$11);
1194
- const __iconNode$10 = [
1193
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$12);
1194
+ const __iconNode$11 = [
1195
1195
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1196
1196
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
1197
1197
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
1198
1198
  ];
1199
- const CircleX = createLucideIcon("circle-x", __iconNode$10);
1200
- const __iconNode$$ = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
1201
- const Circle = createLucideIcon("circle", __iconNode$$);
1202
- const __iconNode$_ = [
1199
+ const CircleX = createLucideIcon("circle-x", __iconNode$11);
1200
+ const __iconNode$10 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
1201
+ const Circle = createLucideIcon("circle", __iconNode$10);
1202
+ const __iconNode$$ = [
1203
1203
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
1204
1204
  [
1205
1205
  "path",
@@ -1209,52 +1209,58 @@ const __iconNode$_ = [
1209
1209
  }
1210
1210
  ]
1211
1211
  ];
1212
- const Clipboard = createLucideIcon("clipboard", __iconNode$_);
1213
- const __iconNode$Z = [
1212
+ const Clipboard = createLucideIcon("clipboard", __iconNode$$);
1213
+ const __iconNode$_ = [
1214
1214
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1215
1215
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
1216
1216
  ];
1217
- const Clock = createLucideIcon("clock", __iconNode$Z);
1218
- const __iconNode$Y = [
1217
+ const Clock = createLucideIcon("clock", __iconNode$_);
1218
+ const __iconNode$Z = [
1219
1219
  ["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
1220
1220
  ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
1221
1221
  ["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
1222
1222
  ];
1223
- const CodeXml = createLucideIcon("code-xml", __iconNode$Y);
1224
- const __iconNode$X = [
1223
+ const CodeXml = createLucideIcon("code-xml", __iconNode$Z);
1224
+ const __iconNode$Y = [
1225
1225
  ["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
1226
1226
  ["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
1227
1227
  ];
1228
- const Code = createLucideIcon("code", __iconNode$X);
1229
- const __iconNode$W = [
1228
+ const Code = createLucideIcon("code", __iconNode$Y);
1229
+ const __iconNode$X = [
1230
1230
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1231
1231
  ["path", { d: "M12 3v18", key: "108xh3" }]
1232
1232
  ];
1233
- const Columns2 = createLucideIcon("columns-2", __iconNode$W);
1234
- const __iconNode$V = [
1233
+ const Columns2 = createLucideIcon("columns-2", __iconNode$X);
1234
+ const __iconNode$W = [
1235
1235
  [
1236
1236
  "path",
1237
1237
  { 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" }
1238
1238
  ]
1239
1239
  ];
1240
- const Command$1 = createLucideIcon("command", __iconNode$V);
1241
- const __iconNode$U = [
1240
+ const Command$1 = createLucideIcon("command", __iconNode$W);
1241
+ const __iconNode$V = [
1242
1242
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
1243
1243
  ["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" }]
1244
1244
  ];
1245
- const Copy = createLucideIcon("copy", __iconNode$U);
1246
- const __iconNode$T = [
1245
+ const Copy = createLucideIcon("copy", __iconNode$V);
1246
+ const __iconNode$U = [
1247
1247
  ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
1248
1248
  ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
1249
1249
  ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
1250
1250
  ];
1251
- const Database = createLucideIcon("database", __iconNode$T);
1252
- const __iconNode$S = [
1251
+ const Database = createLucideIcon("database", __iconNode$U);
1252
+ const __iconNode$T = [
1253
1253
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
1254
1254
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
1255
1255
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
1256
1256
  ];
1257
- const Download = createLucideIcon("download", __iconNode$S);
1257
+ const Download = createLucideIcon("download", __iconNode$T);
1258
+ const __iconNode$S = [
1259
+ ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
1260
+ ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
1261
+ ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
1262
+ ];
1263
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$S);
1258
1264
  const __iconNode$R = [
1259
1265
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
1260
1266
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
@@ -14054,7 +14060,7 @@ const buttonVariants = cva(
14054
14060
  variant: {
14055
14061
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
14056
14062
  destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
14057
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
14063
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/60 dark:hover:bg-input/80",
14058
14064
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
14059
14065
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
14060
14066
  link: "text-primary underline-offset-4 hover:underline"
@@ -14119,7 +14125,7 @@ function Input({ className, type: type2, ...props }) {
14119
14125
  spellCheck: false,
14120
14126
  "data-slot": "input",
14121
14127
  className: cn$2(
14122
- "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1.5 text-sm shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30",
14128
+ "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1.5 text-sm shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/60",
14123
14129
  "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
14124
14130
  "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
14125
14131
  className
@@ -15047,7 +15053,7 @@ function SelectTrigger({
15047
15053
  {
15048
15054
  "data-slot": "select-trigger",
15049
15055
  className: cn$2(
15050
- "flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:bg-input/30 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
15056
+ "flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:bg-input/60 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
15051
15057
  className
15052
15058
  ),
15053
15059
  ...props,
@@ -15069,7 +15075,10 @@ function SelectContent({
15069
15075
  {
15070
15076
  "data-slot": "select-content",
15071
15077
  className: cn$2(
15072
- "relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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",
15078
+ // Mirror DropdownMenuContent so dropdowns and selects render
15079
+ // identically (popover surface, explicit border-border so the
15080
+ // outline doesn't fall back to currentColor).
15081
+ "relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 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",
15073
15082
  position2 === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
15074
15083
  className
15075
15084
  ),
@@ -15098,7 +15107,10 @@ function SelectItem({
15098
15107
  {
15099
15108
  "data-slot": "select-item",
15100
15109
  className: cn$2(
15101
- "relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
15110
+ // Mirror DropdownMenuItem padding/outline/icon styling so select
15111
+ // items render identically to menu items. Extra right padding leaves
15112
+ // room for the absolutely-positioned check indicator.
15113
+ "relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
15102
15114
  className
15103
15115
  ),
15104
15116
  ...props,
@@ -40434,53 +40446,53 @@ async function loadLanguage(lang) {
40434
40446
  try {
40435
40447
  switch (lang) {
40436
40448
  case "javascript":
40437
- return import("./index-BnaMl2Ta.js").then((m2) => m2.javascript());
40449
+ return import("./index-qd9Me3nB.js").then((m2) => m2.javascript());
40438
40450
  case "jsx":
40439
- return import("./index-BnaMl2Ta.js").then((m2) => m2.javascript({ jsx: true }));
40451
+ return import("./index-qd9Me3nB.js").then((m2) => m2.javascript({ jsx: true }));
40440
40452
  case "typescript":
40441
- return import("./index-BnaMl2Ta.js").then(
40453
+ return import("./index-qd9Me3nB.js").then(
40442
40454
  (m2) => m2.javascript({ typescript: true })
40443
40455
  );
40444
40456
  case "tsx":
40445
- return import("./index-BnaMl2Ta.js").then(
40457
+ return import("./index-qd9Me3nB.js").then(
40446
40458
  (m2) => m2.javascript({ jsx: true, typescript: true })
40447
40459
  );
40448
40460
  case "python":
40449
- return import("./index-DXlyuzHk.js").then((m2) => m2.python());
40461
+ return import("./index-Bmsr-fBO.js").then((m2) => m2.python());
40450
40462
  case "html":
40451
- return import("./index-CZPx4FSZ.js").then((m2) => m2.html());
40463
+ return import("./index-BmO8Ehgw.js").then((m2) => m2.html());
40452
40464
  case "css":
40453
- return import("./index-DZkn94Qw.js").then((m2) => m2.css());
40465
+ return import("./index-BnH9YiLC.js").then((m2) => m2.css());
40454
40466
  case "scss":
40455
40467
  case "sass":
40456
- return import("./index-BgRkMr0S.js").then((m2) => m2.sass());
40468
+ return import("./index-BjGAzo0D.js").then((m2) => m2.sass());
40457
40469
  case "less":
40458
- return import("./index-CFtz0N_G.js").then((m2) => m2.less());
40470
+ return import("./index-CitKRHQd.js").then((m2) => m2.less());
40459
40471
  case "json":
40460
40472
  case "jsonc":
40461
- return import("./index-CiQmjF-z.js").then((m2) => m2.json());
40473
+ return import("./index-CcD8oUXa.js").then((m2) => m2.json());
40462
40474
  case "markdown":
40463
40475
  case "mdx":
40464
- return import("./index-DbtmJMHb.js").then((m2) => m2.markdown());
40476
+ return import("./index-C4P3mulg.js").then((m2) => m2.markdown());
40465
40477
  case "xml":
40466
- return import("./index-C70O-HGl.js").then((m2) => m2.xml());
40478
+ return import("./index-C5Oqi8tP.js").then((m2) => m2.xml());
40467
40479
  case "yaml":
40468
- return import("./index-OT8s82kA.js").then((m2) => m2.yaml());
40480
+ return import("./index-CT4xIbKa.js").then((m2) => m2.yaml());
40469
40481
  case "sql":
40470
- return import("./index-oSZ-5UB6.js").then((m2) => m2.sql());
40482
+ return import("./index-F50ZRwue.js").then((m2) => m2.sql());
40471
40483
  case "rust":
40472
- return import("./index-B07RUisL.js").then((m2) => m2.rust());
40484
+ return import("./index-DOYPjTos.js").then((m2) => m2.rust());
40473
40485
  case "go":
40474
- return import("./index-CGs_KUt6.js").then((m2) => m2.go());
40486
+ return import("./index-CKHwQloa.js").then((m2) => m2.go());
40475
40487
  case "java":
40476
- return import("./index-DgI6m9w2.js").then((m2) => m2.java());
40488
+ return import("./index-CCjk4zsA.js").then((m2) => m2.java());
40477
40489
  case "kotlin":
40478
- return import("./index-DgI6m9w2.js").then((m2) => m2.java());
40490
+ return import("./index-CCjk4zsA.js").then((m2) => m2.java());
40479
40491
  case "c":
40480
40492
  case "cpp":
40481
- return import("./index-Y-3cIxVF.js").then((m2) => m2.cpp());
40493
+ return import("./index-DKxaFXTI.js").then((m2) => m2.cpp());
40482
40494
  case "php":
40483
- return import("./index-C-_PyKI8.js").then((m2) => m2.php());
40495
+ return import("./index-DhHjumm2.js").then((m2) => m2.php());
40484
40496
  // Legacy modes via StreamLanguage
40485
40497
  case "bash":
40486
40498
  case "fish":
@@ -46297,7 +46309,7 @@ function DroppableLabelHeader({ labelId, label }) {
46297
46309
  "div",
46298
46310
  {
46299
46311
  ref: setNodeRef,
46300
- className: `flex items-center gap-2 px-3 py-1.5 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46312
+ className: `flex h-9 items-center gap-2 px-3 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46301
46313
  children: [
46302
46314
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "size-2.5 rounded-full shrink-0", style: { backgroundColor: label.color } }),
46303
46315
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: label.name })
@@ -46311,7 +46323,7 @@ function DroppableUnlabeledHeader() {
46311
46323
  "div",
46312
46324
  {
46313
46325
  ref: setNodeRef,
46314
- className: `flex items-center gap-2 px-3 py-1.5 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46326
+ className: `flex h-9 items-center gap-2 px-3 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46315
46327
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: "Unlabeled" })
46316
46328
  }
46317
46329
  );
@@ -46662,7 +46674,9 @@ function SettingsSection({
46662
46674
  {
46663
46675
  "data-slot": "settings-section-card",
46664
46676
  className: cn$2(
46665
- "overflow-hidden rounded-xl border border-border bg-card",
46677
+ // Group rows share the page background; only the outer border and
46678
+ // 1px row dividers separate them visually.
46679
+ "overflow-hidden rounded-xl border border-border",
46666
46680
  // Auto-divider between direct children (rows). Skips border-bottom of last child.
46667
46681
  "[&>*+*]:border-t [&>*+*]:border-border"
46668
46682
  ),
@@ -50535,6 +50549,23 @@ function DiffView({
50535
50549
  setFocusedFile({ path: filePath, seq: focusSeqRef.current });
50536
50550
  }, []);
50537
50551
  const [activeFile, setActiveFile] = reactExports.useState(null);
50552
+ const [scrollContainerHeight, setScrollContainerHeight] = reactExports.useState(0);
50553
+ const [scrollContainerWidth, setScrollContainerWidth] = reactExports.useState(0);
50554
+ reactExports.useLayoutEffect(() => {
50555
+ const container = scrollContainerRef.current;
50556
+ if (!container) return;
50557
+ const update = () => {
50558
+ setScrollContainerHeight(container.clientHeight);
50559
+ setScrollContainerWidth(container.clientWidth);
50560
+ };
50561
+ update();
50562
+ if (typeof ResizeObserver === "undefined") return;
50563
+ const observer = new ResizeObserver(update);
50564
+ observer.observe(container);
50565
+ return () => observer.disconnect();
50566
+ }, [summary]);
50567
+ const SPLIT_VIEW_MIN_WIDTH = 640;
50568
+ const effectiveViewMode = scrollContainerWidth > 0 && scrollContainerWidth < SPLIT_VIEW_MIN_WIDTH ? "unified" : viewMode;
50538
50569
  reactExports.useEffect(() => {
50539
50570
  const container = scrollContainerRef.current;
50540
50571
  if (!container) return;
@@ -50547,28 +50578,18 @@ function DiffView({
50547
50578
  const names = filenamesRef.current;
50548
50579
  if (names.length === 0) return;
50549
50580
  const rect2 = container.getBoundingClientRect();
50550
- const EDGE_BUFFER = 40;
50551
- if (container.scrollTop <= EDGE_BUFFER) {
50552
- setActiveFile((prev2) => prev2 === names[0] ? prev2 : names[0]);
50553
- return;
50554
- }
50555
- if (container.scrollHeight - container.scrollTop - container.clientHeight <= EDGE_BUFFER) {
50556
- const last = names[names.length - 1];
50557
- setActiveFile((prev2) => prev2 === last ? prev2 : last);
50558
- return;
50559
- }
50560
- const center = rect2.top + rect2.height / 2;
50581
+ const top2 = rect2.top;
50561
50582
  let closest = null;
50562
50583
  let closestDist = Infinity;
50563
50584
  for (const name2 of names) {
50564
50585
  const el = document.getElementById(`diff-file-${encodeURIComponent(name2)}`);
50565
50586
  if (!el) continue;
50566
50587
  const elRect = el.getBoundingClientRect();
50567
- if (elRect.top <= center && elRect.bottom >= center) {
50588
+ if (elRect.top <= top2 && elRect.bottom > top2) {
50568
50589
  closest = name2;
50569
50590
  break;
50570
50591
  }
50571
- const dist2 = Math.min(Math.abs(elRect.top - center), Math.abs(elRect.bottom - center));
50592
+ const dist2 = Math.abs(elRect.top - top2);
50572
50593
  if (dist2 < closestDist) {
50573
50594
  closestDist = dist2;
50574
50595
  closest = name2;
@@ -50788,7 +50809,7 @@ function DiffView({
50788
50809
  }
50789
50810
  };
50790
50811
  const renderDiffSelect = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: diffSelectValue, onValueChange: handleDiffSelectChange, children: [
50791
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-6 w-auto gap-1 rounded-md border-0 bg-transparent px-1.5 text-xs font-medium text-foreground shadow-none hover:bg-accent", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
50812
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { 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", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
50792
50813
  /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
50793
50814
  topSectionBranches.map((branch) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: branch, children: branch }, branch)),
50794
50815
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: UNCOMMITTED_VALUE, children: "Uncommitted" }),
@@ -50802,7 +50823,7 @@ function DiffView({
50802
50823
  if (error) {
50803
50824
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full items-center justify-center text-sm text-destructive", children: error });
50804
50825
  }
50805
- const ghostBtnClass = "hidden size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground md:inline-flex";
50826
+ const ghostBtnClass = "hidden size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground @[40rem]/diff:inline-flex";
50806
50827
  const ghostBtnAlwaysClass = "inline-flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground";
50807
50828
  const renderSidebarToggle = () => /* @__PURE__ */ jsxRuntimeExports.jsx(
50808
50829
  "button",
@@ -50816,32 +50837,31 @@ function DiffView({
50816
50837
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-3.5" })
50817
50838
  }
50818
50839
  );
50819
- const renderBranchIndicator = (headBranchLabel) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1.5 text-xs text-muted-foreground sm:flex", children: [
50820
- headBranchLabel && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
50840
+ const renderBranchIndicator = (headBranchLabel) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
50841
+ headBranchLabel && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1.5 @[32rem]/diff:flex", children: [
50821
50842
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-foreground", children: headBranchLabel }),
50822
50843
  /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "size-3", "aria-hidden": true })
50823
50844
  ] }),
50824
50845
  renderDiffSelect()
50825
50846
  ] });
50826
50847
  if (!summary || summary.stats.filesChanged === 0) {
50827
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full flex-col overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-8 shrink-0 items-center gap-3 border-b border-border pl-2 pr-3", children: [
50828
- renderSidebarToggle(),
50829
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm text-muted-foreground", children: "No changes" }),
50830
- renderBranchIndicator(summary?.headBranch)
50831
- ] }) });
50848
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [
50849
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-9 shrink-0 items-center gap-3 border-b border-border pl-3 pr-3", children: renderBranchIndicator(summary?.headBranch) }),
50850
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex min-h-0 flex-1 items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm text-muted-foreground", children: "No changes" }) })
50851
+ ] });
50832
50852
  }
50833
50853
  const fileStatuses = summary.fileStatuses || {};
50834
50854
  const filenames = flattenFileTreeOrder(buildFileTree(fileStatuses));
50835
50855
  filenamesRef.current = filenames;
50836
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full overflow-hidden", children: [
50856
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "@container/diff flex h-full overflow-hidden", children: [
50837
50857
  sidebarOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs(
50838
50858
  "div",
50839
50859
  {
50840
50860
  "data-diff-sidebar": true,
50841
- className: "hidden shrink-0 flex-col md:flex",
50861
+ className: "hidden shrink-0 flex-col @[40rem]/diff:flex",
50842
50862
  style: { width: sidebarWidth },
50843
50863
  children: [
50844
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-8 shrink-0 items-center border-b border-border px-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Files" }) }),
50864
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-9 shrink-0 items-center border-b border-border px-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Files" }) }),
50845
50865
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto py-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
50846
50866
  ChangesFileTree,
50847
50867
  {
@@ -50857,16 +50877,16 @@ function DiffView({
50857
50877
  "div",
50858
50878
  {
50859
50879
  onMouseDown: handleResizeStart,
50860
- className: "hidden w-[3px] shrink-0 cursor-col-resize bg-border/50 transition-colors hover:bg-accent-foreground/20 active:bg-accent-foreground/30 md:block"
50880
+ className: "hidden w-[3px] shrink-0 cursor-col-resize bg-border/50 transition-colors hover:bg-accent-foreground/20 active:bg-accent-foreground/30 @[40rem]/diff:block"
50861
50881
  }
50862
50882
  ),
50863
50883
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden", children: [
50864
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-8 shrink-0 items-center justify-between gap-3 border-b border-border pl-2 pr-3", children: [
50884
+ /* @__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: [
50865
50885
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [
50866
50886
  renderSidebarToggle(),
50867
50887
  renderBranchIndicator(summary.headBranch)
50868
50888
  ] }),
50869
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1", children: [
50889
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1 @[32rem]/diff:flex", children: [
50870
50890
  /* @__PURE__ */ jsxRuntimeExports.jsx(
50871
50891
  "button",
50872
50892
  {
@@ -50901,16 +50921,16 @@ function DiffView({
50901
50921
  children: expandAll ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsDownUp, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsUpDown, { className: "size-3.5" })
50902
50922
  }
50903
50923
  ),
50904
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center md:flex", children: [
50924
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center @[40rem]/diff:flex", children: [
50905
50925
  /* @__PURE__ */ jsxRuntimeExports.jsx(
50906
50926
  "button",
50907
50927
  {
50908
50928
  type: "button",
50909
50929
  onClick: () => setViewMode("unified"),
50910
- className: `${ghostBtnAlwaysClass} ${viewMode === "unified" ? "bg-accent text-foreground" : ""}`,
50930
+ className: `${ghostBtnAlwaysClass} ${effectiveViewMode === "unified" ? "bg-accent text-foreground" : ""}`,
50911
50931
  title: "Unified view",
50912
50932
  "aria-label": "Unified view",
50913
- "aria-pressed": viewMode === "unified",
50933
+ "aria-pressed": effectiveViewMode === "unified",
50914
50934
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Rows2, { className: "size-3.5" })
50915
50935
  }
50916
50936
  ),
@@ -50919,15 +50939,52 @@ function DiffView({
50919
50939
  {
50920
50940
  type: "button",
50921
50941
  onClick: () => setViewMode("split"),
50922
- className: `${ghostBtnAlwaysClass} ${viewMode === "split" ? "bg-accent text-foreground" : ""}`,
50942
+ className: `${ghostBtnAlwaysClass} ${effectiveViewMode === "split" ? "bg-accent text-foreground" : ""}`,
50923
50943
  title: "Split view",
50924
50944
  "aria-label": "Split view",
50925
- "aria-pressed": viewMode === "split",
50945
+ "aria-pressed": effectiveViewMode === "split",
50926
50946
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Columns2, { className: "size-3.5" })
50927
50947
  }
50928
50948
  )
50929
50949
  ] })
50930
- ] })
50950
+ ] }),
50951
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center @[32rem]/diff:hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
50952
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
50953
+ "button",
50954
+ {
50955
+ type: "button",
50956
+ className: ghostBtnAlwaysClass,
50957
+ title: "More actions",
50958
+ "aria-label": "More actions",
50959
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(EllipsisVertical, { className: "size-3.5" })
50960
+ }
50961
+ ) }),
50962
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuContent, { align: "end", children: [
50963
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => fetchSummaryRef.current?.(true), children: [
50964
+ /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-4" }),
50965
+ "Reload changes"
50966
+ ] }),
50967
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: search2.handleOpenSearch, children: [
50968
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "size-4" }),
50969
+ "Find in changes"
50970
+ ] }),
50971
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => setExpandAll(!expandAll), children: [
50972
+ expandAll ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsDownUp, { className: "size-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsUpDown, { className: "size-4" }),
50973
+ expandAll ? "Collapse all files" : "Expand all files"
50974
+ ] }),
50975
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuSeparator, {}),
50976
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => setViewMode("unified"), children: [
50977
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Rows2, { className: "size-4" }),
50978
+ "Unified view",
50979
+ effectiveViewMode === "unified" && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "ml-auto size-4" })
50980
+ ] }),
50981
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => setViewMode("split"), children: [
50982
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Columns2, { className: "size-4" }),
50983
+ "Split view",
50984
+ effectiveViewMode === "split" && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "ml-auto size-4" })
50985
+ ] })
50986
+ ] })
50987
+ ] }) })
50931
50988
  ] }),
50932
50989
  search2.searchOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(
50933
50990
  SearchBar,
@@ -50944,27 +51001,43 @@ function DiffView({
50944
51001
  onClose: search2.handleCloseSearch
50945
51002
  }
50946
51003
  ),
50947
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: scrollContainerRef, className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-3 p-3", children: filenames.map((filename) => /* @__PURE__ */ jsxRuntimeExports.jsx(
50948
- LazyFileRow,
50949
- {
50950
- filename,
50951
- status: fileStatuses[filename],
50952
- cacheEntry: diffCache.get(filename),
50953
- viewMode,
50954
- expandAll,
50955
- focusedFile,
50956
- isActive: activeFile === filename,
50957
- scrollContainerRef,
50958
- onToggleFile: handleToggleFile,
50959
- onLoadMoreContext: handleLoadMoreContext,
50960
- onShowFullFile: handleShowFullFile,
50961
- onOpenFile,
50962
- onRevertFile: adapter2.revertFile ? handleRevertFile : void 0,
50963
- onEditorViews: handleEditorViews
50964
- },
50965
- filename
50966
- )) }) }),
50967
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-8 shrink-0 items-center border-t border-border px-3 text-sm text-muted-foreground", children: [
51004
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: scrollContainerRef, className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-3 p-3", children: filenames.map((filename, index2) => {
51005
+ const isLast = index2 === filenames.length - 1;
51006
+ const row2 = /* @__PURE__ */ jsxRuntimeExports.jsx(
51007
+ LazyFileRow,
51008
+ {
51009
+ filename,
51010
+ status: fileStatuses[filename],
51011
+ cacheEntry: diffCache.get(filename),
51012
+ viewMode: effectiveViewMode,
51013
+ expandAll,
51014
+ focusedFile,
51015
+ isActive: activeFile === filename,
51016
+ scrollContainerRef,
51017
+ onToggleFile: handleToggleFile,
51018
+ onLoadMoreContext: handleLoadMoreContext,
51019
+ onShowFullFile: handleShowFullFile,
51020
+ onOpenFile,
51021
+ onRevertFile: adapter2.revertFile ? handleRevertFile : void 0,
51022
+ onEditorViews: handleEditorViews
51023
+ },
51024
+ filename
51025
+ );
51026
+ if (!isLast) return row2;
51027
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
51028
+ "div",
51029
+ {
51030
+ className: "flex flex-col",
51031
+ style: scrollContainerHeight > 0 ? { minHeight: scrollContainerHeight } : void 0,
51032
+ children: [
51033
+ row2,
51034
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "flex-1" })
51035
+ ]
51036
+ },
51037
+ `${filename}-last-wrapper`
51038
+ );
51039
+ }) }) }),
51040
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-9 shrink-0 items-center border-t border-border px-3 text-sm text-muted-foreground", children: [
50968
51041
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-foreground", children: summary.stats.filesChanged }),
50969
51042
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-1", children: [
50970
51043
  summary.stats.filesChanged === 1 ? "file" : "files",
@@ -61026,7 +61099,11 @@ function DesktopTitleBar({
61026
61099
  onCopyPath,
61027
61100
  panelItems,
61028
61101
  hiddenPanels,
61029
- onTogglePanelVisibility
61102
+ onTogglePanelVisibility,
61103
+ onGoBack,
61104
+ onGoForward,
61105
+ canGoBack,
61106
+ canGoForward
61030
61107
  }) {
61031
61108
  const [appTitle, setAppTitle] = reactExports.useState(title ?? "Band");
61032
61109
  reactExports.useEffect(() => {
@@ -61035,7 +61112,7 @@ function DesktopTitleBar({
61035
61112
  invoke("get_app_title").then(setAppTitle).catch(() => {
61036
61113
  });
61037
61114
  }, [title]);
61038
- const hasEditorPicker = workspaceName && workspacePath;
61115
+ const hasEditorPicker = isDesktop && workspaceName && workspacePath;
61039
61116
  const hasPanels = workspaceName && panelItems && panelItems.length > 0 && onTogglePanelVisibility;
61040
61117
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
61041
61118
  "div",
@@ -61043,15 +61120,59 @@ function DesktopTitleBar({
61043
61120
  className: "h-[38px] shrink-0 flex items-center justify-center relative border-b border-border",
61044
61121
  style: DRAG_STYLE,
61045
61122
  children: [
61046
- onToggleSidebar && /* @__PURE__ */ jsxRuntimeExports.jsx(
61047
- "button",
61123
+ (onToggleSidebar || onGoBack || onGoForward) && /* @__PURE__ */ jsxRuntimeExports.jsxs(
61124
+ "div",
61048
61125
  {
61049
- type: "button",
61050
- onClick: onToggleSidebar,
61126
+ className: `absolute ${isDesktop ? "left-[80px]" : "left-2"} top-1/2 -translate-y-1/2 flex items-center gap-0.5 pointer-events-auto`,
61051
61127
  style: NO_DRAG_STYLE,
61052
- className: "absolute left-[80px] top-1/2 -translate-y-1/2 flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors pointer-events-auto",
61053
- title: sidebarCollapsed ? "Show sidebar" : "Hide sidebar",
61054
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-5" })
61128
+ children: [
61129
+ onToggleSidebar && /* @__PURE__ */ jsxRuntimeExports.jsx(
61130
+ "button",
61131
+ {
61132
+ type: "button",
61133
+ onClick: onToggleSidebar,
61134
+ className: "flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors",
61135
+ title: sidebarCollapsed ? "Show sidebar" : "Hide sidebar",
61136
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-5" })
61137
+ }
61138
+ ),
61139
+ (onGoBack || onGoForward) && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
61140
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
61141
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
61142
+ "button",
61143
+ {
61144
+ type: "button",
61145
+ onClick: onGoBack,
61146
+ disabled: !canGoBack,
61147
+ className: "flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-muted-foreground",
61148
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronLeft, { className: "size-5" })
61149
+ }
61150
+ ) }),
61151
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { side: "bottom", className: "text-xs", children: [
61152
+ "Back",
61153
+ " ",
61154
+ /* @__PURE__ */ jsxRuntimeExports.jsx("kbd", { className: "ml-1.5 rounded border border-popover-foreground/25 bg-popover-foreground/10 px-1 py-0.5 font-mono text-[14px]", children: "⌘[" })
61155
+ ] })
61156
+ ] }),
61157
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
61158
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
61159
+ "button",
61160
+ {
61161
+ type: "button",
61162
+ onClick: onGoForward,
61163
+ disabled: !canGoForward,
61164
+ className: "flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-muted-foreground",
61165
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-5" })
61166
+ }
61167
+ ) }),
61168
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { side: "bottom", className: "text-xs", children: [
61169
+ "Forward",
61170
+ " ",
61171
+ /* @__PURE__ */ jsxRuntimeExports.jsx("kbd", { className: "ml-1.5 rounded border border-popover-foreground/25 bg-popover-foreground/10 px-1 py-0.5 font-mono text-[14px]", children: "⌘]" })
61172
+ ] })
61173
+ ] })
61174
+ ] })
61175
+ ]
61055
61176
  }
61056
61177
  ),
61057
61178
  workspaceName ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground select-none pointer-events-none truncate max-w-[50%]", children: workspaceName }) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-medium text-muted-foreground select-none pointer-events-none", children: appTitle }),
@@ -61076,15 +61197,12 @@ function DesktopTitleBar({
61076
61197
  ] }),
61077
61198
  /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "end", children: panelItems?.map((item) => {
61078
61199
  const Icon2 = item.icon;
61079
- const isChat = item.id === "chat";
61080
- const isVisible = isChat || !hiddenPanels?.includes(item.id);
61200
+ const isVisible = !hiddenPanels?.includes(item.id);
61081
61201
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
61082
61202
  DropdownMenuCheckboxItem,
61083
61203
  {
61084
61204
  checked: isVisible,
61085
- disabled: isChat,
61086
61205
  onCheckedChange: () => {
61087
- if (isChat) return;
61088
61206
  onTogglePanelVisibility?.(item.id);
61089
61207
  },
61090
61208
  children: [
@@ -132342,12 +132460,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
132342
132460
  registerLayoutLoaders([
132343
132461
  {
132344
132462
  name: "dagre",
132345
- loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-Cefu204F.js"), "loader")
132463
+ loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-Df3ty00_.js"), "loader")
132346
132464
  },
132347
132465
  ...[
132348
132466
  {
132349
132467
  name: "cose-bilkent",
132350
- loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-_7cffNle.js"), "loader")
132468
+ loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-CxYiUQkd.js"), "loader")
132351
132469
  }
132352
132470
  ]
132353
132471
  ]);
@@ -132786,7 +132904,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
132786
132904
  return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
132787
132905
  }, "detector");
132788
132906
  var loader = /* @__PURE__ */ __name(async () => {
132789
- const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-D9aranD0.js");
132907
+ const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-CAy_xf6J.js");
132790
132908
  return { id, diagram: diagram2 };
132791
132909
  }, "loader");
132792
132910
  var plugin = {
@@ -132803,7 +132921,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
132803
132921
  return /^\s*graph/.test(txt);
132804
132922
  }, "detector");
132805
132923
  var loader2 = /* @__PURE__ */ __name(async () => {
132806
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DkHr76XI.js");
132924
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-BkuGyDjs.js");
132807
132925
  return { id: id2, diagram: diagram2 };
132808
132926
  }, "loader");
132809
132927
  var plugin2 = {
@@ -132826,7 +132944,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
132826
132944
  return /^\s*flowchart/.test(txt);
132827
132945
  }, "detector");
132828
132946
  var loader3 = /* @__PURE__ */ __name(async () => {
132829
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DkHr76XI.js");
132947
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-BkuGyDjs.js");
132830
132948
  return { id: id3, diagram: diagram2 };
132831
132949
  }, "loader");
132832
132950
  var plugin3 = {
@@ -132840,7 +132958,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
132840
132958
  return /^\s*erDiagram/.test(txt);
132841
132959
  }, "detector");
132842
132960
  var loader4 = /* @__PURE__ */ __name(async () => {
132843
- const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-9TUXBEEN.js");
132961
+ const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-CDZKFxtV.js");
132844
132962
  return { id: id4, diagram: diagram2 };
132845
132963
  }, "loader");
132846
132964
  var plugin4 = {
@@ -132854,7 +132972,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
132854
132972
  return /^\s*gitGraph/.test(txt);
132855
132973
  }, "detector");
132856
132974
  var loader5 = /* @__PURE__ */ __name(async () => {
132857
- const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-Cq6NrkS2.js");
132975
+ const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-CQIdCHfs.js");
132858
132976
  return { id: id5, diagram: diagram2 };
132859
132977
  }, "loader");
132860
132978
  var plugin5 = {
@@ -132868,7 +132986,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
132868
132986
  return /^\s*gantt/.test(txt);
132869
132987
  }, "detector");
132870
132988
  var loader6 = /* @__PURE__ */ __name(async () => {
132871
- const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-D62VSFN-.js");
132989
+ const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-BivmZcb7.js");
132872
132990
  return { id: id6, diagram: diagram2 };
132873
132991
  }, "loader");
132874
132992
  var plugin6 = {
@@ -132882,7 +133000,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
132882
133000
  return /^\s*info/.test(txt);
132883
133001
  }, "detector");
132884
133002
  var loader7 = /* @__PURE__ */ __name(async () => {
132885
- const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-z48Ilxyy.js");
133003
+ const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-Ba9kta0e.js");
132886
133004
  return { id: id7, diagram: diagram2 };
132887
133005
  }, "loader");
132888
133006
  var info = {
@@ -132895,7 +133013,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
132895
133013
  return /^\s*pie/.test(txt);
132896
133014
  }, "detector");
132897
133015
  var loader8 = /* @__PURE__ */ __name(async () => {
132898
- const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-BDcmTNeb.js");
133016
+ const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-YhPnTxVL.js");
132899
133017
  return { id: id8, diagram: diagram2 };
132900
133018
  }, "loader");
132901
133019
  var pie = {
@@ -132908,7 +133026,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
132908
133026
  return /^\s*quadrantChart/.test(txt);
132909
133027
  }, "detector");
132910
133028
  var loader9 = /* @__PURE__ */ __name(async () => {
132911
- const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-DVfUAm25.js");
133029
+ const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-C_QHaemj.js");
132912
133030
  return { id: id9, diagram: diagram2 };
132913
133031
  }, "loader");
132914
133032
  var plugin7 = {
@@ -132922,7 +133040,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
132922
133040
  return /^\s*xychart(-beta)?/.test(txt);
132923
133041
  }, "detector");
132924
133042
  var loader10 = /* @__PURE__ */ __name(async () => {
132925
- const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-B8xp3EP5.js");
133043
+ const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-CAkP7cKw.js");
132926
133044
  return { id: id10, diagram: diagram2 };
132927
133045
  }, "loader");
132928
133046
  var plugin8 = {
@@ -132936,7 +133054,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
132936
133054
  return /^\s*requirement(Diagram)?/.test(txt);
132937
133055
  }, "detector");
132938
133056
  var loader11 = /* @__PURE__ */ __name(async () => {
132939
- const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-CQfWrrP_.js");
133057
+ const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-BSt0bNXX.js");
132940
133058
  return { id: id11, diagram: diagram2 };
132941
133059
  }, "loader");
132942
133060
  var plugin9 = {
@@ -132950,7 +133068,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
132950
133068
  return /^\s*sequenceDiagram/.test(txt);
132951
133069
  }, "detector");
132952
133070
  var loader12 = /* @__PURE__ */ __name(async () => {
132953
- const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-_VMzymo9.js");
133071
+ const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-DdfWdBp2.js");
132954
133072
  return { id: id12, diagram: diagram2 };
132955
133073
  }, "loader");
132956
133074
  var plugin10 = {
@@ -132967,7 +133085,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
132967
133085
  return /^\s*classDiagram/.test(txt);
132968
133086
  }, "detector");
132969
133087
  var loader13 = /* @__PURE__ */ __name(async () => {
132970
- const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-B7uMu4wG.js");
133088
+ const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-i_tSGvo3.js");
132971
133089
  return { id: id13, diagram: diagram2 };
132972
133090
  }, "loader");
132973
133091
  var plugin11 = {
@@ -132984,7 +133102,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
132984
133102
  return /^\s*classDiagram-v2/.test(txt);
132985
133103
  }, "detector");
132986
133104
  var loader14 = /* @__PURE__ */ __name(async () => {
132987
- const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-B7uMu4wG.js");
133105
+ const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-i_tSGvo3.js");
132988
133106
  return { id: id14, diagram: diagram2 };
132989
133107
  }, "loader");
132990
133108
  var plugin12 = {
@@ -133001,7 +133119,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
133001
133119
  return /^\s*stateDiagram/.test(txt);
133002
133120
  }, "detector");
133003
133121
  var loader15 = /* @__PURE__ */ __name(async () => {
133004
- const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-P9tJlZ70.js");
133122
+ const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-BD7Oj-hn.js");
133005
133123
  return { id: id15, diagram: diagram2 };
133006
133124
  }, "loader");
133007
133125
  var plugin13 = {
@@ -133021,7 +133139,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
133021
133139
  return false;
133022
133140
  }, "detector");
133023
133141
  var loader16 = /* @__PURE__ */ __name(async () => {
133024
- const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-Cb6P-c6h.js");
133142
+ const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-e4PXqg0B.js");
133025
133143
  return { id: id16, diagram: diagram2 };
133026
133144
  }, "loader");
133027
133145
  var plugin14 = {
@@ -133035,7 +133153,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
133035
133153
  return /^\s*journey/.test(txt);
133036
133154
  }, "detector");
133037
133155
  var loader17 = /* @__PURE__ */ __name(async () => {
133038
- const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-2_BMX1ei.js");
133156
+ const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-DpIqL8B7.js");
133039
133157
  return { id: id17, diagram: diagram2 };
133040
133158
  }, "loader");
133041
133159
  var plugin15 = {
@@ -133102,7 +133220,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
133102
133220
  return false;
133103
133221
  }, "detector");
133104
133222
  var loader18 = /* @__PURE__ */ __name(async () => {
133105
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DkHr76XI.js");
133223
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-BkuGyDjs.js");
133106
133224
  return { id: id18, diagram: diagram2 };
133107
133225
  }, "loader");
133108
133226
  var plugin16 = {
@@ -133116,7 +133234,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
133116
133234
  return /^\s*timeline/.test(txt);
133117
133235
  }, "detector");
133118
133236
  var loader19 = /* @__PURE__ */ __name(async () => {
133119
- const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-tuTHzmXv.js");
133237
+ const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-f7G2avSH.js");
133120
133238
  return { id: id19, diagram: diagram2 };
133121
133239
  }, "loader");
133122
133240
  var plugin17 = {
@@ -133130,7 +133248,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
133130
133248
  return /^\s*mindmap/.test(txt);
133131
133249
  }, "detector");
133132
133250
  var loader20 = /* @__PURE__ */ __name(async () => {
133133
- const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-BbNEUTwc.js");
133251
+ const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-EvNNmlYT.js");
133134
133252
  return { id: id20, diagram: diagram2 };
133135
133253
  }, "loader");
133136
133254
  var plugin18 = {
@@ -133144,7 +133262,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
133144
133262
  return /^\s*kanban/.test(txt);
133145
133263
  }, "detector");
133146
133264
  var loader21 = /* @__PURE__ */ __name(async () => {
133147
- const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-YMu0hChh.js");
133265
+ const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-DX4-cLBH.js");
133148
133266
  return { id: id21, diagram: diagram2 };
133149
133267
  }, "loader");
133150
133268
  var plugin19 = {
@@ -133158,7 +133276,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
133158
133276
  return /^\s*sankey(-beta)?/.test(txt);
133159
133277
  }, "detector");
133160
133278
  var loader22 = /* @__PURE__ */ __name(async () => {
133161
- const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-BW9xc6Gi.js");
133279
+ const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-C7SL1Bn9.js");
133162
133280
  return { id: id22, diagram: diagram2 };
133163
133281
  }, "loader");
133164
133282
  var plugin20 = {
@@ -133172,7 +133290,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
133172
133290
  return /^\s*packet(-beta)?/.test(txt);
133173
133291
  }, "detector");
133174
133292
  var loader23 = /* @__PURE__ */ __name(async () => {
133175
- const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-CHWLN67z.js");
133293
+ const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-DjK_qPmk.js");
133176
133294
  return { id: id23, diagram: diagram2 };
133177
133295
  }, "loader");
133178
133296
  var packet = {
@@ -133185,7 +133303,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
133185
133303
  return /^\s*radar-beta/.test(txt);
133186
133304
  }, "detector");
133187
133305
  var loader24 = /* @__PURE__ */ __name(async () => {
133188
- const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-UNhxZG5g.js");
133306
+ const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-BOdeY2WM.js");
133189
133307
  return { id: id24, diagram: diagram2 };
133190
133308
  }, "loader");
133191
133309
  var radar = {
@@ -133198,7 +133316,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
133198
133316
  return /^\s*block(-beta)?/.test(txt);
133199
133317
  }, "detector");
133200
133318
  var loader25 = /* @__PURE__ */ __name(async () => {
133201
- const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-CnVWNic_.js");
133319
+ const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-DpPRXIow.js");
133202
133320
  return { id: id25, diagram: diagram2 };
133203
133321
  }, "loader");
133204
133322
  var plugin21 = {
@@ -133212,7 +133330,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
133212
133330
  return /^\s*architecture/.test(txt);
133213
133331
  }, "detector");
133214
133332
  var loader26 = /* @__PURE__ */ __name(async () => {
133215
- const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-ClVOs7P1.js");
133333
+ const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-C_xYzE4-.js");
133216
133334
  return { id: id26, diagram: diagram2 };
133217
133335
  }, "loader");
133218
133336
  var architecture = {
@@ -133226,7 +133344,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
133226
133344
  return /^\s*treemap/.test(txt);
133227
133345
  }, "detector");
133228
133346
  var loader27 = /* @__PURE__ */ __name(async () => {
133229
- const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-BeMp8Xfu.js");
133347
+ const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-Cfylqj1t.js");
133230
133348
  return { id: id27, diagram: diagram2 };
133231
133349
  }, "loader");
133232
133350
  var treemap = {
@@ -148904,7 +149022,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
148904
149022
  var et2 = ({ className: e2, language: t2, style: o3, isIncomplete: n2, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e2), "data-incomplete": n2 || void 0, "data-language": t2, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o3 }, ...s2 });
148905
149023
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
148906
149024
  var ot2 = ({ language: e2 }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e2, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e2 }) });
148907
- var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-f4qauOuN.js").then((e2) => ({ default: e2.HighlightedCodeBlockBody }))), rt = ({ code: e2, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
149025
+ var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-DrUth0S5.js").then((e2) => ({ default: e2.HighlightedCodeBlockBody }))), rt = ({ code: e2, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
148908
149026
  let i2 = reactExports.useMemo(() => e2.replace(cn, ""), [e2]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
148909
149027
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
148910
149028
  return jsxRuntimeExports.jsx(Se.Provider, { value: { code: e2 }, children: jsxRuntimeExports.jsxs(et2, { isIncomplete: s2, language: t2, children: [jsxRuntimeExports.jsx(ot2, { 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, { className: o3, language: t2, result: c2, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o3, code: i2, language: t2, raw: c2, ...r2 }) })] }) });
@@ -149226,7 +149344,7 @@ var Dt = ({ children: e2, className: t2, onDownload: o3, onError: n2 }) => {
149226
149344
  }, []), jsxRuntimeExports.jsxs("div", { className: "relative", ref: i2, children: [jsxRuntimeExports.jsx("button", { className: f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", t2), disabled: c2, onClick: () => r2(!s2), title: "Download table", type: "button", children: e2 != null ? e2 : jsxRuntimeExports.jsx(Z, { 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] });
149227
149345
  };
149228
149346
  var Vt = ({ children: e2, className: t2, showControls: o3, ...n2 }) => jsxRuntimeExports.jsxs("div", { className: "my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2", "data-streamdown": "table-wrapper", children: [o3 ? jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end gap-1", children: [jsxRuntimeExports.jsx(Ht, {}), jsxRuntimeExports.jsx(Dt, {})] }) : null, jsxRuntimeExports.jsx("div", { className: "border-collapse overflow-x-auto overscroll-y-auto rounded-md border border-border bg-background", children: jsxRuntimeExports.jsx("table", { className: f("w-full divide-y divide-border", t2), "data-streamdown": "table", ...n2, children: e2 }) })] });
149229
- var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-nj6kJNsf.js").then((e2) => ({ default: e2.Mermaid }))), Kn = /language-([^\s]+)/;
149347
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-dDSIn_hx.js").then((e2) => ({ default: e2.Mermaid }))), Kn = /language-([^\s]+)/;
149230
149348
  function ke(e2, t2) {
149231
149349
  if (!(e2 != null && e2.position || t2 != null && t2.position)) return true;
149232
149350
  if (!(e2 != null && e2.position && (t2 != null && t2.position))) return false;
@@ -149868,7 +149986,9 @@ function FileTabBar({
149868
149986
  canGoBack,
149869
149987
  canGoForward,
149870
149988
  isDirty: isDirtyFn,
149871
- actions
149989
+ actions,
149990
+ treeCollapsed,
149991
+ onToggleTree
149872
149992
  }) {
149873
149993
  const activeRef = reactExports.useRef(null);
149874
149994
  const containerRef = reactExports.useRef(null);
@@ -149926,7 +150046,22 @@ function FileTabBar({
149926
150046
  }, []);
149927
150047
  if (tabs.length === 0) return null;
149928
150048
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
149929
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-8 shrink-0 items-center border-b border-border/50 bg-background", children: [
150049
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "@container flex h-9 shrink-0 items-center border-b border-border/50 bg-background", children: [
150050
+ onToggleTree && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150051
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
150052
+ "button",
150053
+ {
150054
+ type: "button",
150055
+ onClick: onToggleTree,
150056
+ className: "ml-1 hidden size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors @[16rem]:inline-flex",
150057
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-3.5" })
150058
+ }
150059
+ ) }),
150060
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { side: "bottom", className: "text-xs", children: [
150061
+ treeCollapsed ? "Show" : "Hide",
150062
+ " File Explorer"
150063
+ ] })
150064
+ ] }),
149930
150065
  (onGoBack || onGoForward) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex shrink-0 items-center gap-0.5 px-1", children: [
149931
150066
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
149932
150067
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -150135,28 +150270,9 @@ function renderMarkdown(content2) {
150135
150270
  }
150136
150271
  );
150137
150272
  }
150138
- function FileTreeToolbar({
150139
- onQuickOpen,
150140
- onSearchFiles,
150141
- treeCollapsed,
150142
- onToggleTree
150143
- }) {
150144
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-8 shrink-0 items-center gap-0.5 border-b border-border/50 px-1.5", children: [
150145
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150146
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
150147
- "button",
150148
- {
150149
- type: "button",
150150
- onClick: onToggleTree,
150151
- className: "inline-flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",
150152
- children: treeCollapsed ? /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-3.5" })
150153
- }
150154
- ) }),
150155
- /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { side: "bottom", className: "text-xs", children: [
150156
- treeCollapsed ? "Show" : "Hide",
150157
- " File Explorer"
150158
- ] })
150159
- ] }),
150273
+ function FileTreeToolbar({ onQuickOpen, onSearchFiles }) {
150274
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-9 shrink-0 items-center gap-0.5 border-b border-border/50 pl-3 pr-1.5", children: [
150275
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Files" }),
150160
150276
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1" }),
150161
150277
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150162
150278
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -150718,15 +150834,7 @@ function CodeBrowserView({
150718
150834
  saveFileTreeCollapsed(workspaceId, collapsed);
150719
150835
  },
150720
150836
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-col overflow-hidden border-r border-border", children: [
150721
- /* @__PURE__ */ jsxRuntimeExports.jsx(
150722
- FileTreeToolbar,
150723
- {
150724
- onQuickOpen,
150725
- onSearchFiles,
150726
- treeCollapsed,
150727
- onToggleTree: toggleTree
150728
- }
150729
- ),
150837
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FileTreeToolbar, { onQuickOpen, onSearchFiles }),
150730
150838
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
150731
150839
  FileBrowser,
150732
150840
  {
@@ -150749,19 +150857,7 @@ function CodeBrowserView({
150749
150857
  }
150750
150858
  ) }),
150751
150859
  /* @__PURE__ */ jsxRuntimeExports.jsx(Yt$1, { id: "file-viewer", minSize: "20%", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex h-full flex-col overflow-hidden", children: [
150752
- treeCollapsed && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150753
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
150754
- "button",
150755
- {
150756
- type: "button",
150757
- onClick: toggleTree,
150758
- className: "absolute left-1 top-0 z-10 inline-flex h-9 w-7 items-center justify-center text-muted-foreground hover:text-foreground transition-colors",
150759
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-4" })
150760
- }
150761
- ) }),
150762
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", className: "text-xs", children: "Show File Explorer" })
150763
- ] }),
150764
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: treeCollapsed ? "[&>div]:pl-7" : "", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
150860
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
150765
150861
  FileTabBar,
150766
150862
  {
150767
150863
  workspacePath,
@@ -150774,6 +150870,8 @@ function CodeBrowserView({
150774
150870
  canGoBack: editorHistory.canGoBack,
150775
150871
  canGoForward: editorHistory.canGoForward,
150776
150872
  isDirty: tabState.isDirty,
150873
+ treeCollapsed,
150874
+ onToggleTree: toggleTree,
150777
150875
  actions: isMarkdown ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-0.5", children: [
150778
150876
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150779
150877
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -150801,7 +150899,7 @@ function CodeBrowserView({
150801
150899
  ] })
150802
150900
  ] }) : void 0
150803
150901
  }
150804
- ) }),
150902
+ ),
150805
150903
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-0 flex-1", children: viewFilePath ? /* @__PURE__ */ jsxRuntimeExports.jsx(
150806
150904
  FileViewer,
150807
150905
  {
@@ -151346,7 +151444,7 @@ const closeTabRef$1 = {
151346
151444
  };
151347
151445
  const RightHeaderActions$1 = React$1.memo(function RightHeaderActions2(props) {
151348
151446
  const groupId = props.group.id;
151349
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [
151447
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full items-center", children: [
151350
151448
  /* @__PURE__ */ jsxRuntimeExports.jsx(
151351
151449
  "button",
151352
151450
  {
@@ -163932,7 +164030,7 @@ const closeTabRef = {
163932
164030
  const RightHeaderActions = React$1.memo(function RightHeaderActions22(props) {
163933
164031
  const { onAdd: onAdd2, onSplit } = addTabRef.current;
163934
164032
  const groupId = props.group.id;
163935
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [
164033
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full items-center", children: [
163936
164034
  /* @__PURE__ */ jsxRuntimeExports.jsx(
163937
164035
  "button",
163938
164036
  {
@@ -164266,7 +164364,7 @@ const PANEL_SHORTCUTS = {
164266
164364
  browser: "⌘B"
164267
164365
  };
164268
164366
  const DockviewTerminalContainer = reactExports.lazy(
164269
- () => import("./DockviewTerminalContainer-B7m50Lcc.js").then((m2) => ({
164367
+ () => import("./DockviewTerminalContainer-DSwflA0D.js").then((m2) => ({
164270
164368
  default: m2.DockviewTerminalContainer
164271
164369
  }))
164272
164370
  );
@@ -164382,17 +164480,7 @@ function BadgeTab(props) {
164382
164480
  children: [
164383
164481
  Icon2 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Icon2, { className: "size-4 shrink-0" }) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-block size-4 shrink-0", "aria-hidden": true }),
164384
164482
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: title }),
164385
- /* @__PURE__ */ jsxRuntimeExports.jsx(
164386
- "span",
164387
- {
164388
- "aria-hidden": !hasBadge,
164389
- className: cn$2(
164390
- "inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-blue-500/20 px-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 transition-opacity",
164391
- hasBadge ? "opacity-100" : "opacity-0"
164392
- ),
164393
- children: hasBadge ? badge : 0
164394
- }
164395
- )
164483
+ hasBadge && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-blue-500/20 px-1.5 text-xs font-medium text-blue-600 dark:text-blue-400", children: badge })
164396
164484
  ]
164397
164485
  }
164398
164486
  ) });
@@ -165432,7 +165520,7 @@ function CronjobCard({
165432
165520
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
165433
165521
  "div",
165434
165522
  {
165435
- className: `flex flex-col gap-2 rounded-lg border border-border/50 bg-card p-4 transition-colors hover:border-border ${!job.enabled ? "opacity-60" : ""}`,
165523
+ className: `flex flex-col gap-2 rounded-lg border-2 border-border/50 p-4 transition-colors hover:border-border ${!job.enabled ? "opacity-60" : ""}`,
165436
165524
  children: [
165437
165525
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
165438
165526
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -165978,7 +166066,7 @@ function TaskCard({
165978
166066
  setActing(false);
165979
166067
  }
165980
166068
  }, [task.id, onAction]);
165981
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 rounded-lg border border-border/50 bg-card p-4 transition-colors hover:border-border", children: [
166069
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 rounded-lg border-2 border-border/50 p-4 transition-colors hover:border-border", children: [
165982
166070
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
165983
166071
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "line-clamp-2 min-w-0 flex-1 text-sm font-medium text-foreground", children: task.prompt }),
165984
166072
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -167524,10 +167612,10 @@ function extractWorkspaceId(pathname) {
167524
167612
  if (!encoded) return null;
167525
167613
  return decodeURIComponent(encoded);
167526
167614
  }
167615
+ const INITIAL_HISTORY = { stack: [], cursor: -1 };
167527
167616
  function useNavigationHistory(routerNavigate, capabilities2) {
167528
167617
  const pathname = useRouterState({ select: (s2) => s2.location.pathname });
167529
- const stackRef = reactExports.useRef([]);
167530
- const cursorRef = reactExports.useRef(-1);
167618
+ const [history2, setHistory] = reactExports.useState(INITIAL_HISTORY);
167531
167619
  const navigatingRef = reactExports.useRef(false);
167532
167620
  reactExports.useEffect(() => {
167533
167621
  const wsId = extractWorkspaceId(pathname);
@@ -167536,27 +167624,43 @@ function useNavigationHistory(routerNavigate, capabilities2) {
167536
167624
  navigatingRef.current = false;
167537
167625
  return;
167538
167626
  }
167539
- const stack = stackRef.current;
167540
- const cursor = cursorRef.current;
167541
- if (cursor >= 0 && stack[cursor] === wsId) return;
167542
- stackRef.current = [...stack.slice(0, cursor + 1), wsId];
167543
- cursorRef.current = stackRef.current.length - 1;
167627
+ setHistory((prev2) => {
167628
+ if (prev2.cursor >= 0 && prev2.stack[prev2.cursor] === wsId) return prev2;
167629
+ const stack = [...prev2.stack.slice(0, prev2.cursor + 1), wsId];
167630
+ return { stack, cursor: stack.length - 1 };
167631
+ });
167544
167632
  }, [pathname]);
167545
167633
  const goBack = reactExports.useCallback(() => {
167546
- if (cursorRef.current <= 0) return;
167547
- cursorRef.current -= 1;
167548
- navigatingRef.current = true;
167549
- const wsId = stackRef.current[cursorRef.current];
167550
- const href = capabilities2.getWorkspaceHref?.(wsId);
167551
- if (href) routerNavigate(href);
167634
+ let didMove = false;
167635
+ let targetWsId;
167636
+ setHistory((prev2) => {
167637
+ if (prev2.cursor <= 0) return prev2;
167638
+ didMove = true;
167639
+ const cursor = prev2.cursor - 1;
167640
+ targetWsId = prev2.stack[cursor];
167641
+ return { stack: prev2.stack, cursor };
167642
+ });
167643
+ if (didMove && targetWsId) {
167644
+ navigatingRef.current = true;
167645
+ const href = capabilities2.getWorkspaceHref?.(targetWsId);
167646
+ if (href) routerNavigate(href);
167647
+ }
167552
167648
  }, [routerNavigate, capabilities2]);
167553
167649
  const goForward = reactExports.useCallback(() => {
167554
- if (cursorRef.current >= stackRef.current.length - 1) return;
167555
- cursorRef.current += 1;
167556
- navigatingRef.current = true;
167557
- const wsId = stackRef.current[cursorRef.current];
167558
- const href = capabilities2.getWorkspaceHref?.(wsId);
167559
- if (href) routerNavigate(href);
167650
+ let didMove = false;
167651
+ let targetWsId;
167652
+ setHistory((prev2) => {
167653
+ if (prev2.cursor >= prev2.stack.length - 1) return prev2;
167654
+ didMove = true;
167655
+ const cursor = prev2.cursor + 1;
167656
+ targetWsId = prev2.stack[cursor];
167657
+ return { stack: prev2.stack, cursor };
167658
+ });
167659
+ if (didMove && targetWsId) {
167660
+ navigatingRef.current = true;
167661
+ const href = capabilities2.getWorkspaceHref?.(targetWsId);
167662
+ if (href) routerNavigate(href);
167663
+ }
167560
167664
  }, [routerNavigate, capabilities2]);
167561
167665
  reactExports.useEffect(() => {
167562
167666
  const handler = (e2) => {
@@ -167570,6 +167674,12 @@ function useNavigationHistory(routerNavigate, capabilities2) {
167570
167674
  window.addEventListener("keydown", handler, true);
167571
167675
  return () => window.removeEventListener("keydown", handler, true);
167572
167676
  }, [goBack, goForward]);
167677
+ return {
167678
+ goBack,
167679
+ goForward,
167680
+ canGoBack: history2.cursor > 0,
167681
+ canGoForward: history2.cursor >= 0 && history2.cursor < history2.stack.length - 1
167682
+ };
167573
167683
  }
167574
167684
  const ZOOM_LEVEL_KEY = "band:zoom-level";
167575
167685
  const DEFAULT_ZOOM = 1;
@@ -167674,14 +167784,14 @@ const Route$8 = createRootRoute({
167674
167784
  { title: "Band" },
167675
167785
  { name: "apple-mobile-web-app-capable", content: "yes" },
167676
167786
  { name: "apple-mobile-web-app-status-bar-style", content: "black-translucent" },
167677
- { name: "theme-color", content: "#181818" }
167787
+ { name: "theme-color", content: "#1e1e1e" }
167678
167788
  ]
167679
167789
  }),
167680
167790
  component: RootLayout,
167681
167791
  notFoundComponent: NotFound
167682
167792
  });
167683
167793
  function NotFound() {
167684
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-dvh flex-col items-center justify-center gap-4 p-8 text-center", children: [
167794
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-4 p-8 text-center", children: [
167685
167795
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-4xl font-bold", children: "404" }),
167686
167796
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: "Page not found" }),
167687
167797
  /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/", className: "text-sm text-primary underline", children: "Back to dashboard" })
@@ -167772,7 +167882,7 @@ function AppShell() {
167772
167882
  };
167773
167883
  }, [router2]);
167774
167884
  const routerNavigate = reactExports.useCallback((href) => router2.navigate({ to: href }), [router2]);
167775
- useNavigationHistory(routerNavigate, capabilities);
167885
+ const navigationHistory = useNavigationHistory(routerNavigate, capabilities);
167776
167886
  useZoom();
167777
167887
  const savedWidth = loadSidebarWidth();
167778
167888
  const defaultLayout = savedWidth ? { sidebar: savedWidth, main: 100 - savedWidth } : void 0;
@@ -167838,8 +167948,8 @@ function AppShell() {
167838
167948
  if (!useDesktopLayout) {
167839
167949
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {});
167840
167950
  }
167841
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarOverflowProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col h-dvh w-full overflow-hidden bg-background text-foreground", children: [
167842
- isDesktop && /* @__PURE__ */ jsxRuntimeExports.jsx(
167951
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarOverflowProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col h-full w-full overflow-hidden bg-background text-foreground", children: [
167952
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
167843
167953
  DesktopTitleBar,
167844
167954
  {
167845
167955
  onToggleSidebar: toggleSidebar,
@@ -167849,7 +167959,11 @@ function AppShell() {
167849
167959
  onCopyPath: activeWorkspaceId ? handleCopyPath : void 0,
167850
167960
  panelItems: activeWorkspaceId ? panelItems : void 0,
167851
167961
  hiddenPanels: activeWorkspaceId ? hiddenPanels : void 0,
167852
- onTogglePanelVisibility: activeWorkspaceId ? handleTogglePanelVisibility : void 0
167962
+ onTogglePanelVisibility: activeWorkspaceId ? handleTogglePanelVisibility : void 0,
167963
+ onGoBack: navigationHistory.goBack,
167964
+ onGoForward: navigationHistory.goForward,
167965
+ canGoBack: navigationHistory.canGoBack,
167966
+ canGoForward: navigationHistory.canGoForward
167853
167967
  }
167854
167968
  ),
167855
167969
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -167909,11 +168023,11 @@ function RootLayout() {
167909
168023
  ] })
167910
168024
  ] });
167911
168025
  }
167912
- const $$splitComponentImporter$7 = () => import("./index-ClnAaUnc.js");
168026
+ const $$splitComponentImporter$7 = () => import("./index-Dn5q9HW4.js");
167913
168027
  const Route$7 = createFileRoute("/")({
167914
168028
  component: lazyRouteComponent($$splitComponentImporter$7, "component")
167915
168029
  });
167916
- const $$splitComponentImporter$6 = () => import("./workspace._workspaceId-Ca5XltsV.js");
168030
+ const $$splitComponentImporter$6 = () => import("./workspace._workspaceId-CR4TOS5A.js");
167917
168031
  const Route$6 = createFileRoute("/workspace/$workspaceId")({
167918
168032
  component: lazyRouteComponent($$splitComponentImporter$6, "component")
167919
168033
  });
@@ -167932,11 +168046,11 @@ const FindInFileContext = reactExports.createContext({
167932
168046
  function useFindInFileContext() {
167933
168047
  return reactExports.useContext(FindInFileContext);
167934
168048
  }
167935
- const $$splitComponentImporter$5 = () => import("./workspace._workspaceId.index-C2U_2sVz.js");
168049
+ const $$splitComponentImporter$5 = () => import("./workspace._workspaceId.index-alkhfxK3.js");
167936
168050
  const Route$5 = createFileRoute("/workspace/$workspaceId/")({
167937
168051
  component: lazyRouteComponent($$splitComponentImporter$5, "component")
167938
168052
  });
167939
- const $$splitComponentImporter$4 = () => import("./workspace._workspaceId.terminal-i2FfY7JG.js");
168053
+ const $$splitComponentImporter$4 = () => import("./workspace._workspaceId.terminal-BvpiNe_s.js");
167940
168054
  const Route$4 = createFileRoute("/workspace/$workspaceId/terminal")({
167941
168055
  component: lazyRouteComponent($$splitComponentImporter$4, "component")
167942
168056
  });
@@ -167944,15 +168058,15 @@ const $$splitComponentImporter$3 = () => import("./workspace._workspaceId.code-C
167944
168058
  const Route$3 = createFileRoute("/workspace/$workspaceId/code")({
167945
168059
  component: lazyRouteComponent($$splitComponentImporter$3, "component")
167946
168060
  });
167947
- const $$splitComponentImporter$2 = () => import("./workspace._workspaceId.changes-z2xCX4Ct.js");
168061
+ const $$splitComponentImporter$2 = () => import("./workspace._workspaceId.changes-B7PK-I72.js");
167948
168062
  const Route$2 = createFileRoute("/workspace/$workspaceId/changes")({
167949
168063
  component: lazyRouteComponent($$splitComponentImporter$2, "component")
167950
168064
  });
167951
- const $$splitComponentImporter$1 = () => import("./workspace._workspaceId.code.index-DTziHng0.js");
168065
+ const $$splitComponentImporter$1 = () => import("./workspace._workspaceId.code.index-CLRAQ6Pf.js");
167952
168066
  const Route$1 = createFileRoute("/workspace/$workspaceId/code/")({
167953
168067
  component: lazyRouteComponent($$splitComponentImporter$1, "component")
167954
168068
  });
167955
- const $$splitComponentImporter = () => import("./workspace._workspaceId.code._-DQTK_1av.js");
168069
+ const $$splitComponentImporter = () => import("./workspace._workspaceId.code._-CA9dP_-G.js");
167956
168070
  const Route2 = createFileRoute("/workspace/$workspaceId/code/$")({
167957
168071
  component: lazyRouteComponent($$splitComponentImporter, "component")
167958
168072
  });