@band-app/server 0.35.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.
- package/dist/client/assets/TerminalPanel-B6hpsMbz.js +1 -0
- package/dist/client/assets/{_basePickBy-Dx35lEgW.js → _basePickBy-DCmd5ciV.js} +1 -1
- package/dist/client/assets/{_baseUniq-CMkXBei9.js → _baseUniq-D9VK2Z8h.js} +1 -1
- package/dist/client/assets/{arc-DK3KeNW-.js → arc-CUv7R2hs.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-_hgteJO2.js → architectureDiagram-VXUJARFQ-p6VpjWC_.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-D4nK8NF5.js → blockDiagram-VD42YOAC-BqO2dZTh.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-D8ZrZiTI.js → c4Diagram-YG6GDRKO-Dj3Q1dN_.js} +1 -1
- package/dist/client/assets/channel-30zU4uX-.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-EqwJIY-C.js → chunk-4BX2VUAB-ZCRzpI76.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CHNR-VN7.js → chunk-55IACEB6-N8w7W4nW.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-CVzCDJlc.js → chunk-B4BG7PRW-Bd2C6K3g.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-oTBFM9ze.js → chunk-DI55MBZ5-CSmsIkhT.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-Bo-2Dikp.js → chunk-FMBD7UC4-CSFx-rdE.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-FqjvjGa_.js → chunk-QN33PNHL-OZhPV9ZW.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CKO815gH.js → chunk-QZHKN3VN-CmQTIqBs.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-3zjd2CiU.js → chunk-TZMSLE5B-CZXFZkbf.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-xMXNI9Qc.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-xMXNI9Qc.js +1 -0
- package/dist/client/assets/clone-D1RDOFVG.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-4x0aq1rT.js → cose-bilkent-S5V4N54A-D2ZJ7fd6.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-C685K4i3.js → dagre-6UL2VRFP-DWWSarQ5.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-B6qGMKr7.js → diagram-PSM6KHXK-Brpmw2Hy.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-Bfd-BbBX.js → diagram-QEK2KX5R-ChxL1lOj.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-BwLaDVQ4.js → diagram-S2PKOQOG-CWk5ucVa.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-DoQMRnGW.js → erDiagram-Q2GNP2WA-TKtLKYBO.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-2yTNMz0q.js → flowDiagram-NV44I4VS-CNkvODlq.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-DXqi-DbY.js → ganttDiagram-JELNMOA3-GpiTT-6g.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-C7CSi-Aw.js → gitGraphDiagram-V2S2FVAM-Dka5-Ebv.js} +1 -1
- package/dist/client/assets/{graph-DZMgyc4x.js → graph-BJfBQ-lk.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-CrQyrK8r.js → highlighted-body-B3W2YXNL-Dcw7_8Mg.js} +1 -1
- package/dist/client/assets/{index-1zFJtuaW.js → index-B55cfwG2.js} +1 -1
- package/dist/client/assets/{index-CKwJD7xz.js → index-B8-bfanc.js} +1 -1
- package/dist/client/assets/{index-C3LMxvTf.js → index-BBjfnWP1.js} +1 -1
- package/dist/client/assets/{index-DilFeEck.js → index-BVmOFLZL.js} +1 -1
- package/dist/client/assets/{index-BLIt4sly.js → index-Bf0KQTWS.js} +1 -1
- package/dist/client/assets/{index-CHYUiFs8.js → index-BqB0fXhh.js} +1 -1
- package/dist/client/assets/{index-DAIY6Xmz.js → index-Bw0gx-LL.js} +1 -1
- package/dist/client/assets/{index-CW98CyWe.js → index-C04T_A2n.js} +1 -1
- package/dist/client/assets/{index-CLyGoryJ.js → index-D4kWf9j1.js} +1 -1
- package/dist/client/assets/{index-C0k4s5Ib.js → index-D6AQfoh3.js} +1 -1
- package/dist/client/assets/{index-BqO-wiLH.js → index-D7ptzMHA.js} +1 -1
- package/dist/client/assets/{index-CIWfGOhs.js → index-DNCwYJJi.js} +1 -1
- package/dist/client/assets/{index-au-xsyz1.js → index-GWun5iKj.js} +1 -1
- package/dist/client/assets/{infoDiagram-HS3SLOUP-D_T5UsZX.js → infoDiagram-HS3SLOUP-yepsEzeD.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DVkCPjcS.js → journeyDiagram-XKPGCS4Q-Ah-IVMRC.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-DXhSxzi6.js → kanban-definition-3W4ZIXB7-4lmmn3Kf.js} +1 -1
- package/dist/client/assets/{layout-Cf3mHsPQ.js → layout-WnM58jJN.js} +1 -1
- package/dist/client/assets/main-C-PIkr2h.css +1 -0
- package/dist/client/assets/{main-KoITWpfm.js → main-D7maoxCk.js} +253 -248
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-C2IQK3iT.js → mindmap-definition-VGOIOE7T-CW03vZML.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-BGQzh0tv.js → pieDiagram-ADFJNKIX-b38HzvV9.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-LdhEGcnL.js → quadrantDiagram-AYHSOK5B-D7COvUcB.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-cnV0P1YE.js → requirementDiagram-UZGBJVZJ-Dbo91lMQ.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BoAgFD3l.js → sankeyDiagram-TZEHDZUN-DPpuI6f6.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-CxF4TFvD.js → sequenceDiagram-WL72ISMW-osyniVrm.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-wf-3-MA5.js → stateDiagram-FKZM4ZOC-CEtXxDG2.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DtnGHNEG.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-W-q-JEwZ.js → timeline-definition-IT6M3QCI-Bbim-hJj.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-Ct5obnww.js → treemap-GDKQZRPO-Bo5jz1c4.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-BUh7S3Ta.js → workspace._workspaceId-BAa7JD1w.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-CeUz5yMg.js → workspace._workspaceId-Dx3IQ0uo.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-sXsIzR4l.js → xychartDiagram-PRI3JC2R-CwV1AnKv.js} +1 -1
- package/dist/openapi.json +18 -8
- package/dist/server/assets/{TerminalPanel-DlJiSPdF.js → TerminalPanel-oz5y-mkP.js} +6 -6
- package/dist/server/assets/{_basePickBy-DTbj2hwA.js → _basePickBy-DEzTaMUa.js} +2 -2
- package/dist/server/assets/{_baseUniq-pix9fqoH.js → _baseUniq-CnsXScTA.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-CGO9e_6B.js +4 -0
- package/dist/server/assets/{arc-BMzVEd8n.js → arc-DFOFayWx.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-DUwedg7M.js → architecture-7HQA4BMR-n9VmbCuR.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-BVdUCEQJ.js → architectureDiagram-VXUJARFQ-IeNkR88v.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-7f6jQaSI.js → blockDiagram-VD42YOAC-CWXr6KW7.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-Dyit97Cn.js → c4Diagram-YG6GDRKO-DIRimETA.js} +2 -2
- package/dist/server/assets/{channel-JMSLQrct.js → channel-Cdqq5j16.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-DqntIakH.js → chunk-4BX2VUAB-Cozm9hqk.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-CzZbYD81.js → chunk-55IACEB6-DRjrJM1L.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-Cxs7LhtB.js → chunk-B4BG7PRW-BwiA7gAZ.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-D82pXnd6.js → chunk-DI55MBZ5-DYx-lIkt.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-GTnnxNFW.js → chunk-FMBD7UC4-Bd38Wnw9.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-B5OJJkcK.js → chunk-QN33PNHL-ONbSMsSY.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-BWZGgInb.js → chunk-QZHKN3VN-fU_vVgPJ.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-9TD1Q4Kc.js → chunk-TZMSLE5B-BBpSfNKJ.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CaG6UQL6.js → classDiagram-2ON5EDUG-BLteCxZe.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-CaG6UQL6.js → classDiagram-v2-WZHVMYZB-BLteCxZe.js} +5 -5
- package/dist/server/assets/{clone-DgeV5mya.js → clone-DHWXuNGD.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-DLdWU-b5.js → cose-bilkent-S5V4N54A-Dqv8g3XR.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-B0nEEYz6.js → dagre-6UL2VRFP-DvvoFaVJ.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-CheGKVJh.js → diagram-PSM6KHXK-CbKKlJvK.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-CthFJNjb.js → diagram-QEK2KX5R-GLrYhnWw.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-D07bUeWi.js → diagram-S2PKOQOG-uaww8JQd.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-Ci87z6gp.js → erDiagram-Q2GNP2WA-CBpgZJNk.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-DivTbEjK.js → flowDiagram-NV44I4VS-DwqeGUt2.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-Bfi_i44A.js → ganttDiagram-JELNMOA3-CSDzrG3u.js} +1 -1
- package/dist/server/assets/{gitGraph-G5XIXVHT-DHmMmJEG.js → gitGraph-G5XIXVHT-CI6QTqC-.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-Czb_wB7o.js → gitGraphDiagram-V2S2FVAM-4Hraf1YX.js} +7 -7
- package/dist/server/assets/{graph-GE1fpS3M.js → graph-BKeol0ik.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-B9E1TIHZ.js → highlighted-body-B3W2YXNL-C_Th2vxh.js} +1 -1
- package/dist/server/assets/{index-BnjbnlDe.js → index-B-VeeFTd.js} +1 -1
- package/dist/server/assets/{index-DkEya4LL.js → index-BQEmg9fY.js} +1 -1
- package/dist/server/assets/{index-BAImbDDY.js → index-BVY32Ndh.js} +1 -1
- package/dist/server/assets/{index-DaNksnON.js → index-BmH5PL3t.js} +1 -1
- package/dist/server/assets/{index-C3C8EWaf.js → index-BtAQWAP4.js} +1 -1
- package/dist/server/assets/{index-CdUUMlBr.js → index-CXm0C-yc.js} +1 -1
- package/dist/server/assets/{index-wDH-Tiw_.js → index-CklLNUhb.js} +1 -1
- package/dist/server/assets/{index-D6JW20YV.js → index-CoOBJObR.js} +1 -1
- package/dist/server/assets/{index-CA0ijKgN.js → index-DOtn1sP2.js} +1 -1
- package/dist/server/assets/{index-mKjVv-iY.js → index-KTMc95HN.js} +1 -1
- package/dist/server/assets/{index-wHjghntc.js → index-SeV-ZdZi.js} +1 -1
- package/dist/server/assets/{index-CJ4gZHux.js → index-WYUrghvu.js} +1 -1
- package/dist/server/assets/{index-7UcRPUFC.js → index-dS3n7bt3.js} +1 -1
- package/dist/server/assets/{info-VBDWY6EO-DojEXGtR.js → info-VBDWY6EO-qXtU7fls.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-CMrDcNjJ.js → infoDiagram-HS3SLOUP-Bnhyc8dm.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-arif2oC4.js → journeyDiagram-XKPGCS4Q-DCeht2II.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-Ue-uEk6t.js → kanban-definition-3W4ZIXB7-D2wyptyQ.js} +2 -2
- package/dist/server/assets/{layout-Jl8vkWvB.js → layout-D8oV2IEs.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-BwTrF7xS.js → mermaid-3ZIDBTTL-BLpPLDqd.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-43ahKWIm.js → mermaid-parser.core-BbOvn3Uv.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-DrtL2GtX.js → mindmap-definition-VGOIOE7T-CKJkiH58.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-qaKqUqmU.js → packet-DYOGHKS2-CnxepCEW.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-sZSNfuEg.js → pie-VRWISCQL-KXauGON3.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-J90TL7dM.js → pieDiagram-ADFJNKIX-B8juLdbl.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-Ciqcx945.js → quadrantDiagram-AYHSOK5B-CLY3QLCC.js} +1 -1
- package/dist/server/assets/{radar-ZZBFDIW7-Wmt4lMQq.js → radar-ZZBFDIW7-CIRaA_9T.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-BKq7A1k7.js → requirementDiagram-UZGBJVZJ-CgDmK30l.js} +3 -3
- package/dist/server/assets/{router-Cj_mF2JU.js → router-G1mE-O-Q.js} +1677 -920
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-B5D47iqQ.js → sankeyDiagram-TZEHDZUN-B9355ZLW.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-YT-X3Mpm.js → sequenceDiagram-WL72ISMW-SyLdlVhU.js} +3 -3
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-D8X_Rq8R.js → stateDiagram-FKZM4ZOC-B8krws9Z.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-CHk9LeUj.js → stateDiagram-v2-4FDKWEC3-CqkUhCge.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-Cq-NLIUZ.js → timeline-definition-IT6M3QCI-eG_EzXZg.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-f0Rq9dJ9.js → treemap-GDKQZRPO-DS3w9TMX.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-CzpW_AIO.js → workspace._workspaceId-Bd4v7PwG.js} +1 -1
- package/dist/server/assets/{workspace._workspaceId-CHDrJbrs.js → workspace._workspaceId-DMYkHS43.js} +1 -1
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-zZQ-PeCr.js → xychartDiagram-PRI3JC2R-DAi7zkg3.js} +1 -1
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +964 -586
- package/package.json +5 -5
- package/dist/client/assets/TerminalPanel-CX4dQ8jR.js +0 -1
- package/dist/client/assets/channel-DgStcXMV.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-DqJ8lUPo.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-DqJ8lUPo.js +0 -1
- package/dist/client/assets/clone-BXDlHTU2.js +0 -1
- package/dist/client/assets/main-CXgf0iaP.css +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BZZ4iqpR.js +0 -1
- package/dist/server/assets/_tanstack-start-manifest_v-B5eaoRZw.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$
|
|
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$
|
|
1239
|
-
const __iconNode$
|
|
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$
|
|
1245
|
-
const __iconNode$
|
|
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$
|
|
1250
|
-
const __iconNode$
|
|
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$
|
|
1255
|
-
const __iconNode$
|
|
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$
|
|
1260
|
-
const __iconNode$
|
|
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$
|
|
1266
|
-
const __iconNode$
|
|
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$
|
|
1276
|
-
const __iconNode$
|
|
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$
|
|
1285
|
-
const __iconNode$
|
|
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$
|
|
1296
|
-
const __iconNode$
|
|
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$
|
|
1303
|
-
const __iconNode$
|
|
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$
|
|
1310
|
-
const __iconNode$
|
|
1311
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
1312
|
-
const __iconNode$
|
|
1313
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
1314
|
-
const __iconNode$
|
|
1315
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
1316
|
-
const __iconNode$
|
|
1317
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
1318
|
-
const __iconNode$
|
|
1319
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
1320
|
-
const __iconNode$
|
|
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$
|
|
1325
|
-
const __iconNode$
|
|
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$
|
|
1333
|
-
const __iconNode$
|
|
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$
|
|
1339
|
-
const __iconNode$
|
|
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$
|
|
1344
|
-
const __iconNode$
|
|
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$
|
|
1355
|
-
const __iconNode$
|
|
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$
|
|
1360
|
-
const __iconNode$
|
|
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$
|
|
1365
|
-
const __iconNode$
|
|
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$
|
|
1371
|
-
const __iconNode$
|
|
1372
|
-
const Circle = createLucideIcon("circle", __iconNode$
|
|
1373
|
-
const __iconNode$
|
|
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$
|
|
1381
|
-
const __iconNode$
|
|
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$
|
|
1389
|
-
const __iconNode$
|
|
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$
|
|
1400
|
-
const __iconNode$
|
|
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$
|
|
1405
|
-
const __iconNode$
|
|
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$
|
|
1416
|
-
const __iconNode$
|
|
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$
|
|
1421
|
-
const __iconNode$
|
|
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$
|
|
1428
|
-
const __iconNode$
|
|
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$
|
|
1437
|
-
const __iconNode$
|
|
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$
|
|
1442
|
-
const __iconNode$
|
|
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$
|
|
1448
|
-
const __iconNode$
|
|
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$
|
|
1454
|
-
const __iconNode$
|
|
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$
|
|
1460
|
-
const __iconNode$
|
|
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$
|
|
1471
|
-
const __iconNode$
|
|
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$
|
|
1477
|
-
const __iconNode
|
|
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
|
|
1488
|
-
const __iconNode$
|
|
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$
|
|
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$
|
|
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$
|
|
1537
|
-
const __iconNode$
|
|
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$
|
|
1548
|
-
const __iconNode$
|
|
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$
|
|
1558
|
-
const __iconNode$
|
|
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$
|
|
1570
|
-
const __iconNode$
|
|
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$
|
|
1580
|
-
const __iconNode$
|
|
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$
|
|
1586
|
-
const __iconNode$
|
|
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$
|
|
1593
|
-
const __iconNode$
|
|
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$
|
|
1599
|
-
const __iconNode$
|
|
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$
|
|
1606
|
-
const __iconNode$
|
|
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$
|
|
1612
|
-
const __iconNode$
|
|
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$
|
|
1621
|
-
const __iconNode$
|
|
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$
|
|
1627
|
-
const __iconNode$
|
|
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$
|
|
1638
|
-
const __iconNode$
|
|
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$
|
|
1653
|
-
const __iconNode$
|
|
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$
|
|
1659
|
-
const __iconNode$
|
|
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$
|
|
1665
|
-
const __iconNode$
|
|
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$
|
|
1670
|
-
const __iconNode$
|
|
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$
|
|
1677
|
-
const __iconNode$
|
|
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$
|
|
1685
|
-
const __iconNode$
|
|
1686
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
1687
|
-
const __iconNode$
|
|
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$
|
|
1698
|
-
const __iconNode$
|
|
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$
|
|
1705
|
-
const __iconNode$
|
|
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$
|
|
1715
|
-
const __iconNode$
|
|
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$
|
|
1722
|
-
const __iconNode$
|
|
1723
|
-
const Minus = createLucideIcon("minus", __iconNode$
|
|
1724
|
-
const __iconNode$
|
|
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$
|
|
1729
|
-
const __iconNode$
|
|
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$
|
|
1734
|
-
const __iconNode$
|
|
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$
|
|
1755
|
-
const __iconNode$
|
|
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$
|
|
1768
|
-
const __iconNode$
|
|
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$
|
|
1779
|
-
const __iconNode$
|
|
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$
|
|
1789
|
-
const __iconNode$
|
|
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$
|
|
1794
|
-
const __iconNode$
|
|
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$
|
|
1801
|
-
const __iconNode$
|
|
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$
|
|
1808
|
-
const __iconNode$
|
|
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$
|
|
1818
|
-
const __iconNode$
|
|
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$
|
|
1823
|
-
const __iconNode$
|
|
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$
|
|
1828
|
-
const __iconNode$
|
|
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$
|
|
1833
|
-
const __iconNode$
|
|
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$
|
|
1845
|
-
const __iconNode$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
8337
|
-
var Root$2 = Label$
|
|
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
|
|
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
|
|
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
|
|
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$
|
|
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
|
|
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$
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
32124
|
+
record2(type2).observers.push(bindHandler(plugin22.value, f2));
|
|
32145
32125
|
}
|
|
32146
32126
|
}
|
|
32147
32127
|
for (let type2 in handlers$1)
|
|
32148
|
-
|
|
32128
|
+
record2(type2).handlers.push(handlers$1[type2]);
|
|
32149
32129
|
for (let type2 in observers)
|
|
32150
|
-
|
|
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
|
|
33979
|
+
let counted2 = 0;
|
|
34000
33980
|
for (let { from: from2, to: to2 } of structure.ranges) {
|
|
34001
33981
|
if (pos <= to2) {
|
|
34002
|
-
|
|
33982
|
+
counted2 += pos - from2;
|
|
34003
33983
|
break;
|
|
34004
33984
|
}
|
|
34005
|
-
|
|
33985
|
+
counted2 += to2 - from2;
|
|
34006
33986
|
}
|
|
34007
|
-
return
|
|
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
|
|
34680
|
-
let range2 = this.readMutation(
|
|
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$
|
|
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$
|
|
40025
|
+
number: number$5,
|
|
40046
40026
|
/**
|
|
40047
40027
|
An integer [number](#highlight.tags.number) literal.
|
|
40048
40028
|
*/
|
|
40049
|
-
integer: t$1(number$
|
|
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$
|
|
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-
|
|
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-
|
|
46197
|
+
return import("./index-B-VeeFTd.js").then((m2) => m2.sass());
|
|
46218
46198
|
case "less":
|
|
46219
|
-
return import("./index-
|
|
46199
|
+
return import("./index-CklLNUhb.js").then((m2) => m2.less());
|
|
46220
46200
|
case "json":
|
|
46221
46201
|
case "jsonc":
|
|
46222
|
-
return import("./index-
|
|
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-
|
|
46207
|
+
return import("./index-SeV-ZdZi.js").then((m2) => m2.xml());
|
|
46228
46208
|
case "yaml":
|
|
46229
|
-
return import("./index-
|
|
46209
|
+
return import("./index-dS3n7bt3.js").then((m2) => m2.yaml());
|
|
46230
46210
|
case "sql":
|
|
46231
|
-
return import("./index-
|
|
46211
|
+
return import("./index-BmH5PL3t.js").then((m2) => m2.sql());
|
|
46232
46212
|
case "rust":
|
|
46233
|
-
return import("./index-
|
|
46213
|
+
return import("./index-BQEmg9fY.js").then((m2) => m2.rust());
|
|
46234
46214
|
case "go":
|
|
46235
|
-
return import("./index-
|
|
46215
|
+
return import("./index-BVY32Ndh.js").then((m2) => m2.go());
|
|
46236
46216
|
case "java":
|
|
46237
|
-
return import("./index-
|
|
46217
|
+
return import("./index-CoOBJObR.js").then((m2) => m2.java());
|
|
46238
46218
|
case "kotlin":
|
|
46239
|
-
return import("./index-
|
|
46219
|
+
return import("./index-CoOBJObR.js").then((m2) => m2.java());
|
|
46240
46220
|
case "c":
|
|
46241
46221
|
case "cpp":
|
|
46242
|
-
return import("./index-
|
|
46222
|
+
return import("./index-DOtn1sP2.js").then((m2) => m2.cpp());
|
|
46243
46223
|
case "php":
|
|
46244
|
-
return import("./index-
|
|
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
|
|
53353
|
-
if (!
|
|
53332
|
+
let blank2 = /^[ \t]*/.exec(content2)[0].length;
|
|
53333
|
+
if (!blank2 || state2.facet(indentUnit) != " ")
|
|
53354
53334
|
return content2;
|
|
53355
|
-
let col = countColumn(content2, 4,
|
|
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(
|
|
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
|
|
54807
|
-
|
|
54808
|
-
|
|
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$
|
|
56529
|
+
const listeners$4 = /* @__PURE__ */ new Set();
|
|
56547
56530
|
function changed() {
|
|
56548
|
-
for (const listener2 of listeners$
|
|
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$
|
|
56537
|
+
listeners$4.add(listener2);
|
|
56555
56538
|
return () => {
|
|
56556
|
-
listeners$
|
|
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
|
|
59698
|
+
for (const record2 of records) {
|
|
59716
59699
|
const {
|
|
59717
59700
|
type: type2,
|
|
59718
59701
|
target
|
|
59719
|
-
} =
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
-
|
|
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:
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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,
|
|
70969
|
+
function resolveRelativePath(dir, relative2) {
|
|
71039
70970
|
let decoded;
|
|
71040
70971
|
try {
|
|
71041
|
-
decoded = decodeURIComponent(
|
|
70972
|
+
decoded = decodeURIComponent(relative2);
|
|
71042
70973
|
} catch {
|
|
71043
70974
|
return null;
|
|
71044
70975
|
}
|
|
@@ -77037,9 +76968,22 @@ class WebDashboardAdapter {
|
|
|
77037
76968
|
statusHandlers = /* @__PURE__ */ new Set();
|
|
77038
76969
|
statusSubscription = null;
|
|
77039
76970
|
reconnectTimer = null;
|
|
76971
|
+
/**
|
|
76972
|
+
* The newest `branch-status` event per workspace. The server sends each
|
|
76973
|
+
* status once (in the on-connect snapshot, then only when it changes), and
|
|
76974
|
+
* the stream is shared: a handler added after the snapshot arrived gets
|
|
76975
|
+
* these replayed instead.
|
|
76976
|
+
*/
|
|
76977
|
+
latestBranchStatuses = /* @__PURE__ */ new Map();
|
|
77040
76978
|
createStatusSubscription() {
|
|
76979
|
+
this.latestBranchStatuses.clear();
|
|
77041
76980
|
this.statusSubscription = this.trpc.status.stream.subscribe(void 0, {
|
|
77042
76981
|
onData: (data2) => {
|
|
76982
|
+
if (data2.kind === "branch-status" && data2.workspaceId) {
|
|
76983
|
+
this.latestBranchStatuses.set(data2.workspaceId, data2);
|
|
76984
|
+
} else if (data2.kind === "remove" && data2.workspaceId) {
|
|
76985
|
+
this.latestBranchStatuses.delete(data2.workspaceId);
|
|
76986
|
+
}
|
|
77043
76987
|
for (const h2 of this.statusHandlers) {
|
|
77044
76988
|
h2(data2);
|
|
77045
76989
|
}
|
|
@@ -77076,6 +77020,7 @@ class WebDashboardAdapter {
|
|
|
77076
77020
|
this.statusSubscription.unsubscribe();
|
|
77077
77021
|
this.statusSubscription = null;
|
|
77078
77022
|
}
|
|
77023
|
+
this.latestBranchStatuses.clear();
|
|
77079
77024
|
if (this.reconnectTimer) {
|
|
77080
77025
|
clearTimeout(this.reconnectTimer);
|
|
77081
77026
|
this.reconnectTimer = null;
|
|
@@ -77113,12 +77058,14 @@ class WebDashboardAdapter {
|
|
|
77113
77058
|
});
|
|
77114
77059
|
}
|
|
77115
77060
|
subscribeBranchStatus(onGit, onCI) {
|
|
77116
|
-
|
|
77061
|
+
const handle2 = (data2) => {
|
|
77117
77062
|
if (data2.kind === "branch-status" && data2.workspaceId) {
|
|
77118
77063
|
if (data2.git) onGit(data2.workspaceId, data2.git);
|
|
77119
77064
|
if (data2.ci) onCI(data2.workspaceId, data2.ci);
|
|
77120
77065
|
}
|
|
77121
|
-
}
|
|
77066
|
+
};
|
|
77067
|
+
for (const data2 of this.latestBranchStatuses.values()) handle2(data2);
|
|
77068
|
+
return this.subscribeStatusStream(handle2);
|
|
77122
77069
|
}
|
|
77123
77070
|
subscribeFileChanges(workspaceId, handler) {
|
|
77124
77071
|
let active2 = true;
|
|
@@ -78500,7 +78447,7 @@ function fixPrompt(branch, review, failing) {
|
|
|
78500
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."
|
|
78501
78448
|
].join("\n");
|
|
78502
78449
|
}
|
|
78503
|
-
function useNow(ticking) {
|
|
78450
|
+
function useNow$1(ticking) {
|
|
78504
78451
|
const [now2, setNow] = reactExports.useState(() => Date.now());
|
|
78505
78452
|
reactExports.useEffect(() => {
|
|
78506
78453
|
if (!ticking) return;
|
|
@@ -78519,7 +78466,7 @@ function ChecksSection({
|
|
|
78519
78466
|
}) {
|
|
78520
78467
|
const host = useClientPluginHost();
|
|
78521
78468
|
const [open2, setOpen] = reactExports.useState(true);
|
|
78522
|
-
const now2 = useNow(visible && open2 && checks2.checks.some(isCountingUp));
|
|
78469
|
+
const now2 = useNow$1(visible && open2 && checks2.checks.some(isCountingUp));
|
|
78523
78470
|
const [fixState, setFixState] = reactExports.useState("idle");
|
|
78524
78471
|
const [fixError, setFixError] = reactExports.useState(null);
|
|
78525
78472
|
if (checks2.checks.length === 0) {
|
|
@@ -79311,7 +79258,7 @@ function SectionHeader({
|
|
|
79311
79258
|
actions,
|
|
79312
79259
|
onViewAll
|
|
79313
79260
|
}) {
|
|
79314
|
-
const
|
|
79261
|
+
const Chevron2 = collapsed ? ChevronRight : ChevronDown;
|
|
79315
79262
|
return (
|
|
79316
79263
|
// The icon actions appear on hover or keyboard focus, as in VS Code, so a
|
|
79317
79264
|
// narrow panel keeps room for the label; devices without hover always
|
|
@@ -79326,7 +79273,7 @@ function SectionHeader({
|
|
|
79326
79273
|
"data-testid": "changes-section__toggle",
|
|
79327
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",
|
|
79328
79275
|
children: [
|
|
79329
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79276
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3.5 shrink-0" }),
|
|
79330
79277
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: SECTION_LABELS[section] }),
|
|
79331
79278
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79332
79279
|
"span",
|
|
@@ -79659,7 +79606,7 @@ const CommitRow = reactExports.memo(function CommitRow2({
|
|
|
79659
79606
|
const { commit } = row2;
|
|
79660
79607
|
const visibleRefs = commit.refs.slice(0, 2);
|
|
79661
79608
|
const hiddenRefs = commit.refs.slice(2);
|
|
79662
|
-
const
|
|
79609
|
+
const Chevron2 = expanded ? ChevronDown : ChevronRight;
|
|
79663
79610
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
79664
79611
|
"button",
|
|
79665
79612
|
{
|
|
@@ -79674,7 +79621,7 @@ ${commit.sha.slice(0, 7)} · ${commit.author}`,
|
|
|
79674
79621
|
children: [
|
|
79675
79622
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CommitGraphSlice, { row: row2 }),
|
|
79676
79623
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex min-w-0 items-center gap-1", children: [
|
|
79677
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79624
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3 shrink-0 text-muted-foreground" }),
|
|
79678
79625
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate text-foreground", children: commit.subject })
|
|
79679
79626
|
] }),
|
|
79680
79627
|
commit.refs.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex shrink-0 items-center gap-1 overflow-hidden", children: [
|
|
@@ -79881,7 +79828,7 @@ function CommitsPanel({
|
|
|
79881
79828
|
void reloadHistory();
|
|
79882
79829
|
}, [collapsed, toggleCollapsed, refetchSignature, reloadHistory]);
|
|
79883
79830
|
const count2 = rows.length;
|
|
79884
|
-
const
|
|
79831
|
+
const Chevron2 = collapsed ? ChevronRight : ChevronDown;
|
|
79885
79832
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative shrink-0 border-t border-border", "data-testid": "commits-panel", children: [
|
|
79886
79833
|
!collapsed && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79887
79834
|
"div",
|
|
@@ -79901,7 +79848,7 @@ function CommitsPanel({
|
|
|
79901
79848
|
"data-testid": "commits-panel__toggle",
|
|
79902
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",
|
|
79903
79850
|
children: [
|
|
79904
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79851
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3.5 shrink-0" }),
|
|
79905
79852
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Commits" }),
|
|
79906
79853
|
pages && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
79907
79854
|
"span",
|
|
@@ -80131,7 +80078,7 @@ function CheckMark({ visible }) {
|
|
|
80131
80078
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: visible ? "size-3.5" : "size-3.5 invisible" });
|
|
80132
80079
|
}
|
|
80133
80080
|
const states = /* @__PURE__ */ new Map();
|
|
80134
|
-
const listeners$
|
|
80081
|
+
const listeners$3 = /* @__PURE__ */ new Map();
|
|
80135
80082
|
const EMPTY_STATE = Object.freeze({ openFilePath: null });
|
|
80136
80083
|
function getPerWorkspaceState(workspaceId) {
|
|
80137
80084
|
return states.get(workspaceId) ?? EMPTY_STATE;
|
|
@@ -80141,19 +80088,19 @@ function setPerWorkspaceState(workspaceId, patch2) {
|
|
|
80141
80088
|
const next2 = { ...prev2, ...patch2 };
|
|
80142
80089
|
if (prev2.currentFile === next2.currentFile && prev2.openFilePath === next2.openFilePath) return;
|
|
80143
80090
|
states.set(workspaceId, next2);
|
|
80144
|
-
const set2 = listeners$
|
|
80091
|
+
const set2 = listeners$3.get(workspaceId);
|
|
80145
80092
|
if (set2) for (const cb of set2) cb();
|
|
80146
80093
|
}
|
|
80147
80094
|
function subscribePerWorkspaceState(workspaceId, cb) {
|
|
80148
|
-
let set2 = listeners$
|
|
80095
|
+
let set2 = listeners$3.get(workspaceId);
|
|
80149
80096
|
if (!set2) {
|
|
80150
80097
|
set2 = /* @__PURE__ */ new Set();
|
|
80151
|
-
listeners$
|
|
80098
|
+
listeners$3.set(workspaceId, set2);
|
|
80152
80099
|
}
|
|
80153
80100
|
set2.add(cb);
|
|
80154
80101
|
return () => {
|
|
80155
80102
|
set2?.delete(cb);
|
|
80156
|
-
if (set2 && set2.size === 0) listeners$
|
|
80103
|
+
if (set2 && set2.size === 0) listeners$3.delete(workspaceId);
|
|
80157
80104
|
};
|
|
80158
80105
|
}
|
|
80159
80106
|
function clearPerWorkspaceState(workspaceId) {
|
|
@@ -96328,10 +96275,11 @@ function createTerminalOutputQueue(write2) {
|
|
|
96328
96275
|
flush() {
|
|
96329
96276
|
if (state2.overflowed) return false;
|
|
96330
96277
|
if (!pending$1.delete(state2)) return true;
|
|
96331
|
-
|
|
96332
|
-
state2.chunks
|
|
96333
|
-
|
|
96334
|
-
|
|
96278
|
+
while (canWriteForeground(state2)) writeForeground(state2);
|
|
96279
|
+
if (state2.chunks.length > 0) {
|
|
96280
|
+
foregroundPending.add(state2);
|
|
96281
|
+
scheduleForegroundDrain();
|
|
96282
|
+
}
|
|
96335
96283
|
return true;
|
|
96336
96284
|
},
|
|
96337
96285
|
clear() {
|
|
@@ -96973,6 +96921,12 @@ function createEntry(terminalId, opts) {
|
|
|
96973
96921
|
term.unicode.activeVersion = "11";
|
|
96974
96922
|
const fit = new XFitAddon();
|
|
96975
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;
|
|
96976
96930
|
term.loadAddon(new XWebLinksAddon((_event, uri) => openExternalUrl(uri)));
|
|
96977
96931
|
const fileLinkProviderDisposable = term.registerLinkProvider(
|
|
96978
96932
|
createTerminalFileLinkProvider(term, (filename) => {
|
|
@@ -97246,7 +97200,9 @@ function createEntry(terminalId, opts) {
|
|
|
97246
97200
|
}
|
|
97247
97201
|
didConnectOnce = true;
|
|
97248
97202
|
if (dims && autoFocusPending && !isReconnect) {
|
|
97249
|
-
|
|
97203
|
+
if (!document.activeElement?.closest('[role="dialog"], [role="alertdialog"]')) {
|
|
97204
|
+
term.focus();
|
|
97205
|
+
}
|
|
97250
97206
|
autoFocusPending = false;
|
|
97251
97207
|
}
|
|
97252
97208
|
stopHeartbeat();
|
|
@@ -97388,7 +97344,7 @@ function createEntry(terminalId, opts) {
|
|
|
97388
97344
|
};
|
|
97389
97345
|
const fittedDims = () => {
|
|
97390
97346
|
if (!attached || !hostIsVisible()) return null;
|
|
97391
|
-
|
|
97347
|
+
fitToBox();
|
|
97392
97348
|
if (term.cols <= 0 || term.rows <= 0) return null;
|
|
97393
97349
|
return { cols: term.cols, rows: term.rows };
|
|
97394
97350
|
};
|
|
@@ -97412,7 +97368,7 @@ function createEntry(terminalId, opts) {
|
|
|
97412
97368
|
reconcileRafId = requestAnimationFrame(() => {
|
|
97413
97369
|
reconcileRafId = null;
|
|
97414
97370
|
if (!attached || !hostIsVisible()) return;
|
|
97415
|
-
|
|
97371
|
+
fitToBox();
|
|
97416
97372
|
sendPtyResize();
|
|
97417
97373
|
});
|
|
97418
97374
|
};
|
|
@@ -97436,7 +97392,7 @@ function createEntry(terminalId, opts) {
|
|
|
97436
97392
|
webglAddon = null;
|
|
97437
97393
|
attachWebGL();
|
|
97438
97394
|
}
|
|
97439
|
-
|
|
97395
|
+
fitToBox();
|
|
97440
97396
|
};
|
|
97441
97397
|
const handleDprChange = () => {
|
|
97442
97398
|
const currentDpr = window.devicePixelRatio;
|
|
@@ -97455,7 +97411,8 @@ function createEntry(terminalId, opts) {
|
|
|
97455
97411
|
}
|
|
97456
97412
|
if (awaitingReplay) return;
|
|
97457
97413
|
const dprChanged = handleDprChange();
|
|
97458
|
-
if (!dprChanged
|
|
97414
|
+
if (!dprChanged && !boxResizedSinceFit()) return;
|
|
97415
|
+
if (!dprChanged) fitToBox();
|
|
97459
97416
|
sendPtyResize();
|
|
97460
97417
|
});
|
|
97461
97418
|
resizeObserver.observe(wrapper);
|
|
@@ -97481,12 +97438,13 @@ function createEntry(terminalId, opts) {
|
|
|
97481
97438
|
if (!attached || !hostIsVisible()) return;
|
|
97482
97439
|
const dprChanged = handleDprChange();
|
|
97483
97440
|
if (!dprChanged) {
|
|
97484
|
-
|
|
97441
|
+
const rebuild = webglSuspect && useWebGL;
|
|
97442
|
+
if (rebuild) {
|
|
97485
97443
|
webglAddon?.dispose();
|
|
97486
97444
|
webglAddon = null;
|
|
97487
97445
|
attachWebGL();
|
|
97488
97446
|
}
|
|
97489
|
-
|
|
97447
|
+
if (webglSuspect || boxResizedSinceFit()) fitToBox();
|
|
97490
97448
|
}
|
|
97491
97449
|
webglSuspect = false;
|
|
97492
97450
|
if (term.rows > 0) term.refresh(0, term.rows - 1);
|
|
@@ -97564,7 +97522,15 @@ function createEntry(terminalId, opts) {
|
|
|
97564
97522
|
scheduleParkingPass();
|
|
97565
97523
|
if (attachOpts?.autoFocus) autoFocusPending = true;
|
|
97566
97524
|
if (wrapper.parentElement !== container) container.appendChild(wrapper);
|
|
97567
|
-
|
|
97525
|
+
if (hostIsVisible()) {
|
|
97526
|
+
if (repairRafId !== null) {
|
|
97527
|
+
cancelAnimationFrame(repairRafId);
|
|
97528
|
+
repairRafId = null;
|
|
97529
|
+
}
|
|
97530
|
+
repairAndFit();
|
|
97531
|
+
} else {
|
|
97532
|
+
scheduleRepair();
|
|
97533
|
+
}
|
|
97568
97534
|
},
|
|
97569
97535
|
detach() {
|
|
97570
97536
|
if (destroyed) return;
|
|
@@ -97800,7 +97766,7 @@ function reconcileTerminalWorkspaces(validWorkspaceIds, activeWorkspaceId) {
|
|
|
97800
97766
|
function hasTerminal(terminalId) {
|
|
97801
97767
|
return getCache().has(terminalId);
|
|
97802
97768
|
}
|
|
97803
|
-
const DEFAULT_OPTIONS = {
|
|
97769
|
+
const DEFAULT_OPTIONS$1 = {
|
|
97804
97770
|
caseSensitive: false,
|
|
97805
97771
|
wholeWord: false,
|
|
97806
97772
|
regex: false
|
|
@@ -97808,7 +97774,7 @@ const DEFAULT_OPTIONS = {
|
|
|
97808
97774
|
function useBrowserFindInPage(webview) {
|
|
97809
97775
|
const [isOpen, setIsOpen] = reactExports.useState(false);
|
|
97810
97776
|
const [query, setQuery] = reactExports.useState("");
|
|
97811
|
-
const [options, setOptions] = reactExports.useState(DEFAULT_OPTIONS);
|
|
97777
|
+
const [options, setOptions] = reactExports.useState(DEFAULT_OPTIONS$1);
|
|
97812
97778
|
const [matchInfo, setMatchInfo] = reactExports.useState(null);
|
|
97813
97779
|
const searchBarRef = reactExports.useRef(null);
|
|
97814
97780
|
const webviewRef = reactExports.useRef(webview);
|
|
@@ -98062,13 +98028,13 @@ function useBrowserPaneControls(args) {
|
|
|
98062
98028
|
};
|
|
98063
98029
|
}
|
|
98064
98030
|
let hosts = /* @__PURE__ */ new Set();
|
|
98065
|
-
const listeners$
|
|
98031
|
+
const listeners$2 = /* @__PURE__ */ new Set();
|
|
98066
98032
|
let bootstrapped = false;
|
|
98067
98033
|
function setHosts(updater) {
|
|
98068
98034
|
const next2 = updater(hosts);
|
|
98069
98035
|
if (next2 === hosts) return;
|
|
98070
98036
|
hosts = next2;
|
|
98071
|
-
for (const cb of listeners$
|
|
98037
|
+
for (const cb of listeners$2) cb();
|
|
98072
98038
|
}
|
|
98073
98039
|
function addHost(raw2) {
|
|
98074
98040
|
const h2 = raw2.toLowerCase();
|
|
@@ -98096,18 +98062,18 @@ function bootstrap() {
|
|
|
98096
98062
|
console.error("browser_get_overridden_hosts failed:", err);
|
|
98097
98063
|
});
|
|
98098
98064
|
}
|
|
98099
|
-
function subscribe(cb) {
|
|
98065
|
+
function subscribe$1(cb) {
|
|
98100
98066
|
bootstrap();
|
|
98101
|
-
listeners$
|
|
98067
|
+
listeners$2.add(cb);
|
|
98102
98068
|
return () => {
|
|
98103
|
-
listeners$
|
|
98069
|
+
listeners$2.delete(cb);
|
|
98104
98070
|
};
|
|
98105
98071
|
}
|
|
98106
98072
|
function getSnapshot() {
|
|
98107
98073
|
return hosts;
|
|
98108
98074
|
}
|
|
98109
98075
|
function useOverriddenHosts() {
|
|
98110
|
-
const currentHosts = reactExports.useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
98076
|
+
const currentHosts = reactExports.useSyncExternalStore(subscribe$1, getSnapshot, getSnapshot);
|
|
98111
98077
|
const isOverriddenHost = reactExports.useCallback(
|
|
98112
98078
|
(currentUrl) => {
|
|
98113
98079
|
if (!currentUrl) return false;
|
|
@@ -99351,6 +99317,31 @@ function BrowserPaneComponent({
|
|
|
99351
99317
|
}
|
|
99352
99318
|
);
|
|
99353
99319
|
}
|
|
99320
|
+
function splitFirst(value) {
|
|
99321
|
+
const slash2 = value.indexOf("/");
|
|
99322
|
+
if (slash2 <= 0 || slash2 === value.length - 1) return null;
|
|
99323
|
+
return [value.slice(0, slash2), value.slice(slash2 + 1)];
|
|
99324
|
+
}
|
|
99325
|
+
function modelNameWithoutProvider(model) {
|
|
99326
|
+
if (!splitFirst(model.id)) return model.name;
|
|
99327
|
+
return splitFirst(model.name)?.[1] ?? model.name;
|
|
99328
|
+
}
|
|
99329
|
+
function groupModelsByProvider(models) {
|
|
99330
|
+
const groups = /* @__PURE__ */ new Map();
|
|
99331
|
+
const ungrouped = [];
|
|
99332
|
+
for (const model of models) {
|
|
99333
|
+
const providerId = splitFirst(model.id)?.[0];
|
|
99334
|
+
const providerName = splitFirst(model.name)?.[0];
|
|
99335
|
+
if (!providerId || !providerName) {
|
|
99336
|
+
ungrouped.push(model);
|
|
99337
|
+
continue;
|
|
99338
|
+
}
|
|
99339
|
+
const group = groups.get(providerId);
|
|
99340
|
+
if (group) group.models.push(model);
|
|
99341
|
+
else groups.set(providerId, { id: providerId, name: providerName, models: [model] });
|
|
99342
|
+
}
|
|
99343
|
+
return { groups: [...groups.values()], ungrouped };
|
|
99344
|
+
}
|
|
99354
99345
|
const DEFAULT_SPRING_ANIMATION = {
|
|
99355
99346
|
/**
|
|
99356
99347
|
* A value from 0 to 1, on how much to damp the animation.
|
|
@@ -100739,7 +100730,7 @@ let powers = 0;
|
|
|
100739
100730
|
const boolean = increment();
|
|
100740
100731
|
const booleanish = increment();
|
|
100741
100732
|
const overloadedBoolean = increment();
|
|
100742
|
-
const number$
|
|
100733
|
+
const number$4 = increment();
|
|
100743
100734
|
const spaceSeparated = increment();
|
|
100744
100735
|
const commaSeparated = increment();
|
|
100745
100736
|
const commaOrSpaceSeparated = increment();
|
|
@@ -100752,7 +100743,7 @@ const types$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
100752
100743
|
booleanish,
|
|
100753
100744
|
commaOrSpaceSeparated,
|
|
100754
100745
|
commaSeparated,
|
|
100755
|
-
number: number$
|
|
100746
|
+
number: number$4,
|
|
100756
100747
|
overloadedBoolean,
|
|
100757
100748
|
spaceSeparated
|
|
100758
100749
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -100818,9 +100809,9 @@ const aria$1 = create$2({
|
|
|
100818
100809
|
ariaAutoComplete: null,
|
|
100819
100810
|
ariaBusy: booleanish,
|
|
100820
100811
|
ariaChecked: booleanish,
|
|
100821
|
-
ariaColCount: number$
|
|
100822
|
-
ariaColIndex: number$
|
|
100823
|
-
ariaColSpan: number$
|
|
100812
|
+
ariaColCount: number$4,
|
|
100813
|
+
ariaColIndex: number$4,
|
|
100814
|
+
ariaColSpan: number$4,
|
|
100824
100815
|
ariaControls: spaceSeparated,
|
|
100825
100816
|
ariaCurrent: null,
|
|
100826
100817
|
ariaDescribedBy: spaceSeparated,
|
|
@@ -100837,7 +100828,7 @@ const aria$1 = create$2({
|
|
|
100837
100828
|
ariaKeyShortcuts: null,
|
|
100838
100829
|
ariaLabel: null,
|
|
100839
100830
|
ariaLabelledBy: spaceSeparated,
|
|
100840
|
-
ariaLevel: number$
|
|
100831
|
+
ariaLevel: number$4,
|
|
100841
100832
|
ariaLive: null,
|
|
100842
100833
|
ariaModal: booleanish,
|
|
100843
100834
|
ariaMultiLine: booleanish,
|
|
@@ -100845,21 +100836,21 @@ const aria$1 = create$2({
|
|
|
100845
100836
|
ariaOrientation: null,
|
|
100846
100837
|
ariaOwns: spaceSeparated,
|
|
100847
100838
|
ariaPlaceholder: null,
|
|
100848
|
-
ariaPosInSet: number$
|
|
100839
|
+
ariaPosInSet: number$4,
|
|
100849
100840
|
ariaPressed: booleanish,
|
|
100850
100841
|
ariaReadOnly: booleanish,
|
|
100851
100842
|
ariaRelevant: null,
|
|
100852
100843
|
ariaRequired: booleanish,
|
|
100853
100844
|
ariaRoleDescription: spaceSeparated,
|
|
100854
|
-
ariaRowCount: number$
|
|
100855
|
-
ariaRowIndex: number$
|
|
100856
|
-
ariaRowSpan: number$
|
|
100845
|
+
ariaRowCount: number$4,
|
|
100846
|
+
ariaRowIndex: number$4,
|
|
100847
|
+
ariaRowSpan: number$4,
|
|
100857
100848
|
ariaSelected: booleanish,
|
|
100858
|
-
ariaSetSize: number$
|
|
100849
|
+
ariaSetSize: number$4,
|
|
100859
100850
|
ariaSort: null,
|
|
100860
|
-
ariaValueMax: number$
|
|
100861
|
-
ariaValueMin: number$
|
|
100862
|
-
ariaValueNow: number$
|
|
100851
|
+
ariaValueMax: number$4,
|
|
100852
|
+
ariaValueMin: number$4,
|
|
100853
|
+
ariaValueNow: number$4,
|
|
100863
100854
|
ariaValueText: null,
|
|
100864
100855
|
role: null
|
|
100865
100856
|
},
|
|
@@ -100905,13 +100896,13 @@ const html$7 = create$2({
|
|
|
100905
100896
|
checked: boolean,
|
|
100906
100897
|
cite: null,
|
|
100907
100898
|
className: spaceSeparated,
|
|
100908
|
-
cols: number$
|
|
100899
|
+
cols: number$4,
|
|
100909
100900
|
colSpan: null,
|
|
100910
100901
|
content: null,
|
|
100911
100902
|
contentEditable: booleanish,
|
|
100912
100903
|
controls: boolean,
|
|
100913
100904
|
controlsList: spaceSeparated,
|
|
100914
|
-
coords: number$
|
|
100905
|
+
coords: number$4 | commaSeparated,
|
|
100915
100906
|
crossOrigin: null,
|
|
100916
100907
|
data: null,
|
|
100917
100908
|
dateTime: null,
|
|
@@ -100933,9 +100924,9 @@ const html$7 = create$2({
|
|
|
100933
100924
|
formNoValidate: boolean,
|
|
100934
100925
|
formTarget: null,
|
|
100935
100926
|
headers: spaceSeparated,
|
|
100936
|
-
height: number$
|
|
100927
|
+
height: number$4,
|
|
100937
100928
|
hidden: overloadedBoolean,
|
|
100938
|
-
high: number$
|
|
100929
|
+
high: number$4,
|
|
100939
100930
|
href: null,
|
|
100940
100931
|
hrefLang: null,
|
|
100941
100932
|
htmlFor: spaceSeparated,
|
|
@@ -100960,14 +100951,14 @@ const html$7 = create$2({
|
|
|
100960
100951
|
list: null,
|
|
100961
100952
|
loading: null,
|
|
100962
100953
|
loop: boolean,
|
|
100963
|
-
low: number$
|
|
100954
|
+
low: number$4,
|
|
100964
100955
|
manifest: null,
|
|
100965
100956
|
max: null,
|
|
100966
|
-
maxLength: number$
|
|
100957
|
+
maxLength: number$4,
|
|
100967
100958
|
media: null,
|
|
100968
100959
|
method: null,
|
|
100969
100960
|
min: null,
|
|
100970
|
-
minLength: number$
|
|
100961
|
+
minLength: number$4,
|
|
100971
100962
|
multiple: boolean,
|
|
100972
100963
|
muted: boolean,
|
|
100973
100964
|
name: null,
|
|
@@ -101063,7 +101054,7 @@ const html$7 = create$2({
|
|
|
101063
101054
|
onWaiting: null,
|
|
101064
101055
|
onWheel: null,
|
|
101065
101056
|
open: boolean,
|
|
101066
|
-
optimum: number$
|
|
101057
|
+
optimum: number$4,
|
|
101067
101058
|
pattern: null,
|
|
101068
101059
|
ping: spaceSeparated,
|
|
101069
101060
|
placeholder: null,
|
|
@@ -101078,8 +101069,8 @@ const html$7 = create$2({
|
|
|
101078
101069
|
rel: spaceSeparated,
|
|
101079
101070
|
required: boolean,
|
|
101080
101071
|
reversed: boolean,
|
|
101081
|
-
rows: number$
|
|
101082
|
-
rowSpan: number$
|
|
101072
|
+
rows: number$4,
|
|
101073
|
+
rowSpan: number$4,
|
|
101083
101074
|
sandbox: spaceSeparated,
|
|
101084
101075
|
scope: null,
|
|
101085
101076
|
scoped: boolean,
|
|
@@ -101089,19 +101080,19 @@ const html$7 = create$2({
|
|
|
101089
101080
|
shadowRootDelegatesFocus: boolean,
|
|
101090
101081
|
shadowRootMode: null,
|
|
101091
101082
|
shape: null,
|
|
101092
|
-
size: number$
|
|
101083
|
+
size: number$4,
|
|
101093
101084
|
sizes: null,
|
|
101094
101085
|
slot: null,
|
|
101095
|
-
span: number$
|
|
101086
|
+
span: number$4,
|
|
101096
101087
|
spellCheck: booleanish,
|
|
101097
101088
|
src: null,
|
|
101098
101089
|
srcDoc: null,
|
|
101099
101090
|
srcLang: null,
|
|
101100
101091
|
srcSet: null,
|
|
101101
|
-
start: number$
|
|
101092
|
+
start: number$4,
|
|
101102
101093
|
step: null,
|
|
101103
101094
|
style: null,
|
|
101104
|
-
tabIndex: number$
|
|
101095
|
+
tabIndex: number$4,
|
|
101105
101096
|
target: null,
|
|
101106
101097
|
title: null,
|
|
101107
101098
|
translate: null,
|
|
@@ -101109,7 +101100,7 @@ const html$7 = create$2({
|
|
|
101109
101100
|
typeMustMatch: boolean,
|
|
101110
101101
|
useMap: null,
|
|
101111
101102
|
value: booleanish,
|
|
101112
|
-
width: number$
|
|
101103
|
+
width: number$4,
|
|
101113
101104
|
wrap: null,
|
|
101114
101105
|
writingSuggestions: null,
|
|
101115
101106
|
// Legacy.
|
|
@@ -101126,11 +101117,11 @@ const html$7 = create$2({
|
|
|
101126
101117
|
// `<body>`. Use CSS `background-image` instead
|
|
101127
101118
|
bgColor: null,
|
|
101128
101119
|
// `<body>` and table elements. Use CSS `background-color` instead
|
|
101129
|
-
border: number$
|
|
101120
|
+
border: number$4,
|
|
101130
101121
|
// `<table>`. Use CSS `border-width` instead,
|
|
101131
101122
|
borderColor: null,
|
|
101132
101123
|
// `<table>`. Use CSS `border-color` instead,
|
|
101133
|
-
bottomMargin: number$
|
|
101124
|
+
bottomMargin: number$4,
|
|
101134
101125
|
// `<body>`
|
|
101135
101126
|
cellPadding: null,
|
|
101136
101127
|
// `<table>`
|
|
@@ -101164,9 +101155,9 @@ const html$7 = create$2({
|
|
|
101164
101155
|
// `<table>`
|
|
101165
101156
|
frameBorder: null,
|
|
101166
101157
|
// `<iframe>`. Use CSS `border` instead
|
|
101167
|
-
hSpace: number$
|
|
101158
|
+
hSpace: number$4,
|
|
101168
101159
|
// `<img>` and `<object>`
|
|
101169
|
-
leftMargin: number$
|
|
101160
|
+
leftMargin: number$4,
|
|
101170
101161
|
// `<body>`
|
|
101171
101162
|
link: null,
|
|
101172
101163
|
// `<body>`. Use CSS `a:link {color: *}` instead
|
|
@@ -101174,9 +101165,9 @@ const html$7 = create$2({
|
|
|
101174
101165
|
// `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
|
|
101175
101166
|
lowSrc: null,
|
|
101176
101167
|
// `<img>`. Use a `<picture>`
|
|
101177
|
-
marginHeight: number$
|
|
101168
|
+
marginHeight: number$4,
|
|
101178
101169
|
// `<body>`
|
|
101179
|
-
marginWidth: number$
|
|
101170
|
+
marginWidth: number$4,
|
|
101180
101171
|
// `<body>`
|
|
101181
101172
|
noResize: boolean,
|
|
101182
101173
|
// `<frame>`
|
|
@@ -101194,7 +101185,7 @@ const html$7 = create$2({
|
|
|
101194
101185
|
// `<isindex>`
|
|
101195
101186
|
rev: null,
|
|
101196
101187
|
// `<link>`
|
|
101197
|
-
rightMargin: number$
|
|
101188
|
+
rightMargin: number$4,
|
|
101198
101189
|
// `<body>`
|
|
101199
101190
|
rules: null,
|
|
101200
101191
|
// `<table>`
|
|
@@ -101208,7 +101199,7 @@ const html$7 = create$2({
|
|
|
101208
101199
|
// `<table>`
|
|
101209
101200
|
text: null,
|
|
101210
101201
|
// `<body>`. Use CSS `color` instead
|
|
101211
|
-
topMargin: number$
|
|
101202
|
+
topMargin: number$4,
|
|
101212
101203
|
// `<body>`
|
|
101213
101204
|
valueType: null,
|
|
101214
101205
|
// `<param>`
|
|
@@ -101218,7 +101209,7 @@ const html$7 = create$2({
|
|
|
101218
101209
|
// Several. Use CSS `vertical-align` instead
|
|
101219
101210
|
vLink: null,
|
|
101220
101211
|
// `<body>`. Use CSS `a:visited {color}` instead
|
|
101221
|
-
vSpace: number$
|
|
101212
|
+
vSpace: number$4,
|
|
101222
101213
|
// `<img>` and `<object>`
|
|
101223
101214
|
// Non-standard Properties.
|
|
101224
101215
|
allowTransparency: null,
|
|
@@ -101228,7 +101219,7 @@ const html$7 = create$2({
|
|
|
101228
101219
|
disableRemotePlayback: boolean,
|
|
101229
101220
|
prefix: null,
|
|
101230
101221
|
property: null,
|
|
101231
|
-
results: number$
|
|
101222
|
+
results: number$4,
|
|
101232
101223
|
security: null,
|
|
101233
101224
|
unselectable: null
|
|
101234
101225
|
},
|
|
@@ -101413,27 +101404,27 @@ const svg$3 = create$2({
|
|
|
101413
101404
|
},
|
|
101414
101405
|
properties: {
|
|
101415
101406
|
about: commaOrSpaceSeparated,
|
|
101416
|
-
accentHeight: number$
|
|
101407
|
+
accentHeight: number$4,
|
|
101417
101408
|
accumulate: null,
|
|
101418
101409
|
additive: null,
|
|
101419
101410
|
alignmentBaseline: null,
|
|
101420
|
-
alphabetic: number$
|
|
101421
|
-
amplitude: number$
|
|
101411
|
+
alphabetic: number$4,
|
|
101412
|
+
amplitude: number$4,
|
|
101422
101413
|
arabicForm: null,
|
|
101423
|
-
ascent: number$
|
|
101414
|
+
ascent: number$4,
|
|
101424
101415
|
attributeName: null,
|
|
101425
101416
|
attributeType: null,
|
|
101426
|
-
azimuth: number$
|
|
101417
|
+
azimuth: number$4,
|
|
101427
101418
|
bandwidth: null,
|
|
101428
101419
|
baselineShift: null,
|
|
101429
101420
|
baseFrequency: null,
|
|
101430
101421
|
baseProfile: null,
|
|
101431
101422
|
bbox: null,
|
|
101432
101423
|
begin: null,
|
|
101433
|
-
bias: number$
|
|
101424
|
+
bias: number$4,
|
|
101434
101425
|
by: null,
|
|
101435
101426
|
calcMode: null,
|
|
101436
|
-
capHeight: number$
|
|
101427
|
+
capHeight: number$4,
|
|
101437
101428
|
className: spaceSeparated,
|
|
101438
101429
|
clip: null,
|
|
101439
101430
|
clipPath: null,
|
|
@@ -101454,26 +101445,26 @@ const svg$3 = create$2({
|
|
|
101454
101445
|
d: null,
|
|
101455
101446
|
dataType: null,
|
|
101456
101447
|
defaultAction: null,
|
|
101457
|
-
descent: number$
|
|
101458
|
-
diffuseConstant: number$
|
|
101448
|
+
descent: number$4,
|
|
101449
|
+
diffuseConstant: number$4,
|
|
101459
101450
|
direction: null,
|
|
101460
101451
|
display: null,
|
|
101461
101452
|
dur: null,
|
|
101462
|
-
divisor: number$
|
|
101453
|
+
divisor: number$4,
|
|
101463
101454
|
dominantBaseline: null,
|
|
101464
101455
|
download: boolean,
|
|
101465
101456
|
dx: null,
|
|
101466
101457
|
dy: null,
|
|
101467
101458
|
edgeMode: null,
|
|
101468
101459
|
editable: null,
|
|
101469
|
-
elevation: number$
|
|
101460
|
+
elevation: number$4,
|
|
101470
101461
|
enableBackground: null,
|
|
101471
101462
|
end: null,
|
|
101472
101463
|
event: null,
|
|
101473
|
-
exponent: number$
|
|
101464
|
+
exponent: number$4,
|
|
101474
101465
|
externalResourcesRequired: null,
|
|
101475
101466
|
fill: null,
|
|
101476
|
-
fillOpacity: number$
|
|
101467
|
+
fillOpacity: number$4,
|
|
101477
101468
|
fillRule: null,
|
|
101478
101469
|
filter: null,
|
|
101479
101470
|
filterRes: null,
|
|
@@ -101503,27 +101494,27 @@ const svg$3 = create$2({
|
|
|
101503
101494
|
gradientTransform: null,
|
|
101504
101495
|
gradientUnits: null,
|
|
101505
101496
|
handler: null,
|
|
101506
|
-
hanging: number$
|
|
101497
|
+
hanging: number$4,
|
|
101507
101498
|
hatchContentUnits: null,
|
|
101508
101499
|
hatchUnits: null,
|
|
101509
101500
|
height: null,
|
|
101510
101501
|
href: null,
|
|
101511
101502
|
hrefLang: null,
|
|
101512
|
-
horizAdvX: number$
|
|
101513
|
-
horizOriginX: number$
|
|
101514
|
-
horizOriginY: number$
|
|
101503
|
+
horizAdvX: number$4,
|
|
101504
|
+
horizOriginX: number$4,
|
|
101505
|
+
horizOriginY: number$4,
|
|
101515
101506
|
id: null,
|
|
101516
|
-
ideographic: number$
|
|
101507
|
+
ideographic: number$4,
|
|
101517
101508
|
imageRendering: null,
|
|
101518
101509
|
initialVisibility: null,
|
|
101519
101510
|
in: null,
|
|
101520
101511
|
in2: null,
|
|
101521
|
-
intercept: number$
|
|
101522
|
-
k: number$
|
|
101523
|
-
k1: number$
|
|
101524
|
-
k2: number$
|
|
101525
|
-
k3: number$
|
|
101526
|
-
k4: number$
|
|
101512
|
+
intercept: number$4,
|
|
101513
|
+
k: number$4,
|
|
101514
|
+
k1: number$4,
|
|
101515
|
+
k2: number$4,
|
|
101516
|
+
k3: number$4,
|
|
101517
|
+
k4: number$4,
|
|
101527
101518
|
kernelMatrix: commaOrSpaceSeparated,
|
|
101528
101519
|
kernelUnitLength: null,
|
|
101529
101520
|
keyPoints: null,
|
|
@@ -101537,7 +101528,7 @@ const svg$3 = create$2({
|
|
|
101537
101528
|
lengthAdjust: null,
|
|
101538
101529
|
letterSpacing: null,
|
|
101539
101530
|
lightingColor: null,
|
|
101540
|
-
limitingConeAngle: number$
|
|
101531
|
+
limitingConeAngle: number$4,
|
|
101541
101532
|
local: null,
|
|
101542
101533
|
markerEnd: null,
|
|
101543
101534
|
markerMid: null,
|
|
@@ -101553,7 +101544,7 @@ const svg$3 = create$2({
|
|
|
101553
101544
|
media: null,
|
|
101554
101545
|
mediaCharacterEncoding: null,
|
|
101555
101546
|
mediaContentEncodings: null,
|
|
101556
|
-
mediaSize: number$
|
|
101547
|
+
mediaSize: number$4,
|
|
101557
101548
|
mediaTime: null,
|
|
101558
101549
|
method: null,
|
|
101559
101550
|
min: null,
|
|
@@ -101659,12 +101650,12 @@ const svg$3 = create$2({
|
|
|
101659
101650
|
origin: null,
|
|
101660
101651
|
overflow: null,
|
|
101661
101652
|
overlay: null,
|
|
101662
|
-
overlinePosition: number$
|
|
101663
|
-
overlineThickness: number$
|
|
101653
|
+
overlinePosition: number$4,
|
|
101654
|
+
overlineThickness: number$4,
|
|
101664
101655
|
paintOrder: null,
|
|
101665
101656
|
panose1: null,
|
|
101666
101657
|
path: null,
|
|
101667
|
-
pathLength: number$
|
|
101658
|
+
pathLength: number$4,
|
|
101668
101659
|
patternContentUnits: null,
|
|
101669
101660
|
patternTransform: null,
|
|
101670
101661
|
patternUnits: null,
|
|
@@ -101674,9 +101665,9 @@ const svg$3 = create$2({
|
|
|
101674
101665
|
playbackOrder: null,
|
|
101675
101666
|
pointerEvents: null,
|
|
101676
101667
|
points: null,
|
|
101677
|
-
pointsAtX: number$
|
|
101678
|
-
pointsAtY: number$
|
|
101679
|
-
pointsAtZ: number$
|
|
101668
|
+
pointsAtX: number$4,
|
|
101669
|
+
pointsAtY: number$4,
|
|
101670
|
+
pointsAtZ: number$4,
|
|
101680
101671
|
preserveAlpha: null,
|
|
101681
101672
|
preserveAspectRatio: null,
|
|
101682
101673
|
primitiveUnits: null,
|
|
@@ -101708,8 +101699,8 @@ const svg$3 = create$2({
|
|
|
101708
101699
|
side: null,
|
|
101709
101700
|
slope: null,
|
|
101710
101701
|
snapshotTime: null,
|
|
101711
|
-
specularConstant: number$
|
|
101712
|
-
specularExponent: number$
|
|
101702
|
+
specularConstant: number$4,
|
|
101703
|
+
specularExponent: number$4,
|
|
101713
101704
|
spreadMethod: null,
|
|
101714
101705
|
spacing: null,
|
|
101715
101706
|
startOffset: null,
|
|
@@ -101719,30 +101710,30 @@ const svg$3 = create$2({
|
|
|
101719
101710
|
stitchTiles: null,
|
|
101720
101711
|
stopColor: null,
|
|
101721
101712
|
stopOpacity: null,
|
|
101722
|
-
strikethroughPosition: number$
|
|
101723
|
-
strikethroughThickness: number$
|
|
101713
|
+
strikethroughPosition: number$4,
|
|
101714
|
+
strikethroughThickness: number$4,
|
|
101724
101715
|
string: null,
|
|
101725
101716
|
stroke: null,
|
|
101726
101717
|
strokeDashArray: commaOrSpaceSeparated,
|
|
101727
101718
|
strokeDashOffset: null,
|
|
101728
101719
|
strokeLineCap: null,
|
|
101729
101720
|
strokeLineJoin: null,
|
|
101730
|
-
strokeMiterLimit: number$
|
|
101731
|
-
strokeOpacity: number$
|
|
101721
|
+
strokeMiterLimit: number$4,
|
|
101722
|
+
strokeOpacity: number$4,
|
|
101732
101723
|
strokeWidth: null,
|
|
101733
101724
|
style: null,
|
|
101734
|
-
surfaceScale: number$
|
|
101725
|
+
surfaceScale: number$4,
|
|
101735
101726
|
syncBehavior: null,
|
|
101736
101727
|
syncBehaviorDefault: null,
|
|
101737
101728
|
syncMaster: null,
|
|
101738
101729
|
syncTolerance: null,
|
|
101739
101730
|
syncToleranceDefault: null,
|
|
101740
101731
|
systemLanguage: commaOrSpaceSeparated,
|
|
101741
|
-
tabIndex: number$
|
|
101732
|
+
tabIndex: number$4,
|
|
101742
101733
|
tableValues: null,
|
|
101743
101734
|
target: null,
|
|
101744
|
-
targetX: number$
|
|
101745
|
-
targetY: number$
|
|
101735
|
+
targetX: number$4,
|
|
101736
|
+
targetY: number$4,
|
|
101746
101737
|
textAnchor: null,
|
|
101747
101738
|
textDecoration: null,
|
|
101748
101739
|
textRendering: null,
|
|
@@ -101757,22 +101748,22 @@ const svg$3 = create$2({
|
|
|
101757
101748
|
transformOrigin: null,
|
|
101758
101749
|
u1: null,
|
|
101759
101750
|
u2: null,
|
|
101760
|
-
underlinePosition: number$
|
|
101761
|
-
underlineThickness: number$
|
|
101751
|
+
underlinePosition: number$4,
|
|
101752
|
+
underlineThickness: number$4,
|
|
101762
101753
|
unicode: null,
|
|
101763
101754
|
unicodeBidi: null,
|
|
101764
101755
|
unicodeRange: null,
|
|
101765
|
-
unitsPerEm: number$
|
|
101756
|
+
unitsPerEm: number$4,
|
|
101766
101757
|
values: null,
|
|
101767
|
-
vAlphabetic: number$
|
|
101768
|
-
vMathematical: number$
|
|
101758
|
+
vAlphabetic: number$4,
|
|
101759
|
+
vMathematical: number$4,
|
|
101769
101760
|
vectorEffect: null,
|
|
101770
|
-
vHanging: number$
|
|
101771
|
-
vIdeographic: number$
|
|
101761
|
+
vHanging: number$4,
|
|
101762
|
+
vIdeographic: number$4,
|
|
101772
101763
|
version: null,
|
|
101773
|
-
vertAdvY: number$
|
|
101774
|
-
vertOriginX: number$
|
|
101775
|
-
vertOriginY: number$
|
|
101764
|
+
vertAdvY: number$4,
|
|
101765
|
+
vertOriginX: number$4,
|
|
101766
|
+
vertOriginY: number$4,
|
|
101776
101767
|
viewBox: null,
|
|
101777
101768
|
viewTarget: null,
|
|
101778
101769
|
visibility: null,
|
|
@@ -101784,7 +101775,7 @@ const svg$3 = create$2({
|
|
|
101784
101775
|
x1: null,
|
|
101785
101776
|
x2: null,
|
|
101786
101777
|
xChannelSelector: null,
|
|
101787
|
-
xHeight: number$
|
|
101778
|
+
xHeight: number$4,
|
|
101788
101779
|
y: null,
|
|
101789
101780
|
y1: null,
|
|
101790
101781
|
y2: null,
|
|
@@ -101988,13 +101979,13 @@ function isChild(value) {
|
|
|
101988
101979
|
return true;
|
|
101989
101980
|
}
|
|
101990
101981
|
if (typeof value.type !== "string") return false;
|
|
101991
|
-
const
|
|
101982
|
+
const record2 = (
|
|
101992
101983
|
/** @type {Record<string, unknown>} */
|
|
101993
101984
|
value
|
|
101994
101985
|
);
|
|
101995
101986
|
const keys2 = Object.keys(value);
|
|
101996
101987
|
for (const key2 of keys2) {
|
|
101997
|
-
const value2 =
|
|
101988
|
+
const value2 = record2[key2];
|
|
101998
101989
|
if (value2 && typeof value2 === "object") {
|
|
101999
101990
|
if (!Array.isArray(value2)) return true;
|
|
102000
101991
|
const list2 = (
|
|
@@ -111532,11 +111523,11 @@ function gfmFootnoteToMarkdown(options) {
|
|
|
111532
111523
|
return value;
|
|
111533
111524
|
}
|
|
111534
111525
|
}
|
|
111535
|
-
function mapExceptFirst(line2, index2,
|
|
111536
|
-
return index2 === 0 ? line2 : mapAll(line2, index2,
|
|
111526
|
+
function mapExceptFirst(line2, index2, blank2) {
|
|
111527
|
+
return index2 === 0 ? line2 : mapAll(line2, index2, blank2);
|
|
111537
111528
|
}
|
|
111538
|
-
function mapAll(line2, index2,
|
|
111539
|
-
return (
|
|
111529
|
+
function mapAll(line2, index2, blank2) {
|
|
111530
|
+
return (blank2 ? "" : " ") + line2;
|
|
111540
111531
|
}
|
|
111541
111532
|
const constructsWithoutStrikethrough = [
|
|
111542
111533
|
"autolink",
|
|
@@ -111739,8 +111730,8 @@ function blockquote$1(node2, _2, state2, info2) {
|
|
|
111739
111730
|
exit2();
|
|
111740
111731
|
return value;
|
|
111741
111732
|
}
|
|
111742
|
-
function map$3(line2, _2,
|
|
111743
|
-
return ">" + (
|
|
111733
|
+
function map$3(line2, _2, blank2) {
|
|
111734
|
+
return ">" + (blank2 ? "" : " ") + line2;
|
|
111744
111735
|
}
|
|
111745
111736
|
function patternInScope(stack, pattern) {
|
|
111746
111737
|
return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);
|
|
@@ -111855,8 +111846,8 @@ function code$2(node2, _2, state2, info2) {
|
|
|
111855
111846
|
exit2();
|
|
111856
111847
|
return value;
|
|
111857
111848
|
}
|
|
111858
|
-
function map$2(line2, _2,
|
|
111859
|
-
return (
|
|
111849
|
+
function map$2(line2, _2, blank2) {
|
|
111850
|
+
return (blank2 ? "" : " ") + line2;
|
|
111860
111851
|
}
|
|
111861
111852
|
function checkQuote(state2) {
|
|
111862
111853
|
const marker = state2.options.quote || '"';
|
|
@@ -112474,11 +112465,11 @@ function listItem$1(node2, parent, state2, info2) {
|
|
|
112474
112465
|
);
|
|
112475
112466
|
exit2();
|
|
112476
112467
|
return value;
|
|
112477
|
-
function map2(line2, index2,
|
|
112468
|
+
function map2(line2, index2, blank2) {
|
|
112478
112469
|
if (index2) {
|
|
112479
|
-
return (
|
|
112470
|
+
return (blank2 ? "" : " ".repeat(size2)) + line2;
|
|
112480
112471
|
}
|
|
112481
|
-
return (
|
|
112472
|
+
return (blank2 ? bullet2 : bullet2 + " ".repeat(size2 - bullet2.length)) + line2;
|
|
112482
112473
|
}
|
|
112483
112474
|
}
|
|
112484
112475
|
function paragraph$1(node2, _2, state2, info2) {
|
|
@@ -125399,7 +125390,7 @@ var tn = f$5("block", "before:content-[counter(line)]", "before:inline-block", "
|
|
|
125399
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 });
|
|
125400
125391
|
var Se$1 = reactExports.createContext({ code: "" }), de$2 = () => reactExports.useContext(Se$1);
|
|
125401
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 }) });
|
|
125402
|
-
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-
|
|
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 }) => {
|
|
125403
125394
|
let i2 = reactExports.useMemo(() => e3.replace(cn, ""), [e3]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
|
|
125404
125395
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
|
|
125405
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 }) })] }) });
|
|
@@ -125721,7 +125712,7 @@ var Dt = ({ children: e3, className: t2, onDownload: o3, onError: n2 }) => {
|
|
|
125721
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] });
|
|
125722
125713
|
};
|
|
125723
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 }) })] });
|
|
125724
|
-
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-
|
|
125715
|
+
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-BLpPLDqd.js").then((e3) => ({ default: e3.Mermaid }))), Kn = /language-([^\s]+)/;
|
|
125725
125716
|
function ke$1(e3, t2) {
|
|
125726
125717
|
if (!(e3 != null && e3.position || t2 != null && t2.position)) return true;
|
|
125727
125718
|
if (!(e3 != null && e3.position && (t2 != null && t2.position))) return false;
|
|
@@ -126367,7 +126358,7 @@ const PromptInput = ({
|
|
|
126367
126358
|
const [fileEntries, setFileEntries] = reactExports.useState([]);
|
|
126368
126359
|
const [isDragging, setIsDragging] = reactExports.useState(false);
|
|
126369
126360
|
const draftStorageKey = draftKey ? `band-draft:${draftKey}` : null;
|
|
126370
|
-
const [hasText, setHasText] = reactExports.useState(() => readDraft(draftStorageKey).length > 0);
|
|
126361
|
+
const [hasText, setHasText] = reactExports.useState(() => readDraft(draftStorageKey).trim().length > 0);
|
|
126371
126362
|
const [inputValue, setInputValue] = reactExports.useState(() => readDraft(draftStorageKey));
|
|
126372
126363
|
const [commandHint, setCommandHint] = reactExports.useState(null);
|
|
126373
126364
|
const draftRestoredRef = reactExports.useRef(false);
|
|
@@ -126523,16 +126514,12 @@ ${fence}
|
|
|
126523
126514
|
window.addEventListener("band:chat-insert", handler);
|
|
126524
126515
|
return () => window.removeEventListener("band:chat-insert", handler);
|
|
126525
126516
|
}, []);
|
|
126526
|
-
return /* @__PURE__ */ jsxRuntimeExports.
|
|
126517
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
126527
126518
|
"form",
|
|
126528
126519
|
{
|
|
126529
126520
|
autoComplete: "off",
|
|
126530
126521
|
"data-testid": "prompt-input__form",
|
|
126531
|
-
className: cn$2(
|
|
126532
|
-
"relative flex w-full flex-col rounded-md border-2 border-white/20 bg-muted/50 p-2 shadow-sm",
|
|
126533
|
-
isDragging && "border-primary/50 bg-primary/5",
|
|
126534
|
-
className
|
|
126535
|
-
),
|
|
126522
|
+
className: cn$2("relative flex w-full flex-col gap-1", className),
|
|
126536
126523
|
onSubmit: handleSubmit,
|
|
126537
126524
|
onDragOver: handleDragOver,
|
|
126538
126525
|
onDragLeave: handleDragLeave,
|
|
@@ -126540,31 +126527,35 @@ ${fence}
|
|
|
126540
126527
|
onPaste: handlePaste,
|
|
126541
126528
|
ref: formRef,
|
|
126542
126529
|
...props,
|
|
126543
|
-
children:
|
|
126544
|
-
|
|
126545
|
-
|
|
126546
|
-
|
|
126547
|
-
|
|
126548
|
-
|
|
126549
|
-
|
|
126550
|
-
|
|
126551
|
-
|
|
126552
|
-
|
|
126553
|
-
|
|
126554
|
-
|
|
126555
|
-
|
|
126556
|
-
|
|
126557
|
-
|
|
126558
|
-
|
|
126559
|
-
|
|
126560
|
-
|
|
126561
|
-
|
|
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
|
+
)
|
|
126562
126549
|
}
|
|
126563
126550
|
);
|
|
126564
126551
|
};
|
|
126565
126552
|
const PromptInputContext = reactExports.createContext({
|
|
126566
126553
|
addFiles: () => {
|
|
126567
126554
|
},
|
|
126555
|
+
fileEntries: [],
|
|
126556
|
+
removeFile: () => {
|
|
126557
|
+
},
|
|
126558
|
+
isDragging: false,
|
|
126568
126559
|
hasContent: false,
|
|
126569
126560
|
onTextChange: () => {
|
|
126570
126561
|
},
|
|
@@ -126579,11 +126570,34 @@ const PromptInputContext = reactExports.createContext({
|
|
|
126579
126570
|
function usePromptInputContext() {
|
|
126580
126571
|
return reactExports.useContext(PromptInputContext);
|
|
126581
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
|
+
};
|
|
126582
126596
|
function PromptInputFiles({
|
|
126583
126597
|
entries: entries2,
|
|
126584
126598
|
onRemove: onRemove2
|
|
126585
126599
|
}) {
|
|
126586
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-
|
|
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)) });
|
|
126587
126601
|
}
|
|
126588
126602
|
function FilePreview({ file: file2, onRemove: onRemove2 }) {
|
|
126589
126603
|
const isImage2 = file2.type.startsWith("image/");
|
|
@@ -126619,7 +126633,7 @@ function formatFileSize(bytes) {
|
|
|
126619
126633
|
const PromptInputActions = ({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
126620
126634
|
"div",
|
|
126621
126635
|
{
|
|
126622
|
-
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),
|
|
126623
126637
|
...props
|
|
126624
126638
|
}
|
|
126625
126639
|
);
|
|
@@ -126654,9 +126668,10 @@ const PromptInputAttach = ({ className, ...props }) => {
|
|
|
126654
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",
|
|
126655
126669
|
className
|
|
126656
126670
|
),
|
|
126671
|
+
"aria-label": "Attach files",
|
|
126657
126672
|
onClick: () => fileInputRef.current?.click(),
|
|
126658
126673
|
...props,
|
|
126659
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
126674
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "size-4" })
|
|
126660
126675
|
}
|
|
126661
126676
|
)
|
|
126662
126677
|
] });
|
|
@@ -126716,7 +126731,7 @@ const PromptInputTextarea = ({
|
|
|
126716
126731
|
window.addEventListener("band:focus-chat", handler);
|
|
126717
126732
|
return () => window.removeEventListener("band:focus-chat", handler);
|
|
126718
126733
|
}, [textareaRef]);
|
|
126719
|
-
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(
|
|
126720
126735
|
"textarea",
|
|
126721
126736
|
{
|
|
126722
126737
|
ref: textareaRef,
|
|
@@ -126726,10 +126741,11 @@ const PromptInputTextarea = ({
|
|
|
126726
126741
|
spellCheck: false,
|
|
126727
126742
|
writingsuggestions: "false",
|
|
126728
126743
|
className: cn$2(
|
|
126729
|
-
"min-h-[
|
|
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",
|
|
126730
126745
|
className
|
|
126731
126746
|
),
|
|
126732
126747
|
name: "message",
|
|
126748
|
+
rows: 1,
|
|
126733
126749
|
onCompositionEnd: () => setIsComposing(false),
|
|
126734
126750
|
onCompositionStart: () => setIsComposing(true),
|
|
126735
126751
|
onInput: (e3) => onTextChange(e3.currentTarget.value),
|
|
@@ -126749,46 +126765,44 @@ const PromptInputSubmit = ({
|
|
|
126749
126765
|
const isSubmitting = status === "submitted";
|
|
126750
126766
|
const isStreaming = status === "streaming";
|
|
126751
126767
|
const isBusy = isSubmitting || isStreaming;
|
|
126752
|
-
return /* @__PURE__ */ jsxRuntimeExports.
|
|
126753
|
-
|
|
126754
|
-
|
|
126755
|
-
|
|
126756
|
-
|
|
126757
|
-
|
|
126758
|
-
|
|
126759
|
-
|
|
126760
|
-
|
|
126761
|
-
|
|
126762
|
-
|
|
126763
|
-
|
|
126764
|
-
|
|
126765
|
-
"button",
|
|
126766
|
-
|
|
126767
|
-
|
|
126768
|
-
className
|
|
126769
|
-
|
|
126770
|
-
|
|
126771
|
-
|
|
126772
|
-
|
|
126773
|
-
|
|
126774
|
-
|
|
126775
|
-
|
|
126776
|
-
|
|
126777
|
-
"
|
|
126778
|
-
|
|
126779
|
-
|
|
126780
|
-
|
|
126781
|
-
|
|
126782
|
-
|
|
126783
|
-
|
|
126784
|
-
|
|
126785
|
-
|
|
126786
|
-
|
|
126787
|
-
|
|
126788
|
-
|
|
126789
|
-
|
|
126790
|
-
)
|
|
126791
|
-
] });
|
|
126768
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex shrink-0 items-center gap-1", children: isStreaming && !hasContent2 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
126769
|
+
"button",
|
|
126770
|
+
{
|
|
126771
|
+
type: "button",
|
|
126772
|
+
"data-testid": "prompt-input__stop-button",
|
|
126773
|
+
"aria-label": "Stop generation",
|
|
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",
|
|
126775
|
+
onClick: onStop,
|
|
126776
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Square, { className: "size-4 lg:size-3.5 fill-current" })
|
|
126777
|
+
}
|
|
126778
|
+
) : isSubmitting && !hasContent2 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
126779
|
+
"button",
|
|
126780
|
+
{
|
|
126781
|
+
type: "button",
|
|
126782
|
+
className: cn$2(
|
|
126783
|
+
"inline-flex size-8 lg:size-7 shrink-0 items-center justify-center rounded-md bg-foreground/50 text-background transition-colors",
|
|
126784
|
+
className
|
|
126785
|
+
),
|
|
126786
|
+
disabled: true,
|
|
126787
|
+
...props,
|
|
126788
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-5 lg:size-4 animate-spin" })
|
|
126789
|
+
}
|
|
126790
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
126791
|
+
"button",
|
|
126792
|
+
{
|
|
126793
|
+
type: "submit",
|
|
126794
|
+
"data-testid": "prompt-input__submit-button",
|
|
126795
|
+
"aria-label": "Send message",
|
|
126796
|
+
disabled: !hasContent2,
|
|
126797
|
+
className: cn$2(
|
|
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",
|
|
126800
|
+
className
|
|
126801
|
+
),
|
|
126802
|
+
...props,
|
|
126803
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(CornerDownLeft, { className: "size-4 lg:size-3.5" })
|
|
126804
|
+
}
|
|
126805
|
+
) });
|
|
126792
126806
|
};
|
|
126793
126807
|
function getMentionContext(inputValue) {
|
|
126794
126808
|
for (let i2 = inputValue.length - 1; i2 >= 0; i2--) {
|
|
@@ -127649,12 +127663,12 @@ function mergeObjects(target, ...sources) {
|
|
|
127649
127663
|
});
|
|
127650
127664
|
return target;
|
|
127651
127665
|
}
|
|
127652
|
-
function basename$
|
|
127666
|
+
function basename$2(path2) {
|
|
127653
127667
|
const idx = ~path2.lastIndexOf("/") || ~path2.lastIndexOf("\\");
|
|
127654
127668
|
if (idx === 0) {
|
|
127655
127669
|
return path2;
|
|
127656
127670
|
} else if (~idx === path2.length - 1) {
|
|
127657
|
-
return basename$
|
|
127671
|
+
return basename$2(path2.substring(0, path2.length - 1));
|
|
127658
127672
|
} else {
|
|
127659
127673
|
return path2.substr(~idx + 1);
|
|
127660
127674
|
}
|
|
@@ -128603,7 +128617,7 @@ var Rule2 = class {
|
|
|
128603
128617
|
this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);
|
|
128604
128618
|
}
|
|
128605
128619
|
get debugName() {
|
|
128606
|
-
const location2 = this.$location ? `${basename$
|
|
128620
|
+
const location2 = this.$location ? `${basename$2(this.$location.filename)}:${this.$location.line}` : "unknown";
|
|
128607
128621
|
return `${this.constructor.name}#${this.id} @ ${location2}`;
|
|
128608
128622
|
}
|
|
128609
128623
|
getName(lineText, captureIndices) {
|
|
@@ -160071,7 +160085,7 @@ function bisector(f2) {
|
|
|
160071
160085
|
function zero$1() {
|
|
160072
160086
|
return 0;
|
|
160073
160087
|
}
|
|
160074
|
-
function number$
|
|
160088
|
+
function number$3(x2) {
|
|
160075
160089
|
return x2 === null ? NaN : +x2;
|
|
160076
160090
|
}
|
|
160077
160091
|
function* numbers(values2, valueof) {
|
|
@@ -160085,7 +160099,7 @@ function* numbers(values2, valueof) {
|
|
|
160085
160099
|
}
|
|
160086
160100
|
const ascendingBisect = bisector(ascending$1);
|
|
160087
160101
|
const bisectRight = ascendingBisect.right;
|
|
160088
|
-
bisector(number$
|
|
160102
|
+
bisector(number$3).center;
|
|
160089
160103
|
class InternMap extends Map {
|
|
160090
160104
|
constructor(entries2, key2 = keyof) {
|
|
160091
160105
|
super();
|
|
@@ -160267,7 +160281,7 @@ function quantile$1(values2, p2, valueof) {
|
|
|
160267
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));
|
|
160268
160282
|
return value0 + (value1 - value0) * (i2 - i0);
|
|
160269
160283
|
}
|
|
160270
|
-
function quantileSorted(values2, p2, valueof = number$
|
|
160284
|
+
function quantileSorted(values2, p2, valueof = number$3) {
|
|
160271
160285
|
if (!(n2 = values2.length) || isNaN(p2 = +p2)) return;
|
|
160272
160286
|
if (p2 <= 0 || n2 < 2) return +valueof(values2[0], 0, values2);
|
|
160273
160287
|
if (p2 >= 1) return +valueof(values2[n2 - 1], n2 - 1, values2);
|
|
@@ -161612,14 +161626,14 @@ function piecewise(interpolate2, values2) {
|
|
|
161612
161626
|
return I2[i3](t2 - i3);
|
|
161613
161627
|
};
|
|
161614
161628
|
}
|
|
161615
|
-
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) {
|
|
161616
161630
|
setTimeout(f2, 17);
|
|
161617
161631
|
};
|
|
161618
161632
|
function now() {
|
|
161619
|
-
return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
|
|
161633
|
+
return clockNow$1 || (setFrame(clearNow), clockNow$1 = clock.now() + clockSkew);
|
|
161620
161634
|
}
|
|
161621
161635
|
function clearNow() {
|
|
161622
|
-
clockNow = 0;
|
|
161636
|
+
clockNow$1 = 0;
|
|
161623
161637
|
}
|
|
161624
161638
|
function Timer() {
|
|
161625
161639
|
this._call = this._time = this._next = null;
|
|
@@ -161656,20 +161670,20 @@ function timerFlush() {
|
|
|
161656
161670
|
++frame;
|
|
161657
161671
|
var t2 = taskHead, e3;
|
|
161658
161672
|
while (t2) {
|
|
161659
|
-
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);
|
|
161660
161674
|
t2 = t2._next;
|
|
161661
161675
|
}
|
|
161662
161676
|
--frame;
|
|
161663
161677
|
}
|
|
161664
161678
|
function wake() {
|
|
161665
|
-
clockNow = (clockLast = clock.now()) + clockSkew;
|
|
161679
|
+
clockNow$1 = (clockLast = clock.now()) + clockSkew;
|
|
161666
161680
|
frame = timeout$1 = 0;
|
|
161667
161681
|
try {
|
|
161668
161682
|
timerFlush();
|
|
161669
161683
|
} finally {
|
|
161670
161684
|
frame = 0;
|
|
161671
161685
|
nap();
|
|
161672
|
-
clockNow = 0;
|
|
161686
|
+
clockNow$1 = 0;
|
|
161673
161687
|
}
|
|
161674
161688
|
}
|
|
161675
161689
|
function poke() {
|
|
@@ -161693,7 +161707,7 @@ function nap() {
|
|
|
161693
161707
|
function sleep(time2) {
|
|
161694
161708
|
if (frame) return;
|
|
161695
161709
|
if (timeout$1) timeout$1 = clearTimeout(timeout$1);
|
|
161696
|
-
var delay = time2 - clockNow;
|
|
161710
|
+
var delay = time2 - clockNow$1;
|
|
161697
161711
|
if (delay > 24) {
|
|
161698
161712
|
if (time2 < Infinity) timeout$1 = setTimeout(wake, time2 - clock.now() - clockSkew);
|
|
161699
161713
|
if (interval) interval = clearInterval(interval);
|
|
@@ -162769,7 +162783,7 @@ function constants$1(x2) {
|
|
|
162769
162783
|
return x2;
|
|
162770
162784
|
};
|
|
162771
162785
|
}
|
|
162772
|
-
function number$
|
|
162786
|
+
function number$2(x2) {
|
|
162773
162787
|
return +x2;
|
|
162774
162788
|
}
|
|
162775
162789
|
var unit = [0, 1];
|
|
@@ -162830,7 +162844,7 @@ function transformer$2() {
|
|
|
162830
162844
|
return clamp2(untransform((input || (input = piecewise2(range2, domain2.map(transform2), interpolateNumber)))(y4)));
|
|
162831
162845
|
};
|
|
162832
162846
|
scale.domain = function(_2) {
|
|
162833
|
-
return arguments.length ? (domain2 = Array.from(_2, number$
|
|
162847
|
+
return arguments.length ? (domain2 = Array.from(_2, number$2), rescale()) : domain2.slice();
|
|
162834
162848
|
};
|
|
162835
162849
|
scale.range = function(_2) {
|
|
162836
162850
|
return arguments.length ? (range2 = Array.from(_2), rescale()) : range2.slice();
|
|
@@ -162940,7 +162954,7 @@ function identity$2(domain2) {
|
|
|
162940
162954
|
}
|
|
162941
162955
|
scale.invert = scale;
|
|
162942
162956
|
scale.domain = scale.range = function(_2) {
|
|
162943
|
-
return arguments.length ? (domain2 = Array.from(_2, number$
|
|
162957
|
+
return arguments.length ? (domain2 = Array.from(_2, number$2), scale) : domain2.slice();
|
|
162944
162958
|
};
|
|
162945
162959
|
scale.unknown = function(_2) {
|
|
162946
162960
|
return arguments.length ? (unknown2 = _2, scale) : unknown2;
|
|
@@ -162948,7 +162962,7 @@ function identity$2(domain2) {
|
|
|
162948
162962
|
scale.copy = function() {
|
|
162949
162963
|
return identity$2(domain2).unknown(unknown2);
|
|
162950
162964
|
};
|
|
162951
|
-
domain2 = arguments.length ? Array.from(domain2, number$
|
|
162965
|
+
domain2 = arguments.length ? Array.from(domain2, number$2) : [0, 1];
|
|
162952
162966
|
return linearish(scale);
|
|
162953
162967
|
}
|
|
162954
162968
|
function nice(domain2, interval2) {
|
|
@@ -163148,7 +163162,7 @@ function radial() {
|
|
|
163148
163162
|
return arguments.length ? (squared.domain(_2), scale) : squared.domain();
|
|
163149
163163
|
};
|
|
163150
163164
|
scale.range = function(_2) {
|
|
163151
|
-
return arguments.length ? (squared.range((range2 = Array.from(_2, number$
|
|
163165
|
+
return arguments.length ? (squared.range((range2 = Array.from(_2, number$2)).map(square)), scale) : range2.slice();
|
|
163152
163166
|
};
|
|
163153
163167
|
scale.rangeRound = function(_2) {
|
|
163154
163168
|
return scale.range(_2).round(true);
|
|
@@ -164133,7 +164147,7 @@ function defaultLocale(definition2) {
|
|
|
164133
164147
|
function date(t2) {
|
|
164134
164148
|
return new Date(t2);
|
|
164135
164149
|
}
|
|
164136
|
-
function number(t2) {
|
|
164150
|
+
function number$1(t2) {
|
|
164137
164151
|
return t2 instanceof Date ? +t2 : +/* @__PURE__ */ new Date(+t2);
|
|
164138
164152
|
}
|
|
164139
164153
|
function calendar(ticks2, tickInterval, year, month, week, day, hour, minute, second2, format2) {
|
|
@@ -164146,7 +164160,7 @@ function calendar(ticks2, tickInterval, year, month, week, day, hour, minute, se
|
|
|
164146
164160
|
return new Date(invert2(y4));
|
|
164147
164161
|
};
|
|
164148
164162
|
scale.domain = function(_2) {
|
|
164149
|
-
return arguments.length ? domain2(Array.from(_2, number)) : domain2().map(date);
|
|
164163
|
+
return arguments.length ? domain2(Array.from(_2, number$1)) : domain2().map(date);
|
|
164150
164164
|
};
|
|
164151
164165
|
scale.ticks = function(interval2) {
|
|
164152
164166
|
var d2 = domain2();
|
|
@@ -178605,12 +178619,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
178605
178619
|
registerLayoutLoaders([
|
|
178606
178620
|
{
|
|
178607
178621
|
name: "dagre",
|
|
178608
|
-
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-
|
|
178622
|
+
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-DvvoFaVJ.js"), "loader")
|
|
178609
178623
|
},
|
|
178610
178624
|
...[
|
|
178611
178625
|
{
|
|
178612
178626
|
name: "cose-bilkent",
|
|
178613
|
-
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-
|
|
178627
|
+
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-Dqv8g3XR.js"), "loader")
|
|
178614
178628
|
}
|
|
178615
178629
|
]
|
|
178616
178630
|
]);
|
|
@@ -179049,7 +179063,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
179049
179063
|
return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
|
|
179050
179064
|
}, "detector");
|
|
179051
179065
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
179052
|
-
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-
|
|
179066
|
+
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-DIRimETA.js");
|
|
179053
179067
|
return { id, diagram: diagram2 };
|
|
179054
179068
|
}, "loader");
|
|
179055
179069
|
var plugin = {
|
|
@@ -179066,7 +179080,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
179066
179080
|
return /^\s*graph/.test(txt);
|
|
179067
179081
|
}, "detector");
|
|
179068
179082
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
179069
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
179083
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DwqeGUt2.js");
|
|
179070
179084
|
return { id: id2, diagram: diagram2 };
|
|
179071
179085
|
}, "loader");
|
|
179072
179086
|
var plugin2 = {
|
|
@@ -179089,7 +179103,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
179089
179103
|
return /^\s*flowchart/.test(txt);
|
|
179090
179104
|
}, "detector");
|
|
179091
179105
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
179092
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
179106
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DwqeGUt2.js");
|
|
179093
179107
|
return { id: id3, diagram: diagram2 };
|
|
179094
179108
|
}, "loader");
|
|
179095
179109
|
var plugin3 = {
|
|
@@ -179103,7 +179117,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
179103
179117
|
return /^\s*erDiagram/.test(txt);
|
|
179104
179118
|
}, "detector");
|
|
179105
179119
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
179106
|
-
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-
|
|
179120
|
+
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-CBpgZJNk.js");
|
|
179107
179121
|
return { id: id4, diagram: diagram2 };
|
|
179108
179122
|
}, "loader");
|
|
179109
179123
|
var plugin4 = {
|
|
@@ -179117,7 +179131,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
179117
179131
|
return /^\s*gitGraph/.test(txt);
|
|
179118
179132
|
}, "detector");
|
|
179119
179133
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
179120
|
-
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-
|
|
179134
|
+
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-4Hraf1YX.js");
|
|
179121
179135
|
return { id: id5, diagram: diagram2 };
|
|
179122
179136
|
}, "loader");
|
|
179123
179137
|
var plugin5 = {
|
|
@@ -179131,7 +179145,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
179131
179145
|
return /^\s*gantt/.test(txt);
|
|
179132
179146
|
}, "detector");
|
|
179133
179147
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
179134
|
-
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-
|
|
179148
|
+
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-CSDzrG3u.js");
|
|
179135
179149
|
return { id: id6, diagram: diagram2 };
|
|
179136
179150
|
}, "loader");
|
|
179137
179151
|
var plugin6 = {
|
|
@@ -179145,7 +179159,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
179145
179159
|
return /^\s*info/.test(txt);
|
|
179146
179160
|
}, "detector");
|
|
179147
179161
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
179148
|
-
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-
|
|
179162
|
+
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-Bnhyc8dm.js");
|
|
179149
179163
|
return { id: id7, diagram: diagram2 };
|
|
179150
179164
|
}, "loader");
|
|
179151
179165
|
var info = {
|
|
@@ -179158,7 +179172,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
179158
179172
|
return /^\s*pie/.test(txt);
|
|
179159
179173
|
}, "detector");
|
|
179160
179174
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
179161
|
-
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-
|
|
179175
|
+
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-B8juLdbl.js");
|
|
179162
179176
|
return { id: id8, diagram: diagram2 };
|
|
179163
179177
|
}, "loader");
|
|
179164
179178
|
var pie = {
|
|
@@ -179171,7 +179185,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
179171
179185
|
return /^\s*quadrantChart/.test(txt);
|
|
179172
179186
|
}, "detector");
|
|
179173
179187
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
179174
|
-
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-
|
|
179188
|
+
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-CLY3QLCC.js");
|
|
179175
179189
|
return { id: id9, diagram: diagram2 };
|
|
179176
179190
|
}, "loader");
|
|
179177
179191
|
var plugin7 = {
|
|
@@ -179185,7 +179199,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
179185
179199
|
return /^\s*xychart(-beta)?/.test(txt);
|
|
179186
179200
|
}, "detector");
|
|
179187
179201
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
179188
|
-
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-
|
|
179202
|
+
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-DAi7zkg3.js");
|
|
179189
179203
|
return { id: id10, diagram: diagram2 };
|
|
179190
179204
|
}, "loader");
|
|
179191
179205
|
var plugin8 = {
|
|
@@ -179199,7 +179213,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
179199
179213
|
return /^\s*requirement(Diagram)?/.test(txt);
|
|
179200
179214
|
}, "detector");
|
|
179201
179215
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
179202
|
-
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-
|
|
179216
|
+
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-CgDmK30l.js");
|
|
179203
179217
|
return { id: id11, diagram: diagram2 };
|
|
179204
179218
|
}, "loader");
|
|
179205
179219
|
var plugin9 = {
|
|
@@ -179213,7 +179227,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
179213
179227
|
return /^\s*sequenceDiagram/.test(txt);
|
|
179214
179228
|
}, "detector");
|
|
179215
179229
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
179216
|
-
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-
|
|
179230
|
+
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-SyLdlVhU.js");
|
|
179217
179231
|
return { id: id12, diagram: diagram2 };
|
|
179218
179232
|
}, "loader");
|
|
179219
179233
|
var plugin10 = {
|
|
@@ -179230,7 +179244,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
179230
179244
|
return /^\s*classDiagram/.test(txt);
|
|
179231
179245
|
}, "detector");
|
|
179232
179246
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
179233
|
-
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-
|
|
179247
|
+
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-BLteCxZe.js");
|
|
179234
179248
|
return { id: id13, diagram: diagram2 };
|
|
179235
179249
|
}, "loader");
|
|
179236
179250
|
var plugin11 = {
|
|
@@ -179247,7 +179261,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
179247
179261
|
return /^\s*classDiagram-v2/.test(txt);
|
|
179248
179262
|
}, "detector");
|
|
179249
179263
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
179250
|
-
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-
|
|
179264
|
+
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-BLteCxZe.js");
|
|
179251
179265
|
return { id: id14, diagram: diagram2 };
|
|
179252
179266
|
}, "loader");
|
|
179253
179267
|
var plugin12 = {
|
|
@@ -179264,7 +179278,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
179264
179278
|
return /^\s*stateDiagram/.test(txt);
|
|
179265
179279
|
}, "detector");
|
|
179266
179280
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
179267
|
-
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-
|
|
179281
|
+
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-B8krws9Z.js");
|
|
179268
179282
|
return { id: id15, diagram: diagram2 };
|
|
179269
179283
|
}, "loader");
|
|
179270
179284
|
var plugin13 = {
|
|
@@ -179284,7 +179298,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
179284
179298
|
return false;
|
|
179285
179299
|
}, "detector");
|
|
179286
179300
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
179287
|
-
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-
|
|
179301
|
+
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-CqkUhCge.js");
|
|
179288
179302
|
return { id: id16, diagram: diagram2 };
|
|
179289
179303
|
}, "loader");
|
|
179290
179304
|
var plugin14 = {
|
|
@@ -179298,7 +179312,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
179298
179312
|
return /^\s*journey/.test(txt);
|
|
179299
179313
|
}, "detector");
|
|
179300
179314
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
179301
|
-
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-
|
|
179315
|
+
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-DCeht2II.js");
|
|
179302
179316
|
return { id: id17, diagram: diagram2 };
|
|
179303
179317
|
}, "loader");
|
|
179304
179318
|
var plugin15 = {
|
|
@@ -179365,7 +179379,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
179365
179379
|
return false;
|
|
179366
179380
|
}, "detector");
|
|
179367
179381
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
179368
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
179382
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-DwqeGUt2.js");
|
|
179369
179383
|
return { id: id18, diagram: diagram2 };
|
|
179370
179384
|
}, "loader");
|
|
179371
179385
|
var plugin16 = {
|
|
@@ -179379,7 +179393,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
179379
179393
|
return /^\s*timeline/.test(txt);
|
|
179380
179394
|
}, "detector");
|
|
179381
179395
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
179382
|
-
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-
|
|
179396
|
+
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-eG_EzXZg.js");
|
|
179383
179397
|
return { id: id19, diagram: diagram2 };
|
|
179384
179398
|
}, "loader");
|
|
179385
179399
|
var plugin17 = {
|
|
@@ -179393,7 +179407,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
179393
179407
|
return /^\s*mindmap/.test(txt);
|
|
179394
179408
|
}, "detector");
|
|
179395
179409
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
179396
|
-
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-
|
|
179410
|
+
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-CKJkiH58.js");
|
|
179397
179411
|
return { id: id20, diagram: diagram2 };
|
|
179398
179412
|
}, "loader");
|
|
179399
179413
|
var plugin18 = {
|
|
@@ -179407,7 +179421,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
179407
179421
|
return /^\s*kanban/.test(txt);
|
|
179408
179422
|
}, "detector");
|
|
179409
179423
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
179410
|
-
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-
|
|
179424
|
+
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-D2wyptyQ.js");
|
|
179411
179425
|
return { id: id21, diagram: diagram2 };
|
|
179412
179426
|
}, "loader");
|
|
179413
179427
|
var plugin19 = {
|
|
@@ -179421,7 +179435,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
179421
179435
|
return /^\s*sankey(-beta)?/.test(txt);
|
|
179422
179436
|
}, "detector");
|
|
179423
179437
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
179424
|
-
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-
|
|
179438
|
+
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-B9355ZLW.js");
|
|
179425
179439
|
return { id: id22, diagram: diagram2 };
|
|
179426
179440
|
}, "loader");
|
|
179427
179441
|
var plugin20 = {
|
|
@@ -179435,7 +179449,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
179435
179449
|
return /^\s*packet(-beta)?/.test(txt);
|
|
179436
179450
|
}, "detector");
|
|
179437
179451
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
179438
|
-
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-
|
|
179452
|
+
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-uaww8JQd.js");
|
|
179439
179453
|
return { id: id23, diagram: diagram2 };
|
|
179440
179454
|
}, "loader");
|
|
179441
179455
|
var packet = {
|
|
@@ -179448,7 +179462,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
179448
179462
|
return /^\s*radar-beta/.test(txt);
|
|
179449
179463
|
}, "detector");
|
|
179450
179464
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
179451
|
-
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-
|
|
179465
|
+
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-GLrYhnWw.js");
|
|
179452
179466
|
return { id: id24, diagram: diagram2 };
|
|
179453
179467
|
}, "loader");
|
|
179454
179468
|
var radar = {
|
|
@@ -179461,7 +179475,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
179461
179475
|
return /^\s*block(-beta)?/.test(txt);
|
|
179462
179476
|
}, "detector");
|
|
179463
179477
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
179464
|
-
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-
|
|
179478
|
+
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-CWXr6KW7.js");
|
|
179465
179479
|
return { id: id25, diagram: diagram2 };
|
|
179466
179480
|
}, "loader");
|
|
179467
179481
|
var plugin21 = {
|
|
@@ -179475,7 +179489,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
179475
179489
|
return /^\s*architecture/.test(txt);
|
|
179476
179490
|
}, "detector");
|
|
179477
179491
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
179478
|
-
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-
|
|
179492
|
+
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-IeNkR88v.js");
|
|
179479
179493
|
return { id: id26, diagram: diagram2 };
|
|
179480
179494
|
}, "loader");
|
|
179481
179495
|
var architecture = {
|
|
@@ -179489,7 +179503,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
|
|
|
179489
179503
|
return /^\s*treemap/.test(txt);
|
|
179490
179504
|
}, "detector");
|
|
179491
179505
|
var loader27 = /* @__PURE__ */ __name(async () => {
|
|
179492
|
-
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-
|
|
179506
|
+
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-CbKKlJvK.js");
|
|
179493
179507
|
return { id: id27, diagram: diagram2 };
|
|
179494
179508
|
}, "loader");
|
|
179495
179509
|
var treemap = {
|
|
@@ -180333,7 +180347,7 @@ function FilePreviewOverlay({ open: open2, onOpenChange, part }) {
|
|
|
180333
180347
|
{
|
|
180334
180348
|
className: cn$2(
|
|
180335
180349
|
"fixed inset-0 z-50 flex flex-col outline-none",
|
|
180336
|
-
"h-[100dvh] w-
|
|
180350
|
+
"h-[calc(100dvh/var(--app-zoom,1))] w-[calc(100vw/var(--app-zoom,1))]",
|
|
180337
180351
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
|
|
180338
180352
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0"
|
|
180339
180353
|
),
|
|
@@ -180796,6 +180810,153 @@ function TaskStatusIcon({ status }) {
|
|
|
180796
180810
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Circle, { className: "size-3 shrink-0 text-muted-foreground" });
|
|
180797
180811
|
}
|
|
180798
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
|
+
}
|
|
180799
180960
|
const MAX_CELLS = 4e5;
|
|
180800
180961
|
const CONTEXT = 3;
|
|
180801
180962
|
function rawDiff(oldLines, newLines) {
|
|
@@ -180885,26 +181046,6 @@ const ToolOutput = ({ className, output, errorText, ...props }) => {
|
|
|
180885
181046
|
)
|
|
180886
181047
|
] });
|
|
180887
181048
|
};
|
|
180888
|
-
function statusOf(entry) {
|
|
180889
|
-
if (entry.status === "failed") return "error";
|
|
180890
|
-
if (entry.status === "pending" || entry.status === "in_progress") return "in-progress";
|
|
180891
|
-
return "complete";
|
|
180892
|
-
}
|
|
180893
|
-
function StatusDot({ status }) {
|
|
180894
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
180895
|
-
"span",
|
|
180896
|
-
{
|
|
180897
|
-
"data-testid": "tool-call__status-dot",
|
|
180898
|
-
"data-status": status,
|
|
180899
|
-
className: cn$2(
|
|
180900
|
-
"size-2 shrink-0 rounded-full",
|
|
180901
|
-
status === "error" && "bg-red-500",
|
|
180902
|
-
status === "in-progress" && "animate-pulse bg-orange-500",
|
|
180903
|
-
status === "complete" && "bg-green-500"
|
|
180904
|
-
)
|
|
180905
|
-
}
|
|
180906
|
-
);
|
|
180907
|
-
}
|
|
180908
181049
|
function shortPath(path2, cwd) {
|
|
180909
181050
|
return cwd && path2.startsWith(`${cwd}/`) ? path2.slice(cwd.length + 1) : path2;
|
|
180910
181051
|
}
|
|
@@ -180954,55 +181095,532 @@ function Diff({
|
|
|
180954
181095
|
}
|
|
180955
181096
|
);
|
|
180956
181097
|
}
|
|
180957
|
-
|
|
180958
|
-
|
|
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 }) {
|
|
180959
181144
|
const diffs = entry.content.filter((c2) => c2.type === "diff");
|
|
180960
181145
|
const texts = entry.content.flatMap(
|
|
180961
181146
|
(c2) => c2.type === "content" && c2.content.type === "text" ? [c2.content.text] : []
|
|
180962
181147
|
);
|
|
180963
|
-
const paths = [.../* @__PURE__ */ new Set([...diffs.map((d2) => d2.path), ...entry.locations.map((l4) => l4.path)])];
|
|
180964
181148
|
const prose = entry.toolKind === "switch_mode" || entry.toolKind === "think";
|
|
180965
|
-
|
|
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;
|
|
180966
181171
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
180967
181172
|
Collapsible,
|
|
180968
181173
|
{
|
|
180969
181174
|
"data-testid": "tool-call__container",
|
|
180970
|
-
"data-status":
|
|
180971
|
-
className: "group not-prose w-full
|
|
181175
|
+
"data-status": state2,
|
|
181176
|
+
className: "group/tool-call not-prose w-full min-w-0",
|
|
180972
181177
|
children: [
|
|
180973
181178
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
180974
181179
|
CollapsibleTrigger,
|
|
180975
181180
|
{
|
|
180976
|
-
className:
|
|
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
|
+
),
|
|
180977
181186
|
disabled: !hasBody,
|
|
180978
181187
|
children: [
|
|
180979
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
180980
|
-
|
|
180981
|
-
|
|
180982
|
-
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(", ") })
|
|
180983
|
-
] }),
|
|
180984
|
-
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" })
|
|
180985
181191
|
]
|
|
180986
181192
|
}
|
|
180987
181193
|
),
|
|
180988
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
180989
|
-
|
|
180990
|
-
|
|
180991
|
-
|
|
180992
|
-
|
|
180993
|
-
|
|
180994
|
-
|
|
180995
|
-
|
|
180996
|
-
|
|
180997
|
-
|
|
180998
|
-
|
|
180999
|
-
|
|
181000
|
-
|
|
181001
|
-
|
|
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 })
|
|
181002
181223
|
]
|
|
181003
181224
|
}
|
|
181004
181225
|
);
|
|
181005
181226
|
});
|
|
181227
|
+
const DEFAULT_ID = "default";
|
|
181228
|
+
function claudeModelName(id28) {
|
|
181229
|
+
const m2 = /^(?:claude-)?([a-z]+)-(\d+)(?:-(\d{1,2}))?(?:-\d{8})?(?:\[\d+m\]|-\d+m)?$/i.exec(
|
|
181230
|
+
id28.trim()
|
|
181231
|
+
);
|
|
181232
|
+
if (!m2?.[1] || !m2[2]) return null;
|
|
181233
|
+
const family = m2[1].charAt(0).toUpperCase() + m2[1].slice(1).toLowerCase();
|
|
181234
|
+
return `${family} ${m2[2]}${m2[3] ? `.${m2[3]}` : ""}`;
|
|
181235
|
+
}
|
|
181236
|
+
function modelName(model, choices) {
|
|
181237
|
+
const choice2 = choices.find((c2) => c2.id === model && c2.id !== DEFAULT_ID);
|
|
181238
|
+
return choice2?.name ?? claudeModelName(model) ?? model;
|
|
181239
|
+
}
|
|
181240
|
+
function modelFromDescription(description, choices) {
|
|
181241
|
+
const others = choices.filter((c2) => c2.id !== DEFAULT_ID);
|
|
181242
|
+
const exact2 = others.find((c2) => c2.name === description);
|
|
181243
|
+
if (exact2) return exact2.name;
|
|
181244
|
+
const family = description.trim().split(/\s+/)[0]?.toLowerCase();
|
|
181245
|
+
if (!family) return null;
|
|
181246
|
+
const wants1m = /\b1m\b/i.test(description);
|
|
181247
|
+
const matches2 = others.filter(
|
|
181248
|
+
(c2) => (c2.id.toLowerCase().includes(family) || c2.name.toLowerCase().startsWith(family)) && /\[1m\]/i.test(c2.id) === wants1m
|
|
181249
|
+
);
|
|
181250
|
+
return matches2.length === 1 ? matches2[0]?.name ?? null : null;
|
|
181251
|
+
}
|
|
181252
|
+
function relabel(option2, value, name2) {
|
|
181253
|
+
const rename = (o3) => o3.value === value ? { ...o3, name: name2 } : o3;
|
|
181254
|
+
return {
|
|
181255
|
+
...option2,
|
|
181256
|
+
options: option2.options.map(
|
|
181257
|
+
(o3) => "group" in o3 ? { ...o3, options: o3.options.map(rename) } : rename(o3)
|
|
181258
|
+
)
|
|
181259
|
+
};
|
|
181260
|
+
}
|
|
181261
|
+
function flatChoices(option2) {
|
|
181262
|
+
return option2.options.flatMap((o3) => "group" in o3 ? o3.options : [o3]);
|
|
181263
|
+
}
|
|
181264
|
+
function withResolvedDefaults(models, currentModel, effort, resolved) {
|
|
181265
|
+
const labeledModels = models.map((choice2) => {
|
|
181266
|
+
if (choice2.id !== DEFAULT_ID) return choice2;
|
|
181267
|
+
const name2 = resolved.model ? modelName(resolved.model, models) : choice2.description ? modelFromDescription(choice2.description, models) : null;
|
|
181268
|
+
if (currentModel !== DEFAULT_ID) {
|
|
181269
|
+
return { id: choice2.id, name: name2 ? `Default: ${name2}` : "Default" };
|
|
181270
|
+
}
|
|
181271
|
+
return {
|
|
181272
|
+
...choice2,
|
|
181273
|
+
name: name2 ?? (choice2.description ? `Default (${choice2.description})` : "Default"),
|
|
181274
|
+
description: "Follows your Claude Code default"
|
|
181275
|
+
};
|
|
181276
|
+
});
|
|
181277
|
+
if (!effort || !flatChoices(effort).some((c2) => c2.value === DEFAULT_ID)) {
|
|
181278
|
+
return { models: labeledModels, effort };
|
|
181279
|
+
}
|
|
181280
|
+
const level = resolved.effort;
|
|
181281
|
+
const levelName = level ? flatChoices(effort).find((c2) => c2.value === level)?.name ?? level.charAt(0).toUpperCase() + level.slice(1) : void 0;
|
|
181282
|
+
return {
|
|
181283
|
+
models: labeledModels,
|
|
181284
|
+
effort: relabel(effort, DEFAULT_ID, levelName ? `Default: ${levelName}` : "Default"),
|
|
181285
|
+
effortLabel: effort.currentValue === DEFAULT_ID ? levelName ?? "Default" : void 0
|
|
181286
|
+
};
|
|
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
|
+
}
|
|
181006
181624
|
const CHAT_EVENT_TYPES = [
|
|
181007
181625
|
"update",
|
|
181008
181626
|
"prompt",
|
|
@@ -181191,9 +181809,9 @@ function applyUpdate(state2, update, eventId) {
|
|
|
181191
181809
|
} : state2;
|
|
181192
181810
|
case "usage_update": {
|
|
181193
181811
|
if (!state2.session) return state2;
|
|
181194
|
-
const
|
|
181195
|
-
const
|
|
181196
|
-
return { ...state2, session: { ...state2.session, usage
|
|
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 } };
|
|
181197
181815
|
}
|
|
181198
181816
|
case "session_info_update":
|
|
181199
181817
|
return state2.session && update.title !== void 0 ? { ...state2, session: { ...state2.session, title: update.title ?? null } } : state2;
|
|
@@ -181239,7 +181857,14 @@ function transcriptReducer(state2, action) {
|
|
|
181239
181857
|
...state2,
|
|
181240
181858
|
messages: [
|
|
181241
181859
|
...state2.messages,
|
|
181242
|
-
{
|
|
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
|
+
}
|
|
181243
181868
|
],
|
|
181244
181869
|
status: "submitting",
|
|
181245
181870
|
taskRunning: true,
|
|
@@ -181295,9 +181920,19 @@ function transcriptReducer(state2, action) {
|
|
|
181295
181920
|
return state2;
|
|
181296
181921
|
}
|
|
181297
181922
|
const lastEventId = action.eventId > 0 ? Math.max(state2.lastEventId ?? 0, action.eventId) : state2.lastEventId;
|
|
181298
|
-
const next2 = applyLogged(state2, action);
|
|
181923
|
+
const next2 = stampNew(state2.messages, applyLogged(state2, action), action.createdAt);
|
|
181299
181924
|
return next2 === state2 && lastEventId === state2.lastEventId ? state2 : { ...next2, lastEventId };
|
|
181300
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
|
+
}
|
|
181301
181936
|
function applyLogged(state2, event) {
|
|
181302
181937
|
switch (event.type) {
|
|
181303
181938
|
case "update":
|
|
@@ -181310,7 +181945,12 @@ function applyLogged(state2, event) {
|
|
|
181310
181945
|
const messages = state2.messages.slice();
|
|
181311
181946
|
const m2 = messages[pending2];
|
|
181312
181947
|
if (m2.role === "user")
|
|
181313
|
-
messages[pending2] = {
|
|
181948
|
+
messages[pending2] = {
|
|
181949
|
+
...m2,
|
|
181950
|
+
files: event.files ?? m2.files,
|
|
181951
|
+
pending: false,
|
|
181952
|
+
createdAt: event.createdAt ?? m2.createdAt
|
|
181953
|
+
};
|
|
181314
181954
|
return { ...state2, messages };
|
|
181315
181955
|
}
|
|
181316
181956
|
return {
|
|
@@ -181340,15 +181980,13 @@ function applyLogged(state2, event) {
|
|
|
181340
181980
|
...notice
|
|
181341
181981
|
});
|
|
181342
181982
|
}
|
|
181343
|
-
const cost = event.usage?.costUsd;
|
|
181344
181983
|
return {
|
|
181345
181984
|
...state2,
|
|
181346
181985
|
messages,
|
|
181347
181986
|
taskRunning: false,
|
|
181348
181987
|
pendingSend: false,
|
|
181349
181988
|
status: event.error ? "error" : "idle",
|
|
181350
|
-
errorMessage: event.error
|
|
181351
|
-
session: state2.session && cost !== void 0 ? { ...state2.session, costUsd: cost } : state2.session
|
|
181989
|
+
errorMessage: event.error
|
|
181352
181990
|
};
|
|
181353
181991
|
}
|
|
181354
181992
|
case "permission":
|
|
@@ -181387,7 +182025,6 @@ function applyLogged(state2, event) {
|
|
|
181387
182025
|
source: "live",
|
|
181388
182026
|
commands: [],
|
|
181389
182027
|
usage: null,
|
|
181390
|
-
costUsd: null,
|
|
181391
182028
|
title: null
|
|
181392
182029
|
},
|
|
181393
182030
|
source: "live",
|
|
@@ -181551,7 +182188,13 @@ function useChatSubscription(opts) {
|
|
|
181551
182188
|
const wireFiles = files && files.length > 0 ? await Promise.all(files.map(fileToWirePart)) : void 0;
|
|
181552
182189
|
const willQueue = busyRef.current;
|
|
181553
182190
|
if (!willQueue) {
|
|
181554
|
-
dispatch2({
|
|
182191
|
+
dispatch2({
|
|
182192
|
+
type: "local-send",
|
|
182193
|
+
id: `pending-${++localId}`,
|
|
182194
|
+
text: text2,
|
|
182195
|
+
files: wireFiles,
|
|
182196
|
+
createdAt: Date.now()
|
|
182197
|
+
});
|
|
181555
182198
|
}
|
|
181556
182199
|
const res = await fetch(`/api/chats/${encodeURIComponent(chatId)}/messages`, {
|
|
181557
182200
|
method: "POST",
|
|
@@ -183049,7 +183692,8 @@ function VirtualizedMessageList({
|
|
|
183049
183692
|
getKey,
|
|
183050
183693
|
renderItem,
|
|
183051
183694
|
estimateSize = 220,
|
|
183052
|
-
overscan = 5
|
|
183695
|
+
overscan = 5,
|
|
183696
|
+
listRef
|
|
183053
183697
|
}) {
|
|
183054
183698
|
const { scrollRef, scrollToBottom } = useStickToBottomContext();
|
|
183055
183699
|
const [revealed, setRevealed] = reactExports.useState(false);
|
|
@@ -183112,6 +183756,11 @@ function VirtualizedMessageList({
|
|
|
183112
183756
|
virtualizer.scrollToIndex(newIndex, { align: "start" });
|
|
183113
183757
|
}
|
|
183114
183758
|
}, [items]);
|
|
183759
|
+
reactExports.useImperativeHandle(
|
|
183760
|
+
listRef,
|
|
183761
|
+
() => ({ scrollToIndex: (index2) => virtualizer.scrollToIndex(index2, { align: "center" }) }),
|
|
183762
|
+
[virtualizer]
|
|
183763
|
+
);
|
|
183115
183764
|
const virtualItems = virtualizer.getVirtualItems();
|
|
183116
183765
|
const totalSize = virtualizer.getTotalSize();
|
|
183117
183766
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -183244,14 +183893,17 @@ function sessionPickers(session) {
|
|
|
183244
183893
|
const effort = rest.find(
|
|
183245
183894
|
(o3) => o3 !== fast && (o3.category === "thought_level" || o3.id === "effort")
|
|
183246
183895
|
);
|
|
183896
|
+
const model = modelOption ? String(modelOption.currentValue) : session?.models?.currentModelId;
|
|
183897
|
+
const labeled = session?.resolvedDefaults ? withResolvedDefaults(models, model, effort, session.resolvedDefaults) : { models, effort, effortLabel: void 0 };
|
|
183247
183898
|
return {
|
|
183248
|
-
models,
|
|
183249
|
-
model
|
|
183899
|
+
models: labeled.models,
|
|
183900
|
+
model,
|
|
183250
183901
|
modelConfigId: modelOption?.id ?? "__legacy_model",
|
|
183251
183902
|
modes,
|
|
183252
183903
|
mode: modeOption ? String(modeOption.currentValue) : session?.modes?.currentModeId,
|
|
183253
183904
|
modeConfigId: modeOption?.id ?? "__legacy_mode",
|
|
183254
|
-
effort,
|
|
183905
|
+
effort: labeled.effort,
|
|
183906
|
+
effortLabel: labeled.effortLabel,
|
|
183255
183907
|
fast,
|
|
183256
183908
|
// Everything else the agent lets the user choose.
|
|
183257
183909
|
others: rest.filter((o3) => o3 !== effort && o3 !== fast)
|
|
@@ -183279,7 +183931,6 @@ function ChatView({
|
|
|
183279
183931
|
}) {
|
|
183280
183932
|
const [initialSessionCleared, setInitialSessionCleared] = reactExports.useState(false);
|
|
183281
183933
|
const composerObstructionRef = useToastObstruction();
|
|
183282
|
-
const [contextMeterEnabled] = useExperimentalContextMeter();
|
|
183283
183934
|
const sentinelRef = reactExports.useRef(null);
|
|
183284
183935
|
const stickyContextRef = reactExports.useRef(null);
|
|
183285
183936
|
const prevVisibleRef = reactExports.useRef(visible);
|
|
@@ -183486,6 +184137,19 @@ function ChatView({
|
|
|
183486
184137
|
},
|
|
183487
184138
|
[optimisticQueue, queue, workspaceId, chatId]
|
|
183488
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
|
+
});
|
|
183489
184153
|
const getMessageKey = reactExports.useCallback((message) => message.id, []);
|
|
183490
184154
|
const messagesRef = reactExports.useRef(messages);
|
|
183491
184155
|
messagesRef.current = messages;
|
|
@@ -183510,7 +184174,7 @@ function ChatView({
|
|
|
183510
184174
|
const renderEntry = reactExports.useCallback((entry) => {
|
|
183511
184175
|
switch (entry.kind) {
|
|
183512
184176
|
case "text":
|
|
183513
|
-
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;
|
|
183514
184178
|
case "thought":
|
|
183515
184179
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("details", { className: "group/thought text-muted-foreground", children: [
|
|
183516
184180
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("summary", { className: "flex cursor-pointer list-none items-center gap-1.5 text-xs", children: [
|
|
@@ -183578,15 +184242,25 @@ function ChatView({
|
|
|
183578
184242
|
entering = true;
|
|
183579
184243
|
}
|
|
183580
184244
|
if (message.role === "user") {
|
|
183581
|
-
return /* @__PURE__ */ jsxRuntimeExports.
|
|
184245
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
183582
184246
|
Message,
|
|
183583
184247
|
{
|
|
183584
184248
|
from: "user",
|
|
183585
184249
|
className: cn$2(entering && "chat-message-enter", message.pending && "opacity-80"),
|
|
183586
|
-
children:
|
|
183587
|
-
|
|
183588
|
-
|
|
183589
|
-
|
|
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
|
+
]
|
|
183590
184264
|
}
|
|
183591
184265
|
);
|
|
183592
184266
|
}
|
|
@@ -183595,10 +184269,16 @@ function ChatView({
|
|
|
183595
184269
|
);
|
|
183596
184270
|
const showThinking = isLastMessage && isStreaming && !waiting;
|
|
183597
184271
|
if (message.entries.length === 0 && !showThinking) return null;
|
|
183598
|
-
|
|
183599
|
-
|
|
183600
|
-
|
|
183601
|
-
|
|
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
|
+
] });
|
|
183602
184282
|
},
|
|
183603
184283
|
[isStreaming, renderEntry]
|
|
183604
184284
|
);
|
|
@@ -183613,169 +184293,191 @@ function ChatView({
|
|
|
183613
184293
|
return (
|
|
183614
184294
|
// Scope every `band-file:` link clicked inside this chat to *this*
|
|
183615
184295
|
// workspace (issue #539).
|
|
183616
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(FileLinkWorkspaceProvider, { workspaceId, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
183617
|
-
|
|
183618
|
-
|
|
183619
|
-
|
|
183620
|
-
|
|
183621
|
-
|
|
183622
|
-
|
|
183623
|
-
|
|
183624
|
-
|
|
183625
|
-
|
|
183626
|
-
|
|
183627
|
-
|
|
183628
|
-
] })
|
|
183629
|
-
}
|
|
183630
|
-
),
|
|
183631
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(ConversationContent, { children: [
|
|
183632
|
-
hasMore && !loadingHistory && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: sentinelRef, className: "h-px w-full shrink-0", "aria-hidden": "true" }),
|
|
183633
|
-
messages.length === 0 && !subscription.isConnected && /* @__PURE__ */ jsxRuntimeExports.jsx(ConversationSkeleton, {}),
|
|
183634
|
-
messages.length === 0 && subscription.isConnected && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183635
|
-
ConversationEmptyState,
|
|
183636
|
-
{
|
|
183637
|
-
"data-testid": "chat-pane__empty-state",
|
|
183638
|
-
icon: agentType ? /* @__PURE__ */ jsxRuntimeExports.jsx(AgentIcon, { type: agentType, className: "size-8" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { className: "size-8" }),
|
|
183639
|
-
title: workspaceName,
|
|
183640
|
-
description: "Send a message to start coding"
|
|
183641
|
-
}
|
|
183642
|
-
),
|
|
183643
|
-
messages.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183644
|
-
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,
|
|
183645
184308
|
{
|
|
183646
|
-
|
|
183647
|
-
|
|
183648
|
-
|
|
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
|
|
183649
184320
|
}
|
|
183650
184321
|
),
|
|
183651
|
-
|
|
183652
|
-
|
|
183653
|
-
|
|
183654
|
-
|
|
183655
|
-
|
|
183656
|
-
|
|
183657
|
-
|
|
183658
|
-
|
|
183659
|
-
|
|
183660
|
-
|
|
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,
|
|
184341
|
+
{
|
|
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,
|
|
183661
184361
|
{
|
|
183662
|
-
|
|
183663
|
-
|
|
183664
|
-
|
|
183665
|
-
|
|
184362
|
+
sensors: dndSensors,
|
|
184363
|
+
collisionDetection: closestCenter,
|
|
184364
|
+
onDragEnd: handleReorderQueued,
|
|
184365
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
184366
|
+
SortableContext,
|
|
183666
184367
|
{
|
|
183667
|
-
|
|
183668
|
-
|
|
183669
|
-
|
|
183670
|
-
|
|
183671
|
-
|
|
183672
|
-
|
|
183673
|
-
|
|
183674
|
-
|
|
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
|
+
)
|
|
183675
184383
|
}
|
|
183676
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
|
+
]
|
|
183677
184474
|
}
|
|
183678
184475
|
)
|
|
183679
|
-
]
|
|
183680
|
-
|
|
183681
|
-
|
|
183682
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
183683
|
-
"div",
|
|
183684
|
-
{
|
|
183685
|
-
ref: composerObstructionRef,
|
|
183686
|
-
"data-testid": "chat-pane__composer",
|
|
183687
|
-
className: "mx-auto w-full max-w-3xl shrink-0 px-3 lg:px-4 pt-2 pb-2 lg:pb-4",
|
|
183688
|
-
children: [
|
|
183689
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TaskListWidget, { plan, workspaceId }),
|
|
183690
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
183691
|
-
PromptInput,
|
|
183692
|
-
{
|
|
183693
|
-
onSubmit: handleSubmit,
|
|
183694
|
-
draftKey: workspaceId,
|
|
183695
|
-
visible,
|
|
183696
|
-
wsActive,
|
|
183697
|
-
workspaceId,
|
|
183698
|
-
chatId,
|
|
183699
|
-
children: [
|
|
183700
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SlashCommandSuggestions, { skills }),
|
|
183701
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(FileMentionSuggestions, { workspaceId }),
|
|
183702
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183703
|
-
PromptInputTextarea,
|
|
183704
|
-
{
|
|
183705
|
-
placeholder: "Type a message...",
|
|
183706
|
-
"data-band-leaf-focus": "",
|
|
183707
|
-
"data-testid": "chat__composer",
|
|
183708
|
-
onEscape: handleEscape,
|
|
183709
|
-
onPreviousMessage: getLastUserMessage,
|
|
183710
|
-
onShiftTab: () => window.dispatchEvent(new CustomEvent("band:toggle-mode"))
|
|
183711
|
-
}
|
|
183712
|
-
),
|
|
183713
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(PromptInputActions, { children: [
|
|
183714
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-0.5", children: [
|
|
183715
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(PromptInputAttach, {}),
|
|
183716
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183717
|
-
SessionHistoryMenu,
|
|
183718
|
-
{
|
|
183719
|
-
workspaceId,
|
|
183720
|
-
chatId,
|
|
183721
|
-
activeSessionId: currentSessionId,
|
|
183722
|
-
onSelectSession: handleSelectSession,
|
|
183723
|
-
onNewSession: handleNewSession
|
|
183724
|
-
}
|
|
183725
|
-
),
|
|
183726
|
-
contextMeterEnabled && /* @__PURE__ */ jsxRuntimeExports.jsx(ContextMeter, { usage: session?.usage ?? null, costUsd: session?.costUsd ?? null }),
|
|
183727
|
-
pickers.modes.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183728
|
-
ModeMenu,
|
|
183729
|
-
{
|
|
183730
|
-
modes: pickers.modes,
|
|
183731
|
-
selected: pickers.mode,
|
|
183732
|
-
onSelect: handleModeSelect
|
|
183733
|
-
}
|
|
183734
|
-
)
|
|
183735
|
-
] }),
|
|
183736
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 items-center gap-0.5", children: [
|
|
183737
|
-
(pickers.models.length > 0 || pickers.effort || pickers.fast || pickers.others.length > 0) && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183738
|
-
ModelSettingsMenu,
|
|
183739
|
-
{
|
|
183740
|
-
models: pickers.models,
|
|
183741
|
-
selectedModel: pickers.model,
|
|
183742
|
-
onSelectModel: handleModelSelect,
|
|
183743
|
-
effort: pickers.effort,
|
|
183744
|
-
fast: pickers.fast,
|
|
183745
|
-
others: pickers.others,
|
|
183746
|
-
onConfig: handleConfig,
|
|
183747
|
-
modelsDisabled: isStreaming,
|
|
183748
|
-
pending: pendingConfig > 0
|
|
183749
|
-
}
|
|
183750
|
-
),
|
|
183751
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183752
|
-
PromptInputSubmit,
|
|
183753
|
-
{
|
|
183754
|
-
status: status === "submitting" ? "submitted" : status === "idle" ? "ready" : status,
|
|
183755
|
-
onStop: handleStop
|
|
183756
|
-
}
|
|
183757
|
-
)
|
|
183758
|
-
] })
|
|
183759
|
-
] })
|
|
183760
|
-
]
|
|
183761
|
-
}
|
|
183762
|
-
)
|
|
183763
|
-
]
|
|
183764
|
-
}
|
|
183765
|
-
)
|
|
183766
|
-
] }) })
|
|
184476
|
+
]
|
|
184477
|
+
}
|
|
184478
|
+
) })
|
|
183767
184479
|
);
|
|
183768
184480
|
}
|
|
183769
|
-
function ModeIcon({ modeId, className }) {
|
|
183770
|
-
switch (modeId) {
|
|
183771
|
-
case "plan":
|
|
183772
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollText, { className });
|
|
183773
|
-
case "edit":
|
|
183774
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(CodeXml, { className });
|
|
183775
|
-
default:
|
|
183776
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className });
|
|
183777
|
-
}
|
|
183778
|
-
}
|
|
183779
184481
|
function ModeMenu({
|
|
183780
184482
|
modes,
|
|
183781
184483
|
selected,
|
|
@@ -183784,21 +184486,18 @@ function ModeMenu({
|
|
|
183784
184486
|
const current2 = modes.find((m2) => m2.id === selected) ?? modes[0];
|
|
183785
184487
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
|
|
183786
184488
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
183787
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.
|
|
184489
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183788
184490
|
"button",
|
|
183789
184491
|
{
|
|
183790
184492
|
type: "button",
|
|
183791
184493
|
"data-testid": "chat-pane__mode-menu",
|
|
183792
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",
|
|
183793
|
-
children:
|
|
183794
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ModeIcon, { modeId: current2?.id ?? "", className: "size-3 shrink-0" }),
|
|
183795
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: current2?.name ?? "Mode" })
|
|
183796
|
-
]
|
|
184495
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: current2?.name ?? "Mode" })
|
|
183797
184496
|
}
|
|
183798
184497
|
) }) }),
|
|
183799
184498
|
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { children: "⇧Tab" })
|
|
183800
184499
|
] }),
|
|
183801
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "start", className: "min-w-[140px]", children: modes.map((mode) => /* @__PURE__ */ jsxRuntimeExports.
|
|
184500
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "start", className: "min-w-[140px]", children: modes.map((mode) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183802
184501
|
DropdownMenuItem,
|
|
183803
184502
|
{
|
|
183804
184503
|
onClick: () => onSelect(mode.id),
|
|
@@ -183806,13 +184505,10 @@ function ModeMenu({
|
|
|
183806
184505
|
"flex items-start gap-2",
|
|
183807
184506
|
mode.id === (selected ?? modes[0]?.id) ? "bg-accent" : ""
|
|
183808
184507
|
),
|
|
183809
|
-
children: [
|
|
183810
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183811
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
183812
|
-
|
|
183813
|
-
mode.description && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: mode.description })
|
|
183814
|
-
] })
|
|
183815
|
-
]
|
|
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
|
+
] })
|
|
183816
184512
|
},
|
|
183817
184513
|
mode.id
|
|
183818
184514
|
)) })
|
|
@@ -183823,8 +184519,10 @@ const SUBMENU_BESIDE_QUERY = `(min-width: ${2 * MODEL_MENU_WIDTH_PX + 48}px)`;
|
|
|
183823
184519
|
function ModelSettingsMenu({
|
|
183824
184520
|
models,
|
|
183825
184521
|
selectedModel,
|
|
184522
|
+
groupByProvider,
|
|
183826
184523
|
onSelectModel,
|
|
183827
184524
|
effort,
|
|
184525
|
+
effortLabel,
|
|
183828
184526
|
fast,
|
|
183829
184527
|
others,
|
|
183830
184528
|
onConfig,
|
|
@@ -183833,6 +184531,7 @@ function ModelSettingsMenu({
|
|
|
183833
184531
|
}) {
|
|
183834
184532
|
const current2 = models.find((m2) => m2.id === selectedModel) ?? models[0];
|
|
183835
184533
|
const otherModels = models.filter((m2) => m2 !== current2);
|
|
184534
|
+
const modelName2 = (model) => groupByProvider ? modelNameWithoutProvider(model) : model.name;
|
|
183836
184535
|
const effortChoice = effort && selectChoices(effort).find((c2) => c2.id === effort.currentValue);
|
|
183837
184536
|
const fastOn = fast?.currentValue === "on";
|
|
183838
184537
|
const submenuOffset = useMediaQuery(SUBMENU_BESIDE_QUERY) ? void 0 : -MODEL_MENU_WIDTH_PX;
|
|
@@ -183845,17 +184544,17 @@ function ModelSettingsMenu({
|
|
|
183845
184544
|
"aria-busy": pending2 || void 0,
|
|
183846
184545
|
className: "inline-flex min-w-0 items-center gap-1.5 rounded-md px-1.5 py-1 text-xs font-medium text-foreground/80 transition-colors hover:bg-accent hover:text-foreground",
|
|
183847
184546
|
children: [
|
|
183848
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { "data-testid": "chat-pane__model-menu-model", className: "truncate", children: current2
|
|
184547
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { "data-testid": "chat-pane__model-menu-model", className: "truncate", children: current2 ? modelName2(current2) : "Model" }),
|
|
183849
184548
|
effortChoice && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183850
184549
|
"span",
|
|
183851
184550
|
{
|
|
183852
184551
|
"data-testid": "chat-pane__model-menu-effort",
|
|
183853
184552
|
className: "truncate text-muted-foreground",
|
|
183854
|
-
children: effortChoice.name
|
|
184553
|
+
children: effortLabel ?? effortChoice.name
|
|
183855
184554
|
}
|
|
183856
184555
|
),
|
|
183857
184556
|
fastOn && /* @__PURE__ */ jsxRuntimeExports.jsx(Zap, { "aria-label": "Fast mode on", className: "size-3 shrink-0" }),
|
|
183858
|
-
pending2
|
|
184557
|
+
pending2 && /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3 shrink-0 animate-spin text-muted-foreground" })
|
|
183859
184558
|
]
|
|
183860
184559
|
}
|
|
183861
184560
|
) }),
|
|
@@ -183867,13 +184566,20 @@ function ModelSettingsMenu({
|
|
|
183867
184566
|
style: { width: MODEL_MENU_WIDTH_PX },
|
|
183868
184567
|
"data-testid": "chat-pane__model-menu-content",
|
|
183869
184568
|
children: [
|
|
183870
|
-
current2 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
183871
|
-
|
|
183872
|
-
|
|
183873
|
-
|
|
183874
|
-
|
|
183875
|
-
|
|
183876
|
-
|
|
184569
|
+
current2 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
184570
|
+
DropdownMenuItem,
|
|
184571
|
+
{
|
|
184572
|
+
"data-testid": "chat-pane__model-menu-current",
|
|
184573
|
+
className: "flex items-start gap-2",
|
|
184574
|
+
children: [
|
|
184575
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
184576
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium", children: modelName2(current2) }),
|
|
184577
|
+
current2.description && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: current2.description })
|
|
184578
|
+
] }),
|
|
184579
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "mt-0.5 size-4 shrink-0" })
|
|
184580
|
+
]
|
|
184581
|
+
}
|
|
184582
|
+
),
|
|
183877
184583
|
current2 && (effort || fast || others.length > 0 || otherModels.length > 0) && /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuSeparator, {}),
|
|
183878
184584
|
effort && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183879
184585
|
OptionSubmenu,
|
|
@@ -183936,21 +184642,18 @@ function ModelSettingsMenu({
|
|
|
183936
184642
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuPortal, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
183937
184643
|
DropdownMenuSubContent,
|
|
183938
184644
|
{
|
|
183939
|
-
className: "w-64
|
|
184645
|
+
className: "w-64 [--popper-max-height:400px]",
|
|
183940
184646
|
"data-testid": "chat-pane__model-menu-more-models-content",
|
|
183941
184647
|
sideOffset: submenuOffset,
|
|
183942
|
-
children:
|
|
183943
|
-
|
|
184648
|
+
children: groupByProvider ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
184649
|
+
ProviderModelItems,
|
|
183944
184650
|
{
|
|
183945
|
-
|
|
183946
|
-
|
|
183947
|
-
|
|
183948
|
-
|
|
183949
|
-
|
|
183950
|
-
|
|
183951
|
-
},
|
|
183952
|
-
model.id
|
|
183953
|
-
))
|
|
184651
|
+
models,
|
|
184652
|
+
selectedModel: current2?.id,
|
|
184653
|
+
sideOffset: submenuOffset,
|
|
184654
|
+
onSelectModel
|
|
184655
|
+
}
|
|
184656
|
+
) : otherModels.map((model) => /* @__PURE__ */ jsxRuntimeExports.jsx(ModelItem, { model, onSelect: onSelectModel }, model.id))
|
|
183954
184657
|
}
|
|
183955
184658
|
) })
|
|
183956
184659
|
] })
|
|
@@ -183959,6 +184662,75 @@ function ModelSettingsMenu({
|
|
|
183959
184662
|
)
|
|
183960
184663
|
] });
|
|
183961
184664
|
}
|
|
184665
|
+
function ModelItem({
|
|
184666
|
+
model,
|
|
184667
|
+
label,
|
|
184668
|
+
selected,
|
|
184669
|
+
onSelect
|
|
184670
|
+
}) {
|
|
184671
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
184672
|
+
DropdownMenuItem,
|
|
184673
|
+
{
|
|
184674
|
+
onClick: () => {
|
|
184675
|
+
if (!selected) onSelect(model.id);
|
|
184676
|
+
},
|
|
184677
|
+
className: "flex items-start gap-2",
|
|
184678
|
+
children: [
|
|
184679
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
184680
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium", children: label ?? model.name }),
|
|
184681
|
+
model.description && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: model.description })
|
|
184682
|
+
] }),
|
|
184683
|
+
selected && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { "data-testid": "chat-pane__model-menu-check", className: "mt-0.5 size-4 shrink-0" })
|
|
184684
|
+
]
|
|
184685
|
+
}
|
|
184686
|
+
);
|
|
184687
|
+
}
|
|
184688
|
+
function ProviderModelItems({
|
|
184689
|
+
models,
|
|
184690
|
+
selectedModel,
|
|
184691
|
+
sideOffset,
|
|
184692
|
+
onSelectModel
|
|
184693
|
+
}) {
|
|
184694
|
+
const { groups, ungrouped } = groupModelsByProvider(models);
|
|
184695
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
184696
|
+
groups.map((group) => {
|
|
184697
|
+
const selected = group.models.some((m2) => m2.id === selectedModel);
|
|
184698
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuSub, { children: [
|
|
184699
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenuSubTrigger, { "data-testid": `chat-pane__model-menu-provider--${group.id}`, children: [
|
|
184700
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "min-w-0 flex-1 truncate", children: group.name }),
|
|
184701
|
+
selected && /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { "data-testid": "chat-pane__model-menu-check", className: "size-4 shrink-0" })
|
|
184702
|
+
] }),
|
|
184703
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuPortal, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
184704
|
+
DropdownMenuSubContent,
|
|
184705
|
+
{
|
|
184706
|
+
className: "w-64 [--popper-max-height:400px]",
|
|
184707
|
+
"data-testid": `chat-pane__model-menu-provider--${group.id}-content`,
|
|
184708
|
+
sideOffset,
|
|
184709
|
+
children: group.models.map((model) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
184710
|
+
ModelItem,
|
|
184711
|
+
{
|
|
184712
|
+
model,
|
|
184713
|
+
label: modelNameWithoutProvider(model),
|
|
184714
|
+
selected: model.id === selectedModel,
|
|
184715
|
+
onSelect: onSelectModel
|
|
184716
|
+
},
|
|
184717
|
+
model.id
|
|
184718
|
+
))
|
|
184719
|
+
}
|
|
184720
|
+
) })
|
|
184721
|
+
] }, group.id);
|
|
184722
|
+
}),
|
|
184723
|
+
ungrouped.map((model) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
184724
|
+
ModelItem,
|
|
184725
|
+
{
|
|
184726
|
+
model,
|
|
184727
|
+
selected: model.id === selectedModel,
|
|
184728
|
+
onSelect: onSelectModel
|
|
184729
|
+
},
|
|
184730
|
+
model.id
|
|
184731
|
+
))
|
|
184732
|
+
] });
|
|
184733
|
+
}
|
|
183962
184734
|
function OptionSubmenu({
|
|
183963
184735
|
option: option2,
|
|
183964
184736
|
label,
|
|
@@ -184018,10 +184790,11 @@ function formatTokens$1(n2) {
|
|
|
184018
184790
|
}
|
|
184019
184791
|
const DONUT_RADIUS = 9;
|
|
184020
184792
|
const DONUT_CIRCUMFERENCE = 2 * Math.PI * DONUT_RADIUS;
|
|
184021
|
-
function
|
|
184022
|
-
|
|
184023
|
-
|
|
184024
|
-
}
|
|
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 }) {
|
|
184025
184798
|
const pct = usage && usage.size > 0 ? Math.min(100, usage.used / usage.size * 100) : 0;
|
|
184026
184799
|
const pctRounded = Math.round(pct);
|
|
184027
184800
|
const danger = pct >= 85;
|
|
@@ -184043,7 +184816,7 @@ function ContextMeter({
|
|
|
184043
184816
|
onPointerLeave: (e3) => {
|
|
184044
184817
|
if (e3.pointerType === "mouse") setOpen(false);
|
|
184045
184818
|
},
|
|
184046
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { viewBox: "0 0 24 24", className: "size-
|
|
184819
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { viewBox: "0 0 24 24", className: "size-4 -rotate-90 shrink-0", "aria-hidden": "true", children: [
|
|
184047
184820
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
184048
184821
|
"circle",
|
|
184049
184822
|
{
|
|
@@ -184084,8 +184857,8 @@ function ContextMeter({
|
|
|
184084
184857
|
className: "w-auto p-2",
|
|
184085
184858
|
side: "top",
|
|
184086
184859
|
align: "end",
|
|
184087
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-0.5 text-xs", children: [
|
|
184088
|
-
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: [
|
|
184089
184862
|
"Context: ",
|
|
184090
184863
|
usage.used.toLocaleString(),
|
|
184091
184864
|
" / ",
|
|
@@ -184094,9 +184867,9 @@ function ContextMeter({
|
|
|
184094
184867
|
pctRounded,
|
|
184095
184868
|
"%)"
|
|
184096
184869
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "No usage reported yet" }),
|
|
184097
|
-
|
|
184098
|
-
"Cost:
|
|
184099
|
-
|
|
184870
|
+
usage?.cost && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-testid": "chat-pane__context-meter-cost", children: [
|
|
184871
|
+
"Cost: ",
|
|
184872
|
+
formatCost(usage.cost)
|
|
184100
184873
|
] })
|
|
184101
184874
|
] })
|
|
184102
184875
|
}
|
|
@@ -196357,28 +197130,12 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
|
|
|
196357
197130
|
const [mounted, setMounted] = reactExports.useState(() => /* @__PURE__ */ new Set());
|
|
196358
197131
|
const pathname = useRouterState({ select: (s2) => s2.location.pathname });
|
|
196359
197132
|
const activeWorkspaceId = parseWorkspaceFromPath(pathname);
|
|
196360
|
-
const wrapperRef = reactExports.useRef(null);
|
|
196361
|
-
const prevWorkspaceIdRef = reactExports.useRef(activeWorkspaceId);
|
|
196362
197133
|
if (activeWorkspaceId && !mounted.has(activeWorkspaceId)) {
|
|
196363
197134
|
setMounted((prev2) => {
|
|
196364
197135
|
if (prev2.has(activeWorkspaceId)) return prev2;
|
|
196365
197136
|
return new Set(prev2).add(activeWorkspaceId);
|
|
196366
197137
|
});
|
|
196367
197138
|
}
|
|
196368
|
-
reactExports.useLayoutEffect(() => {
|
|
196369
|
-
const prev2 = prevWorkspaceIdRef.current;
|
|
196370
|
-
prevWorkspaceIdRef.current = activeWorkspaceId;
|
|
196371
|
-
if (!prev2 || !activeWorkspaceId || prev2 === activeWorkspaceId) return;
|
|
196372
|
-
const el = wrapperRef.current;
|
|
196373
|
-
if (!el) return;
|
|
196374
|
-
el.style.transition = "none";
|
|
196375
|
-
el.style.opacity = "0.6";
|
|
196376
|
-
const raf = requestAnimationFrame(() => {
|
|
196377
|
-
el.style.transition = "opacity 140ms cubic-bezier(0.23, 1, 0.32, 1)";
|
|
196378
|
-
el.style.opacity = "1";
|
|
196379
|
-
});
|
|
196380
|
-
return () => cancelAnimationFrame(raf);
|
|
196381
|
-
}, [activeWorkspaceId]);
|
|
196382
197139
|
const { projects, isLoading, error } = useProjects();
|
|
196383
197140
|
reactExports.useEffect(() => {
|
|
196384
197141
|
if (isLoading || error) return;
|
|
@@ -196413,7 +197170,7 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
|
|
|
196413
197170
|
}
|
|
196414
197171
|
lastMountedRef.current = mounted;
|
|
196415
197172
|
}, [mounted]);
|
|
196416
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
|
|
197173
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative h-full w-full", children: [
|
|
196417
197174
|
!activeWorkspaceId && emptyState,
|
|
196418
197175
|
Array.from(mounted, (workspaceId) => {
|
|
196419
197176
|
const isActive = workspaceId === activeWorkspaceId;
|
|
@@ -196757,7 +197514,7 @@ function SharedDockviewLayout() {
|
|
|
196757
197514
|
e3.preventDefault();
|
|
196758
197515
|
setSearchFilesOpen(true);
|
|
196759
197516
|
} else if (key2 === "f" && !e3.shiftKey && !e3.altKey) {
|
|
196760
|
-
if (terminalFocused) return;
|
|
197517
|
+
if (terminalFocused || document.activeElement?.closest("[data-chat-pane]")) return;
|
|
196761
197518
|
e3.preventDefault();
|
|
196762
197519
|
const fn2 = ws ? findInFileRegistry.current.get(ws) : void 0;
|
|
196763
197520
|
if (fn2) fn2();
|
|
@@ -196982,7 +197739,7 @@ function SharedDockviewLayout() {
|
|
|
196982
197739
|
] });
|
|
196983
197740
|
}
|
|
196984
197741
|
const TerminalPanel = reactExports.lazy(
|
|
196985
|
-
() => import("./TerminalPanel-
|
|
197742
|
+
() => import("./TerminalPanel-oz5y-mkP.js").then((m2) => ({ default: m2.TerminalPanel }))
|
|
196986
197743
|
);
|
|
196987
197744
|
const nestedTheme = {
|
|
196988
197745
|
name: "band",
|
|
@@ -198147,9 +198904,9 @@ function FileLeaf({ params, api: api2 }) {
|
|
|
198147
198904
|
const chosen = await pickSaveFile({ content: content2, defaultPath: workspacePath ?? void 0 });
|
|
198148
198905
|
if (!chosen) return null;
|
|
198149
198906
|
const chosenPosix = chosen.replace(/\\/g, "/");
|
|
198150
|
-
const
|
|
198151
|
-
const isExternal =
|
|
198152
|
-
const newPath =
|
|
198907
|
+
const relative2 = workspacePath != null ? pathInside(workspacePath, chosenPosix) : null;
|
|
198908
|
+
const isExternal = relative2 === null;
|
|
198909
|
+
const newPath = relative2 ?? chosenPosix;
|
|
198153
198910
|
const actions = getWorkspaceLeafActions(workspaceIdRaw);
|
|
198154
198911
|
removeFileTabState(workspaceIdRaw, filePathRaw);
|
|
198155
198912
|
actions?.openFile(newPath, { external: isExternal, preview: false });
|
|
@@ -198611,7 +199368,7 @@ function SectionDiffFile({
|
|
|
198611
199368
|
}),
|
|
198612
199369
|
enabled: nearViewport && (section !== "branch" || !!mergeBase)
|
|
198613
199370
|
});
|
|
198614
|
-
const
|
|
199371
|
+
const Chevron2 = collapsed ? ChevronRight : ChevronDown;
|
|
198615
199372
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
198616
199373
|
"div",
|
|
198617
199374
|
{
|
|
@@ -198628,7 +199385,7 @@ function SectionDiffFile({
|
|
|
198628
199385
|
"aria-expanded": !collapsed,
|
|
198629
199386
|
className: "flex min-w-0 flex-1 items-center gap-1.5 text-left",
|
|
198630
199387
|
children: [
|
|
198631
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
199388
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Chevron2, { className: "size-3.5 shrink-0 text-muted-foreground" }),
|
|
198632
199389
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate font-medium", title: entry.path, children: entry.oldPath ? `${entry.oldPath} → ${entry.path}` : entry.path }),
|
|
198633
199390
|
!!entry.additions && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "shrink-0 text-green-600 dark:text-green-400", children: [
|
|
198634
199391
|
"+",
|
|
@@ -201273,7 +202030,7 @@ function CronjobDialog({
|
|
|
201273
202030
|
] }),
|
|
201274
202031
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-4 py-2", children: [
|
|
201275
202032
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
201276
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
202033
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-name", children: "Name" }),
|
|
201277
202034
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
201278
202035
|
Input,
|
|
201279
202036
|
{
|
|
@@ -201285,7 +202042,7 @@ function CronjobDialog({
|
|
|
201285
202042
|
)
|
|
201286
202043
|
] }),
|
|
201287
202044
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
201288
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
202045
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-prompt", children: "Prompt" }),
|
|
201289
202046
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
201290
202047
|
Textarea,
|
|
201291
202048
|
{
|
|
@@ -201298,7 +202055,7 @@ function CronjobDialog({
|
|
|
201298
202055
|
)
|
|
201299
202056
|
] }),
|
|
201300
202057
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
201301
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
202058
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-cron", children: "Cron Expression" }),
|
|
201302
202059
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
201303
202060
|
Input,
|
|
201304
202061
|
{
|
|
@@ -201313,7 +202070,7 @@ function CronjobDialog({
|
|
|
201313
202070
|
] }),
|
|
201314
202071
|
!editingJob && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
201315
202072
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
201316
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
202073
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { children: "Scope" }),
|
|
201317
202074
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: scope, onValueChange: (v2) => setScope(v2), children: [
|
|
201318
202075
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
|
|
201319
202076
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
|
|
@@ -201323,7 +202080,7 @@ function CronjobDialog({
|
|
|
201323
202080
|
] })
|
|
201324
202081
|
] }),
|
|
201325
202082
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
201326
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
202083
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { children: "Project" }),
|
|
201327
202084
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: selectedProject, onValueChange: handleProjectChange, children: [
|
|
201328
202085
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { "data-testid": "cronjobs__project-select", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Select a project" }) }),
|
|
201329
202086
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: projects.map((p2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectItem, { value: p2.name, children: [
|
|
@@ -201341,7 +202098,7 @@ function CronjobDialog({
|
|
|
201341
202098
|
] })
|
|
201342
202099
|
] }),
|
|
201343
202100
|
scope === "workspace" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
201344
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
202101
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { children: "Workspace" }),
|
|
201345
202102
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
201346
202103
|
Select,
|
|
201347
202104
|
{
|
|
@@ -201363,7 +202120,7 @@ function CronjobDialog({
|
|
|
201363
202120
|
] }),
|
|
201364
202121
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
201365
202122
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Switch, { checked: enabled, onCheckedChange: setEnabled, id: "cj-enabled" }),
|
|
201366
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
202123
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { htmlFor: "cj-enabled", children: "Enabled" })
|
|
201367
202124
|
] }),
|
|
201368
202125
|
submitError && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-destructive", children: submitError })
|
|
201369
202126
|
] }),
|
|
@@ -221140,7 +221897,7 @@ function ReportsPageContent() {
|
|
|
221140
221897
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: PERIOD_OPTIONS.map((opt) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
221141
221898
|
] }),
|
|
221142
221899
|
period2 === "custom" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
221143
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
221900
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { className: "text-xs text-muted-foreground", htmlFor: "reports-from", children: "From" }),
|
|
221144
221901
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
221145
221902
|
Input,
|
|
221146
221903
|
{
|
|
@@ -221152,7 +221909,7 @@ function ReportsPageContent() {
|
|
|
221152
221909
|
"data-testid": "reports__custom-from"
|
|
221153
221910
|
}
|
|
221154
221911
|
),
|
|
221155
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$
|
|
221912
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$2, { className: "text-xs text-muted-foreground", htmlFor: "reports-to", children: "To" }),
|
|
221156
221913
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
221157
221914
|
Input,
|
|
221158
221915
|
{
|
|
@@ -223635,18 +224392,18 @@ function ToolbarOverflowProvider({ children: children2 }) {
|
|
|
223635
224392
|
);
|
|
223636
224393
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(ToolbarOverflowContext.Provider, { value, children: [
|
|
223637
224394
|
children2,
|
|
223638
|
-
/* @__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: [
|
|
223639
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" }) }),
|
|
223640
224397
|
/* @__PURE__ */ jsxRuntimeExports.jsx(TasksPageContent, {})
|
|
223641
224398
|
] }) }),
|
|
223642
|
-
/* @__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: [
|
|
223643
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" }) }),
|
|
223644
224401
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CronjobsPageContent, {})
|
|
223645
224402
|
] }) }),
|
|
223646
224403
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showReportsDialog, onOpenChange: setShowReportsDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
223647
224404
|
DialogContent,
|
|
223648
224405
|
{
|
|
223649
|
-
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",
|
|
223650
224407
|
"data-testid": "reports-dialog",
|
|
223651
224408
|
children: [
|
|
223652
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" }) }),
|
|
@@ -223657,7 +224414,7 @@ function ToolbarOverflowProvider({ children: children2 }) {
|
|
|
223657
224414
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showResourcesDialog, onOpenChange: setShowResourcesDialog, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
223658
224415
|
DialogContent,
|
|
223659
224416
|
{
|
|
223660
|
-
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",
|
|
223661
224418
|
"data-testid": "resources-dialog",
|
|
223662
224419
|
children: [
|
|
223663
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" }) }),
|
|
@@ -224602,12 +225359,12 @@ function RootLayout() {
|
|
|
224602
225359
|
] })
|
|
224603
225360
|
] });
|
|
224604
225361
|
}
|
|
224605
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
225362
|
+
const $$splitComponentImporter$1 = () => import("./index-WYUrghvu.js");
|
|
224606
225363
|
const Route$1 = createFileRoute("/")({
|
|
224607
225364
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
224608
225365
|
});
|
|
224609
|
-
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-
|
|
224610
|
-
const $$splitComponentImporter = () => import("./workspace._workspaceId-
|
|
225366
|
+
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-DMYkHS43.js");
|
|
225367
|
+
const $$splitComponentImporter = () => import("./workspace._workspaceId-Bd4v7PwG.js");
|
|
224611
225368
|
const Route2 = createFileRoute("/workspace/$workspaceId")({
|
|
224612
225369
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
224613
225370
|
// Bookmarks / shared links from before route unification (`/workspace/$id/changes`,
|
|
@@ -224775,11 +225532,11 @@ export {
|
|
|
224775
225532
|
writeClipboardText as bS,
|
|
224776
225533
|
readClipboardText as bT,
|
|
224777
225534
|
ArrowLeft as bU,
|
|
224778
|
-
|
|
224779
|
-
|
|
224780
|
-
|
|
224781
|
-
|
|
224782
|
-
|
|
225535
|
+
ArrowDown as bV,
|
|
225536
|
+
ArrowRight as bW,
|
|
225537
|
+
ClipboardCopy as bX,
|
|
225538
|
+
ClipboardPaste as bY,
|
|
225539
|
+
CornerDownLeft as bZ,
|
|
224783
225540
|
useSettingsQuery as b_,
|
|
224784
225541
|
positionEdgeLabel as ba,
|
|
224785
225542
|
insertEdgeLabel as bb,
|