@oscloudlab/vgen-agent-assistant 0.0.8 → 0.0.9

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.
@@ -1024,18 +1024,18 @@ const createLucideIcon = (iconName, iconNode) => {
1024
1024
  * This source code is licensed under the ISC license.
1025
1025
  * See the LICENSE file in the root directory of this source tree.
1026
1026
  */
1027
- const __iconNode$F = [
1027
+ const __iconNode$D = [
1028
1028
  ["path", { d: "M5 12h14", key: "1ays0h" }],
1029
1029
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
1030
1030
  ];
1031
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$F);
1031
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$D);
1032
1032
  /**
1033
1033
  * @license lucide-react v0.544.0 - ISC
1034
1034
  *
1035
1035
  * This source code is licensed under the ISC license.
1036
1036
  * See the LICENSE file in the root directory of this source tree.
1037
1037
  */
1038
- const __iconNode$E = [
1038
+ const __iconNode$C = [
1039
1039
  ["path", { d: "M12 7v14", key: "1akyts" }],
1040
1040
  ["path", { d: "M16 12h2", key: "7q9ll5" }],
1041
1041
  ["path", { d: "M16 8h2", key: "msurwy" }],
@@ -1049,14 +1049,14 @@ const __iconNode$E = [
1049
1049
  ["path", { d: "M6 12h2", key: "32wvfc" }],
1050
1050
  ["path", { d: "M6 8h2", key: "30oboj" }]
1051
1051
  ];
1052
- const BookOpenText = createLucideIcon("book-open-text", __iconNode$E);
1052
+ const BookOpenText = createLucideIcon("book-open-text", __iconNode$C);
1053
1053
  /**
1054
1054
  * @license lucide-react v0.544.0 - ISC
1055
1055
  *
1056
1056
  * This source code is licensed under the ISC license.
1057
1057
  * See the LICENSE file in the root directory of this source tree.
1058
1058
  */
1059
- const __iconNode$D = [
1059
+ const __iconNode$B = [
1060
1060
  ["path", { d: "M12 7v14", key: "1akyts" }],
1061
1061
  [
1062
1062
  "path",
@@ -1066,14 +1066,14 @@ const __iconNode$D = [
1066
1066
  }
1067
1067
  ]
1068
1068
  ];
1069
- const BookOpen = createLucideIcon("book-open", __iconNode$D);
1069
+ const BookOpen = createLucideIcon("book-open", __iconNode$B);
1070
1070
  /**
1071
1071
  * @license lucide-react v0.544.0 - ISC
1072
1072
  *
1073
1073
  * This source code is licensed under the ISC license.
1074
1074
  * See the LICENSE file in the root directory of this source tree.
1075
1075
  */
1076
- const __iconNode$C = [
1076
+ const __iconNode$A = [
1077
1077
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
1078
1078
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
1079
1079
  ["path", { d: "M2 14h2", key: "vft8re" }],
@@ -1081,22 +1081,22 @@ const __iconNode$C = [
1081
1081
  ["path", { d: "M15 13v2", key: "1xurst" }],
1082
1082
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
1083
1083
  ];
1084
- const Bot = createLucideIcon("bot", __iconNode$C);
1084
+ const Bot = createLucideIcon("bot", __iconNode$A);
1085
1085
  /**
1086
1086
  * @license lucide-react v0.544.0 - ISC
1087
1087
  *
1088
1088
  * This source code is licensed under the ISC license.
1089
1089
  * See the LICENSE file in the root directory of this source tree.
1090
1090
  */
1091
- const __iconNode$B = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1092
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$B);
1091
+ const __iconNode$z = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
1092
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$z);
1093
1093
  /**
1094
1094
  * @license lucide-react v0.544.0 - ISC
1095
1095
  *
1096
1096
  * This source code is licensed under the ISC license.
1097
1097
  * See the LICENSE file in the root directory of this source tree.
1098
1098
  */
1099
- const __iconNode$A = [
1099
+ const __iconNode$y = [
1100
1100
  [
1101
1101
  "path",
1102
1102
  {
@@ -1106,48 +1106,48 @@ const __iconNode$A = [
1106
1106
  ],
1107
1107
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
1108
1108
  ];
1109
- const CirclePlay = createLucideIcon("circle-play", __iconNode$A);
1109
+ const CirclePlay = createLucideIcon("circle-play", __iconNode$y);
1110
1110
  /**
1111
1111
  * @license lucide-react v0.544.0 - ISC
1112
1112
  *
1113
1113
  * This source code is licensed under the ISC license.
1114
1114
  * See the LICENSE file in the root directory of this source tree.
1115
1115
  */
1116
- const __iconNode$z = [
1116
+ const __iconNode$x = [
1117
1117
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
1118
1118
  ["rect", { x: "9", y: "9", width: "6", height: "6", rx: "1", key: "1ssd4o" }]
1119
1119
  ];
1120
- const CircleStop = createLucideIcon("circle-stop", __iconNode$z);
1120
+ const CircleStop = createLucideIcon("circle-stop", __iconNode$x);
1121
1121
  /**
1122
1122
  * @license lucide-react v0.544.0 - ISC
1123
1123
  *
1124
1124
  * This source code is licensed under the ISC license.
1125
1125
  * See the LICENSE file in the root directory of this source tree.
1126
1126
  */
1127
- const __iconNode$y = [
1127
+ const __iconNode$w = [
1128
1128
  ["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
1129
1129
  ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
1130
1130
  ["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
1131
1131
  ];
1132
- const CodeXml = createLucideIcon("code-xml", __iconNode$y);
1132
+ const CodeXml = createLucideIcon("code-xml", __iconNode$w);
1133
1133
  /**
1134
1134
  * @license lucide-react v0.544.0 - ISC
1135
1135
  *
1136
1136
  * This source code is licensed under the ISC license.
1137
1137
  * See the LICENSE file in the root directory of this source tree.
1138
1138
  */
1139
- const __iconNode$x = [
1139
+ const __iconNode$v = [
1140
1140
  ["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
1141
1141
  ["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
1142
1142
  ];
1143
- const Code = createLucideIcon("code", __iconNode$x);
1143
+ const Code = createLucideIcon("code", __iconNode$v);
1144
1144
  /**
1145
1145
  * @license lucide-react v0.544.0 - ISC
1146
1146
  *
1147
1147
  * This source code is licensed under the ISC license.
1148
1148
  * See the LICENSE file in the root directory of this source tree.
1149
1149
  */
1150
- const __iconNode$w = [
1150
+ const __iconNode$u = [
1151
1151
  ["path", { d: "M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5", key: "laymnq" }],
1152
1152
  ["path", { d: "M8.5 8.5v.01", key: "ue8clq" }],
1153
1153
  ["path", { d: "M16 15.5v.01", key: "14dtrp" }],
@@ -1155,25 +1155,25 @@ const __iconNode$w = [
1155
1155
  ["path", { d: "M11 17v.01", key: "1hyl5a" }],
1156
1156
  ["path", { d: "M7 14v.01", key: "uct60s" }]
1157
1157
  ];
1158
- const Cookie = createLucideIcon("cookie", __iconNode$w);
1158
+ const Cookie = createLucideIcon("cookie", __iconNode$u);
1159
1159
  /**
1160
1160
  * @license lucide-react v0.544.0 - ISC
1161
1161
  *
1162
1162
  * This source code is licensed under the ISC license.
1163
1163
  * See the LICENSE file in the root directory of this source tree.
1164
1164
  */
1165
- const __iconNode$v = [
1165
+ const __iconNode$t = [
1166
1166
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
1167
1167
  ["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" }]
1168
1168
  ];
1169
- const Copy = createLucideIcon("copy", __iconNode$v);
1169
+ const Copy = createLucideIcon("copy", __iconNode$t);
1170
1170
  /**
1171
1171
  * @license lucide-react v0.544.0 - ISC
1172
1172
  *
1173
1173
  * This source code is licensed under the ISC license.
1174
1174
  * See the LICENSE file in the root directory of this source tree.
1175
1175
  */
1176
- const __iconNode$u = [
1176
+ const __iconNode$s = [
1177
1177
  [
1178
1178
  "path",
1179
1179
  {
@@ -1183,51 +1183,51 @@ const __iconNode$u = [
1183
1183
  ],
1184
1184
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
1185
1185
  ];
1186
- const Eye = createLucideIcon("eye", __iconNode$u);
1186
+ const Eye = createLucideIcon("eye", __iconNode$s);
1187
1187
  /**
1188
1188
  * @license lucide-react v0.544.0 - ISC
1189
1189
  *
1190
1190
  * This source code is licensed under the ISC license.
1191
1191
  * See the LICENSE file in the root directory of this source tree.
1192
1192
  */
1193
- const __iconNode$t = [
1193
+ const __iconNode$r = [
1194
1194
  ["path", { d: "M10 12.5 8 15l2 2.5", key: "1tg20x" }],
1195
1195
  ["path", { d: "m14 12.5 2 2.5-2 2.5", key: "yinavb" }],
1196
1196
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
1197
1197
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }]
1198
1198
  ];
1199
- const FileCode = createLucideIcon("file-code", __iconNode$t);
1199
+ const FileCode = createLucideIcon("file-code", __iconNode$r);
1200
1200
  /**
1201
1201
  * @license lucide-react v0.544.0 - ISC
1202
1202
  *
1203
1203
  * This source code is licensed under the ISC license.
1204
1204
  * See the LICENSE file in the root directory of this source tree.
1205
1205
  */
1206
- const __iconNode$s = [
1206
+ const __iconNode$q = [
1207
1207
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
1208
1208
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
1209
1209
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
1210
1210
  ["path", { d: "M16 13H8", key: "t4e002" }],
1211
1211
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
1212
1212
  ];
1213
- const FileText = createLucideIcon("file-text", __iconNode$s);
1213
+ const FileText = createLucideIcon("file-text", __iconNode$q);
1214
1214
  /**
1215
1215
  * @license lucide-react v0.544.0 - ISC
1216
1216
  *
1217
1217
  * This source code is licensed under the ISC license.
1218
1218
  * See the LICENSE file in the root directory of this source tree.
1219
1219
  */
1220
- const __iconNode$r = [
1220
+ const __iconNode$p = [
1221
1221
  ["path", { d: "M2 16s9-15 20-4C11 23 2 8 2 8", key: "h4oh4o" }]
1222
1222
  ];
1223
- const FishSymbol = createLucideIcon("fish-symbol", __iconNode$r);
1223
+ const FishSymbol = createLucideIcon("fish-symbol", __iconNode$p);
1224
1224
  /**
1225
1225
  * @license lucide-react v0.544.0 - ISC
1226
1226
  *
1227
1227
  * This source code is licensed under the ISC license.
1228
1228
  * See the LICENSE file in the root directory of this source tree.
1229
1229
  */
1230
- const __iconNode$q = [
1230
+ const __iconNode$o = [
1231
1231
  [
1232
1232
  "path",
1233
1233
  {
@@ -1236,27 +1236,27 @@ const __iconNode$q = [
1236
1236
  }
1237
1237
  ]
1238
1238
  ];
1239
- const Folder = createLucideIcon("folder", __iconNode$q);
1239
+ const Folder = createLucideIcon("folder", __iconNode$o);
1240
1240
  /**
1241
1241
  * @license lucide-react v0.544.0 - ISC
1242
1242
  *
1243
1243
  * This source code is licensed under the ISC license.
1244
1244
  * See the LICENSE file in the root directory of this source tree.
1245
1245
  */
1246
- const __iconNode$p = [
1246
+ const __iconNode$n = [
1247
1247
  ["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
1248
1248
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
1249
1249
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
1250
1250
  ["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
1251
1251
  ];
1252
- const GitBranch = createLucideIcon("git-branch", __iconNode$p);
1252
+ const GitBranch = createLucideIcon("git-branch", __iconNode$n);
1253
1253
  /**
1254
1254
  * @license lucide-react v0.544.0 - ISC
1255
1255
  *
1256
1256
  * This source code is licensed under the ISC license.
1257
1257
  * See the LICENSE file in the root directory of this source tree.
1258
1258
  */
1259
- const __iconNode$o = [
1259
+ const __iconNode$m = [
1260
1260
  [
1261
1261
  "path",
1262
1262
  {
@@ -1267,26 +1267,26 @@ const __iconNode$o = [
1267
1267
  ["path", { d: "M22 10v6", key: "1lu8f3" }],
1268
1268
  ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
1269
1269
  ];
1270
- const GraduationCap = createLucideIcon("graduation-cap", __iconNode$o);
1270
+ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$m);
1271
1271
  /**
1272
1272
  * @license lucide-react v0.544.0 - ISC
1273
1273
  *
1274
1274
  * This source code is licensed under the ISC license.
1275
1275
  * See the LICENSE file in the root directory of this source tree.
1276
1276
  */
1277
- const __iconNode$n = [
1277
+ const __iconNode$l = [
1278
1278
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
1279
1279
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
1280
1280
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
1281
1281
  ];
1282
- const History = createLucideIcon("history", __iconNode$n);
1282
+ const History = createLucideIcon("history", __iconNode$l);
1283
1283
  /**
1284
1284
  * @license lucide-react v0.544.0 - ISC
1285
1285
  *
1286
1286
  * This source code is licensed under the ISC license.
1287
1287
  * See the LICENSE file in the root directory of this source tree.
1288
1288
  */
1289
- const __iconNode$m = [
1289
+ const __iconNode$k = [
1290
1290
  [
1291
1291
  "path",
1292
1292
  {
@@ -1297,14 +1297,14 @@ const __iconNode$m = [
1297
1297
  ["path", { d: "M9 18h6", key: "x1upvd" }],
1298
1298
  ["path", { d: "M10 22h4", key: "ceow96" }]
1299
1299
  ];
1300
- const Lightbulb = createLucideIcon("lightbulb", __iconNode$m);
1300
+ const Lightbulb = createLucideIcon("lightbulb", __iconNode$k);
1301
1301
  /**
1302
1302
  * @license lucide-react v0.544.0 - ISC
1303
1303
  *
1304
1304
  * This source code is licensed under the ISC license.
1305
1305
  * See the LICENSE file in the root directory of this source tree.
1306
1306
  */
1307
- const __iconNode$l = [
1307
+ const __iconNode$j = [
1308
1308
  [
1309
1309
  "path",
1310
1310
  {
@@ -1313,39 +1313,27 @@ const __iconNode$l = [
1313
1313
  }
1314
1314
  ]
1315
1315
  ];
1316
- const MessageSquare = createLucideIcon("message-square", __iconNode$l);
1316
+ const MessageSquare = createLucideIcon("message-square", __iconNode$j);
1317
1317
  /**
1318
1318
  * @license lucide-react v0.544.0 - ISC
1319
1319
  *
1320
1320
  * This source code is licensed under the ISC license.
1321
1321
  * See the LICENSE file in the root directory of this source tree.
1322
1322
  */
1323
- const __iconNode$k = [
1323
+ const __iconNode$i = [
1324
1324
  ["path", { d: "m14 10 7-7", key: "oa77jy" }],
1325
1325
  ["path", { d: "M20 10h-6V4", key: "mjg0md" }],
1326
1326
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
1327
1327
  ["path", { d: "M4 14h6v6", key: "rmj7iw" }]
1328
1328
  ];
1329
- const Minimize2 = createLucideIcon("minimize-2", __iconNode$k);
1330
- /**
1331
- * @license lucide-react v0.544.0 - ISC
1332
- *
1333
- * This source code is licensed under the ISC license.
1334
- * See the LICENSE file in the root directory of this source tree.
1335
- */
1336
- const __iconNode$j = [
1337
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
1338
- ["path", { d: "M3 9h18", key: "1pudct" }],
1339
- ["path", { d: "M9 21V9", key: "1oto5p" }]
1340
- ];
1341
- const PanelsTopLeft = createLucideIcon("panels-top-left", __iconNode$j);
1329
+ const Minimize2 = createLucideIcon("minimize-2", __iconNode$i);
1342
1330
  /**
1343
1331
  * @license lucide-react v0.544.0 - ISC
1344
1332
  *
1345
1333
  * This source code is licensed under the ISC license.
1346
1334
  * See the LICENSE file in the root directory of this source tree.
1347
1335
  */
1348
- const __iconNode$i = [
1336
+ const __iconNode$h = [
1349
1337
  ["path", { d: "M13 21h8", key: "1jsn5i" }],
1350
1338
  [
1351
1339
  "path",
@@ -1355,14 +1343,14 @@ const __iconNode$i = [
1355
1343
  }
1356
1344
  ]
1357
1345
  ];
1358
- const PenLine = createLucideIcon("pen-line", __iconNode$i);
1346
+ const PenLine = createLucideIcon("pen-line", __iconNode$h);
1359
1347
  /**
1360
1348
  * @license lucide-react v0.544.0 - ISC
1361
1349
  *
1362
1350
  * This source code is licensed under the ISC license.
1363
1351
  * See the LICENSE file in the root directory of this source tree.
1364
1352
  */
1365
- const __iconNode$h = [
1353
+ const __iconNode$g = [
1366
1354
  [
1367
1355
  "path",
1368
1356
  {
@@ -1372,14 +1360,14 @@ const __iconNode$h = [
1372
1360
  ],
1373
1361
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }]
1374
1362
  ];
1375
- const Pencil = createLucideIcon("pencil", __iconNode$h);
1363
+ const Pencil = createLucideIcon("pencil", __iconNode$g);
1376
1364
  /**
1377
1365
  * @license lucide-react v0.544.0 - ISC
1378
1366
  *
1379
1367
  * This source code is licensed under the ISC license.
1380
1368
  * See the LICENSE file in the root directory of this source tree.
1381
1369
  */
1382
- const __iconNode$g = [
1370
+ const __iconNode$f = [
1383
1371
  [
1384
1372
  "path",
1385
1373
  {
@@ -1388,41 +1376,18 @@ const __iconNode$g = [
1388
1376
  }
1389
1377
  ]
1390
1378
  ];
1391
- const Play = createLucideIcon("play", __iconNode$g);
1379
+ const Play = createLucideIcon("play", __iconNode$f);
1392
1380
  /**
1393
1381
  * @license lucide-react v0.544.0 - ISC
1394
1382
  *
1395
1383
  * This source code is licensed under the ISC license.
1396
1384
  * See the LICENSE file in the root directory of this source tree.
1397
1385
  */
1398
- const __iconNode$f = [
1386
+ const __iconNode$e = [
1399
1387
  ["path", { d: "M5 12h14", key: "1ays0h" }],
1400
1388
  ["path", { d: "M12 5v14", key: "s699le" }]
1401
1389
  ];
1402
- const Plus = createLucideIcon("plus", __iconNode$f);
1403
- /**
1404
- * @license lucide-react v0.544.0 - ISC
1405
- *
1406
- * This source code is licensed under the ISC license.
1407
- * See the LICENSE file in the root directory of this source tree.
1408
- */
1409
- const __iconNode$e = [
1410
- [
1411
- "path",
1412
- {
1413
- d: "M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
1414
- key: "rib7q0"
1415
- }
1416
- ],
1417
- [
1418
- "path",
1419
- {
1420
- d: "M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
1421
- key: "1ymkrd"
1422
- }
1423
- ]
1424
- ];
1425
- const Quote = createLucideIcon("quote", __iconNode$e);
1390
+ const Plus = createLucideIcon("plus", __iconNode$e);
1426
1391
  /**
1427
1392
  * @license lucide-react v0.544.0 - ISC
1428
1393
  *
@@ -21457,7 +21422,7 @@ const CookieLife = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACAAAAAgACAYAAA
21457
21422
  const CourseContinueMsg = (props) => {
21458
21423
  const { courseInfo, handleSendMessage } = props;
21459
21424
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-4", children: [
21460
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-blue-600 font-bold text-sm", children: [
21425
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-primary-600 font-bold text-sm", children: [
21461
21426
  /* @__PURE__ */ jsxRuntimeExports.jsx(Star, { className: "w-4 h-4" }),
21462
21427
  "欢迎回来~ 继续学习《",
21463
21428
  courseInfo.name,
@@ -22000,12 +21965,12 @@ const currentFeatures = [
22000
21965
  icon: /* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { className: "w-3.5 h-3.5" }),
22001
21966
  color: "text-blue-600"
22002
21967
  },
22003
- {
22004
- id: "card",
22005
- label: "知识卡片",
22006
- icon: /* @__PURE__ */ jsxRuntimeExports.jsx(PanelsTopLeft, { className: "w-3.5 h-3.5" }),
22007
- color: "text-indigo-600"
22008
- },
21968
+ // {
21969
+ // id: "card",
21970
+ // label: "知识卡片",
21971
+ // icon: <Layout className="w-3.5 h-3.5" />,
21972
+ // color: "text-indigo-600",
21973
+ // },
22009
21974
  // {
22010
21975
  // id: "ask",
22011
21976
  // label: "划线答疑",
@@ -22106,7 +22071,7 @@ const CourseStartMsg = (props) => {
22106
22071
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-px bg-gray-100" }),
22107
22072
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-4", children: [
22108
22073
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
22109
- /* @__PURE__ */ jsxRuntimeExports.jsx(BookOpen, { className: "w-4 h-4 text-blue-500" }),
22074
+ /* @__PURE__ */ jsxRuntimeExports.jsx(BookOpen, { className: "w-4 h-4 text-primary-500" }),
22110
22075
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[12px] font-bold text-gray-800", children: [
22111
22076
  "当前章节:",
22112
22077
  courseInfo.chapter
@@ -22120,8 +22085,8 @@ const CourseStartMsg = (props) => {
22120
22085
  onClick: () => handleSendMessage({ input: item.label }),
22121
22086
  className: "flex items-center gap-2 group hover:translate-x-1 transition-all active:scale-95",
22122
22087
  children: [
22123
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-blue-400 group-hover:bg-blue-600 group-hover:scale-125 transition-all" }),
22124
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[12px] text-gray-600 group-hover:text-blue-600 group-hover:font-bold group-hover:underline underline-offset-4 decoration-blue-200 text-left transition-all", children: item.label })
22088
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-primary-400 group-hover:bg-primary-600 group-hover:scale-125 transition-all" }),
22089
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[12px] text-gray-600 group-hover:text-primary-600 group-hover:font-bold group-hover:underline underline-offset-4 decoration-primary-200 text-left transition-all", children: item.label })
22125
22090
  ]
22126
22091
  },
22127
22092
  item.id
@@ -22147,7 +22112,7 @@ const CourseStartMsg = (props) => {
22147
22112
  ].map((link2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
22148
22113
  "button",
22149
22114
  {
22150
- className: "text-[11px] text-gray-500 hover:text-blue-600 flex items-center gap-1.5 transition-colors",
22115
+ className: "text-[11px] text-gray-500 hover:text-primary-600 flex items-center gap-1.5 transition-colors",
22151
22116
  children: [
22152
22117
  link2.icon,
22153
22118
  link2.label
@@ -55571,20 +55536,20 @@ const MyReactMarkdown = memo$1(({ children }) => {
55571
55536
  }
55572
55537
  ) });
55573
55538
  });
55574
- const searchResults = "_searchResults_74xay_32";
55575
- const searchResultsHeader = "_searchResultsHeader_74xay_32";
55576
- const searchResultsTitle = "_searchResultsTitle_74xay_38";
55577
- const resultTitle = "_resultTitle_74xay_43";
55578
- const resultDot = "_resultDot_74xay_47";
55579
- const searchResultsActions = "_searchResultsActions_74xay_57";
55580
- const actionButton = "_actionButton_74xay_62";
55581
- const refreshButton = "_refreshButton_74xay_74";
55582
- const externalButton = "_externalButton_74xay_81";
55583
- const clearButton = "_clearButton_74xay_88";
55584
- const resultsList = "_resultsList_74xay_95";
55585
- const resultsFooter = "_resultsFooter_74xay_241";
55586
- const footerText = "_footerText_74xay_249";
55587
- const footerActions = "_footerActions_74xay_253";
55539
+ const searchResults = "_searchResults_1ec6f_32";
55540
+ const searchResultsHeader = "_searchResultsHeader_1ec6f_32";
55541
+ const searchResultsTitle = "_searchResultsTitle_1ec6f_38";
55542
+ const resultTitle = "_resultTitle_1ec6f_43";
55543
+ const resultDot = "_resultDot_1ec6f_47";
55544
+ const searchResultsActions = "_searchResultsActions_1ec6f_57";
55545
+ const actionButton = "_actionButton_1ec6f_62";
55546
+ const refreshButton = "_refreshButton_1ec6f_74";
55547
+ const externalButton = "_externalButton_1ec6f_81";
55548
+ const clearButton = "_clearButton_1ec6f_88";
55549
+ const resultsList = "_resultsList_1ec6f_95";
55550
+ const resultsFooter = "_resultsFooter_1ec6f_241";
55551
+ const footerText = "_footerText_1ec6f_249";
55552
+ const footerActions = "_footerActions_1ec6f_253";
55588
55553
  const styles$2 = {
55589
55554
  searchResults,
55590
55555
  searchResultsHeader,
@@ -55702,7 +55667,7 @@ const BiliRecommend = (props) => {
55702
55667
  ),
55703
55668
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-black/10 group-hover/video:bg-black/30 transition-colors" }),
55704
55669
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute bottom-1 right-1 rounded bg-black/70 px-1 py-0.5 text-[9px] font-medium text-white backdrop-blur-sm", children: result.duration }),
55705
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 flex items-center justify-center opacity-0 group-hover/video:opacity-100 transition-opacity", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-primary/50 text-primary-foreground", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Play, { className: "h-3.5 w-3.5 text-blue-600" }) }) })
55670
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 flex items-center justify-center opacity-0 group-hover/video:opacity-100 transition-opacity", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-primary/50 text-primary-foreground", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Play, { className: "h-3.5 w-3.5 text-primary-600" }) }) })
55706
55671
  ] }),
55707
55672
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-1 flex-col justify-between py-0.5", children: [
55708
55673
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
@@ -55756,18 +55721,18 @@ const BiliRecommend = (props) => {
55756
55721
  ] }) });
55757
55722
  };
55758
55723
  const BiliRecommend$1 = memo$1(BiliRecommend);
55759
- const modalWrapper = "_modalWrapper_1efyv_32";
55760
- const modalTipWrapper = "_modalTipWrapper_1efyv_37";
55761
- const vgenModal = "_vgenModal_1efyv_40";
55762
- const modalContent = "_modalContent_1efyv_49";
55763
- const modalTitleLeft = "_modalTitleLeft_1efyv_52";
55764
- const modalTitle = "_modalTitle_1efyv_52";
55765
- const modalContentText = "_modalContentText_1efyv_71";
55766
- const modalFooter = "_modalFooter_1efyv_77";
55767
- const btnOk = "_btnOk_1efyv_85";
55768
- const btnCancel = "_btnCancel_1efyv_90";
55769
- const blackMode = "_blackMode_1efyv_101";
55770
- const modalLeft = "_modalLeft_1efyv_107";
55724
+ const modalWrapper = "_modalWrapper_143da_32";
55725
+ const modalTipWrapper = "_modalTipWrapper_143da_37";
55726
+ const vgenModal = "_vgenModal_143da_40";
55727
+ const modalContent = "_modalContent_143da_49";
55728
+ const modalTitleLeft = "_modalTitleLeft_143da_52";
55729
+ const modalTitle = "_modalTitle_143da_52";
55730
+ const modalContentText = "_modalContentText_143da_71";
55731
+ const modalFooter = "_modalFooter_143da_77";
55732
+ const btnOk = "_btnOk_143da_85";
55733
+ const btnCancel = "_btnCancel_143da_90";
55734
+ const blackMode = "_blackMode_143da_101";
55735
+ const modalLeft = "_modalLeft_143da_107";
55771
55736
  const styles$1 = {
55772
55737
  modalWrapper,
55773
55738
  modalTipWrapper,
@@ -59164,6 +59129,41 @@ const VgenModal = (props) => {
59164
59129
  }
59165
59130
  ) });
59166
59131
  };
59132
+ const parseQuotedContent = (content2) => {
59133
+ const segments = [];
59134
+ const regex = /<<<([\s\S]*?)>>>/g;
59135
+ let lastIndex = 0;
59136
+ let match5;
59137
+ while ((match5 = regex.exec(content2)) !== null) {
59138
+ if (match5.index > lastIndex) {
59139
+ segments.push({
59140
+ type: "text",
59141
+ content: content2.slice(lastIndex, match5.index)
59142
+ });
59143
+ }
59144
+ segments.push({
59145
+ type: "quoted",
59146
+ content: match5[1].trim()
59147
+ });
59148
+ lastIndex = regex.lastIndex;
59149
+ }
59150
+ if (lastIndex < content2.length) {
59151
+ segments.push({
59152
+ type: "text",
59153
+ content: content2.slice(lastIndex)
59154
+ });
59155
+ }
59156
+ return segments;
59157
+ };
59158
+ const RenderContentWithQuotes = memo$1(({ content: content2 }) => {
59159
+ const segments = useMemo$1(() => parseQuotedContent(content2), [content2]);
59160
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: segments.map((segment, index2) => {
59161
+ if (segment.type === "quoted") {
59162
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "mb-1 qouteSpan relative inline-flex items-center mx-1 pl-4 pr-2 py-1 rounded-md text-sm font-medium bg-primary-100 text-primary-600 border border-primary-200 select-none transition-all", children: segment.content.length > 10 ? segment.content.substring(0, 10) + "..." : segment.content }, index2);
59163
+ }
59164
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "whitespace-pre-wrap", children: segment.content }, index2);
59165
+ }) });
59166
+ });
59167
59167
  const formSubmitTextMap = {
59168
59168
  [msgType.FROM_LEARN_PATH]: "定制学习路径",
59169
59169
  [msgType.FROM_KNOWLEDGE_CARD]: "生成知识点",
@@ -59352,28 +59352,28 @@ const MessageContent = (props) => {
59352
59352
  {
59353
59353
  className: cn(
59354
59354
  "w-10 h-10 rounded-2xl flex items-center justify-center shrink-0 shadow-sm",
59355
- msg.role === "user" ? "bg-blue-600 text-white" : "bg-white text-blue-600 border border-gray-100"
59355
+ msg.role === "user" ? "bg-primary-600 text-white" : "bg-white text-primary-600 border border-gray-100"
59356
59356
  ),
59357
59357
  children: msg.role === "user" ? /* @__PURE__ */ jsxRuntimeExports.jsx(User, { className: "w-5 h-5" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Bot, { className: "w-5 h-5" })
59358
59358
  }
59359
59359
  ),
59360
- thinkContent && !answerIsDone && index2 === messages2.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("max-w-[85%] bg-gradient-to-r from-blue-50 to-purple-50 px-4 py-3 rounded-lg border border-blue-100 shadow-sm relative overflow-hidden", "chat-animate-pulse"), children: [
59361
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn("absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-blue-400 via-purple-400 to-pink-400", "chat-animate-progress") }),
59360
+ thinkContent && !answerIsDone && index2 === messages2.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("max-w-[85%] bg-gradient-to-r from-primary-50 to-purple-50 px-4 py-3 rounded-lg border border-primary-100 shadow-sm relative overflow-hidden", "chat-animate-pulse"), children: [
59361
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn("absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-primary-400 via-purple-400 to-pink-400", "chat-animate-progress") }),
59362
59362
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative z-10 text-[13px]", children: [
59363
59363
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-2", children: [
59364
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn("w-2 h-2 bg-blue-500 rounded-full mr-2", "chat-animate-bounce") }),
59364
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn("w-2 h-2 bg-primary-500 rounded-full mr-2", "chat-animate-bounce") }),
59365
59365
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn("w-2 h-2 bg-purple-500 rounded-full mr-2", "chat-animate-bounce"), style: { animationDelay: "0.2s" } }),
59366
59366
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn("w-2 h-2 bg-pink-500 rounded-full", "chat-animate-bounce"), style: { animationDelay: "0.4s" } }),
59367
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-2 text-sm font-medium text-blue-600", children: "AI 思考中..." })
59367
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-2 text-sm font-medium text-primary-600", children: "AI 思考中..." })
59368
59368
  ] }),
59369
59369
  /* @__PURE__ */ jsxRuntimeExports.jsx(MyReactMarkdown, { children: thinkContent })
59370
59370
  ] }),
59371
59371
  recommendScene && recommendSceneData ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-4", children: [
59372
59372
  recommendScene === agentScene.SYSTEMATIZE_LEARNING && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
59373
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium text-blue-600", children: "学习路径正在来的路上,可以先试试看:" }) }),
59373
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium text-primary-600", children: "学习路径正在来的路上,可以先试试看:" }) }),
59374
59374
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 gap-4", children: recommendSceneData.map((path2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-white rounded-xl shadow-sm border border-gray-200 p-6 hover:shadow-md transition-all group relative overflow-hidden", children: [
59375
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-blue-400 via-purple-400 to-pink-400" }),
59376
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-between items-start mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: path2.name, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-lg font-bold text-gray-900 line-clamp-1 group-hover:text-blue-600 transition-colors", children: path2.name }) }) }) }),
59375
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-primary-400 via-purple-400 to-pink-400" }),
59376
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-between items-start mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: path2.name, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-lg font-bold text-gray-900 line-clamp-1 group-hover:text-primary-600 transition-colors", children: path2.name }) }) }) }),
59377
59377
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: path2.desc, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm text-gray-700 line-clamp-2", children: path2.desc }) }) }),
59378
59378
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [
59379
59379
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -59389,7 +59389,7 @@ const MessageContent = (props) => {
59389
59389
  window.open(url, "_blank");
59390
59390
  }
59391
59391
  },
59392
- className: "flex-1 flex items-center justify-center px-3 py-2 bg-gradient-to-r from-blue-50 via-purple-50 to-pink-50 text-blue-600 text-sm font-medium rounded-lg hover:from-blue-100 hover:via-purple-100 hover:to-pink-100 transition-all shadow-sm hover:shadow",
59392
+ className: "flex-1 flex items-center justify-center px-3 py-2 bg-gradient-to-r from-primary-50 via-purple-50 to-pink-50 text-primary-600 text-sm font-medium rounded-lg hover:from-primary-100 hover:via-purple-100 hover:to-pink-100 transition-all shadow-sm hover:shadow",
59393
59393
  children: [
59394
59394
  /* @__PURE__ */ jsxRuntimeExports.jsx(CirclePlay, { className: "h-4 w-4 mr-2" }),
59395
59395
  "开始学习"
@@ -59403,7 +59403,7 @@ const MessageContent = (props) => {
59403
59403
  const url = `${window.location.origin}/editStudyPath/${path2.id}`;
59404
59404
  window.open(url, "_blank");
59405
59405
  },
59406
- className: "flex items-center justify-center px-3 py-2 bg-white border border-gray-200 text-gray-600 text-sm font-medium rounded-lg hover:bg-gray-50 hover:border-blue-300 transition-colors",
59406
+ className: "flex items-center justify-center px-3 py-2 bg-white border border-gray-200 text-gray-600 text-sm font-medium rounded-lg hover:bg-gray-50 hover:border-primary-300 transition-colors",
59407
59407
  title: "编辑路径",
59408
59408
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(PenLine, { className: "h-4 w-4" })
59409
59409
  }
@@ -59412,19 +59412,19 @@ const MessageContent = (props) => {
59412
59412
  ] }, path2.id)) })
59413
59413
  ] }),
59414
59414
  recommendScene === agentScene.SKILL_TO_KNOWLEDGE && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
59415
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium text-blue-600", children: "知识点正在来的路上,可以先试试看:" }) }),
59415
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium text-primary-600", children: "知识点正在来的路上,可以先试试看:" }) }),
59416
59416
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 gap-4", children: recommendSceneData.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
59417
59417
  "div",
59418
59418
  {
59419
59419
  className: "bg-white rounded-xl shadow-sm border border-gray-200 p-6 hover:shadow-md transition-all group relative overflow-hidden",
59420
59420
  children: [
59421
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-blue-400 via-purple-400 to-pink-400" }),
59421
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-primary-400 via-purple-400 to-pink-400" }),
59422
59422
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between items-start mb-4", children: [
59423
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: item.title, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-lg font-bold text-gray-900 line-clamp-1 group-hover:text-blue-600 transition-colors", children: item.title }) }) }),
59423
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: item.title, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-lg font-bold text-gray-900 line-clamp-1 group-hover:text-primary-600 transition-colors", children: item.title }) }) }),
59424
59424
  /* @__PURE__ */ jsxRuntimeExports.jsx(
59425
59425
  "div",
59426
59426
  {
59427
- className: `px-2 py-1 text-xs font-medium rounded-full ${item.type === "conceptual_knowledge" ? "bg-blue-100 text-blue-700" : "bg-purple-100 text-purple-700"}`,
59427
+ className: `px-2 py-1 text-xs font-medium rounded-full ${item.type === "conceptual_knowledge" ? "bg-primary-100 text-primary-700" : "bg-purple-100 text-purple-700"}`,
59428
59428
  children: item.type === "conceptual_knowledge" ? "概念型" : "实操型"
59429
59429
  }
59430
59430
  )
@@ -59441,7 +59441,7 @@ const MessageContent = (props) => {
59441
59441
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-4 flex gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
59442
59442
  "button",
59443
59443
  {
59444
- className: "flex-1 flex items-center justify-center px-3 py-2 bg-gradient-to-r from-blue-50 via-purple-50 to-pink-50 text-blue-600 text-sm font-medium rounded-lg hover:from-blue-100 hover:via-purple-100 hover:to-pink-100 transition-all shadow-sm hover:shadow",
59444
+ className: "flex-1 flex items-center justify-center px-3 py-2 bg-gradient-to-r from-primary-50 via-purple-50 to-pink-50 text-primary-600 text-sm font-medium rounded-lg hover:from-primary-100 hover:via-purple-100 hover:to-pink-100 transition-all shadow-sm hover:shadow",
59445
59445
  onClick: () => {
59446
59446
  const { viewDetail, shareUserId, knowledgeId } = item;
59447
59447
  if (viewDetail) {
@@ -59461,7 +59461,7 @@ const MessageContent = (props) => {
59461
59461
  )) })
59462
59462
  ] }),
59463
59463
  recommendScene === agentScene.QUESTION_GENERATION && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
59464
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium text-blue-600", children: "练习题正在来的路上,可以先试试看:" }) }),
59464
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-medium text-primary-600", children: "练习题正在来的路上,可以先试试看:" }) }),
59465
59465
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 gap-4", children: recommendSceneData.map((ex) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
59466
59466
  motion.div,
59467
59467
  {
@@ -59469,8 +59469,8 @@ const MessageContent = (props) => {
59469
59469
  animate: { opacity: 1, x: 0 },
59470
59470
  className: "bg-white rounded-xl shadow-sm border border-gray-200 p-6 hover:shadow-md transition-all group relative overflow-hidden cursor-pointer",
59471
59471
  children: [
59472
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-blue-400 via-purple-400 to-pink-400" }),
59473
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-between items-start mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { title: ex.topic, className: "text-lg font-bold text-gray-900 line-clamp-1 group-hover:text-blue-600 transition-colors", children: ex.topic }) }) }),
59472
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-primary-400 via-purple-400 to-pink-400" }),
59473
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-between items-start mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { title: ex.topic, className: "text-lg font-bold text-gray-900 line-clamp-1 group-hover:text-primary-600 transition-colors", children: ex.topic }) }) }),
59474
59474
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mb-4 flex items-center gap-4 text-sm text-gray-400 font-medium", children: [
59475
59475
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex items-center gap-1.5", children: [
59476
59476
  getQuestionTypeIcon(ex.type),
@@ -59490,7 +59490,7 @@ const MessageContent = (props) => {
59490
59490
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
59491
59491
  "button",
59492
59492
  {
59493
- className: "flex-1 flex items-center justify-center px-3 py-2 bg-gradient-to-r from-blue-50 via-purple-50 to-pink-50 text-blue-600 text-sm font-medium rounded-lg hover:from-blue-100 hover:via-purple-100 hover:to-pink-100 transition-all shadow-sm hover:shadow",
59493
+ className: "flex-1 flex items-center justify-center px-3 py-2 bg-gradient-to-r from-primary-50 via-purple-50 to-pink-50 text-primary-600 text-sm font-medium rounded-lg hover:from-primary-100 hover:via-purple-100 hover:to-pink-100 transition-all shadow-sm hover:shadow",
59494
59494
  onClick: () => {
59495
59495
  const url = `${window.location.origin}/mySpaces/practices?questionIdForRightNow=${ex.id}`;
59496
59496
  localStorage.setItem("questionIdForRightNowData", ex);
@@ -59519,11 +59519,11 @@ const MessageContent = (props) => {
59519
59519
  {
59520
59520
  className: cn(
59521
59521
  "w-full px-4 rounded-[24px] text-[13px] leading-relaxed shadow-sm",
59522
- msg.role === "user" ? "bg-blue-600 text-white rounded-tr-none" : "py-4 bg-white text-gray-800 border border-gray-100 rounded-tl-none"
59522
+ msg.role === "user" ? "bg-primary-600 text-white rounded-tr-none" : "bg-white text-gray-800 border border-gray-100 rounded-tl-none"
59523
59523
  ),
59524
59524
  children: [
59525
59525
  msg.messageType === msgType.NODE && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-1 py-2 whitespace-pre-wrap break-words", children: msg.content }),
59526
- (msg.messageType === msgType.TEXT || !msg.messageType) && typeof (msg == null ? void 0 : msg.content) === "string" && ((_a2 = msg == null ? void 0 : msg.content) == null ? void 0 : _a2.indexOf("<think>")) === -1 ? msg.role === "user" ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-1 py-2 whitespace-pre-wrap break-words text-[13px]", children: msg.content }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative text-[13px]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MyReactMarkdown, { children: msg.content }) }) : msg.messageType === msgType.TEXT || !msg.messageType ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "py-4 text-red-400", children: "思考已中断..." }) : null,
59526
+ (msg.messageType === msgType.TEXT || !msg.messageType) && typeof (msg == null ? void 0 : msg.content) === "string" && ((_a2 = msg == null ? void 0 : msg.content) == null ? void 0 : _a2.indexOf("<think>")) === -1 ? msg.role === "user" ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-1 py-2 whitespace-pre-wrap break-words", children: /* @__PURE__ */ jsxRuntimeExports.jsx(RenderContentWithQuotes, { content: msg.content, role: msg.role }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntimeExports.jsx(MyReactMarkdown, { children: msg.content }) }) : msg.messageType === msgType.TEXT || !msg.messageType ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "py-4 text-red-400", children: "思考已中断..." }) : null,
59527
59527
  msg.messageType === msgType.FROM_PARSE_VIDEO && (extraInfo == null ? void 0 : extraInfo.form) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "py-4 italic text-purple-600", children: extraInfo.form.url ? "视频解析请求" : "视频推荐" }),
59528
59528
  msg.messageType === msgType.RECOMMEND_VIDEO && (extraInfo == null ? void 0 : extraInfo.form) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "py-4 italic text-purple-600", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
59529
59529
  BiliRecommend$1,
@@ -59837,7 +59837,7 @@ const MessageContent = (props) => {
59837
59837
  type: "primary",
59838
59838
  disabled: studyPathSaving,
59839
59839
  loading: studyPathSaving,
59840
- className: "w-full bg-blue-600 mt-2 flex items-center justify-center px-4 py-4 text-white text-sm font-bold shadow-md hover:shadow-lg disabled:opacity-50 disabled:shadow-none transform active:scale-[0.98]",
59840
+ className: "w-full bg-primary-600 mt-2 flex items-center justify-center px-4 py-4 text-white text-sm font-bold shadow-md hover:shadow-lg disabled:opacity-50 disabled:shadow-none transform active:scale-[0.98]",
59841
59841
  children: [
59842
59842
  /* @__PURE__ */ jsxRuntimeExports.jsx(Zap, { className: "h-4 w-4 mr-2" }),
59843
59843
  "保存路径"
@@ -59867,7 +59867,7 @@ const MessageContent = (props) => {
59867
59867
  const url = `${vgenBaseUrl}/studyMap/${extraInfo.id}`;
59868
59868
  window.open(url, "_blank");
59869
59869
  },
59870
- className: "bg-blue-600 hover:bg-blue-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59870
+ className: "bg-primary-600 hover:bg-primary-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59871
59871
  children: "去学习"
59872
59872
  }
59873
59873
  )
@@ -59885,7 +59885,7 @@ const MessageContent = (props) => {
59885
59885
  const url = `${vgenBaseUrl}/knowledgeDetailPage/${extraInfo.knowledgeId}`;
59886
59886
  window.open(url, "_blank");
59887
59887
  },
59888
- className: "bg-blue-600 hover:bg-blue-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59888
+ className: "bg-primary-600 hover:bg-primary-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59889
59889
  children: "立即查看"
59890
59890
  }
59891
59891
  )
@@ -59905,7 +59905,7 @@ const MessageContent = (props) => {
59905
59905
  e.stopPropagation();
59906
59906
  toCheckQuestions == null ? void 0 : toCheckQuestions(extraInfo);
59907
59907
  },
59908
- className: "whitespace-nowrap bg-blue-600 hover:bg-blue-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59908
+ className: "whitespace-nowrap bg-primary-600 hover:bg-primary-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59909
59909
  children: [
59910
59910
  "去答题 (共",
59911
59911
  extraInfo.questionCenterIds.length,
@@ -59918,12 +59918,12 @@ const MessageContent = (props) => {
59918
59918
  msg.messageType === msgType.REL_RECORD && extraInfo && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "py-4", children: [
59919
59919
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "pt-4 max-w-[300px]", children: [
59920
59920
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2 items-start mb-2", children: [
59921
- /* @__PURE__ */ jsxRuntimeExports.jsx(Video, { className: "w-[44px] h-[26px] text-blue-400" }),
59921
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Video, { className: "w-[44px] h-[26px] text-primary-400" }),
59922
59922
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { title: extraInfo.title, className: "text-[16px] font-bold text-gray-900 line-clamp-1", children: extraInfo.title })
59923
59923
  ] }),
59924
59924
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-gray-500 mb-2 leading-relaxed line-clamp-3", children: "点击查看视频分析结果,获取详细的视频内容解析和学习建议。" }),
59925
59925
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between pt-4 border-t border-gray-50", children: [
59926
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[12px] font-bold text-blue-400 uppercase tracking-wider" }),
59926
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[12px] font-bold text-primary-400 uppercase tracking-wider" }),
59927
59927
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
59928
59928
  "button",
59929
59929
  {
@@ -59931,7 +59931,7 @@ const MessageContent = (props) => {
59931
59931
  e.stopPropagation();
59932
59932
  toCheckVideo == null ? void 0 : toCheckVideo(extraInfo.recordId || extraInfo.id);
59933
59933
  },
59934
- className: "bg-blue-600 hover:bg-blue-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59934
+ className: "bg-primary-600 hover:bg-primary-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
59935
59935
  children: [
59936
59936
  "查看视频",
59937
59937
  /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "w-3.5 h-3.5" })
@@ -59942,13 +59942,13 @@ const MessageContent = (props) => {
59942
59942
  ] }),
59943
59943
  (recommendVideos == null ? void 0 : recommendVideos.length) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-4 max-w-[300px] pt-4 border-t border-gray-100", children: [
59944
59944
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 mb-3", children: [
59945
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-1 h-4 bg-gradient-to-b from-blue-400 to-blue-600 rounded-full" }),
59945
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-1 h-4 bg-gradient-to-b from-primary-400 to-primary-600 rounded-full" }),
59946
59946
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-bold text-gray-800", children: "视频拼命解析中,先来看看这些吧~" })
59947
59947
  ] }),
59948
59948
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-2", children: recommendVideos.map((video) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
59949
59949
  "div",
59950
59950
  {
59951
- className: "flex items-center gap-3 p-2.5 rounded-xl bg-gradient-to-r from-gray-50 to-white hover:from-blue-50 hover:to-blue-50 transition-all duration-200 cursor-pointer group/item border border-gray-100 hover:border-blue-200 hover:shadow-md",
59951
+ className: "flex items-center gap-3 p-2.5 rounded-xl bg-gradient-to-r from-gray-50 to-white hover:from-primary-50 hover:to-primary-50 transition-all duration-200 cursor-pointer group/item border border-gray-100 hover:border-primary-200 hover:shadow-md",
59952
59952
  onClick: (e) => {
59953
59953
  e.stopPropagation();
59954
59954
  recommendVideoSelect(video);
@@ -59963,7 +59963,7 @@ const MessageContent = (props) => {
59963
59963
  }
59964
59964
  ),
59965
59965
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
59966
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { title: video.title, className: "text-sm font-semibold text-gray-900 line-clamp-2 group-hover/item:text-blue-600 transition-colors", children: video.title }),
59966
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { title: video.title, className: "text-sm font-semibold text-gray-900 line-clamp-2 group-hover/item:text-primary-600 transition-colors", children: video.title }),
59967
59967
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 mt-1", children: [
59968
59968
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-gray-500 whitespace-nowrap", children: video.createTime.split(" ")[0] }),
59969
59969
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-gray-300", children: "•" }),
@@ -59973,7 +59973,7 @@ const MessageContent = (props) => {
59973
59973
  ] })
59974
59974
  ] })
59975
59975
  ] }),
59976
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "opacity-0 group-hover/item:opacity-100 transition-opacity", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "w-4 h-4 text-blue-500" }) })
59976
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "opacity-0 group-hover/item:opacity-100 transition-opacity", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "w-4 h-4 text-primary-500" }) })
59977
59977
  ]
59978
59978
  },
59979
59979
  video.recordId
@@ -60015,7 +60015,7 @@ const MessageContent = (props) => {
60015
60015
  const url = `${window.location.origin}/taskManagement`;
60016
60016
  window.open(url, "_blank");
60017
60017
  },
60018
- className: "bg-blue-600 hover:bg-blue-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
60018
+ className: "bg-primary-600 hover:bg-primary-700 text-white rounded-xl h-9 px-4 font-bold text-xs gap-2",
60019
60019
  children: [
60020
60020
  "查看任务",
60021
60021
  /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "w-3.5 h-3.5" })
@@ -60100,16 +60100,16 @@ const MessageContent = (props) => {
60100
60100
  onClick: () => {
60101
60101
  handleSend({ input: wholeTip, scene: item.scene });
60102
60102
  },
60103
- className: "w-full group/recommend flex items-center justify-between p-4 bg-white/80 backdrop-blur-sm border border-slate-100 rounded-xl hover:border-blue-200 hover:bg-blue-50/30 transition-all duration-300 text-left shadow-sm hover:shadow-md",
60103
+ className: "w-full group/recommend flex items-center justify-between p-4 bg-white/80 backdrop-blur-sm border border-slate-100 rounded-xl hover:border-primary-200 hover:bg-primary-50/30 transition-all duration-300 text-left shadow-sm hover:shadow-md",
60104
60104
  children: [
60105
60105
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [
60106
60106
  Icon2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-sm px-2 py-1.5 flex items-center gap-1 transition-colors rounded-md bg-primary/10 text-primary border border-primary/20", children: [
60107
60107
  /* @__PURE__ */ jsxRuntimeExports.jsx(Icon2, { className: `${sceneIconColorMap[item.scene]} w-5 h-5` }),
60108
60108
  sceneTitleMap[item.scene]
60109
60109
  ] }),
60110
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: item.topic, className: "flex-1 text-[15px] text-slate-700 font-medium group-hover/recommend:text-blue-600 transition-colors line-clamp-1", children: wholeTip })
60110
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: item.topic, className: "flex-1 text-[15px] text-slate-700 font-medium group-hover/recommend:text-primary-600 transition-colors line-clamp-1", children: wholeTip })
60111
60111
  ] }),
60112
- /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon, { className: "text-slate-300 group-hover/recommend:text-blue-400 opacity-100 group-hover/recommend:opacity-100 -translate-x-2 group-hover/recommend:translate-x-0 transition-all" })
60112
+ /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon, { className: "text-slate-300 group-hover/recommend:text-primary-400 opacity-100 group-hover/recommend:opacity-100 -translate-x-2 group-hover/recommend:translate-x-0 transition-all" })
60113
60113
  ]
60114
60114
  }
60115
60115
  )
@@ -60133,7 +60133,7 @@ const MessageContent = (props) => {
60133
60133
  open: sessionToKnowledgeModalVisible,
60134
60134
  title: sessionToKnowledgeLoading ? "正在转化..." : "转化完成",
60135
60135
  content: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-[140px]", children: sessionToKnowledgeLoading ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center py-8", children: [
60136
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-16 h-16 bg-blue-50 text-blue-600 rounded-2xl flex items-center justify-center mx-auto mb-6 animate-bounce", children: /* @__PURE__ */ jsxRuntimeExports.jsx(BookOpenText, { className: "w-8 h-8 opacity-50" }) }),
60136
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-16 h-16 bg-primary-50 text-primary-600 rounded-2xl flex items-center justify-center mx-auto mb-6 animate-bounce", children: /* @__PURE__ */ jsxRuntimeExports.jsx(BookOpenText, { className: "w-8 h-8 opacity-50" }) }),
60137
60137
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-gray-600", children: sessionToKnowledgeLoadingText || "正在将对话内容转化为知识点..." })
60138
60138
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center py-4", children: [
60139
60139
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mx-auto w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-8 h-8 text-green-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M5 13l4 4L19 7" }) }) }),
@@ -60213,6 +60213,7 @@ const TagsTextarea = forwardRef((props, ref) => {
60213
60213
  getStructuredData: () => structuredData,
60214
60214
  addText,
60215
60215
  addTag,
60216
+ addQuotedText,
60216
60217
  addInput,
60217
60218
  addDropdown,
60218
60219
  focusInput,
@@ -60223,10 +60224,12 @@ const TagsTextarea = forwardRef((props, ref) => {
60223
60224
  const results = [];
60224
60225
  const nodes = editorRef.current.childNodes;
60225
60226
  nodes.forEach((node2) => {
60226
- var _a2;
60227
+ var _a2, _b, _c;
60227
60228
  if (node2.nodeType === Node.TEXT_NODE) {
60228
60229
  const text2 = (_a2 = node2.textContent) == null ? void 0 : _a2.trim();
60229
60230
  if (text2) results.push({ type: "text", value: text2 });
60231
+ } else if (node2.nodeType === Node.ELEMENT_NODE && ((_b = node2 == null ? void 0 : node2.dataset) == null ? void 0 : _b.quote)) {
60232
+ results.push({ type: "text", value: (_c = node2 == null ? void 0 : node2.dataset) == null ? void 0 : _c.quote });
60230
60233
  } else if (node2.nodeType === Node.ELEMENT_NODE && node2.nodeName === "BR") {
60231
60234
  results.push({ type: "br", value: "" });
60232
60235
  } else if (node2.nodeType === Node.ELEMENT_NODE) {
@@ -60355,6 +60358,20 @@ const TagsTextarea = forwardRef((props, ref) => {
60355
60358
  span.appendChild(createDeleteBtn(span));
60356
60359
  insertNode(span);
60357
60360
  };
60361
+ const addQuotedText = (text2) => {
60362
+ const span = document.createElement("span");
60363
+ span.contentEditable = "false";
60364
+ span.className = "mb-1 qouteSpan relative inline-flex items-center mx-1 pl-4 pr-2 py-1 rounded-md text-sm font-medium bg-blue-50 text-blue-600 border border-blue-200 select-none transition-all hover:bg-blue-100";
60365
+ const content2 = document.createElement("span");
60366
+ const quotedMatch = text2.match(/<<<(.*?)>>>/);
60367
+ const quotedDisplay = quotedMatch == null ? void 0 : quotedMatch[1];
60368
+ if (!quotedDisplay) return;
60369
+ const quotedPrefix = quotedDisplay.slice(0, 10);
60370
+ content2.innerHTML = `${quotedPrefix}...`;
60371
+ span.dataset.quote = text2;
60372
+ span.appendChild(content2);
60373
+ insertNode(span);
60374
+ };
60358
60375
  const addInput = (value, placeholder2) => {
60359
60376
  const span = document.createElement("span");
60360
60377
  span.contentEditable = "false";
@@ -60548,20 +60565,20 @@ const TagsTextarea = forwardRef((props, ref) => {
60548
60565
  }
60549
60566
  ) });
60550
60567
  });
60551
- const analyzeCom = "_analyzeCom_1bpz5_32";
60552
- const colletionList = "_colletionList_1bpz5_129";
60553
- const colletionListHeader = "_colletionListHeader_1bpz5_132";
60554
- const buyVip = "_buyVip_1bpz5_142";
60555
- const countText = "_countText_1bpz5_150";
60556
- const collectionList = "_collectionList_1bpz5_156";
60557
- const videoList = "_videoList_1bpz5_181";
60558
- const videoItem = "_videoItem_1bpz5_190";
60559
- const title = "_title_1bpz5_203";
60560
- const freeBadge = "_freeBadge_1bpz5_209";
60561
- const icon = "_icon_1bpz5_222";
60562
- const selected = "_selected_1bpz5_230";
60563
- const collectionTitle = "_collectionTitle_1bpz5_240";
60564
- const freeCount = "_freeCount_1bpz5_252";
60568
+ const analyzeCom = "_analyzeCom_1r6dj_32";
60569
+ const colletionList = "_colletionList_1r6dj_129";
60570
+ const colletionListHeader = "_colletionListHeader_1r6dj_132";
60571
+ const buyVip = "_buyVip_1r6dj_142";
60572
+ const countText = "_countText_1r6dj_150";
60573
+ const collectionList = "_collectionList_1r6dj_156";
60574
+ const videoList = "_videoList_1r6dj_181";
60575
+ const videoItem = "_videoItem_1r6dj_190";
60576
+ const title = "_title_1r6dj_203";
60577
+ const freeBadge = "_freeBadge_1r6dj_209";
60578
+ const icon = "_icon_1r6dj_222";
60579
+ const selected = "_selected_1r6dj_230";
60580
+ const collectionTitle = "_collectionTitle_1r6dj_240";
60581
+ const freeCount = "_freeCount_1r6dj_252";
60565
60582
  const styles = {
60566
60583
  analyzeCom,
60567
60584
  colletionList,
@@ -61061,6 +61078,30 @@ const AnalyzeUrl = (props) => {
61061
61078
  )
61062
61079
  ] });
61063
61080
  };
61081
+ const KnowledgeContinueMsg = (props) => {
61082
+ const { knowledgeInfo } = props;
61083
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
61084
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[15px] font-bold text-gray-900", children: [
61085
+ "欢迎继续学习《",
61086
+ knowledgeInfo == null ? void 0 : knowledgeInfo.title,
61087
+ "》!"
61088
+ ] }),
61089
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[13px] text-gray-600 leading-relaxed", children: "我是你的 AI 学伴饼干,有什么不明白的,随时都可以问我哦~ (。•̀ᴗ-)و✧" })
61090
+ ] }) });
61091
+ };
61092
+ const KnowledgeContinueMsg$1 = memo$1(KnowledgeContinueMsg);
61093
+ const KnowledgeStartMsg = (props) => {
61094
+ const { knowledgeInfo } = props;
61095
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-1", children: [
61096
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[15px] font-bold text-gray-900", children: [
61097
+ "欢迎学习《",
61098
+ knowledgeInfo == null ? void 0 : knowledgeInfo.title,
61099
+ "》!"
61100
+ ] }),
61101
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[13px] text-gray-600 leading-relaxed", children: "我是你的 AI 学伴饼干,有什么不明白的,随时都可以问我哦~ (。•̀ᴗ-)و✧" })
61102
+ ] }) });
61103
+ };
61104
+ const KnowledgeStartMsg$1 = memo$1(KnowledgeStartMsg);
61064
61105
  const VgenAgent = forwardRef((props, ref) => {
61065
61106
  const {
61066
61107
  containerRef,
@@ -61068,10 +61109,12 @@ const VgenAgent = forwardRef((props, ref) => {
61068
61109
  viewMode = "default",
61069
61110
  courseInfo,
61070
61111
  videoInfo,
61112
+ knowledgeInfo,
61071
61113
  initPos,
61072
61114
  initStyle,
61073
61115
  hoverTip,
61074
- isDev
61116
+ isDev,
61117
+ chatId: chatIdFromPorps
61075
61118
  } = props;
61076
61119
  const [isLogin, setIsLogin] = useState(false);
61077
61120
  const [isAiPanelOpen, setIsAiPanelOpen] = useState(false);
@@ -61079,7 +61122,7 @@ const VgenAgent = forwardRef((props, ref) => {
61079
61122
  const [messages2, setMessages] = useState([]);
61080
61123
  const [inputValue, setInputValue] = useState("");
61081
61124
  const [showPracticeGuide, setShowPracticeGuide] = useState(false);
61082
- const [chatId, setChatId] = useState(3908);
61125
+ const [chatId, setChatId] = useState(-1);
61083
61126
  const [inputPlaceholder, setInputPlaceholder] = useState("在此输入你的需求或问题...");
61084
61127
  const [sceneNow, setSceneNow] = useState("");
61085
61128
  const [generatedResources, setGeneratedResources] = useState([]);
@@ -61100,12 +61143,34 @@ const VgenAgent = forwardRef((props, ref) => {
61100
61143
  const [isMoreActionsOpen, setIsMoreActionsOpen] = useState(false);
61101
61144
  const [quotedText, setQuotedText] = useState("");
61102
61145
  const [sessionList, setSessionList] = useState([]);
61146
+ const quotedTextRef = useRef("");
61103
61147
  const isDragging2 = useRef(false);
61104
61148
  const scrollRef = useRef(null);
61105
61149
  const scrollToBottomTimer = useRef(null);
61106
61150
  const tagsTextareaRef = useRef(null);
61151
+ useEffect(() => {
61152
+ return () => {
61153
+ addQuoteTimer.current && clearTimeout(addQuoteTimer.current);
61154
+ };
61155
+ }, []);
61156
+ const addQuoteTimer = useRef(null);
61157
+ const setQuotedTextAndInput = (text2) => {
61158
+ if (!text2) {
61159
+ setQuotedText("");
61160
+ quotedTextRef.current = "";
61161
+ return;
61162
+ }
61163
+ quotedTextRef.current = text2;
61164
+ setQuotedText(text2);
61165
+ setIsAiPanelOpen(true);
61166
+ addQuoteTimer.current = setTimeout(() => {
61167
+ var _a2, _b;
61168
+ (_a2 = tagsTextareaRef.current) == null ? void 0 : _a2.focusInput();
61169
+ (_b = tagsTextareaRef.current) == null ? void 0 : _b.addQuotedText(`<<<${text2}>>>`);
61170
+ }, 100);
61171
+ };
61107
61172
  useImperativeHandle(ref, () => ({
61108
- setQuotedText: (val) => setQuotedText(val)
61173
+ setQuotedText: (val) => setQuotedTextAndInput(val)
61109
61174
  }));
61110
61175
  useEffect(() => {
61111
61176
  if (typeof window !== "undefined") {
@@ -61125,12 +61190,15 @@ const VgenAgent = forwardRef((props, ref) => {
61125
61190
  toGetAgentFormFields();
61126
61191
  }
61127
61192
  }, [isLogin]);
61193
+ useEffect(() => {
61194
+ setChatId(chatIdFromPorps || -1);
61195
+ }, [chatIdFromPorps]);
61128
61196
  useEffect(() => {
61129
61197
  if (!isLogin) {
61130
61198
  return;
61131
61199
  }
61132
61200
  initGet();
61133
- }, [isLogin, viewMode]);
61201
+ }, [isLogin, viewMode, videoInfo, courseInfo]);
61134
61202
  const toGetAgentFormFields = async () => {
61135
61203
  const res = await getAgentFormFields();
61136
61204
  setAgentFormFields(res.data);
@@ -61140,6 +61208,11 @@ const VgenAgent = forwardRef((props, ref) => {
61140
61208
  case "video":
61141
61209
  videoInitGet();
61142
61210
  break;
61211
+ case "course":
61212
+ break;
61213
+ case "knowledgeCard":
61214
+ knowledgeCardInitGet();
61215
+ break;
61143
61216
  }
61144
61217
  };
61145
61218
  const videoInitGet = () => {
@@ -61162,7 +61235,7 @@ const VgenAgent = forwardRef((props, ref) => {
61162
61235
  if (!res.dataList.length) {
61163
61236
  createSession({
61164
61237
  btype: 2,
61165
- dataBtype: 10,
61238
+ dataType: 10,
61166
61239
  dataId: videoInfo.recordId
61167
61240
  }).then((res2) => {
61168
61241
  setChatId(res2);
@@ -61176,6 +61249,46 @@ const VgenAgent = forwardRef((props, ref) => {
61176
61249
  }
61177
61250
  });
61178
61251
  };
61252
+ const knowledgeCardInitGet = () => {
61253
+ if (!knowledgeInfo) {
61254
+ message.error("知识卡片信息未传入!");
61255
+ return;
61256
+ }
61257
+ if (chatIdFromPorps) {
61258
+ setChatId(chatIdFromPorps);
61259
+ setSessionList([]);
61260
+ toGetHistoryList(chatIdFromPorps);
61261
+ return;
61262
+ }
61263
+ getSessionListByBiz({
61264
+ currentPage: 1,
61265
+ pageSize: 20,
61266
+ dataBtype: 1,
61267
+ dataId: knowledgeInfo.knowledgeId,
61268
+ orders: [
61269
+ {
61270
+ key: "create_time",
61271
+ asc: false
61272
+ }
61273
+ ]
61274
+ }).then((res) => {
61275
+ if (!res.dataList.length) {
61276
+ createSession({
61277
+ btype: 2,
61278
+ dataType: 1,
61279
+ dataId: knowledgeInfo.knowledgeId
61280
+ }).then((res2) => {
61281
+ setChatId(res2);
61282
+ sceneMsgSend(res2);
61283
+ toGetHistoryList(res2);
61284
+ });
61285
+ } else {
61286
+ setChatId(res.dataList[0].id);
61287
+ setSessionList(res.dataList);
61288
+ toGetHistoryList(res.dataList[0].id);
61289
+ }
61290
+ });
61291
+ };
61179
61292
  const toSetViewModeTem = () => {
61180
61293
  switch (viewMode) {
61181
61294
  case "video":
@@ -61184,6 +61297,9 @@ const VgenAgent = forwardRef((props, ref) => {
61184
61297
  case "course":
61185
61298
  toSetCourseTem();
61186
61299
  break;
61300
+ case "knowledgeCard":
61301
+ toSetKnowledgeCardTem();
61302
+ break;
61187
61303
  default:
61188
61304
  toSetDefaultTem();
61189
61305
  break;
@@ -61234,6 +61350,51 @@ const VgenAgent = forwardRef((props, ref) => {
61234
61350
  ]);
61235
61351
  }
61236
61352
  };
61353
+ const toSetKnowledgeCardTem = () => {
61354
+ let hasHistory = messages2.length > 0;
61355
+ if (!knowledgeInfo) {
61356
+ setMessages([
61357
+ {
61358
+ role: "ai",
61359
+ messageType: msgType$1.NODE,
61360
+ id: randomNumber(),
61361
+ content: /* @__PURE__ */ jsxRuntimeExports.jsx(DefalutWelcomeMsg, { videoMode: viewMode })
61362
+ }
61363
+ ]);
61364
+ return;
61365
+ }
61366
+ if (hasHistory) {
61367
+ setMessages([
61368
+ {
61369
+ role: "ai",
61370
+ messageType: msgType$1.NODE,
61371
+ id: randomNumber(),
61372
+ content: /* @__PURE__ */ jsxRuntimeExports.jsx(
61373
+ KnowledgeContinueMsg$1,
61374
+ {
61375
+ knowledgeInfo,
61376
+ handleSendMessage: handleSend
61377
+ }
61378
+ )
61379
+ }
61380
+ ]);
61381
+ } else {
61382
+ setMessages([
61383
+ {
61384
+ role: "ai",
61385
+ messageType: msgType$1.NODE,
61386
+ id: randomNumber(),
61387
+ content: /* @__PURE__ */ jsxRuntimeExports.jsx(
61388
+ KnowledgeStartMsg$1,
61389
+ {
61390
+ knowledgeInfo,
61391
+ handleSendMessage: handleSend
61392
+ }
61393
+ )
61394
+ }
61395
+ ]);
61396
+ }
61397
+ };
61237
61398
  const toSetCourseTem = () => {
61238
61399
  if (!courseInfo) {
61239
61400
  setMessages([
@@ -61422,16 +61583,23 @@ const VgenAgent = forwardRef((props, ref) => {
61422
61583
  setRecommendSceneData(null);
61423
61584
  let systemContext = "";
61424
61585
  systemContext += `<scene>${scene || sceneNow}</scene>`;
61586
+ const hasQuotedText = quotedTextRef.current && input.startsWith("[");
61587
+ const extraInfo = hasQuotedText ? JSON.stringify({
61588
+ quotedText: quotedTextRef.current
61589
+ }) : void 0;
61425
61590
  saveMsg({
61426
61591
  role: "user",
61427
61592
  content: input,
61428
61593
  toPost: false,
61429
61594
  currnetMsgId: randomNumber(1e4, 1e5),
61430
- messageType: msgType$1.TEXT
61595
+ messageType: msgType$1.TEXT,
61596
+ extraInfo
61431
61597
  });
61432
61598
  scrollToBottom();
61433
61599
  setInputValue("");
61434
61600
  setSceneNow("");
61601
+ setQuotedText("");
61602
+ quotedTextRef.current = "";
61435
61603
  const currnetMsgId = randomNumber(1e4, 1e5);
61436
61604
  const extraObj = {
61437
61605
  enableSearch: enableGlobalSearch,
@@ -61713,7 +61881,7 @@ const VgenAgent = forwardRef((props, ref) => {
61713
61881
  const renderGeneratedResources = () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-1 max-h-72 overflow-y-auto p-1 custom-scrollbar", children: generatedResources.length > 0 ? generatedResources.map((res) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
61714
61882
  "div",
61715
61883
  {
61716
- className: "flex items-center gap-3 p-2.5 rounded-xl cursor-pointer hover:bg-blue-50 group transition-colors",
61884
+ className: "flex items-center gap-3 p-2.5 rounded-xl cursor-pointer hover:bg-primary-50 group transition-colors",
61717
61885
  onClick: () => {
61718
61886
  switch (res.type) {
61719
61887
  case msgType$1.REL_KNOWLEDGE_CARD:
@@ -61735,13 +61903,13 @@ const VgenAgent = forwardRef((props, ref) => {
61735
61903
  {
61736
61904
  className: cn(
61737
61905
  "w-8 h-8 rounded-lg flex items-center justify-center shrink-0",
61738
- res.type === msgType$1.REL_LEARN_PATH ? "bg-blue-50 text-blue-600" : res.type === msgType$1.REL_RECORD ? "bg-purple-50 text-purple-600" : res.type === msgType$1.REL_QUESTION ? "bg-emerald-50 text-emerald-600" : "bg-gray-50 text-gray-600"
61906
+ res.type === msgType$1.REL_LEARN_PATH ? "bg-primary-50 text-primary-600" : res.type === msgType$1.REL_RECORD ? "bg-purple-50 text-purple-600" : res.type === msgType$1.REL_QUESTION ? "bg-emerald-50 text-emerald-600" : "bg-gray-50 text-gray-600"
61739
61907
  ),
61740
61908
  children: res.type === msgType$1.REL_LEARN_PATH ? /* @__PURE__ */ jsxRuntimeExports.jsx(GraduationCap, { className: "w-4 h-4" }) : res.type === msgType$1.REL_RECORD ? /* @__PURE__ */ jsxRuntimeExports.jsx(Video, { className: "w-4 h-4" }) : res.type === msgType$1.REL_QUESTION ? /* @__PURE__ */ jsxRuntimeExports.jsx(BookOpen, { className: "w-4 h-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { className: "w-4 h-4" })
61741
61909
  }
61742
61910
  ),
61743
61911
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
61744
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[12px] font-bold text-gray-900 truncate group-hover:text-blue-600", children: res.type === msgType$1.REL_LEARN_PATH ? res.extraInfo.name : res.type === msgType$1.REL_RECORD ? res.extraInfo.title : res.type === msgType$1.REL_QUESTION ? `题目批次ID:${res.extraInfo.batchId}` : res.extraInfo.title }),
61912
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[12px] font-bold text-gray-900 truncate group-hover:text-primary-600", children: res.type === msgType$1.REL_LEARN_PATH ? res.extraInfo.name : res.type === msgType$1.REL_RECORD ? res.extraInfo.title : res.type === msgType$1.REL_QUESTION ? `题目批次ID:${res.extraInfo.batchId}` : res.extraInfo.title }),
61745
61913
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[10px] text-gray-400 font-medium", children: res.type === msgType$1.REL_LEARN_PATH ? "学习路径" : res.type === msgType$1.REL_RECORD ? "视频解析" : res.type === msgType$1.REL_QUESTION ? "练习题" : "知识讲解" })
61746
61914
  ] })
61747
61915
  ]
@@ -61847,8 +62015,8 @@ const VgenAgent = forwardRef((props, ref) => {
61847
62015
  "div",
61848
62016
  {
61849
62017
  className: cn(
61850
- "bg-white p-3 rounded-xl border border-gray-100 shadow-sm hover:border-blue-200 transition-colors cursor-pointer group relative",
61851
- item.id === chatId && "border-blue-300"
62018
+ "bg-white p-3 rounded-xl border border-gray-100 shadow-sm hover:border-primary-200 transition-colors cursor-pointer group relative",
62019
+ item.id === chatId && "border-primary-300"
61852
62020
  ),
61853
62021
  onClick: () => {
61854
62022
  toGetHistoryList(item.id);
@@ -61900,6 +62068,18 @@ const VgenAgent = forwardRef((props, ref) => {
61900
62068
  messageType: msgType$1.INVISIBLE_TEXT
61901
62069
  });
61902
62070
  break;
62071
+ case "course":
62072
+ break;
62073
+ case "knowledgeCard":
62074
+ saveMsg({
62075
+ role: "user",
62076
+ content: (knowledgeInfo == null ? void 0 : knowledgeInfo.content) || "",
62077
+ onlyPost: true,
62078
+ toPost: true,
62079
+ chatId: chatIdHere,
62080
+ messageType: msgType$1.INVISIBLE_TEXT
62081
+ });
62082
+ break;
61903
62083
  }
61904
62084
  };
61905
62085
  const addNewSession = () => {
@@ -61907,7 +62087,7 @@ const VgenAgent = forwardRef((props, ref) => {
61907
62087
  case "video":
61908
62088
  createSession({
61909
62089
  btype: 2,
61910
- dataBtype: 10,
62090
+ dataType: 10,
61911
62091
  dataId: videoInfo == null ? void 0 : videoInfo.recordId
61912
62092
  }).then((res) => {
61913
62093
  setChatId(res);
@@ -62026,17 +62206,17 @@ const VgenAgent = forwardRef((props, ref) => {
62026
62206
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[13px] font-bold text-gray-800", children: "饼干 AI 学伴" })
62027
62207
  ] }),
62028
62208
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1 z-10", children: [
62029
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: "开启新对话", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
62209
+ viewMode !== "knowledgeCard" && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: "开启新对话", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
62030
62210
  "button",
62031
62211
  {
62032
62212
  onClick: () => {
62033
62213
  addNewSession();
62034
62214
  },
62035
- className: "p-1.5 hover:bg-gray-100 rounded-lg text-gray-400 hover:text-blue-600 transition-colors",
62215
+ className: "p-1.5 hover:bg-gray-100 rounded-lg text-gray-400 hover:text-primary-600 transition-colors",
62036
62216
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "w-4 h-4" })
62037
62217
  }
62038
62218
  ) }),
62039
- /* @__PURE__ */ jsxRuntimeExports.jsx(
62219
+ viewMode !== "knowledgeCard" && /* @__PURE__ */ jsxRuntimeExports.jsx(
62040
62220
  Popover,
62041
62221
  {
62042
62222
  placement: "bottomRight",
@@ -62045,7 +62225,7 @@ const VgenAgent = forwardRef((props, ref) => {
62045
62225
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
62046
62226
  "button",
62047
62227
  {
62048
- className: "p-1.5 hover:bg-gray-100 rounded-lg text-gray-400 hover:text-blue-600 transition-colors",
62228
+ className: "p-1.5 hover:bg-gray-100 rounded-lg text-gray-400 hover:text-primary-600 transition-colors",
62049
62229
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(History, { className: "w-4 h-4" })
62050
62230
  }
62051
62231
  )
@@ -62063,13 +62243,13 @@ const VgenAgent = forwardRef((props, ref) => {
62063
62243
  ]
62064
62244
  }
62065
62245
  ),
62066
- viewMode === "video" && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-blue-50 px-4 py-3 border-b border-blue-100 animate-in slide-in-from-top-2 duration-300", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [
62067
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: videoInfo == null ? void 0 : videoInfo.name, className: "text-[11px] font-medium text-blue-900 truncate pr-4 flex-1 text-ellipsis", children: videoInfo == null ? void 0 : videoInfo.name }),
62246
+ viewMode === "video" && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-primary-50 px-4 py-3 border-b border-primary-100 animate-in slide-in-from-top-2 duration-300", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [
62247
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: videoInfo == null ? void 0 : videoInfo.name, className: "text-[11px] font-medium text-primary-900 truncate pr-4 flex-1 text-ellipsis", children: videoInfo == null ? void 0 : videoInfo.name }),
62068
62248
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-2", children: ["视频总结", "章节大纲"].map(
62069
62249
  (item) => /* @__PURE__ */ jsxRuntimeExports.jsx(
62070
62250
  "button",
62071
62251
  {
62072
- className: "px-2 py-1 bg-white border border-blue-100 rounded text-[10px] text-blue-700 shadow-sm hover:bg-blue-50 transition-colors",
62252
+ className: "px-2 py-1 bg-white border border-primary-100 rounded text-[10px] text-primary-700 shadow-sm hover:bg-primary-50 transition-colors",
62073
62253
  children: item
62074
62254
  },
62075
62255
  item
@@ -62138,7 +62318,7 @@ const VgenAgent = forwardRef((props, ref) => {
62138
62318
  ] }),
62139
62319
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-px bg-gray-100" }),
62140
62320
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-3", children: [
62141
- /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[12px] font-bold text-blue-900 flex items-center gap-1.5 justify-center", children: [
62321
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[12px] font-bold text-primary-900 flex items-center gap-1.5 justify-center", children: [
62142
62322
  /* @__PURE__ */ jsxRuntimeExports.jsx(Star, { className: "w-4 h-4 text-yellow-500 fill-yellow-500" }),
62143
62323
  " ",
62144
62324
  "🌟 Vgen 深度学习"
@@ -62164,7 +62344,7 @@ const VgenAgent = forwardRef((props, ref) => {
62164
62344
  Button,
62165
62345
  {
62166
62346
  type: "primary",
62167
- className: "w-full bg-blue-600 text-white h-10 font-bold border-none",
62347
+ className: "w-full bg-primary-600 text-white h-10 font-bold border-none",
62168
62348
  onClick: () => {
62169
62349
  setShowPracticeGuide(false);
62170
62350
  window.open(
@@ -62196,10 +62376,10 @@ const VgenAgent = forwardRef((props, ref) => {
62196
62376
  "button",
62197
62377
  {
62198
62378
  onClick: () => handleSend({ input: item.label }),
62199
- className: "flex items-center gap-1.5 px-3 py-1.5 bg-white border border-gray-100 rounded-full shadow-sm hover:border-blue-200 hover:bg-blue-50 transition-all group active:scale-95",
62379
+ className: "flex items-center gap-1.5 px-3 py-1.5 bg-white border border-gray-100 rounded-full shadow-sm hover:border-primary-200 hover:bg-primary-50 transition-all group active:scale-95",
62200
62380
  children: [
62201
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: cn("text-blue-500", "w-3.5 h-3.5"), children: item.icon }),
62202
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[11px] font-medium text-gray-600 group-hover:text-blue-600 whitespace-nowrap", children: item.label })
62381
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: cn("text-primary-500", "w-3.5 h-3.5"), children: item.icon }),
62382
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[11px] font-medium text-gray-600 group-hover:text-primary-600 whitespace-nowrap", children: item.label })
62203
62383
  ]
62204
62384
  },
62205
62385
  item.id
@@ -62211,10 +62391,10 @@ const VgenAgent = forwardRef((props, ref) => {
62211
62391
  onClick: () => setIsMoreActionsOpen(!isMoreActionsOpen),
62212
62392
  className: cn(
62213
62393
  "flex items-center gap-1.5 px-3 py-1.5 border rounded-full shadow-sm transition-all active:scale-95",
62214
- isMoreActionsOpen ? "bg-blue-600 border-blue-600 text-white" : "bg-blue-50 border-blue-100 text-blue-700 hover:bg-blue-100"
62394
+ isMoreActionsOpen ? "bg-primary-600 border-primary-600 text-white" : "bg-primary-50 border-primary-100 text-primary-700 hover:bg-primary-100"
62215
62395
  ),
62216
62396
  children: [
62217
- /* @__PURE__ */ jsxRuntimeExports.jsx(Sparkles, { className: cn("w-3.5 h-3.5", isMoreActionsOpen ? "text-white" : "text-blue-600") }),
62397
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Sparkles, { className: cn("w-3.5 h-3.5", isMoreActionsOpen ? "text-white" : "text-primary-600") }),
62218
62398
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[11px] font-bold whitespace-nowrap", children: "更多" })
62219
62399
  ]
62220
62400
  }
@@ -62243,7 +62423,7 @@ const VgenAgent = forwardRef((props, ref) => {
62243
62423
  label: "生成学习路径",
62244
62424
  desc: "帮我生成学习路径",
62245
62425
  icon: /* @__PURE__ */ jsxRuntimeExports.jsx(GitBranch, { className: "w-3.5 h-3.5" }),
62246
- color: "text-blue-500"
62426
+ color: "text-primary-500"
62247
62427
  },
62248
62428
  {
62249
62429
  label: "AI智能出题",
@@ -62276,78 +62456,59 @@ const VgenAgent = forwardRef((props, ref) => {
62276
62456
  ] })
62277
62457
  ] })
62278
62458
  ] }) }),
62279
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex-1 flex flex-col gap-2", children: [
62280
- quotedText && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between bg-blue-50 border border-blue-100 rounded-lg px-3 py-1.5 animate-in slide-in-from-bottom-2 duration-200", children: [
62281
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 truncate", children: [
62282
- /* @__PURE__ */ jsxRuntimeExports.jsx(Quote, { className: "w-3 h-3 text-blue-400 shrink-0" }),
62283
- /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[11px] text-blue-700 truncate font-medium", children: [
62284
- "引用自文档:",
62285
- quotedText
62286
- ] })
62287
- ] }),
62288
- /* @__PURE__ */ jsxRuntimeExports.jsx(
62289
- "button",
62290
- {
62291
- onClick: () => setQuotedText(""),
62292
- className: "p-1 hover:bg-blue-100 rounded-full text-blue-400 transition-colors",
62293
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { className: "w-3 h-3" })
62294
- }
62295
- )
62296
- ] }),
62297
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex items-center gap-2", children: [
62298
- /* @__PURE__ */ jsxRuntimeExports.jsx(
62299
- "div",
62300
- {
62301
- className: "w-full px-4 pb-1 pt-1.5 bg-white rounded-[12px] cursor-text border border-gray-100 focus-within:border-blue-200 transition-all overflow-hidden",
62302
- style: {
62303
- paddingTop: "6px"
62304
- },
62305
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
62306
- TagsTextarea,
62307
- {
62308
- minHeight: 30,
62309
- maxHeight: 120,
62310
- onChange: tagsTextareaValueChange,
62311
- placeholder: inputPlaceholder,
62312
- sendMsg: () => {
62313
- handleSend({ input: inputValue });
62314
- },
62315
- ref: tagsTextareaRef
62316
- }
62317
- )
62318
- }
62319
- ),
62320
- answerIsDone ? /* @__PURE__ */ jsxRuntimeExports.jsx(
62321
- Button,
62322
- {
62323
- type: "primary",
62324
- onClick: () => {
62325
- var _a2;
62326
- handleSend({ input: inputValue });
62327
- (_a2 = tagsTextareaRef.current) == null ? void 0 : _a2.clearContent();
62328
- },
62329
- disabled: !inputValue.trim(),
62330
- className: cn(
62331
- "rounded-xl h-10 px-3 shadow-lg transition-all flex items-center justify-center",
62332
- inputValue.trim() ? "bg-blue-600 text-white shadow-blue-200" : "bg-gray-200 text-white"
62333
- ),
62334
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Send, { className: "w-4 h-4" })
62335
- }
62336
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: "停止回答", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
62337
- Button,
62338
- {
62339
- type: "primary",
62340
- onClick: () => {
62341
- sendMsgController.current.close();
62342
- setAnswerIsDone(true);
62343
- setInputValue("");
62344
- },
62345
- className: "rounded-xl h-10 px-3 shadow-lg transition-all flex items-center justify-center bg-blue-500 text-white",
62346
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleStop, { className: "w-5 h-5" })
62347
- }
62348
- ) })
62349
- ] })
62350
- ] })
62459
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative flex-1 flex flex-col gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex items-center gap-2", children: [
62460
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
62461
+ "div",
62462
+ {
62463
+ className: "w-full px-4 pb-1 pt-1.5 bg-white rounded-[12px] cursor-text border border-gray-100 focus-within:border-primary-200 transition-all overflow-hidden",
62464
+ style: {
62465
+ paddingTop: "6px"
62466
+ },
62467
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
62468
+ TagsTextarea,
62469
+ {
62470
+ minHeight: 30,
62471
+ maxHeight: 120,
62472
+ onChange: tagsTextareaValueChange,
62473
+ placeholder: inputPlaceholder,
62474
+ sendMsg: () => {
62475
+ handleSend({ input: inputValue });
62476
+ },
62477
+ ref: tagsTextareaRef
62478
+ }
62479
+ )
62480
+ }
62481
+ ),
62482
+ answerIsDone ? /* @__PURE__ */ jsxRuntimeExports.jsx(
62483
+ Button,
62484
+ {
62485
+ type: "primary",
62486
+ onClick: () => {
62487
+ var _a2;
62488
+ handleSend({ input: inputValue });
62489
+ (_a2 = tagsTextareaRef.current) == null ? void 0 : _a2.clearContent();
62490
+ },
62491
+ disabled: !inputValue.trim(),
62492
+ className: cn(
62493
+ "rounded-xl h-10 px-3 shadow-lg transition-all flex items-center justify-center",
62494
+ inputValue.trim() ? "bg-primary-600 text-white shadow-primary-200" : "bg-gray-200 text-white"
62495
+ ),
62496
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Send, { className: "w-4 h-4" })
62497
+ }
62498
+ ) : /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: "停止回答", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
62499
+ Button,
62500
+ {
62501
+ type: "primary",
62502
+ onClick: () => {
62503
+ sendMsgController.current.close();
62504
+ setAnswerIsDone(true);
62505
+ setInputValue("");
62506
+ },
62507
+ className: "rounded-xl h-10 px-3 shadow-lg transition-all flex items-center justify-center bg-primary-500 text-white hover:!bg-primary-600",
62508
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleStop, { className: "w-5 h-5" })
62509
+ }
62510
+ ) })
62511
+ ] }) })
62351
62512
  ] })
62352
62513
  ]
62353
62514
  }