stream-chat-react 11.16.1 → 11.18.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 (130) hide show
  1. package/dist/{Window-9d319da4.js → Window-5802024e.js} +289 -156
  2. package/dist/assets/icons/stream-chat-icons.eot +0 -0
  3. package/dist/assets/icons/stream-chat-icons.svg +46 -0
  4. package/dist/assets/icons/stream-chat-icons.ttf +0 -0
  5. package/dist/assets/icons/stream-chat-icons.woff +0 -0
  6. package/dist/assets/icons/stream-chat-icons.woff2 +0 -0
  7. package/dist/browser.full-bundle.js +299 -161
  8. package/dist/browser.full-bundle.js.map +1 -1
  9. package/dist/browser.full-bundle.min.js +4 -4
  10. package/dist/browser.full-bundle.min.js.map +1 -1
  11. package/dist/components/Attachment/AttachmentContainer.js +1 -1
  12. package/dist/components/Attachment/UnsupportedAttachment.d.ts.map +1 -1
  13. package/dist/components/Attachment/UnsupportedAttachment.js +7 -7
  14. package/dist/components/Attachment/utils.d.ts +9 -4
  15. package/dist/components/Attachment/utils.d.ts.map +1 -1
  16. package/dist/components/Attachment/utils.js +17 -2
  17. package/dist/components/Emojis/index.cjs.js +1 -1
  18. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +1 -1
  19. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +9 -8
  20. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +1 -1
  21. package/dist/components/MediaRecorder/classes/MediaRecorderController.js +4 -4
  22. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +3 -3
  23. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts.map +1 -1
  24. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  25. package/dist/components/Message/MessageSimple.js +2 -1
  26. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts +16 -0
  27. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts.map +1 -0
  28. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js +37 -0
  29. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts +13 -0
  30. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts.map +1 -0
  31. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js +19 -0
  32. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts +7 -0
  33. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts.map +1 -0
  34. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js +23 -0
  35. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts +7 -0
  36. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts.map +1 -0
  37. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js +22 -0
  38. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.d.ts +12 -0
  39. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.d.ts.map +1 -0
  40. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.js +61 -0
  41. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts +7 -0
  42. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts.map +1 -0
  43. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js +27 -0
  44. package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts +7 -0
  45. package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts.map +1 -0
  46. package/dist/components/MessageInput/AttachmentPreviewList/index.js +1 -0
  47. package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts +8 -0
  48. package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts.map +1 -0
  49. package/dist/components/MessageInput/AttachmentPreviewList/types.js +1 -0
  50. package/dist/components/MessageInput/hooks/useAttachments.d.ts +4 -2
  51. package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
  52. package/dist/components/MessageInput/hooks/useAttachments.js +73 -33
  53. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  54. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +5 -3
  55. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +18 -16
  56. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  57. package/dist/components/MessageInput/hooks/useMessageInputState.js +19 -15
  58. package/dist/components/MessageInput/hooks/useSubmitHandler.js +3 -3
  59. package/dist/components/MessageInput/index.d.ts +1 -0
  60. package/dist/components/MessageInput/index.d.ts.map +1 -1
  61. package/dist/components/MessageInput/types.d.ts +33 -10
  62. package/dist/components/MessageInput/types.d.ts.map +1 -1
  63. package/dist/components/MessageList/MessageList.d.ts +6 -1
  64. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  65. package/dist/components/MessageList/MessageList.js +2 -1
  66. package/dist/components/MessageList/VirtualizedMessageList.d.ts +6 -1
  67. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  68. package/dist/components/MessageList/VirtualizedMessageList.js +3 -2
  69. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +14 -1
  70. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -1
  71. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js +3 -2
  72. package/dist/components/MessageList/utils.d.ts +18 -3
  73. package/dist/components/MessageList/utils.d.ts.map +1 -1
  74. package/dist/components/MessageList/utils.js +15 -5
  75. package/dist/context/ChannelStateContext.d.ts +1 -1
  76. package/dist/context/ComponentContext.d.ts +2 -1
  77. package/dist/context/ComponentContext.d.ts.map +1 -1
  78. package/dist/context/MessageInputContext.d.ts +4 -3
  79. package/dist/context/MessageInputContext.d.ts.map +1 -1
  80. package/dist/css/v2/index.css +2 -2
  81. package/dist/css/v2/index.layout.css +2 -2
  82. package/dist/i18n/Streami18n.d.ts +1 -0
  83. package/dist/i18n/Streami18n.d.ts.map +1 -1
  84. package/dist/i18n/de.json +1 -0
  85. package/dist/i18n/en.json +1 -0
  86. package/dist/i18n/es.json +1 -0
  87. package/dist/i18n/fr.json +1 -0
  88. package/dist/i18n/hi.json +1 -0
  89. package/dist/i18n/it.json +1 -0
  90. package/dist/i18n/ja.json +1 -0
  91. package/dist/i18n/ko.json +1 -0
  92. package/dist/i18n/nl.json +1 -0
  93. package/dist/i18n/pt.json +1 -0
  94. package/dist/i18n/ru.json +1 -0
  95. package/dist/i18n/tr.json +1 -0
  96. package/dist/index.cjs.js +13 -5
  97. package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +38 -1
  98. package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +8 -0
  99. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-layout.scss +9 -1
  100. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-theme.scss +13 -0
  101. package/dist/scss/v2/Avatar/Avatar-layout.scss +46 -0
  102. package/dist/scss/v2/Channel/Channel-layout.scss +1 -0
  103. package/dist/scss/v2/Channel/Channel-theme.scss +1 -0
  104. package/dist/scss/v2/ChannelList/ChannelList-layout.scss +2 -2
  105. package/dist/scss/v2/ChannelList/ChannelList-theme.scss +4 -2
  106. package/dist/scss/v2/ChannelPreview/ChannelPreview-layout.scss +2 -0
  107. package/dist/scss/v2/ChannelPreview/ChannelPreview-theme.scss +1 -0
  108. package/dist/scss/v2/Icon/Icon-layout.scss +87 -0
  109. package/dist/scss/v2/Icon/Icon-theme.scss +13 -0
  110. package/dist/scss/v2/ImageCarousel/ImageCarousel-layout.scss +1 -0
  111. package/dist/scss/v2/ImageCarousel/ImageCarousel-theme.scss +1 -0
  112. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-layout.scss +10 -1
  113. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-theme.scss +6 -4
  114. package/dist/scss/v2/Message/Message-layout.scss +6 -0
  115. package/dist/scss/v2/Message/Message-theme.scss +6 -0
  116. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +4 -1
  117. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +3 -0
  118. package/dist/scss/v2/MessageList/MessageList-theme.scss +2 -0
  119. package/dist/scss/v2/Modal/Modal-layout.scss +1 -0
  120. package/dist/scss/v2/Modal/Modal-theme.scss +6 -0
  121. package/dist/scss/v2/_base.scss +3 -2
  122. package/dist/scss/v2/_icons.scss +22 -2
  123. package/dist/scss/v2/index.layout.scss +1 -0
  124. package/dist/scss/v2/index.scss +1 -0
  125. package/dist/version.d.ts +1 -1
  126. package/dist/version.js +1 -1
  127. package/package.json +2 -2
  128. package/dist/components/MessageInput/AttachmentPreviewList.d.ts +0 -9
  129. package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +0 -1
  130. package/dist/components/MessageInput/AttachmentPreviewList.js +0 -112
package/dist/i18n/tr.json CHANGED
@@ -84,6 +84,7 @@
84
84
  "Unmute": "Sesini aç",
85
85
  "Unpin": "Sabitlemeyi kaldır",
86
86
  "Unread messages": "Okunmamış mesajlar",
87
+ "Unsupported attachment": "Desteklenmeyen ek",
87
88
  "Upload type: \"{{ type }}\" is not allowed": "Yükleme türü: \"{{ type }}\" izin verilmez",
88
89
  "User uploaded content": "Kullanıcı tarafından yüklenen içerik",
89
90
  "Voice message": "Sesli mesaj",
package/dist/index.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Window = require('./Window-9d319da4.js');
5
+ var Window = require('./Window-5802024e.js');
6
6
  var React = require('react');
7
7
  var streamChat = require('stream-chat');
8
8
  var throttle = require('lodash.throttle');
@@ -117,7 +117,7 @@ var GiphyPreviewMessage = function (props) {
117
117
  };
118
118
 
119
119
  var useEnrichedMessages = function (args) {
120
- var channel = args.channel, disableDateSeparator = args.disableDateSeparator, groupStyles = args.groupStyles, headerPosition = args.headerPosition, hideDeletedMessages = args.hideDeletedMessages, hideNewMessageSeparator = args.hideNewMessageSeparator, messages = args.messages, noGroupByUser = args.noGroupByUser;
120
+ var channel = args.channel, disableDateSeparator = args.disableDateSeparator, groupStyles = args.groupStyles, headerPosition = args.headerPosition, hideDeletedMessages = args.hideDeletedMessages, hideNewMessageSeparator = args.hideNewMessageSeparator, messages = args.messages, noGroupByUser = args.noGroupByUser, reviewProcessedMessage = args.reviewProcessedMessage;
121
121
  var client = Window.useChatContext('useEnrichedMessages').client;
122
122
  var HeaderComponent = Window.useComponentContext('useEnrichedMessages').HeaderComponent;
123
123
  var lastRead = React.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
@@ -130,6 +130,7 @@ var useEnrichedMessages = function (args) {
130
130
  hideNewMessageSeparator: hideNewMessageSeparator,
131
131
  lastRead: lastRead,
132
132
  messages: messages,
133
+ reviewProcessedMessage: reviewProcessedMessage,
133
134
  userId: client.userID || '',
134
135
  });
135
136
  if (HeaderComponent) {
@@ -652,7 +653,7 @@ var MessageListWithContext = function (props) {
652
653
  var _a;
653
654
  var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, _e = props.internalInfiniteScrollProps, _f = _e === void 0 ? {} : _e, _g = _f.threshold, loadMoreScrollThreshold = _g === void 0 ? Window.DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD : _g, restInternalInfiniteScrollProps = Window.__rest(_f, ["threshold"]), _h = props.messageActions, messageActions = _h === void 0 ? Object.keys(Window.MESSAGE_ACTIONS) : _h, _j = props.messages, messages = _j === void 0 ? [] : _j, notifications = props.notifications, _k = props.noGroupByUser, noGroupByUser = _k === void 0 ? false : _k, _l = props.pinPermissions, pinPermissions = _l === void 0 ? Window.defaultPinPermissions : _l, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
654
655
  _m = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
655
- returnAllReadData = _m === void 0 ? false : _m, _o = props.threadList, threadList = _o === void 0 ? false : _o, _p = props.unsafeHTML, unsafeHTML = _p === void 0 ? false : _p, headerPosition = props.headerPosition, read = props.read, _q = props.renderMessages, renderMessages = _q === void 0 ? defaultRenderMessages : _q, _r = props.messageLimit, messageLimit = _r === void 0 ? Window.DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _r, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _s = props.hasMoreNewer, hasMoreNewer = _s === void 0 ? false : _s, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _t = props.jumpToLatestMessage, jumpToLatestMessage = _t === void 0 ? function () { return Promise.resolve(); } : _t;
656
+ returnAllReadData = _m === void 0 ? false : _m, _o = props.threadList, threadList = _o === void 0 ? false : _o, _p = props.unsafeHTML, unsafeHTML = _p === void 0 ? false : _p, headerPosition = props.headerPosition, read = props.read, _q = props.renderMessages, renderMessages = _q === void 0 ? defaultRenderMessages : _q, reviewProcessedMessage = props.reviewProcessedMessage, _r = props.messageLimit, messageLimit = _r === void 0 ? Window.DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _r, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _s = props.hasMoreNewer, hasMoreNewer = _s === void 0 ? false : _s, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _t = props.jumpToLatestMessage, jumpToLatestMessage = _t === void 0 ? function () { return Promise.resolve(); } : _t;
656
657
  var _u = React__default["default"].useState(null), listElement = _u[0], setListElement = _u[1];
657
658
  var _v = React__default["default"].useState(null), ulElement = _v[0], setUlElement = _v[1];
658
659
  var customClasses = Window.useChatContext('MessageList').customClasses;
@@ -685,6 +686,7 @@ var MessageListWithContext = function (props) {
685
686
  hideNewMessageSeparator: hideNewMessageSeparator,
686
687
  messages: messages,
687
688
  noGroupByUser: noGroupByUser,
689
+ reviewProcessedMessage: reviewProcessedMessage,
688
690
  }), messageGroupStyles = _4.messageGroupStyles, enrichedMessages = _4.messages;
689
691
  var elements = useMessageListElements({
690
692
  channelUnreadUiState: channelUnreadUiState,
@@ -1149,7 +1151,7 @@ var VirtualizedMessageListWithContext = function (props) {
1149
1151
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
1150
1152
  _h = props.overscan,
1151
1153
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
1152
- overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, sortReactionDetails = props.sortReactionDetails, sortReactions = props.sortReactions, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
1154
+ overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, reviewProcessedMessage = props.reviewProcessedMessage, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, sortReactionDetails = props.sortReactionDetails, sortReactions = props.sortReactions, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
1153
1155
  var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = Window.__rest(additionalVirtuosoProps, ["components"]);
1154
1156
  // Stops errors generated from react-virtuoso to bubble up
1155
1157
  // to Sentry or other tracking tools.
@@ -1181,6 +1183,7 @@ var VirtualizedMessageListWithContext = function (props) {
1181
1183
  hideNewMessageSeparator: hideNewMessageSeparator,
1182
1184
  lastRead: lastRead,
1183
1185
  messages: messages,
1186
+ reviewProcessedMessage: reviewProcessedMessage,
1184
1187
  setGiphyPreviewMessage: setGiphyPreviewMessage,
1185
1188
  userId: client.userID || '',
1186
1189
  });
@@ -1344,7 +1347,7 @@ function VirtualizedMessageList(props) {
1344
1347
  return (React__default["default"].createElement(VirtualizedMessageListWithContext, Window.__assign({ channel: channel, channelUnreadUiState: channelUnreadUiState, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, read: read, suppressAutoscroll: suppressAutoscroll }, props)));
1345
1348
  }
1346
1349
 
1347
- var version = '11.16.1';
1350
+ var version = '11.18.0';
1348
1351
 
1349
1352
  var useChat = function (_a) {
1350
1353
  var _b, _c;
@@ -1901,6 +1904,11 @@ exports.isFileAttachment = Window.isFileAttachment;
1901
1904
  exports.isGalleryAttachmentType = Window.isGalleryAttachmentType;
1902
1905
  exports.isLanguageSupported = Window.isLanguageSupported;
1903
1906
  exports.isLocalAttachment = Window.isLocalAttachment;
1907
+ exports.isLocalAudioAttachment = Window.isLocalAudioAttachment;
1908
+ exports.isLocalFileAttachment = Window.isLocalFileAttachment;
1909
+ exports.isLocalImageAttachment = Window.isLocalImageAttachment;
1910
+ exports.isLocalMediaAttachment = Window.isLocalMediaAttachment;
1911
+ exports.isLocalVoiceRecordingAttachment = Window.isLocalVoiceRecordingAttachment;
1904
1912
  exports.isMediaAttachment = Window.isMediaAttachment;
1905
1913
  exports.isMessageBounced = Window.isMessageBounced;
1906
1914
  exports.isMessageEdited = Window.isMessageEdited;
@@ -253,6 +253,32 @@
253
253
  }
254
254
  }
255
255
 
256
+ .str-chat__message-attachment-unsupported {
257
+ @include utils.flex-row-center;
258
+ padding: var(--str-chat__spacing-2);
259
+ column-gap: var(--str-chat__spacing-4);
260
+ margin: var(--str-chat__attachment-margin);
261
+
262
+ .str-chat__file-icon {
263
+ width: calc(var(--str-chat__spacing-px)* 30);
264
+ }
265
+
266
+ .str-chat__message-attachment-unsupported__metadata {
267
+ min-width: 0;
268
+ flex: 1;
269
+ display: flex;
270
+ flex-direction: column;
271
+ align-items: flex-start;
272
+ justify-content: center;
273
+
274
+ }
275
+
276
+ .str-chat__message-attachment-unsupported__title {
277
+ @include utils.ellipsis-text;
278
+ max-width: 100%;
279
+ }
280
+ }
281
+
256
282
  .str-chat__message-attachment-file--item,
257
283
  .str-chat__message-attachment-audio-widget {
258
284
  @include utils.flex-row-center;
@@ -504,9 +530,18 @@
504
530
  cursor: pointer;
505
531
  text-decoration: none;
506
532
  }
533
+
534
+ .str-chat__message-attachment-download-icon {
535
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 16);
536
+ }
537
+
538
+ .str-chat__attachment-type-icon {
539
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 37);
540
+ }
507
541
  }
508
542
 
509
543
  .str-chat__message-attachment-audio-widget--play-button {
544
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 24);
510
545
  @include utils.flex-row-center();
511
546
  height: calc(var(--str-chat__spacing-px) * 36);
512
547
  width: calc(var(--str-chat__spacing-px) * 36);
@@ -572,7 +607,9 @@
572
607
  .str-chat__wave-progress-bar__amplitude-bar {
573
608
  width: 2px;
574
609
  min-width: 2px;
575
- height: calc(var(--str-chat__wave-progress-bar__amplitude-bar-height) + $min_amplitude_height); // variable set dynamically on element
610
+ height: calc(
611
+ var(--str-chat__wave-progress-bar__amplitude-bar-height) + $min_amplitude_height
612
+ ); // variable set dynamically on element
576
613
  }
577
614
 
578
615
  .str-chat__wave-progress-bar__progress-indicator {
@@ -320,10 +320,18 @@
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,
@@ -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,7 @@
46
47
  }
47
48
  }
48
49
 
50
+ .str-chat__attachment-preview-unsupported,
49
51
  .str-chat__attachment-preview-voice-recording,
50
52
  .str-chat__attachment-preview-file {
51
53
  display: flex;
@@ -59,7 +61,7 @@
59
61
  column-gap: var(--str-chat__spacing-2);
60
62
 
61
63
  .str-chat__attachment-preview-metadata,
62
- .str-chat__attachment-preview-file-end{
64
+ .str-chat__attachment-preview-file-end {
63
65
  @include utils.ellipsis-text-parent;
64
66
  flex: 1;
65
67
  display: flex;
@@ -67,6 +69,7 @@
67
69
  align-items: flex-start;
68
70
  justify-content: center;
69
71
 
72
+ .str-chat__attachment-preview-title,
70
73
  .str-chat__attachment-preview-file-name {
71
74
  @include utils.ellipsis-text;
72
75
  max-width: 100%;
@@ -74,6 +77,8 @@
74
77
  }
75
78
 
76
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;
77
82
  @include utils.flex-row-center;
78
83
 
79
84
  svg {
@@ -86,6 +91,7 @@
86
91
  .str-chat__attachment-preview-file {
87
92
  .str-chat__attachment-preview-file-end {
88
93
  .str-chat__attachment-preview-file-download {
94
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 16);
89
95
  line-height: calc(var(--str-chat__spacing-px) * 13);
90
96
 
91
97
  svg {
@@ -103,6 +109,7 @@
103
109
  }
104
110
 
105
111
  .str-chat__attachment-preview-delete {
112
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 24);
106
113
  position: absolute;
107
114
  top: calc(var(--str-chat__spacing-px) * 2);
108
115
  inset-inline-end: calc(var(--str-chat__spacing-px) * 2);
@@ -116,6 +123,7 @@
116
123
  }
117
124
 
118
125
  .str-chat__attachment-preview-error {
126
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 24);
119
127
  @include overlay;
120
128
  @include utils.unset-button(unset);
121
129
  inset-inline-start: 0;
@@ -107,15 +107,20 @@
107
107
  }
108
108
  }
109
109
 
110
+ .str-chat__attachment-preview-unsupported,
110
111
  .str-chat__attachment-preview-voice-recording,
111
112
  .str-chat__attachment-preview-file {
112
113
  @include utils.component-layer-overrides('attachment-preview-file');
113
114
 
115
+ .str-chat__attachment-preview-title,
114
116
  .str-chat__attachment-preview-file-name {
115
117
  font: var(--str-chat__subtitle-medium-text);
116
118
  }
117
119
 
118
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
+
119
124
  svg path {
120
125
  fill: var(--str-chat__attachment-preview-download-icon-color);
121
126
  }
@@ -138,6 +143,13 @@
138
143
  }
139
144
 
140
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
+
141
153
  svg {
142
154
  background-color: var(--str-chat__attachment-preview-close-icon-background);
143
155
  border-radius: 999px;
@@ -149,6 +161,7 @@
149
161
  }
150
162
 
151
163
  .str-chat__attachment-preview-error {
164
+ --str-chat-icon-color: var(--str-chat__attachment-preview-retry-icon-color);
152
165
  background-color: var(--str-chat__attachment-preview-overlay-color);
153
166
 
154
167
  svg path {
@@ -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 {
@@ -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 {
@@ -1,10 +1,19 @@
1
- // todo: this is a copy of src/styles/LoadingIndicator.scss - find a shared folder for it
1
+ .str-chat {
2
+ /* The size of the loading indicator, only available in Angular v5+ */
3
+ --str-chat__loading-indicator-size: calc(var(--str-chat__spacing-px) * 15);
4
+ }
5
+
2
6
  .str-chat__loading-indicator {
3
7
  display: flex;
4
8
  align-items: center;
5
9
  justify-content: center;
6
10
  animation: rotate 1s linear infinite;
7
11
 
12
+ svg {
13
+ width: var(--str-chat__loading-indicator-size);
14
+ height: var(--str-chat__loading-indicator-size);
15
+ }
16
+
8
17
  @-webkit-keyframes rotate {
9
18
  from {
10
19
  -webkit-transform: rotate(0deg);
@@ -1,11 +1,13 @@
1
+ .str-chat {
2
+ /* The color of the loading indicator */
3
+ --str-chat__loading-indicator-color: var(--str-chat__primary-color);
4
+ }
5
+
1
6
  .str-chat__loading-indicator {
2
7
  svg {
3
8
  linearGradient {
4
9
  stop:last-child {
5
- stop-color: var(
6
- --str-chat__loading-indicator-color,
7
- var(--str-chat__primary-color, #006cff)
8
- );
10
+ stop-color: var(--str-chat__loading-indicator-color);
9
11
  }
10
12
  }
11
13
  }
@@ -29,6 +29,10 @@
29
29
  .str-chat__message-bubble {
30
30
  max-width: var(--str-chat__message-max-width);
31
31
  }
32
+
33
+ .str-chat__message-options {
34
+ --str-chat-icon-height: calc(var(--str-chat__message-options-button-size) * 0.7);
35
+ }
32
36
  }
33
37
 
34
38
  .str-chat__message.str-chat__message--has-attachment {
@@ -218,6 +222,7 @@
218
222
  }
219
223
 
220
224
  .str-chat__message-status {
225
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 15);
221
226
  @include utils.flex-row-center;
222
227
  column-gap: var(--str-chat__spacing-0_5);
223
228
  position: relative;
@@ -453,6 +458,7 @@
453
458
  }
454
459
 
455
460
  .str-chat__unread-messages-notification {
461
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 16);
456
462
  position: absolute;
457
463
  top: 0.75rem;
458
464
  z-index: 2;
@@ -220,12 +220,15 @@
220
220
  }
221
221
 
222
222
  .str-chat__message-options {
223
+ --str-chat-icon-color: var(--str-chat__message-options-color);
224
+
223
225
  .str-chat__message-actions-box-button,
224
226
  .str-chat__message-reply-in-thread-button,
225
227
  .str-chat__message-reactions-button {
226
228
  // remove default button styles (React SDK uses button compared to div in Angular SDK)
227
229
  @include utils.button-reset;
228
230
  border-radius: var(--str-chat__message-options-border-radius);
231
+ color: var(--str-chat__message-options-color);
229
232
 
230
233
  .str-chat__message-action-icon path {
231
234
  fill: var(--str-chat__message-options-color);
@@ -272,6 +275,7 @@
272
275
  }
273
276
 
274
277
  .str-chat__message-status {
278
+ --str-chat-icon-color: var(--str-chat__message-status-color);
275
279
  color: var(--str-chat__message-status-color);
276
280
  font: var(--str-chat__body-text);
277
281
 
@@ -297,6 +301,7 @@
297
301
  }
298
302
 
299
303
  .str-chat__message-error-icon {
304
+ --str-chat-icon-color: var(--str-chat__message-error-message-color);
300
305
  /* stylelint-disable-next-line selector-max-id */
301
306
  svg #background {
302
307
  fill: var(--str-chat__message-error-message-color);
@@ -393,6 +398,7 @@
393
398
  }
394
399
 
395
400
  .str-chat__unread-messages-notification {
401
+ --str-chat-icon-color: var(--str-chat__on-primary-color);
396
402
  background-color: var(--str-chat__text-low-emphasis-color);
397
403
  border-radius: 1.125rem;
398
404