@band-app/server 0.36.0 → 0.37.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 (144) hide show
  1. package/dist/client/assets/TerminalPanel-B6hpsMbz.js +1 -0
  2. package/dist/client/assets/{_basePickBy-D1cW8RfA.js → _basePickBy-DCmd5ciV.js} +1 -1
  3. package/dist/client/assets/{_baseUniq-DCImWVn2.js → _baseUniq-D9VK2Z8h.js} +1 -1
  4. package/dist/client/assets/{arc-Jv1JrzDM.js → arc-CUv7R2hs.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-VXUJARFQ-DJTHV1y7.js → architectureDiagram-VXUJARFQ-p6VpjWC_.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-VD42YOAC-Cj_bRlht.js → blockDiagram-VD42YOAC-BqO2dZTh.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-YG6GDRKO-xPUaEy7L.js → c4Diagram-YG6GDRKO-Dj3Q1dN_.js} +1 -1
  8. package/dist/client/assets/channel-30zU4uX-.js +1 -0
  9. package/dist/client/assets/{chunk-4BX2VUAB-DWHXL8Ea.js → chunk-4BX2VUAB-ZCRzpI76.js} +1 -1
  10. package/dist/client/assets/{chunk-55IACEB6-Bd7QCFS0.js → chunk-55IACEB6-N8w7W4nW.js} +1 -1
  11. package/dist/client/assets/{chunk-B4BG7PRW-By14k0HA.js → chunk-B4BG7PRW-Bd2C6K3g.js} +1 -1
  12. package/dist/client/assets/{chunk-DI55MBZ5-D6pCQEj8.js → chunk-DI55MBZ5-CSmsIkhT.js} +1 -1
  13. package/dist/client/assets/{chunk-FMBD7UC4-DYeXE4xT.js → chunk-FMBD7UC4-CSFx-rdE.js} +1 -1
  14. package/dist/client/assets/{chunk-QN33PNHL-DcLmw7kN.js → chunk-QN33PNHL-OZhPV9ZW.js} +1 -1
  15. package/dist/client/assets/{chunk-QZHKN3VN-CRzbN_tm.js → chunk-QZHKN3VN-CmQTIqBs.js} +1 -1
  16. package/dist/client/assets/{chunk-TZMSLE5B-B75f53t3.js → chunk-TZMSLE5B-CZXFZkbf.js} +1 -1
  17. package/dist/client/assets/classDiagram-2ON5EDUG-xMXNI9Qc.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-WZHVMYZB-xMXNI9Qc.js +1 -0
  19. package/dist/client/assets/clone-D1RDOFVG.js +1 -0
  20. package/dist/client/assets/{cose-bilkent-S5V4N54A-BkAK4OL7.js → cose-bilkent-S5V4N54A-D2ZJ7fd6.js} +1 -1
  21. package/dist/client/assets/{dagre-6UL2VRFP-DncmS6YY.js → dagre-6UL2VRFP-DWWSarQ5.js} +1 -1
  22. package/dist/client/assets/{diagram-PSM6KHXK-Cn4L1emn.js → diagram-PSM6KHXK-Brpmw2Hy.js} +1 -1
  23. package/dist/client/assets/{diagram-QEK2KX5R-PfH1MBS7.js → diagram-QEK2KX5R-ChxL1lOj.js} +1 -1
  24. package/dist/client/assets/{diagram-S2PKOQOG-DIyYe2yo.js → diagram-S2PKOQOG-CWk5ucVa.js} +1 -1
  25. package/dist/client/assets/{erDiagram-Q2GNP2WA-DWSS5ilU.js → erDiagram-Q2GNP2WA-TKtLKYBO.js} +1 -1
  26. package/dist/client/assets/{flowDiagram-NV44I4VS-D8sgfoe8.js → flowDiagram-NV44I4VS-CNkvODlq.js} +1 -1
  27. package/dist/client/assets/{ganttDiagram-JELNMOA3-CY0uwMQo.js → ganttDiagram-JELNMOA3-GpiTT-6g.js} +1 -1
  28. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-C5HEaqeu.js → gitGraphDiagram-V2S2FVAM-Dka5-Ebv.js} +1 -1
  29. package/dist/client/assets/{graph-CHdAVft2.js → graph-BJfBQ-lk.js} +1 -1
  30. package/dist/client/assets/{highlighted-body-B3W2YXNL-fz7u7Bcv.js → highlighted-body-B3W2YXNL-Dcw7_8Mg.js} +1 -1
  31. package/dist/client/assets/{index-DQOFyUau.js → index-B55cfwG2.js} +1 -1
  32. package/dist/client/assets/{index-DZYkmDwN.js → index-B8-bfanc.js} +1 -1
  33. package/dist/client/assets/{index-Clbffg3I.js → index-BBjfnWP1.js} +1 -1
  34. package/dist/client/assets/{index-Ru2Dc5A_.js → index-BVmOFLZL.js} +1 -1
  35. package/dist/client/assets/{index-xQGEDauU.js → index-Bf0KQTWS.js} +1 -1
  36. package/dist/client/assets/{index-D-HgfXJR.js → index-BqB0fXhh.js} +1 -1
  37. package/dist/client/assets/{index-D6YofG76.js → index-Bw0gx-LL.js} +1 -1
  38. package/dist/client/assets/{index-Dz2ryCk3.js → index-C04T_A2n.js} +1 -1
  39. package/dist/client/assets/{index-BooiqIu5.js → index-D4kWf9j1.js} +1 -1
  40. package/dist/client/assets/{index-DWJFPU_5.js → index-D6AQfoh3.js} +1 -1
  41. package/dist/client/assets/{index-DMwXny-D.js → index-D7ptzMHA.js} +1 -1
  42. package/dist/client/assets/{index-CrBImo8f.js → index-DNCwYJJi.js} +1 -1
  43. package/dist/client/assets/{index-8d72uArR.js → index-GWun5iKj.js} +1 -1
  44. package/dist/client/assets/{infoDiagram-HS3SLOUP-D0hp75aO.js → infoDiagram-HS3SLOUP-yepsEzeD.js} +1 -1
  45. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-91HWCjRU.js → journeyDiagram-XKPGCS4Q-Ah-IVMRC.js} +1 -1
  46. package/dist/client/assets/{kanban-definition-3W4ZIXB7-BzioXfF6.js → kanban-definition-3W4ZIXB7-4lmmn3Kf.js} +1 -1
  47. package/dist/client/assets/{layout-DfQbFp33.js → layout-WnM58jJN.js} +1 -1
  48. package/dist/client/assets/main-C-PIkr2h.css +1 -0
  49. package/dist/client/assets/{main-Dqe_6Q3-.js → main-D7maoxCk.js} +253 -248
  50. package/dist/client/assets/{mindmap-definition-VGOIOE7T-C_jxHaxD.js → mindmap-definition-VGOIOE7T-CW03vZML.js} +1 -1
  51. package/dist/client/assets/{pieDiagram-ADFJNKIX-Kn_LfuP0.js → pieDiagram-ADFJNKIX-b38HzvV9.js} +1 -1
  52. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-CbeGV886.js → quadrantDiagram-AYHSOK5B-D7COvUcB.js} +1 -1
  53. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-COoa_fat.js → requirementDiagram-UZGBJVZJ-Dbo91lMQ.js} +1 -1
  54. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-TXccJBqI.js → sankeyDiagram-TZEHDZUN-DPpuI6f6.js} +1 -1
  55. package/dist/client/assets/{sequenceDiagram-WL72ISMW-Llnk43Jx.js → sequenceDiagram-WL72ISMW-osyniVrm.js} +1 -1
  56. package/dist/client/assets/{stateDiagram-FKZM4ZOC-DsQWz-Kg.js → stateDiagram-FKZM4ZOC-CEtXxDG2.js} +1 -1
  57. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DtnGHNEG.js +1 -0
  58. package/dist/client/assets/{timeline-definition-IT6M3QCI-B16mbiqF.js → timeline-definition-IT6M3QCI-Bbim-hJj.js} +1 -1
  59. package/dist/client/assets/{treemap-GDKQZRPO-CN_Il1TD.js → treemap-GDKQZRPO-Bo5jz1c4.js} +1 -1
  60. package/dist/client/assets/{workspace._workspaceId-DJz9r6Bk.js → workspace._workspaceId-BAa7JD1w.js} +1 -1
  61. package/dist/client/assets/{workspace._workspaceId-CXgdRFSq.js → workspace._workspaceId-Dx3IQ0uo.js} +1 -1
  62. package/dist/client/assets/{xychartDiagram-PRI3JC2R-RSssrHeJ.js → xychartDiagram-PRI3JC2R-CwV1AnKv.js} +1 -1
  63. package/dist/openapi.json +1 -8
  64. package/dist/server/assets/{TerminalPanel-BE1IBqp5.js → TerminalPanel-oz5y-mkP.js} +6 -6
  65. package/dist/server/assets/{_basePickBy-CHo3_xmm.js → _basePickBy-DEzTaMUa.js} +2 -2
  66. package/dist/server/assets/{_baseUniq-CSupPFs6.js → _baseUniq-CnsXScTA.js} +1 -1
  67. package/dist/server/assets/_tanstack-start-manifest_v-CGO9e_6B.js +4 -0
  68. package/dist/server/assets/{arc-D44kAr9U.js → arc-DFOFayWx.js} +1 -1
  69. package/dist/server/assets/{architecture-7HQA4BMR-vXckakYr.js → architecture-7HQA4BMR-n9VmbCuR.js} +6 -6
  70. package/dist/server/assets/{architectureDiagram-VXUJARFQ-CR2ITyvh.js → architectureDiagram-VXUJARFQ-IeNkR88v.js} +6 -6
  71. package/dist/server/assets/{blockDiagram-VD42YOAC-DEeR9cDU.js → blockDiagram-VD42YOAC-CWXr6KW7.js} +6 -6
  72. package/dist/server/assets/{c4Diagram-YG6GDRKO-DBRRCTXb.js → c4Diagram-YG6GDRKO-DIRimETA.js} +2 -2
  73. package/dist/server/assets/{channel-C5tRsfJG.js → channel-Cdqq5j16.js} +1 -1
  74. package/dist/server/assets/{chunk-4BX2VUAB-bf7NCd3y.js → chunk-4BX2VUAB-Cozm9hqk.js} +1 -1
  75. package/dist/server/assets/{chunk-55IACEB6-DWdn6VWI.js → chunk-55IACEB6-DRjrJM1L.js} +1 -1
  76. package/dist/server/assets/{chunk-B4BG7PRW-Dkh6IKnk.js → chunk-B4BG7PRW-BwiA7gAZ.js} +4 -4
  77. package/dist/server/assets/{chunk-DI55MBZ5-DBWVZkkA.js → chunk-DI55MBZ5-DYx-lIkt.js} +3 -3
  78. package/dist/server/assets/{chunk-FMBD7UC4-BdS42WOu.js → chunk-FMBD7UC4-Bd38Wnw9.js} +1 -1
  79. package/dist/server/assets/{chunk-QN33PNHL-B8Ct7vG8.js → chunk-QN33PNHL-ONbSMsSY.js} +1 -1
  80. package/dist/server/assets/{chunk-QZHKN3VN-B9nHGxsX.js → chunk-QZHKN3VN-fU_vVgPJ.js} +1 -1
  81. package/dist/server/assets/{chunk-TZMSLE5B-BlzccDyU.js → chunk-TZMSLE5B-BBpSfNKJ.js} +1 -1
  82. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-Chmrw_oF.js → classDiagram-2ON5EDUG-BLteCxZe.js} +5 -5
  83. package/dist/server/assets/{classDiagram-2ON5EDUG-Chmrw_oF.js → classDiagram-v2-WZHVMYZB-BLteCxZe.js} +5 -5
  84. package/dist/server/assets/{clone-aEnx_Sae.js → clone-DHWXuNGD.js} +1 -1
  85. package/dist/server/assets/{cose-bilkent-S5V4N54A-Bc5NoQXq.js → cose-bilkent-S5V4N54A-Dqv8g3XR.js} +1 -1
  86. package/dist/server/assets/{dagre-6UL2VRFP-H_kNmEPM.js → dagre-6UL2VRFP-DvvoFaVJ.js} +6 -6
  87. package/dist/server/assets/{diagram-PSM6KHXK-BcsANBT1.js → diagram-PSM6KHXK-CbKKlJvK.js} +7 -7
  88. package/dist/server/assets/{diagram-QEK2KX5R-k-zPaYMJ.js → diagram-QEK2KX5R-GLrYhnWw.js} +6 -6
  89. package/dist/server/assets/{diagram-S2PKOQOG-DjbSY-6m.js → diagram-S2PKOQOG-uaww8JQd.js} +6 -6
  90. package/dist/server/assets/{erDiagram-Q2GNP2WA-CydybEEO.js → erDiagram-Q2GNP2WA-CBpgZJNk.js} +4 -4
  91. package/dist/server/assets/{flowDiagram-NV44I4VS-tA99onXp.js → flowDiagram-NV44I4VS-DwqeGUt2.js} +5 -5
  92. package/dist/server/assets/{ganttDiagram-JELNMOA3-DsJKSbMm.js → ganttDiagram-JELNMOA3-CSDzrG3u.js} +1 -1
  93. package/dist/server/assets/{gitGraph-G5XIXVHT-BNHu-oQ-.js → gitGraph-G5XIXVHT-CI6QTqC-.js} +6 -6
  94. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-CzPNHl73.js → gitGraphDiagram-V2S2FVAM-4Hraf1YX.js} +7 -7
  95. package/dist/server/assets/{graph-BnMaPr50.js → graph-BKeol0ik.js} +2 -2
  96. package/dist/server/assets/{highlighted-body-B3W2YXNL-BdiOjvlf.js → highlighted-body-B3W2YXNL-C_Th2vxh.js} +1 -1
  97. package/dist/server/assets/{index-C1sJw8Wd.js → index-B-VeeFTd.js} +1 -1
  98. package/dist/server/assets/{index-Z2HsI7K-.js → index-BQEmg9fY.js} +1 -1
  99. package/dist/server/assets/{index-BdUQ01QB.js → index-BVY32Ndh.js} +1 -1
  100. package/dist/server/assets/{index-DYrcmtj8.js → index-BmH5PL3t.js} +1 -1
  101. package/dist/server/assets/{index-BuEcvcgH.js → index-BtAQWAP4.js} +1 -1
  102. package/dist/server/assets/{index-CvQ9Ebcc.js → index-CXm0C-yc.js} +1 -1
  103. package/dist/server/assets/{index-CPWcRp4N.js → index-CklLNUhb.js} +1 -1
  104. package/dist/server/assets/{index-BDjoQgaj.js → index-CoOBJObR.js} +1 -1
  105. package/dist/server/assets/{index-BcHVcca2.js → index-DOtn1sP2.js} +1 -1
  106. package/dist/server/assets/{index-DKZU081P.js → index-KTMc95HN.js} +1 -1
  107. package/dist/server/assets/{index-BbZG02I3.js → index-SeV-ZdZi.js} +1 -1
  108. package/dist/server/assets/{index-B5Ou6PeY.js → index-WYUrghvu.js} +1 -1
  109. package/dist/server/assets/{index-CGb2LUtT.js → index-dS3n7bt3.js} +1 -1
  110. package/dist/server/assets/{info-VBDWY6EO-C24hC3ph.js → info-VBDWY6EO-qXtU7fls.js} +6 -6
  111. package/dist/server/assets/{infoDiagram-HS3SLOUP-CSvzttKw.js → infoDiagram-HS3SLOUP-Bnhyc8dm.js} +5 -5
  112. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-Bb7ADiou.js → journeyDiagram-XKPGCS4Q-DCeht2II.js} +4 -4
  113. package/dist/server/assets/{kanban-definition-3W4ZIXB7-BCi9DXfZ.js → kanban-definition-3W4ZIXB7-D2wyptyQ.js} +2 -2
  114. package/dist/server/assets/{layout-CBoh_yzS.js → layout-D8oV2IEs.js} +4 -4
  115. package/dist/server/assets/{mermaid-3ZIDBTTL-DrE5sAWk.js → mermaid-3ZIDBTTL-BLpPLDqd.js} +1 -1
  116. package/dist/server/assets/{mermaid-parser.core-C6_1Cugd.js → mermaid-parser.core-BbOvn3Uv.js} +11 -11
  117. package/dist/server/assets/{mindmap-definition-VGOIOE7T-yqPdoOIb.js → mindmap-definition-VGOIOE7T-CKJkiH58.js} +3 -3
  118. package/dist/server/assets/{packet-DYOGHKS2-DJmc50nE.js → packet-DYOGHKS2-CnxepCEW.js} +6 -6
  119. package/dist/server/assets/{pie-VRWISCQL-CvrR2-yk.js → pie-VRWISCQL-KXauGON3.js} +6 -6
  120. package/dist/server/assets/{pieDiagram-ADFJNKIX-CFOW6PnN.js → pieDiagram-ADFJNKIX-B8juLdbl.js} +7 -7
  121. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-3A-aZNyC.js → quadrantDiagram-AYHSOK5B-CLY3QLCC.js} +1 -1
  122. package/dist/server/assets/{radar-ZZBFDIW7-Cfbkh5bz.js → radar-ZZBFDIW7-CIRaA_9T.js} +6 -6
  123. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-Dlll26uf.js → requirementDiagram-UZGBJVZJ-CgDmK30l.js} +3 -3
  124. package/dist/server/assets/{router-B261twKF.js → router-G1mE-O-Q.js} +1436 -861
  125. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BQaOXs3v.js → sankeyDiagram-TZEHDZUN-B9355ZLW.js} +1 -1
  126. package/dist/server/assets/{sequenceDiagram-WL72ISMW-BCAnfOwu.js → sequenceDiagram-WL72ISMW-SyLdlVhU.js} +3 -3
  127. package/dist/server/assets/{stateDiagram-FKZM4ZOC-BqJZtxdF.js → stateDiagram-FKZM4ZOC-B8krws9Z.js} +8 -8
  128. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-1ifEjgYq.js → stateDiagram-v2-4FDKWEC3-CqkUhCge.js} +4 -4
  129. package/dist/server/assets/{timeline-definition-IT6M3QCI-CAWbczQG.js → timeline-definition-IT6M3QCI-eG_EzXZg.js} +2 -2
  130. package/dist/server/assets/{treemap-GDKQZRPO-BK5fWRQl.js → treemap-GDKQZRPO-DS3w9TMX.js} +6 -6
  131. package/dist/server/assets/{workspace._workspaceId-DJjGZFKN.js → workspace._workspaceId-Bd4v7PwG.js} +1 -1
  132. package/dist/server/assets/{workspace._workspaceId-C895SrvA.js → workspace._workspaceId-DMYkHS43.js} +1 -1
  133. package/dist/server/assets/{xychartDiagram-PRI3JC2R-DfSubvZj.js → xychartDiagram-PRI3JC2R-DAi7zkg3.js} +1 -1
  134. package/dist/server/server.js +2 -2
  135. package/dist/start-server.mjs +398 -363
  136. package/package.json +5 -5
  137. package/dist/client/assets/TerminalPanel-6-rt7Tzp.js +0 -1
  138. package/dist/client/assets/channel-BObJvFJf.js +0 -1
  139. package/dist/client/assets/classDiagram-2ON5EDUG-B4j3Xs8O.js +0 -1
  140. package/dist/client/assets/classDiagram-v2-WZHVMYZB-B4j3Xs8O.js +0 -1
  141. package/dist/client/assets/clone-D1oJjm-k.js +0 -1
  142. package/dist/client/assets/main-CXgf0iaP.css +0 -1
  143. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BZgMRt9_.js +0 -1
  144. package/dist/server/assets/_tanstack-start-manifest_v-Cnfw-Mtl.js +0 -4
@@ -1226,7 +1226,7 @@ const createLucideIcon = (iconName, iconNode) => {
1226
1226
  Component.displayName = toPascalCase(iconName);
1227
1227
  return Component;
1228
1228
  };
1229
- const __iconNode$1G = [
1229
+ const __iconNode$1D = [
1230
1230
  [
1231
1231
  "path",
1232
1232
  {
@@ -1235,45 +1235,40 @@ const __iconNode$1G = [
1235
1235
  }
1236
1236
  ]
1237
1237
  ];
1238
- const Activity = createLucideIcon("activity", __iconNode$1G);
1239
- const __iconNode$1F = [
1238
+ const Activity = createLucideIcon("activity", __iconNode$1D);
1239
+ const __iconNode$1C = [
1240
1240
  ["path", { d: "M12 17V3", key: "1cwfxf" }],
1241
1241
  ["path", { d: "m6 11 6 6 6-6", key: "12ii2o" }],
1242
1242
  ["path", { d: "M19 21H5", key: "150jfl" }]
1243
1243
  ];
1244
- const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$1F);
1245
- const __iconNode$1E = [
1244
+ const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$1C);
1245
+ const __iconNode$1B = [
1246
1246
  ["path", { d: "M12 5v14", key: "s699le" }],
1247
1247
  ["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
1248
1248
  ];
1249
- const ArrowDown = createLucideIcon("arrow-down", __iconNode$1E);
1250
- const __iconNode$1D = [
1249
+ const ArrowDown = createLucideIcon("arrow-down", __iconNode$1B);
1250
+ const __iconNode$1A = [
1251
1251
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
1252
1252
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
1253
1253
  ];
1254
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1D);
1255
- const __iconNode$1C = [
1254
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1A);
1255
+ const __iconNode$1z = [
1256
1256
  ["path", { d: "M5 12h14", key: "1ays0h" }],
1257
1257
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
1258
1258
  ];
1259
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$1C);
1260
- const __iconNode$1B = [
1259
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$1z);
1260
+ const __iconNode$1y = [
1261
1261
  ["path", { d: "m18 9-6-6-6 6", key: "kcunyi" }],
1262
1262
  ["path", { d: "M12 3v14", key: "7cf3v8" }],
1263
1263
  ["path", { d: "M5 21h14", key: "11awu3" }]
1264
1264
  ];
1265
- const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$1B);
1266
- const __iconNode$1A = [
1267
- ["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
1268
- ["path", { d: "M12 19V5", key: "x0mq9r" }]
1269
- ];
1270
- const ArrowUp = createLucideIcon("arrow-up", __iconNode$1A);
1271
- const __iconNode$1z = [
1265
+ const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$1y);
1266
+ const __iconNode$1x = [
1272
1267
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1273
1268
  ["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }]
1274
1269
  ];
1275
- const Ban = createLucideIcon("ban", __iconNode$1z);
1276
- const __iconNode$1y = [
1270
+ const Ban = createLucideIcon("ban", __iconNode$1x);
1271
+ const __iconNode$1w = [
1277
1272
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
1278
1273
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
1279
1274
  ["path", { d: "M2 14h2", key: "vft8re" }],
@@ -1281,8 +1276,8 @@ const __iconNode$1y = [
1281
1276
  ["path", { d: "M15 13v2", key: "1xurst" }],
1282
1277
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
1283
1278
  ];
1284
- const Bot = createLucideIcon("bot", __iconNode$1y);
1285
- const __iconNode$1x = [
1279
+ const Bot = createLucideIcon("bot", __iconNode$1w);
1280
+ const __iconNode$1v = [
1286
1281
  ["path", { d: "M12 18V5", key: "adv99a" }],
1287
1282
  ["path", { d: "M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4", key: "1e3is1" }],
1288
1283
  ["path", { d: "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5", key: "1gqd8o" }],
@@ -1292,56 +1287,56 @@ const __iconNode$1x = [
1292
1287
  ["path", { d: "M6 18a4 4 0 0 1-2-7.464", key: "k1g0md" }],
1293
1288
  ["path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77", key: "q97ue3" }]
1294
1289
  ];
1295
- const Brain = createLucideIcon("brain", __iconNode$1x);
1296
- const __iconNode$1w = [
1290
+ const Brain = createLucideIcon("brain", __iconNode$1v);
1291
+ const __iconNode$1u = [
1297
1292
  ["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
1298
1293
  ["path", { d: "M22 9v7", key: "pvm9v3" }],
1299
1294
  ["path", { d: "M3.304 13h6.392", key: "1q3zxz" }],
1300
1295
  ["circle", { cx: "18.5", cy: "12.5", r: "3.5", key: "z97x68" }]
1301
1296
  ];
1302
- const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$1w);
1303
- const __iconNode$1v = [
1297
+ const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$1u);
1298
+ const __iconNode$1t = [
1304
1299
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
1305
1300
  ["path", { d: "M18 17V9", key: "2bz60n" }],
1306
1301
  ["path", { d: "M13 17V5", key: "1frdt8" }],
1307
1302
  ["path", { d: "M8 17v-3", key: "17ska0" }]
1308
1303
  ];
1309
- const ChartColumn = createLucideIcon("chart-column", __iconNode$1v);
1310
- const __iconNode$1u = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
1311
- const Check = createLucideIcon("check", __iconNode$1u);
1312
- const __iconNode$1t = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1313
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$1t);
1314
- const __iconNode$1s = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
1315
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1s);
1316
- const __iconNode$1r = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1317
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$1r);
1318
- const __iconNode$1q = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
1319
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$1q);
1320
- const __iconNode$1p = [
1304
+ const ChartColumn = createLucideIcon("chart-column", __iconNode$1t);
1305
+ const __iconNode$1s = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
1306
+ const Check = createLucideIcon("check", __iconNode$1s);
1307
+ const __iconNode$1r = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1308
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$1r);
1309
+ const __iconNode$1q = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
1310
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1q);
1311
+ const __iconNode$1p = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
1312
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$1p);
1313
+ const __iconNode$1o = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
1314
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$1o);
1315
+ const __iconNode$1n = [
1321
1316
  ["path", { d: "m7 20 5-5 5 5", key: "13a0gw" }],
1322
1317
  ["path", { d: "m7 4 5 5 5-5", key: "1kwcof" }]
1323
1318
  ];
1324
- const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$1p);
1325
- const __iconNode$1o = [
1319
+ const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$1n);
1320
+ const __iconNode$1m = [
1326
1321
  ["path", { d: "M10.88 21.94 15.46 14", key: "xkve6t" }],
1327
1322
  ["path", { d: "M21.17 8H12", key: "19dcdn" }],
1328
1323
  ["path", { d: "M3.95 6.06 8.54 14", key: "g8jz9m" }],
1329
1324
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1330
1325
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }]
1331
1326
  ];
1332
- const Chromium = createLucideIcon("chromium", __iconNode$1o);
1333
- const __iconNode$1n = [
1327
+ const Chromium = createLucideIcon("chromium", __iconNode$1m);
1328
+ const __iconNode$1l = [
1334
1329
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1335
1330
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
1336
1331
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
1337
1332
  ];
1338
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$1n);
1339
- const __iconNode$1m = [
1333
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$1l);
1334
+ const __iconNode$1k = [
1340
1335
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1341
1336
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
1342
1337
  ];
1343
- const CircleCheck = createLucideIcon("circle-check", __iconNode$1m);
1344
- const __iconNode$1l = [
1338
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$1k);
1339
+ const __iconNode$1j = [
1345
1340
  ["path", { d: "M10.1 2.182a10 10 0 0 1 3.8 0", key: "5ilxe3" }],
1346
1341
  ["path", { d: "M13.9 21.818a10 10 0 0 1-3.8 0", key: "11zvb9" }],
1347
1342
  ["path", { d: "M17.609 3.721a10 10 0 0 1 2.69 2.7", key: "1iw5b2" }],
@@ -1351,42 +1346,42 @@ const __iconNode$1l = [
1351
1346
  ["path", { d: "M3.721 6.391a10 10 0 0 1 2.7-2.69", key: "1mcia2" }],
1352
1347
  ["path", { d: "M6.391 20.279a10 10 0 0 1-2.69-2.7", key: "1fvljs" }]
1353
1348
  ];
1354
- const CircleDashed = createLucideIcon("circle-dashed", __iconNode$1l);
1355
- const __iconNode$1k = [
1349
+ const CircleDashed = createLucideIcon("circle-dashed", __iconNode$1j);
1350
+ const __iconNode$1i = [
1356
1351
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1357
1352
  ["path", { d: "M8 12h8", key: "1wcyev" }]
1358
1353
  ];
1359
- const CircleMinus = createLucideIcon("circle-minus", __iconNode$1k);
1360
- const __iconNode$1j = [
1354
+ const CircleMinus = createLucideIcon("circle-minus", __iconNode$1i);
1355
+ const __iconNode$1h = [
1361
1356
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1362
1357
  ["line", { x1: "9", x2: "15", y1: "15", y2: "9", key: "1dfufj" }]
1363
1358
  ];
1364
- const CircleSlash = createLucideIcon("circle-slash", __iconNode$1j);
1365
- const __iconNode$1i = [
1359
+ const CircleSlash = createLucideIcon("circle-slash", __iconNode$1h);
1360
+ const __iconNode$1g = [
1366
1361
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1367
1362
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
1368
1363
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
1369
1364
  ];
1370
- const CircleX = createLucideIcon("circle-x", __iconNode$1i);
1371
- const __iconNode$1h = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
1372
- const Circle = createLucideIcon("circle", __iconNode$1h);
1373
- const __iconNode$1g = [
1365
+ const CircleX = createLucideIcon("circle-x", __iconNode$1g);
1366
+ const __iconNode$1f = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
1367
+ const Circle = createLucideIcon("circle", __iconNode$1f);
1368
+ const __iconNode$1e = [
1374
1369
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
1375
1370
  ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2", key: "4jdomd" }],
1376
1371
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v4", key: "3hqy98" }],
1377
1372
  ["path", { d: "M21 14H11", key: "1bme5i" }],
1378
1373
  ["path", { d: "m15 10-4 4 4 4", key: "5dvupr" }]
1379
1374
  ];
1380
- const ClipboardCopy = createLucideIcon("clipboard-copy", __iconNode$1g);
1381
- const __iconNode$1f = [
1375
+ const ClipboardCopy = createLucideIcon("clipboard-copy", __iconNode$1e);
1376
+ const __iconNode$1d = [
1382
1377
  ["path", { d: "M11 14h10", key: "1w8e9d" }],
1383
1378
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v1.344", key: "1e62lh" }],
1384
1379
  ["path", { d: "m17 18 4-4-4-4", key: "z2g111" }],
1385
1380
  ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113", key: "bjbb7m" }],
1386
1381
  ["rect", { x: "8", y: "2", width: "8", height: "4", rx: "1", key: "ublpy" }]
1387
1382
  ];
1388
- const ClipboardPaste = createLucideIcon("clipboard-paste", __iconNode$1f);
1389
- const __iconNode$1e = [
1383
+ const ClipboardPaste = createLucideIcon("clipboard-paste", __iconNode$1d);
1384
+ const __iconNode$1c = [
1390
1385
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
1391
1386
  [
1392
1387
  "path",
@@ -1396,36 +1391,30 @@ const __iconNode$1e = [
1396
1391
  }
1397
1392
  ]
1398
1393
  ];
1399
- const Clipboard = createLucideIcon("clipboard", __iconNode$1e);
1400
- const __iconNode$1d = [
1394
+ const Clipboard = createLucideIcon("clipboard", __iconNode$1c);
1395
+ const __iconNode$1b = [
1401
1396
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1402
1397
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
1403
1398
  ];
1404
- const Clock = createLucideIcon("clock", __iconNode$1d);
1405
- const __iconNode$1c = [
1406
- ["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
1407
- ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
1408
- ["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
1409
- ];
1410
- const CodeXml = createLucideIcon("code-xml", __iconNode$1c);
1411
- const __iconNode$1b = [
1399
+ const Clock = createLucideIcon("clock", __iconNode$1b);
1400
+ const __iconNode$1a = [
1412
1401
  ["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
1413
1402
  ["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
1414
1403
  ];
1415
- const Code = createLucideIcon("code", __iconNode$1b);
1416
- const __iconNode$1a = [
1404
+ const Code = createLucideIcon("code", __iconNode$1a);
1405
+ const __iconNode$19 = [
1417
1406
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1418
1407
  ["path", { d: "M12 3v18", key: "108xh3" }]
1419
1408
  ];
1420
- const Columns2 = createLucideIcon("columns-2", __iconNode$1a);
1421
- const __iconNode$19 = [
1409
+ const Columns2 = createLucideIcon("columns-2", __iconNode$19);
1410
+ const __iconNode$18 = [
1422
1411
  [
1423
1412
  "path",
1424
1413
  { 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" }
1425
1414
  ]
1426
1415
  ];
1427
- const Command$1 = createLucideIcon("command", __iconNode$19);
1428
- const __iconNode$18 = [
1416
+ const Command$1 = createLucideIcon("command", __iconNode$18);
1417
+ const __iconNode$17 = [
1429
1418
  ["path", { d: "M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5", key: "laymnq" }],
1430
1419
  ["path", { d: "M8.5 8.5v.01", key: "ue8clq" }],
1431
1420
  ["path", { d: "M16 15.5v.01", key: "14dtrp" }],
@@ -1433,31 +1422,36 @@ const __iconNode$18 = [
1433
1422
  ["path", { d: "M11 17v.01", key: "1hyl5a" }],
1434
1423
  ["path", { d: "M7 14v.01", key: "uct60s" }]
1435
1424
  ];
1436
- const Cookie = createLucideIcon("cookie", __iconNode$18);
1437
- const __iconNode$17 = [
1425
+ const Cookie = createLucideIcon("cookie", __iconNode$17);
1426
+ const __iconNode$16 = [
1438
1427
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
1439
1428
  ["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" }]
1440
1429
  ];
1441
- const Copy = createLucideIcon("copy", __iconNode$17);
1442
- const __iconNode$16 = [
1430
+ const Copy = createLucideIcon("copy", __iconNode$16);
1431
+ const __iconNode$15 = [
1432
+ ["path", { d: "M20 4v7a4 4 0 0 1-4 4H4", key: "6o5b7l" }],
1433
+ ["path", { d: "m9 10-5 5 5 5", key: "1kshq7" }]
1434
+ ];
1435
+ const CornerDownLeft = createLucideIcon("corner-down-left", __iconNode$15);
1436
+ const __iconNode$14 = [
1443
1437
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
1444
1438
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
1445
1439
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
1446
1440
  ];
1447
- const Download = createLucideIcon("download", __iconNode$16);
1448
- const __iconNode$15 = [
1441
+ const Download = createLucideIcon("download", __iconNode$14);
1442
+ const __iconNode$13 = [
1449
1443
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
1450
1444
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
1451
1445
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
1452
1446
  ];
1453
- const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$15);
1454
- const __iconNode$14 = [
1447
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$13);
1448
+ const __iconNode$12 = [
1455
1449
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
1456
1450
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
1457
1451
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
1458
1452
  ];
1459
- const Ellipsis = createLucideIcon("ellipsis", __iconNode$14);
1460
- const __iconNode$13 = [
1453
+ const Ellipsis = createLucideIcon("ellipsis", __iconNode$12);
1454
+ const __iconNode$11 = [
1461
1455
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
1462
1456
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
1463
1457
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
@@ -1467,14 +1461,14 @@ const __iconNode$13 = [
1467
1461
  ["path", { d: "M3 8V3h5", key: "1ln10m" }],
1468
1462
  ["path", { d: "M9 9 3 3", key: "v551iv" }]
1469
1463
  ];
1470
- const Expand = createLucideIcon("expand", __iconNode$13);
1471
- const __iconNode$12 = [
1464
+ const Expand = createLucideIcon("expand", __iconNode$11);
1465
+ const __iconNode$10 = [
1472
1466
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
1473
1467
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
1474
1468
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
1475
1469
  ];
1476
- const ExternalLink$1 = createLucideIcon("external-link", __iconNode$12);
1477
- const __iconNode$11 = [
1470
+ const ExternalLink$1 = createLucideIcon("external-link", __iconNode$10);
1471
+ const __iconNode$$ = [
1478
1472
  [
1479
1473
  "path",
1480
1474
  {
@@ -1484,8 +1478,8 @@ const __iconNode$11 = [
1484
1478
  ],
1485
1479
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
1486
1480
  ];
1487
- const Eye = createLucideIcon("eye", __iconNode$11);
1488
- const __iconNode$10 = [
1481
+ const Eye = createLucideIcon("eye", __iconNode$$);
1482
+ const __iconNode$_ = [
1489
1483
  [
1490
1484
  "path",
1491
1485
  {
@@ -1496,8 +1490,8 @@ const __iconNode$10 = [
1496
1490
  ["path", { d: "M12 9v4", key: "juzpu7" }],
1497
1491
  ["path", { d: "M12 17h.01", key: "p32p05" }]
1498
1492
  ];
1499
- const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$10);
1500
- const __iconNode$$ = [
1493
+ const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$_);
1494
+ const __iconNode$Z = [
1501
1495
  [
1502
1496
  "path",
1503
1497
  {
@@ -1509,8 +1503,8 @@ const __iconNode$$ = [
1509
1503
  ["path", { d: "M2 15h10", key: "jfw4w8" }],
1510
1504
  ["path", { d: "m9 18 3-3-3-3", key: "112psh" }]
1511
1505
  ];
1512
- const FileInput = createLucideIcon("file-input", __iconNode$$);
1513
- const __iconNode$_ = [
1506
+ const FileInput = createLucideIcon("file-input", __iconNode$Z);
1507
+ const __iconNode$Y = [
1514
1508
  [
1515
1509
  "path",
1516
1510
  {
@@ -1522,8 +1516,8 @@ const __iconNode$_ = [
1522
1516
  ["path", { d: "M9 15h6", key: "cctwl0" }],
1523
1517
  ["path", { d: "M12 18v-6", key: "17g6i2" }]
1524
1518
  ];
1525
- const FilePlus = createLucideIcon("file-plus", __iconNode$_);
1526
- const __iconNode$Z = [
1519
+ const FilePlus = createLucideIcon("file-plus", __iconNode$Y);
1520
+ const __iconNode$X = [
1527
1521
  [
1528
1522
  "path",
1529
1523
  {
@@ -1533,8 +1527,8 @@ const __iconNode$Z = [
1533
1527
  ],
1534
1528
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
1535
1529
  ];
1536
- const File$1 = createLucideIcon("file", __iconNode$Z);
1537
- const __iconNode$Y = [
1530
+ const File$1 = createLucideIcon("file", __iconNode$X);
1531
+ const __iconNode$W = [
1538
1532
  ["path", { d: "M2 12h6", key: "1wqiqv" }],
1539
1533
  ["path", { d: "M22 12h-6", key: "1eg9hc" }],
1540
1534
  ["path", { d: "M12 2v2", key: "tus03m" }],
@@ -1544,8 +1538,8 @@ const __iconNode$Y = [
1544
1538
  ["path", { d: "m19 9-3 3 3 3", key: "12ol22" }],
1545
1539
  ["path", { d: "m5 15 3-3-3-3", key: "1kdhjc" }]
1546
1540
  ];
1547
- const FoldHorizontal = createLucideIcon("fold-horizontal", __iconNode$Y);
1548
- const __iconNode$X = [
1541
+ const FoldHorizontal = createLucideIcon("fold-horizontal", __iconNode$W);
1542
+ const __iconNode$V = [
1549
1543
  [
1550
1544
  "path",
1551
1545
  {
@@ -1554,8 +1548,8 @@ const __iconNode$X = [
1554
1548
  }
1555
1549
  ]
1556
1550
  ];
1557
- const FolderOpen = createLucideIcon("folder-open", __iconNode$X);
1558
- const __iconNode$W = [
1551
+ const FolderOpen = createLucideIcon("folder-open", __iconNode$V);
1552
+ const __iconNode$U = [
1559
1553
  ["path", { d: "M12 10v6", key: "1bos4e" }],
1560
1554
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
1561
1555
  [
@@ -1566,8 +1560,8 @@ const __iconNode$W = [
1566
1560
  }
1567
1561
  ]
1568
1562
  ];
1569
- const FolderPlus = createLucideIcon("folder-plus", __iconNode$W);
1570
- const __iconNode$V = [
1563
+ const FolderPlus = createLucideIcon("folder-plus", __iconNode$U);
1564
+ const __iconNode$T = [
1571
1565
  [
1572
1566
  "path",
1573
1567
  {
@@ -1576,40 +1570,40 @@ const __iconNode$V = [
1576
1570
  }
1577
1571
  ]
1578
1572
  ];
1579
- const Folder = createLucideIcon("folder", __iconNode$V);
1580
- const __iconNode$U = [
1573
+ const Folder = createLucideIcon("folder", __iconNode$T);
1574
+ const __iconNode$S = [
1581
1575
  ["path", { d: "M15 6a9 9 0 0 0-9 9V3", key: "1cii5b" }],
1582
1576
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
1583
1577
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }]
1584
1578
  ];
1585
- const GitBranch = createLucideIcon("git-branch", __iconNode$U);
1586
- const __iconNode$T = [
1579
+ const GitBranch = createLucideIcon("git-branch", __iconNode$S);
1580
+ const __iconNode$R = [
1587
1581
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
1588
1582
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
1589
1583
  ["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
1590
1584
  ["path", { d: "M11 18H8a2 2 0 0 1-2-2V9", key: "19pyzm" }]
1591
1585
  ];
1592
- const GitCompare = createLucideIcon("git-compare", __iconNode$T);
1593
- const __iconNode$S = [
1586
+ const GitCompare = createLucideIcon("git-compare", __iconNode$R);
1587
+ const __iconNode$Q = [
1594
1588
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
1595
1589
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
1596
1590
  ["path", { d: "M6 21V9a9 9 0 0 0 9 9", key: "7kw0sc" }]
1597
1591
  ];
1598
- const GitMerge = createLucideIcon("git-merge", __iconNode$S);
1599
- const __iconNode$R = [
1592
+ const GitMerge = createLucideIcon("git-merge", __iconNode$Q);
1593
+ const __iconNode$P = [
1600
1594
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
1601
1595
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
1602
1596
  ["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
1603
1597
  ["line", { x1: "6", x2: "6", y1: "9", y2: "21", key: "rroup" }]
1604
1598
  ];
1605
- const GitPullRequest = createLucideIcon("git-pull-request", __iconNode$R);
1606
- const __iconNode$Q = [
1599
+ const GitPullRequest = createLucideIcon("git-pull-request", __iconNode$P);
1600
+ const __iconNode$O = [
1607
1601
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1608
1602
  ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
1609
1603
  ["path", { d: "M2 12h20", key: "9i4pu4" }]
1610
1604
  ];
1611
- const Globe = createLucideIcon("globe", __iconNode$Q);
1612
- const __iconNode$P = [
1605
+ const Globe = createLucideIcon("globe", __iconNode$O);
1606
+ const __iconNode$N = [
1613
1607
  ["circle", { cx: "12", cy: "9", r: "1", key: "124mty" }],
1614
1608
  ["circle", { cx: "19", cy: "9", r: "1", key: "1ruzo2" }],
1615
1609
  ["circle", { cx: "5", cy: "9", r: "1", key: "1a8b28" }],
@@ -1617,14 +1611,14 @@ const __iconNode$P = [
1617
1611
  ["circle", { cx: "19", cy: "15", r: "1", key: "1a92ep" }],
1618
1612
  ["circle", { cx: "5", cy: "15", r: "1", key: "5r1jwy" }]
1619
1613
  ];
1620
- const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$P);
1621
- const __iconNode$O = [
1614
+ const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$N);
1615
+ const __iconNode$M = [
1622
1616
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
1623
1617
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
1624
1618
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
1625
1619
  ];
1626
- const History = createLucideIcon("history", __iconNode$O);
1627
- const __iconNode$N = [
1620
+ const History = createLucideIcon("history", __iconNode$M);
1621
+ const __iconNode$L = [
1628
1622
  ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
1629
1623
  [
1630
1624
  "path",
@@ -1634,8 +1628,8 @@ const __iconNode$N = [
1634
1628
  }
1635
1629
  ]
1636
1630
  ];
1637
- const House = createLucideIcon("house", __iconNode$N);
1638
- const __iconNode$M = [
1631
+ const House = createLucideIcon("house", __iconNode$L);
1632
+ const __iconNode$K = [
1639
1633
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }],
1640
1634
  ["path", { d: "M10.41 10.41a2 2 0 1 1-2.83-2.83", key: "1bzlo9" }],
1641
1635
  ["line", { x1: "13.5", x2: "6", y1: "13.5", y2: "21", key: "1q0aeu" }],
@@ -1649,42 +1643,42 @@ const __iconNode$M = [
1649
1643
  ],
1650
1644
  ["path", { d: "M21 15V5a2 2 0 0 0-2-2H9", key: "43el77" }]
1651
1645
  ];
1652
- const ImageOff = createLucideIcon("image-off", __iconNode$M);
1653
- const __iconNode$L = [
1646
+ const ImageOff = createLucideIcon("image-off", __iconNode$K);
1647
+ const __iconNode$J = [
1654
1648
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1655
1649
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
1656
1650
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
1657
1651
  ];
1658
- const Info$1 = createLucideIcon("info", __iconNode$L);
1659
- const __iconNode$K = [
1652
+ const Info$1 = createLucideIcon("info", __iconNode$J);
1653
+ const __iconNode$I = [
1660
1654
  ["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
1661
1655
  ["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
1662
1656
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
1663
1657
  ];
1664
- const Link2 = createLucideIcon("link-2", __iconNode$K);
1665
- const __iconNode$J = [
1658
+ const Link2 = createLucideIcon("link-2", __iconNode$I);
1659
+ const __iconNode$H = [
1666
1660
  ["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
1667
1661
  ["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
1668
1662
  ];
1669
- const Link = createLucideIcon("link", __iconNode$J);
1670
- const __iconNode$I = [
1663
+ const Link = createLucideIcon("link", __iconNode$H);
1664
+ const __iconNode$G = [
1671
1665
  ["path", { d: "M16 5H3", key: "m91uny" }],
1672
1666
  ["path", { d: "M11 12H3", key: "51ecnj" }],
1673
1667
  ["path", { d: "M16 19H3", key: "zzsher" }],
1674
1668
  ["path", { d: "M21 12h-6", key: "bt1uis" }]
1675
1669
  ];
1676
- const ListMinus = createLucideIcon("list-minus", __iconNode$I);
1677
- const __iconNode$H = [
1670
+ const ListMinus = createLucideIcon("list-minus", __iconNode$G);
1671
+ const __iconNode$F = [
1678
1672
  ["path", { d: "M13 5h8", key: "a7qcls" }],
1679
1673
  ["path", { d: "M13 12h8", key: "h98zly" }],
1680
1674
  ["path", { d: "M13 19h8", key: "c3s6r1" }],
1681
1675
  ["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
1682
1676
  ["rect", { x: "3", y: "4", width: "6", height: "6", rx: "1", key: "cif1o7" }]
1683
1677
  ];
1684
- const ListTodo = createLucideIcon("list-todo", __iconNode$H);
1685
- const __iconNode$G = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
1686
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$G);
1687
- const __iconNode$F = [
1678
+ const ListTodo = createLucideIcon("list-todo", __iconNode$F);
1679
+ const __iconNode$E = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
1680
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$E);
1681
+ const __iconNode$D = [
1688
1682
  ["path", { d: "M12 2v4", key: "3427ic" }],
1689
1683
  ["path", { d: "m16.2 7.8 2.9-2.9", key: "r700ao" }],
1690
1684
  ["path", { d: "M18 12h4", key: "wj9ykh" }],
@@ -1694,15 +1688,15 @@ const __iconNode$F = [
1694
1688
  ["path", { d: "M2 12h4", key: "j09sii" }],
1695
1689
  ["path", { d: "m4.9 4.9 2.9 2.9", key: "giyufr" }]
1696
1690
  ];
1697
- const Loader = createLucideIcon("loader", __iconNode$F);
1698
- const __iconNode$E = [
1691
+ const Loader = createLucideIcon("loader", __iconNode$D);
1692
+ const __iconNode$C = [
1699
1693
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
1700
1694
  ["path", { d: "m21 3-7 7", key: "1l2asr" }],
1701
1695
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
1702
1696
  ["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
1703
1697
  ];
1704
- const Maximize2 = createLucideIcon("maximize-2", __iconNode$E);
1705
- const __iconNode$D = [
1698
+ const Maximize2 = createLucideIcon("maximize-2", __iconNode$C);
1699
+ const __iconNode$B = [
1706
1700
  [
1707
1701
  "path",
1708
1702
  {
@@ -1711,37 +1705,27 @@ const __iconNode$D = [
1711
1705
  }
1712
1706
  ]
1713
1707
  ];
1714
- const MessageSquare = createLucideIcon("message-square", __iconNode$D);
1715
- const __iconNode$C = [
1708
+ const MessageSquare = createLucideIcon("message-square", __iconNode$B);
1709
+ const __iconNode$A = [
1716
1710
  ["path", { d: "m14 10 7-7", key: "oa77jy" }],
1717
1711
  ["path", { d: "M20 10h-6V4", key: "mjg0md" }],
1718
1712
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
1719
1713
  ["path", { d: "M4 14h6v6", key: "rmj7iw" }]
1720
1714
  ];
1721
- const Minimize2 = createLucideIcon("minimize-2", __iconNode$C);
1722
- const __iconNode$B = [["path", { d: "M5 12h14", key: "1ays0h" }]];
1723
- const Minus = createLucideIcon("minus", __iconNode$B);
1724
- const __iconNode$A = [
1715
+ const Minimize2 = createLucideIcon("minimize-2", __iconNode$A);
1716
+ const __iconNode$z = [["path", { d: "M5 12h14", key: "1ays0h" }]];
1717
+ const Minus = createLucideIcon("minus", __iconNode$z);
1718
+ const __iconNode$y = [
1725
1719
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1726
1720
  ["path", { d: "M9 3v18", key: "fh3hqa" }]
1727
1721
  ];
1728
- const PanelLeft = createLucideIcon("panel-left", __iconNode$A);
1729
- const __iconNode$z = [
1722
+ const PanelLeft = createLucideIcon("panel-left", __iconNode$y);
1723
+ const __iconNode$x = [
1730
1724
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1731
1725
  ["path", { d: "M15 3v18", key: "14nvp0" }]
1732
1726
  ];
1733
- const PanelRight = createLucideIcon("panel-right", __iconNode$z);
1734
- const __iconNode$y = [
1735
- [
1736
- "path",
1737
- {
1738
- d: "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",
1739
- key: "1miecu"
1740
- }
1741
- ]
1742
- ];
1743
- const Paperclip = createLucideIcon("paperclip", __iconNode$y);
1744
- const __iconNode$x = [
1727
+ const PanelRight = createLucideIcon("panel-right", __iconNode$x);
1728
+ const __iconNode$w = [
1745
1729
  [
1746
1730
  "path",
1747
1731
  {
@@ -1751,8 +1735,8 @@ const __iconNode$x = [
1751
1735
  ],
1752
1736
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }]
1753
1737
  ];
1754
- const Pencil = createLucideIcon("pencil", __iconNode$x);
1755
- const __iconNode$w = [
1738
+ const Pencil = createLucideIcon("pencil", __iconNode$w);
1739
+ const __iconNode$v = [
1756
1740
  ["path", { d: "M12 17v5", key: "bb1du9" }],
1757
1741
  ["path", { d: "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89", key: "znwnzq" }],
1758
1742
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
@@ -1764,8 +1748,8 @@ const __iconNode$w = [
1764
1748
  }
1765
1749
  ]
1766
1750
  ];
1767
- const PinOff = createLucideIcon("pin-off", __iconNode$w);
1768
- const __iconNode$v = [
1751
+ const PinOff = createLucideIcon("pin-off", __iconNode$v);
1752
+ const __iconNode$u = [
1769
1753
  ["path", { d: "M12 17v5", key: "bb1du9" }],
1770
1754
  [
1771
1755
  "path",
@@ -1775,8 +1759,8 @@ const __iconNode$v = [
1775
1759
  }
1776
1760
  ]
1777
1761
  ];
1778
- const Pin = createLucideIcon("pin", __iconNode$v);
1779
- const __iconNode$u = [
1762
+ const Pin = createLucideIcon("pin", __iconNode$u);
1763
+ const __iconNode$t = [
1780
1764
  [
1781
1765
  "path",
1782
1766
  {
@@ -1785,27 +1769,27 @@ const __iconNode$u = [
1785
1769
  }
1786
1770
  ]
1787
1771
  ];
1788
- const Play = createLucideIcon("play", __iconNode$u);
1789
- const __iconNode$t = [
1772
+ const Play = createLucideIcon("play", __iconNode$t);
1773
+ const __iconNode$s = [
1790
1774
  ["path", { d: "M5 12h14", key: "1ays0h" }],
1791
1775
  ["path", { d: "M12 5v14", key: "s699le" }]
1792
1776
  ];
1793
- const Plus = createLucideIcon("plus", __iconNode$t);
1794
- const __iconNode$s = [
1777
+ const Plus = createLucideIcon("plus", __iconNode$s);
1778
+ const __iconNode$r = [
1795
1779
  ["path", { d: "M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "14sxne" }],
1796
1780
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
1797
1781
  ["path", { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16", key: "1hlbsb" }],
1798
1782
  ["path", { d: "M16 16h5v5", key: "ccwih5" }]
1799
1783
  ];
1800
- const RefreshCcw = createLucideIcon("refresh-ccw", __iconNode$s);
1801
- const __iconNode$r = [
1784
+ const RefreshCcw = createLucideIcon("refresh-ccw", __iconNode$r);
1785
+ const __iconNode$q = [
1802
1786
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
1803
1787
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
1804
1788
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
1805
1789
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
1806
1790
  ];
1807
- const RefreshCw = createLucideIcon("refresh-cw", __iconNode$r);
1808
- const __iconNode$q = [
1791
+ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$q);
1792
+ const __iconNode$p = [
1809
1793
  ["path", { d: "M17 3v10", key: "15fgeh" }],
1810
1794
  ["path", { d: "m12.67 5.5 8.66 5", key: "1gpheq" }],
1811
1795
  ["path", { d: "m12.67 10.5 8.66-5", key: "1dkfa6" }],
@@ -1814,23 +1798,23 @@ const __iconNode$q = [
1814
1798
  { 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" }
1815
1799
  ]
1816
1800
  ];
1817
- const Regex = createLucideIcon("regex", __iconNode$q);
1818
- const __iconNode$p = [
1801
+ const Regex = createLucideIcon("regex", __iconNode$p);
1802
+ const __iconNode$o = [
1819
1803
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
1820
1804
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
1821
1805
  ];
1822
- const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$p);
1823
- const __iconNode$o = [
1806
+ const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$o);
1807
+ const __iconNode$n = [
1824
1808
  ["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8", key: "1p45f6" }],
1825
1809
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }]
1826
1810
  ];
1827
- const RotateCw = createLucideIcon("rotate-cw", __iconNode$o);
1828
- const __iconNode$n = [
1811
+ const RotateCw = createLucideIcon("rotate-cw", __iconNode$n);
1812
+ const __iconNode$m = [
1829
1813
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1830
1814
  ["path", { d: "M3 12h18", key: "1i2n21" }]
1831
1815
  ];
1832
- const Rows2 = createLucideIcon("rows-2", __iconNode$n);
1833
- const __iconNode$m = [
1816
+ const Rows2 = createLucideIcon("rows-2", __iconNode$m);
1817
+ const __iconNode$l = [
1834
1818
  [
1835
1819
  "path",
1836
1820
  {
@@ -1841,28 +1825,15 @@ const __iconNode$m = [
1841
1825
  ["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
1842
1826
  ["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
1843
1827
  ];
1844
- const Save = createLucideIcon("save", __iconNode$m);
1845
- const __iconNode$l = [
1828
+ const Save = createLucideIcon("save", __iconNode$l);
1829
+ const __iconNode$k = [
1846
1830
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
1847
1831
  ["path", { d: "M8.12 8.12 12 12", key: "1alkpv" }],
1848
1832
  ["path", { d: "M20 4 8.12 15.88", key: "xgtan2" }],
1849
1833
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
1850
1834
  ["path", { d: "M14.8 14.8 20 20", key: "ptml3r" }]
1851
1835
  ];
1852
- const Scissors = createLucideIcon("scissors", __iconNode$l);
1853
- const __iconNode$k = [
1854
- ["path", { d: "M15 12h-5", key: "r7krc0" }],
1855
- ["path", { d: "M15 8h-5", key: "1khuty" }],
1856
- ["path", { d: "M19 17V5a2 2 0 0 0-2-2H4", key: "zz82l3" }],
1857
- [
1858
- "path",
1859
- {
1860
- d: "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",
1861
- key: "1ph1d7"
1862
- }
1863
- ]
1864
- ];
1865
- const ScrollText = createLucideIcon("scroll-text", __iconNode$k);
1836
+ const Scissors = createLucideIcon("scissors", __iconNode$k);
1866
1837
  const __iconNode$j = [
1867
1838
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
1868
1839
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
@@ -7782,7 +7753,7 @@ var Anchor2$1 = MenuAnchor;
7782
7753
  var Portal$3 = MenuPortal;
7783
7754
  var Content2$5 = MenuContent;
7784
7755
  var Group = MenuGroup;
7785
- var Label$3 = MenuLabel;
7756
+ var Label$4 = MenuLabel;
7786
7757
  var Item2$2 = MenuItem;
7787
7758
  var CheckboxItem = MenuCheckboxItem;
7788
7759
  var RadioGroup = MenuRadioGroup;
@@ -7949,7 +7920,7 @@ var ContextMenuLabel$1 = reactExports.forwardRef(
7949
7920
  (props, forwardedRef) => {
7950
7921
  const { __scopeContextMenu, ...labelProps } = props;
7951
7922
  const menuScope = useMenuScope$1(__scopeContextMenu);
7952
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Label$3, { ...menuScope, ...labelProps, ref: forwardedRef });
7923
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Label$4, { ...menuScope, ...labelProps, ref: forwardedRef });
7953
7924
  }
7954
7925
  );
7955
7926
  ContextMenuLabel$1.displayName = LABEL_NAME$2;
@@ -8204,7 +8175,7 @@ var DropdownMenuLabel$1 = reactExports.forwardRef(
8204
8175
  (props, forwardedRef) => {
8205
8176
  const { __scopeDropdownMenu, ...labelProps } = props;
8206
8177
  const menuScope = useMenuScope(__scopeDropdownMenu);
8207
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Label$3, { ...menuScope, ...labelProps, ref: forwardedRef });
8178
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Label$4, { ...menuScope, ...labelProps, ref: forwardedRef });
8208
8179
  }
8209
8180
  );
8210
8181
  DropdownMenuLabel$1.displayName = LABEL_NAME$1;
@@ -8318,7 +8289,7 @@ var Sub2 = DropdownMenuSub$1;
8318
8289
  var SubTrigger2 = DropdownMenuSubTrigger$1;
8319
8290
  var SubContent2 = DropdownMenuSubContent$1;
8320
8291
  var NAME = "Label";
8321
- var Label$2 = reactExports.forwardRef((props, forwardedRef) => {
8292
+ var Label$3 = reactExports.forwardRef((props, forwardedRef) => {
8322
8293
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
8323
8294
  Primitive.label,
8324
8295
  {
@@ -8333,8 +8304,8 @@ var Label$2 = reactExports.forwardRef((props, forwardedRef) => {
8333
8304
  }
8334
8305
  );
8335
8306
  });
8336
- Label$2.displayName = NAME;
8337
- var Root$2 = Label$2;
8307
+ Label$3.displayName = NAME;
8308
+ var Root$2 = Label$3;
8338
8309
  function clamp$2(value, [min2, max2]) {
8339
8310
  return Math.min(max2, Math.max(min2, value));
8340
8311
  }
@@ -14487,6 +14458,9 @@ function Input({ className, type: type2, ...props }) {
14487
14458
  }
14488
14459
  );
14489
14460
  }
14461
+ const POPPER_MAX_HEIGHT = "max-h-[min(var(--popper-max-height,100dvh),calc(var(--radix-popper-available-height)/var(--app-zoom,1)))]";
14462
+ const POPPER_MAX_WIDTH = "max-w-[calc(var(--radix-popper-available-width)/var(--app-zoom,1))]";
14463
+ const POPPER_TRIGGER_WIDTH = "min-w-[calc(var(--radix-popper-anchor-width)/var(--app-zoom,1))]";
14490
14464
  function Popover({ ...props }) {
14491
14465
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Root2$1, { "data-slot": "popover", ...props });
14492
14466
  }
@@ -14509,7 +14483,9 @@ function PopoverContent({
14509
14483
  align,
14510
14484
  sideOffset,
14511
14485
  className: cn$2(
14512
- "ease-out duration-150 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
14486
+ "ease-out duration-150 z-50 w-72 origin-(--radix-popover-content-transform-origin) overflow-y-auto rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
14487
+ POPPER_MAX_HEIGHT,
14488
+ POPPER_MAX_WIDTH,
14513
14489
  className
14514
14490
  ),
14515
14491
  ...props
@@ -14932,10 +14908,10 @@ const DIALOG_CONTENT_VARIANTS = {
14932
14908
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
14933
14909
  // Mobile (< lg): bottom drawer
14934
14910
  "inset-x-0 bottom-0 w-full max-w-none rounded-t-2xl border border-b-0 p-6",
14935
- "max-h-[calc(100dvh-env(safe-area-inset-top)-1.5rem)]",
14911
+ "max-h-[calc(100dvh/var(--app-zoom,1)-env(safe-area-inset-top)-1.5rem)]",
14936
14912
  "max-lg:data-[state=open]:slide-in-from-bottom max-lg:data-[state=closed]:slide-out-to-bottom",
14937
14913
  // Desktop (lg+): revert to the centred modal
14938
- "lg:inset-auto lg:top-[50%] lg:left-[50%] lg:bottom-auto lg:w-full lg:max-w-lg lg:max-h-[85vh] lg:translate-x-[-50%] lg:translate-y-[-50%] lg:rounded-lg lg:border-b",
14914
+ "lg:inset-auto lg:top-[50%] lg:left-[50%] lg:bottom-auto lg:w-full lg:max-w-lg lg:max-h-[calc(85vh/var(--app-zoom,1))] lg:translate-x-[-50%] lg:translate-y-[-50%] lg:rounded-lg lg:border-b",
14939
14915
  "lg:data-[state=open]:zoom-in-95 lg:data-[state=closed]:zoom-out-95"
14940
14916
  ].join(" "),
14941
14917
  "command-palette": [
@@ -14951,13 +14927,13 @@ const DIALOG_CONTENT_VARIANTS = {
14951
14927
  // floats at `bottom: var(--kb-inset)` (keyboard height; 0 when closed) so
14952
14928
  // the input clears the on-screen keyboard — see `useKeyboardInset`.
14953
14929
  "inset-x-0 bottom-[var(--kb-inset,0px)] w-full max-w-none rounded-t-2xl border border-b-0",
14954
- "max-h-[calc(100dvh-var(--kb-inset,0px)-env(safe-area-inset-top)-1.5rem)]",
14930
+ "max-h-[calc(100dvh/var(--app-zoom,1)-var(--kb-inset,0px)-env(safe-area-inset-top)-1.5rem)]",
14955
14931
  "max-lg:[&_[data-slot=command]]:flex-col-reverse",
14956
14932
  "max-lg:[&_[cmdk-input-wrapper]]:border-t max-lg:[&_[cmdk-input-wrapper]]:border-b-0",
14957
14933
  "max-lg:data-[state=open]:slide-in-from-bottom max-lg:data-[state=closed]:slide-out-to-bottom",
14958
14934
  // Desktop (lg+): anchored in the upper third by its TOP edge — no
14959
14935
  // `translate-y`, so the input never moves as the list grows downward.
14960
- "lg:inset-x-auto lg:bottom-auto lg:top-[12vh] lg:left-1/2 lg:w-full lg:max-w-lg lg:max-h-[70vh] lg:-translate-x-1/2 lg:rounded-lg lg:border"
14936
+ "lg:inset-x-auto lg:bottom-auto lg:top-[calc(12vh/var(--app-zoom,1))] lg:left-1/2 lg:w-full lg:max-w-lg lg:max-h-[calc(70vh/var(--app-zoom,1))] lg:-translate-x-1/2 lg:rounded-lg lg:border"
14961
14937
  ].join(" ")
14962
14938
  };
14963
14939
  const keyboardInsetHolders = /* @__PURE__ */ new Set();
@@ -15219,7 +15195,8 @@ function ContextMenuContent({
15219
15195
  if (event.button === 2) event.stopPropagation();
15220
15196
  },
15221
15197
  className: cn$2(
15222
- "ease-out duration-150 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15198
+ "ease-out duration-150 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15199
+ POPPER_MAX_HEIGHT,
15223
15200
  className
15224
15201
  ),
15225
15202
  ...props
@@ -15281,7 +15258,9 @@ function ContextMenuSubContent({
15281
15258
  {
15282
15259
  "data-slot": "context-menu-sub-content",
15283
15260
  className: cn$2(
15284
- "ease-out duration-150 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15261
+ "ease-out duration-150 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15262
+ POPPER_MAX_HEIGHT,
15263
+ POPPER_MAX_WIDTH,
15285
15264
  className
15286
15265
  ),
15287
15266
  ...props
@@ -15350,7 +15329,8 @@ function DropdownMenuContent({
15350
15329
  "data-slot": "dropdown-menu-content",
15351
15330
  sideOffset,
15352
15331
  className: cn$2(
15353
- "ease-out duration-150 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15332
+ "ease-out duration-150 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15333
+ POPPER_MAX_HEIGHT,
15354
15334
  className
15355
15335
  ),
15356
15336
  ...props
@@ -15476,7 +15456,9 @@ function DropdownMenuSubContent({
15476
15456
  {
15477
15457
  "data-slot": "dropdown-menu-sub-content",
15478
15458
  className: cn$2(
15479
- "ease-out duration-150 z-50 max-h-(--radix-dropdown-menu-content-available-height) max-w-(--radix-dropdown-menu-content-available-width) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15459
+ "ease-out duration-150 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15460
+ POPPER_MAX_HEIGHT,
15461
+ POPPER_MAX_WIDTH,
15480
15462
  className
15481
15463
  ),
15482
15464
  ...props
@@ -15496,7 +15478,7 @@ function Textarea({ className, ...props }) {
15496
15478
  }
15497
15479
  );
15498
15480
  }
15499
- function Label$1({ className, ...props }) {
15481
+ function Label$2({ className, ...props }) {
15500
15482
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
15501
15483
  Root$2,
15502
15484
  {
@@ -15603,7 +15585,8 @@ function SelectContent({
15603
15585
  // Mirror DropdownMenuContent so dropdowns and selects render
15604
15586
  // identically (popover surface, explicit border-border so the
15605
15587
  // outline doesn't fall back to currentColor).
15606
- "ease-out duration-150 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15588
+ "ease-out duration-150 relative z-50 min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
15589
+ position2 === "popper" && POPPER_MAX_HEIGHT,
15607
15590
  position2 === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
15608
15591
  className
15609
15592
  ),
@@ -15612,10 +15595,7 @@ function SelectContent({
15612
15595
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
15613
15596
  Viewport$1,
15614
15597
  {
15615
- className: cn$2(
15616
- "p-1",
15617
- position2 === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
15618
- ),
15598
+ className: cn$2("p-1", position2 === "popper" && ["w-full", POPPER_TRIGGER_WIDTH]),
15619
15599
  children: children2
15620
15600
  }
15621
15601
  )
@@ -21022,7 +21002,7 @@ function AddProjectDialog({ open: open2, onOpenChange, defaultLabel }) {
21022
21002
  /* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: "Add a folder to manage its workspaces. Git repositories enable branches and PRs; plain folders work too, with a single implicit workspace." })
21023
21003
  ] }),
21024
21004
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid gap-3 py-4", children: [
21025
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "project-path", children: "Folder path" }),
21005
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "project-path", children: "Folder path" }),
21026
21006
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [
21027
21007
  /* @__PURE__ */ jsxRuntimeExports.jsx(
21028
21008
  Input,
@@ -32126,7 +32106,7 @@ function bindHandler(plugin22, handler) {
32126
32106
  }
32127
32107
  function computeHandlers(plugins2) {
32128
32108
  let result = /* @__PURE__ */ Object.create(null);
32129
- function record(type2) {
32109
+ function record2(type2) {
32130
32110
  return result[type2] || (result[type2] = { observers: [], handlers: [] });
32131
32111
  }
32132
32112
  for (let plugin22 of plugins2) {
@@ -32135,19 +32115,19 @@ function computeHandlers(plugins2) {
32135
32115
  for (let type2 in handlers2) {
32136
32116
  let f2 = handlers2[type2];
32137
32117
  if (f2)
32138
- record(type2).handlers.push(bindHandler(plugin22.value, f2));
32118
+ record2(type2).handlers.push(bindHandler(plugin22.value, f2));
32139
32119
  }
32140
32120
  if (observers2)
32141
32121
  for (let type2 in observers2) {
32142
32122
  let f2 = observers2[type2];
32143
32123
  if (f2)
32144
- record(type2).observers.push(bindHandler(plugin22.value, f2));
32124
+ record2(type2).observers.push(bindHandler(plugin22.value, f2));
32145
32125
  }
32146
32126
  }
32147
32127
  for (let type2 in handlers$1)
32148
- record(type2).handlers.push(handlers$1[type2]);
32128
+ record2(type2).handlers.push(handlers$1[type2]);
32149
32129
  for (let type2 in observers)
32150
- record(type2).observers.push(observers[type2]);
32130
+ record2(type2).observers.push(observers[type2]);
32151
32131
  return result;
32152
32132
  }
32153
32133
  const PendingKeys = [
@@ -33996,15 +33976,15 @@ function findPosition({ total, ranges }, ratio) {
33996
33976
  }
33997
33977
  }
33998
33978
  function findFraction(structure, pos) {
33999
- let counted = 0;
33979
+ let counted2 = 0;
34000
33980
  for (let { from: from2, to: to2 } of structure.ranges) {
34001
33981
  if (pos <= to2) {
34002
- counted += pos - from2;
33982
+ counted2 += pos - from2;
34003
33983
  break;
34004
33984
  }
34005
- counted += to2 - from2;
33985
+ counted2 += to2 - from2;
34006
33986
  }
34007
- return counted / structure.total;
33987
+ return counted2 / structure.total;
34008
33988
  }
34009
33989
  function find$2(array2, f2) {
34010
33990
  for (let val of array2)
@@ -34676,8 +34656,8 @@ class DOMObserver {
34676
34656
  if (records.length)
34677
34657
  this.queue = [];
34678
34658
  let from2 = -1, to2 = -1, typeOver = false;
34679
- for (let record of records) {
34680
- let range2 = this.readMutation(record);
34659
+ for (let record2 of records) {
34660
+ let range2 = this.readMutation(record2);
34681
34661
  if (!range2)
34682
34662
  continue;
34683
34663
  if (range2.typeOver)
@@ -39961,7 +39941,7 @@ function getStyleTags(node2) {
39961
39941
  return rule || null;
39962
39942
  }
39963
39943
  const t$1 = Tag.define;
39964
- const comment$5 = t$1(), name$1 = t$1(), typeName = t$1(name$1), propertyName = t$1(name$1), literal = t$1(), string$2 = t$1(literal), number$4 = t$1(literal), content$2 = t$1(), heading$3 = t$1(content$2), keyword = t$1(), operator = t$1(), punctuation$1 = t$1(), bracket = t$1(punctuation$1), meta = t$1();
39944
+ const comment$5 = t$1(), name$1 = t$1(), typeName = t$1(name$1), propertyName = t$1(name$1), literal = t$1(), string$2 = t$1(literal), number$5 = t$1(literal), content$2 = t$1(), heading$3 = t$1(content$2), keyword = t$1(), operator = t$1(), punctuation$1 = t$1(), bracket = t$1(punctuation$1), meta = t$1();
39965
39945
  const tags$2 = {
39966
39946
  /**
39967
39947
  A comment.
@@ -40042,15 +40022,15 @@ const tags$2 = {
40042
40022
  /**
40043
40023
  A number [literal](#highlight.tags.literal).
40044
40024
  */
40045
- number: number$4,
40025
+ number: number$5,
40046
40026
  /**
40047
40027
  An integer [number](#highlight.tags.number) literal.
40048
40028
  */
40049
- integer: t$1(number$4),
40029
+ integer: t$1(number$5),
40050
40030
  /**
40051
40031
  A floating-point [number](#highlight.tags.number) literal.
40052
40032
  */
40053
- float: t$1(number$4),
40033
+ float: t$1(number$5),
40054
40034
  /**
40055
40035
  A boolean [literal](#highlight.tags.literal).
40056
40036
  */
@@ -46207,41 +46187,41 @@ async function loadLanguage(lang) {
46207
46187
  (m2) => m2.javascript({ jsx: true, typescript: true })
46208
46188
  );
46209
46189
  case "python":
46210
- return import("./index-DKZU081P.js").then((m2) => m2.python());
46190
+ return import("./index-KTMc95HN.js").then((m2) => m2.python());
46211
46191
  case "html":
46212
46192
  return Promise.resolve().then(() => index$2).then((m2) => m2.html());
46213
46193
  case "css":
46214
46194
  return Promise.resolve().then(() => index$4).then((m2) => m2.css());
46215
46195
  case "scss":
46216
46196
  case "sass":
46217
- return import("./index-C1sJw8Wd.js").then((m2) => m2.sass());
46197
+ return import("./index-B-VeeFTd.js").then((m2) => m2.sass());
46218
46198
  case "less":
46219
- return import("./index-CPWcRp4N.js").then((m2) => m2.less());
46199
+ return import("./index-CklLNUhb.js").then((m2) => m2.less());
46220
46200
  case "json":
46221
46201
  case "jsonc":
46222
- return import("./index-CvQ9Ebcc.js").then((m2) => m2.json());
46202
+ return import("./index-CXm0C-yc.js").then((m2) => m2.json());
46223
46203
  case "markdown":
46224
46204
  case "mdx":
46225
46205
  return Promise.resolve().then(() => index$1).then((m2) => m2.markdown());
46226
46206
  case "xml":
46227
- return import("./index-BbZG02I3.js").then((m2) => m2.xml());
46207
+ return import("./index-SeV-ZdZi.js").then((m2) => m2.xml());
46228
46208
  case "yaml":
46229
- return import("./index-CGb2LUtT.js").then((m2) => m2.yaml());
46209
+ return import("./index-dS3n7bt3.js").then((m2) => m2.yaml());
46230
46210
  case "sql":
46231
- return import("./index-DYrcmtj8.js").then((m2) => m2.sql());
46211
+ return import("./index-BmH5PL3t.js").then((m2) => m2.sql());
46232
46212
  case "rust":
46233
- return import("./index-Z2HsI7K-.js").then((m2) => m2.rust());
46213
+ return import("./index-BQEmg9fY.js").then((m2) => m2.rust());
46234
46214
  case "go":
46235
- return import("./index-BdUQ01QB.js").then((m2) => m2.go());
46215
+ return import("./index-BVY32Ndh.js").then((m2) => m2.go());
46236
46216
  case "java":
46237
- return import("./index-BDjoQgaj.js").then((m2) => m2.java());
46217
+ return import("./index-CoOBJObR.js").then((m2) => m2.java());
46238
46218
  case "kotlin":
46239
- return import("./index-BDjoQgaj.js").then((m2) => m2.java());
46219
+ return import("./index-CoOBJObR.js").then((m2) => m2.java());
46240
46220
  case "c":
46241
46221
  case "cpp":
46242
- return import("./index-BcHVcca2.js").then((m2) => m2.cpp());
46222
+ return import("./index-DOtn1sP2.js").then((m2) => m2.cpp());
46243
46223
  case "php":
46244
- return import("./index-BuEcvcgH.js").then((m2) => m2.php());
46224
+ return import("./index-BtAQWAP4.js").then((m2) => m2.php());
46245
46225
  // Legacy modes via StreamLanguage
46246
46226
  case "bash":
46247
46227
  case "fish":
@@ -53349,10 +53329,10 @@ function renumberList(after, doc2, changes, offset2 = 0) {
53349
53329
  }
53350
53330
  }
53351
53331
  function normalizeIndent(content2, state2) {
53352
- let blank = /^[ \t]*/.exec(content2)[0].length;
53353
- if (!blank || state2.facet(indentUnit) != " ")
53332
+ let blank2 = /^[ \t]*/.exec(content2)[0].length;
53333
+ if (!blank2 || state2.facet(indentUnit) != " ")
53354
53334
  return content2;
53355
- let col = countColumn(content2, 4, blank);
53335
+ let col = countColumn(content2, 4, blank2);
53356
53336
  let space2 = "";
53357
53337
  for (let i2 = col; i2 > 0; ) {
53358
53338
  if (i2 >= 4) {
@@ -53363,7 +53343,7 @@ function normalizeIndent(content2, state2) {
53363
53343
  i2--;
53364
53344
  }
53365
53345
  }
53366
- return space2 + content2.slice(blank);
53346
+ return space2 + content2.slice(blank2);
53367
53347
  }
53368
53348
  const insertNewlineContinueMarkupCommand = (config2 = {}) => ({ state: state2, dispatch: dispatch2 }) => {
53369
53349
  let tree = syntaxTree(state2), { doc: doc2 } = state2;
@@ -54802,10 +54782,13 @@ class TableEditor {
54802
54782
  this.menu = { el: menu, close: close2 };
54803
54783
  host.appendChild(menu);
54804
54784
  const hostRect = host.getBoundingClientRect();
54785
+ const scale = host.offsetWidth > 0 ? hostRect.width / host.offsetWidth : 1;
54786
+ const hostWidth = host.offsetWidth;
54805
54787
  const width = menu.offsetWidth;
54806
- let left = (alignEnd ? anchor2.right - width : anchor2.left) - hostRect.left;
54807
- const top2 = anchor2.bottom - hostRect.top + 4;
54808
- if (left + width > hostRect.width - 8) left = Math.max(8, hostRect.width - width - 8);
54788
+ let left = ((alignEnd ? anchor2.right : anchor2.left) - hostRect.left) / scale;
54789
+ if (alignEnd) left -= width;
54790
+ const top2 = (anchor2.bottom - hostRect.top) / scale + 4;
54791
+ if (left + width > hostWidth - 8) left = Math.max(8, hostWidth - width - 8);
54809
54792
  menu.style.left = `${left}px`;
54810
54793
  menu.style.top = `${top2}px`;
54811
54794
  buttons.find((b2) => !b2.disabled)?.focus();
@@ -56543,17 +56526,17 @@ function CommandPaletteDialog({ open: open2, onOpenChange, commands }) {
56543
56526
  ) });
56544
56527
  }
56545
56528
  const obstructions = /* @__PURE__ */ new Set();
56546
- const listeners$3 = /* @__PURE__ */ new Set();
56529
+ const listeners$4 = /* @__PURE__ */ new Set();
56547
56530
  function changed() {
56548
- for (const listener2 of listeners$3) listener2();
56531
+ for (const listener2 of listeners$4) listener2();
56549
56532
  }
56550
56533
  function toastObstructions() {
56551
56534
  return obstructions;
56552
56535
  }
56553
56536
  function subscribeToastObstructions(listener2) {
56554
- listeners$3.add(listener2);
56537
+ listeners$4.add(listener2);
56555
56538
  return () => {
56556
- listeners$3.delete(listener2);
56539
+ listeners$4.delete(listener2);
56557
56540
  };
56558
56541
  }
56559
56542
  function useToastObstruction() {
@@ -59712,11 +59695,11 @@ function useRect(element2, measure, fallbackRect2) {
59712
59695
  if (!element2) {
59713
59696
  return;
59714
59697
  }
59715
- for (const record of records) {
59698
+ for (const record2 of records) {
59716
59699
  const {
59717
59700
  type: type2,
59718
59701
  target
59719
- } = record;
59702
+ } = record2;
59720
59703
  if (type2 === "childList" && target instanceof HTMLElement && target.contains(element2)) {
59721
59704
  measureRect();
59722
59705
  break;
@@ -61957,7 +61940,7 @@ function NewWorkspaceDialog({ projectName, open: open2, onOpenChange }) {
61957
61940
  ] })
61958
61941
  ] }),
61959
61942
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid gap-3 py-4", children: [
61960
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "branch-name", children: "Branch name" }),
61943
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "branch-name", children: "Branch name" }),
61961
61944
  /* @__PURE__ */ jsxRuntimeExports.jsx(
61962
61945
  Input,
61963
61946
  {
@@ -61976,7 +61959,7 @@ function NewWorkspaceDialog({ projectName, open: open2, onOpenChange }) {
61976
61959
  /* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: slug })
61977
61960
  ] }),
61978
61961
  slugError && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-destructive", children: slugError }),
61979
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "base-branch", children: "Base branch (optional)" }),
61962
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "base-branch", children: "Base branch (optional)" }),
61980
61963
  /* @__PURE__ */ jsxRuntimeExports.jsx(
61981
61964
  Input,
61982
61965
  {
@@ -61989,7 +61972,7 @@ function NewWorkspaceDialog({ projectName, open: open2, onOpenChange }) {
61989
61972
  spellCheck: false
61990
61973
  }
61991
61974
  ),
61992
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "initial-prompt", children: "Initial prompt (optional)" }),
61975
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "initial-prompt", children: "Initial prompt (optional)" }),
61993
61976
  /* @__PURE__ */ jsxRuntimeExports.jsx(
61994
61977
  Textarea,
61995
61978
  {
@@ -62130,13 +62113,15 @@ function pullRequestTone(pr2, ciState) {
62130
62113
  }
62131
62114
  }
62132
62115
  const TONE_CLASS = {
62133
- failure: "text-red-600 dark:text-red-400",
62134
- pending: "text-yellow-700 dark:text-yellow-400",
62135
- success: "text-green-700 dark:text-green-400",
62136
- neutral: "text-muted-foreground",
62137
- merged: "text-violet-600 dark:text-violet-400",
62138
- closed: "text-muted-foreground line-through"
62139
- };
62116
+ failure: "text-red-600 border-red-600/40 bg-red-500/10 dark:text-red-400 dark:border-red-400/40",
62117
+ pending: "text-yellow-700 border-yellow-600/50 bg-yellow-500/10 dark:text-yellow-400 dark:border-yellow-400/40",
62118
+ success: "text-green-700 border-green-600/40 bg-green-500/10 dark:text-green-400 dark:border-green-400/40",
62119
+ neutral: "text-muted-foreground border-border bg-muted/50",
62120
+ merged: "text-violet-600 border-violet-600/40 bg-violet-500/10 dark:text-violet-400 dark:border-violet-400/40",
62121
+ closed: "text-muted-foreground border-border bg-muted/50 line-through"
62122
+ };
62123
+ const TAG_CLASS = "inline-flex items-center rounded border px-1 py-px leading-none";
62124
+ const NUMBER_CLASS = `${TAG_CLASS} text-[11px] font-semibold tabular-nums`;
62140
62125
  function statusLabel(pr2, ciState) {
62141
62126
  if (pr2.state === "merged") return "Merged";
62142
62127
  if (pr2.state === "closed") return "Closed";
@@ -62198,7 +62183,7 @@ function PullRequestBadge({ pr: pr2, ciState, onOpenChecks }) {
62198
62183
  "aria-expanded": open2,
62199
62184
  "data-testid": "workspace-card__pr-badge",
62200
62185
  "data-tone": tone,
62201
- className: `shrink-0 rounded-sm px-0.5 text-[11px] font-semibold leading-none tabular-nums outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring ${TONE_CLASS[tone]}`,
62186
+ className: `shrink-0 outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring ${NUMBER_CLASS} ${TONE_CLASS[tone]}`,
62202
62187
  onPointerEnter: (e3) => {
62203
62188
  if (e3.pointerType !== "touch") setOpenAfter(true, OPEN_DELAY_MS);
62204
62189
  },
@@ -62273,7 +62258,8 @@ function PullRequestBadge({ pr: pr2, ciState, onOpenChecks }) {
62273
62258
  "span",
62274
62259
  {
62275
62260
  "data-testid": "pr-popover__number",
62276
- className: `font-semibold tabular-nums ${TONE_CLASS[tone]}`,
62261
+ "data-tone": tone,
62262
+ className: `${NUMBER_CLASS} ${TONE_CLASS[tone]}`,
62277
62263
  children: [
62278
62264
  "#",
62279
62265
  pr2.number
@@ -62284,7 +62270,7 @@ function PullRequestBadge({ pr: pr2, ciState, onOpenChecks }) {
62284
62270
  "span",
62285
62271
  {
62286
62272
  "data-testid": "pr-popover__draft",
62287
- className: "rounded-sm border border-border px-1 text-[10px] font-medium text-muted-foreground",
62273
+ className: `${TAG_CLASS} border-border text-[10px] font-medium text-muted-foreground`,
62288
62274
  children: "Draft"
62289
62275
  }
62290
62276
  ),
@@ -62693,11 +62679,11 @@ function SortableProject({
62693
62679
  }
62694
62680
  ),
62695
62681
  labels.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Sub3, { children: [
62696
- /* @__PURE__ */ jsxRuntimeExports.jsxs(SubTrigger3, { children: [
62682
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(SubTrigger3, { "data-testid": "project-list__action--set-label", children: [
62697
62683
  /* @__PURE__ */ jsxRuntimeExports.jsx(Tag$1, {}),
62698
62684
  "Set label"
62699
62685
  ] }),
62700
- /* @__PURE__ */ jsxRuntimeExports.jsx(Portal3, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(SubContent3, { children: [
62686
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Portal3, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(SubContent3, { "data-testid": "project-list__label-submenu", children: [
62701
62687
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Item3, { onClick: () => updateProjectLabel(project.name, null), children: [
62702
62688
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1", children: "None" }),
62703
62689
  !project.label && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3" })
@@ -65126,44 +65112,6 @@ function useRestartTerminalDaemon() {
65126
65112
  }
65127
65113
  });
65128
65114
  }
65129
- const EXPERIMENTAL_FLAG_KEYS = {
65130
- contextMeter: "band.experimental.context-meter"
65131
- };
65132
- function readFlag(key2) {
65133
- if (typeof window === "undefined") return false;
65134
- return window.localStorage.getItem(key2) === "true";
65135
- }
65136
- function writeFlag(key2, value) {
65137
- if (typeof window === "undefined") return;
65138
- window.localStorage.setItem(key2, value ? "true" : "false");
65139
- window.dispatchEvent(new CustomEvent("band:experimental-flag-change", { detail: { key: key2 } }));
65140
- }
65141
- function useExperimentalFlag(key2) {
65142
- const [enabled, setEnabled] = reactExports.useState(() => readFlag(key2));
65143
- reactExports.useEffect(() => {
65144
- const sync = (e3) => {
65145
- if (e3 instanceof CustomEvent && e3.detail?.key !== key2) return;
65146
- setEnabled(readFlag(key2));
65147
- };
65148
- window.addEventListener("band:experimental-flag-change", sync);
65149
- window.addEventListener("storage", sync);
65150
- return () => {
65151
- window.removeEventListener("band:experimental-flag-change", sync);
65152
- window.removeEventListener("storage", sync);
65153
- };
65154
- }, [key2]);
65155
- const set2 = reactExports.useCallback(
65156
- (value) => {
65157
- writeFlag(key2, value);
65158
- setEnabled(value);
65159
- },
65160
- [key2]
65161
- );
65162
- return [enabled, set2];
65163
- }
65164
- function useExperimentalContextMeter() {
65165
- return useExperimentalFlag(EXPERIMENTAL_FLAG_KEYS.contextMeter);
65166
- }
65167
65115
  function RestartTerminalDaemonDialog({ open: open2, onOpenChange, onConfirm, busy }) {
65168
65116
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange: (next2) => !busy && onOpenChange(next2), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
65169
65117
  DialogContent,
@@ -65244,7 +65192,7 @@ function SettingsRow({
65244
65192
  className
65245
65193
  }) {
65246
65194
  const labelBlock = (label || description) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [
65247
- label ? /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor, className: "text-sm font-medium leading-tight text-foreground", children: label }) : null,
65195
+ label ? /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor, className: "text-sm font-medium leading-tight text-foreground", children: label }) : null,
65248
65196
  description ? /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs leading-snug text-muted-foreground", children: description }) : null
65249
65197
  ] });
65250
65198
  if (variant === "stacked") {
@@ -65481,7 +65429,6 @@ function SettingsPage({ open: open2, onOpenChange }) {
65481
65429
  settings.usagePollingEnabled ?? true
65482
65430
  );
65483
65431
  const [agentModels, setAgentModels] = reactExports.useState({});
65484
- const [contextMeterEnabled, setContextMeterEnabled] = useExperimentalContextMeter();
65485
65432
  const adapter2 = useAdapter();
65486
65433
  const mergeAgentModels = reactExports.useCallback(
65487
65434
  (agentId, patch2) => setAgentModels((prev2) => ({
@@ -65706,7 +65653,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
65706
65653
  DialogContent,
65707
65654
  {
65708
65655
  variant: "bottom-sheet",
65709
- className: "flex flex-col gap-0 overflow-hidden p-0 lg:h-[80vh] lg:max-w-2xl",
65656
+ className: "flex flex-col gap-0 overflow-hidden p-0 lg:h-[calc(80vh/var(--app-zoom,1))] lg:max-w-2xl",
65710
65657
  children: [
65711
65658
  /* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Settings" }) }),
65712
65659
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-6 px-6 pb-6", children: [
@@ -66025,22 +65972,6 @@ function SettingsPage({ open: open2, onOpenChange }) {
66025
65972
  )
66026
65973
  }
66027
65974
  ),
66028
- /* @__PURE__ */ jsxRuntimeExports.jsx(
66029
- SettingsRow,
66030
- {
66031
- htmlFor: "agents-context-meter",
66032
- label: "Context window meter",
66033
- description: "Show a context-usage donut next to the session-history button in the chat input. Token counting accuracy varies by agent — disable if numbers look wrong.",
66034
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
66035
- Switch,
66036
- {
66037
- id: "agents-context-meter",
66038
- checked: contextMeterEnabled,
66039
- onCheckedChange: setContextMeterEnabled
66040
- }
66041
- )
66042
- }
66043
- ),
66044
65975
  /* @__PURE__ */ jsxRuntimeExports.jsx(Accordion, { type: "multiple", className: "w-full", children: KNOWN_AGENTS.map((known) => {
66045
65976
  const agent = codingAgents.find((a2) => a2.type === known.type);
66046
65977
  const enabled = !!agent;
@@ -66108,7 +66039,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
66108
66039
  ] }),
66109
66040
  /* @__PURE__ */ jsxRuntimeExports.jsxs(AccordionContent, { className: "space-y-2.5 px-4 pb-3 pl-11", children: [
66110
66041
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
66111
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { className: "text-xs text-muted-foreground", children: "Command" }),
66042
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { className: "text-xs text-muted-foreground", children: "Command" }),
66112
66043
  /* @__PURE__ */ jsxRuntimeExports.jsx(
66113
66044
  Input,
66114
66045
  {
@@ -66126,7 +66057,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
66126
66057
  ] }),
66127
66058
  agent && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
66128
66059
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
66129
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Label$1, { className: "text-xs text-muted-foreground", children: [
66060
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Label$2, { className: "text-xs text-muted-foreground", children: [
66130
66061
  "Models ",
66131
66062
  models.length > 0 && `(${models.length})`
66132
66063
  ] }),
@@ -66188,7 +66119,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
66188
66119
  ] })
66189
66120
  ] }),
66190
66121
  agent && models.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
66191
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { className: "text-xs text-muted-foreground", children: "Default model" }),
66122
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { className: "text-xs text-muted-foreground", children: "Default model" }),
66192
66123
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
66193
66124
  Select,
66194
66125
  {
@@ -66533,7 +66464,7 @@ function DashboardShell({
66533
66464
  if (!(e3.metaKey || e3.ctrlKey) || e3.altKey || e3.shiftKey) return;
66534
66465
  if (e3.key < "0" || e3.key > "9") return;
66535
66466
  const target = e3.target;
66536
- if (target) {
66467
+ if (target && !e3.metaKey) {
66537
66468
  const tag2 = target.tagName;
66538
66469
  if (tag2 === "INPUT" || tag2 === "TEXTAREA" || tag2 === "SELECT" || target.isContentEditable) {
66539
66470
  return;
@@ -70324,7 +70255,7 @@ function ImagePreview$1({ src, alt }) {
70324
70255
  {
70325
70256
  src,
70326
70257
  alt,
70327
- className: "max-h-[70vh] max-w-full object-contain",
70258
+ className: "max-h-[calc(70vh/var(--app-zoom,1))] max-w-full object-contain",
70328
70259
  onError: () => setError(true),
70329
70260
  onLoad: (e3) => {
70330
70261
  const img = e3.currentTarget;
@@ -71035,10 +70966,10 @@ function FileViewer({
71035
70966
  ] })
71036
70967
  );
71037
70968
  }
71038
- function resolveRelativePath(dir, relative) {
70969
+ function resolveRelativePath(dir, relative2) {
71039
70970
  let decoded;
71040
70971
  try {
71041
- decoded = decodeURIComponent(relative);
70972
+ decoded = decodeURIComponent(relative2);
71042
70973
  } catch {
71043
70974
  return null;
71044
70975
  }
@@ -78516,7 +78447,7 @@ function fixPrompt(branch, review, failing) {
78516
78447
  "Read the failing job logs (for example with `gh run view <run-id> --log-failed`), fix the causes, run the relevant checks locally, and push the fix."
78517
78448
  ].join("\n");
78518
78449
  }
78519
- function useNow(ticking) {
78450
+ function useNow$1(ticking) {
78520
78451
  const [now2, setNow] = reactExports.useState(() => Date.now());
78521
78452
  reactExports.useEffect(() => {
78522
78453
  if (!ticking) return;
@@ -78535,7 +78466,7 @@ function ChecksSection({
78535
78466
  }) {
78536
78467
  const host = useClientPluginHost();
78537
78468
  const [open2, setOpen] = reactExports.useState(true);
78538
- const now2 = useNow(visible && open2 && checks2.checks.some(isCountingUp));
78469
+ const now2 = useNow$1(visible && open2 && checks2.checks.some(isCountingUp));
78539
78470
  const [fixState, setFixState] = reactExports.useState("idle");
78540
78471
  const [fixError, setFixError] = reactExports.useState(null);
78541
78472
  if (checks2.checks.length === 0) {
@@ -79327,7 +79258,7 @@ function SectionHeader({
79327
79258
  actions,
79328
79259
  onViewAll
79329
79260
  }) {
79330
- const Chevron = collapsed ? ChevronRight : ChevronDown;
79261
+ const Chevron2 = collapsed ? ChevronRight : ChevronDown;
79331
79262
  return (
79332
79263
  // The icon actions appear on hover or keyboard focus, as in VS Code, so a
79333
79264
  // narrow panel keeps room for the label; devices without hover always
@@ -79342,7 +79273,7 @@ function SectionHeader({
79342
79273
  "data-testid": "changes-section__toggle",
79343
79274
  className: "flex h-full min-w-0 flex-1 items-center gap-1 text-left text-[11px] font-semibold tracking-wide text-muted-foreground uppercase",
79344
79275
  children: [
79345
- /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron, { className: "size-3.5 shrink-0" }),
79276
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3.5 shrink-0" }),
79346
79277
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: SECTION_LABELS[section] }),
79347
79278
  /* @__PURE__ */ jsxRuntimeExports.jsx(
79348
79279
  "span",
@@ -79675,7 +79606,7 @@ const CommitRow = reactExports.memo(function CommitRow2({
79675
79606
  const { commit } = row2;
79676
79607
  const visibleRefs = commit.refs.slice(0, 2);
79677
79608
  const hiddenRefs = commit.refs.slice(2);
79678
- const Chevron = expanded ? ChevronDown : ChevronRight;
79609
+ const Chevron2 = expanded ? ChevronDown : ChevronRight;
79679
79610
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
79680
79611
  "button",
79681
79612
  {
@@ -79690,7 +79621,7 @@ ${commit.sha.slice(0, 7)} · ${commit.author}`,
79690
79621
  children: [
79691
79622
  /* @__PURE__ */ jsxRuntimeExports.jsx(CommitGraphSlice, { row: row2 }),
79692
79623
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex min-w-0 items-center gap-1", children: [
79693
- /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron, { className: "size-3 shrink-0 text-muted-foreground" }),
79624
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3 shrink-0 text-muted-foreground" }),
79694
79625
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate text-foreground", children: commit.subject })
79695
79626
  ] }),
79696
79627
  commit.refs.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex shrink-0 items-center gap-1 overflow-hidden", children: [
@@ -79897,7 +79828,7 @@ function CommitsPanel({
79897
79828
  void reloadHistory();
79898
79829
  }, [collapsed, toggleCollapsed, refetchSignature, reloadHistory]);
79899
79830
  const count2 = rows.length;
79900
- const Chevron = collapsed ? ChevronRight : ChevronDown;
79831
+ const Chevron2 = collapsed ? ChevronRight : ChevronDown;
79901
79832
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative shrink-0 border-t border-border", "data-testid": "commits-panel", children: [
79902
79833
  !collapsed && /* @__PURE__ */ jsxRuntimeExports.jsx(
79903
79834
  "div",
@@ -79917,7 +79848,7 @@ function CommitsPanel({
79917
79848
  "data-testid": "commits-panel__toggle",
79918
79849
  className: "flex h-full min-w-0 flex-1 items-center gap-1 text-left text-[11px] font-semibold tracking-wide text-muted-foreground uppercase",
79919
79850
  children: [
79920
- /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron, { className: "size-3.5 shrink-0" }),
79851
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3.5 shrink-0" }),
79921
79852
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Commits" }),
79922
79853
  pages && /* @__PURE__ */ jsxRuntimeExports.jsxs(
79923
79854
  "span",
@@ -80147,7 +80078,7 @@ function CheckMark({ visible }) {
80147
80078
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: visible ? "size-3.5" : "size-3.5 invisible" });
80148
80079
  }
80149
80080
  const states = /* @__PURE__ */ new Map();
80150
- const listeners$2 = /* @__PURE__ */ new Map();
80081
+ const listeners$3 = /* @__PURE__ */ new Map();
80151
80082
  const EMPTY_STATE = Object.freeze({ openFilePath: null });
80152
80083
  function getPerWorkspaceState(workspaceId) {
80153
80084
  return states.get(workspaceId) ?? EMPTY_STATE;
@@ -80157,19 +80088,19 @@ function setPerWorkspaceState(workspaceId, patch2) {
80157
80088
  const next2 = { ...prev2, ...patch2 };
80158
80089
  if (prev2.currentFile === next2.currentFile && prev2.openFilePath === next2.openFilePath) return;
80159
80090
  states.set(workspaceId, next2);
80160
- const set2 = listeners$2.get(workspaceId);
80091
+ const set2 = listeners$3.get(workspaceId);
80161
80092
  if (set2) for (const cb of set2) cb();
80162
80093
  }
80163
80094
  function subscribePerWorkspaceState(workspaceId, cb) {
80164
- let set2 = listeners$2.get(workspaceId);
80095
+ let set2 = listeners$3.get(workspaceId);
80165
80096
  if (!set2) {
80166
80097
  set2 = /* @__PURE__ */ new Set();
80167
- listeners$2.set(workspaceId, set2);
80098
+ listeners$3.set(workspaceId, set2);
80168
80099
  }
80169
80100
  set2.add(cb);
80170
80101
  return () => {
80171
80102
  set2?.delete(cb);
80172
- if (set2 && set2.size === 0) listeners$2.delete(workspaceId);
80103
+ if (set2 && set2.size === 0) listeners$3.delete(workspaceId);
80173
80104
  };
80174
80105
  }
80175
80106
  function clearPerWorkspaceState(workspaceId) {
@@ -96344,10 +96275,11 @@ function createTerminalOutputQueue(write2) {
96344
96275
  flush() {
96345
96276
  if (state2.overflowed) return false;
96346
96277
  if (!pending$1.delete(state2)) return true;
96347
- const chunks = state2.chunks;
96348
- state2.chunks = [];
96349
- state2.bytes = 0;
96350
- for (const chunk of chunks) writeChunk(state2, chunk.data, chunk.callbacks);
96278
+ while (canWriteForeground(state2)) writeForeground(state2);
96279
+ if (state2.chunks.length > 0) {
96280
+ foregroundPending.add(state2);
96281
+ scheduleForegroundDrain();
96282
+ }
96351
96283
  return true;
96352
96284
  },
96353
96285
  clear() {
@@ -96989,6 +96921,12 @@ function createEntry(terminalId, opts) {
96989
96921
  term.unicode.activeVersion = "11";
96990
96922
  const fit = new XFitAddon();
96991
96923
  term.loadAddon(fit);
96924
+ let lastFitBox = null;
96925
+ const fitToBox = () => {
96926
+ fit.fit();
96927
+ lastFitBox = liveContainer ? { width: liveContainer.clientWidth, height: liveContainer.clientHeight } : null;
96928
+ };
96929
+ const boxResizedSinceFit = () => !lastFitBox || !liveContainer || liveContainer.clientWidth !== lastFitBox.width || liveContainer.clientHeight !== lastFitBox.height;
96992
96930
  term.loadAddon(new XWebLinksAddon((_event, uri) => openExternalUrl(uri)));
96993
96931
  const fileLinkProviderDisposable = term.registerLinkProvider(
96994
96932
  createTerminalFileLinkProvider(term, (filename) => {
@@ -97406,7 +97344,7 @@ function createEntry(terminalId, opts) {
97406
97344
  };
97407
97345
  const fittedDims = () => {
97408
97346
  if (!attached || !hostIsVisible()) return null;
97409
- fit.fit();
97347
+ fitToBox();
97410
97348
  if (term.cols <= 0 || term.rows <= 0) return null;
97411
97349
  return { cols: term.cols, rows: term.rows };
97412
97350
  };
@@ -97430,7 +97368,7 @@ function createEntry(terminalId, opts) {
97430
97368
  reconcileRafId = requestAnimationFrame(() => {
97431
97369
  reconcileRafId = null;
97432
97370
  if (!attached || !hostIsVisible()) return;
97433
- fit.fit();
97371
+ fitToBox();
97434
97372
  sendPtyResize();
97435
97373
  });
97436
97374
  };
@@ -97454,7 +97392,7 @@ function createEntry(terminalId, opts) {
97454
97392
  webglAddon = null;
97455
97393
  attachWebGL();
97456
97394
  }
97457
- fit.fit();
97395
+ fitToBox();
97458
97396
  };
97459
97397
  const handleDprChange = () => {
97460
97398
  const currentDpr = window.devicePixelRatio;
@@ -97473,7 +97411,8 @@ function createEntry(terminalId, opts) {
97473
97411
  }
97474
97412
  if (awaitingReplay) return;
97475
97413
  const dprChanged = handleDprChange();
97476
- if (!dprChanged) fit.fit();
97414
+ if (!dprChanged && !boxResizedSinceFit()) return;
97415
+ if (!dprChanged) fitToBox();
97477
97416
  sendPtyResize();
97478
97417
  });
97479
97418
  resizeObserver.observe(wrapper);
@@ -97499,12 +97438,13 @@ function createEntry(terminalId, opts) {
97499
97438
  if (!attached || !hostIsVisible()) return;
97500
97439
  const dprChanged = handleDprChange();
97501
97440
  if (!dprChanged) {
97502
- if (webglSuspect && useWebGL) {
97441
+ const rebuild = webglSuspect && useWebGL;
97442
+ if (rebuild) {
97503
97443
  webglAddon?.dispose();
97504
97444
  webglAddon = null;
97505
97445
  attachWebGL();
97506
97446
  }
97507
- fit.fit();
97447
+ if (webglSuspect || boxResizedSinceFit()) fitToBox();
97508
97448
  }
97509
97449
  webglSuspect = false;
97510
97450
  if (term.rows > 0) term.refresh(0, term.rows - 1);
@@ -97582,7 +97522,15 @@ function createEntry(terminalId, opts) {
97582
97522
  scheduleParkingPass();
97583
97523
  if (attachOpts?.autoFocus) autoFocusPending = true;
97584
97524
  if (wrapper.parentElement !== container) container.appendChild(wrapper);
97585
- scheduleRepair();
97525
+ if (hostIsVisible()) {
97526
+ if (repairRafId !== null) {
97527
+ cancelAnimationFrame(repairRafId);
97528
+ repairRafId = null;
97529
+ }
97530
+ repairAndFit();
97531
+ } else {
97532
+ scheduleRepair();
97533
+ }
97586
97534
  },
97587
97535
  detach() {
97588
97536
  if (destroyed) return;
@@ -97818,7 +97766,7 @@ function reconcileTerminalWorkspaces(validWorkspaceIds, activeWorkspaceId) {
97818
97766
  function hasTerminal(terminalId) {
97819
97767
  return getCache().has(terminalId);
97820
97768
  }
97821
- const DEFAULT_OPTIONS = {
97769
+ const DEFAULT_OPTIONS$1 = {
97822
97770
  caseSensitive: false,
97823
97771
  wholeWord: false,
97824
97772
  regex: false
@@ -97826,7 +97774,7 @@ const DEFAULT_OPTIONS = {
97826
97774
  function useBrowserFindInPage(webview) {
97827
97775
  const [isOpen, setIsOpen] = reactExports.useState(false);
97828
97776
  const [query, setQuery] = reactExports.useState("");
97829
- const [options, setOptions] = reactExports.useState(DEFAULT_OPTIONS);
97777
+ const [options, setOptions] = reactExports.useState(DEFAULT_OPTIONS$1);
97830
97778
  const [matchInfo, setMatchInfo] = reactExports.useState(null);
97831
97779
  const searchBarRef = reactExports.useRef(null);
97832
97780
  const webviewRef = reactExports.useRef(webview);
@@ -98080,13 +98028,13 @@ function useBrowserPaneControls(args) {
98080
98028
  };
98081
98029
  }
98082
98030
  let hosts = /* @__PURE__ */ new Set();
98083
- const listeners$1 = /* @__PURE__ */ new Set();
98031
+ const listeners$2 = /* @__PURE__ */ new Set();
98084
98032
  let bootstrapped = false;
98085
98033
  function setHosts(updater) {
98086
98034
  const next2 = updater(hosts);
98087
98035
  if (next2 === hosts) return;
98088
98036
  hosts = next2;
98089
- for (const cb of listeners$1) cb();
98037
+ for (const cb of listeners$2) cb();
98090
98038
  }
98091
98039
  function addHost(raw2) {
98092
98040
  const h2 = raw2.toLowerCase();
@@ -98114,18 +98062,18 @@ function bootstrap() {
98114
98062
  console.error("browser_get_overridden_hosts failed:", err);
98115
98063
  });
98116
98064
  }
98117
- function subscribe(cb) {
98065
+ function subscribe$1(cb) {
98118
98066
  bootstrap();
98119
- listeners$1.add(cb);
98067
+ listeners$2.add(cb);
98120
98068
  return () => {
98121
- listeners$1.delete(cb);
98069
+ listeners$2.delete(cb);
98122
98070
  };
98123
98071
  }
98124
98072
  function getSnapshot() {
98125
98073
  return hosts;
98126
98074
  }
98127
98075
  function useOverriddenHosts() {
98128
- const currentHosts = reactExports.useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
98076
+ const currentHosts = reactExports.useSyncExternalStore(subscribe$1, getSnapshot, getSnapshot);
98129
98077
  const isOverriddenHost = reactExports.useCallback(
98130
98078
  (currentUrl) => {
98131
98079
  if (!currentUrl) return false;
@@ -100782,7 +100730,7 @@ let powers = 0;
100782
100730
  const boolean = increment();
100783
100731
  const booleanish = increment();
100784
100732
  const overloadedBoolean = increment();
100785
- const number$3 = increment();
100733
+ const number$4 = increment();
100786
100734
  const spaceSeparated = increment();
100787
100735
  const commaSeparated = increment();
100788
100736
  const commaOrSpaceSeparated = increment();
@@ -100795,7 +100743,7 @@ const types$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
100795
100743
  booleanish,
100796
100744
  commaOrSpaceSeparated,
100797
100745
  commaSeparated,
100798
- number: number$3,
100746
+ number: number$4,
100799
100747
  overloadedBoolean,
100800
100748
  spaceSeparated
100801
100749
  }, Symbol.toStringTag, { value: "Module" }));
@@ -100861,9 +100809,9 @@ const aria$1 = create$2({
100861
100809
  ariaAutoComplete: null,
100862
100810
  ariaBusy: booleanish,
100863
100811
  ariaChecked: booleanish,
100864
- ariaColCount: number$3,
100865
- ariaColIndex: number$3,
100866
- ariaColSpan: number$3,
100812
+ ariaColCount: number$4,
100813
+ ariaColIndex: number$4,
100814
+ ariaColSpan: number$4,
100867
100815
  ariaControls: spaceSeparated,
100868
100816
  ariaCurrent: null,
100869
100817
  ariaDescribedBy: spaceSeparated,
@@ -100880,7 +100828,7 @@ const aria$1 = create$2({
100880
100828
  ariaKeyShortcuts: null,
100881
100829
  ariaLabel: null,
100882
100830
  ariaLabelledBy: spaceSeparated,
100883
- ariaLevel: number$3,
100831
+ ariaLevel: number$4,
100884
100832
  ariaLive: null,
100885
100833
  ariaModal: booleanish,
100886
100834
  ariaMultiLine: booleanish,
@@ -100888,21 +100836,21 @@ const aria$1 = create$2({
100888
100836
  ariaOrientation: null,
100889
100837
  ariaOwns: spaceSeparated,
100890
100838
  ariaPlaceholder: null,
100891
- ariaPosInSet: number$3,
100839
+ ariaPosInSet: number$4,
100892
100840
  ariaPressed: booleanish,
100893
100841
  ariaReadOnly: booleanish,
100894
100842
  ariaRelevant: null,
100895
100843
  ariaRequired: booleanish,
100896
100844
  ariaRoleDescription: spaceSeparated,
100897
- ariaRowCount: number$3,
100898
- ariaRowIndex: number$3,
100899
- ariaRowSpan: number$3,
100845
+ ariaRowCount: number$4,
100846
+ ariaRowIndex: number$4,
100847
+ ariaRowSpan: number$4,
100900
100848
  ariaSelected: booleanish,
100901
- ariaSetSize: number$3,
100849
+ ariaSetSize: number$4,
100902
100850
  ariaSort: null,
100903
- ariaValueMax: number$3,
100904
- ariaValueMin: number$3,
100905
- ariaValueNow: number$3,
100851
+ ariaValueMax: number$4,
100852
+ ariaValueMin: number$4,
100853
+ ariaValueNow: number$4,
100906
100854
  ariaValueText: null,
100907
100855
  role: null
100908
100856
  },
@@ -100948,13 +100896,13 @@ const html$7 = create$2({
100948
100896
  checked: boolean,
100949
100897
  cite: null,
100950
100898
  className: spaceSeparated,
100951
- cols: number$3,
100899
+ cols: number$4,
100952
100900
  colSpan: null,
100953
100901
  content: null,
100954
100902
  contentEditable: booleanish,
100955
100903
  controls: boolean,
100956
100904
  controlsList: spaceSeparated,
100957
- coords: number$3 | commaSeparated,
100905
+ coords: number$4 | commaSeparated,
100958
100906
  crossOrigin: null,
100959
100907
  data: null,
100960
100908
  dateTime: null,
@@ -100976,9 +100924,9 @@ const html$7 = create$2({
100976
100924
  formNoValidate: boolean,
100977
100925
  formTarget: null,
100978
100926
  headers: spaceSeparated,
100979
- height: number$3,
100927
+ height: number$4,
100980
100928
  hidden: overloadedBoolean,
100981
- high: number$3,
100929
+ high: number$4,
100982
100930
  href: null,
100983
100931
  hrefLang: null,
100984
100932
  htmlFor: spaceSeparated,
@@ -101003,14 +100951,14 @@ const html$7 = create$2({
101003
100951
  list: null,
101004
100952
  loading: null,
101005
100953
  loop: boolean,
101006
- low: number$3,
100954
+ low: number$4,
101007
100955
  manifest: null,
101008
100956
  max: null,
101009
- maxLength: number$3,
100957
+ maxLength: number$4,
101010
100958
  media: null,
101011
100959
  method: null,
101012
100960
  min: null,
101013
- minLength: number$3,
100961
+ minLength: number$4,
101014
100962
  multiple: boolean,
101015
100963
  muted: boolean,
101016
100964
  name: null,
@@ -101106,7 +101054,7 @@ const html$7 = create$2({
101106
101054
  onWaiting: null,
101107
101055
  onWheel: null,
101108
101056
  open: boolean,
101109
- optimum: number$3,
101057
+ optimum: number$4,
101110
101058
  pattern: null,
101111
101059
  ping: spaceSeparated,
101112
101060
  placeholder: null,
@@ -101121,8 +101069,8 @@ const html$7 = create$2({
101121
101069
  rel: spaceSeparated,
101122
101070
  required: boolean,
101123
101071
  reversed: boolean,
101124
- rows: number$3,
101125
- rowSpan: number$3,
101072
+ rows: number$4,
101073
+ rowSpan: number$4,
101126
101074
  sandbox: spaceSeparated,
101127
101075
  scope: null,
101128
101076
  scoped: boolean,
@@ -101132,19 +101080,19 @@ const html$7 = create$2({
101132
101080
  shadowRootDelegatesFocus: boolean,
101133
101081
  shadowRootMode: null,
101134
101082
  shape: null,
101135
- size: number$3,
101083
+ size: number$4,
101136
101084
  sizes: null,
101137
101085
  slot: null,
101138
- span: number$3,
101086
+ span: number$4,
101139
101087
  spellCheck: booleanish,
101140
101088
  src: null,
101141
101089
  srcDoc: null,
101142
101090
  srcLang: null,
101143
101091
  srcSet: null,
101144
- start: number$3,
101092
+ start: number$4,
101145
101093
  step: null,
101146
101094
  style: null,
101147
- tabIndex: number$3,
101095
+ tabIndex: number$4,
101148
101096
  target: null,
101149
101097
  title: null,
101150
101098
  translate: null,
@@ -101152,7 +101100,7 @@ const html$7 = create$2({
101152
101100
  typeMustMatch: boolean,
101153
101101
  useMap: null,
101154
101102
  value: booleanish,
101155
- width: number$3,
101103
+ width: number$4,
101156
101104
  wrap: null,
101157
101105
  writingSuggestions: null,
101158
101106
  // Legacy.
@@ -101169,11 +101117,11 @@ const html$7 = create$2({
101169
101117
  // `<body>`. Use CSS `background-image` instead
101170
101118
  bgColor: null,
101171
101119
  // `<body>` and table elements. Use CSS `background-color` instead
101172
- border: number$3,
101120
+ border: number$4,
101173
101121
  // `<table>`. Use CSS `border-width` instead,
101174
101122
  borderColor: null,
101175
101123
  // `<table>`. Use CSS `border-color` instead,
101176
- bottomMargin: number$3,
101124
+ bottomMargin: number$4,
101177
101125
  // `<body>`
101178
101126
  cellPadding: null,
101179
101127
  // `<table>`
@@ -101207,9 +101155,9 @@ const html$7 = create$2({
101207
101155
  // `<table>`
101208
101156
  frameBorder: null,
101209
101157
  // `<iframe>`. Use CSS `border` instead
101210
- hSpace: number$3,
101158
+ hSpace: number$4,
101211
101159
  // `<img>` and `<object>`
101212
- leftMargin: number$3,
101160
+ leftMargin: number$4,
101213
101161
  // `<body>`
101214
101162
  link: null,
101215
101163
  // `<body>`. Use CSS `a:link {color: *}` instead
@@ -101217,9 +101165,9 @@ const html$7 = create$2({
101217
101165
  // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
101218
101166
  lowSrc: null,
101219
101167
  // `<img>`. Use a `<picture>`
101220
- marginHeight: number$3,
101168
+ marginHeight: number$4,
101221
101169
  // `<body>`
101222
- marginWidth: number$3,
101170
+ marginWidth: number$4,
101223
101171
  // `<body>`
101224
101172
  noResize: boolean,
101225
101173
  // `<frame>`
@@ -101237,7 +101185,7 @@ const html$7 = create$2({
101237
101185
  // `<isindex>`
101238
101186
  rev: null,
101239
101187
  // `<link>`
101240
- rightMargin: number$3,
101188
+ rightMargin: number$4,
101241
101189
  // `<body>`
101242
101190
  rules: null,
101243
101191
  // `<table>`
@@ -101251,7 +101199,7 @@ const html$7 = create$2({
101251
101199
  // `<table>`
101252
101200
  text: null,
101253
101201
  // `<body>`. Use CSS `color` instead
101254
- topMargin: number$3,
101202
+ topMargin: number$4,
101255
101203
  // `<body>`
101256
101204
  valueType: null,
101257
101205
  // `<param>`
@@ -101261,7 +101209,7 @@ const html$7 = create$2({
101261
101209
  // Several. Use CSS `vertical-align` instead
101262
101210
  vLink: null,
101263
101211
  // `<body>`. Use CSS `a:visited {color}` instead
101264
- vSpace: number$3,
101212
+ vSpace: number$4,
101265
101213
  // `<img>` and `<object>`
101266
101214
  // Non-standard Properties.
101267
101215
  allowTransparency: null,
@@ -101271,7 +101219,7 @@ const html$7 = create$2({
101271
101219
  disableRemotePlayback: boolean,
101272
101220
  prefix: null,
101273
101221
  property: null,
101274
- results: number$3,
101222
+ results: number$4,
101275
101223
  security: null,
101276
101224
  unselectable: null
101277
101225
  },
@@ -101456,27 +101404,27 @@ const svg$3 = create$2({
101456
101404
  },
101457
101405
  properties: {
101458
101406
  about: commaOrSpaceSeparated,
101459
- accentHeight: number$3,
101407
+ accentHeight: number$4,
101460
101408
  accumulate: null,
101461
101409
  additive: null,
101462
101410
  alignmentBaseline: null,
101463
- alphabetic: number$3,
101464
- amplitude: number$3,
101411
+ alphabetic: number$4,
101412
+ amplitude: number$4,
101465
101413
  arabicForm: null,
101466
- ascent: number$3,
101414
+ ascent: number$4,
101467
101415
  attributeName: null,
101468
101416
  attributeType: null,
101469
- azimuth: number$3,
101417
+ azimuth: number$4,
101470
101418
  bandwidth: null,
101471
101419
  baselineShift: null,
101472
101420
  baseFrequency: null,
101473
101421
  baseProfile: null,
101474
101422
  bbox: null,
101475
101423
  begin: null,
101476
- bias: number$3,
101424
+ bias: number$4,
101477
101425
  by: null,
101478
101426
  calcMode: null,
101479
- capHeight: number$3,
101427
+ capHeight: number$4,
101480
101428
  className: spaceSeparated,
101481
101429
  clip: null,
101482
101430
  clipPath: null,
@@ -101497,26 +101445,26 @@ const svg$3 = create$2({
101497
101445
  d: null,
101498
101446
  dataType: null,
101499
101447
  defaultAction: null,
101500
- descent: number$3,
101501
- diffuseConstant: number$3,
101448
+ descent: number$4,
101449
+ diffuseConstant: number$4,
101502
101450
  direction: null,
101503
101451
  display: null,
101504
101452
  dur: null,
101505
- divisor: number$3,
101453
+ divisor: number$4,
101506
101454
  dominantBaseline: null,
101507
101455
  download: boolean,
101508
101456
  dx: null,
101509
101457
  dy: null,
101510
101458
  edgeMode: null,
101511
101459
  editable: null,
101512
- elevation: number$3,
101460
+ elevation: number$4,
101513
101461
  enableBackground: null,
101514
101462
  end: null,
101515
101463
  event: null,
101516
- exponent: number$3,
101464
+ exponent: number$4,
101517
101465
  externalResourcesRequired: null,
101518
101466
  fill: null,
101519
- fillOpacity: number$3,
101467
+ fillOpacity: number$4,
101520
101468
  fillRule: null,
101521
101469
  filter: null,
101522
101470
  filterRes: null,
@@ -101546,27 +101494,27 @@ const svg$3 = create$2({
101546
101494
  gradientTransform: null,
101547
101495
  gradientUnits: null,
101548
101496
  handler: null,
101549
- hanging: number$3,
101497
+ hanging: number$4,
101550
101498
  hatchContentUnits: null,
101551
101499
  hatchUnits: null,
101552
101500
  height: null,
101553
101501
  href: null,
101554
101502
  hrefLang: null,
101555
- horizAdvX: number$3,
101556
- horizOriginX: number$3,
101557
- horizOriginY: number$3,
101503
+ horizAdvX: number$4,
101504
+ horizOriginX: number$4,
101505
+ horizOriginY: number$4,
101558
101506
  id: null,
101559
- ideographic: number$3,
101507
+ ideographic: number$4,
101560
101508
  imageRendering: null,
101561
101509
  initialVisibility: null,
101562
101510
  in: null,
101563
101511
  in2: null,
101564
- intercept: number$3,
101565
- k: number$3,
101566
- k1: number$3,
101567
- k2: number$3,
101568
- k3: number$3,
101569
- k4: number$3,
101512
+ intercept: number$4,
101513
+ k: number$4,
101514
+ k1: number$4,
101515
+ k2: number$4,
101516
+ k3: number$4,
101517
+ k4: number$4,
101570
101518
  kernelMatrix: commaOrSpaceSeparated,
101571
101519
  kernelUnitLength: null,
101572
101520
  keyPoints: null,
@@ -101580,7 +101528,7 @@ const svg$3 = create$2({
101580
101528
  lengthAdjust: null,
101581
101529
  letterSpacing: null,
101582
101530
  lightingColor: null,
101583
- limitingConeAngle: number$3,
101531
+ limitingConeAngle: number$4,
101584
101532
  local: null,
101585
101533
  markerEnd: null,
101586
101534
  markerMid: null,
@@ -101596,7 +101544,7 @@ const svg$3 = create$2({
101596
101544
  media: null,
101597
101545
  mediaCharacterEncoding: null,
101598
101546
  mediaContentEncodings: null,
101599
- mediaSize: number$3,
101547
+ mediaSize: number$4,
101600
101548
  mediaTime: null,
101601
101549
  method: null,
101602
101550
  min: null,
@@ -101702,12 +101650,12 @@ const svg$3 = create$2({
101702
101650
  origin: null,
101703
101651
  overflow: null,
101704
101652
  overlay: null,
101705
- overlinePosition: number$3,
101706
- overlineThickness: number$3,
101653
+ overlinePosition: number$4,
101654
+ overlineThickness: number$4,
101707
101655
  paintOrder: null,
101708
101656
  panose1: null,
101709
101657
  path: null,
101710
- pathLength: number$3,
101658
+ pathLength: number$4,
101711
101659
  patternContentUnits: null,
101712
101660
  patternTransform: null,
101713
101661
  patternUnits: null,
@@ -101717,9 +101665,9 @@ const svg$3 = create$2({
101717
101665
  playbackOrder: null,
101718
101666
  pointerEvents: null,
101719
101667
  points: null,
101720
- pointsAtX: number$3,
101721
- pointsAtY: number$3,
101722
- pointsAtZ: number$3,
101668
+ pointsAtX: number$4,
101669
+ pointsAtY: number$4,
101670
+ pointsAtZ: number$4,
101723
101671
  preserveAlpha: null,
101724
101672
  preserveAspectRatio: null,
101725
101673
  primitiveUnits: null,
@@ -101751,8 +101699,8 @@ const svg$3 = create$2({
101751
101699
  side: null,
101752
101700
  slope: null,
101753
101701
  snapshotTime: null,
101754
- specularConstant: number$3,
101755
- specularExponent: number$3,
101702
+ specularConstant: number$4,
101703
+ specularExponent: number$4,
101756
101704
  spreadMethod: null,
101757
101705
  spacing: null,
101758
101706
  startOffset: null,
@@ -101762,30 +101710,30 @@ const svg$3 = create$2({
101762
101710
  stitchTiles: null,
101763
101711
  stopColor: null,
101764
101712
  stopOpacity: null,
101765
- strikethroughPosition: number$3,
101766
- strikethroughThickness: number$3,
101713
+ strikethroughPosition: number$4,
101714
+ strikethroughThickness: number$4,
101767
101715
  string: null,
101768
101716
  stroke: null,
101769
101717
  strokeDashArray: commaOrSpaceSeparated,
101770
101718
  strokeDashOffset: null,
101771
101719
  strokeLineCap: null,
101772
101720
  strokeLineJoin: null,
101773
- strokeMiterLimit: number$3,
101774
- strokeOpacity: number$3,
101721
+ strokeMiterLimit: number$4,
101722
+ strokeOpacity: number$4,
101775
101723
  strokeWidth: null,
101776
101724
  style: null,
101777
- surfaceScale: number$3,
101725
+ surfaceScale: number$4,
101778
101726
  syncBehavior: null,
101779
101727
  syncBehaviorDefault: null,
101780
101728
  syncMaster: null,
101781
101729
  syncTolerance: null,
101782
101730
  syncToleranceDefault: null,
101783
101731
  systemLanguage: commaOrSpaceSeparated,
101784
- tabIndex: number$3,
101732
+ tabIndex: number$4,
101785
101733
  tableValues: null,
101786
101734
  target: null,
101787
- targetX: number$3,
101788
- targetY: number$3,
101735
+ targetX: number$4,
101736
+ targetY: number$4,
101789
101737
  textAnchor: null,
101790
101738
  textDecoration: null,
101791
101739
  textRendering: null,
@@ -101800,22 +101748,22 @@ const svg$3 = create$2({
101800
101748
  transformOrigin: null,
101801
101749
  u1: null,
101802
101750
  u2: null,
101803
- underlinePosition: number$3,
101804
- underlineThickness: number$3,
101751
+ underlinePosition: number$4,
101752
+ underlineThickness: number$4,
101805
101753
  unicode: null,
101806
101754
  unicodeBidi: null,
101807
101755
  unicodeRange: null,
101808
- unitsPerEm: number$3,
101756
+ unitsPerEm: number$4,
101809
101757
  values: null,
101810
- vAlphabetic: number$3,
101811
- vMathematical: number$3,
101758
+ vAlphabetic: number$4,
101759
+ vMathematical: number$4,
101812
101760
  vectorEffect: null,
101813
- vHanging: number$3,
101814
- vIdeographic: number$3,
101761
+ vHanging: number$4,
101762
+ vIdeographic: number$4,
101815
101763
  version: null,
101816
- vertAdvY: number$3,
101817
- vertOriginX: number$3,
101818
- vertOriginY: number$3,
101764
+ vertAdvY: number$4,
101765
+ vertOriginX: number$4,
101766
+ vertOriginY: number$4,
101819
101767
  viewBox: null,
101820
101768
  viewTarget: null,
101821
101769
  visibility: null,
@@ -101827,7 +101775,7 @@ const svg$3 = create$2({
101827
101775
  x1: null,
101828
101776
  x2: null,
101829
101777
  xChannelSelector: null,
101830
- xHeight: number$3,
101778
+ xHeight: number$4,
101831
101779
  y: null,
101832
101780
  y1: null,
101833
101781
  y2: null,
@@ -102031,13 +101979,13 @@ function isChild(value) {
102031
101979
  return true;
102032
101980
  }
102033
101981
  if (typeof value.type !== "string") return false;
102034
- const record = (
101982
+ const record2 = (
102035
101983
  /** @type {Record<string, unknown>} */
102036
101984
  value
102037
101985
  );
102038
101986
  const keys2 = Object.keys(value);
102039
101987
  for (const key2 of keys2) {
102040
- const value2 = record[key2];
101988
+ const value2 = record2[key2];
102041
101989
  if (value2 && typeof value2 === "object") {
102042
101990
  if (!Array.isArray(value2)) return true;
102043
101991
  const list2 = (
@@ -111575,11 +111523,11 @@ function gfmFootnoteToMarkdown(options) {
111575
111523
  return value;
111576
111524
  }
111577
111525
  }
111578
- function mapExceptFirst(line2, index2, blank) {
111579
- return index2 === 0 ? line2 : mapAll(line2, index2, blank);
111526
+ function mapExceptFirst(line2, index2, blank2) {
111527
+ return index2 === 0 ? line2 : mapAll(line2, index2, blank2);
111580
111528
  }
111581
- function mapAll(line2, index2, blank) {
111582
- return (blank ? "" : " ") + line2;
111529
+ function mapAll(line2, index2, blank2) {
111530
+ return (blank2 ? "" : " ") + line2;
111583
111531
  }
111584
111532
  const constructsWithoutStrikethrough = [
111585
111533
  "autolink",
@@ -111782,8 +111730,8 @@ function blockquote$1(node2, _2, state2, info2) {
111782
111730
  exit2();
111783
111731
  return value;
111784
111732
  }
111785
- function map$3(line2, _2, blank) {
111786
- return ">" + (blank ? "" : " ") + line2;
111733
+ function map$3(line2, _2, blank2) {
111734
+ return ">" + (blank2 ? "" : " ") + line2;
111787
111735
  }
111788
111736
  function patternInScope(stack, pattern) {
111789
111737
  return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);
@@ -111898,8 +111846,8 @@ function code$2(node2, _2, state2, info2) {
111898
111846
  exit2();
111899
111847
  return value;
111900
111848
  }
111901
- function map$2(line2, _2, blank) {
111902
- return (blank ? "" : " ") + line2;
111849
+ function map$2(line2, _2, blank2) {
111850
+ return (blank2 ? "" : " ") + line2;
111903
111851
  }
111904
111852
  function checkQuote(state2) {
111905
111853
  const marker = state2.options.quote || '"';
@@ -112517,11 +112465,11 @@ function listItem$1(node2, parent, state2, info2) {
112517
112465
  );
112518
112466
  exit2();
112519
112467
  return value;
112520
- function map2(line2, index2, blank) {
112468
+ function map2(line2, index2, blank2) {
112521
112469
  if (index2) {
112522
- return (blank ? "" : " ".repeat(size2)) + line2;
112470
+ return (blank2 ? "" : " ".repeat(size2)) + line2;
112523
112471
  }
112524
- return (blank ? bullet2 : bullet2 + " ".repeat(size2 - bullet2.length)) + line2;
112472
+ return (blank2 ? bullet2 : bullet2 + " ".repeat(size2 - bullet2.length)) + line2;
112525
112473
  }
112526
112474
  }
112527
112475
  function paragraph$1(node2, _2, state2, info2) {
@@ -125442,7 +125390,7 @@ var tn = f$5("block", "before:content-[counter(line)]", "before:inline-block", "
125442
125390
  var et$1 = ({ className: e3, language: t2, style: o3, isIncomplete: n2, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f$5("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e3), "data-incomplete": n2 || void 0, "data-language": t2, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o3 }, ...s2 });
125443
125391
  var Se$1 = reactExports.createContext({ code: "" }), de$2 = () => reactExports.useContext(Se$1);
125444
125392
  var ot$1 = ({ language: e3 }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e3, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e3 }) });
125445
- var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-BdiOjvlf.js").then((e3) => ({ default: e3.HighlightedCodeBlockBody }))), rt = ({ code: e3, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
125393
+ var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-C_Th2vxh.js").then((e3) => ({ default: e3.HighlightedCodeBlockBody }))), rt = ({ code: e3, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
125446
125394
  let i2 = reactExports.useMemo(() => e3.replace(cn, ""), [e3]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
125447
125395
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
125448
125396
  return jsxRuntimeExports.jsx(Se$1.Provider, { value: { code: e3 }, children: jsxRuntimeExports.jsxs(et$1, { isIncomplete: s2, language: t2, children: [jsxRuntimeExports.jsx(ot$1, { 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$1, { className: o3, language: t2, result: c2, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o3, code: i2, language: t2, raw: c2, ...r2 }) })] }) });
@@ -125764,7 +125712,7 @@ var Dt = ({ children: e3, className: t2, onDownload: o3, onError: n2 }) => {
125764
125712
  }, []), jsxRuntimeExports.jsxs("div", { className: "relative", ref: i2, children: [jsxRuntimeExports.jsx("button", { className: f$5("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: e3 != null ? e3 : jsxRuntimeExports.jsx(Z$2, { 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] });
125765
125713
  };
125766
125714
  var Vt = ({ children: e3, 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$5("w-full divide-y divide-border", t2), "data-streamdown": "table", ...n2, children: e3 }) })] });
125767
- var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-DrE5sAWk.js").then((e3) => ({ default: e3.Mermaid }))), Kn = /language-([^\s]+)/;
125715
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-BLpPLDqd.js").then((e3) => ({ default: e3.Mermaid }))), Kn = /language-([^\s]+)/;
125768
125716
  function ke$1(e3, t2) {
125769
125717
  if (!(e3 != null && e3.position || t2 != null && t2.position)) return true;
125770
125718
  if (!(e3 != null && e3.position && (t2 != null && t2.position))) return false;
@@ -126566,16 +126514,12 @@ ${fence}
126566
126514
  window.addEventListener("band:chat-insert", handler);
126567
126515
  return () => window.removeEventListener("band:chat-insert", handler);
126568
126516
  }, []);
126569
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
126517
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
126570
126518
  "form",
126571
126519
  {
126572
126520
  autoComplete: "off",
126573
126521
  "data-testid": "prompt-input__form",
126574
- className: cn$2(
126575
- "relative flex w-full flex-col rounded-md border-2 border-white/20 bg-muted/50 p-2 shadow-sm",
126576
- isDragging && "border-primary/50 bg-primary/5",
126577
- className
126578
- ),
126522
+ className: cn$2("relative flex w-full flex-col gap-1", className),
126579
126523
  onSubmit: handleSubmit,
126580
126524
  onDragOver: handleDragOver,
126581
126525
  onDragLeave: handleDragLeave,
@@ -126583,31 +126527,35 @@ ${fence}
126583
126527
  onPaste: handlePaste,
126584
126528
  ref: formRef,
126585
126529
  ...props,
126586
- children: [
126587
- fileEntries.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(PromptInputFiles, { entries: fileEntries, onRemove: removeFile }),
126588
- /* @__PURE__ */ jsxRuntimeExports.jsx(
126589
- PromptInputContext.Provider,
126590
- {
126591
- value: {
126592
- addFiles,
126593
- hasContent: hasText || fileEntries.length > 0,
126594
- onTextChange: handleInputChange,
126595
- inputValue,
126596
- textareaRef,
126597
- setTextareaValue,
126598
- commandHint,
126599
- setCommandHint
126600
- },
126601
- children: children2
126602
- }
126603
- )
126604
- ]
126530
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
126531
+ PromptInputContext.Provider,
126532
+ {
126533
+ value: {
126534
+ addFiles,
126535
+ fileEntries,
126536
+ removeFile,
126537
+ isDragging,
126538
+ hasContent: hasText || fileEntries.length > 0,
126539
+ onTextChange: handleInputChange,
126540
+ inputValue,
126541
+ textareaRef,
126542
+ setTextareaValue,
126543
+ commandHint,
126544
+ setCommandHint
126545
+ },
126546
+ children: children2
126547
+ }
126548
+ )
126605
126549
  }
126606
126550
  );
126607
126551
  };
126608
126552
  const PromptInputContext = reactExports.createContext({
126609
126553
  addFiles: () => {
126610
126554
  },
126555
+ fileEntries: [],
126556
+ removeFile: () => {
126557
+ },
126558
+ isDragging: false,
126611
126559
  hasContent: false,
126612
126560
  onTextChange: () => {
126613
126561
  },
@@ -126622,11 +126570,34 @@ const PromptInputContext = reactExports.createContext({
126622
126570
  function usePromptInputContext() {
126623
126571
  return reactExports.useContext(PromptInputContext);
126624
126572
  }
126573
+ const PromptInputBody = ({
126574
+ className,
126575
+ children: children2,
126576
+ ...props
126577
+ }) => {
126578
+ const { fileEntries, removeFile, isDragging } = reactExports.useContext(PromptInputContext);
126579
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
126580
+ "div",
126581
+ {
126582
+ "data-testid": "prompt-input__body",
126583
+ className: cn$2(
126584
+ "flex w-full flex-col rounded-lg border border-border bg-muted/50 p-1 shadow-sm transition-colors focus-within:border-foreground/30",
126585
+ isDragging && "border-primary/50 bg-primary/5",
126586
+ className
126587
+ ),
126588
+ ...props,
126589
+ children: [
126590
+ fileEntries.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(PromptInputFiles, { entries: fileEntries, onRemove: removeFile }),
126591
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex min-w-0 items-end gap-1", children: children2 })
126592
+ ]
126593
+ }
126594
+ );
126595
+ };
126625
126596
  function PromptInputFiles({
126626
126597
  entries: entries2,
126627
126598
  onRemove: onRemove2
126628
126599
  }) {
126629
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-2 flex flex-wrap gap-2 px-1", children: entries2.map((entry) => /* @__PURE__ */ jsxRuntimeExports.jsx(FilePreview, { file: entry.file, onRemove: () => onRemove2(entry.id) }, entry.id)) });
126600
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-1 flex flex-wrap gap-2 px-1 pt-1", children: entries2.map((entry) => /* @__PURE__ */ jsxRuntimeExports.jsx(FilePreview, { file: entry.file, onRemove: () => onRemove2(entry.id) }, entry.id)) });
126630
126601
  }
126631
126602
  function FilePreview({ file: file2, onRemove: onRemove2 }) {
126632
126603
  const isImage2 = file2.type.startsWith("image/");
@@ -126662,7 +126633,7 @@ function formatFileSize(bytes) {
126662
126633
  const PromptInputActions = ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
126663
126634
  "div",
126664
126635
  {
126665
- className: cn$2("flex w-full min-w-0 items-center justify-between gap-1", className),
126636
+ className: cn$2("flex w-full min-w-0 items-center justify-between gap-1 px-0.5", className),
126666
126637
  ...props
126667
126638
  }
126668
126639
  );
@@ -126697,9 +126668,10 @@ const PromptInputAttach = ({ className, ...props }) => {
126697
126668
  "inline-flex shrink-0 items-center justify-center rounded-md px-1.5 py-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
126698
126669
  className
126699
126670
  ),
126671
+ "aria-label": "Attach files",
126700
126672
  onClick: () => fileInputRef.current?.click(),
126701
126673
  ...props,
126702
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Paperclip, { className: "size-4" })
126674
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "size-4" })
126703
126675
  }
126704
126676
  )
126705
126677
  ] });
@@ -126759,7 +126731,7 @@ const PromptInputTextarea = ({
126759
126731
  window.addEventListener("band:focus-chat", handler);
126760
126732
  return () => window.removeEventListener("band:focus-chat", handler);
126761
126733
  }, [textareaRef]);
126762
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
126734
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative min-w-0 flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
126763
126735
  "textarea",
126764
126736
  {
126765
126737
  ref: textareaRef,
@@ -126769,10 +126741,11 @@ const PromptInputTextarea = ({
126769
126741
  spellCheck: false,
126770
126742
  writingsuggestions: "false",
126771
126743
  className: cn$2(
126772
- "min-h-[44px] lg:min-h-[36px] max-h-48 w-full resize-none overflow-y-auto bg-transparent px-2 py-2.5 lg:py-2 text-base lg:text-sm outline-none placeholder:text-muted-foreground field-sizing-content",
126744
+ "block min-h-[40px] lg:min-h-[32px] max-h-48 w-full resize-none overflow-y-auto bg-transparent px-2 py-2 lg:py-1.5 text-base lg:text-sm outline-none placeholder:text-muted-foreground field-sizing-content",
126773
126745
  className
126774
126746
  ),
126775
126747
  name: "message",
126748
+ rows: 1,
126776
126749
  onCompositionEnd: () => setIsComposing(false),
126777
126750
  onCompositionStart: () => setIsComposing(true),
126778
126751
  onInput: (e3) => onTextChange(e3.currentTarget.value),
@@ -126798,7 +126771,7 @@ const PromptInputSubmit = ({
126798
126771
  type: "button",
126799
126772
  "data-testid": "prompt-input__stop-button",
126800
126773
  "aria-label": "Stop generation",
126801
- className: "inline-flex size-8 lg:size-7 shrink-0 items-center justify-center rounded-full bg-secondary text-secondary-foreground transition-colors hover:bg-secondary/80",
126774
+ className: "inline-flex size-8 lg:size-7 shrink-0 items-center justify-center rounded-md bg-secondary text-secondary-foreground transition-colors hover:bg-secondary/80",
126802
126775
  onClick: onStop,
126803
126776
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Square, { className: "size-4 lg:size-3.5 fill-current" })
126804
126777
  }
@@ -126807,7 +126780,7 @@ const PromptInputSubmit = ({
126807
126780
  {
126808
126781
  type: "button",
126809
126782
  className: cn$2(
126810
- "inline-flex size-8 lg:size-7 shrink-0 items-center justify-center rounded-full bg-foreground/50 text-background transition-colors",
126783
+ "inline-flex size-8 lg:size-7 shrink-0 items-center justify-center rounded-md bg-foreground/50 text-background transition-colors",
126811
126784
  className
126812
126785
  ),
126813
126786
  disabled: true,
@@ -126819,14 +126792,15 @@ const PromptInputSubmit = ({
126819
126792
  {
126820
126793
  type: "submit",
126821
126794
  "data-testid": "prompt-input__submit-button",
126795
+ "aria-label": "Send message",
126822
126796
  disabled: !hasContent2,
126823
126797
  className: cn$2(
126824
- "inline-flex size-8 lg:size-7 shrink-0 items-center justify-center rounded-full transition-colors",
126825
- hasContent2 ? isBusy ? "bg-primary text-primary-foreground hover:bg-primary/80" : "bg-foreground text-background hover:bg-foreground/80" : "bg-muted text-muted-foreground",
126798
+ "inline-flex size-8 lg:size-7 shrink-0 items-center justify-center rounded-md transition-colors",
126799
+ hasContent2 ? isBusy ? "bg-primary text-primary-foreground hover:bg-primary/80" : "bg-foreground text-background hover:bg-foreground/80" : "text-muted-foreground",
126826
126800
  className
126827
126801
  ),
126828
126802
  ...props,
126829
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowUp, { className: "size-5 lg:size-4" })
126803
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(CornerDownLeft, { className: "size-4 lg:size-3.5" })
126830
126804
  }
126831
126805
  ) });
126832
126806
  };
@@ -127689,12 +127663,12 @@ function mergeObjects(target, ...sources) {
127689
127663
  });
127690
127664
  return target;
127691
127665
  }
127692
- function basename$1(path2) {
127666
+ function basename$2(path2) {
127693
127667
  const idx = ~path2.lastIndexOf("/") || ~path2.lastIndexOf("\\");
127694
127668
  if (idx === 0) {
127695
127669
  return path2;
127696
127670
  } else if (~idx === path2.length - 1) {
127697
- return basename$1(path2.substring(0, path2.length - 1));
127671
+ return basename$2(path2.substring(0, path2.length - 1));
127698
127672
  } else {
127699
127673
  return path2.substr(~idx + 1);
127700
127674
  }
@@ -128643,7 +128617,7 @@ var Rule2 = class {
128643
128617
  this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);
128644
128618
  }
128645
128619
  get debugName() {
128646
- const location2 = this.$location ? `${basename$1(this.$location.filename)}:${this.$location.line}` : "unknown";
128620
+ const location2 = this.$location ? `${basename$2(this.$location.filename)}:${this.$location.line}` : "unknown";
128647
128621
  return `${this.constructor.name}#${this.id} @ ${location2}`;
128648
128622
  }
128649
128623
  getName(lineText, captureIndices) {
@@ -160111,7 +160085,7 @@ function bisector(f2) {
160111
160085
  function zero$1() {
160112
160086
  return 0;
160113
160087
  }
160114
- function number$2(x2) {
160088
+ function number$3(x2) {
160115
160089
  return x2 === null ? NaN : +x2;
160116
160090
  }
160117
160091
  function* numbers(values2, valueof) {
@@ -160125,7 +160099,7 @@ function* numbers(values2, valueof) {
160125
160099
  }
160126
160100
  const ascendingBisect = bisector(ascending$1);
160127
160101
  const bisectRight = ascendingBisect.right;
160128
- bisector(number$2).center;
160102
+ bisector(number$3).center;
160129
160103
  class InternMap extends Map {
160130
160104
  constructor(entries2, key2 = keyof) {
160131
160105
  super();
@@ -160307,7 +160281,7 @@ function quantile$1(values2, p2, valueof) {
160307
160281
  var n2, i2 = (n2 - 1) * p2, i0 = Math.floor(i2), value0 = max$1(quickselect(values2, i0).subarray(0, i0 + 1)), value1 = min$1(values2.subarray(i0 + 1));
160308
160282
  return value0 + (value1 - value0) * (i2 - i0);
160309
160283
  }
160310
- function quantileSorted(values2, p2, valueof = number$2) {
160284
+ function quantileSorted(values2, p2, valueof = number$3) {
160311
160285
  if (!(n2 = values2.length) || isNaN(p2 = +p2)) return;
160312
160286
  if (p2 <= 0 || n2 < 2) return +valueof(values2[0], 0, values2);
160313
160287
  if (p2 >= 1) return +valueof(values2[n2 - 1], n2 - 1, values2);
@@ -161652,14 +161626,14 @@ function piecewise(interpolate2, values2) {
161652
161626
  return I2[i3](t2 - i3);
161653
161627
  };
161654
161628
  }
161655
- var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f2) {
161629
+ var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow$1 = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f2) {
161656
161630
  setTimeout(f2, 17);
161657
161631
  };
161658
161632
  function now() {
161659
- return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
161633
+ return clockNow$1 || (setFrame(clearNow), clockNow$1 = clock.now() + clockSkew);
161660
161634
  }
161661
161635
  function clearNow() {
161662
- clockNow = 0;
161636
+ clockNow$1 = 0;
161663
161637
  }
161664
161638
  function Timer() {
161665
161639
  this._call = this._time = this._next = null;
@@ -161696,20 +161670,20 @@ function timerFlush() {
161696
161670
  ++frame;
161697
161671
  var t2 = taskHead, e3;
161698
161672
  while (t2) {
161699
- if ((e3 = clockNow - t2._time) >= 0) t2._call.call(void 0, e3);
161673
+ if ((e3 = clockNow$1 - t2._time) >= 0) t2._call.call(void 0, e3);
161700
161674
  t2 = t2._next;
161701
161675
  }
161702
161676
  --frame;
161703
161677
  }
161704
161678
  function wake() {
161705
- clockNow = (clockLast = clock.now()) + clockSkew;
161679
+ clockNow$1 = (clockLast = clock.now()) + clockSkew;
161706
161680
  frame = timeout$1 = 0;
161707
161681
  try {
161708
161682
  timerFlush();
161709
161683
  } finally {
161710
161684
  frame = 0;
161711
161685
  nap();
161712
- clockNow = 0;
161686
+ clockNow$1 = 0;
161713
161687
  }
161714
161688
  }
161715
161689
  function poke() {
@@ -161733,7 +161707,7 @@ function nap() {
161733
161707
  function sleep(time2) {
161734
161708
  if (frame) return;
161735
161709
  if (timeout$1) timeout$1 = clearTimeout(timeout$1);
161736
- var delay = time2 - clockNow;
161710
+ var delay = time2 - clockNow$1;
161737
161711
  if (delay > 24) {
161738
161712
  if (time2 < Infinity) timeout$1 = setTimeout(wake, time2 - clock.now() - clockSkew);
161739
161713
  if (interval) interval = clearInterval(interval);
@@ -162809,7 +162783,7 @@ function constants$1(x2) {
162809
162783
  return x2;
162810
162784
  };
162811
162785
  }
162812
- function number$1(x2) {
162786
+ function number$2(x2) {
162813
162787
  return +x2;
162814
162788
  }
162815
162789
  var unit = [0, 1];
@@ -162870,7 +162844,7 @@ function transformer$2() {
162870
162844
  return clamp2(untransform((input || (input = piecewise2(range2, domain2.map(transform2), interpolateNumber)))(y4)));
162871
162845
  };
162872
162846
  scale.domain = function(_2) {
162873
- return arguments.length ? (domain2 = Array.from(_2, number$1), rescale()) : domain2.slice();
162847
+ return arguments.length ? (domain2 = Array.from(_2, number$2), rescale()) : domain2.slice();
162874
162848
  };
162875
162849
  scale.range = function(_2) {
162876
162850
  return arguments.length ? (range2 = Array.from(_2), rescale()) : range2.slice();
@@ -162980,7 +162954,7 @@ function identity$2(domain2) {
162980
162954
  }
162981
162955
  scale.invert = scale;
162982
162956
  scale.domain = scale.range = function(_2) {
162983
- return arguments.length ? (domain2 = Array.from(_2, number$1), scale) : domain2.slice();
162957
+ return arguments.length ? (domain2 = Array.from(_2, number$2), scale) : domain2.slice();
162984
162958
  };
162985
162959
  scale.unknown = function(_2) {
162986
162960
  return arguments.length ? (unknown2 = _2, scale) : unknown2;
@@ -162988,7 +162962,7 @@ function identity$2(domain2) {
162988
162962
  scale.copy = function() {
162989
162963
  return identity$2(domain2).unknown(unknown2);
162990
162964
  };
162991
- domain2 = arguments.length ? Array.from(domain2, number$1) : [0, 1];
162965
+ domain2 = arguments.length ? Array.from(domain2, number$2) : [0, 1];
162992
162966
  return linearish(scale);
162993
162967
  }
162994
162968
  function nice(domain2, interval2) {
@@ -163188,7 +163162,7 @@ function radial() {
163188
163162
  return arguments.length ? (squared.domain(_2), scale) : squared.domain();
163189
163163
  };
163190
163164
  scale.range = function(_2) {
163191
- return arguments.length ? (squared.range((range2 = Array.from(_2, number$1)).map(square)), scale) : range2.slice();
163165
+ return arguments.length ? (squared.range((range2 = Array.from(_2, number$2)).map(square)), scale) : range2.slice();
163192
163166
  };
163193
163167
  scale.rangeRound = function(_2) {
163194
163168
  return scale.range(_2).round(true);
@@ -164173,7 +164147,7 @@ function defaultLocale(definition2) {
164173
164147
  function date(t2) {
164174
164148
  return new Date(t2);
164175
164149
  }
164176
- function number(t2) {
164150
+ function number$1(t2) {
164177
164151
  return t2 instanceof Date ? +t2 : +/* @__PURE__ */ new Date(+t2);
164178
164152
  }
164179
164153
  function calendar(ticks2, tickInterval, year, month, week, day, hour, minute, second2, format2) {
@@ -164186,7 +164160,7 @@ function calendar(ticks2, tickInterval, year, month, week, day, hour, minute, se
164186
164160
  return new Date(invert2(y4));
164187
164161
  };
164188
164162
  scale.domain = function(_2) {
164189
- return arguments.length ? domain2(Array.from(_2, number)) : domain2().map(date);
164163
+ return arguments.length ? domain2(Array.from(_2, number$1)) : domain2().map(date);
164190
164164
  };
164191
164165
  scale.ticks = function(interval2) {
164192
164166
  var d2 = domain2();
@@ -178645,12 +178619,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
178645
178619
  registerLayoutLoaders([
178646
178620
  {
178647
178621
  name: "dagre",
178648
- loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-H_kNmEPM.js"), "loader")
178622
+ loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-DvvoFaVJ.js"), "loader")
178649
178623
  },
178650
178624
  ...[
178651
178625
  {
178652
178626
  name: "cose-bilkent",
178653
- loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-Bc5NoQXq.js"), "loader")
178627
+ loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-Dqv8g3XR.js"), "loader")
178654
178628
  }
178655
178629
  ]
178656
178630
  ]);
@@ -179089,7 +179063,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
179089
179063
  return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
179090
179064
  }, "detector");
179091
179065
  var loader = /* @__PURE__ */ __name(async () => {
179092
- const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-DBRRCTXb.js");
179066
+ const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-DIRimETA.js");
179093
179067
  return { id, diagram: diagram2 };
179094
179068
  }, "loader");
179095
179069
  var plugin = {
@@ -179106,7 +179080,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
179106
179080
  return /^\s*graph/.test(txt);
179107
179081
  }, "detector");
179108
179082
  var loader2 = /* @__PURE__ */ __name(async () => {
179109
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-tA99onXp.js");
179083
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DwqeGUt2.js");
179110
179084
  return { id: id2, diagram: diagram2 };
179111
179085
  }, "loader");
179112
179086
  var plugin2 = {
@@ -179129,7 +179103,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
179129
179103
  return /^\s*flowchart/.test(txt);
179130
179104
  }, "detector");
179131
179105
  var loader3 = /* @__PURE__ */ __name(async () => {
179132
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-tA99onXp.js");
179106
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DwqeGUt2.js");
179133
179107
  return { id: id3, diagram: diagram2 };
179134
179108
  }, "loader");
179135
179109
  var plugin3 = {
@@ -179143,7 +179117,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
179143
179117
  return /^\s*erDiagram/.test(txt);
179144
179118
  }, "detector");
179145
179119
  var loader4 = /* @__PURE__ */ __name(async () => {
179146
- const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-CydybEEO.js");
179120
+ const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-CBpgZJNk.js");
179147
179121
  return { id: id4, diagram: diagram2 };
179148
179122
  }, "loader");
179149
179123
  var plugin4 = {
@@ -179157,7 +179131,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
179157
179131
  return /^\s*gitGraph/.test(txt);
179158
179132
  }, "detector");
179159
179133
  var loader5 = /* @__PURE__ */ __name(async () => {
179160
- const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-CzPNHl73.js");
179134
+ const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-4Hraf1YX.js");
179161
179135
  return { id: id5, diagram: diagram2 };
179162
179136
  }, "loader");
179163
179137
  var plugin5 = {
@@ -179171,7 +179145,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
179171
179145
  return /^\s*gantt/.test(txt);
179172
179146
  }, "detector");
179173
179147
  var loader6 = /* @__PURE__ */ __name(async () => {
179174
- const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-DsJKSbMm.js");
179148
+ const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-CSDzrG3u.js");
179175
179149
  return { id: id6, diagram: diagram2 };
179176
179150
  }, "loader");
179177
179151
  var plugin6 = {
@@ -179185,7 +179159,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
179185
179159
  return /^\s*info/.test(txt);
179186
179160
  }, "detector");
179187
179161
  var loader7 = /* @__PURE__ */ __name(async () => {
179188
- const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-CSvzttKw.js");
179162
+ const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-Bnhyc8dm.js");
179189
179163
  return { id: id7, diagram: diagram2 };
179190
179164
  }, "loader");
179191
179165
  var info = {
@@ -179198,7 +179172,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
179198
179172
  return /^\s*pie/.test(txt);
179199
179173
  }, "detector");
179200
179174
  var loader8 = /* @__PURE__ */ __name(async () => {
179201
- const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-CFOW6PnN.js");
179175
+ const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-B8juLdbl.js");
179202
179176
  return { id: id8, diagram: diagram2 };
179203
179177
  }, "loader");
179204
179178
  var pie = {
@@ -179211,7 +179185,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
179211
179185
  return /^\s*quadrantChart/.test(txt);
179212
179186
  }, "detector");
179213
179187
  var loader9 = /* @__PURE__ */ __name(async () => {
179214
- const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-3A-aZNyC.js");
179188
+ const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-CLY3QLCC.js");
179215
179189
  return { id: id9, diagram: diagram2 };
179216
179190
  }, "loader");
179217
179191
  var plugin7 = {
@@ -179225,7 +179199,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
179225
179199
  return /^\s*xychart(-beta)?/.test(txt);
179226
179200
  }, "detector");
179227
179201
  var loader10 = /* @__PURE__ */ __name(async () => {
179228
- const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-DfSubvZj.js");
179202
+ const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-DAi7zkg3.js");
179229
179203
  return { id: id10, diagram: diagram2 };
179230
179204
  }, "loader");
179231
179205
  var plugin8 = {
@@ -179239,7 +179213,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
179239
179213
  return /^\s*requirement(Diagram)?/.test(txt);
179240
179214
  }, "detector");
179241
179215
  var loader11 = /* @__PURE__ */ __name(async () => {
179242
- const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-Dlll26uf.js");
179216
+ const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-CgDmK30l.js");
179243
179217
  return { id: id11, diagram: diagram2 };
179244
179218
  }, "loader");
179245
179219
  var plugin9 = {
@@ -179253,7 +179227,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
179253
179227
  return /^\s*sequenceDiagram/.test(txt);
179254
179228
  }, "detector");
179255
179229
  var loader12 = /* @__PURE__ */ __name(async () => {
179256
- const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-BCAnfOwu.js");
179230
+ const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-SyLdlVhU.js");
179257
179231
  return { id: id12, diagram: diagram2 };
179258
179232
  }, "loader");
179259
179233
  var plugin10 = {
@@ -179270,7 +179244,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
179270
179244
  return /^\s*classDiagram/.test(txt);
179271
179245
  }, "detector");
179272
179246
  var loader13 = /* @__PURE__ */ __name(async () => {
179273
- const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-Chmrw_oF.js");
179247
+ const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-BLteCxZe.js");
179274
179248
  return { id: id13, diagram: diagram2 };
179275
179249
  }, "loader");
179276
179250
  var plugin11 = {
@@ -179287,7 +179261,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
179287
179261
  return /^\s*classDiagram-v2/.test(txt);
179288
179262
  }, "detector");
179289
179263
  var loader14 = /* @__PURE__ */ __name(async () => {
179290
- const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-Chmrw_oF.js");
179264
+ const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-BLteCxZe.js");
179291
179265
  return { id: id14, diagram: diagram2 };
179292
179266
  }, "loader");
179293
179267
  var plugin12 = {
@@ -179304,7 +179278,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
179304
179278
  return /^\s*stateDiagram/.test(txt);
179305
179279
  }, "detector");
179306
179280
  var loader15 = /* @__PURE__ */ __name(async () => {
179307
- const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-BqJZtxdF.js");
179281
+ const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-B8krws9Z.js");
179308
179282
  return { id: id15, diagram: diagram2 };
179309
179283
  }, "loader");
179310
179284
  var plugin13 = {
@@ -179324,7 +179298,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
179324
179298
  return false;
179325
179299
  }, "detector");
179326
179300
  var loader16 = /* @__PURE__ */ __name(async () => {
179327
- const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-1ifEjgYq.js");
179301
+ const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-CqkUhCge.js");
179328
179302
  return { id: id16, diagram: diagram2 };
179329
179303
  }, "loader");
179330
179304
  var plugin14 = {
@@ -179338,7 +179312,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
179338
179312
  return /^\s*journey/.test(txt);
179339
179313
  }, "detector");
179340
179314
  var loader17 = /* @__PURE__ */ __name(async () => {
179341
- const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-Bb7ADiou.js");
179315
+ const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-DCeht2II.js");
179342
179316
  return { id: id17, diagram: diagram2 };
179343
179317
  }, "loader");
179344
179318
  var plugin15 = {
@@ -179405,7 +179379,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
179405
179379
  return false;
179406
179380
  }, "detector");
179407
179381
  var loader18 = /* @__PURE__ */ __name(async () => {
179408
- const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-tA99onXp.js");
179382
+ const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DwqeGUt2.js");
179409
179383
  return { id: id18, diagram: diagram2 };
179410
179384
  }, "loader");
179411
179385
  var plugin16 = {
@@ -179419,7 +179393,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
179419
179393
  return /^\s*timeline/.test(txt);
179420
179394
  }, "detector");
179421
179395
  var loader19 = /* @__PURE__ */ __name(async () => {
179422
- const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-CAWbczQG.js");
179396
+ const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-eG_EzXZg.js");
179423
179397
  return { id: id19, diagram: diagram2 };
179424
179398
  }, "loader");
179425
179399
  var plugin17 = {
@@ -179433,7 +179407,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
179433
179407
  return /^\s*mindmap/.test(txt);
179434
179408
  }, "detector");
179435
179409
  var loader20 = /* @__PURE__ */ __name(async () => {
179436
- const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-yqPdoOIb.js");
179410
+ const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-CKJkiH58.js");
179437
179411
  return { id: id20, diagram: diagram2 };
179438
179412
  }, "loader");
179439
179413
  var plugin18 = {
@@ -179447,7 +179421,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
179447
179421
  return /^\s*kanban/.test(txt);
179448
179422
  }, "detector");
179449
179423
  var loader21 = /* @__PURE__ */ __name(async () => {
179450
- const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-BCi9DXfZ.js");
179424
+ const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-D2wyptyQ.js");
179451
179425
  return { id: id21, diagram: diagram2 };
179452
179426
  }, "loader");
179453
179427
  var plugin19 = {
@@ -179461,7 +179435,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
179461
179435
  return /^\s*sankey(-beta)?/.test(txt);
179462
179436
  }, "detector");
179463
179437
  var loader22 = /* @__PURE__ */ __name(async () => {
179464
- const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-BQaOXs3v.js");
179438
+ const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-B9355ZLW.js");
179465
179439
  return { id: id22, diagram: diagram2 };
179466
179440
  }, "loader");
179467
179441
  var plugin20 = {
@@ -179475,7 +179449,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
179475
179449
  return /^\s*packet(-beta)?/.test(txt);
179476
179450
  }, "detector");
179477
179451
  var loader23 = /* @__PURE__ */ __name(async () => {
179478
- const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-DjbSY-6m.js");
179452
+ const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-uaww8JQd.js");
179479
179453
  return { id: id23, diagram: diagram2 };
179480
179454
  }, "loader");
179481
179455
  var packet = {
@@ -179488,7 +179462,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
179488
179462
  return /^\s*radar-beta/.test(txt);
179489
179463
  }, "detector");
179490
179464
  var loader24 = /* @__PURE__ */ __name(async () => {
179491
- const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-k-zPaYMJ.js");
179465
+ const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-GLrYhnWw.js");
179492
179466
  return { id: id24, diagram: diagram2 };
179493
179467
  }, "loader");
179494
179468
  var radar = {
@@ -179501,7 +179475,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
179501
179475
  return /^\s*block(-beta)?/.test(txt);
179502
179476
  }, "detector");
179503
179477
  var loader25 = /* @__PURE__ */ __name(async () => {
179504
- const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-DEeR9cDU.js");
179478
+ const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-CWXr6KW7.js");
179505
179479
  return { id: id25, diagram: diagram2 };
179506
179480
  }, "loader");
179507
179481
  var plugin21 = {
@@ -179515,7 +179489,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
179515
179489
  return /^\s*architecture/.test(txt);
179516
179490
  }, "detector");
179517
179491
  var loader26 = /* @__PURE__ */ __name(async () => {
179518
- const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-CR2ITyvh.js");
179492
+ const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-IeNkR88v.js");
179519
179493
  return { id: id26, diagram: diagram2 };
179520
179494
  }, "loader");
179521
179495
  var architecture = {
@@ -179529,7 +179503,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
179529
179503
  return /^\s*treemap/.test(txt);
179530
179504
  }, "detector");
179531
179505
  var loader27 = /* @__PURE__ */ __name(async () => {
179532
- const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-BcsANBT1.js");
179506
+ const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-CbKKlJvK.js");
179533
179507
  return { id: id27, diagram: diagram2 };
179534
179508
  }, "loader");
179535
179509
  var treemap = {
@@ -180373,7 +180347,7 @@ function FilePreviewOverlay({ open: open2, onOpenChange, part }) {
180373
180347
  {
180374
180348
  className: cn$2(
180375
180349
  "fixed inset-0 z-50 flex flex-col outline-none",
180376
- "h-[100dvh] w-screen",
180350
+ "h-[calc(100dvh/var(--app-zoom,1))] w-[calc(100vw/var(--app-zoom,1))]",
180377
180351
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
180378
180352
  "data-[state=open]:animate-in data-[state=open]:fade-in-0"
180379
180353
  ),
@@ -180836,6 +180810,153 @@ function TaskStatusIcon({ status }) {
180836
180810
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Circle, { className: "size-3 shrink-0 text-muted-foreground" });
180837
180811
  }
180838
180812
  }
180813
+ function blank(entry) {
180814
+ return entry.kind === "text" && !entry.text.trim();
180815
+ }
180816
+ function groupEntries(entries2) {
180817
+ const parts = [];
180818
+ let run2 = [];
180819
+ const flush = () => {
180820
+ const first = run2.findIndex((e3) => e3.kind === "tool");
180821
+ let last = run2.length - 1;
180822
+ while (last >= 0 && run2[last].kind !== "tool") last--;
180823
+ const tools = run2.filter((e3) => e3.kind === "tool");
180824
+ if (tools.length < 2) {
180825
+ for (const entry of run2) parts.push({ kind: "entry", entry });
180826
+ } else {
180827
+ for (const entry of run2.slice(0, first)) parts.push({ kind: "entry", entry });
180828
+ parts.push({
180829
+ kind: "tools",
180830
+ id: `group-${tools[0].id}`,
180831
+ entries: run2.slice(first, last + 1).filter((e3) => !blank(e3)),
180832
+ tools
180833
+ });
180834
+ for (const entry of run2.slice(last + 1)) parts.push({ kind: "entry", entry });
180835
+ }
180836
+ run2 = [];
180837
+ };
180838
+ for (const entry of entries2) {
180839
+ if (entry.kind === "tool" || entry.kind === "thought" || blank(entry)) {
180840
+ run2.push(entry);
180841
+ } else {
180842
+ flush();
180843
+ parts.push({ kind: "entry", entry });
180844
+ }
180845
+ }
180846
+ flush();
180847
+ return parts;
180848
+ }
180849
+ function toolState(entry) {
180850
+ if (entry.status === "failed") return "error";
180851
+ if (entry.status === "pending" || entry.status === "in_progress") return "in-progress";
180852
+ return "complete";
180853
+ }
180854
+ function record(value) {
180855
+ return value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
180856
+ }
180857
+ function basename$1(path2) {
180858
+ return path2.split("/").filter(Boolean).pop() ?? path2;
180859
+ }
180860
+ function pathInTitle(entry) {
180861
+ const path2 = entry.locations[0]?.path;
180862
+ if (!path2) return void 0;
180863
+ const segments = path2.split("/");
180864
+ for (let i2 = 0; i2 < segments.length; i2++) {
180865
+ const tail2 = segments.slice(i2).join("/");
180866
+ if (tail2 && entry.title.includes(tail2)) return tail2;
180867
+ }
180868
+ return void 0;
180869
+ }
180870
+ function shellDescription(entry) {
180871
+ const description = record(entry.rawInput)?.description;
180872
+ return typeof description === "string" && description.trim() ? description.trim() : void 0;
180873
+ }
180874
+ function describeTool(entry) {
180875
+ const description = shellDescription(entry);
180876
+ if (description) {
180877
+ return toolState(entry) === "error" ? { text: `Failed to ${description[0].toLowerCase()}${description.slice(1)}` } : { text: description };
180878
+ }
180879
+ return { text: entry.title, highlight: pathInTitle(entry) };
180880
+ }
180881
+ function fileNamed(verb, noun = "file") {
180882
+ return {
180883
+ one: (entry) => {
180884
+ const path2 = entry.locations[0]?.path;
180885
+ return path2 ? `${verb} ${basename$1(path2)}` : `${verb} 1 ${noun}`;
180886
+ },
180887
+ many: (n2) => `${verb} ${n2} ${noun}s`
180888
+ };
180889
+ }
180890
+ const counted = (verb, noun) => ({
180891
+ one: () => `${verb} 1 ${noun}`,
180892
+ many: (n2) => `${verb} ${n2} ${noun}s`
180893
+ });
180894
+ const PHRASES = {
180895
+ execute: counted("ran", "command"),
180896
+ read: fileNamed("read"),
180897
+ edit: fileNamed("edited"),
180898
+ delete: fileNamed("deleted"),
180899
+ move: fileNamed("moved"),
180900
+ search: { one: () => "ran 1 search", many: (n2) => `ran ${n2} searches` },
180901
+ fetch: counted("fetched", "page"),
180902
+ think: counted("ran", "task")
180903
+ };
180904
+ const OTHER = counted("used", "tool");
180905
+ function summarizeTools(tools) {
180906
+ const byPhrase = /* @__PURE__ */ new Map();
180907
+ for (const tool of tools) {
180908
+ const phrase = tool.toolKind && PHRASES[tool.toolKind] || OTHER;
180909
+ const list2 = byPhrase.get(phrase);
180910
+ if (list2) list2.push(tool);
180911
+ else byPhrase.set(phrase, [tool]);
180912
+ }
180913
+ const clauses = [...byPhrase].map(([phrase, list2]) => {
180914
+ const text2 = list2.length === 1 ? phrase.one(list2[0]) : phrase.many(list2.length);
180915
+ const failed = list2.filter((t2) => toolState(t2) === "error").length;
180916
+ return failed > 0 ? `${text2} (${failed} failed)` : text2;
180917
+ });
180918
+ const line2 = clauses.join(", ");
180919
+ return line2[0].toUpperCase() + line2.slice(1);
180920
+ }
180921
+ const OUTPUT_LIMIT = 2e4;
180922
+ const FENCE_OPEN = /^```[\w-]*\n/;
180923
+ const FENCE_CLOSE = /\n?```\s*$/;
180924
+ const EXIT_LINE = /^Exit code (\d+)\n?/;
180925
+ function number(value) {
180926
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
180927
+ }
180928
+ function rawOutputText(raw2) {
180929
+ if (typeof raw2 === "string") return raw2;
180930
+ const out = record(raw2);
180931
+ if (!out) return "";
180932
+ for (const key2 of ["formatted_output", "aggregated_output", "output"]) {
180933
+ if (typeof out[key2] === "string") return out[key2];
180934
+ }
180935
+ return [out.stdout, out.stderr].filter((s2) => typeof s2 === "string" && s2).join("\n");
180936
+ }
180937
+ function shellRun(entry) {
180938
+ if (entry.toolKind !== "execute") return null;
180939
+ const input = record(entry.rawInput);
180940
+ const cmd2 = input?.command;
180941
+ const command2 = typeof cmd2 === "string" ? cmd2 : Array.isArray(cmd2) && cmd2.every((c2) => typeof c2 === "string") ? cmd2.join(" ") : entry.title;
180942
+ const texts = entry.content.flatMap(
180943
+ (c2) => c2.type === "content" && c2.content.type === "text" ? [c2.content.text] : []
180944
+ );
180945
+ let output = (texts.length > 0 ? texts.join("\n") : rawOutputText(entry.rawOutput)).slice(
180946
+ 0,
180947
+ OUTPUT_LIMIT + 64
180948
+ );
180949
+ if (FENCE_OPEN.test(output)) output = output.replace(FENCE_OPEN, "").replace(FENCE_CLOSE, "");
180950
+ if (output === shellDescription(entry)) output = "";
180951
+ const raw2 = record(entry.rawOutput);
180952
+ let exitCode = number(raw2?.exit_code) ?? number(raw2?.exitCode);
180953
+ const exitLine = EXIT_LINE.exec(output);
180954
+ if (exitLine) {
180955
+ exitCode ??= Number(exitLine[1]);
180956
+ output = output.slice(exitLine[0].length);
180957
+ }
180958
+ return { command: command2, exitCode, output: output.trimEnd() };
180959
+ }
180839
180960
  const MAX_CELLS = 4e5;
180840
180961
  const CONTEXT = 3;
180841
180962
  function rawDiff(oldLines, newLines) {
@@ -180925,26 +181046,6 @@ const ToolOutput = ({ className, output, errorText, ...props }) => {
180925
181046
  )
180926
181047
  ] });
180927
181048
  };
180928
- function statusOf(entry) {
180929
- if (entry.status === "failed") return "error";
180930
- if (entry.status === "pending" || entry.status === "in_progress") return "in-progress";
180931
- return "complete";
180932
- }
180933
- function StatusDot({ status }) {
180934
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
180935
- "span",
180936
- {
180937
- "data-testid": "tool-call__status-dot",
180938
- "data-status": status,
180939
- className: cn$2(
180940
- "size-2 shrink-0 rounded-full",
180941
- status === "error" && "bg-red-500",
180942
- status === "in-progress" && "animate-pulse bg-orange-500",
180943
- status === "complete" && "bg-green-500"
180944
- )
180945
- }
180946
- );
180947
- }
180948
181049
  function shortPath(path2, cwd) {
180949
181050
  return cwd && path2.startsWith(`${cwd}/`) ? path2.slice(cwd.length + 1) : path2;
180950
181051
  }
@@ -180994,51 +181095,131 @@ function Diff({
180994
181095
  }
180995
181096
  );
180996
181097
  }
180997
- const ToolCall = reactExports.memo(function ToolCall2({ entry, cwd }) {
180998
- const status = statusOf(entry);
181098
+ function Chevron({ openClass }) {
181099
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: cn$2("size-3.5 shrink-0 transition-transform", openClass) });
181100
+ }
181101
+ function Label$1({ label }) {
181102
+ const at2 = label.highlight ? label.text.indexOf(label.highlight) : -1;
181103
+ if (!label.highlight || at2 < 0) return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: label.text });
181104
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
181105
+ label.text.slice(0, at2),
181106
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-foreground", children: label.highlight }),
181107
+ label.text.slice(at2 + label.highlight.length)
181108
+ ] });
181109
+ }
181110
+ function ShellDetails({ entry, failed }) {
181111
+ const run2 = reactExports.useMemo(() => shellRun(entry), [entry]);
181112
+ if (!run2) return null;
181113
+ const showExit = run2.exitCode !== void 0 && (failed || run2.exitCode !== 0);
181114
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn$2("space-y-2 font-mono text-xs", failed && "text-red-400"), children: [
181115
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
181116
+ "pre",
181117
+ {
181118
+ "data-testid": "tool-call__command",
181119
+ className: "overflow-x-auto whitespace-pre-wrap rounded-md border border-border/40 bg-muted/30 px-3 py-2 text-foreground",
181120
+ children: [
181121
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "select-none text-muted-foreground", children: "$ " }),
181122
+ run2.command
181123
+ ]
181124
+ }
181125
+ ),
181126
+ showExit && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-testid": "tool-call__exit-code", children: [
181127
+ "Exit code ",
181128
+ run2.exitCode
181129
+ ] }),
181130
+ run2.output && /* @__PURE__ */ jsxRuntimeExports.jsx(
181131
+ "pre",
181132
+ {
181133
+ "data-testid": "tool-call__output",
181134
+ className: cn$2(
181135
+ "max-h-80 overflow-auto whitespace-pre-wrap",
181136
+ !failed && "text-muted-foreground"
181137
+ ),
181138
+ children: run2.output.slice(0, OUTPUT_LIMIT)
181139
+ }
181140
+ )
181141
+ ] });
181142
+ }
181143
+ function ToolDetails({ entry, cwd }) {
180999
181144
  const diffs = entry.content.filter((c2) => c2.type === "diff");
181000
181145
  const texts = entry.content.flatMap(
181001
181146
  (c2) => c2.type === "content" && c2.content.type === "text" ? [c2.content.text] : []
181002
181147
  );
181003
- const paths = [.../* @__PURE__ */ new Set([...diffs.map((d2) => d2.path), ...entry.locations.map((l4) => l4.path)])];
181004
181148
  const prose = entry.toolKind === "switch_mode" || entry.toolKind === "think";
181005
- const hasBody = diffs.length > 0 || texts.length > 0 || entry.rawInput !== void 0 || entry.rawOutput !== void 0;
181149
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
181150
+ diffs.map((d2) => /* @__PURE__ */ jsxRuntimeExports.jsx(Diff, { path: d2.path, oldText: d2.oldText, newText: d2.newText, cwd }, d2.path)),
181151
+ texts.map(
181152
+ (text2, i2) => prose ? (
181153
+ // biome-ignore lint/suspicious/noArrayIndexKey: content blocks have no id
181154
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: text2 }, i2)
181155
+ ) : (
181156
+ // biome-ignore lint/suspicious/noArrayIndexKey: content blocks have no id
181157
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ToolOutput, { output: text2.slice(0, 2e4), errorText: void 0 }, i2)
181158
+ )
181159
+ ),
181160
+ diffs.length === 0 && texts.length === 0 && entry.rawInput !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ToolInput, { input: entry.rawInput }),
181161
+ diffs.length === 0 && texts.length === 0 && entry.rawOutput !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ToolOutput, { output: entry.rawOutput, errorText: void 0 })
181162
+ ] });
181163
+ }
181164
+ const ToolCall = reactExports.memo(function ToolCall2({ entry, cwd }) {
181165
+ const state2 = toolState(entry);
181166
+ const failed = state2 === "error";
181167
+ const shell = entry.toolKind === "execute";
181168
+ const hasBody = shell || entry.content.some(
181169
+ (c2) => c2.type === "diff" || c2.type === "content" && c2.content.type === "text"
181170
+ ) || entry.rawInput !== void 0 || entry.rawOutput !== void 0;
181006
181171
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
181007
181172
  Collapsible,
181008
181173
  {
181009
181174
  "data-testid": "tool-call__container",
181010
- "data-status": status,
181011
- className: "group not-prose w-full rounded border border-border/30 bg-muted/20",
181175
+ "data-status": state2,
181176
+ className: "group/tool-call not-prose w-full min-w-0",
181012
181177
  children: [
181013
181178
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
181014
181179
  CollapsibleTrigger,
181015
181180
  {
181016
- className: "flex w-full items-center justify-between gap-4 px-2 py-1.5",
181181
+ className: cn$2(
181182
+ "flex max-w-full items-center gap-1.5 text-left text-sm",
181183
+ failed ? "text-red-400" : "text-muted-foreground",
181184
+ hasBody && (failed ? "hover:text-red-300" : "hover:text-foreground")
181185
+ ),
181017
181186
  disabled: !hasBody,
181018
181187
  children: [
181019
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
181020
- /* @__PURE__ */ jsxRuntimeExports.jsx(StatusDot, { status }),
181021
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate font-medium text-xs text-muted-foreground", children: entry.title }),
181022
- paths.length > 0 && !entry.title.includes(shortPath(paths[0], cwd)) && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate text-xs text-muted-foreground/70", children: paths.map((p2) => shortPath(p2, cwd)).join(", ") })
181023
- ] }),
181024
- hasBody && /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-4 shrink-0 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" })
181188
+ state2 === "in-progress" && /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3.5 shrink-0 animate-spin" }),
181189
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { label: describeTool(entry) }) }),
181190
+ hasBody && /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron, { openClass: "group-data-[state=open]/tool-call:rotate-90" })
181025
181191
  ]
181026
181192
  }
181027
181193
  ),
181028
- /* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleContent, { className: "space-y-3 border-t border-border/30 px-3 py-2 text-popover-foreground", children: [
181029
- diffs.map((d2) => /* @__PURE__ */ jsxRuntimeExports.jsx(Diff, { path: d2.path, oldText: d2.oldText, newText: d2.newText, cwd }, d2.path)),
181030
- texts.map(
181031
- (text2, i2) => prose ? (
181032
- // biome-ignore lint/suspicious/noArrayIndexKey: content blocks have no id
181033
- /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: text2 }, i2)
181034
- ) : (
181035
- // biome-ignore lint/suspicious/noArrayIndexKey: content blocks have no id
181036
- /* @__PURE__ */ jsxRuntimeExports.jsx(ToolOutput, { output: text2.slice(0, 2e4), errorText: void 0 }, i2)
181037
- )
181038
- ),
181039
- diffs.length === 0 && texts.length === 0 && entry.rawInput !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ToolInput, { input: entry.rawInput }),
181040
- diffs.length === 0 && texts.length === 0 && entry.rawOutput !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ToolOutput, { output: entry.rawOutput, errorText: void 0 })
181041
- ] })
181194
+ /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { className: "mt-2 space-y-3 text-popover-foreground", children: shell ? /* @__PURE__ */ jsxRuntimeExports.jsx(ShellDetails, { entry, failed }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ToolDetails, { entry, cwd }) })
181195
+ ]
181196
+ }
181197
+ );
181198
+ });
181199
+ const ToolGroup = reactExports.memo(function ToolGroup2({
181200
+ tools,
181201
+ children: children2
181202
+ }) {
181203
+ const running = tools.some((t2) => toolState(t2) === "in-progress");
181204
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
181205
+ Collapsible,
181206
+ {
181207
+ "data-testid": "tool-group__container",
181208
+ className: "group/tool-group not-prose w-full min-w-0",
181209
+ children: [
181210
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
181211
+ CollapsibleTrigger,
181212
+ {
181213
+ "data-testid": "tool-group__summary",
181214
+ className: "flex max-w-full items-center gap-1.5 text-left text-sm text-muted-foreground hover:text-foreground",
181215
+ children: [
181216
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: summarizeTools(tools) }),
181217
+ running && /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3.5 shrink-0 animate-spin" }),
181218
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron, { openClass: "group-data-[state=open]/tool-group:rotate-90" })
181219
+ ]
181220
+ }
181221
+ ),
181222
+ /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { className: "mt-2 divide-y divide-border/40 overflow-hidden rounded-lg border border-border/40 [&>*]:px-3 [&>*]:py-2", children: children2 })
181042
181223
  ]
181043
181224
  }
181044
181225
  );
@@ -181104,6 +181285,342 @@ function withResolvedDefaults(models, currentModel, effort, resolved) {
181104
181285
  effortLabel: effort.currentValue === DEFAULT_ID ? levelName ?? "Default" : void 0
181105
181286
  };
181106
181287
  }
181288
+ const UNITS = [
181289
+ ["year", 365 * 24 * 3600],
181290
+ ["month", 30 * 24 * 3600],
181291
+ ["week", 7 * 24 * 3600],
181292
+ ["day", 24 * 3600],
181293
+ ["hour", 3600],
181294
+ ["minute", 60]
181295
+ ];
181296
+ const relative = new Intl.RelativeTimeFormat(void 0, { numeric: "always" });
181297
+ function timeAgo(ms, now2) {
181298
+ const seconds = Math.max(0, Math.round((now2 - ms) / 1e3));
181299
+ for (const [unit2, size2] of UNITS) {
181300
+ if (seconds >= size2) return relative.format(-Math.floor(seconds / size2), unit2);
181301
+ }
181302
+ return "just now";
181303
+ }
181304
+ const TICK_MS = 3e4;
181305
+ let clockNow = Date.now();
181306
+ const listeners$1 = /* @__PURE__ */ new Set();
181307
+ let clockTimer;
181308
+ function subscribe(listener2) {
181309
+ listeners$1.add(listener2);
181310
+ if (clockTimer === void 0) {
181311
+ clockNow = Date.now();
181312
+ clockTimer = window.setInterval(() => {
181313
+ clockNow = Date.now();
181314
+ for (const l4 of listeners$1) l4();
181315
+ }, TICK_MS);
181316
+ }
181317
+ return () => {
181318
+ listeners$1.delete(listener2);
181319
+ if (listeners$1.size === 0) {
181320
+ window.clearInterval(clockTimer);
181321
+ clockTimer = void 0;
181322
+ }
181323
+ };
181324
+ }
181325
+ function useNow() {
181326
+ return reactExports.useSyncExternalStore(
181327
+ subscribe,
181328
+ () => clockNow,
181329
+ () => clockNow
181330
+ );
181331
+ }
181332
+ function MessageActions({
181333
+ text: text2,
181334
+ createdAt,
181335
+ align
181336
+ }) {
181337
+ const [copied, setCopied] = reactExports.useState(false);
181338
+ const now2 = useNow();
181339
+ reactExports.useEffect(() => {
181340
+ if (!copied) return;
181341
+ const timer2 = window.setTimeout(() => setCopied(false), 1500);
181342
+ return () => window.clearTimeout(timer2);
181343
+ }, [copied]);
181344
+ if (!text2 && createdAt === void 0) return null;
181345
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
181346
+ "div",
181347
+ {
181348
+ "data-testid": "message-actions",
181349
+ className: cn$2(
181350
+ "flex items-center gap-2 text-xs text-muted-foreground opacity-0 transition-opacity",
181351
+ "group-hover:opacity-100 focus-within:opacity-100 [@media(hover:none)]:opacity-100",
181352
+ align === "end" && "justify-end"
181353
+ ),
181354
+ children: [
181355
+ text2 && /* @__PURE__ */ jsxRuntimeExports.jsx(
181356
+ "button",
181357
+ {
181358
+ type: "button",
181359
+ "aria-label": copied ? "Copied" : "Copy message",
181360
+ onClick: () => {
181361
+ void writeClipboardText(text2).then((ok2) => setCopied(ok2));
181362
+ },
181363
+ className: "rounded p-1 hover:bg-accent hover:text-foreground",
181364
+ children: copied ? /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Copy, { className: "size-3.5" })
181365
+ }
181366
+ ),
181367
+ createdAt !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
181368
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx("time", { "data-testid": "message-actions__time", dateTime: new Date(createdAt).toISOString(), children: timeAgo(createdAt, now2) }) }),
181369
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: new Date(createdAt).toLocaleString() })
181370
+ ] })
181371
+ ]
181372
+ }
181373
+ );
181374
+ }
181375
+ const CHAT_FIND_TEXT_ATTR = "data-chat-find-text";
181376
+ const DEFAULT_OPTIONS = { caseSensitive: false, wholeWord: false, regex: false };
181377
+ function buildFindRegex(query, options) {
181378
+ if (!query) return null;
181379
+ let source = options.regex ? query : query.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
181380
+ if (options.wholeWord) source = `\\b(?:${source})\\b`;
181381
+ try {
181382
+ return new RegExp(source, options.caseSensitive ? "g" : "gi");
181383
+ } catch {
181384
+ return null;
181385
+ }
181386
+ }
181387
+ function matchSpans(text2, re2) {
181388
+ const spans = [];
181389
+ re2.lastIndex = 0;
181390
+ for (let m2 = re2.exec(text2); m2; m2 = re2.exec(text2)) {
181391
+ if (m2[0] === "") {
181392
+ re2.lastIndex += 1;
181393
+ continue;
181394
+ }
181395
+ spans.push([m2.index, m2.index + m2[0].length]);
181396
+ }
181397
+ return spans;
181398
+ }
181399
+ function messageFindText(message) {
181400
+ if (message.role === "user") return message.text;
181401
+ return message.entries.flatMap((e3) => e3.kind === "text" ? [e3.text] : []).join("\n");
181402
+ }
181403
+ function rangesInRow(row2, re2) {
181404
+ const ranges = [];
181405
+ for (const scope of row2.querySelectorAll(`[${CHAT_FIND_TEXT_ATTR}]`)) {
181406
+ const walker = document.createTreeWalker(scope, NodeFilter.SHOW_TEXT);
181407
+ const nodes = [];
181408
+ const starts = [];
181409
+ let text2 = "";
181410
+ for (let node2 = walker.nextNode(); node2; node2 = walker.nextNode()) {
181411
+ nodes.push(node2);
181412
+ starts.push(text2.length);
181413
+ text2 += node2.data;
181414
+ }
181415
+ let cursor = 0;
181416
+ const locate = (offset2, end) => {
181417
+ while (cursor < nodes.length - 1 && (end ? starts[cursor + 1] < offset2 : starts[cursor + 1] <= offset2)) {
181418
+ cursor += 1;
181419
+ }
181420
+ return [nodes[cursor], offset2 - starts[cursor]];
181421
+ };
181422
+ for (const [start2, end] of matchSpans(text2, re2)) {
181423
+ const range2 = document.createRange();
181424
+ range2.setStart(...locate(start2, false));
181425
+ range2.setEnd(...locate(end, true));
181426
+ ranges.push(range2);
181427
+ }
181428
+ }
181429
+ return ranges;
181430
+ }
181431
+ const paneRanges = /* @__PURE__ */ new Map();
181432
+ function paintHighlights() {
181433
+ if (typeof CSS === "undefined" || !("highlights" in CSS)) return;
181434
+ const all2 = [];
181435
+ const current2 = [];
181436
+ for (const pane of paneRanges.values()) {
181437
+ all2.push(...pane.all);
181438
+ if (pane.current) current2.push(pane.current);
181439
+ }
181440
+ CSS.highlights.set("chat-find", new Highlight(...all2));
181441
+ CSS.highlights.set("chat-find-current", new Highlight(...current2));
181442
+ }
181443
+ function useChatFind({
181444
+ messages,
181445
+ scrollEl,
181446
+ listRef,
181447
+ onBeforeScroll,
181448
+ onClose
181449
+ }) {
181450
+ const paneId = reactExports.useId();
181451
+ const [isOpen, setIsOpen] = reactExports.useState(false);
181452
+ const [query, setQuery] = reactExports.useState("");
181453
+ const [options, setOptions] = reactExports.useState(DEFAULT_OPTIONS);
181454
+ const [current2, setCurrent] = reactExports.useState(null);
181455
+ const searchBarRef = reactExports.useRef(null);
181456
+ const revealRef = reactExports.useRef(false);
181457
+ const regex2 = reactExports.useMemo(
181458
+ () => isOpen ? buildFindRegex(query, options) : null,
181459
+ [isOpen, query, options]
181460
+ );
181461
+ const countCache = reactExports.useRef(/* @__PURE__ */ new WeakMap());
181462
+ const matches2 = reactExports.useMemo(() => {
181463
+ const out = [];
181464
+ if (!regex2) return out;
181465
+ messages.forEach((message, messageIndex) => {
181466
+ let cached = countCache.current.get(message);
181467
+ if (cached?.re !== regex2) {
181468
+ cached = { re: regex2, count: matchSpans(messageFindText(message), regex2).length };
181469
+ countCache.current.set(message, cached);
181470
+ }
181471
+ for (let occurrence = 0; occurrence < cached.count; occurrence++) {
181472
+ out.push({ messageIndex, messageId: message.id, occurrence });
181473
+ }
181474
+ });
181475
+ return out;
181476
+ }, [messages, regex2]);
181477
+ const matchesRef = reactExports.useRef(matches2);
181478
+ matchesRef.current = matches2;
181479
+ reactExports.useEffect(() => {
181480
+ if (!regex2) return;
181481
+ const found = matchesRef.current;
181482
+ let firstVisible = Number.POSITIVE_INFINITY;
181483
+ if (scrollEl) {
181484
+ const top2 = scrollEl.getBoundingClientRect().top;
181485
+ for (const row2 of scrollEl.querySelectorAll("[data-index]")) {
181486
+ if (row2.getBoundingClientRect().bottom > top2) {
181487
+ firstVisible = Math.min(firstVisible, Number(row2.dataset.index));
181488
+ }
181489
+ }
181490
+ }
181491
+ const next2 = found.findIndex((m2) => m2.messageIndex >= firstVisible);
181492
+ const start2 = found[next2 === -1 ? found.length - 1 : next2];
181493
+ setCurrent(start2 ? { messageId: start2.messageId, occurrence: start2.occurrence } : null);
181494
+ revealRef.current = true;
181495
+ }, [regex2, scrollEl]);
181496
+ const lastIndexRef = reactExports.useRef(0);
181497
+ const currentIndex = reactExports.useMemo(() => {
181498
+ if (matches2.length === 0) return -1;
181499
+ const found = current2 ? matches2.findIndex(
181500
+ (m2) => m2.messageId === current2.messageId && m2.occurrence === current2.occurrence
181501
+ ) : -1;
181502
+ return found !== -1 ? found : Math.min(lastIndexRef.current, matches2.length - 1);
181503
+ }, [matches2, current2]);
181504
+ lastIndexRef.current = Math.max(0, currentIndex);
181505
+ const currentMatch = currentIndex === -1 ? void 0 : matches2[currentIndex];
181506
+ const currentMatchRef = reactExports.useRef(currentMatch);
181507
+ currentMatchRef.current = currentMatch;
181508
+ const currentKey = currentMatch ? `${currentMatch.messageId}:${currentMatch.occurrence}` : "";
181509
+ const repaint = reactExports.useCallback(() => {
181510
+ if (!regex2 || !scrollEl) {
181511
+ paneRanges.delete(paneId);
181512
+ paintHighlights();
181513
+ return;
181514
+ }
181515
+ const currentMatch2 = currentMatchRef.current;
181516
+ const all2 = [];
181517
+ let currentRange = null;
181518
+ let targetMounted = false;
181519
+ for (const row2 of scrollEl.querySelectorAll("[data-index]")) {
181520
+ const ranges = rangesInRow(row2, regex2);
181521
+ all2.push(...ranges);
181522
+ if (currentMatch2 && Number(row2.dataset.index) === currentMatch2.messageIndex) {
181523
+ targetMounted = true;
181524
+ currentRange = ranges[Math.min(currentMatch2.occurrence, ranges.length - 1)] ?? null;
181525
+ }
181526
+ }
181527
+ paneRanges.set(paneId, { all: all2, current: currentRange });
181528
+ paintHighlights();
181529
+ if (!revealRef.current || !currentMatch2) return;
181530
+ if (!targetMounted) {
181531
+ onBeforeScroll?.();
181532
+ listRef.current?.scrollToIndex(currentMatch2.messageIndex);
181533
+ return;
181534
+ }
181535
+ revealRef.current = false;
181536
+ if (!currentRange) return;
181537
+ const box = currentRange.getBoundingClientRect();
181538
+ const view = scrollEl.getBoundingClientRect();
181539
+ if (box.top < view.top || box.bottom > view.bottom) {
181540
+ onBeforeScroll?.();
181541
+ scrollEl.scrollTop += box.top - view.top - view.height / 2;
181542
+ }
181543
+ }, [regex2, scrollEl, paneId, listRef, onBeforeScroll]);
181544
+ reactExports.useEffect(() => {
181545
+ const raf = requestAnimationFrame(repaint);
181546
+ return () => cancelAnimationFrame(raf);
181547
+ }, [currentKey, repaint]);
181548
+ reactExports.useEffect(() => {
181549
+ let raf = requestAnimationFrame(repaint);
181550
+ if (!regex2 || !scrollEl) return () => cancelAnimationFrame(raf);
181551
+ const schedule2 = () => {
181552
+ cancelAnimationFrame(raf);
181553
+ raf = requestAnimationFrame(repaint);
181554
+ };
181555
+ const observer = new MutationObserver(schedule2);
181556
+ observer.observe(scrollEl, { childList: true, subtree: true, characterData: true });
181557
+ scrollEl.addEventListener("scroll", schedule2, { passive: true });
181558
+ return () => {
181559
+ cancelAnimationFrame(raf);
181560
+ observer.disconnect();
181561
+ scrollEl.removeEventListener("scroll", schedule2);
181562
+ };
181563
+ }, [repaint, regex2, scrollEl]);
181564
+ reactExports.useEffect(
181565
+ () => () => {
181566
+ paneRanges.delete(paneId);
181567
+ paintHighlights();
181568
+ },
181569
+ [paneId]
181570
+ );
181571
+ const open2 = reactExports.useCallback(() => {
181572
+ setIsOpen(true);
181573
+ requestAnimationFrame(() => {
181574
+ searchBarRef.current?.focus();
181575
+ searchBarRef.current?.select();
181576
+ });
181577
+ }, []);
181578
+ const close2 = reactExports.useCallback(() => {
181579
+ setIsOpen(false);
181580
+ onClose?.();
181581
+ }, [onClose]);
181582
+ const step = reactExports.useCallback(
181583
+ (delta) => {
181584
+ const found = matchesRef.current;
181585
+ if (found.length === 0) return;
181586
+ const next2 = found[(lastIndexRef.current + delta + found.length) % found.length];
181587
+ setCurrent({ messageId: next2.messageId, occurrence: next2.occurrence });
181588
+ revealRef.current = true;
181589
+ requestAnimationFrame(repaint);
181590
+ },
181591
+ [repaint]
181592
+ );
181593
+ const findNext = reactExports.useCallback(() => step(1), [step]);
181594
+ const findPrevious = reactExports.useCallback(() => step(-1), [step]);
181595
+ const onKeyDown = reactExports.useCallback(
181596
+ (e3) => {
181597
+ if (e3.key.toLowerCase() !== "f" || e3.shiftKey || e3.altKey) return;
181598
+ const mod = isMacPlatform() ? e3.metaKey && !e3.ctrlKey : e3.ctrlKey && !e3.metaKey;
181599
+ if (!mod) return;
181600
+ e3.preventDefault();
181601
+ e3.stopPropagation();
181602
+ open2();
181603
+ },
181604
+ [open2]
181605
+ );
181606
+ return {
181607
+ isOpen,
181608
+ open: open2,
181609
+ close: close2,
181610
+ query,
181611
+ setQuery,
181612
+ options,
181613
+ setOptions,
181614
+ matchInfo: regex2 ? {
181615
+ total: matches2.length,
181616
+ current: currentIndex + 1
181617
+ } : query ? { total: 0, current: 0 } : void 0,
181618
+ findNext,
181619
+ findPrevious,
181620
+ searchBarRef,
181621
+ onKeyDown
181622
+ };
181623
+ }
181107
181624
  const CHAT_EVENT_TYPES = [
181108
181625
  "update",
181109
181626
  "prompt",
@@ -181292,9 +181809,9 @@ function applyUpdate(state2, update, eventId) {
181292
181809
  } : state2;
181293
181810
  case "usage_update": {
181294
181811
  if (!state2.session) return state2;
181295
- const usage = { used: update.used, size: update.size, cost: update.cost ?? null };
181296
- const cost = update.cost?.currency === "USD" ? update.cost.amount : state2.session.costUsd;
181297
- return { ...state2, session: { ...state2.session, usage, costUsd: cost } };
181812
+ const cost = update.cost ?? state2.session.usage?.cost ?? null;
181813
+ const usage = { used: update.used, size: update.size, cost };
181814
+ return { ...state2, session: { ...state2.session, usage } };
181298
181815
  }
181299
181816
  case "session_info_update":
181300
181817
  return state2.session && update.title !== void 0 ? { ...state2, session: { ...state2.session, title: update.title ?? null } } : state2;
@@ -181340,7 +181857,14 @@ function transcriptReducer(state2, action) {
181340
181857
  ...state2,
181341
181858
  messages: [
181342
181859
  ...state2.messages,
181343
- { role: "user", id: action.id, text: action.text, files: action.files, pending: true }
181860
+ {
181861
+ role: "user",
181862
+ id: action.id,
181863
+ text: action.text,
181864
+ files: action.files,
181865
+ pending: true,
181866
+ ...action.createdAt !== void 0 && { createdAt: action.createdAt }
181867
+ }
181344
181868
  ],
181345
181869
  status: "submitting",
181346
181870
  taskRunning: true,
@@ -181396,9 +181920,19 @@ function transcriptReducer(state2, action) {
181396
181920
  return state2;
181397
181921
  }
181398
181922
  const lastEventId = action.eventId > 0 ? Math.max(state2.lastEventId ?? 0, action.eventId) : state2.lastEventId;
181399
- const next2 = applyLogged(state2, action);
181923
+ const next2 = stampNew(state2.messages, applyLogged(state2, action), action.createdAt);
181400
181924
  return next2 === state2 && lastEventId === state2.lastEventId ? state2 : { ...next2, lastEventId };
181401
181925
  }
181926
+ function stampNew(before, state2, createdAt) {
181927
+ if (createdAt === void 0 || state2.messages === before) return state2;
181928
+ let messages = state2.messages;
181929
+ for (let i2 = before.length; i2 < messages.length; i2++) {
181930
+ if (messages[i2].createdAt !== void 0) continue;
181931
+ if (messages === state2.messages) messages = messages.slice();
181932
+ messages[i2] = { ...messages[i2], createdAt };
181933
+ }
181934
+ return messages === state2.messages ? state2 : { ...state2, messages };
181935
+ }
181402
181936
  function applyLogged(state2, event) {
181403
181937
  switch (event.type) {
181404
181938
  case "update":
@@ -181411,7 +181945,12 @@ function applyLogged(state2, event) {
181411
181945
  const messages = state2.messages.slice();
181412
181946
  const m2 = messages[pending2];
181413
181947
  if (m2.role === "user")
181414
- messages[pending2] = { ...m2, files: event.files ?? m2.files, pending: false };
181948
+ messages[pending2] = {
181949
+ ...m2,
181950
+ files: event.files ?? m2.files,
181951
+ pending: false,
181952
+ createdAt: event.createdAt ?? m2.createdAt
181953
+ };
181415
181954
  return { ...state2, messages };
181416
181955
  }
181417
181956
  return {
@@ -181441,15 +181980,13 @@ function applyLogged(state2, event) {
181441
181980
  ...notice
181442
181981
  });
181443
181982
  }
181444
- const cost = event.usage?.costUsd;
181445
181983
  return {
181446
181984
  ...state2,
181447
181985
  messages,
181448
181986
  taskRunning: false,
181449
181987
  pendingSend: false,
181450
181988
  status: event.error ? "error" : "idle",
181451
- errorMessage: event.error,
181452
- session: state2.session && cost !== void 0 ? { ...state2.session, costUsd: cost } : state2.session
181989
+ errorMessage: event.error
181453
181990
  };
181454
181991
  }
181455
181992
  case "permission":
@@ -181488,7 +182025,6 @@ function applyLogged(state2, event) {
181488
182025
  source: "live",
181489
182026
  commands: [],
181490
182027
  usage: null,
181491
- costUsd: null,
181492
182028
  title: null
181493
182029
  },
181494
182030
  source: "live",
@@ -181652,7 +182188,13 @@ function useChatSubscription(opts) {
181652
182188
  const wireFiles = files && files.length > 0 ? await Promise.all(files.map(fileToWirePart)) : void 0;
181653
182189
  const willQueue = busyRef.current;
181654
182190
  if (!willQueue) {
181655
- dispatch2({ type: "local-send", id: `pending-${++localId}`, text: text2, files: wireFiles });
182191
+ dispatch2({
182192
+ type: "local-send",
182193
+ id: `pending-${++localId}`,
182194
+ text: text2,
182195
+ files: wireFiles,
182196
+ createdAt: Date.now()
182197
+ });
181656
182198
  }
181657
182199
  const res = await fetch(`/api/chats/${encodeURIComponent(chatId)}/messages`, {
181658
182200
  method: "POST",
@@ -183150,7 +183692,8 @@ function VirtualizedMessageList({
183150
183692
  getKey,
183151
183693
  renderItem,
183152
183694
  estimateSize = 220,
183153
- overscan = 5
183695
+ overscan = 5,
183696
+ listRef
183154
183697
  }) {
183155
183698
  const { scrollRef, scrollToBottom } = useStickToBottomContext();
183156
183699
  const [revealed, setRevealed] = reactExports.useState(false);
@@ -183213,6 +183756,11 @@ function VirtualizedMessageList({
183213
183756
  virtualizer.scrollToIndex(newIndex, { align: "start" });
183214
183757
  }
183215
183758
  }, [items]);
183759
+ reactExports.useImperativeHandle(
183760
+ listRef,
183761
+ () => ({ scrollToIndex: (index2) => virtualizer.scrollToIndex(index2, { align: "center" }) }),
183762
+ [virtualizer]
183763
+ );
183216
183764
  const virtualItems = virtualizer.getVirtualItems();
183217
183765
  const totalSize = virtualizer.getTotalSize();
183218
183766
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -183383,7 +183931,6 @@ function ChatView({
183383
183931
  }) {
183384
183932
  const [initialSessionCleared, setInitialSessionCleared] = reactExports.useState(false);
183385
183933
  const composerObstructionRef = useToastObstruction();
183386
- const [contextMeterEnabled] = useExperimentalContextMeter();
183387
183934
  const sentinelRef = reactExports.useRef(null);
183388
183935
  const stickyContextRef = reactExports.useRef(null);
183389
183936
  const prevVisibleRef = reactExports.useRef(visible);
@@ -183590,6 +184137,19 @@ function ChatView({
183590
184137
  },
183591
184138
  [optimisticQueue, queue, workspaceId, chatId]
183592
184139
  );
184140
+ const listRef = reactExports.useRef(null);
184141
+ const rootRef = reactExports.useRef(null);
184142
+ const stopStickToBottom = reactExports.useCallback(() => stickyContextRef.current?.stopScroll?.(), []);
184143
+ const focusComposer = reactExports.useCallback(() => {
184144
+ rootRef.current?.querySelector("[data-band-leaf-focus]")?.focus();
184145
+ }, []);
184146
+ const find2 = useChatFind({
184147
+ messages,
184148
+ scrollEl,
184149
+ listRef,
184150
+ onBeforeScroll: stopStickToBottom,
184151
+ onClose: focusComposer
184152
+ });
183593
184153
  const getMessageKey = reactExports.useCallback((message) => message.id, []);
183594
184154
  const messagesRef = reactExports.useRef(messages);
183595
184155
  messagesRef.current = messages;
@@ -183614,7 +184174,7 @@ function ChatView({
183614
184174
  const renderEntry = reactExports.useCallback((entry) => {
183615
184175
  switch (entry.kind) {
183616
184176
  case "text":
183617
- return entry.text.trim() ? /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: entry.text }, entry.id) : null;
184177
+ return entry.text.trim() ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-chat-find-text": "", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: entry.text }) }, entry.id) : null;
183618
184178
  case "thought":
183619
184179
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("details", { className: "group/thought text-muted-foreground", children: [
183620
184180
  /* @__PURE__ */ jsxRuntimeExports.jsxs("summary", { className: "flex cursor-pointer list-none items-center gap-1.5 text-xs", children: [
@@ -183682,15 +184242,25 @@ function ChatView({
183682
184242
  entering = true;
183683
184243
  }
183684
184244
  if (message.role === "user") {
183685
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
184245
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
183686
184246
  Message,
183687
184247
  {
183688
184248
  from: "user",
183689
184249
  className: cn$2(entering && "chat-message-enter", message.pending && "opacity-80"),
183690
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
183691
- message.files?.map((file2) => /* @__PURE__ */ jsxRuntimeExports.jsx(MessageFilePart, { part: { type: "file", ...file2 } }, file2.url)),
183692
- message.text.trim() && /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: message.text })
183693
- ] })
184250
+ children: [
184251
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
184252
+ message.files?.map((file2) => /* @__PURE__ */ jsxRuntimeExports.jsx(MessageFilePart, { part: { type: "file", ...file2 } }, file2.url)),
184253
+ message.text.trim() && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-chat-find-text": "", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: message.text }) })
184254
+ ] }),
184255
+ !message.pending && /* @__PURE__ */ jsxRuntimeExports.jsx(
184256
+ MessageActions,
184257
+ {
184258
+ text: message.text.trim(),
184259
+ createdAt: message.createdAt,
184260
+ align: "end"
184261
+ }
184262
+ )
184263
+ ]
183694
184264
  }
183695
184265
  );
183696
184266
  }
@@ -183699,10 +184269,16 @@ function ChatView({
183699
184269
  );
183700
184270
  const showThinking = isLastMessage && isStreaming && !waiting;
183701
184271
  if (message.entries.length === 0 && !showThinking) return null;
183702
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", className: entering ? "chat-message-enter" : void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
183703
- message.entries.map(renderEntry),
183704
- showThinking && /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {})
183705
- ] }) });
184272
+ const copyText = message.entries.flatMap((e3) => e3.kind === "text" && e3.text.trim() ? [e3.text.trim()] : []).join("\n\n");
184273
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Message, { from: "assistant", className: entering ? "chat-message-enter" : void 0, children: [
184274
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
184275
+ groupEntries(message.entries).map(
184276
+ (part) => part.kind === "entry" ? renderEntry(part.entry) : /* @__PURE__ */ jsxRuntimeExports.jsx(ToolGroup, { tools: part.tools, children: part.entries.map(renderEntry) }, part.id)
184277
+ ),
184278
+ showThinking && /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {})
184279
+ ] }),
184280
+ !(isLastMessage && isStreaming) && /* @__PURE__ */ jsxRuntimeExports.jsx(MessageActions, { text: copyText, createdAt: message.createdAt, align: "start" })
184281
+ ] });
183706
184282
  },
183707
184283
  [isStreaming, renderEntry]
183708
184284
  );
@@ -183717,171 +184293,191 @@ function ChatView({
183717
184293
  return (
183718
184294
  // Scope every `band-file:` link clicked inside this chat to *this*
183719
184295
  // workspace (issue #539).
183720
- /* @__PURE__ */ jsxRuntimeExports.jsx(FileLinkWorkspaceProvider, { workspaceId, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [
183721
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Conversation, { className: "min-h-0 flex-1", contextRef: stickyContextRef, children: [
183722
- loadingOlder && /* @__PURE__ */ jsxRuntimeExports.jsx(
183723
- "output",
183724
- {
183725
- className: "pointer-events-none absolute inset-x-0 top-2 z-10 flex justify-center",
183726
- "aria-busy": "true",
183727
- "aria-label": "Loading older messages",
183728
- "data-testid": "chat-pane__loading-older",
183729
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex items-center gap-2 rounded-full bg-background/90 px-3 py-1 text-xs text-muted-foreground shadow-sm", children: [
183730
- /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3.5 animate-spin" }),
183731
- "Loading earlier messages…"
183732
- ] })
183733
- }
183734
- ),
183735
- /* @__PURE__ */ jsxRuntimeExports.jsxs(ConversationContent, { children: [
183736
- hasMore && !loadingHistory && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: sentinelRef, className: "h-px w-full shrink-0", "aria-hidden": "true" }),
183737
- messages.length === 0 && !subscription.isConnected && /* @__PURE__ */ jsxRuntimeExports.jsx(ConversationSkeleton, {}),
183738
- messages.length === 0 && subscription.isConnected && /* @__PURE__ */ jsxRuntimeExports.jsx(
183739
- ConversationEmptyState,
183740
- {
183741
- "data-testid": "chat-pane__empty-state",
183742
- icon: agentType ? /* @__PURE__ */ jsxRuntimeExports.jsx(AgentIcon, { type: agentType, className: "size-8" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { className: "size-8" }),
183743
- title: workspaceName,
183744
- description: "Send a message to start coding"
183745
- }
183746
- ),
183747
- messages.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
183748
- VirtualizedMessageList,
184296
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FileLinkWorkspaceProvider, { workspaceId, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
184297
+ "div",
184298
+ {
184299
+ ref: rootRef,
184300
+ "data-chat-pane": "",
184301
+ "data-testid": "chat-pane",
184302
+ tabIndex: -1,
184303
+ onKeyDown: find2.onKeyDown,
184304
+ className: "relative flex min-h-0 flex-1 flex-col outline-none",
184305
+ children: [
184306
+ find2.isOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(
184307
+ SearchBar,
183749
184308
  {
183750
- items: messages,
183751
- getKey: getMessageKey,
183752
- renderItem: renderMessageItem
184309
+ ref: find2.searchBarRef,
184310
+ variant: "floating",
184311
+ query: find2.query,
184312
+ onQueryChange: find2.setQuery,
184313
+ options: find2.options,
184314
+ onOptionsChange: find2.setOptions,
184315
+ placeholder: "Find in chat",
184316
+ matchInfo: find2.matchInfo,
184317
+ onNext: find2.findNext,
184318
+ onPrevious: find2.findPrevious,
184319
+ onClose: find2.close
183753
184320
  }
183754
184321
  ),
183755
- isStreaming && (!messages.length || messages[messages.length - 1].role === "user") && // No assistant-message testid on the standalone placeholder.
183756
- /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", "data-testid": void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) }) }),
183757
- queuedMessagesView.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
183758
- DndContext,
183759
- {
183760
- sensors: dndSensors,
183761
- collisionDetection: closestCenter,
183762
- onDragEnd: handleReorderQueued,
183763
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
183764
- SortableContext,
184322
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Conversation, { className: "min-h-0 flex-1", contextRef: stickyContextRef, children: [
184323
+ loadingOlder && /* @__PURE__ */ jsxRuntimeExports.jsx(
184324
+ "output",
184325
+ {
184326
+ className: "pointer-events-none absolute inset-x-0 top-2 z-10 flex justify-center",
184327
+ "aria-busy": "true",
184328
+ "aria-label": "Loading older messages",
184329
+ "data-testid": "chat-pane__loading-older",
184330
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex items-center gap-2 rounded-full bg-background/90 px-3 py-1 text-xs text-muted-foreground shadow-sm", children: [
184331
+ /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3.5 animate-spin" }),
184332
+ "Loading earlier messages…"
184333
+ ] })
184334
+ }
184335
+ ),
184336
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ConversationContent, { children: [
184337
+ hasMore && !loadingHistory && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: sentinelRef, className: "h-px w-full shrink-0", "aria-hidden": "true" }),
184338
+ messages.length === 0 && !subscription.isConnected && /* @__PURE__ */ jsxRuntimeExports.jsx(ConversationSkeleton, {}),
184339
+ messages.length === 0 && subscription.isConnected && /* @__PURE__ */ jsxRuntimeExports.jsx(
184340
+ ConversationEmptyState,
183765
184341
  {
183766
- items: queuedMessagesView.map((m2) => m2.id),
183767
- strategy: verticalListSortingStrategy,
183768
- children: queuedMessagesView.map((m2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
183769
- QueuedMessageBubble,
184342
+ "data-testid": "chat-pane__empty-state",
184343
+ icon: agentType ? /* @__PURE__ */ jsxRuntimeExports.jsx(AgentIcon, { type: agentType, className: "size-8" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { className: "size-8" }),
184344
+ title: workspaceName,
184345
+ description: "Send a message to start coding"
184346
+ }
184347
+ ),
184348
+ messages.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
184349
+ VirtualizedMessageList,
184350
+ {
184351
+ items: messages,
184352
+ getKey: getMessageKey,
184353
+ renderItem: renderMessageItem,
184354
+ listRef
184355
+ }
184356
+ ),
184357
+ isStreaming && (!messages.length || messages[messages.length - 1].role === "user") && // No assistant-message testid on the standalone placeholder.
184358
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", "data-testid": void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) }) }),
184359
+ queuedMessagesView.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
184360
+ DndContext,
184361
+ {
184362
+ sensors: dndSensors,
184363
+ collisionDetection: closestCenter,
184364
+ onDragEnd: handleReorderQueued,
184365
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
184366
+ SortableContext,
183770
184367
  {
183771
- id: m2.id,
183772
- text: m2.text,
183773
- files: m2.files,
183774
- onCancel: () => handleCancelQueued(m2.id),
183775
- onEdit: (newText) => handleEditQueued(m2.id, newText)
183776
- },
183777
- m2.id
183778
- ))
184368
+ items: queuedMessagesView.map((m2) => m2.id),
184369
+ strategy: verticalListSortingStrategy,
184370
+ children: queuedMessagesView.map((m2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
184371
+ QueuedMessageBubble,
184372
+ {
184373
+ id: m2.id,
184374
+ text: m2.text,
184375
+ files: m2.files,
184376
+ onCancel: () => handleCancelQueued(m2.id),
184377
+ onEdit: (newText) => handleEditQueued(m2.id, newText)
184378
+ },
184379
+ m2.id
184380
+ ))
184381
+ }
184382
+ )
183779
184383
  }
183780
184384
  )
184385
+ ] }),
184386
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ConversationScrollButton, {})
184387
+ ] }),
184388
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
184389
+ "div",
184390
+ {
184391
+ ref: composerObstructionRef,
184392
+ "data-testid": "chat-pane__composer",
184393
+ className: "mx-auto w-full max-w-3xl shrink-0 px-3 lg:px-4 pt-2 pb-2 lg:pb-4",
184394
+ children: [
184395
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TaskListWidget, { plan, workspaceId }),
184396
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
184397
+ PromptInput,
184398
+ {
184399
+ onSubmit: handleSubmit,
184400
+ draftKey: workspaceId,
184401
+ visible,
184402
+ wsActive,
184403
+ workspaceId,
184404
+ chatId,
184405
+ children: [
184406
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SlashCommandSuggestions, { skills }),
184407
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FileMentionSuggestions, { workspaceId }),
184408
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(PromptInputBody, { children: [
184409
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
184410
+ PromptInputTextarea,
184411
+ {
184412
+ placeholder: "Type a message...",
184413
+ "data-band-leaf-focus": "",
184414
+ "data-testid": "chat__composer",
184415
+ onEscape: handleEscape,
184416
+ onPreviousMessage: getLastUserMessage,
184417
+ onShiftTab: () => window.dispatchEvent(new CustomEvent("band:toggle-mode"))
184418
+ }
184419
+ ),
184420
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
184421
+ PromptInputSubmit,
184422
+ {
184423
+ status: status === "submitting" ? "submitted" : status === "idle" ? "ready" : status,
184424
+ onStop: handleStop
184425
+ }
184426
+ )
184427
+ ] }),
184428
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(PromptInputActions, { children: [
184429
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-0.5", children: [
184430
+ /* @__PURE__ */ jsxRuntimeExports.jsx(PromptInputAttach, {}),
184431
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
184432
+ SessionHistoryMenu,
184433
+ {
184434
+ workspaceId,
184435
+ chatId,
184436
+ activeSessionId: currentSessionId,
184437
+ onSelectSession: handleSelectSession,
184438
+ onNewSession: handleNewSession
184439
+ }
184440
+ ),
184441
+ pickers.modes.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
184442
+ ModeMenu,
184443
+ {
184444
+ modes: pickers.modes,
184445
+ selected: pickers.mode,
184446
+ onSelect: handleModeSelect
184447
+ }
184448
+ )
184449
+ ] }),
184450
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-0.5", children: [
184451
+ (pickers.models.length > 0 || pickers.effort || pickers.fast || pickers.others.length > 0) && /* @__PURE__ */ jsxRuntimeExports.jsx(
184452
+ ModelSettingsMenu,
184453
+ {
184454
+ models: pickers.models,
184455
+ selectedModel: pickers.model,
184456
+ groupByProvider: agentType === "opencode",
184457
+ onSelectModel: handleModelSelect,
184458
+ effort: pickers.effort,
184459
+ effortLabel: pickers.effortLabel,
184460
+ fast: pickers.fast,
184461
+ others: pickers.others,
184462
+ onConfig: handleConfig,
184463
+ modelsDisabled: isStreaming,
184464
+ pending: pendingConfig > 0
184465
+ }
184466
+ ),
184467
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ContextMeter, { usage: session?.usage ?? null })
184468
+ ] })
184469
+ ] })
184470
+ ]
184471
+ }
184472
+ )
184473
+ ]
183781
184474
  }
183782
184475
  )
183783
- ] }),
183784
- /* @__PURE__ */ jsxRuntimeExports.jsx(ConversationScrollButton, {})
183785
- ] }),
183786
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
183787
- "div",
183788
- {
183789
- ref: composerObstructionRef,
183790
- "data-testid": "chat-pane__composer",
183791
- className: "mx-auto w-full max-w-3xl shrink-0 px-3 lg:px-4 pt-2 pb-2 lg:pb-4",
183792
- children: [
183793
- /* @__PURE__ */ jsxRuntimeExports.jsx(TaskListWidget, { plan, workspaceId }),
183794
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
183795
- PromptInput,
183796
- {
183797
- onSubmit: handleSubmit,
183798
- draftKey: workspaceId,
183799
- visible,
183800
- wsActive,
183801
- workspaceId,
183802
- chatId,
183803
- children: [
183804
- /* @__PURE__ */ jsxRuntimeExports.jsx(SlashCommandSuggestions, { skills }),
183805
- /* @__PURE__ */ jsxRuntimeExports.jsx(FileMentionSuggestions, { workspaceId }),
183806
- /* @__PURE__ */ jsxRuntimeExports.jsx(
183807
- PromptInputTextarea,
183808
- {
183809
- placeholder: "Type a message...",
183810
- "data-band-leaf-focus": "",
183811
- "data-testid": "chat__composer",
183812
- onEscape: handleEscape,
183813
- onPreviousMessage: getLastUserMessage,
183814
- onShiftTab: () => window.dispatchEvent(new CustomEvent("band:toggle-mode"))
183815
- }
183816
- ),
183817
- /* @__PURE__ */ jsxRuntimeExports.jsxs(PromptInputActions, { children: [
183818
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-0.5", children: [
183819
- /* @__PURE__ */ jsxRuntimeExports.jsx(PromptInputAttach, {}),
183820
- /* @__PURE__ */ jsxRuntimeExports.jsx(
183821
- SessionHistoryMenu,
183822
- {
183823
- workspaceId,
183824
- chatId,
183825
- activeSessionId: currentSessionId,
183826
- onSelectSession: handleSelectSession,
183827
- onNewSession: handleNewSession
183828
- }
183829
- ),
183830
- contextMeterEnabled && /* @__PURE__ */ jsxRuntimeExports.jsx(ContextMeter, { usage: session?.usage ?? null, costUsd: session?.costUsd ?? null }),
183831
- pickers.modes.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
183832
- ModeMenu,
183833
- {
183834
- modes: pickers.modes,
183835
- selected: pickers.mode,
183836
- onSelect: handleModeSelect
183837
- }
183838
- )
183839
- ] }),
183840
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-0.5", children: [
183841
- (pickers.models.length > 0 || pickers.effort || pickers.fast || pickers.others.length > 0) && /* @__PURE__ */ jsxRuntimeExports.jsx(
183842
- ModelSettingsMenu,
183843
- {
183844
- models: pickers.models,
183845
- selectedModel: pickers.model,
183846
- groupByProvider: agentType === "opencode",
183847
- onSelectModel: handleModelSelect,
183848
- effort: pickers.effort,
183849
- effortLabel: pickers.effortLabel,
183850
- fast: pickers.fast,
183851
- others: pickers.others,
183852
- onConfig: handleConfig,
183853
- modelsDisabled: isStreaming,
183854
- pending: pendingConfig > 0
183855
- }
183856
- ),
183857
- /* @__PURE__ */ jsxRuntimeExports.jsx(
183858
- PromptInputSubmit,
183859
- {
183860
- status: status === "submitting" ? "submitted" : status === "idle" ? "ready" : status,
183861
- onStop: handleStop
183862
- }
183863
- )
183864
- ] })
183865
- ] })
183866
- ]
183867
- }
183868
- )
183869
- ]
183870
- }
183871
- )
183872
- ] }) })
184476
+ ]
184477
+ }
184478
+ ) })
183873
184479
  );
183874
184480
  }
183875
- function ModeIcon({ modeId, className }) {
183876
- switch (modeId) {
183877
- case "plan":
183878
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollText, { className });
183879
- case "edit":
183880
- return /* @__PURE__ */ jsxRuntimeExports.jsx(CodeXml, { className });
183881
- default:
183882
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className });
183883
- }
183884
- }
183885
184481
  function ModeMenu({
183886
184482
  modes,
183887
184483
  selected,
@@ -183890,21 +184486,18 @@ function ModeMenu({
183890
184486
  const current2 = modes.find((m2) => m2.id === selected) ?? modes[0];
183891
184487
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
183892
184488
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
183893
- /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
184489
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
183894
184490
  "button",
183895
184491
  {
183896
184492
  type: "button",
183897
184493
  "data-testid": "chat-pane__mode-menu",
183898
184494
  className: "inline-flex min-w-0 items-center gap-1 rounded-md px-1.5 py-1 text-xs font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
183899
- children: [
183900
- /* @__PURE__ */ jsxRuntimeExports.jsx(ModeIcon, { modeId: current2?.id ?? "", className: "size-3 shrink-0" }),
183901
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: current2?.name ?? "Mode" })
183902
- ]
184495
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: current2?.name ?? "Mode" })
183903
184496
  }
183904
184497
  ) }) }),
183905
184498
  /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: "⇧Tab" })
183906
184499
  ] }),
183907
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "start", className: "min-w-[140px]", children: modes.map((mode) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
184500
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "start", className: "min-w-[140px]", children: modes.map((mode) => /* @__PURE__ */ jsxRuntimeExports.jsx(
183908
184501
  DropdownMenuItem,
183909
184502
  {
183910
184503
  onClick: () => onSelect(mode.id),
@@ -183912,13 +184505,10 @@ function ModeMenu({
183912
184505
  "flex items-start gap-2",
183913
184506
  mode.id === (selected ?? modes[0]?.id) ? "bg-accent" : ""
183914
184507
  ),
183915
- children: [
183916
- /* @__PURE__ */ jsxRuntimeExports.jsx(ModeIcon, { modeId: mode.id, className: "size-4 mt-0.5 shrink-0" }),
183917
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-0.5", children: [
183918
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium", children: mode.name }),
183919
- mode.description && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: mode.description })
183920
- ] })
183921
- ]
184508
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-0.5", children: [
184509
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium", children: mode.name }),
184510
+ mode.description && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: mode.description })
184511
+ ] })
183922
184512
  },
183923
184513
  mode.id
183924
184514
  )) })
@@ -183964,7 +184554,7 @@ function ModelSettingsMenu({
183964
184554
  }
183965
184555
  ),
183966
184556
  fastOn && /* @__PURE__ */ jsxRuntimeExports.jsx(Zap, { "aria-label": "Fast mode on", className: "size-3 shrink-0" }),
183967
- pending2 ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3 shrink-0 animate-spin text-muted-foreground" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-3 shrink-0 text-muted-foreground" })
184557
+ pending2 && /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3 shrink-0 animate-spin text-muted-foreground" })
183968
184558
  ]
183969
184559
  }
183970
184560
  ) }),
@@ -184052,7 +184642,7 @@ function ModelSettingsMenu({
184052
184642
  /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuPortal, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
184053
184643
  DropdownMenuSubContent,
184054
184644
  {
184055
- className: "w-64 max-h-[min(400px,var(--radix-dropdown-menu-content-available-height))]",
184645
+ className: "w-64 [--popper-max-height:400px]",
184056
184646
  "data-testid": "chat-pane__model-menu-more-models-content",
184057
184647
  sideOffset: submenuOffset,
184058
184648
  children: groupByProvider ? /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -184113,7 +184703,7 @@ function ProviderModelItems({
184113
184703
  /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuPortal, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
184114
184704
  DropdownMenuSubContent,
184115
184705
  {
184116
- className: "w-64 max-h-[min(400px,var(--radix-dropdown-menu-content-available-height))]",
184706
+ className: "w-64 [--popper-max-height:400px]",
184117
184707
  "data-testid": `chat-pane__model-menu-provider--${group.id}-content`,
184118
184708
  sideOffset,
184119
184709
  children: group.models.map((model) => /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -184200,10 +184790,11 @@ function formatTokens$1(n2) {
184200
184790
  }
184201
184791
  const DONUT_RADIUS = 9;
184202
184792
  const DONUT_CIRCUMFERENCE = 2 * Math.PI * DONUT_RADIUS;
184203
- function ContextMeter({
184204
- usage,
184205
- costUsd
184206
- }) {
184793
+ function formatCost(cost) {
184794
+ const digits = cost.amount < 1 ? 3 : 2;
184795
+ return cost.currency === "USD" ? `$${cost.amount.toFixed(digits)}` : `${cost.amount.toFixed(digits)} ${cost.currency}`;
184796
+ }
184797
+ function ContextMeter({ usage }) {
184207
184798
  const pct = usage && usage.size > 0 ? Math.min(100, usage.used / usage.size * 100) : 0;
184208
184799
  const pctRounded = Math.round(pct);
184209
184800
  const danger = pct >= 85;
@@ -184225,7 +184816,7 @@ function ContextMeter({
184225
184816
  onPointerLeave: (e3) => {
184226
184817
  if (e3.pointerType === "mouse") setOpen(false);
184227
184818
  },
184228
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { viewBox: "0 0 24 24", className: "size-5 -rotate-90 shrink-0", "aria-hidden": "true", children: [
184819
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { viewBox: "0 0 24 24", className: "size-4 -rotate-90 shrink-0", "aria-hidden": "true", children: [
184229
184820
  /* @__PURE__ */ jsxRuntimeExports.jsx(
184230
184821
  "circle",
184231
184822
  {
@@ -184266,8 +184857,8 @@ function ContextMeter({
184266
184857
  className: "w-auto p-2",
184267
184858
  side: "top",
184268
184859
  align: "end",
184269
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-0.5 text-xs", children: [
184270
- usage ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
184860
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-testid": "chat-pane__context-meter-details", className: "space-y-0.5 text-xs", children: [
184861
+ usage ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-testid": "chat-pane__context-meter-usage", children: [
184271
184862
  "Context: ",
184272
184863
  usage.used.toLocaleString(),
184273
184864
  " / ",
@@ -184276,9 +184867,9 @@ function ContextMeter({
184276
184867
  pctRounded,
184277
184868
  "%)"
184278
184869
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "No usage reported yet" }),
184279
- costUsd !== null && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
184280
- "Cost: $",
184281
- costUsd.toFixed(costUsd < 1 ? 3 : 2)
184870
+ usage?.cost && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-testid": "chat-pane__context-meter-cost", children: [
184871
+ "Cost: ",
184872
+ formatCost(usage.cost)
184282
184873
  ] })
184283
184874
  ] })
184284
184875
  }
@@ -196539,28 +197130,12 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
196539
197130
  const [mounted, setMounted] = reactExports.useState(() => /* @__PURE__ */ new Set());
196540
197131
  const pathname = useRouterState({ select: (s2) => s2.location.pathname });
196541
197132
  const activeWorkspaceId = parseWorkspaceFromPath(pathname);
196542
- const wrapperRef = reactExports.useRef(null);
196543
- const prevWorkspaceIdRef = reactExports.useRef(activeWorkspaceId);
196544
197133
  if (activeWorkspaceId && !mounted.has(activeWorkspaceId)) {
196545
197134
  setMounted((prev2) => {
196546
197135
  if (prev2.has(activeWorkspaceId)) return prev2;
196547
197136
  return new Set(prev2).add(activeWorkspaceId);
196548
197137
  });
196549
197138
  }
196550
- reactExports.useLayoutEffect(() => {
196551
- const prev2 = prevWorkspaceIdRef.current;
196552
- prevWorkspaceIdRef.current = activeWorkspaceId;
196553
- if (!prev2 || !activeWorkspaceId || prev2 === activeWorkspaceId) return;
196554
- const el = wrapperRef.current;
196555
- if (!el) return;
196556
- el.style.transition = "none";
196557
- el.style.opacity = "0.6";
196558
- const raf = requestAnimationFrame(() => {
196559
- el.style.transition = "opacity 140ms cubic-bezier(0.23, 1, 0.32, 1)";
196560
- el.style.opacity = "1";
196561
- });
196562
- return () => cancelAnimationFrame(raf);
196563
- }, [activeWorkspaceId]);
196564
197139
  const { projects, isLoading, error } = useProjects();
196565
197140
  reactExports.useEffect(() => {
196566
197141
  if (isLoading || error) return;
@@ -196595,7 +197170,7 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
196595
197170
  }
196596
197171
  lastMountedRef.current = mounted;
196597
197172
  }, [mounted]);
196598
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: wrapperRef, className: "relative h-full w-full", children: [
197173
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative h-full w-full", children: [
196599
197174
  !activeWorkspaceId && emptyState,
196600
197175
  Array.from(mounted, (workspaceId) => {
196601
197176
  const isActive = workspaceId === activeWorkspaceId;
@@ -196939,7 +197514,7 @@ function SharedDockviewLayout() {
196939
197514
  e3.preventDefault();
196940
197515
  setSearchFilesOpen(true);
196941
197516
  } else if (key2 === "f" && !e3.shiftKey && !e3.altKey) {
196942
- if (terminalFocused) return;
197517
+ if (terminalFocused || document.activeElement?.closest("[data-chat-pane]")) return;
196943
197518
  e3.preventDefault();
196944
197519
  const fn2 = ws ? findInFileRegistry.current.get(ws) : void 0;
196945
197520
  if (fn2) fn2();
@@ -197164,7 +197739,7 @@ function SharedDockviewLayout() {
197164
197739
  ] });
197165
197740
  }
197166
197741
  const TerminalPanel = reactExports.lazy(
197167
- () => import("./TerminalPanel-BE1IBqp5.js").then((m2) => ({ default: m2.TerminalPanel }))
197742
+ () => import("./TerminalPanel-oz5y-mkP.js").then((m2) => ({ default: m2.TerminalPanel }))
197168
197743
  );
197169
197744
  const nestedTheme = {
197170
197745
  name: "band",
@@ -198329,9 +198904,9 @@ function FileLeaf({ params, api: api2 }) {
198329
198904
  const chosen = await pickSaveFile({ content: content2, defaultPath: workspacePath ?? void 0 });
198330
198905
  if (!chosen) return null;
198331
198906
  const chosenPosix = chosen.replace(/\\/g, "/");
198332
- const relative = workspacePath != null ? pathInside(workspacePath, chosenPosix) : null;
198333
- const isExternal = relative === null;
198334
- const newPath = relative ?? chosenPosix;
198907
+ const relative2 = workspacePath != null ? pathInside(workspacePath, chosenPosix) : null;
198908
+ const isExternal = relative2 === null;
198909
+ const newPath = relative2 ?? chosenPosix;
198335
198910
  const actions = getWorkspaceLeafActions(workspaceIdRaw);
198336
198911
  removeFileTabState(workspaceIdRaw, filePathRaw);
198337
198912
  actions?.openFile(newPath, { external: isExternal, preview: false });
@@ -198793,7 +199368,7 @@ function SectionDiffFile({
198793
199368
  }),
198794
199369
  enabled: nearViewport && (section !== "branch" || !!mergeBase)
198795
199370
  });
198796
- const Chevron = collapsed ? ChevronRight : ChevronDown;
199371
+ const Chevron2 = collapsed ? ChevronRight : ChevronDown;
198797
199372
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
198798
199373
  "div",
198799
199374
  {
@@ -198810,7 +199385,7 @@ function SectionDiffFile({
198810
199385
  "aria-expanded": !collapsed,
198811
199386
  className: "flex min-w-0 flex-1 items-center gap-1.5 text-left",
198812
199387
  children: [
198813
- /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron, { className: "size-3.5 shrink-0 text-muted-foreground" }),
199388
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3.5 shrink-0 text-muted-foreground" }),
198814
199389
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate font-medium", title: entry.path, children: entry.oldPath ? `${entry.oldPath} → ${entry.path}` : entry.path }),
198815
199390
  !!entry.additions && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "shrink-0 text-green-600 dark:text-green-400", children: [
198816
199391
  "+",
@@ -201455,7 +202030,7 @@ function CronjobDialog({
201455
202030
  ] }),
201456
202031
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-4 py-2", children: [
201457
202032
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
201458
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "cj-name", children: "Name" }),
202033
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-name", children: "Name" }),
201459
202034
  /* @__PURE__ */ jsxRuntimeExports.jsx(
201460
202035
  Input,
201461
202036
  {
@@ -201467,7 +202042,7 @@ function CronjobDialog({
201467
202042
  )
201468
202043
  ] }),
201469
202044
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
201470
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "cj-prompt", children: "Prompt" }),
202045
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-prompt", children: "Prompt" }),
201471
202046
  /* @__PURE__ */ jsxRuntimeExports.jsx(
201472
202047
  Textarea,
201473
202048
  {
@@ -201480,7 +202055,7 @@ function CronjobDialog({
201480
202055
  )
201481
202056
  ] }),
201482
202057
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
201483
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "cj-cron", children: "Cron Expression" }),
202058
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-cron", children: "Cron Expression" }),
201484
202059
  /* @__PURE__ */ jsxRuntimeExports.jsx(
201485
202060
  Input,
201486
202061
  {
@@ -201495,7 +202070,7 @@ function CronjobDialog({
201495
202070
  ] }),
201496
202071
  !editingJob && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
201497
202072
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
201498
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { children: "Scope" }),
202073
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { children: "Scope" }),
201499
202074
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: scope, onValueChange: (v2) => setScope(v2), children: [
201500
202075
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
201501
202076
  /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
@@ -201505,7 +202080,7 @@ function CronjobDialog({
201505
202080
  ] })
201506
202081
  ] }),
201507
202082
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
201508
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { children: "Project" }),
202083
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { children: "Project" }),
201509
202084
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: selectedProject, onValueChange: handleProjectChange, children: [
201510
202085
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { "data-testid": "cronjobs__project-select", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Select a project" }) }),
201511
202086
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: projects.map((p2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectItem, { value: p2.name, children: [
@@ -201523,7 +202098,7 @@ function CronjobDialog({
201523
202098
  ] })
201524
202099
  ] }),
201525
202100
  scope === "workspace" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
201526
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { children: "Workspace" }),
202101
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { children: "Workspace" }),
201527
202102
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
201528
202103
  Select,
201529
202104
  {
@@ -201545,7 +202120,7 @@ function CronjobDialog({
201545
202120
  ] }),
201546
202121
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [
201547
202122
  /* @__PURE__ */ jsxRuntimeExports.jsx(Switch, { checked: enabled, onCheckedChange: setEnabled, id: "cj-enabled" }),
201548
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "cj-enabled", children: "Enabled" })
202123
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-enabled", children: "Enabled" })
201549
202124
  ] }),
201550
202125
  submitError && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-destructive", children: submitError })
201551
202126
  ] }),
@@ -221322,7 +221897,7 @@ function ReportsPageContent() {
221322
221897
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: PERIOD_OPTIONS.map((opt) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
221323
221898
  ] }),
221324
221899
  period2 === "custom" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
221325
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { className: "text-xs text-muted-foreground", htmlFor: "reports-from", children: "From" }),
221900
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { className: "text-xs text-muted-foreground", htmlFor: "reports-from", children: "From" }),
221326
221901
  /* @__PURE__ */ jsxRuntimeExports.jsx(
221327
221902
  Input,
221328
221903
  {
@@ -221334,7 +221909,7 @@ function ReportsPageContent() {
221334
221909
  "data-testid": "reports__custom-from"
221335
221910
  }
221336
221911
  ),
221337
- /* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { className: "text-xs text-muted-foreground", htmlFor: "reports-to", children: "To" }),
221912
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { className: "text-xs text-muted-foreground", htmlFor: "reports-to", children: "To" }),
221338
221913
  /* @__PURE__ */ jsxRuntimeExports.jsx(
221339
221914
  Input,
221340
221915
  {
@@ -223817,18 +224392,18 @@ function ToolbarOverflowProvider({ children: children2 }) {
223817
224392
  );
223818
224393
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(ToolbarOverflowContext.Provider, { value, children: [
223819
224394
  children2,
223820
- /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showTasksDialog, onOpenChange: setShowTasksDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-6xl h-[80vh] flex flex-col p-0 gap-0", children: [
224395
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showTasksDialog, onOpenChange: setShowTasksDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-6xl h-[calc(80vh/var(--app-zoom,1))] flex flex-col p-0 gap-0", children: [
223821
224396
  /* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 border-b border-border/50 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Tasks" }) }),
223822
224397
  /* @__PURE__ */ jsxRuntimeExports.jsx(TasksPageContent, {})
223823
224398
  ] }) }),
223824
- /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showCronjobsDialog, onOpenChange: setShowCronjobsDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-6xl h-[80vh] flex flex-col p-0 gap-0", children: [
224399
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showCronjobsDialog, onOpenChange: setShowCronjobsDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-6xl h-[calc(80vh/var(--app-zoom,1))] flex flex-col p-0 gap-0", children: [
223825
224400
  /* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 border-b border-border/50 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Cronjobs" }) }),
223826
224401
  /* @__PURE__ */ jsxRuntimeExports.jsx(CronjobsPageContent, {})
223827
224402
  ] }) }),
223828
224403
  /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showReportsDialog, onOpenChange: setShowReportsDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
223829
224404
  DialogContent,
223830
224405
  {
223831
- className: "sm:max-w-6xl h-[80vh] flex flex-col p-0 gap-0",
224406
+ className: "sm:max-w-6xl h-[calc(80vh/var(--app-zoom,1))] flex flex-col p-0 gap-0",
223832
224407
  "data-testid": "reports-dialog",
223833
224408
  children: [
223834
224409
  /* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 border-b border-border/50 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Usage" }) }),
@@ -223839,7 +224414,7 @@ function ToolbarOverflowProvider({ children: children2 }) {
223839
224414
  /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showResourcesDialog, onOpenChange: setShowResourcesDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
223840
224415
  DialogContent,
223841
224416
  {
223842
- className: "sm:max-w-6xl h-[80vh] flex flex-col p-0 gap-0",
224417
+ className: "sm:max-w-6xl h-[calc(80vh/var(--app-zoom,1))] flex flex-col p-0 gap-0",
223843
224418
  "data-testid": "resources-dialog",
223844
224419
  children: [
223845
224420
  /* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 border-b border-border/50 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Resources" }) }),
@@ -224784,12 +225359,12 @@ function RootLayout() {
224784
225359
  ] })
224785
225360
  ] });
224786
225361
  }
224787
- const $$splitComponentImporter$1 = () => import("./index-B5Ou6PeY.js");
225362
+ const $$splitComponentImporter$1 = () => import("./index-WYUrghvu.js");
224788
225363
  const Route$1 = createFileRoute("/")({
224789
225364
  component: lazyRouteComponent($$splitComponentImporter$1, "component")
224790
225365
  });
224791
- const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-C895SrvA.js");
224792
- const $$splitComponentImporter = () => import("./workspace._workspaceId-DJjGZFKN.js");
225366
+ const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-DMYkHS43.js");
225367
+ const $$splitComponentImporter = () => import("./workspace._workspaceId-Bd4v7PwG.js");
224793
225368
  const Route2 = createFileRoute("/workspace/$workspaceId")({
224794
225369
  component: lazyRouteComponent($$splitComponentImporter, "component"),
224795
225370
  // Bookmarks / shared links from before route unification (`/workspace/$id/changes`,
@@ -224957,11 +225532,11 @@ export {
224957
225532
  writeClipboardText as bS,
224958
225533
  readClipboardText as bT,
224959
225534
  ArrowLeft as bU,
224960
- ArrowUp as bV,
224961
- ArrowDown as bW,
224962
- ArrowRight as bX,
224963
- ClipboardCopy as bY,
224964
- ClipboardPaste as bZ,
225535
+ ArrowDown as bV,
225536
+ ArrowRight as bW,
225537
+ ClipboardCopy as bX,
225538
+ ClipboardPaste as bY,
225539
+ CornerDownLeft as bZ,
224965
225540
  useSettingsQuery as b_,
224966
225541
  positionEdgeLabel as ba,
224967
225542
  insertEdgeLabel as bb,