whistle.mock-plugins 1.2.2-beta.8 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/COLUMN_RESIZE_IMPLEMENTATION.md +162 -0
  2. package/TEST_GUIDE.md +156 -0
  3. package/VERSION.md +57 -3
  4. package/app/cgi-bin/proxy-fetch.js +117 -0
  5. package/app/cgi-bin/settings.js +37 -0
  6. package/app/cgi-bin/stats.js +149 -0
  7. package/app/public/index.html +1 -1
  8. package/app/public/js/index.js +1 -1
  9. package/app/public/js/index.js.LICENSE.txt +25 -2
  10. package/lib/models.js +9 -0
  11. package/lib/routes/interfaces.js +6 -3
  12. package/lib/routes/settings.js +51 -0
  13. package/lib/ruleManager.js +122 -63
  14. package/lib/server.js +4 -0
  15. package/lib/ui-server.js +20 -4
  16. package/package.json +2 -1
  17. package/ui/src/App.css +1 -1
  18. package/ui/src/components/AppLayout.js +317 -80
  19. package/ui/src/components/FeatureCard.js +7 -2
  20. package/ui/src/components/KeyboardShortcutsHelp.js +58 -0
  21. package/ui/src/components/VersionModal.js +4 -41
  22. package/ui/src/components/interface-management/DataManagementDrawer.js +115 -0
  23. package/ui/src/components/interface-management/PreviewModal.js +4 -6
  24. package/ui/src/components/interface-management/RealResponseRecorder.js +165 -0
  25. package/ui/src/components/interface-management/ResponseContentEditor.js +124 -165
  26. package/ui/src/components/interface-management/index.js +1 -0
  27. package/ui/src/hooks/useKeyboardShortcuts.js +99 -0
  28. package/ui/src/index.html +5 -2
  29. package/ui/src/index.js +12 -2
  30. package/ui/src/pages/InterfaceManagementV2.js +565 -141
  31. package/ui/src/pages/MockDataV2.js +21 -13
  32. package/ui/src/pages/Settings.js +275 -8
  33. package/ui/src/pages/Sniffer.js +521 -0
  34. package/ui/src/pages/Stats.js +288 -0
  35. package/ui/src/styles/cyber-theme.css +1234 -0
  36. package/ui/src/styles/earth-theme.css +618 -0
  37. package/ui/src/styles/interface-management.css +37 -1
  38. package/ui/src/styles/settings.css +45 -1
@@ -0,0 +1,618 @@
1
+ /* ============================================================
2
+ Whistle Mock Plugin - Earth Tone Theme Override
3
+ 覆盖 Ant Design 5 和项目自定义样式为大地色系风格
4
+ ============================================================ */
5
+
6
+ /* ── 全局背景与文字 ── */
7
+ body.earth-theme, body.earth-theme #root{
8
+ background-color: #f0ebe3 !important;
9
+ color: #3d3630 !important;
10
+ font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
11
+ }
12
+
13
+ body.earth-theme{
14
+ --primary-color: #b87333;
15
+ --primary-hover: #c9894d;
16
+ --primary-active: #9a5f2a;
17
+ --success-color: #6b8e23;
18
+ --warning-color: #d4a017;
19
+ --error-color: #c0392b;
20
+ --font-color: #3d3630;
21
+ --text-secondary: #6d6459;
22
+ --text-light: #9e9488;
23
+ --border-color: #e0d8cf;
24
+ --border-radius: 6px;
25
+ --card-shadow: 0 2px 8px rgba(61, 54, 48, 0.06);
26
+ --transition-time: 0.3s;
27
+ --ant-color-primary: #b87333;
28
+ --ant-color-primary-hover: #c9894d;
29
+ --ant-color-primary-active: #9a5f2a;
30
+ --ant-color-success: #6b8e23;
31
+ --ant-color-warning: #d4a017;
32
+ --ant-color-error: #c0392b;
33
+ --ant-color-info: #8d6e63;
34
+ --ant-color-text: #3d3630;
35
+ --ant-color-text-secondary: #6d6459;
36
+ --ant-color-border: #e0d8cf;
37
+ --ant-color-bg-base: #f0ebe3;
38
+ --ant-color-bg-container: #fdfcfa;
39
+ --ant-color-bg-elevated: #f5f0e8;
40
+ --ant-color-bg-layout: #f0ebe3;
41
+ background-color: #f0ebe3 !important;
42
+ }
43
+
44
+ body.earth-theme h1, body.earth-theme h2, body.earth-theme h3, body.earth-theme h4, body.earth-theme h5, body.earth-theme h6{
45
+ color: #3d3630 !important;
46
+ }
47
+
48
+ body.earth-theme a{
49
+ color: #b87333 !important;
50
+ }
51
+ body.earth-theme a:hover{
52
+ color: #c9894d !important;
53
+ }
54
+
55
+ /* ── 滚动条 ── */
56
+ body.earth-theme ::-webkit-scrollbar{
57
+ width: 6px;
58
+ height: 6px;
59
+ }
60
+ body.earth-theme ::-webkit-scrollbar-track{
61
+ background: #f0ebe3;
62
+ }
63
+ body.earth-theme ::-webkit-scrollbar-thumb{
64
+ background: #d5cdc2;
65
+ border-radius: 3px;
66
+ }
67
+ body.earth-theme ::-webkit-scrollbar-thumb:hover{
68
+ background: #b87333;
69
+ }
70
+
71
+ /* ── Ant Design Layout ── */
72
+ body.earth-theme .ant-layout{
73
+ background: #f0ebe3 !important;
74
+ }
75
+
76
+ body.earth-theme .ant-layout-header{
77
+ background: #fdfcfa !important;
78
+ border-bottom: 1px solid #e0d8cf !important;
79
+ box-shadow: 0 1px 4px rgba(61, 54, 48, 0.06) !important;
80
+ }
81
+
82
+ body.earth-theme .ant-layout-sider{
83
+ background: #f5f0e8 !important;
84
+ border-right: 1px solid #e0d8cf !important;
85
+ }
86
+
87
+ body.earth-theme .ant-layout-content{
88
+ background: #fdfcfa !important;
89
+ }
90
+
91
+ /* ── Ant Menu ── */
92
+ body.earth-theme .ant-menu{
93
+ background: #f5f0e8 !important;
94
+ border-right: none !important;
95
+ }
96
+
97
+ body.earth-theme .ant-menu-item{
98
+ color: #6d6459 !important;
99
+ border-radius: 4px !important;
100
+ margin: 4px 8px !important;
101
+ }
102
+
103
+ body.earth-theme .ant-menu-item:hover{
104
+ color: #b87333 !important;
105
+ background: rgba(184, 115, 51, 0.08) !important;
106
+ }
107
+
108
+ body.earth-theme .ant-menu-item-selected{
109
+ color: #b87333 !important;
110
+ background: rgba(184, 115, 51, 0.12) !important;
111
+ }
112
+
113
+ body.earth-theme .ant-menu-item-selected:hover{
114
+ color: #b87333 !important;
115
+ background: rgba(184, 115, 51, 0.16) !important;
116
+ }
117
+
118
+ body.earth-theme .ant-menu-submenu-title{
119
+ color: #6d6459 !important;
120
+ }
121
+
122
+ body.earth-theme .ant-menu-submenu-selected > .ant-menu-submenu-title{
123
+ color: #b87333 !important;
124
+ }
125
+
126
+ /* ── Ant Card ── */
127
+ body.earth-theme .ant-card{
128
+ background: #fdfcfa !important;
129
+ border: 1px solid #e0d8cf !important;
130
+ border-radius: 6px !important;
131
+ box-shadow: 0 2px 8px rgba(61, 54, 48, 0.06) !important;
132
+ }
133
+
134
+ body.earth-theme .ant-card-bordered{
135
+ border: 1px solid #e0d8cf !important;
136
+ }
137
+
138
+ body.earth-theme .ant-card-head{
139
+ background: #fdfcfa !important;
140
+ border-bottom: 1px solid #e0d8cf !important;
141
+ color: #3d3630 !important;
142
+ }
143
+
144
+ body.earth-theme .ant-card-body{
145
+ background: #fdfcfa !important;
146
+ color: #3d3630 !important;
147
+ }
148
+
149
+ /* ── Ant Button ── */
150
+ body.earth-theme .ant-btn{
151
+ border-radius: 4px !important;
152
+ }
153
+
154
+ body.earth-theme .ant-btn-primary{
155
+ background: #b87333 !important;
156
+ border-color: #b87333 !important;
157
+ color: #ffffff !important;
158
+ font-weight: 500;
159
+ }
160
+
161
+ body.earth-theme .ant-btn-primary:hover{
162
+ background: #c9894d !important;
163
+ border-color: #c9894d !important;
164
+ box-shadow: 0 2px 8px rgba(184, 115, 51, 0.3) !important;
165
+ }
166
+
167
+ body.earth-theme .ant-btn-default{
168
+ background: transparent !important;
169
+ border-color: #e0d8cf !important;
170
+ color: #6d6459 !important;
171
+ }
172
+
173
+ body.earth-theme .ant-btn-default:hover{
174
+ border-color: #b87333 !important;
175
+ color: #b87333 !important;
176
+ }
177
+
178
+ body.earth-theme .ant-btn-text{
179
+ color: #6d6459 !important;
180
+ }
181
+
182
+ body.earth-theme .ant-btn-text:hover{
183
+ color: #b87333 !important;
184
+ background: rgba(184, 115, 51, 0.08) !important;
185
+ }
186
+
187
+ body.earth-theme .ant-btn-dangerous{
188
+ background: transparent !important;
189
+ border-color: #c0392b !important;
190
+ color: #c0392b !important;
191
+ }
192
+
193
+ body.earth-theme .ant-btn-dangerous:hover{
194
+ background: #c0392b !important;
195
+ color: #ffffff !important;
196
+ }
197
+
198
+ /* ── Ant Table ── */
199
+ body.earth-theme .ant-table{
200
+ background: #fdfcfa !important;
201
+ color: #3d3630 !important;
202
+ }
203
+
204
+ body.earth-theme .ant-table-thead > tr > th{
205
+ background: #f5f0e8 !important;
206
+ color: #3d3630 !important;
207
+ border-bottom: 1px solid #e0d8cf !important;
208
+ font-weight: 600;
209
+ }
210
+
211
+ body.earth-theme .ant-table-tbody > tr > td{
212
+ border-bottom: 1px solid #e0d8cf !important;
213
+ color: #3d3630 !important;
214
+ }
215
+
216
+ body.earth-theme .ant-table-tbody > tr:hover > td{
217
+ background: rgba(184, 115, 51, 0.04) !important;
218
+ }
219
+
220
+ body.earth-theme .ant-table-tbody > tr.ant-table-row-selected > td{
221
+ background: rgba(184, 115, 51, 0.08) !important;
222
+ }
223
+
224
+ /* ── Ant Input / TextArea ── */
225
+ body.earth-theme .ant-input,
226
+ body.earth-theme .ant-input-affix-wrapper,
227
+ body.earth-theme .ant-input-textarea{
228
+ background: #fdfcfa !important;
229
+ border-color: #e0d8cf !important;
230
+ color: #3d3630 !important;
231
+ border-radius: 4px !important;
232
+ }
233
+
234
+ body.earth-theme .ant-input:hover,
235
+ body.earth-theme .ant-input-affix-wrapper:hover{
236
+ border-color: #c9894d !important;
237
+ }
238
+
239
+ body.earth-theme .ant-input:focus,
240
+ body.earth-theme .ant-input-affix-wrapper:focus,
241
+ body.earth-theme .ant-input-focused,
242
+ body.earth-theme .ant-input-affix-wrapper-focused{
243
+ border-color: #b87333 !important;
244
+ box-shadow: 0 0 0 2px rgba(184, 115, 51, 0.1) !important;
245
+ }
246
+
247
+ body.earth-theme .ant-input::placeholder,
248
+ body.earth-theme .ant-input-textarea::placeholder{
249
+ color: #9e9488 !important;
250
+ }
251
+
252
+ /* ── Ant Select ── */
253
+ body.earth-theme .ant-select-selector{
254
+ background: #fdfcfa !important;
255
+ border-color: #e0d8cf !important;
256
+ color: #3d3630 !important;
257
+ border-radius: 4px !important;
258
+ }
259
+
260
+ body.earth-theme .ant-select:hover .ant-select-selector{
261
+ border-color: #c9894d !important;
262
+ }
263
+
264
+ body.earth-theme .ant-select-focused .ant-select-selector{
265
+ border-color: #b87333 !important;
266
+ box-shadow: 0 0 0 2px rgba(184, 115, 51, 0.1) !important;
267
+ }
268
+
269
+ body.earth-theme .ant-select-dropdown{
270
+ background: #fdfcfa !important;
271
+ border: 1px solid #e0d8cf !important;
272
+ box-shadow: 0 4px 16px rgba(61, 54, 48, 0.1) !important;
273
+ }
274
+
275
+ body.earth-theme .ant-select-item{
276
+ color: #3d3630 !important;
277
+ }
278
+
279
+ body.earth-theme .ant-select-item-option-selected{
280
+ background: rgba(184, 115, 51, 0.12) !important;
281
+ color: #b87333 !important;
282
+ font-weight: 500;
283
+ }
284
+
285
+ body.earth-theme .ant-select-item-option-active{
286
+ background: rgba(184, 115, 51, 0.06) !important;
287
+ }
288
+
289
+ /* ── Ant Modal ── */
290
+ body.earth-theme .ant-modal-content{
291
+ background: #fdfcfa !important;
292
+ border: 1px solid #e0d8cf !important;
293
+ box-shadow: 0 8px 32px rgba(61, 54, 48, 0.12) !important;
294
+ }
295
+
296
+ body.earth-theme .ant-modal-header{
297
+ background: #fdfcfa !important;
298
+ border-bottom: 1px solid #e0d8cf !important;
299
+ color: #3d3630 !important;
300
+ }
301
+
302
+ body.earth-theme .ant-modal-title{
303
+ color: #3d3630 !important;
304
+ }
305
+
306
+ body.earth-theme .ant-modal-close-x{
307
+ color: #6d6459 !important;
308
+ }
309
+
310
+ body.earth-theme .ant-modal-close-x:hover{
311
+ color: #b87333 !important;
312
+ }
313
+
314
+ /* ── Ant Drawer ── */
315
+ body.earth-theme .ant-drawer-content{
316
+ background: #fdfcfa !important;
317
+ }
318
+
319
+ body.earth-theme .ant-drawer-header{
320
+ background: #fdfcfa !important;
321
+ border-bottom: 1px solid #e0d8cf !important;
322
+ }
323
+
324
+ body.earth-theme .ant-drawer-title{
325
+ color: #3d3630 !important;
326
+ }
327
+
328
+ body.earth-theme .ant-drawer-close{
329
+ color: #6d6459 !important;
330
+ }
331
+
332
+ /* ── Ant Tabs ── */
333
+ body.earth-theme .ant-tabs-tab{
334
+ color: #6d6459 !important;
335
+ }
336
+
337
+ body.earth-theme .ant-tabs-tab:hover{
338
+ color: #b87333 !important;
339
+ }
340
+
341
+ body.earth-theme .ant-tabs-tab-active{
342
+ color: #b87333 !important;
343
+ }
344
+
345
+ body.earth-theme .ant-tabs-ink-bar{
346
+ background: #b87333 !important;
347
+ }
348
+
349
+ body.earth-theme .ant-tabs-content{
350
+ color: #3d3630 !important;
351
+ }
352
+
353
+ /* ── Ant Form ── */
354
+ body.earth-theme .ant-form-item-label > label{
355
+ color: #3d3630 !important;
356
+ }
357
+
358
+ body.earth-theme .ant-form-item-explain-error{
359
+ color: #c0392b !important;
360
+ }
361
+
362
+ /* ── Ant Switch ── */
363
+ body.earth-theme .ant-switch-checked{
364
+ background: #b87333 !important;
365
+ }
366
+
367
+ body.earth-theme .ant-switch-checked:hover{
368
+ background: #c9894d !important;
369
+ }
370
+
371
+ /* ── Ant Radio ── */
372
+ body.earth-theme .ant-radio-checked .ant-radio-inner{
373
+ border-color: #b87333 !important;
374
+ }
375
+
376
+ body.earth-theme .ant-radio-checked .ant-radio-inner::after{
377
+ background: #b87333 !important;
378
+ }
379
+
380
+ body.earth-theme .ant-radio-wrapper:hover .ant-radio,
381
+ body.earth-theme .ant-radio:hover .ant-radio-inner{
382
+ border-color: #b87333 !important;
383
+ }
384
+
385
+ /* ── Ant Checkbox ── */
386
+ body.earth-theme .ant-checkbox-checked .ant-checkbox-inner{
387
+ background: #b87333 !important;
388
+ border-color: #b87333 !important;
389
+ }
390
+
391
+ body.earth-theme .ant-checkbox-indeterminate .ant-checkbox-inner::after{
392
+ background: #b87333 !important;
393
+ }
394
+
395
+ body.earth-theme .ant-checkbox-wrapper:hover .ant-checkbox-inner,
396
+ body.earth-theme .ant-checkbox:hover .ant-checkbox-inner{
397
+ border-color: #b87333 !important;
398
+ }
399
+
400
+ /* ── Ant Badge ── */
401
+ body.earth-theme .ant-badge-status-dot{
402
+ box-shadow: 0 0 4px currentColor !important;
403
+ }
404
+
405
+ /* ── Ant Tag ── */
406
+ body.earth-theme .ant-tag{
407
+ border-radius: 4px !important;
408
+ }
409
+
410
+ body.earth-theme .ant-tag-green{
411
+ color: #6b8e23 !important;
412
+ background: rgba(107, 142, 35, 0.1) !important;
413
+ border-color: rgba(107, 142, 35, 0.2) !important;
414
+ }
415
+
416
+ body.earth-theme .ant-tag-blue{
417
+ color: #8d6e63 !important;
418
+ background: rgba(141, 110, 99, 0.1) !important;
419
+ border-color: rgba(141, 110, 99, 0.2) !important;
420
+ }
421
+
422
+ body.earth-theme .ant-tag-red{
423
+ color: #c0392b !important;
424
+ background: rgba(192, 57, 43, 0.1) !important;
425
+ border-color: rgba(192, 57, 43, 0.2) !important;
426
+ }
427
+
428
+ body.earth-theme .ant-tag-orange{
429
+ color: #d4a017 !important;
430
+ background: rgba(212, 160, 23, 0.1) !important;
431
+ border-color: rgba(212, 160, 23, 0.2) !important;
432
+ }
433
+
434
+ body.earth-theme .ant-tag-default{
435
+ color: #6d6459 !important;
436
+ background: #f5f0e8 !important;
437
+ border-color: #e0d8cf !important;
438
+ }
439
+
440
+ /* ── Ant Divider ── */
441
+ body.earth-theme .ant-divider{
442
+ border-top: 1px solid #e0d8cf !important;
443
+ }
444
+
445
+ body.earth-theme .ant-divider-horizontal{
446
+ margin: 16px 0 !important;
447
+ }
448
+
449
+ /* ── Ant Empty ── */
450
+ body.earth-theme .ant-empty-description{
451
+ color: #9e9488 !important;
452
+ }
453
+
454
+ /* ── Ant Spin ── */
455
+ body.earth-theme .ant-spin-dot-item{
456
+ background: #b87333 !important;
457
+ }
458
+
459
+ /* ── Ant Breadcrumb ── */
460
+ body.earth-theme .ant-breadcrumb{
461
+ color: #6d6459 !important;
462
+ }
463
+
464
+ body.earth-theme .ant-breadcrumb a{
465
+ color: #9e9488 !important;
466
+ }
467
+
468
+ body.earth-theme .ant-breadcrumb a:hover{
469
+ color: #b87333 !important;
470
+ }
471
+
472
+ body.earth-theme .ant-breadcrumb-separator{
473
+ color: #d5cdc2 !important;
474
+ }
475
+
476
+ /* ── Ant Statistic ── */
477
+ body.earth-theme .ant-statistic-title{
478
+ color: #6d6459 !important;
479
+ }
480
+
481
+ body.earth-theme .ant-statistic-content{
482
+ color: #3d3630 !important;
483
+ }
484
+
485
+ /* ── Ant DatePicker / TimePicker ── */
486
+ body.earth-theme .ant-picker{
487
+ background: #fdfcfa !important;
488
+ border-color: #e0d8cf !important;
489
+ color: #3d3630 !important;
490
+ }
491
+
492
+ body.earth-theme .ant-picker:hover{
493
+ border-color: #c9894d !important;
494
+ }
495
+
496
+ body.earth-theme .ant-picker-focused{
497
+ border-color: #b87333 !important;
498
+ box-shadow: 0 0 0 2px rgba(184, 115, 51, 0.1) !important;
499
+ }
500
+
501
+ body.earth-theme .ant-picker-panel{
502
+ background: #fdfcfa !important;
503
+ border: 1px solid #e0d8cf !important;
504
+ }
505
+
506
+ body.earth-theme .ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner{
507
+ background: #b87333 !important;
508
+ }
509
+
510
+ body.earth-theme .ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before{
511
+ border-color: #b87333 !important;
512
+ }
513
+
514
+ /* ── Ant Pagination ── */
515
+ body.earth-theme .ant-pagination-item-active{
516
+ border-color: #b87333 !important;
517
+ background: #b87333 !important;
518
+ }
519
+
520
+ body.earth-theme .ant-pagination-item-active a{
521
+ color: #ffffff !important;
522
+ }
523
+
524
+ body.earth-theme .ant-pagination-item:hover{
525
+ border-color: #b87333 !important;
526
+ }
527
+
528
+ body.earth-theme .ant-pagination-item:hover a{
529
+ color: #b87333 !important;
530
+ }
531
+
532
+ /* ── Ant Popover / Tooltip ── */
533
+ body.earth-theme .ant-popover-inner{
534
+ background: #fdfcfa !important;
535
+ border: 1px solid #e0d8cf !important;
536
+ box-shadow: 0 4px 16px rgba(61, 54, 48, 0.1) !important;
537
+ }
538
+
539
+ body.earth-theme .ant-tooltip-inner{
540
+ background: #3d3630 !important;
541
+ color: #fdfcfa !important;
542
+ }
543
+
544
+ /* ── Ant Dropdown ── */
545
+ body.earth-theme .ant-dropdown-menu{
546
+ background: #fdfcfa !important;
547
+ border: 1px solid #e0d8cf !important;
548
+ box-shadow: 0 4px 16px rgba(61, 54, 48, 0.1) !important;
549
+ }
550
+
551
+ body.earth-theme .ant-dropdown-menu-item{
552
+ color: #3d3630 !important;
553
+ }
554
+
555
+ body.earth-theme .ant-dropdown-menu-item:hover{
556
+ background: rgba(184, 115, 51, 0.06) !important;
557
+ color: #b87333 !important;
558
+ }
559
+
560
+ /* ── Ant Slider ── */
561
+ body.earth-theme .ant-slider-track{
562
+ background: #b87333 !important;
563
+ }
564
+
565
+ body.earth-theme .ant-slider-handle{
566
+ border-color: #b87333 !important;
567
+ }
568
+
569
+ body.earth-theme .ant-slider-handle:hover{
570
+ border-color: #c9894d !important;
571
+ }
572
+
573
+ /* ── Ant Tree ── */
574
+ body.earth-theme .ant-tree{
575
+ background: transparent !important;
576
+ color: #3d3630 !important;
577
+ }
578
+
579
+ body.earth-theme .ant-tree-node-content-wrapper:hover{
580
+ background: rgba(184, 115, 51, 0.06) !important;
581
+ }
582
+
583
+ body.earth-theme .ant-tree-node-selected{
584
+ background: rgba(184, 115, 51, 0.12) !important;
585
+ color: #b87333 !important;
586
+ }
587
+
588
+ /* ── 版本弹窗样式覆盖 ── */
589
+ body.earth-theme .version-markdown-content h1{
590
+ color: #b87333 !important;
591
+ border-bottom-color: #e0d8cf !important;
592
+ }
593
+
594
+ body.earth-theme .version-markdown-content h2{
595
+ color: #3d3630 !important;
596
+ }
597
+
598
+ body.earth-theme .version-markdown-content h3{
599
+ color: #6b8e23 !important;
600
+ }
601
+
602
+ body.earth-theme .version-markdown-content p,
603
+ body.earth-theme .version-markdown-content li{
604
+ color: #6d6459 !important;
605
+ }
606
+
607
+ body.earth-theme .version-markdown-content strong{
608
+ color: #3d3630 !important;
609
+ }
610
+
611
+ body.earth-theme .version-markdown-content code{
612
+ background-color: #f5f0e8 !important;
613
+ color: #b87333 !important;
614
+ }
615
+
616
+ body.earth-theme .version-markdown-content pre{
617
+ background-color: #f5f0e8 !important;
618
+ }
@@ -295,7 +295,11 @@
295
295
  padding: 12px 16px !important;
296
296
  white-space: nowrap;
297
297
  overflow: hidden;
298
- text-overflow: ellipsis;
298
+ }
299
+
300
+ /* 当前响应列需要 overflow: visible 以显示完整的下拉菜单 */
301
+ .interface-table td.current-response-cell {
302
+ overflow: visible !important;
299
303
  }
300
304
 
301
305
  /* 卡片视图样式 */
@@ -1283,3 +1287,35 @@
1283
1287
  .interface-table .ant-pagination-options {
1284
1288
  margin-right: 16px;
1285
1289
  }
1290
+
1291
+ /* 可调整列宽样式 */
1292
+ .column-resize-handle {
1293
+ position: absolute;
1294
+ right: -5px;
1295
+ top: 0;
1296
+ bottom: 0;
1297
+ width: 10px;
1298
+ cursor: col-resize;
1299
+ z-index: 1;
1300
+ user-select: none;
1301
+ }
1302
+
1303
+ .column-resize-handle:hover {
1304
+ background-color: rgba(24, 144, 255, 0.2);
1305
+ }
1306
+
1307
+ .column-resize-handle::after {
1308
+ content: '';
1309
+ position: absolute;
1310
+ right: 4px;
1311
+ top: 50%;
1312
+ transform: translateY(-50%);
1313
+ width: 2px;
1314
+ height: 20px;
1315
+ background-color: #d9d9d9;
1316
+ transition: background-color 0.3s;
1317
+ }
1318
+
1319
+ .column-resize-handle:hover::after {
1320
+ background-color: #1890ff;
1321
+ }
@@ -33,6 +33,50 @@
33
33
  font-weight: 500;
34
34
  }
35
35
 
36
+ /* 设置项样式 */
37
+ .settings-item {
38
+ padding: 16px 0;
39
+ border-bottom: 1px solid #f0f0f0;
40
+ }
41
+
42
+ .settings-item:last-child {
43
+ border-bottom: none;
44
+ }
45
+
46
+ .settings-item-header {
47
+ display: flex;
48
+ justify-content: space-between;
49
+ align-items: center;
50
+ }
51
+
52
+ .settings-item-title {
53
+ font-size: 14px;
54
+ font-weight: 500;
55
+ color: #262626;
56
+ margin-bottom: 4px;
57
+ display: inline-flex;
58
+ align-items: center;
59
+ gap: 2px;
60
+ }
61
+
62
+ .settings-item-description {
63
+ font-size: 12px;
64
+ color: #8c8c8c;
65
+ line-height: 1.5;
66
+ }
67
+
68
+ .settings-help-icon {
69
+ color: #8c8c8c;
70
+ padding: 0;
71
+ min-width: auto;
72
+ height: auto;
73
+ line-height: 1;
74
+ }
75
+
76
+ .settings-help-icon:hover {
77
+ color: #1677ff;
78
+ }
79
+
36
80
  .settings-section {
37
81
  margin-bottom: 32px;
38
82
  }
@@ -205,4 +249,4 @@ input:checked + .slider:before {
205
249
  width: 100%;
206
250
  margin-bottom: 8px;
207
251
  }
208
- }
252
+ }