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