stream-chat-angular 2.20.2 → 3.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +44 -12
  2. package/assets/version.d.ts +1 -1
  3. package/bundles/stream-chat-angular.umd.js +780 -534
  4. package/bundles/stream-chat-angular.umd.js.map +1 -1
  5. package/esm2015/assets/version.js +2 -2
  6. package/esm2015/lib/attachment-list/attachment-list.component.js +27 -15
  7. package/esm2015/lib/attachment-preview-list/attachment-preview-list.component.js +28 -22
  8. package/esm2015/lib/attachment.service.js +11 -5
  9. package/esm2015/lib/avatar-placeholder/avatar-placeholder.component.js +41 -0
  10. package/esm2015/lib/channel-header/channel-header.component.js +26 -12
  11. package/esm2015/lib/channel-list/channel-list.component.js +23 -13
  12. package/esm2015/lib/channel-preview/channel-preview.component.js +3 -3
  13. package/esm2015/lib/channel.service.js +28 -35
  14. package/esm2015/lib/chat-client.service.js +5 -4
  15. package/esm2015/lib/custom-templates.service.js +139 -0
  16. package/esm2015/lib/icon-placeholder/icon-placeholder.component.js +34 -0
  17. package/esm2015/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.js +42 -0
  18. package/esm2015/lib/message/message.component.js +74 -29
  19. package/esm2015/lib/message-actions-box/message-actions-box.component.js +114 -99
  20. package/esm2015/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.js +13 -13
  21. package/esm2015/lib/message-input/message-input-config.service.js +1 -1
  22. package/esm2015/lib/message-input/message-input.component.js +56 -45
  23. package/esm2015/lib/message-input/textarea.directive.js +2 -18
  24. package/esm2015/lib/message-input/textarea.interface.js +1 -1
  25. package/esm2015/lib/message-list/message-list.component.js +32 -93
  26. package/esm2015/lib/message-preview.js +4 -17
  27. package/esm2015/lib/message-reactions/message-reactions.component.js +3 -3
  28. package/esm2015/lib/modal/modal.component.js +9 -6
  29. package/esm2015/lib/notification/notification.component.js +5 -2
  30. package/esm2015/lib/notification-list/notification-list.component.js +12 -10
  31. package/esm2015/lib/read-by.js +1 -1
  32. package/esm2015/lib/stream-avatar.module.js +5 -4
  33. package/esm2015/lib/stream-chat.module.js +13 -3
  34. package/esm2015/lib/thread/thread.component.js +19 -11
  35. package/esm2015/lib/types.js +1 -1
  36. package/esm2015/public-api.js +5 -1
  37. package/fesm2015/stream-chat-angular.js +723 -449
  38. package/fesm2015/stream-chat-angular.js.map +1 -1
  39. package/lib/attachment-list/attachment-list.component.d.ts +12 -8
  40. package/lib/attachment-preview-list/attachment-preview-list.component.d.ts +17 -7
  41. package/lib/attachment.service.d.ts +1 -1
  42. package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +25 -0
  43. package/lib/channel-header/channel-header.component.d.ts +15 -12
  44. package/lib/channel-list/channel-list.component.d.ts +14 -11
  45. package/lib/channel-preview/channel-preview.component.d.ts +3 -2
  46. package/lib/channel.service.d.ts +32 -31
  47. package/lib/chat-client.service.d.ts +12 -11
  48. package/lib/custom-templates.service.d.ts +132 -0
  49. package/lib/icon-placeholder/icon-placeholder.component.d.ts +22 -0
  50. package/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.d.ts +21 -0
  51. package/lib/message/message.component.d.ts +42 -30
  52. package/lib/message-actions-box/message-actions-box.component.d.ts +22 -26
  53. package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +7 -11
  54. package/lib/message-input/message-input-config.service.d.ts +0 -19
  55. package/lib/message-input/message-input.component.d.ts +40 -26
  56. package/lib/message-input/textarea.directive.d.ts +3 -6
  57. package/lib/message-input/textarea.interface.d.ts +1 -4
  58. package/lib/message-list/group-styles.d.ts +1 -1
  59. package/lib/message-list/message-list.component.d.ts +10 -34
  60. package/lib/message-preview.d.ts +2 -1
  61. package/lib/message-reactions/message-reactions.component.d.ts +4 -5
  62. package/lib/modal/modal.component.d.ts +7 -3
  63. package/lib/notification/notification.component.d.ts +6 -1
  64. package/lib/notification-list/notification-list.component.d.ts +4 -2
  65. package/lib/read-by.d.ts +2 -1
  66. package/lib/stream-avatar.module.d.ts +4 -3
  67. package/lib/stream-chat.module.d.ts +6 -4
  68. package/lib/thread/thread.component.d.ts +6 -3
  69. package/lib/types.d.ts +115 -9
  70. package/package.json +2 -3
  71. package/public-api.d.ts +4 -0
  72. package/src/assets/styles/assets/EmojiOneColor.woff2 +0 -0
  73. package/src/assets/styles/assets/NotoColorEmoji-flags.woff2 +0 -0
  74. package/src/assets/styles/assets/Poweredby_100px-White_VertText.png +0 -0
  75. package/src/assets/styles/assets/str-chat__reaction-list-sprite@1x.png +0 -0
  76. package/src/assets/styles/assets/str-chat__reaction-list-sprite@2x.png +0 -0
  77. package/src/assets/styles/assets/str-chat__reaction-list-sprite@3x.png +0 -0
  78. package/src/assets/styles/css/index.css +1 -0
  79. package/src/assets/styles/css/index.css.map +1 -0
  80. package/src/assets/styles/scss/ActionsBox.scss +56 -0
  81. package/src/assets/styles/scss/Attachment.scss +227 -0
  82. package/src/assets/styles/scss/AttachmentActions.scss +44 -0
  83. package/src/assets/styles/scss/Audio.scss +112 -0
  84. package/src/assets/styles/scss/Avatar.scss +79 -0
  85. package/src/assets/styles/scss/Card.scss +100 -0
  86. package/src/assets/styles/scss/ChannelHeader.scss +284 -0
  87. package/src/assets/styles/scss/ChannelList.scss +117 -0
  88. package/src/assets/styles/scss/ChannelListMessenger.scss +9 -0
  89. package/src/assets/styles/scss/ChannelPreview.scss +108 -0
  90. package/src/assets/styles/scss/ChannelSearch.scss +111 -0
  91. package/src/assets/styles/scss/ChatDown.scss +15 -0
  92. package/src/assets/styles/scss/DateSeparator.scss +51 -0
  93. package/src/assets/styles/scss/EditMessageForm.scss +112 -0
  94. package/src/assets/styles/scss/EventComponent.scss +48 -0
  95. package/src/assets/styles/scss/Gallery.scss +135 -0
  96. package/src/assets/styles/scss/InfiniteScrollPaginator.scss +6 -0
  97. package/src/assets/styles/scss/LoadMoreButton.scss +44 -0
  98. package/src/assets/styles/scss/LoadingChannels.scss +70 -0
  99. package/src/assets/styles/scss/LoadingIndicator.scss +38 -0
  100. package/src/assets/styles/scss/Message.scss +1261 -0
  101. package/src/assets/styles/scss/MessageActions.scss +112 -0
  102. package/src/assets/styles/scss/MessageCommerce.scss +564 -0
  103. package/src/assets/styles/scss/MessageInput.scss +385 -0
  104. package/src/assets/styles/scss/MessageInputFlat.scss +305 -0
  105. package/src/assets/styles/scss/MessageList.scss +203 -0
  106. package/src/assets/styles/scss/MessageLivestream.scss +325 -0
  107. package/src/assets/styles/scss/MessageNotification.scss +49 -0
  108. package/src/assets/styles/scss/MessageRepliesCountButton.scss +33 -0
  109. package/src/assets/styles/scss/MessageTeam.scss +617 -0
  110. package/src/assets/styles/scss/Modal.scss +77 -0
  111. package/src/assets/styles/scss/ReactionList.scss +183 -0
  112. package/src/assets/styles/scss/ReactionSelector.scss +212 -0
  113. package/src/assets/styles/scss/SendButton.scss +14 -0
  114. package/src/assets/styles/scss/SimpleReactionsList.scss +76 -0
  115. package/src/assets/styles/scss/SmallMessageInput.scss +172 -0
  116. package/src/assets/styles/scss/Thread.scss +306 -0
  117. package/src/assets/styles/scss/Tooltip.scss +38 -0
  118. package/src/assets/styles/scss/TypingIndicator.scss +75 -0
  119. package/src/assets/styles/scss/VirtualMessage.scss +291 -0
  120. package/src/assets/styles/scss/_base.scss +206 -0
  121. package/src/assets/styles/scss/_variables.scss +158 -0
  122. package/src/assets/styles/scss/index.scss +50 -0
  123. package/src/assets/styles/scss/vendor/emoji-mart.scss +495 -0
  124. package/src/assets/styles/scss/vendor/mml-react.scss +1749 -0
  125. package/src/assets/styles/scss/vendor/react-file-utils.scss +378 -0
  126. package/src/assets/styles/scss/vendor/react-image-gallery.scss +224 -0
  127. package/src/assets/version.ts +1 -1
@@ -0,0 +1,1261 @@
1
+ .str-chat__li {
2
+ display: block;
3
+ position: relative;
4
+
5
+ .quoted-message {
6
+ display: flex;
7
+ align-items: flex-end;
8
+ margin-bottom: var(--xxs-m);
9
+
10
+ &-inner {
11
+ display: flex;
12
+ text-align: start;
13
+ align-items: flex-end;
14
+ background: var(--grey-whisper);
15
+ border-radius: var(--border-radius-md) var(--border-radius-md) var(--border-radius-md) 0;
16
+ max-width: 408px;
17
+ padding: var(--xxs-p) var(--xs-p);
18
+
19
+ .str-chat__message-attachment-card.str-chat__message-attachment-card--image {
20
+ border: none;
21
+ border-radius: var(--border-radius-md);
22
+ }
23
+
24
+ .str-chat__message-attachment {
25
+ &--image:first-of-type {
26
+ max-height: 48px;
27
+ max-width: 48px;
28
+ border-radius: var(--border-radius-md);
29
+ }
30
+
31
+ img {
32
+ border-radius: var(--border-radius-md);
33
+ }
34
+
35
+ &--file:first-of-type {
36
+ background: var(--white);
37
+ border-radius: var(--border-radius-md);
38
+ border-bottom: 1px solid var(--grey-whisper);
39
+ min-width: 33%;
40
+ }
41
+ }
42
+
43
+ :nth-child(2) {
44
+ margin-left: var(--xs-m);
45
+ }
46
+ }
47
+
48
+ &.mine {
49
+ .quoted-message-inner {
50
+ background: var(--white-snow);
51
+ }
52
+ }
53
+ }
54
+
55
+ /* group styling */
56
+ &--top,
57
+ &--single {
58
+ margin: 24px 0 0;
59
+
60
+ .str-chat__message {
61
+ &-attachment--img,
62
+ &-attachment-card,
63
+ .str-chat__gallery {
64
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
65
+ calc(var(--border-radius-sm) / 2);
66
+ }
67
+
68
+ &.str-chat__message--has-text.str-chat__message--has-attachment {
69
+ .str-chat__message-attachment--img,
70
+ .str-chat__message-attachment-card {
71
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
72
+ calc(var(--border-radius-sm) / 2);
73
+ }
74
+ }
75
+
76
+ &--me {
77
+ text-align: right; // for inline(-flex/block) elements, e.g. gallery
78
+ .str-chat__message {
79
+ &-attachment--img,
80
+ &-attachment-card {
81
+ border-radius: var(--border-radius) var(--border-radius)
82
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
83
+ }
84
+ }
85
+
86
+ &.str-chat__message--has-text.str-chat__message--has-attachment {
87
+ .str-chat__message-attachment--img,
88
+ .str-chat__message-attachment-card {
89
+ border-radius: var(--border-radius) var(--border-radius)
90
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
91
+ }
92
+ }
93
+
94
+ .str-chat__gallery {
95
+ border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
96
+ var(--border-radius);
97
+ }
98
+
99
+ &.str-chat__message--has-text {
100
+ .str-chat__gallery {
101
+ border-radius: var(--border-radius) var(--border-radius)
102
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+
109
+ &--middle {
110
+ margin: 0;
111
+
112
+ .str-chat__message {
113
+ &-attachment--img,
114
+ &-attachment-card,
115
+ .str-chat__gallery {
116
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
117
+ calc(var(--border-radius-sm) / 2);
118
+ }
119
+
120
+ &.str-chat__message--has-text.str-chat__message--has-attachment {
121
+ .str-chat__message-attachment--img,
122
+ .str-chat__message-attachment-card,
123
+ .str-chat__gallery {
124
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
125
+ calc(var(--border-radius-sm) / 2);
126
+ }
127
+ }
128
+
129
+ &--me {
130
+ .str-chat__message {
131
+ &-attachment--img,
132
+ &-attachment-card,
133
+ .str-chat__gallery {
134
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
135
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
136
+ }
137
+ }
138
+
139
+ &.str-chat__message--has-text.str-chat__message--has-attachment {
140
+ .str-chat__message-attachment--img,
141
+ .str-chat__message-attachment-card,
142
+ .str-chat__gallery {
143
+ border-top-left-radius: calc(var(--border-radius-sm) / 2);
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+
150
+ &--bottom {
151
+ margin: 0 0 24px;
152
+
153
+ .str-chat__message {
154
+ &-attachment--img,
155
+ &-attachment-card,
156
+ .str-chat__gallery {
157
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
158
+ calc(var(--border-radius-sm) / 2);
159
+ }
160
+
161
+ &.str-chat__message--has-text.str-chat__message--has-attachment {
162
+ .str-chat__message-attachment--img,
163
+ .str-chat__message-attachment-card,
164
+ .str-chat__gallery {
165
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
166
+ calc(var(--border-radius-sm) / 2);
167
+ }
168
+ }
169
+
170
+ &--me {
171
+ .str-chat__message {
172
+ &-attachment--img,
173
+ &-attachment-card,
174
+ .str-chat__gallery {
175
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
176
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
177
+ }
178
+ }
179
+
180
+ &.str-chat__message--has-text.str-chat__message--has-attachment {
181
+ .str-chat__message-attachment--img,
182
+ .str-chat__message-attachment-card,
183
+ .str-chat__gallery {
184
+ border-top-left-radius: calc(var(--border-radius-sm) / 2);
185
+ }
186
+ }
187
+ }
188
+ }
189
+ }
190
+
191
+ &--single {
192
+ margin-bottom: var(--md-m);
193
+ }
194
+
195
+ &--top,
196
+ &--middle {
197
+ .str-chat__message {
198
+ &-data {
199
+ display: none;
200
+ }
201
+ }
202
+ }
203
+
204
+ &--top {
205
+ .str-chat__message {
206
+ &-text {
207
+ &-inner {
208
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
209
+ calc(var(--border-radius-sm) / 2);
210
+ }
211
+ }
212
+
213
+ &--me {
214
+ .str-chat__message-text {
215
+ &-inner {
216
+ border-radius: var(--border-radius) var(--border-radius)
217
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+
224
+ &--single {
225
+ .str-chat__message {
226
+ &-text {
227
+ &-inner {
228
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
229
+ calc(var(--border-radius-sm) / 2);
230
+
231
+ &--has-attachment {
232
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius)
233
+ var(--border-radius) calc(var(--border-radius-sm) / 2);
234
+ }
235
+ }
236
+ }
237
+
238
+ &--me {
239
+ .str-chat__message-text {
240
+ &-inner {
241
+ border-radius: var(--border-radius) var(--border-radius)
242
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
243
+
244
+ &--has-attachment {
245
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
246
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
247
+ }
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+
254
+ &--bottom,
255
+ &--middle {
256
+ .str-chat__message {
257
+ &-text {
258
+ &-inner {
259
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
260
+ calc(var(--border-radius-sm) / 2);
261
+ }
262
+ }
263
+
264
+ &--me {
265
+ .str-chat__message-text {
266
+ &-inner {
267
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
268
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
269
+
270
+ &--has-attachment {
271
+ margin: 0;
272
+ }
273
+ }
274
+ }
275
+
276
+ .str-chat__message-attachment-card {
277
+ margin: 0;
278
+ padding: 0;
279
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
280
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
281
+ }
282
+ }
283
+ }
284
+ }
285
+ }
286
+
287
+ .str-chat__message,
288
+ .str-chat__message-simple {
289
+ display: inline-flex;
290
+ justify-content: flex-start;
291
+ align-items: flex-end;
292
+ padding: 0;
293
+ position: relative;
294
+ margin: calc(var(--xxs-m) / 2) 0;
295
+ width: 100%;
296
+
297
+ &--system {
298
+ text-align: center;
299
+ align-items: center;
300
+ width: 100%;
301
+ flex-direction: column;
302
+ padding: var(--xl-p);
303
+ box-sizing: border-box;
304
+ font-size: var(--xs-font);
305
+
306
+ &__text {
307
+ display: flex;
308
+ align-items: center;
309
+ width: 100%;
310
+
311
+ p {
312
+ margin: 0 24px;
313
+ color: var(--grey);
314
+ text-transform: uppercase;
315
+ font-weight: var(--font-weight-bold);
316
+ }
317
+ }
318
+
319
+ &__line {
320
+ flex: 1;
321
+ height: 1px;
322
+ width: 100%;
323
+ background-color: var(--overlay);
324
+ }
325
+
326
+ &__date {
327
+ margin-top: 4px;
328
+ text-transform: uppercase;
329
+ color: var(--grey);
330
+ }
331
+ }
332
+
333
+ &-inner {
334
+ position: relative;
335
+
336
+ @media screen and (min-width: 420px) {
337
+ margin-right: 88px;
338
+ margin-left: unset;
339
+ }
340
+
341
+ > .str-chat__message-simple__actions {
342
+ position: absolute;
343
+ top: 5px;
344
+ left: calc(100% + 8px);
345
+ }
346
+ }
347
+
348
+ &-attachment-container {
349
+ display: flex;
350
+ flex-direction: column;
351
+ }
352
+
353
+ &-text {
354
+ display: inline-flex;
355
+ justify-content: flex-start;
356
+ align-items: center;
357
+ padding: 0;
358
+ position: relative;
359
+
360
+ &-inner {
361
+ position: relative;
362
+ flex: 1;
363
+ display: block;
364
+ min-height: 32px;
365
+ padding: var(--xxs-p) var(--xs-p);
366
+ font-size: var(--lg-font);
367
+ color: var(--black);
368
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius) 0;
369
+ background: var(--white-snow);
370
+ border: 1px solid var(--border);
371
+ margin-left: 0; /* set spacing when unfocused */
372
+
373
+ // Fixes emoji display in Chrome https://bugs.chromium.org/p/chromium/issues/detail?id=596223
374
+ .str-chat__emoji-display-fix {
375
+ display: inline-block;
376
+ width: 1.25em;
377
+ }
378
+
379
+ p {
380
+ /* Make sure really long urls and words don't break out.
381
+ ** https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/ */
382
+ overflow-wrap: break-word;
383
+ word-wrap: break-word;
384
+ overflow: hidden;
385
+ text-overflow: ellipsis;
386
+
387
+ /* Adds a hyphen where the word breaks, if supported (No Blink) */
388
+ -ms-hyphens: auto;
389
+ -moz-hyphens: auto;
390
+ -webkit-hyphens: auto;
391
+ hyphens: auto;
392
+ }
393
+
394
+ /* if text consists is focused */
395
+ &--focused {
396
+ background: var(--primary-color);
397
+ border: 1px solid var(--primary-color);
398
+ margin-right: 0;
399
+ margin-left: 0; /* set spacing when focused */
400
+ }
401
+
402
+ &--has-attachment {
403
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
404
+ calc(var(--border-radius-sm) / 2);
405
+ }
406
+
407
+ /* if text consists of just one emoji */
408
+ &--is-emoji {
409
+ background: transparent;
410
+ border: 1px solid transparent;
411
+ font-size: var(--xxxl-font);
412
+
413
+ padding-left: 0;
414
+ padding-right: 0;
415
+ }
416
+ }
417
+ }
418
+
419
+ &-attachment {
420
+ &--img {
421
+ width: 100%;
422
+ max-width: 480px;
423
+ display: block;
424
+ height: inherit;
425
+ cursor: -moz-zoom-in;
426
+ cursor: -webkit-zoom-in;
427
+ cursor: zoom-in;
428
+ }
429
+ }
430
+
431
+ &-data {
432
+ margin-top: var(--xxs-m);
433
+ width: 100%;
434
+ font-size: var(--xs-font);
435
+ color: var(--overlay-dark);
436
+ position: absolute;
437
+ white-space: nowrap;
438
+ }
439
+
440
+ &-name {
441
+ font-weight: var(--font-weight-bold);
442
+ margin-right: var(--xxs-m);
443
+ }
444
+
445
+ p {
446
+ margin: 0;
447
+ white-space: pre-line;
448
+ line-height: 20px;
449
+
450
+ &:not(:first-of-type) {
451
+ margin: var(--sm-m) 0 0;
452
+ }
453
+ }
454
+
455
+ /* me */
456
+ &--me {
457
+ display: flex;
458
+ margin: var(--xxs-m) 0;
459
+ justify-content: flex-end;
460
+
461
+ .str-chat__message {
462
+ &-text {
463
+ display: flex;
464
+ justify-content: flex-end;
465
+ }
466
+
467
+ &-attachment-container {
468
+ display: flex;
469
+ flex-direction: column;
470
+ align-items: flex-end;
471
+ }
472
+
473
+ &-inner {
474
+ justify-content: flex-end;
475
+ align-items: flex-end;
476
+ @media screen and (min-width: 420px) {
477
+ margin-right: unset;
478
+ margin-left: 88px;
479
+ }
480
+
481
+ > .str-chat__message-simple__actions {
482
+ position: absolute;
483
+ top: 5px;
484
+ left: unset;
485
+ right: calc(100% + 8px);
486
+ }
487
+ }
488
+
489
+ &-text-inner {
490
+ flex: initial;
491
+ background: var(--grey-whisper);
492
+ border-color: transparent;
493
+ text-align: right;
494
+ border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
495
+ var(--border-radius);
496
+ margin-right: 0; /* set spacing when unfocused */
497
+
498
+ &--focused {
499
+ background: var(--primary-color);
500
+ border: 1px solid var(--primary-color);
501
+ margin-left: 0;
502
+ margin-right: 0; /* set spacing when focused */
503
+ }
504
+
505
+ &--has-attachment {
506
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
507
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
508
+ }
509
+
510
+ &--is-emoji {
511
+ background: transparent;
512
+ border: 1px solid transparent;
513
+ font-size: var(--xxxl-font);
514
+ padding-left: 0;
515
+ padding-right: 0;
516
+
517
+ p {
518
+ line-height: 48px;
519
+ }
520
+ }
521
+ }
522
+
523
+ &-attachment {
524
+ &--img {
525
+ width: 100%;
526
+ max-width: 480px;
527
+ display: block;
528
+ height: inherit;
529
+ object-fit: cover;
530
+ border: none;
531
+ }
532
+ }
533
+
534
+ &-data {
535
+ text-align: right;
536
+ right: 0;
537
+ width: fit-content;
538
+ }
539
+ }
540
+ }
541
+
542
+ &--with-reactions {
543
+ margin-top: var(--md-m);
544
+ }
545
+
546
+ &-link {
547
+ color: var(--primary-color);
548
+ font-weight: var(--font-weight-bold);
549
+ text-decoration: none;
550
+ }
551
+
552
+ &-mention {
553
+ font-weight: var(--font-weight-bold);
554
+ }
555
+
556
+ &-url-link {
557
+ max-width: 150px;
558
+ text-overflow: ellipsis;
559
+ overflow: hidden;
560
+ white-space: nowrap;
561
+ }
562
+
563
+ &--inner {
564
+ display: flex;
565
+ flex-direction: column;
566
+ align-items: flex-start;
567
+ }
568
+
569
+ .messaging {
570
+ &.str-chat {
571
+ .str-chat {
572
+ &__message,
573
+ &__message--me {
574
+ margin: calc(var(--xxs-m) / 2) 0;
575
+
576
+ &--with-reactions {
577
+ margin-top: var(--lg-m);
578
+ }
579
+ }
580
+
581
+ &__message-attachment--image {
582
+ margin: calc(var(--xxs-m) / 2) 0;
583
+ max-width: 480px;
584
+ }
585
+
586
+ &__message-attachment--card {
587
+ margin: calc(var(--xxs-m) / 2) 0;
588
+ line-height: normal;
589
+ }
590
+
591
+ &__message-attachment-card {
592
+ margin: calc(var(--xxs-m) / 2) auto;
593
+ line-height: normal;
594
+ background: var(--grey-gainsboro);
595
+
596
+ &--title {
597
+ color: var(--primary-color);
598
+ }
599
+
600
+ &--text {
601
+ display: none;
602
+ }
603
+
604
+ &--url {
605
+ text-transform: lowercase;
606
+ }
607
+ }
608
+
609
+ &__message--deleted {
610
+ margin: 0 var(--xl-m);
611
+ }
612
+
613
+ &__li {
614
+ &--middle {
615
+ .str-chat__message {
616
+ .str-chat__message-attachment--card,
617
+ .str-chat__message-attachment--image {
618
+ border-top-left-radius: calc(var(--border-radius-sm) / 2);
619
+ }
620
+ }
621
+ }
622
+ } /* __li*/
623
+ }
624
+ }
625
+ }
626
+
627
+ /* deleted messages */
628
+ &--deleted {
629
+ margin: 0 0 0 var(--xl-m);
630
+ flex-direction: column;
631
+ align-items: flex-start;
632
+
633
+ &-inner {
634
+ background: var(--grey-whisper);
635
+ padding: var(--xs-p) var(--sm-p);
636
+ border-radius: var(--border-radius);
637
+ font-size: var(--sm-font);
638
+ color: var(--grey);
639
+ }
640
+ }
641
+
642
+ &--me {
643
+ &.str-chat__message--deleted {
644
+ margin: 0 var(--xl-m) 0 0;
645
+ align-items: flex-end;
646
+
647
+ &-inner {
648
+ background: var(--white-smoke);
649
+ padding: var(--xs-p) var(--sm-p);
650
+ border-radius: var(--border-radius);
651
+ font-size: var(--sm-font);
652
+ color: var(--grey);
653
+ }
654
+ }
655
+ }
656
+
657
+ /* error messages */
658
+ &--error,
659
+ &--failed {
660
+ margin: 0 0 var(--lg-m) var(--xl-m);
661
+ font-size: var(--sm-font);
662
+ padding: var(--xxs-p) 0;
663
+
664
+ .str-chat__message-text-inner {
665
+ background: var(--faded-red);
666
+ border: 1px solid var(--faded-red);
667
+ }
668
+ }
669
+
670
+ &--me {
671
+ &.str-chat__message--error,
672
+ &.str-chat__message--failed {
673
+ border-left: initial;
674
+ margin-right: var(--xl-m);
675
+ }
676
+ }
677
+
678
+ .str-chat__message-attachment-file--item:hover {
679
+ background: transparent;
680
+ }
681
+ }
682
+
683
+ .str-chat {
684
+ &__message-simple {
685
+ font-family: var(--second-font);
686
+
687
+ &__actions {
688
+ display: flex;
689
+
690
+ &__action {
691
+ margin: var(--xxs-m);
692
+ display: flex;
693
+ align-items: center;
694
+ height: 10px;
695
+ cursor: pointer;
696
+ background-color: transparent;
697
+ border: none;
698
+ padding: 0;
699
+
700
+ svg {
701
+ fill: var(--black);
702
+ opacity: 0.5;
703
+ }
704
+
705
+ &:hover {
706
+ svg {
707
+ opacity: 1;
708
+ }
709
+ }
710
+
711
+ &--thread,
712
+ &--reactions {
713
+ display: none;
714
+ }
715
+
716
+ &--options {
717
+ position: relative;
718
+ display: none;
719
+
720
+ > button {
721
+ cursor: pointer;
722
+ background-color: transparent;
723
+ border: none;
724
+ padding: 3px 0;
725
+ }
726
+ }
727
+
728
+ &--options.str-chat-angular__message-simple__actions__action--options--editing {
729
+ position: relative;
730
+ display: flex;
731
+ }
732
+ }
733
+ }
734
+
735
+ &:hover {
736
+ .str-chat__message-simple__actions__action--thread {
737
+ display: flex;
738
+ }
739
+
740
+ .str-chat__message-simple__actions__action--reactions {
741
+ display: flex;
742
+ }
743
+ }
744
+
745
+ &-text {
746
+ display: flex;
747
+ justify-content: flex-end;
748
+ padding: 0;
749
+ position: relative;
750
+ }
751
+
752
+ &-text-inner {
753
+ flex: initial;
754
+ text-align: left;
755
+ max-width: 460px;
756
+
757
+ &.str-chat__message-simple-text-inner--is-emoji {
758
+ background: transparent;
759
+
760
+ p {
761
+ line-height: 48px;
762
+ }
763
+ }
764
+
765
+ p {
766
+ text-align: left;
767
+ }
768
+
769
+ a {
770
+ color: var(--primary-color);
771
+ font-weight: var(--font-weight-bold);
772
+ text-decoration: none;
773
+ }
774
+
775
+ blockquote {
776
+ margin: 0 0 0 var(--xxs-m);
777
+ font-style: italic;
778
+ padding-left: var(--md-p);
779
+ position: relative;
780
+
781
+ &::before {
782
+ font-size: var(--xxl-font);
783
+ content: '\201C';
784
+ font-style: italic;
785
+ position: absolute;
786
+ opacity: 0.5;
787
+ top: 2px;
788
+ left: -5px;
789
+ }
790
+ }
791
+ }
792
+
793
+ &--me {
794
+ .str-chat__message-simple-reply-button {
795
+ display: flex;
796
+ justify-content: flex-end;
797
+
798
+ .str-chat__message-replies-count-button {
799
+ display: flex;
800
+ flex-direction: row-reverse;
801
+
802
+ svg {
803
+ transform: scaleX(-1);
804
+ margin-left: var(--xxs-m);
805
+ margin-bottom: var(--xxs-m);
806
+ margin-right: 0;
807
+ }
808
+ }
809
+ }
810
+
811
+ .str-chat__message-simple__actions {
812
+ justify-content: flex-end;
813
+ }
814
+
815
+ .str-chat__message-attachment--image {
816
+ max-width: 460px;
817
+ }
818
+
819
+ &-text-inner {
820
+ &--is-emoji {
821
+ background-color: transparent;
822
+ line-height: 32px;
823
+ }
824
+ }
825
+
826
+ .str-chat__message-simple__actions {
827
+ order: -1;
828
+ }
829
+ }
830
+
831
+ &:hover {
832
+ .str-chat__message-simple__actions__action--options {
833
+ display: flex;
834
+
835
+ button {
836
+ display: flex;
837
+ align-items: center;
838
+ }
839
+ }
840
+
841
+ .str-chat__message-simple__actions__action--reactions {
842
+ display: flex;
843
+ }
844
+
845
+ .str-chat__message-simple__actions__action--thread {
846
+ display: flex;
847
+ }
848
+
849
+ @media screen and (max-width: 960px) {
850
+ .str-chat__message-simple__actions__action--options {
851
+ display: none;
852
+ }
853
+
854
+ .str-chat__message-simple__actions__action--reactions {
855
+ display: none;
856
+ }
857
+
858
+ .str-chat__message-simple__actions__action--thread {
859
+ display: none;
860
+ }
861
+ }
862
+ }
863
+ }
864
+ }
865
+
866
+ .str-chat__simple-message--error-message {
867
+ text-align: left;
868
+ text-transform: uppercase;
869
+ font-size: var(--xs-font);
870
+ opacity: 0.5;
871
+ }
872
+
873
+ .str-chat__message-simple-status {
874
+ margin: var(--xs-m) 0 var(--xs-m) var(--xs-m);
875
+ order: 3;
876
+ position: absolute;
877
+ left: 100%;
878
+ bottom: 0;
879
+ line-height: 1;
880
+ display: flex;
881
+ justify-content: flex-end;
882
+ align-items: center;
883
+ z-index: 1;
884
+
885
+ &-number {
886
+ font-size: var(--xs-font);
887
+ margin-left: 4px;
888
+ position: absolute;
889
+ left: 100%;
890
+ color: var(--overlay-dark);
891
+ }
892
+
893
+ > .str-chat__avatar,
894
+ > .str-chat-angular__avatar-host > .str-chat__avatar {
895
+ align-self: flex-end;
896
+ margin-right: 0;
897
+ }
898
+
899
+ > .str-chat__tooltip {
900
+ display: none;
901
+ max-width: 300px;
902
+ min-width: 100px;
903
+ text-align: center;
904
+ }
905
+
906
+ &:hover {
907
+ > .str-chat__tooltip {
908
+ display: block;
909
+ }
910
+ }
911
+
912
+ &::after {
913
+ position: absolute;
914
+ bottom: 100%;
915
+ right: 0;
916
+ content: ' ';
917
+ width: 15px;
918
+ height: 15px;
919
+ }
920
+ }
921
+
922
+ .str-chat__message-simple {
923
+ .str-chat__message-attachment-card {
924
+ margin: 0;
925
+ background: var(--white);
926
+ border: 1px solid var(--border);
927
+
928
+ &--content {
929
+ background: var(--grey-gainsboro);
930
+ }
931
+
932
+ &--text {
933
+ display: none;
934
+ }
935
+ }
936
+
937
+ .str-chat__message-attachment--file {
938
+ margin: 0;
939
+ background: var(--white);
940
+ border-color: transparent;
941
+ border: 1px solid var(--grey-gainsboro);
942
+ border-radius: var(--border-radius-md);
943
+
944
+ .str-chat__message-attachment-file--item {
945
+ border-color: transparent;
946
+ padding: 0 var(--xs-p);
947
+ }
948
+
949
+ &:first-of-type:not(.str-chat-angular__message-attachment-file-single) {
950
+ border-radius: var(--border-radius) var(--border-radius) 0 0;
951
+ border-bottom: transparent;
952
+ }
953
+
954
+ &:last-of-type:not(.str-chat-angular__message-attachment-file-single) {
955
+ border-top-color: transparent;
956
+ border-radius: 0 0 var(--border-radius) calc(var(--border-radius-sm) / 2);
957
+
958
+ &:first-of-type {
959
+ border-bottom: 1px solid var(--grey-gainsboro);
960
+ border-top: 1px solid var(--grey-gainsboro);
961
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
962
+ calc(var(--border-radius-sm) / 2);
963
+ }
964
+ }
965
+ }
966
+
967
+ .str-chat__message-attachment-file--item:not(.str-chat-angular__message-attachment-file-single) {
968
+ border-radius: 0;
969
+ }
970
+
971
+ &--me {
972
+ .str-chat__message-attachment-card {
973
+ border-radius: var(--border-radius) var(--border-radius-sm) var(--border-radius-sm)
974
+ var(--border-radius-sm);
975
+ }
976
+
977
+ .str-chat__message-attachment--file {
978
+ background: var(--grey-gainsboro);
979
+
980
+ &:last-of-type:not(.str-chat-angular__message-attachment-file-single) {
981
+ border-radius: 0 0 calc(var(--border-radius-sm) / 2) var(--border-radius);
982
+
983
+ &:first-of-type:not(.str-chat-angular__message-attachment-file-single) {
984
+ border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
985
+ var(--border-radius);
986
+ }
987
+ }
988
+ }
989
+ }
990
+ }
991
+
992
+ .str-chat__list--thread {
993
+ .str-chat__message-simple {
994
+ &__actions {
995
+ width: 30px;
996
+ }
997
+
998
+ &__actions__action--options {
999
+ .str-chat__message-actions-box {
1000
+ right: unset;
1001
+ left: 100%;
1002
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
1003
+ calc(var(--border-radius-sm) / 2);
1004
+ }
1005
+ }
1006
+ }
1007
+ }
1008
+
1009
+ .livestream.str-chat {
1010
+ .str-chat {
1011
+ &__li {
1012
+ &--single {
1013
+ margin: 0;
1014
+ }
1015
+ }
1016
+ }
1017
+ }
1018
+
1019
+ @media screen and (max-width: 960px) {
1020
+ .str-chat__message-simple-text-inner {
1021
+ max-width: 218px;
1022
+ }
1023
+
1024
+ .str-chat__message-simple-status {
1025
+ left: unset;
1026
+ right: 8px;
1027
+ bottom: 30px;
1028
+
1029
+ &-angular {
1030
+ margin-bottom: 3px;
1031
+ }
1032
+ }
1033
+ }
1034
+
1035
+ .dark.str-chat {
1036
+ .str-chat__message-simple {
1037
+ &-text-inner {
1038
+ background: var(--white-smoke);
1039
+ color: var(--white);
1040
+
1041
+ &--is-emoji {
1042
+ background: transparent;
1043
+ }
1044
+ }
1045
+
1046
+ &__actions {
1047
+ svg {
1048
+ fill: var(--white);
1049
+ }
1050
+ }
1051
+
1052
+ &-data {
1053
+ color: var(--white);
1054
+ opacity: 0.5;
1055
+ }
1056
+
1057
+ .str-chat__message-attachment-card {
1058
+ background: transparent;
1059
+
1060
+ &--content {
1061
+ background: var(--white-smoke);
1062
+ }
1063
+
1064
+ &--url {
1065
+ color: var(--grey-gainsboro);
1066
+ }
1067
+ }
1068
+
1069
+ .str-chat__message-attachment--file {
1070
+ border-color: transparent;
1071
+ background: var(--white-smoke);
1072
+
1073
+ a,
1074
+ span {
1075
+ color: var(--white);
1076
+ }
1077
+
1078
+ span {
1079
+ opacity: 0.5;
1080
+ }
1081
+ }
1082
+
1083
+ .str-chat__message-simple-status {
1084
+ &-number {
1085
+ color: var(--grey-gainsboro);
1086
+ }
1087
+ }
1088
+
1089
+ &--me {
1090
+ .str-chat__message-simple {
1091
+ &-text-inner {
1092
+ background: var(--black);
1093
+
1094
+ &--is-emoji {
1095
+ background: transparent;
1096
+ }
1097
+ }
1098
+
1099
+ .str-chat__message-attachment-card {
1100
+ &--content {
1101
+ background: var(--black);
1102
+ }
1103
+ }
1104
+
1105
+ .str-chat__message-attachment--file {
1106
+ background: var(--overlay);
1107
+ }
1108
+ }
1109
+ }
1110
+ }
1111
+ }
1112
+
1113
+ .dark.str-chat {
1114
+ .str-chat__message-simple__actions__action--options .str-chat__actions-box {
1115
+ background: var(--grey);
1116
+ box-shadow: 0 0 2px 0 var(--overlay), 0 1px 0 0 var(--border), 0 1px 8px 0 var(--border);
1117
+ }
1118
+
1119
+ .str-chat__message {
1120
+ &--error,
1121
+ &--failed {
1122
+ .str-chat__message-simple-text-inner {
1123
+ background: var(--faded-red);
1124
+ border: 1px solid var(--faded-red);
1125
+ }
1126
+ }
1127
+ }
1128
+ }
1129
+
1130
+ .str-chat__message {
1131
+ .str-chat__message-simple__actions__action--options {
1132
+ .str-chat__message-actions-box {
1133
+ left: 100%;
1134
+ right: unset;
1135
+
1136
+ &--reverse {
1137
+ right: 100%;
1138
+ left: unset;
1139
+ border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
1140
+ var(--border-radius);
1141
+ }
1142
+ }
1143
+
1144
+ .str-chat__message-actions-box--mine {
1145
+ right: 100%;
1146
+ left: unset;
1147
+ border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
1148
+ var(--border-radius);
1149
+
1150
+ &.str-chat__message-actions-box--reverse {
1151
+ left: 100%;
1152
+ right: unset;
1153
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
1154
+ calc(var(--border-radius-sm) / 2);
1155
+ }
1156
+ }
1157
+ }
1158
+
1159
+ a[href^='mailto:'] {
1160
+ -webkit-hyphens: none;
1161
+ -moz-hyphens: none;
1162
+ hyphens: none;
1163
+ }
1164
+ }
1165
+
1166
+ @media screen and (max-width: 375px) {
1167
+ .str-chat__message .str-chat__message-attachment--img {
1168
+ max-width: 235px;
1169
+ }
1170
+ }
1171
+
1172
+ @media screen and (max-width: 414px) {
1173
+ .str-chat__message .str-chat__message-attachment--img {
1174
+ max-width: 274px;
1175
+ }
1176
+ }
1177
+
1178
+ @media only screen and (device-width: 375px) and (-webkit-device-pixel-ratio: 3) {
1179
+ .str-chat__message .str-chat__message-attachment--img {
1180
+ max-width: 240px;
1181
+ }
1182
+ }
1183
+
1184
+ .str-chat {
1185
+ // fixes the overall overflow/flex issues together with the rule below
1186
+ .mml-container {
1187
+ display: flex;
1188
+ padding-bottom: var(--xxs-p);
1189
+ }
1190
+
1191
+ .mml-icon {
1192
+ font-family: 'Material Icons', sans-serif;
1193
+ }
1194
+
1195
+ // fixes the overall overflow/flex issues together with the rule above
1196
+ .mml-wrap {
1197
+ display: block;
1198
+ max-width: none;
1199
+ // the max-width should match that to .str-chat__message-XXXX-text-inner
1200
+ max-width: 345px;
1201
+
1202
+ @media screen and (max-width: 375px) {
1203
+ max-width: 220px;
1204
+ }
1205
+ }
1206
+
1207
+ .mml-datepicker {
1208
+ min-width: 180px;
1209
+ }
1210
+
1211
+ // undo the negative margins that make the mml content to expand to the
1212
+ // viewport edges
1213
+ .mml-align-right .mml-btnlist--floating,
1214
+ .mml-align-right .mml-carousel {
1215
+ margin-left: auto;
1216
+ }
1217
+
1218
+ .mml-align-left .mml-btnlist--floating,
1219
+ .mml-align-left .mml-carousel {
1220
+ margin-right: auto;
1221
+ }
1222
+
1223
+ @media screen and (max-width: 960px) {
1224
+ .mml-align-left .mml-carousel {
1225
+ margin-left: -10px;
1226
+ }
1227
+
1228
+ .mml-align-right .mml-carousel {
1229
+ margin-right: -10px;
1230
+ }
1231
+ }
1232
+
1233
+ // expand carousel to the edge of the screen, the horizontal padding is theme
1234
+ // specific in stream-chat-react
1235
+ &.messaging {
1236
+ // as .messaging.str-chat .str-chat__list:
1237
+ @media screen and (max-width: 960px) {
1238
+ .mml-align-left .mml-carousel {
1239
+ margin-left: -10px;
1240
+ }
1241
+
1242
+ .mml-align-right .mml-carousel {
1243
+ margin-right: -10px;
1244
+ }
1245
+ }
1246
+ }
1247
+ }
1248
+
1249
+ .str-chat__message-simple.mobile-press {
1250
+ .str-chat__message-simple__actions__action--options {
1251
+ display: flex;
1252
+ }
1253
+
1254
+ .str-chat__message-simple__actions__action--reactions {
1255
+ display: flex;
1256
+ }
1257
+
1258
+ .str-chat__message-simple__actions__action--thread {
1259
+ display: flex;
1260
+ }
1261
+ }