@band-app/server 0.19.1 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/DockviewBrowserContainer-DqC_h-bo.js +5 -0
- package/dist/client/assets/{DockviewTerminalContainer-DWva1wNl.js → DockviewTerminalContainer-DyBQtb3U.js} +2 -2
- package/dist/client/assets/TerminalPanel-CFDxHN4Q.js +5 -0
- package/dist/client/assets/{_basePickBy-CV44VSwA.js → _basePickBy-Dcf1Y8Iq.js} +1 -1
- package/dist/client/assets/{_baseUniq-Bqa44Er5.js → _baseUniq-Cy98IGsx.js} +1 -1
- package/dist/client/assets/{arc-4rU3SEWf.js → arc-rOBphWj1.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-CapSrTlr.js → architectureDiagram-VXUJARFQ-C54lj_mp.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-DnapbSnI.js → blockDiagram-VD42YOAC-IXpkKl99.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-9mZ9PPiM.js → c4Diagram-YG6GDRKO-eHkAJFz1.js} +1 -1
- package/dist/client/assets/channel-DDj6wNE3.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB--rr32b4E.js → chunk-4BX2VUAB-BVtvPQLw.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DfxuD1M3.js → chunk-55IACEB6-DWUF7TBt.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-CxvnNatf.js → chunk-B4BG7PRW-BT2NV-OP.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-F51NTwRL.js → chunk-DI55MBZ5-Cg5CF9C8.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-S03fYfOP.js → chunk-FMBD7UC4-B0SYeHBH.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-BQWA4OqL.js → chunk-QN33PNHL-C5tEKH2s.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DuLFP0og.js → chunk-QZHKN3VN-B3eOtTKT.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-BXGn_e4G.js → chunk-TZMSLE5B-C2LU8iG2.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-DEMr_v7L.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-DEMr_v7L.js +1 -0
- package/dist/client/assets/clone-BsghsKY1.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BD5JLmQ6.js → cose-bilkent-S5V4N54A-DMEstRG3.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-jd9MqFa1.js → dagre-6UL2VRFP-Dnk33exg.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-Bv0WGkj7.js → diagram-PSM6KHXK-mrXKTY_T.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-oszH6q3s.js → diagram-QEK2KX5R-BzHK-hsq.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-D7rVDuLY.js → diagram-S2PKOQOG-CQCxQKV-.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-BL9gntWo.js → erDiagram-Q2GNP2WA-BPDJfava.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-1FCz1fgN.js → flowDiagram-NV44I4VS-C6Mmdoua.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-DggjOINy.js → ganttDiagram-JELNMOA3-DLbgXlJh.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-uoayvKXp.js → gitGraphDiagram-V2S2FVAM-DVLRTDa6.js} +1 -1
- package/dist/client/assets/{graph-CKeOhxc0.js → graph-Cwyvupsz.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-BfaZeU0X.js → highlighted-body-B3W2YXNL-C0bhSLak.js} +1 -1
- package/dist/client/assets/{index-Ddvrjwlp.js → index-8fmEfQXt.js} +1 -1
- package/dist/client/assets/{index-kGHlsI7U.js → index-8qew1yXR.js} +1 -1
- package/dist/client/assets/{index-BVhi8EPL.js → index-BEfdqN9O.js} +1 -1
- package/dist/client/assets/{index-DsvlvI8i.js → index-BjRdyIjf.js} +1 -1
- package/dist/client/assets/{index-BhrvrUs_.js → index-BwEcNyXc.js} +1 -1
- package/dist/client/assets/{index-Be24TlVT.js → index-Bx_OaRaP.js} +1 -1
- package/dist/client/assets/{index-Doe-oMI1.js → index-BzF5H3v-.js} +1 -1
- package/dist/client/assets/{index-BOdO7r_p.js → index-CA4qMsBj.js} +1 -1
- package/dist/client/assets/{index-SC22AP5M.js → index-CCvDsqEy.js} +1 -1
- package/dist/client/assets/{index-DTOEFzQN.js → index-CXNMB7pL.js} +1 -1
- package/dist/client/assets/{index-Cx9QoFI1.js → index-CbBtBBYr.js} +1 -1
- package/dist/client/assets/{index-BZW8u43a.js → index-CqhJvfhF.js} +1 -1
- package/dist/client/assets/{index-DtoczokG.js → index-DWLuzOpi.js} +1 -1
- package/dist/client/assets/{index-CdwShVnF.js → index-DsTs1gei.js} +1 -1
- package/dist/client/assets/{index-ro4XgOVe.js → index-ERt8cxUV.js} +1 -1
- package/dist/client/assets/{index-BmEmzTZO.js → index-FSq9CQql.js} +1 -1
- package/dist/client/assets/{index-bY8CiPGQ.js → index-UCQ1zVBi.js} +1 -1
- package/dist/client/assets/{index-ChvBXbK8.js → index-fifqJXyx.js} +1 -1
- package/dist/client/assets/{infoDiagram-HS3SLOUP-9HRNM_Iq.js → infoDiagram-HS3SLOUP-7Hhl73vO.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BYEjH_SV.js → journeyDiagram-XKPGCS4Q-CJcXgH51.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-s6ZYKbvm.js → kanban-definition-3W4ZIXB7-CBsuk1vp.js} +1 -1
- package/dist/client/assets/{layout-DlcfRJkl.js → layout-ZjLAsNj-.js} +1 -1
- package/dist/client/assets/{main-DsoPLGrb.css → main-BzKe6bG7.css} +1 -1
- package/dist/client/assets/{main-Ct1o5WmJ.js → main-QmYiKgqv.js} +271 -271
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-CDeQcF1U.js → mindmap-definition-VGOIOE7T-doqFtLjy.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-CWdMTKnD.js → pieDiagram-ADFJNKIX-Bzaqqvl9.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-C-Zcxmv2.js → quadrantDiagram-AYHSOK5B-DxzHu9fl.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-B3JunJUh.js → requirementDiagram-UZGBJVZJ-Cp3foAel.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BRUxMlQD.js → sankeyDiagram-TZEHDZUN-BQx6TKI3.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW--nulyPWN.js → sequenceDiagram-WL72ISMW-Cd_242bL.js} +1 -1
- package/dist/client/assets/{square-terminal-xTmJg69x.js → square-terminal-bliRzpRN.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-DUZeZHou.js → stateDiagram-FKZM4ZOC-GZM9iqTD.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-yLFyTsJU.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-DgsIAJxu.js → timeline-definition-IT6M3QCI-D5mcm-Qu.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-DzbbBVNz.js → treemap-GDKQZRPO-CkKCE0F7.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-C2eftsxg.js → workspace._workspaceId-CQVHqxcU.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-CX0zbe5I.js → workspace._workspaceId-DFvkHRHC.js} +2 -2
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-B11oaEXR.js → xychartDiagram-PRI3JC2R-Djg2lfgU.js} +1 -1
- package/dist/migrations/20260619184346_drop_tasks_max_turns/migration.sql +1 -0
- package/dist/migrations/20260619184346_drop_tasks_max_turns/snapshot.json +1157 -0
- package/dist/openapi.json +268 -48
- package/dist/server/assets/{DockviewBrowserContainer-BcfLe0jL.js → DockviewBrowserContainer-Btjtd2O1.js} +29 -34
- package/dist/server/assets/{DockviewTerminalContainer-zVckKR1x.js → DockviewTerminalContainer-bMEUzx6R.js} +3 -3
- package/dist/server/assets/{TerminalPanel-7JfdUecD.js → TerminalPanel-DDazs1HR.js} +1 -49
- package/dist/server/assets/{_basePickBy-3tZLkfZU.js → _basePickBy-BR2ebl6H.js} +2 -2
- package/dist/server/assets/{_baseUniq-Dz_kdarY.js → _baseUniq-C7-_tYXk.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-TcfwNbuH.js +4 -0
- package/dist/server/assets/{arc-B7a2pVpn.js → arc-CWFSWY_u.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-9XWqJEVf.js → architecture-7HQA4BMR-DDMO671Z.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-Vt3dNClh.js → architectureDiagram-VXUJARFQ-vPxmruSN.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-DR7gt_eL.js → blockDiagram-VD42YOAC-DGV6m5iW.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-DYC3sqOW.js → c4Diagram-YG6GDRKO-9PjJESuA.js} +2 -2
- package/dist/server/assets/{channel-DzI1wGYl.js → channel-DzyKDZfe.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-DVHBGPAd.js → chunk-4BX2VUAB-MyrUiBmB.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-BXeWT-V1.js → chunk-55IACEB6-CJ4fKFif.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-BngOdF6s.js → chunk-B4BG7PRW-CKzqfTU-.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-Co1ugmE2.js → chunk-DI55MBZ5-DrXLxcKs.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-BSvY40K1.js → chunk-FMBD7UC4-yeB6m7NE.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-Bld2F-bV.js → chunk-QN33PNHL-qCq8pCkn.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-CbcRrDQ5.js → chunk-QZHKN3VN-CHvK5Ic5.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-FZqT6NRx.js → chunk-TZMSLE5B-wF9ZPcJp.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CqTf3oAt.js → classDiagram-2ON5EDUG-D1OcdIXp.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-CqTf3oAt.js → classDiagram-v2-WZHVMYZB-D1OcdIXp.js} +5 -5
- package/dist/server/assets/{clone-DFaP-n7G.js → clone-BH4YtRmr.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-Cm4DnyNk.js → cose-bilkent-S5V4N54A-BiP6P-09.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-DWtR7ypz.js → dagre-6UL2VRFP-BKfzYlJQ.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-3K0tKsmi.js → diagram-PSM6KHXK-BF6r9xQS.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-C_GABXU2.js → diagram-QEK2KX5R-CxL6qeVX.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-x_2H2okG.js → diagram-S2PKOQOG-CUKugrbt.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-DYAuTF-e.js → erDiagram-Q2GNP2WA-CRPjeaHB.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-CMgKpatm.js → flowDiagram-NV44I4VS-CXnLZPl0.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-BqUjIeN-.js → ganttDiagram-JELNMOA3-CP5EwGxj.js} +1 -1
- package/dist/server/assets/{gitGraph-G5XIXVHT-BOFl30qK.js → gitGraph-G5XIXVHT-UYMoyufq.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-CSFtzM0S.js → gitGraphDiagram-V2S2FVAM-CZNtwgUE.js} +7 -7
- package/dist/server/assets/{graph-Da9wNyd4.js → graph-BB1_2Q0x.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-CSDiX8tu.js → highlighted-body-B3W2YXNL-C6BqMnvu.js} +1 -1
- package/dist/server/assets/{index-CFVkYUnG.js → index-B5V3PU-n.js} +2 -2
- package/dist/server/assets/{index-ZFp3vFxe.js → index-BHQ8bMg_.js} +3 -3
- package/dist/server/assets/{index-D9Pfuy6s.js → index-BUm0x4GN.js} +2 -2
- package/dist/server/assets/{index-DC0ng9YX.js → index-Bay77lf3.js} +2 -2
- package/dist/server/assets/{index-C-7KLTyL.js → index-BbUtF3L1.js} +2 -2
- package/dist/server/assets/{index-ki-c1Gyj.js → index-Bme4JhwA.js} +1 -1
- package/dist/server/assets/{index-CrGR0Fcd.js → index-CMxtCPk9.js} +2 -2
- package/dist/server/assets/{index-Av31QpwJ.js → index-Ct5-lZTn.js} +2 -2
- package/dist/server/assets/{index-BZPQn4AB.js → index-D49PP401.js} +3 -3
- package/dist/server/assets/{index-CjJe7VSH.js → index-D5hMY11m.js} +4 -4
- package/dist/server/assets/{index-DwBbgNmR.js → index-DC1gaho7.js} +5 -5
- package/dist/server/assets/{index-CqNkm5pZ.js → index-DH3a6-do.js} +2 -2
- package/dist/server/assets/{index-DkCUbYql.js → index-DLEtsdeb.js} +2 -2
- package/dist/server/assets/{index-BXCk5sug.js → index-DLV7EX0H.js} +1 -1
- package/dist/server/assets/{index-CFt-wi4p.js → index-Dqk2jQZ7.js} +2 -2
- package/dist/server/assets/{index-CS2NcwnS.js → index-DrWaYPW7.js} +2 -2
- package/dist/server/assets/{index-B9YQ_ief.js → index-DsrV0B5O.js} +5 -5
- package/dist/server/assets/{index-iQ9auLjI.js → index-lmhecPWc.js} +2 -2
- package/dist/server/assets/{info-VBDWY6EO-mGUaI27c.js → info-VBDWY6EO-X8DJfp6J.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-CMic1Hhh.js → infoDiagram-HS3SLOUP-BqzWimk3.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-CravZq_h.js → journeyDiagram-XKPGCS4Q-TTA7OGV5.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-Ik9j3Xny.js → kanban-definition-3W4ZIXB7-DxNhleha.js} +2 -2
- package/dist/server/assets/{layout-DNctAx-v.js → layout-CdOkK52n.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-Bo2_mtnV.js → mermaid-3ZIDBTTL-Cof8t4J_.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-oaV6PZnA.js → mermaid-parser.core-Cqz_DwKC.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-DNTQXwUn.js → mindmap-definition-VGOIOE7T-DeGYTIld.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-Bm5PEDRe.js → packet-DYOGHKS2-TuIP3-Qx.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-BOs-4VKW.js → pie-VRWISCQL-DH44dC73.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-CEDLfCSy.js → pieDiagram-ADFJNKIX-BPUa7SIP.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-CWfJcZnB.js → quadrantDiagram-AYHSOK5B-CkonmhO6.js} +1 -1
- package/dist/server/assets/{radar-ZZBFDIW7-CMUO9a2O.js → radar-ZZBFDIW7-oedT_dlV.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-0SINZ3cV.js → requirementDiagram-UZGBJVZJ-B39ng8tF.js} +3 -3
- package/dist/server/assets/{router-PewB2VMR.js → router-Dz7oMBKX.js} +2331 -453
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-U0rb6LX8.js → sankeyDiagram-TZEHDZUN-61A7I6h9.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-BV5_vSVf.js → sequenceDiagram-WL72ISMW-CXIpjJu4.js} +3 -3
- package/dist/server/assets/{square-terminal-DdT3sDE4.js → square-terminal-D86hckth.js} +1 -1
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-C3wAlRbY.js → stateDiagram-FKZM4ZOC-DSp5PEkn.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-BvzsTmR_.js → stateDiagram-v2-4FDKWEC3-B5TiwK_8.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-BwVTrWyj.js → timeline-definition-IT6M3QCI-DvosEzgh.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-Bohb153V.js → treemap-GDKQZRPO-BOdkONyj.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-BWs5oKO5.js → workspace._workspaceId-CvbciLVC.js} +3 -3
- package/dist/server/assets/{workspace._workspaceId-DkyiAy0e.js → workspace._workspaceId-Dcw9dnbJ.js} +1 -1
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-XlYGoU4Z.js → xychartDiagram-PRI3JC2R-C22gtuGl.js} +1 -1
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +1871 -816
- package/package.json +5 -4
- package/dist/client/assets/DockviewBrowserContainer-4SeBGy5m.js +0 -5
- package/dist/client/assets/TerminalPanel-CEmBYkjb.js +0 -5
- package/dist/client/assets/channel-NIcS3uxn.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-8p3oACYV.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-8p3oACYV.js +0 -1
- package/dist/client/assets/clone-Be31g1pc.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-nq3cGsuB.js +0 -1
- package/dist/server/assets/_tanstack-start-manifest_v-BBzH3QaA.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$1r = [
|
|
1230
1230
|
[
|
|
1231
1231
|
"path",
|
|
1232
1232
|
{
|
|
@@ -1235,45 +1235,45 @@ const __iconNode$1q = [
|
|
|
1235
1235
|
}
|
|
1236
1236
|
]
|
|
1237
1237
|
];
|
|
1238
|
-
const Activity = createLucideIcon("activity", __iconNode$
|
|
1239
|
-
const __iconNode$
|
|
1238
|
+
const Activity = createLucideIcon("activity", __iconNode$1r);
|
|
1239
|
+
const __iconNode$1q = [
|
|
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$1q);
|
|
1245
|
+
const __iconNode$1p = [
|
|
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$1p);
|
|
1250
|
+
const __iconNode$1o = [
|
|
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$1o);
|
|
1255
|
+
const __iconNode$1n = [
|
|
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$1n);
|
|
1260
|
+
const __iconNode$1m = [
|
|
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$
|
|
1265
|
+
const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$1m);
|
|
1266
|
+
const __iconNode$1l = [
|
|
1267
1267
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
1268
1268
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
1269
1269
|
];
|
|
1270
|
-
const ArrowUp = createLucideIcon("arrow-up", __iconNode$
|
|
1271
|
-
const __iconNode$
|
|
1270
|
+
const ArrowUp = createLucideIcon("arrow-up", __iconNode$1l);
|
|
1271
|
+
const __iconNode$1k = [
|
|
1272
1272
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1273
1273
|
["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }]
|
|
1274
1274
|
];
|
|
1275
|
-
const Ban = createLucideIcon("ban", __iconNode$
|
|
1276
|
-
const __iconNode$
|
|
1275
|
+
const Ban = createLucideIcon("ban", __iconNode$1k);
|
|
1276
|
+
const __iconNode$1j = [
|
|
1277
1277
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
1278
1278
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
1279
1279
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -1281,69 +1281,69 @@ const __iconNode$1i = [
|
|
|
1281
1281
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
1282
1282
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
1283
1283
|
];
|
|
1284
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
1285
|
-
const __iconNode$
|
|
1284
|
+
const Bot = createLucideIcon("bot", __iconNode$1j);
|
|
1285
|
+
const __iconNode$1i = [
|
|
1286
1286
|
["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
|
|
1287
1287
|
["path", { d: "M22 9v7", key: "pvm9v3" }],
|
|
1288
1288
|
["path", { d: "M3.304 13h6.392", key: "1q3zxz" }],
|
|
1289
1289
|
["circle", { cx: "18.5", cy: "12.5", r: "3.5", key: "z97x68" }]
|
|
1290
1290
|
];
|
|
1291
|
-
const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$
|
|
1292
|
-
const __iconNode$
|
|
1291
|
+
const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$1i);
|
|
1292
|
+
const __iconNode$1h = [
|
|
1293
1293
|
["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
|
|
1294
1294
|
["path", { d: "M18 17V9", key: "2bz60n" }],
|
|
1295
1295
|
["path", { d: "M13 17V5", key: "1frdt8" }],
|
|
1296
1296
|
["path", { d: "M8 17v-3", key: "17ska0" }]
|
|
1297
1297
|
];
|
|
1298
|
-
const ChartColumn = createLucideIcon("chart-column", __iconNode$
|
|
1299
|
-
const __iconNode$
|
|
1300
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
1301
|
-
const __iconNode$
|
|
1302
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
1303
|
-
const __iconNode$
|
|
1304
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
1305
|
-
const __iconNode$
|
|
1306
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
1307
|
-
const __iconNode$
|
|
1308
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
1309
|
-
const __iconNode$
|
|
1298
|
+
const ChartColumn = createLucideIcon("chart-column", __iconNode$1h);
|
|
1299
|
+
const __iconNode$1g = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
1300
|
+
const Check = createLucideIcon("check", __iconNode$1g);
|
|
1301
|
+
const __iconNode$1f = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
1302
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$1f);
|
|
1303
|
+
const __iconNode$1e = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
1304
|
+
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1e);
|
|
1305
|
+
const __iconNode$1d = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
1306
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$1d);
|
|
1307
|
+
const __iconNode$1c = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
1308
|
+
const ChevronUp = createLucideIcon("chevron-up", __iconNode$1c);
|
|
1309
|
+
const __iconNode$1b = [
|
|
1310
1310
|
["path", { d: "m7 20 5-5 5 5", key: "13a0gw" }],
|
|
1311
1311
|
["path", { d: "m7 4 5 5 5-5", key: "1kwcof" }]
|
|
1312
1312
|
];
|
|
1313
|
-
const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$
|
|
1314
|
-
const __iconNode$
|
|
1313
|
+
const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$1b);
|
|
1314
|
+
const __iconNode$1a = [
|
|
1315
1315
|
["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
|
|
1316
1316
|
["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
|
|
1317
1317
|
];
|
|
1318
|
-
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$
|
|
1319
|
-
const __iconNode$
|
|
1318
|
+
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$1a);
|
|
1319
|
+
const __iconNode$19 = [
|
|
1320
1320
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1321
1321
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
1322
1322
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
1323
1323
|
];
|
|
1324
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
1325
|
-
const __iconNode$
|
|
1324
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$19);
|
|
1325
|
+
const __iconNode$18 = [
|
|
1326
1326
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1327
1327
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
1328
1328
|
];
|
|
1329
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
1330
|
-
const __iconNode$
|
|
1329
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$18);
|
|
1330
|
+
const __iconNode$17 = [
|
|
1331
1331
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1332
1332
|
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
1333
1333
|
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
1334
1334
|
];
|
|
1335
|
-
const CircleX = createLucideIcon("circle-x", __iconNode$
|
|
1336
|
-
const __iconNode$
|
|
1337
|
-
const Circle = createLucideIcon("circle", __iconNode$
|
|
1338
|
-
const __iconNode$
|
|
1335
|
+
const CircleX = createLucideIcon("circle-x", __iconNode$17);
|
|
1336
|
+
const __iconNode$16 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
|
|
1337
|
+
const Circle = createLucideIcon("circle", __iconNode$16);
|
|
1338
|
+
const __iconNode$15 = [
|
|
1339
1339
|
["path", { d: "M11 14h10", key: "1w8e9d" }],
|
|
1340
1340
|
["path", { d: "M16 4h2a2 2 0 0 1 2 2v1.344", key: "1e62lh" }],
|
|
1341
1341
|
["path", { d: "m17 18 4-4-4-4", key: "z2g111" }],
|
|
1342
1342
|
["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" }],
|
|
1343
1343
|
["rect", { x: "8", y: "2", width: "8", height: "4", rx: "1", key: "ublpy" }]
|
|
1344
1344
|
];
|
|
1345
|
-
const ClipboardPaste = createLucideIcon("clipboard-paste", __iconNode$
|
|
1346
|
-
const __iconNode$
|
|
1345
|
+
const ClipboardPaste = createLucideIcon("clipboard-paste", __iconNode$15);
|
|
1346
|
+
const __iconNode$14 = [
|
|
1347
1347
|
["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
|
|
1348
1348
|
[
|
|
1349
1349
|
"path",
|
|
@@ -1353,53 +1353,53 @@ const __iconNode$13 = [
|
|
|
1353
1353
|
}
|
|
1354
1354
|
]
|
|
1355
1355
|
];
|
|
1356
|
-
const Clipboard = createLucideIcon("clipboard", __iconNode$
|
|
1357
|
-
const __iconNode$
|
|
1356
|
+
const Clipboard = createLucideIcon("clipboard", __iconNode$14);
|
|
1357
|
+
const __iconNode$13 = [
|
|
1358
1358
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1359
1359
|
["path", { d: "M12 6v6l4 2", key: "mmk7yg" }]
|
|
1360
1360
|
];
|
|
1361
|
-
const Clock = createLucideIcon("clock", __iconNode$
|
|
1362
|
-
const __iconNode$
|
|
1361
|
+
const Clock = createLucideIcon("clock", __iconNode$13);
|
|
1362
|
+
const __iconNode$12 = [
|
|
1363
1363
|
["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
|
|
1364
1364
|
["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
|
|
1365
1365
|
["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
|
|
1366
1366
|
];
|
|
1367
|
-
const CodeXml = createLucideIcon("code-xml", __iconNode$
|
|
1368
|
-
const __iconNode$
|
|
1367
|
+
const CodeXml = createLucideIcon("code-xml", __iconNode$12);
|
|
1368
|
+
const __iconNode$11 = [
|
|
1369
1369
|
["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
|
|
1370
1370
|
["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
|
|
1371
1371
|
];
|
|
1372
|
-
const Code = createLucideIcon("code", __iconNode$
|
|
1373
|
-
const __iconNode
|
|
1372
|
+
const Code = createLucideIcon("code", __iconNode$11);
|
|
1373
|
+
const __iconNode$10 = [
|
|
1374
1374
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
1375
1375
|
["path", { d: "M12 3v18", key: "108xh3" }]
|
|
1376
1376
|
];
|
|
1377
|
-
const Columns2 = createLucideIcon("columns-2", __iconNode
|
|
1378
|
-
const __iconNode
|
|
1377
|
+
const Columns2 = createLucideIcon("columns-2", __iconNode$10);
|
|
1378
|
+
const __iconNode$$ = [
|
|
1379
1379
|
[
|
|
1380
1380
|
"path",
|
|
1381
1381
|
{ 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" }
|
|
1382
1382
|
]
|
|
1383
1383
|
];
|
|
1384
|
-
const Command$1 = createLucideIcon("command", __iconNode
|
|
1385
|
-
const __iconNode$
|
|
1384
|
+
const Command$1 = createLucideIcon("command", __iconNode$$);
|
|
1385
|
+
const __iconNode$_ = [
|
|
1386
1386
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
1387
1387
|
["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" }]
|
|
1388
1388
|
];
|
|
1389
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
1390
|
-
const __iconNode$
|
|
1389
|
+
const Copy = createLucideIcon("copy", __iconNode$_);
|
|
1390
|
+
const __iconNode$Z = [
|
|
1391
1391
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
1392
1392
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
1393
1393
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
1394
1394
|
];
|
|
1395
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
1396
|
-
const __iconNode$
|
|
1395
|
+
const Download = createLucideIcon("download", __iconNode$Z);
|
|
1396
|
+
const __iconNode$Y = [
|
|
1397
1397
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
1398
1398
|
["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
|
|
1399
1399
|
["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
|
|
1400
1400
|
];
|
|
1401
|
-
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$
|
|
1402
|
-
const __iconNode$
|
|
1401
|
+
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$Y);
|
|
1402
|
+
const __iconNode$X = [
|
|
1403
1403
|
["path", { d: "m15 15 6 6", key: "1s409w" }],
|
|
1404
1404
|
["path", { d: "m15 9 6-6", key: "ko1vev" }],
|
|
1405
1405
|
["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
|
|
@@ -1409,14 +1409,14 @@ const __iconNode$W = [
|
|
|
1409
1409
|
["path", { d: "M3 8V3h5", key: "1ln10m" }],
|
|
1410
1410
|
["path", { d: "M9 9 3 3", key: "v551iv" }]
|
|
1411
1411
|
];
|
|
1412
|
-
const Expand = createLucideIcon("expand", __iconNode$
|
|
1413
|
-
const __iconNode$
|
|
1412
|
+
const Expand = createLucideIcon("expand", __iconNode$X);
|
|
1413
|
+
const __iconNode$W = [
|
|
1414
1414
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
1415
1415
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
1416
1416
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
1417
1417
|
];
|
|
1418
|
-
const ExternalLink$1 = createLucideIcon("external-link", __iconNode$
|
|
1419
|
-
const __iconNode$
|
|
1418
|
+
const ExternalLink$1 = createLucideIcon("external-link", __iconNode$W);
|
|
1419
|
+
const __iconNode$V = [
|
|
1420
1420
|
[
|
|
1421
1421
|
"path",
|
|
1422
1422
|
{
|
|
@@ -1426,8 +1426,8 @@ const __iconNode$U = [
|
|
|
1426
1426
|
],
|
|
1427
1427
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
1428
1428
|
];
|
|
1429
|
-
const Eye = createLucideIcon("eye", __iconNode$
|
|
1430
|
-
const __iconNode$
|
|
1429
|
+
const Eye = createLucideIcon("eye", __iconNode$V);
|
|
1430
|
+
const __iconNode$U = [
|
|
1431
1431
|
[
|
|
1432
1432
|
"path",
|
|
1433
1433
|
{
|
|
@@ -1438,8 +1438,8 @@ const __iconNode$T = [
|
|
|
1438
1438
|
["path", { d: "M12 9v4", key: "juzpu7" }],
|
|
1439
1439
|
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
1440
1440
|
];
|
|
1441
|
-
const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$
|
|
1442
|
-
const __iconNode$
|
|
1441
|
+
const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$U);
|
|
1442
|
+
const __iconNode$T = [
|
|
1443
1443
|
[
|
|
1444
1444
|
"path",
|
|
1445
1445
|
{
|
|
@@ -1451,8 +1451,8 @@ const __iconNode$S = [
|
|
|
1451
1451
|
["path", { d: "M2 15h10", key: "jfw4w8" }],
|
|
1452
1452
|
["path", { d: "m9 18 3-3-3-3", key: "112psh" }]
|
|
1453
1453
|
];
|
|
1454
|
-
const FileInput = createLucideIcon("file-input", __iconNode$
|
|
1455
|
-
const __iconNode$
|
|
1454
|
+
const FileInput = createLucideIcon("file-input", __iconNode$T);
|
|
1455
|
+
const __iconNode$S = [
|
|
1456
1456
|
[
|
|
1457
1457
|
"path",
|
|
1458
1458
|
{
|
|
@@ -1464,8 +1464,8 @@ const __iconNode$R = [
|
|
|
1464
1464
|
["path", { d: "M9 15h6", key: "cctwl0" }],
|
|
1465
1465
|
["path", { d: "M12 18v-6", key: "17g6i2" }]
|
|
1466
1466
|
];
|
|
1467
|
-
const FilePlus = createLucideIcon("file-plus", __iconNode$
|
|
1468
|
-
const __iconNode$
|
|
1467
|
+
const FilePlus = createLucideIcon("file-plus", __iconNode$S);
|
|
1468
|
+
const __iconNode$R = [
|
|
1469
1469
|
[
|
|
1470
1470
|
"path",
|
|
1471
1471
|
{
|
|
@@ -1478,8 +1478,8 @@ const __iconNode$Q = [
|
|
|
1478
1478
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
1479
1479
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
1480
1480
|
];
|
|
1481
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
1482
|
-
const __iconNode$
|
|
1481
|
+
const FileText = createLucideIcon("file-text", __iconNode$R);
|
|
1482
|
+
const __iconNode$Q = [
|
|
1483
1483
|
[
|
|
1484
1484
|
"path",
|
|
1485
1485
|
{
|
|
@@ -1489,8 +1489,8 @@ const __iconNode$P = [
|
|
|
1489
1489
|
],
|
|
1490
1490
|
["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
|
|
1491
1491
|
];
|
|
1492
|
-
const File$1 = createLucideIcon("file", __iconNode$
|
|
1493
|
-
const __iconNode$
|
|
1492
|
+
const File$1 = createLucideIcon("file", __iconNode$Q);
|
|
1493
|
+
const __iconNode$P = [
|
|
1494
1494
|
[
|
|
1495
1495
|
"path",
|
|
1496
1496
|
{
|
|
@@ -1499,8 +1499,8 @@ const __iconNode$O = [
|
|
|
1499
1499
|
}
|
|
1500
1500
|
]
|
|
1501
1501
|
];
|
|
1502
|
-
const FolderOpen = createLucideIcon("folder-open", __iconNode$
|
|
1503
|
-
const __iconNode$
|
|
1502
|
+
const FolderOpen = createLucideIcon("folder-open", __iconNode$P);
|
|
1503
|
+
const __iconNode$O = [
|
|
1504
1504
|
["path", { d: "M12 10v6", key: "1bos4e" }],
|
|
1505
1505
|
["path", { d: "M9 13h6", key: "1uhe8q" }],
|
|
1506
1506
|
[
|
|
@@ -1511,8 +1511,8 @@ const __iconNode$N = [
|
|
|
1511
1511
|
}
|
|
1512
1512
|
]
|
|
1513
1513
|
];
|
|
1514
|
-
const FolderPlus = createLucideIcon("folder-plus", __iconNode$
|
|
1515
|
-
const __iconNode$
|
|
1514
|
+
const FolderPlus = createLucideIcon("folder-plus", __iconNode$O);
|
|
1515
|
+
const __iconNode$N = [
|
|
1516
1516
|
[
|
|
1517
1517
|
"path",
|
|
1518
1518
|
{
|
|
@@ -1521,8 +1521,8 @@ const __iconNode$M = [
|
|
|
1521
1521
|
}
|
|
1522
1522
|
]
|
|
1523
1523
|
];
|
|
1524
|
-
const Folder = createLucideIcon("folder", __iconNode$
|
|
1525
|
-
const __iconNode$
|
|
1524
|
+
const Folder = createLucideIcon("folder", __iconNode$N);
|
|
1525
|
+
const __iconNode$M = [
|
|
1526
1526
|
[
|
|
1527
1527
|
"path",
|
|
1528
1528
|
{
|
|
@@ -1535,39 +1535,39 @@ const __iconNode$L = [
|
|
|
1535
1535
|
{ d: "M3 8.268a2 2 0 0 0-1 1.738V19a2 2 0 0 0 2 2h11a2 2 0 0 0 1.732-1", key: "yxbcw3" }
|
|
1536
1536
|
]
|
|
1537
1537
|
];
|
|
1538
|
-
const Folders = createLucideIcon("folders", __iconNode$
|
|
1539
|
-
const __iconNode$
|
|
1538
|
+
const Folders = createLucideIcon("folders", __iconNode$M);
|
|
1539
|
+
const __iconNode$L = [
|
|
1540
1540
|
["path", { d: "M15 6a9 9 0 0 0-9 9V3", key: "1cii5b" }],
|
|
1541
1541
|
["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
|
|
1542
1542
|
["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }]
|
|
1543
1543
|
];
|
|
1544
|
-
const GitBranch = createLucideIcon("git-branch", __iconNode$
|
|
1545
|
-
const __iconNode$
|
|
1544
|
+
const GitBranch = createLucideIcon("git-branch", __iconNode$L);
|
|
1545
|
+
const __iconNode$K = [
|
|
1546
1546
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
|
|
1547
1547
|
["line", { x1: "3", x2: "9", y1: "12", y2: "12", key: "1dyftd" }],
|
|
1548
1548
|
["line", { x1: "15", x2: "21", y1: "12", y2: "12", key: "oup4p8" }]
|
|
1549
1549
|
];
|
|
1550
|
-
const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode$
|
|
1551
|
-
const __iconNode$
|
|
1550
|
+
const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode$K);
|
|
1551
|
+
const __iconNode$J = [
|
|
1552
1552
|
["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
|
|
1553
1553
|
["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
|
|
1554
1554
|
["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
|
|
1555
1555
|
["path", { d: "M11 18H8a2 2 0 0 1-2-2V9", key: "19pyzm" }]
|
|
1556
1556
|
];
|
|
1557
|
-
const GitCompare = createLucideIcon("git-compare", __iconNode$
|
|
1558
|
-
const __iconNode$
|
|
1557
|
+
const GitCompare = createLucideIcon("git-compare", __iconNode$J);
|
|
1558
|
+
const __iconNode$I = [
|
|
1559
1559
|
["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
|
|
1560
1560
|
["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
|
|
1561
1561
|
["path", { d: "M6 21V9a9 9 0 0 0 9 9", key: "7kw0sc" }]
|
|
1562
1562
|
];
|
|
1563
|
-
const GitMerge = createLucideIcon("git-merge", __iconNode$
|
|
1564
|
-
const __iconNode$
|
|
1563
|
+
const GitMerge = createLucideIcon("git-merge", __iconNode$I);
|
|
1564
|
+
const __iconNode$H = [
|
|
1565
1565
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1566
1566
|
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
1567
1567
|
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
1568
1568
|
];
|
|
1569
|
-
const Globe = createLucideIcon("globe", __iconNode$
|
|
1570
|
-
const __iconNode$
|
|
1569
|
+
const Globe = createLucideIcon("globe", __iconNode$H);
|
|
1570
|
+
const __iconNode$G = [
|
|
1571
1571
|
["circle", { cx: "12", cy: "9", r: "1", key: "124mty" }],
|
|
1572
1572
|
["circle", { cx: "19", cy: "9", r: "1", key: "1ruzo2" }],
|
|
1573
1573
|
["circle", { cx: "5", cy: "9", r: "1", key: "1a8b28" }],
|
|
@@ -1575,8 +1575,8 @@ const __iconNode$F = [
|
|
|
1575
1575
|
["circle", { cx: "19", cy: "15", r: "1", key: "1a92ep" }],
|
|
1576
1576
|
["circle", { cx: "5", cy: "15", r: "1", key: "5r1jwy" }]
|
|
1577
1577
|
];
|
|
1578
|
-
const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$
|
|
1579
|
-
const __iconNode$
|
|
1578
|
+
const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$G);
|
|
1579
|
+
const __iconNode$F = [
|
|
1580
1580
|
["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }],
|
|
1581
1581
|
["path", { d: "M10.41 10.41a2 2 0 1 1-2.83-2.83", key: "1bzlo9" }],
|
|
1582
1582
|
["line", { x1: "13.5", x2: "6", y1: "13.5", y2: "21", key: "1q0aeu" }],
|
|
@@ -1590,31 +1590,31 @@ const __iconNode$E = [
|
|
|
1590
1590
|
],
|
|
1591
1591
|
["path", { d: "M21 15V5a2 2 0 0 0-2-2H9", key: "43el77" }]
|
|
1592
1592
|
];
|
|
1593
|
-
const ImageOff = createLucideIcon("image-off", __iconNode$
|
|
1594
|
-
const __iconNode$
|
|
1593
|
+
const ImageOff = createLucideIcon("image-off", __iconNode$F);
|
|
1594
|
+
const __iconNode$E = [
|
|
1595
1595
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1596
1596
|
["path", { d: "M12 16v-4", key: "1dtifu" }],
|
|
1597
1597
|
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
1598
1598
|
];
|
|
1599
|
-
const Info$1 = createLucideIcon("info", __iconNode$
|
|
1600
|
-
const __iconNode$
|
|
1599
|
+
const Info$1 = createLucideIcon("info", __iconNode$E);
|
|
1600
|
+
const __iconNode$D = [
|
|
1601
1601
|
["path", { d: "M16 5H3", key: "m91uny" }],
|
|
1602
1602
|
["path", { d: "M11 12H3", key: "51ecnj" }],
|
|
1603
1603
|
["path", { d: "M16 19H3", key: "zzsher" }],
|
|
1604
1604
|
["path", { d: "M21 12h-6", key: "bt1uis" }]
|
|
1605
1605
|
];
|
|
1606
|
-
const ListMinus = createLucideIcon("list-minus", __iconNode$
|
|
1607
|
-
const __iconNode$
|
|
1606
|
+
const ListMinus = createLucideIcon("list-minus", __iconNode$D);
|
|
1607
|
+
const __iconNode$C = [
|
|
1608
1608
|
["path", { d: "M13 5h8", key: "a7qcls" }],
|
|
1609
1609
|
["path", { d: "M13 12h8", key: "h98zly" }],
|
|
1610
1610
|
["path", { d: "M13 19h8", key: "c3s6r1" }],
|
|
1611
1611
|
["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
|
|
1612
1612
|
["rect", { x: "3", y: "4", width: "6", height: "6", rx: "1", key: "cif1o7" }]
|
|
1613
1613
|
];
|
|
1614
|
-
const ListTodo = createLucideIcon("list-todo", __iconNode$
|
|
1615
|
-
const __iconNode$
|
|
1616
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
1617
|
-
const __iconNode$
|
|
1614
|
+
const ListTodo = createLucideIcon("list-todo", __iconNode$C);
|
|
1615
|
+
const __iconNode$B = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
1616
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$B);
|
|
1617
|
+
const __iconNode$A = [
|
|
1618
1618
|
["path", { d: "M12 2v4", key: "3427ic" }],
|
|
1619
1619
|
["path", { d: "m16.2 7.8 2.9-2.9", key: "r700ao" }],
|
|
1620
1620
|
["path", { d: "M18 12h4", key: "wj9ykh" }],
|
|
@@ -1624,21 +1624,21 @@ const __iconNode$z = [
|
|
|
1624
1624
|
["path", { d: "M2 12h4", key: "j09sii" }],
|
|
1625
1625
|
["path", { d: "m4.9 4.9 2.9 2.9", key: "giyufr" }]
|
|
1626
1626
|
];
|
|
1627
|
-
const Loader = createLucideIcon("loader", __iconNode$
|
|
1628
|
-
const __iconNode$
|
|
1627
|
+
const Loader = createLucideIcon("loader", __iconNode$A);
|
|
1628
|
+
const __iconNode$z = [
|
|
1629
1629
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
1630
1630
|
["path", { d: "m21 3-7 7", key: "1l2asr" }],
|
|
1631
1631
|
["path", { d: "m3 21 7-7", key: "tjx5ai" }],
|
|
1632
1632
|
["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
|
|
1633
1633
|
];
|
|
1634
|
-
const Maximize2 = createLucideIcon("maximize-2", __iconNode$
|
|
1635
|
-
const __iconNode$
|
|
1634
|
+
const Maximize2 = createLucideIcon("maximize-2", __iconNode$z);
|
|
1635
|
+
const __iconNode$y = [
|
|
1636
1636
|
["path", { d: "M4 5h16", key: "1tepv9" }],
|
|
1637
1637
|
["path", { d: "M4 12h16", key: "1lakjw" }],
|
|
1638
1638
|
["path", { d: "M4 19h16", key: "1djgab" }]
|
|
1639
1639
|
];
|
|
1640
|
-
const Menu$1 = createLucideIcon("menu", __iconNode$
|
|
1641
|
-
const __iconNode$
|
|
1640
|
+
const Menu$1 = createLucideIcon("menu", __iconNode$y);
|
|
1641
|
+
const __iconNode$x = [
|
|
1642
1642
|
[
|
|
1643
1643
|
"path",
|
|
1644
1644
|
{
|
|
@@ -1647,25 +1647,25 @@ const __iconNode$w = [
|
|
|
1647
1647
|
}
|
|
1648
1648
|
]
|
|
1649
1649
|
];
|
|
1650
|
-
const MessageSquare = createLucideIcon("message-square", __iconNode$
|
|
1651
|
-
const __iconNode$
|
|
1650
|
+
const MessageSquare = createLucideIcon("message-square", __iconNode$x);
|
|
1651
|
+
const __iconNode$w = [
|
|
1652
1652
|
["path", { d: "m14 10 7-7", key: "oa77jy" }],
|
|
1653
1653
|
["path", { d: "M20 10h-6V4", key: "mjg0md" }],
|
|
1654
1654
|
["path", { d: "m3 21 7-7", key: "tjx5ai" }],
|
|
1655
1655
|
["path", { d: "M4 14h6v6", key: "rmj7iw" }]
|
|
1656
1656
|
];
|
|
1657
|
-
const Minimize2 = createLucideIcon("minimize-2", __iconNode$
|
|
1658
|
-
const __iconNode$
|
|
1657
|
+
const Minimize2 = createLucideIcon("minimize-2", __iconNode$w);
|
|
1658
|
+
const __iconNode$v = [
|
|
1659
1659
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
1660
1660
|
["path", { d: "M9 3v18", key: "fh3hqa" }]
|
|
1661
1661
|
];
|
|
1662
|
-
const PanelLeft = createLucideIcon("panel-left", __iconNode$
|
|
1663
|
-
const __iconNode$
|
|
1662
|
+
const PanelLeft = createLucideIcon("panel-left", __iconNode$v);
|
|
1663
|
+
const __iconNode$u = [
|
|
1664
1664
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
1665
1665
|
["path", { d: "M3 9h18", key: "1pudct" }]
|
|
1666
1666
|
];
|
|
1667
|
-
const PanelTop = createLucideIcon("panel-top", __iconNode$
|
|
1668
|
-
const __iconNode$
|
|
1667
|
+
const PanelTop = createLucideIcon("panel-top", __iconNode$u);
|
|
1668
|
+
const __iconNode$t = [
|
|
1669
1669
|
[
|
|
1670
1670
|
"path",
|
|
1671
1671
|
{
|
|
@@ -1674,8 +1674,8 @@ const __iconNode$s = [
|
|
|
1674
1674
|
}
|
|
1675
1675
|
]
|
|
1676
1676
|
];
|
|
1677
|
-
const Paperclip = createLucideIcon("paperclip", __iconNode$
|
|
1678
|
-
const __iconNode$
|
|
1677
|
+
const Paperclip = createLucideIcon("paperclip", __iconNode$t);
|
|
1678
|
+
const __iconNode$s = [
|
|
1679
1679
|
[
|
|
1680
1680
|
"path",
|
|
1681
1681
|
{
|
|
@@ -1685,8 +1685,8 @@ const __iconNode$r = [
|
|
|
1685
1685
|
],
|
|
1686
1686
|
["path", { d: "m15 5 4 4", key: "1mk7zo" }]
|
|
1687
1687
|
];
|
|
1688
|
-
const Pencil = createLucideIcon("pencil", __iconNode$
|
|
1689
|
-
const __iconNode$
|
|
1688
|
+
const Pencil = createLucideIcon("pencil", __iconNode$s);
|
|
1689
|
+
const __iconNode$r = [
|
|
1690
1690
|
["path", { d: "M12 17v5", key: "bb1du9" }],
|
|
1691
1691
|
["path", { d: "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89", key: "znwnzq" }],
|
|
1692
1692
|
["path", { d: "m2 2 20 20", key: "1ooewy" }],
|
|
@@ -1698,8 +1698,8 @@ const __iconNode$q = [
|
|
|
1698
1698
|
}
|
|
1699
1699
|
]
|
|
1700
1700
|
];
|
|
1701
|
-
const PinOff = createLucideIcon("pin-off", __iconNode$
|
|
1702
|
-
const __iconNode$
|
|
1701
|
+
const PinOff = createLucideIcon("pin-off", __iconNode$r);
|
|
1702
|
+
const __iconNode$q = [
|
|
1703
1703
|
["path", { d: "M12 17v5", key: "bb1du9" }],
|
|
1704
1704
|
[
|
|
1705
1705
|
"path",
|
|
@@ -1709,8 +1709,8 @@ const __iconNode$p = [
|
|
|
1709
1709
|
}
|
|
1710
1710
|
]
|
|
1711
1711
|
];
|
|
1712
|
-
const Pin = createLucideIcon("pin", __iconNode$
|
|
1713
|
-
const __iconNode$
|
|
1712
|
+
const Pin = createLucideIcon("pin", __iconNode$q);
|
|
1713
|
+
const __iconNode$p = [
|
|
1714
1714
|
[
|
|
1715
1715
|
"path",
|
|
1716
1716
|
{
|
|
@@ -1719,12 +1719,19 @@ const __iconNode$o = [
|
|
|
1719
1719
|
}
|
|
1720
1720
|
]
|
|
1721
1721
|
];
|
|
1722
|
-
const Play = createLucideIcon("play", __iconNode$
|
|
1723
|
-
const __iconNode$
|
|
1722
|
+
const Play = createLucideIcon("play", __iconNode$p);
|
|
1723
|
+
const __iconNode$o = [
|
|
1724
1724
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
1725
1725
|
["path", { d: "M12 5v14", key: "s699le" }]
|
|
1726
1726
|
];
|
|
1727
|
-
const Plus = createLucideIcon("plus", __iconNode$
|
|
1727
|
+
const Plus = createLucideIcon("plus", __iconNode$o);
|
|
1728
|
+
const __iconNode$n = [
|
|
1729
|
+
["path", { d: "M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "14sxne" }],
|
|
1730
|
+
["path", { d: "M3 3v5h5", key: "1xhq8a" }],
|
|
1731
|
+
["path", { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16", key: "1hlbsb" }],
|
|
1732
|
+
["path", { d: "M16 16h5v5", key: "ccwih5" }]
|
|
1733
|
+
];
|
|
1734
|
+
const RefreshCcw = createLucideIcon("refresh-ccw", __iconNode$n);
|
|
1728
1735
|
const __iconNode$m = [
|
|
1729
1736
|
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
1730
1737
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
@@ -3395,7 +3402,7 @@ function useCallbackRef(initialValue, callback) {
|
|
|
3395
3402
|
ref.callback = callback;
|
|
3396
3403
|
return ref.facade;
|
|
3397
3404
|
}
|
|
3398
|
-
var useIsomorphicLayoutEffect$
|
|
3405
|
+
var useIsomorphicLayoutEffect$4 = typeof window !== "undefined" ? reactExports.useLayoutEffect : reactExports.useEffect;
|
|
3399
3406
|
var currentValues = /* @__PURE__ */ new WeakMap();
|
|
3400
3407
|
function useMergeRefs(refs, defaultValue2) {
|
|
3401
3408
|
var callbackRef = useCallbackRef(null, function(newValue) {
|
|
@@ -3403,7 +3410,7 @@ function useMergeRefs(refs, defaultValue2) {
|
|
|
3403
3410
|
return assignRef(ref, newValue);
|
|
3404
3411
|
});
|
|
3405
3412
|
});
|
|
3406
|
-
useIsomorphicLayoutEffect$
|
|
3413
|
+
useIsomorphicLayoutEffect$4(function() {
|
|
3407
3414
|
var oldValue = currentValues.get(callbackRef);
|
|
3408
3415
|
if (oldValue) {
|
|
3409
3416
|
var prevRefs_1 = new Set(oldValue);
|
|
@@ -3789,10 +3796,10 @@ var handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) {
|
|
|
3789
3796
|
break;
|
|
3790
3797
|
}
|
|
3791
3798
|
var _a3 = getScrollVariables(axis, target), position2 = _a3[0], scroll_1 = _a3[1], capacity = _a3[2];
|
|
3792
|
-
var
|
|
3793
|
-
if (position2 ||
|
|
3799
|
+
var elementScroll2 = scroll_1 - capacity - directionFactor * position2;
|
|
3800
|
+
if (position2 || elementScroll2) {
|
|
3794
3801
|
if (elementCouldBeScrolled(axis, target)) {
|
|
3795
|
-
availableScroll +=
|
|
3802
|
+
availableScroll += elementScroll2;
|
|
3796
3803
|
availableScrollTop += position2;
|
|
3797
3804
|
}
|
|
3798
3805
|
}
|
|
@@ -14966,12 +14973,22 @@ function ContextMenuPortal({ ...props }) {
|
|
|
14966
14973
|
}
|
|
14967
14974
|
function ContextMenuContent({
|
|
14968
14975
|
className,
|
|
14976
|
+
onPointerDownCapture,
|
|
14977
|
+
onPointerUpCapture,
|
|
14969
14978
|
...props
|
|
14970
14979
|
}) {
|
|
14971
14980
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal2$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
14972
14981
|
Content2$4,
|
|
14973
14982
|
{
|
|
14974
14983
|
"data-slot": "context-menu-content",
|
|
14984
|
+
onPointerDownCapture: (event) => {
|
|
14985
|
+
onPointerDownCapture?.(event);
|
|
14986
|
+
if (event.button === 2) event.stopPropagation();
|
|
14987
|
+
},
|
|
14988
|
+
onPointerUpCapture: (event) => {
|
|
14989
|
+
onPointerUpCapture?.(event);
|
|
14990
|
+
if (event.button === 2) event.stopPropagation();
|
|
14991
|
+
},
|
|
14975
14992
|
className: cn$2(
|
|
14976
14993
|
"z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md 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",
|
|
14977
14994
|
className
|
|
@@ -40651,53 +40668,53 @@ async function loadLanguage(lang) {
|
|
|
40651
40668
|
try {
|
|
40652
40669
|
switch (lang) {
|
|
40653
40670
|
case "javascript":
|
|
40654
|
-
return import("./index-
|
|
40671
|
+
return import("./index-Ct5-lZTn.js").then((m2) => m2.javascript());
|
|
40655
40672
|
case "jsx":
|
|
40656
|
-
return import("./index-
|
|
40673
|
+
return import("./index-Ct5-lZTn.js").then((m2) => m2.javascript({ jsx: true }));
|
|
40657
40674
|
case "typescript":
|
|
40658
|
-
return import("./index-
|
|
40675
|
+
return import("./index-Ct5-lZTn.js").then(
|
|
40659
40676
|
(m2) => m2.javascript({ typescript: true })
|
|
40660
40677
|
);
|
|
40661
40678
|
case "tsx":
|
|
40662
|
-
return import("./index-
|
|
40679
|
+
return import("./index-Ct5-lZTn.js").then(
|
|
40663
40680
|
(m2) => m2.javascript({ jsx: true, typescript: true })
|
|
40664
40681
|
);
|
|
40665
40682
|
case "python":
|
|
40666
|
-
return import("./index-
|
|
40683
|
+
return import("./index-DLEtsdeb.js").then((m2) => m2.python());
|
|
40667
40684
|
case "html":
|
|
40668
|
-
return import("./index-
|
|
40685
|
+
return import("./index-D5hMY11m.js").then((m2) => m2.html());
|
|
40669
40686
|
case "css":
|
|
40670
|
-
return import("./index-
|
|
40687
|
+
return import("./index-Dqk2jQZ7.js").then((m2) => m2.css());
|
|
40671
40688
|
case "scss":
|
|
40672
40689
|
case "sass":
|
|
40673
|
-
return import("./index-
|
|
40690
|
+
return import("./index-D49PP401.js").then((m2) => m2.sass());
|
|
40674
40691
|
case "less":
|
|
40675
|
-
return import("./index-
|
|
40692
|
+
return import("./index-BHQ8bMg_.js").then((m2) => m2.less());
|
|
40676
40693
|
case "json":
|
|
40677
40694
|
case "jsonc":
|
|
40678
|
-
return import("./index-
|
|
40695
|
+
return import("./index-Bay77lf3.js").then((m2) => m2.json());
|
|
40679
40696
|
case "markdown":
|
|
40680
40697
|
case "mdx":
|
|
40681
|
-
return import("./index-
|
|
40698
|
+
return import("./index-DC1gaho7.js").then((m2) => m2.markdown());
|
|
40682
40699
|
case "xml":
|
|
40683
|
-
return import("./index-
|
|
40700
|
+
return import("./index-BUm0x4GN.js").then((m2) => m2.xml());
|
|
40684
40701
|
case "yaml":
|
|
40685
|
-
return import("./index-
|
|
40702
|
+
return import("./index-lmhecPWc.js").then((m2) => m2.yaml());
|
|
40686
40703
|
case "sql":
|
|
40687
|
-
return import("./index-
|
|
40704
|
+
return import("./index-BbUtF3L1.js").then((m2) => m2.sql());
|
|
40688
40705
|
case "rust":
|
|
40689
|
-
return import("./index-
|
|
40706
|
+
return import("./index-DH3a6-do.js").then((m2) => m2.rust());
|
|
40690
40707
|
case "go":
|
|
40691
|
-
return import("./index-
|
|
40708
|
+
return import("./index-DrWaYPW7.js").then((m2) => m2.go());
|
|
40692
40709
|
case "java":
|
|
40693
|
-
return import("./index-
|
|
40710
|
+
return import("./index-CMxtCPk9.js").then((m2) => m2.java());
|
|
40694
40711
|
case "kotlin":
|
|
40695
|
-
return import("./index-
|
|
40712
|
+
return import("./index-CMxtCPk9.js").then((m2) => m2.java());
|
|
40696
40713
|
case "c":
|
|
40697
40714
|
case "cpp":
|
|
40698
|
-
return import("./index-
|
|
40715
|
+
return import("./index-B5V3PU-n.js").then((m2) => m2.cpp());
|
|
40699
40716
|
case "php":
|
|
40700
|
-
return import("./index-
|
|
40717
|
+
return import("./index-DsrV0B5O.js").then((m2) => m2.php());
|
|
40701
40718
|
// Legacy modes via StreamLanguage
|
|
40702
40719
|
case "bash":
|
|
40703
40720
|
case "fish":
|
|
@@ -42429,10 +42446,10 @@ function getOwnerDocument(target) {
|
|
|
42429
42446
|
}
|
|
42430
42447
|
return document;
|
|
42431
42448
|
}
|
|
42432
|
-
const useIsomorphicLayoutEffect$
|
|
42449
|
+
const useIsomorphicLayoutEffect$3 = canUseDOM$1 ? reactExports.useLayoutEffect : reactExports.useEffect;
|
|
42433
42450
|
function useEvent(handler) {
|
|
42434
42451
|
const handlerRef = reactExports.useRef(handler);
|
|
42435
|
-
useIsomorphicLayoutEffect$
|
|
42452
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
42436
42453
|
handlerRef.current = handler;
|
|
42437
42454
|
});
|
|
42438
42455
|
return reactExports.useCallback(function() {
|
|
@@ -42460,7 +42477,7 @@ function useLatestValue(value, dependencies) {
|
|
|
42460
42477
|
dependencies = [value];
|
|
42461
42478
|
}
|
|
42462
42479
|
const valueRef = reactExports.useRef(value);
|
|
42463
|
-
useIsomorphicLayoutEffect$
|
|
42480
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
42464
42481
|
if (valueRef.current !== value) {
|
|
42465
42482
|
valueRef.current = value;
|
|
42466
42483
|
}
|
|
@@ -44438,7 +44455,7 @@ function useRect(element2, measure, fallbackRect2) {
|
|
|
44438
44455
|
const resizeObserver = useResizeObserver({
|
|
44439
44456
|
callback: measureRect
|
|
44440
44457
|
});
|
|
44441
|
-
useIsomorphicLayoutEffect$
|
|
44458
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
44442
44459
|
measureRect();
|
|
44443
44460
|
if (element2) {
|
|
44444
44461
|
resizeObserver == null ? void 0 : resizeObserver.observe(element2);
|
|
@@ -44612,7 +44629,7 @@ function useRects(elements, measure) {
|
|
|
44612
44629
|
const resizeObserver = useResizeObserver({
|
|
44613
44630
|
callback: measureRects
|
|
44614
44631
|
});
|
|
44615
|
-
useIsomorphicLayoutEffect$
|
|
44632
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
44616
44633
|
resizeObserver == null ? void 0 : resizeObserver.disconnect();
|
|
44617
44634
|
measureRects();
|
|
44618
44635
|
elements.forEach((element2) => resizeObserver == null ? void 0 : resizeObserver.observe(element2));
|
|
@@ -44974,7 +44991,7 @@ function useLayoutShiftScrollCompensation(_ref2) {
|
|
|
44974
44991
|
x: config2,
|
|
44975
44992
|
y: config2
|
|
44976
44993
|
} : config2;
|
|
44977
|
-
useIsomorphicLayoutEffect$
|
|
44994
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
44978
44995
|
const disabled = !x2 && !y4;
|
|
44979
44996
|
if (disabled || !activeNode) {
|
|
44980
44997
|
initialized.current = false;
|
|
@@ -45335,7 +45352,7 @@ const DndContext = /* @__PURE__ */ reactExports.memo(function DndContext2(_ref2)
|
|
|
45335
45352
|
}, [draggableNodes, instantiateSensor]);
|
|
45336
45353
|
const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);
|
|
45337
45354
|
useSensorSetup(sensors);
|
|
45338
|
-
useIsomorphicLayoutEffect$
|
|
45355
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
45339
45356
|
if (activeNodeRect && status === Status.Initializing) {
|
|
45340
45357
|
setStatus(Status.Initialized);
|
|
45341
45358
|
}
|
|
@@ -45419,7 +45436,7 @@ const DndContext = /* @__PURE__ */ reactExports.memo(function DndContext2(_ref2)
|
|
|
45419
45436
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45420
45437
|
[overId]
|
|
45421
45438
|
);
|
|
45422
|
-
useIsomorphicLayoutEffect$
|
|
45439
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
45423
45440
|
sensorContext.current = {
|
|
45424
45441
|
activatorEvent,
|
|
45425
45442
|
active,
|
|
@@ -45546,7 +45563,7 @@ function useDraggable(_ref2) {
|
|
|
45546
45563
|
const [activatorNode, setActivatorNodeRef] = useNodeRef();
|
|
45547
45564
|
const listeners2 = useSyntheticListeners(activators, id28);
|
|
45548
45565
|
const dataRef = useLatestValue(data);
|
|
45549
|
-
useIsomorphicLayoutEffect$
|
|
45566
|
+
useIsomorphicLayoutEffect$3(
|
|
45550
45567
|
() => {
|
|
45551
45568
|
draggableNodes.set(id28, {
|
|
45552
45569
|
id: id28,
|
|
@@ -45719,7 +45736,7 @@ function AnimationManager(_ref2) {
|
|
|
45719
45736
|
if (!children2 && !clonedChildren && previousChildren) {
|
|
45720
45737
|
setClonedChildren(previousChildren);
|
|
45721
45738
|
}
|
|
45722
|
-
useIsomorphicLayoutEffect$
|
|
45739
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
45723
45740
|
if (!element2) {
|
|
45724
45741
|
return;
|
|
45725
45742
|
}
|
|
@@ -46219,7 +46236,7 @@ function SortableContext(_ref2) {
|
|
|
46219
46236
|
const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);
|
|
46220
46237
|
const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;
|
|
46221
46238
|
const disabled = normalizeDisabled(disabledProp);
|
|
46222
|
-
useIsomorphicLayoutEffect$
|
|
46239
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
46223
46240
|
if (itemsHaveChanged && isDragging) {
|
|
46224
46241
|
measureDroppableContainers(items);
|
|
46225
46242
|
}
|
|
@@ -46300,7 +46317,7 @@ function useDerivedTransform(_ref2) {
|
|
|
46300
46317
|
} = _ref2;
|
|
46301
46318
|
const [derivedTransform, setDerivedtransform] = reactExports.useState(null);
|
|
46302
46319
|
const previousIndex = reactExports.useRef(index2);
|
|
46303
|
-
useIsomorphicLayoutEffect$
|
|
46320
|
+
useIsomorphicLayoutEffect$3(() => {
|
|
46304
46321
|
if (!disabled && index2 !== previousIndex.current && node2.current) {
|
|
46305
46322
|
const initial = rect2.current;
|
|
46306
46323
|
if (initial) {
|
|
@@ -46624,17 +46641,32 @@ function DeleteWorkspaceDialog({
|
|
|
46624
46641
|
] })
|
|
46625
46642
|
] }) });
|
|
46626
46643
|
}
|
|
46644
|
+
function slugifyBranchName(input) {
|
|
46645
|
+
return input.toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9\-/]/g, "").replace(/-{2,}/g, "-").replace(/\/+/g, "/").replace(/^[-/]+|[-/]+$/g, "");
|
|
46646
|
+
}
|
|
46627
46647
|
function NewWorkspaceDialog({ projectName, open: open2, onOpenChange }) {
|
|
46628
46648
|
const [branch, setBranch] = reactExports.useState("");
|
|
46629
46649
|
const [base2, setBase] = reactExports.useState("");
|
|
46630
46650
|
const [prompt, setPrompt] = reactExports.useState("");
|
|
46631
46651
|
const createWorkspaceMutation = useCreateWorkspace();
|
|
46652
|
+
const { projects } = useProjects();
|
|
46653
|
+
const slug = slugifyBranchName(branch);
|
|
46654
|
+
const slugError = (() => {
|
|
46655
|
+
if (branch && !slug) return "Branch name contains no valid characters.";
|
|
46656
|
+
if (slug) {
|
|
46657
|
+
const project = projects.find((p2) => p2.name === projectName);
|
|
46658
|
+
if (project?.worktrees.some((wt2) => wt2.branch === slug)) {
|
|
46659
|
+
return `A workspace named "${slug}" already exists.`;
|
|
46660
|
+
}
|
|
46661
|
+
}
|
|
46662
|
+
return null;
|
|
46663
|
+
})();
|
|
46632
46664
|
const handleSubmit = async (e3) => {
|
|
46633
46665
|
e3.preventDefault();
|
|
46634
|
-
if (!
|
|
46666
|
+
if (!slug || slugError) return;
|
|
46635
46667
|
await createWorkspaceMutation.mutateAsync({
|
|
46636
46668
|
project: projectName,
|
|
46637
|
-
branch:
|
|
46669
|
+
branch: slug,
|
|
46638
46670
|
base: base2.trim() || void 0,
|
|
46639
46671
|
prompt: prompt.trim() || void 0
|
|
46640
46672
|
});
|
|
@@ -46667,6 +46699,11 @@ function NewWorkspaceDialog({ projectName, open: open2, onOpenChange }) {
|
|
|
46667
46699
|
autoFocus: true
|
|
46668
46700
|
}
|
|
46669
46701
|
),
|
|
46702
|
+
branch && slug !== branch && !slugError && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-xs text-muted-foreground", children: [
|
|
46703
|
+
"Will be created as: ",
|
|
46704
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: slug })
|
|
46705
|
+
] }),
|
|
46706
|
+
slugError && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-destructive", children: slugError }),
|
|
46670
46707
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { htmlFor: "base-branch", children: "Base branch (optional)" }),
|
|
46671
46708
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
46672
46709
|
Input,
|
|
@@ -46694,7 +46731,14 @@ function NewWorkspaceDialog({ projectName, open: open2, onOpenChange }) {
|
|
|
46694
46731
|
] }),
|
|
46695
46732
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogFooter, { children: [
|
|
46696
46733
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: "Cancel" }),
|
|
46697
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
46734
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
46735
|
+
Button,
|
|
46736
|
+
{
|
|
46737
|
+
type: "submit",
|
|
46738
|
+
disabled: !slug || !!slugError || createWorkspaceMutation.isPending,
|
|
46739
|
+
children: "Create"
|
|
46740
|
+
}
|
|
46741
|
+
)
|
|
46698
46742
|
] })
|
|
46699
46743
|
] }) }) });
|
|
46700
46744
|
}
|
|
@@ -46881,7 +46925,7 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
46881
46925
|
};
|
|
46882
46926
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenu, { children: [
|
|
46883
46927
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ContextMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ...containerProps, children: [
|
|
46884
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
46928
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { delayDuration: 800, children: [
|
|
46885
46929
|
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 min-w-0 overflow-hidden", children: [
|
|
46886
46930
|
/* @__PURE__ */ jsxRuntimeExports.jsx(AgentStatusIndicator, { agent: status?.agent, isActive }),
|
|
46887
46931
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -46892,7 +46936,7 @@ const WorkspaceCard = reactExports.memo(function WorkspaceCard2({
|
|
|
46892
46936
|
}
|
|
46893
46937
|
)
|
|
46894
46938
|
] }) }),
|
|
46895
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "
|
|
46939
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "right", children: `${projectName}/${worktree.branch}` })
|
|
46896
46940
|
] }),
|
|
46897
46941
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
|
|
46898
46942
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SetupStatusIndicator, { setup: setupStatus }),
|
|
@@ -46999,6 +47043,7 @@ function SortableProject({
|
|
|
46999
47043
|
"div",
|
|
47000
47044
|
{
|
|
47001
47045
|
className: headerClassName,
|
|
47046
|
+
"data-testid": `project-list__project-header--${project.name}`,
|
|
47002
47047
|
onClick: () => isPlain ? handlePlainOpen() : onToggleCollapse(project.name),
|
|
47003
47048
|
children: [
|
|
47004
47049
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -47036,7 +47081,7 @@ function SortableProject({
|
|
|
47036
47081
|
children: project.name
|
|
47037
47082
|
}
|
|
47038
47083
|
) }),
|
|
47039
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "
|
|
47084
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContent, { side: "right", children: project.name })
|
|
47040
47085
|
] })
|
|
47041
47086
|
]
|
|
47042
47087
|
}
|
|
@@ -47061,10 +47106,17 @@ function SortableProject({
|
|
|
47061
47106
|
}
|
|
47062
47107
|
) }),
|
|
47063
47108
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuContent, { children: [
|
|
47064
|
-
!isPlain && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
47065
|
-
|
|
47066
|
-
|
|
47067
|
-
|
|
47109
|
+
!isPlain && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
47110
|
+
ContextMenuItem,
|
|
47111
|
+
{
|
|
47112
|
+
"data-testid": "project-list__context-menu-item--collapse",
|
|
47113
|
+
onClick: () => onToggleCollapse(project.name),
|
|
47114
|
+
children: [
|
|
47115
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: collapsed ? "" : "rotate-90" }),
|
|
47116
|
+
collapsed ? "Expand" : "Collapse"
|
|
47117
|
+
]
|
|
47118
|
+
}
|
|
47119
|
+
),
|
|
47068
47120
|
labels.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuSub, { children: [
|
|
47069
47121
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuSubTrigger, { children: [
|
|
47070
47122
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Tag$1, { className: "size-4 mr-2" }),
|
|
@@ -47735,6 +47787,7 @@ const KNOWN_AGENTS = [
|
|
|
47735
47787
|
{ id: "opencode", type: "opencode", label: "OpenCode", defaultCommand: "opencode" }
|
|
47736
47788
|
];
|
|
47737
47789
|
const MODEL_DEFAULT_SENTINEL = "__band_default__";
|
|
47790
|
+
const ID_DELIMITER = "";
|
|
47738
47791
|
function formatCtxWindow$1(n2) {
|
|
47739
47792
|
if (n2 >= 1e6) {
|
|
47740
47793
|
const m2 = n2 / 1e6;
|
|
@@ -47743,6 +47796,18 @@ function formatCtxWindow$1(n2) {
|
|
|
47743
47796
|
if (n2 >= 1e3) return `${Math.round(n2 / 1e3)}k`;
|
|
47744
47797
|
return String(n2);
|
|
47745
47798
|
}
|
|
47799
|
+
function formatLastRefreshed(epochMs) {
|
|
47800
|
+
const diff2 = Date.now() - epochMs;
|
|
47801
|
+
if (diff2 < 6e4) return "just now";
|
|
47802
|
+
if (diff2 < 60 * 6e4) return `${Math.round(diff2 / 6e4)}m ago`;
|
|
47803
|
+
if (diff2 < 24 * 60 * 6e4) return `${Math.round(diff2 / (60 * 6e4))}h ago`;
|
|
47804
|
+
if (diff2 < 48 * 60 * 6e4) return "yesterday";
|
|
47805
|
+
try {
|
|
47806
|
+
return new Date(epochMs).toLocaleDateString();
|
|
47807
|
+
} catch {
|
|
47808
|
+
return new Date(epochMs).toISOString();
|
|
47809
|
+
}
|
|
47810
|
+
}
|
|
47746
47811
|
function SettingsPage({ open: open2, onOpenChange }) {
|
|
47747
47812
|
const { settings } = useSettingsQuery();
|
|
47748
47813
|
const updateSettingsMutation = useUpdateSettings();
|
|
@@ -47787,15 +47852,96 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
47787
47852
|
const [agentModels, setAgentModels] = reactExports.useState({});
|
|
47788
47853
|
const [contextMeterEnabled, setContextMeterEnabled] = useExperimentalContextMeter();
|
|
47789
47854
|
const adapter2 = useAdapter();
|
|
47855
|
+
const mergeAgentModels = reactExports.useCallback(
|
|
47856
|
+
(agentId, patch2) => setAgentModels((prev2) => ({
|
|
47857
|
+
...prev2,
|
|
47858
|
+
[agentId]: {
|
|
47859
|
+
models: patch2.models ?? prev2[agentId]?.models ?? [],
|
|
47860
|
+
updatedAt: "updatedAt" in patch2 ? patch2.updatedAt : prev2[agentId]?.updatedAt,
|
|
47861
|
+
isRefreshing: patch2.isRefreshing ?? prev2[agentId]?.isRefreshing ?? false,
|
|
47862
|
+
error: "error" in patch2 ? patch2.error : prev2[agentId]?.error
|
|
47863
|
+
}
|
|
47864
|
+
})),
|
|
47865
|
+
[]
|
|
47866
|
+
);
|
|
47867
|
+
const agentIdsKey = reactExports.useMemo(
|
|
47868
|
+
() => codingAgents.map((a2) => a2.id).join(ID_DELIMITER),
|
|
47869
|
+
[codingAgents]
|
|
47870
|
+
);
|
|
47871
|
+
const agentIds = reactExports.useMemo(
|
|
47872
|
+
() => agentIdsKey === "" ? [] : agentIdsKey.split(ID_DELIMITER),
|
|
47873
|
+
[agentIdsKey]
|
|
47874
|
+
);
|
|
47790
47875
|
reactExports.useEffect(() => {
|
|
47791
|
-
|
|
47792
|
-
|
|
47793
|
-
|
|
47794
|
-
|
|
47876
|
+
setAgentModels((prev2) => {
|
|
47877
|
+
const allowed = new Set(agentIds);
|
|
47878
|
+
const next2 = {};
|
|
47879
|
+
let changed = false;
|
|
47880
|
+
for (const [id28, entry] of Object.entries(prev2)) {
|
|
47881
|
+
if (allowed.has(id28)) {
|
|
47882
|
+
next2[id28] = entry;
|
|
47883
|
+
} else {
|
|
47884
|
+
changed = true;
|
|
47885
|
+
}
|
|
47886
|
+
}
|
|
47887
|
+
return changed ? next2 : prev2;
|
|
47888
|
+
});
|
|
47889
|
+
let aborted2 = false;
|
|
47890
|
+
if (adapter2.listAllModels) {
|
|
47891
|
+
const allowed = new Set(agentIds);
|
|
47892
|
+
adapter2.listAllModels().then((data) => {
|
|
47893
|
+
if (aborted2) return;
|
|
47894
|
+
for (const entry of data.agents) {
|
|
47895
|
+
if (!allowed.has(entry.agentId)) continue;
|
|
47896
|
+
mergeAgentModels(entry.agentId, {
|
|
47897
|
+
models: entry.models,
|
|
47898
|
+
updatedAt: entry.updatedAt
|
|
47899
|
+
});
|
|
47900
|
+
}
|
|
47795
47901
|
}).catch(() => {
|
|
47796
47902
|
});
|
|
47903
|
+
} else {
|
|
47904
|
+
for (const id28 of agentIds) {
|
|
47905
|
+
adapter2.listModels?.(id28).then((data) => {
|
|
47906
|
+
if (aborted2) return;
|
|
47907
|
+
mergeAgentModels(id28, { models: data.models, updatedAt: data.updatedAt });
|
|
47908
|
+
}).catch(() => {
|
|
47909
|
+
});
|
|
47910
|
+
}
|
|
47797
47911
|
}
|
|
47798
|
-
|
|
47912
|
+
return () => {
|
|
47913
|
+
aborted2 = true;
|
|
47914
|
+
};
|
|
47915
|
+
}, [agentIds, adapter2, mergeAgentModels]);
|
|
47916
|
+
const handleRefreshModels = reactExports.useCallback(
|
|
47917
|
+
async (agentId) => {
|
|
47918
|
+
if (!adapter2.refreshModels) return;
|
|
47919
|
+
mergeAgentModels(agentId, { isRefreshing: true, error: void 0 });
|
|
47920
|
+
try {
|
|
47921
|
+
const data = await adapter2.refreshModels(agentId);
|
|
47922
|
+
const result = data.results.find((r2) => r2.agentId === agentId);
|
|
47923
|
+
if (result) {
|
|
47924
|
+
mergeAgentModels(agentId, {
|
|
47925
|
+
models: result.models,
|
|
47926
|
+
updatedAt: result.updatedAt,
|
|
47927
|
+
isRefreshing: false,
|
|
47928
|
+
error: result.error
|
|
47929
|
+
});
|
|
47930
|
+
} else {
|
|
47931
|
+
mergeAgentModels(agentId, {
|
|
47932
|
+
isRefreshing: false,
|
|
47933
|
+
error: `server returned no refresh result for ${agentId}`
|
|
47934
|
+
});
|
|
47935
|
+
}
|
|
47936
|
+
} catch (err) {
|
|
47937
|
+
mergeAgentModels(agentId, {
|
|
47938
|
+
isRefreshing: false,
|
|
47939
|
+
error: err instanceof Error ? err.message : String(err)
|
|
47940
|
+
});
|
|
47941
|
+
}
|
|
47942
|
+
},
|
|
47943
|
+
[adapter2, mergeAgentModels]
|
|
47944
|
+
);
|
|
47799
47945
|
const isDirty = reactExports.useMemo(() => {
|
|
47800
47946
|
if (worktreesDir !== (settings.worktreesDir ?? "")) return true;
|
|
47801
47947
|
if (JSON.stringify(codingAgents) !== JSON.stringify(Array.isArray(settings.codingAgents) ? settings.codingAgents : []))
|
|
@@ -48224,7 +48370,11 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
48224
48370
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Accordion, { type: "multiple", className: "w-full", children: KNOWN_AGENTS.map((known) => {
|
|
48225
48371
|
const agent = codingAgents.find((a2) => a2.type === known.type);
|
|
48226
48372
|
const enabled = !!agent;
|
|
48227
|
-
const
|
|
48373
|
+
const modelState = agent ? agentModels[agent.id] : void 0;
|
|
48374
|
+
const models = modelState?.models ?? [];
|
|
48375
|
+
const isRefreshing = modelState?.isRefreshing ?? false;
|
|
48376
|
+
const updatedAt = modelState?.updatedAt;
|
|
48377
|
+
const refreshError = modelState?.error;
|
|
48228
48378
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
48229
48379
|
AccordionItem,
|
|
48230
48380
|
{
|
|
@@ -48300,7 +48450,70 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
48300
48450
|
}
|
|
48301
48451
|
)
|
|
48302
48452
|
] }),
|
|
48303
|
-
|
|
48453
|
+
agent && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
|
|
48454
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
48455
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Label$1, { className: "text-xs text-muted-foreground", children: [
|
|
48456
|
+
"Models ",
|
|
48457
|
+
models.length > 0 && `(${models.length})`
|
|
48458
|
+
] }),
|
|
48459
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
48460
|
+
Button,
|
|
48461
|
+
{
|
|
48462
|
+
type: "button",
|
|
48463
|
+
variant: "ghost",
|
|
48464
|
+
size: "sm",
|
|
48465
|
+
className: "h-6 gap-1 px-2 text-xs",
|
|
48466
|
+
disabled: !enabled || isRefreshing,
|
|
48467
|
+
onClick: () => handleRefreshModels(agent.id),
|
|
48468
|
+
"aria-label": `Refresh models for ${known.label}`,
|
|
48469
|
+
"data-testid": `settings-page__refresh-models-${agent.id}`,
|
|
48470
|
+
children: [
|
|
48471
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
48472
|
+
RefreshCcw,
|
|
48473
|
+
{
|
|
48474
|
+
className: cn$2("size-3", isRefreshing && "animate-spin")
|
|
48475
|
+
}
|
|
48476
|
+
),
|
|
48477
|
+
isRefreshing ? "Refreshing…" : "Refresh"
|
|
48478
|
+
]
|
|
48479
|
+
}
|
|
48480
|
+
)
|
|
48481
|
+
] }),
|
|
48482
|
+
models.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
48483
|
+
"ul",
|
|
48484
|
+
{
|
|
48485
|
+
className: "rounded-md border border-border bg-muted/30 px-2 py-1 text-xs",
|
|
48486
|
+
"data-testid": `settings-page__model-list-${agent.id}`,
|
|
48487
|
+
children: models.map((m2) => (
|
|
48488
|
+
// Two-line layout, mirroring the chat-pane
|
|
48489
|
+
// model dropdown (`ModelLine` in ChatView):
|
|
48490
|
+
// top row is name + optional context-window
|
|
48491
|
+
// pill, second row is the description.
|
|
48492
|
+
// Keeps Settings and the chat picker
|
|
48493
|
+
// visually consistent.
|
|
48494
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "flex flex-col items-start gap-0.5 py-1", children: [
|
|
48495
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex w-full items-baseline justify-between gap-2", children: [
|
|
48496
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium", children: m2.name }),
|
|
48497
|
+
m2.contextWindow !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[10px] uppercase tabular-nums text-muted-foreground", children: [
|
|
48498
|
+
formatCtxWindow$1(m2.contextWindow),
|
|
48499
|
+
" ctx"
|
|
48500
|
+
] })
|
|
48501
|
+
] }),
|
|
48502
|
+
m2.description && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[11px] text-muted-foreground", children: m2.description })
|
|
48503
|
+
] }, m2.id)
|
|
48504
|
+
))
|
|
48505
|
+
}
|
|
48506
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[11px] text-muted-foreground", children: "No models cached yet — click Refresh." }),
|
|
48507
|
+
refreshError && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[11px] text-destructive", children: [
|
|
48508
|
+
"Refresh failed: ",
|
|
48509
|
+
refreshError
|
|
48510
|
+
] }),
|
|
48511
|
+
updatedAt !== void 0 && updatedAt > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[10px] text-muted-foreground", children: [
|
|
48512
|
+
"Last refreshed ",
|
|
48513
|
+
formatLastRefreshed(updatedAt)
|
|
48514
|
+
] })
|
|
48515
|
+
] }),
|
|
48516
|
+
agent && models.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
|
|
48304
48517
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { className: "text-xs text-muted-foreground", children: "Default model" }),
|
|
48305
48518
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
48306
48519
|
Select,
|
|
@@ -63048,13 +63261,13 @@ const noop$5 = () => {
|
|
|
63048
63261
|
const freezeIfAvailable = (obj) => {
|
|
63049
63262
|
if (Object.freeze) Object.freeze(obj);
|
|
63050
63263
|
};
|
|
63051
|
-
function createInnerProxy(callback, path2,
|
|
63264
|
+
function createInnerProxy(callback, path2, memo2) {
|
|
63052
63265
|
var _memo$cacheKey;
|
|
63053
63266
|
const cacheKey = path2.join(".");
|
|
63054
|
-
(_memo$cacheKey =
|
|
63267
|
+
(_memo$cacheKey = memo2[cacheKey]) !== null && _memo$cacheKey !== void 0 || (memo2[cacheKey] = new Proxy(noop$5, {
|
|
63055
63268
|
get(_obj, key2) {
|
|
63056
63269
|
if (typeof key2 !== "string" || key2 === "then") return void 0;
|
|
63057
|
-
return createInnerProxy(callback, [...path2, key2],
|
|
63270
|
+
return createInnerProxy(callback, [...path2, key2], memo2);
|
|
63058
63271
|
},
|
|
63059
63272
|
apply(_1, _2, args) {
|
|
63060
63273
|
const lastOfPath = path2[path2.length - 1];
|
|
@@ -63075,7 +63288,7 @@ function createInnerProxy(callback, path2, memo) {
|
|
|
63075
63288
|
return callback(opts);
|
|
63076
63289
|
}
|
|
63077
63290
|
}));
|
|
63078
|
-
return
|
|
63291
|
+
return memo2[cacheKey];
|
|
63079
63292
|
}
|
|
63080
63293
|
const createRecursiveProxy = (callback) => createInnerProxy(callback, [], emptyObject());
|
|
63081
63294
|
const createFlatProxy = (callback) => {
|
|
@@ -64547,7 +64760,15 @@ class WebDashboardAdapter {
|
|
|
64547
64760
|
}
|
|
64548
64761
|
async listModels(agentId) {
|
|
64549
64762
|
const data = await this.trpc.models.list.query({ agentId });
|
|
64550
|
-
return data
|
|
64763
|
+
return data;
|
|
64764
|
+
}
|
|
64765
|
+
async listAllModels() {
|
|
64766
|
+
const data = await this.trpc.models.listAll.query();
|
|
64767
|
+
return data;
|
|
64768
|
+
}
|
|
64769
|
+
async refreshModels(agentId) {
|
|
64770
|
+
const data = await this.trpc.models.refresh.mutate({ agentId });
|
|
64771
|
+
return data;
|
|
64551
64772
|
}
|
|
64552
64773
|
statusHandlers = /* @__PURE__ */ new Set();
|
|
64553
64774
|
statusSubscription = null;
|
|
@@ -80430,6 +80651,18 @@ function applyMaximizedGroupToApi(api, desired) {
|
|
|
80430
80651
|
if (next2.api.isMaximized()) return;
|
|
80431
80652
|
next2.api.maximize();
|
|
80432
80653
|
}
|
|
80654
|
+
function applyGroupActiveViewsToApi(api, state2) {
|
|
80655
|
+
try {
|
|
80656
|
+
for (const viewId of Object.values(state2.groups)) {
|
|
80657
|
+
const panel = api.getPanel(viewId);
|
|
80658
|
+
if (!panel) continue;
|
|
80659
|
+
if (panel.api.isActive) continue;
|
|
80660
|
+
if (panel.group.panels.length <= 1) continue;
|
|
80661
|
+
panel.api.setActive();
|
|
80662
|
+
}
|
|
80663
|
+
} catch {
|
|
80664
|
+
}
|
|
80665
|
+
}
|
|
80433
80666
|
const EDGE_GROUP_IDS$1 = {
|
|
80434
80667
|
left: "edge-left",
|
|
80435
80668
|
right: "edge-right",
|
|
@@ -108750,7 +108983,7 @@ var tn = f$5("block", "before:content-[counter(line)]", "before:inline-block", "
|
|
|
108750
108983
|
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 });
|
|
108751
108984
|
var Se$1 = reactExports.createContext({ code: "" }), de$2 = () => reactExports.useContext(Se$1);
|
|
108752
108985
|
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 }) });
|
|
108753
|
-
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-
|
|
108986
|
+
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-C6BqMnvu.js").then((e3) => ({ default: e3.HighlightedCodeBlockBody }))), rt = ({ code: e3, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
|
|
108754
108987
|
let i2 = reactExports.useMemo(() => e3.replace(cn, ""), [e3]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
|
|
108755
108988
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
|
|
108756
108989
|
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 }) })] }) });
|
|
@@ -109072,7 +109305,7 @@ var Dt = ({ children: e3, className: t2, onDownload: o3, onError: n2 }) => {
|
|
|
109072
109305
|
}, []), 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] });
|
|
109073
109306
|
};
|
|
109074
109307
|
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 }) })] });
|
|
109075
|
-
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-
|
|
109308
|
+
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-Cof8t4J_.js").then((e3) => ({ default: e3.Mermaid }))), Kn = /language-([^\s]+)/;
|
|
109076
109309
|
function ke$1(e3, t2) {
|
|
109077
109310
|
if (!(e3 != null && e3.position || t2 != null && t2.position)) return true;
|
|
109078
109311
|
if (!(e3 != null && e3.position && (t2 != null && t2.position))) return false;
|
|
@@ -161243,12 +161476,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
161243
161476
|
registerLayoutLoaders([
|
|
161244
161477
|
{
|
|
161245
161478
|
name: "dagre",
|
|
161246
|
-
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-
|
|
161479
|
+
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-BKfzYlJQ.js"), "loader")
|
|
161247
161480
|
},
|
|
161248
161481
|
...[
|
|
161249
161482
|
{
|
|
161250
161483
|
name: "cose-bilkent",
|
|
161251
|
-
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-
|
|
161484
|
+
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-BiP6P-09.js"), "loader")
|
|
161252
161485
|
}
|
|
161253
161486
|
]
|
|
161254
161487
|
]);
|
|
@@ -161687,7 +161920,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
161687
161920
|
return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
|
|
161688
161921
|
}, "detector");
|
|
161689
161922
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
161690
|
-
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-
|
|
161923
|
+
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-9PjJESuA.js");
|
|
161691
161924
|
return { id, diagram: diagram2 };
|
|
161692
161925
|
}, "loader");
|
|
161693
161926
|
var plugin = {
|
|
@@ -161704,7 +161937,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
161704
161937
|
return /^\s*graph/.test(txt);
|
|
161705
161938
|
}, "detector");
|
|
161706
161939
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
161707
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
161940
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-CXnLZPl0.js");
|
|
161708
161941
|
return { id: id2, diagram: diagram2 };
|
|
161709
161942
|
}, "loader");
|
|
161710
161943
|
var plugin2 = {
|
|
@@ -161727,7 +161960,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
161727
161960
|
return /^\s*flowchart/.test(txt);
|
|
161728
161961
|
}, "detector");
|
|
161729
161962
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
161730
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
161963
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-CXnLZPl0.js");
|
|
161731
161964
|
return { id: id3, diagram: diagram2 };
|
|
161732
161965
|
}, "loader");
|
|
161733
161966
|
var plugin3 = {
|
|
@@ -161741,7 +161974,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
161741
161974
|
return /^\s*erDiagram/.test(txt);
|
|
161742
161975
|
}, "detector");
|
|
161743
161976
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
161744
|
-
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-
|
|
161977
|
+
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-CRPjeaHB.js");
|
|
161745
161978
|
return { id: id4, diagram: diagram2 };
|
|
161746
161979
|
}, "loader");
|
|
161747
161980
|
var plugin4 = {
|
|
@@ -161755,7 +161988,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
161755
161988
|
return /^\s*gitGraph/.test(txt);
|
|
161756
161989
|
}, "detector");
|
|
161757
161990
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
161758
|
-
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-
|
|
161991
|
+
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-CZNtwgUE.js");
|
|
161759
161992
|
return { id: id5, diagram: diagram2 };
|
|
161760
161993
|
}, "loader");
|
|
161761
161994
|
var plugin5 = {
|
|
@@ -161769,7 +162002,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
161769
162002
|
return /^\s*gantt/.test(txt);
|
|
161770
162003
|
}, "detector");
|
|
161771
162004
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
161772
|
-
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-
|
|
162005
|
+
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-CP5EwGxj.js");
|
|
161773
162006
|
return { id: id6, diagram: diagram2 };
|
|
161774
162007
|
}, "loader");
|
|
161775
162008
|
var plugin6 = {
|
|
@@ -161783,7 +162016,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
161783
162016
|
return /^\s*info/.test(txt);
|
|
161784
162017
|
}, "detector");
|
|
161785
162018
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
161786
|
-
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-
|
|
162019
|
+
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-BqzWimk3.js");
|
|
161787
162020
|
return { id: id7, diagram: diagram2 };
|
|
161788
162021
|
}, "loader");
|
|
161789
162022
|
var info = {
|
|
@@ -161796,7 +162029,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
161796
162029
|
return /^\s*pie/.test(txt);
|
|
161797
162030
|
}, "detector");
|
|
161798
162031
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
161799
|
-
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-
|
|
162032
|
+
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-BPUa7SIP.js");
|
|
161800
162033
|
return { id: id8, diagram: diagram2 };
|
|
161801
162034
|
}, "loader");
|
|
161802
162035
|
var pie = {
|
|
@@ -161809,7 +162042,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
161809
162042
|
return /^\s*quadrantChart/.test(txt);
|
|
161810
162043
|
}, "detector");
|
|
161811
162044
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
161812
|
-
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-
|
|
162045
|
+
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-CkonmhO6.js");
|
|
161813
162046
|
return { id: id9, diagram: diagram2 };
|
|
161814
162047
|
}, "loader");
|
|
161815
162048
|
var plugin7 = {
|
|
@@ -161823,7 +162056,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
161823
162056
|
return /^\s*xychart(-beta)?/.test(txt);
|
|
161824
162057
|
}, "detector");
|
|
161825
162058
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
161826
|
-
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-
|
|
162059
|
+
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-C22gtuGl.js");
|
|
161827
162060
|
return { id: id10, diagram: diagram2 };
|
|
161828
162061
|
}, "loader");
|
|
161829
162062
|
var plugin8 = {
|
|
@@ -161837,7 +162070,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
161837
162070
|
return /^\s*requirement(Diagram)?/.test(txt);
|
|
161838
162071
|
}, "detector");
|
|
161839
162072
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
161840
|
-
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-
|
|
162073
|
+
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-B39ng8tF.js");
|
|
161841
162074
|
return { id: id11, diagram: diagram2 };
|
|
161842
162075
|
}, "loader");
|
|
161843
162076
|
var plugin9 = {
|
|
@@ -161851,7 +162084,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
161851
162084
|
return /^\s*sequenceDiagram/.test(txt);
|
|
161852
162085
|
}, "detector");
|
|
161853
162086
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
161854
|
-
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-
|
|
162087
|
+
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-CXIpjJu4.js");
|
|
161855
162088
|
return { id: id12, diagram: diagram2 };
|
|
161856
162089
|
}, "loader");
|
|
161857
162090
|
var plugin10 = {
|
|
@@ -161868,7 +162101,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
161868
162101
|
return /^\s*classDiagram/.test(txt);
|
|
161869
162102
|
}, "detector");
|
|
161870
162103
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
161871
|
-
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-
|
|
162104
|
+
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-D1OcdIXp.js");
|
|
161872
162105
|
return { id: id13, diagram: diagram2 };
|
|
161873
162106
|
}, "loader");
|
|
161874
162107
|
var plugin11 = {
|
|
@@ -161885,7 +162118,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
161885
162118
|
return /^\s*classDiagram-v2/.test(txt);
|
|
161886
162119
|
}, "detector");
|
|
161887
162120
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
161888
|
-
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-
|
|
162121
|
+
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-D1OcdIXp.js");
|
|
161889
162122
|
return { id: id14, diagram: diagram2 };
|
|
161890
162123
|
}, "loader");
|
|
161891
162124
|
var plugin12 = {
|
|
@@ -161902,7 +162135,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
161902
162135
|
return /^\s*stateDiagram/.test(txt);
|
|
161903
162136
|
}, "detector");
|
|
161904
162137
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
161905
|
-
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-
|
|
162138
|
+
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-DSp5PEkn.js");
|
|
161906
162139
|
return { id: id15, diagram: diagram2 };
|
|
161907
162140
|
}, "loader");
|
|
161908
162141
|
var plugin13 = {
|
|
@@ -161922,7 +162155,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
161922
162155
|
return false;
|
|
161923
162156
|
}, "detector");
|
|
161924
162157
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
161925
|
-
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-
|
|
162158
|
+
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-B5TiwK_8.js");
|
|
161926
162159
|
return { id: id16, diagram: diagram2 };
|
|
161927
162160
|
}, "loader");
|
|
161928
162161
|
var plugin14 = {
|
|
@@ -161936,7 +162169,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
161936
162169
|
return /^\s*journey/.test(txt);
|
|
161937
162170
|
}, "detector");
|
|
161938
162171
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
161939
|
-
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-
|
|
162172
|
+
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-TTA7OGV5.js");
|
|
161940
162173
|
return { id: id17, diagram: diagram2 };
|
|
161941
162174
|
}, "loader");
|
|
161942
162175
|
var plugin15 = {
|
|
@@ -162003,7 +162236,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
162003
162236
|
return false;
|
|
162004
162237
|
}, "detector");
|
|
162005
162238
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
162006
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
162239
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-CXnLZPl0.js");
|
|
162007
162240
|
return { id: id18, diagram: diagram2 };
|
|
162008
162241
|
}, "loader");
|
|
162009
162242
|
var plugin16 = {
|
|
@@ -162017,7 +162250,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
162017
162250
|
return /^\s*timeline/.test(txt);
|
|
162018
162251
|
}, "detector");
|
|
162019
162252
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
162020
|
-
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-
|
|
162253
|
+
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-DvosEzgh.js");
|
|
162021
162254
|
return { id: id19, diagram: diagram2 };
|
|
162022
162255
|
}, "loader");
|
|
162023
162256
|
var plugin17 = {
|
|
@@ -162031,7 +162264,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
162031
162264
|
return /^\s*mindmap/.test(txt);
|
|
162032
162265
|
}, "detector");
|
|
162033
162266
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
162034
|
-
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-
|
|
162267
|
+
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-DeGYTIld.js");
|
|
162035
162268
|
return { id: id20, diagram: diagram2 };
|
|
162036
162269
|
}, "loader");
|
|
162037
162270
|
var plugin18 = {
|
|
@@ -162045,7 +162278,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
162045
162278
|
return /^\s*kanban/.test(txt);
|
|
162046
162279
|
}, "detector");
|
|
162047
162280
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
162048
|
-
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-
|
|
162281
|
+
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-DxNhleha.js");
|
|
162049
162282
|
return { id: id21, diagram: diagram2 };
|
|
162050
162283
|
}, "loader");
|
|
162051
162284
|
var plugin19 = {
|
|
@@ -162059,7 +162292,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
162059
162292
|
return /^\s*sankey(-beta)?/.test(txt);
|
|
162060
162293
|
}, "detector");
|
|
162061
162294
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
162062
|
-
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-
|
|
162295
|
+
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-61A7I6h9.js");
|
|
162063
162296
|
return { id: id22, diagram: diagram2 };
|
|
162064
162297
|
}, "loader");
|
|
162065
162298
|
var plugin20 = {
|
|
@@ -162073,7 +162306,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
162073
162306
|
return /^\s*packet(-beta)?/.test(txt);
|
|
162074
162307
|
}, "detector");
|
|
162075
162308
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
162076
|
-
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-
|
|
162309
|
+
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-CUKugrbt.js");
|
|
162077
162310
|
return { id: id23, diagram: diagram2 };
|
|
162078
162311
|
}, "loader");
|
|
162079
162312
|
var packet = {
|
|
@@ -162086,7 +162319,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
162086
162319
|
return /^\s*radar-beta/.test(txt);
|
|
162087
162320
|
}, "detector");
|
|
162088
162321
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
162089
|
-
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-
|
|
162322
|
+
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-CxL6qeVX.js");
|
|
162090
162323
|
return { id: id24, diagram: diagram2 };
|
|
162091
162324
|
}, "loader");
|
|
162092
162325
|
var radar = {
|
|
@@ -162099,7 +162332,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
162099
162332
|
return /^\s*block(-beta)?/.test(txt);
|
|
162100
162333
|
}, "detector");
|
|
162101
162334
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
162102
|
-
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-
|
|
162335
|
+
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-DGV6m5iW.js");
|
|
162103
162336
|
return { id: id25, diagram: diagram2 };
|
|
162104
162337
|
}, "loader");
|
|
162105
162338
|
var plugin21 = {
|
|
@@ -162113,7 +162346,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
162113
162346
|
return /^\s*architecture/.test(txt);
|
|
162114
162347
|
}, "detector");
|
|
162115
162348
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
162116
|
-
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-
|
|
162349
|
+
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-vPxmruSN.js");
|
|
162117
162350
|
return { id: id26, diagram: diagram2 };
|
|
162118
162351
|
}, "loader");
|
|
162119
162352
|
var architecture = {
|
|
@@ -162127,7 +162360,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
|
|
|
162127
162360
|
return /^\s*treemap/.test(txt);
|
|
162128
162361
|
}, "detector");
|
|
162129
162362
|
var loader27 = /* @__PURE__ */ __name(async () => {
|
|
162130
|
-
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-
|
|
162363
|
+
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-BF6r9xQS.js");
|
|
162131
162364
|
return { id: id27, diagram: diagram2 };
|
|
162132
162365
|
}, "loader");
|
|
162133
162366
|
var treemap = {
|
|
@@ -164442,6 +164675,54 @@ function CodeBrowserView({
|
|
|
164442
164675
|
) })
|
|
164443
164676
|
);
|
|
164444
164677
|
}
|
|
164678
|
+
async function writeClipboardText(text2) {
|
|
164679
|
+
if (typeof navigator !== "undefined" && navigator.clipboard?.writeText) {
|
|
164680
|
+
try {
|
|
164681
|
+
await navigator.clipboard.writeText(text2);
|
|
164682
|
+
return true;
|
|
164683
|
+
} catch {
|
|
164684
|
+
}
|
|
164685
|
+
}
|
|
164686
|
+
return legacyCopy(text2);
|
|
164687
|
+
}
|
|
164688
|
+
function legacyCopy(text2) {
|
|
164689
|
+
if (typeof document === "undefined") return false;
|
|
164690
|
+
const textarea = document.createElement("textarea");
|
|
164691
|
+
textarea.value = text2;
|
|
164692
|
+
textarea.setAttribute("readonly", "");
|
|
164693
|
+
textarea.style.position = "fixed";
|
|
164694
|
+
textarea.style.top = "0";
|
|
164695
|
+
textarea.style.left = "0";
|
|
164696
|
+
textarea.style.width = "1px";
|
|
164697
|
+
textarea.style.height = "1px";
|
|
164698
|
+
textarea.style.padding = "0";
|
|
164699
|
+
textarea.style.border = "0";
|
|
164700
|
+
textarea.style.opacity = "0";
|
|
164701
|
+
textarea.style.pointerEvents = "none";
|
|
164702
|
+
document.body.appendChild(textarea);
|
|
164703
|
+
const previouslyFocused = document.activeElement;
|
|
164704
|
+
try {
|
|
164705
|
+
textarea.focus();
|
|
164706
|
+
textarea.select();
|
|
164707
|
+
textarea.setSelectionRange(0, text2.length);
|
|
164708
|
+
return document.execCommand("copy");
|
|
164709
|
+
} catch {
|
|
164710
|
+
return false;
|
|
164711
|
+
} finally {
|
|
164712
|
+
document.body.removeChild(textarea);
|
|
164713
|
+
previouslyFocused?.focus?.();
|
|
164714
|
+
}
|
|
164715
|
+
}
|
|
164716
|
+
async function readClipboardText() {
|
|
164717
|
+
if (typeof navigator === "undefined" || !navigator.clipboard?.readText) {
|
|
164718
|
+
return "";
|
|
164719
|
+
}
|
|
164720
|
+
try {
|
|
164721
|
+
return await navigator.clipboard.readText();
|
|
164722
|
+
} catch {
|
|
164723
|
+
return "";
|
|
164724
|
+
}
|
|
164725
|
+
}
|
|
164445
164726
|
function cycleTabsInActiveGroup(api, direction, refocus) {
|
|
164446
164727
|
const group = api?.activeGroup;
|
|
164447
164728
|
if (!api || !group) return;
|
|
@@ -171436,7 +171717,7 @@ function mergeAnimations(...animations) {
|
|
|
171436
171717
|
return instant ? "instant" : animationCache.get(key2);
|
|
171437
171718
|
}
|
|
171438
171719
|
const StickToBottomContext = reactExports.createContext(null);
|
|
171439
|
-
const useIsomorphicLayoutEffect$
|
|
171720
|
+
const useIsomorphicLayoutEffect$2 = typeof window !== "undefined" ? reactExports.useLayoutEffect : reactExports.useEffect;
|
|
171440
171721
|
function StickToBottom({ instance, children: children2, resize, initial, mass, damping, stiffness, targetScrollTop: currentTargetScrollTop, contextRef, ...props }) {
|
|
171441
171722
|
const customTargetScrollTop = reactExports.useRef(null);
|
|
171442
171723
|
const targetScrollTop = reactExports.useCallback((target, elements) => {
|
|
@@ -171476,7 +171757,7 @@ function StickToBottom({ instance, children: children2, resize, initial, mass, d
|
|
|
171476
171757
|
state2
|
|
171477
171758
|
]);
|
|
171478
171759
|
reactExports.useImperativeHandle(contextRef, () => context2, [context2]);
|
|
171479
|
-
useIsomorphicLayoutEffect$
|
|
171760
|
+
useIsomorphicLayoutEffect$2(() => {
|
|
171480
171761
|
if (!scrollRef.current) {
|
|
171481
171762
|
return;
|
|
171482
171763
|
}
|
|
@@ -172605,6 +172886,7 @@ function TextPreview({ url, filename }) {
|
|
|
172605
172886
|
const Message = ({ className, from: from2, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
172606
172887
|
"div",
|
|
172607
172888
|
{
|
|
172889
|
+
"data-testid": from2 === "user" ? "chat-pane__user-message" : "chat-pane__assistant-message",
|
|
172608
172890
|
className: cn$2(
|
|
172609
172891
|
"group flex w-full min-w-0 flex-col gap-2",
|
|
172610
172892
|
from2 === "user" ? "is-user ml-auto max-w-[90%] justify-end" : "is-assistant",
|
|
@@ -173821,6 +174103,1466 @@ function useChatSubscription(opts) {
|
|
|
173821
174103
|
cancel
|
|
173822
174104
|
};
|
|
173823
174105
|
}
|
|
174106
|
+
function createLazyMeasurementsView(count2, flat, getItemKey) {
|
|
174107
|
+
const cache = new Array(count2);
|
|
174108
|
+
return new Proxy(cache, {
|
|
174109
|
+
get(target, prop, receiver) {
|
|
174110
|
+
if (typeof prop === "string") {
|
|
174111
|
+
const c2 = prop.charCodeAt(0);
|
|
174112
|
+
if (c2 >= 48 && c2 <= 57) {
|
|
174113
|
+
const i2 = +prop;
|
|
174114
|
+
if (Number.isInteger(i2) && i2 >= 0 && i2 < count2) {
|
|
174115
|
+
let v2 = target[i2];
|
|
174116
|
+
if (!v2) {
|
|
174117
|
+
const s2 = flat[i2 * 2];
|
|
174118
|
+
v2 = target[i2] = {
|
|
174119
|
+
index: i2,
|
|
174120
|
+
key: getItemKey(i2),
|
|
174121
|
+
start: s2,
|
|
174122
|
+
size: flat[i2 * 2 + 1],
|
|
174123
|
+
end: s2 + flat[i2 * 2 + 1],
|
|
174124
|
+
lane: 0
|
|
174125
|
+
};
|
|
174126
|
+
}
|
|
174127
|
+
return v2;
|
|
174128
|
+
}
|
|
174129
|
+
}
|
|
174130
|
+
if (prop === "length") return count2;
|
|
174131
|
+
}
|
|
174132
|
+
return Reflect.get(target, prop, receiver);
|
|
174133
|
+
}
|
|
174134
|
+
});
|
|
174135
|
+
}
|
|
174136
|
+
function memo(getDeps, fn2, opts) {
|
|
174137
|
+
let deps = opts.initialDeps ?? [];
|
|
174138
|
+
let result;
|
|
174139
|
+
let isInitial = true;
|
|
174140
|
+
function memoizedFunction() {
|
|
174141
|
+
const newDeps = getDeps();
|
|
174142
|
+
const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index2) => deps[index2] !== dep);
|
|
174143
|
+
if (!depsChanged) {
|
|
174144
|
+
return result;
|
|
174145
|
+
}
|
|
174146
|
+
deps = newDeps;
|
|
174147
|
+
result = fn2(...newDeps);
|
|
174148
|
+
if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {
|
|
174149
|
+
opts.onChange(result);
|
|
174150
|
+
}
|
|
174151
|
+
isInitial = false;
|
|
174152
|
+
return result;
|
|
174153
|
+
}
|
|
174154
|
+
memoizedFunction.updateDeps = (newDeps) => {
|
|
174155
|
+
deps = newDeps;
|
|
174156
|
+
};
|
|
174157
|
+
return memoizedFunction;
|
|
174158
|
+
}
|
|
174159
|
+
function notUndefined(value, msg) {
|
|
174160
|
+
if (value === void 0) {
|
|
174161
|
+
throw new Error(`Unexpected undefined${""}`);
|
|
174162
|
+
} else {
|
|
174163
|
+
return value;
|
|
174164
|
+
}
|
|
174165
|
+
}
|
|
174166
|
+
const approxEqual = (a2, b2) => Math.abs(a2 - b2) < 1.01;
|
|
174167
|
+
const debounce$2 = (targetWindow, fn2, ms) => {
|
|
174168
|
+
let timeoutId2;
|
|
174169
|
+
return function(...args) {
|
|
174170
|
+
targetWindow.clearTimeout(timeoutId2);
|
|
174171
|
+
timeoutId2 = targetWindow.setTimeout(() => fn2.apply(this, args), ms);
|
|
174172
|
+
};
|
|
174173
|
+
};
|
|
174174
|
+
let _isIOSResult;
|
|
174175
|
+
const isIOSWebKit = () => {
|
|
174176
|
+
if (_isIOSResult !== void 0) return _isIOSResult;
|
|
174177
|
+
if (typeof navigator === "undefined") return _isIOSResult = false;
|
|
174178
|
+
if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;
|
|
174179
|
+
const mtp = navigator.maxTouchPoints;
|
|
174180
|
+
return _isIOSResult = navigator.platform === "MacIntel" && mtp !== void 0 && mtp > 0;
|
|
174181
|
+
};
|
|
174182
|
+
const getRect = (element2) => {
|
|
174183
|
+
const { offsetWidth, offsetHeight } = element2;
|
|
174184
|
+
return { width: offsetWidth, height: offsetHeight };
|
|
174185
|
+
};
|
|
174186
|
+
const defaultKeyExtractor = (index2) => index2;
|
|
174187
|
+
const defaultRangeExtractor = (range2) => {
|
|
174188
|
+
const start2 = Math.max(range2.startIndex - range2.overscan, 0);
|
|
174189
|
+
const end = Math.min(range2.endIndex + range2.overscan, range2.count - 1);
|
|
174190
|
+
const len = end - start2 + 1;
|
|
174191
|
+
const arr = new Array(len);
|
|
174192
|
+
for (let i2 = 0; i2 < len; i2++) {
|
|
174193
|
+
arr[i2] = start2 + i2;
|
|
174194
|
+
}
|
|
174195
|
+
return arr;
|
|
174196
|
+
};
|
|
174197
|
+
const observeElementRect = (instance, cb) => {
|
|
174198
|
+
const element2 = instance.scrollElement;
|
|
174199
|
+
if (!element2) {
|
|
174200
|
+
return;
|
|
174201
|
+
}
|
|
174202
|
+
const targetWindow = instance.targetWindow;
|
|
174203
|
+
if (!targetWindow) {
|
|
174204
|
+
return;
|
|
174205
|
+
}
|
|
174206
|
+
const handler = (rect2) => {
|
|
174207
|
+
const { width, height } = rect2;
|
|
174208
|
+
cb({ width: Math.round(width), height: Math.round(height) });
|
|
174209
|
+
};
|
|
174210
|
+
handler(getRect(element2));
|
|
174211
|
+
if (!targetWindow.ResizeObserver) {
|
|
174212
|
+
return () => {
|
|
174213
|
+
};
|
|
174214
|
+
}
|
|
174215
|
+
const observer = new targetWindow.ResizeObserver((entries2) => {
|
|
174216
|
+
const run2 = () => {
|
|
174217
|
+
const entry = entries2[0];
|
|
174218
|
+
if (entry == null ? void 0 : entry.borderBoxSize) {
|
|
174219
|
+
const box = entry.borderBoxSize[0];
|
|
174220
|
+
if (box) {
|
|
174221
|
+
handler({ width: box.inlineSize, height: box.blockSize });
|
|
174222
|
+
return;
|
|
174223
|
+
}
|
|
174224
|
+
}
|
|
174225
|
+
handler(getRect(element2));
|
|
174226
|
+
};
|
|
174227
|
+
instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run2) : run2();
|
|
174228
|
+
});
|
|
174229
|
+
observer.observe(element2, { box: "border-box" });
|
|
174230
|
+
return () => {
|
|
174231
|
+
observer.unobserve(element2);
|
|
174232
|
+
};
|
|
174233
|
+
};
|
|
174234
|
+
const addEventListenerOptions = {
|
|
174235
|
+
passive: true
|
|
174236
|
+
};
|
|
174237
|
+
const supportsScrollend = typeof window == "undefined" ? true : "onscrollend" in window;
|
|
174238
|
+
const observeOffset = (instance, cb, readOffset) => {
|
|
174239
|
+
const element2 = instance.scrollElement;
|
|
174240
|
+
if (!element2) {
|
|
174241
|
+
return;
|
|
174242
|
+
}
|
|
174243
|
+
const targetWindow = instance.targetWindow;
|
|
174244
|
+
if (!targetWindow) {
|
|
174245
|
+
return;
|
|
174246
|
+
}
|
|
174247
|
+
const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;
|
|
174248
|
+
let offset2 = 0;
|
|
174249
|
+
const fallback = registerScrollendEvent ? null : debounce$2(
|
|
174250
|
+
targetWindow,
|
|
174251
|
+
() => cb(offset2, false),
|
|
174252
|
+
instance.options.isScrollingResetDelay
|
|
174253
|
+
);
|
|
174254
|
+
const createHandler = (isScrolling) => () => {
|
|
174255
|
+
offset2 = readOffset(element2);
|
|
174256
|
+
fallback == null ? void 0 : fallback();
|
|
174257
|
+
cb(offset2, isScrolling);
|
|
174258
|
+
};
|
|
174259
|
+
const handler = createHandler(true);
|
|
174260
|
+
const endHandler = createHandler(false);
|
|
174261
|
+
element2.addEventListener("scroll", handler, addEventListenerOptions);
|
|
174262
|
+
if (registerScrollendEvent) {
|
|
174263
|
+
element2.addEventListener("scrollend", endHandler, addEventListenerOptions);
|
|
174264
|
+
}
|
|
174265
|
+
return () => {
|
|
174266
|
+
element2.removeEventListener("scroll", handler);
|
|
174267
|
+
if (registerScrollendEvent) {
|
|
174268
|
+
element2.removeEventListener("scrollend", endHandler);
|
|
174269
|
+
}
|
|
174270
|
+
};
|
|
174271
|
+
};
|
|
174272
|
+
const observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {
|
|
174273
|
+
const { horizontal, isRtl } = instance.options;
|
|
174274
|
+
return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;
|
|
174275
|
+
});
|
|
174276
|
+
const measureElement = (element2, entry, instance) => {
|
|
174277
|
+
if (instance.options.useCachedMeasurements) {
|
|
174278
|
+
const index2 = instance.indexFromElement(element2);
|
|
174279
|
+
const key2 = instance.options.getItemKey(index2);
|
|
174280
|
+
return instance.itemSizeCache.get(key2) ?? instance.options.estimateSize(index2);
|
|
174281
|
+
}
|
|
174282
|
+
if (entry == null ? void 0 : entry.borderBoxSize) {
|
|
174283
|
+
const box = entry.borderBoxSize[0];
|
|
174284
|
+
if (box) {
|
|
174285
|
+
const size2 = Math.round(
|
|
174286
|
+
box[instance.options.horizontal ? "inlineSize" : "blockSize"]
|
|
174287
|
+
);
|
|
174288
|
+
return size2;
|
|
174289
|
+
}
|
|
174290
|
+
}
|
|
174291
|
+
if (!entry) {
|
|
174292
|
+
const index2 = instance.indexFromElement(element2);
|
|
174293
|
+
const key2 = instance.options.getItemKey(index2);
|
|
174294
|
+
const cachedSize = instance.itemSizeCache.get(key2);
|
|
174295
|
+
if (cachedSize !== void 0) {
|
|
174296
|
+
return cachedSize;
|
|
174297
|
+
}
|
|
174298
|
+
}
|
|
174299
|
+
return element2[instance.options.horizontal ? "offsetWidth" : "offsetHeight"];
|
|
174300
|
+
};
|
|
174301
|
+
const scrollWithAdjustments = (offset2, {
|
|
174302
|
+
adjustments = 0,
|
|
174303
|
+
behavior
|
|
174304
|
+
}, instance) => {
|
|
174305
|
+
var _a3, _b3;
|
|
174306
|
+
(_b3 = (_a3 = instance.scrollElement) == null ? void 0 : _a3.scrollTo) == null ? void 0 : _b3.call(_a3, {
|
|
174307
|
+
[instance.options.horizontal ? "left" : "top"]: offset2 + adjustments,
|
|
174308
|
+
behavior
|
|
174309
|
+
});
|
|
174310
|
+
};
|
|
174311
|
+
const elementScroll = scrollWithAdjustments;
|
|
174312
|
+
class Virtualizer {
|
|
174313
|
+
constructor(opts) {
|
|
174314
|
+
this.unsubs = [];
|
|
174315
|
+
this.scrollElement = null;
|
|
174316
|
+
this.targetWindow = null;
|
|
174317
|
+
this.isScrolling = false;
|
|
174318
|
+
this.scrollState = null;
|
|
174319
|
+
this.measurementsCache = [];
|
|
174320
|
+
this._flatMeasurements = null;
|
|
174321
|
+
this.itemSizeCache = /* @__PURE__ */ new Map();
|
|
174322
|
+
this.itemSizeCacheVersion = 0;
|
|
174323
|
+
this.laneAssignments = /* @__PURE__ */ new Map();
|
|
174324
|
+
this.pendingMin = null;
|
|
174325
|
+
this.prevLanes = void 0;
|
|
174326
|
+
this.lanesChangedFlag = false;
|
|
174327
|
+
this.lanesSettling = false;
|
|
174328
|
+
this.pendingScrollAnchor = null;
|
|
174329
|
+
this.scrollRect = null;
|
|
174330
|
+
this.scrollOffset = null;
|
|
174331
|
+
this.scrollDirection = null;
|
|
174332
|
+
this.scrollAdjustments = 0;
|
|
174333
|
+
this._iosDeferredAdjustment = 0;
|
|
174334
|
+
this._iosTouching = false;
|
|
174335
|
+
this._iosJustTouchEnded = false;
|
|
174336
|
+
this._iosTouchEndTimerId = null;
|
|
174337
|
+
this._intendedScrollOffset = null;
|
|
174338
|
+
this.elementsCache = /* @__PURE__ */ new Map();
|
|
174339
|
+
this.now = () => {
|
|
174340
|
+
var _a3, _b3, _c2;
|
|
174341
|
+
return ((_c2 = (_b3 = (_a3 = this.targetWindow) == null ? void 0 : _a3.performance) == null ? void 0 : _b3.now) == null ? void 0 : _c2.call(_b3)) ?? Date.now();
|
|
174342
|
+
};
|
|
174343
|
+
this.observer = /* @__PURE__ */ (() => {
|
|
174344
|
+
let _ro = null;
|
|
174345
|
+
const get2 = () => {
|
|
174346
|
+
if (_ro) {
|
|
174347
|
+
return _ro;
|
|
174348
|
+
}
|
|
174349
|
+
if (!this.targetWindow || !this.targetWindow.ResizeObserver) {
|
|
174350
|
+
return null;
|
|
174351
|
+
}
|
|
174352
|
+
return _ro = new this.targetWindow.ResizeObserver((entries2) => {
|
|
174353
|
+
entries2.forEach((entry) => {
|
|
174354
|
+
const run2 = () => {
|
|
174355
|
+
const node2 = entry.target;
|
|
174356
|
+
const index2 = this.indexFromElement(node2);
|
|
174357
|
+
if (!node2.isConnected) {
|
|
174358
|
+
this.observer.unobserve(node2);
|
|
174359
|
+
for (const [cacheKey, cachedNode] of this.elementsCache) {
|
|
174360
|
+
if (cachedNode === node2) {
|
|
174361
|
+
this.elementsCache.delete(cacheKey);
|
|
174362
|
+
break;
|
|
174363
|
+
}
|
|
174364
|
+
}
|
|
174365
|
+
return;
|
|
174366
|
+
}
|
|
174367
|
+
if (this.shouldMeasureDuringScroll(index2)) {
|
|
174368
|
+
this.resizeItem(
|
|
174369
|
+
index2,
|
|
174370
|
+
this.options.measureElement(node2, entry, this)
|
|
174371
|
+
);
|
|
174372
|
+
}
|
|
174373
|
+
};
|
|
174374
|
+
this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run2) : run2();
|
|
174375
|
+
});
|
|
174376
|
+
});
|
|
174377
|
+
};
|
|
174378
|
+
return {
|
|
174379
|
+
disconnect: () => {
|
|
174380
|
+
var _a3;
|
|
174381
|
+
(_a3 = get2()) == null ? void 0 : _a3.disconnect();
|
|
174382
|
+
_ro = null;
|
|
174383
|
+
},
|
|
174384
|
+
observe: (target) => {
|
|
174385
|
+
var _a3;
|
|
174386
|
+
return (_a3 = get2()) == null ? void 0 : _a3.observe(target, { box: "border-box" });
|
|
174387
|
+
},
|
|
174388
|
+
unobserve: (target) => {
|
|
174389
|
+
var _a3;
|
|
174390
|
+
return (_a3 = get2()) == null ? void 0 : _a3.unobserve(target);
|
|
174391
|
+
}
|
|
174392
|
+
};
|
|
174393
|
+
})();
|
|
174394
|
+
this.range = null;
|
|
174395
|
+
this.setOptions = (opts2) => {
|
|
174396
|
+
var _a3, _b3;
|
|
174397
|
+
const merged = {
|
|
174398
|
+
debug: false,
|
|
174399
|
+
initialOffset: 0,
|
|
174400
|
+
overscan: 1,
|
|
174401
|
+
paddingStart: 0,
|
|
174402
|
+
paddingEnd: 0,
|
|
174403
|
+
scrollPaddingStart: 0,
|
|
174404
|
+
scrollPaddingEnd: 0,
|
|
174405
|
+
horizontal: false,
|
|
174406
|
+
getItemKey: defaultKeyExtractor,
|
|
174407
|
+
rangeExtractor: defaultRangeExtractor,
|
|
174408
|
+
onChange: () => {
|
|
174409
|
+
},
|
|
174410
|
+
measureElement,
|
|
174411
|
+
initialRect: { width: 0, height: 0 },
|
|
174412
|
+
scrollMargin: 0,
|
|
174413
|
+
gap: 0,
|
|
174414
|
+
indexAttribute: "data-index",
|
|
174415
|
+
initialMeasurementsCache: [],
|
|
174416
|
+
lanes: 1,
|
|
174417
|
+
anchorTo: "start",
|
|
174418
|
+
followOnAppend: false,
|
|
174419
|
+
scrollEndThreshold: 1,
|
|
174420
|
+
isScrollingResetDelay: 150,
|
|
174421
|
+
enabled: true,
|
|
174422
|
+
isRtl: false,
|
|
174423
|
+
useScrollendEvent: false,
|
|
174424
|
+
useAnimationFrameWithResizeObserver: false,
|
|
174425
|
+
laneAssignmentMode: "estimate",
|
|
174426
|
+
useCachedMeasurements: false
|
|
174427
|
+
};
|
|
174428
|
+
for (const key2 in opts2) {
|
|
174429
|
+
const v2 = opts2[key2];
|
|
174430
|
+
if (v2 !== void 0) merged[key2] = v2;
|
|
174431
|
+
}
|
|
174432
|
+
const prevOptions = this.options;
|
|
174433
|
+
let anchor2 = null;
|
|
174434
|
+
let followOnAppend = null;
|
|
174435
|
+
let edgeKeysChanged = false;
|
|
174436
|
+
if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === "end" && this.scrollElement !== null) {
|
|
174437
|
+
const prevCount = prevOptions.count;
|
|
174438
|
+
const nextCount = merged.count;
|
|
174439
|
+
const measurements = this.getMeasurements();
|
|
174440
|
+
const prevFirstKey = prevCount > 0 ? ((_a3 = measurements[0]) == null ? void 0 : _a3.key) ?? prevOptions.getItemKey(0) : null;
|
|
174441
|
+
const prevLastKey = prevCount > 0 ? ((_b3 = measurements[prevCount - 1]) == null ? void 0 : _b3.key) ?? prevOptions.getItemKey(prevCount - 1) : null;
|
|
174442
|
+
const didCountChange = nextCount !== prevCount;
|
|
174443
|
+
const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);
|
|
174444
|
+
if (didEdgeKeysChange) {
|
|
174445
|
+
edgeKeysChanged = true;
|
|
174446
|
+
const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;
|
|
174447
|
+
if (item) {
|
|
174448
|
+
anchor2 = [item.key, this.getScrollOffset() - item.start];
|
|
174449
|
+
}
|
|
174450
|
+
const behavior = merged.followOnAppend === true ? "auto" : merged.followOnAppend || null;
|
|
174451
|
+
if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {
|
|
174452
|
+
followOnAppend = behavior;
|
|
174453
|
+
}
|
|
174454
|
+
}
|
|
174455
|
+
}
|
|
174456
|
+
this.options = merged;
|
|
174457
|
+
if (edgeKeysChanged) {
|
|
174458
|
+
this.pendingMin = 0;
|
|
174459
|
+
this.itemSizeCacheVersion++;
|
|
174460
|
+
}
|
|
174461
|
+
let anchorResolved = false;
|
|
174462
|
+
let anchorDelta = 0;
|
|
174463
|
+
if (anchor2 && this.scrollOffset !== null) {
|
|
174464
|
+
const [anchorKey, anchorOffset] = anchor2;
|
|
174465
|
+
const newMeasurements = this.getMeasurements();
|
|
174466
|
+
const { count: count2, getItemKey } = this.options;
|
|
174467
|
+
let idx = 0;
|
|
174468
|
+
while (idx < count2 && getItemKey(idx) !== anchorKey) {
|
|
174469
|
+
idx++;
|
|
174470
|
+
}
|
|
174471
|
+
if (idx < count2) {
|
|
174472
|
+
const anchorItem = newMeasurements[idx];
|
|
174473
|
+
if (anchorItem) {
|
|
174474
|
+
const newOffset = anchorItem.start + anchorOffset;
|
|
174475
|
+
if (newOffset !== this.scrollOffset) {
|
|
174476
|
+
anchorDelta = newOffset - this.scrollOffset;
|
|
174477
|
+
this.scrollOffset = newOffset;
|
|
174478
|
+
anchorResolved = true;
|
|
174479
|
+
}
|
|
174480
|
+
}
|
|
174481
|
+
}
|
|
174482
|
+
}
|
|
174483
|
+
if (anchorResolved || followOnAppend) {
|
|
174484
|
+
this.pendingScrollAnchor = [
|
|
174485
|
+
anchorResolved ? anchor2[0] : null,
|
|
174486
|
+
anchorResolved ? anchor2[1] : 0,
|
|
174487
|
+
followOnAppend,
|
|
174488
|
+
anchorDelta
|
|
174489
|
+
];
|
|
174490
|
+
}
|
|
174491
|
+
};
|
|
174492
|
+
this.notify = (sync) => {
|
|
174493
|
+
var _a3, _b3;
|
|
174494
|
+
(_b3 = (_a3 = this.options).onChange) == null ? void 0 : _b3.call(_a3, this, sync);
|
|
174495
|
+
};
|
|
174496
|
+
this.maybeNotify = memo(
|
|
174497
|
+
() => {
|
|
174498
|
+
this.calculateRange();
|
|
174499
|
+
return [
|
|
174500
|
+
this.isScrolling,
|
|
174501
|
+
this.range ? this.range.startIndex : null,
|
|
174502
|
+
this.range ? this.range.endIndex : null
|
|
174503
|
+
];
|
|
174504
|
+
},
|
|
174505
|
+
(isScrolling) => {
|
|
174506
|
+
this.notify(isScrolling);
|
|
174507
|
+
},
|
|
174508
|
+
{
|
|
174509
|
+
key: false,
|
|
174510
|
+
debug: () => this.options.debug,
|
|
174511
|
+
initialDeps: [
|
|
174512
|
+
this.isScrolling,
|
|
174513
|
+
this.range ? this.range.startIndex : null,
|
|
174514
|
+
this.range ? this.range.endIndex : null
|
|
174515
|
+
]
|
|
174516
|
+
}
|
|
174517
|
+
);
|
|
174518
|
+
this.cleanup = () => {
|
|
174519
|
+
this.unsubs.filter(Boolean).forEach((d2) => d2());
|
|
174520
|
+
this.unsubs = [];
|
|
174521
|
+
this.observer.disconnect();
|
|
174522
|
+
if (this.rafId != null && this.targetWindow) {
|
|
174523
|
+
this.targetWindow.cancelAnimationFrame(this.rafId);
|
|
174524
|
+
this.rafId = null;
|
|
174525
|
+
}
|
|
174526
|
+
this.scrollState = null;
|
|
174527
|
+
this.scrollElement = null;
|
|
174528
|
+
this.targetWindow = null;
|
|
174529
|
+
};
|
|
174530
|
+
this._didMount = () => {
|
|
174531
|
+
return () => {
|
|
174532
|
+
this.cleanup();
|
|
174533
|
+
};
|
|
174534
|
+
};
|
|
174535
|
+
this._willUpdate = () => {
|
|
174536
|
+
var _a3;
|
|
174537
|
+
const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
|
|
174538
|
+
if (this.scrollElement !== scrollElement) {
|
|
174539
|
+
this.cleanup();
|
|
174540
|
+
if (!scrollElement) {
|
|
174541
|
+
this.maybeNotify();
|
|
174542
|
+
return;
|
|
174543
|
+
}
|
|
174544
|
+
this.scrollElement = scrollElement;
|
|
174545
|
+
if (this.scrollElement && "ownerDocument" in this.scrollElement) {
|
|
174546
|
+
this.targetWindow = this.scrollElement.ownerDocument.defaultView;
|
|
174547
|
+
} else {
|
|
174548
|
+
this.targetWindow = ((_a3 = this.scrollElement) == null ? void 0 : _a3.window) ?? null;
|
|
174549
|
+
}
|
|
174550
|
+
this.elementsCache.forEach((cached2) => {
|
|
174551
|
+
this.observer.observe(cached2);
|
|
174552
|
+
});
|
|
174553
|
+
this.unsubs.push(
|
|
174554
|
+
this.options.observeElementRect(this, (rect2) => {
|
|
174555
|
+
this.scrollRect = rect2;
|
|
174556
|
+
this.maybeNotify();
|
|
174557
|
+
})
|
|
174558
|
+
);
|
|
174559
|
+
this.unsubs.push(
|
|
174560
|
+
this.options.observeElementOffset(this, (offset2, isScrolling) => {
|
|
174561
|
+
if (this._intendedScrollOffset !== null && Math.abs(offset2 - this._intendedScrollOffset) < 1.5) {
|
|
174562
|
+
offset2 = this._intendedScrollOffset;
|
|
174563
|
+
}
|
|
174564
|
+
this._intendedScrollOffset = null;
|
|
174565
|
+
this.scrollAdjustments = 0;
|
|
174566
|
+
this.scrollDirection = isScrolling ? this.getScrollOffset() < offset2 ? "forward" : "backward" : null;
|
|
174567
|
+
this.scrollOffset = offset2;
|
|
174568
|
+
this.isScrolling = isScrolling;
|
|
174569
|
+
this._flushIosDeferredIfReady();
|
|
174570
|
+
if (this.scrollState) {
|
|
174571
|
+
this.scheduleScrollReconcile();
|
|
174572
|
+
}
|
|
174573
|
+
this.maybeNotify();
|
|
174574
|
+
})
|
|
174575
|
+
);
|
|
174576
|
+
if ("addEventListener" in this.scrollElement) {
|
|
174577
|
+
const scrollEl = this.scrollElement;
|
|
174578
|
+
const onTouchStart = () => {
|
|
174579
|
+
this._iosTouching = true;
|
|
174580
|
+
this._iosJustTouchEnded = false;
|
|
174581
|
+
if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {
|
|
174582
|
+
this.targetWindow.clearTimeout(this._iosTouchEndTimerId);
|
|
174583
|
+
this._iosTouchEndTimerId = null;
|
|
174584
|
+
}
|
|
174585
|
+
};
|
|
174586
|
+
const onTouchEnd = () => {
|
|
174587
|
+
this._iosTouching = false;
|
|
174588
|
+
if (!isIOSWebKit() || this.targetWindow == null) {
|
|
174589
|
+
return;
|
|
174590
|
+
}
|
|
174591
|
+
this._iosJustTouchEnded = true;
|
|
174592
|
+
this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {
|
|
174593
|
+
this._iosJustTouchEnded = false;
|
|
174594
|
+
this._iosTouchEndTimerId = null;
|
|
174595
|
+
this._flushIosDeferredIfReady();
|
|
174596
|
+
}, 150);
|
|
174597
|
+
};
|
|
174598
|
+
scrollEl.addEventListener(
|
|
174599
|
+
"touchstart",
|
|
174600
|
+
onTouchStart,
|
|
174601
|
+
addEventListenerOptions
|
|
174602
|
+
);
|
|
174603
|
+
scrollEl.addEventListener(
|
|
174604
|
+
"touchend",
|
|
174605
|
+
onTouchEnd,
|
|
174606
|
+
addEventListenerOptions
|
|
174607
|
+
);
|
|
174608
|
+
this.unsubs.push(() => {
|
|
174609
|
+
scrollEl.removeEventListener("touchstart", onTouchStart);
|
|
174610
|
+
scrollEl.removeEventListener("touchend", onTouchEnd);
|
|
174611
|
+
if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {
|
|
174612
|
+
this.targetWindow.clearTimeout(this._iosTouchEndTimerId);
|
|
174613
|
+
this._iosTouchEndTimerId = null;
|
|
174614
|
+
}
|
|
174615
|
+
});
|
|
174616
|
+
}
|
|
174617
|
+
this._scrollToOffset(this.getScrollOffset(), {
|
|
174618
|
+
adjustments: void 0,
|
|
174619
|
+
behavior: void 0
|
|
174620
|
+
});
|
|
174621
|
+
}
|
|
174622
|
+
const anchor2 = this.pendingScrollAnchor;
|
|
174623
|
+
this.pendingScrollAnchor = null;
|
|
174624
|
+
if (anchor2 && this.scrollElement && this.options.enabled) {
|
|
174625
|
+
const [key2, _offset, followOnAppend, anchorDelta] = anchor2;
|
|
174626
|
+
if (key2 !== null && !followOnAppend) {
|
|
174627
|
+
if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {
|
|
174628
|
+
if (anchorDelta !== 0) {
|
|
174629
|
+
this._iosDeferredAdjustment += anchorDelta;
|
|
174630
|
+
}
|
|
174631
|
+
} else {
|
|
174632
|
+
this._scrollToOffset(this.getScrollOffset(), {
|
|
174633
|
+
adjustments: void 0,
|
|
174634
|
+
behavior: void 0
|
|
174635
|
+
});
|
|
174636
|
+
}
|
|
174637
|
+
}
|
|
174638
|
+
if (followOnAppend) {
|
|
174639
|
+
this.scrollToEnd({ behavior: followOnAppend });
|
|
174640
|
+
}
|
|
174641
|
+
}
|
|
174642
|
+
};
|
|
174643
|
+
this._flushIosDeferredIfReady = () => {
|
|
174644
|
+
if (this._iosDeferredAdjustment === 0) return;
|
|
174645
|
+
if (this.isScrolling) return;
|
|
174646
|
+
if (this._iosTouching) return;
|
|
174647
|
+
if (this._iosJustTouchEnded) return;
|
|
174648
|
+
const cur2 = this.getScrollOffset();
|
|
174649
|
+
const max2 = this.getMaxScrollOffset();
|
|
174650
|
+
if (cur2 < 0 || cur2 > max2) return;
|
|
174651
|
+
const delta = this._iosDeferredAdjustment;
|
|
174652
|
+
this._iosDeferredAdjustment = 0;
|
|
174653
|
+
this._scrollToOffset(cur2, {
|
|
174654
|
+
adjustments: this.scrollAdjustments += delta,
|
|
174655
|
+
behavior: void 0
|
|
174656
|
+
});
|
|
174657
|
+
};
|
|
174658
|
+
this.rafId = null;
|
|
174659
|
+
this.getSize = () => {
|
|
174660
|
+
if (!this.options.enabled) {
|
|
174661
|
+
this.scrollRect = null;
|
|
174662
|
+
return 0;
|
|
174663
|
+
}
|
|
174664
|
+
this.scrollRect = this.scrollRect ?? this.options.initialRect;
|
|
174665
|
+
return this.scrollRect[this.options.horizontal ? "width" : "height"];
|
|
174666
|
+
};
|
|
174667
|
+
this.getScrollOffset = () => {
|
|
174668
|
+
if (!this.options.enabled) {
|
|
174669
|
+
this.scrollOffset = null;
|
|
174670
|
+
return 0;
|
|
174671
|
+
}
|
|
174672
|
+
this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
|
|
174673
|
+
return this.scrollOffset;
|
|
174674
|
+
};
|
|
174675
|
+
this.getFurthestMeasurement = (measurements, index2) => {
|
|
174676
|
+
const furthestMeasurementsFound = /* @__PURE__ */ new Map();
|
|
174677
|
+
const furthestMeasurements = /* @__PURE__ */ new Map();
|
|
174678
|
+
for (let m2 = index2 - 1; m2 >= 0; m2--) {
|
|
174679
|
+
const measurement = measurements[m2];
|
|
174680
|
+
if (furthestMeasurementsFound.has(measurement.lane)) {
|
|
174681
|
+
continue;
|
|
174682
|
+
}
|
|
174683
|
+
const previousFurthestMeasurement = furthestMeasurements.get(
|
|
174684
|
+
measurement.lane
|
|
174685
|
+
);
|
|
174686
|
+
if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {
|
|
174687
|
+
furthestMeasurements.set(measurement.lane, measurement);
|
|
174688
|
+
} else if (measurement.end < previousFurthestMeasurement.end) {
|
|
174689
|
+
furthestMeasurementsFound.set(measurement.lane, true);
|
|
174690
|
+
}
|
|
174691
|
+
if (furthestMeasurementsFound.size === this.options.lanes) {
|
|
174692
|
+
break;
|
|
174693
|
+
}
|
|
174694
|
+
}
|
|
174695
|
+
return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a2, b2) => {
|
|
174696
|
+
if (a2.end === b2.end) {
|
|
174697
|
+
return a2.index - b2.index;
|
|
174698
|
+
}
|
|
174699
|
+
return a2.end - b2.end;
|
|
174700
|
+
})[0] : void 0;
|
|
174701
|
+
};
|
|
174702
|
+
this.getMeasurementOptions = memo(
|
|
174703
|
+
() => [
|
|
174704
|
+
this.options.count,
|
|
174705
|
+
this.options.paddingStart,
|
|
174706
|
+
this.options.scrollMargin,
|
|
174707
|
+
this.options.getItemKey,
|
|
174708
|
+
this.options.enabled,
|
|
174709
|
+
this.options.lanes,
|
|
174710
|
+
this.options.laneAssignmentMode
|
|
174711
|
+
],
|
|
174712
|
+
(count2, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {
|
|
174713
|
+
const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;
|
|
174714
|
+
if (lanesChanged) {
|
|
174715
|
+
this.lanesChangedFlag = true;
|
|
174716
|
+
}
|
|
174717
|
+
this.prevLanes = lanes;
|
|
174718
|
+
this.pendingMin = null;
|
|
174719
|
+
return {
|
|
174720
|
+
count: count2,
|
|
174721
|
+
paddingStart,
|
|
174722
|
+
scrollMargin,
|
|
174723
|
+
getItemKey,
|
|
174724
|
+
enabled,
|
|
174725
|
+
lanes,
|
|
174726
|
+
laneAssignmentMode
|
|
174727
|
+
};
|
|
174728
|
+
},
|
|
174729
|
+
{
|
|
174730
|
+
key: false
|
|
174731
|
+
}
|
|
174732
|
+
);
|
|
174733
|
+
this.getMeasurements = memo(
|
|
174734
|
+
() => [this.getMeasurementOptions(), this.itemSizeCacheVersion],
|
|
174735
|
+
({
|
|
174736
|
+
count: count2,
|
|
174737
|
+
paddingStart,
|
|
174738
|
+
scrollMargin,
|
|
174739
|
+
getItemKey,
|
|
174740
|
+
enabled,
|
|
174741
|
+
lanes,
|
|
174742
|
+
laneAssignmentMode
|
|
174743
|
+
}, _itemSizeCacheVersion) => {
|
|
174744
|
+
const itemSizeCache = this.itemSizeCache;
|
|
174745
|
+
if (!enabled) {
|
|
174746
|
+
this.measurementsCache = [];
|
|
174747
|
+
this.itemSizeCache.clear();
|
|
174748
|
+
this.laneAssignments.clear();
|
|
174749
|
+
return [];
|
|
174750
|
+
}
|
|
174751
|
+
if (this.laneAssignments.size > count2) {
|
|
174752
|
+
for (const index2 of this.laneAssignments.keys()) {
|
|
174753
|
+
if (index2 >= count2) {
|
|
174754
|
+
this.laneAssignments.delete(index2);
|
|
174755
|
+
}
|
|
174756
|
+
}
|
|
174757
|
+
}
|
|
174758
|
+
if (this.lanesChangedFlag) {
|
|
174759
|
+
this.lanesChangedFlag = false;
|
|
174760
|
+
this.lanesSettling = true;
|
|
174761
|
+
this.measurementsCache = [];
|
|
174762
|
+
this.itemSizeCache.clear();
|
|
174763
|
+
this.laneAssignments.clear();
|
|
174764
|
+
this.pendingMin = null;
|
|
174765
|
+
}
|
|
174766
|
+
if (this.measurementsCache.length === 0 && !this.lanesSettling) {
|
|
174767
|
+
this.measurementsCache = this.options.initialMeasurementsCache;
|
|
174768
|
+
this.measurementsCache.forEach((item) => {
|
|
174769
|
+
this.itemSizeCache.set(item.key, item.size);
|
|
174770
|
+
});
|
|
174771
|
+
}
|
|
174772
|
+
const min2 = this.lanesSettling ? 0 : this.pendingMin ?? 0;
|
|
174773
|
+
this.pendingMin = null;
|
|
174774
|
+
if (this.lanesSettling && this.measurementsCache.length === count2) {
|
|
174775
|
+
this.lanesSettling = false;
|
|
174776
|
+
}
|
|
174777
|
+
if (lanes === 1) {
|
|
174778
|
+
const gap = this.options.gap;
|
|
174779
|
+
const need = count2 * 2;
|
|
174780
|
+
let flat = this._flatMeasurements;
|
|
174781
|
+
if (!flat || flat.length < need) {
|
|
174782
|
+
const next2 = new Float64Array(need);
|
|
174783
|
+
if (flat && min2 > 0) next2.set(flat.subarray(0, min2 * 2));
|
|
174784
|
+
flat = next2;
|
|
174785
|
+
this._flatMeasurements = flat;
|
|
174786
|
+
}
|
|
174787
|
+
let runningStart;
|
|
174788
|
+
if (min2 === 0) {
|
|
174789
|
+
runningStart = paddingStart + scrollMargin;
|
|
174790
|
+
} else {
|
|
174791
|
+
const prevIdx = min2 - 1;
|
|
174792
|
+
runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;
|
|
174793
|
+
}
|
|
174794
|
+
for (let i2 = min2; i2 < count2; i2++) {
|
|
174795
|
+
const key2 = getItemKey(i2);
|
|
174796
|
+
const measuredSize = itemSizeCache.get(key2);
|
|
174797
|
+
const size2 = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i2);
|
|
174798
|
+
flat[i2 * 2] = runningStart;
|
|
174799
|
+
flat[i2 * 2 + 1] = size2;
|
|
174800
|
+
runningStart += size2 + gap;
|
|
174801
|
+
}
|
|
174802
|
+
const view = createLazyMeasurementsView(count2, flat, getItemKey);
|
|
174803
|
+
this.measurementsCache = view;
|
|
174804
|
+
return view;
|
|
174805
|
+
}
|
|
174806
|
+
const measurements = this.measurementsCache.slice(0, min2);
|
|
174807
|
+
const laneLastIndex = new Array(lanes).fill(
|
|
174808
|
+
void 0
|
|
174809
|
+
);
|
|
174810
|
+
for (let m2 = 0; m2 < min2; m2++) {
|
|
174811
|
+
const item = measurements[m2];
|
|
174812
|
+
if (item) {
|
|
174813
|
+
laneLastIndex[item.lane] = m2;
|
|
174814
|
+
}
|
|
174815
|
+
}
|
|
174816
|
+
for (let i2 = min2; i2 < count2; i2++) {
|
|
174817
|
+
const key2 = getItemKey(i2);
|
|
174818
|
+
const cachedLane = this.laneAssignments.get(i2);
|
|
174819
|
+
let lane;
|
|
174820
|
+
let start2;
|
|
174821
|
+
const shouldCacheLane = laneAssignmentMode === "estimate" || itemSizeCache.has(key2);
|
|
174822
|
+
if (cachedLane !== void 0 && this.options.lanes > 1) {
|
|
174823
|
+
lane = cachedLane;
|
|
174824
|
+
const prevIndex = laneLastIndex[lane];
|
|
174825
|
+
const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;
|
|
174826
|
+
start2 = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;
|
|
174827
|
+
} else {
|
|
174828
|
+
const furthestMeasurement = this.options.lanes === 1 ? measurements[i2 - 1] : this.getFurthestMeasurement(measurements, i2);
|
|
174829
|
+
start2 = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
|
|
174830
|
+
lane = furthestMeasurement ? furthestMeasurement.lane : i2 % this.options.lanes;
|
|
174831
|
+
if (this.options.lanes > 1 && shouldCacheLane) {
|
|
174832
|
+
this.laneAssignments.set(i2, lane);
|
|
174833
|
+
}
|
|
174834
|
+
}
|
|
174835
|
+
const measuredSize = itemSizeCache.get(key2);
|
|
174836
|
+
const size2 = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i2);
|
|
174837
|
+
const end = start2 + size2;
|
|
174838
|
+
measurements[i2] = {
|
|
174839
|
+
index: i2,
|
|
174840
|
+
start: start2,
|
|
174841
|
+
size: size2,
|
|
174842
|
+
end,
|
|
174843
|
+
key: key2,
|
|
174844
|
+
lane
|
|
174845
|
+
};
|
|
174846
|
+
laneLastIndex[lane] = i2;
|
|
174847
|
+
}
|
|
174848
|
+
this.measurementsCache = measurements;
|
|
174849
|
+
return measurements;
|
|
174850
|
+
},
|
|
174851
|
+
{
|
|
174852
|
+
key: false,
|
|
174853
|
+
debug: () => this.options.debug
|
|
174854
|
+
}
|
|
174855
|
+
);
|
|
174856
|
+
this.calculateRange = memo(
|
|
174857
|
+
() => [
|
|
174858
|
+
this.getMeasurements(),
|
|
174859
|
+
this.getSize(),
|
|
174860
|
+
this.getScrollOffset(),
|
|
174861
|
+
this.options.lanes
|
|
174862
|
+
],
|
|
174863
|
+
(measurements, outerSize, scrollOffset, lanes) => {
|
|
174864
|
+
return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
|
|
174865
|
+
measurements,
|
|
174866
|
+
outerSize,
|
|
174867
|
+
scrollOffset,
|
|
174868
|
+
lanes,
|
|
174869
|
+
// Pass the typed array so binary search + forward-walk can
|
|
174870
|
+
// read start/end directly from Float64Array, skipping the
|
|
174871
|
+
// Proxy traps that materialize a full VirtualItem per probe.
|
|
174872
|
+
flat: lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null
|
|
174873
|
+
}) : null;
|
|
174874
|
+
},
|
|
174875
|
+
{
|
|
174876
|
+
key: false,
|
|
174877
|
+
debug: () => this.options.debug
|
|
174878
|
+
}
|
|
174879
|
+
);
|
|
174880
|
+
this.getVirtualIndexes = memo(
|
|
174881
|
+
() => {
|
|
174882
|
+
let startIndex = null;
|
|
174883
|
+
let endIndex = null;
|
|
174884
|
+
const range2 = this.calculateRange();
|
|
174885
|
+
if (range2) {
|
|
174886
|
+
startIndex = range2.startIndex;
|
|
174887
|
+
endIndex = range2.endIndex;
|
|
174888
|
+
}
|
|
174889
|
+
this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);
|
|
174890
|
+
return [
|
|
174891
|
+
this.options.rangeExtractor,
|
|
174892
|
+
this.options.overscan,
|
|
174893
|
+
this.options.count,
|
|
174894
|
+
startIndex,
|
|
174895
|
+
endIndex
|
|
174896
|
+
];
|
|
174897
|
+
},
|
|
174898
|
+
(rangeExtractor, overscan, count2, startIndex, endIndex) => {
|
|
174899
|
+
return startIndex === null || endIndex === null ? [] : rangeExtractor({
|
|
174900
|
+
startIndex,
|
|
174901
|
+
endIndex,
|
|
174902
|
+
overscan,
|
|
174903
|
+
count: count2
|
|
174904
|
+
});
|
|
174905
|
+
},
|
|
174906
|
+
{
|
|
174907
|
+
key: false,
|
|
174908
|
+
debug: () => this.options.debug
|
|
174909
|
+
}
|
|
174910
|
+
);
|
|
174911
|
+
this.indexFromElement = (node2) => {
|
|
174912
|
+
const attributeName = this.options.indexAttribute;
|
|
174913
|
+
const indexStr = node2.getAttribute(attributeName);
|
|
174914
|
+
if (!indexStr) {
|
|
174915
|
+
console.warn(
|
|
174916
|
+
`Missing attribute name '${attributeName}={index}' on measured element.`
|
|
174917
|
+
);
|
|
174918
|
+
return -1;
|
|
174919
|
+
}
|
|
174920
|
+
return parseInt(indexStr, 10);
|
|
174921
|
+
};
|
|
174922
|
+
this.shouldMeasureDuringScroll = (index2) => {
|
|
174923
|
+
var _a3;
|
|
174924
|
+
if (!this.scrollState || this.scrollState.behavior !== "smooth") {
|
|
174925
|
+
return true;
|
|
174926
|
+
}
|
|
174927
|
+
const scrollIndex = this.scrollState.index ?? ((_a3 = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a3.index);
|
|
174928
|
+
if (scrollIndex !== void 0 && this.range) {
|
|
174929
|
+
const bufferSize = Math.max(
|
|
174930
|
+
this.options.overscan,
|
|
174931
|
+
Math.ceil((this.range.endIndex - this.range.startIndex) / 2)
|
|
174932
|
+
);
|
|
174933
|
+
const minIndex = Math.max(0, scrollIndex - bufferSize);
|
|
174934
|
+
const maxIndex = Math.min(
|
|
174935
|
+
this.options.count - 1,
|
|
174936
|
+
scrollIndex + bufferSize
|
|
174937
|
+
);
|
|
174938
|
+
return index2 >= minIndex && index2 <= maxIndex;
|
|
174939
|
+
}
|
|
174940
|
+
return true;
|
|
174941
|
+
};
|
|
174942
|
+
this.measureElement = (node2) => {
|
|
174943
|
+
if (!node2) {
|
|
174944
|
+
this.elementsCache.forEach((cached2, key22) => {
|
|
174945
|
+
if (!cached2.isConnected) {
|
|
174946
|
+
this.observer.unobserve(cached2);
|
|
174947
|
+
this.elementsCache.delete(key22);
|
|
174948
|
+
}
|
|
174949
|
+
});
|
|
174950
|
+
return;
|
|
174951
|
+
}
|
|
174952
|
+
const index2 = this.indexFromElement(node2);
|
|
174953
|
+
const key2 = this.options.getItemKey(index2);
|
|
174954
|
+
const prevNode = this.elementsCache.get(key2);
|
|
174955
|
+
if (prevNode !== node2) {
|
|
174956
|
+
if (prevNode) {
|
|
174957
|
+
this.observer.unobserve(prevNode);
|
|
174958
|
+
}
|
|
174959
|
+
this.observer.observe(node2);
|
|
174960
|
+
this.elementsCache.set(key2, node2);
|
|
174961
|
+
}
|
|
174962
|
+
if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index2)) {
|
|
174963
|
+
this.resizeItem(index2, this.options.measureElement(node2, void 0, this));
|
|
174964
|
+
}
|
|
174965
|
+
};
|
|
174966
|
+
this.resizeItem = (index2, size2) => {
|
|
174967
|
+
var _a3, _b3;
|
|
174968
|
+
if (index2 < 0 || index2 >= this.options.count) return;
|
|
174969
|
+
let cachedSize;
|
|
174970
|
+
let itemStart;
|
|
174971
|
+
let key2;
|
|
174972
|
+
const flat = this._flatMeasurements;
|
|
174973
|
+
if (this.options.lanes === 1 && flat !== null) {
|
|
174974
|
+
key2 = this.options.getItemKey(index2);
|
|
174975
|
+
itemStart = flat[index2 * 2];
|
|
174976
|
+
cachedSize = flat[index2 * 2 + 1];
|
|
174977
|
+
} else {
|
|
174978
|
+
const item = this.measurementsCache[index2];
|
|
174979
|
+
if (!item) return;
|
|
174980
|
+
key2 = item.key;
|
|
174981
|
+
itemStart = item.start;
|
|
174982
|
+
cachedSize = item.size;
|
|
174983
|
+
}
|
|
174984
|
+
const itemSize = this.itemSizeCache.get(key2) ?? cachedSize;
|
|
174985
|
+
const delta = size2 - itemSize;
|
|
174986
|
+
if (delta !== 0) {
|
|
174987
|
+
const wasAtEnd = this.options.anchorTo === "end" && ((_a3 = this.scrollState) == null ? void 0 : _a3.behavior) !== "smooth" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;
|
|
174988
|
+
const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;
|
|
174989
|
+
const shouldAdjustScroll = ((_b3 = this.scrollState) == null ? void 0 : _b3.behavior) !== "smooth" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(
|
|
174990
|
+
// The callback expects a VirtualItem; build one lazily only
|
|
174991
|
+
// when the consumer actually supplied a custom predicate.
|
|
174992
|
+
this.measurementsCache[index2] ?? {
|
|
174993
|
+
index: index2,
|
|
174994
|
+
key: key2,
|
|
174995
|
+
start: itemStart,
|
|
174996
|
+
size: cachedSize,
|
|
174997
|
+
end: itemStart + cachedSize,
|
|
174998
|
+
lane: 0
|
|
174999
|
+
},
|
|
175000
|
+
delta,
|
|
175001
|
+
this
|
|
175002
|
+
) : (
|
|
175003
|
+
// Default: adjust when the resize is an above-viewport item.
|
|
175004
|
+
// First measurement (!has(key)): always adjust — the item
|
|
175005
|
+
// has never been sized, so the estimate→actual delta must
|
|
175006
|
+
// be compensated regardless of scroll direction.
|
|
175007
|
+
// Re-measurement (has(key)): skip during backward scroll
|
|
175008
|
+
// to avoid the "items jump while scrolling up" cascade.
|
|
175009
|
+
itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key2) || this.scrollDirection !== "backward")
|
|
175010
|
+
));
|
|
175011
|
+
if (this.pendingMin === null || index2 < this.pendingMin) {
|
|
175012
|
+
this.pendingMin = index2;
|
|
175013
|
+
}
|
|
175014
|
+
this.itemSizeCache.set(key2, size2);
|
|
175015
|
+
this.itemSizeCacheVersion++;
|
|
175016
|
+
if (wasAtEnd) {
|
|
175017
|
+
this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);
|
|
175018
|
+
} else if (shouldAdjustScroll) {
|
|
175019
|
+
this.applyScrollAdjustment(delta);
|
|
175020
|
+
}
|
|
175021
|
+
this.notify(false);
|
|
175022
|
+
}
|
|
175023
|
+
};
|
|
175024
|
+
this.getVirtualItems = memo(
|
|
175025
|
+
() => [this.getVirtualIndexes(), this.getMeasurements()],
|
|
175026
|
+
(indexes, measurements) => {
|
|
175027
|
+
const virtualItems = [];
|
|
175028
|
+
for (let k2 = 0, len = indexes.length; k2 < len; k2++) {
|
|
175029
|
+
const i2 = indexes[k2];
|
|
175030
|
+
const measurement = measurements[i2];
|
|
175031
|
+
virtualItems.push(measurement);
|
|
175032
|
+
}
|
|
175033
|
+
return virtualItems;
|
|
175034
|
+
},
|
|
175035
|
+
{
|
|
175036
|
+
key: false,
|
|
175037
|
+
debug: () => this.options.debug
|
|
175038
|
+
}
|
|
175039
|
+
);
|
|
175040
|
+
this.getVirtualItemForOffset = (offset2) => {
|
|
175041
|
+
const measurements = this.getMeasurements();
|
|
175042
|
+
if (measurements.length === 0) {
|
|
175043
|
+
return void 0;
|
|
175044
|
+
}
|
|
175045
|
+
const flat = this._flatMeasurements;
|
|
175046
|
+
const useFlat = this.options.lanes === 1 && flat != null;
|
|
175047
|
+
const idx = findNearestBinarySearch(
|
|
175048
|
+
0,
|
|
175049
|
+
measurements.length - 1,
|
|
175050
|
+
useFlat ? (i2) => flat[i2 * 2] : (i2) => notUndefined(measurements[i2]).start,
|
|
175051
|
+
offset2
|
|
175052
|
+
);
|
|
175053
|
+
return notUndefined(measurements[idx]);
|
|
175054
|
+
};
|
|
175055
|
+
this.getMaxScrollOffset = () => {
|
|
175056
|
+
if (!this.scrollElement) return 0;
|
|
175057
|
+
if ("scrollHeight" in this.scrollElement) {
|
|
175058
|
+
return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;
|
|
175059
|
+
} else {
|
|
175060
|
+
const doc2 = this.scrollElement.document.documentElement;
|
|
175061
|
+
return this.options.horizontal ? doc2.scrollWidth - this.scrollElement.innerWidth : doc2.scrollHeight - this.scrollElement.innerHeight;
|
|
175062
|
+
}
|
|
175063
|
+
};
|
|
175064
|
+
this.getVirtualDistanceFromEnd = () => {
|
|
175065
|
+
return Math.max(
|
|
175066
|
+
this.getTotalSize() - this.getSize() - this.getScrollOffset(),
|
|
175067
|
+
0
|
|
175068
|
+
);
|
|
175069
|
+
};
|
|
175070
|
+
this.getDistanceFromEnd = () => {
|
|
175071
|
+
return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);
|
|
175072
|
+
};
|
|
175073
|
+
this.isAtEnd = (threshold2 = this.options.scrollEndThreshold) => {
|
|
175074
|
+
return this.getDistanceFromEnd() <= threshold2;
|
|
175075
|
+
};
|
|
175076
|
+
this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {
|
|
175077
|
+
if (!this.scrollElement) return 0;
|
|
175078
|
+
const size2 = this.getSize();
|
|
175079
|
+
const scrollOffset = this.getScrollOffset();
|
|
175080
|
+
if (align === "auto") {
|
|
175081
|
+
align = toOffset >= scrollOffset + size2 ? "end" : "start";
|
|
175082
|
+
}
|
|
175083
|
+
if (align === "center") {
|
|
175084
|
+
toOffset += (itemSize - size2) / 2;
|
|
175085
|
+
} else if (align === "end") {
|
|
175086
|
+
toOffset -= size2;
|
|
175087
|
+
}
|
|
175088
|
+
const maxOffset2 = this.getMaxScrollOffset();
|
|
175089
|
+
return Math.max(Math.min(maxOffset2, toOffset), 0);
|
|
175090
|
+
};
|
|
175091
|
+
this.getOffsetForIndex = (index2, align = "auto") => {
|
|
175092
|
+
index2 = Math.max(0, Math.min(index2, this.options.count - 1));
|
|
175093
|
+
const size2 = this.getSize();
|
|
175094
|
+
const scrollOffset = this.getScrollOffset();
|
|
175095
|
+
const item = this.measurementsCache[index2];
|
|
175096
|
+
if (!item) return;
|
|
175097
|
+
if (align === "auto") {
|
|
175098
|
+
if (item.end >= scrollOffset + size2 - this.options.scrollPaddingEnd) {
|
|
175099
|
+
align = "end";
|
|
175100
|
+
} else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {
|
|
175101
|
+
align = "start";
|
|
175102
|
+
} else {
|
|
175103
|
+
return [scrollOffset, align];
|
|
175104
|
+
}
|
|
175105
|
+
}
|
|
175106
|
+
if (align === "end" && index2 === this.options.count - 1) {
|
|
175107
|
+
return [this.getMaxScrollOffset(), align];
|
|
175108
|
+
}
|
|
175109
|
+
const toOffset = align === "end" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;
|
|
175110
|
+
return [
|
|
175111
|
+
this.getOffsetForAlignment(toOffset, align, item.size),
|
|
175112
|
+
align
|
|
175113
|
+
];
|
|
175114
|
+
};
|
|
175115
|
+
this.scrollToOffset = (toOffset, { align = "start", behavior = "auto" } = {}) => {
|
|
175116
|
+
const offset2 = this.getOffsetForAlignment(toOffset, align);
|
|
175117
|
+
const now2 = this.now();
|
|
175118
|
+
this.scrollState = {
|
|
175119
|
+
index: null,
|
|
175120
|
+
align,
|
|
175121
|
+
behavior,
|
|
175122
|
+
startedAt: now2,
|
|
175123
|
+
lastTargetOffset: offset2,
|
|
175124
|
+
stableFrames: 0
|
|
175125
|
+
};
|
|
175126
|
+
this._scrollToOffset(offset2, { adjustments: void 0, behavior });
|
|
175127
|
+
this.scheduleScrollReconcile();
|
|
175128
|
+
};
|
|
175129
|
+
this.scrollToIndex = (index2, {
|
|
175130
|
+
align: initialAlign = "auto",
|
|
175131
|
+
behavior = "auto"
|
|
175132
|
+
} = {}) => {
|
|
175133
|
+
index2 = Math.max(0, Math.min(index2, this.options.count - 1));
|
|
175134
|
+
const offsetInfo = this.getOffsetForIndex(index2, initialAlign);
|
|
175135
|
+
if (!offsetInfo) {
|
|
175136
|
+
return;
|
|
175137
|
+
}
|
|
175138
|
+
const [offset2, align] = offsetInfo;
|
|
175139
|
+
const now2 = this.now();
|
|
175140
|
+
this.scrollState = {
|
|
175141
|
+
index: index2,
|
|
175142
|
+
align,
|
|
175143
|
+
behavior,
|
|
175144
|
+
startedAt: now2,
|
|
175145
|
+
lastTargetOffset: offset2,
|
|
175146
|
+
stableFrames: 0
|
|
175147
|
+
};
|
|
175148
|
+
this._scrollToOffset(offset2, { adjustments: void 0, behavior });
|
|
175149
|
+
this.scheduleScrollReconcile();
|
|
175150
|
+
};
|
|
175151
|
+
this.scrollBy = (delta, { behavior = "auto" } = {}) => {
|
|
175152
|
+
const offset2 = this.getScrollOffset() + delta;
|
|
175153
|
+
const now2 = this.now();
|
|
175154
|
+
this.scrollState = {
|
|
175155
|
+
index: null,
|
|
175156
|
+
align: "start",
|
|
175157
|
+
behavior,
|
|
175158
|
+
startedAt: now2,
|
|
175159
|
+
lastTargetOffset: offset2,
|
|
175160
|
+
stableFrames: 0
|
|
175161
|
+
};
|
|
175162
|
+
this._scrollToOffset(offset2, { adjustments: void 0, behavior });
|
|
175163
|
+
this.scheduleScrollReconcile();
|
|
175164
|
+
};
|
|
175165
|
+
this.scrollToEnd = ({ behavior = "auto" } = {}) => {
|
|
175166
|
+
if (this.options.count > 0) {
|
|
175167
|
+
this.scrollToIndex(this.options.count - 1, {
|
|
175168
|
+
align: "end",
|
|
175169
|
+
behavior
|
|
175170
|
+
});
|
|
175171
|
+
return;
|
|
175172
|
+
}
|
|
175173
|
+
this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {
|
|
175174
|
+
behavior
|
|
175175
|
+
});
|
|
175176
|
+
};
|
|
175177
|
+
this.getTotalSize = () => {
|
|
175178
|
+
var _a3;
|
|
175179
|
+
const measurements = this.getMeasurements();
|
|
175180
|
+
let end;
|
|
175181
|
+
if (measurements.length === 0) {
|
|
175182
|
+
end = this.options.paddingStart;
|
|
175183
|
+
} else if (this.options.lanes === 1) {
|
|
175184
|
+
const lastIdx = measurements.length - 1;
|
|
175185
|
+
const flat = this._flatMeasurements;
|
|
175186
|
+
if (flat != null) {
|
|
175187
|
+
end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];
|
|
175188
|
+
} else {
|
|
175189
|
+
end = ((_a3 = measurements[lastIdx]) == null ? void 0 : _a3.end) ?? 0;
|
|
175190
|
+
}
|
|
175191
|
+
} else {
|
|
175192
|
+
const endByLane = Array(this.options.lanes).fill(null);
|
|
175193
|
+
let endIndex = measurements.length - 1;
|
|
175194
|
+
while (endIndex >= 0 && endByLane.some((val) => val === null)) {
|
|
175195
|
+
const item = measurements[endIndex];
|
|
175196
|
+
if (endByLane[item.lane] === null) {
|
|
175197
|
+
endByLane[item.lane] = item.end;
|
|
175198
|
+
}
|
|
175199
|
+
endIndex--;
|
|
175200
|
+
}
|
|
175201
|
+
end = Math.max(...endByLane.filter((val) => val !== null));
|
|
175202
|
+
}
|
|
175203
|
+
return Math.max(
|
|
175204
|
+
end - this.options.scrollMargin + this.options.paddingEnd,
|
|
175205
|
+
0
|
|
175206
|
+
);
|
|
175207
|
+
};
|
|
175208
|
+
this.takeSnapshot = () => {
|
|
175209
|
+
const snapshot = [];
|
|
175210
|
+
if (this.itemSizeCache.size === 0) return snapshot;
|
|
175211
|
+
const m2 = this.getMeasurements();
|
|
175212
|
+
for (const item of m2) {
|
|
175213
|
+
if (item && this.itemSizeCache.has(item.key)) {
|
|
175214
|
+
snapshot.push({
|
|
175215
|
+
index: item.index,
|
|
175216
|
+
key: item.key,
|
|
175217
|
+
start: item.start,
|
|
175218
|
+
size: item.size,
|
|
175219
|
+
end: item.end,
|
|
175220
|
+
lane: item.lane
|
|
175221
|
+
});
|
|
175222
|
+
}
|
|
175223
|
+
}
|
|
175224
|
+
return snapshot;
|
|
175225
|
+
};
|
|
175226
|
+
this._scrollToOffset = (offset2, {
|
|
175227
|
+
adjustments,
|
|
175228
|
+
behavior
|
|
175229
|
+
}) => {
|
|
175230
|
+
this._intendedScrollOffset = offset2 + (adjustments ?? 0);
|
|
175231
|
+
this.options.scrollToFn(offset2, { behavior, adjustments }, this);
|
|
175232
|
+
};
|
|
175233
|
+
this.measure = () => {
|
|
175234
|
+
this.pendingMin = null;
|
|
175235
|
+
this.itemSizeCache.clear();
|
|
175236
|
+
this.laneAssignments.clear();
|
|
175237
|
+
this.itemSizeCacheVersion++;
|
|
175238
|
+
this.notify(false);
|
|
175239
|
+
};
|
|
175240
|
+
this.setOptions(opts);
|
|
175241
|
+
}
|
|
175242
|
+
applyScrollAdjustment(delta, behavior) {
|
|
175243
|
+
if (delta === 0) return;
|
|
175244
|
+
if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {
|
|
175245
|
+
this._iosDeferredAdjustment += delta;
|
|
175246
|
+
} else {
|
|
175247
|
+
this._scrollToOffset(this.getScrollOffset(), {
|
|
175248
|
+
adjustments: this.scrollAdjustments += delta,
|
|
175249
|
+
behavior
|
|
175250
|
+
});
|
|
175251
|
+
}
|
|
175252
|
+
}
|
|
175253
|
+
scheduleScrollReconcile() {
|
|
175254
|
+
if (!this.targetWindow) {
|
|
175255
|
+
this.scrollState = null;
|
|
175256
|
+
return;
|
|
175257
|
+
}
|
|
175258
|
+
if (this.rafId != null) return;
|
|
175259
|
+
this.rafId = this.targetWindow.requestAnimationFrame(() => {
|
|
175260
|
+
this.rafId = null;
|
|
175261
|
+
this.reconcileScroll();
|
|
175262
|
+
});
|
|
175263
|
+
}
|
|
175264
|
+
reconcileScroll() {
|
|
175265
|
+
if (!this.scrollState) return;
|
|
175266
|
+
const el = this.scrollElement;
|
|
175267
|
+
if (!el) return;
|
|
175268
|
+
const MAX_RECONCILE_MS = 5e3;
|
|
175269
|
+
if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {
|
|
175270
|
+
this.scrollState = null;
|
|
175271
|
+
return;
|
|
175272
|
+
}
|
|
175273
|
+
const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;
|
|
175274
|
+
const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;
|
|
175275
|
+
const STABLE_FRAMES = 1;
|
|
175276
|
+
const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;
|
|
175277
|
+
if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {
|
|
175278
|
+
this.scrollState.stableFrames++;
|
|
175279
|
+
if (this.scrollState.stableFrames >= STABLE_FRAMES) {
|
|
175280
|
+
if (this.getScrollOffset() !== targetOffset) {
|
|
175281
|
+
this._scrollToOffset(targetOffset, {
|
|
175282
|
+
adjustments: void 0,
|
|
175283
|
+
behavior: "auto"
|
|
175284
|
+
});
|
|
175285
|
+
}
|
|
175286
|
+
this.scrollState = null;
|
|
175287
|
+
return;
|
|
175288
|
+
}
|
|
175289
|
+
} else {
|
|
175290
|
+
this.scrollState.stableFrames = 0;
|
|
175291
|
+
if (targetChanged) {
|
|
175292
|
+
const viewport = this.getSize() || 600;
|
|
175293
|
+
const distance2 = Math.abs(targetOffset - this.getScrollOffset());
|
|
175294
|
+
const keepSmooth = this.scrollState.behavior === "smooth" && distance2 > viewport;
|
|
175295
|
+
this.scrollState.lastTargetOffset = targetOffset;
|
|
175296
|
+
if (!keepSmooth) {
|
|
175297
|
+
this.scrollState.behavior = "auto";
|
|
175298
|
+
}
|
|
175299
|
+
this._scrollToOffset(targetOffset, {
|
|
175300
|
+
adjustments: void 0,
|
|
175301
|
+
behavior: keepSmooth ? "smooth" : "auto"
|
|
175302
|
+
});
|
|
175303
|
+
}
|
|
175304
|
+
}
|
|
175305
|
+
this.scheduleScrollReconcile();
|
|
175306
|
+
}
|
|
175307
|
+
}
|
|
175308
|
+
const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
|
|
175309
|
+
while (low <= high) {
|
|
175310
|
+
const middle = (low + high) / 2 | 0;
|
|
175311
|
+
const currentValue = getCurrentValue(middle);
|
|
175312
|
+
if (currentValue < value) {
|
|
175313
|
+
low = middle + 1;
|
|
175314
|
+
} else if (currentValue > value) {
|
|
175315
|
+
high = middle - 1;
|
|
175316
|
+
} else {
|
|
175317
|
+
return middle;
|
|
175318
|
+
}
|
|
175319
|
+
}
|
|
175320
|
+
if (low > 0) {
|
|
175321
|
+
return low - 1;
|
|
175322
|
+
} else {
|
|
175323
|
+
return 0;
|
|
175324
|
+
}
|
|
175325
|
+
};
|
|
175326
|
+
function calculateRange({
|
|
175327
|
+
measurements,
|
|
175328
|
+
outerSize,
|
|
175329
|
+
scrollOffset,
|
|
175330
|
+
lanes,
|
|
175331
|
+
flat
|
|
175332
|
+
}) {
|
|
175333
|
+
const lastIndex = measurements.length - 1;
|
|
175334
|
+
const getStart = flat ? (index2) => flat[index2 * 2] : (index2) => measurements[index2].start;
|
|
175335
|
+
const getEnd = flat ? (index2) => flat[index2 * 2] + flat[index2 * 2 + 1] : (index2) => measurements[index2].end;
|
|
175336
|
+
if (measurements.length <= lanes) {
|
|
175337
|
+
return {
|
|
175338
|
+
startIndex: 0,
|
|
175339
|
+
endIndex: lastIndex
|
|
175340
|
+
};
|
|
175341
|
+
}
|
|
175342
|
+
let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);
|
|
175343
|
+
let endIndex = startIndex;
|
|
175344
|
+
if (lanes === 1) {
|
|
175345
|
+
while (endIndex < lastIndex && getEnd(endIndex) < scrollOffset + outerSize) {
|
|
175346
|
+
endIndex++;
|
|
175347
|
+
}
|
|
175348
|
+
} else if (lanes > 1) {
|
|
175349
|
+
const endPerLane = Array(lanes).fill(0);
|
|
175350
|
+
while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {
|
|
175351
|
+
const item = measurements[endIndex];
|
|
175352
|
+
endPerLane[item.lane] = item.end;
|
|
175353
|
+
endIndex++;
|
|
175354
|
+
}
|
|
175355
|
+
const startPerLane = Array(lanes).fill(scrollOffset + outerSize);
|
|
175356
|
+
while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {
|
|
175357
|
+
const item = measurements[startIndex];
|
|
175358
|
+
startPerLane[item.lane] = item.start;
|
|
175359
|
+
startIndex--;
|
|
175360
|
+
}
|
|
175361
|
+
startIndex = Math.max(0, startIndex - startIndex % lanes);
|
|
175362
|
+
endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));
|
|
175363
|
+
}
|
|
175364
|
+
return { startIndex, endIndex };
|
|
175365
|
+
}
|
|
175366
|
+
const useIsomorphicLayoutEffect$1 = typeof document !== "undefined" ? reactExports.useLayoutEffect : reactExports.useEffect;
|
|
175367
|
+
function useVirtualizerBase({
|
|
175368
|
+
useFlushSync = true,
|
|
175369
|
+
directDomUpdates = false,
|
|
175370
|
+
directDomUpdatesMode = "transform",
|
|
175371
|
+
...options
|
|
175372
|
+
}) {
|
|
175373
|
+
const rerender = reactExports.useReducer((x2) => x2 + 1, 0)[1];
|
|
175374
|
+
const directRef = reactExports.useRef({
|
|
175375
|
+
enabled: directDomUpdates,
|
|
175376
|
+
mode: directDomUpdatesMode,
|
|
175377
|
+
container: null,
|
|
175378
|
+
lastSize: null,
|
|
175379
|
+
// Keyed by the element itself so a remounted node (same key, new DOM
|
|
175380
|
+
// node — e.g. when `enabled` is toggled off then on) is treated as fresh
|
|
175381
|
+
// and gets its style written.
|
|
175382
|
+
lastPositions: /* @__PURE__ */ new WeakMap(),
|
|
175383
|
+
prevRange: null
|
|
175384
|
+
});
|
|
175385
|
+
directRef.current.enabled = directDomUpdates;
|
|
175386
|
+
directRef.current.mode = directDomUpdatesMode;
|
|
175387
|
+
const applyDirectStyles = (instance2) => {
|
|
175388
|
+
const state2 = directRef.current;
|
|
175389
|
+
if (!state2.enabled || !state2.container) return;
|
|
175390
|
+
const totalSize = instance2.getTotalSize();
|
|
175391
|
+
if (totalSize !== state2.lastSize) {
|
|
175392
|
+
state2.lastSize = totalSize;
|
|
175393
|
+
const sizeAxis = instance2.options.horizontal ? "width" : "height";
|
|
175394
|
+
state2.container.style[sizeAxis] = `${totalSize}px`;
|
|
175395
|
+
}
|
|
175396
|
+
const horizontal = !!instance2.options.horizontal;
|
|
175397
|
+
const useTransform = state2.mode === "transform";
|
|
175398
|
+
const posAxis = horizontal ? "left" : "top";
|
|
175399
|
+
const scrollMargin = instance2.options.scrollMargin;
|
|
175400
|
+
const items = instance2.getVirtualItems();
|
|
175401
|
+
for (const item of items) {
|
|
175402
|
+
const next2 = item.start - scrollMargin;
|
|
175403
|
+
const el = instance2.elementsCache.get(item.key);
|
|
175404
|
+
if (!el) continue;
|
|
175405
|
+
if (state2.lastPositions.get(el) === next2) continue;
|
|
175406
|
+
state2.lastPositions.set(el, next2);
|
|
175407
|
+
if (useTransform) {
|
|
175408
|
+
el.style.transform = horizontal ? `translate3d(${next2}px, 0, 0)` : `translate3d(0, ${next2}px, 0)`;
|
|
175409
|
+
} else {
|
|
175410
|
+
el.style[posAxis] = `${next2}px`;
|
|
175411
|
+
}
|
|
175412
|
+
}
|
|
175413
|
+
};
|
|
175414
|
+
const resolvedOptions = {
|
|
175415
|
+
...options,
|
|
175416
|
+
onChange: (instance2, sync) => {
|
|
175417
|
+
var _a3;
|
|
175418
|
+
const state2 = directRef.current;
|
|
175419
|
+
let shouldRerender = true;
|
|
175420
|
+
if (state2.enabled) {
|
|
175421
|
+
applyDirectStyles(instance2);
|
|
175422
|
+
const range2 = instance2.range;
|
|
175423
|
+
const prev2 = state2.prevRange;
|
|
175424
|
+
shouldRerender = !prev2 || prev2.isScrolling !== instance2.isScrolling || prev2.startIndex !== (range2 == null ? void 0 : range2.startIndex) || prev2.endIndex !== (range2 == null ? void 0 : range2.endIndex);
|
|
175425
|
+
if (shouldRerender) {
|
|
175426
|
+
state2.prevRange = range2 ? {
|
|
175427
|
+
startIndex: range2.startIndex,
|
|
175428
|
+
endIndex: range2.endIndex,
|
|
175429
|
+
isScrolling: instance2.isScrolling
|
|
175430
|
+
} : null;
|
|
175431
|
+
}
|
|
175432
|
+
}
|
|
175433
|
+
if (shouldRerender) {
|
|
175434
|
+
if (useFlushSync && sync) {
|
|
175435
|
+
reactDomExports.flushSync(rerender);
|
|
175436
|
+
} else {
|
|
175437
|
+
rerender();
|
|
175438
|
+
}
|
|
175439
|
+
}
|
|
175440
|
+
(_a3 = options.onChange) == null ? void 0 : _a3.call(options, instance2, sync);
|
|
175441
|
+
}
|
|
175442
|
+
};
|
|
175443
|
+
const [instance] = reactExports.useState(() => {
|
|
175444
|
+
const v2 = new Virtualizer(resolvedOptions);
|
|
175445
|
+
return Object.assign(v2, {
|
|
175446
|
+
containerRef: (node2) => {
|
|
175447
|
+
const state2 = directRef.current;
|
|
175448
|
+
state2.container = node2;
|
|
175449
|
+
state2.lastSize = null;
|
|
175450
|
+
if (node2 && state2.enabled) {
|
|
175451
|
+
const total = v2.getTotalSize();
|
|
175452
|
+
state2.lastSize = total;
|
|
175453
|
+
const axis = v2.options.horizontal ? "width" : "height";
|
|
175454
|
+
node2.style[axis] = `${total}px`;
|
|
175455
|
+
}
|
|
175456
|
+
}
|
|
175457
|
+
});
|
|
175458
|
+
});
|
|
175459
|
+
instance.setOptions(resolvedOptions);
|
|
175460
|
+
useIsomorphicLayoutEffect$1(() => {
|
|
175461
|
+
return instance._didMount();
|
|
175462
|
+
}, []);
|
|
175463
|
+
useIsomorphicLayoutEffect$1(() => {
|
|
175464
|
+
return instance._willUpdate();
|
|
175465
|
+
});
|
|
175466
|
+
useIsomorphicLayoutEffect$1(() => {
|
|
175467
|
+
applyDirectStyles(instance);
|
|
175468
|
+
});
|
|
175469
|
+
return instance;
|
|
175470
|
+
}
|
|
175471
|
+
function useVirtualizer(options) {
|
|
175472
|
+
return useVirtualizerBase({
|
|
175473
|
+
observeElementRect,
|
|
175474
|
+
observeElementOffset,
|
|
175475
|
+
scrollToFn: elementScroll,
|
|
175476
|
+
...options
|
|
175477
|
+
});
|
|
175478
|
+
}
|
|
175479
|
+
function VirtualizedMessageList({
|
|
175480
|
+
items,
|
|
175481
|
+
getKey,
|
|
175482
|
+
renderItem,
|
|
175483
|
+
estimateSize = 220,
|
|
175484
|
+
overscan = 5
|
|
175485
|
+
}) {
|
|
175486
|
+
const { scrollRef } = useStickToBottomContext();
|
|
175487
|
+
const estimateSizeFn = reactExports.useCallback(() => estimateSize, [estimateSize]);
|
|
175488
|
+
const itemsRef = reactExports.useRef(items);
|
|
175489
|
+
itemsRef.current = items;
|
|
175490
|
+
const getItemKeyFn = reactExports.useCallback(
|
|
175491
|
+
(index2) => getKey(itemsRef.current[index2], index2),
|
|
175492
|
+
[getKey]
|
|
175493
|
+
);
|
|
175494
|
+
const getScrollElement = reactExports.useCallback(() => scrollRef.current, [scrollRef]);
|
|
175495
|
+
const virtualizer = useVirtualizer({
|
|
175496
|
+
count: items.length,
|
|
175497
|
+
getScrollElement,
|
|
175498
|
+
estimateSize: estimateSizeFn,
|
|
175499
|
+
overscan,
|
|
175500
|
+
// Stable key per item — important so React reuses the same DOM row
|
|
175501
|
+
// when items shift (e.g. a new message pushes earlier ones up).
|
|
175502
|
+
getItemKey: getItemKeyFn
|
|
175503
|
+
});
|
|
175504
|
+
const virtualItems = virtualizer.getVirtualItems();
|
|
175505
|
+
const totalSize = virtualizer.getTotalSize();
|
|
175506
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175507
|
+
"div",
|
|
175508
|
+
{
|
|
175509
|
+
"data-testid": "chat-pane__virtual-list",
|
|
175510
|
+
style: {
|
|
175511
|
+
// Explicit total height so the parent flex container's
|
|
175512
|
+
// ResizeObserver (use-stick-to-bottom) sees growth and the
|
|
175513
|
+
// scrollbar shows the correct extent.
|
|
175514
|
+
height: `${totalSize}px`,
|
|
175515
|
+
width: "100%",
|
|
175516
|
+
position: "relative"
|
|
175517
|
+
},
|
|
175518
|
+
children: virtualItems.map((virtualRow) => {
|
|
175519
|
+
const item = items[virtualRow.index];
|
|
175520
|
+
const isLast = virtualRow.index === items.length - 1;
|
|
175521
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175522
|
+
VirtualRow,
|
|
175523
|
+
{
|
|
175524
|
+
item,
|
|
175525
|
+
index: virtualRow.index,
|
|
175526
|
+
start: virtualRow.start,
|
|
175527
|
+
isLast,
|
|
175528
|
+
renderItem,
|
|
175529
|
+
measureRef: virtualizer.measureElement
|
|
175530
|
+
},
|
|
175531
|
+
virtualRow.key
|
|
175532
|
+
);
|
|
175533
|
+
})
|
|
175534
|
+
}
|
|
175535
|
+
);
|
|
175536
|
+
}
|
|
175537
|
+
function VirtualRowImpl({
|
|
175538
|
+
item,
|
|
175539
|
+
index: index2,
|
|
175540
|
+
start: start2,
|
|
175541
|
+
isLast,
|
|
175542
|
+
renderItem,
|
|
175543
|
+
measureRef
|
|
175544
|
+
}) {
|
|
175545
|
+
const content2 = renderItem(item, index2);
|
|
175546
|
+
const padding = content2 == null || isLast ? "" : "pb-4";
|
|
175547
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175548
|
+
"div",
|
|
175549
|
+
{
|
|
175550
|
+
"data-index": index2,
|
|
175551
|
+
"data-testid": content2 == null ? void 0 : "chat-pane__message-row",
|
|
175552
|
+
ref: measureRef,
|
|
175553
|
+
style: {
|
|
175554
|
+
position: "absolute",
|
|
175555
|
+
top: 0,
|
|
175556
|
+
left: 0,
|
|
175557
|
+
width: "100%",
|
|
175558
|
+
transform: `translateY(${start2}px)`
|
|
175559
|
+
},
|
|
175560
|
+
className: padding,
|
|
175561
|
+
children: content2
|
|
175562
|
+
}
|
|
175563
|
+
);
|
|
175564
|
+
}
|
|
175565
|
+
const VirtualRow = reactExports.memo(VirtualRowImpl);
|
|
173824
175566
|
const IN_PROGRESS_STATES = /* @__PURE__ */ new Set([
|
|
173825
175567
|
"input-available",
|
|
173826
175568
|
"input-streaming",
|
|
@@ -173872,18 +175614,18 @@ function ConversationSkeleton() {
|
|
|
173872
175614
|
"aria-busy": "true",
|
|
173873
175615
|
"aria-label": "Loading messages",
|
|
173874
175616
|
children: [
|
|
173875
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "user", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 py-1", children: [
|
|
175617
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "user", "data-testid": void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 py-1", children: [
|
|
173876
175618
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-48", className: "bg-foreground/10" }),
|
|
173877
175619
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-32", className: "bg-foreground/10" })
|
|
173878
175620
|
] }) }) }),
|
|
173879
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 pt-1", children: [
|
|
175621
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", "data-testid": void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 pt-1", children: [
|
|
173880
175622
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-3/4" }),
|
|
173881
175623
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-full" }),
|
|
173882
175624
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-5/6" }),
|
|
173883
175625
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-2/3" })
|
|
173884
175626
|
] }) }) }),
|
|
173885
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "user", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-2 py-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-40", className: "bg-foreground/10" }) }) }) }),
|
|
173886
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 pt-1", children: [
|
|
175627
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "user", "data-testid": void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-2 py-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-40", className: "bg-foreground/10" }) }) }) }),
|
|
175628
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", "data-testid": void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 pt-1", children: [
|
|
173887
175629
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-2/3" }),
|
|
173888
175630
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-4/5" }),
|
|
173889
175631
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonBar, { widthClass: "w-1/2" })
|
|
@@ -173917,6 +175659,29 @@ function ChatView({
|
|
|
173917
175659
|
reactExports.useRef(null);
|
|
173918
175660
|
const stickyContextRef = reactExports.useRef(null);
|
|
173919
175661
|
const prevVisibleRef = reactExports.useRef(visible);
|
|
175662
|
+
reactExports.useEffect(() => {
|
|
175663
|
+
let raf = 0;
|
|
175664
|
+
let attempts = 0;
|
|
175665
|
+
const attach = () => {
|
|
175666
|
+
attempts += 1;
|
|
175667
|
+
const el = stickyContextRef.current?.scrollRef?.current;
|
|
175668
|
+
if (el) {
|
|
175669
|
+
if (!el.dataset.testid) el.dataset.testid = "chat-pane__scroller";
|
|
175670
|
+
return;
|
|
175671
|
+
}
|
|
175672
|
+
if (attempts >= 10) {
|
|
175673
|
+
console.warn(
|
|
175674
|
+
"[ChatView] StickToBottom scrollRef did not resolve within 10 frames; chat-pane__scroller testid not attached"
|
|
175675
|
+
);
|
|
175676
|
+
return;
|
|
175677
|
+
}
|
|
175678
|
+
raf = requestAnimationFrame(attach);
|
|
175679
|
+
};
|
|
175680
|
+
attach();
|
|
175681
|
+
return () => {
|
|
175682
|
+
if (raf) cancelAnimationFrame(raf);
|
|
175683
|
+
};
|
|
175684
|
+
}, []);
|
|
173920
175685
|
reactExports.useEffect(() => {
|
|
173921
175686
|
const wasHidden = prevVisibleRef.current === false;
|
|
173922
175687
|
prevVisibleRef.current = visible;
|
|
@@ -174146,14 +175911,76 @@ function ChatView({
|
|
|
174146
175911
|
}
|
|
174147
175912
|
return map2;
|
|
174148
175913
|
}, [messages]);
|
|
175914
|
+
const getMessageKey = reactExports.useCallback((message) => message.id, []);
|
|
175915
|
+
const messagesRef = reactExports.useRef(messages);
|
|
175916
|
+
messagesRef.current = messages;
|
|
175917
|
+
const isStreamingRef = reactExports.useRef(isStreaming);
|
|
175918
|
+
isStreamingRef.current = isStreaming;
|
|
175919
|
+
const renderMessageItem = reactExports.useCallback((message, messageIndex) => {
|
|
175920
|
+
const currentMessages = messagesRef.current;
|
|
175921
|
+
const currentIsStreaming = isStreamingRef.current;
|
|
175922
|
+
const isLastMessage = messageIndex === currentMessages.length - 1;
|
|
175923
|
+
const isLastAssistant = message.role === "assistant" && isLastMessage;
|
|
175924
|
+
const hasPendingInteractiveTool = isLastAssistant && message.parts.some((p2) => {
|
|
175925
|
+
if (!isToolUIPart(p2) || !IN_PROGRESS_STATES.has(p2.state)) return false;
|
|
175926
|
+
const name2 = getToolName(p2);
|
|
175927
|
+
return name2 === "AskUserQuestion" || name2 === "ExitPlanMode";
|
|
175928
|
+
});
|
|
175929
|
+
const showThinking = isLastAssistant && currentIsStreaming && !hasPendingInteractiveTool;
|
|
175930
|
+
const segments = groupMessageParts(message.parts);
|
|
175931
|
+
if (message.role !== "assistant") {
|
|
175932
|
+
if (segments.length === 0) return null;
|
|
175933
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "user", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: segments.map((segment) => {
|
|
175934
|
+
if (segment.type === "text" && segment.part.type === "text" && segment.part.text.trim()) {
|
|
175935
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: segment.part.text }, `${message.id}-text-${segment.partIndex}`);
|
|
175936
|
+
}
|
|
175937
|
+
if (segment.type === "file") {
|
|
175938
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175939
|
+
MessageFilePart,
|
|
175940
|
+
{
|
|
175941
|
+
part: segment.part
|
|
175942
|
+
},
|
|
175943
|
+
`${message.id}-file-${segment.partIndex}`
|
|
175944
|
+
);
|
|
175945
|
+
}
|
|
175946
|
+
return null;
|
|
175947
|
+
}) }) });
|
|
175948
|
+
}
|
|
175949
|
+
if (segments.length === 0 && !showThinking) return null;
|
|
175950
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
|
|
175951
|
+
segments.map((segment) => {
|
|
175952
|
+
if (segment.type === "text") {
|
|
175953
|
+
const { part, partIndex } = segment;
|
|
175954
|
+
if (part.type === "text" && part.text.trim()) {
|
|
175955
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: part.text }, `${message.id}-text-${partIndex}`);
|
|
175956
|
+
}
|
|
175957
|
+
return null;
|
|
175958
|
+
}
|
|
175959
|
+
if (segment.type === "file") {
|
|
175960
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175961
|
+
MessageFilePart,
|
|
175962
|
+
{
|
|
175963
|
+
part: segment.part
|
|
175964
|
+
},
|
|
175965
|
+
`${message.id}-file-${segment.partIndex}`
|
|
175966
|
+
);
|
|
175967
|
+
}
|
|
175968
|
+
const item = toolPartToItem(segment.part);
|
|
175969
|
+
if (isTaskTool(item.toolName)) return null;
|
|
175970
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(ToolCall, { item }, `${message.id}-tool-${segment.partIndex}`);
|
|
175971
|
+
}),
|
|
175972
|
+
showThinking && /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {})
|
|
175973
|
+
] }) });
|
|
175974
|
+
}, []);
|
|
174149
175975
|
const getLastUserMessage = reactExports.useCallback(() => {
|
|
174150
|
-
|
|
174151
|
-
|
|
174152
|
-
|
|
175976
|
+
const currentMessages = messagesRef.current;
|
|
175977
|
+
for (let i2 = currentMessages.length - 1; i2 >= 0; i2--) {
|
|
175978
|
+
if (currentMessages[i2].role !== "user") continue;
|
|
175979
|
+
const text2 = currentMessages[i2].parts.filter((p2) => p2.type === "text").map((p2) => p2.text).join("\n").trim();
|
|
174153
175980
|
if (text2) return text2;
|
|
174154
175981
|
}
|
|
174155
175982
|
return void 0;
|
|
174156
|
-
}, [
|
|
175983
|
+
}, []);
|
|
174157
175984
|
return (
|
|
174158
175985
|
// Scope every `band-file:` link clicked inside this chat to *this*
|
|
174159
175986
|
// workspace — `dispatchOpenFile` reads the id from context, so a
|
|
@@ -174177,64 +176004,21 @@ function ChatView({
|
|
|
174177
176004
|
description: "Send a message to start coding"
|
|
174178
176005
|
}
|
|
174179
176006
|
),
|
|
174180
|
-
|
|
174181
|
-
|
|
174182
|
-
|
|
174183
|
-
|
|
174184
|
-
|
|
174185
|
-
|
|
174186
|
-
|
|
174187
|
-
|
|
174188
|
-
|
|
174189
|
-
|
|
174190
|
-
|
|
174191
|
-
|
|
174192
|
-
|
|
174193
|
-
|
|
174194
|
-
|
|
174195
|
-
if (segment.type === "file") {
|
|
174196
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174197
|
-
MessageFilePart,
|
|
174198
|
-
{
|
|
174199
|
-
part: segment.part
|
|
174200
|
-
},
|
|
174201
|
-
`${message.id}-file-${segment.partIndex}`
|
|
174202
|
-
);
|
|
174203
|
-
}
|
|
174204
|
-
return null;
|
|
174205
|
-
}) }) }, message.id);
|
|
174206
|
-
}
|
|
174207
|
-
const visibleParts = message.parts.filter(
|
|
174208
|
-
(p2) => p2.type === "text" && p2.text.trim() || p2.type === "file" || isToolUIPart(p2)
|
|
174209
|
-
);
|
|
174210
|
-
if (visibleParts.length === 0 && !showThinking) return null;
|
|
174211
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(MessageContent, { children: [
|
|
174212
|
-
groupMessageParts(message.parts).map((segment) => {
|
|
174213
|
-
if (segment.type === "text") {
|
|
174214
|
-
const { part, partIndex } = segment;
|
|
174215
|
-
if (part.type === "text" && part.text.trim()) {
|
|
174216
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(MessageResponse, { children: part.text }, `${message.id}-text-${partIndex}`);
|
|
174217
|
-
}
|
|
174218
|
-
return null;
|
|
174219
|
-
}
|
|
174220
|
-
if (segment.type === "file") {
|
|
174221
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174222
|
-
MessageFilePart,
|
|
174223
|
-
{
|
|
174224
|
-
part: segment.part
|
|
174225
|
-
},
|
|
174226
|
-
`${message.id}-file-${segment.partIndex}`
|
|
174227
|
-
);
|
|
174228
|
-
}
|
|
174229
|
-
const item = toolPartToItem(segment.part);
|
|
174230
|
-
if (isTaskTool(item.toolName)) return null;
|
|
174231
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ToolCall, { item }, `${message.id}-tool-${segment.partIndex}`);
|
|
174232
|
-
}),
|
|
174233
|
-
showThinking && /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {})
|
|
174234
|
-
] }) }, message.id);
|
|
174235
|
-
});
|
|
174236
|
-
})(),
|
|
174237
|
-
isStreaming && (!messages.length || messages[messages.length - 1].role === "user") && /* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) }) }),
|
|
176007
|
+
messages.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176008
|
+
VirtualizedMessageList,
|
|
176009
|
+
{
|
|
176010
|
+
items: messages,
|
|
176011
|
+
getKey: getMessageKey,
|
|
176012
|
+
renderItem: renderMessageItem
|
|
176013
|
+
}
|
|
176014
|
+
),
|
|
176015
|
+
isStreaming && (!messages.length || messages[messages.length - 1].role === "user") && // No `chat-pane__assistant-message` testid on the
|
|
176016
|
+
// standalone thinking bubble — locators that target
|
|
176017
|
+
// assistant message bubbles should never pick up the
|
|
176018
|
+
// intermediate "agent is thinking" placeholder. The
|
|
176019
|
+
// dedicated `chat-pane__thinking-indicator` testid on
|
|
176020
|
+
// `ThinkingIndicator` is what tests use for this state.
|
|
176021
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Message, { from: "assistant", "data-testid": void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingIndicator, {}) }) }),
|
|
174238
176022
|
queuedMessagesView.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174239
176023
|
DndContext,
|
|
174240
176024
|
{
|
|
@@ -174499,11 +176283,13 @@ const MODEL_CONTEXT_WINDOWS = {
|
|
|
174499
176283
|
"gemini-2.5-pro": 1e6,
|
|
174500
176284
|
"gemini-2.5-flash": 1e6
|
|
174501
176285
|
};
|
|
176286
|
+
const SORTED_MODEL_CONTEXT_ENTRIES = Object.entries(
|
|
176287
|
+
MODEL_CONTEXT_WINDOWS
|
|
176288
|
+
).sort(([a2], [b2]) => b2.length - a2.length);
|
|
174502
176289
|
function getContextWindow(model) {
|
|
174503
176290
|
if (!model) return 2e5;
|
|
174504
176291
|
if (MODEL_CONTEXT_WINDOWS[model]) return MODEL_CONTEXT_WINDOWS[model];
|
|
174505
|
-
const
|
|
174506
|
-
for (const [key2, value] of entries2) {
|
|
176292
|
+
for (const [key2, value] of SORTED_MODEL_CONTEXT_ENTRIES) {
|
|
174507
176293
|
if (model.startsWith(key2)) return value;
|
|
174508
176294
|
}
|
|
174509
176295
|
return 2e5;
|
|
@@ -175035,6 +176821,20 @@ function newChatId() {
|
|
|
175035
176821
|
function chatLayoutKey(workspaceId) {
|
|
175036
176822
|
return ["chatLayout", workspaceId];
|
|
175037
176823
|
}
|
|
176824
|
+
let sharedSettingsPromise = null;
|
|
176825
|
+
let sharedSettingsAt = 0;
|
|
176826
|
+
const SHARED_SETTINGS_TTL_MS = 5e3;
|
|
176827
|
+
function getSharedSettings() {
|
|
176828
|
+
const now2 = Date.now();
|
|
176829
|
+
if (!sharedSettingsPromise || now2 - sharedSettingsAt > SHARED_SETTINGS_TTL_MS) {
|
|
176830
|
+
sharedSettingsAt = now2;
|
|
176831
|
+
sharedSettingsPromise = trpc.settings.get.query().catch(() => {
|
|
176832
|
+
sharedSettingsPromise = null;
|
|
176833
|
+
return null;
|
|
176834
|
+
});
|
|
176835
|
+
}
|
|
176836
|
+
return sharedSettingsPromise;
|
|
176837
|
+
}
|
|
175038
176838
|
const saveTimers = /* @__PURE__ */ new Map();
|
|
175039
176839
|
function persistToServer(workspaceId, layout, opts) {
|
|
175040
176840
|
if (opts?.queryClient) {
|
|
@@ -175141,11 +176941,13 @@ function writeCachedTabMeta(chatId, patch2) {
|
|
|
175141
176941
|
} catch {
|
|
175142
176942
|
}
|
|
175143
176943
|
}
|
|
176944
|
+
const RESUME_CAPABLE_AGENT_TYPES = /* @__PURE__ */ new Set(["claude-code", "codex", "opencode"]);
|
|
175144
176945
|
function ChatTab(props) {
|
|
175145
176946
|
const initialChatId = props.params.chatId;
|
|
175146
176947
|
const initialCache = readCachedTabMeta(initialChatId);
|
|
175147
176948
|
const [title, setTitle] = reactExports.useState(initialCache.title ?? props.api.title ?? "Chat");
|
|
175148
176949
|
const [agentType, setAgentType] = reactExports.useState(initialCache.agentType);
|
|
176950
|
+
const [sessionId, setSessionId] = reactExports.useState(void 0);
|
|
175149
176951
|
const [panelCount, setPanelCount] = reactExports.useState(props.containerApi.panels.length);
|
|
175150
176952
|
reactExports.useEffect(() => {
|
|
175151
176953
|
const d2 = props.api.onDidTitleChange(() => {
|
|
@@ -175167,28 +176969,61 @@ function ChatTab(props) {
|
|
|
175167
176969
|
}, [props.containerApi]);
|
|
175168
176970
|
const chatId = props.params.chatId;
|
|
175169
176971
|
const workspaceId = props.params.workspaceId;
|
|
176972
|
+
const mountedRef = reactExports.useRef(true);
|
|
175170
176973
|
reactExports.useEffect(() => {
|
|
176974
|
+
return () => {
|
|
176975
|
+
mountedRef.current = false;
|
|
176976
|
+
};
|
|
176977
|
+
}, []);
|
|
176978
|
+
const codingAgentsRef = reactExports.useRef([]);
|
|
176979
|
+
const defaultAgentIdRef = reactExports.useRef(void 0);
|
|
176980
|
+
const applyChatMeta = reactExports.useCallback(
|
|
176981
|
+
(chat) => {
|
|
176982
|
+
if (!mountedRef.current) return;
|
|
176983
|
+
setSessionId(chat?.activeSessionId ?? void 0);
|
|
176984
|
+
const agentId = chat?.agent ?? defaultAgentIdRef.current ?? "";
|
|
176985
|
+
const found = codingAgentsRef.current.find((a2) => a2.id === agentId);
|
|
176986
|
+
if (found) {
|
|
176987
|
+
setAgentType(found.type);
|
|
176988
|
+
writeCachedTabMeta(chatId, { agentType: found.type });
|
|
176989
|
+
}
|
|
176990
|
+
},
|
|
176991
|
+
[chatId]
|
|
176992
|
+
);
|
|
176993
|
+
const refreshTabMeta = reactExports.useCallback(() => {
|
|
175171
176994
|
if (!chatId || !workspaceId) return;
|
|
175172
|
-
let cancelled2 = false;
|
|
175173
176995
|
Promise.all([
|
|
175174
|
-
|
|
176996
|
+
getSharedSettings(),
|
|
175175
176997
|
trpc.chats.get.query({ chatId }).catch(() => ({ chat: null }))
|
|
175176
176998
|
]).then(([settings, chatResult]) => {
|
|
175177
|
-
if (
|
|
176999
|
+
if (!mountedRef.current) return;
|
|
175178
177000
|
const raw2 = settings?.codingAgents;
|
|
175179
|
-
|
|
175180
|
-
|
|
175181
|
-
|
|
175182
|
-
|
|
175183
|
-
|
|
175184
|
-
|
|
175185
|
-
|
|
175186
|
-
|
|
177001
|
+
codingAgentsRef.current = Array.isArray(raw2) ? raw2 : [];
|
|
177002
|
+
defaultAgentIdRef.current = settings?.defaultCodingAgent;
|
|
177003
|
+
applyChatMeta(chatResult.chat);
|
|
177004
|
+
}).catch(() => {
|
|
177005
|
+
});
|
|
177006
|
+
}, [chatId, workspaceId, applyChatMeta]);
|
|
177007
|
+
const refreshChatMeta = reactExports.useCallback(() => {
|
|
177008
|
+
if (!chatId) return;
|
|
177009
|
+
trpc.chats.get.query({ chatId }).then((res) => applyChatMeta(res.chat)).catch(() => {
|
|
177010
|
+
});
|
|
177011
|
+
}, [chatId, applyChatMeta]);
|
|
177012
|
+
reactExports.useEffect(() => {
|
|
177013
|
+
refreshTabMeta();
|
|
177014
|
+
}, [refreshTabMeta]);
|
|
177015
|
+
const canResume = !!sessionId && !!agentType && RESUME_CAPABLE_AGENT_TYPES.has(agentType);
|
|
177016
|
+
const handleContinueInTerminal = reactExports.useCallback(() => {
|
|
177017
|
+
trpc.chats.continueInTerminal.mutate({ chatId }).then(() => {
|
|
177018
|
+
crossPanelHandlers.onActivateTerminalPanel(workspaceId);
|
|
177019
|
+
}).catch((err) => {
|
|
177020
|
+
console.error("[ChatTab] continue in terminal failed:", err);
|
|
175187
177021
|
});
|
|
175188
|
-
return () => {
|
|
175189
|
-
cancelled2 = true;
|
|
175190
|
-
};
|
|
175191
177022
|
}, [chatId, workspaceId]);
|
|
177023
|
+
const handleCopySessionId = reactExports.useCallback(() => {
|
|
177024
|
+
if (!sessionId) return;
|
|
177025
|
+
void writeClipboardText(sessionId);
|
|
177026
|
+
}, [sessionId]);
|
|
175192
177027
|
const handleClose2 = reactExports.useCallback(
|
|
175193
177028
|
(e3) => {
|
|
175194
177029
|
e3.stopPropagation();
|
|
@@ -175197,35 +177032,65 @@ function ChatTab(props) {
|
|
|
175197
177032
|
[chatId]
|
|
175198
177033
|
);
|
|
175199
177034
|
const showClose = panelCount > 1;
|
|
175200
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
175201
|
-
|
|
175202
|
-
|
|
175203
|
-
|
|
175204
|
-
|
|
175205
|
-
|
|
175206
|
-
|
|
175207
|
-
|
|
175208
|
-
|
|
175209
|
-
|
|
175210
|
-
|
|
175211
|
-
|
|
175212
|
-
|
|
175213
|
-
|
|
175214
|
-
|
|
175215
|
-
|
|
175216
|
-
|
|
175217
|
-
|
|
175218
|
-
|
|
175219
|
-
|
|
175220
|
-
|
|
175221
|
-
|
|
175222
|
-
|
|
175223
|
-
|
|
175224
|
-
|
|
175225
|
-
|
|
175226
|
-
|
|
175227
|
-
|
|
175228
|
-
|
|
177035
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
177036
|
+
ContextMenu,
|
|
177037
|
+
{
|
|
177038
|
+
onOpenChange: (open2) => {
|
|
177039
|
+
if (open2) refreshChatMeta();
|
|
177040
|
+
},
|
|
177041
|
+
children: [
|
|
177042
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ContextMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "dv-default-tab", "data-testid": `chat-tab__trigger--${chatId}`, children: [
|
|
177043
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
177044
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
177045
|
+
"span",
|
|
177046
|
+
{
|
|
177047
|
+
className: "inline-flex size-3.5 shrink-0 items-center justify-center transition-opacity duration-150",
|
|
177048
|
+
style: { opacity: agentType ? 1 : 0 },
|
|
177049
|
+
children: agentType && /* @__PURE__ */ jsxRuntimeExports.jsx(AgentIcon, { type: agentType, className: "size-3.5" })
|
|
177050
|
+
}
|
|
177051
|
+
),
|
|
177052
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate min-w-[6rem] max-w-[14rem]", children: title })
|
|
177053
|
+
] }),
|
|
177054
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
177055
|
+
"button",
|
|
177056
|
+
{
|
|
177057
|
+
type: "button",
|
|
177058
|
+
"aria-hidden": !showClose,
|
|
177059
|
+
tabIndex: showClose ? 0 : -1,
|
|
177060
|
+
className: "ml-1 inline-flex size-4 items-center justify-center rounded-sm opacity-60 hover:opacity-100 hover:bg-accent transition-opacity",
|
|
177061
|
+
style: {
|
|
177062
|
+
opacity: showClose ? void 0 : 0,
|
|
177063
|
+
pointerEvents: showClose ? void 0 : "none"
|
|
177064
|
+
},
|
|
177065
|
+
onClick: handleClose2,
|
|
177066
|
+
title: "Close tab",
|
|
177067
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$7, { className: "size-3" })
|
|
177068
|
+
}
|
|
177069
|
+
)
|
|
177070
|
+
] }) }),
|
|
177071
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuContent, { "data-testid": "chat-tab__context-menu", children: [
|
|
177072
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
177073
|
+
ContextMenuItem,
|
|
177074
|
+
{
|
|
177075
|
+
disabled: !canResume,
|
|
177076
|
+
onClick: handleContinueInTerminal,
|
|
177077
|
+
"data-testid": "chat-tab__context-menu-item--continue-in-terminal",
|
|
177078
|
+
children: "Continue in terminal"
|
|
177079
|
+
}
|
|
177080
|
+
),
|
|
177081
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
177082
|
+
ContextMenuItem,
|
|
177083
|
+
{
|
|
177084
|
+
disabled: !sessionId,
|
|
177085
|
+
onClick: handleCopySessionId,
|
|
177086
|
+
"data-testid": "chat-tab__context-menu-item--copy-session-id",
|
|
177087
|
+
children: "Copy session ID"
|
|
177088
|
+
}
|
|
177089
|
+
)
|
|
177090
|
+
] })
|
|
177091
|
+
]
|
|
177092
|
+
}
|
|
177093
|
+
);
|
|
175229
177094
|
}
|
|
175230
177095
|
const addTabRef = {
|
|
175231
177096
|
current: { onAdd: () => {
|
|
@@ -175641,6 +177506,15 @@ function usePerWorkspaceState(workspaceId) {
|
|
|
175641
177506
|
}
|
|
175642
177507
|
const DEFAULT_MAX_CACHED_WORKSPACES = 3;
|
|
175643
177508
|
const MIN_MAX_CACHED_WORKSPACES = 1;
|
|
177509
|
+
const ACTIVE_ENTRY_STYLE = {
|
|
177510
|
+
visibility: "visible",
|
|
177511
|
+
contentVisibility: "visible"
|
|
177512
|
+
};
|
|
177513
|
+
const HIDDEN_ENTRY_STYLE = {
|
|
177514
|
+
visibility: "hidden",
|
|
177515
|
+
contentVisibility: "hidden",
|
|
177516
|
+
pointerEvents: "none"
|
|
177517
|
+
};
|
|
175644
177518
|
function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
|
|
175645
177519
|
const [cache, setCache] = reactExports.useState(/* @__PURE__ */ new Map());
|
|
175646
177520
|
const pathname = useRouterState({ select: (s2) => s2.location.pathname });
|
|
@@ -175724,11 +177598,8 @@ function MultiWorkspacePanelHost({ emptyState, children: children2 }) {
|
|
|
175724
177598
|
"div",
|
|
175725
177599
|
{
|
|
175726
177600
|
"data-testid": `workspace-panel-host__cached-entry--${workspaceId}`,
|
|
175727
|
-
className: "absolute inset-0
|
|
175728
|
-
style:
|
|
175729
|
-
opacity: isActive ? 1 : 0,
|
|
175730
|
-
pointerEvents: isActive ? void 0 : "none"
|
|
175731
|
-
},
|
|
177601
|
+
className: "absolute inset-0",
|
|
177602
|
+
style: isActive ? ACTIVE_ENTRY_STYLE : HIDDEN_ENTRY_STYLE,
|
|
175732
177603
|
children: children2(workspaceId, isActive)
|
|
175733
177604
|
},
|
|
175734
177605
|
workspaceId
|
|
@@ -199076,12 +200947,12 @@ const PANEL_SHORTCUTS = {
|
|
|
199076
200947
|
browser: "⇧⌘B"
|
|
199077
200948
|
};
|
|
199078
200949
|
const DockviewTerminalContainer = reactExports.lazy(
|
|
199079
|
-
() => import("./DockviewTerminalContainer-
|
|
200950
|
+
() => import("./DockviewTerminalContainer-bMEUzx6R.js").then((m2) => ({
|
|
199080
200951
|
default: m2.DockviewTerminalContainer
|
|
199081
200952
|
}))
|
|
199082
200953
|
);
|
|
199083
200954
|
const DockviewBrowserContainer = reactExports.lazy(
|
|
199084
|
-
() => import("./DockviewBrowserContainer-
|
|
200955
|
+
() => import("./DockviewBrowserContainer-Btjtd2O1.js").then((m2) => ({
|
|
199085
200956
|
default: m2.DockviewBrowserContainer
|
|
199086
200957
|
}))
|
|
199087
200958
|
);
|
|
@@ -199095,6 +200966,8 @@ const crossPanelHandlers = {
|
|
|
199095
200966
|
onFindInFile: () => {
|
|
199096
200967
|
},
|
|
199097
200968
|
onActivateFilesPanel: () => {
|
|
200969
|
+
},
|
|
200970
|
+
onActivateTerminalPanel: () => {
|
|
199098
200971
|
}
|
|
199099
200972
|
};
|
|
199100
200973
|
function NoWorkspaceMessage({ Icon: Icon2 }) {
|
|
@@ -199534,11 +201407,20 @@ function SharedDockviewLayout() {
|
|
|
199534
201407
|
apiRef.current?.getPanel("files")?.api.setActive();
|
|
199535
201408
|
}
|
|
199536
201409
|
}, []);
|
|
201410
|
+
const handleActivateTerminalPanel = reactExports.useCallback((workspaceId) => {
|
|
201411
|
+
if (workspaceId !== activeWorkspaceIdRef.current) return;
|
|
201412
|
+
if (hiddenPanelsRef.current.includes("terminal")) return;
|
|
201413
|
+
apiRef.current?.getPanel("terminal")?.api.setActive();
|
|
201414
|
+
queueMicrotask(() => {
|
|
201415
|
+
window.dispatchEvent(new CustomEvent("band:focus-terminal"));
|
|
201416
|
+
});
|
|
201417
|
+
}, []);
|
|
199537
201418
|
crossPanelHandlers.onOpenFile = handleOpenFile;
|
|
199538
201419
|
crossPanelHandlers.onFileOpened = handleFileOpened;
|
|
199539
201420
|
crossPanelHandlers.onSelectFile = handleSelectFile;
|
|
199540
201421
|
crossPanelHandlers.onFindInFile = handleSetFindInFile;
|
|
199541
201422
|
crossPanelHandlers.onActivateFilesPanel = handleActivateFilesPanel;
|
|
201423
|
+
crossPanelHandlers.onActivateTerminalPanel = handleActivateTerminalPanel;
|
|
199542
201424
|
const paletteCommands = reactExports.useMemo(
|
|
199543
201425
|
() => buildCommands({
|
|
199544
201426
|
getApi: () => apiRef.current,
|
|
@@ -199963,6 +201845,9 @@ function SharedDockviewLayout() {
|
|
|
199963
201845
|
lastStructureRef.current = getStructuralFingerprint(initJson);
|
|
199964
201846
|
}
|
|
199965
201847
|
const initialActiveState = loadActiveState(initialWorkspaceId);
|
|
201848
|
+
if (initialActiveState) {
|
|
201849
|
+
applyGroupActiveViewsToApi(event.api, initialActiveState);
|
|
201850
|
+
}
|
|
199966
201851
|
if (initialActiveState?.maximizedGroup) {
|
|
199967
201852
|
applyMaximizedGroupToApi(event.api, initialActiveState.maximizedGroup);
|
|
199968
201853
|
}
|
|
@@ -200005,16 +201890,7 @@ function SharedDockviewLayout() {
|
|
|
200005
201890
|
if (!api || !activeWorkspaceId) return;
|
|
200006
201891
|
const activeState = loadActiveState(activeWorkspaceId);
|
|
200007
201892
|
if (activeState) {
|
|
200008
|
-
|
|
200009
|
-
for (const [_groupId, viewId] of Object.entries(activeState.groups)) {
|
|
200010
|
-
const panel = api.getPanel(viewId);
|
|
200011
|
-
if (!panel) continue;
|
|
200012
|
-
if (panel.api.isActive) continue;
|
|
200013
|
-
if (panel.group.panels.length <= 1) continue;
|
|
200014
|
-
panel.api.setActive();
|
|
200015
|
-
}
|
|
200016
|
-
} catch {
|
|
200017
|
-
}
|
|
201893
|
+
applyGroupActiveViewsToApi(api, activeState);
|
|
200018
201894
|
}
|
|
200019
201895
|
applyMaximizedGroupToApi(api, activeState?.maximizedGroup);
|
|
200020
201896
|
}, [activeWorkspaceId]);
|
|
@@ -200615,12 +202491,12 @@ function RootLayout() {
|
|
|
200615
202491
|
] })
|
|
200616
202492
|
] });
|
|
200617
202493
|
}
|
|
200618
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
202494
|
+
const $$splitComponentImporter$1 = () => import("./index-DLV7EX0H.js");
|
|
200619
202495
|
const Route$1 = createFileRoute("/")({
|
|
200620
202496
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
200621
202497
|
});
|
|
200622
|
-
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-
|
|
200623
|
-
const $$splitComponentImporter = () => import("./workspace._workspaceId-
|
|
202498
|
+
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-Dcw9dnbJ.js");
|
|
202499
|
+
const $$splitComponentImporter = () => import("./workspace._workspaceId-CvbciLVC.js");
|
|
200624
202500
|
const Route2 = createFileRoute("/workspace/$workspaceId")({
|
|
200625
202501
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
200626
202502
|
// Bookmarks / shared links from before route unification (`/workspace/$id/changes`,
|
|
@@ -200821,7 +202697,7 @@ export {
|
|
|
200821
202697
|
isFunction$1 as by,
|
|
200822
202698
|
isEmpty as bz,
|
|
200823
202699
|
continuedIndent as c,
|
|
200824
|
-
|
|
202700
|
+
millisecond as c$,
|
|
200825
202701
|
SearchFilesDialog as c0,
|
|
200826
202702
|
WorkspacePickerDialog as c1,
|
|
200827
202703
|
useDiffTarget as c2,
|
|
@@ -200832,102 +202708,104 @@ export {
|
|
|
200832
202708
|
ordinal as c7,
|
|
200833
202709
|
getUserDefinedConfig as c8,
|
|
200834
202710
|
getIconSVG as c9,
|
|
200835
|
-
|
|
200836
|
-
|
|
200837
|
-
|
|
200838
|
-
|
|
200839
|
-
|
|
200840
|
-
|
|
200841
|
-
|
|
200842
|
-
|
|
200843
|
-
|
|
200844
|
-
|
|
200845
|
-
|
|
200846
|
-
|
|
200847
|
-
|
|
200848
|
-
|
|
200849
|
-
|
|
200850
|
-
|
|
200851
|
-
|
|
200852
|
-
|
|
200853
|
-
|
|
200854
|
-
|
|
200855
|
-
|
|
200856
|
-
|
|
200857
|
-
|
|
200858
|
-
|
|
200859
|
-
|
|
200860
|
-
|
|
200861
|
-
|
|
202711
|
+
DropdownMenuItem as cA,
|
|
202712
|
+
TriangleAlert as cB,
|
|
202713
|
+
RotateCw as cC,
|
|
202714
|
+
Rgb as cD,
|
|
202715
|
+
rgbConvert as cE,
|
|
202716
|
+
define as cF,
|
|
202717
|
+
extend$2 as cG,
|
|
202718
|
+
Color as cH,
|
|
202719
|
+
nogamma as cI,
|
|
202720
|
+
hue as cJ,
|
|
202721
|
+
time$2 as cK,
|
|
202722
|
+
min$1 as cL,
|
|
202723
|
+
max$1 as cM,
|
|
202724
|
+
dayjs2 as cN,
|
|
202725
|
+
timeFormat as cO,
|
|
202726
|
+
timeMonth as cP,
|
|
202727
|
+
timeSunday as cQ,
|
|
202728
|
+
timeSaturday as cR,
|
|
202729
|
+
timeFriday as cS,
|
|
202730
|
+
timeThursday as cT,
|
|
202731
|
+
timeWednesday as cU,
|
|
202732
|
+
timeTuesday as cV,
|
|
202733
|
+
timeMonday as cW,
|
|
202734
|
+
timeDay as cX,
|
|
202735
|
+
timeHour as cY,
|
|
202736
|
+
timeMinute as cZ,
|
|
202737
|
+
second as c_,
|
|
200862
202738
|
registerIconPacks as ca,
|
|
200863
202739
|
unknownIcon as cb,
|
|
200864
|
-
|
|
200865
|
-
|
|
200866
|
-
|
|
200867
|
-
|
|
200868
|
-
|
|
200869
|
-
|
|
200870
|
-
|
|
200871
|
-
|
|
200872
|
-
|
|
200873
|
-
|
|
200874
|
-
|
|
200875
|
-
|
|
200876
|
-
|
|
200877
|
-
|
|
200878
|
-
|
|
200879
|
-
|
|
200880
|
-
|
|
200881
|
-
|
|
200882
|
-
|
|
200883
|
-
|
|
200884
|
-
|
|
200885
|
-
|
|
200886
|
-
|
|
200887
|
-
|
|
202740
|
+
writeClipboardText as cc,
|
|
202741
|
+
readClipboardText as cd,
|
|
202742
|
+
ArrowUp as ce,
|
|
202743
|
+
ArrowDown as cf,
|
|
202744
|
+
ArrowRight as cg,
|
|
202745
|
+
ClipboardPaste as ch,
|
|
202746
|
+
getCurrentZoomLevel as ci,
|
|
202747
|
+
openExternalUrl as cj,
|
|
202748
|
+
subscribeToZoomChanges as ck,
|
|
202749
|
+
SearchBar as cl,
|
|
202750
|
+
ZOOM_CSS_VAR as cm,
|
|
202751
|
+
invoke as cn,
|
|
202752
|
+
listen as co,
|
|
202753
|
+
reactDomExports as cp,
|
|
202754
|
+
Globe as cq,
|
|
202755
|
+
Popover as cr,
|
|
202756
|
+
PopoverTrigger as cs,
|
|
202757
|
+
PopoverContent as ct,
|
|
202758
|
+
Search as cu,
|
|
202759
|
+
Trash2 as cv,
|
|
202760
|
+
DropdownMenu as cw,
|
|
202761
|
+
DropdownMenuTrigger as cx,
|
|
202762
|
+
ChevronDown as cy,
|
|
202763
|
+
DropdownMenuContent as cz,
|
|
200888
202764
|
foldInside as d,
|
|
200889
|
-
|
|
200890
|
-
|
|
200891
|
-
|
|
200892
|
-
|
|
200893
|
-
|
|
200894
|
-
|
|
200895
|
-
|
|
200896
|
-
|
|
200897
|
-
|
|
200898
|
-
|
|
200899
|
-
|
|
200900
|
-
|
|
200901
|
-
|
|
200902
|
-
|
|
200903
|
-
|
|
200904
|
-
|
|
200905
|
-
|
|
200906
|
-
|
|
200907
|
-
|
|
200908
|
-
|
|
200909
|
-
|
|
200910
|
-
|
|
200911
|
-
|
|
200912
|
-
|
|
200913
|
-
|
|
200914
|
-
|
|
200915
|
-
|
|
200916
|
-
|
|
200917
|
-
|
|
200918
|
-
|
|
200919
|
-
|
|
200920
|
-
|
|
200921
|
-
|
|
200922
|
-
|
|
200923
|
-
|
|
200924
|
-
|
|
200925
|
-
|
|
200926
|
-
|
|
200927
|
-
|
|
200928
|
-
|
|
200929
|
-
|
|
200930
|
-
|
|
202765
|
+
isObject$2 as d0,
|
|
202766
|
+
isIterateeCall$1 as d1,
|
|
202767
|
+
keysIn as d2,
|
|
202768
|
+
eq as d3,
|
|
202769
|
+
isArrayLike$1 as d4,
|
|
202770
|
+
isArray$1 as d5,
|
|
202771
|
+
identity$1 as d6,
|
|
202772
|
+
isIndex$1 as d7,
|
|
202773
|
+
assignValue as d8,
|
|
202774
|
+
format as d9,
|
|
202775
|
+
Stack as dA,
|
|
202776
|
+
MapCache as dB,
|
|
202777
|
+
Uint8Array$1 as dC,
|
|
202778
|
+
isTypedArray$1 as dD,
|
|
202779
|
+
isLength$1 as dE,
|
|
202780
|
+
Set$1 as dF,
|
|
202781
|
+
createAssigner as dG,
|
|
202782
|
+
isPrototype as dH,
|
|
202783
|
+
router as dI,
|
|
202784
|
+
styles2String as da,
|
|
202785
|
+
isLabelStyle as db,
|
|
202786
|
+
setToString as dc,
|
|
202787
|
+
overRest as dd,
|
|
202788
|
+
baseFor as de,
|
|
202789
|
+
baseAssignValue as df,
|
|
202790
|
+
baseUnary as dg,
|
|
202791
|
+
merge$1 as dh,
|
|
202792
|
+
isObjectLike$1 as di,
|
|
202793
|
+
baseGetTag as dj,
|
|
202794
|
+
Symbol$1 as dk,
|
|
202795
|
+
arrayLikeKeys as dl,
|
|
202796
|
+
baseKeys as dm,
|
|
202797
|
+
memoize as dn,
|
|
202798
|
+
isArguments$1 as dp,
|
|
202799
|
+
copyObject as dq,
|
|
202800
|
+
getPrototype as dr,
|
|
202801
|
+
cloneArrayBuffer as ds,
|
|
202802
|
+
cloneTypedArray as dt,
|
|
202803
|
+
getTag$1 as du,
|
|
202804
|
+
nodeUtil as dv,
|
|
202805
|
+
copyArray as dw,
|
|
202806
|
+
isBuffer$1 as dx,
|
|
202807
|
+
cloneBuffer as dy,
|
|
202808
|
+
initCloneObject as dz,
|
|
200931
202809
|
ifNotIn as e,
|
|
200932
202810
|
foldNodeProp as f,
|
|
200933
202811
|
completeFromList as g,
|