stream-chat-react 11.11.0 → 11.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/{Window-194c5448.js → Window-40a618cb.js} +357 -76
  2. package/dist/browser.full-bundle.js +424 -136
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +4 -4
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Attachment/Attachment.d.ts +6 -1
  7. package/dist/components/Attachment/Attachment.d.ts.map +1 -1
  8. package/dist/components/Attachment/Attachment.js +8 -2
  9. package/dist/components/Attachment/AttachmentContainer.d.ts +1 -0
  10. package/dist/components/Attachment/AttachmentContainer.d.ts.map +1 -1
  11. package/dist/components/Attachment/AttachmentContainer.js +7 -0
  12. package/dist/components/Attachment/Audio.d.ts +0 -10
  13. package/dist/components/Attachment/Audio.d.ts.map +1 -1
  14. package/dist/components/Attachment/Audio.js +1 -14
  15. package/dist/components/Attachment/Card.d.ts.map +1 -1
  16. package/dist/components/Attachment/Card.js +1 -1
  17. package/dist/components/Attachment/FileAttachment.d.ts.map +1 -1
  18. package/dist/components/Attachment/FileAttachment.js +1 -2
  19. package/dist/components/Attachment/VoiceRecording.d.ts +18 -0
  20. package/dist/components/Attachment/VoiceRecording.d.ts.map +1 -0
  21. package/dist/components/Attachment/VoiceRecording.js +45 -0
  22. package/dist/components/Attachment/components/DownloadButton.d.ts.map +1 -0
  23. package/dist/components/Attachment/{DownloadButton.js → components/DownloadButton.js} +2 -2
  24. package/dist/components/Attachment/components/FileSizeIndicator.d.ts +13 -0
  25. package/dist/components/Attachment/components/FileSizeIndicator.d.ts.map +1 -0
  26. package/dist/components/Attachment/{FileSizeIndicator.js → components/FileSizeIndicator.js} +2 -2
  27. package/dist/components/Attachment/components/PlayButton.d.ts +8 -0
  28. package/dist/components/Attachment/components/PlayButton.d.ts.map +1 -0
  29. package/dist/components/Attachment/components/PlayButton.js +6 -0
  30. package/dist/components/Attachment/components/PlaybackRateButton.d.ts +4 -0
  31. package/dist/components/Attachment/components/PlaybackRateButton.d.ts.map +1 -0
  32. package/dist/components/Attachment/components/PlaybackRateButton.js +5 -0
  33. package/dist/components/Attachment/components/ProgressBar.d.ts +7 -0
  34. package/dist/components/Attachment/components/ProgressBar.d.ts.map +1 -0
  35. package/dist/components/Attachment/components/ProgressBar.js +8 -0
  36. package/dist/components/Attachment/components/WaveProgressBar.d.ts +22 -0
  37. package/dist/components/Attachment/components/WaveProgressBar.d.ts.map +1 -0
  38. package/dist/components/Attachment/components/WaveProgressBar.js +121 -0
  39. package/dist/components/Attachment/components/index.d.ts +7 -0
  40. package/dist/components/Attachment/components/index.d.ts.map +1 -0
  41. package/dist/components/Attachment/components/index.js +6 -0
  42. package/dist/components/Attachment/hooks/useAudioController.d.ts +12 -2
  43. package/dist/components/Attachment/hooks/useAudioController.d.ts.map +1 -1
  44. package/dist/components/Attachment/hooks/useAudioController.js +60 -25
  45. package/dist/components/Attachment/index.d.ts +1 -0
  46. package/dist/components/Attachment/index.d.ts.map +1 -1
  47. package/dist/components/Attachment/index.js +1 -0
  48. package/dist/components/Attachment/utils.d.ts +4 -2
  49. package/dist/components/Attachment/utils.d.ts.map +1 -1
  50. package/dist/components/Attachment/utils.js +14 -0
  51. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +2 -2
  52. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
  53. package/dist/components/AutoCompleteTextarea/Textarea.js +23 -13
  54. package/dist/components/Channel/Channel.d.ts +2 -0
  55. package/dist/components/Channel/Channel.d.ts.map +1 -1
  56. package/dist/components/Channel/Channel.js +1 -0
  57. package/dist/components/Emojis/index.cjs.js +3 -3
  58. package/dist/components/Gallery/BaseImage.js +1 -1
  59. package/dist/components/Message/MessageEditedTimestamp.d.ts +8 -0
  60. package/dist/components/Message/MessageEditedTimestamp.d.ts.map +1 -0
  61. package/dist/components/Message/MessageEditedTimestamp.js +22 -0
  62. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  63. package/dist/components/Message/MessageSimple.js +13 -3
  64. package/dist/components/Message/MessageTimestamp.d.ts +1 -1
  65. package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
  66. package/dist/components/Message/MessageTimestamp.js +8 -13
  67. package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
  68. package/dist/components/Message/QuotedMessage.js +1 -1
  69. package/dist/components/Message/Timestamp.d.ts +10 -0
  70. package/dist/components/Message/Timestamp.d.ts.map +1 -0
  71. package/dist/components/Message/Timestamp.js +24 -0
  72. package/dist/components/Message/renderText/index.d.ts +1 -1
  73. package/dist/components/Message/renderText/index.d.ts.map +1 -1
  74. package/dist/components/Message/utils.d.ts +1 -0
  75. package/dist/components/Message/utils.d.ts.map +1 -1
  76. package/dist/components/Message/utils.js +1 -0
  77. package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
  78. package/dist/components/MessageInput/QuotedMessagePreview.js +1 -1
  79. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
  80. package/dist/components/MessageList/VirtualizedMessageListComponents.js +11 -6
  81. package/dist/components/MessageList/utils.d.ts.map +1 -1
  82. package/dist/components/MessageList/utils.js +5 -2
  83. package/dist/components/index.d.ts +2 -1
  84. package/dist/components/index.d.ts.map +1 -1
  85. package/dist/context/ComponentContext.d.ts +2 -0
  86. package/dist/context/ComponentContext.d.ts.map +1 -1
  87. package/dist/css/index.css +1 -1
  88. package/dist/css/v2/index.css +1 -1
  89. package/dist/css/v2/index.layout.css +1 -1
  90. package/dist/i18n/Streami18n.d.ts +3 -0
  91. package/dist/i18n/Streami18n.d.ts.map +1 -1
  92. package/dist/i18n/de.json +3 -0
  93. package/dist/i18n/en.json +3 -0
  94. package/dist/i18n/es.json +3 -0
  95. package/dist/i18n/fr.json +3 -0
  96. package/dist/i18n/hi.json +3 -0
  97. package/dist/i18n/it.json +3 -0
  98. package/dist/i18n/ja.json +3 -0
  99. package/dist/i18n/ko.json +3 -0
  100. package/dist/i18n/nl.json +3 -0
  101. package/dist/i18n/pt.json +3 -0
  102. package/dist/i18n/ru.json +3 -0
  103. package/dist/i18n/tr.json +3 -0
  104. package/dist/index.cjs.js +23 -7
  105. package/dist/scss/Message.scss +21 -17
  106. package/dist/scss/MessageActions.scss +0 -9
  107. package/dist/scss/_base.scss +8 -1
  108. package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +84 -0
  109. package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +72 -1
  110. package/dist/scss/v2/EditMessageForm/EditMessageForm-layout.scss +13 -15
  111. package/dist/scss/v2/Message/Message-layout.scss +48 -4
  112. package/dist/scss/v2/MessageActionsBox/MessageActionsBox-layout.scss +0 -8
  113. package/dist/scss/v2/_base.scss +1 -2
  114. package/dist/scss/v2/_utils.scss +0 -1
  115. package/dist/types/index.d.ts +1 -1
  116. package/dist/types/index.d.ts.map +1 -1
  117. package/dist/version.d.ts +1 -1
  118. package/dist/version.js +1 -1
  119. package/package.json +5 -5
  120. package/dist/components/Attachment/DownloadButton.d.ts.map +0 -1
  121. package/dist/components/Attachment/FileSizeIndicator.d.ts +0 -7
  122. package/dist/components/Attachment/FileSizeIndicator.d.ts.map +0 -1
  123. /package/dist/components/Attachment/{DownloadButton.d.ts → components/DownloadButton.d.ts} +0 -0
package/dist/i18n/ko.json CHANGED
@@ -12,6 +12,7 @@
12
12
  "Drag your files here to add to your post": "게시물에 추가하려면 파일을 여기로 끌어다 놓으세요",
13
13
  "Edit Message": "메시지 수정",
14
14
  "Edit message request failed": "메시지 수정 요청 실패",
15
+ "Edited": "편집됨",
15
16
  "Emoji matching": "이모티콘 매칭",
16
17
  "Empty message...": "빈 메시지...",
17
18
  "Error adding flag": "플래그를 추가하는 동안 오류가 발생했습니다.",
@@ -22,6 +23,7 @@
22
23
  "Error muting a user ...": "사용자를 음소거하는 중에 오류가 발생했습니다...",
23
24
  "Error pinning message": "메시지를 핀하는 중에 오류가 발생했습니다.",
24
25
  "Error removing message pin": "메시지 핀을 제거하는 중에 오류가 발생했습니다.",
26
+ "Error reproducing the recording": "녹음 재생 중 오류 발생",
25
27
  "Error unmuting a user ...": "사용자 음소거 해제 중 오류 발생...",
26
28
  "Error uploading file": "파일 업로드 오류",
27
29
  "Error uploading image": "이미지를 업로드하는 동안 오류가 발생했습니다.",
@@ -70,6 +72,7 @@
70
72
  "Unread messages": "읽지 않은 메시지",
71
73
  "Upload type: \"{{ type }}\" is not allowed": "업로드 유형: \"{{ type }}\"은(는) 허용되지 않습니다.",
72
74
  "User uploaded content": "사용자 업로드 콘텐츠",
75
+ "Voice message": "음성 메시지",
73
76
  "Wait until all attachments have uploaded": "모든 첨부 파일이 업로드될 때까지 기다립니다.",
74
77
  "You have no channels currently": "현재 채널이 없습니다.",
75
78
  "You've reached the maximum number of files": "최대 파일 수에 도달했습니다.",
package/dist/i18n/nl.json CHANGED
@@ -12,6 +12,7 @@
12
12
  "Drag your files here to add to your post": "Sleep je bestanden hier naartoe om aan je bericht toe te voegen",
13
13
  "Edit Message": "Pas bericht aan",
14
14
  "Edit message request failed": "Verzoek om bericht bewerken mislukt",
15
+ "Edited": "Bewerkt",
15
16
  "Emoji matching": "Emoji-overeenkomsten",
16
17
  "Empty message...": "Leeg bericht...",
17
18
  "Error adding flag": "Fout bij toevoegen van vlag",
@@ -22,6 +23,7 @@
22
23
  "Error muting a user ...": "Fout bij het muten van de gebruiker",
23
24
  "Error pinning message": "Fout bij vastzetten van bericht",
24
25
  "Error removing message pin": "Fout bij verwijderen van berichtpin",
26
+ "Error reproducing the recording": "Fout bij het afspelen van de opname",
25
27
  "Error unmuting a user ...": "Fout bij het unmuten van de gebruiker",
26
28
  "Error uploading file": "Fout bij uploaden bestand",
27
29
  "Error uploading image": "Fout bij uploaden afbeelding",
@@ -70,6 +72,7 @@
70
72
  "Unread messages": "Ongelezen berichten",
71
73
  "Upload type: \"{{ type }}\" is not allowed": "Uploadtype: \"{{ type }}\" is niet toegestaan",
72
74
  "User uploaded content": "Gebruikersgeüploade inhoud",
75
+ "Voice message": "Voicemail",
73
76
  "Wait until all attachments have uploaded": "Wacht tot alle bijlagen zijn geüpload",
74
77
  "You have no channels currently": "Er zijn geen chats beschikbaar",
75
78
  "You've reached the maximum number of files": "Je hebt het maximale aantal bestanden bereikt",
package/dist/i18n/pt.json CHANGED
@@ -12,6 +12,7 @@
12
12
  "Drag your files here to add to your post": "Arraste seus arquivos aqui para adicionar ao seu post",
13
13
  "Edit Message": "Editar Mensagem",
14
14
  "Edit message request failed": "O pedido de edição da mensagem falhou",
15
+ "Edited": "Editada",
15
16
  "Emoji matching": "Emoji correspondente",
16
17
  "Empty message...": "Mensagem vazia...",
17
18
  "Error adding flag": "Erro ao reportar",
@@ -22,6 +23,7 @@
22
23
  "Error muting a user ...": "Erro ao silenciar um usuário...",
23
24
  "Error pinning message": "Erro ao fixar mensagem",
24
25
  "Error removing message pin": "Erro ao remover o PIN da mensagem",
26
+ "Error reproducing the recording": "Erro ao reproduzir a gravação",
25
27
  "Error unmuting a user ...": "Erro ao ativar o som de um usuário...",
26
28
  "Error uploading file": "Erro ao enviar arquivo",
27
29
  "Error uploading image": "Erro ao carregar a imagem",
@@ -70,6 +72,7 @@
70
72
  "Unread messages": "Mensagens não lidas",
71
73
  "Upload type: \"{{ type }}\" is not allowed": "Tipo de upload: \"{{ type }}\" não é permitido",
72
74
  "User uploaded content": "Conteúdo enviado pelo usuário",
75
+ "Voice message": "Mensagem de voz",
73
76
  "Wait until all attachments have uploaded": "Espere até que todos os anexos tenham sido carregados",
74
77
  "You have no channels currently": "Você não tem canais atualmente",
75
78
  "You've reached the maximum number of files": "Você atingiu o número máximo de arquivos",
package/dist/i18n/ru.json CHANGED
@@ -12,6 +12,7 @@
12
12
  "Drag your files here to add to your post": "Перетащите ваши файлы сюда, чтобы добавить их в ваш пост",
13
13
  "Edit Message": "Редактировать сообщение",
14
14
  "Edit message request failed": "Не удалось изменить запрос сообщения",
15
+ "Edited": "Отредактировано",
15
16
  "Emoji matching": "Соответствие эмодзи",
16
17
  "Empty message...": "Пустое сообщение...",
17
18
  "Error adding flag": "Ошибка добавления флага",
@@ -22,6 +23,7 @@
22
23
  "Error muting a user ...": "Ошибка отключения уведомлений от пользователя...",
23
24
  "Error pinning message": "Сообщение об ошибке при закреплении",
24
25
  "Error removing message pin": "Ошибка при удалении булавки сообщения",
26
+ "Error reproducing the recording": "Ошибка воспроизведения записи",
25
27
  "Error unmuting a user ...": "Ошибка включения уведомлений...",
26
28
  "Error uploading file": "Ошибка при загрузке файла",
27
29
  "Error uploading image": "Ошибка загрузки изображения",
@@ -70,6 +72,7 @@
70
72
  "Unread messages": "Непрочитанные сообщения",
71
73
  "Upload type: \"{{ type }}\" is not allowed": "Тип загрузки: \"{{ type }}\" не разрешен",
72
74
  "User uploaded content": "Пользователь загрузил контент",
75
+ "Voice message": "Голосовое сообщение",
73
76
  "Wait until all attachments have uploaded": "Подождите, пока все вложения загрузятся",
74
77
  "You have no channels currently": "У вас нет каналов в данный момент",
75
78
  "You've reached the maximum number of files": "Вы достигли максимального количества файлов",
package/dist/i18n/tr.json CHANGED
@@ -12,6 +12,7 @@
12
12
  "Drag your files here to add to your post": "Gönderinize eklemek için dosyalarınızı buraya sürükleyin",
13
13
  "Edit Message": "Mesajı Düzenle",
14
14
  "Edit message request failed": "Mesaj düzenleme isteği başarısız oldu",
15
+ "Edited": "Düzenlendi",
15
16
  "Emoji matching": "Emoji eşleştirme",
16
17
  "Empty message...": "Boş mesaj...",
17
18
  "Error adding flag": "Bayrak eklenirken hata oluştu",
@@ -22,6 +23,7 @@
22
23
  "Error muting a user ...": "Kullanıcıyı sessize alırken hata oluştu ...",
23
24
  "Error pinning message": "Mesaj sabitlenirken hata oluştu",
24
25
  "Error removing message pin": "Mesaj PIN'i kaldırılırken hata oluştu",
26
+ "Error reproducing the recording": "Kaydı yeniden üretme hatası",
25
27
  "Error unmuting a user ...": "Kullanıcının sesini açarken hata oluştu ...",
26
28
  "Error uploading file": "Dosya yüklenirken hata oluştu",
27
29
  "Error uploading image": "Resmi yüklerken hata",
@@ -70,6 +72,7 @@
70
72
  "Unread messages": "Okunmamış mesajlar",
71
73
  "Upload type: \"{{ type }}\" is not allowed": "Yükleme türü: \"{{ type }}\" izin verilmez",
72
74
  "User uploaded content": "Kullanıcı tarafından yüklenen içerik",
75
+ "Voice message": "Sesli mesaj",
73
76
  "Wait until all attachments have uploaded": "Tüm ekler yüklenene kadar bekleyin",
74
77
  "You have no channels currently": "Henüz kanalınız yok",
75
78
  "You've reached the maximum number of files": "Maksimum dosya sayısına ulaştınız",
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-194c5448.js');
5
+ var Window = require('./Window-40a618cb.js');
6
6
  var React = require('react');
7
7
  var streamChat = require('stream-chat');
8
8
  var reactVirtuoso = require('react-virtuoso');
@@ -1047,8 +1047,8 @@ var Footer = function () {
1047
1047
  return TypingIndicator ? React__default["default"].createElement(TypingIndicator, { avatarSize: 24 }) : null;
1048
1048
  };
1049
1049
  var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
1050
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1051
- var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, firstUnreadMessageId = virtuosoContext.firstUnreadMessageId, lastReadMessageId = virtuosoContext.lastReadMessageId, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, sortReactionDetails = virtuosoContext.sortReactionDetails, sortReactions = virtuosoContext.sortReactions, _k = virtuosoContext.unreadMessageCount, unreadMessageCount = _k === void 0 ? 0 : _k, UnreadMessagesSeparator = virtuosoContext.UnreadMessagesSeparator, virtuosoRef = virtuosoContext.virtuosoRef;
1050
+ var _a, _b, _c, _d, _e, _f, _g;
1051
+ var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, firstUnreadMessageId = virtuosoContext.firstUnreadMessageId, lastReadMessageId = virtuosoContext.lastReadMessageId, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, sortReactionDetails = virtuosoContext.sortReactionDetails, sortReactions = virtuosoContext.sortReactions, _h = virtuosoContext.unreadMessageCount, unreadMessageCount = _h === void 0 ? 0 : _h, UnreadMessagesSeparator = virtuosoContext.UnreadMessagesSeparator, virtuosoRef = virtuosoContext.virtuosoRef;
1052
1052
  var streamMessageIndex = calculateItemIndex(virtuosoIndex, numItemsPrepended);
1053
1053
  if (customMessageRenderer) {
1054
1054
  return customMessageRenderer(messageList, streamMessageIndex);
@@ -1065,13 +1065,18 @@ var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
1065
1065
  var groupedByUser = shouldGroupByUser &&
1066
1066
  streamMessageIndex > 0 &&
1067
1067
  ((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = messageList[streamMessageIndex - 1].user) === null || _b === void 0 ? void 0 : _b.id);
1068
- var firstOfGroup = shouldGroupByUser && ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_e = (_d = messageList[streamMessageIndex - 1]) === null || _d === void 0 ? void 0 : _d.user) === null || _e === void 0 ? void 0 : _e.id);
1069
- var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
1068
+ var maybePrevMessage = messageList[streamMessageIndex - 1];
1069
+ var maybeNextMessage = messageList[streamMessageIndex + 1];
1070
+ var firstOfGroup = shouldGroupByUser &&
1071
+ (((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_d = maybePrevMessage === null || maybePrevMessage === void 0 ? void 0 : maybePrevMessage.user) === null || _d === void 0 ? void 0 : _d.id) ||
1072
+ (maybePrevMessage && Window.isMessageEdited(maybePrevMessage)));
1073
+ var endOfGroup = shouldGroupByUser &&
1074
+ (((_e = message.user) === null || _e === void 0 ? void 0 : _e.id) !== ((_f = maybeNextMessage === null || maybeNextMessage === void 0 ? void 0 : maybeNextMessage.user) === null || _f === void 0 ? void 0 : _f.id) || Window.isMessageEdited(message));
1070
1075
  var isNewestMessage = lastReadMessageId === lastReceivedMessageId;
1071
1076
  var isLastReadMessage = message.id === lastReadMessageId;
1072
1077
  var showUnreadSeparator = isLastReadMessage && !isNewestMessage && (firstUnreadMessageId || unreadMessageCount > 0); // unread count can be 0 if the user marks unread only own messages
1073
1078
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
1074
- React__default["default"].createElement(Window.Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_j = virtuosoRef.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [], sortReactionDetails: sortReactionDetails, sortReactions: sortReactions }),
1079
+ React__default["default"].createElement(Window.Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_g = virtuosoRef.current) === null || _g === void 0 ? void 0 : _g.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [], sortReactionDetails: sortReactionDetails, sortReactions: sortReactions }),
1075
1080
  showUnreadSeparator && (React__default["default"].createElement("div", { className: 'str-chat__unread-messages-separator-wrapper' },
1076
1081
  React__default["default"].createElement(UnreadMessagesSeparator, { unreadCount: unreadMessageCount })))));
1077
1082
  };
@@ -1305,7 +1310,7 @@ function VirtualizedMessageList(props) {
1305
1310
  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)));
1306
1311
  }
1307
1312
 
1308
- var version = '11.11.0';
1313
+ var version = '11.12.1';
1309
1314
 
1310
1315
  var useChat = function (_a) {
1311
1316
  var _b, _c;
@@ -1683,6 +1688,7 @@ exports.DefaultSuggestionListHeader = Window.DefaultSuggestionListHeader;
1683
1688
  exports.DefaultSuggestionListItem = Window.Item;
1684
1689
  exports.DefaultTriggerProvider = Window.DefaultTriggerProvider;
1685
1690
  exports.DeliveredCheckIcon = Window.DeliveredCheckIcon;
1691
+ exports.DownloadButton = Window.DownloadButton;
1686
1692
  exports.DownloadIcon = Window.DownloadIcon;
1687
1693
  exports.EditMessageForm = Window.EditMessageForm;
1688
1694
  exports.EmojiIconLarge = Window.EmojiIconLarge;
@@ -1694,6 +1700,7 @@ exports.ErrorIcon = Window.ErrorIcon;
1694
1700
  exports.EventComponent = Window.EventComponent;
1695
1701
  exports.FileAttachment = Window.FileAttachment;
1696
1702
  exports.FileContainer = Window.FileContainer;
1703
+ exports.FileSizeIndicator = Window.FileSizeIndicator;
1697
1704
  exports.FileUploadIcon = Window.FileUploadIcon;
1698
1705
  exports.FileUploadIconFlat = Window.FileUploadIconFlat;
1699
1706
  exports.FixedHeightMessage = Window.FixedHeightMessage;
@@ -1750,6 +1757,7 @@ exports.NullComponent = Window.NullComponent;
1750
1757
  exports.PinIcon = Window.PinIcon;
1751
1758
  exports.PinIndicator = Window.PinIndicator;
1752
1759
  exports.PlayButton = Window.PlayButton;
1760
+ exports.PlaybackRateButton = Window.PlaybackRateButton;
1753
1761
  exports.PopperTooltip = Window.PopperTooltip;
1754
1762
  exports.ProgressBar = Window.ProgressBar;
1755
1763
  exports.QuotedMessage = Window.QuotedMessage;
@@ -1793,6 +1801,8 @@ exports.UploadButton = Window.UploadButton;
1793
1801
  exports.UploadIcon = Window.UploadIcon;
1794
1802
  exports.UploadsPreview = Window.UploadsPreview;
1795
1803
  exports.UserItem = Window.UserItem;
1804
+ exports.VoiceRecordingContainer = Window.VoiceRecordingContainer;
1805
+ exports.WaveProgressBar = Window.WaveProgressBar;
1796
1806
  exports.Window = Window.Window;
1797
1807
  exports.areMessagePropsEqual = Window.areMessagePropsEqual;
1798
1808
  exports.areMessageUIPropsEqual = Window.areMessageUIPropsEqual;
@@ -1804,6 +1814,9 @@ exports.defaultReactionOptions = Window.defaultReactionOptions;
1804
1814
  exports.defaultScrollToItem = Window.defaultScrollToItem;
1805
1815
  exports.defaultTimestampFormat = Window.defaultTimestampFormat;
1806
1816
  exports.defaultTranslatorFunction = Window.defaultTranslatorFunction;
1817
+ exports.displayDuration = Window.displayDuration;
1818
+ exports.divMod = Window.divMod;
1819
+ exports.downSample = Window.downSample;
1807
1820
  exports.emojiMarkdownPlugin = Window.emojiMarkdownPlugin;
1808
1821
  exports.enTranslations = Window.enTranslations;
1809
1822
  exports.esTranslations = Window.esTranslations;
@@ -1837,12 +1850,14 @@ exports.isGalleryAttachmentType = Window.isGalleryAttachmentType;
1837
1850
  exports.isLanguageSupported = Window.isLanguageSupported;
1838
1851
  exports.isMediaAttachment = Window.isMediaAttachment;
1839
1852
  exports.isMessageBounced = Window.isMessageBounced;
1853
+ exports.isMessageEdited = Window.isMessageEdited;
1840
1854
  exports.isNumberOrString = Window.isNumberOrString;
1841
1855
  exports.isOnlyEmojis = Window.isOnlyEmojis;
1842
1856
  exports.isScrapedContent = Window.isScrapedContent;
1843
1857
  exports.isSvgAttachment = Window.isSvgAttachment;
1844
1858
  exports.isUploadedImage = Window.isUploadedImage;
1845
1859
  exports.isUserMuted = Window.isUserMuted;
1860
+ exports.isVoiceRecordingAttachment = Window.isVoiceRecordingAttachment;
1846
1861
  exports.itTranslations = Window.itTranslations;
1847
1862
  exports.jaTranslations = Window.jaTranslations;
1848
1863
  exports.keepLineBreaksPlugin = Window.keepLineBreaksPlugin;
@@ -1875,6 +1890,7 @@ exports.renderText = Window.renderText;
1875
1890
  exports.ruTranslations = Window.ruTranslations;
1876
1891
  exports.showMessageActionsBox = Window.showMessageActionsBox;
1877
1892
  exports.trTranslations = Window.trTranslations;
1893
+ exports.upSample = Window.upSample;
1878
1894
  exports.useActionHandler = Window.useActionHandler;
1879
1895
  exports.useChannelActionContext = Window.useChannelActionContext;
1880
1896
  exports.useChannelDeletedListener = Window.useChannelDeletedListener;
@@ -83,7 +83,7 @@
83
83
  /* group styling */
84
84
  &--top,
85
85
  &--single {
86
- padding-top: calc(var(--md-p)/2);
86
+ padding-top: calc(var(--md-p) / 2);
87
87
 
88
88
  .str-chat__message {
89
89
  &-attachment--img,
@@ -176,7 +176,7 @@
176
176
  }
177
177
 
178
178
  &--bottom {
179
- padding-bottom: calc(var(--md-p)/2);
179
+ padding-bottom: calc(var(--md-p) / 2);
180
180
 
181
181
  .str-chat__message {
182
182
  &-attachment--img,
@@ -217,7 +217,7 @@
217
217
  }
218
218
 
219
219
  &--single {
220
- padding-bottom: calc(var(--md-m)/2);
220
+ padding-bottom: calc(var(--md-m) / 2);
221
221
  }
222
222
 
223
223
  &--top,
@@ -233,14 +233,16 @@
233
233
  .str-chat__message {
234
234
  &-text {
235
235
  &-inner {
236
- border-radius: var(--border-radius) var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2);
236
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
237
+ calc(var(--border-radius-sm) / 2);
237
238
  }
238
239
  }
239
240
 
240
241
  &--me {
241
242
  .str-chat__message-text {
242
243
  &-inner {
243
- border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2) var(--border-radius);
244
+ border-radius: var(--border-radius) var(--border-radius)
245
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
244
246
  }
245
247
  }
246
248
  }
@@ -251,10 +253,12 @@
251
253
  .str-chat__message {
252
254
  &-text {
253
255
  &-inner {
254
- border-radius: var(--border-radius) var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2);
256
+ border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
257
+ calc(var(--border-radius-sm) / 2);
255
258
 
256
259
  &--has-attachment {
257
- border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2);
260
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius)
261
+ var(--border-radius) calc(var(--border-radius-sm) / 2);
258
262
  }
259
263
  }
260
264
  }
@@ -262,10 +266,12 @@
262
266
  &--me {
263
267
  .str-chat__message-text {
264
268
  &-inner {
265
- border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2) var(--border-radius);
269
+ border-radius: var(--border-radius) var(--border-radius)
270
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
266
271
 
267
272
  &--has-attachment {
268
- border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2) calc(var(--border-radius-sm) / 2) var(--border-radius);
273
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
274
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
269
275
  }
270
276
  }
271
277
  }
@@ -278,14 +284,16 @@
278
284
  .str-chat__message {
279
285
  &-text {
280
286
  &-inner {
281
- border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2);
287
+ border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
288
+ calc(var(--border-radius-sm) / 2);
282
289
  }
283
290
  }
284
291
 
285
292
  &--me {
286
293
  .str-chat__message-text {
287
294
  &-inner {
288
- border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2) calc(var(--border-radius-sm) / 2) var(--border-radius);
295
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
296
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
289
297
 
290
298
  &--has-attachment {
291
299
  margin: 0;
@@ -296,7 +304,8 @@
296
304
  .str-chat__message-attachment-card {
297
305
  margin: 0;
298
306
  padding: 0;
299
- border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2) calc(var(--border-radius-sm) / 2) var(--border-radius);
307
+ border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
308
+ calc(var(--border-radius-sm) / 2) var(--border-radius);
300
309
  }
301
310
  }
302
311
  }
@@ -741,11 +750,6 @@
741
750
  padding: 3px 0;
742
751
  }
743
752
  }
744
-
745
- &--options.str-chat-angular__message-simple__actions__action--options--editing {
746
- position: relative;
747
- display: flex;
748
- }
749
753
  }
750
754
  }
751
755
 
@@ -135,12 +135,3 @@
135
135
  }
136
136
  }
137
137
  }
138
-
139
- // Used by Angular SDK to display edit message modal
140
- .str-chat__message-edit-in-progress {
141
- .ngxp__container {
142
- transform: initial !important;
143
- will-change: initial !important;
144
- z-index: 2;
145
- }
146
- }
@@ -31,12 +31,19 @@
31
31
  bottom: 0;
32
32
  opacity: 0;
33
33
 
34
- &[aria-hidden="true"] {
34
+ &[aria-hidden='true'] {
35
35
  visibility: hidden;
36
36
  }
37
37
  }
38
38
  }
39
39
  }
40
+
41
+ // New features are not implemented in theme-v1, corresponding HTML code is hidden
42
+ .str-chat__unread-messages-notification,
43
+ .str-chat__unread-messages-separator-wrapper,
44
+ .str-chat__message-bounce-prompt {
45
+ display: none;
46
+ }
40
47
  }
41
48
 
42
49
  .clearfix {
@@ -341,6 +341,71 @@
341
341
  }
342
342
  }
343
343
 
344
+ .str-chat__message-attachment__voice-recording-widget {
345
+ display: grid;
346
+ grid-template-columns: 36px auto 55px;
347
+ align-items: center;
348
+ justify-content: center;
349
+ gap: calc(var(--str-chat__spacing-px) * 14);
350
+ padding: var(--str-chat__spacing-2);
351
+ margin: var(--str-chat__attachment-margin);
352
+
353
+ .str-chat__message-attachment__voice-recording-widget__metadata {
354
+ flex: 1;
355
+ min-width: 0;
356
+ display: flex;
357
+ flex-direction: column;
358
+ gap: var(--str-chat__spacing-2);
359
+
360
+ .str-chat__message-attachment__voice-recording-widget__audio-state {
361
+ display: flex;
362
+ align-items: center;
363
+ justify-content: space-between;
364
+ gap: var(--str-chat__spacing-1_5);
365
+ height: 100%;
366
+ }
367
+ }
368
+
369
+ .str-chat__message-attachment__voice-recording-widget__right-section {
370
+ justify-self: center;
371
+ }
372
+
373
+ .str-chat__message-attachment__voice-recording-widget__timer {
374
+ min-width: calc(var(--str-chat__spacing-px) * 45);
375
+ width: calc(var(--str-chat__spacing-px) * 45);
376
+ }
377
+
378
+ .str-chat__wave-progress-bar__track {
379
+ $min_amplitude_height: 2px;
380
+ position: relative;
381
+ flex: 1;
382
+ width: 120px;
383
+ height: calc(var(--str-chat__spacing-px) * 25);
384
+ display: flex;
385
+ align-items: center;
386
+ gap: var(--str-chat__spacing-px);
387
+
388
+ .str-chat__wave-progress-bar__amplitude-bar {
389
+ width: 2px;
390
+ min-width: 2px;
391
+ height: calc(var(--str-chat__wave-progress-bar__amplitude-bar-height) + $min_amplitude_height); // variable set dynamically on element
392
+ }
393
+
394
+ .str-chat__wave-progress-bar__progress-indicator {
395
+ position: absolute;
396
+ left: 0;
397
+ height: calc(100% + $min_amplitude_height + 2px);
398
+ width: calc(var(--str-chat__spacing-px) * 6);
399
+ }
400
+ }
401
+ }
402
+
403
+ .str-chat__message_attachment__playback-rate-button {
404
+ @include utils.flex-row-center;
405
+ @include utils.button-reset;
406
+ padding: var(--str-chat__spacing-1_5) var(--str-chat__spacing-2_5);
407
+ }
408
+
344
409
  .str-chat__message-attachment-card {
345
410
  min-width: 0;
346
411
  max-width: var(--str-chat__attachment-max-width);
@@ -396,6 +461,12 @@
396
461
  }
397
462
  }
398
463
  }
464
+
465
+ /* Angular has different UI here, the download icon is too small to use on mobile */
466
+ .str-chat-angular__message-attachment-file-single {
467
+ cursor: pointer;
468
+ text-decoration: none;
469
+ }
399
470
  }
400
471
 
401
472
  .str-chat__quoted-message-preview {
@@ -413,6 +484,19 @@
413
484
  }
414
485
  }
415
486
 
487
+ .str-chat__message-attachment__voice-recording-widget {
488
+ display: flex;
489
+ justify-content: space-between;
490
+
491
+ .str-chat__wave-progress-bar__track {
492
+ display: none;
493
+ }
494
+
495
+ .str-chat__message-attachment-audio-widget--play-button {
496
+ display: none;
497
+ }
498
+ }
499
+
416
500
  .str-chat__message-attachment-file--item-download {
417
501
  display: none;
418
502
  }
@@ -170,6 +170,35 @@
170
170
  /* Box shadow applied to audio widget */
171
171
  --str-chat__audio-attachment-widget-box-shadow: none;
172
172
 
173
+ /* Border radius applied to audio recording widget */
174
+ --str-chat__voice-recording-attachment-widget-border-radius: calc(
175
+ var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
176
+ );
177
+
178
+ /* Text color used in audio recording widget */
179
+ --str-chat__voice-recording-attachment-widget-color: var(--str-chat__text-color);
180
+
181
+ /* Border radius applied to audio recording widget */
182
+ --str-chat__voice-recording-attachment-widget-secondary-color: var(--str-chat__text-low-emphasis-color);
183
+
184
+ /* The text/icon color for low emphasis texts (for example file size) in audio recording widget */
185
+ --str-chat__voice-recording-attachment-widget-background-color: var(--str-chat__secondary-background-color);
186
+
187
+ /* Top border of audio recording widget */
188
+ --str-chat__voice-recording-attachment-widget-border-block-start: none;
189
+
190
+ /* Bottom border of audio recording widget */
191
+ --str-chat__voice-recording-attachment-widget-border-block-end: none;
192
+
193
+ /* Left (right in RTL layout) border of audio recording widget */
194
+ --str-chat__voice-recording-attachment-widget-border-inline-start: none;
195
+
196
+ /* Right (left in RTL layout) border of audio recording widget */
197
+ --str-chat__voice-recording-attachment-widget-border-inline-end: none;
198
+
199
+ /* Box shadow applied to audio recording widget */
200
+ --str-chat__voice-recording-attachment-widget-box-shadow: none;
201
+
173
202
  /* Border radius applied to the play / pause button of audio widget */
174
203
  --str-chat__audio-attachment-controls-button-border-radius: var(--str-chat__border-radius-circle);
175
204
 
@@ -315,7 +344,11 @@
315
344
  }
316
345
 
317
346
  .str-chat__message-attachment-audio-widget--progress-track {
318
- background-color: var(--str-chat__disabled-color);
347
+ background: linear-gradient(
348
+ to right,
349
+ var(--str-chat__primary-color) var(--str-chat__message-attachment-audio-widget-progress),
350
+ var(--str-chat__disabled-color) var(--str-chat__message-attachment-audio-widget-progress)
351
+ );
319
352
  border-radius: calc(var(--str-chat__spacing-px) * 5);
320
353
 
321
354
  .str-chat__message-attachment-audio-widget--progress-indicator {
@@ -329,6 +362,44 @@
329
362
  @include utils.circle-fab-overrides('audio-attachment-controls-button');
330
363
  }
331
364
 
365
+ .str-chat__message-attachment__voice-recording-widget {
366
+ @include utils.component-layer-overrides('voice-recording-attachment-widget');
367
+
368
+ .str-chat__message-attachment__voice-recording-widget__title {
369
+ @include utils.ellipsis-text;
370
+ font: var(--str-chat__subtitle-medium-text);
371
+ }
372
+
373
+ .str-chat__message-attachment__voice-recording-widget__timer {
374
+ font: var(--str-chat__body-text);
375
+ color: var(--str-chat__text-low-emphasis-color);
376
+ white-space: nowrap;
377
+ }
378
+
379
+ .str-chat__wave-progress-bar__amplitude-bar {
380
+ background: var(--str-chat__text-low-emphasis-color);
381
+ border-radius: var(--str-chat__border-radius-circle);
382
+ }
383
+
384
+ .str-chat__wave-progress-bar__amplitude-bar--active {
385
+ background: var(--str-chat__primary-color);
386
+ }
387
+
388
+ .str-chat__wave-progress-bar__progress-indicator {
389
+ background-color: #fff;
390
+ border-radius: var(--str-chat__border-radius-circle);
391
+ border: 1px solid var(--str-chat__secondary-overlay-color);
392
+ cursor: grab;
393
+ }
394
+ }
395
+
396
+ .str-chat__message_attachment__playback-rate-button {
397
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
398
+ border-radius: var(--str-chat__border-radius-circle);
399
+ background-color: #fff; // in design marked as static, excluded from theming
400
+ cursor: pointer;
401
+ }
402
+
332
403
  .str-chat__message-attachment--card {
333
404
  @include utils.component-layer-overrides('card-attachment');
334
405
  font: var(--str-chat__body-text);
@@ -23,7 +23,7 @@
23
23
  }
24
24
  }
25
25
 
26
- .str-chat__message {
26
+ .str-chat-angular__edit-message-form {
27
27
  .str-chat__message-input-angular-host {
28
28
  max-height: 100%;
29
29
  min-height: 0;
@@ -32,21 +32,19 @@
32
32
  max-width: 100%;
33
33
  }
34
34
 
35
- .str-chat__message-edit-in-progress {
36
- .str-chat__modal--open {
37
- .str-chat__modal__inner {
38
- height: 40%;
39
- max-height: 80%;
40
- min-width: 90%;
41
- max-width: 90%;
42
- width: 90%;
43
- flex-basis: min-content;
35
+ .str-chat__modal--open {
36
+ .str-chat__modal__inner {
37
+ height: 40%;
38
+ max-height: 80%;
39
+ min-width: 90%;
40
+ max-width: 90%;
41
+ width: 90%;
42
+ flex-basis: min-content;
44
43
 
45
- @media only screen and (min-device-width: 768px) {
46
- min-width: 40%;
47
- max-width: 60%;
48
- width: min-content;
49
- }
44
+ @media only screen and (min-device-width: 768px) {
45
+ min-width: 40%;
46
+ max-width: 60%;
47
+ width: min-content;
50
48
  }
51
49
  }
52
50
  }