stream-chat-angular 4.0.0-theming-v2.11 → 4.0.0

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 (43) hide show
  1. package/assets/version.d.ts +1 -1
  2. package/bundles/stream-chat-angular.umd.js +37 -20
  3. package/bundles/stream-chat-angular.umd.js.map +1 -1
  4. package/esm2015/assets/version.js +2 -2
  5. package/esm2015/lib/channel.service.js +19 -17
  6. package/esm2015/lib/chat-client.service.js +5 -3
  7. package/esm2015/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.js +4 -3
  8. package/fesm2015/stream-chat-angular.js +26 -21
  9. package/fesm2015/stream-chat-angular.js.map +1 -1
  10. package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +1 -0
  11. package/package.json +1 -1
  12. package/src/assets/styles/css/index.css +1 -1
  13. package/src/assets/styles/css/index.css.map +1 -1
  14. package/src/assets/styles/scss/Attachment.scss +11 -8
  15. package/src/assets/styles/scss/MessageInput.scss +1 -0
  16. package/src/assets/styles/v2/css/index.css +1 -1
  17. package/src/assets/styles/v2/css/index.css.map +1 -1
  18. package/src/assets/styles/v2/css/index.layout.css +1 -1
  19. package/src/assets/styles/v2/css/index.layout.css.map +1 -1
  20. package/src/assets/styles/v2/scss/AttachmentList/AttachmentList-layout.scss +133 -26
  21. package/src/assets/styles/v2/scss/AttachmentList/AttachmentList-theme.scss +28 -21
  22. package/src/assets/styles/v2/scss/Autocomplete/Autocomplete-layout.scss +11 -1
  23. package/src/assets/styles/v2/scss/Autocomplete/Autocomplete-theme.scss +35 -0
  24. package/src/assets/styles/v2/scss/Avatar/Avatar-layout.scss +2 -0
  25. package/src/assets/styles/v2/scss/ChannelPreview/ChannelPreview-theme.scss +3 -5
  26. package/src/assets/styles/v2/scss/ChannelSearch/ChannelSearch-layout.scss +2 -1
  27. package/src/assets/styles/v2/scss/Message/Message-layout.scss +73 -23
  28. package/src/assets/styles/v2/scss/Message/Message-theme.scss +16 -0
  29. package/src/assets/styles/v2/scss/MessageInput/MessageInput-layout.scss +33 -2
  30. package/src/assets/styles/v2/scss/MessageInput/MessageInput-theme.scss +16 -0
  31. package/src/assets/styles/v2/scss/MessageList/{VirtualMessageList-layout.scss → VirtualizedMessageList-layout.scss} +12 -0
  32. package/src/assets/styles/v2/scss/MessageList/{VirtualMessageList-theme.scss → VirtualizedMessageList-theme.scss} +0 -0
  33. package/src/assets/styles/v2/scss/MessageReactions/MessageReactions-layout.scss +1 -0
  34. package/src/assets/styles/v2/scss/Modal/Modal-theme.scss +7 -0
  35. package/src/assets/styles/v2/scss/Thread/Thread-layout.scss +1 -2
  36. package/src/assets/styles/v2/scss/Tooltip/Tooltip-layout.scss +1 -1
  37. package/src/assets/styles/v2/scss/TypingIndicator/TypingIndicator-layout.scss +4 -0
  38. package/src/assets/styles/v2/scss/_global-theme-variables.scss +7 -0
  39. package/src/assets/styles/v2/scss/_utils.scss +1 -1
  40. package/src/assets/styles/v2/scss/index.layout.scss +1 -1
  41. package/src/assets/styles/v2/scss/index.scss +1 -1
  42. package/src/assets/styles/vendor/react-image-gallery.scss +6 -0
  43. package/src/assets/version.ts +1 -1
@@ -1,19 +1,40 @@
1
1
  @use '../utils';
2
2
 
3
3
  .str-chat {
4
- // The margin applied to every attachment in the attachment list
4
+ /* The margin applied to every attachment in the attachment list */
5
5
  --str-chat__attachment-margin: var(--str-chat__spacing-0_5);
6
+
7
+ /* The maximum allowed width of attachments */
8
+ --str-chat__attachment-max-width: unset;
9
+
10
+ /* The height of scraped images, the default value is optimized for 1.91:1 aspect ratio */
11
+ --str-chat__scraped-image-height: unset;
12
+
13
+ /* The height of scraped videos, the default value is optimized for 16:9 aspect ratio */
14
+ --str-chat__scraped-video-height: unset;
15
+
16
+ /* The height of GIFs */
17
+ --str-chat__gif-height: calc(var(--str-chat__spacing-px) * 200);
18
+
19
+ /* The height of videos */
20
+ --str-chat__video-height: calc(var(--str-chat__spacing-px) * 300);
6
21
  }
7
22
 
8
23
  .str-chat__attachment-list {
24
+ --str-chat__attachment-max-width: calc(
25
+ var(--str-chat__message-max-width) - calc(2 * var(--str-chat__attachment-margin))
26
+ );
27
+
28
+ --str-chat__scraped-image-height: calc(var(--str-chat__attachment-max-width) * calc(1 / 1.91));
29
+
30
+ --str-chat__scraped-video-height: calc(var(--str-chat__attachment-max-width) * calc(9 / 16));
31
+
9
32
  display: flex;
10
33
  flex-direction: column;
11
34
  align-items: stretch;
12
35
  min-width: 0;
13
36
 
14
37
  .str-chat__message-attachment--card {
15
- max-width: calc(var(--str-chat__message-max-width) - var(--str-chat__attachment-margin));
16
-
17
38
  .str-chat__message-attachment-card--header {
18
39
  position: relative;
19
40
  }
@@ -28,33 +49,97 @@
28
49
  }
29
50
 
30
51
  .str-chat__message-attachment--image,
31
- .str-chat__message-attachment-card--header,
32
- .str-chat__message-attachment--video {
52
+ .str-chat__message-attachment--video,
53
+ .str-chat__message-attachment-card--header {
54
+ width: auto;
33
55
  display: flex;
56
+ justify-content: center;
57
+ align-items: center;
58
+ overflow: hidden;
59
+ }
60
+
61
+ // Scraped images
62
+ .str-chat__message-attachment-card--header {
63
+ height: var(--str-chat__scraped-image-height);
34
64
 
35
- img,
36
- video {
37
- max-width: calc(var(--str-chat__message-max-width) - 2 * var(--str-chat__attachment-margin));
38
- max-height: var(--str-chat__message-max-width);
65
+ img {
39
66
  object-fit: cover;
67
+ max-height: 100%;
68
+ max-width: 100%;
40
69
  width: 100%;
41
70
  height: 100%;
71
+ cursor: default;
42
72
  }
43
73
  }
44
74
 
45
- .str-chat__message-attachment--image {
46
- margin: var(--str-chat__attachment-margin);
75
+ // image enlargement available in React SDK only
76
+ .str-chat__message-attachment-card-react--header {
77
+ img {
78
+ cursor: zoom-in;
79
+ }
80
+ }
81
+
82
+ .str-chat__message-attachment-card--giphy {
83
+ .str-chat__message-attachment-card--header {
84
+ height: var(--str-chat__gif-height);
85
+
86
+ img {
87
+ object-fit: contain;
88
+ max-height: 100%;
89
+ max-width: 100%;
90
+ cursor: default;
91
+ }
92
+ }
47
93
 
94
+ // image enlargement available in React SDK only
95
+ .str-chat__message-attachment-card-react--header {
96
+ img {
97
+ cursor: zoom-in;
98
+ }
99
+ }
100
+ }
101
+
102
+ // Images uploaded from files
103
+ .str-chat__message-attachment--image:not(.str-chat__message-attachment--card) {
48
104
  img {
105
+ max-width: var(--str-chat__attachment-max-width);
106
+ max-height: var(--str-chat__attachment-max-width);
107
+ object-fit: cover;
108
+ width: 100%;
109
+ height: 100%;
49
110
  cursor: zoom-in;
50
111
  }
51
112
  }
52
113
 
53
- .str-chat__message-attachment--video {
54
- margin: var(--str-chat__attachment-margin);
114
+ // Video files: uploaded from files and scraped
115
+ .str-chat__message-attachment--video:not(.str-chat__message-attachment--card),
116
+ .str-chat__message-attachment-card--video .str-chat__message-attachment-card--header {
117
+ max-width: var(--str-chat__attachment-max-width);
118
+ display: flex;
119
+
120
+ .str-chat__player-wrapper {
121
+ height: 100%;
122
+ width: 100%;
123
+ min-width: 0;
124
+
125
+ .react-player,
126
+ .str-chat__video-angular {
127
+ height: 100%;
128
+ width: 100%;
129
+ }
130
+ }
131
+ }
132
+
133
+ .str-chat__message-attachment--video:not(.str-chat__message-attachment--card) {
134
+ height: var(--str-chat__video-height);
55
135
  }
56
136
 
57
- .str-chat__message-attachment--giphy {
137
+ .str-chat__message-attachment-card--video .str-chat__message-attachment-card--header {
138
+ height: var(--str-chat__scraped-video-height);
139
+ }
140
+
141
+ .str-chat__message-attachment--video:not(.str-chat__message-attachment--card),
142
+ .str-chat__message-attachment--image:not(.str-chat__message-attachment--card) {
58
143
  margin: var(--str-chat__attachment-margin);
59
144
  }
60
145
 
@@ -63,13 +148,12 @@
63
148
  grid-template-columns: 50% 50%;
64
149
  overflow: hidden;
65
150
  gap: var(--str-chat__spacing-0_5);
66
- max-width: var(--str-chat__message-max-width);
67
- max-height: var(--str-chat__message-max-width);
151
+ max-width: var(--str-chat__attachment-max-width);
152
+ height: var(--str-chat__attachment-max-width);
68
153
  margin: var(--str-chat__attachment-margin);
69
154
 
70
155
  &.str-chat__gallery-two-rows {
71
156
  grid-template-rows: 50% 50%;
72
- aspect-ratio: 1;
73
157
  }
74
158
 
75
159
  .str-chat__gallery-image {
@@ -112,6 +196,18 @@
112
196
  }
113
197
  }
114
198
 
199
+ .str-chat__gallery .str-chat__message-attachment--svg-image,
200
+ .str-chat__message-attachment--image.str-chat__message-attachment--svg-image {
201
+ $padding: var(--str-chat__spacing-6);
202
+ padding: $padding;
203
+
204
+ img {
205
+ object-fit: contain;
206
+ max-width: calc(var(--str-chat__attachment-max-width) - #{$padding});
207
+ max-height: calc(var(--str-chat__attachment-max-width) - #{$padding});
208
+ }
209
+ }
210
+
115
211
  .str-chat__message-attachment-file--item,
116
212
  .str-chat__message-attachment-audio-widget {
117
213
  @include utils.flex-row-center;
@@ -165,13 +261,14 @@
165
261
  }
166
262
 
167
263
  .str-chat__message-attachment-audio-widget--progress-track {
168
- width: 120px;
264
+ max-width: calc(var(--str-chat__spacing-px) * 120);
169
265
  }
170
266
 
171
267
  .str-chat__message-attachment-audio-widget--text-second-row {
172
268
  display: flex;
173
269
  align-items: center;
174
- grid-column-gap: 20px;
270
+ width: 100%;
271
+ grid-column-gap: var(--str-chat__spacing-5);
175
272
  padding-top: var(--str-chat__spacing-2_5);
176
273
 
177
274
  .str-chat__message-attachment-file--item-size {
@@ -182,13 +279,14 @@
182
279
 
183
280
  .str-chat__message-attachment-audio-widget--progress-track {
184
281
  position: relative;
185
- height: 2px;
282
+ height: calc(var(--str-chat__spacing-px) * 5);
186
283
  flex: 1;
284
+ cursor: pointer;
187
285
 
188
286
  .str-chat__message-attachment-audio-widget--progress-indicator {
189
287
  position: absolute;
190
288
  inset-inline-start: 0;
191
- height: 2px;
289
+ height: inherit;
192
290
  }
193
291
  }
194
292
 
@@ -206,6 +304,7 @@
206
304
 
207
305
  .str-chat__message-attachment-card {
208
306
  min-width: 0;
307
+ max-width: var(--str-chat__attachment-max-width);
209
308
  margin: var(--str-chat__attachment-margin);
210
309
 
211
310
  .str-chat__message-attachment-card--content {
@@ -231,7 +330,7 @@
231
330
  .str-chat__message-attachment-card-audio-widget--first-row {
232
331
  display: flex;
233
332
  align-items: center;
234
- column-gap: calc(var(--str-chat__spacing-px) * 14);
333
+ column-gap: var(--str-chat__spacing-3_5);
235
334
  }
236
335
  }
237
336
  }
@@ -264,6 +363,10 @@
264
363
  /* stylelint-disable-next-line length-zero-no-unit */
265
364
  --str-chat__attachment-margin: 0px;
266
365
 
366
+ * {
367
+ cursor: pointer !important;
368
+ }
369
+
267
370
  .str-chat__message-attachment-card {
268
371
  .str-chat__message-attachment-card--source-link,
269
372
  .str-chat__message-attachment-card--content {
@@ -271,11 +374,15 @@
271
374
  }
272
375
  }
273
376
 
274
- .str-chat__message-attachment-file--item {
275
- padding: 0;
377
+ .str-chat__message-attachment-file--item-download {
378
+ display: none;
379
+ }
380
+ }
276
381
 
277
- .str-chat__message-attachment-file--item-download {
278
- display: none;
382
+ .str-chat__message {
383
+ .str-chat__quoted-message-preview {
384
+ .str-chat__message-attachment-file--item {
385
+ padding: 0;
279
386
  }
280
387
  }
281
388
  }
@@ -25,30 +25,30 @@
25
25
  /* Box shadow applied to the component */
26
26
  --str-chat__attachment-list-box-shadow: none;
27
27
 
28
- /* The border radius used for the borders of image attachments */
28
+ /* The border radius used for the borders of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
29
29
  --str-chat__image-attachment-border-radius: calc(
30
30
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
31
31
  );
32
32
 
33
- /* The text/icon color of image attachments */
33
+ /* The text/icon color of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
34
34
  --str-chat__image-attachment-color: var(--str-chat__text-color);
35
35
 
36
- /* The background color of image attachments */
37
- --str-chat__image-attachment-background-color: transparent;
36
+ /* The background color of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
37
+ --str-chat__image-attachment-background-color: var(--str-chat__text-low-emphasis-color);
38
38
 
39
- /* Top border of image attachments */
39
+ /* Top border of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
40
40
  --str-chat__image-attachment-border-block-start: none;
41
41
 
42
- /* Bottom border of image attachments */
42
+ /* Bottom border of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
43
43
  --str-chat__image-attachment-border-block-end: none;
44
44
 
45
- /* Left (right in RTL layout) border of image attachments */
45
+ /* Left (right in RTL layout) border of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
46
46
  --str-chat__image-attachment-border-inline-start: none;
47
47
 
48
- /* Right (left in RTL layout) border of image attachments */
48
+ /* Right (left in RTL layout) border of image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
49
49
  --str-chat__image-attachment-border-inline-end: none;
50
50
 
51
- /* Box shadow applied to image gallery attachments */
51
+ /* Box shadow applied to image/video attachments (images/videos uploaded from files, scraped media, GIFs) */
52
52
  --str-chat__image-attachment-box-shadow: none;
53
53
 
54
54
  /* The border radius used for the borders of image gallery attachments */
@@ -257,17 +257,9 @@
257
257
  @include utils.component-layer-overrides('attachment-list');
258
258
 
259
259
  .str-chat__message-attachment--image,
260
- .str-chat__message-attachment-card--header {
261
- img,
262
- iframe {
263
- @include utils.component-layer-overrides('image-attachment');
264
- }
265
- }
266
-
260
+ .str-chat__message-attachment-card--header,
267
261
  .str-chat__message-attachment--video {
268
- video {
269
- @include utils.component-layer-overrides('image-attachment');
270
- }
262
+ @include utils.component-layer-overrides('image-attachment');
271
263
  }
272
264
 
273
265
  .str-chat__gallery {
@@ -290,6 +282,11 @@
290
282
  }
291
283
  }
292
284
 
285
+ .str-chat__message-attachment--svg-image {
286
+ background-image: repeating-conic-gradient(#d4d5d7 0% 25%, #f4f4f4 0% 50%);
287
+ background-size: 24px 24px;
288
+ }
289
+
293
290
  .str-chat__message-attachment-file--item {
294
291
  @include utils.component-layer-overrides('file-attachment');
295
292
  }
@@ -319,9 +316,11 @@
319
316
 
320
317
  .str-chat__message-attachment-audio-widget--progress-track {
321
318
  background-color: var(--str-chat__disabled-color);
319
+ border-radius: calc(var(--str-chat__spacing-px) * 5);
322
320
 
323
321
  .str-chat__message-attachment-audio-widget--progress-indicator {
324
322
  background-color: var(--str-chat__primary-color);
323
+ border-radius: inherit;
325
324
  }
326
325
  }
327
326
 
@@ -357,7 +356,8 @@
357
356
 
358
357
  .str-chat__message-attachment-card-audio-widget {
359
358
  background-color: var(--str-chat__audio-attachment-widget-background-color);
360
- border-radius: 0 0 14px 14px;
359
+ border-radius: 0 0 calc(var(--str-chat__spacing-px) * 14)
360
+ calc(var(--str-chat__spacing-px) * 14);
361
361
 
362
362
  .str-chat__message-attachment-audio-widget--title {
363
363
  color: var(--str-chat__text-color);
@@ -385,9 +385,16 @@
385
385
  }
386
386
 
387
387
  .str-chat__message-attachment-with-actions.str-chat__message-attachment--giphy {
388
- img {
388
+ .str-chat__message-attachment-card--header {
389
389
  border-end-start-radius: 0;
390
390
  border-end-end-radius: 0;
391
391
  }
392
392
  }
393
393
  }
394
+
395
+ .str-chat__message-attachment-card.str-chat__message-attachment-card--audio {
396
+ .str-chat__message-attachment-card--header {
397
+ border-end-start-radius: 0;
398
+ border-end-end-radius: 0;
399
+ }
400
+ }
@@ -20,7 +20,7 @@
20
20
  padding: var(--str-chat__spacing-2) 0;
21
21
 
22
22
  .str-chat__suggestion-list {
23
- max-height: calc(var(--str-chat__spacing-px) * 292);
23
+ max-height: calc(var(--str-chat__spacing-px) * 320);
24
24
 
25
25
  display: flex;
26
26
  flex-direction: column;
@@ -50,3 +50,13 @@
50
50
  width: 100%;
51
51
  }
52
52
  }
53
+
54
+ .str-chat__emoji-item {
55
+ @include utils.flex-row-center;
56
+ padding: var(--str-chat__spacing-2_5);
57
+ column-gap: var(--str-chat__spacing-2);
58
+
59
+ .str-chat__emoji-item--name {
60
+ width: 100%;
61
+ }
62
+ }
@@ -110,6 +110,33 @@
110
110
 
111
111
  /* The text color of the at sign inside a user mention itome in the autocomplete list */
112
112
  --str-chat__mention-list-user-item-at-sign-color: var(--str-chat__primary-color);
113
+
114
+ /* The font used in the emoji suggestion item in the autocomplete list */
115
+ --str-chat__mention-list-emoji-item-font-family: var(--str-chat__font-family);
116
+
117
+ /* The border radius used for the borders of the emoji suggestion item in the autocomplete list */
118
+ --str-chat__mention-list-emoji-item-border-radius: 0;
119
+
120
+ /* The text/icon color of the emoji suggestion item in the autocomplete list */
121
+ --str-chat__mention-list-emoji-item-color: var(--str-chat__text-color);
122
+
123
+ /* The background color of the emoji suggestion item in the autocomplete list */
124
+ --str-chat__mention-list-emoji-item-background-color: transparent;
125
+
126
+ /* Top border of the emoji suggestion item in the autocomplete list */
127
+ --str-chat__mention-list-emoji-item-border-block-start: none;
128
+
129
+ /* Bottom border of the emoji suggestion item in the autocomplete list */
130
+ --str-chat__mention-list-emoji-item-border-block-end: none;
131
+
132
+ /* Left (right in RTL layout) border of the emoji suggestion item in the autocomplete list */
133
+ --str-chat__mention-list-emoji-item-border-inline-start: none;
134
+
135
+ /* Right (left in RTL layout) border of the emoji suggestion item in the autocomplete list */
136
+ --str-chat__mention-list-emoji-item-border-inline-end: none;
137
+
138
+ /* Box shadow of the emoji suggestion item in the autocomplete list */
139
+ --str-chat__mention-list-emoji-item-box-shadow: none;
113
140
  }
114
141
 
115
142
  // Class defined by Angular mentions
@@ -156,6 +183,14 @@
156
183
  }
157
184
  }
158
185
 
186
+ .str-chat__emoji-item {
187
+ @include utils.component-layer-overrides('mention-list-emoji-item');
188
+
189
+ .str-chat__emoji-item--name {
190
+ font: var(--str-chat__subtitle-text);
191
+ }
192
+ }
193
+
159
194
  // TODO?: rename to autocomplete? or create new file
160
195
  .str-chat__suggestion-list-container {
161
196
  @include utils.component-layer-overrides('suggestion-list-container');
@@ -1,6 +1,8 @@
1
1
  .str-chat__avatar {
2
2
  .str-chat__avatar-fallback {
3
3
  text-align: center;
4
+ height: inherit;
5
+ width: inherit;
4
6
  }
5
7
  }
6
8
 
@@ -73,11 +73,9 @@
73
73
  .str-chat__channel-preview-end-first-row {
74
74
  @include utils.channel-preview-display-name-theme;
75
75
 
76
- .str-chat__channel-preview-messenger--name {
77
- .str-chat__channel-preview-unread-badge {
78
- @include utils.component-layer-overrides('channel-preview-unread-badge');
79
- font-size: 80%;
80
- }
76
+ .str-chat__channel-preview-unread-badge {
77
+ @include utils.component-layer-overrides('channel-preview-unread-badge');
78
+ font-size: 80%;
81
79
  }
82
80
 
83
81
  .str-chat__channel-preview-messenger--last-message {
@@ -17,6 +17,7 @@
17
17
  align-items: center;
18
18
  flex: 1;
19
19
  padding: var(--str-chat__spacing-2_5);
20
+ min-width: 0;
20
21
 
21
22
  .str-chat__channel-search-input--icon,
22
23
  .str-chat__channel-search-input--clear-button {
@@ -35,6 +36,7 @@
35
36
 
36
37
  input {
37
38
  flex: 1;
39
+ min-width: 0;
38
40
  }
39
41
  }
40
42
  }
@@ -67,4 +69,3 @@
67
69
  padding: var(--str-chat__spacing-3) var(--str-chat__spacing-2);
68
70
  }
69
71
  }
70
-
@@ -6,6 +6,23 @@
6
6
 
7
7
  /* The maximum allowed width of the message component */
8
8
  --str-chat__message-max-width: calc(var(--str-chat__spacing-px) * 480);
9
+
10
+ /* The maximum allowed width of the message component, if it has attachments */
11
+ --str-chat__message-with-attachment-max-width: calc(var(--str-chat__spacing-px) * 300);
12
+
13
+ /* The maximum allowed width of quoted messages inside the message component */
14
+ --str-chat__quoted-message-max-width: calc(var(--str-chat__spacing-px) * 180);
15
+
16
+ /* The maximum allowed width of quoted messages inside the message input component */
17
+ --str-chat__quoted-message-inside-message-input-max-width: calc(
18
+ var(--str-chat__spacing-px) * 200
19
+ );
20
+
21
+ /* The maximum allowed height of quoted messages inside the message input component */
22
+ --str-chat__quoted-message-inside-message-input-max-height: calc(
23
+ var(--str-chat__quoted-message-inside-message-input-max-width) +
24
+ calc(var(--str-chat__spacing-px) * 50)
25
+ );
9
26
  }
10
27
 
11
28
  .str-chat__message {
@@ -15,7 +32,7 @@
15
32
  }
16
33
 
17
34
  .str-chat__message.str-chat__message--has-attachment {
18
- --str-chat__message-max-width: calc(var(--str-chat__spacing-px) * 300);
35
+ --str-chat__message-max-width: var(--str-chat__message-with-attachment-max-width);
19
36
 
20
37
  .str-chat__message-bubble {
21
38
  max-width: var(--str-chat__message-max-width);
@@ -23,9 +40,11 @@
23
40
  }
24
41
 
25
42
  .str-chat__quoted-message-preview {
26
- --str-chat__message-max-width: calc(var(--str-chat__spacing-px) * 180);
43
+ --str-chat__message-max-width: var(--str-chat__quoted-message-max-width);
27
44
 
28
45
  .str-chat__quoted-message-bubble {
46
+ // Turn off pointer events so they don't interfere with jump to message
47
+ pointer-events: none;
29
48
  max-width: var(--str-chat__message-max-width);
30
49
  }
31
50
  }
@@ -97,10 +116,10 @@
97
116
 
98
117
  .str-chat__message-options {
99
118
  grid-area: options;
100
- display: flex;
101
- align-items: center;
119
+ align-items: start;
102
120
  justify-content: flex-end;
103
121
  flex-direction: row-reverse;
122
+ width: calc(3 * var(--str-chat__message-options-button-size));
104
123
 
105
124
  .str-chat__message-actions-box-button,
106
125
  .str-chat__message-reply-in-thread-button,
@@ -128,6 +147,10 @@
128
147
 
129
148
  .str-chat__message-text {
130
149
  @include chat-bubble-spacing;
150
+
151
+ p {
152
+ white-space: pre-line;
153
+ }
131
154
  }
132
155
  }
133
156
  }
@@ -156,6 +179,11 @@
156
179
  column-gap: var(--str-chat__spacing-0_5);
157
180
  position: relative;
158
181
 
182
+ .str-chat__message-status-tooltip-container {
183
+ display: flex;
184
+ justify-content: center;
185
+ }
186
+
159
187
  svg {
160
188
  width: calc(var(--str-chat__spacing-px) * 15);
161
189
  height: calc(var(--str-chat__spacing-px) * 15);
@@ -191,6 +219,7 @@
191
219
  display: flex;
192
220
  column-gap: var(--str-chat__spacing-1);
193
221
  min-width: 0;
222
+ width: 100%;
194
223
  }
195
224
 
196
225
  // Fixes emoji display in Chrome on non-retina display (only detected in Angular SDK) https://bugs.chromium.org/p/chromium/issues/detail?id=596223
@@ -225,24 +254,41 @@
225
254
  }
226
255
  }
227
256
 
228
- .str-chat__message-inner {
229
- @mixin visible {
230
- // Changing opacity instead of visibility because of a strange Safari behavior/bug
231
- opacity: 1;
232
- pointer-events: auto;
257
+ .str-chat__li {
258
+ &:hover {
259
+ .str-chat__message-options {
260
+ display: flex;
261
+ }
233
262
  }
263
+ }
234
264
 
235
- &:hover .str-chat__message-options {
236
- @include visible;
265
+ .str-chat__message-inner {
266
+ .str-chat__message-options {
267
+ display: none;
237
268
  }
238
269
 
239
270
  .str-chat__message-edit-in-progress.str-chat__message-options {
240
- @include visible;
271
+ display: flex;
241
272
  }
273
+ }
242
274
 
243
- .str-chat__message-options {
244
- opacity: 0;
245
- pointer-events: none;
275
+ .str-chat__message--other .str-chat__message-inner {
276
+ margin-inline-end: calc(var(--str-chat__message-options-button-size) * 3);
277
+ }
278
+
279
+ .str-chat__li:hover {
280
+ .str-chat__message--other .str-chat__message-inner {
281
+ margin-inline-end: 0;
282
+ }
283
+ }
284
+
285
+ .str-chat__message--me .str-chat__message-inner {
286
+ margin-inline-start: calc(var(--str-chat__message-options-button-size) * 3);
287
+ }
288
+
289
+ .str-chat__li:hover {
290
+ .str-chat__message--me .str-chat__message-inner {
291
+ margin-inline-start: 0;
246
292
  }
247
293
  }
248
294
 
@@ -311,17 +357,21 @@
311
357
  }
312
358
 
313
359
  .str-chat__message-input {
314
- .str-chat__quoted-message-bubble {
315
- max-height: calc(var(--str-chat__message-max-width) + calc(var(--str-chat__spacing-px) * 70));
360
+ .str-chat__quoted-message-preview {
361
+ --str-chat__message-max-width: var(--str-chat__quoted-message-inside-message-input-max-width);
316
362
 
317
- .str-chat__quoted-message-text {
318
- max-height: 100%;
319
- min-height: 0;
363
+ .str-chat__quoted-message-bubble {
364
+ max-height: var(--str-chat__quoted-message-inside-message-input-max-height);
320
365
 
321
- p {
366
+ .str-chat__quoted-message-text {
322
367
  max-height: 100%;
323
- overflow-y: auto;
324
- overflow-x: hidden;
368
+ min-height: 0;
369
+
370
+ p {
371
+ max-height: 100%;
372
+ overflow-y: auto;
373
+ overflow-x: hidden;
374
+ }
325
375
  }
326
376
  }
327
377
  }