@band-app/server 0.5.6 → 0.7.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-D5LSr-9J.js +2 -0
  3. package/dist/client/assets/{TerminalPanel-B_30SH7w.js → TerminalPanel-BbdfGSW4.js} +1 -1
  4. package/dist/client/assets/{_basePickBy-DS1DdKpI.js → _basePickBy-BziZv3q9.js} +1 -1
  5. package/dist/client/assets/{_baseUniq-CfquXO5o.js → _baseUniq-GojtfIPH.js} +1 -1
  6. package/dist/client/assets/{arc-BzAFHN3h.js → arc-igGjjsLf.js} +1 -1
  7. package/dist/client/assets/{architectureDiagram-VXUJARFQ-0gyHmaKw.js → architectureDiagram-VXUJARFQ-B5bcMjKF.js} +1 -1
  8. package/dist/client/assets/{blockDiagram-VD42YOAC-BcU0ZZZI.js → blockDiagram-VD42YOAC-BPk_-z7Q.js} +1 -1
  9. package/dist/client/assets/{c4Diagram-YG6GDRKO-Ciwoec2M.js → c4Diagram-YG6GDRKO-rNvGlTMC.js} +1 -1
  10. package/dist/client/assets/channel-Ck8E_oOc.js +1 -0
  11. package/dist/client/assets/{chunk-4BX2VUAB-W_tkduvw.js → chunk-4BX2VUAB-DfJHc-Yj.js} +1 -1
  12. package/dist/client/assets/{chunk-55IACEB6-DJCn0BUX.js → chunk-55IACEB6-lcxPT111.js} +1 -1
  13. package/dist/client/assets/{chunk-B4BG7PRW-OLwhCa5k.js → chunk-B4BG7PRW-BNbHxfCm.js} +1 -1
  14. package/dist/client/assets/{chunk-DI55MBZ5-MFZ5-oPD.js → chunk-DI55MBZ5-DMhMapdV.js} +1 -1
  15. package/dist/client/assets/{chunk-FMBD7UC4-BDlrNnpZ.js → chunk-FMBD7UC4-CTPuBKXM.js} +1 -1
  16. package/dist/client/assets/{chunk-QN33PNHL-CjwPbo5G.js → chunk-QN33PNHL-DWCLrzVK.js} +1 -1
  17. package/dist/client/assets/{chunk-QZHKN3VN-3lGRploy.js → chunk-QZHKN3VN-B-2muY12.js} +1 -1
  18. package/dist/client/assets/{chunk-TZMSLE5B-Dez84DVY.js → chunk-TZMSLE5B-CYwHRJAm.js} +1 -1
  19. package/dist/client/assets/classDiagram-2ON5EDUG-C6Q6Gof1.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-WZHVMYZB-C6Q6Gof1.js +1 -0
  21. package/dist/client/assets/clone-eBd5Zk6t.js +1 -0
  22. package/dist/client/assets/{cose-bilkent-S5V4N54A-olv_le13.js → cose-bilkent-S5V4N54A-BhG4Bwqg.js} +1 -1
  23. package/dist/client/assets/{dagre-6UL2VRFP-DSasPOdo.js → dagre-6UL2VRFP-BNwV9AQU.js} +1 -1
  24. package/dist/client/assets/{diagram-PSM6KHXK-ebd2t3Dh.js → diagram-PSM6KHXK-BECLhoiz.js} +1 -1
  25. package/dist/client/assets/{diagram-QEK2KX5R-DETGbCmh.js → diagram-QEK2KX5R-DKeTOb2O.js} +1 -1
  26. package/dist/client/assets/{diagram-S2PKOQOG-Duif0gCe.js → diagram-S2PKOQOG-MlQ3aWgO.js} +1 -1
  27. package/dist/client/assets/{erDiagram-Q2GNP2WA-7NKTniGi.js → erDiagram-Q2GNP2WA-CdFxFJL2.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-B29HpwMu.js → flowDiagram-NV44I4VS-Cx_Py0Y6.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-Do43fY0t.js → ganttDiagram-JELNMOA3-Ibl6Ok1u.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-BernJnLk.js → gitGraphDiagram-V2S2FVAM-CCOKgIVW.js} +1 -1
  31. package/dist/client/assets/{graph-Cj575nQq.js → graph-CNVRXmMC.js} +1 -1
  32. package/dist/client/assets/{highlighted-body-B3W2YXNL-WhJuPudb.js → highlighted-body-B3W2YXNL-BtGVJGbm.js} +1 -1
  33. package/dist/client/assets/{index-D4KvM7Nf.js → index-B193FOic.js} +1 -1
  34. package/dist/client/assets/index-B6ba6lp-.js +1 -0
  35. package/dist/client/assets/{index-BuCOraAN.js → index-BPIJMneu.js} +1 -1
  36. package/dist/client/assets/{index-Dgv8mF9A.js → index-BYQ5aCti.js} +1 -1
  37. package/dist/client/assets/{index-yYDoQlcT.js → index-Bc-azzme.js} +1 -1
  38. package/dist/client/assets/{index-DlCjHJGt.js → index-BgM7IKgV.js} +1 -1
  39. package/dist/client/assets/{index-BTx3LYAO.js → index-BgWr8ZLw.js} +1 -1
  40. package/dist/client/assets/{index-B8ZpCpou.js → index-Bh5VGFBs.js} +1 -1
  41. package/dist/client/assets/{index-dscSHXn-.js → index-CCO3k6ms.js} +1 -1
  42. package/dist/client/assets/{index-BMY-nliE.js → index-CJw9xTFD.js} +1 -1
  43. package/dist/client/assets/{index-DGMdHUd-.js → index-ClqNiqIT.js} +1 -1
  44. package/dist/client/assets/{index-DeMltHzV.js → index-D559Z80V.js} +1 -1
  45. package/dist/client/assets/{index-DziJ_w_s.js → index-DJJSB6kr.js} +1 -1
  46. package/dist/client/assets/{index-CXlGPE4F.js → index-HP2pymIn.js} +1 -1
  47. package/dist/client/assets/{index-DNJro5ce.js → index-TLij_dqY.js} +1 -1
  48. package/dist/client/assets/{index-CUcxKuUy.js → index-eUzKORIX.js} +1 -1
  49. package/dist/client/assets/{index-xZP1WFvU.js → index-kPQu0v_r.js} +1 -1
  50. package/dist/client/assets/{index-DOlTzcT9.js → index-pW_vp4Sz.js} +1 -1
  51. package/dist/client/assets/{infoDiagram-HS3SLOUP-CwWuIWke.js → infoDiagram-HS3SLOUP-D08GDLLW.js} +1 -1
  52. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-CwAt4sg1.js → journeyDiagram-XKPGCS4Q-CXn3mxfD.js} +1 -1
  53. package/dist/client/assets/{kanban-definition-3W4ZIXB7-IyDhCRuM.js → kanban-definition-3W4ZIXB7-CcSZuyDt.js} +1 -1
  54. package/dist/client/assets/{layout-Cu0JMbW5.js → layout-2wgfgK0z.js} +1 -1
  55. package/dist/client/assets/{linear-DZDqd87L.js → linear-QIcNPfxd.js} +1 -1
  56. package/dist/client/assets/{main-Cv7pKZy_.js → main-BHzKkPch.js} +218 -218
  57. package/dist/client/assets/main-DJFWkBOi.css +1 -0
  58. package/dist/client/assets/{mindmap-definition-VGOIOE7T-Dth1CqLW.js → mindmap-definition-VGOIOE7T-DpStnB2O.js} +1 -1
  59. package/dist/client/assets/{pieDiagram-ADFJNKIX-CF2YDYMu.js → pieDiagram-ADFJNKIX-rzFZOwDj.js} +1 -1
  60. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-nxHcYBhT.js → quadrantDiagram-AYHSOK5B-3xBYeAWj.js} +1 -1
  61. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DYuaF4G9.js → requirementDiagram-UZGBJVZJ-BJ7G5rvH.js} +1 -1
  62. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-DCeOMpHq.js → sankeyDiagram-TZEHDZUN-wW85Osfk.js} +1 -1
  63. package/dist/client/assets/{sequenceDiagram-WL72ISMW-D3ZzpnOf.js → sequenceDiagram-WL72ISMW-CpHr7-Ie.js} +1 -1
  64. package/dist/client/assets/{stateDiagram-FKZM4ZOC-CephZuT8.js → stateDiagram-FKZM4ZOC-EPEfW1fW.js} +1 -1
  65. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D7pTZGXc.js +1 -0
  66. package/dist/client/assets/{timeline-definition-IT6M3QCI-CMR_brz2.js → timeline-definition-IT6M3QCI-DfZZ7ocE.js} +1 -1
  67. package/dist/client/assets/{treemap-GDKQZRPO-Dr2RtG6j.js → treemap-GDKQZRPO-BstahH9t.js} +1 -1
  68. package/dist/client/assets/{useSessionListContext-Deo93kBU.js → useSessionListContext-BrRFiQ2U.js} +1 -1
  69. package/dist/client/assets/{workspace._workspaceId-B6AmUJBH.js → workspace._workspaceId-Dtznmnt6.js} +1 -1
  70. package/dist/client/assets/{workspace._workspaceId.changes-DRRihouM.js → workspace._workspaceId.changes-Bny5FowN.js} +1 -1
  71. package/dist/client/assets/workspace._workspaceId.code-C4UWUUUj.js +1 -0
  72. package/dist/client/assets/{workspace._workspaceId.code._-C2W-zGSx.js → workspace._workspaceId.code._-BkkagAVv.js} +1 -1
  73. package/dist/client/assets/{workspace._workspaceId.code.index-D56jkXpA.js → workspace._workspaceId.code.index-yWgRm_ie.js} +1 -1
  74. package/dist/client/assets/{workspace._workspaceId.index-DVYXZuSd.js → workspace._workspaceId.index-LYKG8Zjm.js} +1 -1
  75. package/dist/client/assets/{workspace._workspaceId.terminal--TZaT08S.js → workspace._workspaceId.terminal-mv3brILY.js} +2 -2
  76. package/dist/client/assets/{xychartDiagram-PRI3JC2R-CQ1vfZE5.js → xychartDiagram-PRI3JC2R-DbiHDzrr.js} +1 -1
  77. package/dist/server/assets/{DockviewTerminalContainer-B7m50Lcc.js → DockviewTerminalContainer-Db_wkLqm.js} +3 -3
  78. package/dist/server/assets/{TerminalPanel-C2nFSkcn.js → TerminalPanel-ClczaJzh.js} +2 -2
  79. package/dist/server/assets/{_basePickBy-J3VjyO9D.js → _basePickBy-DJvmB1bR.js} +2 -2
  80. package/dist/server/assets/{_baseUniq-DlbIVh20.js → _baseUniq-CUkuvdrd.js} +1 -1
  81. package/dist/server/assets/{_tanstack-start-manifest_v-C9pSWi1i.js → _tanstack-start-manifest_v-BrA63W9v.js} +1 -1
  82. package/dist/server/assets/{arc-Ds6-Gtmo.js → arc-D7tpRkEi.js} +1 -1
  83. package/dist/server/assets/{architecture-7HQA4BMR-DT3MUSS5.js → architecture-7HQA4BMR-B4QVCJf2.js} +6 -6
  84. package/dist/server/assets/{architectureDiagram-VXUJARFQ-ClVOs7P1.js → architectureDiagram-VXUJARFQ-D9kGXK5k.js} +6 -6
  85. package/dist/server/assets/{blockDiagram-VD42YOAC-CnVWNic_.js → blockDiagram-VD42YOAC-D4qioj7T.js} +6 -6
  86. package/dist/server/assets/{c4Diagram-YG6GDRKO-D9aranD0.js → c4Diagram-YG6GDRKO-BPZ4vpZS.js} +2 -2
  87. package/dist/server/assets/{channel-DQjskrHf.js → channel-g17XXuP8.js} +1 -1
  88. package/dist/server/assets/{chunk-4BX2VUAB-BctuYILS.js → chunk-4BX2VUAB-KOOKfARG.js} +1 -1
  89. package/dist/server/assets/{chunk-55IACEB6-CxcgMpfR.js → chunk-55IACEB6-Nx5TLULR.js} +1 -1
  90. package/dist/server/assets/{chunk-B4BG7PRW-CfsNsYIg.js → chunk-B4BG7PRW-DLoBFDoW.js} +4 -4
  91. package/dist/server/assets/{chunk-DI55MBZ5-B6n-fRVB.js → chunk-DI55MBZ5-Di0RSJbS.js} +3 -3
  92. package/dist/server/assets/{chunk-FMBD7UC4-CvBepTeZ.js → chunk-FMBD7UC4-B772z4UT.js} +1 -1
  93. package/dist/server/assets/{chunk-QN33PNHL-DS5M3nQE.js → chunk-QN33PNHL-DrPmTiI4.js} +1 -1
  94. package/dist/server/assets/{chunk-QZHKN3VN-DCLb0fZ1.js → chunk-QZHKN3VN-Cg5-DxrE.js} +1 -1
  95. package/dist/server/assets/{chunk-TZMSLE5B-B-Uhio6_.js → chunk-TZMSLE5B-C-BexoZY.js} +1 -1
  96. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-B7uMu4wG.js → classDiagram-2ON5EDUG-DCAJOcrY.js} +5 -5
  97. package/dist/server/assets/{classDiagram-2ON5EDUG-B7uMu4wG.js → classDiagram-v2-WZHVMYZB-DCAJOcrY.js} +5 -5
  98. package/dist/server/assets/{clone-B7a1FujU.js → clone-MoYPVXz9.js} +1 -1
  99. package/dist/server/assets/{cose-bilkent-S5V4N54A-_7cffNle.js → cose-bilkent-S5V4N54A-CLRnyAoe.js} +1 -1
  100. package/dist/server/assets/{dagre-6UL2VRFP-Cefu204F.js → dagre-6UL2VRFP-h35DYUhj.js} +6 -6
  101. package/dist/server/assets/{diagram-PSM6KHXK-BeMp8Xfu.js → diagram-PSM6KHXK-Dl-1wWBO.js} +7 -7
  102. package/dist/server/assets/{diagram-QEK2KX5R-UNhxZG5g.js → diagram-QEK2KX5R-CT_9GKHb.js} +6 -6
  103. package/dist/server/assets/{diagram-S2PKOQOG-CHWLN67z.js → diagram-S2PKOQOG-C-Wz6wgo.js} +6 -6
  104. package/dist/server/assets/{erDiagram-Q2GNP2WA-9TUXBEEN.js → erDiagram-Q2GNP2WA-CK577Mto.js} +4 -4
  105. package/dist/server/assets/{flowDiagram-NV44I4VS-DkHr76XI.js → flowDiagram-NV44I4VS-FGtxEFhp.js} +5 -5
  106. package/dist/server/assets/{ganttDiagram-JELNMOA3-D62VSFN-.js → ganttDiagram-JELNMOA3-DAUHIdRM.js} +2 -2
  107. package/dist/server/assets/{gitGraph-G5XIXVHT-wAj_iVxo.js → gitGraph-G5XIXVHT-D-ECs7Lv.js} +6 -6
  108. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-Cq6NrkS2.js → gitGraphDiagram-V2S2FVAM-BoBut3cj.js} +7 -7
  109. package/dist/server/assets/{graph-BQR4IW-M.js → graph-Dyxu_4DG.js} +2 -2
  110. package/dist/server/assets/{highlighted-body-B3W2YXNL-f4qauOuN.js → highlighted-body-B3W2YXNL-CQiQABMj.js} +1 -1
  111. package/dist/server/assets/{index-DgI6m9w2.js → index-B81vrGna.js} +2 -2
  112. package/dist/server/assets/{index-BgRkMr0S.js → index-BEMoQBv1.js} +3 -3
  113. package/dist/server/assets/{index-B07RUisL.js → index-BEXzKtXX.js} +2 -2
  114. package/dist/server/assets/{index-Y-3cIxVF.js → index-BOB72PF1.js} +2 -2
  115. package/dist/server/assets/{index-oSZ-5UB6.js → index-BVBNSmFm.js} +2 -2
  116. package/dist/server/assets/{index-DXlyuzHk.js → index-Bdg-nkIi.js} +2 -2
  117. package/dist/server/assets/{index-CiQmjF-z.js → index-BewnJmdp.js} +2 -2
  118. package/dist/server/assets/{index-DGpgWNbR.js → index-C6elbWmN.js} +1 -1
  119. package/dist/server/assets/{index-ClnAaUnc.js → index-CXKXKZfF.js} +2 -2
  120. package/dist/server/assets/{index-DbtmJMHb.js → index-CYDdV_jY.js} +5 -5
  121. package/dist/server/assets/{index-BnaMl2Ta.js → index-C_g8VSbE.js} +2 -2
  122. package/dist/server/assets/{index-CFtz0N_G.js → index-CcXBjIgw.js} +3 -3
  123. package/dist/server/assets/{index-DZkn94Qw.js → index-DYKc3CTl.js} +2 -2
  124. package/dist/server/assets/{index-CZPx4FSZ.js → index-THiRUHDP.js} +4 -4
  125. package/dist/server/assets/{index-CGs_KUt6.js → index-j7NzRTu6.js} +2 -2
  126. package/dist/server/assets/{index-C-_PyKI8.js → index-xhWv6ALB.js} +5 -5
  127. package/dist/server/assets/{index-C70O-HGl.js → index-yeAPCrVk.js} +2 -2
  128. package/dist/server/assets/{index-OT8s82kA.js → index-z5OKgRXY.js} +2 -2
  129. package/dist/server/assets/{info-VBDWY6EO-DCfkIc0K.js → info-VBDWY6EO-xfLiLDin.js} +6 -6
  130. package/dist/server/assets/{infoDiagram-HS3SLOUP-z48Ilxyy.js → infoDiagram-HS3SLOUP-BUHq7o0p.js} +5 -5
  131. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-2_BMX1ei.js → journeyDiagram-XKPGCS4Q-ueRNPiAY.js} +4 -4
  132. package/dist/server/assets/{kanban-definition-3W4ZIXB7-YMu0hChh.js → kanban-definition-3W4ZIXB7-BaoHjyB8.js} +2 -2
  133. package/dist/server/assets/{layout-Cp5xjTuv.js → layout-DTRCkx2y.js} +4 -4
  134. package/dist/server/assets/{linear-CC3vfL_Z.js → linear-CEd9jvaW.js} +1 -1
  135. package/dist/server/assets/{mermaid-3ZIDBTTL-nj6kJNsf.js → mermaid-3ZIDBTTL-Bocx3zr_.js} +1 -1
  136. package/dist/server/assets/{mermaid-parser.core-CS8wPCwT.js → mermaid-parser.core-CnuB2ez_.js} +11 -11
  137. package/dist/server/assets/{mindmap-definition-VGOIOE7T-BbNEUTwc.js → mindmap-definition-VGOIOE7T-ARN2t0ze.js} +3 -3
  138. package/dist/server/assets/{packet-DYOGHKS2-C4ObDfPs.js → packet-DYOGHKS2-Cfvmxib_.js} +6 -6
  139. package/dist/server/assets/{pie-VRWISCQL-24cVROwS.js → pie-VRWISCQL-DLhUIQek.js} +6 -6
  140. package/dist/server/assets/{pieDiagram-ADFJNKIX-BDcmTNeb.js → pieDiagram-ADFJNKIX-DbZhADgA.js} +7 -7
  141. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-DVfUAm25.js → quadrantDiagram-AYHSOK5B-DKkuOf1X.js} +2 -2
  142. package/dist/server/assets/{radar-ZZBFDIW7-Xb4_ybap.js → radar-ZZBFDIW7-DDKCbnI9.js} +6 -6
  143. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-CQfWrrP_.js → requirementDiagram-UZGBJVZJ-l0bNxwXy.js} +3 -3
  144. package/dist/server/assets/{router-BnXOl-F9.js → router-BsFHVXz9.js} +644 -348
  145. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BW9xc6Gi.js → sankeyDiagram-TZEHDZUN-Czmu-ri0.js} +1 -1
  146. package/dist/server/assets/{sequenceDiagram-WL72ISMW-_VMzymo9.js → sequenceDiagram-WL72ISMW-TIqdB3wK.js} +3 -3
  147. package/dist/server/assets/{stateDiagram-FKZM4ZOC-P9tJlZ70.js → stateDiagram-FKZM4ZOC-DJf6ARFZ.js} +8 -8
  148. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-Cb6P-c6h.js → stateDiagram-v2-4FDKWEC3-BCWbXNlV.js} +4 -4
  149. package/dist/server/assets/{timeline-definition-IT6M3QCI-tuTHzmXv.js → timeline-definition-IT6M3QCI-Dsbsa9tI.js} +2 -2
  150. package/dist/server/assets/{treemap-GDKQZRPO-COB3TLcF.js → treemap-GDKQZRPO-DQd5eI_l.js} +6 -6
  151. package/dist/server/assets/{workspace._workspaceId-Ca5XltsV.js → workspace._workspaceId-BzntZkG8.js} +1 -1
  152. package/dist/server/assets/{workspace._workspaceId.changes-z2xCX4Ct.js → workspace._workspaceId.changes-DlHr6JjN.js} +1 -1
  153. package/dist/server/assets/{workspace._workspaceId.code._-DQTK_1av.js → workspace._workspaceId.code._-C0plkbYn.js} +1 -1
  154. package/dist/server/assets/{workspace._workspaceId.code.index-DTziHng0.js → workspace._workspaceId.code.index-BEOcVHwT.js} +1 -1
  155. package/dist/server/assets/{workspace._workspaceId.index-C2U_2sVz.js → workspace._workspaceId.index-BZTlk3td.js} +1 -1
  156. package/dist/server/assets/{workspace._workspaceId.terminal-i2FfY7JG.js → workspace._workspaceId.terminal-DrOsp1dy.js} +2 -2
  157. package/dist/server/assets/{xychartDiagram-PRI3JC2R-B8xp3EP5.js → xychartDiagram-PRI3JC2R-Di_FnHiX.js} +2 -2
  158. package/dist/server/server.js +2 -2
  159. package/dist/start-server.mjs +526 -146
  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$1l = [
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$1l);
1102
+ const __iconNode$1k = [
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$1k);
1107
+ const __iconNode$1j = [
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$1j);
1112
+ const __iconNode$1i = [
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$1i);
1117
+ const __iconNode$1h = [
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$1h);
1123
+ const __iconNode$1g = [
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$1g);
1128
+ const __iconNode$1f = [
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$1f);
1133
+ const __iconNode$1e = [
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$1e);
1142
+ const __iconNode$1d = [
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$1d);
1156
+ const __iconNode$1c = [
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$1c);
1163
+ const __iconNode$1b = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
1164
+ const Check = createLucideIcon("check", __iconNode$1b);
1165
+ const __iconNode$1a = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1166
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$1a);
1167
+ const __iconNode$19 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
1168
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$19);
1169
+ const __iconNode$18 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1170
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$18);
1171
+ const __iconNode$17 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
1172
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$17);
1173
+ const __iconNode$16 = [
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$16);
1178
+ const __iconNode$15 = [
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$15);
1183
+ const __iconNode$14 = [
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$14);
1189
+ const __iconNode$13 = [
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$13);
1194
+ const __iconNode$12 = [
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$12);
1200
+ const __iconNode$11 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
1201
+ const Circle = createLucideIcon("circle", __iconNode$11);
1202
+ const __iconNode$10 = [
1203
1203
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
1204
1204
  [
1205
1205
  "path",
@@ -1209,53 +1209,59 @@ const __iconNode$_ = [
1209
1209
  }
1210
1210
  ]
1211
1211
  ];
1212
- const Clipboard = createLucideIcon("clipboard", __iconNode$_);
1213
- const __iconNode$Z = [
1212
+ const Clipboard = createLucideIcon("clipboard", __iconNode$10);
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$_ = [
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$_);
1224
+ const __iconNode$Z = [
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$Z);
1229
+ const __iconNode$Y = [
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$Y);
1234
+ const __iconNode$X = [
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$X);
1241
+ const __iconNode$W = [
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$W);
1246
+ const __iconNode$V = [
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$V);
1252
+ const __iconNode$U = [
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);
1258
- const __iconNode$R = [
1257
+ const Download = createLucideIcon("download", __iconNode$U);
1258
+ const __iconNode$T = [
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$T);
1264
+ const __iconNode$S = [
1259
1265
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
1260
1266
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
1261
1267
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
@@ -1265,14 +1271,14 @@ const __iconNode$R = [
1265
1271
  ["path", { d: "M3 8V3h5", key: "1ln10m" }],
1266
1272
  ["path", { d: "M9 9 3 3", key: "v551iv" }]
1267
1273
  ];
1268
- const Expand = createLucideIcon("expand", __iconNode$R);
1269
- const __iconNode$Q = [
1274
+ const Expand = createLucideIcon("expand", __iconNode$S);
1275
+ const __iconNode$R = [
1270
1276
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
1271
1277
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
1272
1278
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
1273
1279
  ];
1274
- const ExternalLink$1 = createLucideIcon("external-link", __iconNode$Q);
1275
- const __iconNode$P = [
1280
+ const ExternalLink$1 = createLucideIcon("external-link", __iconNode$R);
1281
+ const __iconNode$Q = [
1276
1282
  [
1277
1283
  "path",
1278
1284
  {
@@ -1282,8 +1288,8 @@ const __iconNode$P = [
1282
1288
  ],
1283
1289
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
1284
1290
  ];
1285
- const Eye = createLucideIcon("eye", __iconNode$P);
1286
- const __iconNode$O = [
1291
+ const Eye = createLucideIcon("eye", __iconNode$Q);
1292
+ const __iconNode$P = [
1287
1293
  [
1288
1294
  "path",
1289
1295
  {
@@ -1301,8 +1307,8 @@ const __iconNode$O = [
1301
1307
  { d: "M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1", key: "mpwhp6" }
1302
1308
  ]
1303
1309
  ];
1304
- const FileBraces = createLucideIcon("file-braces", __iconNode$O);
1305
- const __iconNode$N = [
1310
+ const FileBraces = createLucideIcon("file-braces", __iconNode$P);
1311
+ const __iconNode$O = [
1306
1312
  [
1307
1313
  "path",
1308
1314
  {
@@ -1314,8 +1320,8 @@ const __iconNode$N = [
1314
1320
  ["path", { d: "m5 16-3 3 3 3", key: "331omg" }],
1315
1321
  ["path", { d: "m9 22 3-3-3-3", key: "lsp7cz" }]
1316
1322
  ];
1317
- const FileCodeCorner = createLucideIcon("file-code-corner", __iconNode$N);
1318
- const __iconNode$M = [
1323
+ const FileCodeCorner = createLucideIcon("file-code-corner", __iconNode$O);
1324
+ const __iconNode$N = [
1319
1325
  [
1320
1326
  "path",
1321
1327
  {
@@ -1326,8 +1332,8 @@ const __iconNode$M = [
1326
1332
  ["path", { d: "M12 9v4", key: "juzpu7" }],
1327
1333
  ["path", { d: "M12 17h.01", key: "p32p05" }]
1328
1334
  ];
1329
- const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$M);
1330
- const __iconNode$L = [
1335
+ const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$N);
1336
+ const __iconNode$M = [
1331
1337
  [
1332
1338
  "path",
1333
1339
  {
@@ -1340,8 +1346,8 @@ const __iconNode$L = [
1340
1346
  ["path", { d: "M16 13H8", key: "t4e002" }],
1341
1347
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
1342
1348
  ];
1343
- const FileText = createLucideIcon("file-text", __iconNode$L);
1344
- const __iconNode$K = [
1349
+ const FileText = createLucideIcon("file-text", __iconNode$M);
1350
+ const __iconNode$L = [
1345
1351
  [
1346
1352
  "path",
1347
1353
  {
@@ -1351,8 +1357,8 @@ const __iconNode$K = [
1351
1357
  ],
1352
1358
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
1353
1359
  ];
1354
- const File = createLucideIcon("file", __iconNode$K);
1355
- const __iconNode$J = [
1360
+ const File = createLucideIcon("file", __iconNode$L);
1361
+ const __iconNode$K = [
1356
1362
  [
1357
1363
  "path",
1358
1364
  {
@@ -1361,8 +1367,8 @@ const __iconNode$J = [
1361
1367
  }
1362
1368
  ]
1363
1369
  ];
1364
- const FolderOpen = createLucideIcon("folder-open", __iconNode$J);
1365
- const __iconNode$I = [
1370
+ const FolderOpen = createLucideIcon("folder-open", __iconNode$K);
1371
+ const __iconNode$J = [
1366
1372
  ["path", { d: "M12 10v6", key: "1bos4e" }],
1367
1373
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
1368
1374
  [
@@ -1373,8 +1379,8 @@ const __iconNode$I = [
1373
1379
  }
1374
1380
  ]
1375
1381
  ];
1376
- const FolderPlus = createLucideIcon("folder-plus", __iconNode$I);
1377
- const __iconNode$H = [
1382
+ const FolderPlus = createLucideIcon("folder-plus", __iconNode$J);
1383
+ const __iconNode$I = [
1378
1384
  [
1379
1385
  "path",
1380
1386
  {
@@ -1383,32 +1389,41 @@ const __iconNode$H = [
1383
1389
  }
1384
1390
  ]
1385
1391
  ];
1386
- const Folder = createLucideIcon("folder", __iconNode$H);
1387
- const __iconNode$G = [
1392
+ const Folder = createLucideIcon("folder", __iconNode$I);
1393
+ const __iconNode$H = [
1388
1394
  ["path", { d: "M15 6a9 9 0 0 0-9 9V3", key: "1cii5b" }],
1389
1395
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
1390
1396
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }]
1391
1397
  ];
1392
- const GitBranch = createLucideIcon("git-branch", __iconNode$G);
1393
- const __iconNode$F = [
1398
+ const GitBranch = createLucideIcon("git-branch", __iconNode$H);
1399
+ const __iconNode$G = [
1394
1400
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
1395
1401
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
1396
1402
  ["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
1397
1403
  ["path", { d: "M11 18H8a2 2 0 0 1-2-2V9", key: "19pyzm" }]
1398
1404
  ];
1399
- const GitCompare = createLucideIcon("git-compare", __iconNode$F);
1400
- const __iconNode$E = [
1405
+ const GitCompare = createLucideIcon("git-compare", __iconNode$G);
1406
+ const __iconNode$F = [
1401
1407
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
1402
1408
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
1403
1409
  ["path", { d: "M6 21V9a9 9 0 0 0 9 9", key: "7kw0sc" }]
1404
1410
  ];
1405
- const GitMerge = createLucideIcon("git-merge", __iconNode$E);
1406
- const __iconNode$D = [
1411
+ const GitMerge = createLucideIcon("git-merge", __iconNode$F);
1412
+ const __iconNode$E = [
1407
1413
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1408
1414
  ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
1409
1415
  ["path", { d: "M2 12h20", key: "9i4pu4" }]
1410
1416
  ];
1411
- const Globe = createLucideIcon("globe", __iconNode$D);
1417
+ const Globe = createLucideIcon("globe", __iconNode$E);
1418
+ const __iconNode$D = [
1419
+ ["circle", { cx: "12", cy: "9", r: "1", key: "124mty" }],
1420
+ ["circle", { cx: "19", cy: "9", r: "1", key: "1ruzo2" }],
1421
+ ["circle", { cx: "5", cy: "9", r: "1", key: "1a8b28" }],
1422
+ ["circle", { cx: "12", cy: "15", r: "1", key: "1e56xg" }],
1423
+ ["circle", { cx: "19", cy: "15", r: "1", key: "1a92ep" }],
1424
+ ["circle", { cx: "5", cy: "15", r: "1", key: "5r1jwy" }]
1425
+ ];
1426
+ const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$D);
1412
1427
  const __iconNode$C = [
1413
1428
  ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
1414
1429
  ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
@@ -14054,7 +14069,7 @@ const buttonVariants = cva(
14054
14069
  variant: {
14055
14070
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
14056
14071
  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",
14072
+ 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
14073
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
14059
14074
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
14060
14075
  link: "text-primary underline-offset-4 hover:underline"
@@ -14119,7 +14134,7 @@ function Input({ className, type: type2, ...props }) {
14119
14134
  spellCheck: false,
14120
14135
  "data-slot": "input",
14121
14136
  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",
14137
+ "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
14138
  "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
14124
14139
  "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
14125
14140
  className
@@ -15047,7 +15062,7 @@ function SelectTrigger({
15047
15062
  {
15048
15063
  "data-slot": "select-trigger",
15049
15064
  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",
15065
+ "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
15066
  className
15052
15067
  ),
15053
15068
  ...props,
@@ -15069,7 +15084,10 @@ function SelectContent({
15069
15084
  {
15070
15085
  "data-slot": "select-content",
15071
15086
  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",
15087
+ // Mirror DropdownMenuContent so dropdowns and selects render
15088
+ // identically (popover surface, explicit border-border so the
15089
+ // outline doesn't fall back to currentColor).
15090
+ "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
15091
  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
15092
  className
15075
15093
  ),
@@ -15098,7 +15116,10 @@ function SelectItem({
15098
15116
  {
15099
15117
  "data-slot": "select-item",
15100
15118
  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",
15119
+ // Mirror DropdownMenuItem padding/outline/icon styling so select
15120
+ // items render identically to menu items. Extra right padding leaves
15121
+ // room for the absolutely-positioned check indicator.
15122
+ "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
15123
  className
15103
15124
  ),
15104
15125
  ...props,
@@ -40434,53 +40455,53 @@ async function loadLanguage(lang) {
40434
40455
  try {
40435
40456
  switch (lang) {
40436
40457
  case "javascript":
40437
- return import("./index-BnaMl2Ta.js").then((m2) => m2.javascript());
40458
+ return import("./index-C_g8VSbE.js").then((m2) => m2.javascript());
40438
40459
  case "jsx":
40439
- return import("./index-BnaMl2Ta.js").then((m2) => m2.javascript({ jsx: true }));
40460
+ return import("./index-C_g8VSbE.js").then((m2) => m2.javascript({ jsx: true }));
40440
40461
  case "typescript":
40441
- return import("./index-BnaMl2Ta.js").then(
40462
+ return import("./index-C_g8VSbE.js").then(
40442
40463
  (m2) => m2.javascript({ typescript: true })
40443
40464
  );
40444
40465
  case "tsx":
40445
- return import("./index-BnaMl2Ta.js").then(
40466
+ return import("./index-C_g8VSbE.js").then(
40446
40467
  (m2) => m2.javascript({ jsx: true, typescript: true })
40447
40468
  );
40448
40469
  case "python":
40449
- return import("./index-DXlyuzHk.js").then((m2) => m2.python());
40470
+ return import("./index-Bdg-nkIi.js").then((m2) => m2.python());
40450
40471
  case "html":
40451
- return import("./index-CZPx4FSZ.js").then((m2) => m2.html());
40472
+ return import("./index-THiRUHDP.js").then((m2) => m2.html());
40452
40473
  case "css":
40453
- return import("./index-DZkn94Qw.js").then((m2) => m2.css());
40474
+ return import("./index-DYKc3CTl.js").then((m2) => m2.css());
40454
40475
  case "scss":
40455
40476
  case "sass":
40456
- return import("./index-BgRkMr0S.js").then((m2) => m2.sass());
40477
+ return import("./index-BEMoQBv1.js").then((m2) => m2.sass());
40457
40478
  case "less":
40458
- return import("./index-CFtz0N_G.js").then((m2) => m2.less());
40479
+ return import("./index-CcXBjIgw.js").then((m2) => m2.less());
40459
40480
  case "json":
40460
40481
  case "jsonc":
40461
- return import("./index-CiQmjF-z.js").then((m2) => m2.json());
40482
+ return import("./index-BewnJmdp.js").then((m2) => m2.json());
40462
40483
  case "markdown":
40463
40484
  case "mdx":
40464
- return import("./index-DbtmJMHb.js").then((m2) => m2.markdown());
40485
+ return import("./index-CYDdV_jY.js").then((m2) => m2.markdown());
40465
40486
  case "xml":
40466
- return import("./index-C70O-HGl.js").then((m2) => m2.xml());
40487
+ return import("./index-yeAPCrVk.js").then((m2) => m2.xml());
40467
40488
  case "yaml":
40468
- return import("./index-OT8s82kA.js").then((m2) => m2.yaml());
40489
+ return import("./index-z5OKgRXY.js").then((m2) => m2.yaml());
40469
40490
  case "sql":
40470
- return import("./index-oSZ-5UB6.js").then((m2) => m2.sql());
40491
+ return import("./index-BVBNSmFm.js").then((m2) => m2.sql());
40471
40492
  case "rust":
40472
- return import("./index-B07RUisL.js").then((m2) => m2.rust());
40493
+ return import("./index-BEXzKtXX.js").then((m2) => m2.rust());
40473
40494
  case "go":
40474
- return import("./index-CGs_KUt6.js").then((m2) => m2.go());
40495
+ return import("./index-j7NzRTu6.js").then((m2) => m2.go());
40475
40496
  case "java":
40476
- return import("./index-DgI6m9w2.js").then((m2) => m2.java());
40497
+ return import("./index-B81vrGna.js").then((m2) => m2.java());
40477
40498
  case "kotlin":
40478
- return import("./index-DgI6m9w2.js").then((m2) => m2.java());
40499
+ return import("./index-B81vrGna.js").then((m2) => m2.java());
40479
40500
  case "c":
40480
40501
  case "cpp":
40481
- return import("./index-Y-3cIxVF.js").then((m2) => m2.cpp());
40502
+ return import("./index-BOB72PF1.js").then((m2) => m2.cpp());
40482
40503
  case "php":
40483
- return import("./index-C-_PyKI8.js").then((m2) => m2.php());
40504
+ return import("./index-xhWv6ALB.js").then((m2) => m2.php());
40484
40505
  // Legacy modes via StreamLanguage
40485
40506
  case "bash":
40486
40507
  case "fish":
@@ -46297,7 +46318,7 @@ function DroppableLabelHeader({ labelId, label }) {
46297
46318
  "div",
46298
46319
  {
46299
46320
  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"}`,
46321
+ className: `flex h-9 items-center gap-2 px-3 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46301
46322
  children: [
46302
46323
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "size-2.5 rounded-full shrink-0", style: { backgroundColor: label.color } }),
46303
46324
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: label.name })
@@ -46311,7 +46332,7 @@ function DroppableUnlabeledHeader() {
46311
46332
  "div",
46312
46333
  {
46313
46334
  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"}`,
46335
+ className: `flex h-9 items-center gap-2 px-3 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46315
46336
  children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: "Unlabeled" })
46316
46337
  }
46317
46338
  );
@@ -46662,7 +46683,9 @@ function SettingsSection({
46662
46683
  {
46663
46684
  "data-slot": "settings-section-card",
46664
46685
  className: cn$2(
46665
- "overflow-hidden rounded-xl border border-border bg-card",
46686
+ // Group rows share the page background; only the outer border and
46687
+ // 1px row dividers separate them visually.
46688
+ "overflow-hidden rounded-xl border border-border",
46666
46689
  // Auto-divider between direct children (rows). Skips border-bottom of last child.
46667
46690
  "[&>*+*]:border-t [&>*+*]:border-border"
46668
46691
  ),
@@ -50535,6 +50558,23 @@ function DiffView({
50535
50558
  setFocusedFile({ path: filePath, seq: focusSeqRef.current });
50536
50559
  }, []);
50537
50560
  const [activeFile, setActiveFile] = reactExports.useState(null);
50561
+ const [scrollContainerHeight, setScrollContainerHeight] = reactExports.useState(0);
50562
+ const [scrollContainerWidth, setScrollContainerWidth] = reactExports.useState(0);
50563
+ reactExports.useLayoutEffect(() => {
50564
+ const container = scrollContainerRef.current;
50565
+ if (!container) return;
50566
+ const update = () => {
50567
+ setScrollContainerHeight(container.clientHeight);
50568
+ setScrollContainerWidth(container.clientWidth);
50569
+ };
50570
+ update();
50571
+ if (typeof ResizeObserver === "undefined") return;
50572
+ const observer = new ResizeObserver(update);
50573
+ observer.observe(container);
50574
+ return () => observer.disconnect();
50575
+ }, [summary]);
50576
+ const SPLIT_VIEW_MIN_WIDTH = 640;
50577
+ const effectiveViewMode = scrollContainerWidth > 0 && scrollContainerWidth < SPLIT_VIEW_MIN_WIDTH ? "unified" : viewMode;
50538
50578
  reactExports.useEffect(() => {
50539
50579
  const container = scrollContainerRef.current;
50540
50580
  if (!container) return;
@@ -50547,28 +50587,18 @@ function DiffView({
50547
50587
  const names = filenamesRef.current;
50548
50588
  if (names.length === 0) return;
50549
50589
  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;
50590
+ const top2 = rect2.top;
50561
50591
  let closest = null;
50562
50592
  let closestDist = Infinity;
50563
50593
  for (const name2 of names) {
50564
50594
  const el = document.getElementById(`diff-file-${encodeURIComponent(name2)}`);
50565
50595
  if (!el) continue;
50566
50596
  const elRect = el.getBoundingClientRect();
50567
- if (elRect.top <= center && elRect.bottom >= center) {
50597
+ if (elRect.top <= top2 && elRect.bottom > top2) {
50568
50598
  closest = name2;
50569
50599
  break;
50570
50600
  }
50571
- const dist2 = Math.min(Math.abs(elRect.top - center), Math.abs(elRect.bottom - center));
50601
+ const dist2 = Math.abs(elRect.top - top2);
50572
50602
  if (dist2 < closestDist) {
50573
50603
  closestDist = dist2;
50574
50604
  closest = name2;
@@ -50788,7 +50818,7 @@ function DiffView({
50788
50818
  }
50789
50819
  };
50790
50820
  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, {}) }),
50821
+ /* @__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
50822
  /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
50793
50823
  topSectionBranches.map((branch) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: branch, children: branch }, branch)),
50794
50824
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: UNCOMMITTED_VALUE, children: "Uncommitted" }),
@@ -50802,7 +50832,7 @@ function DiffView({
50802
50832
  if (error) {
50803
50833
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full items-center justify-center text-sm text-destructive", children: error });
50804
50834
  }
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";
50835
+ 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
50836
  const ghostBtnAlwaysClass = "inline-flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground";
50807
50837
  const renderSidebarToggle = () => /* @__PURE__ */ jsxRuntimeExports.jsx(
50808
50838
  "button",
@@ -50816,32 +50846,31 @@ function DiffView({
50816
50846
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-3.5" })
50817
50847
  }
50818
50848
  );
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: [
50849
+ const renderBranchIndicator = (headBranchLabel) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
50850
+ headBranchLabel && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1.5 @[32rem]/diff:flex", children: [
50821
50851
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-foreground", children: headBranchLabel }),
50822
50852
  /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "size-3", "aria-hidden": true })
50823
50853
  ] }),
50824
50854
  renderDiffSelect()
50825
50855
  ] });
50826
50856
  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
- ] }) });
50857
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [
50858
+ /* @__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) }),
50859
+ /* @__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" }) })
50860
+ ] });
50832
50861
  }
50833
50862
  const fileStatuses = summary.fileStatuses || {};
50834
50863
  const filenames = flattenFileTreeOrder(buildFileTree(fileStatuses));
50835
50864
  filenamesRef.current = filenames;
50836
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full overflow-hidden", children: [
50865
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "@container/diff flex h-full overflow-hidden", children: [
50837
50866
  sidebarOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs(
50838
50867
  "div",
50839
50868
  {
50840
50869
  "data-diff-sidebar": true,
50841
- className: "hidden shrink-0 flex-col md:flex",
50870
+ className: "hidden shrink-0 flex-col @[40rem]/diff:flex",
50842
50871
  style: { width: sidebarWidth },
50843
50872
  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" }) }),
50873
+ /* @__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
50874
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto py-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
50846
50875
  ChangesFileTree,
50847
50876
  {
@@ -50857,16 +50886,16 @@ function DiffView({
50857
50886
  "div",
50858
50887
  {
50859
50888
  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"
50889
+ 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
50890
  }
50862
50891
  ),
50863
50892
  /* @__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: [
50893
+ /* @__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
50894
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [
50866
50895
  renderSidebarToggle(),
50867
50896
  renderBranchIndicator(summary.headBranch)
50868
50897
  ] }),
50869
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1", children: [
50898
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1 @[32rem]/diff:flex", children: [
50870
50899
  /* @__PURE__ */ jsxRuntimeExports.jsx(
50871
50900
  "button",
50872
50901
  {
@@ -50901,16 +50930,16 @@ function DiffView({
50901
50930
  children: expandAll ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsDownUp, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsUpDown, { className: "size-3.5" })
50902
50931
  }
50903
50932
  ),
50904
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center md:flex", children: [
50933
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center @[40rem]/diff:flex", children: [
50905
50934
  /* @__PURE__ */ jsxRuntimeExports.jsx(
50906
50935
  "button",
50907
50936
  {
50908
50937
  type: "button",
50909
50938
  onClick: () => setViewMode("unified"),
50910
- className: `${ghostBtnAlwaysClass} ${viewMode === "unified" ? "bg-accent text-foreground" : ""}`,
50939
+ className: `${ghostBtnAlwaysClass} ${effectiveViewMode === "unified" ? "bg-accent text-foreground" : ""}`,
50911
50940
  title: "Unified view",
50912
50941
  "aria-label": "Unified view",
50913
- "aria-pressed": viewMode === "unified",
50942
+ "aria-pressed": effectiveViewMode === "unified",
50914
50943
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Rows2, { className: "size-3.5" })
50915
50944
  }
50916
50945
  ),
@@ -50919,15 +50948,52 @@ function DiffView({
50919
50948
  {
50920
50949
  type: "button",
50921
50950
  onClick: () => setViewMode("split"),
50922
- className: `${ghostBtnAlwaysClass} ${viewMode === "split" ? "bg-accent text-foreground" : ""}`,
50951
+ className: `${ghostBtnAlwaysClass} ${effectiveViewMode === "split" ? "bg-accent text-foreground" : ""}`,
50923
50952
  title: "Split view",
50924
50953
  "aria-label": "Split view",
50925
- "aria-pressed": viewMode === "split",
50954
+ "aria-pressed": effectiveViewMode === "split",
50926
50955
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Columns2, { className: "size-3.5" })
50927
50956
  }
50928
50957
  )
50929
50958
  ] })
50930
- ] })
50959
+ ] }),
50960
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center @[32rem]/diff:hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
50961
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
50962
+ "button",
50963
+ {
50964
+ type: "button",
50965
+ className: ghostBtnAlwaysClass,
50966
+ title: "More actions",
50967
+ "aria-label": "More actions",
50968
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(EllipsisVertical, { className: "size-3.5" })
50969
+ }
50970
+ ) }),
50971
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuContent, { align: "end", children: [
50972
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => fetchSummaryRef.current?.(true), children: [
50973
+ /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-4" }),
50974
+ "Reload changes"
50975
+ ] }),
50976
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: search2.handleOpenSearch, children: [
50977
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "size-4" }),
50978
+ "Find in changes"
50979
+ ] }),
50980
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => setExpandAll(!expandAll), children: [
50981
+ expandAll ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsDownUp, { className: "size-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsUpDown, { className: "size-4" }),
50982
+ expandAll ? "Collapse all files" : "Expand all files"
50983
+ ] }),
50984
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuSeparator, {}),
50985
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => setViewMode("unified"), children: [
50986
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Rows2, { className: "size-4" }),
50987
+ "Unified view",
50988
+ effectiveViewMode === "unified" && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "ml-auto size-4" })
50989
+ ] }),
50990
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => setViewMode("split"), children: [
50991
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Columns2, { className: "size-4" }),
50992
+ "Split view",
50993
+ effectiveViewMode === "split" && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "ml-auto size-4" })
50994
+ ] })
50995
+ ] })
50996
+ ] }) })
50931
50997
  ] }),
50932
50998
  search2.searchOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(
50933
50999
  SearchBar,
@@ -50944,27 +51010,43 @@ function DiffView({
50944
51010
  onClose: search2.handleCloseSearch
50945
51011
  }
50946
51012
  ),
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: [
51013
+ /* @__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) => {
51014
+ const isLast = index2 === filenames.length - 1;
51015
+ const row2 = /* @__PURE__ */ jsxRuntimeExports.jsx(
51016
+ LazyFileRow,
51017
+ {
51018
+ filename,
51019
+ status: fileStatuses[filename],
51020
+ cacheEntry: diffCache.get(filename),
51021
+ viewMode: effectiveViewMode,
51022
+ expandAll,
51023
+ focusedFile,
51024
+ isActive: activeFile === filename,
51025
+ scrollContainerRef,
51026
+ onToggleFile: handleToggleFile,
51027
+ onLoadMoreContext: handleLoadMoreContext,
51028
+ onShowFullFile: handleShowFullFile,
51029
+ onOpenFile,
51030
+ onRevertFile: adapter2.revertFile ? handleRevertFile : void 0,
51031
+ onEditorViews: handleEditorViews
51032
+ },
51033
+ filename
51034
+ );
51035
+ if (!isLast) return row2;
51036
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
51037
+ "div",
51038
+ {
51039
+ className: "flex flex-col",
51040
+ style: scrollContainerHeight > 0 ? { minHeight: scrollContainerHeight } : void 0,
51041
+ children: [
51042
+ row2,
51043
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "flex-1" })
51044
+ ]
51045
+ },
51046
+ `${filename}-last-wrapper`
51047
+ );
51048
+ }) }) }),
51049
+ /* @__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
51050
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-foreground", children: summary.stats.filesChanged }),
50969
51051
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-1", children: [
50970
51052
  summary.stats.filesChanged === 1 ? "file" : "files",
@@ -61026,7 +61108,11 @@ function DesktopTitleBar({
61026
61108
  onCopyPath,
61027
61109
  panelItems,
61028
61110
  hiddenPanels,
61029
- onTogglePanelVisibility
61111
+ onTogglePanelVisibility,
61112
+ onGoBack,
61113
+ onGoForward,
61114
+ canGoBack,
61115
+ canGoForward
61030
61116
  }) {
61031
61117
  const [appTitle, setAppTitle] = reactExports.useState(title ?? "Band");
61032
61118
  reactExports.useEffect(() => {
@@ -61035,7 +61121,7 @@ function DesktopTitleBar({
61035
61121
  invoke("get_app_title").then(setAppTitle).catch(() => {
61036
61122
  });
61037
61123
  }, [title]);
61038
- const hasEditorPicker = workspaceName && workspacePath;
61124
+ const hasEditorPicker = isDesktop && workspaceName && workspacePath;
61039
61125
  const hasPanels = workspaceName && panelItems && panelItems.length > 0 && onTogglePanelVisibility;
61040
61126
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
61041
61127
  "div",
@@ -61043,15 +61129,59 @@ function DesktopTitleBar({
61043
61129
  className: "h-[38px] shrink-0 flex items-center justify-center relative border-b border-border",
61044
61130
  style: DRAG_STYLE,
61045
61131
  children: [
61046
- onToggleSidebar && /* @__PURE__ */ jsxRuntimeExports.jsx(
61047
- "button",
61132
+ (onToggleSidebar || onGoBack || onGoForward) && /* @__PURE__ */ jsxRuntimeExports.jsxs(
61133
+ "div",
61048
61134
  {
61049
- type: "button",
61050
- onClick: onToggleSidebar,
61135
+ className: `absolute ${isDesktop ? "left-[80px]" : "left-2"} top-1/2 -translate-y-1/2 flex items-center gap-0.5 pointer-events-auto`,
61051
61136
  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" })
61137
+ children: [
61138
+ onToggleSidebar && /* @__PURE__ */ jsxRuntimeExports.jsx(
61139
+ "button",
61140
+ {
61141
+ type: "button",
61142
+ onClick: onToggleSidebar,
61143
+ className: "flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors",
61144
+ title: sidebarCollapsed ? "Show sidebar" : "Hide sidebar",
61145
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-5" })
61146
+ }
61147
+ ),
61148
+ (onGoBack || onGoForward) && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
61149
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
61150
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
61151
+ "button",
61152
+ {
61153
+ type: "button",
61154
+ onClick: onGoBack,
61155
+ disabled: !canGoBack,
61156
+ 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",
61157
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronLeft, { className: "size-5" })
61158
+ }
61159
+ ) }),
61160
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { side: "bottom", className: "text-xs", children: [
61161
+ "Back",
61162
+ " ",
61163
+ /* @__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: "⌘[" })
61164
+ ] })
61165
+ ] }),
61166
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
61167
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
61168
+ "button",
61169
+ {
61170
+ type: "button",
61171
+ onClick: onGoForward,
61172
+ disabled: !canGoForward,
61173
+ 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",
61174
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-5" })
61175
+ }
61176
+ ) }),
61177
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { side: "bottom", className: "text-xs", children: [
61178
+ "Forward",
61179
+ " ",
61180
+ /* @__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: "⌘]" })
61181
+ ] })
61182
+ ] })
61183
+ ] })
61184
+ ]
61055
61185
  }
61056
61186
  ),
61057
61187
  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 +61206,12 @@ function DesktopTitleBar({
61076
61206
  ] }),
61077
61207
  /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "end", children: panelItems?.map((item) => {
61078
61208
  const Icon2 = item.icon;
61079
- const isChat = item.id === "chat";
61080
- const isVisible = isChat || !hiddenPanels?.includes(item.id);
61209
+ const isVisible = !hiddenPanels?.includes(item.id);
61081
61210
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
61082
61211
  DropdownMenuCheckboxItem,
61083
61212
  {
61084
61213
  checked: isVisible,
61085
- disabled: isChat,
61086
61214
  onCheckedChange: () => {
61087
- if (isChat) return;
61088
61215
  onTogglePanelVisibility?.(item.id);
61089
61216
  },
61090
61217
  children: [
@@ -132342,12 +132469,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
132342
132469
  registerLayoutLoaders([
132343
132470
  {
132344
132471
  name: "dagre",
132345
- loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-Cefu204F.js"), "loader")
132472
+ loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-h35DYUhj.js"), "loader")
132346
132473
  },
132347
132474
  ...[
132348
132475
  {
132349
132476
  name: "cose-bilkent",
132350
- loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-_7cffNle.js"), "loader")
132477
+ loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-CLRnyAoe.js"), "loader")
132351
132478
  }
132352
132479
  ]
132353
132480
  ]);
@@ -132786,7 +132913,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
132786
132913
  return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
132787
132914
  }, "detector");
132788
132915
  var loader = /* @__PURE__ */ __name(async () => {
132789
- const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-D9aranD0.js");
132916
+ const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-BPZ4vpZS.js");
132790
132917
  return { id, diagram: diagram2 };
132791
132918
  }, "loader");
132792
132919
  var plugin = {
@@ -132803,7 +132930,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
132803
132930
  return /^\s*graph/.test(txt);
132804
132931
  }, "detector");
132805
132932
  var loader2 = /* @__PURE__ */ __name(async () => {
132806
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DkHr76XI.js");
132933
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-FGtxEFhp.js");
132807
132934
  return { id: id2, diagram: diagram2 };
132808
132935
  }, "loader");
132809
132936
  var plugin2 = {
@@ -132826,7 +132953,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
132826
132953
  return /^\s*flowchart/.test(txt);
132827
132954
  }, "detector");
132828
132955
  var loader3 = /* @__PURE__ */ __name(async () => {
132829
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DkHr76XI.js");
132956
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-FGtxEFhp.js");
132830
132957
  return { id: id3, diagram: diagram2 };
132831
132958
  }, "loader");
132832
132959
  var plugin3 = {
@@ -132840,7 +132967,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
132840
132967
  return /^\s*erDiagram/.test(txt);
132841
132968
  }, "detector");
132842
132969
  var loader4 = /* @__PURE__ */ __name(async () => {
132843
- const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-9TUXBEEN.js");
132970
+ const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-CK577Mto.js");
132844
132971
  return { id: id4, diagram: diagram2 };
132845
132972
  }, "loader");
132846
132973
  var plugin4 = {
@@ -132854,7 +132981,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
132854
132981
  return /^\s*gitGraph/.test(txt);
132855
132982
  }, "detector");
132856
132983
  var loader5 = /* @__PURE__ */ __name(async () => {
132857
- const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-Cq6NrkS2.js");
132984
+ const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-BoBut3cj.js");
132858
132985
  return { id: id5, diagram: diagram2 };
132859
132986
  }, "loader");
132860
132987
  var plugin5 = {
@@ -132868,7 +132995,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
132868
132995
  return /^\s*gantt/.test(txt);
132869
132996
  }, "detector");
132870
132997
  var loader6 = /* @__PURE__ */ __name(async () => {
132871
- const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-D62VSFN-.js");
132998
+ const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-DAUHIdRM.js");
132872
132999
  return { id: id6, diagram: diagram2 };
132873
133000
  }, "loader");
132874
133001
  var plugin6 = {
@@ -132882,7 +133009,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
132882
133009
  return /^\s*info/.test(txt);
132883
133010
  }, "detector");
132884
133011
  var loader7 = /* @__PURE__ */ __name(async () => {
132885
- const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-z48Ilxyy.js");
133012
+ const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-BUHq7o0p.js");
132886
133013
  return { id: id7, diagram: diagram2 };
132887
133014
  }, "loader");
132888
133015
  var info = {
@@ -132895,7 +133022,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
132895
133022
  return /^\s*pie/.test(txt);
132896
133023
  }, "detector");
132897
133024
  var loader8 = /* @__PURE__ */ __name(async () => {
132898
- const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-BDcmTNeb.js");
133025
+ const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-DbZhADgA.js");
132899
133026
  return { id: id8, diagram: diagram2 };
132900
133027
  }, "loader");
132901
133028
  var pie = {
@@ -132908,7 +133035,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
132908
133035
  return /^\s*quadrantChart/.test(txt);
132909
133036
  }, "detector");
132910
133037
  var loader9 = /* @__PURE__ */ __name(async () => {
132911
- const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-DVfUAm25.js");
133038
+ const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-DKkuOf1X.js");
132912
133039
  return { id: id9, diagram: diagram2 };
132913
133040
  }, "loader");
132914
133041
  var plugin7 = {
@@ -132922,7 +133049,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
132922
133049
  return /^\s*xychart(-beta)?/.test(txt);
132923
133050
  }, "detector");
132924
133051
  var loader10 = /* @__PURE__ */ __name(async () => {
132925
- const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-B8xp3EP5.js");
133052
+ const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-Di_FnHiX.js");
132926
133053
  return { id: id10, diagram: diagram2 };
132927
133054
  }, "loader");
132928
133055
  var plugin8 = {
@@ -132936,7 +133063,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
132936
133063
  return /^\s*requirement(Diagram)?/.test(txt);
132937
133064
  }, "detector");
132938
133065
  var loader11 = /* @__PURE__ */ __name(async () => {
132939
- const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-CQfWrrP_.js");
133066
+ const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-l0bNxwXy.js");
132940
133067
  return { id: id11, diagram: diagram2 };
132941
133068
  }, "loader");
132942
133069
  var plugin9 = {
@@ -132950,7 +133077,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
132950
133077
  return /^\s*sequenceDiagram/.test(txt);
132951
133078
  }, "detector");
132952
133079
  var loader12 = /* @__PURE__ */ __name(async () => {
132953
- const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-_VMzymo9.js");
133080
+ const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-TIqdB3wK.js");
132954
133081
  return { id: id12, diagram: diagram2 };
132955
133082
  }, "loader");
132956
133083
  var plugin10 = {
@@ -132967,7 +133094,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
132967
133094
  return /^\s*classDiagram/.test(txt);
132968
133095
  }, "detector");
132969
133096
  var loader13 = /* @__PURE__ */ __name(async () => {
132970
- const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-B7uMu4wG.js");
133097
+ const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-DCAJOcrY.js");
132971
133098
  return { id: id13, diagram: diagram2 };
132972
133099
  }, "loader");
132973
133100
  var plugin11 = {
@@ -132984,7 +133111,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
132984
133111
  return /^\s*classDiagram-v2/.test(txt);
132985
133112
  }, "detector");
132986
133113
  var loader14 = /* @__PURE__ */ __name(async () => {
132987
- const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-B7uMu4wG.js");
133114
+ const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-DCAJOcrY.js");
132988
133115
  return { id: id14, diagram: diagram2 };
132989
133116
  }, "loader");
132990
133117
  var plugin12 = {
@@ -133001,7 +133128,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
133001
133128
  return /^\s*stateDiagram/.test(txt);
133002
133129
  }, "detector");
133003
133130
  var loader15 = /* @__PURE__ */ __name(async () => {
133004
- const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-P9tJlZ70.js");
133131
+ const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-DJf6ARFZ.js");
133005
133132
  return { id: id15, diagram: diagram2 };
133006
133133
  }, "loader");
133007
133134
  var plugin13 = {
@@ -133021,7 +133148,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
133021
133148
  return false;
133022
133149
  }, "detector");
133023
133150
  var loader16 = /* @__PURE__ */ __name(async () => {
133024
- const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-Cb6P-c6h.js");
133151
+ const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-BCWbXNlV.js");
133025
133152
  return { id: id16, diagram: diagram2 };
133026
133153
  }, "loader");
133027
133154
  var plugin14 = {
@@ -133035,7 +133162,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
133035
133162
  return /^\s*journey/.test(txt);
133036
133163
  }, "detector");
133037
133164
  var loader17 = /* @__PURE__ */ __name(async () => {
133038
- const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-2_BMX1ei.js");
133165
+ const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-ueRNPiAY.js");
133039
133166
  return { id: id17, diagram: diagram2 };
133040
133167
  }, "loader");
133041
133168
  var plugin15 = {
@@ -133102,7 +133229,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
133102
133229
  return false;
133103
133230
  }, "detector");
133104
133231
  var loader18 = /* @__PURE__ */ __name(async () => {
133105
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DkHr76XI.js");
133232
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-FGtxEFhp.js");
133106
133233
  return { id: id18, diagram: diagram2 };
133107
133234
  }, "loader");
133108
133235
  var plugin16 = {
@@ -133116,7 +133243,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
133116
133243
  return /^\s*timeline/.test(txt);
133117
133244
  }, "detector");
133118
133245
  var loader19 = /* @__PURE__ */ __name(async () => {
133119
- const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-tuTHzmXv.js");
133246
+ const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-Dsbsa9tI.js");
133120
133247
  return { id: id19, diagram: diagram2 };
133121
133248
  }, "loader");
133122
133249
  var plugin17 = {
@@ -133130,7 +133257,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
133130
133257
  return /^\s*mindmap/.test(txt);
133131
133258
  }, "detector");
133132
133259
  var loader20 = /* @__PURE__ */ __name(async () => {
133133
- const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-BbNEUTwc.js");
133260
+ const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-ARN2t0ze.js");
133134
133261
  return { id: id20, diagram: diagram2 };
133135
133262
  }, "loader");
133136
133263
  var plugin18 = {
@@ -133144,7 +133271,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
133144
133271
  return /^\s*kanban/.test(txt);
133145
133272
  }, "detector");
133146
133273
  var loader21 = /* @__PURE__ */ __name(async () => {
133147
- const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-YMu0hChh.js");
133274
+ const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-BaoHjyB8.js");
133148
133275
  return { id: id21, diagram: diagram2 };
133149
133276
  }, "loader");
133150
133277
  var plugin19 = {
@@ -133158,7 +133285,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
133158
133285
  return /^\s*sankey(-beta)?/.test(txt);
133159
133286
  }, "detector");
133160
133287
  var loader22 = /* @__PURE__ */ __name(async () => {
133161
- const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-BW9xc6Gi.js");
133288
+ const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-Czmu-ri0.js");
133162
133289
  return { id: id22, diagram: diagram2 };
133163
133290
  }, "loader");
133164
133291
  var plugin20 = {
@@ -133172,7 +133299,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
133172
133299
  return /^\s*packet(-beta)?/.test(txt);
133173
133300
  }, "detector");
133174
133301
  var loader23 = /* @__PURE__ */ __name(async () => {
133175
- const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-CHWLN67z.js");
133302
+ const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-C-Wz6wgo.js");
133176
133303
  return { id: id23, diagram: diagram2 };
133177
133304
  }, "loader");
133178
133305
  var packet = {
@@ -133185,7 +133312,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
133185
133312
  return /^\s*radar-beta/.test(txt);
133186
133313
  }, "detector");
133187
133314
  var loader24 = /* @__PURE__ */ __name(async () => {
133188
- const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-UNhxZG5g.js");
133315
+ const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-CT_9GKHb.js");
133189
133316
  return { id: id24, diagram: diagram2 };
133190
133317
  }, "loader");
133191
133318
  var radar = {
@@ -133198,7 +133325,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
133198
133325
  return /^\s*block(-beta)?/.test(txt);
133199
133326
  }, "detector");
133200
133327
  var loader25 = /* @__PURE__ */ __name(async () => {
133201
- const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-CnVWNic_.js");
133328
+ const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-D4qioj7T.js");
133202
133329
  return { id: id25, diagram: diagram2 };
133203
133330
  }, "loader");
133204
133331
  var plugin21 = {
@@ -133212,7 +133339,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
133212
133339
  return /^\s*architecture/.test(txt);
133213
133340
  }, "detector");
133214
133341
  var loader26 = /* @__PURE__ */ __name(async () => {
133215
- const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-ClVOs7P1.js");
133342
+ const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-D9kGXK5k.js");
133216
133343
  return { id: id26, diagram: diagram2 };
133217
133344
  }, "loader");
133218
133345
  var architecture = {
@@ -133226,7 +133353,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
133226
133353
  return /^\s*treemap/.test(txt);
133227
133354
  }, "detector");
133228
133355
  var loader27 = /* @__PURE__ */ __name(async () => {
133229
- const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-BeMp8Xfu.js");
133356
+ const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-Dl-1wWBO.js");
133230
133357
  return { id: id27, diagram: diagram2 };
133231
133358
  }, "loader");
133232
133359
  var treemap = {
@@ -148904,7 +149031,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
148904
149031
  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
149032
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
148906
149033
  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 }) => {
149034
+ var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-CQiQABMj.js").then((e2) => ({ default: e2.HighlightedCodeBlockBody }))), rt = ({ code: e2, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
148908
149035
  let i2 = reactExports.useMemo(() => e2.replace(cn, ""), [e2]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
148909
149036
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
148910
149037
  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 +149353,7 @@ var Dt = ({ children: e2, className: t2, onDownload: o3, onError: n2 }) => {
149226
149353
  }, []), 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
149354
  };
149228
149355
  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]+)/;
149356
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-Bocx3zr_.js").then((e2) => ({ default: e2.Mermaid }))), Kn = /language-([^\s]+)/;
149230
149357
  function ke(e2, t2) {
149231
149358
  if (!(e2 != null && e2.position || t2 != null && t2.position)) return true;
149232
149359
  if (!(e2 != null && e2.position && (t2 != null && t2.position))) return false;
@@ -149868,7 +149995,9 @@ function FileTabBar({
149868
149995
  canGoBack,
149869
149996
  canGoForward,
149870
149997
  isDirty: isDirtyFn,
149871
- actions
149998
+ actions,
149999
+ treeCollapsed,
150000
+ onToggleTree
149872
150001
  }) {
149873
150002
  const activeRef = reactExports.useRef(null);
149874
150003
  const containerRef = reactExports.useRef(null);
@@ -149926,7 +150055,22 @@ function FileTabBar({
149926
150055
  }, []);
149927
150056
  if (tabs.length === 0) return null;
149928
150057
  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: [
150058
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "@container flex h-9 shrink-0 items-center border-b border-border/50 bg-background", children: [
150059
+ onToggleTree && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150060
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
150061
+ "button",
150062
+ {
150063
+ type: "button",
150064
+ onClick: onToggleTree,
150065
+ 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",
150066
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelLeft, { className: "size-3.5" })
150067
+ }
150068
+ ) }),
150069
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipContent, { side: "bottom", className: "text-xs", children: [
150070
+ treeCollapsed ? "Show" : "Hide",
150071
+ " File Explorer"
150072
+ ] })
150073
+ ] }),
149930
150074
  (onGoBack || onGoForward) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex shrink-0 items-center gap-0.5 px-1", children: [
149931
150075
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
149932
150076
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -150135,28 +150279,9 @@ function renderMarkdown(content2) {
150135
150279
  }
150136
150280
  );
150137
150281
  }
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
- ] }),
150282
+ function FileTreeToolbar({ onQuickOpen, onSearchFiles }) {
150283
+ 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: [
150284
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Files" }),
150160
150285
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1" }),
150161
150286
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150162
150287
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -150718,15 +150843,7 @@ function CodeBrowserView({
150718
150843
  saveFileTreeCollapsed(workspaceId, collapsed);
150719
150844
  },
150720
150845
  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
- ),
150846
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FileTreeToolbar, { onQuickOpen, onSearchFiles }),
150730
150847
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
150731
150848
  FileBrowser,
150732
150849
  {
@@ -150749,19 +150866,7 @@ function CodeBrowserView({
150749
150866
  }
150750
150867
  ) }),
150751
150868
  /* @__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(
150869
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
150765
150870
  FileTabBar,
150766
150871
  {
150767
150872
  workspacePath,
@@ -150774,6 +150879,8 @@ function CodeBrowserView({
150774
150879
  canGoBack: editorHistory.canGoBack,
150775
150880
  canGoForward: editorHistory.canGoForward,
150776
150881
  isDirty: tabState.isDirty,
150882
+ treeCollapsed,
150883
+ onToggleTree: toggleTree,
150777
150884
  actions: isMarkdown ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-0.5", children: [
150778
150885
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
150779
150886
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -150801,7 +150908,7 @@ function CodeBrowserView({
150801
150908
  ] })
150802
150909
  ] }) : void 0
150803
150910
  }
150804
- ) }),
150911
+ ),
150805
150912
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-h-0 flex-1", children: viewFilePath ? /* @__PURE__ */ jsxRuntimeExports.jsx(
150806
150913
  FileViewer,
150807
150914
  {
@@ -151346,7 +151453,7 @@ const closeTabRef$1 = {
151346
151453
  };
151347
151454
  const RightHeaderActions$1 = React$1.memo(function RightHeaderActions2(props) {
151348
151455
  const groupId = props.group.id;
151349
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [
151456
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full items-center", children: [
151350
151457
  /* @__PURE__ */ jsxRuntimeExports.jsx(
151351
151458
  "button",
151352
151459
  {
@@ -160146,7 +160253,8 @@ class TaskChatTransport {
160146
160253
  await trpc.queue.push.mutate({
160147
160254
  workspaceId: this.workspaceId,
160148
160255
  chatId: this.chatId,
160149
- text: userText
160256
+ text: userText,
160257
+ ...files.length > 0 && { files }
160150
160258
  });
160151
160259
  return new ReadableStream({
160152
160260
  start(controller2) {
@@ -162374,8 +162482,10 @@ function splitMessageAtQueueBoundaries(parts) {
162374
162482
  for (const part of parts) {
162375
162483
  if (part.type === "data-prompt") {
162376
162484
  segments.push(current);
162485
+ const data = part.data;
162377
162486
  current = {
162378
- userPrompt: part.data.text,
162487
+ userPrompt: data.text,
162488
+ userFiles: data.files,
162379
162489
  parts: []
162380
162490
  };
162381
162491
  continue;
@@ -162882,9 +162992,34 @@ function ChatView({
162882
162992
  return () => window.removeEventListener("band:new-chat-session", onNewChat);
162883
162993
  }, [visible, wsActive, handleNewSession]);
162884
162994
  const queueMessage = reactExports.useCallback(
162885
- (text2) => {
162886
- setQueuedMessages((prev2) => [...prev2, text2]);
162887
- trpc.queue.push.mutate({ workspaceId, chatId, text: text2 }).catch(() => {
162995
+ async (message) => {
162996
+ const files = await Promise.all(
162997
+ (message.files ?? []).map(
162998
+ (file) => new Promise((resolve2, reject) => {
162999
+ const reader = new FileReader();
163000
+ reader.onload = () => {
163001
+ resolve2({
163002
+ mediaType: file.type,
163003
+ url: reader.result,
163004
+ filename: file.name
163005
+ });
163006
+ };
163007
+ reader.onerror = () => reject(reader.error);
163008
+ reader.readAsDataURL(file);
163009
+ })
163010
+ )
163011
+ );
163012
+ const tempId = `temp-${Date.now()}-${Math.random().toString(36).slice(2)}`;
163013
+ setQueuedMessages((prev2) => [
163014
+ ...prev2,
163015
+ { id: tempId, text: message.text, files: files.length > 0 ? files : void 0 }
163016
+ ]);
163017
+ trpc.queue.push.mutate({
163018
+ workspaceId,
163019
+ chatId,
163020
+ text: message.text,
163021
+ ...files.length > 0 && { files }
163022
+ }).catch(() => {
162888
163023
  });
162889
163024
  },
162890
163025
  [workspaceId, chatId]
@@ -162893,13 +163028,13 @@ function ChatView({
162893
163028
  async (message) => {
162894
163029
  if (!message.text.trim() && !message.files?.length) return;
162895
163030
  if (isStreaming) {
162896
- queueMessage(message.text);
163031
+ await queueMessage(message);
162897
163032
  return;
162898
163033
  }
162899
163034
  try {
162900
163035
  const { task } = await trpc.tasks.get.query({ workspaceId, chatId });
162901
163036
  if (task && task.status === "running") {
162902
- queueMessage(message.text);
163037
+ await queueMessage(message);
162903
163038
  return;
162904
163039
  }
162905
163040
  } catch {
@@ -162909,14 +163044,44 @@ function ChatView({
162909
163044
  [doSendMessage, isStreaming, workspaceId, chatId, queueMessage]
162910
163045
  );
162911
163046
  const handleCancelQueued = reactExports.useCallback(
162912
- (text2) => {
162913
- setQueuedMessages((prev2) => {
162914
- const idx = prev2.indexOf(text2);
162915
- if (idx === -1) return prev2;
162916
- const messages2 = [...prev2.slice(0, idx), ...prev2.slice(idx + 1)];
162917
- return messages2;
163047
+ (id28) => {
163048
+ setQueuedMessages((prev2) => prev2.filter((m2) => m2.id !== id28));
163049
+ trpc.queue.remove.mutate({ workspaceId, chatId, id: id28 }).catch(() => {
163050
+ });
163051
+ },
163052
+ [workspaceId, chatId]
163053
+ );
163054
+ const handleEditQueued = reactExports.useCallback(
163055
+ (id28, text2) => {
163056
+ setQueuedMessages((prev2) => prev2.map((m2) => m2.id === id28 ? { ...m2, text: text2 } : m2));
163057
+ trpc.queue.update.mutate({ workspaceId, chatId, id: id28, text: text2 }).catch(() => {
162918
163058
  });
162919
- trpc.queue.remove.mutate({ workspaceId, chatId, text: text2 }).catch(() => {
163059
+ },
163060
+ [workspaceId, chatId]
163061
+ );
163062
+ const dndSensors = useSensors(
163063
+ useSensor(PointerSensor, { activationConstraint: { distance: 4 } })
163064
+ );
163065
+ const handleReorderQueued = reactExports.useCallback(
163066
+ (event) => {
163067
+ const { active, over } = event;
163068
+ if (!over || active.id === over.id) return;
163069
+ setQueuedMessages((prev2) => {
163070
+ const oldIdx = prev2.findIndex((m2) => m2.id === active.id);
163071
+ const newIdx = prev2.findIndex((m2) => m2.id === over.id);
163072
+ if (oldIdx === -1 || newIdx === -1) return prev2;
163073
+ const reordered = arrayMove(prev2, oldIdx, newIdx);
163074
+ trpc.queue.set.mutate({
163075
+ workspaceId,
163076
+ chatId,
163077
+ messages: reordered.map((m2) => ({
163078
+ id: m2.id,
163079
+ text: m2.text,
163080
+ ...m2.files && m2.files.length > 0 && { files: m2.files }
163081
+ }))
163082
+ }).catch(() => {
163083
+ });
163084
+ return reordered;
162920
163085
  });
162921
163086
  },
162922
163087
  [workspaceId, chatId]
@@ -163040,7 +163205,16 @@ function ChatView({
163040
163205
  const isLastSegment = segIdx === segments.length - 1;
163041
163206
  const segKey = segment.userPrompt ?? "initial";
163042
163207
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(reactExports.Fragment, { children: [
163043
- segment.userPrompt && /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "user", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: segment.userPrompt }) }) }),
163208
+ segment.userPrompt && /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "user", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
163209
+ segment.userFiles?.map((file, fileIdx) => /* @__PURE__ */ jsxRuntimeExports.jsx(
163210
+ MessageFilePart,
163211
+ {
163212
+ part: { type: "file", ...file }
163213
+ },
163214
+ `${message.id}-${segKey}-userfile-${fileIdx}`
163215
+ )),
163216
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: segment.userPrompt })
163217
+ ] }) }),
163044
163218
  (visibleParts.length > 0 || isLastSegment && showThinking) && /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
163045
163219
  visibleParts.map((seg) => {
163046
163220
  if (seg.type === "text") {
@@ -163082,7 +163256,32 @@ function ChatView({
163082
163256
  });
163083
163257
  })(),
163084
163258
  isStreaming && (!messages.length || messages[messages.length - 1].role === "user") && /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) }) }),
163085
- queuedMessages.map((text2) => /* @__PURE__ */ jsxRuntimeExports.jsx(QueuedMessageBubble, { text: text2, onCancel: () => handleCancelQueued(text2) }, text2))
163259
+ queuedMessages.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
163260
+ DndContext,
163261
+ {
163262
+ sensors: dndSensors,
163263
+ collisionDetection: closestCenter,
163264
+ onDragEnd: handleReorderQueued,
163265
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
163266
+ SortableContext,
163267
+ {
163268
+ items: queuedMessages.map((m2) => m2.id),
163269
+ strategy: verticalListSortingStrategy,
163270
+ children: queuedMessages.map((m2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
163271
+ QueuedMessageBubble,
163272
+ {
163273
+ id: m2.id,
163274
+ text: m2.text,
163275
+ files: m2.files,
163276
+ onCancel: () => handleCancelQueued(m2.id),
163277
+ onEdit: (newText) => handleEditQueued(m2.id, newText)
163278
+ },
163279
+ m2.id
163280
+ ))
163281
+ }
163282
+ )
163283
+ }
163284
+ )
163086
163285
  ] }),
163087
163286
  /* @__PURE__ */ jsxRuntimeExports.jsx(ConversationScrollButton, {})
163088
163287
  ] }),
@@ -163529,28 +163728,109 @@ function SessionHistoryMenu({
163529
163728
  ] })
163530
163729
  ] });
163531
163730
  }
163532
- function QueuedMessageBubble({ text: text2, onCancel }) {
163533
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "group is-user flex w-full max-w-[90%] flex-col gap-2 ml-auto justify-end opacity-60", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 max-w-full flex-col gap-2 break-words text-base ml-auto w-fit rounded-md bg-secondary px-4 py-3 text-foreground", children: [
163534
- /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: text2 }),
163535
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end gap-2 mt-1", children: [
163536
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "outline", className: "text-xs text-muted-foreground", children: [
163537
- /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { className: "size-3" }),
163538
- "Queued"
163539
- ] }),
163540
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
163541
- "button",
163731
+ function QueuedMessageBubble({
163732
+ id: id28,
163733
+ text: text2,
163734
+ files,
163735
+ onCancel,
163736
+ onEdit
163737
+ }) {
163738
+ const [editing, setEditing] = reactExports.useState(false);
163739
+ const [draft, setDraft] = reactExports.useState(text2);
163740
+ const { attributes, listeners: listeners2, setNodeRef, transform: transform2, transition, isDragging } = useSortable({
163741
+ id: id28
163742
+ });
163743
+ const sortableStyle = {
163744
+ transform: CSS$1.Translate.toString(transform2),
163745
+ transition,
163746
+ opacity: isDragging ? 0.4 : void 0
163747
+ };
163748
+ const openEditor = reactExports.useCallback(() => {
163749
+ setDraft(text2);
163750
+ setEditing(true);
163751
+ }, [text2]);
163752
+ const handleSave = reactExports.useCallback(() => {
163753
+ const next2 = draft.trim();
163754
+ if (!next2) return;
163755
+ if (next2 !== text2) onEdit(next2);
163756
+ setEditing(false);
163757
+ }, [draft, text2, onEdit]);
163758
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
163759
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
163760
+ "div",
163761
+ {
163762
+ ref: setNodeRef,
163763
+ style: sortableStyle,
163764
+ className: "group is-user flex w-full max-w-[90%] flex-col items-end ml-auto justify-end opacity-60",
163765
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 max-w-full w-fit flex-col overflow-hidden rounded-md bg-secondary text-foreground", children: [
163766
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
163767
+ "button",
163768
+ {
163769
+ type: "button",
163770
+ ...attributes,
163771
+ ...listeners2,
163772
+ "aria-label": "Reorder queued message",
163773
+ className: "flex w-full items-center justify-center border-b border-border/30 bg-muted/30 py-0.5 text-muted-foreground/60 cursor-grab touch-none transition-colors hover:bg-muted/50 hover:text-muted-foreground active:cursor-grabbing",
163774
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(GripHorizontal, { className: "size-3.5" })
163775
+ }
163776
+ ),
163777
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 break-words text-sm px-3 py-2", children: [
163778
+ files?.map((file, idx) => /* @__PURE__ */ jsxRuntimeExports.jsx(MessageFilePart, { part: { type: "file", ...file } }, `queued-file-${idx}`)),
163779
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
163780
+ "button",
163781
+ {
163782
+ type: "button",
163783
+ onClick: openEditor,
163784
+ className: "-mx-1 cursor-pointer rounded px-1 text-left transition-colors hover:bg-foreground/5",
163785
+ title: "Click to edit",
163786
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { className: "text-sm", children: text2 })
163787
+ }
163788
+ ),
163789
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end gap-2 mt-1", children: [
163790
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "outline", className: "text-xs text-muted-foreground", children: [
163791
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { className: "size-3" }),
163792
+ "Queued"
163793
+ ] }),
163794
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
163795
+ "button",
163796
+ {
163797
+ type: "button",
163798
+ onClick: onCancel,
163799
+ className: "inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive",
163800
+ children: [
163801
+ /* @__PURE__ */ jsxRuntimeExports.jsx(X$7, { className: "size-3" }),
163802
+ "Cancel"
163803
+ ]
163804
+ }
163805
+ )
163806
+ ] })
163807
+ ] })
163808
+ ] })
163809
+ }
163810
+ ),
163811
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: editing, onOpenChange: setEditing, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-[480px]", children: [
163812
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Edit queued message" }) }),
163813
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
163814
+ Textarea,
163542
163815
  {
163543
- type: "button",
163544
- onClick: onCancel,
163545
- className: "inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive",
163546
- children: [
163547
- /* @__PURE__ */ jsxRuntimeExports.jsx(X$7, { className: "size-3" }),
163548
- "Cancel"
163549
- ]
163816
+ value: draft,
163817
+ onChange: (e2) => setDraft(e2.target.value),
163818
+ className: "min-h-[120px] text-sm",
163819
+ autoFocus: true,
163820
+ onKeyDown: (e2) => {
163821
+ if (e2.key === "Enter" && (e2.metaKey || e2.ctrlKey)) {
163822
+ e2.preventDefault();
163823
+ handleSave();
163824
+ }
163825
+ }
163550
163826
  }
163551
- )
163552
- ] })
163553
- ] }) });
163827
+ ),
163828
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogFooter, { children: [
163829
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outline", onClick: () => setEditing(false), children: "Cancel" }),
163830
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { onClick: handleSave, disabled: !draft.trim(), children: "Save" })
163831
+ ] })
163832
+ ] }) })
163833
+ ] });
163554
163834
  }
163555
163835
  const settingsKey = () => ["settings.get"];
163556
163836
  const chatKey = (chatId) => ["chats.get", chatId];
@@ -163932,7 +164212,7 @@ const closeTabRef = {
163932
164212
  const RightHeaderActions = React$1.memo(function RightHeaderActions22(props) {
163933
164213
  const { onAdd: onAdd2, onSplit } = addTabRef.current;
163934
164214
  const groupId = props.group.id;
163935
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [
164215
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full items-center", children: [
163936
164216
  /* @__PURE__ */ jsxRuntimeExports.jsx(
163937
164217
  "button",
163938
164218
  {
@@ -164266,7 +164546,7 @@ const PANEL_SHORTCUTS = {
164266
164546
  browser: "⌘B"
164267
164547
  };
164268
164548
  const DockviewTerminalContainer = reactExports.lazy(
164269
- () => import("./DockviewTerminalContainer-B7m50Lcc.js").then((m2) => ({
164549
+ () => import("./DockviewTerminalContainer-Db_wkLqm.js").then((m2) => ({
164270
164550
  default: m2.DockviewTerminalContainer
164271
164551
  }))
164272
164552
  );
@@ -164382,17 +164662,7 @@ function BadgeTab(props) {
164382
164662
  children: [
164383
164663
  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
164664
  /* @__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
- )
164665
+ 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
164666
  ]
164397
164667
  }
164398
164668
  ) });
@@ -165432,7 +165702,7 @@ function CronjobCard({
165432
165702
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
165433
165703
  "div",
165434
165704
  {
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" : ""}`,
165705
+ 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
165706
  children: [
165437
165707
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
165438
165708
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -165978,7 +166248,7 @@ function TaskCard({
165978
166248
  setActing(false);
165979
166249
  }
165980
166250
  }, [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: [
166251
+ 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
166252
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
165983
166253
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "line-clamp-2 min-w-0 flex-1 text-sm font-medium text-foreground", children: task.prompt }),
165984
166254
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -167524,10 +167794,10 @@ function extractWorkspaceId(pathname) {
167524
167794
  if (!encoded) return null;
167525
167795
  return decodeURIComponent(encoded);
167526
167796
  }
167797
+ const INITIAL_HISTORY = { stack: [], cursor: -1 };
167527
167798
  function useNavigationHistory(routerNavigate, capabilities2) {
167528
167799
  const pathname = useRouterState({ select: (s2) => s2.location.pathname });
167529
- const stackRef = reactExports.useRef([]);
167530
- const cursorRef = reactExports.useRef(-1);
167800
+ const [history2, setHistory] = reactExports.useState(INITIAL_HISTORY);
167531
167801
  const navigatingRef = reactExports.useRef(false);
167532
167802
  reactExports.useEffect(() => {
167533
167803
  const wsId = extractWorkspaceId(pathname);
@@ -167536,27 +167806,43 @@ function useNavigationHistory(routerNavigate, capabilities2) {
167536
167806
  navigatingRef.current = false;
167537
167807
  return;
167538
167808
  }
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;
167809
+ setHistory((prev2) => {
167810
+ if (prev2.cursor >= 0 && prev2.stack[prev2.cursor] === wsId) return prev2;
167811
+ const stack = [...prev2.stack.slice(0, prev2.cursor + 1), wsId];
167812
+ return { stack, cursor: stack.length - 1 };
167813
+ });
167544
167814
  }, [pathname]);
167545
167815
  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);
167816
+ let didMove = false;
167817
+ let targetWsId;
167818
+ setHistory((prev2) => {
167819
+ if (prev2.cursor <= 0) return prev2;
167820
+ didMove = true;
167821
+ const cursor = prev2.cursor - 1;
167822
+ targetWsId = prev2.stack[cursor];
167823
+ return { stack: prev2.stack, cursor };
167824
+ });
167825
+ if (didMove && targetWsId) {
167826
+ navigatingRef.current = true;
167827
+ const href = capabilities2.getWorkspaceHref?.(targetWsId);
167828
+ if (href) routerNavigate(href);
167829
+ }
167552
167830
  }, [routerNavigate, capabilities2]);
167553
167831
  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);
167832
+ let didMove = false;
167833
+ let targetWsId;
167834
+ setHistory((prev2) => {
167835
+ if (prev2.cursor >= prev2.stack.length - 1) return prev2;
167836
+ didMove = true;
167837
+ const cursor = prev2.cursor + 1;
167838
+ targetWsId = prev2.stack[cursor];
167839
+ return { stack: prev2.stack, cursor };
167840
+ });
167841
+ if (didMove && targetWsId) {
167842
+ navigatingRef.current = true;
167843
+ const href = capabilities2.getWorkspaceHref?.(targetWsId);
167844
+ if (href) routerNavigate(href);
167845
+ }
167560
167846
  }, [routerNavigate, capabilities2]);
167561
167847
  reactExports.useEffect(() => {
167562
167848
  const handler = (e2) => {
@@ -167570,6 +167856,12 @@ function useNavigationHistory(routerNavigate, capabilities2) {
167570
167856
  window.addEventListener("keydown", handler, true);
167571
167857
  return () => window.removeEventListener("keydown", handler, true);
167572
167858
  }, [goBack, goForward]);
167859
+ return {
167860
+ goBack,
167861
+ goForward,
167862
+ canGoBack: history2.cursor > 0,
167863
+ canGoForward: history2.cursor >= 0 && history2.cursor < history2.stack.length - 1
167864
+ };
167573
167865
  }
167574
167866
  const ZOOM_LEVEL_KEY = "band:zoom-level";
167575
167867
  const DEFAULT_ZOOM = 1;
@@ -167674,14 +167966,14 @@ const Route$8 = createRootRoute({
167674
167966
  { title: "Band" },
167675
167967
  { name: "apple-mobile-web-app-capable", content: "yes" },
167676
167968
  { name: "apple-mobile-web-app-status-bar-style", content: "black-translucent" },
167677
- { name: "theme-color", content: "#181818" }
167969
+ { name: "theme-color", content: "#1e1e1e" }
167678
167970
  ]
167679
167971
  }),
167680
167972
  component: RootLayout,
167681
167973
  notFoundComponent: NotFound
167682
167974
  });
167683
167975
  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: [
167976
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-4 p-8 text-center", children: [
167685
167977
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-4xl font-bold", children: "404" }),
167686
167978
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: "Page not found" }),
167687
167979
  /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/", className: "text-sm text-primary underline", children: "Back to dashboard" })
@@ -167772,7 +168064,7 @@ function AppShell() {
167772
168064
  };
167773
168065
  }, [router2]);
167774
168066
  const routerNavigate = reactExports.useCallback((href) => router2.navigate({ to: href }), [router2]);
167775
- useNavigationHistory(routerNavigate, capabilities);
168067
+ const navigationHistory = useNavigationHistory(routerNavigate, capabilities);
167776
168068
  useZoom();
167777
168069
  const savedWidth = loadSidebarWidth();
167778
168070
  const defaultLayout = savedWidth ? { sidebar: savedWidth, main: 100 - savedWidth } : void 0;
@@ -167838,8 +168130,8 @@ function AppShell() {
167838
168130
  if (!useDesktopLayout) {
167839
168131
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {});
167840
168132
  }
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(
168133
+ 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: [
168134
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
167843
168135
  DesktopTitleBar,
167844
168136
  {
167845
168137
  onToggleSidebar: toggleSidebar,
@@ -167849,7 +168141,11 @@ function AppShell() {
167849
168141
  onCopyPath: activeWorkspaceId ? handleCopyPath : void 0,
167850
168142
  panelItems: activeWorkspaceId ? panelItems : void 0,
167851
168143
  hiddenPanels: activeWorkspaceId ? hiddenPanels : void 0,
167852
- onTogglePanelVisibility: activeWorkspaceId ? handleTogglePanelVisibility : void 0
168144
+ onTogglePanelVisibility: activeWorkspaceId ? handleTogglePanelVisibility : void 0,
168145
+ onGoBack: navigationHistory.goBack,
168146
+ onGoForward: navigationHistory.goForward,
168147
+ canGoBack: navigationHistory.canGoBack,
168148
+ canGoForward: navigationHistory.canGoForward
167853
168149
  }
167854
168150
  ),
167855
168151
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -167909,11 +168205,11 @@ function RootLayout() {
167909
168205
  ] })
167910
168206
  ] });
167911
168207
  }
167912
- const $$splitComponentImporter$7 = () => import("./index-ClnAaUnc.js");
168208
+ const $$splitComponentImporter$7 = () => import("./index-CXKXKZfF.js");
167913
168209
  const Route$7 = createFileRoute("/")({
167914
168210
  component: lazyRouteComponent($$splitComponentImporter$7, "component")
167915
168211
  });
167916
- const $$splitComponentImporter$6 = () => import("./workspace._workspaceId-Ca5XltsV.js");
168212
+ const $$splitComponentImporter$6 = () => import("./workspace._workspaceId-BzntZkG8.js");
167917
168213
  const Route$6 = createFileRoute("/workspace/$workspaceId")({
167918
168214
  component: lazyRouteComponent($$splitComponentImporter$6, "component")
167919
168215
  });
@@ -167932,11 +168228,11 @@ const FindInFileContext = reactExports.createContext({
167932
168228
  function useFindInFileContext() {
167933
168229
  return reactExports.useContext(FindInFileContext);
167934
168230
  }
167935
- const $$splitComponentImporter$5 = () => import("./workspace._workspaceId.index-C2U_2sVz.js");
168231
+ const $$splitComponentImporter$5 = () => import("./workspace._workspaceId.index-BZTlk3td.js");
167936
168232
  const Route$5 = createFileRoute("/workspace/$workspaceId/")({
167937
168233
  component: lazyRouteComponent($$splitComponentImporter$5, "component")
167938
168234
  });
167939
- const $$splitComponentImporter$4 = () => import("./workspace._workspaceId.terminal-i2FfY7JG.js");
168235
+ const $$splitComponentImporter$4 = () => import("./workspace._workspaceId.terminal-DrOsp1dy.js");
167940
168236
  const Route$4 = createFileRoute("/workspace/$workspaceId/terminal")({
167941
168237
  component: lazyRouteComponent($$splitComponentImporter$4, "component")
167942
168238
  });
@@ -167944,15 +168240,15 @@ const $$splitComponentImporter$3 = () => import("./workspace._workspaceId.code-C
167944
168240
  const Route$3 = createFileRoute("/workspace/$workspaceId/code")({
167945
168241
  component: lazyRouteComponent($$splitComponentImporter$3, "component")
167946
168242
  });
167947
- const $$splitComponentImporter$2 = () => import("./workspace._workspaceId.changes-z2xCX4Ct.js");
168243
+ const $$splitComponentImporter$2 = () => import("./workspace._workspaceId.changes-DlHr6JjN.js");
167948
168244
  const Route$2 = createFileRoute("/workspace/$workspaceId/changes")({
167949
168245
  component: lazyRouteComponent($$splitComponentImporter$2, "component")
167950
168246
  });
167951
- const $$splitComponentImporter$1 = () => import("./workspace._workspaceId.code.index-DTziHng0.js");
168247
+ const $$splitComponentImporter$1 = () => import("./workspace._workspaceId.code.index-BEOcVHwT.js");
167952
168248
  const Route$1 = createFileRoute("/workspace/$workspaceId/code/")({
167953
168249
  component: lazyRouteComponent($$splitComponentImporter$1, "component")
167954
168250
  });
167955
- const $$splitComponentImporter = () => import("./workspace._workspaceId.code._-DQTK_1av.js");
168251
+ const $$splitComponentImporter = () => import("./workspace._workspaceId.code._-C0plkbYn.js");
167956
168252
  const Route2 = createFileRoute("/workspace/$workspaceId/code/$")({
167957
168253
  component: lazyRouteComponent($$splitComponentImporter, "component")
167958
168254
  });