@ermis-network/ermis-chat-react 2.0.0 → 2.0.1
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/README.md +144 -0
- package/dist/index.cjs +5087 -11279
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +632 -152
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +273 -9
- package/dist/index.d.ts +273 -9
- package/dist/index.mjs +5085 -11295
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/Channel.tsx +0 -3
- package/src/components/ChannelActions.tsx +6 -1
- package/src/components/ChannelHeader.tsx +8 -32
- package/src/components/ChannelInfo/AddMemberModal.tsx +7 -1
- package/src/components/ChannelInfo/ChannelInfo.tsx +82 -2
- package/src/components/ChannelInfo/EditChannelModal.tsx +2 -2
- package/src/components/ChannelInfo/MediaGridItem.tsx +215 -78
- package/src/components/ChannelInfo/useChannelInfoTabs.tsx +170 -129
- package/src/components/ChannelList.tsx +72 -13
- package/src/components/CreateChannelModal.tsx +131 -12
- package/src/components/FilesPreview.tsx +8 -12
- package/src/components/FlatTopicGroupItem.tsx +27 -16
- package/src/components/ForwardMessageModal.tsx +11 -3
- package/src/components/MediaLightbox.tsx +444 -304
- package/src/components/MessageActionsBox.tsx +2 -0
- package/src/components/MessageInput.tsx +41 -12
- package/src/components/MessageItem.tsx +70 -25
- package/src/components/MessageQuickReactions.tsx +131 -128
- package/src/components/MessageReactions.tsx +47 -2
- package/src/components/MessageRenderers.tsx +1030 -433
- package/src/components/PinnedMessages.tsx +40 -12
- package/src/components/QuotedMessagePreview.tsx +99 -8
- package/src/components/RecoveryPin/RecoveryPin.tsx +279 -0
- package/src/components/RecoveryPin/index.ts +19 -0
- package/src/components/TopicList.tsx +20 -5
- package/src/components/TypingIndicator.tsx +3 -3
- package/src/components/UserPicker.tsx +26 -25
- package/src/components/VirtualMessageList.tsx +345 -125
- package/src/context/ChatProvider.tsx +27 -1
- package/src/hooks/useChannelListUpdates.ts +22 -1
- package/src/hooks/useChannelMessages.ts +338 -51
- package/src/hooks/useChannelRowUpdates.ts +18 -6
- package/src/hooks/useChatUser.ts +9 -1
- package/src/hooks/useE2eeAttachmentRenderer.ts +204 -0
- package/src/hooks/useE2eeFileUpload.ts +38 -0
- package/src/hooks/useFileUpload.ts +25 -5
- package/src/hooks/useForwardMessage.ts +210 -13
- package/src/hooks/useLoadMessages.ts +16 -4
- package/src/hooks/useMentions.ts +60 -6
- package/src/hooks/useMessageActions.ts +14 -8
- package/src/hooks/useMessageSend.ts +64 -12
- package/src/hooks/usePendingE2eeSends.ts +29 -0
- package/src/hooks/useRecoveryPin.ts +287 -0
- package/src/hooks/useScrollToMessage.ts +29 -4
- package/src/hooks/useTopicGroupUpdates.ts +49 -11
- package/src/index.ts +23 -0
- package/src/messageTypeUtils.ts +14 -0
- package/src/styles/_channel-info.css +9 -0
- package/src/styles/_channel-list.css +37 -14
- package/src/styles/_media-lightbox.css +36 -3
- package/src/styles/_message-bubble.css +381 -41
- package/src/styles/_message-input.css +8 -0
- package/src/styles/_message-list.css +67 -10
- package/src/styles/_message-quick-reactions.css +101 -59
- package/src/styles/_message-reactions.css +18 -32
- package/src/styles/_recovery-pin.css +97 -0
- package/src/styles/_tokens.css +5 -5
- package/src/styles/_typing-indicator.css +23 -13
- package/src/styles/index.css +1 -0
- package/src/types.ts +115 -1
- package/src/utils/avatarColors.ts +1 -1
- package/src/utils.ts +38 -18
package/dist/index.css
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
--ermis-accent: #6366f1;
|
|
11
11
|
--ermis-accent-hover: #818cf8;
|
|
12
12
|
--ermis-text-primary: #e5e7eb;
|
|
13
|
-
--ermis-text-secondary: #
|
|
14
|
-
--ermis-text-muted: #
|
|
13
|
+
--ermis-text-secondary: #abb4c6;
|
|
14
|
+
--ermis-text-muted: #abb4c6;
|
|
15
15
|
--ermis-color-danger: #ef4444;
|
|
16
16
|
--ermis-color-danger-hover: #dc2626;
|
|
17
17
|
--ermis-color-success: #22c55e;
|
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
--ermis-quote-own-author: #ffffff;
|
|
29
29
|
--ermis-quote-own-text: rgba(255, 255, 255, 0.75);
|
|
30
30
|
--ermis-font-family:
|
|
31
|
+
"SF Pro Display",
|
|
32
|
+
"SF Pro Text",
|
|
31
33
|
-apple-system,
|
|
32
34
|
BlinkMacSystemFont,
|
|
33
35
|
"Segoe UI",
|
|
@@ -79,14 +81,14 @@
|
|
|
79
81
|
--ermis-accent-hover: #0d00ff;
|
|
80
82
|
--ermis-text-primary: #111827;
|
|
81
83
|
--ermis-text-secondary: #6b7280;
|
|
82
|
-
--ermis-text-muted: #
|
|
84
|
+
--ermis-text-muted: #545f71;
|
|
83
85
|
--ermis-color-danger: #ef4444;
|
|
84
86
|
--ermis-color-danger-hover: #dc2626;
|
|
85
87
|
--ermis-color-success: #10b981;
|
|
86
88
|
--ermis-color-success-hover: #059669;
|
|
87
89
|
--ermis-bubble-own-bg: var(--ermis-accent);
|
|
88
90
|
--ermis-bubble-own-text: #ffffff;
|
|
89
|
-
--ermis-bubble-other-bg: #
|
|
91
|
+
--ermis-bubble-other-bg: #f0f2f5;
|
|
90
92
|
--ermis-bubble-other-text: var(--ermis-text-primary);
|
|
91
93
|
--ermis-quote-other-bg: rgba(99, 102, 241, 0.06);
|
|
92
94
|
--ermis-quote-other-bg-hover: rgba(99, 102, 241, 0.12);
|
|
@@ -354,10 +356,10 @@
|
|
|
354
356
|
.ermis-channel-header {
|
|
355
357
|
display: flex;
|
|
356
358
|
align-items: center;
|
|
357
|
-
gap: var(--ermis-spacing-
|
|
359
|
+
gap: var(--ermis-spacing-sm);
|
|
358
360
|
padding: var(--ermis-spacing-md) var(--ermis-spacing-lg);
|
|
359
361
|
border-bottom: 1px solid var(--ermis-border);
|
|
360
|
-
background-color: var(--ermis-bg-
|
|
362
|
+
background-color: var(--ermis-bg-primary);
|
|
361
363
|
font-family: var(--ermis-font-family);
|
|
362
364
|
}
|
|
363
365
|
.ermis-channel-header__info {
|
|
@@ -383,15 +385,15 @@
|
|
|
383
385
|
text-overflow: ellipsis;
|
|
384
386
|
}
|
|
385
387
|
.ermis-channel-header__topic-avatar {
|
|
386
|
-
width:
|
|
387
|
-
height:
|
|
388
|
-
min-width:
|
|
388
|
+
width: 44px;
|
|
389
|
+
height: 44px;
|
|
390
|
+
min-width: 44px;
|
|
389
391
|
border-radius: var(--ermis-radius-md);
|
|
390
392
|
background-color: var(--ermis-bg-primary);
|
|
391
393
|
display: flex;
|
|
392
394
|
align-items: center;
|
|
393
395
|
justify-content: center;
|
|
394
|
-
font-size:
|
|
396
|
+
font-size: 24px;
|
|
395
397
|
color: var(--ermis-text-secondary);
|
|
396
398
|
}
|
|
397
399
|
.ermis-channel-header__subtitle {
|
|
@@ -461,7 +463,7 @@
|
|
|
461
463
|
display: flex;
|
|
462
464
|
align-items: center;
|
|
463
465
|
gap: var(--ermis-spacing-md);
|
|
464
|
-
padding: var(--ermis-spacing-md) var(--ermis-spacing-lg);
|
|
466
|
+
padding: calc(var(--ermis-spacing-md) - 0.05rem) var(--ermis-spacing-lg);
|
|
465
467
|
cursor: pointer;
|
|
466
468
|
border-left: 2px solid transparent;
|
|
467
469
|
transition: background-color var(--ermis-transition), border-color var(--ermis-transition);
|
|
@@ -500,6 +502,29 @@
|
|
|
500
502
|
.ermis-channel-list__online-dot--offline {
|
|
501
503
|
background-color: var(--ermis-text-muted);
|
|
502
504
|
}
|
|
505
|
+
.ermis-channel-list__avatar-unread-badge {
|
|
506
|
+
display: none;
|
|
507
|
+
position: absolute;
|
|
508
|
+
top: -2px;
|
|
509
|
+
right: -2px;
|
|
510
|
+
min-width: 16px;
|
|
511
|
+
height: 16px;
|
|
512
|
+
padding: 0 4px;
|
|
513
|
+
border-radius: var(--ermis-radius-full);
|
|
514
|
+
background-color: var(--ermis-color-danger, #ef4444);
|
|
515
|
+
color: #fff;
|
|
516
|
+
font-size: 9px;
|
|
517
|
+
font-weight: 700;
|
|
518
|
+
line-height: 1;
|
|
519
|
+
border: 1.5px solid var(--ermis-bg-primary);
|
|
520
|
+
z-index: 2;
|
|
521
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
522
|
+
}
|
|
523
|
+
.channel-sidebar-collapsed .ermis-channel-list__avatar-unread-badge {
|
|
524
|
+
display: flex;
|
|
525
|
+
align-items: center;
|
|
526
|
+
justify-content: center;
|
|
527
|
+
}
|
|
503
528
|
.ermis-channel-list__item-top-row {
|
|
504
529
|
display: flex;
|
|
505
530
|
align-items: baseline;
|
|
@@ -514,7 +539,7 @@
|
|
|
514
539
|
margin-top: 2px;
|
|
515
540
|
}
|
|
516
541
|
.ermis-channel-list__item-name {
|
|
517
|
-
font-size: var(--ermis-font-size-sm);
|
|
542
|
+
font-size: calc(var(--ermis-font-size-sm) + 1px);
|
|
518
543
|
font-weight: 500;
|
|
519
544
|
color: var(--ermis-text-primary);
|
|
520
545
|
white-space: nowrap;
|
|
@@ -530,7 +555,7 @@
|
|
|
530
555
|
margin-top: 2px;
|
|
531
556
|
}
|
|
532
557
|
.ermis-channel-list__item-last-message {
|
|
533
|
-
font-size: var(--ermis-font-size-
|
|
558
|
+
font-size: calc(var(--ermis-font-size-sm));
|
|
534
559
|
color: var(--ermis-text-muted);
|
|
535
560
|
white-space: nowrap;
|
|
536
561
|
overflow: hidden;
|
|
@@ -576,8 +601,7 @@
|
|
|
576
601
|
color: var(--ermis-text-secondary);
|
|
577
602
|
}
|
|
578
603
|
.ermis-channel-list__item-last-message-source {
|
|
579
|
-
color: var(--ermis-
|
|
580
|
-
font-weight: 500;
|
|
604
|
+
color: var(--ermis-text-secondary);
|
|
581
605
|
}
|
|
582
606
|
.ermis-channel-list__item-actions-wrapper,
|
|
583
607
|
.ermis-channel-list__topic-actions-wrapper {
|
|
@@ -616,12 +640,11 @@
|
|
|
616
640
|
color: var(--ermis-accent);
|
|
617
641
|
}
|
|
618
642
|
.ermis-channel-list__item--unread .ermis-channel-list__item-name {
|
|
619
|
-
font-weight:
|
|
643
|
+
font-weight: 600;
|
|
620
644
|
color: var(--ermis-text-primary);
|
|
621
645
|
}
|
|
622
646
|
.ermis-channel-list__item--unread .ermis-channel-list__item-last-message {
|
|
623
647
|
color: var(--ermis-text-secondary);
|
|
624
|
-
font-weight: 600;
|
|
625
648
|
}
|
|
626
649
|
.ermis-channel-list__unread-badge {
|
|
627
650
|
display: inline-flex;
|
|
@@ -820,17 +843,24 @@
|
|
|
820
843
|
display: flex;
|
|
821
844
|
flex-direction: column;
|
|
822
845
|
flex: 1;
|
|
846
|
+
min-height: 0;
|
|
847
|
+
overflow: hidden;
|
|
823
848
|
font-family: var(--ermis-font-family);
|
|
824
|
-
gap: var(--ermis-spacing-xs);
|
|
825
849
|
position: relative;
|
|
826
850
|
}
|
|
827
851
|
.ermis-message-list__vlist {
|
|
828
852
|
display: flex !important;
|
|
829
853
|
flex-direction: column !important;
|
|
854
|
+
flex: 1;
|
|
855
|
+
min-height: 0;
|
|
856
|
+
overflow-anchor: none;
|
|
830
857
|
padding-left: 1rem;
|
|
831
858
|
padding-right: 1rem;
|
|
832
|
-
padding-top:
|
|
833
|
-
padding-bottom:
|
|
859
|
+
padding-top: 1rem;
|
|
860
|
+
padding-bottom: 0.5rem;
|
|
861
|
+
}
|
|
862
|
+
.ermis-message-list__vlist * {
|
|
863
|
+
overflow-anchor: none;
|
|
834
864
|
}
|
|
835
865
|
.ermis-message-list__vlist > div {
|
|
836
866
|
margin-top: auto;
|
|
@@ -885,12 +915,27 @@
|
|
|
885
915
|
.ermis-message-list__date-separator-label {
|
|
886
916
|
font-size: 11px;
|
|
887
917
|
color: #fff;
|
|
888
|
-
background-color: rgba(0, 0, 0, 0.
|
|
918
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
889
919
|
padding: 4px 12px;
|
|
890
920
|
border-radius: 12px;
|
|
891
921
|
white-space: nowrap;
|
|
892
922
|
font-weight: 500;
|
|
893
923
|
}
|
|
924
|
+
.ermis-message-list__time-separator {
|
|
925
|
+
display: flex;
|
|
926
|
+
align-items: center;
|
|
927
|
+
justify-content: center;
|
|
928
|
+
padding: var(--ermis-spacing-xs) 0;
|
|
929
|
+
margin: var(--ermis-spacing-xs) 0;
|
|
930
|
+
align-self: stretch;
|
|
931
|
+
}
|
|
932
|
+
.ermis-message-list__time-separator-label {
|
|
933
|
+
font-size: 10px;
|
|
934
|
+
color: var(--ermis-text-muted);
|
|
935
|
+
padding: 2px 10px;
|
|
936
|
+
white-space: nowrap;
|
|
937
|
+
font-weight: 400;
|
|
938
|
+
}
|
|
894
939
|
.ermis-message-list__empty {
|
|
895
940
|
display: flex;
|
|
896
941
|
flex-direction: column;
|
|
@@ -917,15 +962,41 @@
|
|
|
917
962
|
font-size: var(--ermis-font-size-sm);
|
|
918
963
|
color: var(--ermis-text-muted);
|
|
919
964
|
}
|
|
965
|
+
.ermis-message-group {
|
|
966
|
+
display: flex;
|
|
967
|
+
align-items: flex-end;
|
|
968
|
+
gap: var(--ermis-spacing-sm);
|
|
969
|
+
width: 100%;
|
|
970
|
+
padding-top: 4px;
|
|
971
|
+
}
|
|
972
|
+
.ermis-message-group--own {
|
|
973
|
+
flex-direction: row-reverse;
|
|
974
|
+
}
|
|
975
|
+
.ermis-message-group--other {
|
|
976
|
+
flex-direction: row;
|
|
977
|
+
}
|
|
978
|
+
.ermis-message-group__avatar-col {
|
|
979
|
+
flex-shrink: 0;
|
|
980
|
+
position: sticky;
|
|
981
|
+
bottom: 0;
|
|
982
|
+
align-self: flex-end;
|
|
983
|
+
z-index: 5;
|
|
984
|
+
}
|
|
985
|
+
.ermis-message-group__messages-col {
|
|
986
|
+
display: flex;
|
|
987
|
+
flex-direction: column;
|
|
988
|
+
min-width: 0;
|
|
989
|
+
max-width: 75%;
|
|
990
|
+
}
|
|
920
991
|
.ermis-message-list__item {
|
|
921
992
|
display: flex;
|
|
922
|
-
align-items: flex-
|
|
993
|
+
align-items: flex-end;
|
|
923
994
|
gap: var(--ermis-spacing-sm);
|
|
924
995
|
width: 100%;
|
|
925
996
|
}
|
|
926
997
|
.ermis-message-list__item--group-single,
|
|
927
998
|
.ermis-message-list__item--group-top {
|
|
928
|
-
padding-top:
|
|
999
|
+
padding-top: 0;
|
|
929
1000
|
}
|
|
930
1001
|
.ermis-message-list__item--group-middle,
|
|
931
1002
|
.ermis-message-list__item--group-bottom {
|
|
@@ -1218,16 +1289,25 @@
|
|
|
1218
1289
|
cursor: pointer;
|
|
1219
1290
|
max-width: 100%;
|
|
1220
1291
|
transition: background-color 0.15s;
|
|
1221
|
-
margin-top: var(--ermis-spacing-sm);
|
|
1222
1292
|
}
|
|
1223
1293
|
.ermis-quoted-message:hover {
|
|
1224
1294
|
background-color: var(--ermis-quote-other-bg-hover);
|
|
1225
1295
|
}
|
|
1296
|
+
.ermis-quoted-message--unavailable {
|
|
1297
|
+
border-left-color: var(--ermis-text-muted);
|
|
1298
|
+
background-color: var(--ermis-bg-hover);
|
|
1299
|
+
}
|
|
1300
|
+
.ermis-quoted-message--unavailable:hover {
|
|
1301
|
+
background-color: var(--ermis-bg-hover);
|
|
1302
|
+
}
|
|
1226
1303
|
.ermis-quoted-message__author {
|
|
1227
1304
|
font-size: var(--ermis-font-size-xs);
|
|
1228
1305
|
font-weight: 600;
|
|
1229
1306
|
color: var(--ermis-accent);
|
|
1230
1307
|
}
|
|
1308
|
+
.ermis-quoted-message--unavailable .ermis-quoted-message__author {
|
|
1309
|
+
color: var(--ermis-text-muted);
|
|
1310
|
+
}
|
|
1231
1311
|
.ermis-quoted-message__text {
|
|
1232
1312
|
font-size: var(--ermis-font-size-xs);
|
|
1233
1313
|
color: var(--ermis-text-muted);
|
|
@@ -1235,14 +1315,20 @@
|
|
|
1235
1315
|
text-overflow: ellipsis;
|
|
1236
1316
|
white-space: nowrap;
|
|
1237
1317
|
}
|
|
1318
|
+
.ermis-quoted-message--unavailable .ermis-quoted-message__text {
|
|
1319
|
+
font-style: italic;
|
|
1320
|
+
}
|
|
1238
1321
|
.ermis-message-list__item-avatar {
|
|
1239
1322
|
flex-shrink: 0;
|
|
1323
|
+
position: sticky;
|
|
1324
|
+
bottom: 0;
|
|
1325
|
+
align-self: flex-end;
|
|
1240
1326
|
}
|
|
1241
1327
|
.ermis-message-list__item-content {
|
|
1242
1328
|
display: flex;
|
|
1243
1329
|
flex-direction: column;
|
|
1244
1330
|
min-width: 0;
|
|
1245
|
-
max-width:
|
|
1331
|
+
max-width: 100%;
|
|
1246
1332
|
gap: 2px;
|
|
1247
1333
|
}
|
|
1248
1334
|
.ermis-message-list__item--own .ermis-message-list__item-content {
|
|
@@ -1250,17 +1336,16 @@
|
|
|
1250
1336
|
}
|
|
1251
1337
|
.ermis-message-list__bubble-wrapper {
|
|
1252
1338
|
display: flex;
|
|
1253
|
-
flex-
|
|
1254
|
-
|
|
1255
|
-
align-items: center;
|
|
1339
|
+
flex-direction: column;
|
|
1340
|
+
align-items: flex-start;
|
|
1256
1341
|
position: relative;
|
|
1257
1342
|
width: 100%;
|
|
1258
1343
|
}
|
|
1259
1344
|
.ermis-message-list__item--own .ermis-message-list__bubble-wrapper {
|
|
1260
|
-
|
|
1345
|
+
align-items: flex-end;
|
|
1261
1346
|
}
|
|
1262
1347
|
.ermis-message-list__item-user {
|
|
1263
|
-
font-size: var(--ermis-font-size-
|
|
1348
|
+
font-size: var(--ermis-font-size-sm);
|
|
1264
1349
|
font-weight: 600;
|
|
1265
1350
|
color: var(--ermis-accent);
|
|
1266
1351
|
margin-bottom: 1px;
|
|
@@ -1273,18 +1358,24 @@
|
|
|
1273
1358
|
opacity: 0.7;
|
|
1274
1359
|
}
|
|
1275
1360
|
.ermis-message-list__item-time {
|
|
1276
|
-
font-size: 0.
|
|
1361
|
+
font-size: 0.6875rem;
|
|
1277
1362
|
color: var(--ermis-text-muted);
|
|
1278
|
-
margin-left: 0;
|
|
1279
|
-
padding-top: 4px;
|
|
1280
1363
|
white-space: nowrap;
|
|
1281
1364
|
line-height: 1;
|
|
1282
|
-
align-self: flex-start;
|
|
1283
|
-
text-align: left;
|
|
1284
1365
|
display: inline-flex;
|
|
1285
1366
|
align-items: center;
|
|
1286
|
-
|
|
1287
|
-
|
|
1367
|
+
gap: 2px;
|
|
1368
|
+
float: right;
|
|
1369
|
+
margin-left: 6px;
|
|
1370
|
+
margin-top: 4px;
|
|
1371
|
+
position: relative;
|
|
1372
|
+
}
|
|
1373
|
+
.ermis-message-list__item-time ~ .ermis-message-list__item-text::after,
|
|
1374
|
+
.ermis-message-list__item-time ~ * .ermis-message-list__item-text::after {
|
|
1375
|
+
content: "";
|
|
1376
|
+
display: inline-block;
|
|
1377
|
+
width: 15px;
|
|
1378
|
+
height: 0;
|
|
1288
1379
|
}
|
|
1289
1380
|
.ermis-message-list__edited-indicator {
|
|
1290
1381
|
margin-right: 2px;
|
|
@@ -1314,10 +1405,47 @@
|
|
|
1314
1405
|
.ermis-message-status-icon--failed {
|
|
1315
1406
|
color: var(--ermis-color-danger);
|
|
1316
1407
|
}
|
|
1408
|
+
.ermis-attachment-upload-overlay {
|
|
1409
|
+
position: absolute;
|
|
1410
|
+
inset: 0;
|
|
1411
|
+
z-index: 3;
|
|
1412
|
+
display: inline-flex;
|
|
1413
|
+
flex-direction: column;
|
|
1414
|
+
align-items: center;
|
|
1415
|
+
justify-content: center;
|
|
1416
|
+
gap: 6px;
|
|
1417
|
+
color: #fff;
|
|
1418
|
+
font-size: 12px;
|
|
1419
|
+
font-weight: 700;
|
|
1420
|
+
line-height: 1;
|
|
1421
|
+
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.36);
|
|
1422
|
+
background: rgba(17, 24, 39, 0.34);
|
|
1423
|
+
pointer-events: none;
|
|
1424
|
+
}
|
|
1425
|
+
.ermis-voice-upload-wrap {
|
|
1426
|
+
position: relative;
|
|
1427
|
+
}
|
|
1428
|
+
.ermis-voice-upload-progress {
|
|
1429
|
+
position: absolute;
|
|
1430
|
+
top: -6px;
|
|
1431
|
+
right: -6px;
|
|
1432
|
+
min-width: 30px;
|
|
1433
|
+
padding: 3px 6px;
|
|
1434
|
+
border-radius: 999px;
|
|
1435
|
+
background: rgba(17, 24, 39, 0.72);
|
|
1436
|
+
color: #fff;
|
|
1437
|
+
font-size: 11px;
|
|
1438
|
+
font-weight: 700;
|
|
1439
|
+
line-height: 1;
|
|
1440
|
+
}
|
|
1317
1441
|
.ermis-message-bubble--own .ermis-message-list__item-time {
|
|
1318
1442
|
color: var(--ermis-bubble-own-text);
|
|
1319
1443
|
opacity: 0.6;
|
|
1320
1444
|
}
|
|
1445
|
+
.ermis-message-bubble--own .ermis-message-list__item-time ~ .ermis-message-list__item-text::after,
|
|
1446
|
+
.ermis-message-bubble--own .ermis-message-list__item-time ~ * .ermis-message-list__item-text::after {
|
|
1447
|
+
width: 30px;
|
|
1448
|
+
}
|
|
1321
1449
|
.ermis-message-list__item-text {
|
|
1322
1450
|
font-size: var(--ermis-font-size-sm);
|
|
1323
1451
|
line-height: 1.5;
|
|
@@ -1364,35 +1492,39 @@
|
|
|
1364
1492
|
}
|
|
1365
1493
|
.ermis-message-bubble {
|
|
1366
1494
|
position: relative;
|
|
1367
|
-
display:
|
|
1368
|
-
|
|
1369
|
-
align-items: flex-start;
|
|
1370
|
-
padding: var(--ermis-spacing-sm) var(--ermis-spacing-md);
|
|
1495
|
+
display: flow-root;
|
|
1496
|
+
padding: 8px 10px;
|
|
1371
1497
|
border-radius: var(--ermis-radius-lg);
|
|
1372
1498
|
word-break: break-word;
|
|
1373
|
-
|
|
1499
|
+
overflow: visible;
|
|
1374
1500
|
}
|
|
1375
1501
|
.ermis-message-bubble--own {
|
|
1376
1502
|
background-color: var(--ermis-bubble-own-bg);
|
|
1377
1503
|
color: var(--ermis-bubble-own-text);
|
|
1378
1504
|
border-color: var(--ermis-bubble-own-bg);
|
|
1379
1505
|
}
|
|
1506
|
+
.ermis-message-bubble--own ::selection {
|
|
1507
|
+
background-color: rgba(255, 255, 255, 0.9);
|
|
1508
|
+
color: #111827;
|
|
1509
|
+
}
|
|
1510
|
+
.ermis-message-bubble--own::selection {
|
|
1511
|
+
background-color: rgba(255, 255, 255, 0.9);
|
|
1512
|
+
color: #111827;
|
|
1513
|
+
}
|
|
1380
1514
|
.ermis-message-bubble--own .ermis-attachment__file-size,
|
|
1381
1515
|
.ermis-message-bubble--own .ermis-attachment__link-url,
|
|
1382
1516
|
.ermis-message-bubble--own .ermis-attachment__link-description,
|
|
1383
1517
|
.ermis-message-bubble--own .ermis-attachment__voice-duration,
|
|
1384
|
-
.ermis-message-bubble--own .ermis-message-list__forwarded-indicator
|
|
1385
|
-
.ermis-message-bubble--own .ermis-attachment--file {
|
|
1518
|
+
.ermis-message-bubble--own .ermis-message-list__forwarded-indicator {
|
|
1386
1519
|
color: var(--ermis-bubble-own-text);
|
|
1387
1520
|
opacity: 0.8;
|
|
1388
1521
|
}
|
|
1389
1522
|
.ermis-message-bubble--own .ermis-attachment--link-preview {
|
|
1390
|
-
border-color: var(--ermis-bubble-own-text);
|
|
1391
|
-
opacity: 0.3;
|
|
1523
|
+
border-color: color-mix(in srgb, var(--ermis-bubble-own-text) 30%, transparent);
|
|
1392
1524
|
}
|
|
1393
1525
|
.ermis-message-bubble--own .ermis-attachment--file {
|
|
1394
|
-
background-color: var(--ermis-bubble-own-text);
|
|
1395
|
-
|
|
1526
|
+
background-color: color-mix(in srgb, var(--ermis-bubble-own-text) 10%, transparent);
|
|
1527
|
+
color: var(--ermis-bubble-own-text);
|
|
1396
1528
|
}
|
|
1397
1529
|
.ermis-message-bubble--other {
|
|
1398
1530
|
background-color: var(--ermis-bubble-other-bg);
|
|
@@ -1417,6 +1549,47 @@
|
|
|
1417
1549
|
}
|
|
1418
1550
|
.ermis-message-list__item--other.ermis-message-list__item--group-bottom .ermis-message-bubble {
|
|
1419
1551
|
border-top-left-radius: 4px;
|
|
1552
|
+
border-bottom-left-radius: 0;
|
|
1553
|
+
}
|
|
1554
|
+
.ermis-message-list__item--other.ermis-message-list__item--group-bottom .ermis-message-bubble::after,
|
|
1555
|
+
.ermis-message-list__item--other.ermis-message-list__item--group-single .ermis-message-bubble::after {
|
|
1556
|
+
content: "";
|
|
1557
|
+
position: absolute;
|
|
1558
|
+
bottom: 0px;
|
|
1559
|
+
left: -9px;
|
|
1560
|
+
width: 9px;
|
|
1561
|
+
height: 17px;
|
|
1562
|
+
background-color: var(--ermis-bubble-other-bg);
|
|
1563
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='9' height='17' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 17h6V0c-.193 2.84-.876 5.767-2.05 8.782-.904 2.325-2.446 4.485-4.625 6.48A1 1 0 003 17z'/%3E%3C/svg%3E");
|
|
1564
|
+
mask-image: url("data:image/svg+xml,%3Csvg width='9' height='17' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 17h6V0c-.193 2.84-.876 5.767-2.05 8.782-.904 2.325-2.446 4.485-4.625 6.48A1 1 0 003 17z'/%3E%3C/svg%3E");
|
|
1565
|
+
-webkit-mask-size: 9px 17px;
|
|
1566
|
+
mask-size: 9px 17px;
|
|
1567
|
+
-webkit-mask-repeat: no-repeat;
|
|
1568
|
+
mask-repeat: no-repeat;
|
|
1569
|
+
}
|
|
1570
|
+
.ermis-message-list__item--own.ermis-message-list__item--group-bottom .ermis-message-bubble::after,
|
|
1571
|
+
.ermis-message-list__item--own.ermis-message-list__item--group-single .ermis-message-bubble::after {
|
|
1572
|
+
content: "";
|
|
1573
|
+
position: absolute;
|
|
1574
|
+
bottom: 0px;
|
|
1575
|
+
right: -9px;
|
|
1576
|
+
width: 9px;
|
|
1577
|
+
height: 17px;
|
|
1578
|
+
background-color: var(--ermis-bubble-own-bg);
|
|
1579
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='9' height='17' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 17H0V0c.193 2.84.876 5.767 2.05 8.782.904 2.325 2.446 4.485 4.625 6.48A1 1 0 016 17z'/%3E%3C/svg%3E");
|
|
1580
|
+
mask-image: url("data:image/svg+xml,%3Csvg width='9' height='17' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 17H0V0c.193 2.84.876 5.767 2.05 8.782.904 2.325 2.446 4.485 4.625 6.48A1 1 0 016 17z'/%3E%3C/svg%3E");
|
|
1581
|
+
-webkit-mask-size: 9px 17px;
|
|
1582
|
+
mask-size: 9px 17px;
|
|
1583
|
+
-webkit-mask-repeat: no-repeat;
|
|
1584
|
+
mask-repeat: no-repeat;
|
|
1585
|
+
}
|
|
1586
|
+
.ermis-message-list__item--other.ermis-message-list__item--group-bottom .ermis-message-bubble,
|
|
1587
|
+
.ermis-message-list__item--other.ermis-message-list__item--group-single .ermis-message-bubble {
|
|
1588
|
+
border-bottom-left-radius: 0;
|
|
1589
|
+
}
|
|
1590
|
+
.ermis-message-list__item--own.ermis-message-list__item--group-bottom .ermis-message-bubble,
|
|
1591
|
+
.ermis-message-list__item--own.ermis-message-list__item--group-single .ermis-message-bubble {
|
|
1592
|
+
border-bottom-right-radius: 0;
|
|
1420
1593
|
}
|
|
1421
1594
|
.ermis-message-list__system {
|
|
1422
1595
|
display: flex;
|
|
@@ -1496,16 +1669,31 @@
|
|
|
1496
1669
|
padding: 0 !important;
|
|
1497
1670
|
border: none !important;
|
|
1498
1671
|
}
|
|
1672
|
+
.ermis-message-list__item--signal .ermis-message-bubble::after {
|
|
1673
|
+
display: none;
|
|
1674
|
+
}
|
|
1499
1675
|
.ermis-message-list__item-content--has-attachments {
|
|
1500
1676
|
width: 350px;
|
|
1501
1677
|
}
|
|
1502
1678
|
.ermis-message-list__item-content--has-attachments .ermis-message-bubble {
|
|
1503
1679
|
width: 100%;
|
|
1504
1680
|
}
|
|
1681
|
+
.ermis-message-list__item-content--has-attachments:has(.ermis-message-content--with-e2ee-attachments) {
|
|
1682
|
+
width: fit-content;
|
|
1683
|
+
max-width: min(86vw, 350px);
|
|
1684
|
+
}
|
|
1685
|
+
.ermis-message-list__item-content--has-attachments:has(.ermis-message-content--with-e2ee-attachments) .ermis-message-bubble {
|
|
1686
|
+
width: auto;
|
|
1687
|
+
max-width: 100%;
|
|
1688
|
+
}
|
|
1505
1689
|
.ermis-message-content--with-attachments {
|
|
1506
1690
|
display: flex;
|
|
1507
1691
|
flex-direction: column;
|
|
1508
1692
|
width: 100%;
|
|
1693
|
+
max-width: 100%;
|
|
1694
|
+
}
|
|
1695
|
+
.ermis-message-content--with-e2ee-attachments {
|
|
1696
|
+
width: fit-content;
|
|
1509
1697
|
}
|
|
1510
1698
|
.ermis-message-content--with-attachments .ermis-message-list__item-text {
|
|
1511
1699
|
word-wrap: break-word;
|
|
@@ -1517,6 +1705,10 @@
|
|
|
1517
1705
|
gap: var(--ermis-spacing-xs);
|
|
1518
1706
|
margin-top: var(--ermis-spacing-xs);
|
|
1519
1707
|
width: 100%;
|
|
1708
|
+
max-width: 100%;
|
|
1709
|
+
}
|
|
1710
|
+
.ermis-message-content--with-e2ee-attachments .ermis-attachment-list {
|
|
1711
|
+
width: fit-content;
|
|
1520
1712
|
}
|
|
1521
1713
|
.ermis-attachment-grid {
|
|
1522
1714
|
display: grid;
|
|
@@ -1724,13 +1916,100 @@
|
|
|
1724
1916
|
background-color: var(--ermis-bg-active);
|
|
1725
1917
|
color: var(--ermis-accent);
|
|
1726
1918
|
}
|
|
1919
|
+
.ermis-attachment--e2ee {
|
|
1920
|
+
width: min(320px, calc(100vw - 96px));
|
|
1921
|
+
min-width: 220px;
|
|
1922
|
+
max-width: 320px;
|
|
1923
|
+
border: 1px solid color-mix(in srgb, var(--ermis-accent) 20%, transparent);
|
|
1924
|
+
}
|
|
1925
|
+
.ermis-e2ee-attachment__open {
|
|
1926
|
+
padding: 0;
|
|
1927
|
+
border: 0;
|
|
1928
|
+
background: transparent;
|
|
1929
|
+
color: inherit;
|
|
1930
|
+
text-align: left;
|
|
1931
|
+
cursor: pointer;
|
|
1932
|
+
}
|
|
1933
|
+
.ermis-e2ee-attachment__open:disabled,
|
|
1934
|
+
.ermis-attachment__file-download:disabled {
|
|
1935
|
+
cursor: wait;
|
|
1936
|
+
opacity: 0.6;
|
|
1937
|
+
}
|
|
1938
|
+
.ermis-e2ee-attachment-media {
|
|
1939
|
+
display: flex;
|
|
1940
|
+
flex-direction: column;
|
|
1941
|
+
gap: var(--ermis-spacing-xs);
|
|
1942
|
+
width: fit-content;
|
|
1943
|
+
max-width: min(100%, 340px);
|
|
1944
|
+
}
|
|
1945
|
+
.ermis-e2ee-attachment-media .ermis-attachment-aspect-box {
|
|
1946
|
+
max-width: 100%;
|
|
1947
|
+
}
|
|
1948
|
+
.ermis-e2ee-attachment-placeholder {
|
|
1949
|
+
padding: 0;
|
|
1950
|
+
border: 0;
|
|
1951
|
+
color: var(--ermis-text-primary);
|
|
1952
|
+
cursor: pointer;
|
|
1953
|
+
}
|
|
1954
|
+
.ermis-e2ee-attachment-placeholder:disabled {
|
|
1955
|
+
cursor: wait;
|
|
1956
|
+
}
|
|
1957
|
+
.ermis-e2ee-attachment-placeholder__center {
|
|
1958
|
+
position: absolute;
|
|
1959
|
+
inset: 0;
|
|
1960
|
+
z-index: 3;
|
|
1961
|
+
display: flex;
|
|
1962
|
+
flex-direction: column;
|
|
1963
|
+
align-items: center;
|
|
1964
|
+
justify-content: center;
|
|
1965
|
+
gap: 6px;
|
|
1966
|
+
padding: var(--ermis-spacing-md);
|
|
1967
|
+
text-align: center;
|
|
1968
|
+
}
|
|
1969
|
+
.ermis-e2ee-attachment-placeholder__icon {
|
|
1970
|
+
display: flex;
|
|
1971
|
+
align-items: center;
|
|
1972
|
+
justify-content: center;
|
|
1973
|
+
width: 44px;
|
|
1974
|
+
height: 44px;
|
|
1975
|
+
border-radius: var(--ermis-radius-full);
|
|
1976
|
+
background: color-mix(in srgb, var(--ermis-accent) 14%, var(--ermis-bg-secondary));
|
|
1977
|
+
color: var(--ermis-accent);
|
|
1978
|
+
}
|
|
1979
|
+
.ermis-e2ee-attachment-placeholder__title {
|
|
1980
|
+
max-width: 100%;
|
|
1981
|
+
overflow: hidden;
|
|
1982
|
+
color: var(--ermis-text-primary);
|
|
1983
|
+
font-size: var(--ermis-font-size-sm);
|
|
1984
|
+
font-weight: 600;
|
|
1985
|
+
text-overflow: ellipsis;
|
|
1986
|
+
white-space: nowrap;
|
|
1987
|
+
}
|
|
1988
|
+
.ermis-e2ee-attachment-placeholder__meta,
|
|
1989
|
+
.ermis-e2ee-attachment-actions__label {
|
|
1990
|
+
color: var(--ermis-text-muted);
|
|
1991
|
+
font-size: var(--ermis-font-size-xs);
|
|
1992
|
+
}
|
|
1993
|
+
.ermis-e2ee-attachment-actions {
|
|
1994
|
+
display: flex;
|
|
1995
|
+
align-items: center;
|
|
1996
|
+
justify-content: space-between;
|
|
1997
|
+
gap: var(--ermis-spacing-xs);
|
|
1998
|
+
width: 100%;
|
|
1999
|
+
min-width: 0;
|
|
2000
|
+
}
|
|
2001
|
+
.ermis-e2ee-attachment-actions__label {
|
|
2002
|
+
min-width: 0;
|
|
2003
|
+
overflow: hidden;
|
|
2004
|
+
text-overflow: ellipsis;
|
|
2005
|
+
white-space: nowrap;
|
|
2006
|
+
}
|
|
1727
2007
|
.ermis-message-bubble--own .ermis-attachment__file-name {
|
|
1728
2008
|
color: var(--ermis-bubble-own-text);
|
|
1729
2009
|
}
|
|
1730
2010
|
.ermis-message-bubble--own .ermis-attachment__file-icon {
|
|
1731
|
-
background: var(--ermis-bubble-own-text);
|
|
1732
|
-
|
|
1733
|
-
color: inherit;
|
|
2011
|
+
background: color-mix(in srgb, var(--ermis-bubble-own-text) 20%, transparent);
|
|
2012
|
+
color: var(--ermis-bubble-own-text);
|
|
1734
2013
|
}
|
|
1735
2014
|
.ermis-message-bubble--own .ermis-attachment__file-ext {
|
|
1736
2015
|
color: var(--ermis-bubble-own-text);
|
|
@@ -1741,10 +2020,25 @@
|
|
|
1741
2020
|
opacity: 0.8;
|
|
1742
2021
|
}
|
|
1743
2022
|
.ermis-message-bubble--own .ermis-attachment__file-download:hover {
|
|
1744
|
-
background-color: var(--ermis-bubble-own-text);
|
|
1745
|
-
opacity: 0.15;
|
|
2023
|
+
background-color: color-mix(in srgb, var(--ermis-bubble-own-text) 15%, transparent);
|
|
1746
2024
|
color: inherit;
|
|
1747
2025
|
}
|
|
2026
|
+
.ermis-message-bubble--own .ermis-attachment--e2ee {
|
|
2027
|
+
border-color: color-mix(in srgb, var(--ermis-bubble-own-text) 25%, transparent);
|
|
2028
|
+
}
|
|
2029
|
+
.ermis-message-bubble--own .ermis-e2ee-attachment-placeholder,
|
|
2030
|
+
.ermis-message-bubble--own .ermis-e2ee-attachment-placeholder__title {
|
|
2031
|
+
color: var(--ermis-bubble-own-text);
|
|
2032
|
+
}
|
|
2033
|
+
.ermis-message-bubble--own .ermis-e2ee-attachment-placeholder__meta,
|
|
2034
|
+
.ermis-message-bubble--own .ermis-e2ee-attachment-actions__label {
|
|
2035
|
+
color: var(--ermis-bubble-own-text);
|
|
2036
|
+
opacity: 0.8;
|
|
2037
|
+
}
|
|
2038
|
+
.ermis-message-bubble--own .ermis-e2ee-attachment-placeholder__icon {
|
|
2039
|
+
background: color-mix(in srgb, var(--ermis-bubble-own-text) 20%, transparent);
|
|
2040
|
+
color: var(--ermis-bubble-own-text);
|
|
2041
|
+
}
|
|
1748
2042
|
.ermis-custom-audio-player {
|
|
1749
2043
|
display: flex;
|
|
1750
2044
|
align-items: center;
|
|
@@ -1752,6 +2046,25 @@
|
|
|
1752
2046
|
min-width: 240px;
|
|
1753
2047
|
width: 100%;
|
|
1754
2048
|
}
|
|
2049
|
+
.ermis-e2ee-voice-attachment {
|
|
2050
|
+
width: min(320px, calc(100vw - 96px));
|
|
2051
|
+
max-width: 100%;
|
|
2052
|
+
}
|
|
2053
|
+
.ermis-e2ee-voice-attachment .ermis-custom-audio-player {
|
|
2054
|
+
width: min(320px, calc(100vw - 96px));
|
|
2055
|
+
min-width: 260px;
|
|
2056
|
+
max-width: 100%;
|
|
2057
|
+
}
|
|
2058
|
+
.ermis-custom-audio-player--placeholder {
|
|
2059
|
+
padding: 0;
|
|
2060
|
+
border: 0;
|
|
2061
|
+
background: transparent;
|
|
2062
|
+
color: inherit;
|
|
2063
|
+
cursor: pointer;
|
|
2064
|
+
}
|
|
2065
|
+
.ermis-custom-audio-player--placeholder:disabled {
|
|
2066
|
+
cursor: wait;
|
|
2067
|
+
}
|
|
1755
2068
|
.ermis-custom-audio-play-btn {
|
|
1756
2069
|
display: flex;
|
|
1757
2070
|
align-items: center;
|
|
@@ -1828,11 +2141,36 @@
|
|
|
1828
2141
|
flex-shrink: 0;
|
|
1829
2142
|
min-width: 32px;
|
|
1830
2143
|
text-align: right;
|
|
1831
|
-
opacity: 0.7;
|
|
1832
2144
|
}
|
|
1833
2145
|
.ermis-message-bubble--own .ermis-custom-audio-duration {
|
|
1834
2146
|
color: var(--ermis-bubble-own-text);
|
|
1835
2147
|
}
|
|
2148
|
+
.ermis-custom-audio-download-btn {
|
|
2149
|
+
display: flex;
|
|
2150
|
+
align-items: center;
|
|
2151
|
+
justify-content: center;
|
|
2152
|
+
width: 32px;
|
|
2153
|
+
height: 32px;
|
|
2154
|
+
border-radius: 50%;
|
|
2155
|
+
background: transparent;
|
|
2156
|
+
color: var(--ermis-colors-text-muted, #72767d);
|
|
2157
|
+
border: none;
|
|
2158
|
+
cursor: pointer;
|
|
2159
|
+
transition: background-color 0.2s, color 0.2s;
|
|
2160
|
+
flex-shrink: 0;
|
|
2161
|
+
margin-left: 8px;
|
|
2162
|
+
}
|
|
2163
|
+
.ermis-custom-audio-download-btn:hover {
|
|
2164
|
+
background-color: var(--ermis-colors-bg-hover, rgba(0, 0, 0, 0.05));
|
|
2165
|
+
color: var(--ermis-colors-text-normal, #36393f);
|
|
2166
|
+
}
|
|
2167
|
+
.ermis-message-bubble--own .ermis-custom-audio-download-btn {
|
|
2168
|
+
color: rgba(255, 255, 255, 0.8);
|
|
2169
|
+
}
|
|
2170
|
+
.ermis-message-bubble--own .ermis-custom-audio-download-btn:hover {
|
|
2171
|
+
background-color: rgba(255, 255, 255, 0.15);
|
|
2172
|
+
color: #fff;
|
|
2173
|
+
}
|
|
1836
2174
|
.ermis-custom-audio-hidden {
|
|
1837
2175
|
display: none;
|
|
1838
2176
|
}
|
|
@@ -1939,6 +2277,9 @@
|
|
|
1939
2277
|
border-radius: 0;
|
|
1940
2278
|
display: inline-block;
|
|
1941
2279
|
}
|
|
2280
|
+
.ermis-message-list__item--sticker .ermis-message-bubble::after {
|
|
2281
|
+
display: none;
|
|
2282
|
+
}
|
|
1942
2283
|
.ermis-message-list__item--sticker .ermis-message-list__item-time {
|
|
1943
2284
|
position: absolute;
|
|
1944
2285
|
bottom: 8px;
|
|
@@ -1974,7 +2315,7 @@
|
|
|
1974
2315
|
}
|
|
1975
2316
|
.ermis-read-receipts--other {
|
|
1976
2317
|
justify-content: flex-start;
|
|
1977
|
-
padding-left:
|
|
2318
|
+
padding-left: 2.75rem;
|
|
1978
2319
|
}
|
|
1979
2320
|
@keyframes ermis-receipt-pop {
|
|
1980
2321
|
0% {
|
|
@@ -2388,6 +2729,13 @@
|
|
|
2388
2729
|
align-items: center;
|
|
2389
2730
|
justify-content: center;
|
|
2390
2731
|
}
|
|
2732
|
+
.ermis-files-preview__progress {
|
|
2733
|
+
color: #fff;
|
|
2734
|
+
font-size: 11px;
|
|
2735
|
+
font-weight: 600;
|
|
2736
|
+
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
|
|
2737
|
+
z-index: 2;
|
|
2738
|
+
}
|
|
2391
2739
|
.ermis-files-preview__spinner {
|
|
2392
2740
|
width: 20px;
|
|
2393
2741
|
height: 20px;
|
|
@@ -2999,34 +3347,41 @@
|
|
|
2999
3347
|
}
|
|
3000
3348
|
|
|
3001
3349
|
/* src/styles/_typing-indicator.css */
|
|
3350
|
+
.ermis-typing-indicator-wrapper {
|
|
3351
|
+
height: 0;
|
|
3352
|
+
overflow: visible;
|
|
3353
|
+
padding-left: 16px;
|
|
3354
|
+
position: relative;
|
|
3355
|
+
z-index: 10;
|
|
3356
|
+
}
|
|
3002
3357
|
.ermis-typing-indicator {
|
|
3003
|
-
display: flex;
|
|
3358
|
+
display: inline-flex;
|
|
3004
3359
|
align-items: center;
|
|
3005
3360
|
gap: 6px;
|
|
3006
|
-
padding: 0 16px;
|
|
3007
|
-
height: 24px;
|
|
3008
3361
|
font-size: 12px;
|
|
3009
3362
|
color: var(--ermis-text-secondary);
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3363
|
+
background-color: var(--ermis-bg-primary, #fff);
|
|
3364
|
+
padding: 4px 12px;
|
|
3365
|
+
border-radius: 999px;
|
|
3366
|
+
border: 1px solid var(--ermis-border, rgba(0, 0, 0, 0.08));
|
|
3367
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
|
|
3368
|
+
transform: translateY(-100%);
|
|
3369
|
+
margin-bottom: 8px;
|
|
3370
|
+
animation: ermis-typing-appear 0.2s ease-out forwards;
|
|
3015
3371
|
}
|
|
3016
3372
|
.ermis-typing-indicator__dots {
|
|
3017
3373
|
display: flex;
|
|
3018
3374
|
align-items: center;
|
|
3019
3375
|
gap: 3px;
|
|
3020
|
-
animation: ermis-typing-appear 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
|
|
3021
3376
|
}
|
|
3022
3377
|
@keyframes ermis-typing-appear {
|
|
3023
3378
|
0% {
|
|
3024
3379
|
opacity: 0;
|
|
3025
|
-
transform: translateY(
|
|
3380
|
+
transform: translateY(calc(-100% + 4px));
|
|
3026
3381
|
}
|
|
3027
3382
|
100% {
|
|
3028
3383
|
opacity: 1;
|
|
3029
|
-
transform: translateY(
|
|
3384
|
+
transform: translateY(-100%);
|
|
3030
3385
|
}
|
|
3031
3386
|
}
|
|
3032
3387
|
.ermis-typing-indicator__dot {
|
|
@@ -3060,17 +3415,16 @@
|
|
|
3060
3415
|
white-space: nowrap;
|
|
3061
3416
|
overflow: hidden;
|
|
3062
3417
|
text-overflow: ellipsis;
|
|
3063
|
-
animation: ermis-typing-appear 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
|
|
3064
3418
|
}
|
|
3065
3419
|
|
|
3066
3420
|
/* src/styles/_message-reactions.css */
|
|
3067
3421
|
.ermis-message-reactions {
|
|
3068
|
-
display: flex;
|
|
3422
|
+
display: inline-flex;
|
|
3069
3423
|
flex-wrap: wrap;
|
|
3070
3424
|
gap: 4px;
|
|
3071
|
-
margin-
|
|
3072
|
-
|
|
3073
|
-
|
|
3425
|
+
margin-top: 4px;
|
|
3426
|
+
max-width: 100%;
|
|
3427
|
+
vertical-align: middle;
|
|
3074
3428
|
}
|
|
3075
3429
|
.ermis-message-reactions--disabled {
|
|
3076
3430
|
opacity: 0.8;
|
|
@@ -3086,7 +3440,7 @@
|
|
|
3086
3440
|
gap: 4px;
|
|
3087
3441
|
padding: 2px 6px;
|
|
3088
3442
|
border-radius: 12px;
|
|
3089
|
-
background-color: var(--ermis-
|
|
3443
|
+
background-color: var(--ermis-bg-hover);
|
|
3090
3444
|
border: 1px solid var(--ermis-border);
|
|
3091
3445
|
font-size: 11px;
|
|
3092
3446
|
line-height: 1.2;
|
|
@@ -3095,35 +3449,21 @@
|
|
|
3095
3449
|
transition: all 0.2s ease;
|
|
3096
3450
|
user-select: none;
|
|
3097
3451
|
}
|
|
3098
|
-
.ermis-message-reactions__item::after {
|
|
3099
|
-
content: attr(data-tooltip);
|
|
3100
|
-
position: absolute;
|
|
3101
|
-
bottom: 100%;
|
|
3102
|
-
left: 50%;
|
|
3103
|
-
transform: translateX(-50%);
|
|
3104
|
-
background-color: rgba(0, 0, 0, 0.75);
|
|
3105
|
-
color: #fff;
|
|
3106
|
-
padding: 4px 8px;
|
|
3107
|
-
border-radius: 6px;
|
|
3108
|
-
font-size: 11px;
|
|
3109
|
-
white-space: pre;
|
|
3110
|
-
text-align: left;
|
|
3111
|
-
pointer-events: none;
|
|
3112
|
-
opacity: 0;
|
|
3113
|
-
visibility: hidden;
|
|
3114
|
-
transition: opacity 0.2s, visibility 0.2s;
|
|
3115
|
-
margin-bottom: 6px;
|
|
3116
|
-
z-index: 100;
|
|
3117
|
-
}
|
|
3118
|
-
.ermis-message-reactions__item:hover::after {
|
|
3119
|
-
opacity: 1;
|
|
3120
|
-
visibility: visible;
|
|
3121
|
-
}
|
|
3122
3452
|
.ermis-message-reactions__item--active {
|
|
3123
3453
|
background-color: var(--ermis-bg-active, rgba(99, 102, 241, 0.12));
|
|
3124
3454
|
border-color: var(--ermis-accent);
|
|
3125
3455
|
color: var(--ermis-accent);
|
|
3126
3456
|
}
|
|
3457
|
+
.ermis-message-bubble--own .ermis-message-reactions__item {
|
|
3458
|
+
background-color: rgba(255, 255, 255, 0.2);
|
|
3459
|
+
border-color: rgba(255, 255, 255, 0.3);
|
|
3460
|
+
color: rgba(255, 255, 255, 0.9);
|
|
3461
|
+
}
|
|
3462
|
+
.ermis-message-bubble--own .ermis-message-reactions__item--active {
|
|
3463
|
+
background-color: rgba(255, 255, 255, 0.35);
|
|
3464
|
+
border-color: rgba(255, 255, 255, 0.6);
|
|
3465
|
+
color: #ffffff;
|
|
3466
|
+
}
|
|
3127
3467
|
.ermis-message-reactions__emoji {
|
|
3128
3468
|
font-size: 14px;
|
|
3129
3469
|
}
|
|
@@ -3132,90 +3472,112 @@
|
|
|
3132
3472
|
}
|
|
3133
3473
|
|
|
3134
3474
|
/* src/styles/_message-quick-reactions.css */
|
|
3135
|
-
.ermis-
|
|
3475
|
+
.ermis-qr-wrapper {
|
|
3476
|
+
position: relative;
|
|
3477
|
+
display: inline-flex;
|
|
3478
|
+
}
|
|
3479
|
+
.ermis-qr__strip--horizontal {
|
|
3136
3480
|
position: absolute;
|
|
3137
|
-
bottom: 100
|
|
3481
|
+
bottom: calc(100% + 8px);
|
|
3482
|
+
left: 50%;
|
|
3138
3483
|
display: flex;
|
|
3484
|
+
flex-direction: row;
|
|
3139
3485
|
align-items: center;
|
|
3140
3486
|
gap: 2px;
|
|
3141
|
-
|
|
3142
|
-
|
|
3487
|
+
background-color: var(--ermis-bg-primary, #ffffff);
|
|
3488
|
+
border: 1px solid var(--ermis-border);
|
|
3143
3489
|
border-radius: 20px;
|
|
3490
|
+
padding: 4px;
|
|
3491
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
|
|
3492
|
+
z-index: 101;
|
|
3493
|
+
width: max-content;
|
|
3144
3494
|
opacity: 0;
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
transition:
|
|
3148
|
-
opacity 0.1s ease,
|
|
3149
|
-
transform 0.1s ease,
|
|
3150
|
-
visibility 0.1s ease;
|
|
3151
|
-
z-index: 20;
|
|
3495
|
+
transform: translateX(-50%) scale(0.95);
|
|
3496
|
+
animation: ermis-qr-pop-centered 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
|
|
3152
3497
|
}
|
|
3153
|
-
.ermis-
|
|
3498
|
+
.ermis-qr__strip--horizontal::after {
|
|
3154
3499
|
content: "";
|
|
3155
3500
|
position: absolute;
|
|
3156
|
-
top:
|
|
3157
|
-
left: 0;
|
|
3158
|
-
right: 0;
|
|
3159
|
-
bottom: 4px;
|
|
3160
|
-
background-color: var(--ermis-bg-primary);
|
|
3161
|
-
border: 1px solid var(--ermis-border);
|
|
3162
|
-
border-radius: 20px;
|
|
3163
|
-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
3164
|
-
z-index: -1;
|
|
3165
|
-
}
|
|
3166
|
-
.ermis-message-quick-reactions {
|
|
3501
|
+
top: 100%;
|
|
3167
3502
|
left: 0;
|
|
3503
|
+
width: 100%;
|
|
3504
|
+
height: 12px;
|
|
3168
3505
|
}
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
z-index: 100;
|
|
3175
|
-
}
|
|
3176
|
-
.ermis-message-list__bubble-wrapper:hover .ermis-message-quick-reactions,
|
|
3177
|
-
.ermis-message-quick-reactions:hover {
|
|
3178
|
-
opacity: 1;
|
|
3179
|
-
visibility: visible;
|
|
3180
|
-
transform: translateY(0);
|
|
3506
|
+
@keyframes ermis-qr-pop-centered {
|
|
3507
|
+
to {
|
|
3508
|
+
opacity: 1;
|
|
3509
|
+
transform: translateX(-50%) scale(1);
|
|
3510
|
+
}
|
|
3181
3511
|
}
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
will-change:
|
|
3188
|
-
width,
|
|
3189
|
-
height,
|
|
3190
|
-
transform;
|
|
3512
|
+
@keyframes ermis-qr-pop {
|
|
3513
|
+
to {
|
|
3514
|
+
opacity: 1;
|
|
3515
|
+
transform: scale(1);
|
|
3516
|
+
}
|
|
3191
3517
|
}
|
|
3192
|
-
.ermis-message-
|
|
3193
|
-
|
|
3518
|
+
.ermis-message-list__item--own .ermis-qr__strip--horizontal {
|
|
3519
|
+
left: 50%;
|
|
3194
3520
|
}
|
|
3195
|
-
.ermis-message-
|
|
3196
|
-
|
|
3197
|
-
pointer-events: none;
|
|
3521
|
+
.ermis-message-list__item--other .ermis-qr__strip--horizontal {
|
|
3522
|
+
left: 50%;
|
|
3198
3523
|
}
|
|
3199
|
-
.ermis-
|
|
3524
|
+
.ermis-qr__emoji {
|
|
3200
3525
|
display: flex;
|
|
3201
3526
|
align-items: center;
|
|
3202
3527
|
justify-content: center;
|
|
3203
|
-
background:
|
|
3528
|
+
background: transparent;
|
|
3204
3529
|
border: none;
|
|
3205
|
-
font-size:
|
|
3530
|
+
font-size: 16px;
|
|
3206
3531
|
line-height: 1;
|
|
3207
3532
|
width: 32px;
|
|
3208
3533
|
height: 32px;
|
|
3209
3534
|
border-radius: 50%;
|
|
3210
3535
|
cursor: pointer;
|
|
3211
3536
|
transition: transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 0.15s;
|
|
3537
|
+
padding: 0;
|
|
3538
|
+
outline: none;
|
|
3539
|
+
color: inherit;
|
|
3540
|
+
flex-shrink: 0;
|
|
3212
3541
|
}
|
|
3213
|
-
.ermis-
|
|
3542
|
+
.ermis-qr__emoji:hover {
|
|
3214
3543
|
transform: scale(1.2);
|
|
3215
|
-
background-color:
|
|
3544
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
3216
3545
|
}
|
|
3217
|
-
.ermis-
|
|
3218
|
-
background-color:
|
|
3546
|
+
.ermis-qr__emoji--active {
|
|
3547
|
+
background-color: rgba(99, 102, 241, 0.1);
|
|
3548
|
+
}
|
|
3549
|
+
.ermis-qr__emoji--more {
|
|
3550
|
+
color: var(--ermis-text-muted);
|
|
3551
|
+
font-size: 14px;
|
|
3552
|
+
}
|
|
3553
|
+
.ermis-qr__emoji--more:hover {
|
|
3554
|
+
color: var(--ermis-text-primary);
|
|
3555
|
+
}
|
|
3556
|
+
.ermis-qr__picker {
|
|
3557
|
+
position: absolute;
|
|
3558
|
+
width: 350px;
|
|
3559
|
+
height: 368px;
|
|
3560
|
+
border-radius: 16px;
|
|
3561
|
+
overflow: hidden;
|
|
3562
|
+
background-color: var(--ermis-bg-primary);
|
|
3563
|
+
border: 1px solid var(--ermis-border);
|
|
3564
|
+
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
|
|
3565
|
+
z-index: 102;
|
|
3566
|
+
opacity: 0;
|
|
3567
|
+
transform: scale(0.95);
|
|
3568
|
+
animation: ermis-qr-pop 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
|
|
3569
|
+
}
|
|
3570
|
+
.ermis-qr__picker--top {
|
|
3571
|
+
bottom: calc(100% + 8px);
|
|
3572
|
+
}
|
|
3573
|
+
.ermis-qr__picker--bottom {
|
|
3574
|
+
top: calc(100% + 8px);
|
|
3575
|
+
}
|
|
3576
|
+
.ermis-message-list__item--own .ermis-qr__picker {
|
|
3577
|
+
right: -8px;
|
|
3578
|
+
}
|
|
3579
|
+
.ermis-message-list__item--other .ermis-qr__picker {
|
|
3580
|
+
left: -8px;
|
|
3219
3581
|
}
|
|
3220
3582
|
|
|
3221
3583
|
/* src/styles/_channel-info.css */
|
|
@@ -3644,6 +4006,14 @@
|
|
|
3644
4006
|
.ermis-channel-info__media-play-icon svg {
|
|
3645
4007
|
margin-left: 2px;
|
|
3646
4008
|
}
|
|
4009
|
+
.ermis-channel-info__media-spinner {
|
|
4010
|
+
width: 16px;
|
|
4011
|
+
height: 16px;
|
|
4012
|
+
border: 2px solid rgba(255, 255, 255, 0.35);
|
|
4013
|
+
border-top-color: #fff;
|
|
4014
|
+
border-radius: 50%;
|
|
4015
|
+
animation: ermis-lightbox-spin 0.8s linear infinite;
|
|
4016
|
+
}
|
|
3647
4017
|
.ermis-channel-info__links-list {
|
|
3648
4018
|
display: flex;
|
|
3649
4019
|
flex-direction: column;
|
|
@@ -5575,6 +5945,10 @@
|
|
|
5575
5945
|
background: rgba(255, 255, 255, 0.2);
|
|
5576
5946
|
color: #fff;
|
|
5577
5947
|
}
|
|
5948
|
+
.ermis-lightbox__action-btn:disabled {
|
|
5949
|
+
opacity: 0.4;
|
|
5950
|
+
cursor: not-allowed;
|
|
5951
|
+
}
|
|
5578
5952
|
.ermis-lightbox__content {
|
|
5579
5953
|
position: relative;
|
|
5580
5954
|
z-index: 1;
|
|
@@ -5640,6 +6014,24 @@
|
|
|
5640
6014
|
border-radius: 50%;
|
|
5641
6015
|
animation: ermis-lightbox-spin 0.8s linear infinite;
|
|
5642
6016
|
}
|
|
6017
|
+
.ermis-lightbox__video-retry {
|
|
6018
|
+
flex-direction: column;
|
|
6019
|
+
gap: 10px;
|
|
6020
|
+
}
|
|
6021
|
+
.ermis-lightbox__progress-label {
|
|
6022
|
+
color: rgba(255, 255, 255, 0.86);
|
|
6023
|
+
font-size: 13px;
|
|
6024
|
+
font-weight: 500;
|
|
6025
|
+
}
|
|
6026
|
+
.ermis-lightbox__media-placeholder {
|
|
6027
|
+
width: min(80vw, 720px);
|
|
6028
|
+
height: min(60vh, 420px);
|
|
6029
|
+
border-radius: 4px;
|
|
6030
|
+
background: rgba(255, 255, 255, 0.08);
|
|
6031
|
+
}
|
|
6032
|
+
.ermis-lightbox__image--poster {
|
|
6033
|
+
filter: none;
|
|
6034
|
+
}
|
|
5643
6035
|
@keyframes ermis-lightbox-spin {
|
|
5644
6036
|
to {
|
|
5645
6037
|
transform: rotate(360deg);
|
|
@@ -5785,5 +6177,93 @@
|
|
|
5785
6177
|
transform: scale(0.98);
|
|
5786
6178
|
}
|
|
5787
6179
|
|
|
6180
|
+
/* src/styles/_recovery-pin.css */
|
|
6181
|
+
.ermis-recovery-pin {
|
|
6182
|
+
display: flex;
|
|
6183
|
+
flex-direction: column;
|
|
6184
|
+
gap: 10px;
|
|
6185
|
+
width: 100%;
|
|
6186
|
+
}
|
|
6187
|
+
.ermis-recovery-pin__header {
|
|
6188
|
+
align-items: center;
|
|
6189
|
+
display: flex;
|
|
6190
|
+
gap: 8px;
|
|
6191
|
+
justify-content: space-between;
|
|
6192
|
+
}
|
|
6193
|
+
.ermis-recovery-pin__header h3 {
|
|
6194
|
+
font-size: 16px;
|
|
6195
|
+
font-weight: 600;
|
|
6196
|
+
line-height: 1.3;
|
|
6197
|
+
margin: 0;
|
|
6198
|
+
}
|
|
6199
|
+
.ermis-recovery-pin__badge,
|
|
6200
|
+
.ermis-recovery-status {
|
|
6201
|
+
border: 1px solid var(--ermis-border-color, #d7dde5);
|
|
6202
|
+
border-radius: 999px;
|
|
6203
|
+
color: var(--ermis-text-muted, #596579);
|
|
6204
|
+
display: inline-flex;
|
|
6205
|
+
font-size: 12px;
|
|
6206
|
+
font-weight: 600;
|
|
6207
|
+
line-height: 1;
|
|
6208
|
+
padding: 5px 8px;
|
|
6209
|
+
white-space: nowrap;
|
|
6210
|
+
}
|
|
6211
|
+
.ermis-recovery-pin__input {
|
|
6212
|
+
background: var(--ermis-input-bg, #fff);
|
|
6213
|
+
border: 1px solid var(--ermis-border-color, #d7dde5);
|
|
6214
|
+
border-radius: 8px;
|
|
6215
|
+
color: var(--ermis-text-color, #111827);
|
|
6216
|
+
font-size: 14px;
|
|
6217
|
+
min-height: 38px;
|
|
6218
|
+
padding: 8px 10px;
|
|
6219
|
+
}
|
|
6220
|
+
.ermis-recovery-pin__button {
|
|
6221
|
+
align-items: center;
|
|
6222
|
+
background: var(--ermis-primary-color, #2563eb);
|
|
6223
|
+
border: 0;
|
|
6224
|
+
border-radius: 8px;
|
|
6225
|
+
color: #fff;
|
|
6226
|
+
cursor: pointer;
|
|
6227
|
+
display: inline-flex;
|
|
6228
|
+
font-size: 14px;
|
|
6229
|
+
font-weight: 600;
|
|
6230
|
+
justify-content: center;
|
|
6231
|
+
min-height: 38px;
|
|
6232
|
+
padding: 8px 12px;
|
|
6233
|
+
}
|
|
6234
|
+
.ermis-recovery-pin__button:disabled {
|
|
6235
|
+
cursor: not-allowed;
|
|
6236
|
+
opacity: 0.55;
|
|
6237
|
+
}
|
|
6238
|
+
.ermis-recovery-pin__error,
|
|
6239
|
+
.ermis-recovery-gap {
|
|
6240
|
+
background: var(--ermis-danger-bg, #fff1f2);
|
|
6241
|
+
border: 1px solid var(--ermis-danger-border, #fecdd3);
|
|
6242
|
+
border-radius: 8px;
|
|
6243
|
+
color: var(--ermis-danger-color, #be123c);
|
|
6244
|
+
font-size: 13px;
|
|
6245
|
+
line-height: 1.4;
|
|
6246
|
+
padding: 8px 10px;
|
|
6247
|
+
}
|
|
6248
|
+
.ermis-recovery-status--ready {
|
|
6249
|
+
background: var(--ermis-success-bg, #ecfdf5);
|
|
6250
|
+
border-color: var(--ermis-success-border, #bbf7d0);
|
|
6251
|
+
color: var(--ermis-success-color, #047857);
|
|
6252
|
+
}
|
|
6253
|
+
.ermis-recovery-status--working {
|
|
6254
|
+
background: var(--ermis-info-bg, #eff6ff);
|
|
6255
|
+
border-color: var(--ermis-info-border, #bfdbfe);
|
|
6256
|
+
color: var(--ermis-info-color, #1d4ed8);
|
|
6257
|
+
}
|
|
6258
|
+
.ermis-recovery-status--locked,
|
|
6259
|
+
.ermis-recovery-status--idle {
|
|
6260
|
+
background: var(--ermis-muted-bg, #f8fafc);
|
|
6261
|
+
}
|
|
6262
|
+
.ermis-recovery-status--error {
|
|
6263
|
+
background: var(--ermis-danger-bg, #fff1f2);
|
|
6264
|
+
border-color: var(--ermis-danger-border, #fecdd3);
|
|
6265
|
+
color: var(--ermis-danger-color, #be123c);
|
|
6266
|
+
}
|
|
6267
|
+
|
|
5788
6268
|
/* src/styles/index.css */
|
|
5789
6269
|
/*# sourceMappingURL=index.css.map */
|