@band-app/server 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/client/assets/{DockviewTerminalContainer-BpFVSRxD.js → DockviewTerminalContainer-ZSiC-7Wm.js} +2 -2
  2. package/dist/client/assets/{TerminalPanel-BntKxpyp.js → TerminalPanel-CvR6-tkK.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-DF5xdsrk.js → _basePickBy-DOsvMYxz.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-CoueVsbE.js → _baseUniq-BjUzcTYJ.js} +1 -1
  5. package/dist/client/assets/{arc-BFzNwh12.js → arc-PqmhKm1W.js} +1 -1
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-By7wadQM.js → architectureDiagram-VXUJARFQ-70d15Hrt.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-BC_1TUzk.js → blockDiagram-VD42YOAC-Cjib0DnE.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-BCk4UTN8.js → c4Diagram-YG6GDRKO-DGbJac2z.js} +1 -1
  9. package/dist/client/assets/channel-DHmLqpit.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-BNQvAlfk.js → chunk-4BX2VUAB-DWXbUTDx.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-BttquFk4.js → chunk-55IACEB6-DHmlIacM.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-BlpucGaJ.js → chunk-B4BG7PRW-DGMr7A2W.js} +1 -1
  13. package/dist/client/assets/{chunk-DI55MBZ5-Clc7KEpM.js → chunk-DI55MBZ5-VyMTkEX3.js} +1 -1
  14. package/dist/client/assets/{chunk-FMBD7UC4-B4AJ2Dku.js → chunk-FMBD7UC4-U9WC5yh7.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-zpQdzj4o.js → chunk-QN33PNHL-CpWV7s74.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-C91vV1DW.js → chunk-QZHKN3VN-D_6wYXhV.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-Cos_2ZyH.js → chunk-TZMSLE5B-CnmYfvpb.js} +1 -1
  18. package/dist/client/assets/classDiagram-2ON5EDUG-C7zDhZrE.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-WZHVMYZB-C7zDhZrE.js +1 -0
  20. package/dist/client/assets/clone-yyq3D0Pq.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-DCYrgoD8.js → cose-bilkent-S5V4N54A-DqlCuXUu.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-M5t81982.js → dagre-6UL2VRFP-D9ySXysT.js} +1 -1
  23. package/dist/client/assets/{diagram-PSM6KHXK-D2Ek6C2z.js → diagram-PSM6KHXK-Bee22nwJ.js} +1 -1
  24. package/dist/client/assets/{diagram-QEK2KX5R-CVWybKcv.js → diagram-QEK2KX5R-CKYtwRXE.js} +1 -1
  25. package/dist/client/assets/{diagram-S2PKOQOG-BCqpWwzq.js → diagram-S2PKOQOG-tl720Ns4.js} +1 -1
  26. package/dist/client/assets/{erDiagram-Q2GNP2WA-BYtyKpu4.js → erDiagram-Q2GNP2WA-Di8LTTo8.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-NV44I4VS-DBuUJVnr.js → flowDiagram-NV44I4VS-CUDkVJGW.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-JELNMOA3-BsFBEaF2.js → ganttDiagram-JELNMOA3-CemMEWZ6.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-7exAUrbl.js → gitGraphDiagram-V2S2FVAM-B54xBQm4.js} +1 -1
  30. package/dist/client/assets/{graph-Du1niQqO.js → graph-CzD8aRj3.js} +1 -1
  31. package/dist/client/assets/{highlighted-body-B3W2YXNL-DvSWBwhR.js → highlighted-body-B3W2YXNL-c47RLD13.js} +1 -1
  32. package/dist/client/assets/{index-qlT4M9zl.js → index-BL6NMKnC.js} +1 -1
  33. package/dist/client/assets/{index-Dub-xnlF.js → index-BoSG4rS2.js} +1 -1
  34. package/dist/client/assets/{index-DsX632ci.js → index-C1eSoFff.js} +1 -1
  35. package/dist/client/assets/{index-wMCMKab0.js → index-CIv4jKEj.js} +1 -1
  36. package/dist/client/assets/{index-Bel4N-0p.js → index-CMZEEi2J.js} +1 -1
  37. package/dist/client/assets/{index-DAZesMJA.js → index-Cy7F9VKd.js} +1 -1
  38. package/dist/client/assets/{index-riX__uwi.js → index-D6MZ26li.js} +1 -1
  39. package/dist/client/assets/{index-bTf5A-ZO.js → index-DC_vWJCw.js} +1 -1
  40. package/dist/client/assets/{index-CuPxzY7a.js → index-DPj7uf3N.js} +1 -1
  41. package/dist/client/assets/{index-BT08YowC.js → index-DWMpZHMT.js} +1 -1
  42. package/dist/client/assets/{index-DvN4Pfwf.js → index-D_mhg0lQ.js} +1 -1
  43. package/dist/client/assets/{index-BhNPdWcD.js → index-DaIPQb3r.js} +1 -1
  44. package/dist/client/assets/{index-FzJ61zmb.js → index-DfCwszrX.js} +1 -1
  45. package/dist/client/assets/{index-BXV8DVgO.js → index-DjJ5-Fte.js} +1 -1
  46. package/dist/client/assets/{index-DiLsWyyw.js → index-Dt6ZyNUI.js} +1 -1
  47. package/dist/client/assets/{index-PcpmPUME.js → index-Qbd6pW8g.js} +1 -1
  48. package/dist/client/assets/{index-Q9Papv40.js → index-btFeV2j3.js} +1 -1
  49. package/dist/client/assets/{index-B8zm4Wn1.js → index-gOMe0dPC.js} +1 -1
  50. package/dist/client/assets/{infoDiagram-HS3SLOUP-ClKnBgfU.js → infoDiagram-HS3SLOUP-Cvh6X3kP.js} +1 -1
  51. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-ptjlJtex.js → journeyDiagram-XKPGCS4Q-Czi5TePn.js} +1 -1
  52. package/dist/client/assets/{kanban-definition-3W4ZIXB7-Dqk-kV2N.js → kanban-definition-3W4ZIXB7-Bk0MW3W-.js} +1 -1
  53. package/dist/client/assets/{layout-PMiGD6HA.js → layout-Ckq0ckKz.js} +1 -1
  54. package/dist/client/assets/{linear-BRPhIkB4.js → linear-BMO1jkHz.js} +1 -1
  55. package/dist/client/assets/{main-ssLEzQJf.js → main-B0LPsZMa.js} +224 -224
  56. package/dist/client/assets/main-Tt4WZJMG.css +1 -0
  57. package/dist/client/assets/{mindmap-definition-VGOIOE7T-CKiZT-9L.js → mindmap-definition-VGOIOE7T-oF701YVn.js} +1 -1
  58. package/dist/client/assets/{pieDiagram-ADFJNKIX-BtN0lt7V.js → pieDiagram-ADFJNKIX-DOa3ALEx.js} +1 -1
  59. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-064IuExP.js → quadrantDiagram-AYHSOK5B-BwhElI6Y.js} +1 -1
  60. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DfSwHkne.js → requirementDiagram-UZGBJVZJ-DcR2cX9-.js} +1 -1
  61. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-CkEgokt8.js → sankeyDiagram-TZEHDZUN-BTpr4N1X.js} +1 -1
  62. package/dist/client/assets/{sequenceDiagram-WL72ISMW-B8GUQ9mm.js → sequenceDiagram-WL72ISMW-B8wh2px2.js} +1 -1
  63. package/dist/client/assets/{square-terminal-voIzqAV1.js → square-terminal-bul2OB6w.js} +1 -1
  64. package/dist/client/assets/{stateDiagram-FKZM4ZOC-BvI2n1mZ.js → stateDiagram-FKZM4ZOC-Bt4IkUn2.js} +1 -1
  65. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D3_tub1u.js +1 -0
  66. package/dist/client/assets/{timeline-definition-IT6M3QCI-2QHGwOvE.js → timeline-definition-IT6M3QCI-Dybsx7bF.js} +1 -1
  67. package/dist/client/assets/{treemap-GDKQZRPO-Cnr0AhFV.js → treemap-GDKQZRPO-CuwqbPPy.js} +1 -1
  68. package/dist/client/assets/{useSessionListContext-BxG0jHjf.js → useSessionListContext-DGvLgX3O.js} +1 -1
  69. package/dist/client/assets/{workspace._workspaceId-C6DFXubr.js → workspace._workspaceId-CflKFp3C.js} +1 -1
  70. package/dist/client/assets/{workspace._workspaceId.changes-B8i4zvL_.js → workspace._workspaceId.changes-B0bx2wbG.js} +1 -1
  71. package/dist/client/assets/workspace._workspaceId.code-C9yB34AE.js +1 -0
  72. package/dist/client/assets/{workspace._workspaceId.code._-BIhs37Mu.js → workspace._workspaceId.code._-yf2wdjm9.js} +1 -1
  73. package/dist/client/assets/{workspace._workspaceId.code.index-YAGicxpL.js → workspace._workspaceId.code.index-BsCAmmyN.js} +1 -1
  74. package/dist/client/assets/{workspace._workspaceId.index-CzEuNQ6a.js → workspace._workspaceId.index-MrOOg9VQ.js} +1 -1
  75. package/dist/client/assets/{workspace._workspaceId.terminal-CrGI8r-m.js → workspace._workspaceId.terminal-DPBz1J_0.js} +2 -2
  76. package/dist/client/assets/{xychartDiagram-PRI3JC2R-C6jlfQdQ.js → xychartDiagram-PRI3JC2R-ZIdDg6qe.js} +1 -1
  77. package/dist/server/assets/{DockviewTerminalContainer-Dyp-rCDV.js → DockviewTerminalContainer-DFjZuSCT.js} +3 -3
  78. package/dist/server/assets/{TerminalPanel-Bn1gtOEI.js → TerminalPanel-tg1GdSr0.js} +1 -1
  79. package/dist/server/assets/{_basePickBy-BnJ4ajzM.js → _basePickBy-DbFLVHsB.js} +2 -2
  80. package/dist/server/assets/{_baseUniq-BeWm3tGf.js → _baseUniq-CLmEqJvy.js} +1 -1
  81. package/dist/server/assets/{_tanstack-start-manifest_v-D3hMj8OZ.js → _tanstack-start-manifest_v-DlURH9DQ.js} +1 -1
  82. package/dist/server/assets/{arc-BlpfkuC0.js → arc-DZLAbVTx.js} +1 -1
  83. package/dist/server/assets/{architecture-7HQA4BMR-BJ7ewH5u.js → architecture-7HQA4BMR-CQ0E5QYW.js} +6 -6
  84. package/dist/server/assets/{architectureDiagram-VXUJARFQ-TRCw2ugF.js → architectureDiagram-VXUJARFQ-evDLySHH.js} +6 -6
  85. package/dist/server/assets/{blockDiagram-VD42YOAC-Dh9a8aso.js → blockDiagram-VD42YOAC-DBsHlPXM.js} +6 -6
  86. package/dist/server/assets/{c4Diagram-YG6GDRKO-BrRKberj.js → c4Diagram-YG6GDRKO-h5CZPoPy.js} +2 -2
  87. package/dist/server/assets/{channel-o5SG-fgD.js → channel-CKJ1HkO1.js} +1 -1
  88. package/dist/server/assets/{chunk-4BX2VUAB-B4PS8pUF.js → chunk-4BX2VUAB-3odGT6c4.js} +1 -1
  89. package/dist/server/assets/{chunk-55IACEB6-By5B62Vv.js → chunk-55IACEB6-LXKtVbTR.js} +1 -1
  90. package/dist/server/assets/{chunk-B4BG7PRW-DQCDsnub.js → chunk-B4BG7PRW-Br-1a8gS.js} +4 -4
  91. package/dist/server/assets/{chunk-DI55MBZ5-MMKD3vhO.js → chunk-DI55MBZ5-BAz_7LcE.js} +3 -3
  92. package/dist/server/assets/{chunk-FMBD7UC4-CGSmUkeN.js → chunk-FMBD7UC4-CqMTTql5.js} +1 -1
  93. package/dist/server/assets/{chunk-QN33PNHL-DtOY2Tk4.js → chunk-QN33PNHL-HclxJzvx.js} +1 -1
  94. package/dist/server/assets/{chunk-QZHKN3VN-CEBb15S0.js → chunk-QZHKN3VN-TEpNJ3fK.js} +1 -1
  95. package/dist/server/assets/{chunk-TZMSLE5B-BR7Wfzu-.js → chunk-TZMSLE5B-CnZe9dM5.js} +1 -1
  96. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CVGo_62f.js → classDiagram-2ON5EDUG-Cd6_FR9V.js} +5 -5
  97. package/dist/server/assets/{classDiagram-2ON5EDUG-CVGo_62f.js → classDiagram-v2-WZHVMYZB-Cd6_FR9V.js} +5 -5
  98. package/dist/server/assets/{clone-Dava77iI.js → clone-AjunVJRj.js} +1 -1
  99. package/dist/server/assets/{cose-bilkent-S5V4N54A-C_1AzHCC.js → cose-bilkent-S5V4N54A-D7LPM_vS.js} +1 -1
  100. package/dist/server/assets/{dagre-6UL2VRFP-Boln2sn2.js → dagre-6UL2VRFP-CNeAACXh.js} +6 -6
  101. package/dist/server/assets/{diagram-PSM6KHXK-BJe9rht3.js → diagram-PSM6KHXK-FHT3vuUn.js} +7 -7
  102. package/dist/server/assets/{diagram-QEK2KX5R-CGNcKosm.js → diagram-QEK2KX5R-Du9tqqDq.js} +6 -6
  103. package/dist/server/assets/{diagram-S2PKOQOG-KHkj72ld.js → diagram-S2PKOQOG-BvH3_hXv.js} +6 -6
  104. package/dist/server/assets/{erDiagram-Q2GNP2WA-CQPyD9EF.js → erDiagram-Q2GNP2WA-Bl5SlyVt.js} +4 -4
  105. package/dist/server/assets/{flowDiagram-NV44I4VS-vyBoOcPY.js → flowDiagram-NV44I4VS-TOzUwhF5.js} +5 -5
  106. package/dist/server/assets/{ganttDiagram-JELNMOA3-DzN3kslF.js → ganttDiagram-JELNMOA3-BHAA60wa.js} +2 -2
  107. package/dist/server/assets/{gitGraph-G5XIXVHT-B2GLfoRF.js → gitGraph-G5XIXVHT-rOVJvGHO.js} +6 -6
  108. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-B5EDhgt0.js → gitGraphDiagram-V2S2FVAM-VzFNa7CX.js} +7 -7
  109. package/dist/server/assets/{graph-DM2YnSRF.js → graph-Bcuzin2V.js} +2 -2
  110. package/dist/server/assets/{highlighted-body-B3W2YXNL-h_Fr1oTy.js → highlighted-body-B3W2YXNL-DsiXofbu.js} +1 -1
  111. package/dist/server/assets/{index-xaaGh4ls.js → index-BF37iFwT.js} +2 -2
  112. package/dist/server/assets/{index-no5gnAsf.js → index-BN_ghim8.js} +2 -2
  113. package/dist/server/assets/{index-DgHW7UNt.js → index-BNygmRkO.js} +2 -2
  114. package/dist/server/assets/{index-EvPsdhYL.js → index-BS2yvWd8.js} +2 -2
  115. package/dist/server/assets/{index-C-1szG3T.js → index-BsO3ggd_.js} +2 -2
  116. package/dist/server/assets/{index-BsJzTvSJ.js → index-BuX-CbGB.js} +4 -4
  117. package/dist/server/assets/{index-DnQXmsaa.js → index-Bw1GdZx-.js} +2 -2
  118. package/dist/server/assets/{index-DbAlA7HO.js → index-CAqpyyUA.js} +3 -3
  119. package/dist/server/assets/{index-WTleB0lf.js → index-CBNyhkhK.js} +2 -2
  120. package/dist/server/assets/{index-DafoxTP2.js → index-CERytpw-.js} +2 -2
  121. package/dist/server/assets/{index-BiZndo5l.js → index-CJCPubzA.js} +1 -1
  122. package/dist/server/assets/{index-BIDr1DTu.js → index-ChbBCGbG.js} +3 -3
  123. package/dist/server/assets/{index-DknBLjbj.js → index-CiwITdnL.js} +2 -2
  124. package/dist/server/assets/{index-DBmY9Kl-.js → index-Cjn0yAaG.js} +2 -2
  125. package/dist/server/assets/{index-CS6JuHB3.js → index-CpuhPF5t.js} +5 -5
  126. package/dist/server/assets/{index-DDLILDN_.js → index-DE0zASO3.js} +5 -5
  127. package/dist/server/assets/{index-B0FUh3Pc.js → index-DUQ1u3ED.js} +1 -1
  128. package/dist/server/assets/{index-DQxHX7Lv.js → index-bEeLtTPr.js} +2 -2
  129. package/dist/server/assets/{info-VBDWY6EO-BSVsdtnm.js → info-VBDWY6EO-BVbRb-4Z.js} +6 -6
  130. package/dist/server/assets/{infoDiagram-HS3SLOUP-DbxrgmBd.js → infoDiagram-HS3SLOUP-esUYZzYH.js} +5 -5
  131. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-PyE_5Gmw.js → journeyDiagram-XKPGCS4Q-D40eNc21.js} +4 -4
  132. package/dist/server/assets/{kanban-definition-3W4ZIXB7-PMuJIj2B.js → kanban-definition-3W4ZIXB7-5N_75bcJ.js} +2 -2
  133. package/dist/server/assets/{layout-B67zHI7Q.js → layout-CbRLlNEr.js} +4 -4
  134. package/dist/server/assets/{linear-D86t5s_z.js → linear-CSZB2dRK.js} +1 -1
  135. package/dist/server/assets/{mermaid-3ZIDBTTL-Bm5x4pKu.js → mermaid-3ZIDBTTL-BEV29Yuc.js} +1 -1
  136. package/dist/server/assets/{mermaid-parser.core-CrQ4TUTQ.js → mermaid-parser.core-D1DVTNTM.js} +11 -11
  137. package/dist/server/assets/{mindmap-definition-VGOIOE7T-CS-q_lU-.js → mindmap-definition-VGOIOE7T-Dd16Sy8E.js} +3 -3
  138. package/dist/server/assets/{packet-DYOGHKS2-BhN2HFTO.js → packet-DYOGHKS2-Jv2GC4PV.js} +6 -6
  139. package/dist/server/assets/{pie-VRWISCQL-Db-fTydN.js → pie-VRWISCQL-CzY7Q_jX.js} +6 -6
  140. package/dist/server/assets/{pieDiagram-ADFJNKIX-jACR3wDP.js → pieDiagram-ADFJNKIX-BygyuGnX.js} +7 -7
  141. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-BuOoP_Hg.js → quadrantDiagram-AYHSOK5B-B_XQ04Qi.js} +2 -2
  142. package/dist/server/assets/{radar-ZZBFDIW7-DTdnWlmn.js → radar-ZZBFDIW7-D1Km6RgJ.js} +6 -6
  143. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-XXmbIh8u.js → requirementDiagram-UZGBJVZJ-HsUrO2es.js} +3 -3
  144. package/dist/server/assets/{router-D6T53n2M.js → router-86ALGZbb.js} +922 -375
  145. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-DDyaGWkS.js → sankeyDiagram-TZEHDZUN-D2agLPgC.js} +1 -1
  146. package/dist/server/assets/{sequenceDiagram-WL72ISMW-GTC4KppE.js → sequenceDiagram-WL72ISMW-B9xPBmx_.js} +3 -3
  147. package/dist/server/assets/{square-terminal-DaAOn53I.js → square-terminal-C1jD7kGR.js} +1 -1
  148. package/dist/server/assets/{stateDiagram-FKZM4ZOC-BxYN7guF.js → stateDiagram-FKZM4ZOC-DHDTsTYT.js} +8 -8
  149. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-BNKwWfxp.js → stateDiagram-v2-4FDKWEC3-UzPAvMjA.js} +4 -4
  150. package/dist/server/assets/{timeline-definition-IT6M3QCI-CA7TxBUn.js → timeline-definition-IT6M3QCI-BkV8-JpZ.js} +2 -2
  151. package/dist/server/assets/{treemap-GDKQZRPO-CiJPF4Eo.js → treemap-GDKQZRPO-BnwMc3nx.js} +6 -6
  152. package/dist/server/assets/{workspace._workspaceId-C936_ZgM.js → workspace._workspaceId-CxbLYQ4n.js} +2 -2
  153. package/dist/server/assets/{workspace._workspaceId.changes-CH3KFMSq.js → workspace._workspaceId.changes-st-QDRaZ.js} +1 -1
  154. package/dist/server/assets/{workspace._workspaceId.code._-BuovU8kl.js → workspace._workspaceId.code._-DXGsbzXN.js} +1 -1
  155. package/dist/server/assets/{workspace._workspaceId.code.index-BHzxCT1V.js → workspace._workspaceId.code.index-ChSU7TbG.js} +1 -1
  156. package/dist/server/assets/{workspace._workspaceId.index-86dKrOT8.js → workspace._workspaceId.index-WQW8azst.js} +1 -1
  157. package/dist/server/assets/{workspace._workspaceId.terminal-BAeUoj6m.js → workspace._workspaceId.terminal-o_dPhCio.js} +2 -2
  158. package/dist/server/assets/{xychartDiagram-PRI3JC2R-BmMwldTO.js → xychartDiagram-PRI3JC2R-3zGezmQ5.js} +2 -2
  159. package/dist/server/server.js +2 -2
  160. package/dist/start-server.mjs +317 -127
  161. package/package.json +5 -5
  162. package/dist/client/assets/channel-CFM6cryD.js +0 -1
  163. package/dist/client/assets/classDiagram-2ON5EDUG-CZiRGipy.js +0 -1
  164. package/dist/client/assets/classDiagram-v2-WZHVMYZB-CZiRGipy.js +0 -1
  165. package/dist/client/assets/clone-Bre_bsCp.js +0 -1
  166. package/dist/client/assets/main-DsI295kl.css +0 -1
  167. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D8yWUoXF.js +0 -1
  168. package/dist/client/assets/workspace._workspaceId.code-CX8MyOEp.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$1o = [
1096
+ const __iconNode$1p = [
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$1o);
1102
- const __iconNode$1n = [
1101
+ const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$1p);
1102
+ const __iconNode$1o = [
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$1n);
1107
- const __iconNode$1m = [
1106
+ const ArrowDown = createLucideIcon("arrow-down", __iconNode$1o);
1107
+ const __iconNode$1n = [
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$1m);
1112
- const __iconNode$1l = [
1111
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1n);
1112
+ const __iconNode$1m = [
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$1l);
1117
- const __iconNode$1k = [
1116
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$1m);
1117
+ const __iconNode$1l = [
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$1k);
1123
- const __iconNode$1j = [
1122
+ const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$1l);
1123
+ const __iconNode$1k = [
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$1j);
1128
- const __iconNode$1i = [
1127
+ const ArrowUp = createLucideIcon("arrow-up", __iconNode$1k);
1128
+ const __iconNode$1j = [
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$1i);
1133
- const __iconNode$1h = [
1132
+ const Ban = createLucideIcon("ban", __iconNode$1j);
1133
+ const __iconNode$1i = [
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$1h = [
1138
1138
  ["path", { d: "M15 13v2", key: "1xurst" }],
1139
1139
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
1140
1140
  ];
1141
- const Bot = createLucideIcon("bot", __iconNode$1h);
1142
- const __iconNode$1g = [
1141
+ const Bot = createLucideIcon("bot", __iconNode$1i);
1142
+ const __iconNode$1h = [
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$1g = [
1152
1152
  }
1153
1153
  ]
1154
1154
  ];
1155
- const Braces = createLucideIcon("braces", __iconNode$1g);
1156
- const __iconNode$1f = [
1155
+ const Braces = createLucideIcon("braces", __iconNode$1h);
1156
+ const __iconNode$1g = [
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$1f);
1163
- const __iconNode$1e = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
1164
- const Check = createLucideIcon("check", __iconNode$1e);
1165
- const __iconNode$1d = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1166
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$1d);
1167
- const __iconNode$1c = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
1168
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1c);
1169
- const __iconNode$1b = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1170
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$1b);
1171
- const __iconNode$1a = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
1172
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$1a);
1173
- const __iconNode$19 = [
1162
+ const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$1g);
1163
+ const __iconNode$1f = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
1164
+ const Check = createLucideIcon("check", __iconNode$1f);
1165
+ const __iconNode$1e = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1166
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$1e);
1167
+ const __iconNode$1d = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
1168
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1d);
1169
+ const __iconNode$1c = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1170
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$1c);
1171
+ const __iconNode$1b = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
1172
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$1b);
1173
+ const __iconNode$1a = [
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$19);
1178
- const __iconNode$18 = [
1177
+ const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$1a);
1178
+ const __iconNode$19 = [
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$18);
1183
- const __iconNode$17 = [
1182
+ const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$19);
1183
+ const __iconNode$18 = [
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$17);
1189
- const __iconNode$16 = [
1188
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$18);
1189
+ const __iconNode$17 = [
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$16);
1194
- const __iconNode$15 = [
1193
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$17);
1194
+ const __iconNode$16 = [
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$15);
1200
- const __iconNode$14 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
1201
- const Circle = createLucideIcon("circle", __iconNode$14);
1202
- const __iconNode$13 = [
1199
+ const CircleX = createLucideIcon("circle-x", __iconNode$16);
1200
+ const __iconNode$15 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
1201
+ const Circle = createLucideIcon("circle", __iconNode$15);
1202
+ const __iconNode$14 = [
1203
1203
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
1204
1204
  [
1205
1205
  "path",
@@ -1209,59 +1209,59 @@ const __iconNode$13 = [
1209
1209
  }
1210
1210
  ]
1211
1211
  ];
1212
- const Clipboard = createLucideIcon("clipboard", __iconNode$13);
1213
- const __iconNode$12 = [
1212
+ const Clipboard = createLucideIcon("clipboard", __iconNode$14);
1213
+ const __iconNode$13 = [
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$12);
1218
- const __iconNode$11 = [
1217
+ const Clock = createLucideIcon("clock", __iconNode$13);
1218
+ const __iconNode$12 = [
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$11);
1224
- const __iconNode$10 = [
1223
+ const CodeXml = createLucideIcon("code-xml", __iconNode$12);
1224
+ const __iconNode$11 = [
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$10);
1229
- const __iconNode$$ = [
1228
+ const Code = createLucideIcon("code", __iconNode$11);
1229
+ const __iconNode$10 = [
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$$);
1234
- const __iconNode$_ = [
1233
+ const Columns2 = createLucideIcon("columns-2", __iconNode$10);
1234
+ const __iconNode$$ = [
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$_);
1241
- const __iconNode$Z = [
1240
+ const Command$1 = createLucideIcon("command", __iconNode$$);
1241
+ const __iconNode$_ = [
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$Z);
1246
- const __iconNode$Y = [
1245
+ const Copy = createLucideIcon("copy", __iconNode$_);
1246
+ const __iconNode$Z = [
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$Y);
1252
- const __iconNode$X = [
1251
+ const Database = createLucideIcon("database", __iconNode$Z);
1252
+ const __iconNode$Y = [
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$X);
1258
- const __iconNode$W = [
1257
+ const Download = createLucideIcon("download", __iconNode$Y);
1258
+ const __iconNode$X = [
1259
1259
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
1260
1260
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
1261
1261
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
1262
1262
  ];
1263
- const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$W);
1264
- const __iconNode$V = [
1263
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$X);
1264
+ const __iconNode$W = [
1265
1265
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
1266
1266
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
1267
1267
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
@@ -1271,14 +1271,14 @@ const __iconNode$V = [
1271
1271
  ["path", { d: "M3 8V3h5", key: "1ln10m" }],
1272
1272
  ["path", { d: "M9 9 3 3", key: "v551iv" }]
1273
1273
  ];
1274
- const Expand = createLucideIcon("expand", __iconNode$V);
1275
- const __iconNode$U = [
1274
+ const Expand = createLucideIcon("expand", __iconNode$W);
1275
+ const __iconNode$V = [
1276
1276
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
1277
1277
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
1278
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" }]
1279
1279
  ];
1280
- const ExternalLink$1 = createLucideIcon("external-link", __iconNode$U);
1281
- const __iconNode$T = [
1280
+ const ExternalLink$1 = createLucideIcon("external-link", __iconNode$V);
1281
+ const __iconNode$U = [
1282
1282
  [
1283
1283
  "path",
1284
1284
  {
@@ -1288,8 +1288,8 @@ const __iconNode$T = [
1288
1288
  ],
1289
1289
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
1290
1290
  ];
1291
- const Eye = createLucideIcon("eye", __iconNode$T);
1292
- const __iconNode$S = [
1291
+ const Eye = createLucideIcon("eye", __iconNode$U);
1292
+ const __iconNode$T = [
1293
1293
  [
1294
1294
  "path",
1295
1295
  {
@@ -1307,8 +1307,8 @@ const __iconNode$S = [
1307
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" }
1308
1308
  ]
1309
1309
  ];
1310
- const FileBraces = createLucideIcon("file-braces", __iconNode$S);
1311
- const __iconNode$R = [
1310
+ const FileBraces = createLucideIcon("file-braces", __iconNode$T);
1311
+ const __iconNode$S = [
1312
1312
  [
1313
1313
  "path",
1314
1314
  {
@@ -1320,8 +1320,8 @@ const __iconNode$R = [
1320
1320
  ["path", { d: "m5 16-3 3 3 3", key: "331omg" }],
1321
1321
  ["path", { d: "m9 22 3-3-3-3", key: "lsp7cz" }]
1322
1322
  ];
1323
- const FileCodeCorner = createLucideIcon("file-code-corner", __iconNode$R);
1324
- const __iconNode$Q = [
1323
+ const FileCodeCorner = createLucideIcon("file-code-corner", __iconNode$S);
1324
+ const __iconNode$R = [
1325
1325
  [
1326
1326
  "path",
1327
1327
  {
@@ -1332,8 +1332,8 @@ const __iconNode$Q = [
1332
1332
  ["path", { d: "M12 9v4", key: "juzpu7" }],
1333
1333
  ["path", { d: "M12 17h.01", key: "p32p05" }]
1334
1334
  ];
1335
- const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$Q);
1336
- const __iconNode$P = [
1335
+ const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$R);
1336
+ const __iconNode$Q = [
1337
1337
  [
1338
1338
  "path",
1339
1339
  {
@@ -1346,8 +1346,8 @@ const __iconNode$P = [
1346
1346
  ["path", { d: "M16 13H8", key: "t4e002" }],
1347
1347
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
1348
1348
  ];
1349
- const FileText = createLucideIcon("file-text", __iconNode$P);
1350
- const __iconNode$O = [
1349
+ const FileText = createLucideIcon("file-text", __iconNode$Q);
1350
+ const __iconNode$P = [
1351
1351
  [
1352
1352
  "path",
1353
1353
  {
@@ -1357,8 +1357,8 @@ const __iconNode$O = [
1357
1357
  ],
1358
1358
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
1359
1359
  ];
1360
- const File = createLucideIcon("file", __iconNode$O);
1361
- const __iconNode$N = [
1360
+ const File = createLucideIcon("file", __iconNode$P);
1361
+ const __iconNode$O = [
1362
1362
  [
1363
1363
  "path",
1364
1364
  {
@@ -1367,8 +1367,8 @@ const __iconNode$N = [
1367
1367
  }
1368
1368
  ]
1369
1369
  ];
1370
- const FolderOpen = createLucideIcon("folder-open", __iconNode$N);
1371
- const __iconNode$M = [
1370
+ const FolderOpen = createLucideIcon("folder-open", __iconNode$O);
1371
+ const __iconNode$N = [
1372
1372
  ["path", { d: "M12 10v6", key: "1bos4e" }],
1373
1373
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
1374
1374
  [
@@ -1379,8 +1379,8 @@ const __iconNode$M = [
1379
1379
  }
1380
1380
  ]
1381
1381
  ];
1382
- const FolderPlus = createLucideIcon("folder-plus", __iconNode$M);
1383
- const __iconNode$L = [
1382
+ const FolderPlus = createLucideIcon("folder-plus", __iconNode$N);
1383
+ const __iconNode$M = [
1384
1384
  [
1385
1385
  "path",
1386
1386
  {
@@ -1389,8 +1389,8 @@ const __iconNode$L = [
1389
1389
  }
1390
1390
  ]
1391
1391
  ];
1392
- const Folder = createLucideIcon("folder", __iconNode$L);
1393
- const __iconNode$K = [
1392
+ const Folder = createLucideIcon("folder", __iconNode$M);
1393
+ const __iconNode$L = [
1394
1394
  [
1395
1395
  "path",
1396
1396
  {
@@ -1403,13 +1403,19 @@ const __iconNode$K = [
1403
1403
  { d: "M3 8.268a2 2 0 0 0-1 1.738V19a2 2 0 0 0 2 2h11a2 2 0 0 0 1.732-1", key: "yxbcw3" }
1404
1404
  ]
1405
1405
  ];
1406
- const Folders = createLucideIcon("folders", __iconNode$K);
1407
- const __iconNode$J = [
1406
+ const Folders = createLucideIcon("folders", __iconNode$L);
1407
+ const __iconNode$K = [
1408
1408
  ["path", { d: "M15 6a9 9 0 0 0-9 9V3", key: "1cii5b" }],
1409
1409
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
1410
1410
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }]
1411
1411
  ];
1412
- const GitBranch = createLucideIcon("git-branch", __iconNode$J);
1412
+ const GitBranch = createLucideIcon("git-branch", __iconNode$K);
1413
+ const __iconNode$J = [
1414
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
1415
+ ["line", { x1: "3", x2: "9", y1: "12", y2: "12", key: "1dyftd" }],
1416
+ ["line", { x1: "15", x2: "21", y1: "12", y2: "12", key: "oup4p8" }]
1417
+ ];
1418
+ const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode$J);
1413
1419
  const __iconNode$I = [
1414
1420
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
1415
1421
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
@@ -1439,15 +1445,6 @@ const __iconNode$F = [
1439
1445
  ];
1440
1446
  const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$F);
1441
1447
  const __iconNode$E = [
1442
- ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
1443
- ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
1444
- ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
1445
- ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
1446
- ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
1447
- ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
1448
- ];
1449
- const GripVertical = createLucideIcon("grip-vertical", __iconNode$E);
1450
- const __iconNode$D = [
1451
1448
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }],
1452
1449
  ["path", { d: "M10.41 10.41a2 2 0 1 1-2.83-2.83", key: "1bzlo9" }],
1453
1450
  ["line", { x1: "13.5", x2: "6", y1: "13.5", y2: "21", key: "1q0aeu" }],
@@ -1461,31 +1458,31 @@ const __iconNode$D = [
1461
1458
  ],
1462
1459
  ["path", { d: "M21 15V5a2 2 0 0 0-2-2H9", key: "43el77" }]
1463
1460
  ];
1464
- const ImageOff = createLucideIcon("image-off", __iconNode$D);
1465
- const __iconNode$C = [
1461
+ const ImageOff = createLucideIcon("image-off", __iconNode$E);
1462
+ const __iconNode$D = [
1466
1463
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
1467
1464
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
1468
1465
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
1469
1466
  ];
1470
- const Image$1 = createLucideIcon("image", __iconNode$C);
1471
- const __iconNode$B = [
1467
+ const Image$1 = createLucideIcon("image", __iconNode$D);
1468
+ const __iconNode$C = [
1472
1469
  ["path", { d: "M16 5H3", key: "m91uny" }],
1473
1470
  ["path", { d: "M11 12H3", key: "51ecnj" }],
1474
1471
  ["path", { d: "M16 19H3", key: "zzsher" }],
1475
1472
  ["path", { d: "M21 12h-6", key: "bt1uis" }]
1476
1473
  ];
1477
- const ListMinus = createLucideIcon("list-minus", __iconNode$B);
1478
- const __iconNode$A = [
1474
+ const ListMinus = createLucideIcon("list-minus", __iconNode$C);
1475
+ const __iconNode$B = [
1479
1476
  ["path", { d: "M13 5h8", key: "a7qcls" }],
1480
1477
  ["path", { d: "M13 12h8", key: "h98zly" }],
1481
1478
  ["path", { d: "M13 19h8", key: "c3s6r1" }],
1482
1479
  ["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
1483
1480
  ["rect", { x: "3", y: "4", width: "6", height: "6", rx: "1", key: "cif1o7" }]
1484
1481
  ];
1485
- const ListTodo = createLucideIcon("list-todo", __iconNode$A);
1486
- const __iconNode$z = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
1487
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$z);
1488
- const __iconNode$y = [
1482
+ const ListTodo = createLucideIcon("list-todo", __iconNode$B);
1483
+ const __iconNode$A = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
1484
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$A);
1485
+ const __iconNode$z = [
1489
1486
  ["path", { d: "M12 2v4", key: "3427ic" }],
1490
1487
  ["path", { d: "m16.2 7.8 2.9-2.9", key: "r700ao" }],
1491
1488
  ["path", { d: "M18 12h4", key: "wj9ykh" }],
@@ -1495,26 +1492,26 @@ const __iconNode$y = [
1495
1492
  ["path", { d: "M2 12h4", key: "j09sii" }],
1496
1493
  ["path", { d: "m4.9 4.9 2.9 2.9", key: "giyufr" }]
1497
1494
  ];
1498
- const Loader = createLucideIcon("loader", __iconNode$y);
1499
- const __iconNode$x = [
1495
+ const Loader = createLucideIcon("loader", __iconNode$z);
1496
+ const __iconNode$y = [
1500
1497
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
1501
1498
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
1502
1499
  ];
1503
- const Lock = createLucideIcon("lock", __iconNode$x);
1504
- const __iconNode$w = [
1500
+ const Lock = createLucideIcon("lock", __iconNode$y);
1501
+ const __iconNode$x = [
1505
1502
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
1506
1503
  ["path", { d: "m21 3-7 7", key: "1l2asr" }],
1507
1504
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
1508
1505
  ["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
1509
1506
  ];
1510
- const Maximize2 = createLucideIcon("maximize-2", __iconNode$w);
1511
- const __iconNode$v = [
1507
+ const Maximize2 = createLucideIcon("maximize-2", __iconNode$x);
1508
+ const __iconNode$w = [
1512
1509
  ["path", { d: "M4 5h16", key: "1tepv9" }],
1513
1510
  ["path", { d: "M4 12h16", key: "1lakjw" }],
1514
1511
  ["path", { d: "M4 19h16", key: "1djgab" }]
1515
1512
  ];
1516
- const Menu$1 = createLucideIcon("menu", __iconNode$v);
1517
- const __iconNode$u = [
1513
+ const Menu$1 = createLucideIcon("menu", __iconNode$w);
1514
+ const __iconNode$v = [
1518
1515
  [
1519
1516
  "path",
1520
1517
  {
@@ -1523,21 +1520,21 @@ const __iconNode$u = [
1523
1520
  }
1524
1521
  ]
1525
1522
  ];
1526
- const MessageSquare = createLucideIcon("message-square", __iconNode$u);
1527
- const __iconNode$t = [
1523
+ const MessageSquare = createLucideIcon("message-square", __iconNode$v);
1524
+ const __iconNode$u = [
1528
1525
  ["path", { d: "m14 10 7-7", key: "oa77jy" }],
1529
1526
  ["path", { d: "M20 10h-6V4", key: "mjg0md" }],
1530
1527
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
1531
1528
  ["path", { d: "M4 14h6v6", key: "rmj7iw" }]
1532
1529
  ];
1533
- const Minimize2 = createLucideIcon("minimize-2", __iconNode$t);
1534
- const __iconNode$s = [
1530
+ const Minimize2 = createLucideIcon("minimize-2", __iconNode$u);
1531
+ const __iconNode$t = [
1535
1532
  ["path", { d: "M9 18V5l12-2v13", key: "1jmyc2" }],
1536
1533
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
1537
1534
  ["circle", { cx: "18", cy: "16", r: "3", key: "1hluhg" }]
1538
1535
  ];
1539
- const Music = createLucideIcon("music", __iconNode$s);
1540
- const __iconNode$r = [
1536
+ const Music = createLucideIcon("music", __iconNode$t);
1537
+ const __iconNode$s = [
1541
1538
  [
1542
1539
  "path",
1543
1540
  {
@@ -1549,18 +1546,18 @@ const __iconNode$r = [
1549
1546
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
1550
1547
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
1551
1548
  ];
1552
- const Package = createLucideIcon("package", __iconNode$r);
1553
- const __iconNode$q = [
1549
+ const Package = createLucideIcon("package", __iconNode$s);
1550
+ const __iconNode$r = [
1554
1551
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1555
1552
  ["path", { d: "M9 3v18", key: "fh3hqa" }]
1556
1553
  ];
1557
- const PanelLeft = createLucideIcon("panel-left", __iconNode$q);
1558
- const __iconNode$p = [
1554
+ const PanelLeft = createLucideIcon("panel-left", __iconNode$r);
1555
+ const __iconNode$q = [
1559
1556
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1560
1557
  ["path", { d: "M3 9h18", key: "1pudct" }]
1561
1558
  ];
1562
- const PanelTop = createLucideIcon("panel-top", __iconNode$p);
1563
- const __iconNode$o = [
1559
+ const PanelTop = createLucideIcon("panel-top", __iconNode$q);
1560
+ const __iconNode$p = [
1564
1561
  [
1565
1562
  "path",
1566
1563
  {
@@ -1569,8 +1566,8 @@ const __iconNode$o = [
1569
1566
  }
1570
1567
  ]
1571
1568
  ];
1572
- const Paperclip = createLucideIcon("paperclip", __iconNode$o);
1573
- const __iconNode$n = [
1569
+ const Paperclip = createLucideIcon("paperclip", __iconNode$p);
1570
+ const __iconNode$o = [
1574
1571
  [
1575
1572
  "path",
1576
1573
  {
@@ -1580,8 +1577,8 @@ const __iconNode$n = [
1580
1577
  ],
1581
1578
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }]
1582
1579
  ];
1583
- const Pencil = createLucideIcon("pencil", __iconNode$n);
1584
- const __iconNode$m = [
1580
+ const Pencil = createLucideIcon("pencil", __iconNode$o);
1581
+ const __iconNode$n = [
1585
1582
  [
1586
1583
  "path",
1587
1584
  {
@@ -1590,20 +1587,20 @@ const __iconNode$m = [
1590
1587
  }
1591
1588
  ]
1592
1589
  ];
1593
- const Play = createLucideIcon("play", __iconNode$m);
1594
- const __iconNode$l = [
1590
+ const Play = createLucideIcon("play", __iconNode$n);
1591
+ const __iconNode$m = [
1595
1592
  ["path", { d: "M5 12h14", key: "1ays0h" }],
1596
1593
  ["path", { d: "M12 5v14", key: "s699le" }]
1597
1594
  ];
1598
- const Plus = createLucideIcon("plus", __iconNode$l);
1599
- const __iconNode$k = [
1595
+ const Plus = createLucideIcon("plus", __iconNode$m);
1596
+ const __iconNode$l = [
1600
1597
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
1601
1598
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
1602
1599
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
1603
1600
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
1604
1601
  ];
1605
- const RefreshCw = createLucideIcon("refresh-cw", __iconNode$k);
1606
- const __iconNode$j = [
1602
+ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$l);
1603
+ const __iconNode$k = [
1607
1604
  ["path", { d: "M17 3v10", key: "15fgeh" }],
1608
1605
  ["path", { d: "m12.67 5.5 8.66 5", key: "1gpheq" }],
1609
1606
  ["path", { d: "m12.67 10.5 8.66-5", key: "1dkfa6" }],
@@ -1612,23 +1609,23 @@ const __iconNode$j = [
1612
1609
  { d: "M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z", key: "swwfx4" }
1613
1610
  ]
1614
1611
  ];
1615
- const Regex = createLucideIcon("regex", __iconNode$j);
1616
- const __iconNode$i = [
1612
+ const Regex = createLucideIcon("regex", __iconNode$k);
1613
+ const __iconNode$j = [
1617
1614
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
1618
1615
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
1619
1616
  ];
1620
- const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$i);
1621
- const __iconNode$h = [
1617
+ const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$j);
1618
+ const __iconNode$i = [
1622
1619
  ["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8", key: "1p45f6" }],
1623
1620
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }]
1624
1621
  ];
1625
- const RotateCw = createLucideIcon("rotate-cw", __iconNode$h);
1626
- const __iconNode$g = [
1622
+ const RotateCw = createLucideIcon("rotate-cw", __iconNode$i);
1623
+ const __iconNode$h = [
1627
1624
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1628
1625
  ["path", { d: "M3 12h18", key: "1i2n21" }]
1629
1626
  ];
1630
- const Rows2 = createLucideIcon("rows-2", __iconNode$g);
1631
- const __iconNode$f = [
1627
+ const Rows2 = createLucideIcon("rows-2", __iconNode$h);
1628
+ const __iconNode$g = [
1632
1629
  [
1633
1630
  "path",
1634
1631
  {
@@ -1639,8 +1636,8 @@ const __iconNode$f = [
1639
1636
  ["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
1640
1637
  ["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
1641
1638
  ];
1642
- const Save = createLucideIcon("save", __iconNode$f);
1643
- const __iconNode$e = [
1639
+ const Save = createLucideIcon("save", __iconNode$g);
1640
+ const __iconNode$f = [
1644
1641
  ["path", { d: "M15 12h-5", key: "r7krc0" }],
1645
1642
  ["path", { d: "M15 8h-5", key: "1khuty" }],
1646
1643
  ["path", { d: "M19 17V5a2 2 0 0 0-2-2H4", key: "zz82l3" }],
@@ -1652,13 +1649,13 @@ const __iconNode$e = [
1652
1649
  }
1653
1650
  ]
1654
1651
  ];
1655
- const ScrollText = createLucideIcon("scroll-text", __iconNode$e);
1656
- const __iconNode$d = [
1652
+ const ScrollText = createLucideIcon("scroll-text", __iconNode$f);
1653
+ const __iconNode$e = [
1657
1654
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
1658
1655
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
1659
1656
  ];
1660
- const Search = createLucideIcon("search", __iconNode$d);
1661
- const __iconNode$c = [
1657
+ const Search = createLucideIcon("search", __iconNode$e);
1658
+ const __iconNode$d = [
1662
1659
  [
1663
1660
  "path",
1664
1661
  {
@@ -1668,7 +1665,20 @@ const __iconNode$c = [
1668
1665
  ],
1669
1666
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
1670
1667
  ];
1671
- const Settings$1 = createLucideIcon("settings", __iconNode$c);
1668
+ const Settings$1 = createLucideIcon("settings", __iconNode$d);
1669
+ const __iconNode$c = [
1670
+ [
1671
+ "path",
1672
+ {
1673
+ d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",
1674
+ key: "1s2grr"
1675
+ }
1676
+ ],
1677
+ ["path", { d: "M20 2v4", key: "1rf3ol" }],
1678
+ ["path", { d: "M22 4h-4", key: "gwowj6" }],
1679
+ ["circle", { cx: "4", cy: "20", r: "2", key: "6kqj1y" }]
1680
+ ];
1681
+ const Sparkles = createLucideIcon("sparkles", __iconNode$c);
1672
1682
  const __iconNode$b = [
1673
1683
  ["path", { d: "M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6", key: "y09zxi" }],
1674
1684
  ["path", { d: "m21 3-9 9", key: "mpx6sq" }],
@@ -14766,7 +14776,7 @@ function CommandItem({ className, ...props }) {
14766
14776
  {
14767
14777
  "data-slot": "command-item",
14768
14778
  className: cn$2(
14769
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14779
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground dark:data-[selected=true]:bg-neutral-700 dark:data-[selected=true]:text-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14770
14780
  className
14771
14781
  ),
14772
14782
  ...props
@@ -14823,7 +14833,7 @@ function ContextMenuItem({
14823
14833
  "data-inset": inset,
14824
14834
  "data-variant": variant,
14825
14835
  className: cn$2(
14826
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
14836
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground dark:focus:bg-neutral-700 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
14827
14837
  className
14828
14838
  ),
14829
14839
  ...props
@@ -14845,7 +14855,7 @@ function ContextMenuSubTrigger({
14845
14855
  "data-slot": "context-menu-sub-trigger",
14846
14856
  "data-inset": inset,
14847
14857
  className: cn$2(
14848
- "flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
14858
+ "flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground dark:focus:bg-neutral-700 data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground dark:data-[state=open]:bg-neutral-700 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
14849
14859
  className
14850
14860
  ),
14851
14861
  ...props,
@@ -14927,7 +14937,7 @@ function DropdownMenuItem({
14927
14937
  "data-inset": inset,
14928
14938
  "data-variant": variant,
14929
14939
  className: cn$2(
14930
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
14940
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground dark:focus:bg-neutral-700 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
14931
14941
  className
14932
14942
  ),
14933
14943
  ...props
@@ -14945,7 +14955,7 @@ function DropdownMenuCheckboxItem({
14945
14955
  {
14946
14956
  "data-slot": "dropdown-menu-checkbox-item",
14947
14957
  className: cn$2(
14948
- "relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 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",
14958
+ "relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground dark:focus:bg-neutral-700 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14949
14959
  className
14950
14960
  ),
14951
14961
  checked,
@@ -15147,7 +15157,7 @@ function SelectItem({
15147
15157
  // Mirror DropdownMenuItem padding/outline/icon styling so select
15148
15158
  // items render identically to menu items. Extra right padding leaves
15149
15159
  // room for the absolutely-positioned check indicator.
15150
- "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",
15160
+ "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 dark:focus:bg-neutral-700 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",
15151
15161
  className
15152
15162
  ),
15153
15163
  ...props,
@@ -26806,9 +26816,9 @@ handlers$1.drop = (view, event) => {
26806
26816
  return true;
26807
26817
  let files = event.dataTransfer.files;
26808
26818
  if (files && files.length) {
26809
- let text2 = Array(files.length), read = 0;
26819
+ let text2 = Array(files.length), read2 = 0;
26810
26820
  let finishFile = () => {
26811
- if (++read == files.length)
26821
+ if (++read2 == files.length)
26812
26822
  dropText(view, event, text2.filter((s2) => s2 != null).join(view.state.lineBreak), false);
26813
26823
  };
26814
26824
  for (let i2 = 0; i2 < files.length; i2++) {
@@ -29110,14 +29120,14 @@ function safariSelectionRangeHack(view, selection2) {
29110
29120
  return buildSelectionRangeFromRange(view, range2);
29111
29121
  }
29112
29122
  let found = null;
29113
- function read(event) {
29123
+ function read2(event) {
29114
29124
  event.preventDefault();
29115
29125
  event.stopImmediatePropagation();
29116
29126
  found = event.getTargetRanges()[0];
29117
29127
  }
29118
- view.contentDOM.addEventListener("beforeinput", read, true);
29128
+ view.contentDOM.addEventListener("beforeinput", read2, true);
29119
29129
  view.dom.ownerDocument.execCommand("indent");
29120
- view.contentDOM.removeEventListener("beforeinput", read, true);
29130
+ view.contentDOM.removeEventListener("beforeinput", read2, true);
29121
29131
  return found ? buildSelectionRangeFromRange(view, found) : null;
29122
29132
  }
29123
29133
  class EditContextManager {
@@ -40483,53 +40493,53 @@ async function loadLanguage(lang) {
40483
40493
  try {
40484
40494
  switch (lang) {
40485
40495
  case "javascript":
40486
- return import("./index-DBmY9Kl-.js").then((m2) => m2.javascript());
40496
+ return import("./index-Cjn0yAaG.js").then((m2) => m2.javascript());
40487
40497
  case "jsx":
40488
- return import("./index-DBmY9Kl-.js").then((m2) => m2.javascript({ jsx: true }));
40498
+ return import("./index-Cjn0yAaG.js").then((m2) => m2.javascript({ jsx: true }));
40489
40499
  case "typescript":
40490
- return import("./index-DBmY9Kl-.js").then(
40500
+ return import("./index-Cjn0yAaG.js").then(
40491
40501
  (m2) => m2.javascript({ typescript: true })
40492
40502
  );
40493
40503
  case "tsx":
40494
- return import("./index-DBmY9Kl-.js").then(
40504
+ return import("./index-Cjn0yAaG.js").then(
40495
40505
  (m2) => m2.javascript({ jsx: true, typescript: true })
40496
40506
  );
40497
40507
  case "python":
40498
- return import("./index-no5gnAsf.js").then((m2) => m2.python());
40508
+ return import("./index-BN_ghim8.js").then((m2) => m2.python());
40499
40509
  case "html":
40500
- return import("./index-BsJzTvSJ.js").then((m2) => m2.html());
40510
+ return import("./index-BuX-CbGB.js").then((m2) => m2.html());
40501
40511
  case "css":
40502
- return import("./index-DQxHX7Lv.js").then((m2) => m2.css());
40512
+ return import("./index-bEeLtTPr.js").then((m2) => m2.css());
40503
40513
  case "scss":
40504
40514
  case "sass":
40505
- return import("./index-DbAlA7HO.js").then((m2) => m2.sass());
40515
+ return import("./index-CAqpyyUA.js").then((m2) => m2.sass());
40506
40516
  case "less":
40507
- return import("./index-BIDr1DTu.js").then((m2) => m2.less());
40517
+ return import("./index-ChbBCGbG.js").then((m2) => m2.less());
40508
40518
  case "json":
40509
40519
  case "jsonc":
40510
- return import("./index-EvPsdhYL.js").then((m2) => m2.json());
40520
+ return import("./index-BS2yvWd8.js").then((m2) => m2.json());
40511
40521
  case "markdown":
40512
40522
  case "mdx":
40513
- return import("./index-DDLILDN_.js").then((m2) => m2.markdown());
40523
+ return import("./index-DE0zASO3.js").then((m2) => m2.markdown());
40514
40524
  case "xml":
40515
- return import("./index-WTleB0lf.js").then((m2) => m2.xml());
40525
+ return import("./index-CBNyhkhK.js").then((m2) => m2.xml());
40516
40526
  case "yaml":
40517
- return import("./index-C-1szG3T.js").then((m2) => m2.yaml());
40527
+ return import("./index-BsO3ggd_.js").then((m2) => m2.yaml());
40518
40528
  case "sql":
40519
- return import("./index-DafoxTP2.js").then((m2) => m2.sql());
40529
+ return import("./index-CERytpw-.js").then((m2) => m2.sql());
40520
40530
  case "rust":
40521
- return import("./index-DknBLjbj.js").then((m2) => m2.rust());
40531
+ return import("./index-CiwITdnL.js").then((m2) => m2.rust());
40522
40532
  case "go":
40523
- return import("./index-DgHW7UNt.js").then((m2) => m2.go());
40533
+ return import("./index-BNygmRkO.js").then((m2) => m2.go());
40524
40534
  case "java":
40525
- return import("./index-xaaGh4ls.js").then((m2) => m2.java());
40535
+ return import("./index-BF37iFwT.js").then((m2) => m2.java());
40526
40536
  case "kotlin":
40527
- return import("./index-xaaGh4ls.js").then((m2) => m2.java());
40537
+ return import("./index-BF37iFwT.js").then((m2) => m2.java());
40528
40538
  case "c":
40529
40539
  case "cpp":
40530
- return import("./index-DnQXmsaa.js").then((m2) => m2.cpp());
40540
+ return import("./index-Bw1GdZx-.js").then((m2) => m2.cpp());
40531
40541
  case "php":
40532
- return import("./index-CS6JuHB3.js").then((m2) => m2.php());
40542
+ return import("./index-CpuhPF5t.js").then((m2) => m2.php());
40533
40543
  // Legacy modes via StreamLanguage
40534
40544
  case "bash":
40535
40545
  case "fish":
@@ -41433,6 +41443,164 @@ function CommandPaletteDialog({ open: open2, onOpenChange, commands }) {
41433
41443
  ] })
41434
41444
  ] }) });
41435
41445
  }
41446
+ function CommitDialog({
41447
+ open: open2,
41448
+ onOpenChange,
41449
+ workspaceId,
41450
+ filesChanged,
41451
+ onCommitted
41452
+ }) {
41453
+ const adapter2 = useAdapter();
41454
+ const canAutoGenerate = Boolean(adapter2.generateCommitMessage);
41455
+ const canCommit = Boolean(adapter2.gitCommitWorkspace);
41456
+ const [subject, setSubject] = reactExports.useState("");
41457
+ const [body2, setBody] = reactExports.useState("");
41458
+ const [generating, setGenerating] = reactExports.useState(false);
41459
+ const [committing, setCommitting] = reactExports.useState(false);
41460
+ const [error, setError] = reactExports.useState(null);
41461
+ const [agentLabel, setAgentLabel] = reactExports.useState(null);
41462
+ reactExports.useEffect(() => {
41463
+ if (open2) {
41464
+ setSubject("");
41465
+ setBody("");
41466
+ setError(null);
41467
+ setAgentLabel(null);
41468
+ setGenerating(false);
41469
+ setCommitting(false);
41470
+ }
41471
+ }, [open2]);
41472
+ const handleAutoGenerate = async () => {
41473
+ const generate2 = adapter2.generateCommitMessage;
41474
+ if (!generate2) return;
41475
+ setError(null);
41476
+ setGenerating(true);
41477
+ try {
41478
+ const result = await generate2.call(adapter2, workspaceId);
41479
+ setSubject(result.message);
41480
+ setBody(result.body);
41481
+ setAgentLabel(result.agentLabel);
41482
+ } catch (e2) {
41483
+ setError(e2 instanceof Error ? e2.message : String(e2));
41484
+ } finally {
41485
+ setGenerating(false);
41486
+ }
41487
+ };
41488
+ const performCommit = async (message, bodyToCommit) => {
41489
+ const commit = adapter2.gitCommitWorkspace;
41490
+ if (!commit) return;
41491
+ setCommitting(true);
41492
+ setError(null);
41493
+ try {
41494
+ await commit.call(adapter2, workspaceId, message, bodyToCommit || void 0);
41495
+ onCommitted();
41496
+ onOpenChange(false);
41497
+ } catch (e2) {
41498
+ setError(e2 instanceof Error ? e2.message : String(e2));
41499
+ } finally {
41500
+ setCommitting(false);
41501
+ }
41502
+ };
41503
+ const handleCommit = async () => {
41504
+ const trimmedSubject = subject.trim();
41505
+ const trimmedBody = body2.trim();
41506
+ if (!trimmedSubject) {
41507
+ if (!canAutoGenerate) {
41508
+ setError("Enter a commit message before committing.");
41509
+ return;
41510
+ }
41511
+ const generate2 = adapter2.generateCommitMessage;
41512
+ if (!generate2) return;
41513
+ setError(null);
41514
+ setGenerating(true);
41515
+ try {
41516
+ const result = await generate2.call(adapter2, workspaceId);
41517
+ setSubject(result.message);
41518
+ setBody(result.body);
41519
+ setAgentLabel(result.agentLabel);
41520
+ await performCommit(result.message, result.body);
41521
+ } catch (e2) {
41522
+ setError(e2 instanceof Error ? e2.message : String(e2));
41523
+ } finally {
41524
+ setGenerating(false);
41525
+ }
41526
+ return;
41527
+ }
41528
+ await performCommit(trimmedSubject, trimmedBody);
41529
+ };
41530
+ const busy = generating || committing;
41531
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange: (o3) => busy ? null : onOpenChange(o3), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-[560px]", children: [
41532
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
41533
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Commit changes" }),
41534
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: filesChanged === 1 ? "Stage and commit 1 changed file." : `Stage and commit ${filesChanged} changed files.` })
41535
+ ] }),
41536
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-3", children: [
41537
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-1.5", children: [
41538
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "commit-subject", children: "Message" }),
41539
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
41540
+ Input,
41541
+ {
41542
+ id: "commit-subject",
41543
+ placeholder: "Short summary of the change",
41544
+ value: subject,
41545
+ onChange: (e2) => setSubject(e2.target.value),
41546
+ disabled: busy,
41547
+ maxLength: 200,
41548
+ autoFocus: true
41549
+ }
41550
+ )
41551
+ ] }),
41552
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-1.5", children: [
41553
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { htmlFor: "commit-body", children: [
41554
+ "Details ",
41555
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground", children: "(optional)" })
41556
+ ] }),
41557
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
41558
+ Textarea,
41559
+ {
41560
+ id: "commit-body",
41561
+ placeholder: "Explain why this change is being made…",
41562
+ value: body2,
41563
+ onChange: (e2) => setBody(e2.target.value),
41564
+ disabled: busy,
41565
+ rows: 5,
41566
+ className: "font-mono text-xs"
41567
+ }
41568
+ )
41569
+ ] }),
41570
+ agentLabel && !error && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-xs text-muted-foreground", children: [
41571
+ "Generated with ",
41572
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium", children: agentLabel }),
41573
+ ". Edit before committing if needed."
41574
+ ] }),
41575
+ error && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive", children: error })
41576
+ ] }),
41577
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogFooter, { className: "flex-row items-center justify-between", children: [
41578
+ canAutoGenerate ? /* @__PURE__ */ jsxRuntimeExports.jsxs(
41579
+ Button,
41580
+ {
41581
+ variant: "outline",
41582
+ onClick: handleAutoGenerate,
41583
+ disabled: busy,
41584
+ type: "button",
41585
+ title: "Auto-generate commit message",
41586
+ "aria-label": "Auto-generate commit message",
41587
+ children: [
41588
+ generating ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Sparkles, { className: "size-4" }),
41589
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "hidden sm:inline", children: "Auto-generate" })
41590
+ ]
41591
+ }
41592
+ ) : (
41593
+ // Empty placeholder keeps Commit pinned to the right via
41594
+ // justify-between when no agent is configured.
41595
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", {})
41596
+ ),
41597
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Button, { onClick: handleCommit, disabled: busy || !canCommit, children: [
41598
+ committing ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }) : null,
41599
+ "Commit"
41600
+ ] })
41601
+ ] })
41602
+ ] }) });
41603
+ }
41436
41604
  function useCliSetup() {
41437
41605
  const adapter2 = useAdapter();
41438
41606
  const [state2, setState] = reactExports.useState({ status: "checking" });
@@ -41500,6 +41668,71 @@ function useCliSetup() {
41500
41668
  };
41501
41669
  return { state: state2, install };
41502
41670
  }
41671
+ const PROJECTS_COLLAPSE_KEY = "band.projects-list.collapsed-projects";
41672
+ const LABELS_COLLAPSE_KEY = "band.projects-list.collapsed-labels";
41673
+ const UNLABELED_KEY = "__unlabeled";
41674
+ const SYNC_EVENT$1 = "band:collapse-state-change";
41675
+ function read$1(key2) {
41676
+ if (typeof window === "undefined") return /* @__PURE__ */ new Set();
41677
+ try {
41678
+ const raw2 = window.localStorage.getItem(key2);
41679
+ if (!raw2) return /* @__PURE__ */ new Set();
41680
+ const parsed = JSON.parse(raw2);
41681
+ if (Array.isArray(parsed))
41682
+ return new Set(parsed.filter((v2) => typeof v2 === "string"));
41683
+ } catch {
41684
+ }
41685
+ return /* @__PURE__ */ new Set();
41686
+ }
41687
+ function write$1(key2, set2) {
41688
+ if (typeof window === "undefined") return;
41689
+ try {
41690
+ window.localStorage.setItem(key2, JSON.stringify([...set2]));
41691
+ } catch {
41692
+ }
41693
+ window.dispatchEvent(new CustomEvent(SYNC_EVENT$1, { detail: { key: key2 } }));
41694
+ }
41695
+ function useCollapseState(storageKey2) {
41696
+ const [collapsed, setCollapsed] = reactExports.useState(() => read$1(storageKey2));
41697
+ reactExports.useEffect(() => {
41698
+ const sync = (e2) => {
41699
+ if (e2 instanceof StorageEvent && e2.key !== storageKey2) return;
41700
+ if (e2 instanceof CustomEvent && e2.detail?.key !== storageKey2) return;
41701
+ setCollapsed(read$1(storageKey2));
41702
+ };
41703
+ window.addEventListener("storage", sync);
41704
+ window.addEventListener(SYNC_EVENT$1, sync);
41705
+ return () => {
41706
+ window.removeEventListener("storage", sync);
41707
+ window.removeEventListener(SYNC_EVENT$1, sync);
41708
+ };
41709
+ }, [storageKey2]);
41710
+ const isCollapsed = reactExports.useCallback((id28) => collapsed.has(id28), [collapsed]);
41711
+ const toggle = reactExports.useCallback(
41712
+ (id28) => {
41713
+ setCollapsed((prev2) => {
41714
+ const next2 = new Set(prev2);
41715
+ if (next2.has(id28)) {
41716
+ next2.delete(id28);
41717
+ } else {
41718
+ next2.add(id28);
41719
+ }
41720
+ write$1(storageKey2, next2);
41721
+ return next2;
41722
+ });
41723
+ },
41724
+ [storageKey2]
41725
+ );
41726
+ const setAll = reactExports.useCallback(
41727
+ (ids2) => {
41728
+ const next2 = new Set(ids2);
41729
+ write$1(storageKey2, next2);
41730
+ setCollapsed(next2);
41731
+ },
41732
+ [storageKey2]
41733
+ );
41734
+ return reactExports.useMemo(() => ({ isCollapsed, toggle, setAll }), [isCollapsed, toggle, setAll]);
41735
+ }
41503
41736
  function useHooksSetup() {
41504
41737
  const adapter2 = useAdapter();
41505
41738
  const [state2, setState] = reactExports.useState({ status: "checking" });
@@ -41538,6 +41771,49 @@ function useHooksSetup() {
41538
41771
  };
41539
41772
  return { state: state2, install };
41540
41773
  }
41774
+ const LABEL_FILTER_KEY = "band.projects-list.label-filter";
41775
+ const SYNC_EVENT = "band:label-filter-change";
41776
+ function read() {
41777
+ if (typeof window === "undefined") return null;
41778
+ try {
41779
+ const raw2 = window.localStorage.getItem(LABEL_FILTER_KEY);
41780
+ return raw2 ?? null;
41781
+ } catch {
41782
+ return null;
41783
+ }
41784
+ }
41785
+ function write(value) {
41786
+ if (typeof window === "undefined") return;
41787
+ try {
41788
+ if (value == null) {
41789
+ window.localStorage.removeItem(LABEL_FILTER_KEY);
41790
+ } else {
41791
+ window.localStorage.setItem(LABEL_FILTER_KEY, value);
41792
+ }
41793
+ } catch {
41794
+ }
41795
+ window.dispatchEvent(new CustomEvent(SYNC_EVENT));
41796
+ }
41797
+ function useLabelFilter() {
41798
+ const [value, setValue] = reactExports.useState(() => read());
41799
+ reactExports.useEffect(() => {
41800
+ const sync = (e2) => {
41801
+ if (e2 instanceof StorageEvent && e2.key !== LABEL_FILTER_KEY) return;
41802
+ setValue(read());
41803
+ };
41804
+ window.addEventListener("storage", sync);
41805
+ window.addEventListener(SYNC_EVENT, sync);
41806
+ return () => {
41807
+ window.removeEventListener("storage", sync);
41808
+ window.removeEventListener(SYNC_EVENT, sync);
41809
+ };
41810
+ }, []);
41811
+ const setLabelFilter = reactExports.useCallback((next2) => {
41812
+ write(next2);
41813
+ setValue(next2);
41814
+ }, []);
41815
+ return [value, setLabelFilter];
41816
+ }
41541
41817
  function useProjects() {
41542
41818
  const adapter2 = useAdapter();
41543
41819
  const { data, isLoading, error } = useQuery({
@@ -46088,7 +46364,7 @@ function GitStatusIndicator({ git }) {
46088
46364
  }
46089
46365
  if (parts.length === 0) return null;
46090
46366
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
46091
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-flex items-center gap-0.5 font-mono text-[11px] leading-none shrink-0", children: parts.map((p3) => /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: p3.color, children: p3.text }, p3.text)) }) }),
46367
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-flex items-center gap-0.5 font-mono text-[11px] leading-none shrink-0 pr-0.5", children: parts.map((p3) => /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: p3.color, children: p3.text }, p3.text)) }) }),
46092
46368
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: parts.map((p3) => p3.tooltip).join(", ") })
46093
46369
  ] });
46094
46370
  }
@@ -46119,8 +46395,7 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
46119
46395
  branchStatus,
46120
46396
  setupStatus,
46121
46397
  isFocused,
46122
- onShowDeleteDialog,
46123
- editMode
46398
+ onShowDeleteDialog
46124
46399
  }) {
46125
46400
  const cardRef = reactExports.useRef(null);
46126
46401
  const capabilities2 = useCapabilities();
@@ -46146,7 +46421,7 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
46146
46421
  openWorkspace(workspaceId);
46147
46422
  }
46148
46423
  };
46149
- const className = `@container group flex flex-row items-center justify-between px-3 py-1 min-w-0 overflow-hidden cursor-pointer select-none transition-colors hover:bg-accent/50 ${isActive ? "bg-accent/50 border-l-2 border-l-primary" : ""} ${isFocused ? "ring-2 ring-inset ring-ring" : ""} ${href ? "no-underline text-inherit" : ""}`;
46424
+ const className = `@container group flex flex-row items-center justify-between pl-3 pr-2 py-1 min-w-0 overflow-hidden cursor-pointer select-none transition-colors hover:bg-accent/50 ${isActive ? "bg-accent/50 border-l-2 border-l-primary" : ""} ${isFocused ? "ring-2 ring-inset ring-ring" : ""} ${href ? "no-underline text-inherit" : ""}`;
46150
46425
  const containerProps = {
46151
46426
  ref: cardRef,
46152
46427
  className,
@@ -46194,7 +46469,7 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
46194
46469
  ] }) }),
46195
46470
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "top", children: worktree.branch })
46196
46471
  ] }),
46197
- !editMode && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
46472
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
46198
46473
  /* @__PURE__ */ jsxRuntimeExports.jsx(SetupStatusIndicator, { setup: setupStatus }),
46199
46474
  branchStatus && /* @__PURE__ */ jsxRuntimeExports.jsx(GitStatusIndicator, { git: branchStatus.git }),
46200
46475
  branchStatus && /* @__PURE__ */ jsxRuntimeExports.jsx(CIStatusIndicator, { ci: branchStatus.ci })
@@ -46244,63 +46519,67 @@ function SortableProject({
46244
46519
  onShowDeleteDialog,
46245
46520
  focusedIndex,
46246
46521
  workspaceIndexStart,
46247
- editMode
46522
+ collapsed,
46523
+ onToggleCollapse
46248
46524
  }) {
46249
46525
  const { attributes, listeners: listeners2, setNodeRef, transform: transform2, transition, isDragging } = useSortable({
46250
- id: project.name,
46251
- disabled: !editMode
46526
+ id: project.name
46252
46527
  });
46253
46528
  const capabilities2 = useCapabilities();
46529
+ const { active } = useDndContext();
46254
46530
  const style2 = {
46255
46531
  transform: CSS$1.Translate.toString(transform2),
46256
- transition,
46532
+ transition: active ? transition : void 0,
46257
46533
  opacity: isDragging ? 0.5 : void 0
46258
46534
  };
46259
46535
  let workspaceIndex = workspaceIndexStart;
46260
46536
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: setNodeRef, style: style2, className: "min-w-0 px-2", children: [
46261
46537
  /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenu, { children: [
46262
- /* @__PURE__ */ jsxRuntimeExports.jsx(ContextMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between mb-0.5 px-1 select-none", children: [
46263
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
46264
- "div",
46265
- {
46266
- className: `flex items-center gap-2 min-w-0 ${editMode ? "cursor-grab touch-none" : ""}`,
46267
- ...editMode ? { ...attributes, ...listeners2 } : {},
46268
- children: [
46269
- editMode && /* @__PURE__ */ jsxRuntimeExports.jsx(GripVertical, { className: "size-4 shrink-0 text-muted-foreground" }),
46270
- /* @__PURE__ */ jsxRuntimeExports.jsx(FolderOpen, { className: "size-4 shrink-0 text-muted-foreground" }),
46271
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
46272
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-sm font-semibold text-foreground/80 truncate", children: project.name }) }),
46273
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "top", children: project.name })
46274
- ] })
46275
- ]
46276
- }
46277
- ),
46278
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-1", children: editMode ? /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
46279
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
46280
- Button,
46281
- {
46282
- variant: "ghost",
46283
- size: "icon-xs",
46284
- className: "text-destructive hover:text-destructive",
46285
- onClick: () => removeProject(project.name),
46286
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trash2, {})
46287
- }
46288
- ) }),
46289
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: "Remove project" })
46290
- ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
46291
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
46292
- Button,
46293
- {
46294
- variant: "ghost",
46295
- size: "icon-xs",
46296
- onClick: () => setWorkspaceDialog(project.name),
46297
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, {})
46298
- }
46299
- ) }),
46300
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: "Add workspace" })
46301
- ] }) })
46302
- ] }) }),
46538
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ContextMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
46539
+ "div",
46540
+ {
46541
+ className: "group flex items-center justify-between mb-0.5 pl-1 pr-0 select-none touch-pan-y",
46542
+ onClick: () => onToggleCollapse(project.name),
46543
+ children: [
46544
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
46545
+ "div",
46546
+ {
46547
+ className: "flex items-center gap-2 min-w-0 cursor-grab",
46548
+ ...attributes,
46549
+ ...listeners2,
46550
+ children: [
46551
+ collapsed ? /* @__PURE__ */ jsxRuntimeExports.jsx(Folder, { className: "size-4 shrink-0 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(FolderOpen, { className: "size-4 shrink-0 text-muted-foreground" }),
46552
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
46553
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-sm font-semibold text-foreground/80 truncate", children: project.name }) }),
46554
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "top", children: project.name })
46555
+ ] })
46556
+ ]
46557
+ }
46558
+ ),
46559
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
46560
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
46561
+ Button,
46562
+ {
46563
+ variant: "ghost",
46564
+ size: "icon-xs",
46565
+ onPointerDown: (e2) => e2.stopPropagation(),
46566
+ onClick: (e2) => {
46567
+ e2.stopPropagation();
46568
+ setWorkspaceDialog(project.name);
46569
+ },
46570
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, {})
46571
+ }
46572
+ ) }),
46573
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: "Add workspace" })
46574
+ ] }) })
46575
+ ]
46576
+ }
46577
+ ) }),
46303
46578
  /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuContent, { children: [
46579
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => onToggleCollapse(project.name), children: [
46580
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: collapsed ? "" : "rotate-90" }),
46581
+ collapsed ? "Expand" : "Collapse"
46582
+ ] }),
46304
46583
  labels.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuSub, { children: [
46305
46584
  /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuSubTrigger, { children: [
46306
46585
  /* @__PURE__ */ jsxRuntimeExports.jsx(Tag$1, { className: "size-4 mr-2" }),
@@ -46345,7 +46624,7 @@ function SortableProject({
46345
46624
  ] })
46346
46625
  ] })
46347
46626
  ] }),
46348
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-0.5 overflow-hidden", children: project.worktrees.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground px-4 py-2", children: "No workspaces yet" }) : project.worktrees.map((wt2) => {
46627
+ !collapsed && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-0.5 overflow-hidden", children: project.worktrees.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground px-4 py-2", children: "No workspaces yet" }) : project.worktrees.map((wt2) => {
46349
46628
  const wsId = toWorkspaceId(project.name, wt2.branch);
46350
46629
  const currentIndex = workspaceIndex++;
46351
46630
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -46358,40 +46637,59 @@ function SortableProject({
46358
46637
  branchStatus: branchStatuses.get(wsId),
46359
46638
  setupStatus: setupStatuses.get(wsId),
46360
46639
  isFocused: currentIndex === focusedIndex,
46361
- onShowDeleteDialog,
46362
- editMode
46640
+ onShowDeleteDialog
46363
46641
  },
46364
46642
  wt2.branch
46365
46643
  );
46366
46644
  }) })
46367
46645
  ] });
46368
46646
  }
46369
- function DroppableLabelHeader({ labelId, label }) {
46647
+ function DroppableLabelHeader({ labelId, label, collapsed, onToggle }) {
46370
46648
  const { setNodeRef, isOver } = useDroppable({ id: `group:${labelId}` });
46371
46649
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
46372
- "div",
46650
+ "button",
46373
46651
  {
46652
+ type: "button",
46374
46653
  ref: setNodeRef,
46375
- className: `flex h-9 items-center gap-2 px-3 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46654
+ onClick: onToggle,
46655
+ "aria-expanded": !collapsed,
46656
+ className: `flex h-9 w-full items-center gap-2 pl-3 pr-4 mb-0.5 text-left transition-colors hover:bg-primary/10 ${isOver ? "bg-primary/20" : "bg-accent"}`,
46376
46657
  children: [
46377
46658
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "size-2.5 rounded-full shrink-0", style: { backgroundColor: label.color } }),
46378
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: label.name })
46659
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: label.name }),
46660
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
46661
+ ChevronRight,
46662
+ {
46663
+ className: `ml-auto size-3.5 shrink-0 text-muted-foreground transition-transform ${collapsed ? "" : "rotate-90"}`
46664
+ }
46665
+ )
46379
46666
  ]
46380
46667
  }
46381
46668
  );
46382
46669
  }
46383
- function DroppableUnlabeledHeader() {
46670
+ function DroppableUnlabeledHeader({ collapsed, onToggle }) {
46384
46671
  const { setNodeRef, isOver } = useDroppable({ id: "group:__unlabeled" });
46385
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
46386
- "div",
46672
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
46673
+ "button",
46387
46674
  {
46675
+ type: "button",
46388
46676
  ref: setNodeRef,
46389
- className: `flex h-9 items-center gap-2 px-3 mb-0.5 transition-colors ${isOver ? "bg-primary/20" : "bg-accent"}`,
46390
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: "Unlabeled" })
46677
+ onClick: onToggle,
46678
+ "aria-expanded": !collapsed,
46679
+ className: `flex h-9 w-full items-center gap-2 pl-3 pr-4 mb-0.5 text-left transition-colors hover:bg-primary/10 ${isOver ? "bg-primary/20" : "bg-accent"}`,
46680
+ children: [
46681
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground/80", children: "Unlabeled" }),
46682
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
46683
+ ChevronRight,
46684
+ {
46685
+ className: `ml-auto size-3.5 shrink-0 text-muted-foreground transition-transform ${collapsed ? "" : "rotate-90"}`
46686
+ }
46687
+ )
46688
+ ]
46391
46689
  }
46392
46690
  );
46393
46691
  }
46394
- function ProjectList({ labelFilter, editMode }) {
46692
+ function ProjectList({ labelFilter }) {
46395
46693
  const { projects } = useProjects();
46396
46694
  const { settings } = useSettingsQuery();
46397
46695
  const labels = settings.labels ?? [];
@@ -46410,7 +46708,12 @@ function ProjectList({ labelFilter, editMode }) {
46410
46708
  const [activeDragId, setActiveDragId] = reactExports.useState(null);
46411
46709
  const containerRef = reactExports.useRef(null);
46412
46710
  const keyboardNavRef = reactExports.useRef(false);
46413
- const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 8 } }));
46711
+ const projectCollapse = useCollapseState(PROJECTS_COLLAPSE_KEY);
46712
+ const labelCollapse = useCollapseState(LABELS_COLLAPSE_KEY);
46713
+ const sensors = useSensors(
46714
+ useSensor(MouseSensor, { activationConstraint: { distance: 8 } }),
46715
+ useSensor(TouchSensor, { activationConstraint: { delay: 250, tolerance: 5 } })
46716
+ );
46414
46717
  const groups = reactExports.useMemo(() => {
46415
46718
  if (labels.length === 0)
46416
46719
  return [{ labelId: null, label: null, projects }];
@@ -46437,23 +46740,33 @@ function ProjectList({ labelFilter, editMode }) {
46437
46740
  if (!labelFilter) return groups;
46438
46741
  return groups.filter((g2) => g2.labelId === labelFilter);
46439
46742
  }, [groups, labelFilter]);
46440
- const allWorkspaceIds = reactExports.useMemo(
46441
- () => visibleGroups.flatMap(
46442
- (g2) => g2.projects.flatMap((p3) => p3.worktrees.map((wt2) => toWorkspaceId(p3.name, wt2.branch)))
46443
- ),
46444
- [visibleGroups]
46445
- );
46743
+ const allWorkspaceIds = reactExports.useMemo(() => {
46744
+ const headerVisible = labels.length > 0 && !labelFilter;
46745
+ return visibleGroups.flatMap((g2) => {
46746
+ const groupKey = g2.labelId ?? UNLABELED_KEY;
46747
+ if (headerVisible && labelCollapse.isCollapsed(groupKey)) return [];
46748
+ return g2.projects.flatMap((p3) => {
46749
+ if (projectCollapse.isCollapsed(p3.name)) return [];
46750
+ return p3.worktrees.map((wt2) => toWorkspaceId(p3.name, wt2.branch));
46751
+ });
46752
+ });
46753
+ }, [visibleGroups, labels.length, labelFilter, labelCollapse, projectCollapse]);
46446
46754
  const workspaceIndexMap = reactExports.useMemo(() => {
46447
46755
  const map2 = /* @__PURE__ */ new Map();
46448
46756
  let index2 = 0;
46757
+ const headerVisible = labels.length > 0 && !labelFilter;
46449
46758
  for (const group of visibleGroups) {
46759
+ const groupKey = group.labelId ?? UNLABELED_KEY;
46760
+ if (headerVisible && labelCollapse.isCollapsed(groupKey)) continue;
46450
46761
  for (const project of group.projects) {
46451
46762
  map2.set(project.name, index2);
46452
- index2 += project.worktrees.length;
46763
+ if (!projectCollapse.isCollapsed(project.name)) {
46764
+ index2 += project.worktrees.length;
46765
+ }
46453
46766
  }
46454
46767
  }
46455
46768
  return map2;
46456
- }, [visibleGroups]);
46769
+ }, [visibleGroups, labels.length, labelFilter, labelCollapse, projectCollapse]);
46457
46770
  reactExports.useEffect(() => {
46458
46771
  if (keyboardNavRef.current) return;
46459
46772
  if (activeWorkspaceId) {
@@ -46556,12 +46869,27 @@ function ProjectList({ labelFilter, editMode }) {
46556
46869
  onDragStart: handleDragStart,
46557
46870
  onDragEnd: handleDragEnd,
46558
46871
  children: [
46559
- /* @__PURE__ */ jsxRuntimeExports.jsx(SortableContext, { items: allProjectNames, strategy: verticalListSortingStrategy, children: visibleGroups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
46560
- groupIndex > 0 && !labels.length && /* @__PURE__ */ jsxRuntimeExports.jsx("hr", { className: "border-border mt-1 mb-0.5 mx-2" }),
46561
- labels.length > 0 && !labelFilter && (group.label ? /* @__PURE__ */ jsxRuntimeExports.jsx(DroppableLabelHeader, { labelId: group.labelId, label: group.label }) : /* @__PURE__ */ jsxRuntimeExports.jsx(DroppableUnlabeledHeader, {})),
46562
- group.projects.map((project, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
46563
- index2 > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("hr", { className: "border-border mt-1 mb-0.5 mx-2" }),
46564
- /* @__PURE__ */ jsxRuntimeExports.jsx(
46872
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SortableContext, { items: allProjectNames, strategy: verticalListSortingStrategy, children: visibleGroups.map((group) => {
46873
+ const groupKey = group.labelId ?? UNLABELED_KEY;
46874
+ const headerVisible = labels.length > 0 && !labelFilter;
46875
+ const groupCollapsed = headerVisible && labelCollapse.isCollapsed(groupKey);
46876
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
46877
+ headerVisible && (group.label ? /* @__PURE__ */ jsxRuntimeExports.jsx(
46878
+ DroppableLabelHeader,
46879
+ {
46880
+ labelId: group.labelId,
46881
+ label: group.label,
46882
+ collapsed: groupCollapsed,
46883
+ onToggle: () => labelCollapse.toggle(groupKey)
46884
+ }
46885
+ ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
46886
+ DroppableUnlabeledHeader,
46887
+ {
46888
+ collapsed: groupCollapsed,
46889
+ onToggle: () => labelCollapse.toggle(groupKey)
46890
+ }
46891
+ )),
46892
+ !groupCollapsed && group.projects.map((project) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
46565
46893
  SortableProject,
46566
46894
  {
46567
46895
  project,
@@ -46575,13 +46903,14 @@ function ProjectList({ labelFilter, editMode }) {
46575
46903
  onShowDeleteDialog: setDeleteDialog,
46576
46904
  focusedIndex,
46577
46905
  workspaceIndexStart: workspaceIndexMap.get(project.name) ?? 0,
46578
- editMode
46906
+ collapsed: projectCollapse.isCollapsed(project.name),
46907
+ onToggleCollapse: projectCollapse.toggle
46579
46908
  }
46580
- )
46581
- ] }, project.name))
46582
- ] }, group.labelId ?? "__unlabeled")) }),
46583
- /* @__PURE__ */ jsxRuntimeExports.jsx(DragOverlay, { children: activeDragId ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 px-1 py-1 bg-background rounded shadow-lg border", children: [
46584
- /* @__PURE__ */ jsxRuntimeExports.jsx(FolderOpen, { className: "size-3.5 shrink-0 text-muted-foreground" }),
46909
+ ) }, project.name))
46910
+ ] }, groupKey);
46911
+ }) }),
46912
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DragOverlay, { dropAnimation: null, children: activeDragId ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 px-1 py-1 bg-background rounded shadow-lg border", children: [
46913
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Folder, { className: "size-3.5 shrink-0 text-muted-foreground" }),
46585
46914
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-semibold text-foreground", children: activeDragId })
46586
46915
  ] }) : null })
46587
46916
  ]
@@ -47372,8 +47701,7 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
47372
47701
  const [showAddDialog, setShowAddDialog] = reactExports.useState(false);
47373
47702
  const [showErrorDialog, setShowErrorDialog] = reactExports.useState(false);
47374
47703
  const [showSettingsDialog, setShowSettingsDialog] = reactExports.useState(false);
47375
- const [editMode, setEditMode] = reactExports.useState(false);
47376
- const [labelFilter, setLabelFilter] = reactExports.useState(null);
47704
+ const [labelFilter, setLabelFilter] = useLabelFilter();
47377
47705
  const { state: hooksState, install: installHooks } = useHooksSetup();
47378
47706
  const { state: cliState, install: installCli } = useCliSetup();
47379
47707
  const [appTitle, setAppTitle] = reactExports.useState("Band");
@@ -47386,6 +47714,12 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
47386
47714
  useBranchStatusWatcher();
47387
47715
  useSetupStatusWatcher();
47388
47716
  const handleSettingsClick = reactExports.useCallback(() => setShowSettingsDialog(true), []);
47717
+ const projectCollapse = useCollapseState(PROJECTS_COLLAPSE_KEY);
47718
+ const labelCollapse = useCollapseState(LABELS_COLLAPSE_KEY);
47719
+ const collapseAll = reactExports.useCallback(() => {
47720
+ projectCollapse.setAll(projects.map((p3) => p3.name));
47721
+ labelCollapse.setAll([...labels.map((l4) => l4.id), UNLABELED_KEY]);
47722
+ }, [projectCollapse, labelCollapse, projects, labels]);
47389
47723
  const activeLabel = reactExports.useMemo(
47390
47724
  () => labelFilter ? labels.find((l4) => l4.id === labelFilter) : null,
47391
47725
  [labelFilter, labels]
@@ -47467,10 +47801,6 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
47467
47801
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: "More" })
47468
47802
  ] }),
47469
47803
  /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuContent, { align: "start", children: [
47470
- /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onClick: () => setEditMode((v2) => !v2), children: [
47471
- /* @__PURE__ */ jsxRuntimeExports.jsx(Pencil, { className: "size-4" }),
47472
- editMode ? "Done editing" : "Edit list"
47473
- ] }),
47474
47804
  toolbarMenuItems,
47475
47805
  /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onClick: handleSettingsClick, children: [
47476
47806
  /* @__PURE__ */ jsxRuntimeExports.jsx(Settings$1, { className: "size-4" }),
@@ -47526,6 +47856,20 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
47526
47856
  ] })
47527
47857
  ] }) }),
47528
47858
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1 pr-2", children: [
47859
+ projects.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
47860
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
47861
+ Button,
47862
+ {
47863
+ size: "icon-xs",
47864
+ variant: "ghost",
47865
+ className: "text-muted-foreground",
47866
+ "aria-label": "Collapse all",
47867
+ onClick: collapseAll,
47868
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsDownUp, { className: "size-4" })
47869
+ }
47870
+ ) }),
47871
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: "Collapse all" })
47872
+ ] }),
47529
47873
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
47530
47874
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
47531
47875
  Button,
@@ -47538,25 +47882,6 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
47538
47882
  }
47539
47883
  ) }),
47540
47884
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: "Add project" })
47541
- ] }),
47542
- hideMenu && /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
47543
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
47544
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
47545
- Button,
47546
- {
47547
- size: "icon-xs",
47548
- variant: "ghost",
47549
- className: "text-muted-foreground",
47550
- "aria-label": "More actions",
47551
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(EllipsisVertical, { className: "size-4" })
47552
- }
47553
- ) }) }),
47554
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "bottom", children: "More" })
47555
- ] }),
47556
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onClick: () => setEditMode((v2) => !v2), children: [
47557
- /* @__PURE__ */ jsxRuntimeExports.jsx(Pencil, { className: "size-4" }),
47558
- editMode ? "Done editing" : "Edit list"
47559
- ] }) })
47560
47885
  ] })
47561
47886
  ] })
47562
47887
  ] }),
@@ -47572,7 +47897,7 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
47572
47897
  );
47573
47898
  list2?.focus({ preventScroll: true });
47574
47899
  },
47575
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("main", { className: "overflow-hidden", children: loading ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-5 text-muted-foreground" }) }) : projects.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center gap-3 py-12 text-center", children: [
47900
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("main", { className: "pb-3", children: loading ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-5 text-muted-foreground" }) }) : projects.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center gap-3 py-12 text-center", children: [
47576
47901
  /* @__PURE__ */ jsxRuntimeExports.jsx(FolderPlus, { className: "size-8 text-muted-foreground/50" }),
47577
47902
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
47578
47903
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-muted-foreground", children: "No projects yet" }),
@@ -47582,7 +47907,7 @@ function DashboardShell({ toolbarMenuItems, hideTitleBar, hideMenu }) {
47582
47907
  /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "size-3 mr-1" }),
47583
47908
  "Add project"
47584
47909
  ] })
47585
- ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ProjectList, { labelFilter, editMode }) })
47910
+ ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ProjectList, { labelFilter }) })
47586
47911
  }
47587
47912
  ),
47588
47913
  (cliState.status === "manual" || cliState.status === "conflict") && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-4 mb-2 px-4 py-2 bg-blue-500/10 border border-blue-500/30 rounded-lg text-sm flex items-center justify-between gap-2", children: [
@@ -50331,16 +50656,18 @@ function LazyFileRow({
50331
50656
  setIsOpen(true);
50332
50657
  requestAnimationFrame(() => {
50333
50658
  requestAnimationFrame(() => {
50334
- const el = document.getElementById(`diff-file-${encodeURIComponent(filename)}`);
50335
50659
  const container = scrollContainerRef?.current;
50336
- if (el && container) {
50337
- const elTop = el.getBoundingClientRect().top;
50338
- const containerTop = container.getBoundingClientRect().top;
50339
- container.scrollTo({
50340
- top: container.scrollTop + (elTop - containerTop),
50341
- behavior: "instant"
50342
- });
50343
- }
50660
+ if (!container) return;
50661
+ const el = container.querySelector(
50662
+ `[data-band-diff-file="${CSS.escape(filename)}"]`
50663
+ );
50664
+ if (!el) return;
50665
+ const elTop = el.getBoundingClientRect().top;
50666
+ const containerTop = container.getBoundingClientRect().top;
50667
+ container.scrollTo({
50668
+ top: container.scrollTop + (elTop - containerTop),
50669
+ behavior: "instant"
50670
+ });
50344
50671
  });
50345
50672
  });
50346
50673
  }
@@ -50353,7 +50680,7 @@ function LazyFileRow({
50353
50680
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
50354
50681
  "div",
50355
50682
  {
50356
- id: `diff-file-${encodeURIComponent(filename)}`,
50683
+ "data-band-diff-file": filename,
50357
50684
  className: `overflow-clip rounded-lg border-2 ${isActive ? "border-blue-500/60" : "border-border"}`,
50358
50685
  children: [
50359
50686
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -50659,6 +50986,55 @@ function DiffView({
50659
50986
  setFocusedFile({ path: filePath, seq: focusSeqRef.current });
50660
50987
  }, []);
50661
50988
  const [activeFile, setActiveFile] = reactExports.useState(null);
50989
+ const [commitDialogOpen, setCommitDialogOpen] = reactExports.useState(false);
50990
+ const canCommit = Boolean(adapter2.gitCommitWorkspace);
50991
+ const canPull = Boolean(adapter2.gitPullWorkspace);
50992
+ const canPush = Boolean(adapter2.gitPushWorkspace);
50993
+ const [gitOpStatus, setGitOpStatus] = reactExports.useState(null);
50994
+ const handleGitPull = reactExports.useCallback(async () => {
50995
+ const pull = adapter2.gitPullWorkspace;
50996
+ if (!pull) return;
50997
+ setGitOpStatus({ state: "running", op: "pull" });
50998
+ try {
50999
+ await pull.call(adapter2, workspaceId);
51000
+ setGitOpStatus({ state: "success", op: "pull" });
51001
+ fetchSummaryRef.current?.(true);
51002
+ setTimeout(() => {
51003
+ setGitOpStatus(
51004
+ (prev2) => prev2 && prev2.state === "success" && prev2.op === "pull" ? null : prev2
51005
+ );
51006
+ }, 2500);
51007
+ } catch (e2) {
51008
+ setGitOpStatus({
51009
+ state: "error",
51010
+ op: "pull",
51011
+ message: e2 instanceof Error ? e2.message : String(e2)
51012
+ });
51013
+ }
51014
+ }, [adapter2, workspaceId]);
51015
+ const handleGitPush = reactExports.useCallback(async () => {
51016
+ const push2 = adapter2.gitPushWorkspace;
51017
+ if (!push2) return;
51018
+ setGitOpStatus({ state: "running", op: "push" });
51019
+ try {
51020
+ await push2.call(adapter2, workspaceId);
51021
+ setGitOpStatus({ state: "success", op: "push" });
51022
+ setTimeout(() => {
51023
+ setGitOpStatus(
51024
+ (prev2) => prev2 && prev2.state === "success" && prev2.op === "push" ? null : prev2
51025
+ );
51026
+ }, 2500);
51027
+ } catch (e2) {
51028
+ setGitOpStatus({
51029
+ state: "error",
51030
+ op: "push",
51031
+ message: e2 instanceof Error ? e2.message : String(e2)
51032
+ });
51033
+ }
51034
+ }, [adapter2, workspaceId]);
51035
+ const gitOpBusy = gitOpStatus?.state === "running";
51036
+ const isPulling = gitOpBusy && gitOpStatus.op === "pull";
51037
+ const isPushing = gitOpBusy && gitOpStatus.op === "push";
50662
51038
  const [scrollContainerHeight, setScrollContainerHeight] = reactExports.useState(0);
50663
51039
  const [scrollContainerWidth, setScrollContainerWidth] = reactExports.useState(0);
50664
51040
  reactExports.useLayoutEffect(() => {
@@ -50692,7 +51068,9 @@ function DiffView({
50692
51068
  let closest = null;
50693
51069
  let closestDist = Infinity;
50694
51070
  for (const name2 of names) {
50695
- const el = document.getElementById(`diff-file-${encodeURIComponent(name2)}`);
51071
+ const el = container.querySelector(
51072
+ `[data-band-diff-file="${CSS.escape(name2)}"]`
51073
+ );
50696
51074
  if (!el) continue;
50697
51075
  const elRect = el.getBoundingClientRect();
50698
51076
  if (elRect.top <= top2 && elRect.bottom > top2) {
@@ -50954,10 +51332,73 @@ function DiffView({
50954
51332
  ] }),
50955
51333
  renderDiffSelect()
50956
51334
  ] });
51335
+ const renderGitSyncButtons = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51336
+ canPull && /* @__PURE__ */ jsxRuntimeExports.jsx(
51337
+ "button",
51338
+ {
51339
+ type: "button",
51340
+ onClick: handleGitPull,
51341
+ className: ghostBtnAlwaysClass,
51342
+ title: "Git pull",
51343
+ "aria-label": "Git pull",
51344
+ disabled: gitOpBusy,
51345
+ children: isPulling ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowDownToLine, { className: "size-3.5" })
51346
+ }
51347
+ ),
51348
+ canPush && /* @__PURE__ */ jsxRuntimeExports.jsx(
51349
+ "button",
51350
+ {
51351
+ type: "button",
51352
+ onClick: handleGitPush,
51353
+ className: ghostBtnAlwaysClass,
51354
+ title: "Git push",
51355
+ "aria-label": "Git push",
51356
+ disabled: gitOpBusy,
51357
+ children: isPushing ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowUpFromLine, { className: "size-3.5" })
51358
+ }
51359
+ )
51360
+ ] });
50957
51361
  if (!summary || summary.stats.filesChanged === 0) {
50958
51362
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [
50959
- /* @__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) }),
50960
- /* @__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" }) })
51363
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-9 shrink-0 items-center justify-between gap-3 border-b border-border pl-3 pr-3", children: [
51364
+ renderBranchIndicator(summary?.headBranch),
51365
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-1", children: renderGitSyncButtons() })
51366
+ ] }),
51367
+ /* @__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" }) }),
51368
+ gitOpStatus && /* @__PURE__ */ jsxRuntimeExports.jsxs(
51369
+ "div",
51370
+ {
51371
+ role: gitOpStatus.state === "error" ? "alert" : "status",
51372
+ className: `flex shrink-0 items-center gap-2 border-t px-3 py-1.5 text-xs ${gitOpStatus.state === "error" ? "border-destructive/40 bg-destructive/10 text-destructive" : "border-border bg-muted/50 text-muted-foreground"}`,
51373
+ children: [
51374
+ gitOpStatus.state === "running" && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51375
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }),
51376
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: gitOpStatus.op === "pull" ? "Pulling…" : "Pushing…" })
51377
+ ] }),
51378
+ gitOpStatus.state === "success" && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51379
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3.5 text-green-600 dark:text-green-400" }),
51380
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: gitOpStatus.op === "pull" ? "Pulled" : "Pushed" })
51381
+ ] }),
51382
+ gitOpStatus.state === "error" && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51383
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-medium", children: [
51384
+ gitOpStatus.op === "pull" ? "Pull failed" : "Push failed",
51385
+ ":"
51386
+ ] }),
51387
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "min-w-0 flex-1 truncate", title: gitOpStatus.message, children: gitOpStatus.message }),
51388
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
51389
+ "button",
51390
+ {
51391
+ type: "button",
51392
+ onClick: () => setGitOpStatus(null),
51393
+ className: "shrink-0 rounded px-1 text-destructive hover:bg-destructive/20",
51394
+ "aria-label": "Dismiss error",
51395
+ children: "×"
51396
+ }
51397
+ )
51398
+ ] })
51399
+ ]
51400
+ }
51401
+ )
50961
51402
  ] });
50962
51403
  }
50963
51404
  const fileStatuses = summary.fileStatuses || {};
@@ -50996,7 +51437,43 @@ function DiffView({
50996
51437
  renderSidebarToggle(),
50997
51438
  renderBranchIndicator(summary.headBranch)
50998
51439
  ] }),
50999
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1 @[32rem]/diff:flex", children: [
51440
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden items-center gap-1 @[44rem]/diff:flex", children: [
51441
+ canCommit && /* @__PURE__ */ jsxRuntimeExports.jsx(
51442
+ "button",
51443
+ {
51444
+ type: "button",
51445
+ onClick: () => setCommitDialogOpen(true),
51446
+ className: ghostBtnAlwaysClass,
51447
+ title: "Commit changes",
51448
+ "aria-label": "Commit changes",
51449
+ disabled: gitOpBusy,
51450
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(GitCommitHorizontal, { className: "size-3.5" })
51451
+ }
51452
+ ),
51453
+ canPull && /* @__PURE__ */ jsxRuntimeExports.jsx(
51454
+ "button",
51455
+ {
51456
+ type: "button",
51457
+ onClick: handleGitPull,
51458
+ className: ghostBtnAlwaysClass,
51459
+ title: "Git pull",
51460
+ "aria-label": "Git pull",
51461
+ disabled: gitOpBusy,
51462
+ children: isPulling ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowDownToLine, { className: "size-3.5" })
51463
+ }
51464
+ ),
51465
+ canPush && /* @__PURE__ */ jsxRuntimeExports.jsx(
51466
+ "button",
51467
+ {
51468
+ type: "button",
51469
+ onClick: handleGitPush,
51470
+ className: ghostBtnAlwaysClass,
51471
+ title: "Git push",
51472
+ "aria-label": "Git push",
51473
+ disabled: gitOpBusy,
51474
+ children: isPushing ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowUpFromLine, { className: "size-3.5" })
51475
+ }
51476
+ ),
51000
51477
  /* @__PURE__ */ jsxRuntimeExports.jsx(
51001
51478
  "button",
51002
51479
  {
@@ -51058,7 +51535,7 @@ function DiffView({
51058
51535
  )
51059
51536
  ] })
51060
51537
  ] }),
51061
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center @[32rem]/diff:hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
51538
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center @[44rem]/diff:hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
51062
51539
  /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
51063
51540
  "button",
51064
51541
  {
@@ -51070,6 +51547,18 @@ function DiffView({
51070
51547
  }
51071
51548
  ) }),
51072
51549
  /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuContent, { align: "end", children: [
51550
+ canCommit && /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => setCommitDialogOpen(true), disabled: gitOpBusy, children: [
51551
+ /* @__PURE__ */ jsxRuntimeExports.jsx(GitCommitHorizontal, { className: "size-4" }),
51552
+ "Commit changes"
51553
+ ] }),
51554
+ canPull && /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => handleGitPull(), disabled: gitOpBusy, children: [
51555
+ isPulling ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowDownToLine, { className: "size-4" }),
51556
+ "Git pull"
51557
+ ] }),
51558
+ canPush && /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => handleGitPush(), disabled: gitOpBusy, children: [
51559
+ isPushing ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowUpFromLine, { className: "size-4" }),
51560
+ "Git push"
51561
+ ] }),
51073
51562
  /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuItem, { onSelect: () => fetchSummaryRef.current?.(true), children: [
51074
51563
  /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "size-4" }),
51075
51564
  "Reload changes"
@@ -51147,6 +51636,40 @@ function DiffView({
51147
51636
  `${filename}-last-wrapper`
51148
51637
  );
51149
51638
  }) }) }),
51639
+ gitOpStatus && /* @__PURE__ */ jsxRuntimeExports.jsxs(
51640
+ "div",
51641
+ {
51642
+ role: gitOpStatus.state === "error" ? "alert" : "status",
51643
+ className: `flex shrink-0 items-center gap-2 border-t px-3 py-1.5 text-xs ${gitOpStatus.state === "error" ? "border-destructive/40 bg-destructive/10 text-destructive" : "border-border bg-muted/50 text-muted-foreground"}`,
51644
+ children: [
51645
+ gitOpStatus.state === "running" && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51646
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-3.5" }),
51647
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: gitOpStatus.op === "pull" ? "Pulling…" : "Pushing…" })
51648
+ ] }),
51649
+ gitOpStatus.state === "success" && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51650
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3.5 text-green-600 dark:text-green-400" }),
51651
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: gitOpStatus.op === "pull" ? "Pulled" : "Pushed" })
51652
+ ] }),
51653
+ gitOpStatus.state === "error" && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
51654
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "font-medium", children: [
51655
+ gitOpStatus.op === "pull" ? "Pull failed" : "Push failed",
51656
+ ":"
51657
+ ] }),
51658
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "min-w-0 flex-1 truncate", title: gitOpStatus.message, children: gitOpStatus.message }),
51659
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
51660
+ "button",
51661
+ {
51662
+ type: "button",
51663
+ onClick: () => setGitOpStatus(null),
51664
+ className: "shrink-0 rounded px-1 text-destructive hover:bg-destructive/20",
51665
+ "aria-label": "Dismiss error",
51666
+ children: "×"
51667
+ }
51668
+ )
51669
+ ] })
51670
+ ]
51671
+ }
51672
+ ),
51150
51673
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-9 shrink-0 items-center border-t border-border px-3 text-sm text-muted-foreground", children: [
51151
51674
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-foreground", children: summary.stats.filesChanged }),
51152
51675
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-1", children: [
@@ -51162,7 +51685,19 @@ function DiffView({
51162
51685
  summary.stats.deletions
51163
51686
  ] })
51164
51687
  ] })
51165
- ] })
51688
+ ] }),
51689
+ canCommit && /* @__PURE__ */ jsxRuntimeExports.jsx(
51690
+ CommitDialog,
51691
+ {
51692
+ open: commitDialogOpen,
51693
+ onOpenChange: setCommitDialogOpen,
51694
+ workspaceId,
51695
+ filesChanged: summary.stats.filesChanged,
51696
+ onCommitted: () => {
51697
+ fetchSummaryRef.current?.(true);
51698
+ }
51699
+ }
51700
+ )
51166
51701
  ] });
51167
51702
  }
51168
51703
  const expandedStateCache = /* @__PURE__ */ new Map();
@@ -58840,6 +59375,18 @@ class WebDashboardAdapter {
58840
59375
  compareBranch
58841
59376
  });
58842
59377
  }
59378
+ async gitPullWorkspace(workspaceId) {
59379
+ await this.trpc.workspace.gitPull.mutate({ workspaceId });
59380
+ }
59381
+ async gitPushWorkspace(workspaceId) {
59382
+ await this.trpc.workspace.gitPush.mutate({ workspaceId });
59383
+ }
59384
+ async gitCommitWorkspace(workspaceId, message, body2) {
59385
+ await this.trpc.workspace.gitCommit.mutate({ workspaceId, message, body: body2 });
59386
+ }
59387
+ async generateCommitMessage(workspaceId) {
59388
+ return await this.trpc.workspace.generateCommitMessage.mutate({ workspaceId });
59389
+ }
58843
59390
  getWorkspaceFileUrl(workspaceId, path2) {
58844
59391
  return `/api/workspace-file/${encodeURIComponent(workspaceId)}/${path2.split("/").map(encodeURIComponent).join("/")}`;
58845
59392
  }
@@ -134143,12 +134690,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
134143
134690
  registerLayoutLoaders([
134144
134691
  {
134145
134692
  name: "dagre",
134146
- loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-Boln2sn2.js"), "loader")
134693
+ loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-CNeAACXh.js"), "loader")
134147
134694
  },
134148
134695
  ...[
134149
134696
  {
134150
134697
  name: "cose-bilkent",
134151
- loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-C_1AzHCC.js"), "loader")
134698
+ loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-D7LPM_vS.js"), "loader")
134152
134699
  }
134153
134700
  ]
134154
134701
  ]);
@@ -134587,7 +135134,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
134587
135134
  return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
134588
135135
  }, "detector");
134589
135136
  var loader = /* @__PURE__ */ __name(async () => {
134590
- const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-BrRKberj.js");
135137
+ const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-h5CZPoPy.js");
134591
135138
  return { id, diagram: diagram2 };
134592
135139
  }, "loader");
134593
135140
  var plugin = {
@@ -134604,7 +135151,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
134604
135151
  return /^\s*graph/.test(txt);
134605
135152
  }, "detector");
134606
135153
  var loader2 = /* @__PURE__ */ __name(async () => {
134607
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-vyBoOcPY.js");
135154
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-TOzUwhF5.js");
134608
135155
  return { id: id2, diagram: diagram2 };
134609
135156
  }, "loader");
134610
135157
  var plugin2 = {
@@ -134627,7 +135174,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
134627
135174
  return /^\s*flowchart/.test(txt);
134628
135175
  }, "detector");
134629
135176
  var loader3 = /* @__PURE__ */ __name(async () => {
134630
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-vyBoOcPY.js");
135177
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-TOzUwhF5.js");
134631
135178
  return { id: id3, diagram: diagram2 };
134632
135179
  }, "loader");
134633
135180
  var plugin3 = {
@@ -134641,7 +135188,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
134641
135188
  return /^\s*erDiagram/.test(txt);
134642
135189
  }, "detector");
134643
135190
  var loader4 = /* @__PURE__ */ __name(async () => {
134644
- const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-CQPyD9EF.js");
135191
+ const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-Bl5SlyVt.js");
134645
135192
  return { id: id4, diagram: diagram2 };
134646
135193
  }, "loader");
134647
135194
  var plugin4 = {
@@ -134655,7 +135202,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
134655
135202
  return /^\s*gitGraph/.test(txt);
134656
135203
  }, "detector");
134657
135204
  var loader5 = /* @__PURE__ */ __name(async () => {
134658
- const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-B5EDhgt0.js");
135205
+ const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-VzFNa7CX.js");
134659
135206
  return { id: id5, diagram: diagram2 };
134660
135207
  }, "loader");
134661
135208
  var plugin5 = {
@@ -134669,7 +135216,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
134669
135216
  return /^\s*gantt/.test(txt);
134670
135217
  }, "detector");
134671
135218
  var loader6 = /* @__PURE__ */ __name(async () => {
134672
- const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-DzN3kslF.js");
135219
+ const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-BHAA60wa.js");
134673
135220
  return { id: id6, diagram: diagram2 };
134674
135221
  }, "loader");
134675
135222
  var plugin6 = {
@@ -134683,7 +135230,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
134683
135230
  return /^\s*info/.test(txt);
134684
135231
  }, "detector");
134685
135232
  var loader7 = /* @__PURE__ */ __name(async () => {
134686
- const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-DbxrgmBd.js");
135233
+ const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-esUYZzYH.js");
134687
135234
  return { id: id7, diagram: diagram2 };
134688
135235
  }, "loader");
134689
135236
  var info = {
@@ -134696,7 +135243,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
134696
135243
  return /^\s*pie/.test(txt);
134697
135244
  }, "detector");
134698
135245
  var loader8 = /* @__PURE__ */ __name(async () => {
134699
- const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-jACR3wDP.js");
135246
+ const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-BygyuGnX.js");
134700
135247
  return { id: id8, diagram: diagram2 };
134701
135248
  }, "loader");
134702
135249
  var pie = {
@@ -134709,7 +135256,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
134709
135256
  return /^\s*quadrantChart/.test(txt);
134710
135257
  }, "detector");
134711
135258
  var loader9 = /* @__PURE__ */ __name(async () => {
134712
- const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-BuOoP_Hg.js");
135259
+ const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-B_XQ04Qi.js");
134713
135260
  return { id: id9, diagram: diagram2 };
134714
135261
  }, "loader");
134715
135262
  var plugin7 = {
@@ -134723,7 +135270,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
134723
135270
  return /^\s*xychart(-beta)?/.test(txt);
134724
135271
  }, "detector");
134725
135272
  var loader10 = /* @__PURE__ */ __name(async () => {
134726
- const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-BmMwldTO.js");
135273
+ const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-3zGezmQ5.js");
134727
135274
  return { id: id10, diagram: diagram2 };
134728
135275
  }, "loader");
134729
135276
  var plugin8 = {
@@ -134737,7 +135284,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
134737
135284
  return /^\s*requirement(Diagram)?/.test(txt);
134738
135285
  }, "detector");
134739
135286
  var loader11 = /* @__PURE__ */ __name(async () => {
134740
- const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-XXmbIh8u.js");
135287
+ const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-HsUrO2es.js");
134741
135288
  return { id: id11, diagram: diagram2 };
134742
135289
  }, "loader");
134743
135290
  var plugin9 = {
@@ -134751,7 +135298,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
134751
135298
  return /^\s*sequenceDiagram/.test(txt);
134752
135299
  }, "detector");
134753
135300
  var loader12 = /* @__PURE__ */ __name(async () => {
134754
- const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-GTC4KppE.js");
135301
+ const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-B9xPBmx_.js");
134755
135302
  return { id: id12, diagram: diagram2 };
134756
135303
  }, "loader");
134757
135304
  var plugin10 = {
@@ -134768,7 +135315,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
134768
135315
  return /^\s*classDiagram/.test(txt);
134769
135316
  }, "detector");
134770
135317
  var loader13 = /* @__PURE__ */ __name(async () => {
134771
- const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-CVGo_62f.js");
135318
+ const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-Cd6_FR9V.js");
134772
135319
  return { id: id13, diagram: diagram2 };
134773
135320
  }, "loader");
134774
135321
  var plugin11 = {
@@ -134785,7 +135332,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
134785
135332
  return /^\s*classDiagram-v2/.test(txt);
134786
135333
  }, "detector");
134787
135334
  var loader14 = /* @__PURE__ */ __name(async () => {
134788
- const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-CVGo_62f.js");
135335
+ const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-Cd6_FR9V.js");
134789
135336
  return { id: id14, diagram: diagram2 };
134790
135337
  }, "loader");
134791
135338
  var plugin12 = {
@@ -134802,7 +135349,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
134802
135349
  return /^\s*stateDiagram/.test(txt);
134803
135350
  }, "detector");
134804
135351
  var loader15 = /* @__PURE__ */ __name(async () => {
134805
- const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-BxYN7guF.js");
135352
+ const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-DHDTsTYT.js");
134806
135353
  return { id: id15, diagram: diagram2 };
134807
135354
  }, "loader");
134808
135355
  var plugin13 = {
@@ -134822,7 +135369,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
134822
135369
  return false;
134823
135370
  }, "detector");
134824
135371
  var loader16 = /* @__PURE__ */ __name(async () => {
134825
- const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-BNKwWfxp.js");
135372
+ const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-UzPAvMjA.js");
134826
135373
  return { id: id16, diagram: diagram2 };
134827
135374
  }, "loader");
134828
135375
  var plugin14 = {
@@ -134836,7 +135383,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
134836
135383
  return /^\s*journey/.test(txt);
134837
135384
  }, "detector");
134838
135385
  var loader17 = /* @__PURE__ */ __name(async () => {
134839
- const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-PyE_5Gmw.js");
135386
+ const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-D40eNc21.js");
134840
135387
  return { id: id17, diagram: diagram2 };
134841
135388
  }, "loader");
134842
135389
  var plugin15 = {
@@ -134903,7 +135450,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
134903
135450
  return false;
134904
135451
  }, "detector");
134905
135452
  var loader18 = /* @__PURE__ */ __name(async () => {
134906
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-vyBoOcPY.js");
135453
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-TOzUwhF5.js");
134907
135454
  return { id: id18, diagram: diagram2 };
134908
135455
  }, "loader");
134909
135456
  var plugin16 = {
@@ -134917,7 +135464,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
134917
135464
  return /^\s*timeline/.test(txt);
134918
135465
  }, "detector");
134919
135466
  var loader19 = /* @__PURE__ */ __name(async () => {
134920
- const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-CA7TxBUn.js");
135467
+ const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-BkV8-JpZ.js");
134921
135468
  return { id: id19, diagram: diagram2 };
134922
135469
  }, "loader");
134923
135470
  var plugin17 = {
@@ -134931,7 +135478,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
134931
135478
  return /^\s*mindmap/.test(txt);
134932
135479
  }, "detector");
134933
135480
  var loader20 = /* @__PURE__ */ __name(async () => {
134934
- const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-CS-q_lU-.js");
135481
+ const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-Dd16Sy8E.js");
134935
135482
  return { id: id20, diagram: diagram2 };
134936
135483
  }, "loader");
134937
135484
  var plugin18 = {
@@ -134945,7 +135492,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
134945
135492
  return /^\s*kanban/.test(txt);
134946
135493
  }, "detector");
134947
135494
  var loader21 = /* @__PURE__ */ __name(async () => {
134948
- const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-PMuJIj2B.js");
135495
+ const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-5N_75bcJ.js");
134949
135496
  return { id: id21, diagram: diagram2 };
134950
135497
  }, "loader");
134951
135498
  var plugin19 = {
@@ -134959,7 +135506,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
134959
135506
  return /^\s*sankey(-beta)?/.test(txt);
134960
135507
  }, "detector");
134961
135508
  var loader22 = /* @__PURE__ */ __name(async () => {
134962
- const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-DDyaGWkS.js");
135509
+ const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-D2agLPgC.js");
134963
135510
  return { id: id22, diagram: diagram2 };
134964
135511
  }, "loader");
134965
135512
  var plugin20 = {
@@ -134973,7 +135520,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
134973
135520
  return /^\s*packet(-beta)?/.test(txt);
134974
135521
  }, "detector");
134975
135522
  var loader23 = /* @__PURE__ */ __name(async () => {
134976
- const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-KHkj72ld.js");
135523
+ const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-BvH3_hXv.js");
134977
135524
  return { id: id23, diagram: diagram2 };
134978
135525
  }, "loader");
134979
135526
  var packet = {
@@ -134986,7 +135533,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
134986
135533
  return /^\s*radar-beta/.test(txt);
134987
135534
  }, "detector");
134988
135535
  var loader24 = /* @__PURE__ */ __name(async () => {
134989
- const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-CGNcKosm.js");
135536
+ const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-Du9tqqDq.js");
134990
135537
  return { id: id24, diagram: diagram2 };
134991
135538
  }, "loader");
134992
135539
  var radar = {
@@ -134999,7 +135546,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
134999
135546
  return /^\s*block(-beta)?/.test(txt);
135000
135547
  }, "detector");
135001
135548
  var loader25 = /* @__PURE__ */ __name(async () => {
135002
- const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-Dh9a8aso.js");
135549
+ const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-DBsHlPXM.js");
135003
135550
  return { id: id25, diagram: diagram2 };
135004
135551
  }, "loader");
135005
135552
  var plugin21 = {
@@ -135013,7 +135560,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
135013
135560
  return /^\s*architecture/.test(txt);
135014
135561
  }, "detector");
135015
135562
  var loader26 = /* @__PURE__ */ __name(async () => {
135016
- const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-TRCw2ugF.js");
135563
+ const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-evDLySHH.js");
135017
135564
  return { id: id26, diagram: diagram2 };
135018
135565
  }, "loader");
135019
135566
  var architecture = {
@@ -135027,7 +135574,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
135027
135574
  return /^\s*treemap/.test(txt);
135028
135575
  }, "detector");
135029
135576
  var loader27 = /* @__PURE__ */ __name(async () => {
135030
- const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-BJe9rht3.js");
135577
+ const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-FHT3vuUn.js");
135031
135578
  return { id: id27, diagram: diagram2 };
135032
135579
  }, "loader");
135033
135580
  var treemap = {
@@ -148796,14 +149343,14 @@ function createTokenizer(parser, initialize3, from2) {
148796
149343
  previous: null,
148797
149344
  sliceSerialize,
148798
149345
  sliceStream,
148799
- write
149346
+ write: write2
148800
149347
  };
148801
149348
  let state2 = initialize3.tokenize.call(context2, effects);
148802
149349
  if (initialize3.resolveAll) {
148803
149350
  resolveAllConstructs.push(initialize3);
148804
149351
  }
148805
149352
  return context2;
148806
- function write(slice2) {
149353
+ function write2(slice2) {
148807
149354
  chunks = push(chunks, slice2);
148808
149355
  main2();
148809
149356
  if (chunks[chunks.length - 1] !== null) {
@@ -152740,7 +153287,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
152740
153287
  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 });
152741
153288
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
152742
153289
  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 }) });
152743
- var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-h_Fr1oTy.js").then((e2) => ({ default: e2.HighlightedCodeBlockBody }))), rt = ({ code: e2, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
153290
+ var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-DsiXofbu.js").then((e2) => ({ default: e2.HighlightedCodeBlockBody }))), rt = ({ code: e2, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
152744
153291
  let i2 = reactExports.useMemo(() => e2.replace(cn, ""), [e2]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
152745
153292
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
152746
153293
  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 }) })] }) });
@@ -153062,7 +153609,7 @@ var Dt = ({ children: e2, className: t2, onDownload: o3, onError: n2 }) => {
153062
153609
  }, []), 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] });
153063
153610
  };
153064
153611
  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 }) })] });
153065
- var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-Bm5x4pKu.js").then((e2) => ({ default: e2.Mermaid }))), Kn = /language-([^\s]+)/;
153612
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-BEV29Yuc.js").then((e2) => ({ default: e2.Mermaid }))), Kn = /language-([^\s]+)/;
153066
153613
  function ke(e2, t2) {
153067
153614
  if (!(e2 != null && e2.position || t2 != null && t2.position)) return true;
153068
153615
  if (!(e2 != null && e2.position && (t2 != null && t2.position))) return false;
@@ -162547,7 +163094,7 @@ function processUIMessageStream({
162547
163094
  return stream.pipeThrough(
162548
163095
  new TransformStream({
162549
163096
  async transform(chunk, controller) {
162550
- await runUpdateMessageJob(async ({ state: state2, write }) => {
163097
+ await runUpdateMessageJob(async ({ state: state2, write: write2 }) => {
162551
163098
  var _a21, _b3, _c2, _d2;
162552
163099
  function getToolInvocation(toolCallId) {
162553
163100
  const toolInvocations = state2.message.parts.filter(isToolUIPart);
@@ -162664,7 +163211,7 @@ function processUIMessageStream({
162664
163211
  };
162665
163212
  state2.activeTextParts[chunk.id] = textPart;
162666
163213
  state2.message.parts.push(textPart);
162667
- write();
163214
+ write2();
162668
163215
  break;
162669
163216
  }
162670
163217
  case "text-delta": {
@@ -162678,7 +163225,7 @@ function processUIMessageStream({
162678
163225
  }
162679
163226
  textPart.text += chunk.delta;
162680
163227
  textPart.providerMetadata = (_a21 = chunk.providerMetadata) != null ? _a21 : textPart.providerMetadata;
162681
- write();
163228
+ write2();
162682
163229
  break;
162683
163230
  }
162684
163231
  case "text-end": {
@@ -162693,7 +163240,7 @@ function processUIMessageStream({
162693
163240
  textPart.state = "done";
162694
163241
  textPart.providerMetadata = (_b3 = chunk.providerMetadata) != null ? _b3 : textPart.providerMetadata;
162695
163242
  delete state2.activeTextParts[chunk.id];
162696
- write();
163243
+ write2();
162697
163244
  break;
162698
163245
  }
162699
163246
  case "reasoning-start": {
@@ -162705,7 +163252,7 @@ function processUIMessageStream({
162705
163252
  };
162706
163253
  state2.activeReasoningParts[chunk.id] = reasoningPart;
162707
163254
  state2.message.parts.push(reasoningPart);
162708
- write();
163255
+ write2();
162709
163256
  break;
162710
163257
  }
162711
163258
  case "reasoning-delta": {
@@ -162719,7 +163266,7 @@ function processUIMessageStream({
162719
163266
  }
162720
163267
  reasoningPart.text += chunk.delta;
162721
163268
  reasoningPart.providerMetadata = (_c2 = chunk.providerMetadata) != null ? _c2 : reasoningPart.providerMetadata;
162722
- write();
163269
+ write2();
162723
163270
  break;
162724
163271
  }
162725
163272
  case "reasoning-end": {
@@ -162734,7 +163281,7 @@ function processUIMessageStream({
162734
163281
  reasoningPart.providerMetadata = (_d2 = chunk.providerMetadata) != null ? _d2 : reasoningPart.providerMetadata;
162735
163282
  reasoningPart.state = "done";
162736
163283
  delete state2.activeReasoningParts[chunk.id];
162737
- write();
163284
+ write2();
162738
163285
  break;
162739
163286
  }
162740
163287
  case "file": {
@@ -162744,7 +163291,7 @@ function processUIMessageStream({
162744
163291
  url: chunk.url,
162745
163292
  ...chunk.providerMetadata != null ? { providerMetadata: chunk.providerMetadata } : {}
162746
163293
  });
162747
- write();
163294
+ write2();
162748
163295
  break;
162749
163296
  }
162750
163297
  case "source-url": {
@@ -162755,7 +163302,7 @@ function processUIMessageStream({
162755
163302
  title: chunk.title,
162756
163303
  providerMetadata: chunk.providerMetadata
162757
163304
  });
162758
- write();
163305
+ write2();
162759
163306
  break;
162760
163307
  }
162761
163308
  case "source-document": {
@@ -162767,7 +163314,7 @@ function processUIMessageStream({
162767
163314
  filename: chunk.filename,
162768
163315
  providerMetadata: chunk.providerMetadata
162769
163316
  });
162770
- write();
163317
+ write2();
162771
163318
  break;
162772
163319
  }
162773
163320
  case "tool-input-start": {
@@ -162800,7 +163347,7 @@ function processUIMessageStream({
162800
163347
  providerMetadata: chunk.providerMetadata
162801
163348
  });
162802
163349
  }
162803
- write();
163350
+ write2();
162804
163351
  break;
162805
163352
  }
162806
163353
  case "tool-input-delta": {
@@ -162833,7 +163380,7 @@ function processUIMessageStream({
162833
163380
  title: partialToolCall.title
162834
163381
  });
162835
163382
  }
162836
- write();
163383
+ write2();
162837
163384
  break;
162838
163385
  }
162839
163386
  case "tool-input-available": {
@@ -162858,7 +163405,7 @@ function processUIMessageStream({
162858
163405
  title: chunk.title
162859
163406
  });
162860
163407
  }
162861
- write();
163408
+ write2();
162862
163409
  if (onToolCall && !chunk.providerExecuted) {
162863
163410
  await onToolCall({
162864
163411
  toolCall: chunk
@@ -162891,20 +163438,20 @@ function processUIMessageStream({
162891
163438
  providerMetadata: chunk.providerMetadata
162892
163439
  });
162893
163440
  }
162894
- write();
163441
+ write2();
162895
163442
  break;
162896
163443
  }
162897
163444
  case "tool-approval-request": {
162898
163445
  const toolInvocation = getToolInvocation(chunk.toolCallId);
162899
163446
  toolInvocation.state = "approval-requested";
162900
163447
  toolInvocation.approval = { id: chunk.approvalId };
162901
- write();
163448
+ write2();
162902
163449
  break;
162903
163450
  }
162904
163451
  case "tool-output-denied": {
162905
163452
  const toolInvocation = getToolInvocation(chunk.toolCallId);
162906
163453
  toolInvocation.state = "output-denied";
162907
- write();
163454
+ write2();
162908
163455
  break;
162909
163456
  }
162910
163457
  case "tool-output-available": {
@@ -162932,7 +163479,7 @@ function processUIMessageStream({
162932
163479
  title: toolInvocation.title
162933
163480
  });
162934
163481
  }
162935
- write();
163482
+ write2();
162936
163483
  break;
162937
163484
  }
162938
163485
  case "tool-output-error": {
@@ -162959,7 +163506,7 @@ function processUIMessageStream({
162959
163506
  title: toolInvocation.title
162960
163507
  });
162961
163508
  }
162962
- write();
163509
+ write2();
162963
163510
  break;
162964
163511
  }
162965
163512
  case "start-step": {
@@ -162977,7 +163524,7 @@ function processUIMessageStream({
162977
163524
  }
162978
163525
  await updateMessageMetadata(chunk.messageMetadata);
162979
163526
  if (chunk.messageId != null || chunk.messageMetadata != null) {
162980
- write();
163527
+ write2();
162981
163528
  }
162982
163529
  break;
162983
163530
  }
@@ -162987,14 +163534,14 @@ function processUIMessageStream({
162987
163534
  }
162988
163535
  await updateMessageMetadata(chunk.messageMetadata);
162989
163536
  if (chunk.messageMetadata != null) {
162990
- write();
163537
+ write2();
162991
163538
  }
162992
163539
  break;
162993
163540
  }
162994
163541
  case "message-metadata": {
162995
163542
  await updateMessageMetadata(chunk.messageMetadata);
162996
163543
  if (chunk.messageMetadata != null) {
162997
- write();
163544
+ write2();
162998
163545
  }
162999
163546
  break;
163000
163547
  }
@@ -163033,7 +163580,7 @@ function processUIMessageStream({
163033
163580
  state2.message.parts.push(dataChunk);
163034
163581
  }
163035
163582
  onData == null ? void 0 : onData(dataChunk);
163036
- write();
163583
+ write2();
163037
163584
  }
163038
163585
  }
163039
163586
  }
@@ -165069,7 +165616,7 @@ function FileMentionSuggestions({ workspaceId }) {
165069
165616
  "data-mention-item": true,
165070
165617
  className: cn$2(
165071
165618
  "flex w-full cursor-pointer items-center gap-3 rounded-sm px-3 py-2 text-left text-sm outline-none transition-colors",
165072
- index2 === selectedIndex ? "bg-accent text-accent-foreground" : "text-popover-foreground hover:bg-accent/50"
165619
+ index2 === selectedIndex ? "bg-accent text-accent-foreground dark:bg-neutral-700" : "text-popover-foreground hover:bg-accent/50 dark:hover:bg-neutral-700/50"
165073
165620
  ),
165074
165621
  onMouseEnter: () => setSelectedIndex(index2),
165075
165622
  onMouseDown: (e2) => {
@@ -165750,7 +166297,7 @@ function SlashCommandSuggestions({ skills }) {
165750
166297
  "data-slash-item": true,
165751
166298
  className: cn$2(
165752
166299
  "flex w-full cursor-pointer items-start gap-3 rounded-sm px-3 py-2 text-left text-sm outline-none transition-colors",
165753
- index2 === selectedIndex ? "bg-accent text-accent-foreground" : "text-popover-foreground hover:bg-accent/50"
166300
+ index2 === selectedIndex ? "bg-accent text-accent-foreground dark:bg-neutral-700" : "text-popover-foreground hover:bg-accent/50 dark:hover:bg-neutral-700/50"
165754
166301
  ),
165755
166302
  onMouseEnter: () => setSelectedIndex(index2),
165756
166303
  onMouseDown: (e2) => {
@@ -170679,7 +171226,7 @@ const PANEL_SHORTCUTS = {
170679
171226
  browser: "⇧⌘B"
170680
171227
  };
170681
171228
  const DockviewTerminalContainer = reactExports.lazy(
170682
- () => import("./DockviewTerminalContainer-Dyp-rCDV.js").then((m2) => ({
171229
+ () => import("./DockviewTerminalContainer-DFjZuSCT.js").then((m2) => ({
170683
171230
  default: m2.DockviewTerminalContainer
170684
171231
  }))
170685
171232
  );
@@ -172092,11 +172639,11 @@ function RootLayout() {
172092
172639
  ] })
172093
172640
  ] });
172094
172641
  }
172095
- const $$splitComponentImporter$7 = () => import("./index-B0FUh3Pc.js");
172642
+ const $$splitComponentImporter$7 = () => import("./index-DUQ1u3ED.js");
172096
172643
  const Route$7 = createFileRoute("/")({
172097
172644
  component: lazyRouteComponent($$splitComponentImporter$7, "component")
172098
172645
  });
172099
- const $$splitComponentImporter$6 = () => import("./workspace._workspaceId-C936_ZgM.js");
172646
+ const $$splitComponentImporter$6 = () => import("./workspace._workspaceId-CxbLYQ4n.js");
172100
172647
  const Route$6 = createFileRoute("/workspace/$workspaceId")({
172101
172648
  component: lazyRouteComponent($$splitComponentImporter$6, "component")
172102
172649
  });
@@ -172115,11 +172662,11 @@ const FindInFileContext = reactExports.createContext({
172115
172662
  function useFindInFileContext() {
172116
172663
  return reactExports.useContext(FindInFileContext);
172117
172664
  }
172118
- const $$splitComponentImporter$5 = () => import("./workspace._workspaceId.index-86dKrOT8.js");
172665
+ const $$splitComponentImporter$5 = () => import("./workspace._workspaceId.index-WQW8azst.js");
172119
172666
  const Route$5 = createFileRoute("/workspace/$workspaceId/")({
172120
172667
  component: lazyRouteComponent($$splitComponentImporter$5, "component")
172121
172668
  });
172122
- const $$splitComponentImporter$4 = () => import("./workspace._workspaceId.terminal-BAeUoj6m.js");
172669
+ const $$splitComponentImporter$4 = () => import("./workspace._workspaceId.terminal-o_dPhCio.js");
172123
172670
  const Route$4 = createFileRoute("/workspace/$workspaceId/terminal")({
172124
172671
  component: lazyRouteComponent($$splitComponentImporter$4, "component")
172125
172672
  });
@@ -172127,15 +172674,15 @@ const $$splitComponentImporter$3 = () => import("./workspace._workspaceId.code-C
172127
172674
  const Route$3 = createFileRoute("/workspace/$workspaceId/code")({
172128
172675
  component: lazyRouteComponent($$splitComponentImporter$3, "component")
172129
172676
  });
172130
- const $$splitComponentImporter$2 = () => import("./workspace._workspaceId.changes-CH3KFMSq.js");
172677
+ const $$splitComponentImporter$2 = () => import("./workspace._workspaceId.changes-st-QDRaZ.js");
172131
172678
  const Route$2 = createFileRoute("/workspace/$workspaceId/changes")({
172132
172679
  component: lazyRouteComponent($$splitComponentImporter$2, "component")
172133
172680
  });
172134
- const $$splitComponentImporter$1 = () => import("./workspace._workspaceId.code.index-BHzxCT1V.js");
172681
+ const $$splitComponentImporter$1 = () => import("./workspace._workspaceId.code.index-ChSU7TbG.js");
172135
172682
  const Route$1 = createFileRoute("/workspace/$workspaceId/code/")({
172136
172683
  component: lazyRouteComponent($$splitComponentImporter$1, "component")
172137
172684
  });
172138
- const $$splitComponentImporter = () => import("./workspace._workspaceId.code._-BuovU8kl.js");
172685
+ const $$splitComponentImporter = () => import("./workspace._workspaceId.code._-DXGsbzXN.js");
172139
172686
  const Route2 = createFileRoute("/workspace/$workspaceId/code/$")({
172140
172687
  component: lazyRouteComponent($$splitComponentImporter, "component")
172141
172688
  });