@band-app/server 0.26.1 → 0.27.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 (159) hide show
  1. package/dist/client/assets/{DockviewBrowserContainer-CNieygqn.js → DockviewBrowserContainer-CGJxcrlC.js} +1 -1
  2. package/dist/client/assets/{DockviewTerminalContainer-rpSQamnG.js → DockviewTerminalContainer-Ch1hGjB3.js} +2 -2
  3. package/dist/client/assets/{TerminalPanel-BSSgNpJl.js → TerminalPanel-D6316IRS.js} +1 -1
  4. package/dist/client/assets/{_basePickBy-D4sc4sgx.js → _basePickBy-CmBV18rc.js} +1 -1
  5. package/dist/client/assets/_baseUniq-U0BTd0Rz.js +1 -0
  6. package/dist/client/assets/{arc-BP7O8Ofj.js → arc-BsQxyIE1.js} +1 -1
  7. package/dist/client/assets/{architectureDiagram-VXUJARFQ-CLeIf9de.js → architectureDiagram-VXUJARFQ-utzNWMoy.js} +1 -1
  8. package/dist/client/assets/{blockDiagram-VD42YOAC-GF1d7qvY.js → blockDiagram-VD42YOAC-xxfCrQvu.js} +1 -1
  9. package/dist/client/assets/{c4Diagram-YG6GDRKO-CPOD-mTp.js → c4Diagram-YG6GDRKO-CYbkaWJ4.js} +1 -1
  10. package/dist/client/assets/channel-CpSzKNMk.js +1 -0
  11. package/dist/client/assets/{chunk-4BX2VUAB-lgknUVTn.js → chunk-4BX2VUAB-DKCxjb37.js} +1 -1
  12. package/dist/client/assets/{chunk-55IACEB6-BZZgpdJp.js → chunk-55IACEB6-B9W9ltjh.js} +1 -1
  13. package/dist/client/assets/{chunk-B4BG7PRW-D5j_7n78.js → chunk-B4BG7PRW-0MSaUsdv.js} +1 -1
  14. package/dist/client/assets/{chunk-DI55MBZ5-CNWAKrv-.js → chunk-DI55MBZ5-K1HZY-B4.js} +1 -1
  15. package/dist/client/assets/{chunk-FMBD7UC4-C4ZfwGxd.js → chunk-FMBD7UC4-DL19-zkO.js} +1 -1
  16. package/dist/client/assets/{chunk-QN33PNHL-B-1Abtg1.js → chunk-QN33PNHL-Bjj5Xo40.js} +1 -1
  17. package/dist/client/assets/{chunk-QZHKN3VN-BpzKtAWD.js → chunk-QZHKN3VN-B7u9UlRD.js} +1 -1
  18. package/dist/client/assets/{chunk-TZMSLE5B-SXcvrXdW.js → chunk-TZMSLE5B-1C4Ii4Su.js} +1 -1
  19. package/dist/client/assets/classDiagram-2ON5EDUG-BgIuIwCk.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-WZHVMYZB-BgIuIwCk.js +1 -0
  21. package/dist/client/assets/clone-BnxcJIG7.js +1 -0
  22. package/dist/client/assets/{cose-bilkent-S5V4N54A-Bct5sd16.js → cose-bilkent-S5V4N54A-PGTI-4nv.js} +1 -1
  23. package/dist/client/assets/{dagre-6UL2VRFP-DLF3mura.js → dagre-6UL2VRFP-SduuRX7O.js} +1 -1
  24. package/dist/client/assets/{diagram-PSM6KHXK-ChWVmXI7.js → diagram-PSM6KHXK-CBSJaBQx.js} +1 -1
  25. package/dist/client/assets/{diagram-QEK2KX5R-DhzUuHM4.js → diagram-QEK2KX5R-BtO_0TYR.js} +1 -1
  26. package/dist/client/assets/{diagram-S2PKOQOG-D1i0mdIg.js → diagram-S2PKOQOG-CU-3HUn7.js} +1 -1
  27. package/dist/client/assets/{erDiagram-Q2GNP2WA-BRj386XH.js → erDiagram-Q2GNP2WA-B7YcBWa7.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-DStEWZIF.js → flowDiagram-NV44I4VS-B_exjXhH.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-B9PBn8dz.js → ganttDiagram-JELNMOA3-K_s2lhZo.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-laJAIbJ3.js → gitGraphDiagram-V2S2FVAM-Cy8dWU3T.js} +1 -1
  31. package/dist/client/assets/{graph-CbQhcBO1.js → graph-F7Go3eb_.js} +1 -1
  32. package/dist/client/assets/{highlighted-body-B3W2YXNL-DBxcPCX_.js → highlighted-body-B3W2YXNL-JIbcl_Gj.js} +1 -1
  33. package/dist/client/assets/{index-DGvFFhe0.js → index-2I1ScAnS.js} +1 -1
  34. package/dist/client/assets/{index-Dev2D0I9.js → index-BwLCRFTA.js} +1 -1
  35. package/dist/client/assets/{index-CWLwMHnR.js → index-C8kfQI4r.js} +1 -1
  36. package/dist/client/assets/{index-86TW9gUX.js → index-Cg4Lw3Yz.js} +1 -1
  37. package/dist/client/assets/{index-DsEib-PT.js → index-Ckir_3bE.js} +1 -1
  38. package/dist/client/assets/{index-Ct5D5rHM.js → index-CpaiC9qY.js} +1 -1
  39. package/dist/client/assets/{index-CfO5yuew.js → index-Cy5Bsovp.js} +1 -1
  40. package/dist/client/assets/{index-CyO2GJFA.js → index-CyKK9pLi.js} +1 -1
  41. package/dist/client/assets/{index-Cd5F9rkU.js → index-D2dWAqXm.js} +1 -1
  42. package/dist/client/assets/{index-cRf4PoQf.js → index-D3_75AIk.js} +1 -1
  43. package/dist/client/assets/{index-C5U256M6.js → index-DKc3v7ID.js} +1 -1
  44. package/dist/client/assets/{index-CLa-0ZwC.js → index-DR5Cdr17.js} +1 -1
  45. package/dist/client/assets/{index-9XCTqmje.js → index-DtwjNrea.js} +1 -1
  46. package/dist/client/assets/{index-BqMDNoZp.js → index-O8FbcZ5P.js} +1 -1
  47. package/dist/client/assets/{index-Cd26dS4P.js → index-QMtr_UY_.js} +1 -1
  48. package/dist/client/assets/{index-CK16S7B-.js → index-T2mcmOLE.js} +1 -1
  49. package/dist/client/assets/{index-D7C86bYw.js → index-VnMyG1bC.js} +1 -1
  50. package/dist/client/assets/{index-BzwcSYCa.js → index-qr9Za9SW.js} +1 -1
  51. package/dist/client/assets/{infoDiagram-HS3SLOUP-0QLwbPV-.js → infoDiagram-HS3SLOUP-DwTbDgO5.js} +1 -1
  52. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-xGdny9DO.js → journeyDiagram-XKPGCS4Q-Di8V2Erc.js} +1 -1
  53. package/dist/client/assets/{kanban-definition-3W4ZIXB7-Don0Okra.js → kanban-definition-3W4ZIXB7-CsLOWnzV.js} +1 -1
  54. package/dist/client/assets/{layout-WN5NQdX3.js → layout-C3qPiTeF.js} +1 -1
  55. package/dist/client/assets/{main-Bbh731ex.js → main-C0_EuI87.js} +207 -207
  56. package/dist/client/assets/{main-DpPgdfV2.css → main-DFLn265W.css} +1 -1
  57. package/dist/client/assets/{mindmap-definition-VGOIOE7T-CWF6i4Zi.js → mindmap-definition-VGOIOE7T-CTcR694h.js} +1 -1
  58. package/dist/client/assets/{pieDiagram-ADFJNKIX-CXk9oMu_.js → pieDiagram-ADFJNKIX-B-gdfE-T.js} +1 -1
  59. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-D2s0zA4_.js → quadrantDiagram-AYHSOK5B-B0wmCtBi.js} +1 -1
  60. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-B5g3eZDa.js → requirementDiagram-UZGBJVZJ-B1DgDXmR.js} +1 -1
  61. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BKYy9nLE.js → sankeyDiagram-TZEHDZUN-B-onab8X.js} +1 -1
  62. package/dist/client/assets/{sequenceDiagram-WL72ISMW-Of-7JsaP.js → sequenceDiagram-WL72ISMW-B8sIiN1d.js} +1 -1
  63. package/dist/client/assets/{square-terminal-wqR_rG8g.js → square-terminal-Bi7EDEf7.js} +1 -1
  64. package/dist/client/assets/{stateDiagram-FKZM4ZOC-CLygxzeu.js → stateDiagram-FKZM4ZOC-CTETJ7q1.js} +1 -1
  65. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BvVewf6E.js +1 -0
  66. package/dist/client/assets/{timeline-definition-IT6M3QCI-HEdTZ9lg.js → timeline-definition-IT6M3QCI-DYNUQPry.js} +1 -1
  67. package/dist/client/assets/{treemap-GDKQZRPO-BLCSYUuQ.js → treemap-GDKQZRPO-extyB4z8.js} +1 -1
  68. package/dist/client/assets/workspace._workspaceId-C8Z_0tr5.js +2 -0
  69. package/dist/client/assets/{workspace._workspaceId-CvIXlcVP.js → workspace._workspaceId-D0Fj26bF.js} +1 -1
  70. package/dist/client/assets/{xychartDiagram-PRI3JC2R-Da4m2pn4.js → xychartDiagram-PRI3JC2R-BtUY3rKA.js} +1 -1
  71. package/dist/server/assets/{DockviewBrowserContainer-BxukCnRj.js → DockviewBrowserContainer-BjdfNGy8.js} +1 -1
  72. package/dist/server/assets/{DockviewTerminalContainer-DQYYK-79.js → DockviewTerminalContainer-CwXOWGN4.js} +3 -3
  73. package/dist/server/assets/{TerminalPanel-TU2tfPvh.js → TerminalPanel-BkB-gDqg.js} +1 -1
  74. package/dist/server/assets/{_basePickBy-BSdtfHB0.js → _basePickBy-8tzGwV15.js} +2 -2
  75. package/dist/server/assets/{_baseUniq-DkSqb3YR.js → _baseUniq-CTXsu8pj.js} +1 -1
  76. package/dist/server/assets/_tanstack-start-manifest_v-Bu_aDRUe.js +4 -0
  77. package/dist/server/assets/{arc-DxGkupwT.js → arc-DfLShGGX.js} +1 -1
  78. package/dist/server/assets/{architecture-7HQA4BMR-N3irVT54.js → architecture-7HQA4BMR-B3ThBUTU.js} +6 -6
  79. package/dist/server/assets/{architectureDiagram-VXUJARFQ-B0sHbG9y.js → architectureDiagram-VXUJARFQ-CWzfFX__.js} +6 -6
  80. package/dist/server/assets/{blockDiagram-VD42YOAC-1FtDdqBo.js → blockDiagram-VD42YOAC-DCaPOrQR.js} +6 -6
  81. package/dist/server/assets/{c4Diagram-YG6GDRKO-Bw9IfZMM.js → c4Diagram-YG6GDRKO-BU-dO_db.js} +2 -2
  82. package/dist/server/assets/{channel-D4IKgr-x.js → channel-Bs5JejOk.js} +1 -1
  83. package/dist/server/assets/{chunk-4BX2VUAB-ByMuI7Fp.js → chunk-4BX2VUAB-BuiyFSiN.js} +1 -1
  84. package/dist/server/assets/{chunk-55IACEB6-BAdInBZF.js → chunk-55IACEB6-CPYazKTg.js} +1 -1
  85. package/dist/server/assets/{chunk-B4BG7PRW-C8vV9ouR.js → chunk-B4BG7PRW-Kknt_fVn.js} +4 -4
  86. package/dist/server/assets/{chunk-DI55MBZ5-BnPjxwDt.js → chunk-DI55MBZ5-9Ix3Oo-P.js} +3 -3
  87. package/dist/server/assets/{chunk-FMBD7UC4-DxER1-MJ.js → chunk-FMBD7UC4-OhxFQXHM.js} +1 -1
  88. package/dist/server/assets/{chunk-QN33PNHL-DzFGKjvS.js → chunk-QN33PNHL-LsrLj9Ip.js} +1 -1
  89. package/dist/server/assets/{chunk-QZHKN3VN-DKIreZRT.js → chunk-QZHKN3VN-BwJQ_Q1g.js} +1 -1
  90. package/dist/server/assets/{chunk-TZMSLE5B-Dyw_E6V-.js → chunk-TZMSLE5B-Bl5v6Ae6.js} +1 -1
  91. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-Bu-X2Gbw.js → classDiagram-2ON5EDUG-C6GK2Aoj.js} +5 -5
  92. package/dist/server/assets/{classDiagram-2ON5EDUG-Bu-X2Gbw.js → classDiagram-v2-WZHVMYZB-C6GK2Aoj.js} +5 -5
  93. package/dist/server/assets/{clone-CwBTz6wc.js → clone-DqNWgXxT.js} +1 -1
  94. package/dist/server/assets/{cose-bilkent-S5V4N54A-BsFFjtud.js → cose-bilkent-S5V4N54A-qzfBNLDd.js} +1 -1
  95. package/dist/server/assets/{dagre-6UL2VRFP-CdgGxkBj.js → dagre-6UL2VRFP-DNZS86ly.js} +6 -6
  96. package/dist/server/assets/{diagram-PSM6KHXK-C-LWq-ju.js → diagram-PSM6KHXK-C6ImURyq.js} +7 -7
  97. package/dist/server/assets/{diagram-QEK2KX5R-CFa3sLiJ.js → diagram-QEK2KX5R-diOF3OBK.js} +6 -6
  98. package/dist/server/assets/{diagram-S2PKOQOG-CyAHBi5H.js → diagram-S2PKOQOG-CP1GoHeA.js} +6 -6
  99. package/dist/server/assets/{erDiagram-Q2GNP2WA-COrhvUZD.js → erDiagram-Q2GNP2WA-DnkGfUio.js} +4 -4
  100. package/dist/server/assets/{flowDiagram-NV44I4VS-DxR9v2a8.js → flowDiagram-NV44I4VS-B1dpItw0.js} +5 -5
  101. package/dist/server/assets/{ganttDiagram-JELNMOA3-COoz3lCc.js → ganttDiagram-JELNMOA3-CfB_h9HP.js} +1 -1
  102. package/dist/server/assets/{gitGraph-G5XIXVHT-BtVXZr1d.js → gitGraph-G5XIXVHT-uIxmtjOh.js} +6 -6
  103. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-DrH_1hhd.js → gitGraphDiagram-V2S2FVAM-BWi1KybI.js} +7 -7
  104. package/dist/server/assets/{graph-BqKB55Uo.js → graph-BpINl381.js} +2 -2
  105. package/dist/server/assets/{highlighted-body-B3W2YXNL-C6VVTevi.js → highlighted-body-B3W2YXNL-X1-_bh6z.js} +1 -1
  106. package/dist/server/assets/{index-DLOoQUcR.js → index-BIn7ueGd.js} +2 -2
  107. package/dist/server/assets/{index-Bkx5Foei.js → index-BUCj1Yl_.js} +4 -4
  108. package/dist/server/assets/{index-BvmYCz2n.js → index-B_uZBCQp.js} +2 -2
  109. package/dist/server/assets/{index-DIZ-5H2r.js → index-Bcu0C2js.js} +3 -3
  110. package/dist/server/assets/{index-DAqzmsPy.js → index-Bm4xacwx.js} +1 -1
  111. package/dist/server/assets/{index-CQ12PKsH.js → index-Bqv1Yqbp.js} +2 -2
  112. package/dist/server/assets/{index-Cdu8cpPJ.js → index-CF9A2ZU-.js} +2 -2
  113. package/dist/server/assets/{index-DeNkOFC0.js → index-CGqMcWZv.js} +5 -5
  114. package/dist/server/assets/{index-IxUUG90S.js → index-CecHlx7n.js} +1 -1
  115. package/dist/server/assets/{index-ChJXmItC.js → index-Ch5w2qx-.js} +2 -2
  116. package/dist/server/assets/{index-FVQ1p-ZQ.js → index-Cuy6v4sQ.js} +5 -5
  117. package/dist/server/assets/{index-BHRz1U1c.js → index-CyY0UzHL.js} +2 -2
  118. package/dist/server/assets/{index-DgpTNIz9.js → index-D3oif9Da.js} +2 -2
  119. package/dist/server/assets/{index-CkbMi8ML.js → index-DEYBFbnW.js} +2 -2
  120. package/dist/server/assets/{index-Dnp4nLLc.js → index-DXfbzq6y.js} +2 -2
  121. package/dist/server/assets/{index-BUnwtpbx.js → index-IM5Lznch.js} +3 -3
  122. package/dist/server/assets/{index-nrGOopfX.js → index-YfWUTx8U.js} +2 -2
  123. package/dist/server/assets/{index-fzh31gPI.js → index-oLF27Nfu.js} +2 -2
  124. package/dist/server/assets/{info-VBDWY6EO-C1EJd9ah.js → info-VBDWY6EO-CqVqNO_U.js} +6 -6
  125. package/dist/server/assets/{infoDiagram-HS3SLOUP-BgR_JFRD.js → infoDiagram-HS3SLOUP-LstCwT5M.js} +5 -5
  126. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-TInLDEBY.js → journeyDiagram-XKPGCS4Q-Bq4xdGvc.js} +4 -4
  127. package/dist/server/assets/{kanban-definition-3W4ZIXB7-Ds9-Rky6.js → kanban-definition-3W4ZIXB7-Cz8QJrE-.js} +2 -2
  128. package/dist/server/assets/{layout-02chZ-oO.js → layout-BR6KziPh.js} +4 -4
  129. package/dist/server/assets/{mermaid-3ZIDBTTL-CF0njLRi.js → mermaid-3ZIDBTTL-CX1H3heG.js} +1 -1
  130. package/dist/server/assets/{mermaid-parser.core-DGyqTX8L.js → mermaid-parser.core-DErnTWrV.js} +11 -11
  131. package/dist/server/assets/{mindmap-definition-VGOIOE7T-B2VHBojz.js → mindmap-definition-VGOIOE7T-OX1eekPS.js} +3 -3
  132. package/dist/server/assets/{packet-DYOGHKS2-BPQQ4vpy.js → packet-DYOGHKS2-C8FvmUVf.js} +6 -6
  133. package/dist/server/assets/{pie-VRWISCQL-D_ISlmZV.js → pie-VRWISCQL-Bb_jFdxC.js} +6 -6
  134. package/dist/server/assets/{pieDiagram-ADFJNKIX-DfLOLRYh.js → pieDiagram-ADFJNKIX-CyhwaYTd.js} +7 -7
  135. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-C-S0tUnS.js → quadrantDiagram-AYHSOK5B-BRzFRm7k.js} +1 -1
  136. package/dist/server/assets/{radar-ZZBFDIW7-Btz0_zMX.js → radar-ZZBFDIW7-C2cWeYfK.js} +6 -6
  137. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-CX-LPkZO.js → requirementDiagram-UZGBJVZJ-fJ6FCY2X.js} +3 -3
  138. package/dist/server/assets/{router-6QHcrvmQ.js → router-BSilWMbB.js} +384 -441
  139. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-C3bzmTeJ.js → sankeyDiagram-TZEHDZUN-DkGxRBc4.js} +1 -1
  140. package/dist/server/assets/{sequenceDiagram-WL72ISMW-BlZBlq8N.js → sequenceDiagram-WL72ISMW-Y9h8QzpA.js} +3 -3
  141. package/dist/server/assets/{square-terminal-1wS601vv.js → square-terminal-lPOPYTqx.js} +1 -1
  142. package/dist/server/assets/{stateDiagram-FKZM4ZOC-BIRMcaiS.js → stateDiagram-FKZM4ZOC-D9Xo5bg5.js} +8 -8
  143. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-D2NYWxQw.js → stateDiagram-v2-4FDKWEC3-BBj6Aiwx.js} +4 -4
  144. package/dist/server/assets/{timeline-definition-IT6M3QCI-BiY_XUAp.js → timeline-definition-IT6M3QCI-oAS-tbgM.js} +2 -2
  145. package/dist/server/assets/{treemap-GDKQZRPO-CYGEAd8a.js → treemap-GDKQZRPO-BA7EQwOb.js} +6 -6
  146. package/dist/server/assets/{workspace._workspaceId-CHMs1pW4.js → workspace._workspaceId-BAO3HXDS.js} +1 -1
  147. package/dist/server/assets/{workspace._workspaceId-MLWQzLSj.js → workspace._workspaceId-CREreypp.js} +9 -3
  148. package/dist/server/assets/{xychartDiagram-PRI3JC2R-Cv8buTCr.js → xychartDiagram-PRI3JC2R-CYgqsSC_.js} +1 -1
  149. package/dist/server/server.js +2 -2
  150. package/dist/start-server.mjs +172 -163
  151. package/package.json +4 -4
  152. package/dist/client/assets/_baseUniq-CExXcLYT.js +0 -1
  153. package/dist/client/assets/channel-BAHGob6X.js +0 -1
  154. package/dist/client/assets/classDiagram-2ON5EDUG-_5AM6YM0.js +0 -1
  155. package/dist/client/assets/classDiagram-v2-WZHVMYZB-_5AM6YM0.js +0 -1
  156. package/dist/client/assets/clone-C12DbMN-.js +0 -1
  157. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D3J4rLvX.js +0 -1
  158. package/dist/client/assets/workspace._workspaceId-9mP5lL7t.js +0 -2
  159. package/dist/server/assets/_tanstack-start-manifest_v-CjnZwsJN.js +0 -4
@@ -114728,8 +114728,24 @@ function SetupStatusIndicator({ setup }) {
114728
114728
  return null;
114729
114729
  }
114730
114730
 
114731
- // src/dashboard/components/WorkspaceCard.tsx
114731
+ // src/dashboard/components/WorkspaceLabel.tsx
114732
114732
  var import_jsx_runtime58 = __toESM(require_jsx_runtime(), 1);
114733
+ function WorkspaceLabel({
114734
+ name: name3,
114735
+ projectName,
114736
+ isActive,
114737
+ tone = "sidebar"
114738
+ }) {
114739
+ const nameClass = tone === "switcher" ? `text-foreground ${isActive ? "font-semibold" : "font-medium"}` : isActive ? "font-bold text-foreground" : "font-medium text-muted-foreground";
114740
+ const projectClass = tone === "switcher" ? "text-foreground/70" : isActive ? "text-foreground/80" : "text-muted-foreground";
114741
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col min-w-0 leading-tight", children: [
114742
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: cn("text-sm truncate", nameClass), children: name3 }),
114743
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: cn("text-xs truncate", projectClass), children: projectName })
114744
+ ] });
114745
+ }
114746
+
114747
+ // src/dashboard/components/WorkspaceCard.tsx
114748
+ var import_jsx_runtime59 = __toESM(require_jsx_runtime(), 1);
114733
114749
  var RECENT_ACTIVATION_WINDOW_MS = 300;
114734
114750
  var recentlyActivatedWorkspaceId = null;
114735
114751
  var recentlyActivatedTimer = null;
@@ -114835,21 +114851,21 @@ var WorkspaceCard = (0, import_react22.memo)(function WorkspaceCard2({
114835
114851
  });
114836
114852
  }
114837
114853
  };
114838
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenu2, { children: [
114839
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ContextMenuTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { ...containerProps, children: [
114840
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Tooltip2, { delayDuration: 800, children: [
114841
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-2 min-w-0 overflow-hidden", children: [
114854
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenu2, { children: [
114855
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ContextMenuTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { ...containerProps, children: [
114856
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Tooltip2, { delayDuration: 800, children: [
114857
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-2 min-w-0 overflow-hidden", children: [
114842
114858
  isRoot ? (
114843
114859
  // On the root card the house is AgentStatusIndicator's idle
114844
114860
  // fallback (the slot other cards use for the branch glyph),
114845
114861
  // so an active agent's status dot replaces the house rather
114846
114862
  // than sitting beside it.
114847
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114863
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
114848
114864
  AgentStatusIndicator,
114849
114865
  {
114850
114866
  agent: status?.agent,
114851
114867
  isActive,
114852
- fallback: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114868
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
114853
114869
  import_lucide_react5.Home,
114854
114870
  {
114855
114871
  "data-testid": "workspace-card__home-icon",
@@ -114858,29 +114874,22 @@ var WorkspaceCard = (0, import_react22.memo)(function WorkspaceCard2({
114858
114874
  )
114859
114875
  }
114860
114876
  )
114861
- ) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AgentStatusIndicator, { agent: status?.agent, isActive }),
114877
+ ) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AgentStatusIndicator, { agent: status?.agent, isActive }),
114862
114878
  showProjectName ? (
114863
114879
  // Pinned section: stack the branch name over the project name
114864
114880
  // as a compact two-line block so a mixed list of pinned cards
114865
114881
  // stays scannable without a long, mid-truncated
114866
- // `project/branch` string on one line.
114867
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col min-w-0 leading-tight", children: [
114868
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114869
- "span",
114870
- {
114871
- className: `text-sm truncate ${isActive ? "font-bold text-foreground" : "font-medium text-muted-foreground"}`,
114872
- children: worktree.name
114873
- }
114874
- ),
114875
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114876
- "span",
114877
- {
114878
- className: `text-xs truncate ${isActive ? "text-foreground/80" : "text-muted-foreground"}`,
114879
- children: projectName
114880
- }
114881
- )
114882
- ] })
114883
- ) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114882
+ // `project/branch` string on one line. Shared with the ⌘K
114883
+ // workspace picker via `WorkspaceLabel`.
114884
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
114885
+ WorkspaceLabel,
114886
+ {
114887
+ name: worktree.name,
114888
+ projectName,
114889
+ isActive
114890
+ }
114891
+ )
114892
+ ) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
114884
114893
  "span",
114885
114894
  {
114886
114895
  className: `text-sm truncate ${isActive ? "font-bold text-foreground" : "font-medium text-muted-foreground"}`,
@@ -114888,46 +114897,46 @@ var WorkspaceCard = (0, import_react22.memo)(function WorkspaceCard2({
114888
114897
  }
114889
114898
  )
114890
114899
  ] }) }),
114891
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipContent2, { side: "right", children: `${projectName}/${worktree.name}` })
114900
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TooltipContent2, { side: "right", children: `${projectName}/${worktree.name}` })
114892
114901
  ] }),
114893
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
114894
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(SetupStatusIndicator, { setup: setupStatus }),
114895
- !isPlain && branchStatus && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(GitStatusIndicator, { git: branchStatus.git }),
114896
- !isPlain && branchStatus && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(CIStatusIndicator, { ci: branchStatus.ci })
114902
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
114903
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(SetupStatusIndicator, { setup: setupStatus }),
114904
+ !isPlain && branchStatus && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(GitStatusIndicator, { git: branchStatus.git }),
114905
+ !isPlain && branchStatus && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CIStatusIndicator, { ci: branchStatus.ci })
114897
114906
  ] })
114898
114907
  ] }) }),
114899
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuContent2, { children: [
114900
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { onClick: () => onTogglePinned(projectName, worktree.name, isPinned), children: [
114901
- isPinned ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.PinOff, {}) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.Pin, {}),
114908
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuContent2, { children: [
114909
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { onClick: () => onTogglePinned(projectName, worktree.name, isPinned), children: [
114910
+ isPinned ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.PinOff, {}) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.Pin, {}),
114902
114911
  isPinned ? "Unpin workspace" : "Pin workspace"
114903
114912
  ] }),
114904
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ContextMenuSeparator2, {}),
114905
- capabilities.copyPath && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { onClick: () => navigator.clipboard.writeText(worktree.path), children: [
114906
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.Clipboard, {}),
114913
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ContextMenuSeparator2, {}),
114914
+ capabilities.copyPath && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { onClick: () => navigator.clipboard.writeText(worktree.path), children: [
114915
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.Clipboard, {}),
114907
114916
  "Copy path"
114908
114917
  ] }),
114909
- capabilities.revealInFinder && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { onClick: () => capabilities.revealInFinder(worktree.path), children: [
114910
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.FolderOpen, {}),
114918
+ capabilities.revealInFinder && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { onClick: () => capabilities.revealInFinder(worktree.path), children: [
114919
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.FolderOpen, {}),
114911
114920
  "Open in Finder"
114912
114921
  ] }),
114913
- worktree.hasSetup && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "setup"), children: [
114914
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.Play, {}),
114922
+ worktree.hasSetup && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "setup"), children: [
114923
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.Play, {}),
114915
114924
  "Run setup"
114916
114925
  ] }),
114917
- worktree.hasTeardown && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "teardown"), children: [
114918
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.Square, {}),
114926
+ worktree.hasTeardown && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "teardown"), children: [
114927
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.Square, {}),
114919
114928
  "Run teardown"
114920
114929
  ] }),
114921
- !isPlain && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { onClick: () => gitPull(projectName, worktree.name), children: [
114922
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.ArrowDownToLine, {}),
114930
+ !isPlain && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { onClick: () => gitPull(projectName, worktree.name), children: [
114931
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.ArrowDownToLine, {}),
114923
114932
  "Git pull"
114924
114933
  ] }),
114925
- !isPlain && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { onClick: () => gitPush(projectName, worktree.name), children: [
114926
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.ArrowUpFromLine, {}),
114934
+ !isPlain && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { onClick: () => gitPush(projectName, worktree.name), children: [
114935
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.ArrowUpFromLine, {}),
114927
114936
  "Git push"
114928
114937
  ] }),
114929
- !isPlain && worktree.name !== defaultBranch && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ContextMenuItem2, { variant: "destructive", onClick: handleDelete, children: [
114930
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react5.Trash2, {}),
114938
+ !isPlain && worktree.name !== defaultBranch && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ContextMenuItem2, { variant: "destructive", onClick: handleDelete, children: [
114939
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react5.Trash2, {}),
114931
114940
  "Delete workspace"
114932
114941
  ] })
114933
114942
  ] })
@@ -114935,7 +114944,7 @@ var WorkspaceCard = (0, import_react22.memo)(function WorkspaceCard2({
114935
114944
  });
114936
114945
 
114937
114946
  // src/dashboard/components/ProjectList.tsx
114938
- var import_jsx_runtime59 = __toESM(require_jsx_runtime(), 1);
114947
+ var import_jsx_runtime60 = __toESM(require_jsx_runtime(), 1);
114939
114948
 
114940
114949
  // src/dashboard/components/SettingsPage.tsx
114941
114950
  var import_react25 = __toESM(require_react(), 1);
@@ -114944,16 +114953,16 @@ var import_react25 = __toESM(require_react(), 1);
114944
114953
  var import_react24 = __toESM(require_react(), 1);
114945
114954
 
114946
114955
  // src/dashboard/components/settings/SettingsRow.tsx
114947
- var import_jsx_runtime60 = __toESM(require_jsx_runtime(), 1);
114956
+ var import_jsx_runtime61 = __toESM(require_jsx_runtime(), 1);
114948
114957
 
114949
114958
  // src/dashboard/components/settings/SettingsSection.tsx
114950
- var import_jsx_runtime61 = __toESM(require_jsx_runtime(), 1);
114959
+ var import_jsx_runtime62 = __toESM(require_jsx_runtime(), 1);
114951
114960
 
114952
114961
  // src/dashboard/components/SettingsPage.tsx
114953
- var import_jsx_runtime62 = __toESM(require_jsx_runtime(), 1);
114962
+ var import_jsx_runtime63 = __toESM(require_jsx_runtime(), 1);
114954
114963
 
114955
114964
  // src/dashboard/components/DashboardShell.tsx
114956
- var import_jsx_runtime63 = __toESM(require_jsx_runtime(), 1);
114965
+ var import_jsx_runtime64 = __toESM(require_jsx_runtime(), 1);
114957
114966
  var isElectron = typeof window !== "undefined" && "__BAND_DESKTOP__" in window;
114958
114967
 
114959
114968
  // src/dashboard/components/DiffView.tsx
@@ -115219,18 +115228,18 @@ function joinWorkspacePath(workspaceRoot, relativePath) {
115219
115228
  }
115220
115229
 
115221
115230
  // src/dashboard/components/FileStatusBadge.tsx
115222
- var import_jsx_runtime64 = __toESM(require_jsx_runtime(), 1);
115231
+ var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1);
115223
115232
 
115224
115233
  // src/dashboard/components/ChangesFileTree.tsx
115225
- var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1);
115234
+ var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1);
115226
115235
 
115227
115236
  // src/dashboard/components/RevertFileDialog.tsx
115228
- var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1);
115237
+ var import_jsx_runtime67 = __toESM(require_jsx_runtime(), 1);
115229
115238
 
115230
115239
  // src/dashboard/components/SearchBar.tsx
115231
115240
  var import_lucide_react6 = __toESM(require_lucide_react(), 1);
115232
115241
  var import_react34 = __toESM(require_react(), 1);
115233
- var import_jsx_runtime67 = __toESM(require_jsx_runtime(), 1);
115242
+ var import_jsx_runtime68 = __toESM(require_jsx_runtime(), 1);
115234
115243
  var DEFAULT_VISIBLE_OPTIONS = ["caseSensitive", "wholeWord", "regex"];
115235
115244
  function ToggleButton({
115236
115245
  active,
@@ -115238,7 +115247,7 @@ function ToggleButton({
115238
115247
  title,
115239
115248
  children
115240
115249
  }) {
115241
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
115250
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
115242
115251
  "button",
115243
115252
  {
115244
115253
  type: "button",
@@ -115279,7 +115288,7 @@ var SearchBar = (0, import_react34.forwardRef)(function SearchBar2({
115279
115288
  const toggleRegex = (0, import_react34.useCallback)(() => {
115280
115289
  onOptionsChange({ ...options2, regex: !options2.regex });
115281
115290
  }, [options2, onOptionsChange]);
115282
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
115291
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
115283
115292
  "div",
115284
115293
  {
115285
115294
  className: cn(
@@ -115287,8 +115296,8 @@ var SearchBar = (0, import_react34.forwardRef)(function SearchBar2({
115287
115296
  className
115288
115297
  ),
115289
115298
  children: [
115290
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react6.Search, { className: "size-3.5 shrink-0 text-muted-foreground" }),
115291
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
115299
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react6.Search, { className: "size-3.5 shrink-0 text-muted-foreground" }),
115300
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
115292
115301
  "input",
115293
115302
  {
115294
115303
  ref: inputRef,
@@ -115309,11 +115318,11 @@ var SearchBar = (0, import_react34.forwardRef)(function SearchBar2({
115309
115318
  }
115310
115319
  }
115311
115320
  ),
115312
- showCase && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ToggleButton, { active: options2.caseSensitive, onClick: toggleCase, title: "Match Case", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react6.CaseSensitive, { className: "size-4" }) }),
115313
- showWholeWord && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ToggleButton, { active: options2.wholeWord, onClick: toggleWholeWord, title: "Match Whole Word", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react6.WholeWord, { className: "size-4" }) }),
115314
- showRegex && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ToggleButton, { active: options2.regex, onClick: toggleRegex, title: "Use Regular Expression", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react6.Regex, { className: "size-4" }) }),
115315
- matchInfo && query && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: matchInfo.total > 0 ? `${matchInfo.current} of ${matchInfo.total}` : "No results" }),
115316
- onPrevious && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
115321
+ showCase && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ToggleButton, { active: options2.caseSensitive, onClick: toggleCase, title: "Match Case", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react6.CaseSensitive, { className: "size-4" }) }),
115322
+ showWholeWord && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ToggleButton, { active: options2.wholeWord, onClick: toggleWholeWord, title: "Match Whole Word", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react6.WholeWord, { className: "size-4" }) }),
115323
+ showRegex && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ToggleButton, { active: options2.regex, onClick: toggleRegex, title: "Use Regular Expression", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react6.Regex, { className: "size-4" }) }),
115324
+ matchInfo && query && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: matchInfo.total > 0 ? `${matchInfo.current} of ${matchInfo.total}` : "No results" }),
115325
+ onPrevious && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
115317
115326
  "button",
115318
115327
  {
115319
115328
  type: "button",
@@ -115321,10 +115330,10 @@ var SearchBar = (0, import_react34.forwardRef)(function SearchBar2({
115321
115330
  disabled: !matchInfo || matchInfo.total === 0,
115322
115331
  className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground disabled:opacity-30",
115323
115332
  title: "Previous match (Shift+Enter)",
115324
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react6.ChevronUp, { className: "size-3.5" })
115333
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react6.ChevronUp, { className: "size-3.5" })
115325
115334
  }
115326
115335
  ),
115327
- onNext && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
115336
+ onNext && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
115328
115337
  "button",
115329
115338
  {
115330
115339
  type: "button",
@@ -115332,17 +115341,17 @@ var SearchBar = (0, import_react34.forwardRef)(function SearchBar2({
115332
115341
  disabled: !matchInfo || matchInfo.total === 0,
115333
115342
  className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground disabled:opacity-30",
115334
115343
  title: "Next match (Enter)",
115335
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react6.ChevronDown, { className: "size-3.5" })
115344
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react6.ChevronDown, { className: "size-3.5" })
115336
115345
  }
115337
115346
  ),
115338
- onClose && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
115347
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
115339
115348
  "button",
115340
115349
  {
115341
115350
  type: "button",
115342
115351
  onClick: onClose,
115343
115352
  className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground",
115344
115353
  title: "Close (Escape)",
115345
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react6.X, { className: "size-3.5" })
115354
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_lucide_react6.X, { className: "size-3.5" })
115346
115355
  }
115347
115356
  )
115348
115357
  ]
@@ -115351,7 +115360,7 @@ var SearchBar = (0, import_react34.forwardRef)(function SearchBar2({
115351
115360
  });
115352
115361
 
115353
115362
  // src/dashboard/components/DiffView.tsx
115354
- var import_jsx_runtime68 = __toESM(require_jsx_runtime(), 1);
115363
+ var import_jsx_runtime69 = __toESM(require_jsx_runtime(), 1);
115355
115364
  var diffTheme = EditorView.theme({
115356
115365
  ".cm-insertedLine": { backgroundColor: "rgba(34, 197, 94, 0.1)" },
115357
115366
  ".cm-deletedLine": { backgroundColor: "rgba(239, 68, 68, 0.1)" },
@@ -115403,7 +115412,7 @@ var diffTheme = EditorView.theme({
115403
115412
  // src/dashboard/components/FileBrowser.tsx
115404
115413
  var import_lucide_react7 = __toESM(require_lucide_react(), 1);
115405
115414
  var import_react36 = __toESM(require_react(), 1);
115406
- var import_jsx_runtime69 = __toESM(require_jsx_runtime(), 1);
115415
+ var import_jsx_runtime70 = __toESM(require_jsx_runtime(), 1);
115407
115416
  var expandedStateCache = /* @__PURE__ */ new Map();
115408
115417
  var dirContentsCache = /* @__PURE__ */ new Map();
115409
115418
  function getCachedExpanded(wsId) {
@@ -115484,21 +115493,21 @@ function EntryNameInput({
115484
115493
  }
115485
115494
  };
115486
115495
  const Icon = kind === "directory" ? import_lucide_react7.Folder : import_lucide_react7.File;
115487
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex w-full flex-col", style: { paddingLeft: `${depth * indent + basePad}px` }, children: [
115488
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115496
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex w-full flex-col", style: { paddingLeft: `${depth * indent + basePad}px` }, children: [
115497
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115489
115498
  "div",
115490
115499
  {
115491
115500
  className: `flex items-center ${compact ? "h-[28px] gap-1 pr-3 text-[13px]" : "h-[32px] gap-1.5 pr-4 text-[15px]"}`,
115492
115501
  style: { height },
115493
115502
  children: [
115494
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "size-3.5 shrink-0" }),
115495
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115503
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "size-3.5 shrink-0" }),
115504
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115496
115505
  Icon,
115497
115506
  {
115498
115507
  className: kind === "directory" ? "size-4 shrink-0 text-blue-600 dark:text-blue-400" : "size-4 shrink-0 text-muted-foreground"
115499
115508
  }
115500
115509
  ),
115501
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115510
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115502
115511
  "input",
115503
115512
  {
115504
115513
  ref: inputRef,
@@ -115535,7 +115544,7 @@ function EntryNameInput({
115535
115544
  ]
115536
115545
  }
115537
115546
  ),
115538
- error2 && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115547
+ error2 && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115539
115548
  "div",
115540
115549
  {
115541
115550
  className: "pointer-events-none text-xs text-destructive",
@@ -115603,7 +115612,7 @@ function TreeNode2({
115603
115612
  onOpenFilePinned(entryPath);
115604
115613
  }
115605
115614
  };
115606
- const button = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115615
+ const button = /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115607
115616
  "button",
115608
115617
  {
115609
115618
  ref: isSelected ? selectedRef : void 0,
@@ -115617,15 +115626,15 @@ function TreeNode2({
115617
115626
  className: `flex w-full items-center text-left select-none hover:bg-accent/50 [-webkit-touch-callout:none] ${compact ? "h-[28px] gap-1 pr-3 text-[13px]" : "h-[32px] gap-1.5 pr-4 text-[15px]"} ${isSelected ? "bg-blue-500/30 text-foreground outline outline-1 -outline-offset-1 outline-blue-400/60 hover:bg-blue-500/30 dark:bg-blue-500/40 dark:outline-blue-400/70 dark:hover:bg-blue-500/40" : ""} ${isCut ? "opacity-50" : ""}`,
115618
115627
  style: { paddingLeft: `${depth * indent + basePad}px` },
115619
115628
  children: [
115620
- isDir ? isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.ChevronDown, { className: "size-3.5 shrink-0 text-muted-foreground/70" }) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.ChevronRight, { className: "size-3.5 shrink-0 text-muted-foreground/70" }) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "size-3.5 shrink-0" }),
115629
+ isDir ? isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.ChevronDown, { className: "size-3.5 shrink-0 text-muted-foreground/70" }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.ChevronRight, { className: "size-3.5 shrink-0 text-muted-foreground/70" }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "size-3.5 shrink-0" }),
115621
115630
  isDir ? (() => {
115622
115631
  const FolderIcon = getFolderIcon(entry.name, isExpanded);
115623
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FolderIcon, { className: "size-4 shrink-0" });
115632
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FolderIcon, { className: "size-4 shrink-0" });
115624
115633
  })() : (() => {
115625
115634
  const FileIcon = getFileIcon(entry.name);
115626
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FileIcon, { className: "size-4 shrink-0" });
115635
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(FileIcon, { className: "size-4 shrink-0" });
115627
115636
  })(),
115628
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "min-w-0 flex-1 truncate", children: entry.name })
115637
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "min-w-0 flex-1 truncate", children: entry.name })
115629
115638
  ]
115630
115639
  }
115631
115640
  );
@@ -115647,7 +115656,7 @@ function TreeNode2({
115647
115656
  // a padding div with `depth={0}` would double-apply `basePad`, shifting
115648
115657
  // the input ~4px to the right and giving it visibly less horizontal
115649
115658
  // room than the rest of the tree.
115650
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115659
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115651
115660
  EntryNameInput,
115652
115661
  {
115653
115662
  kind: isDir ? "directory" : "file",
@@ -115661,97 +115670,97 @@ function TreeNode2({
115661
115670
  },
115662
115671
  `rename-${entryPath}`
115663
115672
  )
115664
- ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115673
+ ) : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115665
115674
  ContextMenu2,
115666
115675
  {
115667
115676
  onOpenChange: (open3) => {
115668
115677
  if (open3) onSelectRow(entryPath, isDir ? "directory" : "file");
115669
115678
  },
115670
115679
  children: [
115671
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ContextMenuTrigger2, { asChild: true, children: button }),
115672
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ContextMenuContent2, { onCloseAutoFocus: menu.flush, children: [
115673
- isDir && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
115674
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115680
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ContextMenuTrigger2, { asChild: true, children: button }),
115681
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ContextMenuContent2, { onCloseAutoFocus: menu.flush, children: [
115682
+ isDir && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
115683
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115675
115684
  ContextMenuItem2,
115676
115685
  {
115677
115686
  onSelect: () => menu.queue(() => onRequestNewEntry(entryPath, "file")),
115678
115687
  children: [
115679
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.File, { className: "size-4" }),
115688
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.File, { className: "size-4" }),
115680
115689
  "New File"
115681
115690
  ]
115682
115691
  }
115683
115692
  ),
115684
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115693
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115685
115694
  ContextMenuItem2,
115686
115695
  {
115687
115696
  onSelect: () => menu.queue(() => onRequestNewEntry(entryPath, "directory")),
115688
115697
  children: [
115689
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.FolderPlus, { className: "size-4" }),
115698
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.FolderPlus, { className: "size-4" }),
115690
115699
  "New Folder"
115691
115700
  ]
115692
115701
  }
115693
115702
  ),
115694
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ContextMenuSeparator2, {})
115703
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ContextMenuSeparator2, {})
115695
115704
  ] }),
115696
- canCut && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115705
+ canCut && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115697
115706
  ContextMenuItem2,
115698
115707
  {
115699
115708
  onSelect: () => menu.queue(() => onCut(entryPath, isDir ? "directory" : "file")),
115700
115709
  children: [
115701
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.Scissors, { className: "size-4" }),
115710
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.Scissors, { className: "size-4" }),
115702
115711
  "Cut"
115703
115712
  ]
115704
115713
  }
115705
115714
  ),
115706
- canCopy && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115715
+ canCopy && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115707
115716
  ContextMenuItem2,
115708
115717
  {
115709
115718
  onSelect: () => menu.queue(() => onCopy(entryPath, isDir ? "directory" : "file")),
115710
115719
  children: [
115711
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.Copy, { className: "size-4" }),
115720
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.Copy, { className: "size-4" }),
115712
115721
  "Copy"
115713
115722
  ]
115714
115723
  }
115715
115724
  ),
115716
- isDir && canPaste && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ContextMenuItem2, { onSelect: () => menu.queue(() => void onPaste(entryPath)), children: [
115717
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.ClipboardPaste, { className: "size-4" }),
115725
+ isDir && canPaste && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ContextMenuItem2, { onSelect: () => menu.queue(() => void onPaste(entryPath)), children: [
115726
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.ClipboardPaste, { className: "size-4" }),
115718
115727
  "Paste"
115719
115728
  ] }),
115720
- (canCut || canCopy || isDir && canPaste) && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ContextMenuSeparator2, {}),
115721
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115729
+ (canCut || canCopy || isDir && canPaste) && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ContextMenuSeparator2, {}),
115730
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115722
115731
  ContextMenuItem2,
115723
115732
  {
115724
115733
  "data-testid": "file-tree__copy-relative-path",
115725
115734
  onSelect: () => menu.queue(() => void writeClipboardText(entryPath)),
115726
115735
  children: [
115727
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.ClipboardCopy, { className: "size-4" }),
115736
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.ClipboardCopy, { className: "size-4" }),
115728
115737
  "Copy relative path"
115729
115738
  ]
115730
115739
  }
115731
115740
  ),
115732
- workspacePath && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115741
+ workspacePath && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115733
115742
  ContextMenuItem2,
115734
115743
  {
115735
115744
  "data-testid": "file-tree__copy-absolute-path",
115736
115745
  onSelect: () => menu.queue(() => void writeClipboardText(joinWorkspacePath(workspacePath, entryPath))),
115737
115746
  children: [
115738
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.ClipboardCopy, { className: "size-4" }),
115747
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.ClipboardCopy, { className: "size-4" }),
115739
115748
  "Copy absolute path"
115740
115749
  ]
115741
115750
  }
115742
115751
  ),
115743
- (canRename || canDelete) && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ContextMenuSeparator2, {}),
115744
- canRename && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ContextMenuItem2, { onSelect: () => menu.queue(() => onRequestRename(entryPath)), children: [
115745
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.Pencil, { className: "size-4" }),
115752
+ (canRename || canDelete) && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ContextMenuSeparator2, {}),
115753
+ canRename && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ContextMenuItem2, { onSelect: () => menu.queue(() => onRequestRename(entryPath)), children: [
115754
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.Pencil, { className: "size-4" }),
115746
115755
  "Rename"
115747
115756
  ] }),
115748
- canDelete && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
115757
+ canDelete && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
115749
115758
  ContextMenuItem2,
115750
115759
  {
115751
115760
  variant: "destructive",
115752
115761
  onSelect: () => menu.queue(() => onRequestDelete(entryPath, isDir ? "directory" : "file")),
115753
115762
  children: [
115754
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.Trash2, { className: "size-4" }),
115763
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.Trash2, { className: "size-4" }),
115755
115764
  "Delete"
115756
115765
  ]
115757
115766
  }
@@ -115761,13 +115770,13 @@ function TreeNode2({
115761
115770
  }
115762
115771
  );
115763
115772
  const showInlineInput = newEntry?.parentPath === entryPath;
115764
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
115773
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
115765
115774
  row,
115766
115775
  isExpanded && (() => {
115767
115776
  const splitIdx = children?.findIndex((c2) => c2.type === "file") ?? -1;
115768
115777
  const folderChildren = splitIdx === -1 ? children ?? [] : (children ?? []).slice(0, splitIdx);
115769
115778
  const fileChildren = splitIdx === -1 ? [] : (children ?? []).slice(splitIdx);
115770
- const renderChild = (child) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115779
+ const renderChild = (child) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115771
115780
  TreeNode2,
115772
115781
  {
115773
115782
  entry: child,
@@ -115805,7 +115814,7 @@ function TreeNode2({
115805
115814
  },
115806
115815
  child.name
115807
115816
  );
115808
- const newEntryInput = showInlineInput ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115817
+ const newEntryInput = showInlineInput ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115809
115818
  EntryNameInput,
115810
115819
  {
115811
115820
  kind: newEntry.kind,
@@ -115817,9 +115826,9 @@ function TreeNode2({
115817
115826
  },
115818
115827
  `new-${newEntry.kind}-${entryPath}`
115819
115828
  ) : null;
115820
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
115829
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
115821
115830
  showInlineInput && newEntry.kind === "directory" && newEntryInput,
115822
- isLoading && !children?.length && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115831
+ isLoading && !children?.length && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115823
115832
  "div",
115824
115833
  {
115825
115834
  className: `flex items-center text-muted-foreground/70 ${compact ? "text-[13px]" : "text-[15px]"}`,
@@ -115830,7 +115839,7 @@ function TreeNode2({
115830
115839
  children: "Loading\u2026"
115831
115840
  }
115832
115841
  ),
115833
- !isLoading && !showInlineInput && children && children.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
115842
+ !isLoading && !showInlineInput && children && children.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
115834
115843
  "div",
115835
115844
  {
115836
115845
  className: `flex items-center italic text-muted-foreground/50 ${compact ? "text-[13px]" : "text-[15px]"}`,
@@ -116276,7 +116285,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
116276
116285
  );
116277
116286
  const rootMenu = useDeferredMenuAction();
116278
116287
  if (!adapter.listWorkspaceFiles) {
116279
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex h-32 items-center justify-center text-sm text-muted-foreground", children: "File browsing not supported" });
116288
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "flex h-32 items-center justify-center text-sm text-muted-foreground", children: "File browsing not supported" });
116280
116289
  }
116281
116290
  const rootEntries = dirContents.get("") ?? [];
116282
116291
  const rootLoading = loadingPaths.has("");
@@ -116313,20 +116322,20 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
116313
116322
  void pasteInto(resolveDefaultTarget());
116314
116323
  }
116315
116324
  };
116316
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex h-full flex-col overflow-hidden", onKeyDown: handleKeyDown, children: [
116317
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
116325
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex h-full flex-col overflow-hidden", onKeyDown: handleKeyDown, children: [
116326
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
116318
116327
  ContextMenu2,
116319
116328
  {
116320
116329
  onOpenChange: (open3) => {
116321
116330
  if (open3) clearTreeSelection();
116322
116331
  },
116323
116332
  children: [
116324
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ContextMenuTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "min-h-0 flex-1 overflow-y-auto py-1 pl-px", children: [
116333
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ContextMenuTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "min-h-0 flex-1 overflow-y-auto py-1 pl-px", children: [
116325
116334
  (() => {
116326
116335
  const rootSplitIdx = rootEntries.findIndex((e2) => e2.type === "file");
116327
116336
  const rootFolders = rootSplitIdx === -1 ? rootEntries : rootEntries.slice(0, rootSplitIdx);
116328
116337
  const rootFiles = rootSplitIdx === -1 ? [] : rootEntries.slice(rootSplitIdx);
116329
- const renderRow = (entry) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
116338
+ const renderRow = (entry) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
116330
116339
  TreeNode2,
116331
116340
  {
116332
116341
  entry,
@@ -116364,7 +116373,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
116364
116373
  },
116365
116374
  entry.name
116366
116375
  );
116367
- const rootInput = showRootInput ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
116376
+ const rootInput = showRootInput ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
116368
116377
  EntryNameInput,
116369
116378
  {
116370
116379
  kind: newEntry.kind,
@@ -116376,30 +116385,30 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
116376
116385
  },
116377
116386
  `new-${newEntry.kind}-root`
116378
116387
  ) : null;
116379
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
116388
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
116380
116389
  showRootInput && newEntry.kind === "directory" && rootInput,
116381
- rootLoading && rootEntries.length === 0 && !showRootInput && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex h-32 items-center justify-center text-sm text-muted-foreground", children: "Loading\u2026" }),
116382
- !rootLoading && rootEntries.length === 0 && !showRootInput && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex h-32 items-center justify-center text-sm text-muted-foreground", children: "Empty directory" }),
116390
+ rootLoading && rootEntries.length === 0 && !showRootInput && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "flex h-32 items-center justify-center text-sm text-muted-foreground", children: "Loading\u2026" }),
116391
+ !rootLoading && rootEntries.length === 0 && !showRootInput && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "flex h-32 items-center justify-center text-sm text-muted-foreground", children: "Empty directory" }),
116383
116392
  rootFolders.map(renderRow),
116384
116393
  showRootInput && newEntry.kind === "file" && rootInput,
116385
116394
  rootFiles.map(renderRow)
116386
116395
  ] });
116387
116396
  })(),
116388
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "min-h-[40px] flex-1" })
116397
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "min-h-[40px] flex-1" })
116389
116398
  ] }) }),
116390
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ContextMenuContent2, { onCloseAutoFocus: rootMenu.flush, children: [
116391
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ContextMenuItem2, { onSelect: () => rootMenu.queue(() => requestNewEntry("", "file")), children: [
116392
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.File, { className: "size-4" }),
116399
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ContextMenuContent2, { onCloseAutoFocus: rootMenu.flush, children: [
116400
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ContextMenuItem2, { onSelect: () => rootMenu.queue(() => requestNewEntry("", "file")), children: [
116401
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.File, { className: "size-4" }),
116393
116402
  "New File"
116394
116403
  ] }),
116395
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ContextMenuItem2, { onSelect: () => rootMenu.queue(() => requestNewEntry("", "directory")), children: [
116396
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.FolderPlus, { className: "size-4" }),
116404
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ContextMenuItem2, { onSelect: () => rootMenu.queue(() => requestNewEntry("", "directory")), children: [
116405
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.FolderPlus, { className: "size-4" }),
116397
116406
  "New Folder"
116398
116407
  ] }),
116399
- canPaste && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
116400
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ContextMenuSeparator2, {}),
116401
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ContextMenuItem2, { onSelect: () => rootMenu.queue(() => void pasteInto("")), children: [
116402
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.ClipboardPaste, { className: "size-4" }),
116408
+ canPaste && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
116409
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ContextMenuSeparator2, {}),
116410
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ContextMenuItem2, { onSelect: () => rootMenu.queue(() => void pasteInto("")), children: [
116411
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.ClipboardPaste, { className: "size-4" }),
116403
116412
  "Paste"
116404
116413
  ] })
116405
116414
  ] })
@@ -116407,42 +116416,42 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
116407
116416
  ]
116408
116417
  }
116409
116418
  ),
116410
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
116419
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
116411
116420
  Dialog2,
116412
116421
  {
116413
116422
  open: pendingDelete !== null,
116414
116423
  onOpenChange: (open3) => {
116415
116424
  if (!open3) cancelDelete();
116416
116425
  },
116417
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(DialogContent2, { className: "sm:max-w-[425px]", onClick: (e2) => e2.stopPropagation(), children: [
116418
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(DialogHeader, { children: [
116419
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(DialogTitle2, { children: [
116426
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(DialogContent2, { className: "sm:max-w-[425px]", onClick: (e2) => e2.stopPropagation(), children: [
116427
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(DialogHeader, { children: [
116428
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(DialogTitle2, { children: [
116420
116429
  "Delete ",
116421
116430
  pendingDelete?.kind === "directory" ? "folder" : "file"
116422
116431
  ] }),
116423
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(DialogDescription2, { children: [
116432
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(DialogDescription2, { children: [
116424
116433
  "Are you sure you want to delete ",
116425
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("strong", { children: pendingDelete?.path }),
116434
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("strong", { children: pendingDelete?.path }),
116426
116435
  "?"
116427
116436
  ] })
116428
116437
  ] }),
116429
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col gap-2 text-sm", children: [
116430
- pendingDelete?.kind === "directory" && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-start gap-2 rounded-md border border-yellow-500/30 bg-yellow-500/10 p-3", children: [
116431
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.AlertTriangle, { className: "size-4 shrink-0 text-yellow-500 mt-0.5" }),
116432
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: "The folder and all of its contents will be deleted from disk. This cannot be undone." })
116438
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col gap-2 text-sm", children: [
116439
+ pendingDelete?.kind === "directory" && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-start gap-2 rounded-md border border-yellow-500/30 bg-yellow-500/10 p-3", children: [
116440
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.AlertTriangle, { className: "size-4 shrink-0 text-yellow-500 mt-0.5" }),
116441
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: "The folder and all of its contents will be deleted from disk. This cannot be undone." })
116433
116442
  ] }),
116434
- pendingDelete?.kind === "file" && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-start gap-2 rounded-md border border-yellow-500/30 bg-yellow-500/10 p-3", children: [
116435
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.AlertTriangle, { className: "size-4 shrink-0 text-yellow-500 mt-0.5" }),
116436
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: "The file will be deleted from disk. This cannot be undone." })
116443
+ pendingDelete?.kind === "file" && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-start gap-2 rounded-md border border-yellow-500/30 bg-yellow-500/10 p-3", children: [
116444
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.AlertTriangle, { className: "size-4 shrink-0 text-yellow-500 mt-0.5" }),
116445
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: "The file will be deleted from disk. This cannot be undone." })
116437
116446
  ] }),
116438
- deleteError && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-destructive", children: [
116439
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react7.AlertTriangle, { className: "size-4 shrink-0 mt-0.5" }),
116440
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: deleteError })
116447
+ deleteError && /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-destructive", children: [
116448
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_lucide_react7.AlertTriangle, { className: "size-4 shrink-0 mt-0.5" }),
116449
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: deleteError })
116441
116450
  ] })
116442
116451
  ] }),
116443
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(DialogFooter, { children: [
116444
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { variant: "ghost", onClick: cancelDelete, disabled: deleteSubmitting, children: "Cancel" }),
116445
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
116452
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(DialogFooter, { children: [
116453
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { variant: "ghost", onClick: cancelDelete, disabled: deleteSubmitting, children: "Cancel" }),
116454
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
116446
116455
  Button,
116447
116456
  {
116448
116457
  variant: "destructive",
@@ -116463,32 +116472,32 @@ var import_react39 = __toESM(require_react(), 1);
116463
116472
 
116464
116473
  // src/dashboard/components/ImagePreview.tsx
116465
116474
  var import_react37 = __toESM(require_react(), 1);
116466
- var import_jsx_runtime70 = __toESM(require_jsx_runtime(), 1);
116475
+ var import_jsx_runtime71 = __toESM(require_jsx_runtime(), 1);
116467
116476
 
116468
116477
  // src/dashboard/components/LanguagePickerDialog.tsx
116469
116478
  var import_react38 = __toESM(require_react(), 1);
116470
- var import_jsx_runtime71 = __toESM(require_jsx_runtime(), 1);
116479
+ var import_jsx_runtime72 = __toESM(require_jsx_runtime(), 1);
116471
116480
 
116472
116481
  // src/dashboard/components/PdfPreview.tsx
116473
- var import_jsx_runtime72 = __toESM(require_jsx_runtime(), 1);
116482
+ var import_jsx_runtime73 = __toESM(require_jsx_runtime(), 1);
116474
116483
 
116475
116484
  // src/dashboard/components/FileViewer.tsx
116476
- var import_jsx_runtime73 = __toESM(require_jsx_runtime(), 1);
116485
+ var import_jsx_runtime74 = __toESM(require_jsx_runtime(), 1);
116477
116486
 
116478
116487
  // src/dashboard/components/QuickOpenDialog.tsx
116479
116488
  var import_react40 = __toESM(require_react(), 1);
116480
- var import_jsx_runtime74 = __toESM(require_jsx_runtime(), 1);
116489
+ var import_jsx_runtime75 = __toESM(require_jsx_runtime(), 1);
116481
116490
 
116482
116491
  // src/dashboard/components/SearchFilesDialog.tsx
116483
116492
  var import_react41 = __toESM(require_react(), 1);
116484
- var import_jsx_runtime75 = __toESM(require_jsx_runtime(), 1);
116493
+ var import_jsx_runtime76 = __toESM(require_jsx_runtime(), 1);
116485
116494
 
116486
116495
  // src/dashboard/components/WorkspacePickerDialog.tsx
116487
116496
  var import_react42 = __toESM(require_react(), 1);
116488
- var import_jsx_runtime76 = __toESM(require_jsx_runtime(), 1);
116497
+ var import_jsx_runtime77 = __toESM(require_jsx_runtime(), 1);
116489
116498
 
116490
116499
  // src/dashboard/components/WorkspaceTabNav.tsx
116491
- var import_jsx_runtime77 = __toESM(require_jsx_runtime(), 1);
116500
+ var import_jsx_runtime78 = __toESM(require_jsx_runtime(), 1);
116492
116501
 
116493
116502
  // src/dashboard/hooks/use-editor-history.ts
116494
116503
  var import_react43 = __toESM(require_react(), 1);