stream-chat-angular 5.0.0-v5.9 → 5.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 (117) hide show
  1. package/assets/i18n/en.d.ts +1 -0
  2. package/assets/version.d.ts +1 -1
  3. package/esm2020/assets/i18n/en.mjs +3 -2
  4. package/esm2020/assets/version.mjs +2 -2
  5. package/esm2020/lib/attachment-list/attachment-list.component.mjs +3 -3
  6. package/esm2020/lib/attachment-preview-list/attachment-preview-list.component.mjs +3 -3
  7. package/esm2020/lib/attachment.service.mjs +103 -7
  8. package/esm2020/lib/avatar/avatar.component.mjs +3 -9
  9. package/esm2020/lib/avatar-placeholder/avatar-placeholder.component.mjs +3 -11
  10. package/esm2020/lib/channel/channel.component.mjs +5 -6
  11. package/esm2020/lib/channel-header/channel-header.component.mjs +3 -3
  12. package/esm2020/lib/channel-list/channel-list.component.mjs +5 -6
  13. package/esm2020/lib/channel-preview/channel-preview.component.mjs +3 -3
  14. package/esm2020/lib/channel-query.mjs +77 -0
  15. package/esm2020/lib/channel.service.mjs +197 -135
  16. package/esm2020/lib/chat-client.service.mjs +33 -11
  17. package/esm2020/lib/custom-templates.service.mjs +6 -10
  18. package/esm2020/lib/icon/icon.component.mjs +3 -7
  19. package/esm2020/lib/icon-placeholder/icon-placeholder.component.mjs +4 -7
  20. package/esm2020/lib/loading-indicator/loading-indicator.component.mjs +6 -22
  21. package/esm2020/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.mjs +5 -23
  22. package/esm2020/lib/message/message.component.mjs +129 -16
  23. package/esm2020/lib/message-actions-box/message-actions-box.component.mjs +39 -14
  24. package/esm2020/lib/message-actions.service.mjs +66 -2
  25. package/esm2020/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +16 -6
  26. package/esm2020/lib/message-input/message-input.component.mjs +76 -74
  27. package/esm2020/lib/message-input/textarea/textarea.component.mjs +13 -1
  28. package/esm2020/lib/message-list/message-list.component.mjs +83 -15
  29. package/esm2020/lib/message-reactions/message-reactions.component.mjs +7 -78
  30. package/esm2020/lib/message-reactions-selector/message-reactions-selector.component.mjs +61 -0
  31. package/esm2020/lib/modal/modal.component.mjs +1 -1
  32. package/esm2020/lib/stream-chat.module.mjs +8 -8
  33. package/esm2020/lib/thread/thread.component.mjs +3 -3
  34. package/esm2020/lib/types.mjs +1 -1
  35. package/esm2020/lib/voice-recording/voice-recording.component.mjs +3 -3
  36. package/esm2020/public-api.mjs +3 -2
  37. package/fesm2015/stream-chat-angular.mjs +2747 -2337
  38. package/fesm2015/stream-chat-angular.mjs.map +1 -1
  39. package/fesm2020/stream-chat-angular.mjs +2687 -2283
  40. package/fesm2020/stream-chat-angular.mjs.map +1 -1
  41. package/lib/attachment.service.d.ts +11 -4
  42. package/lib/avatar/avatar.component.d.ts +1 -5
  43. package/lib/avatar-placeholder/avatar-placeholder.component.d.ts +1 -5
  44. package/lib/channel-query.d.ts +26 -0
  45. package/lib/channel.service.d.ts +86 -57
  46. package/lib/chat-client.service.d.ts +7 -3
  47. package/lib/custom-templates.service.d.ts +8 -12
  48. package/lib/icon/icon.component.d.ts +2 -6
  49. package/lib/icon-placeholder/icon-placeholder.component.d.ts +1 -5
  50. package/lib/loading-indicator/loading-indicator.component.d.ts +1 -10
  51. package/lib/loading-indicator-placeholder/loading-indicator-placeholder.component.d.ts +1 -11
  52. package/lib/message/message.component.d.ts +31 -9
  53. package/lib/message-actions-box/message-actions-box.component.d.ts +11 -6
  54. package/lib/message-actions.service.d.ts +3 -2
  55. package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +1 -0
  56. package/lib/message-input/message-input.component.d.ts +19 -7
  57. package/lib/message-input/textarea/textarea.component.d.ts +1 -0
  58. package/lib/message-list/message-list.component.d.ts +11 -6
  59. package/lib/message-reactions/message-reactions.component.d.ts +6 -30
  60. package/lib/message-reactions-selector/message-reactions-selector.component.d.ts +35 -0
  61. package/lib/stream-chat.module.d.ts +5 -5
  62. package/lib/types.d.ts +28 -29
  63. package/package.json +5 -5
  64. package/public-api.d.ts +2 -1
  65. package/src/assets/assets/EmojiOneColor.woff2 +0 -0
  66. package/src/assets/assets/NotoColorEmoji-flags.woff2 +0 -0
  67. package/src/assets/assets/Poweredby_100px-White_VertText.png +0 -0
  68. package/src/assets/assets/icons/stream-chat-icons.eot +0 -0
  69. package/src/assets/assets/icons/stream-chat-icons.svg +46 -0
  70. package/src/assets/assets/icons/stream-chat-icons.ttf +0 -0
  71. package/src/assets/assets/icons/stream-chat-icons.woff +0 -0
  72. package/src/assets/assets/icons/stream-chat-icons.woff2 +0 -0
  73. package/src/assets/assets/str-chat__reaction-list-sprite@1x.png +0 -0
  74. package/src/assets/assets/str-chat__reaction-list-sprite@2x.png +0 -0
  75. package/src/assets/assets/str-chat__reaction-list-sprite@3x.png +0 -0
  76. package/src/assets/i18n/en.ts +2 -1
  77. package/src/assets/styles/css/index.css +2 -2
  78. package/src/assets/styles/css/index.layout.css +2 -2
  79. package/src/assets/styles/scss/AttachmentList/AttachmentList-layout.scss +74 -12
  80. package/src/assets/styles/scss/AttachmentList/AttachmentList-theme.scss +52 -0
  81. package/src/assets/styles/scss/AttachmentPreviewList/AttachmentPreviewList-layout.scss +24 -9
  82. package/src/assets/styles/scss/AttachmentPreviewList/AttachmentPreviewList-theme.scss +29 -0
  83. package/src/assets/styles/scss/AudioRecorder/AudioRecorder-layout.scss +89 -0
  84. package/src/assets/styles/scss/AudioRecorder/AudioRecorder-theme.scss +51 -0
  85. package/src/assets/styles/scss/Autocomplete/Autocomplete-layout.scss +1 -1
  86. package/src/assets/styles/scss/Avatar/Avatar-layout.scss +46 -0
  87. package/src/assets/styles/scss/Channel/Channel-layout.scss +1 -0
  88. package/src/assets/styles/scss/Channel/Channel-theme.scss +1 -0
  89. package/src/assets/styles/scss/ChannelList/ChannelList-layout.scss +2 -2
  90. package/src/assets/styles/scss/ChannelList/ChannelList-theme.scss +4 -2
  91. package/src/assets/styles/scss/ChannelPreview/ChannelPreview-layout.scss +2 -0
  92. package/src/assets/styles/scss/ChannelPreview/ChannelPreview-theme.scss +1 -0
  93. package/src/assets/styles/scss/EditMessageForm/EditMessageForm-theme.scss +9 -9
  94. package/src/assets/styles/scss/Icon/Icon-layout.scss +87 -0
  95. package/src/assets/styles/scss/Icon/Icon-theme.scss +13 -0
  96. package/src/assets/styles/scss/ImageCarousel/ImageCarousel-layout.scss +1 -0
  97. package/src/assets/styles/scss/ImageCarousel/ImageCarousel-theme.scss +1 -0
  98. package/src/assets/styles/scss/LoadingIndicator/LoadingIndicator-layout.scss +10 -1
  99. package/src/assets/styles/scss/LoadingIndicator/LoadingIndicator-theme.scss +6 -4
  100. package/src/assets/styles/scss/Message/Message-layout.scss +45 -6
  101. package/src/assets/styles/scss/Message/Message-theme.scss +6 -0
  102. package/src/assets/styles/scss/MessageInput/MessageInput-layout.scss +33 -1
  103. package/src/assets/styles/scss/MessageInput/MessageInput-theme.scss +65 -2
  104. package/src/assets/styles/scss/MessageList/MessageList-theme.scss +2 -0
  105. package/src/assets/styles/scss/MessageReactions/MessageReactionsSelector-layout.scss +18 -0
  106. package/src/assets/styles/scss/MessageReactions/MessageReactionsSelector-theme.scss +5 -0
  107. package/src/assets/styles/scss/Modal/Modal-layout.scss +1 -0
  108. package/src/assets/styles/scss/Modal/Modal-theme.scss +6 -0
  109. package/src/assets/styles/scss/_base.scss +4 -2
  110. package/src/assets/styles/scss/_emoji-replacement.scss +4 -2
  111. package/src/assets/styles/scss/_icons.scss +24 -2
  112. package/src/assets/styles/scss/_variables.scss +2 -0
  113. package/src/assets/styles/scss/index.layout.scss +2 -0
  114. package/src/assets/styles/scss/index.scss +2 -0
  115. package/src/assets/version.ts +1 -1
  116. package/esm2020/lib/edit-message-form/edit-message-form.component.mjs +0 -83
  117. package/lib/edit-message-form/edit-message-form.component.d.ts +0 -31
@@ -320,15 +320,24 @@
320
320
  background-size: 24px 24px;
321
321
  }
322
322
 
323
+ .str-chat__message-attachment-unsupported,
323
324
  .str-chat__message-attachment-file--item {
324
325
  @include utils.component-layer-overrides('file-attachment');
325
326
  }
326
327
 
328
+ .str-chat__message-attachment-unsupported {
329
+ .str-chat__message-attachment-unsupported__title {
330
+ font: var(--str-chat__subtitle-medium-text);
331
+ word-break: keep-all;
332
+ }
333
+ }
334
+
327
335
  .str-chat__message-attachment-file--item,
328
336
  .str-chat__message-attachment-audio-widget {
329
337
  .str-chat__message-attachment-file--item-name,
330
338
  .str-chat__message-attachment-audio-widget--title {
331
339
  font: var(--str-chat__subtitle-medium-text);
340
+ word-break: keep-all;
332
341
  }
333
342
 
334
343
  .str-chat__message-attachment-file--item-size {
@@ -476,6 +485,11 @@
476
485
  }
477
486
  }
478
487
 
488
+ .str-chat__message-attachment-audio-widget--play-button {
489
+ @include utils.component-layer-overrides('audio-attachment-controls-button');
490
+ @include utils.circle-fab-overrides('audio-attachment-controls-button');
491
+ }
492
+
479
493
  .str-chat__message-attachment-card.str-chat__message-attachment-card--audio {
480
494
  .str-chat__message-attachment-card--header {
481
495
  border-end-start-radius: 0;
@@ -483,6 +497,44 @@
483
497
  }
484
498
  }
485
499
 
500
+ .str-chat__message-attachment__voice-recording-widget {
501
+ @include utils.component-layer-overrides('voice-recording-attachment-widget');
502
+
503
+ .str-chat__message-attachment__voice-recording-widget__title {
504
+ @include utils.ellipsis-text;
505
+ word-break: keep-all;
506
+ font: var(--str-chat__subtitle-medium-text);
507
+ }
508
+
509
+ .str-chat__message-attachment__voice-recording-widget__timer {
510
+ font: var(--str-chat__body-text);
511
+ color: var(--str-chat__text-low-emphasis-color);
512
+ white-space: nowrap;
513
+ }
514
+ }
515
+
516
+ .str-chat__audio_recorder__waveform-box,
517
+ .str-chat__wave-progress-bar__track {
518
+ cursor: pointer;
519
+
520
+ .str-chat__wave-progress-bar__amplitude-bar {
521
+ background: var(--str-chat__text-low-emphasis-color);
522
+ border-radius: var(--str-chat__border-radius-circle);
523
+ }
524
+
525
+ .str-chat__wave-progress-bar__amplitude-bar--active {
526
+ background: var(--str-chat__primary-color);
527
+ }
528
+
529
+ .str-chat__wave-progress-bar__progress-indicator {
530
+ background-color: #fff;
531
+ border-radius: var(--str-chat__border-radius-circle);
532
+ border: 1px solid var(--str-chat__secondary-overlay-color);
533
+ cursor: grab;
534
+ }
535
+ }
536
+
537
+
486
538
  .str-chat-angular__message-attachment-file-single
487
539
  .str-chat__message-attachment-file--item-first-row {
488
540
  color: var(--str-chat__attachment-list-color);
@@ -1,6 +1,7 @@
1
1
  @use '../utils';
2
2
 
3
3
  .str-chat__attachment-preview-list {
4
+ --str-chat__loading-indicator-size: calc(var(--str-chat__spacing-px) * 18);
4
5
  $preview-height: calc(var(--str-chat__spacing-px) * 72);
5
6
 
6
7
  @include utils.flex-row-center;
@@ -46,6 +47,8 @@
46
47
  }
47
48
  }
48
49
 
50
+ .str-chat__attachment-preview-unsupported,
51
+ .str-chat__attachment-preview-voice-recording,
49
52
  .str-chat__attachment-preview-file {
50
53
  display: flex;
51
54
  justify-content: flex-start;
@@ -57,28 +60,38 @@
57
60
  padding: 0 var(--str-chat__spacing-4);
58
61
  column-gap: var(--str-chat__spacing-2);
59
62
 
60
- .str-chat__attachment-preview-file-icon {
61
- @include utils.flex-row-center;
62
-
63
- svg {
64
- height: calc(var(--str-chat__spacing-px) * 37);
65
- width: unset;
66
- }
67
- }
68
-
63
+ .str-chat__attachment-preview-metadata,
69
64
  .str-chat__attachment-preview-file-end {
70
65
  @include utils.ellipsis-text-parent;
66
+ flex: 1;
71
67
  display: flex;
72
68
  flex-direction: column;
73
69
  align-items: flex-start;
74
70
  justify-content: center;
75
71
 
72
+ .str-chat__attachment-preview-title,
76
73
  .str-chat__attachment-preview-file-name {
77
74
  @include utils.ellipsis-text;
78
75
  max-width: 100%;
79
76
  }
77
+ }
78
+
79
+ .str-chat__attachment-preview-file-icon {
80
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 37);
81
+ --str-chat-icon-width: auto;
82
+ @include utils.flex-row-center;
83
+
84
+ svg {
85
+ height: calc(var(--str-chat__spacing-px) * 37);
86
+ width: unset;
87
+ }
88
+ }
89
+ }
80
90
 
91
+ .str-chat__attachment-preview-file {
92
+ .str-chat__attachment-preview-file-end {
81
93
  .str-chat__attachment-preview-file-download {
94
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 16);
82
95
  line-height: calc(var(--str-chat__spacing-px) * 13);
83
96
 
84
97
  svg {
@@ -96,6 +109,7 @@
96
109
  }
97
110
 
98
111
  .str-chat__attachment-preview-delete {
112
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 24);
99
113
  position: absolute;
100
114
  top: calc(var(--str-chat__spacing-px) * 2);
101
115
  inset-inline-end: calc(var(--str-chat__spacing-px) * 2);
@@ -109,6 +123,7 @@
109
123
  }
110
124
 
111
125
  .str-chat__attachment-preview-error {
126
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 24);
112
127
  @include overlay;
113
128
  @include utils.unset-button(unset);
114
129
  inset-inline-start: 0;
@@ -107,13 +107,27 @@
107
107
  }
108
108
  }
109
109
 
110
+ .str-chat__attachment-preview-unsupported,
111
+ .str-chat__attachment-preview-voice-recording,
110
112
  .str-chat__attachment-preview-file {
111
113
  @include utils.component-layer-overrides('attachment-preview-file');
112
114
 
115
+ .str-chat__attachment-preview-title,
113
116
  .str-chat__attachment-preview-file-name {
114
117
  font: var(--str-chat__subtitle-medium-text);
115
118
  }
116
119
 
120
+ .str-chat__attachment-preview-file-download {
121
+ --str-chat-icon-color: var(--str-chat__attachment-preview-download-icon-color);
122
+ text-decoration: none;
123
+
124
+ svg path {
125
+ fill: var(--str-chat__attachment-preview-download-icon-color);
126
+ }
127
+ }
128
+ }
129
+
130
+ .str-chat__attachment-preview-file {
117
131
  .str-chat__attachment-preview-file-download {
118
132
  svg path {
119
133
  fill: var(--str-chat__attachment-preview-download-icon-color);
@@ -121,7 +135,21 @@
121
135
  }
122
136
  }
123
137
 
138
+ .str-chat__attachment-preview-voice-recording {
139
+ .str-chat__recording-timer {
140
+ color: var(--str-chat__text-low-emphasis-color);
141
+ font: var(--str-chat__caption-medium-text);
142
+ }
143
+ }
144
+
124
145
  .str-chat__attachment-preview-delete {
146
+ --str-chat-icon-color: var(--str-chat__attachment-preview-close-icon-color);
147
+
148
+ .str-chat__icon {
149
+ background-color: var(--str-chat__attachment-preview-close-icon-background);
150
+ border-radius: 999px;
151
+ }
152
+
125
153
  svg {
126
154
  background-color: var(--str-chat__attachment-preview-close-icon-background);
127
155
  border-radius: 999px;
@@ -133,6 +161,7 @@
133
161
  }
134
162
 
135
163
  .str-chat__attachment-preview-error {
164
+ --str-chat-icon-color: var(--str-chat__attachment-preview-retry-icon-color);
136
165
  background-color: var(--str-chat__attachment-preview-overlay-color);
137
166
 
138
167
  svg path {
@@ -0,0 +1,89 @@
1
+ @use '../utils';
2
+
3
+ .str-chat__audio_recorder-container {
4
+ bottom: 0;
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: flex-end;
8
+ width: 100%;
9
+ min-height: 3.25rem;
10
+ padding-inline: 1rem;
11
+ }
12
+
13
+ .str-chat__audio_recorder {
14
+ @include utils.flex-row-center;
15
+ gap: 0.375rem;
16
+
17
+ button {
18
+ @include utils.flex-row-center;
19
+ height: 32px;
20
+ width: 32px;
21
+ padding: 0;
22
+ }
23
+
24
+ .str-chat__audio_recorder__cancel-button svg {
25
+ height: 28px;
26
+ }
27
+
28
+ .str-chat__audio_recorder__toggle-playback-button svg {
29
+ height: 16px;
30
+ }
31
+
32
+ .str-chat__audio_recorder__pause-recording-button svg {
33
+ height: 12px;
34
+ }
35
+
36
+ .str-chat__audio_recorder__resume-recording-button svg {
37
+ height: 24px;
38
+ }
39
+
40
+ .str-chat__audio_recorder__stop-button svg {
41
+ height: 12px;
42
+ }
43
+
44
+ .str-chat__audio_recorder__complete-button svg {
45
+ height: 16px;
46
+ }
47
+
48
+ .str-chat__recording-timer {
49
+ display: flex;
50
+ align-items: center;
51
+ width: 3rem;
52
+ }
53
+
54
+ .str-chat__recording-timer--hours {
55
+ width: 3.75rem;
56
+ }
57
+
58
+ .str-chat__wave-progress-bar__track-container {
59
+ padding-block: 0.5rem;
60
+ overflow-x: auto;
61
+ height: fit-content;
62
+ }
63
+
64
+ .str-chat__waveform-box-container {
65
+ flex: 1;
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: flex-end;
69
+ width: 100%;
70
+ }
71
+
72
+ .str-chat__audio_recorder__waveform-box,
73
+ .str-chat__wave-progress-bar__track {
74
+ display: flex;
75
+ justify-content: flex-end;
76
+ align-items: center;
77
+ flex-wrap: nowrap;
78
+ height: 2rem;
79
+ margin-inline: 1rem;
80
+ }
81
+
82
+ .str-chat__wave-progress-bar__track {
83
+ width: 120px;
84
+ }
85
+
86
+ .str-chat__audio_recorder__waveform-box {
87
+ overflow-x: hidden;
88
+ }
89
+ }
@@ -0,0 +1,51 @@
1
+ @use '../utils';
2
+
3
+ .str-chat__audio_recorder-container {
4
+ background-color: var(--str-chat__background-color);
5
+ }
6
+
7
+ .str-chat__audio_recorder {
8
+ //@include utils.component-layer-overrides('audio-recorder');
9
+
10
+ button {
11
+ @include utils.button-reset;
12
+ cursor: pointer;
13
+
14
+ &:disabled {
15
+ cursor: default;
16
+ }
17
+ }
18
+
19
+ .str-chat__audio_recorder__cancel-button {
20
+ color: var(--str-chat__text-low-emphasis-color);
21
+ }
22
+
23
+ .str-chat__audio_recorder__toggle-playback-button {
24
+ color: var(--str-chat__text-low-emphasis-color);
25
+ }
26
+
27
+ .str-chat__audio_recorder__pause-recording-button,
28
+ .str-chat__audio_recorder__resume-recording-button {
29
+ color: var(--str-chat__danger-color);
30
+ }
31
+
32
+ .str-chat__audio_recorder__pause-recording-button {
33
+ border: 3px solid var(--str-chat__danger-color);
34
+ border-radius: var(--str-chat__border-radius-circle);
35
+ }
36
+
37
+ .str-chat__audio_recorder__stop-button,
38
+ .str-chat__audio_recorder__complete-button {
39
+ border-radius: var(--str-chat__border-radius-circle);
40
+ color: var(--str-chat__on-primary-color);
41
+ background-color: var(--str-chat__primary-color);
42
+
43
+ .str-chat__loading-indicator svg {
44
+ linearGradient {
45
+ stop:last-child {
46
+ stop-color: var(--str-chat__background-color);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
@@ -23,7 +23,7 @@
23
23
  // React SDK's version of Angular SDK's .dropup (mention-list)
24
24
  .str-chat__suggestion-list-container {
25
25
  position: absolute;
26
- bottom: var(--str-chat__spacing-7);
26
+ bottom: calc(100% + var(--str-chat__spacing-2_5));
27
27
  width: 100%;
28
28
  padding: var(--str-chat__spacing-2) 0;
29
29
 
@@ -1,3 +1,28 @@
1
+ .str-chat {
2
+ /* The size of the avatar, only available in Angular v5+ */
3
+ --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 32);
4
+
5
+ .stream-chat__avatar--autocomplete-item {
6
+ --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 30);
7
+ }
8
+
9
+ .stream-chat__avatar--channel-header {
10
+ --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 40);
11
+ }
12
+
13
+ .stream-chat__avatar--channel-preview {
14
+ --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 49);
15
+ }
16
+
17
+ .stream-chat__avatar--quoted-message-sender {
18
+ --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 20);
19
+ }
20
+
21
+ .stream-chat__avatar--reaction {
22
+ --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 30);
23
+ }
24
+ }
25
+
1
26
  .str-chat__avatar {
2
27
  position: relative;
3
28
 
@@ -21,3 +46,24 @@
21
46
  width: calc(var(--str-chat__spacing-px) * 49);
22
47
  height: calc(var(--str-chat__spacing-px) * 49);
23
48
  }
49
+
50
+ .str-chat-angular__avatar {
51
+ height: var(--str-chat__avatar-size);
52
+ line-height: var(--str-chat__avatar-size);
53
+ width: var(--str-chat__avatar-size);
54
+
55
+ &.stream-chat__avatar--one-letter {
56
+ font-size: calc(var(--str-chat__avatar-size) * 0.5);
57
+ }
58
+
59
+ &.stream-chat__avatar--multiple-letters {
60
+ font-size: calc(var(--str-chat__avatar-size) * 0.3);
61
+ }
62
+
63
+ .str-chat__avatar-image {
64
+ height: 100%;
65
+ width: 100%;
66
+ object-fit: cover;;
67
+ }
68
+
69
+ }
@@ -25,6 +25,7 @@
25
25
  }
26
26
 
27
27
  .str-chat__empty-channel {
28
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 136);
28
29
  @include utils.empty-layout;
29
30
  position: relative;
30
31
 
@@ -40,6 +40,7 @@
40
40
  }
41
41
 
42
42
  .str-chat__empty-channel {
43
+ --str-chat-icon-color: var(--str-chat__channel-empty-color);
43
44
  @include utils.component-layer-overrides('channel');
44
45
  @include utils.empty-theme('channel');
45
46
 
@@ -14,6 +14,7 @@
14
14
  height: 100%;
15
15
 
16
16
  .str-chat__channel-list-empty {
17
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 136);
17
18
  @include utils.empty-layout;
18
19
  }
19
20
 
@@ -40,7 +41,6 @@
40
41
  }
41
42
  }
42
43
 
43
-
44
44
  .str-chat__channel-list-react {
45
45
  overflow: hidden;
46
46
 
@@ -52,4 +52,4 @@
52
52
  overflow-y: auto;
53
53
  }
54
54
  }
55
- }
55
+ }
@@ -68,8 +68,8 @@
68
68
  /* The text/icon color of the load more button in disabled state */
69
69
  --str-chat__channel-list-load-more-disabled-color: var(--str-chat__cta-button-disabled-color);
70
70
 
71
- /* The icon color for the empty list state */
72
- --str-chat__channel-list-empty-indicator-color: var(--str-chat__disabled-color);
71
+ /* The text/icon color for the empty list state */
72
+ --str-chat__channel-list-empty-indicator-color: var(--str-chat__text-low-emphasis-color);
73
73
  }
74
74
 
75
75
  .str-chat__channel-list {
@@ -82,6 +82,8 @@
82
82
  }
83
83
 
84
84
  .str-chat__channel-list-empty {
85
+ --str-chat-icon-color: var(--str-chat__channel-list-empty-indicator-color);
85
86
  @include utils.empty-theme('channel-list');
87
+ color: var(--str-chat__channel-list-empty-indicator-color);
86
88
  }
87
89
  }
@@ -60,6 +60,8 @@
60
60
  }
61
61
 
62
62
  .str-chat__channel-preview-messenger--status {
63
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 15);
64
+
63
65
  svg {
64
66
  width: calc(var(--str-chat__spacing-px) * 15);
65
67
  height: calc(var(--str-chat__spacing-px) * 15);
@@ -98,6 +98,7 @@
98
98
  }
99
99
 
100
100
  .str-chat__channel-preview-messenger--status {
101
+ --str-chat-icon-color: var(--str-chat__channel-preview-message-status-color);
101
102
  color: var(--str-chat__channel-preview-message-status-color);
102
103
 
103
104
  svg {
@@ -1,31 +1,31 @@
1
1
  @use '../utils';
2
2
 
3
3
  .str-chat {
4
- /* The border radius used for the borders of the component */
4
+ /* The border radius used for the borders of the component. Note for Angular SDK users: this variable isn't available starting from version 5 */
5
5
  --str-chat__edit-message-modal-button-border-radius: none;
6
6
 
7
- /* The text color used for the send button */
7
+ /* The text color used for the send button. Note for Angular SDK users: this variable isn't available starting from version 5 */
8
8
  --str-chat__edit-message-modal-send-button-color: var(--str-chat__primary-color);
9
9
 
10
- /* The text color used for the cancel button */
10
+ /* The text color used for the cancel button. Note for Angular SDK users: this variable isn't available starting from version 5 */
11
11
  --str-chat__edit-message-modal-cancel-button-color: var(--str-chat__text-low-emphasis-color);
12
12
 
13
- /* The background color of the component */
13
+ /* The background color of the component. Note for Angular SDK users: this variable isn't available starting from version 5 */
14
14
  --str-chat__edit-message-modal-button-background-color: transparent;
15
15
 
16
- /* Top border of the component */
16
+ /* Top border of the component. Note for Angular SDK users: this variable isn't available starting from version 5 */
17
17
  --str-chat__edit-message-modal-button-border-block-start: none;
18
18
 
19
- /* Bottom border of the component */
19
+ /* Bottom border of the component. Note for Angular SDK users: this variable isn't available starting from version 5 */
20
20
  --str-chat__edit-message-modal-button-border-block-end: none;
21
21
 
22
- /* Left (right in RTL layout) border of the component */
22
+ /* Left (right in RTL layout) border of the component. Note for Angular SDK users: this variable isn't available starting from version 5 */
23
23
  --str-chat__edit-message-modal-button-border-inline-start: none;
24
24
 
25
- /* Right (left in RTL layout) border of the component */
25
+ /* Right (left in RTL layout) border of the component. Note for Angular SDK users: this variable isn't available starting from version 5 */
26
26
  --str-chat__edit-message-modal-button-border-inline-end: none;
27
27
 
28
- /* Box shadow applied to the component */
28
+ /* Box shadow applied to the component. Note for Angular SDK users: this variable isn't available starting from version 5 */
29
29
  --str-chat__edit-message-modal-button-box-shadow: none;
30
30
  }
31
31
 
@@ -0,0 +1,87 @@
1
+ /* Only available in Angular v5+ */
2
+ .str-chat {
3
+ /* The height of the icon, only available in Angular v5+ */
4
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 24);
5
+ /* The width of the icon, only available in Angular v5+ */
6
+ --str-chat-icon-width: auto;
7
+ }
8
+
9
+ .str-chat__icon {
10
+ display: flex;
11
+ font-family: 'stream-chat-icons';
12
+ font-style: normal;
13
+ font-weight: normal;
14
+ font-size: var(--str-chat-icon-height);
15
+ line-height: var(--str-chat-icon-height);
16
+ height: var(--str-chat-icon-height);
17
+ width: var(--str-chat-icon-width);
18
+
19
+ &::before {
20
+ line-height: var(--str-chat-icon-height);
21
+ }
22
+ }
23
+
24
+ // File type icons
25
+ .str-chat__icon--unspecified-filetype {
26
+ content: url('data:image/svg+xml;base64,PHN2ZwogIGRhdGEtdGVzdGlkPSJ1bnNwZWNpZmllZC1maWxldHlwZSIKICB3aWR0aD0iMzQiCiAgaGVpZ2h0PSI0MCIKICB2aWV3Qm94PSIwIDAgMzQgNDAiCiAgZmlsbD0ibm9uZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCj4KICA8cGF0aAogICAgZD0iTTAgM0MwIDEuMzQzMTUgMS4zNDMxNSAwIDMgMEgyM0wzNCAxMVYzN0MzNCAzOC42NTY5IDMyLjY1NjkgNDAgMzEgNDBIM0MxLjM0MzE1IDQwIDAgMzguNjU2OSAwIDM3VjNaIgogICAgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIKICAvPgogIDxwYXRoIGQ9Ik0zNCAxMUwyNiAxMUMyNC4zNDMxIDExIDIzIDkuNjU2ODUgMjMgOFYwTDM0IDExWiIgZmlsbD0iI0RCREJEQiIgLz4KICA8cGF0aAogICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgY2xpcC1ydWxlPSJldmVub2RkIgogICAgZD0iTTggMTNIMjNWMTVIOFYxM1oiCiAgICBmaWxsPSIjQ0ZDRkNGIgogIC8+CiAgPHBhdGgKICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgIGQ9Ik04IDE3SDE4VjE5SDhWMTdaIgogICAgZmlsbD0iI0NGQ0ZDRiIKICAvPgogIDxwYXRoCiAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICBkPSJNOCAyMUgyM1YyM0g4VjIxWiIKICAgIGZpbGw9IiNDRkNGQ0YiCiAgLz4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICBpZD0icGFpbnQwX2xpbmVhciIKICAgICAgeDE9IjAiCiAgICAgIHkxPSIwIgogICAgICB4Mj0iMCIKICAgICAgeTI9IjQwIgogICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgID4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiIC8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0RCREJEQiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgo8L3N2Zz4=');
27
+ }
28
+
29
+ .str-chat__icon--audio-file {
30
+ content: url('data:image/svg+xml;base64,PHN2ZwogIGNsYXNzPSJyZnUtZmlsZS1hdWRpbyIKICBmaWxsPSJub25lIgogIHZpZXdCb3g9IjAgMCAzNCA0MCIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgaGVpZ2h0PSIyMCIKICB3aWR0aD0iMjAiCj4KICA8cGF0aAogICAgY2xpcC1ydWxlPSJldmVub2RkIgogICAgZD0iTTE3LjcxNjggMzMuMTcyQzE4LjIzNDggMzMuMTcyIDE4LjQyMzggMzMuNjU1IDE4LjQyMzggMzQuMThDMTguNDIzOCAzNC42NDIgMTguMjk3OCAzNS4xOTUgMTcuNzE2OCAzNS4xOTVDMTcuMTcwOCAzNS4xOTUgMTYuOTg4OCAzNC42NDIgMTYuOTg4OCAzNC4xNDVDMTYuOTg4OCAzMy42ODMgMTcuMTcwOCAzMy4xNzIgMTcuNzE2OCAzMy4xNzJaTTE5LjU3MTggMzEuMDAySDE4LjM4MThWMzIuNzU4OUgxOC4zNjc4QzE4LjEyMjggMzIuNDMgMTcuNzc5OCAzMi4yNjIgMTcuMzMxOCAzMi4yNjJDMTYuMzAyOCAzMi4yNjIgMTUuNzk4OCAzMy4xNTggMTUuNzk4OCAzNC4xMDNDMTUuNzk4OCAzNS4xMjUgMTYuMjgxOCAzNi4xMDQ5IDE3LjQyMjggMzYuMTA0OUMxNy44NDI4IDM2LjEwNDkgMTguMTkyOCAzNS45MjMgMTguNDIzOCAzNS41OEgxOC40Mzc4VjM2SDE5LjU3MThWMzEuMDAyWk0xMi43MDk1IDM0LjE4NzJDMTIuNzA5NSAzMy43MjUyIDEyLjg3NzUgMzMuMTcyMiAxMy40MzA1IDMzLjE3MjJDMTMuOTgzNSAzMy4xNzIyIDE0LjE1ODUgMzMuNzI1MiAxNC4xNTg1IDM0LjE4NzJDMTQuMTU4NSAzNC42NDkyIDEzLjk4MzUgMzUuMTk1MiAxMy40MzA1IDM1LjE5NTJDMTIuODc3NSAzNS4xOTUyIDEyLjcwOTUgMzQuNjQ5MiAxMi43MDk1IDM0LjE4NzJaTTExLjUxOTUgMzQuMTg3MkMxMS41MTk1IDM1LjI3OTIgMTIuMzAzNSAzNi4xMDUyIDEzLjQzMDUgMzYuMTA1MkMxNC41NTc1IDM2LjEwNTIgMTUuMzQ4NSAzNS4yNzkyIDE1LjM0ODUgMzQuMTg3MkMxNS4zNDg1IDMzLjA5NTIgMTQuNTU3NSAzMi4yNjIyIDEzLjQzMDUgMzIuMjYyMkMxMi4zMDM1IDMyLjI2MjIgMTEuNTE5NSAzMy4wOTUyIDExLjUxOTUgMzQuMTg3MlpNMjEuODM5IDMyLjM2NzFIMjIuNTc0VjMzLjEzNzFIMjEuODM5VjM0Ljc4OTFDMjEuODM5IDM1LjA3NjEgMjIuMDA3IDM1LjEzOTEgMjIuMjY2IDM1LjEzOTFDMjIuMzE0MiAzNS4xMzkxIDIyLjM2NCAzNS4xMzU3IDIyLjQxNDcgMzUuMTMyM0MyMi40NjcyIDM1LjEyODcgMjIuNTIwNiAzNS4xMjUxIDIyLjU3NCAzNS4xMjUxVjM2LjAwMDFDMjIuNDgxIDM2LjAwMzEgMjIuMzg4IDM2LjAwOTkgMjIuMjk1IDM2LjAxNjhDMjIuMTcxIDM2LjAyNTkgMjIuMDQ3IDM2LjAzNTEgMjEuOTIzIDM2LjAzNTFDMjAuOTA4IDM2LjAzNTEgMjAuNjQ5IDM1Ljc0MTEgMjAuNjQ5IDM0Ljc1NDFWMzMuMTM3MUgyMC4wNDdWMzIuMzY3MUgyMC42NDlWMzEuMjY4MUgyMS44MzlWMzIuMzY3MVoiCiAgICBmaWxsPSJ3aGl0ZSIKICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICA+PC9wYXRoPgogIDxwYXRoCiAgICBkPSJNMCAyOEgzNFYzN0MzNCAzOC42NTY5IDMyLjY1NjkgNDAgMzEgNDBIM0MxLjM0MzE1IDQwIDAgMzguNjU2OSAwIDM3VjI4WiIKICAgIGZpbGw9IiMyNzI3QjAiCiAgPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAzQzAgMS4zNDMxNSAxLjM0MzE1IDAgMyAwSDIzTDM0IDExVjI4SDBWM1oiIGZpbGw9IiNGNUY1RjUiPjwvcGF0aD4KICA8cGF0aAogICAgZD0iTTM0IDExTDI2IDExQzI0LjM0MzEgMTEgMjMgOS42NTY4NSAyMyA4VjBMMzQgMTFaIgogICAgZmlsbD0iI0RCREJEQiIKICA+PC9wYXRoPgogIDxwYXRoCiAgICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICBkPSJNOC44NzkxMiAyMS45NDFIMTIuMjk4TDE2Ljk1MjEgMjQuNzQ5M0MxNy4wMzA3IDI0LjgxMzggMTcuMTI5MyAyNC44NDkgMTcuMjMxMSAyNC44NDlDMTcuNDczOCAyNC44NDg4IDE3LjY3MDUgMjQuNjUxOSAxNy42NzAzIDI0LjQwOTJWMTIuNDM5OUMxNy42NzA0IDEyLjMzODEgMTcuNjM1MiAxMi4yMzk2IDE3LjU3MDcgMTIuMTYwOUMxNy40MTY4IDExLjk3MzIgMTcuMTM5OCAxMS45NDU3IDE2Ljk1MjEgMTIuMDk5NkwxMi4yOTggMTQuOTA4SDguODc5MTJDOC4zOTM2IDE0LjkwOCA4IDE1LjMwMTYgOCAxNS43ODcxVjIxLjA2MTlDOCAyMS41NDc0IDguMzkzNiAyMS45NDEgOC44NzkxMiAyMS45NDFaTTEyLjkyNTggMTYuNjY2NEwxNS45MTIyIDE1LjIyMjRWMjEuNjI2OEwxMi45MjU4IDIwLjE4MjlIOS43NTgzVjE2LjY2NjRIMTIuOTI1OFpNMTkuODUxMSAxNi4zNTE3QzE5LjQ3NCAxNi40MDkyIDE5LjIzOTcgMTYuNjYzNyAxOS4zMjgzIDE2LjkxOTFMMTkuMzI2MiAxNi45MkMxOS41Mjk1IDE3LjQ5OTUgMTkuNjMwNSAxOC4wOTggMTkuNjI4NCAxOC42OTUzQzE5LjYzMDUgMTkuMjk3NSAxOS41MjM3IDE5LjkwMTQgMTkuMzE5NiAyMC40OTA5QzE5LjIyOSAyMC43NDYyIDE5LjQ2ODIgMjAuOTk5NiAxOS44NDc0IDIxLjA2QzE5LjkwMDggMjEuMDY4MyAxOS45NTQyIDIxLjA3MiAyMC4wMDc2IDIxLjA3MkMyMC4zMjU5IDIxLjA3MiAyMC42MTU2IDIwLjkyMzQgMjAuNjkyMiAyMC43MDU3QzIwLjkxOTQgMjAuMDQ1MSAyMS4wMzM3IDE5LjM3IDIxLjAzNzQgMTguNjk1M0MyMS4wMzQ5IDE4LjAyNTEgMjAuOTIxMSAxNy4zNTc1IDIwLjY5NTUgMTYuNzAzNUMyMC42MDUzIDE2LjQ0NzcgMjAuMjI5IDE2LjI5MDggMTkuODUxMSAxNi4zNTE3Wk0yMi4xNjA1IDE0LjYwMjhDMjIuNTI1MiAxNC41MTYzIDIyLjkyNTkgMTQuNjQ1NCAyMy4wNTUgMTQuODkzOEMyMy42ODkxIDE2LjExNTcgMjQgMTcuNDA0MiAyNCAxOC42OTIzQzI0LjAwMDQgMTkuOTg5NSAyMy42Nzk2IDIxLjI4MzkgMjMuMDUyMSAyMi41MTUzQzIyLjk1MDMgMjIuNzEyMyAyMi42NzYzIDIyLjgzNDQgMjIuMzgyOCAyMi44MzQ0QzIyLjMwNzEgMjIuODM0NCAyMi4yMzAxIDIyLjgyNjEgMjIuMTU0MyAyMi44MDkyQzIxLjc4NjMgMjIuNzI1MSAyMS41OTE0IDIyLjQ1MzYgMjEuNzE4NSAyMi4yMDc3QzIyLjI5ODggMjEuMDc2MSAyMi41OTIyIDE5Ljg4MzYgMjIuNTkzMSAxOC42OTE5QzIyLjU5MzEgMTcuNTA1NiAyMi4zMDU0IDE2LjMyMjIgMjEuNzI3NiAxNS4yMDI1QzIxLjYwMDEgMTQuOTU2MyAyMS43OTUgMTQuNjg2IDIyLjE2MDUgMTQuNjAyOFoiCiAgICBmaWxsPSIjMjcyN0IwIgogICAgZmlsbC1ydWxlPSJldmVub2RkIgogID48L3BhdGg+Cjwvc3ZnPg==');
31
+ }
32
+
33
+ // Copy icon mapping here
34
+ .str-chat__icon--action::before {
35
+ content: '\e800';
36
+ } /* '' */
37
+ .str-chat__icon--arrow-down::before {
38
+ content: '\e801';
39
+ } /* '' */
40
+ .str-chat__icon--arrow-left::before {
41
+ content: '\e802';
42
+ } /* '' */
43
+ .str-chat__icon--arrow-right::before {
44
+ content: '\e803';
45
+ } /* '' */
46
+ .str-chat__icon--close::before {
47
+ content: '\e804';
48
+ } /* '' */
49
+ .str-chat__icon--arrow-up::before {
50
+ content: '\e805';
51
+ } /* '' */
52
+ .str-chat__icon--chat-bubble::before {
53
+ content: '\e806';
54
+ } /* '' */
55
+ .str-chat__icon--pause::before {
56
+ content: '\e807';
57
+ } /* '' */
58
+ .str-chat__icon--download::before {
59
+ content: '\e808';
60
+ } /* '' */
61
+ .str-chat__icon--delivered::before {
62
+ content: '\e809';
63
+ } /* '' */
64
+ .str-chat__icon--play::before {
65
+ content: '\e80a';
66
+ } /* '' */
67
+ .str-chat__icon--reaction::before {
68
+ content: '\e80b';
69
+ } /* '' */
70
+ .str-chat__icon--error::before {
71
+ content: '\e80c';
72
+ } /* '' */
73
+ .str-chat__icon--read::before {
74
+ content: '\e80d';
75
+ } /* '' */
76
+ .str-chat__icon--retry::before {
77
+ content: '\e80e';
78
+ } /* '' */
79
+ .str-chat__icon--reply-in-thread::before {
80
+ content: '\e80f';
81
+ } /* '' */
82
+ .str-chat__icon--send::before {
83
+ content: '\e810';
84
+ } /* '' */
85
+ .str-chat__icon--attach::before {
86
+ content: '\e811';
87
+ } /* '' */
@@ -0,0 +1,13 @@
1
+ /* Only available in Angular v5+ */
2
+ .str-chat {
3
+ /* The color of the icon, only available in Angular v5+ */
4
+ --str-chat-icon-color: var(--str-chat__text-color);
5
+ }
6
+
7
+ .str-chat__icon {
8
+ color: var(--str-chat-icon-color);
9
+ }
10
+
11
+ .str-chat__icon--error {
12
+ --str-chat-icon-color: var(--str-chat__danger-color);
13
+ }
@@ -10,6 +10,7 @@
10
10
  height: 100%;
11
11
 
12
12
  .str-chat__image-carousel-stepper {
13
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 30);
13
14
  padding: var(--str-chat__spacing-2_5);
14
15
  border: none;
15
16
  cursor: pointer;
@@ -20,6 +20,7 @@
20
20
 
21
21
  .str-chat__image-carousel {
22
22
  .str-chat__image-carousel-stepper {
23
+ --str-chat-icon-color: var(--str-chat__image-carousel-stepper-color);
23
24
  cursor: pointer;
24
25
 
25
26
  svg path {