koishi-plugin-chat-patch 1.0.12 → 1.0.13

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.
@@ -5,7 +5,7 @@
5
5
  border-left: 4px solid rgba(151, 152, 152, .45);
6
6
  border-radius: 6px;
7
7
  font-size: .9em;
8
- position: relative;
8
+ position: relative
9
9
  }
10
10
 
11
11
  .quote-indicator {
@@ -13,14 +13,14 @@
13
13
  color: #007bff;
14
14
  font-weight: 600;
15
15
  margin-bottom: 4px;
16
- text-transform: uppercase;
16
+ text-transform: uppercase
17
17
  }
18
18
 
19
19
  .quote-header {
20
20
  display: flex;
21
21
  align-items: center;
22
22
  margin-bottom: 4px;
23
- gap: 6px;
23
+ gap: 6px
24
24
  }
25
25
 
26
26
  .quote-avatar {
@@ -28,13 +28,13 @@
28
28
  height: 20px;
29
29
  border-radius: 50%;
30
30
  overflow: hidden;
31
- flex-shrink: 0;
31
+ flex-shrink: 0
32
32
  }
33
33
 
34
34
  .quote-avatar img {
35
35
  width: 100%;
36
36
  height: 100%;
37
- object-fit: cover;
37
+ object-fit: cover
38
38
  }
39
39
 
40
40
  .quote-avatar .avatar-placeholder {
@@ -44,21 +44,21 @@
44
44
  align-items: center;
45
45
  justify-content: center;
46
46
  background-color: #6c757d;
47
- color: white;
47
+ color: #fff;
48
48
  font-size: 10px;
49
- font-weight: bold;
49
+ font-weight: 700
50
50
  }
51
51
 
52
52
  .quote-username {
53
53
  font-weight: 600;
54
54
  color: #007bff;
55
- font-size: .85em;
55
+ font-size: .85em
56
56
  }
57
57
 
58
58
  .quote-time {
59
59
  color: #6c757d;
60
60
  font-size: .75em;
61
- margin-left: auto;
61
+ margin-left: auto
62
62
  }
63
63
 
64
64
  .quote-content {
@@ -67,42 +67,42 @@
67
67
  word-wrap: break-word;
68
68
  word-break: break-all;
69
69
  overflow-wrap: anywhere;
70
- hyphens: auto;
70
+ hyphens: auto
71
71
  }
72
72
 
73
73
  .quote-content .message-image {
74
- max-width: 200px;
75
- max-height: 100px;
74
+ max-width: min(200px, 50vw);
75
+ max-height: 100px
76
76
  }
77
77
 
78
78
  .quote-content .message-image-container {
79
- margin: 2px 0;
79
+ margin: 2px 0
80
80
  }
81
81
 
82
- @media (prefers-color-scheme: dark) {
82
+ @media (prefers-color-scheme:dark) {
83
83
  .message-quote {
84
84
  background-color: rgba(255, 255, 255, .078);
85
- border-left-color: #0d6efd;
85
+ border-left-color: #0d6efd
86
86
  }
87
87
 
88
88
  .quote-content {
89
- color: #adb5bd;
89
+ color: #adb5bd
90
90
  }
91
91
 
92
92
  .quote-username {
93
- color: #0d6efd;
93
+ color: #0d6efd
94
94
  }
95
95
  }
96
96
 
97
97
  .chat-container {
98
98
  display: flex;
99
99
  height: 100vh;
100
- background: transparent;
101
- margin-left: 0%;
100
+ background: 0 0;
101
+ margin-left: 0;
102
102
  width: 100%;
103
103
  overflow: hidden;
104
104
  color: inherit;
105
- position: relative;
105
+ position: relative
106
106
  }
107
107
 
108
108
  .bot-list,
@@ -110,66 +110,66 @@
110
110
  .message-area {
111
111
  display: flex;
112
112
  flex-direction: column;
113
- background: transparent;
114
- border-right: 1px solid rgba(128, 128, 128, .2);
113
+ background: 0 0;
114
+ border-right: 1px solid rgba(128, 128, 128, .2)
115
115
  }
116
116
 
117
117
  .bot-list {
118
118
  width: 250px;
119
119
  min-width: 250px;
120
120
  max-width: 250px;
121
- flex-shrink: 0;
121
+ flex-shrink: 0
122
122
  }
123
123
 
124
124
  .channel-list {
125
125
  width: 300px;
126
126
  min-width: 300px;
127
127
  max-width: 300px;
128
- flex-shrink: 0;
128
+ flex-shrink: 0
129
129
  }
130
130
 
131
131
  .message-area {
132
132
  flex: 1;
133
- border-right: none;
133
+ border-right: none
134
134
  }
135
135
 
136
136
  .panel-header {
137
137
  padding: 16px;
138
138
  border-bottom: 1px solid rgba(128, 128, 128, .2);
139
- background: transparent;
139
+ background: 0 0;
140
140
  display: flex;
141
141
  align-items: center;
142
- justify-content: space-between;
142
+ justify-content: space-between
143
143
  }
144
144
 
145
145
  .panel-header h3 {
146
146
  margin: 0;
147
147
  font-size: 16px;
148
148
  font-weight: 600;
149
- color: currentColor;
149
+ color: currentColor
150
150
  }
151
151
 
152
152
  .back-button {
153
153
  display: none;
154
- background: none;
154
+ background: 0 0;
155
155
  border: none;
156
156
  color: currentColor;
157
157
  font-size: 18px;
158
158
  cursor: pointer;
159
159
  padding: 4px 8px;
160
160
  border-radius: 4px;
161
- transition: background-color .2s;
161
+ transition: background-color .2s
162
162
  }
163
163
 
164
164
  .back-button:hover {
165
- background: rgba(128, 128, 128, .1);
165
+ background: rgba(128, 128, 128, .1)
166
166
  }
167
167
 
168
168
  .bot-items,
169
169
  .channel-items {
170
170
  flex: 1;
171
171
  overflow-y: auto;
172
- max-height: calc(100vh - 60px);
172
+ max-height: calc(100vh - 60px)
173
173
  }
174
174
 
175
175
  .bot-item,
@@ -179,18 +179,18 @@
179
179
  padding: 12px 16px;
180
180
  cursor: pointer;
181
181
  border-bottom: 1px solid rgba(128, 128, 128, .1);
182
- transition: background-color .2s;
182
+ transition: background-color .2s
183
183
  }
184
184
 
185
185
  .bot-item:hover,
186
186
  .channel-item:hover {
187
- background: rgba(128, 128, 128, .1);
187
+ background: rgba(128, 128, 128, .1)
188
188
  }
189
189
 
190
190
  .bot-item.active,
191
191
  .channel-item.active {
192
192
  background: rgba(33, 150, 243, .1);
193
- border-right: 3px solid #2196f3;
193
+ border-right: 3px solid #2196f3
194
194
  }
195
195
 
196
196
  .bot-avatar {
@@ -202,79 +202,79 @@
202
202
  display: flex;
203
203
  align-items: center;
204
204
  justify-content: center;
205
- background: #e0e0e0;
205
+ background: #e0e0e0
206
206
  }
207
207
 
208
208
  .bot-avatar img {
209
209
  width: 100%;
210
210
  height: 100%;
211
- object-fit: cover;
211
+ object-fit: cover
212
212
  }
213
213
 
214
214
  .avatar-placeholder {
215
215
  font-size: 16px;
216
- font-weight: bold;
216
+ font-weight: 700;
217
217
  color: currentColor;
218
- opacity: .7;
218
+ opacity: .7
219
219
  }
220
220
 
221
221
  .bot-info {
222
- flex: 1;
222
+ flex: 1
223
223
  }
224
224
 
225
225
  .bot-name {
226
226
  font-weight: 500;
227
227
  color: currentColor;
228
- margin-bottom: 2px;
228
+ margin-bottom: 2px
229
229
  }
230
230
 
231
231
  .bot-platform {
232
232
  font-size: 12px;
233
233
  color: currentColor;
234
- opacity: .7;
234
+ opacity: .7
235
235
  }
236
236
 
237
237
  .bot-status {
238
238
  width: 8px;
239
239
  height: 8px;
240
240
  border-radius: 50%;
241
- margin-left: 8px;
241
+ margin-left: 8px
242
242
  }
243
243
 
244
244
  .bot-status.online {
245
- background: #4caf50;
245
+ background: #4caf50
246
246
  }
247
247
 
248
248
  .bot-status.offline {
249
- background: #f44336;
249
+ background: #f44336
250
250
  }
251
251
 
252
252
  .channel-info {
253
- flex: 1;
253
+ flex: 1
254
254
  }
255
255
 
256
256
  .channel-name {
257
257
  font-weight: 500;
258
258
  color: currentColor;
259
- margin-bottom: 2px;
259
+ margin-bottom: 2px
260
260
  }
261
261
 
262
262
  .channel-type {
263
263
  font-size: 12px;
264
264
  color: currentColor;
265
- opacity: .7;
265
+ opacity: .7
266
266
  }
267
267
 
268
268
  .channel-message-count {
269
269
  background: #2196f3;
270
- color: white;
270
+ color: #fff;
271
271
  font-size: 12px;
272
272
  padding: 2px 6px;
273
273
  border-radius: 10px;
274
274
  min-width: 18px;
275
275
  text-align: center;
276
276
  position: relative;
277
- transition: all .2s ease;
277
+ transition: all .2s ease
278
278
  }
279
279
 
280
280
  .channel-message-count.draggable-bubble {
@@ -282,20 +282,20 @@
282
282
  user-select: none;
283
283
  -webkit-user-select: none;
284
284
  -moz-user-select: none;
285
- -ms-user-select: none;
285
+ -ms-user-select: none
286
286
  }
287
287
 
288
288
  .channel-message-count.draggable-bubble:hover {
289
289
  background: #1976d2;
290
290
  transform: scale(1.1);
291
- box-shadow: 0 2px 8px rgba(33, 150, 243, .3);
291
+ box-shadow: 0 2px 8px rgba(33, 150, 243, .3)
292
292
  }
293
293
 
294
- .channel-message-count.draggable-bubble:active,
295
- .channel-message-count.draggable-bubble.dragging {
294
+ .channel-message-count.draggable-bubble.dragging,
295
+ .channel-message-count.draggable-bubble:active {
296
296
  cursor: grabbing;
297
297
  background: #1565c0;
298
- box-shadow: 0 4px 12px rgba(33, 150, 243, .4);
298
+ box-shadow: 0 4px 12px rgba(33, 150, 243, .4)
299
299
  }
300
300
 
301
301
  .dragging-clone {
@@ -308,18 +308,18 @@
308
308
  align-items: center;
309
309
  justify-content: center;
310
310
  background: #2196f3;
311
- color: white;
311
+ color: #fff;
312
312
  font-size: 12px;
313
313
  padding: 2px 6px;
314
314
  border-radius: 10px;
315
315
  min-width: 18px;
316
316
  text-align: center;
317
- box-shadow: 0 4px 12px rgba(33, 150, 243, .4);
317
+ box-shadow: 0 4px 12px rgba(33, 150, 243, .4)
318
318
  }
319
319
 
320
320
  .dragging-clone.will-delete {
321
321
  background: #f44336 !important;
322
- animation: shake .3s ease-in-out infinite;
322
+ animation: shake .3s ease-in-out infinite
323
323
  }
324
324
 
325
325
  @keyframes pulseThreshold {
@@ -329,26 +329,26 @@
329
329
  opacity: .4;
330
330
  transform: scale(.9);
331
331
  border-color: rgba(244, 67, 54, .6);
332
- box-shadow: 0 0 15px rgba(244, 67, 54, .2);
332
+ box-shadow: 0 0 15px rgba(244, 67, 54, .2)
333
333
  }
334
334
 
335
335
  50% {
336
336
  opacity: .8;
337
337
  transform: scale(1.1);
338
- border-color: rgba(244, 67, 54, 1);
339
- box-shadow: 0 0 25px rgba(244, 67, 54, .4);
338
+ border-color: #f44336;
339
+ box-shadow: 0 0 25px rgba(244, 67, 54, .4)
340
340
  }
341
341
  }
342
342
 
343
343
  @keyframes menuSlideIn {
344
344
  0% {
345
345
  transform: translateY(8px);
346
- opacity: 0;
346
+ opacity: 0
347
347
  }
348
348
 
349
349
  100% {
350
350
  transform: translateY(0);
351
- opacity: 1;
351
+ opacity: 1
352
352
  }
353
353
  }
354
354
 
@@ -357,14 +357,14 @@
357
357
  flex-direction: column;
358
358
  height: calc(100vh - 60px);
359
359
  overflow: hidden;
360
- position: relative;
360
+ position: relative
361
361
  }
362
362
 
363
363
  .message-history {
364
364
  flex: 1;
365
365
  overflow-y: auto;
366
366
  padding: 16px 16px 8px 16px;
367
- max-height: calc(100vh - 200px);
367
+ max-height: calc(100vh - 200px)
368
368
  }
369
369
 
370
370
  .message-item {
@@ -372,49 +372,49 @@
372
372
  margin-bottom: 16px;
373
373
  padding: 8px;
374
374
  border-radius: 8px;
375
- transition: background-color .3s ease;
375
+ transition: background-color .3s ease
376
376
  }
377
377
 
378
378
  .message-item:hover {
379
- background-color: rgba(128, 128, 128, .1);
379
+ background-color: rgba(128, 128, 128, .1)
380
380
  }
381
381
 
382
382
  .message-item.new-message {
383
383
  background-color: rgba(76, 175, 80, .2);
384
- animation: highlight 2s ease-out;
384
+ animation: highlight 2s ease-out
385
385
  }
386
386
 
387
387
  .message-item.bot-message {
388
388
  flex-direction: row-reverse;
389
- justify-content: flex-start;
389
+ justify-content: flex-start
390
390
  }
391
391
 
392
392
  .message-item.bot-message .message-avatar {
393
393
  margin-right: 0;
394
- margin-left: 12px;
394
+ margin-left: 12px
395
395
  }
396
396
 
397
397
  .message-item.bot-message .message-content-wrapper {
398
398
  display: flex;
399
399
  flex-direction: column;
400
- align-items: flex-end;
400
+ align-items: flex-end
401
401
  }
402
402
 
403
403
  .message-item.bot-message .message-header {
404
404
  display: flex;
405
405
  align-items: center;
406
406
  justify-content: flex-end;
407
- margin-bottom: 4px;
407
+ margin-bottom: 4px
408
408
  }
409
409
 
410
410
  .message-item.bot-message .message-username {
411
411
  margin-right: 0;
412
412
  margin-left: 8px;
413
- order: 2;
413
+ order: 2
414
414
  }
415
415
 
416
416
  .message-item.bot-message .message-time {
417
- order: 1;
417
+ order: 1
418
418
  }
419
419
 
420
420
  .message-item.bot-message .message-text {
@@ -427,16 +427,16 @@
427
427
  text-align: left;
428
428
  word-wrap: break-word;
429
429
  word-break: break-all;
430
- overflow-wrap: anywhere;
430
+ overflow-wrap: anywhere
431
431
  }
432
432
 
433
433
  @keyframes highlight {
434
434
  0% {
435
- background-color: rgba(76, 175, 80, .3);
435
+ background-color: rgba(76, 175, 80, .3)
436
436
  }
437
437
 
438
438
  100% {
439
- background-color: transparent;
439
+ background-color: transparent
440
440
  }
441
441
  }
442
442
 
@@ -450,42 +450,42 @@
450
450
  align-items: center;
451
451
  justify-content: center;
452
452
  background: #e0e0e0;
453
- flex-shrink: 0;
453
+ flex-shrink: 0
454
454
  }
455
455
 
456
456
  .message-avatar img {
457
457
  width: 100%;
458
458
  height: 100%;
459
- object-fit: cover;
459
+ object-fit: cover
460
460
  }
461
461
 
462
462
  .message-avatar .avatar-placeholder {
463
463
  font-size: 12px;
464
- font-weight: bold;
464
+ font-weight: 700;
465
465
  color: currentColor;
466
- opacity: .7;
466
+ opacity: .7
467
467
  }
468
468
 
469
469
  .message-content-wrapper {
470
- flex: 1;
470
+ flex: 1
471
471
  }
472
472
 
473
473
  .message-header {
474
474
  display: flex;
475
475
  align-items: center;
476
- margin-bottom: 4px;
476
+ margin-bottom: 4px
477
477
  }
478
478
 
479
479
  .message-username {
480
480
  font-weight: 500;
481
481
  color: currentColor;
482
- margin-right: 8px;
482
+ margin-right: 8px
483
483
  }
484
484
 
485
485
  .message-time {
486
486
  font-size: 12px;
487
487
  color: currentColor;
488
- opacity: .5;
488
+ opacity: .5
489
489
  }
490
490
 
491
491
  .message-text {
@@ -496,7 +496,7 @@
496
496
  white-space: pre-wrap;
497
497
  max-width: 100%;
498
498
  overflow-wrap: anywhere;
499
- hyphens: auto;
499
+ hyphens: auto
500
500
  }
501
501
 
502
502
  .message-item:not(.bot-message) .message-text {
@@ -508,7 +508,7 @@
508
508
  max-width: 80%;
509
509
  word-wrap: break-word;
510
510
  word-break: break-all;
511
- overflow-wrap: anywhere;
511
+ overflow-wrap: anywhere
512
512
  }
513
513
 
514
514
  .message-input {
@@ -516,17 +516,17 @@
516
516
  flex-direction: column;
517
517
  padding: 12px 16px 16px 16px;
518
518
  border-top: 1px solid rgba(128, 128, 128, .2);
519
- background: transparent;
519
+ background: 0 0;
520
520
  flex-shrink: 0;
521
521
  position: sticky;
522
522
  bottom: 0;
523
- margin-top: -10px;
523
+ margin-top: -10px
524
524
  }
525
525
 
526
526
  .input-row {
527
527
  display: flex;
528
528
  gap: 8px;
529
- align-items: center;
529
+ align-items: center
530
530
  }
531
531
 
532
532
  .floating-scroll-button {
@@ -542,20 +542,20 @@
542
542
  justify-content: center;
543
543
  cursor: pointer;
544
544
  box-shadow: 0 4px 12px rgba(33, 150, 243, .3);
545
- color: white;
545
+ color: #fff;
546
546
  transition: all .3s ease;
547
547
  z-index: 100;
548
- border: 2px solid rgba(255, 255, 255, .2);
548
+ border: 2px solid rgba(255, 255, 255, .2)
549
549
  }
550
550
 
551
551
  .floating-scroll-button:hover {
552
552
  background: #1976d2;
553
553
  transform: scale(1.1);
554
- box-shadow: 0 6px 16px rgba(33, 150, 243, .4);
554
+ box-shadow: 0 6px 16px rgba(33, 150, 243, .4)
555
555
  }
556
556
 
557
557
  .floating-scroll-button:active {
558
- transform: scale(.95);
558
+ transform: scale(.95)
559
559
  }
560
560
 
561
561
  .input-row input {
@@ -564,39 +564,39 @@
564
564
  padding: 8px 12px;
565
565
  border: 1px solid rgba(128, 128, 128, .3);
566
566
  border-radius: 4px;
567
- outline: none;
568
- background: transparent;
569
- color: currentColor;
567
+ outline: 0;
568
+ background: 0 0;
569
+ color: currentColor
570
570
  }
571
571
 
572
572
  .input-row input:focus {
573
573
  border-color: #2196f3;
574
- box-shadow: 0 0 0 2px rgba(33, 150, 243, .2);
574
+ box-shadow: 0 0 0 2px rgba(33, 150, 243, .2)
575
575
  }
576
576
 
577
577
  .input-row button {
578
578
  padding: 8px 16px;
579
579
  background: #2196f3;
580
- color: white;
580
+ color: #fff;
581
581
  border: none;
582
582
  border-radius: 4px;
583
583
  cursor: pointer;
584
- transition: background-color .2s;
584
+ transition: background-color .2s
585
585
  }
586
586
 
587
587
  .input-row button:hover:not(:disabled) {
588
- background: #1976d2;
588
+ background: #1976d2
589
589
  }
590
590
 
591
591
  .input-row button:disabled {
592
592
  background: rgba(128, 128, 128, .3);
593
- cursor: not-allowed;
593
+ cursor: not-allowed
594
594
  }
595
595
 
596
596
  .input-row button.is-sending {
597
597
  background: #ffc107 !important;
598
598
  color: #333 !important;
599
- cursor: default !important;
599
+ cursor: default !important
600
600
  }
601
601
 
602
602
  .empty-state {
@@ -606,13 +606,13 @@
606
606
  height: 100%;
607
607
  color: currentColor;
608
608
  opacity: .5;
609
- font-size: 14px;
609
+ font-size: 14px
610
610
  }
611
611
 
612
612
  .message-image-container {
613
613
  margin: 8px 0;
614
614
  max-width: 100%;
615
- display: block;
615
+ display: block
616
616
  }
617
617
 
618
618
  .message-image {
@@ -621,10 +621,14 @@
621
621
  display: block;
622
622
  cursor: pointer;
623
623
  transition: transform .2s ease;
624
+ max-width: min(400px, 66.67vw);
625
+ max-height: 200px;
626
+ width: auto;
627
+ height: auto
624
628
  }
625
629
 
626
630
  .message-image:hover {
627
- transform: scale(1.02);
631
+ transform: scale(1.02)
628
632
  }
629
633
 
630
634
  .message-image-loading {
@@ -634,7 +638,7 @@
634
638
  border-radius: 4px;
635
639
  color: currentColor;
636
640
  opacity: .7;
637
- font-size: 12px;
641
+ font-size: 12px
638
642
  }
639
643
 
640
644
  .message-image-error {
@@ -646,7 +650,7 @@
646
650
  color: #f44336;
647
651
  font-size: 12px;
648
652
  max-width: 300px;
649
- word-break: break-word;
653
+ word-break: break-word
650
654
  }
651
655
 
652
656
  .message-text-content {
@@ -654,42 +658,41 @@
654
658
  word-wrap: break-word;
655
659
  word-break: break-all;
656
660
  overflow-wrap: anywhere;
657
- hyphens: auto;
661
+ hyphens: auto
658
662
  }
659
663
 
660
664
  .message-paragraph {
661
665
  display: block;
662
- margin-bottom: 4px;
666
+ margin-bottom: 4px
663
667
  }
664
668
 
665
669
  .message-paragraph:last-child {
666
- margin-bottom: 0;
670
+ margin-bottom: 0
667
671
  }
668
672
 
669
- /* 合并转发消息样式 */
670
673
  .forward-message-container {
671
- border: 1px solid #ffffff;
674
+ border: 1px solid #fff;
672
675
  border-radius: 8px;
673
676
  margin: 4px 0;
674
677
  overflow: hidden;
675
- background: #f9f9f900;
678
+ background: #f9f9f900
676
679
  }
677
680
 
678
681
  .forward-message-preview {
679
682
  padding: 12px;
680
683
  cursor: pointer;
681
- transition: background-color 0.2s;
684
+ transition: background-color .2s
682
685
  }
683
686
 
684
687
  .forward-message-preview:hover {
685
- background: #f0f0f0;
688
+ background: #f0f0f0
686
689
  }
687
690
 
688
691
  .forward-message-title {
689
692
  font-weight: 600;
690
693
  color: #333;
691
694
  margin-bottom: 8px;
692
- font-size: 14px;
695
+ font-size: 14px
693
696
  }
694
697
 
695
698
  .forward-message-preview-item {
@@ -699,7 +702,7 @@
699
702
  line-height: 1.4;
700
703
  word-wrap: break-word;
701
704
  word-break: break-all;
702
- overflow-wrap: anywhere;
705
+ overflow-wrap: anywhere
703
706
  }
704
707
 
705
708
  .forward-message-footer {
@@ -708,51 +711,51 @@
708
711
  align-items: center;
709
712
  margin-top: 8px;
710
713
  padding-top: 8px;
711
- border-top: 1px solid #e8e8e8;
714
+ border-top: 1px solid #e8e8e8
712
715
  }
713
716
 
714
717
  .forward-message-count {
715
718
  color: #2196f3;
716
- font-size: 12px;
719
+ font-size: 12px
717
720
  }
718
721
 
719
722
  .forward-message-toggle {
720
723
  color: #666;
721
- font-size: 12px;
724
+ font-size: 12px
722
725
  }
723
726
 
724
727
  .forward-message-expanded {
725
728
  border-top: 1px solid #e0e0e0;
726
- background: white;
729
+ background: #fff;
727
730
  max-height: 400px;
728
- overflow-y: auto;
731
+ overflow-y: auto
729
732
  }
730
733
 
731
734
  .forwarded-message-item {
732
735
  padding: 12px;
733
- border-bottom: 1px solid #f0f0f0;
736
+ border-bottom: 1px solid #f0f0f0
734
737
  }
735
738
 
736
739
  .forwarded-message-item:last-child {
737
- border-bottom: none;
740
+ border-bottom: none
738
741
  }
739
742
 
740
743
  .forwarded-message-header {
741
744
  display: flex;
742
745
  align-items: center;
743
- margin-bottom: 6px;
746
+ margin-bottom: 6px
744
747
  }
745
748
 
746
749
  .forwarded-message-nickname {
747
750
  font-weight: 600;
748
751
  color: #333;
749
- font-size: 13px;
752
+ font-size: 13px
750
753
  }
751
754
 
752
755
  .forwarded-message-userid {
753
756
  color: #999;
754
757
  font-size: 11px;
755
- margin-left: 6px;
758
+ margin-left: 6px
756
759
  }
757
760
 
758
761
  .forwarded-message-content {
@@ -761,7 +764,7 @@
761
764
  line-height: 1.4;
762
765
  word-wrap: break-word;
763
766
  word-break: break-all;
764
- overflow-wrap: anywhere;
767
+ overflow-wrap: anywhere
765
768
  }
766
769
 
767
770
  .message-at {
@@ -770,7 +773,7 @@
770
773
  padding: 2px 4px;
771
774
  border-radius: 3px;
772
775
  font-weight: 500;
773
- cursor: pointer;
776
+ cursor: pointer
774
777
  }
775
778
 
776
779
  .message-unknown {
@@ -779,7 +782,7 @@
779
782
  padding: 2px 4px;
780
783
  border-radius: 3px;
781
784
  font-style: italic;
782
- cursor: help;
785
+ cursor: help
783
786
  }
784
787
 
785
788
  .input-row input {
@@ -788,53 +791,53 @@
788
791
  padding: 8px 12px;
789
792
  border: 1px solid rgba(128, 128, 128, .3);
790
793
  border-radius: 4px;
791
- outline: none;
792
- background: transparent;
793
- color: currentColor;
794
+ outline: 0;
795
+ background: 0 0;
796
+ color: currentColor
794
797
  }
795
798
 
796
799
  .input-row input:focus {
797
800
  border-color: #2196f3;
798
- box-shadow: 0 0 0 2px rgba(33, 150, 243, .2);
801
+ box-shadow: 0 0 0 2px rgba(33, 150, 243, .2)
799
802
  }
800
803
 
801
804
  .input-row input::placeholder {
802
805
  color: currentColor;
803
- opacity: .5;
806
+ opacity: .5
804
807
  }
805
808
 
806
809
  .input-row button {
807
810
  padding: 8px 16px;
808
811
  background: #2196f3;
809
- color: white;
812
+ color: #fff;
810
813
  border: none;
811
814
  border-radius: 4px;
812
815
  cursor: pointer;
813
816
  transition: background-color .2s;
814
817
  flex-shrink: 0;
815
- white-space: nowrap;
818
+ white-space: nowrap
816
819
  }
817
820
 
818
821
  .input-row button:hover:not(:disabled) {
819
- background: #1976d2;
822
+ background: #1976d2
820
823
  }
821
824
 
822
825
  .input-row button:disabled {
823
826
  background: rgba(128, 128, 128, .3);
824
- cursor: not-allowed;
827
+ cursor: not-allowed
825
828
  }
826
829
 
827
830
  .input-row button.is-sending {
828
831
  background: #ffc107 !important;
829
832
  color: #333 !important;
830
- cursor: default !important;
833
+ cursor: default !important
831
834
  }
832
835
 
833
836
  .message-input .input-row button.is-sending {
834
837
  background: #ffc107 !important;
835
838
  color: #333 !important;
836
839
  cursor: default !important;
837
- border-color: #ffc107 !important;
840
+ border-color: #ffc107 !important
838
841
  }
839
842
 
840
843
  .empty-state {
@@ -844,7 +847,7 @@
844
847
  height: 100%;
845
848
  color: currentColor;
846
849
  opacity: .5;
847
- font-size: 14px;
850
+ font-size: 14px
848
851
  }
849
852
 
850
853
  .empty-state {
@@ -854,7 +857,7 @@
854
857
  height: 100%;
855
858
  color: currentColor;
856
859
  opacity: .5;
857
- font-size: 14px;
860
+ font-size: 14px
858
861
  }
859
862
 
860
863
  .message-text-content {
@@ -862,12 +865,12 @@
862
865
  word-wrap: break-word;
863
866
  word-break: break-all;
864
867
  overflow-wrap: anywhere;
865
- hyphens: auto;
868
+ hyphens: auto
866
869
  }
867
870
 
868
871
  .message-image-container {
869
872
  display: block;
870
- margin: 4px 0;
873
+ margin: 4px 0
871
874
  }
872
875
 
873
876
  .message-image {
@@ -877,11 +880,11 @@
877
880
  cursor: pointer;
878
881
  transition: transform .2s ease;
879
882
  object-fit: contain;
880
- background: rgba(128, 128, 128, .1);
883
+ background: rgba(128, 128, 128, .1)
881
884
  }
882
885
 
883
886
  .message-image:hover {
884
- transform: scale(1.02);
887
+ transform: scale(1.02)
885
888
  }
886
889
 
887
890
  .message-image-loading {
@@ -896,7 +899,7 @@
896
899
  color: currentColor;
897
900
  opacity: .7;
898
901
  font-size: 14px;
899
- border: 1px dashed rgba(128, 128, 128, .3);
902
+ border: 1px dashed rgba(128, 128, 128, .3)
900
903
  }
901
904
 
902
905
  .message-image-error {
@@ -914,7 +917,7 @@
914
917
  font-size: 14px;
915
918
  border: 1px dashed rgba(128, 128, 128, .3);
916
919
  padding: 8px;
917
- text-align: center;
920
+ text-align: center
918
921
  }
919
922
 
920
923
  .message-at {
@@ -925,11 +928,11 @@
925
928
  font-weight: 500;
926
929
  cursor: pointer;
927
930
  display: inline-block;
928
- margin: 0 2px;
931
+ margin: 0 2px
929
932
  }
930
933
 
931
934
  .message-at:hover {
932
- background: rgba(33, 150, 243, .2);
935
+ background: rgba(33, 150, 243, .2)
933
936
  }
934
937
 
935
938
  .message-unknown {
@@ -940,39 +943,39 @@
940
943
  font-size: 12px;
941
944
  display: inline-block;
942
945
  margin: 0 2px;
943
- cursor: help;
946
+ cursor: help
944
947
  }
945
948
 
946
949
  @keyframes pulse {
947
950
 
948
951
  0%,
949
952
  100% {
950
- transform: translate(-50%, -50%) scale(1);
953
+ transform: translate(-50%, -50%) scale(1)
951
954
  }
952
955
 
953
956
  50% {
954
- transform: translate(-50%, -50%) scale(1.1);
957
+ transform: translate(-50%, -50%) scale(1.1)
955
958
  }
956
959
  }
957
960
 
958
961
  .channel-message-count.will-delete {
959
962
  background: #f44336 !important;
960
- animation: shake .3s ease-in-out infinite;
963
+ animation: shake .3s ease-in-out infinite
961
964
  }
962
965
 
963
966
  @keyframes shake {
964
967
 
965
968
  0%,
966
969
  100% {
967
- transform: translateX(0);
970
+ transform: translateX(0)
968
971
  }
969
972
 
970
973
  25% {
971
- transform: translateX(-2px);
974
+ transform: translateX(-2px)
972
975
  }
973
976
 
974
977
  75% {
975
- transform: translateX(2px);
978
+ transform: translateX(2px)
976
979
  }
977
980
  }
978
981
 
@@ -981,7 +984,7 @@ body.dragging-bubble-global {
981
984
  -webkit-user-select: none;
982
985
  -moz-user-select: none;
983
986
  -ms-user-select: none;
984
- cursor: grabbing;
987
+ cursor: grabbing
985
988
  }
986
989
 
987
990
  .drag-threshold-circle {
@@ -992,7 +995,7 @@ body.dragging-bubble-global {
992
995
  z-index: 999;
993
996
  background: rgba(244, 67, 54, .1);
994
997
  box-shadow: 0 0 20px rgba(244, 67, 54, .3);
995
- animation: pulseThreshold 1.5s ease-in-out infinite;
998
+ animation: pulseThreshold 1.5s ease-in-out infinite
996
999
  }
997
1000
 
998
1001
  .context-menu {
@@ -1005,7 +1008,7 @@ body.dragging-bubble-global {
1005
1008
  min-width: 180px;
1006
1009
  backdrop-filter: blur(16px);
1007
1010
  -webkit-backdrop-filter: blur(16px);
1008
- overflow: hidden;
1011
+ overflow: hidden
1009
1012
  }
1010
1013
 
1011
1014
  .context-menu-item {
@@ -1016,32 +1019,32 @@ body.dragging-bubble-global {
1016
1019
  font-weight: 500;
1017
1020
  transition: all .2s ease;
1018
1021
  border-bottom: 1px solid rgba(0, 0, 0, .08);
1019
- position: relative;
1022
+ position: relative
1020
1023
  }
1021
1024
 
1022
1025
  .context-menu-item:last-child {
1023
- border-bottom: none;
1026
+ border-bottom: none
1024
1027
  }
1025
1028
 
1026
1029
  .context-menu-item:hover {
1027
1030
  background: rgba(33, 150, 243, .1);
1028
1031
  color: #1976d2;
1029
- transform: translateX(2px);
1032
+ transform: translateX(2px)
1030
1033
  }
1031
1034
 
1032
1035
  .context-menu-item.danger {
1033
- color: #d32f2f;
1036
+ color: #d32f2f
1034
1037
  }
1035
1038
 
1036
1039
  .context-menu-item.danger:hover {
1037
1040
  background: rgba(244, 67, 54, .1);
1038
- color: #c62828;
1041
+ color: #c62828
1039
1042
  }
1040
1043
 
1041
1044
  .bot-item.pinned,
1042
1045
  .channel-item.pinned {
1043
1046
  background: rgba(255, 193, 7, .1);
1044
- border-left: 3px solid #ffc107;
1047
+ border-left: 3px solid #ffc107
1045
1048
  }
1046
1049
 
1047
1050
  .bot-item.pinned::before,
@@ -1052,48 +1055,48 @@ body.dragging-bubble-global {
1052
1055
  top: 50%;
1053
1056
  transform: translateY(-50%);
1054
1057
  font-size: 12px;
1055
- opacity: .7;
1058
+ opacity: .7
1056
1059
  }
1057
1060
 
1058
1061
  .bot-item.pinned {
1059
1062
  position: relative;
1060
- padding-left: 24px;
1063
+ padding-left: 24px
1061
1064
  }
1062
1065
 
1063
1066
  .channel-item.pinned {
1064
1067
  position: relative;
1065
- padding-left: 24px;
1068
+ padding-left: 24px
1066
1069
  }
1067
1070
 
1068
- @media (prefers-color-scheme: dark) {
1071
+ @media (prefers-color-scheme:dark) {
1069
1072
  .context-menu {
1070
1073
  background: rgba(255, 255, 255, .15);
1071
1074
  border-color: rgba(255, 255, 255, .2);
1072
- box-shadow: 0 8px 32px rgba(0, 0, 0, .4);
1075
+ box-shadow: 0 8px 32px rgba(0, 0, 0, .4)
1073
1076
  }
1074
1077
 
1075
1078
  .context-menu-item {
1076
1079
  color: #fff;
1077
- border-bottom-color: rgba(255, 255, 255, .1);
1080
+ border-bottom-color: rgba(255, 255, 255, .1)
1078
1081
  }
1079
1082
 
1080
1083
  .context-menu-item:hover {
1081
1084
  background: rgba(33, 150, 243, .2);
1082
- color: #64b5f6;
1085
+ color: #64b5f6
1083
1086
  }
1084
1087
 
1085
1088
  .context-menu-item.danger {
1086
- color: #ff8a80;
1089
+ color: #ff8a80
1087
1090
  }
1088
1091
 
1089
1092
  .context-menu-item.danger:hover {
1090
1093
  background: rgba(244, 67, 54, .2);
1091
- color: #ffab91;
1094
+ color: #ffab91
1092
1095
  }
1093
1096
 
1094
1097
  .bot-item.pinned,
1095
1098
  .channel-item.pinned {
1096
- background: rgba(255, 193, 7, .15);
1099
+ background: rgba(255, 193, 7, .15)
1097
1100
  }
1098
1101
  }
1099
1102
 
@@ -1107,13 +1110,13 @@ body.dragging-bubble-global {
1107
1110
  transition: all .3s ease;
1108
1111
  cursor: pointer;
1109
1112
  backdrop-filter: blur(8px);
1110
- -webkit-backdrop-filter: blur(8px);
1113
+ -webkit-backdrop-filter: blur(8px)
1111
1114
  }
1112
1115
 
1113
1116
  .message-share-card:hover {
1114
1117
  transform: translateY(-2px);
1115
1118
  box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
1116
- border-color: rgba(33, 150, 243, .3);
1119
+ border-color: rgba(33, 150, 243, .3)
1117
1120
  }
1118
1121
 
1119
1122
  .share-card-preview {
@@ -1123,7 +1126,7 @@ body.dragging-bubble-global {
1123
1126
  align-items: center;
1124
1127
  justify-content: center;
1125
1128
  padding: 4px;
1126
- border-radius: 12px 12px 0 0;
1129
+ border-radius: 12px 12px 0 0
1127
1130
  }
1128
1131
 
1129
1132
  .share-card-image {
@@ -1133,22 +1136,22 @@ body.dragging-bubble-global {
1133
1136
  object-fit: contain;
1134
1137
  transition: transform .3s ease;
1135
1138
  display: block;
1136
- border-radius: 4px;
1139
+ border-radius: 4px
1137
1140
  }
1138
1141
 
1139
1142
  .message-share-card:hover .share-card-image {
1140
- transform: scale(1.05);
1143
+ transform: scale(1.05)
1141
1144
  }
1142
1145
 
1143
1146
  .share-card-content {
1144
- padding: 8px;
1147
+ padding: 8px
1145
1148
  }
1146
1149
 
1147
1150
  .share-card-header {
1148
1151
  display: flex;
1149
1152
  align-items: center;
1150
1153
  margin-bottom: 12px;
1151
- gap: 12px;
1154
+ gap: 12px
1152
1155
  }
1153
1156
 
1154
1157
  .share-card-icon {
@@ -1156,12 +1159,12 @@ body.dragging-bubble-global {
1156
1159
  height: 32px;
1157
1160
  border-radius: 8px;
1158
1161
  object-fit: cover;
1159
- flex-shrink: 0;
1162
+ flex-shrink: 0
1160
1163
  }
1161
1164
 
1162
1165
  .share-card-app-info {
1163
1166
  flex: 1;
1164
- min-width: 0;
1167
+ min-width: 0
1165
1168
  }
1166
1169
 
1167
1170
  .share-card-app-name {
@@ -1169,7 +1172,7 @@ body.dragging-bubble-global {
1169
1172
  color: currentColor;
1170
1173
  opacity: .7;
1171
1174
  margin-bottom: 2px;
1172
- font-weight: 500;
1175
+ font-weight: 500
1173
1176
  }
1174
1177
 
1175
1178
  .share-card-title {
@@ -1180,7 +1183,7 @@ body.dragging-bubble-global {
1180
1183
  word-wrap: break-word;
1181
1184
  display: -webkit-box;
1182
1185
  -webkit-box-orient: vertical;
1183
- overflow: hidden;
1186
+ overflow: hidden
1184
1187
  }
1185
1188
 
1186
1189
  .share-card-desc {
@@ -1192,7 +1195,7 @@ body.dragging-bubble-global {
1192
1195
  display: -webkit-box;
1193
1196
  -webkit-box-orient: vertical;
1194
1197
  overflow: hidden;
1195
- word-wrap: break-word;
1198
+ word-wrap: break-word
1196
1199
  }
1197
1200
 
1198
1201
  .share-card-link-hint {
@@ -1201,29 +1204,29 @@ body.dragging-bubble-global {
1201
1204
  font-weight: 500;
1202
1205
  display: flex;
1203
1206
  align-items: center;
1204
- gap: 4px;
1207
+ gap: 4px
1205
1208
  }
1206
1209
 
1207
1210
  .share-card-link-hint::after {
1208
1211
  content: "→";
1209
- transition: transform .2s ease;
1212
+ transition: transform .2s ease
1210
1213
  }
1211
1214
 
1212
1215
  .message-share-card:hover .share-card-link-hint::after {
1213
- transform: translateX(2px);
1216
+ transform: translateX(2px)
1214
1217
  }
1215
1218
 
1216
1219
  .message-json-error,
1217
1220
  .message-json-raw {
1218
1221
  display: inline-block;
1219
1222
  margin: 8px 0;
1220
- max-width: 400px;
1223
+ max-width: 400px
1221
1224
  }
1222
1225
 
1223
1226
  .json-error-text {
1224
1227
  color: #f44336;
1225
1228
  font-size: 14px;
1226
- font-weight: 500;
1229
+ font-weight: 500
1227
1230
  }
1228
1231
 
1229
1232
  .json-label {
@@ -1231,11 +1234,11 @@ body.dragging-bubble-global {
1231
1234
  opacity: .7;
1232
1235
  font-size: 12px;
1233
1236
  font-weight: 500;
1234
- margin-bottom: 8px;
1237
+ margin-bottom: 8px
1235
1238
  }
1236
1239
 
1237
1240
  .json-raw-data {
1238
- margin-top: 8px;
1241
+ margin-top: 8px
1239
1242
  }
1240
1243
 
1241
1244
  .json-raw-data summary {
@@ -1247,11 +1250,11 @@ body.dragging-bubble-global {
1247
1250
  border-radius: 4px;
1248
1251
  background: rgba(33, 150, 243, .1);
1249
1252
  display: inline-block;
1250
- transition: background-color .2s ease;
1253
+ transition: background-color .2s ease
1251
1254
  }
1252
1255
 
1253
1256
  .json-raw-data summary:hover {
1254
- background: rgba(33, 150, 243, .2);
1257
+ background: rgba(33, 150, 243, .2)
1255
1258
  }
1256
1259
 
1257
1260
  .json-raw-content {
@@ -1269,29 +1272,31 @@ body.dragging-bubble-global {
1269
1272
  overflow-wrap: anywhere;
1270
1273
  max-height: 200px;
1271
1274
  overflow-y: auto;
1272
- border: 1px solid rgba(128, 128, 128, .2);
1275
+ border: 1px solid rgba(128, 128, 128, .2)
1273
1276
  }
1274
1277
 
1275
- @media (prefers-color-scheme: dark) {
1278
+ @media (prefers-color-scheme:dark) {
1276
1279
  .message-share-card {
1277
1280
  background: rgba(255, 255, 255, .08);
1278
- border-color: rgba(255, 255, 255, .15);
1281
+ border-color: rgba(255, 255, 255, .15)
1279
1282
  }
1280
1283
 
1281
1284
  .message-share-card:hover {
1282
1285
  border-color: rgba(33, 150, 243, .5);
1283
- box-shadow: 0 8px 24px rgba(0, 0, 0, .3);
1286
+ box-shadow: 0 8px 24px rgba(0, 0, 0, .3)
1284
1287
  }
1285
1288
 
1286
1289
  .json-raw-content {
1287
1290
  background: rgba(255, 255, 255, .05);
1288
- border-color: rgba(255, 255, 255, .1);
1291
+ border-color: rgba(255, 255, 255, .1)
1289
1292
  }
1290
1293
  }
1291
1294
 
1292
- @media (max-width: 768px) {
1295
+ @media (max-width:768px) {
1293
1296
  .chat-container {
1294
1297
  position: relative;
1298
+ height: 100vh;
1299
+ height: 100dvh
1295
1300
  }
1296
1301
 
1297
1302
  .bot-list,
@@ -1303,52 +1308,52 @@ body.dragging-bubble-global {
1303
1308
  width: 100%;
1304
1309
  height: 100%;
1305
1310
  transition: transform .3s ease;
1306
- z-index: 1;
1311
+ z-index: 1
1307
1312
  }
1308
1313
 
1309
1314
  .bot-list {
1310
1315
  transform: translateX(0);
1311
- z-index: 3;
1316
+ z-index: 3
1312
1317
  }
1313
1318
 
1314
1319
  .channel-list {
1315
1320
  transform: translateX(100%);
1316
- z-index: 2;
1321
+ z-index: 2
1317
1322
  }
1318
1323
 
1319
1324
  .message-area {
1320
1325
  transform: translateX(200%);
1321
- z-index: 1;
1326
+ z-index: 1
1322
1327
  }
1323
1328
 
1324
1329
  .chat-container.show-channels .bot-list {
1325
- transform: translateX(-100%);
1330
+ transform: translateX(-100%)
1326
1331
  }
1327
1332
 
1328
1333
  .chat-container.show-channels .channel-list {
1329
1334
  transform: translateX(0);
1330
- z-index: 3;
1335
+ z-index: 3
1331
1336
  }
1332
1337
 
1333
1338
  .chat-container.show-channels .message-area {
1334
- transform: translateX(100%);
1339
+ transform: translateX(100%)
1335
1340
  }
1336
1341
 
1337
1342
  .chat-container.show-messages .bot-list {
1338
- transform: translateX(-200%);
1343
+ transform: translateX(-200%)
1339
1344
  }
1340
1345
 
1341
1346
  .chat-container.show-messages .channel-list {
1342
- transform: translateX(-100%);
1347
+ transform: translateX(-100%)
1343
1348
  }
1344
1349
 
1345
1350
  .chat-container.show-messages .message-area {
1346
1351
  transform: translateX(0);
1347
- z-index: 3;
1352
+ z-index: 3
1348
1353
  }
1349
1354
 
1350
1355
  .back-button {
1351
- display: none !important;
1356
+ display: none !important
1352
1357
  }
1353
1358
 
1354
1359
  .panel-header {
@@ -1356,136 +1361,144 @@ body.dragging-bubble-global {
1356
1361
  position: sticky;
1357
1362
  top: 0;
1358
1363
  z-index: 5;
1359
- background: inherit;
1364
+ background: inherit
1360
1365
  }
1361
1366
 
1362
1367
  .panel-header h3 {
1363
- text-align: right;
1368
+ text-align: right
1364
1369
  }
1365
1370
 
1366
1371
  .floating-scroll-button {
1367
1372
  right: 16px;
1368
- bottom: 70px;
1373
+ bottom: calc(90px + env(safe-area-inset-bottom, 0px));
1369
1374
  width: 40px;
1370
1375
  height: 40px;
1376
+ transition: bottom .3s ease
1371
1377
  }
1372
1378
 
1373
1379
  .message-input {
1374
- padding: 8px 12px 12px 12px;
1380
+ padding: 8px 12px calc(12px + env(safe-area-inset-bottom, 0px)) 12px;
1375
1381
  position: fixed;
1376
- bottom: 0;
1382
+ bottom: 20px;
1377
1383
  left: 0;
1378
1384
  right: 0;
1379
1385
  background: inherit;
1380
1386
  border-top: 1px solid rgba(128, 128, 128, .2);
1381
1387
  z-index: 10;
1388
+ min-height: calc(60px + env(safe-area-inset-bottom, 0px));
1389
+ transition: transform .3s ease;
1390
+ transform: translateZ(0)
1382
1391
  }
1383
1392
 
1384
1393
  .input-row input {
1385
1394
  font-size: 16px;
1386
- padding: 10px 12px;
1395
+ padding: 10px 12px
1387
1396
  }
1388
1397
 
1389
1398
  .input-row button {
1390
1399
  padding: 10px 16px;
1391
- font-size: 16px;
1400
+ font-size: 16px
1392
1401
  }
1393
1402
 
1394
1403
  .message-history {
1395
1404
  padding: 12px;
1396
- max-height: calc(100vh - 140px);
1397
- padding-bottom: 80px;
1405
+ max-height: calc(100vh - 140px - env(safe-area-inset-bottom, 0px));
1406
+ max-height: calc(100dvh - 140px - env(safe-area-inset-bottom, 0px));
1407
+ padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
1408
+ overflow-y: auto;
1409
+ -webkit-overflow-scrolling: touch;
1410
+ transition: max-height .3s ease
1398
1411
  }
1399
1412
 
1400
1413
  .message-item {
1401
1414
  margin-bottom: 12px;
1402
- padding: 6px;
1415
+ padding: 6px
1403
1416
  }
1404
1417
 
1405
1418
  .message-text {
1406
- max-width: 90% !important;
1419
+ max-width: 90% !important
1407
1420
  }
1408
1421
 
1409
1422
  .message-avatar {
1410
1423
  width: 28px;
1411
1424
  height: 28px;
1412
- margin-right: 8px;
1425
+ margin-right: 8px
1413
1426
  }
1414
1427
 
1415
1428
  .message-item.bot-message .message-avatar {
1416
- margin-left: 8px;
1429
+ margin-left: 8px
1417
1430
  }
1418
1431
 
1419
1432
  .message-image {
1420
- max-width: 280px;
1421
- max-height: 160px;
1433
+ max-width: min(280px, 66.67vw);
1434
+ max-height: 160px
1422
1435
  }
1423
1436
 
1424
1437
  .quote-content .message-image {
1425
- max-width: 150px;
1426
- max-height: 80px;
1438
+ max-width: min(150px, 50vw);
1439
+ max-height: 80px
1427
1440
  }
1428
1441
 
1429
1442
  .context-menu {
1430
1443
  min-width: 160px;
1431
1444
  backdrop-filter: blur(12px);
1432
- -webkit-backdrop-filter: blur(12px);
1445
+ -webkit-backdrop-filter: blur(12px)
1433
1446
  }
1434
1447
 
1435
1448
  .context-menu-item {
1436
1449
  padding: 14px 16px;
1437
- font-size: 16px;
1450
+ font-size: 16px
1438
1451
  }
1439
1452
 
1440
1453
  .bot-item,
1441
1454
  .channel-item {
1442
- padding: 14px 16px;
1455
+ padding: 14px 16px
1443
1456
  }
1444
1457
 
1445
1458
  .bot-avatar {
1446
1459
  width: 36px;
1447
1460
  height: 36px;
1448
- margin-right: 10px;
1461
+ margin-right: 10px
1449
1462
  }
1450
1463
 
1451
1464
  .bot-name,
1452
1465
  .channel-name {
1453
- font-size: 15px;
1466
+ font-size: 15px
1454
1467
  }
1455
1468
 
1456
1469
  .bot-platform,
1457
1470
  .channel-type {
1458
- font-size: 13px;
1471
+ font-size: 13px
1459
1472
  }
1460
1473
  }
1461
1474
 
1462
- @media (min-width: 769px) and (max-width: 1024px) {
1475
+ @media (min-width:769px) and (max-width:1024px) {
1463
1476
  .bot-list {
1464
1477
  width: 220px;
1465
1478
  min-width: 220px;
1466
- max-width: 220px;
1479
+ max-width: 220px
1467
1480
  }
1468
1481
 
1469
1482
  .channel-list {
1470
1483
  width: 280px;
1471
1484
  min-width: 280px;
1472
- max-width: 280px;
1485
+ max-width: 280px
1473
1486
  }
1474
1487
 
1475
1488
  .message-image {
1476
- max-width: 350px;
1477
- max-height: 180px;
1489
+ max-width: min(350px, 66.67vw);
1490
+ max-height: 180px
1478
1491
  }
1479
1492
  }
1480
1493
 
1481
1494
  .chat-container.swiping {
1482
- overflow: hidden;
1495
+ overflow: hidden
1483
1496
  }
1484
1497
 
1485
1498
  .bot-list.swiping,
1486
1499
  .channel-list.swiping,
1487
1500
  .message-area.swiping {
1488
- transition: none !important;
1501
+ transition: none !important
1489
1502
  }
1490
1503
 
1491
1504
  .swipe-indicator {
@@ -1494,7 +1507,7 @@ body.dragging-bubble-global {
1494
1507
  left: 20px;
1495
1508
  transform: translateY(-50%);
1496
1509
  background: rgba(33, 150, 243, .8);
1497
- color: white;
1510
+ color: #fff;
1498
1511
  padding: 8px 12px;
1499
1512
  border-radius: 20px;
1500
1513
  font-size: 14px;
@@ -1503,25 +1516,24 @@ body.dragging-bubble-global {
1503
1516
  transition: opacity .2s ease;
1504
1517
  pointer-events: none;
1505
1518
  backdrop-filter: blur(8px);
1506
- -webkit-backdrop-filter: blur(8px);
1519
+ -webkit-backdrop-filter: blur(8px)
1507
1520
  }
1508
1521
 
1509
1522
  .swipe-indicator.show {
1510
- opacity: 1;
1523
+ opacity: 1
1511
1524
  }
1512
1525
 
1513
1526
  .message-area .message-content {
1514
- padding-bottom: 80px;
1527
+ padding-bottom: 80px
1515
1528
  }
1516
1529
 
1517
- /* 图片上传相关样式 */
1518
1530
  .image-preview-container {
1519
1531
  display: flex;
1520
1532
  flex-wrap: wrap;
1521
1533
  gap: 8px;
1522
1534
  padding: 8px 0;
1523
1535
  margin-bottom: 8px;
1524
- border-bottom: 1px solid rgba(128, 128, 128, .1);
1536
+ border-bottom: 1px solid rgba(128, 128, 128, .1)
1525
1537
  }
1526
1538
 
1527
1539
  .image-preview-item {
@@ -1531,14 +1543,14 @@ body.dragging-bubble-global {
1531
1543
  border-radius: 8px;
1532
1544
  overflow: hidden;
1533
1545
  border: 2px solid rgba(33, 150, 243, .3);
1534
- background: rgba(128, 128, 128, .1);
1546
+ background: rgba(128, 128, 128, .1)
1535
1547
  }
1536
1548
 
1537
1549
  .preview-image {
1538
1550
  width: 100%;
1539
1551
  height: 100%;
1540
1552
  object-fit: cover;
1541
- display: block;
1553
+ display: block
1542
1554
  }
1543
1555
 
1544
1556
  .remove-image-btn {
@@ -1549,7 +1561,7 @@ body.dragging-bubble-global {
1549
1561
  height: 20px;
1550
1562
  border-radius: 50%;
1551
1563
  background: #f44336;
1552
- color: white;
1564
+ color: #fff;
1553
1565
  border: none;
1554
1566
  cursor: pointer;
1555
1567
  display: flex;
@@ -1557,35 +1569,35 @@ body.dragging-bubble-global {
1557
1569
  justify-content: center;
1558
1570
  font-size: 12px;
1559
1571
  transition: all .2s ease;
1560
- box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
1572
+ box-shadow: 0 2px 4px rgba(0, 0, 0, .2)
1561
1573
  }
1562
1574
 
1563
1575
  .remove-image-btn:hover {
1564
1576
  background: #d32f2f;
1565
- transform: scale(1.1);
1577
+ transform: scale(1.1)
1566
1578
  }
1567
1579
 
1568
1580
  .input-actions {
1569
1581
  position: relative;
1570
- margin-right: 8px;
1582
+ margin-right: 8px
1571
1583
  }
1572
1584
 
1573
1585
  .add-button {
1574
1586
  width: 36px;
1575
1587
  height: 36px;
1576
1588
  border-radius: 12px;
1577
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1589
+ background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1578
1590
  border: none;
1579
- color: white;
1591
+ color: #fff;
1580
1592
  cursor: pointer;
1581
1593
  display: flex;
1582
1594
  align-items: center;
1583
1595
  justify-content: center;
1584
- transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
1596
+ transition: all .3s cubic-bezier(.4, 0, .2, 1);
1585
1597
  flex-shrink: 0;
1586
- box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
1598
+ box-shadow: 0 2px 8px rgba(102, 126, 234, .3);
1587
1599
  position: relative;
1588
- overflow: hidden;
1600
+ overflow: hidden
1589
1601
  }
1590
1602
 
1591
1603
  .add-button::before {
@@ -1595,30 +1607,30 @@ body.dragging-bubble-global {
1595
1607
  left: 0;
1596
1608
  right: 0;
1597
1609
  bottom: 0;
1598
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.1) 100%);
1610
+ background: linear-gradient(135deg, rgba(255, 255, 255, .2) 0, rgba(255, 255, 255, .1) 100%);
1599
1611
  border-radius: 12px;
1600
1612
  opacity: 0;
1601
- transition: opacity .3s ease;
1613
+ transition: opacity .3s ease
1602
1614
  }
1603
1615
 
1604
1616
  .add-button:hover {
1605
1617
  transform: translateY(-2px) scale(1.05);
1606
- box-shadow: 0 4px 16px rgba(102, 126, 234, 0.4);
1618
+ box-shadow: 0 4px 16px rgba(102, 126, 234, .4)
1607
1619
  }
1608
1620
 
1609
1621
  .add-button:hover::before {
1610
- opacity: 1;
1622
+ opacity: 1
1611
1623
  }
1612
1624
 
1613
1625
  .add-button.active {
1614
- background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
1626
+ background: linear-gradient(135deg, #f093fb 0, #f5576c 100%);
1615
1627
  transform: translateY(-2px) scale(1.05) rotate(45deg);
1616
- box-shadow: 0 4px 16px rgba(245, 87, 108, 0.4);
1628
+ box-shadow: 0 4px 16px rgba(245, 87, 108, .4)
1617
1629
  }
1618
1630
 
1619
1631
  .add-button:active {
1620
- transform: translateY(0) scale(0.98);
1621
- transition: all .1s ease;
1632
+ transform: translateY(0) scale(.98);
1633
+ transition: all .1s ease
1622
1634
  }
1623
1635
 
1624
1636
  .action-menu {
@@ -1637,7 +1649,7 @@ body.dragging-bubble-global {
1637
1649
  min-width: 140px;
1638
1650
  transform: translateY(8px);
1639
1651
  opacity: 0;
1640
- animation: menuSlideIn .3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
1652
+ animation: menuSlideIn .3s cubic-bezier(.4, 0, .2, 1) forwards
1641
1653
  }
1642
1654
 
1643
1655
  .action-menu-item {
@@ -1645,16 +1657,16 @@ body.dragging-bubble-global {
1645
1657
  align-items: center;
1646
1658
  gap: 12px;
1647
1659
  padding: 14px 18px;
1648
- background: none;
1660
+ background: 0 0;
1649
1661
  border: none;
1650
1662
  color: #333;
1651
1663
  font-size: 14px;
1652
1664
  font-weight: 500;
1653
1665
  cursor: pointer;
1654
- transition: all .2s cubic-bezier(0.4, 0, 0.2, 1);
1666
+ transition: all .2s cubic-bezier(.4, 0, .2, 1);
1655
1667
  width: 100%;
1656
1668
  text-align: left;
1657
- position: relative;
1669
+ position: relative
1658
1670
  }
1659
1671
 
1660
1672
  .action-menu-item::before {
@@ -1664,209 +1676,203 @@ body.dragging-bubble-global {
1664
1676
  top: 0;
1665
1677
  bottom: 0;
1666
1678
  width: 3px;
1667
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1679
+ background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1668
1680
  transform: scaleY(0);
1669
- transition: transform .2s cubic-bezier(0.4, 0, 0.2, 1);
1681
+ transition: transform .2s cubic-bezier(.4, 0, .2, 1)
1670
1682
  }
1671
1683
 
1672
1684
  .action-menu-item:hover {
1673
- background: linear-gradient(90deg, rgba(102, 126, 234, 0.08) 0%, rgba(118, 75, 162, 0.08) 100%);
1685
+ background: linear-gradient(90deg, rgba(102, 126, 234, .08) 0, rgba(118, 75, 162, .08) 100%);
1674
1686
  color: #667eea;
1675
- transform: translateX(4px);
1687
+ transform: translateX(4px)
1676
1688
  }
1677
1689
 
1678
1690
  .action-menu-item:hover::before {
1679
- transform: scaleY(1);
1691
+ transform: scaleY(1)
1680
1692
  }
1681
1693
 
1682
1694
  .action-menu-item svg {
1683
- flex-shrink: 0;
1695
+ flex-shrink: 0
1684
1696
  }
1685
1697
 
1686
- @media (prefers-color-scheme: dark) {
1698
+ @media (prefers-color-scheme:dark) {
1687
1699
  .action-menu {
1688
1700
  background: rgba(30, 30, 30, .98);
1689
- box-shadow: 0 8px 32px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .2);
1701
+ box-shadow: 0 8px 32px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .2)
1690
1702
  }
1691
1703
 
1692
1704
  .action-menu-item {
1693
- color: #fff;
1705
+ color: #fff
1694
1706
  }
1695
1707
 
1696
1708
  .action-menu-item::before {
1697
- background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
1709
+ background: linear-gradient(135deg, #4facfe 0, #00f2fe 100%)
1698
1710
  }
1699
1711
 
1700
1712
  .action-menu-item:hover {
1701
- background: linear-gradient(90deg, rgba(79, 172, 254, 0.12) 0%, rgba(0, 242, 254, 0.12) 100%);
1702
- color: #4facfe;
1713
+ background: linear-gradient(90deg, rgba(79, 172, 254, .12) 0, rgba(0, 242, 254, .12) 100%);
1714
+ color: #4facfe
1703
1715
  }
1704
1716
 
1705
1717
  .add-button {
1706
- background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
1707
- box-shadow: 0 2px 8px rgba(79, 172, 254, 0.3);
1718
+ background: linear-gradient(135deg, #4facfe 0, #00f2fe 100%);
1719
+ box-shadow: 0 2px 8px rgba(79, 172, 254, .3)
1708
1720
  }
1709
1721
 
1710
1722
  .add-button:hover {
1711
- box-shadow: 0 4px 16px rgba(79, 172, 254, 0.4);
1723
+ box-shadow: 0 4px 16px rgba(79, 172, 254, .4)
1712
1724
  }
1713
1725
 
1714
1726
  .add-button.active {
1715
- background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
1716
- box-shadow: 0 4px 16px rgba(250, 112, 154, 0.4);
1727
+ background: linear-gradient(135deg, #fa709a 0, #fee140 100%);
1728
+ box-shadow: 0 4px 16px rgba(250, 112, 154, .4)
1717
1729
  }
1718
1730
 
1719
1731
  .image-preview-item {
1720
1732
  border-color: rgba(100, 181, 246, .5);
1721
- background: rgba(255, 255, 255, .05);
1733
+ background: rgba(255, 255, 255, .05)
1722
1734
  }
1723
1735
  }
1724
1736
 
1725
- @media (max-width: 768px) {
1737
+ @media (max-width:768px) {
1726
1738
  .image-preview-container {
1727
1739
  padding: 6px 0;
1728
- margin-bottom: 6px;
1740
+ margin-bottom: 6px
1729
1741
  }
1730
1742
 
1731
1743
  .image-preview-item {
1732
1744
  width: 50px;
1733
- height: 50px;
1745
+ height: 50px
1734
1746
  }
1735
1747
 
1736
1748
  .add-button {
1737
1749
  width: 32px;
1738
1750
  height: 32px;
1739
- border-radius: 10px;
1751
+ border-radius: 10px
1740
1752
  }
1741
1753
 
1742
1754
  .action-menu {
1743
- min-width: 100px;
1755
+ min-width: 100px
1744
1756
  }
1745
1757
 
1746
1758
  .action-menu-item {
1747
1759
  padding: 10px 12px;
1748
- font-size: 13px;
1760
+ font-size: 13px
1749
1761
  }
1750
1762
 
1751
1763
  .remove-image-btn {
1752
1764
  width: 18px;
1753
1765
  height: 18px;
1754
1766
  top: -5px;
1755
- right: -5px;
1767
+ right: -5px
1756
1768
  }
1757
1769
  }
1758
1770
 
1759
- /* 消息历史区域的滚动条 */
1760
1771
  .message-history::-webkit-scrollbar {
1761
- width: 6px;
1772
+ width: 6px
1762
1773
  }
1763
1774
 
1764
1775
  .message-history::-webkit-scrollbar-track {
1765
- background: transparent;
1776
+ background: 0 0
1766
1777
  }
1767
1778
 
1768
1779
  .message-history::-webkit-scrollbar-thumb {
1769
1780
  background-color: rgba(144, 147, 153, .3);
1770
1781
  border-radius: 4px;
1771
- transition: background-color .3s;
1782
+ transition: background-color .3s
1772
1783
  }
1773
1784
 
1774
1785
  .message-history::-webkit-scrollbar-thumb:hover {
1775
- background-color: rgba(144, 147, 153, .5);
1786
+ background-color: rgba(144, 147, 153, .5)
1776
1787
  }
1777
1788
 
1778
- /* 机器人列表的滚动条 */
1779
1789
  .bot-items::-webkit-scrollbar {
1780
- width: 6px;
1790
+ width: 6px
1781
1791
  }
1782
1792
 
1783
1793
  .bot-items::-webkit-scrollbar-track {
1784
- background: transparent;
1794
+ background: 0 0
1785
1795
  }
1786
1796
 
1787
1797
  .bot-items::-webkit-scrollbar-thumb {
1788
1798
  background-color: rgba(144, 147, 153, .3);
1789
1799
  border-radius: 4px;
1790
- transition: background-color .3s;
1800
+ transition: background-color .3s
1791
1801
  }
1792
1802
 
1793
1803
  .bot-items::-webkit-scrollbar-thumb:hover {
1794
- background-color: rgba(144, 147, 153, .5);
1804
+ background-color: rgba(144, 147, 153, .5)
1795
1805
  }
1796
1806
 
1797
- /* 频道列表的滚动条 */
1798
1807
  .channel-items::-webkit-scrollbar {
1799
- width: 6px;
1808
+ width: 6px
1800
1809
  }
1801
1810
 
1802
1811
  .channel-items::-webkit-scrollbar-track {
1803
- background: transparent;
1812
+ background: 0 0
1804
1813
  }
1805
1814
 
1806
1815
  .channel-items::-webkit-scrollbar-thumb {
1807
1816
  background-color: rgba(144, 147, 153, .3);
1808
1817
  border-radius: 4px;
1809
- transition: background-color .3s;
1818
+ transition: background-color .3s
1810
1819
  }
1811
1820
 
1812
1821
  .channel-items::-webkit-scrollbar-thumb:hover {
1813
- background-color: rgba(144, 147, 153, .5);
1822
+ background-color: rgba(144, 147, 153, .5)
1814
1823
  }
1815
1824
 
1816
- /* 合并转发消息展开区域的滚动条 */
1817
1825
  .forward-message-expanded::-webkit-scrollbar {
1818
- width: 6px;
1826
+ width: 6px
1819
1827
  }
1820
1828
 
1821
1829
  .forward-message-expanded::-webkit-scrollbar-track {
1822
- background: transparent;
1830
+ background: 0 0
1823
1831
  }
1824
1832
 
1825
1833
  .forward-message-expanded::-webkit-scrollbar-thumb {
1826
1834
  background-color: rgba(144, 147, 153, .3);
1827
1835
  border-radius: 4px;
1828
- transition: background-color .3s;
1836
+ transition: background-color .3s
1829
1837
  }
1830
1838
 
1831
1839
  .forward-message-expanded::-webkit-scrollbar-thumb:hover {
1832
- background-color: rgba(144, 147, 153, .5);
1840
+ background-color: rgba(144, 147, 153, .5)
1833
1841
  }
1834
1842
 
1835
- /* JSON内容区域的滚动条 */
1836
1843
  .json-raw-content::-webkit-scrollbar {
1837
- width: 6px;
1844
+ width: 6px
1838
1845
  }
1839
1846
 
1840
1847
  .json-raw-content::-webkit-scrollbar-track {
1841
- background: transparent;
1848
+ background: 0 0
1842
1849
  }
1843
1850
 
1844
1851
  .json-raw-content::-webkit-scrollbar-thumb {
1845
1852
  background-color: rgba(144, 147, 153, .3);
1846
1853
  border-radius: 4px;
1847
- transition: background-color .3s;
1854
+ transition: background-color .3s
1848
1855
  }
1849
1856
 
1850
1857
  .json-raw-content::-webkit-scrollbar-thumb:hover {
1851
- background-color: rgba(144, 147, 153, .5);
1858
+ background-color: rgba(144, 147, 153, .5)
1852
1859
  }
1853
1860
 
1854
- /* 深色模式下的滚动条样式调整 */
1855
- @media (prefers-color-scheme: dark) {
1861
+ @media (prefers-color-scheme:dark) {
1856
1862
 
1857
- .message-history::-webkit-scrollbar-thumb,
1858
1863
  .bot-items::-webkit-scrollbar-thumb,
1859
1864
  .channel-items::-webkit-scrollbar-thumb,
1860
1865
  .forward-message-expanded::-webkit-scrollbar-thumb,
1861
- .json-raw-content::-webkit-scrollbar-thumb {
1862
- background-color: rgba(255, 255, 255, .2);
1866
+ .json-raw-content::-webkit-scrollbar-thumb,
1867
+ .message-history::-webkit-scrollbar-thumb {
1868
+ background-color: rgba(255, 255, 255, .2)
1863
1869
  }
1864
1870
 
1865
- .message-history::-webkit-scrollbar-thumb:hover,
1866
1871
  .bot-items::-webkit-scrollbar-thumb:hover,
1867
1872
  .channel-items::-webkit-scrollbar-thumb:hover,
1868
1873
  .forward-message-expanded::-webkit-scrollbar-thumb:hover,
1869
- .json-raw-content::-webkit-scrollbar-thumb:hover {
1870
- background-color: rgba(255, 255, 255, .4);
1874
+ .json-raw-content::-webkit-scrollbar-thumb:hover,
1875
+ .message-history::-webkit-scrollbar-thumb:hover {
1876
+ background-color: rgba(255, 255, 255, .4)
1871
1877
  }
1872
1878
  }