stream-chat-react 14.0.0-beta.2 → 14.0.0-beta.4

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 (198) hide show
  1. package/dist/cjs/WithAudioPlayback.236d404c.js +4670 -0
  2. package/dist/cjs/WithAudioPlayback.236d404c.js.map +1 -0
  3. package/dist/{audioProcessing-BbOs2wMd.js → cjs/audioProcessing.56e5db9d.js} +1 -1
  4. package/dist/cjs/audioProcessing.56e5db9d.js.map +1 -0
  5. package/dist/cjs/emojis.js +2 -2
  6. package/dist/cjs/emojis.js.map +1 -1
  7. package/dist/cjs/index.js +807 -485
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/mp3-encoder.js +1 -1
  10. package/dist/css/emoji-replacement.css +34 -0
  11. package/dist/css/emoji-replacement.css.map +1 -0
  12. package/dist/css/index.css +190 -51
  13. package/dist/css/index.css.map +1 -1
  14. package/dist/es/WithAudioPlayback.89700cb5.mjs +4654 -0
  15. package/dist/es/WithAudioPlayback.89700cb5.mjs.map +1 -0
  16. package/dist/{audioProcessing-ByEVSjGG.mjs → es/audioProcessing.21cb49e1.mjs} +1 -1
  17. package/dist/es/audioProcessing.21cb49e1.mjs.map +1 -0
  18. package/dist/es/emojis.mjs +2 -2
  19. package/dist/es/emojis.mjs.map +1 -1
  20. package/dist/es/index.mjs +857 -535
  21. package/dist/es/index.mjs.map +1 -1
  22. package/dist/es/mp3-encoder.mjs +1 -1
  23. package/dist/types/components/Attachment/Giphy.d.ts.map +1 -1
  24. package/dist/types/components/Attachment/VoiceRecording.d.ts.map +1 -1
  25. package/dist/types/components/AudioPlayback/AudioPlayer.d.ts.map +1 -1
  26. package/dist/types/components/BaseImage/toBaseImageDescriptors.d.ts +1 -1
  27. package/dist/types/components/BaseImage/toBaseImageDescriptors.d.ts.map +1 -1
  28. package/dist/types/components/ChannelList/hooks/useMobileNavigation.d.ts.map +1 -1
  29. package/dist/types/components/ChannelListItem/ChannelListItemActionButtons.d.ts +3 -1
  30. package/dist/types/components/ChannelListItem/ChannelListItemActionButtons.d.ts.map +1 -1
  31. package/dist/types/components/ChannelListItem/ChannelListItemActionButtons.defaults.d.ts +6 -3
  32. package/dist/types/components/ChannelListItem/ChannelListItemActionButtons.defaults.d.ts.map +1 -1
  33. package/dist/types/components/Chat/hooks/useSplitActionSet.d.ts +5 -0
  34. package/dist/types/components/Chat/hooks/useSplitActionSet.d.ts.map +1 -1
  35. package/dist/types/components/Dialog/components/ContextMenu.d.ts +119 -3
  36. package/dist/types/components/Dialog/components/ContextMenu.d.ts.map +1 -1
  37. package/dist/types/components/Dialog/hooks/useDialog.d.ts +1 -1
  38. package/dist/types/components/Dialog/hooks/useDialog.d.ts.map +1 -1
  39. package/dist/types/components/Dialog/service/DialogAnchor.d.ts +14 -1
  40. package/dist/types/components/Dialog/service/DialogAnchor.d.ts.map +1 -1
  41. package/dist/types/components/Dialog/service/DialogManager.d.ts +14 -3
  42. package/dist/types/components/Dialog/service/DialogManager.d.ts.map +1 -1
  43. package/dist/types/components/Dialog/service/DialogPortal.d.ts.map +1 -1
  44. package/dist/types/components/Form/TextInput.d.ts +2 -2
  45. package/dist/types/components/Form/TextInput.d.ts.map +1 -1
  46. package/dist/types/components/Gallery/GalleryContext.d.ts +1 -1
  47. package/dist/types/components/Gallery/GalleryContext.d.ts.map +1 -1
  48. package/dist/types/components/Icons/IconGiphy.d.ts.map +1 -1
  49. package/dist/types/components/Icons/icons.d.ts +56 -340
  50. package/dist/types/components/Icons/icons.d.ts.map +1 -1
  51. package/dist/types/components/Loading/LoadingIndicator.d.ts +2 -2
  52. package/dist/types/components/Loading/LoadingIndicator.d.ts.map +1 -1
  53. package/dist/types/components/MessageActions/MessageActions.d.ts +14 -3
  54. package/dist/types/components/MessageActions/MessageActions.d.ts.map +1 -1
  55. package/dist/types/components/MessageActions/MessageActions.defaults.d.ts +1 -1
  56. package/dist/types/components/MessageActions/MessageActions.defaults.d.ts.map +1 -1
  57. package/dist/types/components/MessageActions/QuickMessageActionButton.d.ts.map +1 -1
  58. package/dist/types/components/MessageActions/hooks/useBaseMessageActionSetFilter.d.ts.map +1 -1
  59. package/dist/types/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.d.ts.map +1 -1
  60. package/dist/types/components/MessageComposer/AttachmentSelector/AttachmentSelector.d.ts.map +1 -1
  61. package/dist/types/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts +18 -0
  62. package/dist/types/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -1
  63. package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotes.d.ts.map +1 -1
  64. package/dist/types/components/Poll/PollCreationDialog/OptionFieldSet.d.ts.map +1 -1
  65. package/dist/types/components/Reactions/MessageReactions.d.ts.map +1 -1
  66. package/dist/types/components/Reactions/MessageReactionsDetail.d.ts +1 -0
  67. package/dist/types/components/Reactions/MessageReactionsDetail.d.ts.map +1 -1
  68. package/dist/types/components/Reactions/ReactionSelector.d.ts +1 -1
  69. package/dist/types/components/Reactions/ReactionSelector.d.ts.map +1 -1
  70. package/dist/types/components/TextareaComposer/SuggestionList/SuggestionList.d.ts.map +1 -1
  71. package/dist/types/components/TextareaComposer/TextareaComposer.d.ts.map +1 -1
  72. package/dist/types/context/ChannelListContext.d.ts +1 -1
  73. package/dist/types/context/ChannelListContext.d.ts.map +1 -1
  74. package/dist/types/context/ComponentContext.d.ts +5 -1
  75. package/dist/types/context/ComponentContext.d.ts.map +1 -1
  76. package/dist/types/context/DialogManagerContext.d.ts +11 -7
  77. package/dist/types/context/DialogManagerContext.d.ts.map +1 -1
  78. package/package.json +5 -4
  79. package/dist/WithAudioPlayback-C1hfFIcu.mjs +0 -4716
  80. package/dist/WithAudioPlayback-C1hfFIcu.mjs.map +0 -1
  81. package/dist/WithAudioPlayback-myzUS2m6.js +0 -4732
  82. package/dist/WithAudioPlayback-myzUS2m6.js.map +0 -1
  83. package/dist/assets/icons/stream-chat-icons.eot +0 -0
  84. package/dist/assets/icons/stream-chat-icons.svg +0 -50
  85. package/dist/assets/icons/stream-chat-icons.ttf +0 -0
  86. package/dist/assets/icons/stream-chat-icons.woff +0 -0
  87. package/dist/assets/icons/stream-chat-icons.woff2 +0 -0
  88. package/dist/audioProcessing-BbOs2wMd.js.map +0 -1
  89. package/dist/audioProcessing-ByEVSjGG.mjs.map +0 -1
  90. package/dist/css/v2/emoji-mart.css +0 -1
  91. package/dist/css/v2/emoji-replacement.css +0 -1
  92. package/dist/css/v2/index.css +0 -1
  93. package/dist/css/v2/index.layout.css +0 -1
  94. package/dist/scss/v2/AIStateIndicator/AIStateIndicator-layout.scss +0 -3
  95. package/dist/scss/v2/AIStateIndicator/AIStateIndicator-theme.scss +0 -7
  96. package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +0 -701
  97. package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +0 -605
  98. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-layout.scss +0 -141
  99. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-theme.scss +0 -190
  100. package/dist/scss/v2/AudioRecorder/AudioRecorder-layout.scss +0 -139
  101. package/dist/scss/v2/AudioRecorder/AudioRecorder-theme.scss +0 -61
  102. package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +0 -94
  103. package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +0 -220
  104. package/dist/scss/v2/Avatar/Avatar-layout.scss +0 -137
  105. package/dist/scss/v2/Avatar/Avatar-theme.scss +0 -64
  106. package/dist/scss/v2/BaseImage/BaseImage-layout.scss +0 -21
  107. package/dist/scss/v2/BaseImage/BaseImage-theme.scss +0 -35
  108. package/dist/scss/v2/BaseImage/index.scss +0 -2
  109. package/dist/scss/v2/Channel/Channel-layout.scss +0 -141
  110. package/dist/scss/v2/Channel/Channel-theme.scss +0 -100
  111. package/dist/scss/v2/ChannelHeader/ChannelHeader-layout.scss +0 -27
  112. package/dist/scss/v2/ChannelHeader/ChannelHeader-theme.scss +0 -43
  113. package/dist/scss/v2/ChannelList/ChannelList-layout.scss +0 -65
  114. package/dist/scss/v2/ChannelList/ChannelList-theme.scss +0 -89
  115. package/dist/scss/v2/ChannelPreview/ChannelPreview-layout.scss +0 -126
  116. package/dist/scss/v2/ChannelPreview/ChannelPreview-theme.scss +0 -148
  117. package/dist/scss/v2/ChannelSearch/ChannelSearch-layout.scss +0 -122
  118. package/dist/scss/v2/ChannelSearch/ChannelSearch-theme.scss +0 -238
  119. package/dist/scss/v2/ChatView/ChatView-layout.scss +0 -43
  120. package/dist/scss/v2/ChatView/ChatView-theme.scss +0 -32
  121. package/dist/scss/v2/Dialog/Dialog-layout.scss +0 -70
  122. package/dist/scss/v2/Dialog/Dialog-theme.scss +0 -103
  123. package/dist/scss/v2/DragAndDropContainer/DragAndDropContainer-layout.scss +0 -5
  124. package/dist/scss/v2/DragAndDropContainer/DragAndDropContainer-theme.scss +0 -47
  125. package/dist/scss/v2/DropzoneContainer/DropzoneContainer-layout.scss +0 -14
  126. package/dist/scss/v2/DropzoneContainer/DropzoneContainer-theme.scss +0 -17
  127. package/dist/scss/v2/EditMessageForm/EditMessageForm-layout.scss +0 -51
  128. package/dist/scss/v2/EditMessageForm/EditMessageForm-theme.scss +0 -50
  129. package/dist/scss/v2/Form/Form-layout.scss +0 -49
  130. package/dist/scss/v2/Form/Form-theme.scss +0 -82
  131. package/dist/scss/v2/Icon/Icon-layout.scss +0 -98
  132. package/dist/scss/v2/Icon/Icon-theme.scss +0 -17
  133. package/dist/scss/v2/ImageCarousel/ImageCarousel-layout.scss +0 -51
  134. package/dist/scss/v2/ImageCarousel/ImageCarousel-theme.scss +0 -30
  135. package/dist/scss/v2/InfiniteScrollPaginator/InfiniteScrollPaginator-layout.scss +0 -4
  136. package/dist/scss/v2/LinkPreview/LinkPreview-layout.scss +0 -67
  137. package/dist/scss/v2/LinkPreview/LinkPreview-theme.scss +0 -32
  138. package/dist/scss/v2/LinkPreview/index.scss +0 -2
  139. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-layout.scss +0 -64
  140. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-theme.scss +0 -14
  141. package/dist/scss/v2/Location/Location-layout.scss +0 -52
  142. package/dist/scss/v2/Location/Location-theme.scss +0 -32
  143. package/dist/scss/v2/Message/Message-layout.scss +0 -619
  144. package/dist/scss/v2/Message/Message-theme.scss +0 -483
  145. package/dist/scss/v2/MessageActionsBox/MessageActionsBox-layout.scss +0 -21
  146. package/dist/scss/v2/MessageActionsBox/MessageActionsBox-theme.scss +0 -85
  147. package/dist/scss/v2/MessageBouncePrompt/MessageBouncePrompt-layout.scss +0 -19
  148. package/dist/scss/v2/MessageBouncePrompt/MessageBouncePrompt-theme.scss +0 -51
  149. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +0 -268
  150. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +0 -359
  151. package/dist/scss/v2/MessageList/MessageList-layout.scss +0 -65
  152. package/dist/scss/v2/MessageList/MessageList-theme.scss +0 -107
  153. package/dist/scss/v2/MessageList/VirtualizedMessageList-layout.scss +0 -57
  154. package/dist/scss/v2/MessageList/VirtualizedMessageList-theme.scss +0 -41
  155. package/dist/scss/v2/MessageReactions/MessageReactions-layout.scss +0 -143
  156. package/dist/scss/v2/MessageReactions/MessageReactions-theme.scss +0 -92
  157. package/dist/scss/v2/MessageReactions/MessageReactionsSelector-layout.scss +0 -86
  158. package/dist/scss/v2/MessageReactions/MessageReactionsSelector-theme.scss +0 -94
  159. package/dist/scss/v2/Modal/Modal-layout.scss +0 -74
  160. package/dist/scss/v2/Modal/Modal-theme.scss +0 -109
  161. package/dist/scss/v2/Notification/MessageNotification-layout.scss +0 -12
  162. package/dist/scss/v2/Notification/MessageNotification-theme.scss +0 -34
  163. package/dist/scss/v2/Notification/Notification-layout.scss +0 -7
  164. package/dist/scss/v2/Notification/Notification-theme.scss +0 -32
  165. package/dist/scss/v2/Notification/NotificationList-layout.scss +0 -11
  166. package/dist/scss/v2/Notification/NotificationList-theme.scss +0 -31
  167. package/dist/scss/v2/Poll/Poll-layout.scss +0 -493
  168. package/dist/scss/v2/Poll/Poll-theme.scss +0 -178
  169. package/dist/scss/v2/Search/Search-layout.scss +0 -148
  170. package/dist/scss/v2/Search/Search-theme.scss +0 -222
  171. package/dist/scss/v2/Thread/Thread-layout.scss +0 -65
  172. package/dist/scss/v2/Thread/Thread-theme.scss +0 -82
  173. package/dist/scss/v2/ThreadList/ThreadList-layout.scss +0 -152
  174. package/dist/scss/v2/ThreadList/ThreadList-theme.scss +0 -75
  175. package/dist/scss/v2/Tooltip/Tooltip-layout.scss +0 -10
  176. package/dist/scss/v2/Tooltip/Tooltip-theme.scss +0 -36
  177. package/dist/scss/v2/TypingIndicator/TypingIndicator-layout.scss +0 -31
  178. package/dist/scss/v2/TypingIndicator/TypingIndicator-theme.scss +0 -68
  179. package/dist/scss/v2/UnreadCountBadge/UnreadCountBadge-layout.scss +0 -49
  180. package/dist/scss/v2/UnreadCountBadge/UnreadCountBadge-theme.scss +0 -11
  181. package/dist/scss/v2/_base.scss +0 -65
  182. package/dist/scss/v2/_emoji-replacement.scss +0 -45
  183. package/dist/scss/v2/_global-layout-variables.scss +0 -65
  184. package/dist/scss/v2/_global-theme-variables.scss +0 -173
  185. package/dist/scss/v2/_icons.scss +0 -36
  186. package/dist/scss/v2/_palette-variables.scss +0 -55
  187. package/dist/scss/v2/_utils.scss +0 -212
  188. package/dist/scss/v2/_variables.scss +0 -2
  189. package/dist/scss/v2/common/CTAButton/CTAButton-layout.scss +0 -4
  190. package/dist/scss/v2/common/CTAButton/CTAButton-theme.scss +0 -42
  191. package/dist/scss/v2/common/CircleFAButton/CircleFAButton-layout.scss +0 -14
  192. package/dist/scss/v2/common/CircleFAButton/CircleFAButton-theme.scss +0 -35
  193. package/dist/scss/v2/index.layout.scss +0 -49
  194. package/dist/scss/v2/index.scss +0 -50
  195. package/dist/scss/v2/vendor/emoji-mart.scss +0 -514
  196. package/dist/scss/v2/vendor/react-image-gallery.scss +0 -258
  197. /package/dist/{assets → css/assets}/EmojiOneColor.woff2 +0 -0
  198. /package/dist/{assets → css/assets}/NotoColorEmoji-flags.woff2 +0 -0
@@ -1,50 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg xmlns="http://www.w3.org/2000/svg">
4
- <metadata>Copyright (C) 2024 by original authors @ fontello.com</metadata>
5
- <defs>
6
- <font id="stream-chat-icons" horiz-adv-x="1000" >
7
- <font-face font-family="stream-chat-icons" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
8
- <missing-glyph horiz-adv-x="1000" />
9
- <glyph glyph-name="action" unicode="&#xe800;" d="M500 517c46 0 83 37 83 83 0 46-37 83-83 83-46 0-83-37-83-83 0-46 37-83 83-83z m0-84c-46 0-83-37-83-83 0-46 37-83 83-83 46 0 83 37 83 83 0 46-37 83-83 83z m0-250c-46 0-83-37-83-83 0-46 37-83 83-83 46 0 83 37 83 83 0 46-37 83-83 83z" horiz-adv-x="1000" />
10
-
11
- <glyph glyph-name="arrow-down" unicode="&#xe801;" d="M309 504l191-190 191 190 59-58-250-250-250 250 59 58z" horiz-adv-x="1000" />
12
-
13
- <glyph glyph-name="arrow-left" unicode="&#xe802;" d="M654 541l-58 59-250-250 250-250 58 59-190 191 190 191z" horiz-adv-x="1000" />
14
-
15
- <glyph glyph-name="arrow-right" unicode="&#xe803;" d="M404 600l-58-59 191-191-191-191 58-59 250 250-250 250z" horiz-adv-x="1000" />
16
-
17
- <glyph glyph-name="close" unicode="&#xe804;" d="M792 583l-59 59-233-233-233 233-59-59 233-233-233-233 59-59 233 233 233-233 59 59-233 233 233 233z" horiz-adv-x="1000" />
18
-
19
- <glyph glyph-name="arrow-up" unicode="&#xe805;" d="M691 196l-191 191-191-191-59 58 250 250 250-250-59-58z" horiz-adv-x="1000" />
20
-
21
- <glyph glyph-name="chat-bubble" unicode="&#xe806;" d="M779 670h-558c-39 0-70-32-70-70v-629l139 140h489c39 0 70 32 70 70v419c0 38-31 70-70 70z m0-489h-489l-69-70v489h558v-419z" horiz-adv-x="1000" />
22
-
23
- <glyph glyph-name="pause" unicode="&#xe807;" d="M250 58h167v584h-167v-584z m333 584v-584h167v584h-167z" horiz-adv-x="1000" />
24
-
25
- <glyph glyph-name="download" unicode="&#xe808;" d="M806 432c-28 143-154 251-306 251-120 0-225-68-277-168-125-13-223-120-223-248 0-138 112-250 250-250h542c115 0 208 93 208 208 0 110-85 199-194 207z m-14-332h-542c-92 0-167 75-167 167 0 85 64 156 149 165l44 5 21 39c40 77 117 124 203 124 109 0 203-77 225-185l12-62 64-5c65-4 116-58 116-123 0-69-57-125-125-125z m-232 333h-120v-125h-107l167-166 167 166h-107v125z" horiz-adv-x="1000" />
26
-
27
- <glyph glyph-name="delivered" unicode="&#xe809;" d="M375 175l-175 175-58-58 233-234 500 500-58 59-442-442z" horiz-adv-x="1000" />
28
-
29
- <glyph glyph-name="reaction" unicode="&#xe80b;" d="M500 767c-230 0-417-187-417-417 0-230 187-417 417-417 230 0 417 187 417 417 0 230-187 417-417 417z m0-750c-184 0-333 149-333 333 0 184 149 333 333 333 184 0 333-149 333-333 0-184-149-333-333-333z m146 375c34 0 62 28 62 62 0 35-28 63-62 63-35 0-63-28-63-63 0-34 28-62 63-62z m-292 0c35 0 63 28 63 62 0 35-28 63-63 63-34 0-62-28-62-63 0-34 28-62 62-62z m146-271c97 0 180 61 213 146h-426c33-85 116-146 213-146z" horiz-adv-x="1000" />
30
-
31
- <glyph glyph-name="error" unicode="&#xe80c;" d="M500 767c-230 0-417-187-417-417 0-230 187-417 417-417 230 0 417 187 417 417 0 230-187 417-417 417z m42-625h-84v83h84v-83z m0 166h-84v250h84v-250z" horiz-adv-x="1000" />
32
-
33
- <glyph glyph-name="read" unicode="&#xe80d;" d="M749 571l-59 58-264-264 58-58 265 264z m176 58l-441-440-174 173-58-58 232-233 500 500-59 58z m-909-325l233-233 58 58-232 233-59-58z" horiz-adv-x="1000" />
34
-
35
- <glyph glyph-name="retry" unicode="&#xe80e;" d="M735 585c-60 61-143 98-235 98-184 0-333-149-333-333 0-184 149-333 333-333 155 0 285 106 322 250h-87c-34-97-126-167-235-167-138 0-250 112-250 250 0 138 112 250 250 250 69 0 131-29 176-74l-134-134h291v291l-98-98z" horiz-adv-x="1000" />
36
-
37
- <glyph glyph-name="reply-in-thread" unicode="&#xe80f;" d="M417 496v167l-292-292 292-292v171c208 0 354-67 458-212-42 208-167 416-458 458z" horiz-adv-x="1000" />
38
-
39
- <glyph glyph-name="send" unicode="&#xe810;" d="M167-67l833 417-833 417 0-324 595-93-595-93 0-324z" horiz-adv-x="1000" />
40
-
41
- <glyph glyph-name="attach" unicode="&#xe811;" d="M542 558h-84v-166h-166v-84h166v-166h84v166h166v84h-166v166z m-42 209c-230 0-417-187-417-417 0-230 187-417 417-417 230 0 417 187 417 417 0 230-187 417-417 417z m0-750c-184 0-333 149-333 333 0 184 149 333 333 333 184 0 333-149 333-333 0-184-149-333-333-333z" horiz-adv-x="1000" />
42
-
43
- <glyph glyph-name="mic" unicode="&#xe812;" d="M350 225c83 0 150 67 150 150v300c0 83-67 150-150 150-83 0-150-67-150-150v-300c0-83 67-150 150-150z m250 150c0-138-112-250-250-250-138 0-250 112-250 250h-100c0-176 131-321 300-346v-154h100v154c170 25 300 170 300 346h-100z" horiz-adv-x="700" />
44
-
45
- <glyph glyph-name="bin" unicode="&#xe813;" d="M250 58c0-45 38-83 83-83h334c46 0 83 38 83 83v417c0 46-37 83-83 83h-334c-45 0-83-37-83-83v-417z m500 625h-104l-30 30c-7 7-18 12-29 12h-174c-11 0-22-5-29-12l-30-30h-104c-23 0-42-18-42-41 0-23 19-42 42-42h500c23 0 42 19 42 42 0 23-19 41-42 41z" horiz-adv-x="1000" />
46
-
47
- <glyph glyph-name="play" unicode="&#xe814;" d="M398 640c-28 19-65-1-65-34v-511c0-34 37-54 65-35l383 255c25 17 25 53 0 70l-383 255z" horiz-adv-x="1000" />
48
- </font>
49
- </defs>
50
- </svg>
@@ -1 +0,0 @@
1
- {"version":3,"file":"audioProcessing-BbOs2wMd.js","sources":["../src/components/ReactFileUtilities/utils.ts","../src/components/MediaRecorder/transcode/audioProcessing.ts"],"sourcesContent":["import type { FileLike, RecordedMediaType } from './types';\nimport type { ChangeEvent } from 'react';\nimport { useCallback } from 'react';\n\nexport const useHandleFileChangeWrapper = (\n resetOnChange = false,\n handler?: (files: Array<File>) => void,\n) =>\n useCallback(\n ({ currentTarget }: ChangeEvent<HTMLInputElement>) => {\n const { files } = currentTarget;\n\n if (!files) return;\n\n try {\n handler?.(Array.from(files));\n } catch (error) {\n console.error(error);\n }\n\n if (resetOnChange) currentTarget.value = '';\n },\n [handler, resetOnChange],\n );\n\nexport function dataTransferItemsHaveFiles(items?: DataTransferItem[]): boolean {\n if (!items || !items.length) {\n return false;\n }\n for (const item of items) {\n if (item.kind === 'file' || item.type === 'text/html') {\n return true;\n }\n }\n return false;\n}\n\nexport async function dataTransferItemsToFiles(\n items?: DataTransferItem[],\n): Promise<FileLike[]> {\n if (!items || !items.length) {\n return [];\n }\n\n // If there are files inside the DataTransferItem prefer those\n const fileLikes = getFileLikes(items);\n if (fileLikes.length) {\n return fileLikes;\n }\n\n // Otherwise extract images from html\n const blobPromises = [];\n for (const item of items) {\n if (item.type === 'text/html') {\n blobPromises.push(\n new Promise<void>((accept) => {\n item.getAsString(async (s) => {\n const imagePromises = extractImageSources(s).map((src) =>\n getImageSource(fileLikes, src),\n );\n\n await Promise.all(imagePromises);\n accept();\n });\n }),\n );\n }\n }\n await Promise.all(blobPromises);\n return fileLikes;\n}\n\nfunction getFileLikes(items: DataTransferItem[]) {\n const fileLikes = [];\n for (const item of items) {\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (file) {\n fileLikes.push(file);\n }\n }\n }\n return fileLikes;\n}\n\nasync function getImageSource(fileLikes: FileLike[], src: string) {\n let res;\n try {\n res = await fetch(src);\n } catch (e) {\n return;\n }\n const contentType = res.headers.get('Content-type') || 'application/octet-stream';\n const buf = await res.arrayBuffer();\n const blob = new Blob([buf], { type: contentType });\n fileLikes.push(blob);\n}\n\nconst extractImageSources = (s: string) => {\n const imageTags = new DOMParser()\n .parseFromString(s, 'text/html')\n .getElementsByTagName('img');\n return Array.from(imageTags, (tag) => tag.src).filter((tag) => tag);\n};\n\nexport const isBlobButNotFile = (obj: unknown): obj is Blob =>\n obj instanceof Blob && !(obj instanceof File);\n\nexport const createFileFromBlobs = ({\n blobsArray,\n fileName,\n mimeType,\n}: {\n blobsArray: Blob[];\n fileName: string;\n mimeType: string;\n}) => {\n const concatenatedBlob = new Blob(blobsArray, { type: mimeType });\n return new File([concatenatedBlob], fileName, { type: concatenatedBlob.type });\n};\n\nexport const getExtensionFromMimeType = (mimeType: string) => {\n const match = mimeType.match(/\\/([^/;]+)/);\n return match && match[1];\n};\n\nexport const getRecordedMediaTypeFromMimeType = (\n mimeType: string,\n): RecordedMediaType | null => {\n const match = mimeType.match(/^(audio|video)\\/.*$/);\n return match && (match[1] as RecordedMediaType);\n};\n\nexport const readFileAsArrayBuffer = (file: File): Promise<ArrayBuffer> =>\n new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = () => {\n resolve(fileReader.result as ArrayBuffer);\n };\n\n fileReader.onerror = () => {\n reject(fileReader.error);\n };\n\n fileReader.readAsArrayBuffer(file);\n });\n\nexport const generateFileName = (mimeType: string) =>\n `file_${new Date().toISOString()}.${getExtensionFromMimeType(mimeType)}`;\n","import { readFileAsArrayBuffer } from '../../ReactFileUtilities';\n\n/**\n * In the context of resampling audio data, AudioContext is used to decode the input audio file into an AudioBuffer,\n * which is a fundamental data structure representing audio data.\n * @param file\n */\nexport const toAudioBuffer = async (file: File) => {\n const audioCtx = new AudioContext();\n\n const arrayBuffer = await readFileAsArrayBuffer(file);\n const decodedData = await audioCtx.decodeAudioData(arrayBuffer);\n if (audioCtx.state !== 'closed') await audioCtx.close();\n return decodedData;\n};\n\n/**\n * OfflineAudioContext is a specialized type of AudioContext that does not render audio in real-time and is used for offline audio processing tasks.\n * It allows performing audio processing and rendering without actually playing the audio through speakers or outputting it to a destination.\n * In the context of resampling audio data, OfflineAudioContext is used to resample the decoded AudioBuffer from a file to the desired sample rate.\n * It provides more flexibility and control over audio processing, as it can operate at different sample rates and durations compared to real-time audio contexts.\n * @param audioBuffer\n * @param sampleRate\n */\nexport const renderAudio = async (audioBuffer: AudioBuffer, sampleRate: number) => {\n const offlineAudioCtx = new OfflineAudioContext(\n audioBuffer.numberOfChannels,\n audioBuffer.duration * sampleRate,\n sampleRate,\n );\n const source = offlineAudioCtx.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(offlineAudioCtx.destination);\n source.start();\n\n return await offlineAudioCtx.startRendering();\n};\n"],"names":["useCallback"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"audioProcessing-ByEVSjGG.mjs","sources":["../src/components/ReactFileUtilities/utils.ts","../src/components/MediaRecorder/transcode/audioProcessing.ts"],"sourcesContent":["import type { FileLike, RecordedMediaType } from './types';\nimport type { ChangeEvent } from 'react';\nimport { useCallback } from 'react';\n\nexport const useHandleFileChangeWrapper = (\n resetOnChange = false,\n handler?: (files: Array<File>) => void,\n) =>\n useCallback(\n ({ currentTarget }: ChangeEvent<HTMLInputElement>) => {\n const { files } = currentTarget;\n\n if (!files) return;\n\n try {\n handler?.(Array.from(files));\n } catch (error) {\n console.error(error);\n }\n\n if (resetOnChange) currentTarget.value = '';\n },\n [handler, resetOnChange],\n );\n\nexport function dataTransferItemsHaveFiles(items?: DataTransferItem[]): boolean {\n if (!items || !items.length) {\n return false;\n }\n for (const item of items) {\n if (item.kind === 'file' || item.type === 'text/html') {\n return true;\n }\n }\n return false;\n}\n\nexport async function dataTransferItemsToFiles(\n items?: DataTransferItem[],\n): Promise<FileLike[]> {\n if (!items || !items.length) {\n return [];\n }\n\n // If there are files inside the DataTransferItem prefer those\n const fileLikes = getFileLikes(items);\n if (fileLikes.length) {\n return fileLikes;\n }\n\n // Otherwise extract images from html\n const blobPromises = [];\n for (const item of items) {\n if (item.type === 'text/html') {\n blobPromises.push(\n new Promise<void>((accept) => {\n item.getAsString(async (s) => {\n const imagePromises = extractImageSources(s).map((src) =>\n getImageSource(fileLikes, src),\n );\n\n await Promise.all(imagePromises);\n accept();\n });\n }),\n );\n }\n }\n await Promise.all(blobPromises);\n return fileLikes;\n}\n\nfunction getFileLikes(items: DataTransferItem[]) {\n const fileLikes = [];\n for (const item of items) {\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (file) {\n fileLikes.push(file);\n }\n }\n }\n return fileLikes;\n}\n\nasync function getImageSource(fileLikes: FileLike[], src: string) {\n let res;\n try {\n res = await fetch(src);\n } catch (e) {\n return;\n }\n const contentType = res.headers.get('Content-type') || 'application/octet-stream';\n const buf = await res.arrayBuffer();\n const blob = new Blob([buf], { type: contentType });\n fileLikes.push(blob);\n}\n\nconst extractImageSources = (s: string) => {\n const imageTags = new DOMParser()\n .parseFromString(s, 'text/html')\n .getElementsByTagName('img');\n return Array.from(imageTags, (tag) => tag.src).filter((tag) => tag);\n};\n\nexport const isBlobButNotFile = (obj: unknown): obj is Blob =>\n obj instanceof Blob && !(obj instanceof File);\n\nexport const createFileFromBlobs = ({\n blobsArray,\n fileName,\n mimeType,\n}: {\n blobsArray: Blob[];\n fileName: string;\n mimeType: string;\n}) => {\n const concatenatedBlob = new Blob(blobsArray, { type: mimeType });\n return new File([concatenatedBlob], fileName, { type: concatenatedBlob.type });\n};\n\nexport const getExtensionFromMimeType = (mimeType: string) => {\n const match = mimeType.match(/\\/([^/;]+)/);\n return match && match[1];\n};\n\nexport const getRecordedMediaTypeFromMimeType = (\n mimeType: string,\n): RecordedMediaType | null => {\n const match = mimeType.match(/^(audio|video)\\/.*$/);\n return match && (match[1] as RecordedMediaType);\n};\n\nexport const readFileAsArrayBuffer = (file: File): Promise<ArrayBuffer> =>\n new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = () => {\n resolve(fileReader.result as ArrayBuffer);\n };\n\n fileReader.onerror = () => {\n reject(fileReader.error);\n };\n\n fileReader.readAsArrayBuffer(file);\n });\n\nexport const generateFileName = (mimeType: string) =>\n `file_${new Date().toISOString()}.${getExtensionFromMimeType(mimeType)}`;\n","import { readFileAsArrayBuffer } from '../../ReactFileUtilities';\n\n/**\n * In the context of resampling audio data, AudioContext is used to decode the input audio file into an AudioBuffer,\n * which is a fundamental data structure representing audio data.\n * @param file\n */\nexport const toAudioBuffer = async (file: File) => {\n const audioCtx = new AudioContext();\n\n const arrayBuffer = await readFileAsArrayBuffer(file);\n const decodedData = await audioCtx.decodeAudioData(arrayBuffer);\n if (audioCtx.state !== 'closed') await audioCtx.close();\n return decodedData;\n};\n\n/**\n * OfflineAudioContext is a specialized type of AudioContext that does not render audio in real-time and is used for offline audio processing tasks.\n * It allows performing audio processing and rendering without actually playing the audio through speakers or outputting it to a destination.\n * In the context of resampling audio data, OfflineAudioContext is used to resample the decoded AudioBuffer from a file to the desired sample rate.\n * It provides more flexibility and control over audio processing, as it can operate at different sample rates and durations compared to real-time audio contexts.\n * @param audioBuffer\n * @param sampleRate\n */\nexport const renderAudio = async (audioBuffer: AudioBuffer, sampleRate: number) => {\n const offlineAudioCtx = new OfflineAudioContext(\n audioBuffer.numberOfChannels,\n audioBuffer.duration * sampleRate,\n sampleRate,\n );\n const source = offlineAudioCtx.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(offlineAudioCtx.destination);\n source.start();\n\n return await offlineAudioCtx.startRendering();\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- .emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;font-size:16px;display:inline-block;color:#222427;border:1px solid #d9d9d9;border-radius:5px;background:#fff}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #d9d9d9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.emoji-mart-anchors{display:flex;flex-direction:row;justify-content:space-between;padding:0 6px;line-height:0}.emoji-mart-anchor{position:relative;display:block;flex:1 1 auto;color:#858585;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;margin:0;box-shadow:none;background:none;border:none}.emoji-mart-anchor:focus{outline:0}.emoji-mart-anchor:hover,.emoji-mart-anchor:focus,.emoji-mart-anchor-selected{color:#464646}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#464646}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg,.emoji-mart-anchors img{fill:currentColor;height:18px;width:18px}.emoji-mart-scroll{overflow-y:scroll;overflow-x:hidden;height:270px;padding:0 6px 6px;will-change:transform}.emoji-mart-search{margin-top:6px;padding:0 6px;position:relative}.emoji-mart-search input{font-size:16px;display:block;width:100%;padding:5px 25px 6px 10px;border-radius:5px;border:1px solid #d9d9d9;outline:0}.emoji-mart-search input,.emoji-mart-search input::-webkit-search-decoration,.emoji-mart-search input::-webkit-search-cancel-button,.emoji-mart-search input::-webkit-search-results-button,.emoji-mart-search input::-webkit-search-results-decoration{-webkit-appearance:none}.emoji-mart-search-icon{position:absolute;top:7px;right:11px;z-index:2;padding:2px 5px 1px;border:none;background:none}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center;cursor:default}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#f4f4f4;border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background-color:#fff;background-color:hsla(0,0%,100%,.95)}.emoji-mart-category-list{margin:0;padding:0}.emoji-mart-category-list li{list-style:none;margin:0;padding:0;display:inline-block}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0;margin:0;padding:0;border:none;background:none;box-shadow:none}.emoji-mart-emoji-native{font-family:"Segoe UI Emoji","Segoe UI Symbol","Segoe UI","Apple Color Emoji","Twemoji Mozilla","Noto Color Emoji","Android Emoji"}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#858585}.emoji-mart-no-results-img{display:block;margin-left:auto;margin-right:auto;width:50%}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{position:relative;height:70px}.emoji-mart-preview-emoji,.emoji-mart-preview-data,.emoji-mart-preview-skins{position:absolute;top:50%;transform:translateY(-50%)}.emoji-mart-preview-emoji{left:12px}.emoji-mart-preview-data{left:68px;right:12px;word-break:break-all}.emoji-mart-preview-skins{right:30px;text-align:right}.emoji-mart-preview-skins.custom{right:10px;text-align:right}.emoji-mart-preview-name{font-size:14px}.emoji-mart-preview-shortname{font-size:12px;color:#888}.emoji-mart-preview-shortname+.emoji-mart-preview-shortname,.emoji-mart-preview-shortname+.emoji-mart-preview-emoticon,.emoji-mart-preview-emoticon+.emoji-mart-preview-emoticon{margin-left:.5em}.emoji-mart-preview-emoticon{font-size:11px;color:#bbb}.emoji-mart-title span{display:inline-block;vertical-align:middle}.emoji-mart-title .emoji-mart-emoji{padding:0}.emoji-mart-title-label{color:#999a9c;font-size:26px;font-weight:300}.emoji-mart-skin-swatches{font-size:0;padding:2px 0;border:1px solid #d9d9d9;border-radius:12px;background-color:#fff}.emoji-mart-skin-swatches.custom{font-size:0;border:none;background-color:#fff}.emoji-mart-skin-swatches.opened .emoji-mart-skin-swatch{width:16px;padding:0 2px}.emoji-mart-skin-swatches.opened .emoji-mart-skin-swatch.selected::after{opacity:.75}.emoji-mart-skin-swatch{display:inline-block;width:0;vertical-align:middle;transition-property:width,padding;transition-duration:.125s;transition-timing-function:ease-out}.emoji-mart-skin-swatch:nth-child(1){transition-delay:0s}.emoji-mart-skin-swatch:nth-child(2){transition-delay:.03s}.emoji-mart-skin-swatch:nth-child(3){transition-delay:.06s}.emoji-mart-skin-swatch:nth-child(4){transition-delay:.09s}.emoji-mart-skin-swatch:nth-child(5){transition-delay:.12s}.emoji-mart-skin-swatch:nth-child(6){transition-delay:.15s}.emoji-mart-skin-swatch.selected{position:relative;width:16px;padding:0 2px}.emoji-mart-skin-swatch.selected::after{content:"";position:absolute;top:50%;left:50%;width:4px;height:4px;margin:-2px 0 0 -2px;background-color:#fff;border-radius:100%;pointer-events:none;opacity:0;transition:opacity .2s ease-out}.emoji-mart-skin-swatch.custom{display:inline-block;width:0;height:38px;overflow:hidden;vertical-align:middle;transition-property:width,height;transition-duration:.125s;transition-timing-function:ease-out;cursor:default}.emoji-mart-skin-swatch.custom.selected{position:relative;width:36px;height:38px;padding:0 2px 0 0}.emoji-mart-skin-swatch.custom.selected::after{content:"";width:0;height:0}.emoji-mart-skin-swatches.custom .emoji-mart-skin-swatch.custom:hover{background-color:#f4f4f4;border-radius:10%}.emoji-mart-skin-swatches.custom.opened .emoji-mart-skin-swatch.custom{width:36px;height:38px;padding:0 2px 0 0}.emoji-mart-skin-swatches.custom.opened .emoji-mart-skin-swatch.custom.selected::after{opacity:.75}.emoji-mart-skin-text.opened{display:inline-block;vertical-align:middle;text-align:left;color:#888;font-size:11px;padding:5px 2px;width:95px;height:40px;border-radius:10%;background-color:#fff}.emoji-mart-skin{display:inline-block;width:100%;padding-top:100%;max-width:12px;border-radius:100%}.emoji-mart-skin-tone-1{background-color:#ffc93a}.emoji-mart-skin-tone-2{background-color:#fadcbc}.emoji-mart-skin-tone-3{background-color:#e0bb95}.emoji-mart-skin-tone-4{background-color:#bf8f68}.emoji-mart-skin-tone-5{background-color:#9b643d}.emoji-mart-skin-tone-6{background-color:#594539}.emoji-mart-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.emoji-mart-dark{color:#fff;border-color:#555453;background-color:#222}.emoji-mart-dark .emoji-mart-bar{border-color:#555453}.emoji-mart-dark .emoji-mart-search input{color:#fff;border-color:#555453;background-color:#2f2f2f}.emoji-mart-dark .emoji-mart-search-icon svg{fill:#fff}.emoji-mart-dark .emoji-mart-category .emoji-mart-emoji:hover::before{background-color:#444}.emoji-mart-dark .emoji-mart-category-label span{background-color:#222;color:#fff}.emoji-mart-dark .emoji-mart-skin-swatches{border-color:#555453;background-color:#222}.emoji-mart-dark .emoji-mart-anchor:hover,.emoji-mart-dark .emoji-mart-anchor:focus,.emoji-mart-dark .emoji-mart-anchor-selected{color:#bfbfbf}
@@ -1 +0,0 @@
1
- @font-face{font-family:ReplaceFlagEmojiPNG;src:url("../../assets/NotoColorEmoji-flags.woff2") format("woff2");unicode-range:U+1F1E6-1F1FF}@font-face{font-family:ReplaceFlagEmojiSVG;src:url("../../assets/EmojiOneColor.woff2") format("woff2");unicode-range:U+1F1E6-1F1FF}.str-chat--windows-flags .str-chat__textarea__textarea,.str-chat--windows-flags .str-chat__message-textarea,.str-chat--windows-flags .str-chat__message-text-inner *,.str-chat--windows-flags .str-chat__emoji-item--entity,.str-chat--windows-flags .emoji-mart-emoji-native *{font-family:ReplaceFlagEmojiPNG,var(--str-chat__font-family),sans-serif;font-display:swap}@-moz-document url-prefix(""){.str-chat--windows-flags .str-chat__textarea__textarea,.str-chat--windows-flags .str-chat__message-textarea,.str-chat--windows-flags .str-chat__message-text-inner *,.str-chat--windows-flags .str-chat__emoji-item--entity,.str-chat--windows-flags .emoji-mart-emoji-native *{font-family:ReplaceFlagEmojiSVG,var(--str-chat__font-family),sans-serif;font-display:swap}}