@ermis-network/ermis-chat-react 1.0.2 → 1.0.4
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.
- package/dist/index.cjs +2112 -1279
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +880 -165
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +219 -2
- package/dist/index.d.ts +219 -2
- package/dist/index.mjs +2023 -1194
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/ChannelHeader.tsx +50 -9
- package/src/components/ChannelList.tsx +4 -3
- package/src/components/ErmisCallProvider.tsx +279 -0
- package/src/components/ErmisCallUI.tsx +634 -0
- package/src/components/MessageRenderers.tsx +37 -10
- package/src/components/Modal.tsx +2 -1
- package/src/context/ChatProvider.tsx +49 -1
- package/src/context/ErmisCallContext.tsx +37 -0
- package/src/hooks/useCallContext.ts +10 -0
- package/src/index.ts +16 -0
- package/src/styles/_add-member-modal.css +12 -29
- package/src/styles/_call-ui.css +743 -0
- package/src/styles/_channel-info.css +34 -34
- package/src/styles/_channel-list.css +7 -7
- package/src/styles/_create-channel-modal.css +15 -15
- package/src/styles/_message-bubble.css +108 -16
- package/src/styles/_message-input.css +4 -4
- package/src/styles/_message-list.css +11 -11
- package/src/styles/_modal.css +23 -36
- package/src/styles/_panel.css +1 -1
- package/src/styles/_search-panel.css +9 -9
- package/src/styles/_tokens.css +42 -0
- package/src/styles/_typing-indicator.css +15 -2
- package/src/styles/_user-picker.css +16 -16
- package/src/styles/index.css +1 -1
- package/src/types.ts +193 -1
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
background: transparent;
|
|
79
79
|
border: none;
|
|
80
80
|
cursor: pointer;
|
|
81
|
-
color: var(--ermis-text-
|
|
81
|
+
color: var(--ermis-text-muted);
|
|
82
82
|
display: flex;
|
|
83
83
|
align-items: center;
|
|
84
84
|
justify-content: center;
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
.ermis-channel-info__cover-edit-btn:hover {
|
|
92
|
-
color: var(--ermis-
|
|
92
|
+
color: var(--ermis-accent);
|
|
93
93
|
background-color: var(--ermis-bg-hover);
|
|
94
94
|
}
|
|
95
95
|
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
.ermis-channel-info__action-btn--danger {
|
|
147
|
-
color: var(--ermis-color-danger
|
|
147
|
+
color: var(--ermis-color-danger);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
.ermis-channel-info__action-btn:hover {
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
.ermis-channel-info__action-btn--danger:hover {
|
|
155
|
-
color: var(--ermis-color-danger
|
|
155
|
+
color: var(--ermis-color-danger);
|
|
156
156
|
opacity: 0.8;
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
font-size: 12px;
|
|
204
204
|
text-transform: uppercase;
|
|
205
205
|
font-weight: 600;
|
|
206
|
-
color: var(--ermis-text-
|
|
206
|
+
color: var(--ermis-text-muted);
|
|
207
207
|
letter-spacing: 0.5px;
|
|
208
208
|
}
|
|
209
209
|
|
|
@@ -258,16 +258,16 @@
|
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
.ermis-channel-info__member-role--owner {
|
|
261
|
-
color: var(--ermis-color-danger
|
|
261
|
+
color: var(--ermis-color-danger);
|
|
262
262
|
}
|
|
263
263
|
.ermis-channel-info__member-role--moder {
|
|
264
|
-
color: var(--ermis-
|
|
264
|
+
color: var(--ermis-accent);
|
|
265
265
|
}
|
|
266
266
|
.ermis-channel-info__member-role--member {
|
|
267
|
-
color: var(--ermis-text-
|
|
267
|
+
color: var(--ermis-text-muted);
|
|
268
268
|
}
|
|
269
269
|
.ermis-channel-info__member-role--pending {
|
|
270
|
-
color: var(--ermis-color-
|
|
270
|
+
color: var(--ermis-color-danger);
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
.ermis-channel-info__add-member-wrap {
|
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
background: transparent;
|
|
283
283
|
border: 1px dashed var(--ermis-border-base);
|
|
284
284
|
border-radius: 8px;
|
|
285
|
-
color: var(--ermis-
|
|
285
|
+
color: var(--ermis-accent);
|
|
286
286
|
display: flex;
|
|
287
287
|
align-items: center;
|
|
288
288
|
justify-content: center;
|
|
@@ -294,7 +294,7 @@
|
|
|
294
294
|
|
|
295
295
|
.ermis-channel-info__add-member-btn:hover {
|
|
296
296
|
background-color: var(--ermis-bg-hover);
|
|
297
|
-
border-color: var(--ermis-
|
|
297
|
+
border-color: var(--ermis-accent);
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
/* ============================================
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
border: none;
|
|
329
329
|
border-bottom: 2px solid transparent;
|
|
330
330
|
cursor: pointer;
|
|
331
|
-
color: var(--ermis-text-
|
|
331
|
+
color: var(--ermis-text-muted);
|
|
332
332
|
font-size: 13px;
|
|
333
333
|
font-weight: 500;
|
|
334
334
|
transition: color 0.2s ease, border-color 0.2s ease;
|
|
@@ -340,8 +340,8 @@
|
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
.ermis-channel-info__media-tab--active {
|
|
343
|
-
color: var(--ermis-
|
|
344
|
-
border-bottom-color: var(--ermis-
|
|
343
|
+
color: var(--ermis-accent);
|
|
344
|
+
border-bottom-color: var(--ermis-accent);
|
|
345
345
|
}
|
|
346
346
|
|
|
347
347
|
.ermis-channel-info__media-tab-label {
|
|
@@ -363,7 +363,7 @@
|
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
.ermis-channel-info__media-tab--active .ermis-channel-info__media-tab-count {
|
|
366
|
-
background: var(--ermis-
|
|
366
|
+
background: var(--ermis-accent);
|
|
367
367
|
color: #fff;
|
|
368
368
|
}
|
|
369
369
|
|
|
@@ -503,7 +503,7 @@
|
|
|
503
503
|
display: flex;
|
|
504
504
|
align-items: center;
|
|
505
505
|
justify-content: center;
|
|
506
|
-
color: var(--ermis-text-
|
|
506
|
+
color: var(--ermis-text-muted);
|
|
507
507
|
overflow: hidden;
|
|
508
508
|
}
|
|
509
509
|
|
|
@@ -532,7 +532,7 @@
|
|
|
532
532
|
|
|
533
533
|
.ermis-channel-info__link-domain {
|
|
534
534
|
font-size: 12px;
|
|
535
|
-
color: var(--ermis-text-
|
|
535
|
+
color: var(--ermis-text-muted);
|
|
536
536
|
white-space: nowrap;
|
|
537
537
|
overflow: hidden;
|
|
538
538
|
text-overflow: ellipsis;
|
|
@@ -540,7 +540,7 @@
|
|
|
540
540
|
|
|
541
541
|
.ermis-channel-info__link-date {
|
|
542
542
|
font-size: 11px;
|
|
543
|
-
color: var(--ermis-text-
|
|
543
|
+
color: var(--ermis-text-muted);
|
|
544
544
|
white-space: nowrap;
|
|
545
545
|
flex-shrink: 0;
|
|
546
546
|
}
|
|
@@ -578,7 +578,7 @@
|
|
|
578
578
|
flex-direction: column;
|
|
579
579
|
align-items: center;
|
|
580
580
|
justify-content: center;
|
|
581
|
-
color: var(--ermis-text-
|
|
581
|
+
color: var(--ermis-text-muted);
|
|
582
582
|
gap: 1px;
|
|
583
583
|
}
|
|
584
584
|
|
|
@@ -587,7 +587,7 @@
|
|
|
587
587
|
font-weight: 700;
|
|
588
588
|
text-transform: uppercase;
|
|
589
589
|
letter-spacing: 0.3px;
|
|
590
|
-
color: var(--ermis-text-
|
|
590
|
+
color: var(--ermis-text-muted);
|
|
591
591
|
line-height: 1;
|
|
592
592
|
}
|
|
593
593
|
|
|
@@ -613,18 +613,18 @@
|
|
|
613
613
|
align-items: center;
|
|
614
614
|
gap: 4px;
|
|
615
615
|
font-size: 12px;
|
|
616
|
-
color: var(--ermis-text-
|
|
616
|
+
color: var(--ermis-text-muted);
|
|
617
617
|
}
|
|
618
618
|
|
|
619
619
|
.ermis-channel-info__file-meta-dot {
|
|
620
|
-
color: var(--ermis-text-
|
|
620
|
+
color: var(--ermis-text-muted);
|
|
621
621
|
}
|
|
622
622
|
|
|
623
623
|
.ermis-channel-info__file-download {
|
|
624
624
|
background: transparent;
|
|
625
625
|
border: none;
|
|
626
626
|
cursor: pointer;
|
|
627
|
-
color: var(--ermis-text-
|
|
627
|
+
color: var(--ermis-text-muted);
|
|
628
628
|
padding: 6px;
|
|
629
629
|
border-radius: 6px;
|
|
630
630
|
display: flex;
|
|
@@ -636,7 +636,7 @@
|
|
|
636
636
|
|
|
637
637
|
.ermis-channel-info__file-download:hover {
|
|
638
638
|
background-color: var(--ermis-bg-secondary);
|
|
639
|
-
color: var(--ermis-
|
|
639
|
+
color: var(--ermis-accent);
|
|
640
640
|
}
|
|
641
641
|
|
|
642
642
|
/* ============================================
|
|
@@ -650,7 +650,7 @@
|
|
|
650
650
|
justify-content: center;
|
|
651
651
|
padding: 40px 16px;
|
|
652
652
|
gap: 12px;
|
|
653
|
-
color: var(--ermis-text-
|
|
653
|
+
color: var(--ermis-text-muted);
|
|
654
654
|
font-size: 13px;
|
|
655
655
|
}
|
|
656
656
|
|
|
@@ -662,7 +662,7 @@
|
|
|
662
662
|
display: flex;
|
|
663
663
|
align-items: center;
|
|
664
664
|
justify-content: center;
|
|
665
|
-
color: var(--ermis-text-
|
|
665
|
+
color: var(--ermis-text-muted);
|
|
666
666
|
}
|
|
667
667
|
|
|
668
668
|
.ermis-channel-info__media-loading {
|
|
@@ -676,7 +676,7 @@
|
|
|
676
676
|
width: 24px;
|
|
677
677
|
height: 24px;
|
|
678
678
|
border: 2px solid var(--ermis-border-base);
|
|
679
|
-
border-top-color: var(--ermis-
|
|
679
|
+
border-top-color: var(--ermis-accent);
|
|
680
680
|
border-radius: 50%;
|
|
681
681
|
animation: ermis-spin 0.7s linear infinite;
|
|
682
682
|
}
|
|
@@ -733,7 +733,7 @@
|
|
|
733
733
|
background: transparent;
|
|
734
734
|
border: none;
|
|
735
735
|
cursor: pointer;
|
|
736
|
-
color: var(--ermis-
|
|
736
|
+
color: var(--ermis-accent);
|
|
737
737
|
font-size: 13px;
|
|
738
738
|
font-weight: 500;
|
|
739
739
|
padding: 4px 8px;
|
|
@@ -783,7 +783,7 @@
|
|
|
783
783
|
}
|
|
784
784
|
|
|
785
785
|
.ermis-channel-info__edit-input:focus {
|
|
786
|
-
border-color: var(--ermis-
|
|
786
|
+
border-color: var(--ermis-accent);
|
|
787
787
|
box-shadow: 0 0 0 2px rgba(0, 95, 255, 0.15);
|
|
788
788
|
}
|
|
789
789
|
|
|
@@ -807,7 +807,7 @@
|
|
|
807
807
|
}
|
|
808
808
|
|
|
809
809
|
.ermis-channel-info__edit-textarea:focus {
|
|
810
|
-
border-color: var(--ermis-
|
|
810
|
+
border-color: var(--ermis-accent);
|
|
811
811
|
box-shadow: 0 0 0 2px rgba(0, 95, 255, 0.15);
|
|
812
812
|
}
|
|
813
813
|
|
|
@@ -831,8 +831,8 @@
|
|
|
831
831
|
}
|
|
832
832
|
|
|
833
833
|
.ermis-channel-info__edit-toggle--on {
|
|
834
|
-
background: var(--ermis-
|
|
835
|
-
border-color: var(--ermis-
|
|
834
|
+
background: var(--ermis-accent);
|
|
835
|
+
border-color: var(--ermis-accent);
|
|
836
836
|
}
|
|
837
837
|
|
|
838
838
|
.ermis-channel-info__edit-toggle-thumb {
|
|
@@ -865,7 +865,7 @@
|
|
|
865
865
|
background: rgba(220, 53, 69, 0.08);
|
|
866
866
|
border: 1px solid rgba(220, 53, 69, 0.2);
|
|
867
867
|
border-radius: 8px;
|
|
868
|
-
color: var(--ermis-color-danger
|
|
868
|
+
color: var(--ermis-color-danger);
|
|
869
869
|
font-size: 13px;
|
|
870
870
|
}
|
|
871
871
|
|
|
@@ -906,7 +906,7 @@
|
|
|
906
906
|
}
|
|
907
907
|
|
|
908
908
|
.ermis-channel-info__edit-btn--save {
|
|
909
|
-
background: var(--ermis-
|
|
909
|
+
background: var(--ermis-accent);
|
|
910
910
|
color: #fff;
|
|
911
911
|
}
|
|
912
912
|
|
|
@@ -161,15 +161,15 @@
|
|
|
161
161
|
|
|
162
162
|
/* --- Pending channel indicator --- */
|
|
163
163
|
.ermis-channel-list__item--pending {
|
|
164
|
-
border-left: 3px solid var(--ermis-color-
|
|
165
|
-
background-color: var(--ermis-
|
|
164
|
+
border-left: 3px solid var(--ermis-color-danger);
|
|
165
|
+
background-color: var(--ermis-bg-hover);
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
.ermis-channel-list__pending-badge {
|
|
169
169
|
display: inline-flex;
|
|
170
170
|
padding: 3px 6px;
|
|
171
|
-
background-color: var(--ermis-
|
|
172
|
-
color: var(--ermis-color-
|
|
171
|
+
background-color: var(--ermis-bg-hover);
|
|
172
|
+
color: var(--ermis-color-danger);
|
|
173
173
|
border-radius: 6px;
|
|
174
174
|
font-size: 0.6rem;
|
|
175
175
|
font-weight: 600;
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
padding: 16px 12px 6px 16px;
|
|
187
187
|
background-color: transparent;
|
|
188
188
|
cursor: pointer;
|
|
189
|
-
color: var(--ermis-text-muted
|
|
189
|
+
color: var(--ermis-text-muted);
|
|
190
190
|
font-size: 0.7rem;
|
|
191
191
|
font-weight: 700;
|
|
192
192
|
text-transform: uppercase;
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
.ermis-channel-list__accordion-header:hover {
|
|
199
|
-
color: var(--ermis-accent
|
|
199
|
+
color: var(--ermis-accent);
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
.ermis-channel-list__accordion-header--static {
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
.ermis-channel-list__accordion-header--static:hover {
|
|
207
|
-
color: var(--ermis-text-muted
|
|
207
|
+
color: var(--ermis-text-muted);
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
.ermis-channel-list__accordion-icon {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
.ermis-create-channel__tabs {
|
|
14
14
|
display: flex;
|
|
15
15
|
gap: 8px;
|
|
16
|
-
background-color: var(--ermis-bg-secondary
|
|
16
|
+
background-color: var(--ermis-bg-secondary);
|
|
17
17
|
padding: 4px;
|
|
18
18
|
border-radius: var(--ermis-radius-md, 0.5rem);
|
|
19
19
|
margin-bottom: var(--ermis-spacing-sm, 0.5rem);
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
text-align: center;
|
|
27
27
|
font-size: var(--ermis-font-size-sm, 0.875rem);
|
|
28
28
|
font-weight: 500;
|
|
29
|
-
color: var(--ermis-text-muted
|
|
29
|
+
color: var(--ermis-text-muted);
|
|
30
30
|
background: transparent;
|
|
31
31
|
border: none;
|
|
32
32
|
cursor: pointer;
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.ermis-create-channel__tab:hover {
|
|
37
|
-
color: var(--ermis-text-primary
|
|
37
|
+
color: var(--ermis-text-primary);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.ermis-create-channel__tab--active {
|
|
41
41
|
background-color: var(--ermis-bg-active, rgba(99, 102, 241, 0.12));
|
|
42
|
-
color: var(--ermis-text-primary
|
|
42
|
+
color: var(--ermis-text-primary);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/* Form Fields */
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
.ermis-create-channel__label {
|
|
53
53
|
font-size: var(--ermis-font-size-sm, 0.875rem);
|
|
54
54
|
font-weight: 500;
|
|
55
|
-
color: var(--ermis-text-primary
|
|
55
|
+
color: var(--ermis-text-primary);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
.ermis-create-channel__input,
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
padding: 10px 12px;
|
|
62
62
|
border-radius: var(--ermis-radius-md, 0.5rem);
|
|
63
63
|
border: 1px solid var(--ermis-border, rgba(255, 255, 255, 0.08));
|
|
64
|
-
background-color: var(--ermis-bg-secondary
|
|
65
|
-
color: var(--ermis-text-primary
|
|
64
|
+
background-color: var(--ermis-bg-secondary);
|
|
65
|
+
color: var(--ermis-text-primary);
|
|
66
66
|
font-size: var(--ermis-font-size-sm, 0.875rem);
|
|
67
67
|
font-family: inherit;
|
|
68
68
|
outline: none;
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
.ermis-create-channel__input:focus,
|
|
73
73
|
.ermis-create-channel__textarea:focus {
|
|
74
|
-
border-color: var(--ermis-accent
|
|
74
|
+
border-color: var(--ermis-accent);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
.ermis-create-channel__textarea {
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
position: relative;
|
|
91
91
|
width: 44px;
|
|
92
92
|
height: 24px;
|
|
93
|
-
background-color: var(--ermis-bg-secondary
|
|
93
|
+
background-color: var(--ermis-bg-secondary);
|
|
94
94
|
border: 1px solid var(--ermis-border, rgba(255, 255, 255, 0.08));
|
|
95
95
|
border-radius: 12px;
|
|
96
96
|
cursor: pointer;
|
|
@@ -99,8 +99,8 @@
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
.ermis-create-channel__toggle--on {
|
|
102
|
-
background-color: var(--ermis-accent
|
|
103
|
-
border-color: var(--ermis-accent
|
|
102
|
+
background-color: var(--ermis-accent);
|
|
103
|
+
border-color: var(--ermis-accent);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
.ermis-create-channel__toggle-thumb {
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
.ermis-create-channel__users-title {
|
|
127
127
|
font-size: var(--ermis-font-size-sm, 0.875rem);
|
|
128
128
|
font-weight: 500;
|
|
129
|
-
color: var(--ermis-text-primary
|
|
129
|
+
color: var(--ermis-text-primary);
|
|
130
130
|
margin-bottom: var(--ermis-spacing-xs, 0.25rem);
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
align-items: center;
|
|
137
137
|
gap: var(--ermis-spacing-xs, 0.25rem);
|
|
138
138
|
padding: var(--ermis-spacing-sm, 0.5rem);
|
|
139
|
-
color: var(--ermis-
|
|
139
|
+
color: var(--ermis-color-danger);
|
|
140
140
|
background-color: rgba(239, 68, 68, 0.1);
|
|
141
141
|
border-radius: var(--ermis-radius-sm, 0.375rem);
|
|
142
142
|
font-size: var(--ermis-font-size-sm, 0.875rem);
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
|
|
167
167
|
.ermis-create-channel__btn--cancel {
|
|
168
168
|
background-color: transparent;
|
|
169
|
-
color: var(--ermis-text-primary
|
|
169
|
+
color: var(--ermis-text-primary);
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
.ermis-create-channel__btn--cancel:hover:not(:disabled) {
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
.ermis-create-channel__btn--create {
|
|
177
|
-
background-color: var(--ermis-accent
|
|
177
|
+
background-color: var(--ermis-accent);
|
|
178
178
|
color: #fff;
|
|
179
179
|
}
|
|
180
180
|
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
.ermis-message-status-icon--failed {
|
|
142
|
-
color: var(--ermis-color-
|
|
142
|
+
color: var(--ermis-color-danger);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
.ermis-message-bubble--own .ermis-message-list__item-time {
|
|
@@ -224,6 +224,64 @@
|
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
/* --- Signal messages (call events) --- */
|
|
227
|
+
.ermis-signal-message {
|
|
228
|
+
display: flex;
|
|
229
|
+
align-items: center;
|
|
230
|
+
gap: var(--ermis-spacing-sm);
|
|
231
|
+
padding: var(--ermis-spacing-sm) var(--ermis-spacing-md);
|
|
232
|
+
border-radius: var(--ermis-radius-md);
|
|
233
|
+
background-color: var(--ermis-signal-bg);
|
|
234
|
+
min-width: 180px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.ermis-signal-message__icon {
|
|
238
|
+
display: flex;
|
|
239
|
+
align-items: center;
|
|
240
|
+
justify-content: center;
|
|
241
|
+
flex-shrink: 0;
|
|
242
|
+
width: 32px;
|
|
243
|
+
height: 32px;
|
|
244
|
+
border-radius: var(--ermis-radius-full);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.ermis-signal-message__icon--success {
|
|
248
|
+
background-color: rgba(84, 214, 44, 0.12);
|
|
249
|
+
color: var(--ermis-signal-success);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.ermis-signal-message__icon--missed {
|
|
253
|
+
background-color: rgba(255, 72, 66, 0.12);
|
|
254
|
+
color: var(--ermis-signal-missed);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.ermis-signal-message__body {
|
|
258
|
+
display: flex;
|
|
259
|
+
flex-direction: column;
|
|
260
|
+
gap: 1px;
|
|
261
|
+
min-width: 0;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.ermis-signal-message__text {
|
|
265
|
+
font-size: var(--ermis-font-size-sm);
|
|
266
|
+
line-height: 1.4;
|
|
267
|
+
word-break: break-word;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.ermis-signal-message__text--success {
|
|
271
|
+
color: var(--ermis-signal-success);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.ermis-signal-message__text--missed {
|
|
275
|
+
color: var(--ermis-signal-missed);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.ermis-signal-message__duration {
|
|
279
|
+
font-size: var(--ermis-font-size-xs);
|
|
280
|
+
color: var(--ermis-text-muted);
|
|
281
|
+
line-height: 1.3;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/* Legacy class kept for backward compatibility */
|
|
227
285
|
.ermis-message-list__signal-text {
|
|
228
286
|
font-size: var(--ermis-font-size-sm);
|
|
229
287
|
color: inherit;
|
|
@@ -231,6 +289,33 @@
|
|
|
231
289
|
word-break: break-word;
|
|
232
290
|
}
|
|
233
291
|
|
|
292
|
+
/* --- Signal message inside own bubble (accent bg) --- */
|
|
293
|
+
.ermis-message-bubble--own .ermis-signal-message {
|
|
294
|
+
background-color: var(--ermis-signal-own-bg);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.ermis-message-bubble--own .ermis-signal-message__icon--success {
|
|
298
|
+
background-color: rgba(134, 239, 172, 0.2);
|
|
299
|
+
color: var(--ermis-signal-own-success);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.ermis-message-bubble--own .ermis-signal-message__icon--missed {
|
|
303
|
+
background-color: rgba(252, 165, 165, 0.2);
|
|
304
|
+
color: var(--ermis-signal-own-missed);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.ermis-message-bubble--own .ermis-signal-message__text--success {
|
|
308
|
+
color: var(--ermis-signal-own-success);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.ermis-message-bubble--own .ermis-signal-message__text--missed {
|
|
312
|
+
color: var(--ermis-signal-own-missed);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.ermis-message-bubble--own .ermis-signal-message__duration {
|
|
316
|
+
color: var(--ermis-signal-own-duration);
|
|
317
|
+
}
|
|
318
|
+
|
|
234
319
|
/* --- Attachments --- */
|
|
235
320
|
|
|
236
321
|
/* When message has attachments, constrain entire content column (quote + bubble) */
|
|
@@ -304,7 +389,7 @@
|
|
|
304
389
|
width: 100%;
|
|
305
390
|
max-width: 300px;
|
|
306
391
|
min-height: 120px;
|
|
307
|
-
background-color: var(--ermis-bg-hover
|
|
392
|
+
background-color: var(--ermis-bg-hover);
|
|
308
393
|
}
|
|
309
394
|
|
|
310
395
|
/* Blurred thumbnail preview (shown while full image loads) */
|
|
@@ -328,12 +413,7 @@
|
|
|
328
413
|
width: 100%;
|
|
329
414
|
height: 100%;
|
|
330
415
|
z-index: 1;
|
|
331
|
-
background: linear-gradient(
|
|
332
|
-
110deg,
|
|
333
|
-
var(--ermis-bg-hover, #2a2a4a) 30%,
|
|
334
|
-
var(--ermis-bg-active, #3a3a5a) 50%,
|
|
335
|
-
var(--ermis-bg-hover, #2a2a4a) 70%
|
|
336
|
-
);
|
|
416
|
+
background: linear-gradient(110deg, var(--ermis-bg-hover) 30%, var(--ermis-bg-active) 50%, var(--ermis-bg-hover) 70%);
|
|
337
417
|
background-size: 200% 100%;
|
|
338
418
|
animation: ermis-shimmer 1.5s ease-in-out infinite;
|
|
339
419
|
}
|
|
@@ -552,17 +632,29 @@
|
|
|
552
632
|
padding-top: 2px;
|
|
553
633
|
}
|
|
554
634
|
|
|
635
|
+
@keyframes ermis-receipt-pop {
|
|
636
|
+
0% {
|
|
637
|
+
opacity: 0;
|
|
638
|
+
transform: scale(0.5) translateY(5px);
|
|
639
|
+
}
|
|
640
|
+
100% {
|
|
641
|
+
opacity: 1;
|
|
642
|
+
transform: scale(1) translateY(0);
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
|
|
555
646
|
.ermis-read-receipts__avatars {
|
|
556
647
|
display: flex;
|
|
557
648
|
flex-direction: row;
|
|
558
649
|
align-items: center;
|
|
559
650
|
cursor: default;
|
|
560
651
|
position: relative;
|
|
652
|
+
animation: ermis-receipt-pop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
|
|
561
653
|
}
|
|
562
654
|
|
|
563
655
|
.ermis-read-receipts__avatar {
|
|
564
656
|
flex-shrink: 0;
|
|
565
|
-
border: 1.5px solid var(--ermis-bg-primary
|
|
657
|
+
border: 1.5px solid var(--ermis-bg-primary);
|
|
566
658
|
border-radius: 50%;
|
|
567
659
|
box-sizing: content-box;
|
|
568
660
|
}
|
|
@@ -579,12 +671,12 @@
|
|
|
579
671
|
width: 16px;
|
|
580
672
|
height: 16px;
|
|
581
673
|
border-radius: 50%;
|
|
582
|
-
background-color: var(--ermis-bg-hover
|
|
583
|
-
color: var(--ermis-text-muted
|
|
674
|
+
background-color: var(--ermis-bg-hover);
|
|
675
|
+
color: var(--ermis-text-muted);
|
|
584
676
|
font-size: 0.5rem;
|
|
585
677
|
font-weight: 700;
|
|
586
678
|
margin-left: -4px;
|
|
587
|
-
border: 1.5px solid var(--ermis-bg-primary
|
|
679
|
+
border: 1.5px solid var(--ermis-bg-primary);
|
|
588
680
|
box-sizing: content-box;
|
|
589
681
|
flex-shrink: 0;
|
|
590
682
|
}
|
|
@@ -618,8 +710,8 @@
|
|
|
618
710
|
display: flex;
|
|
619
711
|
flex-direction: column;
|
|
620
712
|
gap: 8px;
|
|
621
|
-
background-color: var(--ermis-bg-secondary
|
|
622
|
-
border: 1px solid var(--ermis-border
|
|
713
|
+
background-color: var(--ermis-bg-secondary);
|
|
714
|
+
border: 1px solid var(--ermis-border);
|
|
623
715
|
border-radius: var(--ermis-radius-md, 8px);
|
|
624
716
|
padding: var(--ermis-spacing-xs, 6px) var(--ermis-spacing-sm, 8px);
|
|
625
717
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
|
|
@@ -643,7 +735,7 @@
|
|
|
643
735
|
|
|
644
736
|
.ermis-read-receipts__tooltip-name {
|
|
645
737
|
font-size: var(--ermis-font-size-xs, 0.75rem);
|
|
646
|
-
color: var(--ermis-text-primary
|
|
738
|
+
color: var(--ermis-text-primary);
|
|
647
739
|
white-space: nowrap;
|
|
648
740
|
overflow: hidden;
|
|
649
741
|
text-overflow: ellipsis;
|
|
@@ -651,6 +743,6 @@
|
|
|
651
743
|
|
|
652
744
|
.ermis-read-receipts__tooltip-time {
|
|
653
745
|
font-size: 0.625rem;
|
|
654
|
-
color: var(--ermis-text-muted
|
|
746
|
+
color: var(--ermis-text-muted);
|
|
655
747
|
white-space: nowrap;
|
|
656
748
|
}
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
justify-content: center;
|
|
345
345
|
gap: var(--ermis-spacing-sm);
|
|
346
346
|
padding: var(--ermis-spacing-md) var(--ermis-spacing-lg);
|
|
347
|
-
color: var(--ermis-text-secondary
|
|
347
|
+
color: var(--ermis-text-secondary);
|
|
348
348
|
font-size: var(--ermis-font-size-sm);
|
|
349
349
|
font-weight: 500;
|
|
350
350
|
user-select: none;
|
|
@@ -360,14 +360,14 @@
|
|
|
360
360
|
---------------------------------------------------------- */
|
|
361
361
|
.ermis-message-input__keyword-banner {
|
|
362
362
|
padding: var(--ermis-spacing-sm) var(--ermis-spacing-md);
|
|
363
|
-
background-color: var(--ermis-bg-
|
|
363
|
+
background-color: var(--ermis-bg-hover);
|
|
364
364
|
border-radius: var(--ermis-radius-md) var(--ermis-radius-md) 0 0;
|
|
365
365
|
font-size: var(--ermis-font-size-sm, 13px);
|
|
366
|
-
color: var(--ermis-
|
|
366
|
+
color: var(--ermis-color-danger);
|
|
367
367
|
display: flex;
|
|
368
368
|
align-items: center;
|
|
369
369
|
gap: var(--ermis-spacing-sm);
|
|
370
|
-
border-bottom: 1px solid var(--ermis-
|
|
370
|
+
border-bottom: 1px solid var(--ermis-color-danger);
|
|
371
371
|
}
|
|
372
372
|
|
|
373
373
|
.ermis-message-input__permission-banner,
|