stream-chat-react 14.11.0 → 14.12.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 (1103) hide show
  1. package/dist/cjs/{NotificationList.6abbee1c.js → NotificationList.4ce251ea.js} +127 -34
  2. package/dist/cjs/NotificationList.4ce251ea.js.map +1 -0
  3. package/dist/cjs/{ReactPlayerWrapper.a94a0cd1.js → ReactPlayerWrapper.7cc7b0d8.js} +4 -4
  4. package/dist/cjs/{ReactPlayerWrapper.a94a0cd1.js.map → ReactPlayerWrapper.7cc7b0d8.js.map} +1 -1
  5. package/dist/cjs/channel-detail.js +2 -2
  6. package/dist/cjs/emojis.js +2 -2
  7. package/dist/cjs/index.js +248 -62
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/{useChannelHeaderOnlineStatus.7e17671e.js → useChannelHeaderOnlineStatus.64c443f5.js} +2 -2
  10. package/dist/cjs/{useChannelHeaderOnlineStatus.7e17671e.js.map → useChannelHeaderOnlineStatus.64c443f5.js.map} +1 -1
  11. package/dist/cjs/{useInertWhenHidden.22151beb.js → useInertWhenHidden.1a2a6a2b.js} +200 -53
  12. package/dist/cjs/useInertWhenHidden.1a2a6a2b.js.map +1 -0
  13. package/dist/css/index.css +71 -12
  14. package/dist/css/index.css.map +1 -1
  15. package/dist/es/_virtual/_rolldown/runtime.mjs +13 -0
  16. package/dist/es/a11y/a11yUtils.mjs +42 -0
  17. package/dist/es/a11y/a11yUtils.mjs.map +1 -0
  18. package/dist/es/a11y/accessibleLabel.mjs +27 -0
  19. package/dist/es/a11y/accessibleLabel.mjs.map +1 -0
  20. package/dist/es/a11y/hooks/useAriaIdentifiers.mjs +25 -0
  21. package/dist/es/a11y/hooks/useAriaIdentifiers.mjs.map +1 -0
  22. package/dist/es/a11y/hooks/useListboxKeyboardNavigation.mjs +85 -0
  23. package/dist/es/a11y/hooks/useListboxKeyboardNavigation.mjs.map +1 -0
  24. package/dist/es/a11y/hooks/useResolvedModalAriaProps.mjs +32 -0
  25. package/dist/es/a11y/hooks/useResolvedModalAriaProps.mjs.map +1 -0
  26. package/dist/es/a11y/hooks/useVirtualizedListboxKeyboardNavigation.mjs +68 -0
  27. package/dist/es/a11y/hooks/useVirtualizedListboxKeyboardNavigation.mjs.map +1 -0
  28. package/dist/es/channel-detail.mjs +29 -3020
  29. package/dist/es/components/AIStateIndicator/AIStateIndicator.mjs +26 -0
  30. package/dist/es/components/AIStateIndicator/AIStateIndicator.mjs.map +1 -0
  31. package/dist/es/components/AIStateIndicator/hooks/useAIState.mjs +44 -0
  32. package/dist/es/components/AIStateIndicator/hooks/useAIState.mjs.map +1 -0
  33. package/dist/es/components/Accessibility/AriaLiveAnnouncerProvider.mjs +144 -0
  34. package/dist/es/components/Accessibility/AriaLiveAnnouncerProvider.mjs.map +1 -0
  35. package/dist/es/components/Accessibility/AriaLiveOutlet.mjs +58 -0
  36. package/dist/es/components/Accessibility/AriaLiveOutlet.mjs.map +1 -0
  37. package/dist/es/components/Accessibility/AriaLiveOutletContext.mjs +8 -0
  38. package/dist/es/components/Accessibility/AriaLiveOutletContext.mjs.map +1 -0
  39. package/dist/es/components/Accessibility/NotificationAnnouncer.mjs +87 -0
  40. package/dist/es/components/Accessibility/NotificationAnnouncer.mjs.map +1 -0
  41. package/dist/es/components/Accessibility/hooks/useAudioPlaybackChangeAnnouncements.mjs +20 -0
  42. package/dist/es/components/Accessibility/hooks/useAudioPlaybackChangeAnnouncements.mjs.map +1 -0
  43. package/dist/es/components/Accessibility/hooks/useFocusReturn.mjs +37 -0
  44. package/dist/es/components/Accessibility/hooks/useFocusReturn.mjs.map +1 -0
  45. package/dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs +84 -0
  46. package/dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs.map +1 -0
  47. package/dist/es/components/Accessibility/hooks/useInertWhenHidden.mjs +85 -0
  48. package/dist/es/components/Accessibility/hooks/useInertWhenHidden.mjs.map +1 -0
  49. package/dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs +155 -0
  50. package/dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs.map +1 -0
  51. package/dist/es/components/Accessibility/scheduling/useAnnouncementQueue.mjs +43 -0
  52. package/dist/es/components/Accessibility/scheduling/useAnnouncementQueue.mjs.map +1 -0
  53. package/dist/es/components/Accessibility/scheduling/useDebouncedAnnounce.mjs +78 -0
  54. package/dist/es/components/Accessibility/scheduling/useDebouncedAnnounce.mjs.map +1 -0
  55. package/dist/es/components/Accessibility/scheduling/useSettledAnnouncement.mjs +90 -0
  56. package/dist/es/components/Accessibility/scheduling/useSettledAnnouncement.mjs.map +1 -0
  57. package/dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs +16 -0
  58. package/dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs.map +1 -0
  59. package/dist/es/components/Attachment/Attachment.mjs +74 -0
  60. package/dist/es/components/Attachment/Attachment.mjs.map +1 -0
  61. package/dist/es/components/Attachment/AttachmentActions.mjs +109 -0
  62. package/dist/es/components/Attachment/AttachmentActions.mjs.map +1 -0
  63. package/dist/es/components/Attachment/AttachmentContainer.mjs +265 -0
  64. package/dist/es/components/Attachment/AttachmentContainer.mjs.map +1 -0
  65. package/dist/es/components/Attachment/Audio.mjs +104 -0
  66. package/dist/es/components/Attachment/Audio.mjs.map +1 -0
  67. package/dist/es/components/Attachment/FileAttachment.mjs +47 -0
  68. package/dist/es/components/Attachment/FileAttachment.mjs.map +1 -0
  69. package/dist/es/components/Attachment/Geolocation.mjs +77 -0
  70. package/dist/es/components/Attachment/Geolocation.mjs.map +1 -0
  71. package/dist/es/components/Attachment/Giphy.mjs +62 -0
  72. package/dist/es/components/Attachment/Giphy.mjs.map +1 -0
  73. package/dist/es/components/Attachment/Image.mjs +19 -0
  74. package/dist/es/components/Attachment/Image.mjs.map +1 -0
  75. package/dist/es/components/Attachment/LinkPreview/Card.mjs +93 -0
  76. package/dist/es/components/Attachment/LinkPreview/Card.mjs.map +1 -0
  77. package/dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs +22 -0
  78. package/dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs.map +1 -0
  79. package/dist/es/components/Attachment/ModalGallery.mjs +166 -0
  80. package/dist/es/components/Attachment/ModalGallery.mjs.map +1 -0
  81. package/dist/es/components/Attachment/UnsupportedAttachment.mjs +25 -0
  82. package/dist/es/components/Attachment/UnsupportedAttachment.mjs.map +1 -0
  83. package/dist/es/components/Attachment/VideoAttachment.mjs +56 -0
  84. package/dist/es/components/Attachment/VideoAttachment.mjs.map +1 -0
  85. package/dist/es/components/Attachment/VisibilityDisclaimer.mjs +17 -0
  86. package/dist/es/components/Attachment/VisibilityDisclaimer.mjs.map +1 -0
  87. package/dist/es/components/Attachment/VoiceRecording.mjs +134 -0
  88. package/dist/es/components/Attachment/VoiceRecording.mjs.map +1 -0
  89. package/dist/es/components/Attachment/attachment-sizing.mjs +73 -0
  90. package/dist/es/components/Attachment/attachment-sizing.mjs.map +1 -0
  91. package/dist/es/components/Attachment/audioSampling.mjs +74 -0
  92. package/dist/es/components/Attachment/audioSampling.mjs.map +1 -0
  93. package/dist/es/components/Attachment/components/AttachmentUploadProgressIndicator.mjs +38 -0
  94. package/dist/es/components/Attachment/components/AttachmentUploadProgressIndicator.mjs.map +1 -0
  95. package/dist/es/components/Attachment/components/DownloadButton.mjs +35 -0
  96. package/dist/es/components/Attachment/components/DownloadButton.mjs.map +1 -0
  97. package/dist/es/components/Attachment/components/FileSizeIndicator.mjs +17 -0
  98. package/dist/es/components/Attachment/components/FileSizeIndicator.mjs.map +1 -0
  99. package/dist/es/components/Attachment/giphyAccessibility.mjs +15 -0
  100. package/dist/es/components/Attachment/giphyAccessibility.mjs.map +1 -0
  101. package/dist/es/components/Attachment/hooks/useAttachmentUploadState.mjs +106 -0
  102. package/dist/es/components/Attachment/hooks/useAttachmentUploadState.mjs.map +1 -0
  103. package/dist/es/components/Attachment/hooks/useLocalVideoDimensions.mjs +79 -0
  104. package/dist/es/components/Attachment/hooks/useLocalVideoDimensions.mjs.map +1 -0
  105. package/dist/es/components/Attachment/icons.mjs +13 -0
  106. package/dist/es/components/Attachment/icons.mjs.map +1 -0
  107. package/dist/es/components/Attachment/utils.mjs +41 -0
  108. package/dist/es/components/Attachment/utils.mjs.map +1 -0
  109. package/dist/es/components/AudioPlayback/AudioPlayer.mjs +457 -0
  110. package/dist/es/components/AudioPlayback/AudioPlayer.mjs.map +1 -0
  111. package/dist/es/components/AudioPlayback/AudioPlayerPool.mjs +109 -0
  112. package/dist/es/components/AudioPlayback/AudioPlayerPool.mjs.map +1 -0
  113. package/dist/es/components/AudioPlayback/WithAudioPlayback.mjs +72 -0
  114. package/dist/es/components/AudioPlayback/WithAudioPlayback.mjs.map +1 -0
  115. package/dist/es/components/AudioPlayback/components/DurationDisplay.mjs +33 -0
  116. package/dist/es/components/AudioPlayback/components/DurationDisplay.mjs.map +1 -0
  117. package/dist/es/components/AudioPlayback/components/PlaybackRateButton.mjs +15 -0
  118. package/dist/es/components/AudioPlayback/components/PlaybackRateButton.mjs.map +1 -0
  119. package/dist/es/components/AudioPlayback/components/ProgressBar.mjs +56 -0
  120. package/dist/es/components/AudioPlayback/components/ProgressBar.mjs.map +1 -0
  121. package/dist/es/components/AudioPlayback/components/WaveProgressBar.mjs +107 -0
  122. package/dist/es/components/AudioPlayback/components/WaveProgressBar.mjs.map +1 -0
  123. package/dist/es/components/AudioPlayback/components/formatTime.mjs +14 -0
  124. package/dist/es/components/AudioPlayback/components/formatTime.mjs.map +1 -0
  125. package/dist/es/components/AudioPlayback/components/keyboardSeek.mjs +36 -0
  126. package/dist/es/components/AudioPlayback/components/keyboardSeek.mjs.map +1 -0
  127. package/dist/es/components/AudioPlayback/components/progressBarA11y.mjs +19 -0
  128. package/dist/es/components/AudioPlayback/components/progressBarA11y.mjs.map +1 -0
  129. package/dist/es/components/AudioPlayback/components/useInteractiveProgressBar.mjs +77 -0
  130. package/dist/es/components/AudioPlayback/components/useInteractiveProgressBar.mjs.map +1 -0
  131. package/dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs +33 -0
  132. package/dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs.map +1 -0
  133. package/dist/es/components/Avatar/Avatar.mjs +62 -0
  134. package/dist/es/components/Avatar/Avatar.mjs.map +1 -0
  135. package/dist/es/components/Avatar/AvatarStack.mjs +32 -0
  136. package/dist/es/components/Avatar/AvatarStack.mjs.map +1 -0
  137. package/dist/es/components/Avatar/ChannelAvatar.mjs +25 -0
  138. package/dist/es/components/Avatar/ChannelAvatar.mjs.map +1 -0
  139. package/dist/es/components/Avatar/GroupAvatar.mjs +53 -0
  140. package/dist/es/components/Avatar/GroupAvatar.mjs.map +1 -0
  141. package/dist/es/components/Avatar/utils.mjs +10 -0
  142. package/dist/es/components/Avatar/utils.mjs.map +1 -0
  143. package/dist/es/components/Badge/Badge.mjs +28 -0
  144. package/dist/es/components/Badge/Badge.mjs.map +1 -0
  145. package/dist/es/components/Badge/MediaBadge.mjs +20 -0
  146. package/dist/es/components/Badge/MediaBadge.mjs.map +1 -0
  147. package/dist/es/components/BaseImage/BaseImage.mjs +35 -0
  148. package/dist/es/components/BaseImage/BaseImage.mjs.map +1 -0
  149. package/dist/es/components/BaseImage/ImagePlaceholder.mjs +21 -0
  150. package/dist/es/components/BaseImage/ImagePlaceholder.mjs.map +1 -0
  151. package/dist/es/components/BaseImage/toBaseImageDescriptors.mjs +57 -0
  152. package/dist/es/components/BaseImage/toBaseImageDescriptors.mjs.map +1 -0
  153. package/dist/es/components/Button/Button.mjs +36 -0
  154. package/dist/es/components/Button/Button.mjs.map +1 -0
  155. package/dist/es/components/Button/PlayButton.mjs +26 -0
  156. package/dist/es/components/Button/PlayButton.mjs.map +1 -0
  157. package/dist/es/components/Channel/Channel.mjs +752 -0
  158. package/dist/es/components/Channel/Channel.mjs.map +1 -0
  159. package/dist/es/components/Channel/channelState.mjs +195 -0
  160. package/dist/es/components/Channel/channelState.mjs.map +1 -0
  161. package/dist/es/components/Channel/constants.mjs +6 -0
  162. package/dist/es/components/Channel/constants.mjs.map +1 -0
  163. package/dist/es/components/Channel/hooks/useChannelContainerClasses.mjs +20 -0
  164. package/dist/es/components/Channel/hooks/useChannelContainerClasses.mjs.map +1 -0
  165. package/dist/es/components/Channel/hooks/useCreateChannelStateContext.mjs +86 -0
  166. package/dist/es/components/Channel/hooks/useCreateChannelStateContext.mjs.map +1 -0
  167. package/dist/es/components/Channel/hooks/useCreateTypingContext.mjs +10 -0
  168. package/dist/es/components/Channel/hooks/useCreateTypingContext.mjs.map +1 -0
  169. package/dist/es/components/Channel/hooks/useEditMessageHandler.mjs +13 -0
  170. package/dist/es/components/Channel/hooks/useEditMessageHandler.mjs.map +1 -0
  171. package/dist/es/components/Channel/hooks/useIsMounted.mjs +16 -0
  172. package/dist/es/components/Channel/hooks/useIsMounted.mjs.map +1 -0
  173. package/dist/es/components/Channel/hooks/useMentionsHandlers.mjs +18 -0
  174. package/dist/es/components/Channel/hooks/useMentionsHandlers.mjs.map +1 -0
  175. package/dist/es/components/Channel/utils.mjs +156 -0
  176. package/dist/es/components/Channel/utils.mjs.map +1 -0
  177. package/dist/es/components/ChannelHeader/ChannelHeader.mjs +70 -0
  178. package/dist/es/components/ChannelHeader/ChannelHeader.mjs.map +1 -0
  179. package/dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs +51 -0
  180. package/dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs.map +1 -0
  181. package/dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs +33 -0
  182. package/dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs.map +1 -0
  183. package/dist/es/components/ChannelList/ChannelList.mjs +143 -0
  184. package/dist/es/components/ChannelList/ChannelList.mjs.map +1 -0
  185. package/dist/es/components/ChannelList/ChannelListHeader.mjs +22 -0
  186. package/dist/es/components/ChannelList/ChannelListHeader.mjs.map +1 -0
  187. package/dist/es/components/ChannelList/ChannelListUI.mjs +35 -0
  188. package/dist/es/components/ChannelList/ChannelListUI.mjs.map +1 -0
  189. package/dist/es/components/ChannelList/hooks/useChannelListKeyboardNavigation.mjs +82 -0
  190. package/dist/es/components/ChannelList/hooks/useChannelListKeyboardNavigation.mjs.map +1 -0
  191. package/dist/es/components/ChannelList/hooks/useChannelListShape.mjs +310 -0
  192. package/dist/es/components/ChannelList/hooks/useChannelListShape.mjs.map +1 -0
  193. package/dist/es/components/ChannelList/hooks/useChannelMembersState.mjs +23 -0
  194. package/dist/es/components/ChannelList/hooks/useChannelMembersState.mjs.map +1 -0
  195. package/dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs +15 -0
  196. package/dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs.map +1 -0
  197. package/dist/es/components/ChannelList/hooks/useConnectionRecoveredListener.mjs +19 -0
  198. package/dist/es/components/ChannelList/hooks/useConnectionRecoveredListener.mjs.map +1 -0
  199. package/dist/es/components/ChannelList/hooks/usePaginatedChannels.mjs +110 -0
  200. package/dist/es/components/ChannelList/hooks/usePaginatedChannels.mjs.map +1 -0
  201. package/dist/es/components/ChannelList/hooks/useSelectedChannelState.mjs +24 -0
  202. package/dist/es/components/ChannelList/hooks/useSelectedChannelState.mjs.map +1 -0
  203. package/dist/es/components/ChannelList/utils.mjs +86 -0
  204. package/dist/es/components/ChannelList/utils.mjs.map +1 -0
  205. package/dist/es/components/ChannelListItem/ChannelListItem.mjs +116 -0
  206. package/dist/es/components/ChannelListItem/ChannelListItem.mjs.map +1 -0
  207. package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.defaults.mjs +432 -0
  208. package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.defaults.mjs.map +1 -0
  209. package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs +67 -0
  210. package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs.map +1 -0
  211. package/dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs +30 -0
  212. package/dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs.map +1 -0
  213. package/dist/es/components/ChannelListItem/ChannelListItemUI.mjs +118 -0
  214. package/dist/es/components/ChannelListItem/ChannelListItemUI.mjs.map +1 -0
  215. package/dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs +56 -0
  216. package/dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs.map +1 -0
  217. package/dist/es/components/ChannelListItem/hooks/useChannelPreviewInfo.mjs +51 -0
  218. package/dist/es/components/ChannelListItem/hooks/useChannelPreviewInfo.mjs.map +1 -0
  219. package/dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs +33 -0
  220. package/dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs.map +1 -0
  221. package/dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs +11 -0
  222. package/dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs.map +1 -0
  223. package/dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs +68 -0
  224. package/dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs.map +1 -0
  225. package/dist/es/components/ChannelListItem/utils.a11y.mjs +121 -0
  226. package/dist/es/components/ChannelListItem/utils.a11y.mjs.map +1 -0
  227. package/dist/es/components/ChannelListItem/utils.mjs +195 -0
  228. package/dist/es/components/ChannelListItem/utils.mjs.map +1 -0
  229. package/dist/es/components/Chat/Chat.mjs +88 -0
  230. package/dist/es/components/Chat/Chat.mjs.map +1 -0
  231. package/dist/es/components/Chat/hooks/useChannelsQueryState.mjs +16 -0
  232. package/dist/es/components/Chat/hooks/useChannelsQueryState.mjs.map +1 -0
  233. package/dist/es/components/Chat/hooks/useChat.mjs +86 -0
  234. package/dist/es/components/Chat/hooks/useChat.mjs.map +1 -0
  235. package/dist/es/components/Chat/hooks/useCreateChatClient.mjs +36 -0
  236. package/dist/es/components/Chat/hooks/useCreateChatClient.mjs.map +1 -0
  237. package/dist/es/components/Chat/hooks/useCreateChatContext.mjs +38 -0
  238. package/dist/es/components/Chat/hooks/useCreateChatContext.mjs.map +1 -0
  239. package/dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs +51 -0
  240. package/dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs.map +1 -0
  241. package/dist/es/components/Chat/hooks/useSplitActionSet.mjs +21 -0
  242. package/dist/es/components/Chat/hooks/useSplitActionSet.mjs.map +1 -0
  243. package/dist/es/components/ChatView/ChatView.a11y.utility.mjs +13 -0
  244. package/dist/es/components/ChatView/ChatView.a11y.utility.mjs.map +1 -0
  245. package/dist/es/components/ChatView/ChatView.mjs +224 -0
  246. package/dist/es/components/ChatView/ChatView.mjs.map +1 -0
  247. package/dist/es/components/DateSeparator/DateSeparator.mjs +36 -0
  248. package/dist/es/components/DateSeparator/DateSeparator.mjs.map +1 -0
  249. package/dist/es/components/Dialog/components/Alert.mjs +53 -0
  250. package/dist/es/components/Dialog/components/Alert.mjs.map +1 -0
  251. package/dist/es/components/Dialog/components/Callout.mjs +57 -0
  252. package/dist/es/components/Dialog/components/Callout.mjs.map +1 -0
  253. package/dist/es/components/Dialog/components/ContextMenu.mjs +550 -0
  254. package/dist/es/components/Dialog/components/ContextMenu.mjs.map +1 -0
  255. package/dist/es/components/Dialog/components/Prompt.mjs +112 -0
  256. package/dist/es/components/Dialog/components/Prompt.mjs.map +1 -0
  257. package/dist/es/components/Dialog/components/Viewer.mjs +100 -0
  258. package/dist/es/components/Dialog/components/Viewer.mjs.map +1 -0
  259. package/dist/es/components/Dialog/hooks/useDialog.mjs +53 -0
  260. package/dist/es/components/Dialog/hooks/useDialog.mjs.map +1 -0
  261. package/dist/es/components/Dialog/hooks/usePopoverPosition.mjs +49 -0
  262. package/dist/es/components/Dialog/hooks/usePopoverPosition.mjs.map +1 -0
  263. package/dist/es/components/Dialog/service/DialogAnchor.mjs +175 -0
  264. package/dist/es/components/Dialog/service/DialogAnchor.mjs.map +1 -0
  265. package/dist/es/components/Dialog/service/DialogManager.mjs +169 -0
  266. package/dist/es/components/Dialog/service/DialogManager.mjs.map +1 -0
  267. package/dist/es/components/Dialog/service/DialogPortal.mjs +63 -0
  268. package/dist/es/components/Dialog/service/DialogPortal.mjs.map +1 -0
  269. package/dist/es/components/DragAndDrop/DragAndDropContainer.mjs +90 -0
  270. package/dist/es/components/DragAndDrop/DragAndDropContainer.mjs.map +1 -0
  271. package/dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs +38 -0
  272. package/dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs.map +1 -0
  273. package/dist/es/components/EventComponent/EventComponent.mjs +27 -0
  274. package/dist/es/components/EventComponent/EventComponent.mjs.map +1 -0
  275. package/dist/es/components/FileIcon/FileIcon.mjs +43 -0
  276. package/dist/es/components/FileIcon/FileIcon.mjs.map +1 -0
  277. package/dist/es/components/FileIcon/FileIconSet.mjs +407 -0
  278. package/dist/es/components/FileIcon/FileIconSet.mjs.map +1 -0
  279. package/dist/es/components/FileIcon/iconMap.mjs +41 -0
  280. package/dist/es/components/FileIcon/iconMap.mjs.map +1 -0
  281. package/dist/es/components/FileIcon/mimeTypes.mjs +242 -0
  282. package/dist/es/components/FileIcon/mimeTypes.mjs.map +1 -0
  283. package/dist/es/components/Form/Checkbox.mjs +15 -0
  284. package/dist/es/components/Form/Checkbox.mjs.map +1 -0
  285. package/dist/es/components/Form/Dropdown.mjs +132 -0
  286. package/dist/es/components/Form/Dropdown.mjs.map +1 -0
  287. package/dist/es/components/Form/FieldError.mjs +13 -0
  288. package/dist/es/components/Form/FieldError.mjs.map +1 -0
  289. package/dist/es/components/Form/NumericInput.mjs +125 -0
  290. package/dist/es/components/Form/NumericInput.mjs.map +1 -0
  291. package/dist/es/components/Form/SwitchField.mjs +103 -0
  292. package/dist/es/components/Form/SwitchField.mjs.map +1 -0
  293. package/dist/es/components/Form/TextInput.mjs +113 -0
  294. package/dist/es/components/Form/TextInput.mjs.map +1 -0
  295. package/dist/es/components/Form/TextInputFieldSet.mjs +21 -0
  296. package/dist/es/components/Form/TextInputFieldSet.mjs.map +1 -0
  297. package/dist/es/components/Form/hooks/useFormState.mjs +54 -0
  298. package/dist/es/components/Form/hooks/useFormState.mjs.map +1 -0
  299. package/dist/es/components/Gallery/Gallery.mjs +60 -0
  300. package/dist/es/components/Gallery/Gallery.mjs.map +1 -0
  301. package/dist/es/components/Gallery/GalleryContext.mjs +21 -0
  302. package/dist/es/components/Gallery/GalleryContext.mjs.map +1 -0
  303. package/dist/es/components/Gallery/GalleryHeader.mjs +65 -0
  304. package/dist/es/components/Gallery/GalleryHeader.mjs.map +1 -0
  305. package/dist/es/components/Gallery/GalleryUI.mjs +206 -0
  306. package/dist/es/components/Gallery/GalleryUI.mjs.map +1 -0
  307. package/dist/es/components/Icons/BaseIcon.mjs +20 -0
  308. package/dist/es/components/Icons/BaseIcon.mjs.map +1 -0
  309. package/dist/es/components/Icons/createIcon.mjs +23 -0
  310. package/dist/es/components/Icons/createIcon.mjs.map +1 -0
  311. package/dist/es/components/Icons/icons.mjs +802 -0
  312. package/dist/es/components/Icons/icons.mjs.map +1 -0
  313. package/dist/es/components/InfiniteScrollPaginator/InfiniteScroll.mjs +81 -0
  314. package/dist/es/components/InfiniteScrollPaginator/InfiniteScroll.mjs.map +1 -0
  315. package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs +73 -0
  316. package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs.map +1 -0
  317. package/dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs +47 -0
  318. package/dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs.map +1 -0
  319. package/dist/es/components/ListItemLayout/ListItemLayout.mjs +62 -0
  320. package/dist/es/components/ListItemLayout/ListItemLayout.mjs.map +1 -0
  321. package/dist/es/components/LoadMore/LoadMoreButton.mjs +28 -0
  322. package/dist/es/components/LoadMore/LoadMoreButton.mjs.map +1 -0
  323. package/dist/es/components/LoadMore/LoadMorePaginator.mjs +20 -0
  324. package/dist/es/components/LoadMore/LoadMorePaginator.mjs.map +1 -0
  325. package/dist/es/components/Loading/AttachmentUploadedSizeIndicator.mjs +33 -0
  326. package/dist/es/components/Loading/AttachmentUploadedSizeIndicator.mjs.map +1 -0
  327. package/dist/es/components/Loading/LoadingChannel.mjs +59 -0
  328. package/dist/es/components/Loading/LoadingChannel.mjs.map +1 -0
  329. package/dist/es/components/Loading/LoadingChannels.mjs +28 -0
  330. package/dist/es/components/Loading/LoadingChannels.mjs.map +1 -0
  331. package/dist/es/components/Loading/LoadingErrorIndicator.mjs +17 -0
  332. package/dist/es/components/Loading/LoadingErrorIndicator.mjs.map +1 -0
  333. package/dist/es/components/Loading/LoadingIndicator.mjs +15 -0
  334. package/dist/es/components/Loading/LoadingIndicator.mjs.map +1 -0
  335. package/dist/es/components/Loading/UploadProgressIndicator.mjs +15 -0
  336. package/dist/es/components/Loading/UploadProgressIndicator.mjs.map +1 -0
  337. package/dist/es/components/Loading/UploadedSizeIndicator.mjs +22 -0
  338. package/dist/es/components/Loading/UploadedSizeIndicator.mjs.map +1 -0
  339. package/dist/es/components/Loading/progress-indicators.mjs +50 -0
  340. package/dist/es/components/Loading/progress-indicators.mjs.map +1 -0
  341. package/dist/es/components/Location/ShareLocationDialog.mjs +206 -0
  342. package/dist/es/components/Location/ShareLocationDialog.mjs.map +1 -0
  343. package/dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs +57 -0
  344. package/dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs.map +1 -0
  345. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs +32 -0
  346. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs.map +1 -0
  347. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs +77 -0
  348. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs.map +1 -0
  349. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs +58 -0
  350. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs.map +1 -0
  351. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs +71 -0
  352. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs.map +1 -0
  353. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs +65 -0
  354. package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs.map +1 -0
  355. package/dist/es/components/MediaRecorder/AudioRecorder/RecordingTimer.mjs +13 -0
  356. package/dist/es/components/MediaRecorder/AudioRecorder/RecordingTimer.mjs.map +1 -0
  357. package/dist/es/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.mjs +40 -0
  358. package/dist/es/components/MediaRecorder/AudioRecorder/hooks/useTimeElapsed.mjs.map +1 -0
  359. package/dist/es/components/MediaRecorder/AudioRecorder/recordingStateIdentity.mjs +8 -0
  360. package/dist/es/components/MediaRecorder/AudioRecorder/recordingStateIdentity.mjs.map +1 -0
  361. package/dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs +31 -0
  362. package/dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs.map +1 -0
  363. package/dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs +75 -0
  364. package/dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs.map +1 -0
  365. package/dist/es/components/MediaRecorder/classes/BrowserPermission.mjs +62 -0
  366. package/dist/es/components/MediaRecorder/classes/BrowserPermission.mjs.map +1 -0
  367. package/dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs +237 -0
  368. package/dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs.map +1 -0
  369. package/dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs +79 -0
  370. package/dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs.map +1 -0
  371. package/dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs +27 -0
  372. package/dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs.map +1 -0
  373. package/dist/es/components/MediaRecorder/observable/Observable.mjs +23 -0
  374. package/dist/es/components/MediaRecorder/observable/Observable.mjs.map +1 -0
  375. package/dist/es/components/MediaRecorder/observable/Observer.mjs +8 -0
  376. package/dist/es/components/MediaRecorder/observable/Observer.mjs.map +1 -0
  377. package/dist/es/components/MediaRecorder/observable/Subject.mjs +54 -0
  378. package/dist/es/components/MediaRecorder/observable/Subject.mjs.map +1 -0
  379. package/dist/es/components/MediaRecorder/observable/Subscription.mjs +15 -0
  380. package/dist/es/components/MediaRecorder/observable/Subscription.mjs.map +1 -0
  381. package/dist/es/components/MediaRecorder/transcode/audioProcessing.mjs +34 -0
  382. package/dist/es/components/MediaRecorder/transcode/audioProcessing.mjs.map +1 -0
  383. package/dist/es/components/MediaRecorder/transcode/index.mjs +12 -0
  384. package/dist/es/components/MediaRecorder/transcode/index.mjs.map +1 -0
  385. package/dist/es/components/MediaRecorder/transcode/wav.mjs +99 -0
  386. package/dist/es/components/MediaRecorder/transcode/wav.mjs.map +1 -0
  387. package/dist/es/components/Message/Message.mjs +154 -0
  388. package/dist/es/components/Message/Message.mjs.map +1 -0
  389. package/dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs +79 -0
  390. package/dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs.map +1 -0
  391. package/dist/es/components/Message/MessageBlocked.mjs +27 -0
  392. package/dist/es/components/Message/MessageBlocked.mjs.map +1 -0
  393. package/dist/es/components/Message/MessageBubble.mjs +12 -0
  394. package/dist/es/components/Message/MessageBubble.mjs.map +1 -0
  395. package/dist/es/components/Message/MessageDeletedBubble.mjs +21 -0
  396. package/dist/es/components/Message/MessageDeletedBubble.mjs.map +1 -0
  397. package/dist/es/components/Message/MessageEditedIndicator.mjs +41 -0
  398. package/dist/es/components/Message/MessageEditedIndicator.mjs.map +1 -0
  399. package/dist/es/components/Message/MessageRepliesCountButton.mjs +37 -0
  400. package/dist/es/components/Message/MessageRepliesCountButton.mjs.map +1 -0
  401. package/dist/es/components/Message/MessageStatus.mjs +85 -0
  402. package/dist/es/components/Message/MessageStatus.mjs.map +1 -0
  403. package/dist/es/components/Message/MessageText.mjs +101 -0
  404. package/dist/es/components/Message/MessageText.mjs.map +1 -0
  405. package/dist/es/components/Message/MessageTimestamp.mjs +20 -0
  406. package/dist/es/components/Message/MessageTimestamp.mjs.map +1 -0
  407. package/dist/es/components/Message/MessageTranslationIndicator.mjs +53 -0
  408. package/dist/es/components/Message/MessageTranslationIndicator.mjs.map +1 -0
  409. package/dist/es/components/Message/MessageUI.mjs +185 -0
  410. package/dist/es/components/Message/MessageUI.mjs.map +1 -0
  411. package/dist/es/components/Message/PinIndicator.mjs +34 -0
  412. package/dist/es/components/Message/PinIndicator.mjs.map +1 -0
  413. package/dist/es/components/Message/QuotedMessage.mjs +26 -0
  414. package/dist/es/components/Message/QuotedMessage.mjs.map +1 -0
  415. package/dist/es/components/Message/ReminderNotification.mjs +57 -0
  416. package/dist/es/components/Message/ReminderNotification.mjs.map +1 -0
  417. package/dist/es/components/Message/StreamedMessageText.mjs +35 -0
  418. package/dist/es/components/Message/StreamedMessageText.mjs.map +1 -0
  419. package/dist/es/components/Message/Timestamp.mjs +41 -0
  420. package/dist/es/components/Message/Timestamp.mjs.map +1 -0
  421. package/dist/es/components/Message/emojiRegex.mjs +20 -0
  422. package/dist/es/components/Message/emojiRegex.mjs.map +1 -0
  423. package/dist/es/components/Message/hooks/useActionHandler.mjs +30 -0
  424. package/dist/es/components/Message/hooks/useActionHandler.mjs.map +1 -0
  425. package/dist/es/components/Message/hooks/useDeleteHandler.mjs +21 -0
  426. package/dist/es/components/Message/hooks/useDeleteHandler.mjs.map +1 -0
  427. package/dist/es/components/Message/hooks/useFlagHandler.mjs +20 -0
  428. package/dist/es/components/Message/hooks/useFlagHandler.mjs.map +1 -0
  429. package/dist/es/components/Message/hooks/useMarkUnreadHandler.mjs +17 -0
  430. package/dist/es/components/Message/hooks/useMarkUnreadHandler.mjs.map +1 -0
  431. package/dist/es/components/Message/hooks/useMentionsHandler.mjs +22 -0
  432. package/dist/es/components/Message/hooks/useMentionsHandler.mjs.map +1 -0
  433. package/dist/es/components/Message/hooks/useMessageReminder.mjs +14 -0
  434. package/dist/es/components/Message/hooks/useMessageReminder.mjs.map +1 -0
  435. package/dist/es/components/Message/hooks/useMessageTextStreaming.mjs +48 -0
  436. package/dist/es/components/Message/hooks/useMessageTextStreaming.mjs.map +1 -0
  437. package/dist/es/components/Message/hooks/useMuteHandler.mjs +24 -0
  438. package/dist/es/components/Message/hooks/useMuteHandler.mjs.map +1 -0
  439. package/dist/es/components/Message/hooks/useOpenThreadHandler.mjs +17 -0
  440. package/dist/es/components/Message/hooks/useOpenThreadHandler.mjs.map +1 -0
  441. package/dist/es/components/Message/hooks/usePinHandler.mjs +45 -0
  442. package/dist/es/components/Message/hooks/usePinHandler.mjs.map +1 -0
  443. package/dist/es/components/Message/hooks/useReactionHandler.mjs +90 -0
  444. package/dist/es/components/Message/hooks/useReactionHandler.mjs.map +1 -0
  445. package/dist/es/components/Message/hooks/useReactionsFetcher.mjs +28 -0
  446. package/dist/es/components/Message/hooks/useReactionsFetcher.mjs.map +1 -0
  447. package/dist/es/components/Message/hooks/useRetryHandler.mjs +13 -0
  448. package/dist/es/components/Message/hooks/useRetryHandler.mjs.map +1 -0
  449. package/dist/es/components/Message/hooks/useUserHandler.mjs +15 -0
  450. package/dist/es/components/Message/hooks/useUserHandler.mjs.map +1 -0
  451. package/dist/es/components/Message/hooks/useUserRole.mjs +47 -0
  452. package/dist/es/components/Message/hooks/useUserRole.mjs.map +1 -0
  453. package/dist/es/components/Message/renderText/componentRenderers/Anchor.mjs +20 -0
  454. package/dist/es/components/Message/renderText/componentRenderers/Anchor.mjs.map +1 -0
  455. package/dist/es/components/Message/renderText/componentRenderers/Emoji.mjs +12 -0
  456. package/dist/es/components/Message/renderText/componentRenderers/Emoji.mjs.map +1 -0
  457. package/dist/es/components/Message/renderText/componentRenderers/Mention.mjs +14 -0
  458. package/dist/es/components/Message/renderText/componentRenderers/Mention.mjs.map +1 -0
  459. package/dist/es/components/Message/renderText/regex.mjs +22 -0
  460. package/dist/es/components/Message/renderText/regex.mjs.map +1 -0
  461. package/dist/es/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.mjs +16 -0
  462. package/dist/es/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.mjs.map +1 -0
  463. package/dist/es/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.mjs +111 -0
  464. package/dist/es/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.mjs.map +1 -0
  465. package/dist/es/components/Message/renderText/remarkPlugins/htmlToTextPlugin.mjs +14 -0
  466. package/dist/es/components/Message/renderText/remarkPlugins/htmlToTextPlugin.mjs.map +1 -0
  467. package/dist/es/components/Message/renderText/remarkPlugins/imageToLink.mjs +33 -0
  468. package/dist/es/components/Message/renderText/remarkPlugins/imageToLink.mjs.map +1 -0
  469. package/dist/es/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.mjs +44 -0
  470. package/dist/es/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.mjs.map +1 -0
  471. package/dist/es/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.mjs +68 -0
  472. package/dist/es/components/Message/renderText/remarkPlugins/plusPlusToEmphasis.mjs.map +1 -0
  473. package/dist/es/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.mjs +19 -0
  474. package/dist/es/components/Message/renderText/remarkPlugins/remarkIgnoreMarkdown.mjs.map +1 -0
  475. package/dist/es/components/Message/renderText/renderText.mjs +131 -0
  476. package/dist/es/components/Message/renderText/renderText.mjs.map +1 -0
  477. package/dist/es/components/Message/utils.mjs +151 -0
  478. package/dist/es/components/Message/utils.mjs.map +1 -0
  479. package/dist/es/components/MessageActions/DeleteMessageAlert.mjs +43 -0
  480. package/dist/es/components/MessageActions/DeleteMessageAlert.mjs.map +1 -0
  481. package/dist/es/components/MessageActions/DownloadSubmenu.mjs +52 -0
  482. package/dist/es/components/MessageActions/DownloadSubmenu.mjs.map +1 -0
  483. package/dist/es/components/MessageActions/MessageActions.defaults.mjs +644 -0
  484. package/dist/es/components/MessageActions/MessageActions.defaults.mjs.map +1 -0
  485. package/dist/es/components/MessageActions/MessageActions.mjs +61 -0
  486. package/dist/es/components/MessageActions/MessageActions.mjs.map +1 -0
  487. package/dist/es/components/MessageActions/QuickMessageActionButton.mjs +20 -0
  488. package/dist/es/components/MessageActions/QuickMessageActionButton.mjs.map +1 -0
  489. package/dist/es/components/MessageActions/RemindMeSubmenu.mjs +71 -0
  490. package/dist/es/components/MessageActions/RemindMeSubmenu.mjs.map +1 -0
  491. package/dist/es/components/MessageActions/downloadUtils.mjs +65 -0
  492. package/dist/es/components/MessageActions/downloadUtils.mjs.map +1 -0
  493. package/dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs +64 -0
  494. package/dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs.map +1 -0
  495. package/dist/es/components/MessageBounce/MessageBounceModal.mjs +18 -0
  496. package/dist/es/components/MessageBounce/MessageBounceModal.mjs.map +1 -0
  497. package/dist/es/components/MessageBounce/MessageBouncePrompt.mjs +67 -0
  498. package/dist/es/components/MessageBounce/MessageBouncePrompt.mjs.map +1 -0
  499. package/dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs +91 -0
  500. package/dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs.map +1 -0
  501. package/dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs +131 -0
  502. package/dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs.map +1 -0
  503. package/dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs +82 -0
  504. package/dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs.map +1 -0
  505. package/dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs +53 -0
  506. package/dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs.map +1 -0
  507. package/dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs +97 -0
  508. package/dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs.map +1 -0
  509. package/dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs +36 -0
  510. package/dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs.map +1 -0
  511. package/dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs +29 -0
  512. package/dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs.map +1 -0
  513. package/dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs +53 -0
  514. package/dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs.map +1 -0
  515. package/dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs +308 -0
  516. package/dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs.map +1 -0
  517. package/dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs +104 -0
  518. package/dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs.map +1 -0
  519. package/dist/es/components/MessageComposer/CommandChip.mjs +37 -0
  520. package/dist/es/components/MessageComposer/CommandChip.mjs.map +1 -0
  521. package/dist/es/components/MessageComposer/CooldownTimer.mjs +15 -0
  522. package/dist/es/components/MessageComposer/CooldownTimer.mjs.map +1 -0
  523. package/dist/es/components/MessageComposer/EditedMessagePreview.mjs +17 -0
  524. package/dist/es/components/MessageComposer/EditedMessagePreview.mjs.map +1 -0
  525. package/dist/es/components/MessageComposer/LinkPreviewList.mjs +78 -0
  526. package/dist/es/components/MessageComposer/LinkPreviewList.mjs.map +1 -0
  527. package/dist/es/components/MessageComposer/MessageComposer.mjs +66 -0
  528. package/dist/es/components/MessageComposer/MessageComposer.mjs.map +1 -0
  529. package/dist/es/components/MessageComposer/MessageComposerActions.mjs +71 -0
  530. package/dist/es/components/MessageComposer/MessageComposerActions.mjs.map +1 -0
  531. package/dist/es/components/MessageComposer/MessageComposerUI.mjs +100 -0
  532. package/dist/es/components/MessageComposer/MessageComposerUI.mjs.map +1 -0
  533. package/dist/es/components/MessageComposer/QuotedMessageIndicator.mjs +9 -0
  534. package/dist/es/components/MessageComposer/QuotedMessageIndicator.mjs.map +1 -0
  535. package/dist/es/components/MessageComposer/QuotedMessagePreview.mjs +325 -0
  536. package/dist/es/components/MessageComposer/QuotedMessagePreview.mjs.map +1 -0
  537. package/dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs +25 -0
  538. package/dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs.map +1 -0
  539. package/dist/es/components/MessageComposer/SendButton.mjs +29 -0
  540. package/dist/es/components/MessageComposer/SendButton.mjs.map +1 -0
  541. package/dist/es/components/MessageComposer/SendToChannelCheckbox.mjs +51 -0
  542. package/dist/es/components/MessageComposer/SendToChannelCheckbox.mjs.map +1 -0
  543. package/dist/es/components/MessageComposer/StopAIGenerationButton.mjs +18 -0
  544. package/dist/es/components/MessageComposer/StopAIGenerationButton.mjs.map +1 -0
  545. package/dist/es/components/MessageComposer/WithDragAndDropUpload.mjs +109 -0
  546. package/dist/es/components/MessageComposer/WithDragAndDropUpload.mjs.map +1 -0
  547. package/dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs +24 -0
  548. package/dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs.map +1 -0
  549. package/dist/es/components/MessageComposer/hooks/useAttachmentsForPreview.mjs +21 -0
  550. package/dist/es/components/MessageComposer/hooks/useAttachmentsForPreview.mjs.map +1 -0
  551. package/dist/es/components/MessageComposer/hooks/useCanCreatePoll.mjs +15 -0
  552. package/dist/es/components/MessageComposer/hooks/useCanCreatePoll.mjs.map +1 -0
  553. package/dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs +19 -0
  554. package/dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs.map +1 -0
  555. package/dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs +35 -0
  556. package/dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs.map +1 -0
  557. package/dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs +12 -0
  558. package/dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs.map +1 -0
  559. package/dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs +27 -0
  560. package/dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs.map +1 -0
  561. package/dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs +27 -0
  562. package/dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs.map +1 -0
  563. package/dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs +56 -0
  564. package/dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs.map +1 -0
  565. package/dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs +13 -0
  566. package/dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs.map +1 -0
  567. package/dist/es/components/MessageComposer/hooks/useMessageContentIsEmpty.mjs +13 -0
  568. package/dist/es/components/MessageComposer/hooks/useMessageContentIsEmpty.mjs.map +1 -0
  569. package/dist/es/components/MessageComposer/hooks/usePasteHandler.mjs +34 -0
  570. package/dist/es/components/MessageComposer/hooks/usePasteHandler.mjs.map +1 -0
  571. package/dist/es/components/MessageComposer/hooks/useSubmitHandler.mjs +98 -0
  572. package/dist/es/components/MessageComposer/hooks/useSubmitHandler.mjs.map +1 -0
  573. package/dist/es/components/MessageComposer/hooks/useTextareaRef.mjs +14 -0
  574. package/dist/es/components/MessageComposer/hooks/useTextareaRef.mjs.map +1 -0
  575. package/dist/es/components/MessageComposer/hooks/utils.mjs +16 -0
  576. package/dist/es/components/MessageComposer/hooks/utils.mjs.map +1 -0
  577. package/dist/es/components/MessageComposer/icons.mjs +62 -0
  578. package/dist/es/components/MessageComposer/icons.mjs.map +1 -0
  579. package/dist/es/components/MessageComposer/preEditSnapshot.mjs +45 -0
  580. package/dist/es/components/MessageComposer/preEditSnapshot.mjs.map +1 -0
  581. package/dist/es/components/MessageList/FloatingDateSeparator.mjs +46 -0
  582. package/dist/es/components/MessageList/FloatingDateSeparator.mjs.map +1 -0
  583. package/dist/es/components/MessageList/GiphyPreviewMessage.mjs +15 -0
  584. package/dist/es/components/MessageList/GiphyPreviewMessage.mjs.map +1 -0
  585. package/dist/es/components/MessageList/MessageList.mjs +329 -0
  586. package/dist/es/components/MessageList/MessageList.mjs.map +1 -0
  587. package/dist/es/components/MessageList/MessageListMainPanel.mjs +12 -0
  588. package/dist/es/components/MessageList/MessageListMainPanel.mjs.map +1 -0
  589. package/dist/es/components/MessageList/NewMessageNotification.mjs +32 -0
  590. package/dist/es/components/MessageList/NewMessageNotification.mjs.map +1 -0
  591. package/dist/es/components/MessageList/ScrollToLatestMessageButton.mjs +78 -0
  592. package/dist/es/components/MessageList/ScrollToLatestMessageButton.mjs.map +1 -0
  593. package/dist/es/components/MessageList/UnreadMessagesNotification.mjs +33 -0
  594. package/dist/es/components/MessageList/UnreadMessagesNotification.mjs.map +1 -0
  595. package/dist/es/components/MessageList/UnreadMessagesSeparator.mjs +33 -0
  596. package/dist/es/components/MessageList/UnreadMessagesSeparator.mjs.map +1 -0
  597. package/dist/es/components/MessageList/VirtualizedMessageList.mjs +339 -0
  598. package/dist/es/components/MessageList/VirtualizedMessageList.mjs.map +1 -0
  599. package/dist/es/components/MessageList/VirtualizedMessageListComponents.mjs +93 -0
  600. package/dist/es/components/MessageList/VirtualizedMessageListComponents.mjs.map +1 -0
  601. package/dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs +39 -0
  602. package/dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs.map +1 -0
  603. package/dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs +78 -0
  604. package/dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs.map +1 -0
  605. package/dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs +58 -0
  606. package/dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs.map +1 -0
  607. package/dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs +141 -0
  608. package/dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs.map +1 -0
  609. package/dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs +275 -0
  610. package/dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs.map +1 -0
  611. package/dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs +81 -0
  612. package/dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs.map +1 -0
  613. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs +69 -0
  614. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs.map +1 -0
  615. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs +24 -0
  616. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs.map +1 -0
  617. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.mjs +18 -0
  618. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.mjs.map +1 -0
  619. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs +41 -0
  620. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs.map +1 -0
  621. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.mjs +41 -0
  622. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.mjs.map +1 -0
  623. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.mjs +33 -0
  624. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.mjs.map +1 -0
  625. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.mjs +27 -0
  626. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.mjs.map +1 -0
  627. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs +43 -0
  628. package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs.map +1 -0
  629. package/dist/es/components/MessageList/hooks/useLastDeliveredData.mjs +43 -0
  630. package/dist/es/components/MessageList/hooks/useLastDeliveredData.mjs.map +1 -0
  631. package/dist/es/components/MessageList/hooks/useLastOwnMessage.mjs +8 -0
  632. package/dist/es/components/MessageList/hooks/useLastOwnMessage.mjs.map +1 -0
  633. package/dist/es/components/MessageList/hooks/useLastReadData.mjs +28 -0
  634. package/dist/es/components/MessageList/hooks/useLastReadData.mjs.map +1 -0
  635. package/dist/es/components/MessageList/hooks/useMarkRead.mjs +75 -0
  636. package/dist/es/components/MessageList/hooks/useMarkRead.mjs.map +1 -0
  637. package/dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs +23 -0
  638. package/dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs.map +1 -0
  639. package/dist/es/components/MessageList/renderMessages.mjs +76 -0
  640. package/dist/es/components/MessageList/renderMessages.mjs.map +1 -0
  641. package/dist/es/components/MessageList/utils.mjs +155 -0
  642. package/dist/es/components/MessageList/utils.mjs.map +1 -0
  643. package/dist/es/components/Modal/GlobalModal.mjs +157 -0
  644. package/dist/es/components/Modal/GlobalModal.mjs.map +1 -0
  645. package/dist/es/components/Notifications/Notification.mjs +91 -0
  646. package/dist/es/components/Notifications/Notification.mjs.map +1 -0
  647. package/dist/es/components/Notifications/NotificationConfigurationContext.mjs +19 -0
  648. package/dist/es/components/Notifications/NotificationConfigurationContext.mjs.map +1 -0
  649. package/dist/es/components/Notifications/NotificationList.mjs +314 -0
  650. package/dist/es/components/Notifications/NotificationList.mjs.map +1 -0
  651. package/dist/es/components/Notifications/hooks/useNotificationApi.mjs +107 -0
  652. package/dist/es/components/Notifications/hooks/useNotificationApi.mjs.map +1 -0
  653. package/dist/es/components/Notifications/hooks/useNotificationTarget.mjs +25 -0
  654. package/dist/es/components/Notifications/hooks/useNotificationTarget.mjs.map +1 -0
  655. package/dist/es/components/Notifications/hooks/useNotifications.mjs +39 -0
  656. package/dist/es/components/Notifications/hooks/useNotifications.mjs.map +1 -0
  657. package/dist/es/components/Notifications/hooks/useSystemNotifications.mjs +22 -0
  658. package/dist/es/components/Notifications/hooks/useSystemNotifications.mjs.map +1 -0
  659. package/dist/es/components/Notifications/notificationTarget.mjs +38 -0
  660. package/dist/es/components/Notifications/notificationTarget.mjs.map +1 -0
  661. package/dist/es/components/Poll/Poll.mjs +18 -0
  662. package/dist/es/components/Poll/Poll.mjs.map +1 -0
  663. package/dist/es/components/Poll/PollActions/AddCommentPrompt.mjs +79 -0
  664. package/dist/es/components/Poll/PollActions/AddCommentPrompt.mjs.map +1 -0
  665. package/dist/es/components/Poll/PollActions/EndPollAlert.mjs +61 -0
  666. package/dist/es/components/Poll/PollActions/EndPollAlert.mjs.map +1 -0
  667. package/dist/es/components/Poll/PollActions/PollAction.mjs +27 -0
  668. package/dist/es/components/Poll/PollActions/PollAction.mjs.map +1 -0
  669. package/dist/es/components/Poll/PollActions/PollActions.mjs +92 -0
  670. package/dist/es/components/Poll/PollActions/PollActions.mjs.map +1 -0
  671. package/dist/es/components/Poll/PollActions/PollAnswerList.mjs +70 -0
  672. package/dist/es/components/Poll/PollActions/PollAnswerList.mjs.map +1 -0
  673. package/dist/es/components/Poll/PollActions/PollOptionsFullList.mjs +32 -0
  674. package/dist/es/components/Poll/PollActions/PollOptionsFullList.mjs.map +1 -0
  675. package/dist/es/components/Poll/PollActions/PollQuestion.mjs +20 -0
  676. package/dist/es/components/Poll/PollActions/PollQuestion.mjs.map +1 -0
  677. package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs +49 -0
  678. package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs.map +1 -0
  679. package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs +44 -0
  680. package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs.map +1 -0
  681. package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs +39 -0
  682. package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs.map +1 -0
  683. package/dist/es/components/Poll/PollActions/PollResults/PollResults.mjs +75 -0
  684. package/dist/es/components/Poll/PollActions/PollResults/PollResults.mjs.map +1 -0
  685. package/dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs +79 -0
  686. package/dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs.map +1 -0
  687. package/dist/es/components/Poll/PollContent.mjs +28 -0
  688. package/dist/es/components/Poll/PollContent.mjs.map +1 -0
  689. package/dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs +84 -0
  690. package/dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs.map +1 -0
  691. package/dist/es/components/Poll/PollCreationDialog/NameField.mjs +41 -0
  692. package/dist/es/components/Poll/PollCreationDialog/NameField.mjs.map +1 -0
  693. package/dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs +193 -0
  694. package/dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs.map +1 -0
  695. package/dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs +78 -0
  696. package/dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs.map +1 -0
  697. package/dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs +62 -0
  698. package/dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs.map +1 -0
  699. package/dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs +79 -0
  700. package/dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs.map +1 -0
  701. package/dist/es/components/Poll/PollHeader.mjs +46 -0
  702. package/dist/es/components/Poll/PollHeader.mjs.map +1 -0
  703. package/dist/es/components/Poll/PollOptionList.mjs +41 -0
  704. package/dist/es/components/Poll/PollOptionList.mjs.map +1 -0
  705. package/dist/es/components/Poll/PollOptionSelector.mjs +99 -0
  706. package/dist/es/components/Poll/PollOptionSelector.mjs.map +1 -0
  707. package/dist/es/components/Poll/PollVote.mjs +59 -0
  708. package/dist/es/components/Poll/PollVote.mjs.map +1 -0
  709. package/dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs +36 -0
  710. package/dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs.map +1 -0
  711. package/dist/es/components/Poll/hooks/usePollAnswerPagination.mjs +44 -0
  712. package/dist/es/components/Poll/hooks/usePollAnswerPagination.mjs.map +1 -0
  713. package/dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs +44 -0
  714. package/dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs.map +1 -0
  715. package/dist/es/components/Portal/Portal.mjs +17 -0
  716. package/dist/es/components/Portal/Portal.mjs.map +1 -0
  717. package/dist/es/components/ReactFileUtilities/UploadButton.mjs +54 -0
  718. package/dist/es/components/ReactFileUtilities/UploadButton.mjs.map +1 -0
  719. package/dist/es/{audioProcessing.766ca76c.mjs → components/ReactFileUtilities/utils.mjs} +2 -32
  720. package/dist/es/components/ReactFileUtilities/utils.mjs.map +1 -0
  721. package/dist/es/components/Reactions/MessageReactions.mjs +150 -0
  722. package/dist/es/components/Reactions/MessageReactions.mjs.map +1 -0
  723. package/dist/es/components/Reactions/MessageReactionsDetail.mjs +150 -0
  724. package/dist/es/components/Reactions/MessageReactionsDetail.mjs.map +1 -0
  725. package/dist/es/components/Reactions/ReactionSelector.mjs +140 -0
  726. package/dist/es/components/Reactions/ReactionSelector.mjs.map +1 -0
  727. package/dist/es/components/Reactions/ReactionSelectorWithButton.mjs +51 -0
  728. package/dist/es/components/Reactions/ReactionSelectorWithButton.mjs.map +1 -0
  729. package/dist/es/components/Reactions/SpriteImage.mjs +34 -0
  730. package/dist/es/components/Reactions/SpriteImage.mjs.map +1 -0
  731. package/dist/es/components/Reactions/hooks/useFetchReactions.mjs +61 -0
  732. package/dist/es/components/Reactions/hooks/useFetchReactions.mjs.map +1 -0
  733. package/dist/es/components/Reactions/hooks/useProcessReactions.mjs +82 -0
  734. package/dist/es/components/Reactions/hooks/useProcessReactions.mjs.map +1 -0
  735. package/dist/es/components/Reactions/reactionOptions.mjs +79 -0
  736. package/dist/es/components/Reactions/reactionOptions.mjs.map +1 -0
  737. package/dist/es/components/Reactions/utils/utils.mjs +13 -0
  738. package/dist/es/components/Reactions/utils/utils.mjs.map +1 -0
  739. package/dist/es/components/SafeAnchor/SafeAnchor.mjs +21 -0
  740. package/dist/es/components/SafeAnchor/SafeAnchor.mjs.map +1 -0
  741. package/dist/es/components/Search/Search.mjs +40 -0
  742. package/dist/es/components/Search/Search.mjs.map +1 -0
  743. package/dist/es/components/Search/SearchBar/SearchBar.mjs +113 -0
  744. package/dist/es/components/Search/SearchBar/SearchBar.mjs.map +1 -0
  745. package/dist/es/components/Search/SearchContext.mjs +18 -0
  746. package/dist/es/components/Search/SearchContext.mjs.map +1 -0
  747. package/dist/es/components/Search/SearchResults/SearchResultItem.mjs +113 -0
  748. package/dist/es/components/Search/SearchResults/SearchResultItem.mjs.map +1 -0
  749. package/dist/es/components/Search/SearchResults/SearchResults.mjs +37 -0
  750. package/dist/es/components/Search/SearchResults/SearchResults.mjs.map +1 -0
  751. package/dist/es/components/Search/SearchResults/SearchResultsHeader.mjs +54 -0
  752. package/dist/es/components/Search/SearchResults/SearchResultsHeader.mjs.map +1 -0
  753. package/dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs +15 -0
  754. package/dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs.map +1 -0
  755. package/dist/es/components/Search/SearchResults/SearchSourceResultList.mjs +31 -0
  756. package/dist/es/components/Search/SearchResults/SearchSourceResultList.mjs.map +1 -0
  757. package/dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs +31 -0
  758. package/dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs.map +1 -0
  759. package/dist/es/components/Search/SearchResults/SearchSourceResults.mjs +30 -0
  760. package/dist/es/components/Search/SearchResults/SearchSourceResults.mjs.map +1 -0
  761. package/dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs +15 -0
  762. package/dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs.map +1 -0
  763. package/dist/es/components/Search/SearchResults/SearchSourceResultsHeader.mjs +6 -0
  764. package/dist/es/components/Search/SearchResults/SearchSourceResultsHeader.mjs.map +1 -0
  765. package/dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs +18 -0
  766. package/dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs.map +1 -0
  767. package/dist/es/components/Search/SearchSourceResultsContext.mjs +18 -0
  768. package/dist/es/components/Search/SearchSourceResultsContext.mjs.map +1 -0
  769. package/dist/es/components/Search/hooks/useAnnounceSearchResultCount.mjs +57 -0
  770. package/dist/es/components/Search/hooks/useAnnounceSearchResultCount.mjs.map +1 -0
  771. package/dist/es/components/Search/hooks/useSearchFocusedMessage.mjs +13 -0
  772. package/dist/es/components/Search/hooks/useSearchFocusedMessage.mjs.map +1 -0
  773. package/dist/es/components/Search/hooks/useSearchQueriesInProgress.mjs +24 -0
  774. package/dist/es/components/Search/hooks/useSearchQueriesInProgress.mjs.map +1 -0
  775. package/dist/es/components/Search/hooks/useSearchResultsKeyboardNavigation.mjs +28 -0
  776. package/dist/es/components/Search/hooks/useSearchResultsKeyboardNavigation.mjs.map +1 -0
  777. package/dist/es/components/SkipNavigation/SkipNavigation.mjs +64 -0
  778. package/dist/es/components/SkipNavigation/SkipNavigation.mjs.map +1 -0
  779. package/dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs +55 -0
  780. package/dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs.map +1 -0
  781. package/dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs +116 -0
  782. package/dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs.map +1 -0
  783. package/dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs +26 -0
  784. package/dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs.map +1 -0
  785. package/dist/es/components/TextareaComposer/SuggestionList/EmoticonItem.mjs +26 -0
  786. package/dist/es/components/TextareaComposer/SuggestionList/EmoticonItem.mjs.map +1 -0
  787. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs +32 -0
  788. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs.map +1 -0
  789. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.mjs +39 -0
  790. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.mjs.map +1 -0
  791. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.mjs +7 -0
  792. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.mjs.map +1 -0
  793. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.mjs +34 -0
  794. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.mjs.map +1 -0
  795. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.mjs +6 -0
  796. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.mjs.map +1 -0
  797. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs +31 -0
  798. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs.map +1 -0
  799. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserItem.mjs +50 -0
  800. package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserItem.mjs.map +1 -0
  801. package/dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs +198 -0
  802. package/dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs.map +1 -0
  803. package/dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs +46 -0
  804. package/dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs.map +1 -0
  805. package/dist/es/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.mjs +30 -0
  806. package/dist/es/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.mjs.map +1 -0
  807. package/dist/es/components/TextareaComposer/TextareaComposer.mjs +288 -0
  808. package/dist/es/components/TextareaComposer/TextareaComposer.mjs.map +1 -0
  809. package/dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs +30 -0
  810. package/dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs.map +1 -0
  811. package/dist/es/components/Thread/LegacyThreadContext.mjs +8 -0
  812. package/dist/es/components/Thread/LegacyThreadContext.mjs.map +1 -0
  813. package/dist/es/components/Thread/Thread.mjs +106 -0
  814. package/dist/es/components/Thread/Thread.mjs.map +1 -0
  815. package/dist/es/components/Thread/ThreadHead.mjs +26 -0
  816. package/dist/es/components/Thread/ThreadHead.mjs.map +1 -0
  817. package/dist/es/components/Thread/ThreadHeader.mjs +88 -0
  818. package/dist/es/components/Thread/ThreadHeader.mjs.map +1 -0
  819. package/dist/es/components/Thread/ThreadStart.mjs +24 -0
  820. package/dist/es/components/Thread/ThreadStart.mjs.map +1 -0
  821. package/dist/es/components/Threads/ThreadContext.mjs +17 -0
  822. package/dist/es/components/Threads/ThreadContext.mjs.map +1 -0
  823. package/dist/es/components/Threads/ThreadList/ThreadList.mjs +120 -0
  824. package/dist/es/components/Threads/ThreadList/ThreadList.mjs.map +1 -0
  825. package/dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs +17 -0
  826. package/dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs.map +1 -0
  827. package/dist/es/components/Threads/ThreadList/ThreadListHeader.mjs +22 -0
  828. package/dist/es/components/Threads/ThreadList/ThreadListHeader.mjs.map +1 -0
  829. package/dist/es/components/Threads/ThreadList/ThreadListItem.mjs +18 -0
  830. package/dist/es/components/Threads/ThreadList/ThreadListItem.mjs.map +1 -0
  831. package/dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs +160 -0
  832. package/dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs.map +1 -0
  833. package/dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs +22 -0
  834. package/dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs.map +1 -0
  835. package/dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs +30 -0
  836. package/dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs.map +1 -0
  837. package/dist/es/components/Threads/ThreadList/utils.a11y.mjs +86 -0
  838. package/dist/es/components/Threads/ThreadList/utils.a11y.mjs.map +1 -0
  839. package/dist/es/components/Threads/UnreadCountBadge.mjs +16 -0
  840. package/dist/es/components/Threads/UnreadCountBadge.mjs.map +1 -0
  841. package/dist/es/components/Tooltip/Tooltip.mjs +39 -0
  842. package/dist/es/components/Tooltip/Tooltip.mjs.map +1 -0
  843. package/dist/es/components/Tooltip/hooks/useEnterLeaveHandlers.mjs +20 -0
  844. package/dist/es/components/Tooltip/hooks/useEnterLeaveHandlers.mjs.map +1 -0
  845. package/dist/es/components/TypingIndicator/TypingIndicator.mjs +79 -0
  846. package/dist/es/components/TypingIndicator/TypingIndicator.mjs.map +1 -0
  847. package/dist/es/components/TypingIndicator/TypingIndicatorDots.mjs +33 -0
  848. package/dist/es/components/TypingIndicator/TypingIndicatorDots.mjs.map +1 -0
  849. package/dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs +44 -0
  850. package/dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs.map +1 -0
  851. package/dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs +53 -0
  852. package/dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs.map +1 -0
  853. package/dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs +15 -0
  854. package/dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs.map +1 -0
  855. package/dist/es/components/UtilityComponents/ErrorBoundary.mjs +22 -0
  856. package/dist/es/components/UtilityComponents/ErrorBoundary.mjs.map +1 -0
  857. package/dist/es/components/UtilityComponents/NullComponent.mjs +6 -0
  858. package/dist/es/components/UtilityComponents/NullComponent.mjs.map +1 -0
  859. package/dist/es/components/UtilityComponents/hooks/useMutationObserver.mjs +45 -0
  860. package/dist/es/components/UtilityComponents/hooks/useMutationObserver.mjs.map +1 -0
  861. package/dist/es/components/UtilityComponents/useStableId.mjs +20 -0
  862. package/dist/es/components/UtilityComponents/useStableId.mjs.map +1 -0
  863. package/dist/es/{ReactPlayerWrapper.d2ae5941.mjs → components/VideoPlayer/ReactPlayerWrapper.mjs} +3 -3
  864. package/dist/es/components/VideoPlayer/ReactPlayerWrapper.mjs.map +1 -0
  865. package/dist/es/components/VideoPlayer/VideoPlayer.mjs +30 -0
  866. package/dist/es/components/VideoPlayer/VideoPlayer.mjs.map +1 -0
  867. package/dist/es/components/VideoPlayer/VideoThumbnail.mjs +35 -0
  868. package/dist/es/components/VideoPlayer/VideoThumbnail.mjs.map +1 -0
  869. package/dist/es/components/VisuallyHidden/VisuallyHidden.mjs +29 -0
  870. package/dist/es/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -0
  871. package/dist/es/components/Window/Window.mjs +21 -0
  872. package/dist/es/components/Window/Window.mjs.map +1 -0
  873. package/dist/es/constants/messageTypes.mjs +9 -0
  874. package/dist/es/constants/messageTypes.mjs.map +1 -0
  875. package/dist/es/context/AttachmentSelectorContext.mjs +13 -0
  876. package/dist/es/context/AttachmentSelectorContext.mjs.map +1 -0
  877. package/dist/es/context/ChannelActionContext.mjs +20 -0
  878. package/dist/es/context/ChannelActionContext.mjs.map +1 -0
  879. package/dist/es/context/ChannelListContext.mjs +20 -0
  880. package/dist/es/context/ChannelListContext.mjs.map +1 -0
  881. package/dist/es/context/ChannelStateContext.mjs +24 -0
  882. package/dist/es/context/ChannelStateContext.mjs.map +1 -0
  883. package/dist/es/context/ChatContext.mjs +20 -0
  884. package/dist/es/context/ChatContext.mjs.map +1 -0
  885. package/dist/es/context/ComponentContext.mjs +13 -0
  886. package/dist/es/context/ComponentContext.mjs.map +1 -0
  887. package/dist/es/context/DialogManagerContext.mjs +119 -0
  888. package/dist/es/context/DialogManagerContext.mjs.map +1 -0
  889. package/dist/es/context/MessageBounceContext.mjs +53 -0
  890. package/dist/es/context/MessageBounceContext.mjs.map +1 -0
  891. package/dist/es/context/MessageComposerContext.mjs +17 -0
  892. package/dist/es/context/MessageComposerContext.mjs.map +1 -0
  893. package/dist/es/context/MessageContext.mjs +17 -0
  894. package/dist/es/context/MessageContext.mjs.map +1 -0
  895. package/dist/es/context/MessageListContext.mjs +23 -0
  896. package/dist/es/context/MessageListContext.mjs.map +1 -0
  897. package/dist/es/context/MessageTranslationViewContext.mjs +76 -0
  898. package/dist/es/context/MessageTranslationViewContext.mjs.map +1 -0
  899. package/dist/es/context/ModalContext.mjs +20 -0
  900. package/dist/es/context/ModalContext.mjs.map +1 -0
  901. package/dist/es/context/PollContext.mjs +15 -0
  902. package/dist/es/context/PollContext.mjs.map +1 -0
  903. package/dist/es/context/TranslationContext.mjs +30 -0
  904. package/dist/es/context/TranslationContext.mjs.map +1 -0
  905. package/dist/es/context/TypingContext.mjs +20 -0
  906. package/dist/es/context/TypingContext.mjs.map +1 -0
  907. package/dist/es/context/VirtualizedMessageListContext.mjs +16 -0
  908. package/dist/es/context/VirtualizedMessageListContext.mjs.map +1 -0
  909. package/dist/es/context/WithComponents.mjs +23 -0
  910. package/dist/es/context/WithComponents.mjs.map +1 -0
  911. package/dist/es/context/useComponentContextIcons.mjs +31 -0
  912. package/dist/es/context/useComponentContextIcons.mjs.map +1 -0
  913. package/dist/es/emojis.mjs +2 -229
  914. package/dist/es/i18n/Streami18n.mjs +545 -0
  915. package/dist/es/i18n/Streami18n.mjs.map +1 -0
  916. package/dist/es/i18n/TranslationBuilder/TranslationBuilder.mjs +86 -0
  917. package/dist/es/i18n/TranslationBuilder/TranslationBuilder.mjs.map +1 -0
  918. package/dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs +51 -0
  919. package/dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs.map +1 -0
  920. package/dist/es/i18n/TranslationBuilder/notifications/translators.mjs +47 -0
  921. package/dist/es/i18n/TranslationBuilder/notifications/translators.mjs.map +1 -0
  922. package/dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs +24 -0
  923. package/dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs.map +1 -0
  924. package/dist/es/i18n/de.mjs +782 -0
  925. package/dist/es/i18n/de.mjs.map +1 -0
  926. package/dist/es/i18n/en.mjs +779 -0
  927. package/dist/es/i18n/en.mjs.map +1 -0
  928. package/dist/es/i18n/es.mjs +821 -0
  929. package/dist/es/i18n/es.mjs.map +1 -0
  930. package/dist/es/i18n/fr.mjs +822 -0
  931. package/dist/es/i18n/fr.mjs.map +1 -0
  932. package/dist/es/i18n/hi.mjs +786 -0
  933. package/dist/es/i18n/hi.mjs.map +1 -0
  934. package/dist/es/i18n/it.mjs +821 -0
  935. package/dist/es/i18n/it.mjs.map +1 -0
  936. package/dist/es/i18n/ja.mjs +760 -0
  937. package/dist/es/i18n/ja.mjs.map +1 -0
  938. package/dist/es/i18n/ko.mjs +760 -0
  939. package/dist/es/i18n/ko.mjs.map +1 -0
  940. package/dist/es/i18n/nl.mjs +786 -0
  941. package/dist/es/i18n/nl.mjs.map +1 -0
  942. package/dist/es/i18n/pt.mjs +819 -0
  943. package/dist/es/i18n/pt.mjs.map +1 -0
  944. package/dist/es/i18n/ru.mjs +868 -0
  945. package/dist/es/i18n/ru.mjs.map +1 -0
  946. package/dist/es/i18n/tr.mjs +781 -0
  947. package/dist/es/i18n/tr.mjs.map +1 -0
  948. package/dist/es/i18n/utils.mjs +132 -0
  949. package/dist/es/i18n/utils.mjs.map +1 -0
  950. package/dist/es/index.mjs +323 -20861
  951. package/dist/es/mp3-encoder.mjs +1 -1
  952. package/dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs +40 -0
  953. package/dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs.map +1 -0
  954. package/dist/es/plugins/ChannelDetail/ChannelDetail.mjs +105 -0
  955. package/dist/es/plugins/ChannelDetail/ChannelDetail.mjs.map +1 -0
  956. package/dist/es/plugins/ChannelDetail/ChannelDetailContext.mjs +20 -0
  957. package/dist/es/plugins/ChannelDetail/ChannelDetailContext.mjs.map +1 -0
  958. package/dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs +14 -0
  959. package/dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs.map +1 -0
  960. package/dist/es/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.mjs +20 -0
  961. package/dist/es/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.mjs.map +1 -0
  962. package/dist/es/plugins/ChannelDetail/ChannelDetailNavButton.mjs +26 -0
  963. package/dist/es/plugins/ChannelDetail/ChannelDetailNavButton.mjs.map +1 -0
  964. package/dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs +35 -0
  965. package/dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs.map +1 -0
  966. package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigator.mjs +164 -0
  967. package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigator.mjs.map +1 -0
  968. package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs +50 -0
  969. package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs.map +1 -0
  970. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs +25 -0
  971. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs.map +1 -0
  972. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs +130 -0
  973. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs.map +1 -0
  974. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs +63 -0
  975. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs.map +1 -0
  976. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs +47 -0
  977. package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs.map +1 -0
  978. package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.mjs +568 -0
  979. package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.mjs.map +1 -0
  980. package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs +324 -0
  981. package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs.map +1 -0
  982. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs +25 -0
  983. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs.map +1 -0
  984. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs +215 -0
  985. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs.map +1 -0
  986. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs +37 -0
  987. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs.map +1 -0
  988. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs +47 -0
  989. package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs.map +1 -0
  990. package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.mjs +451 -0
  991. package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.mjs.map +1 -0
  992. package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs +76 -0
  993. package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs.map +1 -0
  994. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs +182 -0
  995. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs.map +1 -0
  996. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs +110 -0
  997. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs.map +1 -0
  998. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.mjs +120 -0
  999. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.mjs.map +1 -0
  1000. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs +91 -0
  1001. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs.map +1 -0
  1002. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs +11 -0
  1003. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs.map +1 -0
  1004. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.mjs +22 -0
  1005. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.mjs.map +1 -0
  1006. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.mjs +23 -0
  1007. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.mjs.map +1 -0
  1008. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.mjs +52 -0
  1009. package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.mjs.map +1 -0
  1010. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs +25 -0
  1011. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs.map +1 -0
  1012. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs +140 -0
  1013. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs.map +1 -0
  1014. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs +24 -0
  1015. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs.map +1 -0
  1016. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs +68 -0
  1017. package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs.map +1 -0
  1018. package/dist/es/plugins/ChannelDetail/VirtualizedList/VirtualizedList.mjs +42 -0
  1019. package/dist/es/plugins/ChannelDetail/VirtualizedList/VirtualizedList.mjs.map +1 -0
  1020. package/dist/es/plugins/Emojis/EmojiPicker.mjs +95 -0
  1021. package/dist/es/plugins/Emojis/EmojiPicker.mjs.map +1 -0
  1022. package/dist/es/plugins/Emojis/Picker.mjs +23 -0
  1023. package/dist/es/plugins/Emojis/Picker.mjs.map +1 -0
  1024. package/dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs +126 -0
  1025. package/dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs.map +1 -0
  1026. package/dist/es/store/hooks/useStateStore.mjs +32 -0
  1027. package/dist/es/store/hooks/useStateStore.mjs.map +1 -0
  1028. package/dist/es/utils/findReverse.mjs +8 -0
  1029. package/dist/es/utils/findReverse.mjs.map +1 -0
  1030. package/dist/es/utils/getChannel.mjs +38 -0
  1031. package/dist/es/utils/getChannel.mjs.map +1 -0
  1032. package/dist/es/utils/getChannelConfig.mjs +11 -0
  1033. package/dist/es/utils/getChannelConfig.mjs.map +1 -0
  1034. package/dist/es/utils/getTextareaCaretRect.mjs +45 -0
  1035. package/dist/es/utils/getTextareaCaretRect.mjs.map +1 -0
  1036. package/dist/es/utils/getWholeChar.mjs +20 -0
  1037. package/dist/es/utils/getWholeChar.mjs.map +1 -0
  1038. package/dist/es/utils/isDmChannel.mjs +9 -0
  1039. package/dist/es/utils/isDmChannel.mjs.map +1 -0
  1040. package/dist/es/utils/mergeDeep.mjs +8 -0
  1041. package/dist/es/utils/mergeDeep.mjs.map +1 -0
  1042. package/dist/es/utils/useStableCallback.mjs +34 -0
  1043. package/dist/es/utils/useStableCallback.mjs.map +1 -0
  1044. package/dist/types/components/Attachment/AttachmentContainer.d.ts.map +1 -1
  1045. package/dist/types/components/Attachment/Audio.d.ts.map +1 -1
  1046. package/dist/types/components/Attachment/FileAttachment.d.ts.map +1 -1
  1047. package/dist/types/components/Attachment/VideoAttachment.d.ts.map +1 -1
  1048. package/dist/types/components/Attachment/VoiceRecording.d.ts.map +1 -1
  1049. package/dist/types/components/Attachment/components/AttachmentUploadProgressIndicator.d.ts +32 -0
  1050. package/dist/types/components/Attachment/components/AttachmentUploadProgressIndicator.d.ts.map +1 -0
  1051. package/dist/types/components/Attachment/components/index.d.ts +1 -0
  1052. package/dist/types/components/Attachment/components/index.d.ts.map +1 -1
  1053. package/dist/types/components/Attachment/hooks/useAttachmentUploadState.d.ts +89 -0
  1054. package/dist/types/components/Attachment/hooks/useAttachmentUploadState.d.ts.map +1 -0
  1055. package/dist/types/components/Attachment/hooks/useLocalVideoDimensions.d.ts +16 -0
  1056. package/dist/types/components/Attachment/hooks/useLocalVideoDimensions.d.ts.map +1 -0
  1057. package/dist/types/components/Attachment/index.d.ts +1 -0
  1058. package/dist/types/components/Attachment/index.d.ts.map +1 -1
  1059. package/dist/types/components/Channel/Channel.d.ts.map +1 -1
  1060. package/dist/types/components/Channel/utils.d.ts +25 -3
  1061. package/dist/types/components/Channel/utils.d.ts.map +1 -1
  1062. package/dist/types/components/ChannelListItem/ChannelListItem.d.ts.map +1 -1
  1063. package/dist/types/components/Dialog/service/DialogAnchor.d.ts +8 -1
  1064. package/dist/types/components/Dialog/service/DialogAnchor.d.ts.map +1 -1
  1065. package/dist/types/components/Loading/AttachmentUploadedSizeIndicator.d.ts +20 -0
  1066. package/dist/types/components/Loading/AttachmentUploadedSizeIndicator.d.ts.map +1 -0
  1067. package/dist/types/components/Loading/UploadProgressIndicator.d.ts +7 -1
  1068. package/dist/types/components/Loading/UploadProgressIndicator.d.ts.map +1 -1
  1069. package/dist/types/components/Loading/index.d.ts +1 -0
  1070. package/dist/types/components/Loading/index.d.ts.map +1 -1
  1071. package/dist/types/components/Message/MessageStatus.d.ts.map +1 -1
  1072. package/dist/types/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.d.ts.map +1 -1
  1073. package/dist/types/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.d.ts.map +1 -1
  1074. package/dist/types/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.d.ts.map +1 -1
  1075. package/dist/types/components/MessageComposer/RemoveAttachmentPreviewButton.d.ts.map +1 -1
  1076. package/dist/types/components/MessageComposer/hooks/useMessageComposerHasSendableData.d.ts.map +1 -1
  1077. package/dist/types/components/MessageComposer/hooks/useSubmitHandler.d.ts.map +1 -1
  1078. package/dist/types/components/MessageComposer/hooks/utils.d.ts.map +1 -1
  1079. package/dist/types/components/TextareaComposer/TextareaComposer.d.ts.map +1 -1
  1080. package/dist/types/components/VideoPlayer/ReactPlayerWrapper.d.ts +1 -1
  1081. package/dist/types/components/VideoPlayer/ReactPlayerWrapper.d.ts.map +1 -1
  1082. package/dist/types/components/VideoPlayer/VideoPlayer.d.ts +7 -1
  1083. package/dist/types/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
  1084. package/dist/types/context/ComponentContext.d.ts +3 -0
  1085. package/dist/types/context/ComponentContext.d.ts.map +1 -1
  1086. package/dist/types/i18n/Streami18n.d.ts +1 -0
  1087. package/dist/types/i18n/Streami18n.d.ts.map +1 -1
  1088. package/package.json +5 -9
  1089. package/dist/cjs/NotificationList.6abbee1c.js.map +0 -1
  1090. package/dist/cjs/useInertWhenHidden.22151beb.js.map +0 -1
  1091. package/dist/es/NotificationList.db01a56d.mjs +0 -7703
  1092. package/dist/es/NotificationList.db01a56d.mjs.map +0 -1
  1093. package/dist/es/ReactPlayerWrapper.d2ae5941.mjs.map +0 -1
  1094. package/dist/es/audioProcessing.766ca76c.mjs.map +0 -1
  1095. package/dist/es/channel-detail.mjs.map +0 -1
  1096. package/dist/es/emojis.mjs.map +0 -1
  1097. package/dist/es/index.mjs.map +0 -1
  1098. package/dist/es/useChannelHeaderOnlineStatus.a9357343.mjs +0 -771
  1099. package/dist/es/useChannelHeaderOnlineStatus.a9357343.mjs.map +0 -1
  1100. package/dist/es/useInertWhenHidden.3d5fbdba.mjs +0 -5765
  1101. package/dist/es/useInertWhenHidden.3d5fbdba.mjs.map +0 -1
  1102. package/dist/types/components/MessageComposer/AttachmentPreviewList/AttachmentUploadedSizeIndicator.d.ts +0 -14
  1103. package/dist/types/components/MessageComposer/AttachmentPreviewList/AttachmentUploadedSizeIndicator.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Channel.mjs","names":[],"sources":["../../../../src/components/Channel/Channel.tsx"],"sourcesContent":["import type { ComponentProps, PropsWithChildren } from 'react';\nimport React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport clsx from 'clsx';\nimport debounce from 'lodash.debounce';\nimport throttle from 'lodash.throttle';\nimport type {\n ChannelAPIResponse,\n ChannelMemberResponse,\n ChannelQueryOptions,\n ChannelState,\n DeleteMessageOptions,\n Event,\n EventAPIResponse,\n GiphyVersions,\n LocalMessage,\n Message,\n MessageResponse,\n SendMessageAPIResponse,\n SendMessageOptions,\n Channel as StreamChannel,\n StreamChat,\n UpdateMessageOptions,\n} from 'stream-chat';\nimport { localMessageToNewMessagePayload, withoutConcurrency } from 'stream-chat';\n\nimport { initialState, makeChannelReducer } from './channelState';\nimport { useCreateChannelStateContext } from './hooks/useCreateChannelStateContext';\nimport { useCreateTypingContext } from './hooks/useCreateTypingContext';\nimport { useEditMessageHandler } from './hooks/useEditMessageHandler';\nimport { useIsMounted } from './hooks/useIsMounted';\nimport type { OnMentionAction } from './hooks/useMentionsHandlers';\nimport { useMentionsHandlers } from './hooks/useMentionsHandlers';\n\nimport {\n LoadingErrorIndicator as DefaultLoadingErrorIndicator,\n LoadingChannel as DefaultLoadingIndicator,\n} from '../Loading';\nimport { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator';\nimport { useNotificationApi } from '../Notifications';\n\nimport type { ChannelActionContextValue, MarkReadWrapperOptions } from '../../context';\nimport {\n ChannelActionProvider,\n ChannelStateProvider,\n TypingProvider,\n useChatContext,\n useComponentContext,\n useTranslationContext,\n} from '../../context';\n\nimport { CHANNEL_CONTAINER_ID } from './constants';\nimport {\n DEFAULT_HIGHLIGHT_DURATION,\n DEFAULT_JUMP_TO_PAGE_SIZE,\n DEFAULT_NEXT_CHANNEL_PAGE_SIZE,\n DEFAULT_THREAD_PAGE_SIZE,\n} from '../../constants/limits';\n\nimport { hasMoreMessagesProbably } from '../MessageList';\nimport {\n getChatContainerClass,\n useChannelContainerClasses,\n useImageFlagEmojisOnWindowsClass,\n} from './hooks/useChannelContainerClasses';\nimport {\n adaptMessageSendErrorToErrorFromResponse,\n findInMsgSetByDate,\n findInMsgSetById,\n settlePendingAttachmentUploads,\n} from './utils';\nimport { useThreadContext } from '../Threads';\nimport { getChannel } from '../../utils';\nimport { getChannelConfig } from '../../utils/getChannelConfig';\nimport type {\n ChannelUnreadUiState,\n ImageAttachmentSizeHandler,\n VideoAttachmentSizeHandler,\n} from '../../types/types';\nimport {\n getImageAttachmentConfiguration,\n getVideoAttachmentConfiguration,\n} from '../Attachment/attachment-sizing';\nimport { useSearchFocusedMessage } from '../Search/hooks';\nimport { WithAudioPlayback } from '../AudioPlayback';\n\nexport type ChannelProps = {\n /** Custom handler function that runs when the active channel has unread messages and the app is running on a separate browser tab */\n activeUnreadHandler?: (unread: number, documentTitle: string) => void;\n /** Allows multiple audio players to play the audio at the same time. Disabled by default. */\n allowConcurrentAudioPlayback?: boolean;\n /** The connected and active channel */\n channel?: StreamChannel;\n /**\n * Optional configuration parameters used for the initial channel query.\n * Applied only if the value of channel.initialized is false.\n * If the channel instance has already been initialized (channel has been queried),\n * then the channel query will be skipped and channelQueryOptions will not be applied.\n */\n channelQueryOptions?: ChannelQueryOptions;\n /** Custom action handler to override the default `client.deleteMessage(message.id)` function */\n doDeleteMessageRequest?: (\n message: LocalMessage,\n options?: DeleteMessageOptions,\n ) => Promise<MessageResponse>;\n /** Custom action handler to override the default `channel.markRead` request function (advanced usage only) */\n doMarkReadRequest?: (\n channel: StreamChannel,\n setChannelUnreadUiState?: (state: ChannelUnreadUiState) => void,\n ) => Promise<EventAPIResponse> | void;\n /** Custom action handler to override the default `channel.sendMessage` request function (advanced usage only) */\n doSendMessageRequest?: (\n channel: StreamChannel,\n message: Message,\n options?: SendMessageOptions,\n ) => ReturnType<StreamChannel['sendMessage']> | void;\n /** Custom action handler to override the default `client.updateMessage` request function (advanced usage only) */\n doUpdateMessageRequest?: (\n cid: string,\n updatedMessage: LocalMessage | MessageResponse,\n options?: UpdateMessageOptions,\n ) => ReturnType<StreamChat['updateMessage']>;\n /** Custom UI component to be shown if no active channel is set, defaults to the message empty state indicator. Pass `null` to suppress rendering. */\n EmptyPlaceholder?: React.ReactElement | null;\n /** The giphy version to render - check the keys of the [Image Object](https://developers.giphy.com/docs/api/schema#image-object) for possible values. Uses 'fixed_height' by default */\n giphyVersion?: GiphyVersions;\n /** A custom function to provide size configuration for image attachments */\n imageAttachmentSizeHandler?: ImageAttachmentSizeHandler;\n /**\n * Allows to prevent triggering the channel.watch() call when mounting the component.\n * That means that no channel data from the back-end will be received neither channel WS events will be delivered to the client.\n * Preventing to initialize the channel on mount allows us to postpone the channel creation to a later point in time.\n */\n initializeOnMount?: boolean;\n /** Configuration parameter to mark the active channel as read when mounted (opened). By default, the channel is marked read on mount. */\n markReadOnMount?: boolean;\n /** Custom action handler function to run on click of an @mention in a message */\n onMentionsClick?: OnMentionAction;\n /** Custom action handler function to run on hover of an @mention in a message */\n onMentionsHover?: OnMentionAction;\n /** You can turn on/off thumbnail generation for video attachments */\n shouldGenerateVideoThumbnail?: boolean;\n /** If true, skips the message data string comparison used to memoize the current channel messages (helpful for channels with 1000s of messages) */\n skipMessageDataMemoization?: boolean;\n /** A custom function to provide size configuration for video attachments */\n videoAttachmentSizeHandler?: VideoAttachmentSizeHandler;\n};\n\nconst ChannelContainer = ({\n children,\n className: additionalClassName,\n ...props\n}: PropsWithChildren<ComponentProps<'div'>>) => {\n const { customClasses, theme } = useChatContext('Channel');\n const { channelClass, chatClass } = useChannelContainerClasses({\n customClasses,\n });\n const className = clsx(chatClass, theme, channelClass, additionalClassName);\n return (\n <div id={CHANNEL_CONTAINER_ID} {...props} className={className}>\n {children}\n </div>\n );\n};\n\nconst UnMemoizedChannel = (props: PropsWithChildren<ChannelProps>) => {\n const { channel: propsChannel, EmptyPlaceholder } = props;\n const {\n EmptyStateIndicator = DefaultEmptyStateIndicator,\n LoadingErrorIndicator,\n LoadingIndicator = DefaultLoadingIndicator,\n } = useComponentContext('Channel');\n\n const { channel: contextChannel, channelsQueryState } = useChatContext('Channel');\n\n const channel = propsChannel || contextChannel;\n const emptyPlaceholder =\n 'EmptyPlaceholder' in props\n ? EmptyPlaceholder\n : EmptyStateIndicator && <EmptyStateIndicator listType='message' />;\n\n if (channelsQueryState.queryInProgress === 'reload' && LoadingIndicator) {\n return (\n <ChannelContainer>\n <LoadingIndicator />\n </ChannelContainer>\n );\n }\n\n if (channelsQueryState.error && !channel && LoadingErrorIndicator) {\n return (\n <ChannelContainer>\n <LoadingErrorIndicator error={channelsQueryState.error} />\n </ChannelContainer>\n );\n }\n\n if (channelsQueryState.error && !channel) {\n return <ChannelContainer />;\n }\n\n if (!channel?.cid) {\n return <ChannelContainer>{emptyPlaceholder}</ChannelContainer>;\n }\n\n return <ChannelInner {...props} channel={channel} key={channel.cid} />;\n};\n\nconst ChannelInner = (\n props: PropsWithChildren<\n ChannelProps & {\n channel: StreamChannel;\n key: string;\n }\n >,\n) => {\n const {\n activeUnreadHandler,\n allowConcurrentAudioPlayback,\n channel,\n channelQueryOptions,\n children,\n doDeleteMessageRequest,\n doMarkReadRequest,\n doSendMessageRequest,\n doUpdateMessageRequest,\n initializeOnMount = true,\n markReadOnMount = true,\n onMentionsClick,\n onMentionsHover,\n skipMessageDataMemoization,\n } = props;\n const {\n LoadingErrorIndicator = DefaultLoadingErrorIndicator,\n LoadingIndicator = DefaultLoadingIndicator,\n } = useComponentContext();\n\n const { client, customClasses, latestMessageDatesByChannels, mutes, searchController } =\n useChatContext();\n const { addNotification } = useNotificationApi();\n const { t } = useTranslationContext('Channel');\n const chatContainerClass = getChatContainerClass(customClasses?.chatContainer);\n const windowsEmojiClass = useImageFlagEmojisOnWindowsClass();\n const thread = useThreadContext();\n\n const [channelConfig, setChannelConfig] = useState(() => getChannelConfig(channel));\n\n const [channelUnreadUiState, _setChannelUnreadUiState] =\n useState<ChannelUnreadUiState>();\n\n const channelReducer = useMemo(() => makeChannelReducer(), []);\n\n const [state, dispatch] = useReducer(\n channelReducer,\n // channel.initialized === false if client.channel().query() was not called, e.g. ChannelList is not used\n // => Channel will call channel.watch() in useLayoutEffect => state.loading is used to signal the watch() call state\n {\n ...initialState,\n hasMore: channel.state.messagePagination.hasPrev,\n loading: !channel.initialized,\n messages: channel.state.messages,\n },\n );\n const jumpToMessageFromSearch = useSearchFocusedMessage();\n const isMounted = useIsMounted();\n\n const originalTitle = useRef('');\n const lastRead = useRef<Date | undefined>(undefined);\n const online = useRef(true);\n\n const clearHighlightedMessageTimeoutId = useRef<ReturnType<typeof setTimeout> | null>(\n null,\n );\n\n const channelCapabilitiesArray = channel.data?.own_capabilities as string[];\n\n const throttledCopyStateFromChannel = useMemo(\n () =>\n throttle(() => dispatch({ channel, type: 'copyStateFromChannelOnEvent' }), 500, {\n leading: true,\n trailing: true,\n }),\n [channel],\n );\n\n const setChannelUnreadUiState = useMemo(\n () =>\n throttle(_setChannelUnreadUiState, 200, {\n leading: true,\n trailing: false,\n }),\n [],\n );\n\n const markRead = useMemo(\n () =>\n throttle(\n async (options?: MarkReadWrapperOptions) => {\n const { updateChannelUiUnreadState = true } = options ?? {};\n if (channel.disconnected) return;\n\n if (!channelConfig?.read_events && client.options.isLocalUnreadCountEnabled) {\n const event = channel.markReadLocally();\n\n if (updateChannelUiUnreadState && event) {\n lastRead.current = new Date();\n _setChannelUnreadUiState({\n last_read: lastRead.current,\n last_read_message_id: event.last_read_message_id,\n unread_messages: 0,\n });\n }\n } else if (channelConfig?.read_events) {\n lastRead.current = new Date();\n\n if (doMarkReadRequest) {\n doMarkReadRequest(\n channel,\n updateChannelUiUnreadState ? setChannelUnreadUiState : undefined,\n );\n } else {\n const markReadResponse = await channel.markRead();\n // markReadResponse.event can be null in case of a user that is not a member of a channel being marked read\n // in that case event is null and we should not set unread UI\n if (updateChannelUiUnreadState && markReadResponse?.event) {\n _setChannelUnreadUiState({\n last_read: lastRead.current,\n last_read_message_id: markReadResponse.event.last_read_message_id,\n unread_messages: 0,\n });\n }\n }\n }\n\n if (activeUnreadHandler) {\n activeUnreadHandler(0, originalTitle.current);\n } else if (originalTitle.current) {\n document.title = originalTitle.current;\n }\n },\n 500,\n { leading: true, trailing: false },\n ),\n [\n activeUnreadHandler,\n channel,\n channelConfig,\n client,\n doMarkReadRequest,\n setChannelUnreadUiState,\n ],\n );\n\n const handleEvent = async (event: Event) => {\n // client-level subscriptions keep firing after disconnect, and reading from\n // or querying a disconnected channel throws\n if (channel.disconnected) return;\n\n if (event.message) {\n dispatch({\n channel,\n message: event.message,\n type: 'updateThreadOnEvent',\n });\n }\n\n // ignore the event if it is not targeted at the current channel.\n // Event targeted at this channel or globally targeted event should lead to state refresh\n if (event.type === 'user.messages.deleted' && event.cid && event.cid !== channel.cid)\n return;\n\n if (event.type === 'user.watching.start' || event.type === 'user.watching.stop')\n return;\n\n if (event.type === 'typing.start' || event.type === 'typing.stop') {\n return dispatch({ channel, type: 'setTyping' });\n }\n\n if (event.type === 'connection.changed' && typeof event.online === 'boolean') {\n online.current = event.online;\n }\n\n if (event.type === 'message.new') {\n const mainChannelUpdated =\n !event.message?.parent_id || event.message?.show_in_channel;\n\n if (mainChannelUpdated) {\n if (\n document.hidden &&\n (channelConfig?.read_events || client.options.isLocalUnreadCountEnabled) &&\n !channel.muteStatus().muted\n ) {\n const unread = channel.countUnread(lastRead.current);\n\n if (activeUnreadHandler) {\n activeUnreadHandler(unread, originalTitle.current);\n } else {\n document.title = `(${unread}) ${originalTitle.current}`;\n }\n }\n }\n\n if (\n event.message?.user?.id === client.userID &&\n event?.message?.created_at &&\n event?.message?.cid\n ) {\n const messageDate = new Date(event.message.created_at);\n const cid = event.message.cid;\n\n if (\n !latestMessageDatesByChannels[cid] ||\n latestMessageDatesByChannels[cid].getTime() < messageDate.getTime()\n ) {\n latestMessageDatesByChannels[cid] = messageDate;\n }\n }\n }\n\n if (event.type === 'user.deleted') {\n const oldestID = channel.state?.messages?.[0]?.id;\n\n /**\n * As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.\n */\n // FIXME: we should use channelQueryOptions if they are available\n await channel.query({\n messages: { id_lt: oldestID, limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },\n watchers: { limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },\n });\n }\n\n if (event.type === 'message.read_locally') {\n return;\n }\n\n if (event.type === 'notification.mark_unread')\n _setChannelUnreadUiState((prev) => {\n if (!(event.last_read_at && event.user)) return prev;\n return {\n first_unread_message_id: event.first_unread_message_id,\n last_read: new Date(event.last_read_at),\n last_read_message_id: event.last_read_message_id,\n unread_messages: event.unread_messages ?? 0,\n };\n });\n\n if (event.type === 'channel.truncated' && event.cid === channel.cid) {\n _setChannelUnreadUiState(undefined);\n }\n\n throttledCopyStateFromChannel();\n };\n\n // useLayoutEffect here to prevent spinner. Use Suspense when it is available in stable release\n useLayoutEffect(() => {\n let errored = false;\n let done = false;\n\n (async () => {\n if (!channel.initialized && initializeOnMount) {\n try {\n // if active channel has been set without id, we will create a temporary channel id from its member IDs\n // to keep track of the /query request in progress. This is the same approach of generating temporary id\n // that the JS client uses to keep track of channel in client.activeChannels\n const members: string[] = [];\n if (!channel.id && channel.data?.members) {\n for (const member of channel.data.members) {\n let userId: string | undefined;\n if (typeof member === 'string') {\n userId = member;\n } else if (typeof member === 'object') {\n const { user, user_id } = member as ChannelMemberResponse;\n userId = user_id || user?.id;\n }\n if (userId) {\n members.push(userId);\n }\n }\n }\n await getChannel({ channel, client, members, options: channelQueryOptions });\n const config = channel.getConfig();\n setChannelConfig(config);\n } catch (e) {\n dispatch({ error: e as Error, type: 'setError' });\n errored = true;\n }\n }\n\n done = true;\n originalTitle.current = document.title;\n\n if (!errored) {\n dispatch({\n channel,\n hasMore: channel.state.messagePagination.hasPrev,\n type: 'initStateFromChannel',\n });\n\n if (client.user?.id && channel.state.read[client.user.id]) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { user, ...ownReadState } = channel.state.read[client.user.id];\n _setChannelUnreadUiState((existingState) => {\n // only set the initial state here, do not override existing\n if (existingState) return existingState;\n return ownReadState;\n });\n }\n /**\n * TODO: maybe pass last_read to the countUnread method to get proper value\n * combined with channel.countUnread adjustment (_countMessageAsUnread)\n * to allow counting own messages too\n *\n * const lastRead = channel.state.read[client.userID as string].last_read;\n */\n if (channel.countUnread() > 0 && markReadOnMount)\n markRead({ updateChannelUiUnreadState: false });\n // The more complex sync logic is done in Chat\n client.on('connection.changed', handleEvent);\n client.on('connection.recovered', handleEvent);\n client.on('user.updated', handleEvent);\n client.on('user.deleted', handleEvent);\n client.on('user.messages.deleted', handleEvent);\n channel.on(handleEvent);\n }\n })();\n\n return () => {\n if (errored || !done) return;\n channel?.off(handleEvent);\n client.off('connection.changed', handleEvent);\n client.off('connection.recovered', handleEvent);\n client.off('user.deleted', handleEvent);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n channel.cid,\n channelQueryOptions,\n doMarkReadRequest,\n channelConfig?.read_events,\n initializeOnMount,\n ]);\n\n useEffect(() => {\n if (!state.thread) return;\n\n const message = state.messages?.find((m) => m.id === state.thread?.id);\n\n if (message) dispatch({ message, type: 'setThread' });\n }, [state.messages, state.thread]);\n\n const handleHighlightedMessageChange = useCallback(\n ({\n highlightDuration,\n highlightedMessageId,\n }: {\n highlightedMessageId: string;\n highlightDuration?: number;\n }) => {\n dispatch({\n channel,\n highlightedMessageId,\n type: 'jumpToMessageFinished',\n });\n if (clearHighlightedMessageTimeoutId.current) {\n clearTimeout(clearHighlightedMessageTimeoutId.current);\n }\n clearHighlightedMessageTimeoutId.current = setTimeout(() => {\n if (searchController._internalState.getLatestValue().focusedMessage) {\n searchController._internalState.partialNext({ focusedMessage: undefined });\n }\n clearHighlightedMessageTimeoutId.current = null;\n dispatch({ type: 'clearHighlightedMessage' });\n }, highlightDuration ?? DEFAULT_HIGHLIGHT_DURATION);\n },\n [channel, searchController],\n );\n\n useEffect(() => {\n if (!jumpToMessageFromSearch?.id) return;\n handleHighlightedMessageChange({ highlightedMessageId: jumpToMessageFromSearch.id });\n }, [jumpToMessageFromSearch, handleHighlightedMessageChange]);\n\n /** MESSAGE */\n const notifyJumpToFirstUnreadError = useCallback(() => {\n addNotification({\n context: { feature: 'jumpToFirstUnread' },\n emitter: 'Channel',\n message: t('Failed to jump to the first unread message'),\n severity: 'error',\n targetPanels: ['channel'],\n type: 'channel:jumpToFirstUnread:failed',\n });\n }, [addNotification, t]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const loadMoreFinished = useCallback(\n debounce(\n (hasMore: boolean, messages: ChannelState['messages']) => {\n if (!isMounted.current) return;\n dispatch({ hasMore, messages, type: 'loadMoreFinished' });\n },\n 2000,\n { leading: true, trailing: true },\n ),\n [],\n );\n\n const finishLoadMore = useCallback(\n (hasMore: boolean, messages: ChannelState['messages']) => {\n if (!isMounted.current) return;\n dispatch({ hasMore, messages, type: 'loadMoreFinished' });\n },\n [isMounted],\n );\n\n const loadMore = async (limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE) => {\n if (\n channel.disconnected ||\n !online.current ||\n !window.navigator.onLine ||\n !channel.state.messagePagination.hasPrev\n )\n return 0;\n\n // prevent duplicate loading events...\n const oldestMessage = state?.messages?.[0];\n\n if (\n state.loadingMore ||\n state.loadingMoreNewer ||\n oldestMessage?.status !== 'received'\n ) {\n return 0;\n }\n\n dispatch({ loadingMore: true, type: 'setLoadingMore' });\n\n const oldestID = oldestMessage?.id;\n const perPage = limit;\n let queryResponse: ChannelAPIResponse;\n\n try {\n queryResponse = await channel.query({\n messages: { id_lt: oldestID, limit: perPage },\n watchers: { limit: perPage },\n });\n } catch (e) {\n console.warn('message pagination request failed with error', e);\n dispatch({ loadingMore: false, type: 'setLoadingMore' });\n return 0;\n }\n\n loadMoreFinished.cancel();\n finishLoadMore(channel.state.messagePagination.hasPrev, channel.state.messages);\n\n return queryResponse.messages.length;\n };\n\n const loadMoreNewer = async (limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE) => {\n if (\n channel.disconnected ||\n !online.current ||\n !window.navigator.onLine ||\n !channel.state.messagePagination.hasNext\n )\n return 0;\n\n const newestMessage = state?.messages?.[state?.messages?.length - 1];\n if (state.loadingMore || state.loadingMoreNewer) return 0;\n\n dispatch({ loadingMoreNewer: true, type: 'setLoadingMoreNewer' });\n\n const newestId = newestMessage?.id;\n const perPage = limit;\n let queryResponse: ChannelAPIResponse;\n\n try {\n queryResponse = await channel.query({\n messages: { id_gt: newestId, limit: perPage },\n watchers: { limit: perPage },\n });\n } catch (e) {\n console.warn('message pagination request failed with error', e);\n dispatch({ loadingMoreNewer: false, type: 'setLoadingMoreNewer' });\n return 0;\n }\n\n dispatch({\n hasMoreNewer: channel.state.messagePagination.hasNext,\n messages: channel.state.messages,\n type: 'loadMoreNewerFinished',\n });\n return queryResponse.messages.length;\n };\n\n const jumpToMessage: ChannelActionContextValue['jumpToMessage'] = useCallback(\n async (\n messageId,\n messageLimit = DEFAULT_JUMP_TO_PAGE_SIZE,\n highlightDuration = DEFAULT_HIGHLIGHT_DURATION,\n ) => {\n // Keep quoted-message jumps out of the older-page pagination path.\n dispatch({\n loadingMoreForJumpToChannelMessage: true,\n type: 'setLoadingMoreForJumpToChannelMessage',\n });\n loadMoreFinished.cancel();\n try {\n await channel.state.loadMessageIntoState(messageId, undefined, messageLimit);\n\n handleHighlightedMessageChange({\n highlightDuration,\n highlightedMessageId: messageId,\n });\n } catch (error) {\n dispatch({\n loadingMoreForJumpToChannelMessage: false,\n type: 'setLoadingMoreForJumpToChannelMessage',\n });\n throw error;\n }\n },\n [channel, handleHighlightedMessageChange, loadMoreFinished],\n );\n\n const jumpToLatestMessage: ChannelActionContextValue['jumpToLatestMessage'] =\n useCallback(async () => {\n loadMoreFinished.cancel();\n await channel.state.loadMessageIntoState('latest');\n dispatch({\n hasMore: channel.state.messagePagination.hasPrev,\n hasMoreNewer: channel.state.messagePagination.hasNext,\n messages: channel.state.messages,\n type: 'jumpToLatestMessageFinished',\n });\n }, [channel, loadMoreFinished]);\n\n const jumpToFirstUnreadMessage: ChannelActionContextValue['jumpToFirstUnreadMessage'] =\n useCallback(\n async (\n queryMessageLimit = DEFAULT_JUMP_TO_PAGE_SIZE,\n highlightDuration = DEFAULT_HIGHLIGHT_DURATION,\n ) => {\n if (!channelUnreadUiState?.unread_messages) return;\n let lastReadMessageId = channelUnreadUiState?.last_read_message_id;\n let firstUnreadMessageId = channelUnreadUiState?.first_unread_message_id;\n let isInCurrentMessageSet = false;\n\n if (firstUnreadMessageId) {\n const result = findInMsgSetById(firstUnreadMessageId, channel.state.messages);\n isInCurrentMessageSet = result.index !== -1;\n } else if (lastReadMessageId) {\n const result = findInMsgSetById(lastReadMessageId, channel.state.messages);\n isInCurrentMessageSet = !!result.target;\n firstUnreadMessageId =\n result.index > -1 ? channel.state.messages[result.index + 1]?.id : undefined;\n } else {\n const lastReadTimestamp = channelUnreadUiState.last_read.getTime();\n const { index: lastReadMessageIndex, target: lastReadMessage } =\n findInMsgSetByDate(\n channelUnreadUiState.last_read,\n channel.state.messages,\n true,\n );\n\n if (lastReadMessage) {\n firstUnreadMessageId = channel.state.messages[lastReadMessageIndex + 1]?.id;\n isInCurrentMessageSet = !!firstUnreadMessageId;\n lastReadMessageId = lastReadMessage.id;\n } else {\n dispatch({ loadingMore: true, type: 'setLoadingMore' });\n let messages;\n try {\n messages = (\n await channel.query(\n {\n messages: {\n created_at_around: channelUnreadUiState.last_read.toISOString(),\n limit: queryMessageLimit,\n },\n },\n 'new',\n )\n ).messages;\n } catch (e) {\n notifyJumpToFirstUnreadError();\n finishLoadMore(\n channel.state.messagePagination.hasPrev,\n channel.state.messages,\n );\n return;\n }\n\n const firstMessageWithCreationDate = messages.find((msg) => msg.created_at);\n if (!firstMessageWithCreationDate) {\n notifyJumpToFirstUnreadError();\n finishLoadMore(\n channel.state.messagePagination.hasPrev,\n channel.state.messages,\n );\n return;\n }\n const firstMessageTimestamp = new Date(\n firstMessageWithCreationDate.created_at as string,\n ).getTime();\n if (lastReadTimestamp < firstMessageTimestamp) {\n // whole channel is unread\n firstUnreadMessageId = firstMessageWithCreationDate.id;\n } else {\n const result = findInMsgSetByDate(channelUnreadUiState.last_read, messages);\n lastReadMessageId = result.target?.id;\n }\n finishLoadMore(\n channel.state.messagePagination.hasPrev,\n channel.state.messages,\n );\n }\n }\n\n if (!firstUnreadMessageId && !lastReadMessageId) {\n notifyJumpToFirstUnreadError();\n return;\n }\n\n if (!isInCurrentMessageSet) {\n dispatch({ loadingMore: true, type: 'setLoadingMore' });\n try {\n const targetId = (firstUnreadMessageId ?? lastReadMessageId) as string;\n await channel.state.loadMessageIntoState(\n targetId,\n undefined,\n queryMessageLimit,\n );\n /**\n * if the index of the last read message on the page is beyond the half of the page,\n * we have arrived to the oldest page of the channel\n */\n const indexOfTarget = channel.state.messages.findIndex(\n (message) => message.id === targetId,\n ) as number;\n finishLoadMore(\n channel.state.messagePagination.hasPrev,\n channel.state.messages,\n );\n firstUnreadMessageId =\n firstUnreadMessageId ?? channel.state.messages[indexOfTarget + 1]?.id;\n } catch (e) {\n notifyJumpToFirstUnreadError();\n finishLoadMore(\n channel.state.messagePagination.hasPrev,\n channel.state.messages,\n );\n return;\n }\n }\n\n if (!firstUnreadMessageId) {\n notifyJumpToFirstUnreadError();\n return;\n }\n if (!channelUnreadUiState.first_unread_message_id)\n _setChannelUnreadUiState({\n ...channelUnreadUiState,\n first_unread_message_id: firstUnreadMessageId,\n last_read_message_id: lastReadMessageId,\n });\n handleHighlightedMessageChange({\n highlightDuration,\n highlightedMessageId: firstUnreadMessageId,\n });\n },\n [\n channel,\n finishLoadMore,\n handleHighlightedMessageChange,\n notifyJumpToFirstUnreadError,\n channelUnreadUiState,\n ],\n );\n\n const deleteMessage = useCallback(\n async (\n message: LocalMessage,\n options?: DeleteMessageOptions,\n ): Promise<MessageResponse> => {\n if (!message?.id) {\n throw new Error('Cannot delete a message - missing message ID.');\n }\n let deletedMessage;\n if (doDeleteMessageRequest) {\n deletedMessage = await doDeleteMessageRequest(message, options);\n } else {\n const result = await client.deleteMessage(message.id, options);\n deletedMessage = result.message;\n }\n\n return deletedMessage;\n },\n [client, doDeleteMessageRequest],\n );\n\n const updateMessage = (updatedMessage: MessageResponse | LocalMessage) => {\n // add the message to the local channel state\n channel.state.addMessageSorted(updatedMessage, true);\n\n dispatch({\n channel,\n parentId: state.thread && updatedMessage.parent_id,\n type: 'copyMessagesFromChannel',\n });\n };\n\n const sendMessageRequest = async ({\n localMessage,\n message,\n options,\n }: {\n localMessage: LocalMessage;\n message: Message;\n options?: SendMessageOptions;\n }) => {\n try {\n // With a composition middleware that allows pending uploads, a message can reach this\n // point while its attachments are still uploading. Settling them here rather than in the\n // composer's submit handler means `retrySendMessage` gets the same treatment, and an\n // attachment that already has a URL is skipped — so a retry only re-uploads what failed.\n const { attachments: settledAttachments, failureReason } =\n await settlePendingAttachmentUploads({\n attachments: localMessage.attachments ?? [],\n channelCid: channel.cid,\n client,\n });\n\n if (failureReason) {\n // One failed upload fails the whole message: the send was already committed\n // optimistically, so there is nobody left to ask whether to proceed without that\n // attachment, and dropping it silently would alter what the user sent. Nothing is sent.\n // `AttachmentManager` has already raised the per-upload error notification.\n const failedMessage: LocalMessage = {\n ...localMessage,\n attachments: settledAttachments,\n error: adaptMessageSendErrorToErrorFromResponse(failureReason),\n status: 'failed',\n };\n updateMessage(failedMessage);\n thread?.upsertReplyLocally({ message: failedMessage });\n return;\n }\n\n // `settledAttachments` is the same array unless something was uploaded just now, in which\n // case the payload has to be rebuilt from it: the composition middleware left\n // `message.attachments` holding only the attachments that already had a URL.\n const messageToSend =\n settledAttachments === localMessage.attachments\n ? message\n : { ...message, attachments: settledAttachments };\n\n let messageResponse: void | SendMessageAPIResponse;\n\n if (doSendMessageRequest) {\n messageResponse = await doSendMessageRequest(channel, messageToSend, options);\n } else {\n messageResponse = await channel.sendMessage(messageToSend, options);\n }\n\n let existingMessage: LocalMessage | undefined = undefined;\n for (let i = channel.state.messages.length - 1; i >= 0; i--) {\n const msg = channel.state.messages[i];\n if (msg.id && msg.id === message.id) {\n existingMessage = msg;\n break;\n }\n }\n\n const responseTimestamp = new Date(\n messageResponse?.message?.updated_at || 0,\n ).getTime();\n const existingMessageTimestamp = existingMessage?.updated_at?.getTime() || 0;\n const responseIsTheNewest = responseTimestamp > existingMessageTimestamp;\n\n // Replace the message payload after send is completed\n // We need to check for the newest message payload, because on slow network, the response can arrive later than WS events message.new, message.updated.\n // Always override existing message in status \"sending\"\n if (\n messageResponse?.message &&\n (responseIsTheNewest || existingMessage?.status === 'sending')\n ) {\n updateMessage({\n ...messageResponse.message,\n status: 'received',\n });\n }\n } catch (error) {\n const parsedError = adaptMessageSendErrorToErrorFromResponse(error);\n\n // Handle the case where the message already exists\n // (typically, when retrying to send a message).\n // If the message already exists, we can assume it was sent successfully,\n // so we update the message status to \"received\".\n // Right now, the only way to check this error is by checking\n // the combination of the error code and the error description,\n // since there is no special error code for duplicate messages.\n if (\n parsedError.code === 4 &&\n error instanceof Error &&\n error.message.includes('already exists')\n ) {\n updateMessage({\n ...localMessage,\n status: 'received',\n });\n } else {\n updateMessage({\n ...localMessage,\n error: parsedError,\n status: 'failed',\n });\n\n thread?.upsertReplyLocally({\n message: {\n ...localMessage,\n error: parsedError,\n status: 'failed',\n },\n });\n }\n }\n };\n\n /**\n * Sends are serialised per channel while a composition middleware declaring\n * `allowsPendingUploads` is installed. Without it a text-only message would reach the server\n * while an earlier message was still uploading, and since `created_at` is stamped when the\n * request arrives, the channel would end up in a different order than the user watched happen.\n * `withoutConcurrency` lets a failed send through without blocking the ones behind it.\n *\n * Read off the channel's composer, which is what the composer setup function configures — so\n * whoever installs the middleware gets the matching send path with nothing else to switch on.\n */\n const doSendMessage = (params: {\n localMessage: LocalMessage;\n message: Message;\n options?: SendMessageOptions;\n }) =>\n channel.messageComposer.allowsPendingUploads\n ? withoutConcurrency(`stream-chat-react/send-message/${channel.cid}`, () =>\n sendMessageRequest(params),\n )\n : sendMessageRequest(params);\n\n const sendMessage = async ({\n localMessage,\n message,\n options,\n }: {\n localMessage: LocalMessage;\n message: Message;\n options?: SendMessageOptions;\n }) => {\n channel.state.filterErrorMessages();\n\n thread?.upsertReplyLocally({\n message: localMessage,\n });\n\n updateMessage(localMessage);\n\n await doSendMessage({ localMessage, message, options });\n };\n\n const retrySendMessage = async (localMessage: LocalMessage) => {\n /**\n * If type is not checked, and we for example send message.type === 'error',\n * then request fails with error: \"message.type must be one of ['' regular system]\".\n * For now, we re-send any other type to prevent breaking behavior.\n */\n\n const type = localMessage.type === 'error' ? 'regular' : localMessage.type;\n updateMessage({\n ...localMessage,\n error: undefined,\n status: 'sending',\n type,\n });\n\n await doSendMessage({\n localMessage,\n message: localMessageToNewMessagePayload({ ...localMessage, type }),\n });\n };\n\n const removeMessage = (message: LocalMessage) => {\n channel.state.removeMessage(message);\n\n dispatch({\n channel,\n parentId: state.thread && message.parent_id,\n type: 'copyMessagesFromChannel',\n });\n };\n\n /** THREAD */\n\n const openThread = (message: LocalMessage, event?: React.BaseSyntheticEvent) => {\n event?.preventDefault();\n dispatch({ channel, message, type: 'openThread' });\n };\n\n const closeThread = (event?: React.BaseSyntheticEvent) => {\n event?.preventDefault();\n dispatch({ type: 'closeThread' });\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const loadMoreThreadFinished = useCallback(\n debounce(\n (\n threadHasMore: boolean,\n threadMessages: Array<ReturnType<ChannelState['formatMessage']>>,\n ) => {\n dispatch({\n threadHasMore,\n threadMessages,\n type: 'loadMoreThreadFinished',\n });\n },\n 2000,\n { leading: true, trailing: true },\n ),\n [],\n );\n\n const loadMoreThread = async (limit: number = DEFAULT_THREAD_PAGE_SIZE) => {\n // FIXME: should prevent loading more, if state.thread.reply_count === channel.state.threads[parentID].length\n if (state.threadLoadingMore || !state.thread || !state.threadHasMore) return;\n\n dispatch({ type: 'startLoadingThread' });\n const parentId = state.thread.id;\n\n if (!parentId) {\n return dispatch({ type: 'closeThread' });\n }\n\n const oldMessages = channel.state.threads[parentId] || [];\n const oldestMessageId = oldMessages[0]?.id;\n\n try {\n const queryResponse = await channel.getReplies(parentId, {\n id_lt: oldestMessageId,\n limit,\n });\n\n const threadHasMoreMessages = hasMoreMessagesProbably(\n queryResponse.messages.length,\n limit,\n );\n const newThreadMessages = channel.state.threads[parentId] || [];\n\n // next set loadingMore to false so we can start asking for more data\n loadMoreThreadFinished(threadHasMoreMessages, newThreadMessages);\n } catch (e) {\n loadMoreThreadFinished(false, oldMessages);\n }\n };\n\n const onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);\n\n const editMessage = useEditMessageHandler(doUpdateMessageRequest);\n\n const { typing, ...restState } = state;\n\n const channelStateContextValue = useCreateChannelStateContext({\n ...restState,\n channel,\n channelCapabilitiesArray,\n channelConfig,\n channelUnreadUiState,\n giphyVersion: props.giphyVersion || 'fixed_height',\n imageAttachmentSizeHandler:\n props.imageAttachmentSizeHandler || getImageAttachmentConfiguration,\n mutes,\n notifications: [],\n shouldGenerateVideoThumbnail: props.shouldGenerateVideoThumbnail ?? true,\n videoAttachmentSizeHandler:\n props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration,\n watcher_count: state.watcherCount,\n });\n\n const channelActionContextValue: ChannelActionContextValue = useMemo(\n () => ({\n closeThread,\n deleteMessage,\n dispatch,\n editMessage,\n jumpToFirstUnreadMessage,\n jumpToLatestMessage,\n jumpToMessage,\n loadMore,\n loadMoreNewer,\n loadMoreThread,\n markRead,\n onMentionsClick: onMentionsHoverOrClick,\n onMentionsHover: onMentionsHoverOrClick,\n openThread,\n removeMessage,\n retrySendMessage,\n sendMessage,\n setChannelUnreadUiState,\n skipMessageDataMemoization,\n updateMessage,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n channel.cid,\n deleteMessage,\n loadMore,\n loadMoreNewer,\n markRead,\n jumpToFirstUnreadMessage,\n jumpToMessage,\n jumpToLatestMessage,\n setChannelUnreadUiState,\n ],\n );\n\n const typingContextValue = useCreateTypingContext({\n typing,\n });\n\n if (state.error) {\n return (\n <ChannelContainer>\n <LoadingErrorIndicator error={state.error} />\n </ChannelContainer>\n );\n }\n\n if (state.loading) {\n return (\n <ChannelContainer>\n <LoadingIndicator />\n </ChannelContainer>\n );\n }\n\n if (!channel.watch) {\n return (\n <ChannelContainer>\n <div>{t('Channel Missing')}</div>\n </ChannelContainer>\n );\n }\n\n return (\n <ChannelContainer className={windowsEmojiClass}>\n <ChannelStateProvider value={channelStateContextValue}>\n <ChannelActionProvider value={channelActionContextValue}>\n <TypingProvider value={typingContextValue}>\n <WithAudioPlayback allowConcurrentPlayback={allowConcurrentAudioPlayback}>\n <div className={clsx(chatContainerClass)}>{children}</div>\n </WithAudioPlayback>\n </TypingProvider>\n </ChannelActionProvider>\n </ChannelStateProvider>\n </ChannelContainer>\n );\n};\n\n/**\n * A wrapper component that provides channel data and renders children.\n * The Channel component provides the following contexts:\n * - [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/)\n * - [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/)\n * - [ComponentContext](https://getstream.io/chat/docs/sdk/react/contexts/component_context/)\n * - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)\n */\nexport const Channel = React.memo(UnMemoizedChannel) as typeof UnMemoizedChannel;\n"],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ //#region src/components/Channel/channelState.ts
2
+ var makeChannelReducer = () => (state, action) => {
3
+ switch (action.type) {
4
+ case "closeThread": return {
5
+ ...state,
6
+ thread: null,
7
+ threadLoadingMore: false,
8
+ threadMessages: []
9
+ };
10
+ case "copyMessagesFromChannel": {
11
+ const { channel, parentId } = action;
12
+ return {
13
+ ...state,
14
+ messages: [...channel.state.messages],
15
+ pinnedMessages: [...channel.state.pinnedMessages],
16
+ suppressAutoscroll: false,
17
+ threadMessages: parentId ? { ...channel.state.threads }[parentId] || [] : state.threadMessages
18
+ };
19
+ }
20
+ case "copyStateFromChannelOnEvent": {
21
+ const { channel } = action;
22
+ return {
23
+ ...state,
24
+ members: { ...channel.state.members },
25
+ messages: [...channel.state.messages],
26
+ pinnedMessages: [...channel.state.pinnedMessages],
27
+ read: { ...channel.state.read },
28
+ watcherCount: channel.state.watcher_count,
29
+ watchers: { ...channel.state.watchers }
30
+ };
31
+ }
32
+ case "initStateFromChannel": {
33
+ const { channel, hasMore } = action;
34
+ return {
35
+ ...state,
36
+ hasMore,
37
+ loading: false,
38
+ members: { ...channel.state.members },
39
+ messages: [...channel.state.messages],
40
+ pinnedMessages: [...channel.state.pinnedMessages],
41
+ read: { ...channel.state.read },
42
+ watcherCount: channel.state.watcher_count,
43
+ watchers: { ...channel.state.watchers }
44
+ };
45
+ }
46
+ case "jumpToLatestMessageFinished": {
47
+ const { hasMore, hasMoreNewer, messages } = action;
48
+ return {
49
+ ...state,
50
+ hasMore,
51
+ hasMoreNewer,
52
+ highlightedMessageId: void 0,
53
+ loading: false,
54
+ messages,
55
+ suppressAutoscroll: false
56
+ };
57
+ }
58
+ case "jumpToMessageFinished": return {
59
+ ...state,
60
+ hasMore: action.channel.state.messagePagination.hasPrev,
61
+ hasMoreNewer: action.channel.state.messagePagination.hasNext,
62
+ highlightedMessageId: action.highlightedMessageId,
63
+ loadingMore: false,
64
+ loadingMoreForJumpToChannelMessage: false,
65
+ messages: action.channel.state.messages,
66
+ suppressAutoscroll: false
67
+ };
68
+ case "clearHighlightedMessage": return {
69
+ ...state,
70
+ highlightedMessageId: void 0
71
+ };
72
+ case "loadMoreFinished": {
73
+ const { hasMore, messages } = action;
74
+ return {
75
+ ...state,
76
+ hasMore,
77
+ loadingMore: false,
78
+ messages,
79
+ suppressAutoscroll: false
80
+ };
81
+ }
82
+ case "loadMoreNewerFinished": {
83
+ const { hasMoreNewer, messages } = action;
84
+ return {
85
+ ...state,
86
+ hasMoreNewer,
87
+ loadingMoreNewer: false,
88
+ messages
89
+ };
90
+ }
91
+ case "loadMoreThreadFinished": {
92
+ const { threadHasMore, threadMessages } = action;
93
+ return {
94
+ ...state,
95
+ threadHasMore,
96
+ threadLoadingMore: false,
97
+ threadMessages
98
+ };
99
+ }
100
+ case "openThread": {
101
+ const { channel, message } = action;
102
+ return {
103
+ ...state,
104
+ thread: message,
105
+ threadHasMore: true,
106
+ threadMessages: message.id ? { ...channel.state.threads }[message.id] || [] : [],
107
+ threadSuppressAutoscroll: false
108
+ };
109
+ }
110
+ case "setError": {
111
+ const { error } = action;
112
+ return {
113
+ ...state,
114
+ error
115
+ };
116
+ }
117
+ case "setLoadingMore": {
118
+ const { loadingMore } = action;
119
+ return {
120
+ ...state,
121
+ loadingMore,
122
+ suppressAutoscroll: loadingMore
123
+ };
124
+ }
125
+ case "setLoadingMoreForJumpToChannelMessage": {
126
+ const { loadingMoreForJumpToChannelMessage } = action;
127
+ return {
128
+ ...state,
129
+ loadingMoreForJumpToChannelMessage,
130
+ suppressAutoscroll: loadingMoreForJumpToChannelMessage
131
+ };
132
+ }
133
+ case "setLoadingMoreNewer": {
134
+ const { loadingMoreNewer } = action;
135
+ return {
136
+ ...state,
137
+ loadingMoreNewer
138
+ };
139
+ }
140
+ case "setThread": {
141
+ const { message } = action;
142
+ return {
143
+ ...state,
144
+ thread: message
145
+ };
146
+ }
147
+ case "setTyping": {
148
+ const { channel } = action;
149
+ return {
150
+ ...state,
151
+ typing: { ...channel.state.typing }
152
+ };
153
+ }
154
+ case "startLoadingThread": return {
155
+ ...state,
156
+ threadLoadingMore: true,
157
+ threadSuppressAutoscroll: true
158
+ };
159
+ case "updateThreadOnEvent": {
160
+ const { channel, message } = action;
161
+ if (!state.thread) return state;
162
+ return {
163
+ ...state,
164
+ thread: message?.id === state.thread.id ? channel.state.formatMessage(message) : state.thread,
165
+ threadMessages: state.thread?.id ? { ...channel.state.threads }[state.thread.id] || [] : []
166
+ };
167
+ }
168
+ default: return state;
169
+ }
170
+ };
171
+ var initialState = {
172
+ error: null,
173
+ hasMore: true,
174
+ hasMoreNewer: false,
175
+ loading: true,
176
+ loadingMore: false,
177
+ loadingMoreForJumpToChannelMessage: false,
178
+ members: {},
179
+ messages: [],
180
+ pinnedMessages: [],
181
+ read: {},
182
+ suppressAutoscroll: false,
183
+ thread: null,
184
+ threadHasMore: true,
185
+ threadLoadingMore: false,
186
+ threadMessages: [],
187
+ threadSuppressAutoscroll: false,
188
+ typing: {},
189
+ watcherCount: 0,
190
+ watchers: {}
191
+ };
192
+ //#endregion
193
+ export { initialState, makeChannelReducer };
194
+
195
+ //# sourceMappingURL=channelState.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelState.mjs","names":[],"sources":["../../../../src/components/Channel/channelState.ts"],"sourcesContent":["import type {\n Channel,\n LocalMessage,\n MessageResponse,\n ChannelState as StreamChannelState,\n} from 'stream-chat';\n\nimport type { ChannelState } from '../../context/ChannelStateContext';\n\nexport type ChannelStateReducerAction =\n | {\n type: 'closeThread';\n }\n | {\n type: 'clearHighlightedMessage';\n }\n | {\n channel: Channel;\n type: 'copyMessagesFromChannel';\n parentId?: string | null;\n }\n | {\n channel: Channel;\n type: 'copyStateFromChannelOnEvent';\n }\n | {\n hasMore: boolean;\n hasMoreNewer: boolean;\n messages: LocalMessage[];\n type: 'jumpToLatestMessageFinished';\n }\n | {\n channel: Channel;\n highlightedMessageId: string;\n type: 'jumpToMessageFinished';\n }\n | {\n channel: Channel;\n hasMore: boolean;\n type: 'initStateFromChannel';\n }\n | {\n hasMore: boolean;\n messages: LocalMessage[];\n type: 'loadMoreFinished';\n }\n | {\n hasMoreNewer: boolean;\n messages: LocalMessage[];\n type: 'loadMoreNewerFinished';\n }\n | {\n threadHasMore: boolean;\n threadMessages: Array<ReturnType<StreamChannelState['formatMessage']>>;\n type: 'loadMoreThreadFinished';\n }\n | {\n channel: Channel;\n message: LocalMessage;\n type: 'openThread';\n }\n | {\n error: Error;\n type: 'setError';\n }\n | {\n loadingMore: boolean;\n type: 'setLoadingMore';\n }\n | {\n loadingMoreForJumpToChannelMessage: boolean;\n type: 'setLoadingMoreForJumpToChannelMessage';\n }\n | {\n loadingMoreNewer: boolean;\n type: 'setLoadingMoreNewer';\n }\n | {\n message: LocalMessage;\n type: 'setThread';\n }\n | {\n channel: Channel;\n type: 'setTyping';\n }\n | {\n type: 'startLoadingThread';\n }\n | {\n channel: Channel;\n message: MessageResponse;\n type: 'updateThreadOnEvent';\n };\n\nexport const makeChannelReducer =\n () => (state: ChannelState, action: ChannelStateReducerAction) => {\n switch (action.type) {\n case 'closeThread': {\n return {\n ...state,\n thread: null,\n threadLoadingMore: false,\n threadMessages: [],\n };\n }\n\n case 'copyMessagesFromChannel': {\n const { channel, parentId } = action;\n return {\n ...state,\n messages: [...channel.state.messages],\n pinnedMessages: [...channel.state.pinnedMessages],\n // copying messages from channel happens with new message - this resets the suppressAutoscroll\n suppressAutoscroll: false,\n threadMessages: parentId\n ? { ...channel.state.threads }[parentId] || []\n : state.threadMessages,\n };\n }\n\n case 'copyStateFromChannelOnEvent': {\n const { channel } = action;\n return {\n ...state,\n members: { ...channel.state.members },\n messages: [...channel.state.messages],\n pinnedMessages: [...channel.state.pinnedMessages],\n read: { ...channel.state.read },\n watcherCount: channel.state.watcher_count,\n watchers: { ...channel.state.watchers },\n };\n }\n\n case 'initStateFromChannel': {\n const { channel, hasMore } = action;\n return {\n ...state,\n hasMore,\n loading: false,\n members: { ...channel.state.members },\n messages: [...channel.state.messages],\n pinnedMessages: [...channel.state.pinnedMessages],\n read: { ...channel.state.read },\n watcherCount: channel.state.watcher_count,\n watchers: { ...channel.state.watchers },\n };\n }\n\n case 'jumpToLatestMessageFinished': {\n const { hasMore, hasMoreNewer, messages } = action;\n return {\n ...state,\n hasMore,\n hasMoreNewer,\n highlightedMessageId: undefined,\n loading: false,\n messages,\n suppressAutoscroll: false,\n };\n }\n\n case 'jumpToMessageFinished': {\n return {\n ...state,\n hasMore: action.channel.state.messagePagination.hasPrev,\n hasMoreNewer: action.channel.state.messagePagination.hasNext,\n highlightedMessageId: action.highlightedMessageId,\n loadingMore: false,\n loadingMoreForJumpToChannelMessage: false,\n messages: action.channel.state.messages,\n suppressAutoscroll: false,\n };\n }\n\n case 'clearHighlightedMessage': {\n return {\n ...state,\n highlightedMessageId: undefined,\n };\n }\n\n case 'loadMoreFinished': {\n const { hasMore, messages } = action;\n return {\n ...state,\n hasMore,\n loadingMore: false,\n messages,\n suppressAutoscroll: false,\n };\n }\n\n case 'loadMoreNewerFinished': {\n const { hasMoreNewer, messages } = action;\n return {\n ...state,\n hasMoreNewer,\n loadingMoreNewer: false,\n messages,\n };\n }\n\n case 'loadMoreThreadFinished': {\n const { threadHasMore, threadMessages } = action;\n return {\n ...state,\n threadHasMore,\n threadLoadingMore: false,\n threadMessages,\n };\n }\n\n case 'openThread': {\n const { channel, message } = action;\n return {\n ...state,\n thread: message,\n threadHasMore: true,\n threadMessages: message.id\n ? { ...channel.state.threads }[message.id] || []\n : [],\n threadSuppressAutoscroll: false,\n };\n }\n\n case 'setError': {\n const { error } = action;\n return { ...state, error };\n }\n\n case 'setLoadingMore': {\n const { loadingMore } = action;\n // suppress the autoscroll behavior\n return { ...state, loadingMore, suppressAutoscroll: loadingMore };\n }\n\n case 'setLoadingMoreForJumpToChannelMessage': {\n const { loadingMoreForJumpToChannelMessage } = action;\n return {\n ...state,\n loadingMoreForJumpToChannelMessage,\n suppressAutoscroll: loadingMoreForJumpToChannelMessage,\n };\n }\n\n case 'setLoadingMoreNewer': {\n const { loadingMoreNewer } = action;\n return { ...state, loadingMoreNewer };\n }\n\n case 'setThread': {\n const { message } = action;\n return { ...state, thread: message };\n }\n\n case 'setTyping': {\n const { channel } = action;\n return {\n ...state,\n typing: { ...channel.state.typing },\n };\n }\n\n case 'startLoadingThread': {\n return {\n ...state,\n threadLoadingMore: true,\n threadSuppressAutoscroll: true,\n };\n }\n\n case 'updateThreadOnEvent': {\n const { channel, message } = action;\n if (!state.thread) return state;\n return {\n ...state,\n thread:\n message?.id === state.thread.id\n ? channel.state.formatMessage(message)\n : state.thread,\n threadMessages: state.thread?.id\n ? { ...channel.state.threads }[state.thread.id] || []\n : [],\n };\n }\n\n default:\n return state;\n }\n };\n\nexport const initialState = {\n error: null,\n hasMore: true,\n hasMoreNewer: false,\n loading: true,\n loadingMore: false,\n loadingMoreForJumpToChannelMessage: false,\n members: {},\n messages: [],\n pinnedMessages: [],\n read: {},\n suppressAutoscroll: false,\n thread: null,\n threadHasMore: true,\n threadLoadingMore: false,\n threadMessages: [],\n threadSuppressAutoscroll: false,\n typing: {},\n watcherCount: 0,\n watchers: {},\n};\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ //#region src/components/Channel/constants.ts
2
+ var CHANNEL_CONTAINER_ID = "str-chat__channel";
3
+ //#endregion
4
+ export { CHANNEL_CONTAINER_ID };
5
+
6
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../../../../src/components/Channel/constants.ts"],"sourcesContent":["export const CHANNEL_CONTAINER_ID = 'str-chat__channel';\n"],"mappings":";AAAA,IAAa,uBAAuB"}
@@ -0,0 +1,20 @@
1
+ import { useChatContext } from "../../../context/ChatContext.mjs";
2
+ //#region src/components/Channel/hooks/useChannelContainerClasses.ts
3
+ var useImageFlagEmojisOnWindowsClass = () => {
4
+ const { useImageFlagEmojisOnWindows } = useChatContext("Channel");
5
+ return useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/) ? "str-chat--windows-flags" : "";
6
+ };
7
+ var getChatContainerClass = (customClass) => customClass ?? "str-chat__container";
8
+ var useChannelContainerClasses = ({ customClasses }) => {
9
+ const windowsEmojiClass = useImageFlagEmojisOnWindowsClass();
10
+ return {
11
+ channelClass: customClasses?.channel ?? "str-chat__channel",
12
+ chatClass: customClasses?.chat ?? "str-chat",
13
+ chatContainerClass: getChatContainerClass(customClasses?.chatContainer),
14
+ windowsEmojiClass
15
+ };
16
+ };
17
+ //#endregion
18
+ export { getChatContainerClass, useChannelContainerClasses, useImageFlagEmojisOnWindowsClass };
19
+
20
+ //# sourceMappingURL=useChannelContainerClasses.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChannelContainerClasses.mjs","names":[],"sources":["../../../../../src/components/Channel/hooks/useChannelContainerClasses.ts"],"sourcesContent":["import { useChatContext } from '../../../context/ChatContext';\nimport type { ChatContextValue } from '../../../context/ChatContext';\n\nexport const useImageFlagEmojisOnWindowsClass = () => {\n const { useImageFlagEmojisOnWindows } = useChatContext('Channel');\n return useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/)\n ? 'str-chat--windows-flags'\n : '';\n};\n\nexport const getChatContainerClass = (customClass?: string) =>\n customClass ?? 'str-chat__container';\n\nexport const useChannelContainerClasses = ({\n customClasses,\n}: Pick<ChatContextValue, 'customClasses'>) => {\n const windowsEmojiClass = useImageFlagEmojisOnWindowsClass();\n return {\n channelClass: customClasses?.channel ?? 'str-chat__channel',\n chatClass: customClasses?.chat ?? 'str-chat',\n chatContainerClass: getChatContainerClass(customClasses?.chatContainer),\n windowsEmojiClass,\n };\n};\n"],"mappings":";;AAGA,IAAa,yCAAyC;CACpD,MAAM,EAAE,gCAAgC,eAAe,SAAS;CAChE,OAAO,+BAA+B,UAAU,UAAU,MAAM,KAAK,IACjE,4BACA;AACN;AAEA,IAAa,yBAAyB,gBACpC,eAAe;AAEjB,IAAa,8BAA8B,EACzC,oBAC6C;CAC7C,MAAM,oBAAoB,iCAAiC;CAC3D,OAAO;EACL,cAAc,eAAe,WAAW;EACxC,WAAW,eAAe,QAAQ;EAClC,oBAAoB,sBAAsB,eAAe,aAAa;EACtE;CACF;AACF"}
@@ -0,0 +1,86 @@
1
+ import { isDate, isDayOrMoment } from "../../../i18n/utils.mjs";
2
+ import { useMemo } from "react";
3
+ //#region src/components/Channel/hooks/useCreateChannelStateContext.ts
4
+ var useCreateChannelStateContext = (value) => {
5
+ const { channel, channelCapabilitiesArray = [], channelConfig, channelUnreadUiState, error, giphyVersion, hasMore, hasMoreNewer, highlightedMessageId, imageAttachmentSizeHandler, loading, loadingMore, loadingMoreForJumpToChannelMessage, members, messages = [], mutes, notifications, pinnedMessages, read = {}, shouldGenerateVideoThumbnail, skipMessageDataMemoization, suppressAutoscroll, thread, threadHasMore, threadLoadingMore, threadMessages = [], videoAttachmentSizeHandler, watcher_count, watcherCount, watchers } = value;
6
+ const channelId = channel.cid;
7
+ const lastRead = channel.initialized && !channel.disconnected && channel.lastRead()?.getTime();
8
+ const membersLength = Object.keys(members || []).length;
9
+ const notificationsLength = notifications.length;
10
+ const readUsers = Object.values(read);
11
+ const readUsersLength = readUsers.length;
12
+ const readUsersLastReadDateStrings = [];
13
+ for (const { last_read } of readUsers) {
14
+ if (!lastRead) continue;
15
+ readUsersLastReadDateStrings.push(last_read?.toISOString());
16
+ }
17
+ const readUsersLastReads = readUsersLastReadDateStrings.join();
18
+ const threadMessagesLength = threadMessages?.length;
19
+ const channelCapabilities = {};
20
+ channelCapabilitiesArray.forEach((capability) => {
21
+ channelCapabilities[capability] = true;
22
+ });
23
+ const memoizedMessageData = skipMessageDataMemoization ? messages : messages.map(({ deleted_at, latest_reactions, pinned, reply_count, status, type, updated_at, user }) => `${type}${deleted_at}${latest_reactions ? latest_reactions.map(({ type }) => type).join() : ""}${pinned}${reply_count}${status}${updated_at && (isDayOrMoment(updated_at) || isDate(updated_at)) ? updated_at.toISOString() : updated_at || ""}${user?.updated_at}`).join();
24
+ const memoizedThreadMessageData = threadMessages.map(({ deleted_at, latest_reactions, pinned, status, updated_at, user }) => `${deleted_at}${latest_reactions ? latest_reactions.map(({ type }) => type).join() : ""}${pinned}${status}${updated_at && (isDayOrMoment(updated_at) || isDate(updated_at)) ? updated_at.toISOString() : updated_at || ""}${user?.updated_at}`).join();
25
+ return useMemo(() => ({
26
+ channel,
27
+ channelCapabilities,
28
+ channelConfig,
29
+ channelUnreadUiState,
30
+ error,
31
+ giphyVersion,
32
+ hasMore,
33
+ hasMoreNewer,
34
+ highlightedMessageId,
35
+ imageAttachmentSizeHandler,
36
+ loading,
37
+ loadingMore,
38
+ loadingMoreForJumpToChannelMessage,
39
+ members,
40
+ messages,
41
+ mutes,
42
+ notifications,
43
+ pinnedMessages,
44
+ read,
45
+ shouldGenerateVideoThumbnail,
46
+ suppressAutoscroll,
47
+ thread,
48
+ threadHasMore,
49
+ threadLoadingMore,
50
+ threadMessages,
51
+ videoAttachmentSizeHandler,
52
+ watcher_count,
53
+ watcherCount,
54
+ watchers
55
+ }), [
56
+ channel.data?.name,
57
+ channelId,
58
+ channelUnreadUiState,
59
+ error,
60
+ hasMore,
61
+ hasMoreNewer,
62
+ highlightedMessageId,
63
+ lastRead,
64
+ loading,
65
+ loadingMore,
66
+ loadingMoreForJumpToChannelMessage,
67
+ membersLength,
68
+ memoizedMessageData,
69
+ memoizedThreadMessageData,
70
+ notificationsLength,
71
+ readUsersLength,
72
+ readUsersLastReads,
73
+ shouldGenerateVideoThumbnail,
74
+ skipMessageDataMemoization,
75
+ suppressAutoscroll,
76
+ thread,
77
+ threadHasMore,
78
+ threadLoadingMore,
79
+ threadMessagesLength,
80
+ watcherCount
81
+ ]);
82
+ };
83
+ //#endregion
84
+ export { useCreateChannelStateContext };
85
+
86
+ //# sourceMappingURL=useCreateChannelStateContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateChannelStateContext.mjs","names":[],"sources":["../../../../../src/components/Channel/hooks/useCreateChannelStateContext.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { isDate, isDayOrMoment } from '../../../i18n';\n\nimport type { ChannelStateContextValue } from '../../../context/ChannelStateContext';\n\nexport const useCreateChannelStateContext = (\n value: Omit<ChannelStateContextValue, 'channelCapabilities'> & {\n channelCapabilitiesArray: string[];\n skipMessageDataMemoization?: boolean;\n },\n) => {\n const {\n channel,\n channelCapabilitiesArray = [],\n channelConfig,\n channelUnreadUiState,\n error,\n giphyVersion,\n hasMore,\n hasMoreNewer,\n highlightedMessageId,\n imageAttachmentSizeHandler,\n loading,\n loadingMore,\n loadingMoreForJumpToChannelMessage,\n members,\n messages = [],\n mutes,\n notifications,\n pinnedMessages,\n read = {},\n shouldGenerateVideoThumbnail,\n skipMessageDataMemoization,\n suppressAutoscroll,\n thread,\n threadHasMore,\n threadLoadingMore,\n threadMessages = [],\n videoAttachmentSizeHandler,\n watcher_count,\n watcherCount,\n watchers,\n } = value;\n\n const channelId = channel.cid;\n // `channel.lastRead()` reaches `channel.getClient()`, which throws once the\n // client has been disconnected. Guard against it so a disconnect while the\n // channel is mounted does not crash the render (#2393).\n const lastRead =\n channel.initialized && !channel.disconnected && channel.lastRead()?.getTime();\n const membersLength = Object.keys(members || []).length;\n const notificationsLength = notifications.length;\n const readUsers = Object.values(read);\n const readUsersLength = readUsers.length;\n const readUsersLastReadDateStrings: string[] = [];\n for (const { last_read } of readUsers) {\n if (!lastRead) continue;\n readUsersLastReadDateStrings.push(last_read?.toISOString());\n }\n const readUsersLastReads = readUsersLastReadDateStrings.join();\n const threadMessagesLength = threadMessages?.length;\n\n const channelCapabilities: Record<string, boolean> = {};\n\n channelCapabilitiesArray.forEach((capability) => {\n channelCapabilities[capability] = true;\n });\n\n // FIXME: this is crazy - I could not find out why the messages were not getting updated when only message properties that are not part\n // of this serialization has been changed. A great example of memoization gone wrong.\n const memoizedMessageData = skipMessageDataMemoization\n ? messages\n : messages\n .map(\n ({\n deleted_at,\n latest_reactions,\n pinned,\n reply_count,\n status,\n type,\n updated_at,\n user,\n }) =>\n `${type}${deleted_at}${\n latest_reactions ? latest_reactions.map(({ type }) => type).join() : ''\n }${pinned}${reply_count}${status}${\n updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))\n ? updated_at.toISOString()\n : updated_at || ''\n }${user?.updated_at}`,\n )\n .join();\n\n const memoizedThreadMessageData = threadMessages\n .map(\n ({ deleted_at, latest_reactions, pinned, status, updated_at, user }) =>\n `${deleted_at}${\n latest_reactions ? latest_reactions.map(({ type }) => type).join() : ''\n }${pinned}${status}${\n updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))\n ? updated_at.toISOString()\n : updated_at || ''\n }${user?.updated_at}`,\n )\n .join();\n\n const channelStateContext: ChannelStateContextValue = useMemo(\n () => ({\n channel,\n channelCapabilities,\n channelConfig,\n channelUnreadUiState,\n error,\n giphyVersion,\n hasMore,\n hasMoreNewer,\n highlightedMessageId,\n imageAttachmentSizeHandler,\n loading,\n loadingMore,\n loadingMoreForJumpToChannelMessage,\n members,\n messages,\n mutes,\n notifications,\n pinnedMessages,\n read,\n shouldGenerateVideoThumbnail,\n suppressAutoscroll,\n thread,\n threadHasMore,\n threadLoadingMore,\n threadMessages,\n videoAttachmentSizeHandler,\n watcher_count,\n watcherCount,\n watchers,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n channel.data?.name, // otherwise ChannelHeader will not be updated\n channelId,\n channelUnreadUiState,\n error,\n hasMore,\n hasMoreNewer,\n highlightedMessageId,\n lastRead,\n loading,\n loadingMore,\n loadingMoreForJumpToChannelMessage,\n membersLength,\n memoizedMessageData,\n memoizedThreadMessageData,\n notificationsLength,\n readUsersLength,\n readUsersLastReads,\n shouldGenerateVideoThumbnail,\n skipMessageDataMemoization,\n suppressAutoscroll,\n thread,\n threadHasMore,\n threadLoadingMore,\n threadMessagesLength,\n watcherCount,\n ],\n );\n\n return channelStateContext;\n};\n"],"mappings":";;;AAMA,IAAa,gCACX,UAIG;CACH,MAAM,EACJ,SACA,2BAA2B,CAAC,GAC5B,eACA,sBACA,OACA,cACA,SACA,cACA,sBACA,4BACA,SACA,aACA,oCACA,SACA,WAAW,CAAC,GACZ,OACA,eACA,gBACA,OAAO,CAAC,GACR,8BACA,4BACA,oBACA,QACA,eACA,mBACA,iBAAiB,CAAC,GAClB,4BACA,eACA,cACA,aACE;CAEJ,MAAM,YAAY,QAAQ;CAI1B,MAAM,WACJ,QAAQ,eAAe,CAAC,QAAQ,gBAAgB,QAAQ,SAAS,CAAC,EAAE,QAAQ;CAC9E,MAAM,gBAAgB,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;CACjD,MAAM,sBAAsB,cAAc;CAC1C,MAAM,YAAY,OAAO,OAAO,IAAI;CACpC,MAAM,kBAAkB,UAAU;CAClC,MAAM,+BAAyC,CAAC;CAChD,KAAK,MAAM,EAAE,eAAe,WAAW;EACrC,IAAI,CAAC,UAAU;EACf,6BAA6B,KAAK,WAAW,YAAY,CAAC;CAC5D;CACA,MAAM,qBAAqB,6BAA6B,KAAK;CAC7D,MAAM,uBAAuB,gBAAgB;CAE7C,MAAM,sBAA+C,CAAC;CAEtD,yBAAyB,SAAS,eAAe;EAC/C,oBAAoB,cAAc;CACpC,CAAC;CAID,MAAM,sBAAsB,6BACxB,WACA,SACG,KACE,EACC,YACA,kBACA,QACA,aACA,QACA,MACA,YACA,WAEA,GAAG,OAAO,aACR,mBAAmB,iBAAiB,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,KACpE,SAAS,cAAc,SACxB,eAAe,cAAc,UAAU,KAAK,OAAO,UAAU,KACzD,WAAW,YAAY,IACvB,cAAc,KACjB,MAAM,YACb,CAAC,CACA,KAAK;CAEZ,MAAM,4BAA4B,eAC/B,KACE,EAAE,YAAY,kBAAkB,QAAQ,QAAQ,YAAY,WAC3D,GAAG,aACD,mBAAmB,iBAAiB,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,KACpE,SAAS,SACV,eAAe,cAAc,UAAU,KAAK,OAAO,UAAU,KACzD,WAAW,YAAY,IACvB,cAAc,KACjB,MAAM,YACb,CAAC,CACA,KAAK;CAgER,OA9DsD,eAC7C;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IAEA;EACE,QAAQ,MAAM;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAGK;AACT"}
@@ -0,0 +1,10 @@
1
+ import { useMemo } from "react";
2
+ //#region src/components/Channel/hooks/useCreateTypingContext.ts
3
+ var useCreateTypingContext = (value) => {
4
+ const { typing } = value;
5
+ return useMemo(() => ({ typing }), [Object.keys(typing || {}).join()]);
6
+ };
7
+ //#endregion
8
+ export { useCreateTypingContext };
9
+
10
+ //# sourceMappingURL=useCreateTypingContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateTypingContext.mjs","names":[],"sources":["../../../../../src/components/Channel/hooks/useCreateTypingContext.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { TypingContextValue } from '../../../context/TypingContext';\n\nexport const useCreateTypingContext = (value: TypingContextValue) => {\n const { typing } = value;\n\n const typingValue = Object.keys(typing || {}).join();\n\n const typingContext: TypingContextValue = useMemo(\n () => ({\n typing,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [typingValue],\n );\n\n return typingContext;\n};\n"],"mappings":";;AAIA,IAAa,0BAA0B,UAA8B;CACnE,MAAM,EAAE,WAAW;CAYnB,OAR0C,eACjC,EACL,OACF,IAEA,CAPkB,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAO3C,CAAW,CAGP;AACT"}
@@ -0,0 +1,13 @@
1
+ import { useChatContext } from "../../../context/ChatContext.mjs";
2
+ //#region src/components/Channel/hooks/useEditMessageHandler.ts
3
+ var useEditMessageHandler = (doUpdateMessageRequest) => {
4
+ const { channel, client } = useChatContext("useEditMessageHandler");
5
+ return (updatedMessage, options) => {
6
+ if (doUpdateMessageRequest && channel) return Promise.resolve(doUpdateMessageRequest(channel.cid, updatedMessage, options));
7
+ return client.updateMessage(updatedMessage, void 0, options);
8
+ };
9
+ };
10
+ //#endregion
11
+ export { useEditMessageHandler };
12
+
13
+ //# sourceMappingURL=useEditMessageHandler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditMessageHandler.mjs","names":[],"sources":["../../../../../src/components/Channel/hooks/useEditMessageHandler.ts"],"sourcesContent":["import type {\n LocalMessage,\n MessageResponse,\n StreamChat,\n UpdateMessageOptions,\n} from 'stream-chat';\n\nimport { useChatContext } from '../../../context/ChatContext';\n\ntype UpdateHandler = (\n cid: string,\n updatedMessage: LocalMessage | MessageResponse,\n options?: UpdateMessageOptions,\n) => ReturnType<StreamChat['updateMessage']>;\n\nexport const useEditMessageHandler = (doUpdateMessageRequest?: UpdateHandler) => {\n const { channel, client } = useChatContext('useEditMessageHandler');\n\n return (\n updatedMessage: LocalMessage | MessageResponse,\n options?: UpdateMessageOptions,\n ) => {\n if (doUpdateMessageRequest && channel) {\n return Promise.resolve(\n doUpdateMessageRequest(channel.cid, updatedMessage, options),\n );\n }\n return client.updateMessage(updatedMessage, undefined, options);\n };\n};\n"],"mappings":";;AAeA,IAAa,yBAAyB,2BAA2C;CAC/E,MAAM,EAAE,SAAS,WAAW,eAAe,uBAAuB;CAElE,QACE,gBACA,YACG;EACH,IAAI,0BAA0B,SAC5B,OAAO,QAAQ,QACb,uBAAuB,QAAQ,KAAK,gBAAgB,OAAO,CAC7D;EAEF,OAAO,OAAO,cAAc,gBAAgB,KAAA,GAAW,OAAO;CAChE;AACF"}
@@ -0,0 +1,16 @@
1
+ import { useEffect, useRef } from "react";
2
+ //#region src/components/Channel/hooks/useIsMounted.ts
3
+ var useIsMounted = () => {
4
+ const isMounted = useRef(false);
5
+ useEffect(() => {
6
+ isMounted.current = true;
7
+ return () => {
8
+ isMounted.current = false;
9
+ };
10
+ }, []);
11
+ return isMounted;
12
+ };
13
+ //#endregion
14
+ export { useIsMounted };
15
+
16
+ //# sourceMappingURL=useIsMounted.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMounted.mjs","names":[],"sources":["../../../../../src/components/Channel/hooks/useIsMounted.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport const useIsMounted = () => {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return isMounted;\n};\n"],"mappings":";;AAEA,IAAa,qBAAqB;CAChC,MAAM,YAAY,OAAO,KAAK;CAE9B,gBAAgB;EACd,UAAU,UAAU;EACpB,aAAa;GACX,UAAU,UAAU;EACtB;CACF,GAAG,CAAC,CAAC;CAEL,OAAO;AACT"}
@@ -0,0 +1,18 @@
1
+ import { useCallback } from "react";
2
+ //#region src/components/Channel/hooks/useMentionsHandlers.ts
3
+ var useMentionsHandlers = (onMentionsHover, onMentionsClick) => useCallback((event, mentioned_users, message) => {
4
+ if (!onMentionsHover && !onMentionsClick || !(event.target instanceof HTMLElement)) return;
5
+ const textContent = event.target.innerHTML.replace("*", "");
6
+ if (textContent[0] === "@") {
7
+ const userName = textContent.replace("@", "");
8
+ const user = mentioned_users?.find(({ id, name }) => name === userName || id === userName);
9
+ if (onMentionsHover && typeof onMentionsHover === "function" && event.type === "mouseover") if (message) onMentionsHover(event, user, message);
10
+ else onMentionsHover(event, user);
11
+ if (onMentionsClick && event.type === "click" && typeof onMentionsClick === "function") if (message) onMentionsClick(event, user, message);
12
+ else onMentionsClick(event, user);
13
+ }
14
+ }, [onMentionsClick, onMentionsHover]);
15
+ //#endregion
16
+ export { useMentionsHandlers };
17
+
18
+ //# sourceMappingURL=useMentionsHandlers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMentionsHandlers.mjs","names":[],"sources":["../../../../../src/components/Channel/hooks/useMentionsHandlers.ts"],"sourcesContent":["import type React from 'react';\nimport { useCallback } from 'react';\nimport type { LocalMessage, UserResponse } from 'stream-chat';\n\nexport type OnMentionAction = (\n event: React.BaseSyntheticEvent,\n /**\n * @deprecated Use the third `message` argument to access mention metadata instead.\n * FIXME: Remove this argument in the next major release.\n */\n user?: UserResponse,\n message?: LocalMessage,\n) => void;\n\nexport const useMentionsHandlers = (\n onMentionsHover?: OnMentionAction,\n onMentionsClick?: OnMentionAction,\n) =>\n useCallback(\n (\n event: React.BaseSyntheticEvent,\n mentioned_users: UserResponse[],\n message?: LocalMessage,\n ) => {\n if (\n (!onMentionsHover && !onMentionsClick) ||\n !(event.target instanceof HTMLElement)\n ) {\n return;\n }\n\n const target = event.target;\n const textContent = target.innerHTML.replace('*', '');\n\n if (textContent[0] === '@') {\n const userName = textContent.replace('@', '');\n const user = mentioned_users?.find(\n ({ id, name }) => name === userName || id === userName,\n );\n\n if (\n onMentionsHover &&\n typeof onMentionsHover === 'function' &&\n event.type === 'mouseover'\n ) {\n if (message) {\n onMentionsHover(event, user, message);\n } else {\n onMentionsHover(event, user);\n }\n }\n\n if (\n onMentionsClick &&\n event.type === 'click' &&\n typeof onMentionsClick === 'function'\n ) {\n if (message) {\n onMentionsClick(event, user, message);\n } else {\n onMentionsClick(event, user);\n }\n }\n }\n },\n [onMentionsClick, onMentionsHover],\n );\n"],"mappings":";;AAcA,IAAa,uBACX,iBACA,oBAEA,aAEI,OACA,iBACA,YACG;CACH,IACG,CAAC,mBAAmB,CAAC,mBACtB,EAAE,MAAM,kBAAkB,cAE1B;CAIF,MAAM,cADS,MAAM,OACM,UAAU,QAAQ,KAAK,EAAE;CAEpD,IAAI,YAAY,OAAO,KAAK;EAC1B,MAAM,WAAW,YAAY,QAAQ,KAAK,EAAE;EAC5C,MAAM,OAAO,iBAAiB,MAC3B,EAAE,IAAI,WAAW,SAAS,YAAY,OAAO,QAChD;EAEA,IACE,mBACA,OAAO,oBAAoB,cAC3B,MAAM,SAAS,aAEf,IAAI,SACF,gBAAgB,OAAO,MAAM,OAAO;OAEpC,gBAAgB,OAAO,IAAI;EAI/B,IACE,mBACA,MAAM,SAAS,WACf,OAAO,oBAAoB,YAE3B,IAAI,SACF,gBAAgB,OAAO,MAAM,OAAO;OAEpC,gBAAgB,OAAO,IAAI;CAGjC;AACF,GACA,CAAC,iBAAiB,eAAe,CACnC"}