@band-app/server 0.32.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/dist/client/assets/{TerminalPanel-CSIo5ni0.js → TerminalPanel-CyltRZLD.js} +1 -1
  2. package/dist/client/assets/{_basePickBy-CdaZY6mI.js → _basePickBy-Dl99bUuK.js} +1 -1
  3. package/dist/client/assets/{_baseUniq-Cbf2JylA.js → _baseUniq-xYPKjKRI.js} +1 -1
  4. package/dist/client/assets/{arc-93kXHiVA.js → arc-L0FqLNvl.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-VXUJARFQ-mXd7ilfO.js → architectureDiagram-VXUJARFQ-sxFQR6t8.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-VD42YOAC-DpjfCZDe.js → blockDiagram-VD42YOAC-CKyryScy.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-YG6GDRKO-D17zktyo.js → c4Diagram-YG6GDRKO-CKkLibM6.js} +1 -1
  8. package/dist/client/assets/channel-CnUqAM2K.js +1 -0
  9. package/dist/client/assets/{chunk-4BX2VUAB-UK3Q89L4.js → chunk-4BX2VUAB-B2Q5eiyh.js} +1 -1
  10. package/dist/client/assets/{chunk-55IACEB6-DOnNiKCE.js → chunk-55IACEB6-Bx7ppH1E.js} +1 -1
  11. package/dist/client/assets/{chunk-B4BG7PRW-RuY3pvrs.js → chunk-B4BG7PRW-z63abbDt.js} +1 -1
  12. package/dist/client/assets/{chunk-DI55MBZ5-CLkaHQD0.js → chunk-DI55MBZ5-CVuxJX-G.js} +1 -1
  13. package/dist/client/assets/{chunk-FMBD7UC4-B2_FpfY1.js → chunk-FMBD7UC4-C4mR-Kqh.js} +1 -1
  14. package/dist/client/assets/{chunk-QN33PNHL-BJ5cRImN.js → chunk-QN33PNHL-DC9EuvVO.js} +1 -1
  15. package/dist/client/assets/{chunk-QZHKN3VN-DWhBc9Ty.js → chunk-QZHKN3VN-BVfYPmR6.js} +1 -1
  16. package/dist/client/assets/{chunk-TZMSLE5B-C6dn9jrV.js → chunk-TZMSLE5B-BERfyjOQ.js} +1 -1
  17. package/dist/client/assets/classDiagram-2ON5EDUG-Bl2ARqSW.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-WZHVMYZB-Bl2ARqSW.js +1 -0
  19. package/dist/client/assets/clone-DoC0Yowh.js +1 -0
  20. package/dist/client/assets/{cose-bilkent-S5V4N54A-CApk1lUu.js → cose-bilkent-S5V4N54A-CKYh86Nn.js} +1 -1
  21. package/dist/client/assets/{dagre-6UL2VRFP-BmLALXZu.js → dagre-6UL2VRFP-CHXYsbsT.js} +1 -1
  22. package/dist/client/assets/{diagram-PSM6KHXK-C2cPLLkQ.js → diagram-PSM6KHXK-BgTabbUt.js} +1 -1
  23. package/dist/client/assets/{diagram-QEK2KX5R-vmbBSzsB.js → diagram-QEK2KX5R-DGko5nSx.js} +1 -1
  24. package/dist/client/assets/{diagram-S2PKOQOG-RgcJYL9S.js → diagram-S2PKOQOG-CE06Gb7p.js} +1 -1
  25. package/dist/client/assets/{erDiagram-Q2GNP2WA-CpoxBAoy.js → erDiagram-Q2GNP2WA-DRAdXF3c.js} +1 -1
  26. package/dist/client/assets/{flowDiagram-NV44I4VS-DxnlkHRY.js → flowDiagram-NV44I4VS-DMdYos4M.js} +1 -1
  27. package/dist/client/assets/{ganttDiagram-JELNMOA3-DsnoA6Bi.js → ganttDiagram-JELNMOA3-B1hq9zyH.js} +1 -1
  28. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-CRGiaUIP.js → gitGraphDiagram-V2S2FVAM-BX_eqyqV.js} +1 -1
  29. package/dist/client/assets/{graph-B0pjD7JO.js → graph-B1pXNJmu.js} +1 -1
  30. package/dist/client/assets/{highlighted-body-B3W2YXNL-B-sBG2bX.js → highlighted-body-B3W2YXNL-xpTIV5H4.js} +1 -1
  31. package/dist/client/assets/{index-C08rV2E6.js → index-61SgNErm.js} +1 -1
  32. package/dist/client/assets/{index-TNsDOp6e.js → index-67ml7mn1.js} +1 -1
  33. package/dist/client/assets/{index-DoBYcXmW.js → index-BAlyKPeT.js} +1 -1
  34. package/dist/client/assets/{index-BuhLC7zE.js → index-BD37kyMP.js} +1 -1
  35. package/dist/client/assets/{index-CrCMXmx8.js → index-BHygUCeT.js} +1 -1
  36. package/dist/client/assets/{index-ftqQmu5s.js → index-BYm6dlG5.js} +1 -1
  37. package/dist/client/assets/{index-U5JB6u6d.js → index-CWczZ7eS.js} +1 -1
  38. package/dist/client/assets/{index-DHizjwkP.js → index-CoSFZPv4.js} +1 -1
  39. package/dist/client/assets/{index-2xKJ9Khi.js → index-DNX82GPp.js} +1 -1
  40. package/dist/client/assets/{index-C5lac708.js → index-DUaIvPpT.js} +1 -1
  41. package/dist/client/assets/{index-THSuS9sd.js → index-Dm9xRcT9.js} +1 -1
  42. package/dist/client/assets/{index-sHvOWbSE.js → index-Do4DO4E-.js} +1 -1
  43. package/dist/client/assets/{index-Ct8NuxSL.js → index-Mpl66MhJ.js} +1 -1
  44. package/dist/client/assets/{infoDiagram-HS3SLOUP-CRp6iT8d.js → infoDiagram-HS3SLOUP-DHAIDbZu.js} +1 -1
  45. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BQ2WA6b4.js → journeyDiagram-XKPGCS4Q-BJHZIWhu.js} +1 -1
  46. package/dist/client/assets/{kanban-definition-3W4ZIXB7-D-VXNhIi.js → kanban-definition-3W4ZIXB7-_qzn6_ii.js} +1 -1
  47. package/dist/client/assets/{layout-DqRyDMTL.js → layout-CksxJldr.js} +1 -1
  48. package/dist/client/assets/main-D4u0xEOA.css +1 -0
  49. package/dist/client/assets/{main-CsKfm_iE.js → main-FnYu011V.js} +239 -236
  50. package/dist/client/assets/{mindmap-definition-VGOIOE7T-DF_KVmYJ.js → mindmap-definition-VGOIOE7T-Deop3o-V.js} +1 -1
  51. package/dist/client/assets/{pieDiagram-ADFJNKIX-X9Gpsupa.js → pieDiagram-ADFJNKIX-d4k56ZYA.js} +1 -1
  52. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-Dv43A6Kl.js → quadrantDiagram-AYHSOK5B-CBA2J09q.js} +1 -1
  53. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-Bsm1ID8v.js → requirementDiagram-UZGBJVZJ-C6Nnujg6.js} +1 -1
  54. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-C89ZzNUa.js → sankeyDiagram-TZEHDZUN-CPfLLuk9.js} +1 -1
  55. package/dist/client/assets/{sequenceDiagram-WL72ISMW-DCEzHjMR.js → sequenceDiagram-WL72ISMW-C_OY-5TF.js} +1 -1
  56. package/dist/client/assets/{stateDiagram-FKZM4ZOC-DL_-FpOq.js → stateDiagram-FKZM4ZOC-CeuP4CjM.js} +1 -1
  57. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-B9BH2TF6.js +1 -0
  58. package/dist/client/assets/{timeline-definition-IT6M3QCI-BklAlKxM.js → timeline-definition-IT6M3QCI-CL_Rmapn.js} +1 -1
  59. package/dist/client/assets/{treemap-GDKQZRPO-DugwR-ad.js → treemap-GDKQZRPO-2uvsx2LQ.js} +1 -1
  60. package/dist/client/assets/workspace._workspaceId-D3mRY9_6.js +1 -0
  61. package/dist/client/assets/{workspace._workspaceId-CvpowXC8.js → workspace._workspaceId-DF3JNMRG.js} +1 -1
  62. package/dist/client/assets/{xychartDiagram-PRI3JC2R-DEyS0s6m.js → xychartDiagram-PRI3JC2R-5Pzm62mv.js} +1 -1
  63. package/dist/migrations/20260927123820_agent_sessions/migration.sql +16 -0
  64. package/dist/migrations/20260927123820_agent_sessions/snapshot.json +1675 -0
  65. package/dist/openapi.json +823 -213
  66. package/dist/server/assets/{TerminalPanel-BVyQf1VK.js → TerminalPanel-DMTU2FMX.js} +1 -1
  67. package/dist/server/assets/{_basePickBy-DRh75DZA.js → _basePickBy-CMTHAoTW.js} +2 -2
  68. package/dist/server/assets/{_baseUniq-DxwDPh9u.js → _baseUniq-DkG_FLLk.js} +1 -1
  69. package/dist/server/assets/_tanstack-start-manifest_v-cBOqdEgL.js +4 -0
  70. package/dist/server/assets/{arc-d221pGej.js → arc-CSj375cS.js} +1 -1
  71. package/dist/server/assets/{architecture-7HQA4BMR-CDuqFHS1.js → architecture-7HQA4BMR-MwhJw22a.js} +6 -6
  72. package/dist/server/assets/{architectureDiagram-VXUJARFQ-LivVdR2U.js → architectureDiagram-VXUJARFQ-DyVVxp88.js} +6 -6
  73. package/dist/server/assets/{blockDiagram-VD42YOAC-Cpsga8jz.js → blockDiagram-VD42YOAC-aGbi3Kv_.js} +6 -6
  74. package/dist/server/assets/{c4Diagram-YG6GDRKO-CR3dewU0.js → c4Diagram-YG6GDRKO-DhyUvqPs.js} +2 -2
  75. package/dist/server/assets/{channel-CznEvUJx.js → channel-CJthnbp1.js} +1 -1
  76. package/dist/server/assets/{chunk-4BX2VUAB-2XGKksov.js → chunk-4BX2VUAB-Ch7bkquC.js} +1 -1
  77. package/dist/server/assets/{chunk-55IACEB6-D_sfF6RU.js → chunk-55IACEB6-CLKopZj8.js} +1 -1
  78. package/dist/server/assets/{chunk-B4BG7PRW-DE9YZpuI.js → chunk-B4BG7PRW-BVv_KeWC.js} +4 -4
  79. package/dist/server/assets/{chunk-DI55MBZ5-1WmBcjv0.js → chunk-DI55MBZ5-C0_HSk1s.js} +3 -3
  80. package/dist/server/assets/{chunk-FMBD7UC4-0hzwdviV.js → chunk-FMBD7UC4-3fy4TSVt.js} +1 -1
  81. package/dist/server/assets/{chunk-QN33PNHL-sglY-9R6.js → chunk-QN33PNHL-QdSQZPQz.js} +1 -1
  82. package/dist/server/assets/{chunk-QZHKN3VN-BL0yO15_.js → chunk-QZHKN3VN-Dak-YXr5.js} +1 -1
  83. package/dist/server/assets/{chunk-TZMSLE5B-CRCOAzqG.js → chunk-TZMSLE5B-ThSW8afd.js} +1 -1
  84. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-GVVGcmAY.js → classDiagram-2ON5EDUG-Cmkciu-2.js} +5 -5
  85. package/dist/server/assets/{classDiagram-2ON5EDUG-GVVGcmAY.js → classDiagram-v2-WZHVMYZB-Cmkciu-2.js} +5 -5
  86. package/dist/server/assets/{clone-Cw9PiOA8.js → clone-ciZ96ZK2.js} +1 -1
  87. package/dist/server/assets/{cose-bilkent-S5V4N54A-xdF6iXS1.js → cose-bilkent-S5V4N54A-CP20--8W.js} +1 -1
  88. package/dist/server/assets/{dagre-6UL2VRFP-ZMimZN6M.js → dagre-6UL2VRFP-D9LrmNJH.js} +6 -6
  89. package/dist/server/assets/{diagram-PSM6KHXK-AtdXKese.js → diagram-PSM6KHXK-l3xztHYH.js} +7 -7
  90. package/dist/server/assets/{diagram-QEK2KX5R-to1VE7Ky.js → diagram-QEK2KX5R-i9twZ5aj.js} +6 -6
  91. package/dist/server/assets/{diagram-S2PKOQOG-lJFLwEPR.js → diagram-S2PKOQOG-DIHmhvbo.js} +6 -6
  92. package/dist/server/assets/{erDiagram-Q2GNP2WA-CbevyytQ.js → erDiagram-Q2GNP2WA-fMWrL8ta.js} +4 -4
  93. package/dist/server/assets/{flowDiagram-NV44I4VS-DTd0gkkY.js → flowDiagram-NV44I4VS-BqKFb2gL.js} +5 -5
  94. package/dist/server/assets/{ganttDiagram-JELNMOA3-YwmrEI5N.js → ganttDiagram-JELNMOA3-XwScweUm.js} +1 -1
  95. package/dist/server/assets/{gitGraph-G5XIXVHT-BArDd0OC.js → gitGraph-G5XIXVHT-DDO_mRkl.js} +6 -6
  96. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-BTThcyM8.js → gitGraphDiagram-V2S2FVAM-B2e2LaZt.js} +7 -7
  97. package/dist/server/assets/{graph-BOO01qmU.js → graph-DqF0fiyC.js} +2 -2
  98. package/dist/server/assets/{highlighted-body-B3W2YXNL-Cym8kCCk.js → highlighted-body-B3W2YXNL-B9lH9lqG.js} +1 -1
  99. package/dist/server/assets/{index-CsHpsK-4.js → index-BFzH6uNZ.js} +1 -1
  100. package/dist/server/assets/{index-3bt1s3HG.js → index-BRPRiIzs.js} +1 -1
  101. package/dist/server/assets/{index-CaFux-EA.js → index-BZSpvQ87.js} +1 -1
  102. package/dist/server/assets/{index-DX1Ugorr.js → index-BuxMoI9R.js} +1 -1
  103. package/dist/server/assets/{index-Z7BJHwYS.js → index-C0T5sHCj.js} +1 -1
  104. package/dist/server/assets/{index-DZfyQWn7.js → index-C35Eg9Oe.js} +1 -1
  105. package/dist/server/assets/{index-DVBTKosE.js → index-C4LlK8zq.js} +1 -1
  106. package/dist/server/assets/{index-caXQk3Nh.js → index-Cz3ed2GU.js} +1 -1
  107. package/dist/server/assets/{index-CQd5Q7Kt.js → index-Oepbj3Cu.js} +1 -1
  108. package/dist/server/assets/{index-BQaiSrqT.js → index-QY-ciJ02.js} +1 -1
  109. package/dist/server/assets/{index-Ckc3EtXO.js → index-dOV5Jyvk.js} +1 -1
  110. package/dist/server/assets/{index-7I7gBKIT.js → index-iLqcyvvo.js} +1 -1
  111. package/dist/server/assets/{index-CBT9vLeO.js → index-ihiIN7Vo.js} +1 -1
  112. package/dist/server/assets/{info-VBDWY6EO-D4lcUmb_.js → info-VBDWY6EO-BSfwYSKN.js} +6 -6
  113. package/dist/server/assets/{infoDiagram-HS3SLOUP-C1ai--xt.js → infoDiagram-HS3SLOUP-BcPNSucE.js} +5 -5
  114. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-qel6lxPz.js → journeyDiagram-XKPGCS4Q-B_JljIi2.js} +4 -4
  115. package/dist/server/assets/{kanban-definition-3W4ZIXB7-BQPKgoP_.js → kanban-definition-3W4ZIXB7-B5aPUZvg.js} +2 -2
  116. package/dist/server/assets/{layout-D_wAQ9pE.js → layout-Cv2BYqNX.js} +4 -4
  117. package/dist/server/assets/{mermaid-3ZIDBTTL-CtNgetEO.js → mermaid-3ZIDBTTL-D_akVRms.js} +1 -1
  118. package/dist/server/assets/{mermaid-parser.core-BwjOeEsU.js → mermaid-parser.core-uDeqwrPN.js} +11 -11
  119. package/dist/server/assets/{mindmap-definition-VGOIOE7T-DYdatMwP.js → mindmap-definition-VGOIOE7T-C9LF9XTT.js} +3 -3
  120. package/dist/server/assets/{packet-DYOGHKS2-_TbN3RWI.js → packet-DYOGHKS2-lRBX1T35.js} +6 -6
  121. package/dist/server/assets/{pie-VRWISCQL-D9Z5k3qi.js → pie-VRWISCQL-BCZ9vmsj.js} +6 -6
  122. package/dist/server/assets/{pieDiagram-ADFJNKIX-COmj-G7F.js → pieDiagram-ADFJNKIX-HYsm0km8.js} +7 -7
  123. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-BajsyCAd.js → quadrantDiagram-AYHSOK5B-Fdzz2j2T.js} +1 -1
  124. package/dist/server/assets/{radar-ZZBFDIW7-DLipfn_u.js → radar-ZZBFDIW7-iZ-6xOx9.js} +6 -6
  125. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-BGEkpdbY.js → requirementDiagram-UZGBJVZJ-CeHGAs1A.js} +3 -3
  126. package/dist/server/assets/{router-Dpb0Z442.js → router-A58OKuIG.js} +16058 -13883
  127. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-CWd3AEju.js → sankeyDiagram-TZEHDZUN-DXgjoM9B.js} +1 -1
  128. package/dist/server/assets/{sequenceDiagram-WL72ISMW-BMTkK0JQ.js → sequenceDiagram-WL72ISMW-BK24aHRm.js} +3 -3
  129. package/dist/server/assets/{stateDiagram-FKZM4ZOC-CpBXq11c.js → stateDiagram-FKZM4ZOC-uW8qduwY.js} +8 -8
  130. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-DNuppjf9.js → stateDiagram-v2-4FDKWEC3-O0D8F8J2.js} +4 -4
  131. package/dist/server/assets/{timeline-definition-IT6M3QCI-YTyqSIDt.js → timeline-definition-IT6M3QCI-BaSl1O8h.js} +2 -2
  132. package/dist/server/assets/{treemap-GDKQZRPO-BeWiYXRR.js → treemap-GDKQZRPO-DqxwR6w-.js} +6 -6
  133. package/dist/server/assets/{workspace._workspaceId-Ce_eap6T.js → workspace._workspaceId-B09dwAP5.js} +1 -1
  134. package/dist/server/assets/{workspace._workspaceId-t0HaEyN5.js → workspace._workspaceId-CZZSeH-P.js} +88 -71
  135. package/dist/server/assets/{xychartDiagram-PRI3JC2R-Dlgz7zKK.js → xychartDiagram-PRI3JC2R-Du3l-FcL.js} +1 -1
  136. package/dist/server/server.js +2 -2
  137. package/dist/start-server.mjs +23238 -20533
  138. package/dist/terminal-daemon.mjs +406 -102
  139. package/package.json +4 -4
  140. package/dist/client/assets/channel-C4GiEGw4.js +0 -1
  141. package/dist/client/assets/classDiagram-2ON5EDUG-y6v_VfOs.js +0 -1
  142. package/dist/client/assets/classDiagram-v2-WZHVMYZB-y6v_VfOs.js +0 -1
  143. package/dist/client/assets/clone-B_3XeJsO.js +0 -1
  144. package/dist/client/assets/main-CmUn6n9o.css +0 -1
  145. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D5laPTLF.js +0 -1
  146. package/dist/client/assets/workspace._workspaceId-CdoxJFsY.js +0 -1
  147. package/dist/server/assets/_tanstack-start-manifest_v-CfuLu7F9.js +0 -4
@@ -1,5 +1,5 @@
1
1
  var _a, _b, _c;
2
- import { J as setDiagramTitle, M as getDiagramTitle, m as setAccDescription, n as getAccDescription, p as setAccTitle, o as getAccTitle, _ as __name, q as getConfig2, V as defaultConfig2, r as select, bQ as ordinal, az as setupGraphViewbox, U as clear, B as common_default } from "./router-Dpb0Z442.js";
2
+ import { J as setDiagramTitle, M as getDiagramTitle, m as setAccDescription, n as getAccDescription, p as setAccTitle, o as getAccTitle, _ as __name, q as getConfig2, V as defaultConfig2, r as select, bQ as ordinal, az as setupGraphViewbox, U as clear, B as common_default } from "./router-A58OKuIG.js";
3
3
  import "../server.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
@@ -1,7 +1,7 @@
1
1
  var _a;
2
- import { a as drawBackgroundRect, b as getTextObj, g as getNoteRect, d as drawRect, c as drawEmbeddedImage, e as drawImage } from "./chunk-TZMSLE5B-CRCOAzqG.js";
3
- import { _ as __name, F as setConfig2, q as getConfig2, r as select, u as log, z as distExports, v as configureSvgSize, w as assignWithDepth_default, B as common_default, p as setAccTitle, m as setAccDescription, J as setDiagramTitle, o as getAccTitle, n as getAccDescription, M as getDiagramTitle, O as load, P as JSON_SCHEMA, U as clear, y as sanitizeText, I as utils_default, aq as hasKatex, ar as calculateMathMLDimensions, as as parseFontSize, at as ZERO_WIDTH_SPACE, au as getUrl, av as renderKatexSanitized, a2 as getConfig } from "./router-Dpb0Z442.js";
4
- import { I as ImperativeState } from "./chunk-QZHKN3VN-BL0yO15_.js";
2
+ import { a as drawBackgroundRect, b as getTextObj, g as getNoteRect, d as drawRect, c as drawEmbeddedImage, e as drawImage } from "./chunk-TZMSLE5B-ThSW8afd.js";
3
+ import { _ as __name, F as setConfig2, q as getConfig2, r as select, u as log, z as distExports, v as configureSvgSize, w as assignWithDepth_default, B as common_default, p as setAccTitle, m as setAccDescription, J as setDiagramTitle, o as getAccTitle, n as getAccDescription, M as getDiagramTitle, O as load, P as JSON_SCHEMA, U as clear, y as sanitizeText, I as utils_default, aq as hasKatex, ar as calculateMathMLDimensions, as as parseFontSize, at as ZERO_WIDTH_SPACE, au as getUrl, av as renderKatexSanitized, a2 as getConfig } from "./router-A58OKuIG.js";
4
+ import { I as ImperativeState } from "./chunk-QZHKN3VN-Dak-YXr5.js";
5
5
  import "../server.js";
6
6
  import "node:async_hooks";
7
7
  import "node:stream";
@@ -1,9 +1,9 @@
1
- import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-1WmBcjv0.js";
2
- import { _ as __name, q as getConfig2, r as select, u as log, v as configureSvgSize, B as common_default, ap as line, ax as curveBasis, au as getUrl, I as utils_default } from "./router-Dpb0Z442.js";
3
- import { G as Graph } from "./graph-BOO01qmU.js";
4
- import { l as layout } from "./layout-D_wAQ9pE.js";
5
- import "./chunk-55IACEB6-D_sfF6RU.js";
6
- import "./chunk-QN33PNHL-sglY-9R6.js";
1
+ import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-C0_HSk1s.js";
2
+ import { _ as __name, q as getConfig2, r as select, u as log, v as configureSvgSize, B as common_default, ap as line, ax as curveBasis, au as getUrl, I as utils_default } from "./router-A58OKuIG.js";
3
+ import { G as Graph } from "./graph-DqF0fiyC.js";
4
+ import { l as layout } from "./layout-Cv2BYqNX.js";
5
+ import "./chunk-55IACEB6-CLKopZj8.js";
6
+ import "./chunk-QN33PNHL-QdSQZPQz.js";
7
7
  import "../server.js";
8
8
  import "node:async_hooks";
9
9
  import "node:stream";
@@ -15,8 +15,8 @@ import "node:stream/web";
15
15
  import "node:process";
16
16
  import "node:path";
17
17
  import "node:url";
18
- import "./_baseUniq-DxwDPh9u.js";
19
- import "./_basePickBy-DRh75DZA.js";
18
+ import "./_baseUniq-DkG_FLLk.js";
19
+ import "./_basePickBy-CMTHAoTW.js";
20
20
  var drawStartState = /* @__PURE__ */ __name((g) => g.append("circle").attr("class", "start-state").attr("r", getConfig2().state.sizeUnit).attr("cx", getConfig2().state.padding + getConfig2().state.sizeUnit).attr("cy", getConfig2().state.padding + getConfig2().state.sizeUnit), "drawStartState");
21
21
  var drawDivider = /* @__PURE__ */ __name((g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig2().state.textHeight).attr("class", "divider").attr("x2", getConfig2().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider");
22
22
  var drawSimpleState = /* @__PURE__ */ __name((g, stateDef) => {
@@ -1,7 +1,7 @@
1
- import { s as styles_default, b as stateRenderer_v3_unified_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-1WmBcjv0.js";
2
- import { _ as __name } from "./router-Dpb0Z442.js";
3
- import "./chunk-55IACEB6-D_sfF6RU.js";
4
- import "./chunk-QN33PNHL-sglY-9R6.js";
1
+ import { s as styles_default, b as stateRenderer_v3_unified_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-C0_HSk1s.js";
2
+ import { _ as __name } from "./router-A58OKuIG.js";
3
+ import "./chunk-55IACEB6-CLKopZj8.js";
4
+ import "./chunk-QN33PNHL-QdSQZPQz.js";
5
5
  import "../server.js";
6
6
  import "node:async_hooks";
7
7
  import "node:stream";
@@ -1,5 +1,5 @@
1
- import { _ as __name, q as getConfig2, u as log, r as select, az as setupGraphViewbox, aA as isDark, aB as lighten, aC as darken, Z as __export, aD as commonDb_exports, U as clear } from "./router-Dpb0Z442.js";
2
- import { d as d3arc } from "./arc-d221pGej.js";
1
+ import { _ as __name, q as getConfig2, u as log, r as select, az as setupGraphViewbox, aA as isDark, aB as lighten, aC as darken, Z as __export, aD as commonDb_exports, U as clear } from "./router-A58OKuIG.js";
2
+ import { d as d3arc } from "./arc-CSj375cS.js";
3
3
  import "../server.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
@@ -1,6 +1,6 @@
1
- import { h as createTreemapServices } from "./mermaid-parser.core-BwjOeEsU.js";
2
- import { T } from "./mermaid-parser.core-BwjOeEsU.js";
3
- import "./router-Dpb0Z442.js";
1
+ import { h as createTreemapServices } from "./mermaid-parser.core-uDeqwrPN.js";
2
+ import { T } from "./mermaid-parser.core-uDeqwrPN.js";
3
+ import "./router-A58OKuIG.js";
4
4
  import "../server.js";
5
5
  import "node:async_hooks";
6
6
  import "node:stream";
@@ -12,9 +12,9 @@ import "node:stream/web";
12
12
  import "node:process";
13
13
  import "node:path";
14
14
  import "node:url";
15
- import "./_baseUniq-DxwDPh9u.js";
16
- import "./_basePickBy-DRh75DZA.js";
17
- import "./clone-Cw9PiOA8.js";
15
+ import "./_baseUniq-DkG_FLLk.js";
16
+ import "./_basePickBy-CMTHAoTW.js";
17
+ import "./clone-ciZ96ZK2.js";
18
18
  import "path";
19
19
  import "os";
20
20
  import "net";
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../server.js";
2
- import { R as Route, a as Navigate } from "./router-Dpb0Z442.js";
2
+ import { R as Route, a as Navigate } from "./router-A58OKuIG.js";
3
3
  import "node:async_hooks";
4
4
  import "node:stream";
5
5
  import "util";
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports, r as reactExports } from "../server.js";
2
- import { bp as createLucideIcon, bq as Root, br as Content, bs as Close, bt as X, bu as cn, bv as Title, bw as Description, bx as Portal, by as Overlay, R as Route, bl as useIsDesktop, bz as useDashboardStore, bo as isDesktop, bA as useWorkspacePath, bB as getWorkspaceLeafActions, bC as parseFileLocation, bD as DesktopDragRegion, bE as ChevronsUpDown, bF as WorkspaceCenterDockview, bG as SquareTerminal, bH as FolderOpen, bI as GitCompare, bJ as FileBrowser, bK as ChangesFileTree, bL as QuickOpenDialog, bM as SearchFilesDialog, bN as WorkspacePickerDialog, bm as ToolbarOverflowProvider, bi as DashboardShell, bn as ToolbarActionBar, bO as useDiffSummary } from "./router-Dpb0Z442.js";
2
+ import { bp as createLucideIcon, bq as Root, br as Content, bs as Close, bt as X, bu as cn, bv as Title, bw as Description, bx as Portal, by as Overlay, R as Route, bl as useIsDesktop, bz as useDashboardStore, bo as isDesktop, bA as useWorkspacePath, bB as getWorkspaceLeafActions, bC as parseFileLocation, bD as DesktopDragRegion, bE as ChevronsUpDown, bF as FolderOpen, bG as GitCompare, bH as WorkspaceCenterDockview, bI as FileBrowser, bJ as ChangesSections, bK as QuickOpenDialog, bL as SearchFilesDialog, bM as WorkspacePickerDialog, bm as ToolbarOverflowProvider, bi as DashboardShell, bn as ToolbarActionBar, bN as useWorkspaceChanges, bO as countChangedPaths } from "./router-A58OKuIG.js";
3
3
  import "node:async_hooks";
4
4
  import "node:stream";
5
5
  import "util";
@@ -106,15 +106,17 @@ function SheetDescription({
106
106
  }
107
107
  );
108
108
  }
109
- const EMPTY_STATUSES = {};
109
+ const KEYBOARD_MIN_HEIGHT_PX = 120;
110
110
  function useAppHeight() {
111
111
  const [height, setHeight] = reactExports.useState(null);
112
112
  const [offsetTop, setOffsetTop] = reactExports.useState(0);
113
+ const [keyboardOpen, setKeyboardOpen] = reactExports.useState(false);
113
114
  reactExports.useLayoutEffect(() => {
114
115
  const vv = window.visualViewport;
115
116
  const update = () => {
116
117
  setHeight(vv ? vv.height : window.innerHeight);
117
118
  setOffsetTop(vv ? vv.offsetTop : 0);
119
+ setKeyboardOpen(vv ? window.innerHeight - vv.height > KEYBOARD_MIN_HEIGHT_PX : false);
118
120
  };
119
121
  update();
120
122
  if (vv) {
@@ -132,17 +134,17 @@ function useAppHeight() {
132
134
  }, []);
133
135
  return {
134
136
  height,
135
- offsetTop
137
+ offsetTop,
138
+ keyboardOpen
136
139
  };
137
140
  }
138
141
  function useChangesSummary(workspaceId) {
139
- const summaryQuery = useDiffSummary(workspaceId, {
142
+ const changesQuery = useWorkspaceChanges(workspaceId, {
140
143
  refetchInterval: 15e3
141
144
  });
142
- const fileStatuses = summaryQuery.data?.fileStatuses ?? EMPTY_STATUSES;
143
145
  return {
144
- fileStatuses,
145
- changeCount: Object.keys(fileStatuses).length
146
+ changes: changesQuery.data,
147
+ changeCount: countChangedPaths(changesQuery.data)
146
148
  };
147
149
  }
148
150
  function WorkspaceLayout() {
@@ -166,7 +168,7 @@ function WorkspaceLayout() {
166
168
  }, [decoded, clearNeedsAttention]);
167
169
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `h-full ${hydrated ? "" : "invisible"}`, children: useDesktopLayout ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(MobileWorkspaceLayout, { workspaceId: decoded }, decoded) });
168
170
  }
169
- function MobileBarButton({
171
+ function MobileHeaderButton({
170
172
  label,
171
173
  icon: Icon,
172
174
  active,
@@ -174,24 +176,34 @@ function MobileBarButton({
174
176
  badge,
175
177
  testid
176
178
  }) {
177
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("button", { type: "button", onClick, "aria-pressed": active, "data-testid": testid, className: `relative flex flex-1 flex-col items-center justify-center gap-0.5 text-[10px] font-medium transition-colors ${active ? "text-foreground" : "text-muted-foreground hover:text-foreground"}`, children: [
178
- /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "relative", children: [
179
- /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { className: "size-5" }),
180
- badge != null && badge > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "absolute -top-1.5 -right-2 inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-blue-500/20 px-1 text-[9px] font-medium text-blue-600 dark:text-blue-400", children: badge })
181
- ] }),
182
- label
183
- ] });
179
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
180
+ "button",
181
+ {
182
+ type: "button",
183
+ onClick,
184
+ "aria-label": badge ? `${label}, ${badge}` : label,
185
+ "aria-pressed": active,
186
+ "aria-haspopup": "dialog",
187
+ "data-testid": testid,
188
+ className: `relative inline-flex size-9 shrink-0 items-center justify-center rounded-md transition-colors hover:bg-accent active:bg-accent ${active ? "text-foreground" : "text-muted-foreground"}`,
189
+ children: [
190
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { className: "size-[18px]" }),
191
+ badge != null && badge > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { "data-testid": `${testid}-badge`, className: "absolute top-0 right-0 inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-blue-500/20 px-1 text-[9px] font-medium text-blue-600 dark:text-blue-400", children: badge })
192
+ ]
193
+ }
194
+ );
184
195
  }
185
196
  function MobileWorkspaceLayout({
186
197
  workspaceId
187
198
  }) {
188
199
  const {
189
200
  height: appHeight,
190
- offsetTop: appOffsetTop
201
+ offsetTop: appOffsetTop,
202
+ keyboardOpen
191
203
  } = useAppHeight();
192
204
  const workspacePath = useWorkspacePath(workspaceId);
193
205
  const {
194
- fileStatuses,
206
+ changes,
195
207
  changeCount
196
208
  } = useChangesSummary(workspaceId);
197
209
  const [view, setView] = reactExports.useState("editor");
@@ -199,8 +211,11 @@ function MobileWorkspaceLayout({
199
211
  getWorkspaceLeafActions(workspaceId)?.openFile(filePath, opts);
200
212
  setView("editor");
201
213
  }, [workspaceId]);
202
- const openDiffLeaf = reactExports.useCallback((filePath) => {
203
- getWorkspaceLeafActions(workspaceId)?.openDiff(filePath);
214
+ const openDiffLeaf = reactExports.useCallback((section, entry) => {
215
+ getWorkspaceLeafActions(workspaceId)?.openDiff(entry.path, {
216
+ section,
217
+ oldPath: entry.oldPath
218
+ });
204
219
  setView("editor");
205
220
  }, [workspaceId]);
206
221
  const [pickerOpen, setPickerOpen] = reactExports.useState(false);
@@ -240,59 +255,61 @@ function MobileWorkspaceLayout({
240
255
  window.removeEventListener("band:open-search-files", openSF);
241
256
  };
242
257
  }, []);
243
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col overflow-hidden", style: {
244
- height: appHeight ? `${appHeight}px` : "100dvh",
245
- transform: appOffsetTop ? `translateY(${appOffsetTop}px)` : void 0
246
- }, children: [
247
- isDesktop && /* @__PURE__ */ jsxRuntimeExports.jsx(DesktopDragRegion, {}),
248
- /* @__PURE__ */ jsxRuntimeExports.jsxs("header", { className: "flex h-[calc(2.5rem+env(safe-area-inset-top))] shrink-0 items-center gap-2 border-b border-border/50 px-3 pt-[env(safe-area-inset-top)]", children: [
249
- /* @__PURE__ */ jsxRuntimeExports.jsx("button", { type: "button", onClick: () => setProjectListOpen(true), "aria-label": "Open project list", "aria-haspopup": "dialog", "data-testid": "mobile-workspace__project-list-trigger", className: "inline-flex size-7 shrink-0 items-center justify-center rounded-md hover:bg-accent", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Menu, { className: "size-4" }) }),
250
- /* @__PURE__ */ jsxRuntimeExports.jsxs("button", { type: "button", onClick: () => setPickerOpen(true), "aria-haspopup": "dialog", "aria-label": "Switch workspace", className: "inline-flex min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 hover:bg-accent active:bg-accent", children: [
251
- /* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "truncate text-sm font-semibold", children: workspaceId }),
252
- /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsUpDown, { className: "size-3.5 shrink-0 text-muted-foreground" })
258
+ return (
259
+ // Fixed, so a document scroll iOS makes to reveal the focused input can't
260
+ // move it; `offsetTop` then follows the visual viewport as it pans.
261
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "fixed inset-x-0 top-0 flex flex-col overflow-hidden", style: {
262
+ height: appHeight ? `${appHeight}px` : "100dvh",
263
+ transform: appOffsetTop ? `translateY(${appOffsetTop}px)` : void 0
264
+ }, children: [
265
+ isDesktop && /* @__PURE__ */ jsxRuntimeExports.jsx(DesktopDragRegion, {}),
266
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("header", { "data-testid": "mobile-workspace__header", className: "flex h-[calc(2.5rem+env(safe-area-inset-top))] shrink-0 items-center gap-2 border-b border-border/50 px-3 pt-[env(safe-area-inset-top)]", children: [
267
+ /* @__PURE__ */ jsxRuntimeExports.jsx("button", { type: "button", onClick: () => setProjectListOpen(true), "aria-label": "Open project list", "aria-haspopup": "dialog", "data-testid": "mobile-workspace__project-list-trigger", className: "inline-flex size-7 shrink-0 items-center justify-center rounded-md hover:bg-accent", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Menu, { className: "size-4" }) }),
268
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("button", { type: "button", onClick: () => setPickerOpen(true), "aria-haspopup": "dialog", "aria-label": "Switch workspace", "data-testid": "mobile-workspace__switcher", className: "inline-flex min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 hover:bg-accent active:bg-accent", children: [
269
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "truncate text-sm font-semibold", children: workspaceId }),
270
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronsUpDown, { className: "size-3.5 shrink-0 text-muted-foreground" })
271
+ ] }),
272
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex shrink-0 items-center", children: [
273
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MobileHeaderButton, { label: "Explorer", icon: FolderOpen, active: view === "explorer", onClick: () => setView("explorer"), testid: "mobile-workspace__header-explorer" }),
274
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MobileHeaderButton, { label: "Changes", icon: GitCompare, active: view === "changes", badge: changeCount, onClick: () => setView("changes"), testid: "mobile-workspace__header-changes" })
275
+ ] })
253
276
  ] }),
254
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": "true", className: "size-7 shrink-0" })
255
- ] }),
256
- /* @__PURE__ */ jsxRuntimeExports.jsx("main", { className: "flex min-h-0 flex-1 flex-col", children: /* @__PURE__ */ jsxRuntimeExports.jsx(WorkspaceCenterDockview, { workspaceId, visible: true, wsActive: true, mobile: true }) }),
257
- /* @__PURE__ */ jsxRuntimeExports.jsxs("nav", { className: "flex h-[calc(3rem+env(safe-area-inset-bottom))] shrink-0 items-stretch border-t border-border/50 pb-[env(safe-area-inset-bottom)]", "data-testid": "mobile-workspace__bottom-bar", children: [
258
- /* @__PURE__ */ jsxRuntimeExports.jsx(MobileBarButton, { label: "Editor", icon: SquareTerminal, active: view === "editor", onClick: () => setView("editor"), testid: "mobile-workspace__bar--editor" }),
259
- /* @__PURE__ */ jsxRuntimeExports.jsx(MobileBarButton, { label: "Explorer", icon: FolderOpen, active: view === "explorer", onClick: () => setView("explorer"), testid: "mobile-workspace__bar--explorer" }),
260
- /* @__PURE__ */ jsxRuntimeExports.jsx(MobileBarButton, { label: "Changes", icon: GitCompare, active: view === "changes", badge: changeCount, onClick: () => setView("changes"), testid: "mobile-workspace__bar--changes" })
261
- ] }),
262
- /* @__PURE__ */ jsxRuntimeExports.jsx(Sheet, { open: view === "explorer", onOpenChange: (open) => setView(open ? "explorer" : "editor"), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(SheetContent, { side: "bottom", className: "h-[75dvh] p-0", "data-testid": "mobile-workspace__explorer-sheet", children: [
263
- /* @__PURE__ */ jsxRuntimeExports.jsx(SheetTitle, { className: "border-b border-border/50 px-4 py-3 text-sm", children: "Explorer" }),
264
- /* @__PURE__ */ jsxRuntimeExports.jsx(SheetDescription, { className: "sr-only", children: "Browse workspace files and open one in the editor" }),
265
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-testid": "mobile-workspace__explorer-body", className: "min-h-0 flex-1 overflow-auto pb-[env(safe-area-inset-bottom)]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FileBrowser, { workspaceId, workspacePath, onOpenFile: (p) => openFileLeaf(p), onOpenFilePinned: (p) => openFileLeaf(p), compact: true }) })
266
- ] }) }),
267
- /* @__PURE__ */ jsxRuntimeExports.jsx(Sheet, { open: view === "changes", onOpenChange: (open) => setView(open ? "changes" : "editor"), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(SheetContent, { side: "bottom", className: "h-[75dvh] p-0", "data-testid": "mobile-workspace__changes-sheet", children: [
268
- /* @__PURE__ */ jsxRuntimeExports.jsx(SheetTitle, { className: "border-b border-border/50 px-4 py-3 text-sm", children: "Changes" }),
269
- /* @__PURE__ */ jsxRuntimeExports.jsx(SheetDescription, { className: "sr-only", children: "Browse changed files and open one as a diff" }),
270
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-testid": "mobile-workspace__changes-body", className: "min-h-0 flex-1 overflow-auto pb-[env(safe-area-inset-bottom)]", children: changeCount === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "px-3 py-2 text-xs text-muted-foreground", children: "No changes" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChangesFileTree, { fileStatuses, onSelectFile: openDiffLeaf, onSelectFilePinned: openDiffLeaf, workspacePath }) })
271
- ] }) }),
272
- /* @__PURE__ */ jsxRuntimeExports.jsx(QuickOpenDialog, { workspaceId, open: quickOpenOpen, onOpenChange: (open) => {
273
- setQuickOpenOpen(open);
274
- if (!open) setQuickOpenQuery(void 0);
275
- }, onOpenFile: handleOpenFile, initialQuery: quickOpenQuery, autoOpen: quickOpenQuery != null }),
276
- /* @__PURE__ */ jsxRuntimeExports.jsx(SearchFilesDialog, { workspaceId, open: searchFilesOpen, onOpenChange: setSearchFilesOpen, onOpenFile: handleOpenFile }),
277
- /* @__PURE__ */ jsxRuntimeExports.jsx(WorkspacePickerDialog, { open: pickerOpen, onOpenChange: setPickerOpen }),
278
- /* @__PURE__ */ jsxRuntimeExports.jsx(Sheet, { open: projectListOpen, onOpenChange: setProjectListOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
279
- SheetContent,
280
- {
281
- side: "left",
282
- showCloseButton: false,
283
- "data-testid": "project-list-flyout",
284
- onOpenAutoFocus: (e) => {
285
- e.preventDefault();
286
- e.currentTarget?.focus();
287
- },
288
- children: [
289
- /* @__PURE__ */ jsxRuntimeExports.jsx(SheetTitle, { className: "sr-only", children: "Projects" }),
290
- /* @__PURE__ */ jsxRuntimeExports.jsx(SheetDescription, { className: "sr-only", children: "Browse projects and open a workspace" }),
291
- /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarOverflowProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(DashboardShell, { bottomActions: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarActionBar, {}), hideTitleBar: true, padBottomInset: true }) })
292
- ]
293
- }
294
- ) })
295
- ] });
277
+ /* @__PURE__ */ jsxRuntimeExports.jsx("main", { "data-testid": "mobile-workspace__main", className: `flex min-h-0 flex-1 flex-col ${keyboardOpen ? "" : "pb-[env(safe-area-inset-bottom)]"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(WorkspaceCenterDockview, { workspaceId, visible: true, wsActive: true, mobile: true }) }),
278
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Sheet, { open: view === "explorer", onOpenChange: (open) => setView(open ? "explorer" : "editor"), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(SheetContent, { side: "bottom", className: "h-[75dvh] p-0", "data-testid": "mobile-workspace__explorer-sheet", children: [
279
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SheetTitle, { className: "border-b border-border/50 px-4 py-3 text-sm", children: "Explorer" }),
280
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SheetDescription, { className: "sr-only", children: "Browse workspace files and open one in the editor" }),
281
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-testid": "mobile-workspace__explorer-body", className: "min-h-0 flex-1 overflow-auto pb-[env(safe-area-inset-bottom)]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FileBrowser, { workspaceId, workspacePath, onOpenFile: (p) => openFileLeaf(p), onOpenFilePinned: (p) => openFileLeaf(p), compact: true }) })
282
+ ] }) }),
283
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Sheet, { open: view === "changes", onOpenChange: (open) => setView(open ? "changes" : "editor"), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(SheetContent, { side: "bottom", className: "h-[75dvh] p-0", "data-testid": "mobile-workspace__changes-sheet", children: [
284
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SheetTitle, { className: "border-b border-border/50 px-4 py-3 text-sm", children: "Changes" }),
285
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SheetDescription, { className: "sr-only", children: "Browse changed files and open one as a diff" }),
286
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-testid": "mobile-workspace__changes-body", className: "min-h-0 flex-1 overflow-auto pb-[env(safe-area-inset-bottom)]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChangesSections, { workspaceId, changes, onOpen: openDiffLeaf, workspacePath }) })
287
+ ] }) }),
288
+ /* @__PURE__ */ jsxRuntimeExports.jsx(QuickOpenDialog, { workspaceId, open: quickOpenOpen, onOpenChange: (open) => {
289
+ setQuickOpenOpen(open);
290
+ if (!open) setQuickOpenQuery(void 0);
291
+ }, onOpenFile: handleOpenFile, initialQuery: quickOpenQuery, autoOpen: quickOpenQuery != null }),
292
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SearchFilesDialog, { workspaceId, open: searchFilesOpen, onOpenChange: setSearchFilesOpen, onOpenFile: handleOpenFile }),
293
+ /* @__PURE__ */ jsxRuntimeExports.jsx(WorkspacePickerDialog, { open: pickerOpen, onOpenChange: setPickerOpen }),
294
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Sheet, { open: projectListOpen, onOpenChange: setProjectListOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
295
+ SheetContent,
296
+ {
297
+ side: "left",
298
+ showCloseButton: false,
299
+ "data-testid": "project-list-flyout",
300
+ onOpenAutoFocus: (e) => {
301
+ e.preventDefault();
302
+ e.currentTarget?.focus();
303
+ },
304
+ children: [
305
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SheetTitle, { className: "sr-only", children: "Projects" }),
306
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SheetDescription, { className: "sr-only", children: "Browse projects and open a workspace" }),
307
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarOverflowProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(DashboardShell, { bottomActions: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarActionBar, {}), hideTitleBar: true, padBottomInset: true }) })
308
+ ]
309
+ }
310
+ ) })
311
+ ] })
312
+ );
296
313
  }
297
314
  export {
298
315
  WorkspaceLayout as component
@@ -1,5 +1,5 @@
1
1
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2
- import { m as setAccDescription, n as getAccDescription, M as getDiagramTitle, J as setDiagramTitle, o as getAccTitle, p as setAccTitle, _ as __name, u as log, a4 as selectSvgElement, v as configureSvgSize, U as clear, a2 as getConfig, y as sanitizeText, a0 as cleanAndMerge, a1 as defaultConfig_default, am as getThemeVariables3, an as band, ao as computeDimensionOfText, al as linear, ap as line } from "./router-Dpb0Z442.js";
2
+ import { m as setAccDescription, n as getAccDescription, M as getDiagramTitle, J as setDiagramTitle, o as getAccTitle, p as setAccTitle, _ as __name, u as log, a4 as selectSvgElement, v as configureSvgSize, U as clear, a2 as getConfig, y as sanitizeText, a0 as cleanAndMerge, a1 as defaultConfig_default, am as getThemeVariables3, an as band, ao as computeDimensionOfText, al as linear, ap as line } from "./router-A58OKuIG.js";
3
3
  import "../server.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
@@ -19381,7 +19381,7 @@ function getResponse() {
19381
19381
  return event.res;
19382
19382
  }
19383
19383
  async function getStartManifest(matchedRoutes) {
19384
- const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-CfuLu7F9.js");
19384
+ const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-cBOqdEgL.js");
19385
19385
  const startManifest = tsrStartManifest();
19386
19386
  const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
19387
19387
  rootRoute.assets = rootRoute.assets || [];
@@ -19957,7 +19957,7 @@ let entriesPromise;
19957
19957
  let baseManifestPromise;
19958
19958
  let cachedFinalManifestPromise;
19959
19959
  async function loadEntries() {
19960
- const routerEntry = await import("./assets/router-Dpb0Z442.js").then((n2) => n2.d8);
19960
+ const routerEntry = await import("./assets/router-A58OKuIG.js").then((n2) => n2.d8);
19961
19961
  const startEntry = await import("./assets/start-HYkvq4Ni.js");
19962
19962
  return { startEntry, routerEntry };
19963
19963
  }