@becrafter/prompt-manager 0.1.1 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +304 -121
  2. package/app/cli/commands/start.js +28 -4
  3. package/app/cli/support/argv.js +6 -0
  4. package/env.example +32 -0
  5. package/package.json +36 -6
  6. package/packages/server/api/admin.routes.js +409 -1
  7. package/packages/server/api/open.routes.js +7 -2
  8. package/packages/server/api/tool.routes.js +479 -0
  9. package/packages/server/app.js +97 -25
  10. package/packages/server/configs/models/built-in/bigmodel.yaml +6 -0
  11. package/packages/server/configs/models/providers.yaml +50 -0
  12. package/packages/server/configs/templates/built-in/general-iteration.yaml +60 -0
  13. package/packages/server/configs/templates/built-in/general-optimize.yaml +63 -0
  14. package/packages/server/configs/templates/built-in/output-format-optimize.yaml +95 -0
  15. package/packages/server/mcp/heartbeat-patch.js +73 -0
  16. package/packages/server/mcp/mcp.server.js +63 -314
  17. package/packages/server/mcp/prompt.handler.js +26 -0
  18. package/packages/server/mcp/thinking-toolkit.handler.js +380 -0
  19. package/packages/server/package.json +35 -3
  20. package/packages/server/server.js +114 -12
  21. package/packages/server/services/TerminalService.js +498 -0
  22. package/packages/server/services/WebSocketService.js +484 -0
  23. package/packages/server/services/manager.js +38 -7
  24. package/packages/server/services/model.service.js +473 -0
  25. package/packages/server/services/optimization.service.js +457 -0
  26. package/packages/server/services/template.service.js +333 -0
  27. package/packages/server/toolm/tool-description-generator-optimized.service.js +5 -2
  28. package/packages/server/toolm/tool-sync.service.js +47 -3
  29. package/packages/server/utils/config.js +8 -1
  30. package/packages/server/utils/port-checker.js +63 -0
  31. package/packages/server/utils/util.js +27 -0
  32. package/IFLOW.md +0 -175
  33. package/app/desktop/assets/app.1.png +0 -0
  34. package/app/desktop/assets/app.png +0 -0
  35. package/app/desktop/assets/icons/icon.icns +0 -0
  36. package/app/desktop/assets/icons/icon.ico +0 -0
  37. package/app/desktop/assets/icons/icon.png +0 -0
  38. package/app/desktop/assets/icons/tray.png +0 -0
  39. package/app/desktop/assets/templates/about.html +0 -147
  40. package/app/desktop/assets/tray.1.png +0 -0
  41. package/app/desktop/assets/tray.png +0 -0
  42. package/app/desktop/main.js +0 -241
  43. package/app/desktop/package-lock.json +0 -4997
  44. package/app/desktop/package.json +0 -100
  45. package/app/desktop/preload.js +0 -7
  46. package/app/desktop/src/core/error-handler.js +0 -108
  47. package/app/desktop/src/core/event-emitter.js +0 -84
  48. package/app/desktop/src/core/logger.js +0 -108
  49. package/app/desktop/src/core/state-manager.js +0 -125
  50. package/app/desktop/src/services/module-loader.js +0 -214
  51. package/app/desktop/src/services/runtime-manager.js +0 -301
  52. package/app/desktop/src/services/service-manager.js +0 -169
  53. package/app/desktop/src/services/update-manager.js +0 -268
  54. package/app/desktop/src/ui/about-dialog-manager.js +0 -208
  55. package/app/desktop/src/ui/admin-window-manager.js +0 -757
  56. package/app/desktop/src/ui/splash-manager.js +0 -253
  57. package/app/desktop/src/ui/tray-manager.js +0 -186
  58. package/app/desktop/src/utils/icon-manager.js +0 -133
  59. package/app/desktop/src/utils/path-utils.js +0 -58
  60. package/app/desktop/src/utils/resource-paths.js +0 -49
  61. package/app/desktop/src/utils/resource-sync.js +0 -260
  62. package/app/desktop/src/utils/runtime-sync.js +0 -241
  63. package/app/desktop/src/utils/template-renderer.js +0 -284
  64. package/app/desktop/src/utils/version-utils.js +0 -59
  65. package/examples/prompts/developer/code-review.yaml +0 -32
  66. package/examples/prompts/developer/code_refactoring.yaml +0 -31
  67. package/examples/prompts/developer/doc-generator.yaml +0 -36
  68. package/examples/prompts/developer/error-code-fixer.yaml +0 -35
  69. package/examples/prompts/engineer/engineer-professional.yaml +0 -92
  70. package/examples/prompts/engineer/laowang-engineer.yaml +0 -132
  71. package/examples/prompts/engineer/nekomata-engineer.yaml +0 -123
  72. package/examples/prompts/engineer/ojousama-engineer.yaml +0 -124
  73. package/examples/prompts/generator/gen_3d_edu_webpage_html.yaml +0 -117
  74. package/examples/prompts/generator/gen_3d_webpage_html.yaml +0 -75
  75. package/examples/prompts/generator/gen_bento_grid_html.yaml +0 -112
  76. package/examples/prompts/generator/gen_html_web_page.yaml +0 -88
  77. package/examples/prompts/generator/gen_knowledge_card_html.yaml +0 -83
  78. package/examples/prompts/generator/gen_magazine_card_html.yaml +0 -82
  79. package/examples/prompts/generator/gen_mimeng_headline_title.yaml +0 -71
  80. package/examples/prompts/generator/gen_podcast_script.yaml +0 -69
  81. package/examples/prompts/generator/gen_prd_prototype_html.yaml +0 -175
  82. package/examples/prompts/generator/gen_summarize.yaml +0 -157
  83. package/examples/prompts/generator/gen_title.yaml +0 -119
  84. package/examples/prompts/generator/others/api_documentation.yaml +0 -32
  85. package/examples/prompts/generator/others/build_mcp_server.yaml +0 -26
  86. package/examples/prompts/generator/others/project_architecture.yaml +0 -31
  87. package/examples/prompts/generator/others/test_case_generator.yaml +0 -30
  88. package/examples/prompts/generator/others/writing_assistant.yaml +0 -72
  89. package/examples/prompts/recommend/human_3-0_growth_diagnostic_coach_prompt.yaml +0 -105
  90. package/examples/prompts/workflow/sixstep-workflow.yaml +0 -192
  91. package/packages/admin-ui/.babelrc +0 -3
  92. package/packages/admin-ui/admin.html +0 -412
  93. package/packages/admin-ui/css/codemirror-theme_xq-light.css +0 -43
  94. package/packages/admin-ui/css/codemirror.css +0 -344
  95. package/packages/admin-ui/css/main.css +0 -2592
  96. package/packages/admin-ui/css/recommended-prompts.css +0 -610
  97. package/packages/admin-ui/package-lock.json +0 -6981
  98. package/packages/admin-ui/package.json +0 -36
  99. package/packages/admin-ui/src/codemirror.js +0 -53
  100. package/packages/admin-ui/src/index.js +0 -3188
  101. package/packages/admin-ui/webpack.config.js +0 -76
  102. package/packages/server/toolm/test-tools.js +0 -264
  103. package/scripts/build-icons.js +0 -135
  104. package/scripts/build.sh +0 -57
  105. package/scripts/postinstall.js +0 -34
  106. package/scripts/surge/CNAME +0 -1
  107. package/scripts/surge/README.md +0 -47
  108. package/scripts/surge/package-lock.json +0 -34
  109. package/scripts/surge/package.json +0 -20
  110. package/scripts/surge/sync-to-surge.js +0 -151
@@ -1,610 +0,0 @@
1
- /* 空白区域与推荐词布局 */
2
- .custom-blank-content {
3
- display: flex;
4
- flex-direction: column;
5
- align-items: center;
6
- justify-content: center;
7
- height: 100%;
8
- padding: 64px 32px 32px;
9
- color: #9ca3af;
10
- font-size: 16px;
11
- overflow-y: auto;
12
- gap: 36px;
13
- }
14
-
15
- .custom-blank-content.no-recommendation {
16
- padding-bottom: 64px;
17
- }
18
-
19
- .blank-placeholder {
20
- flex: 1;
21
- width: 100%;
22
- display: flex;
23
- align-items: center;
24
- justify-content: center;
25
- text-align: center;
26
- }
27
-
28
- .blank-placeholder-body {
29
- max-width: 520px;
30
- width: 100%;
31
- padding: 32px 40px;
32
- border-radius: 28px;
33
- background: rgba(255, 255, 255, 0.95);
34
- box-shadow: 0 20px 60px -40px rgba(15, 23, 42, 0.6);
35
- border: 1px solid rgba(226, 232, 240, 0.9);
36
- }
37
-
38
- .blank-placeholder-emoji {
39
- font-size: 60px;
40
- margin-bottom: 20px;
41
- }
42
-
43
- .blank-placeholder-text {
44
- font-size: 17px;
45
- color: #4b5563;
46
- line-height: 1.4;
47
- margin: 0;
48
- white-space: nowrap;
49
- overflow: hidden;
50
- text-overflow: ellipsis;
51
- display: block;
52
- }
53
-
54
- .custom-blank-content.no-recommendation .blank-placeholder {
55
- margin-bottom: 0;
56
- }
57
-
58
- /* 推荐词卡片列表样式 */
59
- .recommended-prompts-section {
60
- width: min(1280px, calc(100% - 48px));
61
- min-width: 560px; /* 2个卡片的最小宽度(240px) + 1个间隙(12px) + 2个padding(20px) */
62
- margin-top: auto;
63
- margin-left: auto;
64
- margin-right: auto;
65
- padding: 22px 28px 16px;
66
- border-radius: 22px;
67
- background: rgba(255, 255, 255, 0.96);
68
- border: 1px solid rgba(226, 232, 240, 0.9);
69
- box-shadow: 0 25px 55px -32px rgba(15, 23, 42, 0.35);
70
- flex-shrink: 0;
71
- }
72
-
73
- .recommended-prompts-section.hidden {
74
- display: none;
75
- }
76
-
77
- .recommended-prompts-header {
78
- display: flex;
79
- justify-content: space-between;
80
- align-items: center;
81
- margin-bottom: 20px;
82
- }
83
-
84
- .recommended-prompts-header h3 {
85
- font-size: 18px;
86
- font-weight: 600;
87
- color: #1f2937;
88
- margin: 0;
89
- letter-spacing: 0.02em;
90
- }
91
-
92
- .recommended-prompts-nav {
93
- display: flex;
94
- gap: 10px;
95
- }
96
-
97
- .nav-arrow {
98
- width: 36px;
99
- height: 36px;
100
- border-radius: 50%;
101
- border: 1px solid #e0e0e0;
102
- background: white;
103
- display: flex;
104
- align-items: center;
105
- justify-content: center;
106
- cursor: pointer;
107
- transition: all 0.2s ease;
108
- }
109
-
110
- .nav-arrow:hover:not(.disabled) {
111
- background: #f5f5f5;
112
- border-color: #ccc;
113
- }
114
-
115
- .nav-arrow.disabled {
116
- opacity: 0.4;
117
- cursor: not-allowed;
118
- }
119
-
120
- .recommended-prompts-container {
121
- position: relative;
122
- overflow: hidden;
123
- }
124
-
125
- .recommended-prompts-list {
126
- display: flex;
127
- gap: 12px;
128
- padding: 6px 0;
129
- overflow-x: auto;
130
- scroll-behavior: smooth;
131
- /* 滚动条默认透明,保持空间 */
132
- scrollbar-width: thin;
133
- scrollbar-color: transparent transparent;
134
- }
135
-
136
- .recommended-prompts-list::-webkit-scrollbar {
137
- height: 6px;
138
- }
139
-
140
- .recommended-prompts-list::-webkit-scrollbar-track {
141
- background: transparent;
142
- }
143
-
144
- .recommended-prompts-list::-webkit-scrollbar-thumb {
145
- background-color: transparent;
146
- border-radius: 3px;
147
- transition: background-color 0.2s ease;
148
- }
149
-
150
- /* 滚动或悬停时显示滚动条 */
151
- .recommended-prompts-list:active::-webkit-scrollbar-thumb,
152
- .recommended-prompts-list:hover::-webkit-scrollbar-thumb {
153
- background-color: #c5c5c5;
154
- }
155
-
156
- .recommended-prompts-list:active::-webkit-scrollbar-thumb:hover,
157
- .recommended-prompts-list:hover::-webkit-scrollbar-thumb:hover {
158
- background-color: #a0a0a0;
159
- }
160
-
161
- .recommended-prompts-list:hover::-webkit-scrollbar {
162
- height: 6px;
163
- }
164
-
165
- .recommended-prompts-list:hover::-webkit-scrollbar-track {
166
- background: transparent;
167
- }
168
-
169
- .recommended-prompts-list:hover::-webkit-scrollbar-thumb {
170
- background-color: #c5c5c5;
171
- border-radius: 3px;
172
- transition: background-color 0.2s ease;
173
- }
174
-
175
- .recommended-prompts-list:hover::-webkit-scrollbar-thumb:hover {
176
- background-color: #a0a0a0;
177
- }
178
-
179
- .recommended-prompt-card {
180
- min-width: 240px;
181
- max-width: 320px;
182
- min-height: 140px;
183
- border-radius: 18px;
184
- border: 1px solid rgba(226, 232, 240, 0.8);
185
- background: white;
186
- padding: 18px 20px;
187
- cursor: pointer;
188
- transition: all 0.25s ease;
189
- box-shadow: 3px 16px 18px -26px rgba(15, 23, 42, 0.5);
190
- display: flex;
191
- flex-direction: column;
192
- margin-right: 12px;
193
- }
194
-
195
- .recommended-prompt-card:last-child {
196
- margin-right: 0;
197
- }
198
-
199
- .recommended-prompt-card:hover {
200
- transform: translateY(-4px);
201
- box-shadow: 0 18px 30px -28px rgba(15, 23, 42, 0.45);
202
- border-color: rgba(148, 163, 184, 0.5);
203
- }
204
-
205
- .recommended-prompt-card .card-header {
206
- display: flex;
207
- justify-content: space-between;
208
- align-items: flex-start;
209
- margin-bottom: 10px;
210
- }
211
-
212
- .recommended-prompt-card .card-title {
213
- font-size: 15px;
214
- font-weight: 600;
215
- color: #111827;
216
- margin: 0;
217
- flex: 1;
218
- line-height: 1.3;
219
- overflow: hidden;
220
- text-overflow: ellipsis;
221
- display: -webkit-box;
222
- -webkit-line-clamp: 2;
223
- -webkit-box-orient: vertical;
224
- }
225
-
226
- .recommended-prompt-card .card-tags {
227
- display: flex;
228
- gap: 6px;
229
- flex-wrap: wrap;
230
- margin-top: 10px;
231
- }
232
-
233
- .recommended-prompt-card .card-tag {
234
- font-size: 12px;
235
- padding: 4px 10px;
236
- border-radius: 12px;
237
- background: rgba(59, 130, 246, 0.08);
238
- color: #2563eb;
239
- font-weight: 500;
240
- }
241
-
242
- .recommended-prompt-card .card-description {
243
- font-size: 13px;
244
- color: #4b5563;
245
- line-height: 1.5;
246
- overflow: hidden;
247
- text-overflow: ellipsis;
248
- display: -webkit-box;
249
- -webkit-line-clamp: 3;
250
- -webkit-box-orient: vertical;
251
- flex: 1;
252
- margin-top: 4px;
253
- max-height: calc(1.5em * 3); /* 确保最大高度为3行 */
254
- word-break: break-word; /* 确保长单词也能正确换行 */
255
- }
256
-
257
- .recommended-prompt-modal {
258
- position: fixed;
259
- inset: 0;
260
- background: rgba(0, 0, 0, 0.5);
261
- display: flex;
262
- align-items: center;
263
- justify-content: center;
264
- z-index: 2000;
265
- opacity: 0;
266
- visibility: hidden;
267
- transition: all 0.3s ease;
268
- }
269
-
270
- .recommended-prompt-modal.active {
271
- opacity: 1;
272
- visibility: visible;
273
- }
274
-
275
- .recommended-prompt-modal-content {
276
- width: 90%;
277
- max-width: 700px;
278
- max-height: 90vh;
279
- background: white;
280
- border-radius: 16px;
281
- overflow: hidden;
282
- transform: translateY(20px);
283
- transition: transform 0.3s ease;
284
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
285
- display: flex;
286
- flex-direction: column;
287
- }
288
-
289
- .recommended-prompt-modal.active .recommended-prompt-modal-content {
290
- transform: translateY(0);
291
- }
292
-
293
- .recommended-prompt-modal-body {
294
- padding: 24px;
295
- flex: 1;
296
- overflow-y: auto;
297
- display: flex;
298
- flex-direction: column;
299
- /* 滚动条默认透明,保持空间 */
300
- scrollbar-width: thin;
301
- scrollbar-color: transparent transparent;
302
- }
303
-
304
- /* Webkit浏览器滚动条样式 - 默认透明 */
305
- .recommended-prompt-modal-body::-webkit-scrollbar {
306
- width: 6px;
307
- }
308
-
309
- .recommended-prompt-modal-body::-webkit-scrollbar-track {
310
- background: transparent;
311
- }
312
-
313
- .recommended-prompt-modal-body::-webkit-scrollbar-thumb {
314
- background-color: transparent;
315
- border-radius: 3px;
316
- transition: background-color 0.2s ease;
317
- }
318
-
319
- /* 滚动或悬停时显示滚动条 */
320
- .recommended-prompt-modal-body:active::-webkit-scrollbar-thumb,
321
- .recommended-prompt-modal-body:hover::-webkit-scrollbar-thumb {
322
- background-color: #c5c5c5;
323
- }
324
-
325
- .recommended-prompt-modal-body:active::-webkit-scrollbar-thumb:hover,
326
- .recommended-prompt-modal-body:hover::-webkit-scrollbar-thumb:hover {
327
- background-color: #a0a0a0;
328
- }
329
-
330
- .recommended-prompt-modal-body .prompt-detail-description {
331
- font-size: 16px;
332
- color: #666;
333
- line-height: 1.6;
334
- margin: 0 0 24px 0;
335
- padding: 16px;
336
- background: #f8f9fa;
337
- border-radius: 8px;
338
- }
339
-
340
- .recommended-prompt-modal-body .prompt-detail-content {
341
- background: #f8f9fa;
342
- border-radius: 8px;
343
- padding: 20px;
344
- font-size: 16px;
345
- line-height: 1.7;
346
- color: #333;
347
- white-space: pre-wrap;
348
- font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
349
- border: 1px solid #e2e8f0;
350
- margin-top: 24px;
351
- flex: 1;
352
- min-height: 0;
353
- overflow-y: auto;
354
- /* 滚动条默认透明,保持空间 */
355
- scrollbar-width: thin;
356
- scrollbar-color: transparent transparent;
357
- }
358
-
359
- /* Webkit浏览器滚动条样式 - 默认透明 */
360
- .recommended-prompt-modal-body .prompt-detail-content::-webkit-scrollbar {
361
- width: 6px;
362
- }
363
-
364
- .recommended-prompt-modal-body .prompt-detail-content::-webkit-scrollbar-track {
365
- background: transparent;
366
- }
367
-
368
- .recommended-prompt-modal-body .prompt-detail-content::-webkit-scrollbar-thumb {
369
- background-color: transparent;
370
- border-radius: 3px;
371
- transition: background-color 0.2s ease;
372
- }
373
-
374
- /* 滚动或悬停时显示滚动条 */
375
- .recommended-prompt-modal-body .prompt-detail-content:active::-webkit-scrollbar-thumb,
376
- .recommended-prompt-modal-body .prompt-detail-content:hover::-webkit-scrollbar-thumb {
377
- background-color: #c5c5c5;
378
- }
379
-
380
- .recommended-prompt-modal-body .prompt-detail-content:active::-webkit-scrollbar-thumb:hover,
381
- .recommended-prompt-modal-body .prompt-detail-content:hover::-webkit-scrollbar-thumb:hover {
382
- background-color: #a0a0a0;
383
- }
384
-
385
- .recommended-prompt-modal-body .prompt-detail-content p {
386
- margin: 0 0 16px 0;
387
- }
388
-
389
- .recommended-prompt-modal-body .prompt-detail-content p:last-child {
390
- margin-bottom: 0;
391
- }
392
-
393
- .recommended-prompt-modal-footer {
394
- padding: 16px 24px;
395
- border-top: 1px solid #eee;
396
- display: flex;
397
- justify-content: flex-end;
398
- gap: 12px;
399
- background: #fafafa;
400
- margin-top: auto;
401
- }
402
-
403
- .sync-to-my-prompts-btn {
404
- background: #393939;
405
- color: white;
406
- border: none;
407
- border-radius: 8px;
408
- padding: 10px 20px;
409
- font-size: 14px;
410
- font-weight: 500;
411
- cursor: pointer;
412
- transition: all 0.2s ease;
413
- display: flex;
414
- align-items: center;
415
- gap: 8px;
416
- }
417
-
418
- .sync-to-my-prompts-btn:hover {
419
- background: #222;
420
- transform: translateY(-1px);
421
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
422
- }
423
-
424
- .sync-to-my-prompts-btn svg {
425
- color: #ffffff;
426
- stroke: #ffffff;
427
- }
428
-
429
- /* 同步到我的提示词弹窗样式 */
430
- .sync-prompt-modal {
431
- position: fixed;
432
- inset: 0;
433
- background: rgba(0, 0, 0, 0.5);
434
- display: flex;
435
- align-items: center;
436
- justify-content: center;
437
- z-index: 2100;
438
- opacity: 0;
439
- visibility: hidden;
440
- transition: all 0.3s ease;
441
- }
442
-
443
- .sync-prompt-modal.active {
444
- opacity: 1;
445
- visibility: visible;
446
- }
447
-
448
- .sync-prompt-modal-content {
449
- width: 90%;
450
- max-width: 500px;
451
- background: white;
452
- border-radius: 16px;
453
- overflow: hidden;
454
- transform: translateY(20px);
455
- transition: transform 0.3s ease;
456
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
457
- }
458
-
459
- .sync-prompt-modal.active .sync-prompt-modal-content {
460
- transform: translateY(0);
461
- }
462
-
463
- .recommended-prompt-modal-header {
464
- padding: 16px 24px;
465
- display: flex;
466
- justify-content: space-between;
467
- align-items: center;
468
- background: #fafafa;
469
- border-bottom: 1px solid #eee;
470
- }
471
-
472
- .recommended-prompt-modal-header h3 {
473
- font-size: 18px;
474
- font-weight: 600;
475
- color: #333;
476
- margin: 0;
477
- display: flex;
478
- align-items: center;
479
- gap: 8px;
480
- }
481
-
482
- .sync-prompt-modal-header {
483
- padding: 16px 24px;
484
- display: flex;
485
- justify-content: space-between;
486
- align-items: center;
487
- background: #fafafa;
488
- border-bottom: 1px solid #eee;
489
- }
490
-
491
- .sync-prompt-modal-header h3 {
492
- font-size: 18px;
493
- font-weight: 600;
494
- color: #333;
495
- margin: 0;
496
- display: flex;
497
- align-items: center;
498
- gap: 8px;
499
- }
500
-
501
- .sync-prompt-modal-header h3 {
502
- font-size: 18px;
503
- font-weight: 600;
504
- color: #333;
505
- margin: 0;
506
- display: flex;
507
- align-items: center;
508
- gap: 8px;
509
- }
510
-
511
- .recommended-prompt-modal-close {
512
- width: 32px;
513
- height: 32px;
514
- border: none;
515
- background: transparent;
516
- border-radius: 8px;
517
- color: #666;
518
- cursor: pointer;
519
- display: flex;
520
- align-items: center;
521
- justify-content: center;
522
- transition: all 0.2s ease;
523
- }
524
-
525
- .recommended-prompt-modal-close:hover {
526
- background: #f0f0f0;
527
- color: #333;
528
- }
529
-
530
- .sync-prompt-modal-close {
531
- width: 32px;
532
- height: 32px;
533
- border: none;
534
- background: transparent;
535
- border-radius: 8px;
536
- color: #666;
537
- cursor: pointer;
538
- display: flex;
539
- align-items: center;
540
- justify-content: center;
541
- transition: all 0.2s ease;
542
- }
543
-
544
- .sync-prompt-modal-close:hover {
545
- background: #f0f0f0;
546
- color: #333;
547
- }
548
-
549
- .sync-prompt-modal-body {
550
- padding: 24px;
551
- }
552
-
553
- .sync-prompt-form .form-group {
554
- margin-bottom: 20px;
555
- }
556
-
557
- .sync-prompt-form label {
558
- display: block;
559
- margin-bottom: 8px;
560
- font-size: 14px;
561
- font-weight: 500;
562
- color: #333;
563
- }
564
-
565
- .sync-prompt-form select {
566
- width: 100%;
567
- padding: 12px 16px;
568
- border: 1px solid #e0e0e0;
569
- border-radius: 8px;
570
- font-size: 14px;
571
- background: white;
572
- transition: all 0.2s ease;
573
- }
574
-
575
- .sync-prompt-form input {
576
- width: 100%;
577
- padding: 12px 16px;
578
- border: 1px solid #e0e0e0;
579
- border-radius: 8px;
580
- font-size: 14px;
581
- background: white;
582
- transition: all 0.2s ease;
583
- }
584
-
585
- .sync-prompt-form input:focus,
586
- .sync-prompt-form select:focus {
587
- outline: none;
588
- border-color: #393939;
589
- box-shadow: 0 0 0 3px rgba(57, 57, 57, 0.1);
590
- }
591
-
592
- .sync-prompt-form select:focus {
593
- outline: none;
594
- border-color: #393939;
595
- box-shadow: 0 0 0 3px rgba(57, 57, 57, 0.1);
596
- }
597
-
598
- .sync-prompt-modal-footer {
599
- padding: 16px 24px;
600
- border-top: 1px solid #eee;
601
- display: flex;
602
- justify-content: flex-end;
603
- gap: 12px;
604
- background: #fafafa;
605
- }
606
-
607
- /* 滚动动画 */
608
- .recommended-prompts-list.sliding {
609
- transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
610
- }