@kesha-antonov/react-native-chat 5.0.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1327) hide show
  1. package/README.md +485 -178
  2. package/lib/Actions.d.ts.map +1 -1
  3. package/lib/Actions.js +121 -42
  4. package/lib/Actions.js.map +1 -1
  5. package/lib/Avatar.d.ts.map +1 -1
  6. package/lib/Avatar.js +171 -86
  7. package/lib/Avatar.js.map +1 -1
  8. package/lib/Bubble/BubbleBody.d.ts +15 -0
  9. package/lib/Bubble/BubbleBody.d.ts.map +1 -0
  10. package/lib/Bubble/BubbleBody.js +218 -0
  11. package/lib/Bubble/BubbleBody.js.map +1 -0
  12. package/lib/Bubble/BubbleContent.d.ts +23 -0
  13. package/lib/Bubble/BubbleContent.d.ts.map +1 -0
  14. package/lib/Bubble/BubbleContent.js +446 -0
  15. package/lib/Bubble/BubbleContent.js.map +1 -0
  16. package/lib/Bubble/BubbleMenu.d.ts +45 -0
  17. package/lib/Bubble/BubbleMenu.d.ts.map +1 -0
  18. package/lib/Bubble/BubbleMenu.js +289 -0
  19. package/lib/Bubble/BubbleMenu.js.map +1 -0
  20. package/lib/Bubble/BubbleMeta.d.ts +17 -0
  21. package/lib/Bubble/BubbleMeta.d.ts.map +1 -0
  22. package/lib/Bubble/BubbleMeta.js +453 -0
  23. package/lib/Bubble/BubbleMeta.js.map +1 -0
  24. package/lib/Bubble/LiftedBubble.d.ts +18 -0
  25. package/lib/Bubble/LiftedBubble.d.ts.map +1 -0
  26. package/lib/Bubble/LiftedBubble.js +109 -0
  27. package/lib/Bubble/LiftedBubble.js.map +1 -0
  28. package/lib/Bubble/PressableBubbleRow.d.ts +33 -0
  29. package/lib/Bubble/PressableBubbleRow.d.ts.map +1 -0
  30. package/lib/Bubble/PressableBubbleRow.js +172 -0
  31. package/lib/Bubble/PressableBubbleRow.js.map +1 -0
  32. package/lib/Bubble/index.d.ts +6 -13
  33. package/lib/Bubble/index.d.ts.map +1 -1
  34. package/lib/Bubble/index.js +379 -509
  35. package/lib/Bubble/index.js.map +1 -1
  36. package/lib/Bubble/layout.d.ts +47 -0
  37. package/lib/Bubble/layout.d.ts.map +1 -0
  38. package/lib/Bubble/layout.js +258 -0
  39. package/lib/Bubble/layout.js.map +1 -0
  40. package/lib/Bubble/styles.d.ts +108 -16
  41. package/lib/Bubble/styles.d.ts.map +1 -1
  42. package/lib/Bubble/styles.js +227 -107
  43. package/lib/Bubble/styles.js.map +1 -1
  44. package/lib/Bubble/types.d.ts +19 -3
  45. package/lib/Bubble/types.d.ts.map +1 -1
  46. package/lib/Bubble/types.js.map +1 -1
  47. package/lib/Chat/Chat.d.ts +5 -0
  48. package/lib/Chat/Chat.d.ts.map +1 -0
  49. package/lib/Chat/Chat.js +464 -0
  50. package/lib/Chat/Chat.js.map +1 -0
  51. package/lib/Chat/ChatBackground.d.ts +16 -0
  52. package/lib/Chat/ChatBackground.d.ts.map +1 -0
  53. package/lib/Chat/ChatBackground.js +43 -0
  54. package/lib/Chat/ChatBackground.js.map +1 -0
  55. package/lib/Chat/ChatKeyboardAvoidingView.js +19 -4
  56. package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
  57. package/lib/Chat/ChatMessageList.d.ts +27 -0
  58. package/lib/Chat/ChatMessageList.d.ts.map +1 -0
  59. package/lib/Chat/ChatMessageList.js +220 -0
  60. package/lib/Chat/ChatMessageList.js.map +1 -0
  61. package/lib/Chat/ChatProviders.d.ts +18 -0
  62. package/lib/Chat/ChatProviders.d.ts.map +1 -0
  63. package/lib/Chat/ChatProviders.js +87 -0
  64. package/lib/Chat/ChatProviders.js.map +1 -0
  65. package/lib/Chat/ChatSafeAreaProvider.d.ts +35 -0
  66. package/lib/Chat/ChatSafeAreaProvider.d.ts.map +1 -0
  67. package/lib/Chat/ChatSafeAreaProvider.js +123 -0
  68. package/lib/Chat/ChatSafeAreaProvider.js.map +1 -0
  69. package/lib/Chat/ChatSelectionBar.d.ts +20 -0
  70. package/lib/Chat/ChatSelectionBar.d.ts.map +1 -0
  71. package/lib/Chat/ChatSelectionBar.js +141 -0
  72. package/lib/Chat/ChatSelectionBar.js.map +1 -0
  73. package/lib/Chat/ChatWrapper.d.ts +11 -0
  74. package/lib/Chat/ChatWrapper.d.ts.map +1 -0
  75. package/lib/Chat/ChatWrapper.js +98 -0
  76. package/lib/Chat/ChatWrapper.js.map +1 -0
  77. package/lib/Chat/ComposerHost.d.ts +20 -0
  78. package/lib/Chat/ComposerHost.d.ts.map +1 -0
  79. package/lib/Chat/ComposerHost.js +118 -0
  80. package/lib/Chat/ComposerHost.js.map +1 -0
  81. package/lib/Chat/index.d.ts +1 -8
  82. package/lib/Chat/index.d.ts.map +1 -1
  83. package/lib/Chat/index.js +1 -337
  84. package/lib/Chat/index.js.map +1 -1
  85. package/lib/Chat/styles.d.ts +14 -2
  86. package/lib/Chat/styles.d.ts.map +1 -1
  87. package/lib/Chat/styles.js +19 -9
  88. package/lib/Chat/styles.js.map +1 -1
  89. package/lib/Chat/types.d.ts +145 -11
  90. package/lib/Chat/types.d.ts.map +1 -1
  91. package/lib/Chat/types.js.map +1 -1
  92. package/lib/Chat/useChatContextValue.d.ts +19 -0
  93. package/lib/Chat/useChatContextValue.d.ts.map +1 -0
  94. package/lib/Chat/useChatContextValue.js +158 -0
  95. package/lib/Chat/useChatContextValue.js.map +1 -0
  96. package/lib/Chat/useChatMedia.d.ts +22 -0
  97. package/lib/Chat/useChatMedia.d.ts.map +1 -0
  98. package/lib/Chat/useChatMedia.js +127 -0
  99. package/lib/Chat/useChatMedia.js.map +1 -0
  100. package/lib/Chat/useChatSelection.d.ts +15 -0
  101. package/lib/Chat/useChatSelection.d.ts.map +1 -0
  102. package/lib/Chat/useChatSelection.js +106 -0
  103. package/lib/Chat/useChatSelection.js.map +1 -0
  104. package/lib/Chat/useComposerHandlers.d.ts +34 -0
  105. package/lib/Chat/useComposerHandlers.d.ts.map +1 -0
  106. package/lib/Chat/useComposerHandlers.js +330 -0
  107. package/lib/Chat/useComposerHandlers.js.map +1 -0
  108. package/lib/Chat/useComposerState.d.ts +27 -0
  109. package/lib/Chat/useComposerState.d.ts.map +1 -0
  110. package/lib/Chat/useComposerState.js +272 -0
  111. package/lib/Chat/useComposerState.js.map +1 -0
  112. package/lib/Chat/useInitialLayout.d.ts +19 -0
  113. package/lib/Chat/useInitialLayout.d.ts.map +1 -0
  114. package/lib/Chat/useInitialLayout.js +70 -0
  115. package/lib/Chat/useInitialLayout.js.map +1 -0
  116. package/lib/Chat/useMessageActions.d.ts +37 -0
  117. package/lib/Chat/useMessageActions.d.ts.map +1 -0
  118. package/lib/Chat/useMessageActions.js +323 -0
  119. package/lib/Chat/useMessageActions.js.map +1 -0
  120. package/lib/Chat/useMessageNavigation.d.ts +21 -0
  121. package/lib/Chat/useMessageNavigation.d.ts.map +1 -0
  122. package/lib/Chat/useMessageNavigation.js +149 -0
  123. package/lib/Chat/useMessageNavigation.js.map +1 -0
  124. package/lib/Chat/useOptionalPeerHints.d.ts +6 -0
  125. package/lib/Chat/useOptionalPeerHints.d.ts.map +1 -0
  126. package/lib/Chat/useOptionalPeerHints.js +63 -0
  127. package/lib/Chat/useOptionalPeerHints.js.map +1 -0
  128. package/lib/Chat/useResolvedReactions.d.ts +31 -0
  129. package/lib/Chat/useResolvedReactions.d.ts.map +1 -0
  130. package/lib/Chat/useResolvedReactions.js +95 -0
  131. package/lib/Chat/useResolvedReactions.js.map +1 -0
  132. package/lib/ChatAvatar.d.ts.map +1 -1
  133. package/lib/ChatAvatar.js +229 -84
  134. package/lib/ChatAvatar.js.map +1 -1
  135. package/lib/ChatContext.js +20 -10
  136. package/lib/ChatContext.js.map +1 -1
  137. package/lib/ChatList/ChatListAvatar.d.ts +21 -0
  138. package/lib/ChatList/ChatListAvatar.d.ts.map +1 -0
  139. package/lib/ChatList/ChatListAvatar.js +178 -0
  140. package/lib/ChatList/ChatListAvatar.js.map +1 -0
  141. package/lib/ChatList/ChatListCell.d.ts +16 -0
  142. package/lib/ChatList/ChatListCell.d.ts.map +1 -0
  143. package/lib/ChatList/ChatListCell.js +506 -0
  144. package/lib/ChatList/ChatListCell.js.map +1 -0
  145. package/lib/ChatList/ChatListShimmer.d.ts +3 -0
  146. package/lib/ChatList/ChatListShimmer.d.ts.map +1 -0
  147. package/lib/ChatList/ChatListShimmer.js +235 -0
  148. package/lib/ChatList/ChatListShimmer.js.map +1 -0
  149. package/lib/ChatList/index.d.ts +16 -0
  150. package/lib/ChatList/index.d.ts.map +1 -0
  151. package/lib/ChatList/index.js +1301 -0
  152. package/lib/ChatList/index.js.map +1 -0
  153. package/lib/ChatList/types.d.ts +128 -0
  154. package/lib/ChatList/types.d.ts.map +1 -0
  155. package/lib/ChatList/types.js +2 -0
  156. package/lib/ChatList/types.js.map +1 -0
  157. package/lib/ChatList/useChatList.d.ts +30 -0
  158. package/lib/ChatList/useChatList.d.ts.map +1 -0
  159. package/lib/ChatList/useChatList.js +211 -0
  160. package/lib/ChatList/useChatList.js.map +1 -0
  161. package/lib/ChatList/utils.d.ts +28 -0
  162. package/lib/ChatList/utils.d.ts.map +1 -0
  163. package/lib/ChatList/utils.js +60 -0
  164. package/lib/ChatList/utils.js.map +1 -0
  165. package/lib/Color.js +19 -19
  166. package/lib/Color.js.map +1 -1
  167. package/lib/Composer.d.ts.map +1 -1
  168. package/lib/Composer.js +148 -70
  169. package/lib/Composer.js.map +1 -1
  170. package/lib/Constant.js +4 -4
  171. package/lib/Constant.js.map +1 -1
  172. package/lib/Day/index.d.ts.map +1 -1
  173. package/lib/Day/index.js +115 -28
  174. package/lib/Day/index.js.map +1 -1
  175. package/lib/Day/styles.d.ts +3 -3
  176. package/lib/Day/styles.d.ts.map +1 -1
  177. package/lib/Day/styles.js +20 -17
  178. package/lib/Day/styles.js.map +1 -1
  179. package/lib/Day/types.js.map +1 -1
  180. package/lib/Icons.d.ts +1 -1
  181. package/lib/Icons.d.ts.map +1 -1
  182. package/lib/Icons.js.map +1 -1
  183. package/lib/InputToolbar/FieldGroup.d.ts +28 -0
  184. package/lib/InputToolbar/FieldGroup.d.ts.map +1 -0
  185. package/lib/InputToolbar/FieldGroup.js +143 -0
  186. package/lib/InputToolbar/FieldGroup.js.map +1 -0
  187. package/lib/InputToolbar/TakePreviewBar.d.ts +17 -0
  188. package/lib/InputToolbar/TakePreviewBar.d.ts.map +1 -0
  189. package/lib/InputToolbar/TakePreviewBar.js +126 -0
  190. package/lib/InputToolbar/TakePreviewBar.js.map +1 -0
  191. package/lib/InputToolbar/animations.d.ts +105 -0
  192. package/lib/InputToolbar/animations.d.ts.map +1 -0
  193. package/lib/InputToolbar/animations.js +238 -0
  194. package/lib/InputToolbar/animations.js.map +1 -0
  195. package/lib/InputToolbar/fragments.d.ts +13 -0
  196. package/lib/InputToolbar/fragments.d.ts.map +1 -0
  197. package/lib/InputToolbar/fragments.js +207 -0
  198. package/lib/InputToolbar/fragments.js.map +1 -0
  199. package/lib/InputToolbar/index.d.ts +7 -0
  200. package/lib/InputToolbar/index.d.ts.map +1 -0
  201. package/lib/InputToolbar/index.js +444 -0
  202. package/lib/InputToolbar/index.js.map +1 -0
  203. package/lib/InputToolbar/recordingOptions.d.ts +14 -0
  204. package/lib/InputToolbar/recordingOptions.d.ts.map +1 -0
  205. package/lib/InputToolbar/recordingOptions.js +38 -0
  206. package/lib/InputToolbar/recordingOptions.js.map +1 -0
  207. package/lib/InputToolbar/styles.d.ts +118 -0
  208. package/lib/InputToolbar/styles.d.ts.map +1 -0
  209. package/lib/InputToolbar/styles.js +139 -0
  210. package/lib/InputToolbar/styles.js.map +1 -0
  211. package/lib/InputToolbar/types.d.ts +77 -0
  212. package/lib/InputToolbar/types.d.ts.map +1 -0
  213. package/lib/InputToolbar/types.js +2 -0
  214. package/lib/InputToolbar/types.js.map +1 -0
  215. package/lib/InputToolbar/useActionsFragment.d.ts +6 -0
  216. package/lib/InputToolbar/useActionsFragment.d.ts.map +1 -0
  217. package/lib/InputToolbar/useActionsFragment.js +139 -0
  218. package/lib/InputToolbar/useActionsFragment.js.map +1 -0
  219. package/lib/InputToolbar/useComposerEditing.d.ts +11 -0
  220. package/lib/InputToolbar/useComposerEditing.d.ts.map +1 -0
  221. package/lib/InputToolbar/useComposerEditing.js +116 -0
  222. package/lib/InputToolbar/useComposerEditing.js.map +1 -0
  223. package/lib/InputToolbar/useEmojiButton.d.ts +14 -0
  224. package/lib/InputToolbar/useEmojiButton.d.ts.map +1 -0
  225. package/lib/InputToolbar/useEmojiButton.js +120 -0
  226. package/lib/InputToolbar/useEmojiButton.js.map +1 -0
  227. package/lib/InputToolbar/useKeyboardInset.d.ts +9 -0
  228. package/lib/InputToolbar/useKeyboardInset.d.ts.map +1 -0
  229. package/lib/InputToolbar/useKeyboardInset.js +25 -0
  230. package/lib/InputToolbar/useKeyboardInset.js.map +1 -0
  231. package/lib/InputToolbar/useRecordMode.d.ts +19 -0
  232. package/lib/InputToolbar/useRecordMode.d.ts.map +1 -0
  233. package/lib/InputToolbar/useRecordMode.js +124 -0
  234. package/lib/InputToolbar/useRecordMode.js.map +1 -0
  235. package/lib/InputToolbar/useRecordTake.d.ts +46 -0
  236. package/lib/InputToolbar/useRecordTake.d.ts.map +1 -0
  237. package/lib/InputToolbar/useRecordTake.js +315 -0
  238. package/lib/InputToolbar/useRecordTake.js.map +1 -0
  239. package/lib/InputToolbar/useReturnAnimations.d.ts +18 -0
  240. package/lib/InputToolbar/useReturnAnimations.d.ts.map +1 -0
  241. package/lib/InputToolbar/useReturnAnimations.js +30 -0
  242. package/lib/InputToolbar/useReturnAnimations.js.map +1 -0
  243. package/lib/InputToolbar/useRightControl.d.ts +40 -0
  244. package/lib/InputToolbar/useRightControl.d.ts.map +1 -0
  245. package/lib/InputToolbar/useRightControl.js +129 -0
  246. package/lib/InputToolbar/useRightControl.js.map +1 -0
  247. package/lib/LoadEarlierMessages.d.ts +2 -0
  248. package/lib/LoadEarlierMessages.d.ts.map +1 -1
  249. package/lib/LoadEarlierMessages.js +153 -40
  250. package/lib/LoadEarlierMessages.js.map +1 -1
  251. package/lib/Message/SwipeToReply.d.ts +23 -0
  252. package/lib/Message/SwipeToReply.d.ts.map +1 -0
  253. package/lib/Message/SwipeToReply.js +337 -0
  254. package/lib/Message/SwipeToReply.js.map +1 -0
  255. package/lib/Message/index.d.ts.map +1 -1
  256. package/lib/Message/index.js +415 -176
  257. package/lib/Message/index.js.map +1 -1
  258. package/lib/Message/styles.d.ts +2 -2
  259. package/lib/Message/styles.js +14 -14
  260. package/lib/Message/styles.js.map +1 -1
  261. package/lib/Message/types.d.ts +5 -0
  262. package/lib/Message/types.d.ts.map +1 -1
  263. package/lib/Message/types.js.map +1 -1
  264. package/lib/MessageAudio.d.ts.map +1 -1
  265. package/lib/MessageAudio.js +647 -107
  266. package/lib/MessageAudio.js.map +1 -1
  267. package/lib/MessageFile.d.ts +11 -0
  268. package/lib/MessageFile.d.ts.map +1 -0
  269. package/lib/MessageFile.js +315 -0
  270. package/lib/MessageFile.js.map +1 -0
  271. package/lib/MessageImage.d.ts +2 -0
  272. package/lib/MessageImage.d.ts.map +1 -1
  273. package/lib/MessageImage.js +430 -161
  274. package/lib/MessageImage.js.map +1 -1
  275. package/lib/MessageLocation.d.ts.map +1 -1
  276. package/lib/MessageLocation.js +180 -68
  277. package/lib/MessageLocation.js.map +1 -1
  278. package/lib/MessageText.d.ts +8 -1
  279. package/lib/MessageText.d.ts.map +1 -1
  280. package/lib/MessageText.js +261 -69
  281. package/lib/MessageText.js.map +1 -1
  282. package/lib/MessageVideo/ExpoVideoPlayer.d.ts +6 -0
  283. package/lib/MessageVideo/ExpoVideoPlayer.d.ts.map +1 -0
  284. package/lib/MessageVideo/ExpoVideoPlayer.js +68 -0
  285. package/lib/MessageVideo/ExpoVideoPlayer.js.map +1 -0
  286. package/lib/MessageVideo/MirroredVideo.d.ts +17 -0
  287. package/lib/MessageVideo/MirroredVideo.d.ts.map +1 -0
  288. package/lib/MessageVideo/MirroredVideo.js +223 -0
  289. package/lib/MessageVideo/MirroredVideo.js.map +1 -0
  290. package/lib/MessageVideo/RoundNotePlayer.d.ts +4 -0
  291. package/lib/MessageVideo/RoundNotePlayer.d.ts.map +1 -0
  292. package/lib/MessageVideo/RoundNotePlayer.js +560 -0
  293. package/lib/MessageVideo/RoundNotePlayer.js.map +1 -0
  294. package/lib/MessageVideo/RoundTranscription.d.ts +27 -0
  295. package/lib/MessageVideo/RoundTranscription.d.ts.map +1 -0
  296. package/lib/MessageVideo/RoundTranscription.js +151 -0
  297. package/lib/MessageVideo/RoundTranscription.js.map +1 -0
  298. package/lib/MessageVideo/VideoTransferOverlay.d.ts +11 -0
  299. package/lib/MessageVideo/VideoTransferOverlay.d.ts.map +1 -0
  300. package/lib/MessageVideo/VideoTransferOverlay.js +88 -0
  301. package/lib/MessageVideo/VideoTransferOverlay.js.map +1 -0
  302. package/lib/MessageVideo/constants.d.ts +13 -0
  303. package/lib/MessageVideo/constants.d.ts.map +1 -0
  304. package/lib/MessageVideo/constants.js +15 -0
  305. package/lib/MessageVideo/constants.js.map +1 -0
  306. package/lib/{MessageVideo.d.ts → MessageVideo/index.d.ts} +2 -2
  307. package/lib/MessageVideo/index.d.ts.map +1 -0
  308. package/lib/MessageVideo/index.js +92 -0
  309. package/lib/MessageVideo/index.js.map +1 -0
  310. package/lib/MessageVideo/liftedMedia.d.ts +13 -0
  311. package/lib/MessageVideo/liftedMedia.d.ts.map +1 -0
  312. package/lib/MessageVideo/liftedMedia.js +106 -0
  313. package/lib/MessageVideo/liftedMedia.js.map +1 -0
  314. package/lib/MessageVideo/styles.d.ts +71 -0
  315. package/lib/MessageVideo/styles.d.ts.map +1 -0
  316. package/lib/MessageVideo/styles.js +78 -0
  317. package/lib/MessageVideo/styles.js.map +1 -0
  318. package/lib/MessageVideo/types.d.ts +27 -0
  319. package/lib/MessageVideo/types.d.ts.map +1 -0
  320. package/lib/MessageVideo/types.js +2 -0
  321. package/lib/MessageVideo/types.js.map +1 -0
  322. package/lib/MessageVideo/useNoteGrow.d.ts +16 -0
  323. package/lib/MessageVideo/useNoteGrow.d.ts.map +1 -0
  324. package/lib/MessageVideo/useNoteGrow.js +122 -0
  325. package/lib/MessageVideo/useNoteGrow.js.map +1 -0
  326. package/lib/MessageVideo/useNotePlayer.d.ts +14 -0
  327. package/lib/MessageVideo/useNotePlayer.d.ts.map +1 -0
  328. package/lib/MessageVideo/useNotePlayer.js +142 -0
  329. package/lib/MessageVideo/useNotePlayer.js.map +1 -0
  330. package/lib/MessageVideo/useRingSeek.d.ts +16 -0
  331. package/lib/MessageVideo/useRingSeek.d.ts.map +1 -0
  332. package/lib/MessageVideo/useRingSeek.js +157 -0
  333. package/lib/MessageVideo/useRingSeek.js.map +1 -0
  334. package/lib/MessageVideo/useRoundNotePlayback.d.ts +46 -0
  335. package/lib/MessageVideo/useRoundNotePlayback.d.ts.map +1 -0
  336. package/lib/MessageVideo/useRoundNotePlayback.js +508 -0
  337. package/lib/MessageVideo/useRoundNotePlayback.js.map +1 -0
  338. package/lib/MessageVideo/useSendFlightReveal.d.ts +9 -0
  339. package/lib/MessageVideo/useSendFlightReveal.d.ts.map +1 -0
  340. package/lib/MessageVideo/useSendFlightReveal.js +85 -0
  341. package/lib/MessageVideo/useSendFlightReveal.js.map +1 -0
  342. package/lib/MessageVideo/videoPlayers.d.ts +8 -0
  343. package/lib/MessageVideo/videoPlayers.d.ts.map +1 -0
  344. package/lib/MessageVideo/videoPlayers.js +33 -0
  345. package/lib/MessageVideo/videoPlayers.js.map +1 -0
  346. package/lib/MessagesContainer/components/DayAnimated/debug.js +38 -24
  347. package/lib/MessagesContainer/components/DayAnimated/debug.js.map +1 -1
  348. package/lib/MessagesContainer/components/DayAnimated/index.d.ts +1 -1
  349. package/lib/MessagesContainer/components/DayAnimated/index.d.ts.map +1 -1
  350. package/lib/MessagesContainer/components/DayAnimated/index.js +244 -112
  351. package/lib/MessagesContainer/components/DayAnimated/index.js.map +1 -1
  352. package/lib/MessagesContainer/components/DayAnimated/styles.d.ts +3 -3
  353. package/lib/MessagesContainer/components/DayAnimated/styles.js +8 -8
  354. package/lib/MessagesContainer/components/DayAnimated/styles.js.map +1 -1
  355. package/lib/MessagesContainer/components/DayAnimated/types.d.ts +4 -2
  356. package/lib/MessagesContainer/components/DayAnimated/types.d.ts.map +1 -1
  357. package/lib/MessagesContainer/components/DayAnimated/types.js.map +1 -1
  358. package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.d.ts.map +1 -1
  359. package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.js +34 -25
  360. package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.js.map +1 -1
  361. package/lib/MessagesContainer/components/Item/index.d.ts +3 -4
  362. package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
  363. package/lib/MessagesContainer/components/Item/index.js +289 -119
  364. package/lib/MessagesContainer/components/Item/index.js.map +1 -1
  365. package/lib/MessagesContainer/components/Item/types.d.ts +5 -0
  366. package/lib/MessagesContainer/components/Item/types.d.ts.map +1 -1
  367. package/lib/MessagesContainer/components/Item/types.js.map +1 -1
  368. package/lib/MessagesContainer/components/PageDownCounter.d.ts +14 -0
  369. package/lib/MessagesContainer/components/PageDownCounter.d.ts.map +1 -0
  370. package/lib/MessagesContainer/components/PageDownCounter.js +209 -0
  371. package/lib/MessagesContainer/components/PageDownCounter.js.map +1 -0
  372. package/lib/MessagesContainer/components/ScrollToBottomButton.d.ts +21 -0
  373. package/lib/MessagesContainer/components/ScrollToBottomButton.d.ts.map +1 -0
  374. package/lib/MessagesContainer/components/ScrollToBottomButton.js +195 -0
  375. package/lib/MessagesContainer/components/ScrollToBottomButton.js.map +1 -0
  376. package/lib/MessagesContainer/components/dayLayout.d.ts +2 -2
  377. package/lib/MessagesContainer/components/dayLayout.d.ts.map +1 -1
  378. package/lib/MessagesContainer/components/dayLayout.js +18 -13
  379. package/lib/MessagesContainer/components/dayLayout.js.map +1 -1
  380. package/lib/MessagesContainer/index.d.ts.map +1 -1
  381. package/lib/MessagesContainer/index.js +361 -420
  382. package/lib/MessagesContainer/index.js.map +1 -1
  383. package/lib/MessagesContainer/listState.d.ts +18 -0
  384. package/lib/MessagesContainer/listState.d.ts.map +1 -0
  385. package/lib/MessagesContainer/listState.js +25 -0
  386. package/lib/MessagesContainer/listState.js.map +1 -0
  387. package/lib/MessagesContainer/listTransitions.d.ts +10 -0
  388. package/lib/MessagesContainer/listTransitions.d.ts.map +1 -0
  389. package/lib/MessagesContainer/listTransitions.js +12 -0
  390. package/lib/MessagesContainer/listTransitions.js.map +1 -0
  391. package/lib/MessagesContainer/pageDownReturn.d.ts +11 -0
  392. package/lib/MessagesContainer/pageDownReturn.d.ts.map +1 -0
  393. package/lib/MessagesContainer/pageDownReturn.js +9 -0
  394. package/lib/MessagesContainer/pageDownReturn.js.map +1 -0
  395. package/lib/MessagesContainer/rowConfig.d.ts +39 -0
  396. package/lib/MessagesContainer/rowConfig.d.ts.map +1 -0
  397. package/lib/MessagesContainer/rowConfig.js +161 -0
  398. package/lib/MessagesContainer/rowConfig.js.map +1 -0
  399. package/lib/MessagesContainer/rowStore.d.ts +37 -0
  400. package/lib/MessagesContainer/rowStore.d.ts.map +1 -0
  401. package/lib/MessagesContainer/rowStore.js +140 -0
  402. package/lib/MessagesContainer/rowStore.js.map +1 -0
  403. package/lib/MessagesContainer/styles.d.ts +37 -31
  404. package/lib/MessagesContainer/styles.d.ts.map +1 -1
  405. package/lib/MessagesContainer/styles.js +75 -54
  406. package/lib/MessagesContainer/styles.js.map +1 -1
  407. package/lib/MessagesContainer/types.d.ts +33 -30
  408. package/lib/MessagesContainer/types.d.ts.map +1 -1
  409. package/lib/MessagesContainer/types.js +1 -9
  410. package/lib/MessagesContainer/types.js.map +1 -1
  411. package/lib/MessagesContainer/useCellLayouts.d.ts +17 -0
  412. package/lib/MessagesContainer/useCellLayouts.d.ts.map +1 -0
  413. package/lib/MessagesContainer/useCellLayouts.js +133 -0
  414. package/lib/MessagesContainer/useCellLayouts.js.map +1 -0
  415. package/lib/MessagesContainer/useDaysPositions.d.ts +18 -0
  416. package/lib/MessagesContainer/useDaysPositions.d.ts.map +1 -0
  417. package/lib/MessagesContainer/useDaysPositions.js +109 -0
  418. package/lib/MessagesContainer/useDaysPositions.js.map +1 -0
  419. package/lib/MessagesContainer/useListChrome.d.ts +14 -0
  420. package/lib/MessagesContainer/useListChrome.d.ts.map +1 -0
  421. package/lib/MessagesContainer/useListChrome.js +176 -0
  422. package/lib/MessagesContainer/useListChrome.js.map +1 -0
  423. package/lib/MessagesContainer/useListMetrics.d.ts +32 -0
  424. package/lib/MessagesContainer/useListMetrics.d.ts.map +1 -0
  425. package/lib/MessagesContainer/useListMetrics.js +176 -0
  426. package/lib/MessagesContainer/useListMetrics.js.map +1 -0
  427. package/lib/MessagesContainer/useMessageRows.d.ts +46 -0
  428. package/lib/MessagesContainer/useMessageRows.d.ts.map +1 -0
  429. package/lib/MessagesContainer/useMessageRows.js +228 -0
  430. package/lib/MessagesContainer/useMessageRows.js.map +1 -0
  431. package/lib/MessagesContainer/usePageDownUnread.d.ts +27 -0
  432. package/lib/MessagesContainer/usePageDownUnread.d.ts.map +1 -0
  433. package/lib/MessagesContainer/usePageDownUnread.js +152 -0
  434. package/lib/MessagesContainer/usePageDownUnread.js.map +1 -0
  435. package/lib/MessagesContainer/useScrollActivity.d.ts +13 -0
  436. package/lib/MessagesContainer/useScrollActivity.d.ts.map +1 -0
  437. package/lib/MessagesContainer/useScrollActivity.js +84 -0
  438. package/lib/MessagesContainer/useScrollActivity.js.map +1 -0
  439. package/lib/MessagesContainer/useScrollToBottom.d.ts +26 -0
  440. package/lib/MessagesContainer/useScrollToBottom.d.ts.map +1 -0
  441. package/lib/MessagesContainer/useScrollToBottom.js +164 -0
  442. package/lib/MessagesContainer/useScrollToBottom.js.map +1 -0
  443. package/lib/MessagesContainer/useTapToClosePanels.d.ts +7 -0
  444. package/lib/MessagesContainer/useTapToClosePanels.d.ts.map +1 -0
  445. package/lib/MessagesContainer/useTapToClosePanels.js +55 -0
  446. package/lib/MessagesContainer/useTapToClosePanels.js.map +1 -0
  447. package/lib/MessagesContainer/viewability.d.ts +9 -0
  448. package/lib/MessagesContainer/viewability.d.ts.map +1 -0
  449. package/lib/MessagesContainer/viewability.js +110 -0
  450. package/lib/MessagesContainer/viewability.js.map +1 -0
  451. package/lib/Models.d.ts +188 -3
  452. package/lib/Models.d.ts.map +1 -1
  453. package/lib/Models.js.map +1 -1
  454. package/lib/QuickReplies.js +234 -101
  455. package/lib/QuickReplies.js.map +1 -1
  456. package/lib/Reactions/MessageReactions.d.ts +5 -0
  457. package/lib/Reactions/MessageReactions.d.ts.map +1 -1
  458. package/lib/Reactions/MessageReactions.js +359 -80
  459. package/lib/Reactions/MessageReactions.js.map +1 -1
  460. package/lib/Reactions/ReactionPicker.d.ts +5 -3
  461. package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
  462. package/lib/Reactions/ReactionPicker.js +68 -82
  463. package/lib/Reactions/ReactionPicker.js.map +1 -1
  464. package/lib/Reactions/index.js +1 -0
  465. package/lib/Reactions/index.js.map +1 -1
  466. package/lib/Reactions/types.d.ts +49 -5
  467. package/lib/Reactions/types.d.ts.map +1 -1
  468. package/lib/Reactions/types.js.map +1 -1
  469. package/lib/Reply/index.js.map +1 -1
  470. package/lib/Reply/types.d.ts +19 -3
  471. package/lib/Reply/types.d.ts.map +1 -1
  472. package/lib/Reply/types.js.map +1 -1
  473. package/lib/Send.d.ts +2 -2
  474. package/lib/Send.d.ts.map +1 -1
  475. package/lib/Send.js +218 -47
  476. package/lib/Send.js.map +1 -1
  477. package/lib/SystemMessage.d.ts.map +1 -1
  478. package/lib/SystemMessage.js +106 -37
  479. package/lib/SystemMessage.js.map +1 -1
  480. package/lib/Theme.d.ts +320 -23
  481. package/lib/Theme.d.ts.map +1 -1
  482. package/lib/Theme.js +548 -119
  483. package/lib/Theme.js.map +1 -1
  484. package/lib/Time.d.ts +7 -0
  485. package/lib/Time.d.ts.map +1 -1
  486. package/lib/Time.js +122 -30
  487. package/lib/Time.js.map +1 -1
  488. package/lib/TypingIndicator/index.d.ts +9 -1
  489. package/lib/TypingIndicator/index.d.ts.map +1 -1
  490. package/lib/TypingIndicator/index.js +318 -94
  491. package/lib/TypingIndicator/index.js.map +1 -1
  492. package/lib/TypingIndicator/styles.d.ts +6 -2
  493. package/lib/TypingIndicator/styles.d.ts.map +1 -1
  494. package/lib/TypingIndicator/styles.js +22 -18
  495. package/lib/TypingIndicator/styles.js.map +1 -1
  496. package/lib/TypingIndicator/types.js.map +1 -1
  497. package/lib/attachments/AttachmentButton.d.ts +18 -0
  498. package/lib/attachments/AttachmentButton.d.ts.map +1 -0
  499. package/lib/attachments/AttachmentButton.js +110 -0
  500. package/lib/attachments/AttachmentButton.js.map +1 -0
  501. package/lib/attachments/AttachmentMenu/CaptionBar.d.ts +15 -0
  502. package/lib/attachments/AttachmentMenu/CaptionBar.d.ts.map +1 -0
  503. package/lib/attachments/AttachmentMenu/CaptionBar.js +165 -0
  504. package/lib/attachments/AttachmentMenu/CaptionBar.js.map +1 -0
  505. package/lib/attachments/AttachmentMenu/GalleryCell.d.ts +14 -0
  506. package/lib/attachments/AttachmentMenu/GalleryCell.d.ts.map +1 -0
  507. package/lib/attachments/AttachmentMenu/GalleryCell.js +267 -0
  508. package/lib/attachments/AttachmentMenu/GalleryCell.js.map +1 -0
  509. package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts +18 -0
  510. package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts.map +1 -0
  511. package/lib/attachments/AttachmentMenu/GalleryGrid.js +184 -0
  512. package/lib/attachments/AttachmentMenu/GalleryGrid.js.map +1 -0
  513. package/lib/attachments/AttachmentMenu/TabBar.d.ts +14 -0
  514. package/lib/attachments/AttachmentMenu/TabBar.d.ts.map +1 -0
  515. package/lib/attachments/AttachmentMenu/TabBar.js +127 -0
  516. package/lib/attachments/AttachmentMenu/TabBar.js.map +1 -0
  517. package/lib/attachments/AttachmentMenu/TabButton.d.ts +15 -0
  518. package/lib/attachments/AttachmentMenu/TabButton.d.ts.map +1 -0
  519. package/lib/attachments/AttachmentMenu/TabButton.js +219 -0
  520. package/lib/attachments/AttachmentMenu/TabButton.js.map +1 -0
  521. package/lib/attachments/AttachmentMenu/TabPanel.d.ts +17 -0
  522. package/lib/attachments/AttachmentMenu/TabPanel.d.ts.map +1 -0
  523. package/lib/attachments/AttachmentMenu/TabPanel.js +170 -0
  524. package/lib/attachments/AttachmentMenu/TabPanel.js.map +1 -0
  525. package/lib/attachments/AttachmentMenu/constants.d.ts +54 -0
  526. package/lib/attachments/AttachmentMenu/constants.d.ts.map +1 -0
  527. package/lib/attachments/AttachmentMenu/constants.js +79 -0
  528. package/lib/attachments/AttachmentMenu/constants.js.map +1 -0
  529. package/lib/attachments/AttachmentMenu/index.d.ts +16 -0
  530. package/lib/attachments/AttachmentMenu/index.d.ts.map +1 -0
  531. package/lib/attachments/AttachmentMenu/index.js +498 -0
  532. package/lib/attachments/AttachmentMenu/index.js.map +1 -0
  533. package/lib/attachments/AttachmentMenu/styles.d.ts +259 -0
  534. package/lib/attachments/AttachmentMenu/styles.d.ts.map +1 -0
  535. package/lib/attachments/AttachmentMenu/styles.js +262 -0
  536. package/lib/attachments/AttachmentMenu/styles.js.map +1 -0
  537. package/lib/attachments/AttachmentMenu/useSheetPresence.d.ts +14 -0
  538. package/lib/attachments/AttachmentMenu/useSheetPresence.d.ts.map +1 -0
  539. package/lib/attachments/AttachmentMenu/useSheetPresence.js +74 -0
  540. package/lib/attachments/AttachmentMenu/useSheetPresence.js.map +1 -0
  541. package/lib/attachments/buildMessages.d.ts +36 -0
  542. package/lib/attachments/buildMessages.d.ts.map +1 -0
  543. package/lib/attachments/buildMessages.js +192 -0
  544. package/lib/attachments/buildMessages.js.map +1 -0
  545. package/lib/attachments/gallery.d.ts +28 -0
  546. package/lib/attachments/gallery.d.ts.map +1 -0
  547. package/lib/attachments/gallery.js +245 -0
  548. package/lib/attachments/gallery.js.map +1 -0
  549. package/lib/attachments/types.d.ts +69 -0
  550. package/lib/attachments/types.d.ts.map +1 -0
  551. package/lib/attachments/types.js +2 -0
  552. package/lib/attachments/types.js.map +1 -0
  553. package/lib/colorUtils.d.ts +24 -0
  554. package/lib/colorUtils.d.ts.map +1 -0
  555. package/lib/colorUtils.js +71 -0
  556. package/lib/colorUtils.js.map +1 -0
  557. package/lib/components/AttachmentSheet.d.ts +1 -1
  558. package/lib/components/AttachmentSheet.d.ts.map +1 -1
  559. package/lib/components/AttachmentSheet.js +515 -155
  560. package/lib/components/AttachmentSheet.js.map +1 -1
  561. package/lib/components/BasicMarkdown.d.ts +7 -1
  562. package/lib/components/BasicMarkdown.d.ts.map +1 -1
  563. package/lib/components/BasicMarkdown.js +234 -184
  564. package/lib/components/BasicMarkdown.js.map +1 -1
  565. package/lib/components/BubbleBackground.d.ts +55 -0
  566. package/lib/components/BubbleBackground.d.ts.map +1 -0
  567. package/lib/components/BubbleBackground.js +513 -0
  568. package/lib/components/BubbleBackground.js.map +1 -0
  569. package/lib/components/ChatEmpty.d.ts +18 -0
  570. package/lib/components/ChatEmpty.d.ts.map +1 -0
  571. package/lib/components/ChatEmpty.js +125 -0
  572. package/lib/components/ChatEmpty.js.map +1 -0
  573. package/lib/components/ChatLoadingOverlay.d.ts +10 -0
  574. package/lib/components/ChatLoadingOverlay.d.ts.map +1 -0
  575. package/lib/components/ChatLoadingOverlay.js +89 -0
  576. package/lib/components/ChatLoadingOverlay.js.map +1 -0
  577. package/lib/components/ChatOverlay.d.ts +9 -0
  578. package/lib/components/ChatOverlay.d.ts.map +1 -0
  579. package/lib/components/ChatOverlay.js +60 -0
  580. package/lib/components/ChatOverlay.js.map +1 -0
  581. package/lib/components/ChatWallpaper.d.ts +32 -0
  582. package/lib/components/ChatWallpaper.d.ts.map +1 -0
  583. package/lib/components/ChatWallpaper.js +277 -0
  584. package/lib/components/ChatWallpaper.js.map +1 -0
  585. package/lib/components/ContextMenu/MenuCard.d.ts +21 -0
  586. package/lib/components/ContextMenu/MenuCard.d.ts.map +1 -0
  587. package/lib/components/ContextMenu/MenuCard.js +265 -0
  588. package/lib/components/ContextMenu/MenuCard.js.map +1 -0
  589. package/lib/components/ContextMenu/ReactionButton.d.ts +15 -0
  590. package/lib/components/ContextMenu/ReactionButton.d.ts.map +1 -0
  591. package/lib/components/ContextMenu/ReactionButton.js +116 -0
  592. package/lib/components/ContextMenu/ReactionButton.js.map +1 -0
  593. package/lib/components/ContextMenu/ReactionFlight.d.ts +14 -0
  594. package/lib/components/ContextMenu/ReactionFlight.d.ts.map +1 -0
  595. package/lib/components/ContextMenu/ReactionFlight.js +111 -0
  596. package/lib/components/ContextMenu/ReactionFlight.js.map +1 -0
  597. package/lib/components/ContextMenu/ReactionsBar.d.ts +35 -0
  598. package/lib/components/ContextMenu/ReactionsBar.d.ts.map +1 -0
  599. package/lib/components/ContextMenu/ReactionsBar.js +354 -0
  600. package/lib/components/ContextMenu/ReactionsBar.js.map +1 -0
  601. package/lib/components/ContextMenu/constants.d.ts +68 -0
  602. package/lib/components/ContextMenu/constants.d.ts.map +1 -0
  603. package/lib/components/ContextMenu/constants.js +105 -0
  604. package/lib/components/ContextMenu/constants.js.map +1 -0
  605. package/lib/components/ContextMenu/index.d.ts +12 -0
  606. package/lib/components/ContextMenu/index.d.ts.map +1 -0
  607. package/lib/components/ContextMenu/index.js +476 -0
  608. package/lib/components/ContextMenu/index.js.map +1 -0
  609. package/lib/components/ContextMenu/placement.d.ts +50 -0
  610. package/lib/components/ContextMenu/placement.d.ts.map +1 -0
  611. package/lib/components/ContextMenu/placement.js +117 -0
  612. package/lib/components/ContextMenu/placement.js.map +1 -0
  613. package/lib/components/ContextMenu/styles.d.ts +199 -0
  614. package/lib/components/ContextMenu/styles.d.ts.map +1 -0
  615. package/lib/components/ContextMenu/styles.js +169 -0
  616. package/lib/components/ContextMenu/styles.js.map +1 -0
  617. package/lib/components/ContextMenu/types.d.ts +62 -0
  618. package/lib/components/ContextMenu/types.d.ts.map +1 -0
  619. package/lib/components/ContextMenu/types.js +2 -0
  620. package/lib/components/ContextMenu/types.js.map +1 -0
  621. package/lib/components/ContextMenu/useExpandPanel.d.ts +11 -0
  622. package/lib/components/ContextMenu/useExpandPanel.d.ts.map +1 -0
  623. package/lib/components/ContextMenu/useExpandPanel.js +81 -0
  624. package/lib/components/ContextMenu/useExpandPanel.js.map +1 -0
  625. package/lib/components/ContextMenu/useMenuPresence.d.ts +17 -0
  626. package/lib/components/ContextMenu/useMenuPresence.d.ts.map +1 -0
  627. package/lib/components/ContextMenu/useMenuPresence.js +125 -0
  628. package/lib/components/ContextMenu/useMenuPresence.js.map +1 -0
  629. package/lib/components/FloatingRoundNote.d.ts +13 -0
  630. package/lib/components/FloatingRoundNote.d.ts.map +1 -0
  631. package/lib/components/FloatingRoundNote.js +541 -0
  632. package/lib/components/FloatingRoundNote.js.map +1 -0
  633. package/lib/components/GlassSurface.d.ts +16 -0
  634. package/lib/components/GlassSurface.d.ts.map +1 -0
  635. package/lib/components/GlassSurface.js +114 -0
  636. package/lib/components/GlassSurface.js.map +1 -0
  637. package/lib/components/Icon.js +57 -8
  638. package/lib/components/Icon.js.map +1 -1
  639. package/lib/components/LinkPreviewCard.d.ts +36 -0
  640. package/lib/components/LinkPreviewCard.d.ts.map +1 -0
  641. package/lib/components/LinkPreviewCard.js +416 -0
  642. package/lib/components/LinkPreviewCard.js.map +1 -0
  643. package/lib/components/LucideIcon.d.ts.map +1 -1
  644. package/lib/components/LucideIcon.js +103 -106
  645. package/lib/components/LucideIcon.js.map +1 -1
  646. package/lib/components/MarkdownMessageText.d.ts +17 -2
  647. package/lib/components/MarkdownMessageText.d.ts.map +1 -1
  648. package/lib/components/MarkdownMessageText.js +270 -22
  649. package/lib/components/MarkdownMessageText.js.map +1 -1
  650. package/lib/components/MediaCard.d.ts.map +1 -1
  651. package/lib/components/MediaCard.js +223 -85
  652. package/lib/components/MediaCard.js.map +1 -1
  653. package/lib/components/MediaControls.js +1094 -450
  654. package/lib/components/MediaControls.js.map +1 -1
  655. package/lib/components/MediaLoader.d.ts +21 -0
  656. package/lib/components/MediaLoader.d.ts.map +1 -0
  657. package/lib/components/MediaLoader.js +61 -0
  658. package/lib/components/MediaLoader.js.map +1 -0
  659. package/lib/components/MessageReply.d.ts +2 -2
  660. package/lib/components/MessageReply.d.ts.map +1 -1
  661. package/lib/components/MessageReply.js +266 -83
  662. package/lib/components/MessageReply.js.map +1 -1
  663. package/lib/components/MessageStatus.d.ts +23 -0
  664. package/lib/components/MessageStatus.d.ts.map +1 -0
  665. package/lib/components/MessageStatus.js +499 -0
  666. package/lib/components/MessageStatus.js.map +1 -0
  667. package/lib/components/NoteIndicators.d.ts +25 -0
  668. package/lib/components/NoteIndicators.d.ts.map +1 -0
  669. package/lib/components/NoteIndicators.js +206 -0
  670. package/lib/components/NoteIndicators.js.map +1 -0
  671. package/lib/components/NowPlayingBar.d.ts +15 -0
  672. package/lib/components/NowPlayingBar.d.ts.map +1 -0
  673. package/lib/components/NowPlayingBar.js +261 -0
  674. package/lib/components/NowPlayingBar.js.map +1 -0
  675. package/lib/components/PlayPauseIcon.d.ts +13 -0
  676. package/lib/components/PlayPauseIcon.d.ts.map +1 -0
  677. package/lib/components/PlayPauseIcon.js +187 -0
  678. package/lib/components/PlayPauseIcon.js.map +1 -0
  679. package/lib/components/PlaybackSpeedPill.d.ts +11 -0
  680. package/lib/components/PlaybackSpeedPill.d.ts.map +1 -0
  681. package/lib/components/PlaybackSpeedPill.js +350 -0
  682. package/lib/components/PlaybackSpeedPill.js.map +1 -0
  683. package/lib/components/RadialProgress.d.ts +70 -0
  684. package/lib/components/RadialProgress.d.ts.map +1 -0
  685. package/lib/components/RadialProgress.js +864 -0
  686. package/lib/components/RadialProgress.js.map +1 -0
  687. package/lib/components/RecordButton/LockPill.d.ts +27 -0
  688. package/lib/components/RecordButton/LockPill.d.ts.map +1 -0
  689. package/lib/components/RecordButton/LockPill.js +182 -0
  690. package/lib/components/RecordButton/LockPill.js.map +1 -0
  691. package/lib/components/RecordButton/ModeButton.d.ts +18 -0
  692. package/lib/components/RecordButton/ModeButton.d.ts.map +1 -0
  693. package/lib/components/RecordButton/ModeButton.js +154 -0
  694. package/lib/components/RecordButton/ModeButton.js.map +1 -0
  695. package/lib/components/RecordButton/ResumeButton.d.ts +20 -0
  696. package/lib/components/RecordButton/ResumeButton.d.ts.map +1 -0
  697. package/lib/components/RecordButton/ResumeButton.js +63 -0
  698. package/lib/components/RecordButton/ResumeButton.js.map +1 -0
  699. package/lib/components/RecordButton/Tooltips.d.ts +20 -0
  700. package/lib/components/RecordButton/Tooltips.d.ts.map +1 -0
  701. package/lib/components/RecordButton/Tooltips.js +191 -0
  702. package/lib/components/RecordButton/Tooltips.js.map +1 -0
  703. package/lib/components/RecordButton/ViewOnceButton.d.ts +16 -0
  704. package/lib/components/RecordButton/ViewOnceButton.d.ts.map +1 -0
  705. package/lib/components/RecordButton/ViewOnceButton.js +96 -0
  706. package/lib/components/RecordButton/ViewOnceButton.js.map +1 -0
  707. package/lib/components/RecordButton/constants.d.ts +52 -0
  708. package/lib/components/RecordButton/constants.d.ts.map +1 -0
  709. package/lib/components/RecordButton/constants.js +58 -0
  710. package/lib/components/RecordButton/constants.js.map +1 -0
  711. package/lib/components/RecordButton/index.d.ts +14 -0
  712. package/lib/components/RecordButton/index.d.ts.map +1 -0
  713. package/lib/components/RecordButton/index.js +382 -0
  714. package/lib/components/RecordButton/index.js.map +1 -0
  715. package/lib/components/RecordButton/styles.d.ts +155 -0
  716. package/lib/components/RecordButton/styles.d.ts.map +1 -0
  717. package/lib/components/RecordButton/styles.js +161 -0
  718. package/lib/components/RecordButton/styles.js.map +1 -0
  719. package/lib/components/RecordButton/types.d.ts +63 -0
  720. package/lib/components/RecordButton/types.d.ts.map +1 -0
  721. package/lib/components/RecordButton/types.js +2 -0
  722. package/lib/components/RecordButton/types.js.map +1 -0
  723. package/lib/components/RecordButton/useRecordGesture.d.ts +28 -0
  724. package/lib/components/RecordButton/useRecordGesture.d.ts.map +1 -0
  725. package/lib/components/RecordButton/useRecordGesture.js +263 -0
  726. package/lib/components/RecordButton/useRecordGesture.js.map +1 -0
  727. package/lib/components/RecordButton/useRecordHints.d.ts +27 -0
  728. package/lib/components/RecordButton/useRecordHints.d.ts.map +1 -0
  729. package/lib/components/RecordButton/useRecordHints.js +210 -0
  730. package/lib/components/RecordButton/useRecordHints.js.map +1 -0
  731. package/lib/components/RecordButton/useRecordSlideDistance.d.ts +3 -0
  732. package/lib/components/RecordButton/useRecordSlideDistance.d.ts.map +1 -0
  733. package/lib/components/RecordButton/useRecordSlideDistance.js +15 -0
  734. package/lib/components/RecordButton/useRecordSlideDistance.js.map +1 -0
  735. package/lib/components/RecordButton/useRecordTake.d.ts +41 -0
  736. package/lib/components/RecordButton/useRecordTake.d.ts.map +1 -0
  737. package/lib/components/RecordButton/useRecordTake.js +349 -0
  738. package/lib/components/RecordButton/useRecordTake.js.map +1 -0
  739. package/lib/components/RecordButton/useSendFlight.d.ts +25 -0
  740. package/lib/components/RecordButton/useSendFlight.d.ts.map +1 -0
  741. package/lib/components/RecordButton/useSendFlight.js +162 -0
  742. package/lib/components/RecordButton/useSendFlight.js.map +1 -0
  743. package/lib/components/RecordCircle.d.ts +92 -0
  744. package/lib/components/RecordCircle.d.ts.map +1 -0
  745. package/lib/components/RecordCircle.js +629 -0
  746. package/lib/components/RecordCircle.js.map +1 -0
  747. package/lib/components/RecordingBar.d.ts +24 -0
  748. package/lib/components/RecordingBar.d.ts.map +1 -0
  749. package/lib/components/RecordingBar.js +766 -0
  750. package/lib/components/RecordingBar.js.map +1 -0
  751. package/lib/components/ReplyPreview.js +318 -135
  752. package/lib/components/ReplyPreview.js.map +1 -1
  753. package/lib/components/SelectionBar.d.ts +17 -0
  754. package/lib/components/SelectionBar.d.ts.map +1 -0
  755. package/lib/components/SelectionBar.js +214 -0
  756. package/lib/components/SelectionBar.js.map +1 -0
  757. package/lib/components/SelectionCheckbox.d.ts +12 -0
  758. package/lib/components/SelectionCheckbox.d.ts.map +1 -0
  759. package/lib/components/SelectionCheckbox.js +104 -0
  760. package/lib/components/SelectionCheckbox.js.map +1 -0
  761. package/lib/components/SendIcon.js +60 -26
  762. package/lib/components/SendIcon.js.map +1 -1
  763. package/lib/components/ServiceSpinner.d.ts +17 -0
  764. package/lib/components/ServiceSpinner.d.ts.map +1 -0
  765. package/lib/components/ServiceSpinner.js +77 -0
  766. package/lib/components/ServiceSpinner.js.map +1 -0
  767. package/lib/components/Spinner.d.ts +18 -0
  768. package/lib/components/Spinner.d.ts.map +1 -0
  769. package/lib/components/Spinner.js +169 -0
  770. package/lib/components/Spinner.js.map +1 -0
  771. package/lib/components/StreamingCursor.js +54 -9
  772. package/lib/components/StreamingCursor.js.map +1 -1
  773. package/lib/components/Ticks.d.ts +6 -5
  774. package/lib/components/Ticks.d.ts.map +1 -1
  775. package/lib/components/Ticks.js +272 -82
  776. package/lib/components/Ticks.js.map +1 -1
  777. package/lib/components/TouchableOpacity.d.ts.map +1 -1
  778. package/lib/components/TouchableOpacity.js +153 -51
  779. package/lib/components/TouchableOpacity.js.map +1 -1
  780. package/lib/components/TranscribeButton.d.ts +45 -0
  781. package/lib/components/TranscribeButton.d.ts.map +1 -0
  782. package/lib/components/TranscribeButton.js +549 -0
  783. package/lib/components/TranscribeButton.js.map +1 -0
  784. package/lib/components/TypingStatus.d.ts +29 -0
  785. package/lib/components/TypingStatus.d.ts.map +1 -0
  786. package/lib/components/TypingStatus.js +446 -0
  787. package/lib/components/TypingStatus.js.map +1 -0
  788. package/lib/components/UnreadSeparator.d.ts +8 -0
  789. package/lib/components/UnreadSeparator.d.ts.map +1 -0
  790. package/lib/components/UnreadSeparator.js +101 -0
  791. package/lib/components/UnreadSeparator.js.map +1 -0
  792. package/lib/components/VideoNoteCapture/ProgressRing.d.ts +16 -0
  793. package/lib/components/VideoNoteCapture/ProgressRing.d.ts.map +1 -0
  794. package/lib/components/VideoNoteCapture/ProgressRing.js +75 -0
  795. package/lib/components/VideoNoteCapture/ProgressRing.js.map +1 -0
  796. package/lib/components/VideoNoteCapture/VideoNoteCaptureView.d.ts +31 -0
  797. package/lib/components/VideoNoteCapture/VideoNoteCaptureView.d.ts.map +1 -0
  798. package/lib/components/VideoNoteCapture/VideoNoteCaptureView.js +500 -0
  799. package/lib/components/VideoNoteCapture/VideoNoteCaptureView.js.map +1 -0
  800. package/lib/components/VideoNoteCapture/VideoNotePreviewView.d.ts +12 -0
  801. package/lib/components/VideoNoteCapture/VideoNotePreviewView.d.ts.map +1 -0
  802. package/lib/components/VideoNoteCapture/VideoNotePreviewView.js +105 -0
  803. package/lib/components/VideoNoteCapture/VideoNotePreviewView.js.map +1 -0
  804. package/lib/components/VideoNoteCapture/VideoNoteStage.d.ts +12 -0
  805. package/lib/components/VideoNoteCapture/VideoNoteStage.d.ts.map +1 -0
  806. package/lib/components/VideoNoteCapture/VideoNoteStage.js +95 -0
  807. package/lib/components/VideoNoteCapture/VideoNoteStage.js.map +1 -0
  808. package/lib/components/VideoNoteCapture/constants.d.ts +50 -0
  809. package/lib/components/VideoNoteCapture/constants.d.ts.map +1 -0
  810. package/lib/components/VideoNoteCapture/constants.js +53 -0
  811. package/lib/components/VideoNoteCapture/constants.js.map +1 -0
  812. package/lib/components/VideoNoteCapture/index.d.ts +3 -0
  813. package/lib/components/VideoNoteCapture/index.d.ts.map +1 -0
  814. package/lib/components/VideoNoteCapture/index.js +2 -0
  815. package/lib/components/VideoNoteCapture/index.js.map +1 -0
  816. package/lib/components/VideoNoteCapture/optional.d.ts +6 -0
  817. package/lib/components/VideoNoteCapture/optional.d.ts.map +1 -0
  818. package/lib/components/VideoNoteCapture/optional.js +15 -0
  819. package/lib/components/VideoNoteCapture/optional.js.map +1 -0
  820. package/lib/components/VideoNoteCapture/sessionState.d.ts +10 -0
  821. package/lib/components/VideoNoteCapture/sessionState.d.ts.map +1 -0
  822. package/lib/components/VideoNoteCapture/sessionState.js +19 -0
  823. package/lib/components/VideoNoteCapture/sessionState.js.map +1 -0
  824. package/lib/components/VideoNoteCapture/styles.d.ts +84 -0
  825. package/lib/components/VideoNoteCapture/styles.d.ts.map +1 -0
  826. package/lib/components/VideoNoteCapture/styles.js +86 -0
  827. package/lib/components/VideoNoteCapture/styles.js.map +1 -0
  828. package/lib/components/VideoNoteCapture/types.d.ts +54 -0
  829. package/lib/components/VideoNoteCapture/types.d.ts.map +1 -0
  830. package/lib/components/VideoNoteCapture/types.js +2 -0
  831. package/lib/components/VideoNoteCapture/types.js.map +1 -0
  832. package/lib/components/VideoNoteCapture/useRoundAnimation.d.ts +47 -0
  833. package/lib/components/VideoNoteCapture/useRoundAnimation.d.ts.map +1 -0
  834. package/lib/components/VideoNoteCapture/useRoundAnimation.js +216 -0
  835. package/lib/components/VideoNoteCapture/useRoundAnimation.js.map +1 -0
  836. package/lib/components/VideoNoteCapture/useRoundLayout.d.ts +14 -0
  837. package/lib/components/VideoNoteCapture/useRoundLayout.d.ts.map +1 -0
  838. package/lib/components/VideoNoteCapture/useRoundLayout.js +61 -0
  839. package/lib/components/VideoNoteCapture/useRoundLayout.js.map +1 -0
  840. package/lib/components/VideoNoteCapture/useVideoNoteSession.d.ts +25 -0
  841. package/lib/components/VideoNoteCapture/useVideoNoteSession.d.ts.map +1 -0
  842. package/lib/components/VideoNoteCapture/useVideoNoteSession.js +611 -0
  843. package/lib/components/VideoNoteCapture/useVideoNoteSession.js.map +1 -0
  844. package/lib/components/VideoNoteOverlay.d.ts +42 -11
  845. package/lib/components/VideoNoteOverlay.d.ts.map +1 -1
  846. package/lib/components/VideoNoteOverlay.js +722 -135
  847. package/lib/components/VideoNoteOverlay.js.map +1 -1
  848. package/lib/components/VideoNoteRecorder/LiveVideoNote.d.ts +6 -0
  849. package/lib/components/VideoNoteRecorder/LiveVideoNote.d.ts.map +1 -0
  850. package/lib/components/VideoNoteRecorder/LiveVideoNote.js +205 -0
  851. package/lib/components/VideoNoteRecorder/LiveVideoNote.js.map +1 -0
  852. package/lib/components/VideoNoteRecorder/RecorderChrome.d.ts +35 -0
  853. package/lib/components/VideoNoteRecorder/RecorderChrome.d.ts.map +1 -0
  854. package/lib/components/VideoNoteRecorder/RecorderChrome.js +350 -0
  855. package/lib/components/VideoNoteRecorder/RecorderChrome.js.map +1 -0
  856. package/lib/components/VideoNoteRecorder/UnavailableVideoNote.d.ts +10 -0
  857. package/lib/components/VideoNoteRecorder/UnavailableVideoNote.d.ts.map +1 -0
  858. package/lib/components/VideoNoteRecorder/UnavailableVideoNote.js +52 -0
  859. package/lib/components/VideoNoteRecorder/UnavailableVideoNote.js.map +1 -0
  860. package/lib/components/VideoNoteRecorder/constants.d.ts +16 -0
  861. package/lib/components/VideoNoteRecorder/constants.d.ts.map +1 -0
  862. package/lib/components/VideoNoteRecorder/constants.js +30 -0
  863. package/lib/components/VideoNoteRecorder/constants.js.map +1 -0
  864. package/lib/components/{VideoNoteRecorder.d.ts → VideoNoteRecorder/index.d.ts} +5 -10
  865. package/lib/components/VideoNoteRecorder/index.d.ts.map +1 -0
  866. package/lib/components/VideoNoteRecorder/index.js +26 -0
  867. package/lib/components/VideoNoteRecorder/index.js.map +1 -0
  868. package/lib/components/VideoNoteRecorder/styles.d.ts +159 -0
  869. package/lib/components/VideoNoteRecorder/styles.d.ts.map +1 -0
  870. package/lib/components/VideoNoteRecorder/styles.js +170 -0
  871. package/lib/components/VideoNoteRecorder/styles.js.map +1 -0
  872. package/lib/components/VideoNoteRecorder/types.d.ts +7 -0
  873. package/lib/components/VideoNoteRecorder/types.d.ts.map +1 -0
  874. package/lib/components/VideoNoteRecorder/types.js +2 -0
  875. package/lib/components/VideoNoteRecorder/types.js.map +1 -0
  876. package/lib/components/VideoNoteRecorder/useRecordingTimer.d.ts +10 -0
  877. package/lib/components/VideoNoteRecorder/useRecordingTimer.d.ts.map +1 -0
  878. package/lib/components/VideoNoteRecorder/useRecordingTimer.js +134 -0
  879. package/lib/components/VideoNoteRecorder/useRecordingTimer.js.map +1 -0
  880. package/lib/components/VideoNoteRecorder/useVideoNoteRecording.d.ts +28 -0
  881. package/lib/components/VideoNoteRecorder/useVideoNoteRecording.d.ts.map +1 -0
  882. package/lib/components/VideoNoteRecorder/useVideoNoteRecording.js +287 -0
  883. package/lib/components/VideoNoteRecorder/useVideoNoteRecording.js.map +1 -0
  884. package/lib/components/VideoNoteRecorder/visionCameraHooks.d.ts +6 -0
  885. package/lib/components/VideoNoteRecorder/visionCameraHooks.d.ts.map +1 -0
  886. package/lib/components/VideoNoteRecorder/visionCameraHooks.js +11 -0
  887. package/lib/components/VideoNoteRecorder/visionCameraHooks.js.map +1 -0
  888. package/lib/components/VideoRecordButton.d.ts +1 -1
  889. package/lib/components/VideoRecordButton.d.ts.map +1 -1
  890. package/lib/components/VideoRecordButton.js +221 -92
  891. package/lib/components/VideoRecordButton.js.map +1 -1
  892. package/lib/components/ViewOnceBadge.d.ts +23 -0
  893. package/lib/components/ViewOnceBadge.d.ts.map +1 -0
  894. package/lib/components/ViewOnceBadge.js +233 -0
  895. package/lib/components/ViewOnceBadge.js.map +1 -0
  896. package/lib/components/VoiceMessageInput/RecordedVoicePreview.d.ts +16 -0
  897. package/lib/components/VoiceMessageInput/RecordedVoicePreview.d.ts.map +1 -0
  898. package/lib/components/VoiceMessageInput/RecordedVoicePreview.js +503 -0
  899. package/lib/components/VoiceMessageInput/RecordedVoicePreview.js.map +1 -0
  900. package/lib/components/VoiceMessageInput/constants.d.ts +16 -0
  901. package/lib/components/VoiceMessageInput/constants.d.ts.map +1 -0
  902. package/lib/components/VoiceMessageInput/constants.js +22 -0
  903. package/lib/components/VoiceMessageInput/constants.js.map +1 -0
  904. package/lib/components/VoiceMessageInput/formatElapsed.d.ts +2 -0
  905. package/lib/components/VoiceMessageInput/formatElapsed.d.ts.map +1 -0
  906. package/lib/components/VoiceMessageInput/formatElapsed.js +7 -0
  907. package/lib/components/VoiceMessageInput/formatElapsed.js.map +1 -0
  908. package/lib/components/VoiceMessageInput/index.d.ts +9 -0
  909. package/lib/components/VoiceMessageInput/index.d.ts.map +1 -0
  910. package/lib/components/VoiceMessageInput/index.js +148 -0
  911. package/lib/components/VoiceMessageInput/index.js.map +1 -0
  912. package/lib/components/VoiceMessageInput/previewStyles.d.ts +77 -0
  913. package/lib/components/VoiceMessageInput/previewStyles.d.ts.map +1 -0
  914. package/lib/components/VoiceMessageInput/previewStyles.js +80 -0
  915. package/lib/components/VoiceMessageInput/previewStyles.js.map +1 -0
  916. package/lib/components/VoiceMessageInput/previewWaveform.d.ts +15 -0
  917. package/lib/components/VoiceMessageInput/previewWaveform.d.ts.map +1 -0
  918. package/lib/components/VoiceMessageInput/previewWaveform.js +27 -0
  919. package/lib/components/VoiceMessageInput/previewWaveform.js.map +1 -0
  920. package/lib/components/VoiceMessageInput/recorder.d.ts +18 -0
  921. package/lib/components/VoiceMessageInput/recorder.d.ts.map +1 -0
  922. package/lib/components/VoiceMessageInput/recorder.js +80 -0
  923. package/lib/components/VoiceMessageInput/recorder.js.map +1 -0
  924. package/lib/components/VoiceMessageInput/types.d.ts +56 -0
  925. package/lib/components/VoiceMessageInput/types.d.ts.map +1 -0
  926. package/lib/components/VoiceMessageInput/types.js +2 -0
  927. package/lib/components/VoiceMessageInput/types.js.map +1 -0
  928. package/lib/components/VoiceMessageInput/useLazyRecorder.d.ts +7 -0
  929. package/lib/components/VoiceMessageInput/useLazyRecorder.d.ts.map +1 -0
  930. package/lib/components/VoiceMessageInput/useLazyRecorder.js +61 -0
  931. package/lib/components/VoiceMessageInput/useLazyRecorder.js.map +1 -0
  932. package/lib/components/VoiceMessageInput/useStateReport.d.ts +16 -0
  933. package/lib/components/VoiceMessageInput/useStateReport.d.ts.map +1 -0
  934. package/lib/components/VoiceMessageInput/useStateReport.js +81 -0
  935. package/lib/components/VoiceMessageInput/useStateReport.js.map +1 -0
  936. package/lib/components/VoiceMessageInput/useTakePreviewActions.d.ts +34 -0
  937. package/lib/components/VoiceMessageInput/useTakePreviewActions.d.ts.map +1 -0
  938. package/lib/components/VoiceMessageInput/useTakePreviewActions.js +207 -0
  939. package/lib/components/VoiceMessageInput/useTakePreviewActions.js.map +1 -0
  940. package/lib/components/VoiceMessageInput/useVoiceTake.d.ts +25 -0
  941. package/lib/components/VoiceMessageInput/useVoiceTake.d.ts.map +1 -0
  942. package/lib/components/VoiceMessageInput/useVoiceTake.js +424 -0
  943. package/lib/components/VoiceMessageInput/useVoiceTake.js.map +1 -0
  944. package/lib/components/WaveformPlayer/Bars.d.ts +30 -0
  945. package/lib/components/WaveformPlayer/Bars.d.ts.map +1 -0
  946. package/lib/components/WaveformPlayer/Bars.js +171 -0
  947. package/lib/components/WaveformPlayer/Bars.js.map +1 -0
  948. package/lib/components/WaveformPlayer/VoiceButton.d.ts +23 -0
  949. package/lib/components/WaveformPlayer/VoiceButton.d.ts.map +1 -0
  950. package/lib/components/WaveformPlayer/VoiceButton.js +111 -0
  951. package/lib/components/WaveformPlayer/VoiceButton.js.map +1 -0
  952. package/lib/components/WaveformPlayer/WaveformTrack.d.ts +31 -0
  953. package/lib/components/WaveformPlayer/WaveformTrack.d.ts.map +1 -0
  954. package/lib/components/WaveformPlayer/WaveformTrack.js +199 -0
  955. package/lib/components/WaveformPlayer/WaveformTrack.js.map +1 -0
  956. package/lib/components/WaveformPlayer/audio.d.ts +23 -0
  957. package/lib/components/WaveformPlayer/audio.d.ts.map +1 -0
  958. package/lib/components/WaveformPlayer/audio.js +97 -0
  959. package/lib/components/WaveformPlayer/audio.js.map +1 -0
  960. package/lib/components/WaveformPlayer/index.d.ts +13 -0
  961. package/lib/components/WaveformPlayer/index.d.ts.map +1 -0
  962. package/lib/components/WaveformPlayer/index.js +475 -0
  963. package/lib/components/WaveformPlayer/index.js.map +1 -0
  964. package/lib/components/WaveformPlayer/styles.d.ts +257 -0
  965. package/lib/components/WaveformPlayer/styles.d.ts.map +1 -0
  966. package/lib/components/WaveformPlayer/styles.js +120 -0
  967. package/lib/components/WaveformPlayer/styles.js.map +1 -0
  968. package/lib/components/WaveformPlayer/types.d.ts +32 -0
  969. package/lib/components/WaveformPlayer/types.d.ts.map +1 -0
  970. package/lib/components/WaveformPlayer/types.js +2 -0
  971. package/lib/components/WaveformPlayer/types.js.map +1 -0
  972. package/lib/components/WaveformPlayer/useSendFlightReveal.d.ts +21 -0
  973. package/lib/components/WaveformPlayer/useSendFlightReveal.d.ts.map +1 -0
  974. package/lib/components/WaveformPlayer/useSendFlightReveal.js +105 -0
  975. package/lib/components/WaveformPlayer/useSendFlightReveal.js.map +1 -0
  976. package/lib/components/WaveformPlayer/useVoicePlayback.d.ts +39 -0
  977. package/lib/components/WaveformPlayer/useVoicePlayback.d.ts.map +1 -0
  978. package/lib/components/WaveformPlayer/useVoicePlayback.js +401 -0
  979. package/lib/components/WaveformPlayer/useVoicePlayback.js.map +1 -0
  980. package/lib/components/WaveformPlayer/useVoiceSource.d.ts +38 -0
  981. package/lib/components/WaveformPlayer/useVoiceSource.d.ts.map +1 -0
  982. package/lib/components/WaveformPlayer/useVoiceSource.js +244 -0
  983. package/lib/components/WaveformPlayer/useVoiceSource.js.map +1 -0
  984. package/lib/components/WaveformPlayer/useWaveformMotion.d.ts +16 -0
  985. package/lib/components/WaveformPlayer/useWaveformMotion.d.ts.map +1 -0
  986. package/lib/components/WaveformPlayer/useWaveformMotion.js +135 -0
  987. package/lib/components/WaveformPlayer/useWaveformMotion.js.map +1 -0
  988. package/lib/components/WaveformPlayer/useWaveformScrub.d.ts +16 -0
  989. package/lib/components/WaveformPlayer/useWaveformScrub.d.ts.map +1 -0
  990. package/lib/components/WaveformPlayer/useWaveformScrub.js +168 -0
  991. package/lib/components/WaveformPlayer/useWaveformScrub.js.map +1 -0
  992. package/lib/components/composerPanels.d.ts +13 -0
  993. package/lib/components/composerPanels.d.ts.map +1 -0
  994. package/lib/components/composerPanels.js +22 -0
  995. package/lib/components/composerPanels.js.map +1 -0
  996. package/lib/components/defaultMessageActions.d.ts +30 -0
  997. package/lib/components/defaultMessageActions.d.ts.map +1 -0
  998. package/lib/components/defaultMessageActions.js +124 -0
  999. package/lib/components/defaultMessageActions.js.map +1 -0
  1000. package/lib/components/earpiece.d.ts +56 -0
  1001. package/lib/components/earpiece.d.ts.map +1 -0
  1002. package/lib/components/earpiece.js +218 -0
  1003. package/lib/components/earpiece.js.map +1 -0
  1004. package/lib/components/floatingNoteMath.d.ts +66 -0
  1005. package/lib/components/floatingNoteMath.d.ts.map +1 -0
  1006. package/lib/components/floatingNoteMath.js +143 -0
  1007. package/lib/components/floatingNoteMath.js.map +1 -0
  1008. package/lib/components/haptics.d.ts +5 -0
  1009. package/lib/components/haptics.d.ts.map +1 -0
  1010. package/lib/components/haptics.js +26 -0
  1011. package/lib/components/haptics.js.map +1 -0
  1012. package/lib/components/mediaDownload.d.ts +14 -0
  1013. package/lib/components/mediaDownload.d.ts.map +1 -0
  1014. package/lib/components/mediaDownload.js +43 -0
  1015. package/lib/components/mediaDownload.js.map +1 -0
  1016. package/lib/components/mediaPalette.d.ts +7 -2
  1017. package/lib/components/mediaPalette.d.ts.map +1 -1
  1018. package/lib/components/mediaPalette.js +27 -15
  1019. package/lib/components/mediaPalette.js.map +1 -1
  1020. package/lib/components/mediaPlayback.d.ts +204 -5
  1021. package/lib/components/mediaPlayback.d.ts.map +1 -1
  1022. package/lib/components/mediaPlayback.js +746 -17
  1023. package/lib/components/mediaPlayback.js.map +1 -1
  1024. package/lib/components/mediaTransfer.d.ts +29 -0
  1025. package/lib/components/mediaTransfer.d.ts.map +1 -0
  1026. package/lib/components/mediaTransfer.js +52 -0
  1027. package/lib/components/mediaTransfer.js.map +1 -0
  1028. package/lib/components/mediaViewer/MediaViewer.d.ts +17 -0
  1029. package/lib/components/mediaViewer/MediaViewer.d.ts.map +1 -0
  1030. package/lib/components/mediaViewer/MediaViewer.js +347 -0
  1031. package/lib/components/mediaViewer/MediaViewer.js.map +1 -0
  1032. package/lib/components/mediaViewer/MediaViewerChrome.d.ts +14 -0
  1033. package/lib/components/mediaViewer/MediaViewerChrome.d.ts.map +1 -0
  1034. package/lib/components/mediaViewer/MediaViewerChrome.js +164 -0
  1035. package/lib/components/mediaViewer/MediaViewerChrome.js.map +1 -0
  1036. package/lib/components/mediaViewer/MediaViewerHost.d.ts +10 -0
  1037. package/lib/components/mediaViewer/MediaViewerHost.d.ts.map +1 -0
  1038. package/lib/components/mediaViewer/MediaViewerHost.js +76 -0
  1039. package/lib/components/mediaViewer/MediaViewerHost.js.map +1 -0
  1040. package/lib/components/mediaViewer/MediaViewerPage.d.ts +25 -0
  1041. package/lib/components/mediaViewer/MediaViewerPage.d.ts.map +1 -0
  1042. package/lib/components/mediaViewer/MediaViewerPage.js +194 -0
  1043. package/lib/components/mediaViewer/MediaViewerPage.js.map +1 -0
  1044. package/lib/components/mediaViewer/gallery.d.ts +27 -0
  1045. package/lib/components/mediaViewer/gallery.d.ts.map +1 -0
  1046. package/lib/components/mediaViewer/gallery.js +41 -0
  1047. package/lib/components/mediaViewer/gallery.js.map +1 -0
  1048. package/lib/components/messageHighlight.d.ts +41 -0
  1049. package/lib/components/messageHighlight.d.ts.map +1 -0
  1050. package/lib/components/messageHighlight.js +157 -0
  1051. package/lib/components/messageHighlight.js.map +1 -0
  1052. package/lib/components/messagePress.d.ts +14 -0
  1053. package/lib/components/messagePress.d.ts.map +1 -0
  1054. package/lib/components/messagePress.js +18 -0
  1055. package/lib/components/messagePress.js.map +1 -0
  1056. package/lib/components/messageSelection.d.ts +39 -0
  1057. package/lib/components/messageSelection.d.ts.map +1 -0
  1058. package/lib/components/messageSelection.js +135 -0
  1059. package/lib/components/messageSelection.js.map +1 -0
  1060. package/lib/components/recordingFeedback.d.ts +22 -0
  1061. package/lib/components/recordingFeedback.d.ts.map +1 -0
  1062. package/lib/components/recordingFeedback.js +80 -0
  1063. package/lib/components/recordingFeedback.js.map +1 -0
  1064. package/lib/components/recordingMeter.d.ts +19 -0
  1065. package/lib/components/recordingMeter.d.ts.map +1 -0
  1066. package/lib/components/recordingMeter.js +21 -0
  1067. package/lib/components/recordingMeter.js.map +1 -0
  1068. package/lib/components/roundNoteChrome.d.ts +107 -0
  1069. package/lib/components/roundNoteChrome.d.ts.map +1 -0
  1070. package/lib/components/roundNoteChrome.js +249 -0
  1071. package/lib/components/roundNoteChrome.js.map +1 -0
  1072. package/lib/components/roundNotePlayers.d.ts +78 -0
  1073. package/lib/components/roundNotePlayers.d.ts.map +1 -0
  1074. package/lib/components/roundNotePlayers.js +230 -0
  1075. package/lib/components/roundNotePlayers.js.map +1 -0
  1076. package/lib/components/sendFlight.d.ts +88 -0
  1077. package/lib/components/sendFlight.d.ts.map +1 -0
  1078. package/lib/components/sendFlight.js +146 -0
  1079. package/lib/components/sendFlight.js.map +1 -0
  1080. package/lib/components/viewOnce.d.ts +27 -0
  1081. package/lib/components/viewOnce.d.ts.map +1 -0
  1082. package/lib/components/viewOnce.js +168 -0
  1083. package/lib/components/viewOnce.js.map +1 -0
  1084. package/lib/components/visionCamera.d.ts +45 -0
  1085. package/lib/components/visionCamera.d.ts.map +1 -0
  1086. package/lib/components/visionCamera.js +117 -0
  1087. package/lib/components/visionCamera.js.map +1 -0
  1088. package/lib/components/voiceEditing.d.ts +34 -0
  1089. package/lib/components/voiceEditing.d.ts.map +1 -0
  1090. package/lib/components/voiceEditing.js +159 -0
  1091. package/lib/components/voiceEditing.js.map +1 -0
  1092. package/lib/components/voiceWaveform.d.ts +108 -0
  1093. package/lib/components/voiceWaveform.d.ts.map +1 -0
  1094. package/lib/components/voiceWaveform.js +165 -0
  1095. package/lib/components/voiceWaveform.js.map +1 -0
  1096. package/lib/components/wallpaperGradient.d.ts +16 -0
  1097. package/lib/components/wallpaperGradient.d.ts.map +1 -0
  1098. package/lib/components/wallpaperGradient.js +186 -0
  1099. package/lib/components/wallpaperGradient.js.map +1 -0
  1100. package/lib/components/windowInsets.d.ts +11 -0
  1101. package/lib/components/windowInsets.d.ts.map +1 -0
  1102. package/lib/components/windowInsets.js +44 -0
  1103. package/lib/components/windowInsets.js.map +1 -0
  1104. package/lib/dayjsLocales.js +15 -2
  1105. package/lib/dayjsLocales.js.map +1 -1
  1106. package/lib/emoji/EmojiGrid/BackspaceButton.d.ts +11 -0
  1107. package/lib/emoji/EmojiGrid/BackspaceButton.d.ts.map +1 -0
  1108. package/lib/emoji/EmojiGrid/BackspaceButton.js +111 -0
  1109. package/lib/emoji/EmojiGrid/BackspaceButton.js.map +1 -0
  1110. package/lib/emoji/EmojiGrid/EmojiRow.d.ts +15 -0
  1111. package/lib/emoji/EmojiGrid/EmojiRow.d.ts.map +1 -0
  1112. package/lib/emoji/EmojiGrid/EmojiRow.js +71 -0
  1113. package/lib/emoji/EmojiGrid/EmojiRow.js.map +1 -0
  1114. package/lib/emoji/EmojiGrid/Search.d.ts +29 -0
  1115. package/lib/emoji/EmojiGrid/Search.d.ts.map +1 -0
  1116. package/lib/emoji/EmojiGrid/Search.js +234 -0
  1117. package/lib/emoji/EmojiGrid/Search.js.map +1 -0
  1118. package/lib/emoji/EmojiGrid/TabStrip.d.ts +16 -0
  1119. package/lib/emoji/EmojiGrid/TabStrip.d.ts.map +1 -0
  1120. package/lib/emoji/EmojiGrid/TabStrip.js +237 -0
  1121. package/lib/emoji/EmojiGrid/TabStrip.js.map +1 -0
  1122. package/lib/emoji/EmojiGrid/TonePopup.d.ts +12 -0
  1123. package/lib/emoji/EmojiGrid/TonePopup.d.ts.map +1 -0
  1124. package/lib/emoji/EmojiGrid/TonePopup.js +137 -0
  1125. package/lib/emoji/EmojiGrid/TonePopup.js.map +1 -0
  1126. package/lib/emoji/EmojiGrid/constants.d.ts +29 -0
  1127. package/lib/emoji/EmojiGrid/constants.d.ts.map +1 -0
  1128. package/lib/emoji/EmojiGrid/constants.js +65 -0
  1129. package/lib/emoji/EmojiGrid/constants.js.map +1 -0
  1130. package/lib/emoji/EmojiGrid/index.d.ts +10 -0
  1131. package/lib/emoji/EmojiGrid/index.d.ts.map +1 -0
  1132. package/lib/emoji/EmojiGrid/index.js +450 -0
  1133. package/lib/emoji/EmojiGrid/index.js.map +1 -0
  1134. package/lib/emoji/EmojiGrid/items.d.ts +25 -0
  1135. package/lib/emoji/EmojiGrid/items.d.ts.map +1 -0
  1136. package/lib/emoji/EmojiGrid/items.js +75 -0
  1137. package/lib/emoji/EmojiGrid/items.js.map +1 -0
  1138. package/lib/emoji/EmojiGrid/styles.d.ts +181 -0
  1139. package/lib/emoji/EmojiGrid/styles.d.ts.map +1 -0
  1140. package/lib/emoji/EmojiGrid/styles.js +184 -0
  1141. package/lib/emoji/EmojiGrid/styles.js.map +1 -0
  1142. package/lib/emoji/EmojiGrid/types.d.ts +53 -0
  1143. package/lib/emoji/EmojiGrid/types.d.ts.map +1 -0
  1144. package/lib/emoji/EmojiGrid/types.js +2 -0
  1145. package/lib/emoji/EmojiGrid/types.js.map +1 -0
  1146. package/lib/emoji/EmojiGrid/useTabScroll.d.ts +19 -0
  1147. package/lib/emoji/EmojiGrid/useTabScroll.d.ts.map +1 -0
  1148. package/lib/emoji/EmojiGrid/useTabScroll.js +124 -0
  1149. package/lib/emoji/EmojiGrid/useTabScroll.js.map +1 -0
  1150. package/lib/emoji/EmojiKeyboard.d.ts +79 -0
  1151. package/lib/emoji/EmojiKeyboard.d.ts.map +1 -0
  1152. package/lib/emoji/EmojiKeyboard.js +445 -0
  1153. package/lib/emoji/EmojiKeyboard.js.map +1 -0
  1154. package/lib/emoji/defaultExpandedPicker.d.ts +5 -0
  1155. package/lib/emoji/defaultExpandedPicker.d.ts.map +1 -0
  1156. package/lib/emoji/defaultExpandedPicker.js +11 -0
  1157. package/lib/emoji/defaultExpandedPicker.js.map +1 -0
  1158. package/lib/emoji/emojiData.d.ts +2 -0
  1159. package/lib/emoji/emojiData.d.ts.map +1 -0
  1160. package/lib/emoji/emojiData.js +5 -0
  1161. package/lib/emoji/emojiData.js.map +1 -0
  1162. package/lib/emoji/emojiStore.d.ts +70 -0
  1163. package/lib/emoji/emojiStore.d.ts.map +1 -0
  1164. package/lib/emoji/emojiStore.js +246 -0
  1165. package/lib/emoji/emojiStore.js.map +1 -0
  1166. package/lib/emoji/textEditing.d.ts +20 -0
  1167. package/lib/emoji/textEditing.d.ts.map +1 -0
  1168. package/lib/emoji/textEditing.js +97 -0
  1169. package/lib/emoji/textEditing.js.map +1 -0
  1170. package/lib/emojiOnly.d.ts +11 -0
  1171. package/lib/emojiOnly.d.ts.map +1 -0
  1172. package/lib/emojiOnly.js +79 -0
  1173. package/lib/emojiOnly.js.map +1 -0
  1174. package/lib/gestures/useRowSwipe.d.ts +43 -0
  1175. package/lib/gestures/useRowSwipe.d.ts.map +1 -0
  1176. package/lib/gestures/useRowSwipe.js +74 -0
  1177. package/lib/gestures/useRowSwipe.js.map +1 -0
  1178. package/lib/hooks/useAnimatedPresence.d.ts +22 -0
  1179. package/lib/hooks/useAnimatedPresence.d.ts.map +1 -0
  1180. package/lib/hooks/useAnimatedPresence.js +97 -0
  1181. package/lib/hooks/useAnimatedPresence.js.map +1 -0
  1182. package/lib/hooks/useChatMessages.d.ts +39 -0
  1183. package/lib/hooks/useChatMessages.d.ts.map +1 -0
  1184. package/lib/hooks/useChatMessages.js +125 -0
  1185. package/lib/hooks/useChatMessages.js.map +1 -0
  1186. package/lib/hooks/useColorScheme.d.ts +7 -1
  1187. package/lib/hooks/useColorScheme.d.ts.map +1 -1
  1188. package/lib/hooks/useColorScheme.js +46 -8
  1189. package/lib/hooks/useColorScheme.js.map +1 -1
  1190. package/lib/hooks/useHasKeyboardProvider.js +18 -7
  1191. package/lib/hooks/useHasKeyboardProvider.js.map +1 -1
  1192. package/lib/hooks/useIcons.js +15 -2
  1193. package/lib/hooks/useIcons.js.map +1 -1
  1194. package/lib/hooks/useIsKeyboardVisible.js +39 -17
  1195. package/lib/hooks/useIsKeyboardVisible.js.map +1 -1
  1196. package/lib/hooks/useIsRTL.js +15 -2
  1197. package/lib/hooks/useIsRTL.js.map +1 -1
  1198. package/lib/hooks/useKeyboardVerticalOffset.d.ts +5 -3
  1199. package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
  1200. package/lib/hooks/useKeyboardVerticalOffset.js +52 -18
  1201. package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
  1202. package/lib/hooks/useLabels.js +15 -2
  1203. package/lib/hooks/useLabels.js.map +1 -1
  1204. package/lib/hooks/useStreamingMessages.js +200 -86
  1205. package/lib/hooks/useStreamingMessages.js.map +1 -1
  1206. package/lib/hooks/useTheme.js +56 -7
  1207. package/lib/hooks/useTheme.js.map +1 -1
  1208. package/lib/hooks/useUpdateLayoutEffect.d.ts.map +1 -1
  1209. package/lib/hooks/useUpdateLayoutEffect.js +35 -11
  1210. package/lib/hooks/useUpdateLayoutEffect.js.map +1 -1
  1211. package/lib/i18n.d.ts +182 -0
  1212. package/lib/i18n.d.ts.map +1 -1
  1213. package/lib/i18n.js +121 -23
  1214. package/lib/i18n.js.map +1 -1
  1215. package/lib/index.d.ts +31 -1
  1216. package/lib/index.d.ts.map +1 -1
  1217. package/lib/index.js +18 -1
  1218. package/lib/index.js.map +1 -1
  1219. package/lib/linkParser.js +318 -185
  1220. package/lib/linkParser.js.map +1 -1
  1221. package/lib/locales/ar.d.ts.map +1 -1
  1222. package/lib/locales/ar.js +110 -19
  1223. package/lib/locales/ar.js.map +1 -1
  1224. package/lib/locales/de.d.ts.map +1 -1
  1225. package/lib/locales/de.js +110 -19
  1226. package/lib/locales/de.js.map +1 -1
  1227. package/lib/locales/es.d.ts.map +1 -1
  1228. package/lib/locales/es.js +110 -19
  1229. package/lib/locales/es.js.map +1 -1
  1230. package/lib/locales/fr.d.ts.map +1 -1
  1231. package/lib/locales/fr.js +110 -19
  1232. package/lib/locales/fr.js.map +1 -1
  1233. package/lib/locales/hi.d.ts.map +1 -1
  1234. package/lib/locales/hi.js +110 -19
  1235. package/lib/locales/hi.js.map +1 -1
  1236. package/lib/locales/id.d.ts.map +1 -1
  1237. package/lib/locales/id.js +110 -19
  1238. package/lib/locales/id.js.map +1 -1
  1239. package/lib/locales/index.js +19 -5
  1240. package/lib/locales/index.js.map +1 -1
  1241. package/lib/locales/it.d.ts.map +1 -1
  1242. package/lib/locales/it.js +110 -19
  1243. package/lib/locales/it.js.map +1 -1
  1244. package/lib/locales/ja.d.ts.map +1 -1
  1245. package/lib/locales/ja.js +110 -19
  1246. package/lib/locales/ja.js.map +1 -1
  1247. package/lib/locales/ko.d.ts.map +1 -1
  1248. package/lib/locales/ko.js +110 -19
  1249. package/lib/locales/ko.js.map +1 -1
  1250. package/lib/locales/nl.d.ts.map +1 -1
  1251. package/lib/locales/nl.js +110 -19
  1252. package/lib/locales/nl.js.map +1 -1
  1253. package/lib/locales/pl.d.ts.map +1 -1
  1254. package/lib/locales/pl.js +110 -19
  1255. package/lib/locales/pl.js.map +1 -1
  1256. package/lib/locales/pt.d.ts.map +1 -1
  1257. package/lib/locales/pt.js +110 -19
  1258. package/lib/locales/pt.js.map +1 -1
  1259. package/lib/locales/ru.d.ts.map +1 -1
  1260. package/lib/locales/ru.js +110 -19
  1261. package/lib/locales/ru.js.map +1 -1
  1262. package/lib/locales/tr.d.ts.map +1 -1
  1263. package/lib/locales/tr.js +110 -19
  1264. package/lib/locales/tr.js.map +1 -1
  1265. package/lib/locales/zh.d.ts.map +1 -1
  1266. package/lib/locales/zh.js +110 -19
  1267. package/lib/locales/zh.js.map +1 -1
  1268. package/lib/logging.d.ts +5 -0
  1269. package/lib/logging.d.ts.map +1 -1
  1270. package/lib/logging.js +13 -1
  1271. package/lib/logging.js.map +1 -1
  1272. package/lib/messageUtils.d.ts +19 -0
  1273. package/lib/messageUtils.d.ts.map +1 -0
  1274. package/lib/messageUtils.js +61 -0
  1275. package/lib/messageUtils.js.map +1 -0
  1276. package/lib/motion.d.ts +21 -0
  1277. package/lib/motion.d.ts.map +1 -0
  1278. package/lib/motion.js +30 -0
  1279. package/lib/motion.js.map +1 -0
  1280. package/lib/optional/index.d.ts +99 -0
  1281. package/lib/optional/index.d.ts.map +1 -0
  1282. package/lib/optional/index.js +284 -0
  1283. package/lib/optional/index.js.map +1 -0
  1284. package/lib/rtl.js +7 -5
  1285. package/lib/rtl.js.map +1 -1
  1286. package/lib/store.d.ts +40 -0
  1287. package/lib/store.d.ts.map +1 -0
  1288. package/lib/store.js +127 -0
  1289. package/lib/store.js.map +1 -0
  1290. package/lib/styles.d.ts +2 -2
  1291. package/lib/styles.d.ts.map +1 -1
  1292. package/lib/styles.js +15 -15
  1293. package/lib/styles.js.map +1 -1
  1294. package/lib/types.js +1 -0
  1295. package/lib/types.js.map +1 -1
  1296. package/lib/utils.d.ts +15 -0
  1297. package/lib/utils.d.ts.map +1 -1
  1298. package/lib/utils.js +199 -94
  1299. package/lib/utils.js.map +1 -1
  1300. package/llms.txt +133 -31
  1301. package/package.json +89 -46
  1302. package/lib/InputToolbar.d.ts +0 -49
  1303. package/lib/InputToolbar.d.ts.map +0 -1
  1304. package/lib/InputToolbar.js +0 -338
  1305. package/lib/InputToolbar.js.map +0 -1
  1306. package/lib/MessageVideo.d.ts.map +0 -1
  1307. package/lib/MessageVideo.js +0 -162
  1308. package/lib/MessageVideo.js.map +0 -1
  1309. package/lib/MessagesContainer/FlashList.d.ts +0 -9
  1310. package/lib/MessagesContainer/FlashList.d.ts.map +0 -1
  1311. package/lib/MessagesContainer/FlashList.js +0 -23
  1312. package/lib/MessagesContainer/FlashList.js.map +0 -1
  1313. package/lib/components/ContextMenu.d.ts +0 -25
  1314. package/lib/components/ContextMenu.d.ts.map +0 -1
  1315. package/lib/components/ContextMenu.js +0 -122
  1316. package/lib/components/ContextMenu.js.map +0 -1
  1317. package/lib/components/VideoNoteRecorder.d.ts.map +0 -1
  1318. package/lib/components/VideoNoteRecorder.js +0 -634
  1319. package/lib/components/VideoNoteRecorder.js.map +0 -1
  1320. package/lib/components/VoiceMessageInput.d.ts +0 -33
  1321. package/lib/components/VoiceMessageInput.d.ts.map +0 -1
  1322. package/lib/components/VoiceMessageInput.js +0 -403
  1323. package/lib/components/VoiceMessageInput.js.map +0 -1
  1324. package/lib/components/WaveformPlayer.d.ts +0 -19
  1325. package/lib/components/WaveformPlayer.d.ts.map +0 -1
  1326. package/lib/components/WaveformPlayer.js +0 -367
  1327. package/lib/components/WaveformPlayer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mediaPlayback.js","sourceRoot":"","sources":["../../src/components/mediaPlayback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAA;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,IAAiB,EAAE,EAAE;IAC7D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,OAAO;QACxC,IAAI,OAAO,KAAK,EAAE;YAChB,IAAI,CAAC;gBACH,SAAS,EAAE,CAAA;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,yDAAyD;YAC3D,CAAC;IAEL,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;IAC5C,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"mediaPlayback.js","names":["createContext","useContext","useEffect","useLayoutEffect","useRef","useSyncExternalStore","createNotePlayerCache","detachRoundNote","players","Map","claimPlayback","id","stop","otherId","stopOther","clear","set","releasePlayback","delete","stopAllPlayback","values","PLAYBACK_RATES","PLAYBACK_RATE_PRESETS","playbackRate","rateListeners","Set","getPlaybackRate","setPlaybackRate","rate","Number","isFinite","listener","nextPlaybackRate","index","indexOf","length","subscribeRate","add","usePlaybackRate","subscribePlaybackRate","isPlayableNote","message","audio","video","videoNote","createMediaPlaybackController","messages","isInverted","options","isAutoPlayNextEnabled","isRoundVideoAutoplayEnabled","entries","nearEarListeners","grownNote","grownTimeShift","grownListeners","scroller","nowPlaying","nowPlayingListeners","notifyNowPlaying","forEach","viewable","viewableListeners","floatingNote","floatingListeners","notePlayers","setViewableMessages","messageIds","next","size","every","has","isMessageViewable","messageId","undefined","subscribeViewable","setFloatingNote","getFloatingNote","subscribeFloatingNote","setNowPlaying","entry","clearNowPlaying","getNowPlaying","subscribeNowPlaying","getMessage","find","_id","setScroller","scrollToMessage","setGrownNote","timeShift","getGrownTimeShift","getGrownNote","subscribeGrownNote","setMessages","inverted","setOptions","wasNearEar","isNearEar","subscribeNearEar","getOptions","markRead","m","isMediaUnread","onMediaRead","register","get","onEnded","findIndex","step","i","play","MediaPlaybackContext","LiftedPlaybackContext","noteGrowShifts","liftedMedia","liftedListeners","subscribeLifted","setMediaLifted","key","isLifted","useIsMediaLifted","$","_c","t0","_temp","useReadablePlayback","controller","lifted","usePlaylistEntry","playRef","current","t1","t2","onEndedRef","_temp2","t3","useNotePlaybackOptions","markReadRef","_temp3","t4","onTranscribe","t5","onViewOnceEnd","t6","noSubscription","useIsNoteGrown","_temp4","useReportNoteGrown","isGrown","useNoteTimeShift","_temp5","useReportNowPlaying","kind","isCurrent","isPlaying","toggle","player","actionsRef","useScrollToMessage","useNowPlaying","_temp6","useIsNearEar","_temp7","useIsMessageViewable","_temp8","useIsNoteFloating","_temp9","sharedNotePlayers","useNotePlayerCache","detachRoundNoteFromRow","cache","cacheKey","canFloat","isActive","isFloatingRoundNoteEnabled","pause","keep","claim","unclaim","getRate","report","state","useMediaPlaybackController"],"sources":["../../src/components/mediaPlayback.ts"],"sourcesContent":["import { createContext, useContext, useEffect, useLayoutEffect, useRef, useSyncExternalStore } from 'react'\nimport { NotePlayer, NotePlayerCache, createNotePlayerCache, detachRoundNote } from './roundNotePlayers'\n\n/**\n * Module-level registry so only one piece of media plays at a time.\n *\n * Every voice note and round video note owns its own player, and nothing\n * coordinated them: starting a second note left the first one playing, and a\n * chat with several round notes played all of them at once. Now the current\n * one always stops when a new one starts.\n *\n * Deliberately not React context - bubbles are recycled by the list, and the\n * registry has to outlive individual mounts to stop a player whose row has\n * already scrolled away.\n */\n\n/**\n * Why a player is told to stop. `replaced`: another note started, so this one\n * is no longer current and resets its progress. `paused`: something else took the audio (a\n * recording), so it pauses and stays current.\n */\nexport type StopReason = 'replaced' | 'paused'\n\ntype StopHandler = (reason: StopReason) => void\n\nconst players = new Map<string, StopHandler>()\n\n/**\n * Claim playback for `id`, stopping whatever else was playing.\n * Call when a player actually starts. A paused note may keep its claim, so a\n * later note can still reset it.\n */\nexport const claimPlayback = (id: string, stop: StopHandler) => {\n for (const [otherId, stopOther] of players)\n if (otherId !== id)\n try {\n stopOther('replaced')\n } catch {\n // a player that fails to stop must not block the new one\n }\n\n players.clear()\n players.set(id, stop)\n}\n\n/** Give up the claim (on completion, reset or unmount). */\nexport const releasePlayback = (id: string) => {\n players.delete(id)\n}\n\n/**\n * Pause whatever is playing. Recording calls this first: opening the mic takes\n * audio focus, which pauses the playing note - otherwise it would bleed straight into the new take. The\n * paused note keeps its claim and stays current.\n */\nexport const stopAllPlayback = () => {\n for (const stop of [...players.values()])\n try {\n stop('paused')\n } catch {\n // a player that fails to stop must not block the others\n }\n}\n\n/** A tap of the speed pill cycles through these. */\nexport const PLAYBACK_RATES = [1, 1.5, 2] as const\n\n/**\n * The presets a long press on the speed pill offers: Slow, Normal, Medium,\n * Fast, Very fast and Super fast.\n */\nexport const PLAYBACK_RATE_PRESETS = [0.5, 1, 1.2, 1.5, 1.7, 2] as const\n\n/*\n * One playback speed for every voice and round note: picking 2x on one note keeps 2x for\n * the next instead of resetting each bubble to 1x. Module-level so it survives\n * rows being recycled; apps that want it across launches persist it through\n * `mediaPlayback.onPlaybackRateChange` and hand it back as `playbackRate`.\n */\nlet playbackRate = 1\nconst rateListeners = new Set<() => void>()\n\nexport const getPlaybackRate = () => playbackRate\n\nexport const setPlaybackRate = (rate: number) => {\n if (!Number.isFinite(rate) || rate <= 0 || rate === playbackRate)\n return\n\n playbackRate = rate\n for (const listener of rateListeners)\n listener()\n}\n\n/** The next step on the speed pill after `rate`. */\nexport const nextPlaybackRate = (rate: number) => {\n const index = PLAYBACK_RATES.indexOf(rate as typeof PLAYBACK_RATES[number])\n return PLAYBACK_RATES[(index + 1) % PLAYBACK_RATES.length]\n}\n\nconst subscribeRate = (listener: () => void) => {\n rateListeners.add(listener)\n return () => {\n rateListeners.delete(listener)\n }\n}\n\n/** The shared playback speed, re-rendering when any note changes it. */\nexport const usePlaybackRate = () =>\n useSyncExternalStore(subscribeRate, getPlaybackRate, getPlaybackRate)\n\nexport const subscribePlaybackRate = (listener: (rate: number) => void) =>\n subscribeRate(() => listener(playbackRate))\n\n/** What a message needs for the \"play the next note\" lookup. */\ninterface PlaylistMessage {\n _id: string | number\n audio?: string\n video?: string\n videoNote?: boolean\n isMediaUnread?: boolean\n}\n\n/** Chat-level playback options, from the `mediaPlayback` prop. */\nexport interface MediaPlaybackOptions {\n isAutoPlayNextEnabled: boolean\n isRoundVideoAutoplayEnabled: boolean\n onMediaRead?: (message: any) => void\n isNearEar?: boolean\n onTranscribe?: (message: any) => void\n onViewOnceEnd?: (message: any) => void\n isFloatingRoundNoteEnabled?: boolean\n}\n\n/** A mounted player the controller can start when the previous note ends. */\ninterface PlaylistEntry {\n play: () => void\n}\n\n/**\n * Per-chat coordinator for auto-playing the next note. When a voice or round\n * note finishes on its own, playback moves on to the next newer voice/round\n * message in the chat, so a run of notes plays as one.\n *\n * The chat feeds it the current messages on every render (a ref write, no\n * re-render), and players register by message id while they are mounted. The\n * next note can only be started if its row is mounted - the list virtualizes,\n * but the next note sits right below the current one, so it nearly always is.\n */\nexport interface MediaPlaybackController {\n setMessages: (messages: readonly PlaylistMessage[], isInverted: boolean) => void\n setOptions: (options: MediaPlaybackOptions) => void\n getOptions: () => MediaPlaybackOptions\n /** Notified when `isNearEar` flips (raise to listen). */\n subscribeNearEar: (listener: () => void) => () => void\n register: (messageId: string | number, entry: PlaylistEntry) => () => void\n /** Called by a player whose note reached its end without being paused. */\n onEnded: (messageId: string | number) => void\n /**\n * An incoming unread note started playing: report it, since playing\n * marks the content read.\n */\n markRead: (messageId: string | number) => void\n /**\n * The round note grown to play, if any. Its row hides the sender's avatar\n * meanwhile.\n */\n setGrownNote: (messageId: string | number | null, timeShift?: number) => void\n getGrownNote: () => string | number | null\n /**\n * How far the grown note's right edge moved from where it rests, so the\n * bubble can carry the sent time along with the circle.\n */\n getGrownTimeShift: () => number\n subscribeGrownNote: (listener: () => void) => () => void\n /**\n * The note that owns playback, playing or paused, for the \"now playing\" bar\n * at the top of the chat.\n */\n setNowPlaying: (entry: NowPlayingEntry | null) => void\n /** Clears the bar only if `messageId` still owns it. */\n clearNowPlaying: (messageId: string | number) => void\n getNowPlaying: () => NowPlayingEntry | null\n subscribeNowPlaying: (listener: () => void) => () => void\n getMessage: (messageId: string | number) => PlaylistMessage | undefined\n /** Set by the chat: scrolls the list so a message sits mid-screen. */\n setScroller: (scroll: ((messageId: string | number) => void) | null) => void\n /**\n * Centres a message in the list, used when a round note starts playing.\n */\n scrollToMessage: (messageId: string | number) => void\n /**\n * The messages whose rows are at least partly on screen, from the list's\n * viewability. The playing round note floats once its row is no longer\n * among them.\n */\n setViewableMessages: (messageIds: readonly (string | number)[]) => void\n /** `undefined` until the list first reports, so nothing floats before layout. */\n isMessageViewable: (messageId: string | number) => boolean | undefined\n subscribeViewable: (listener: () => void) => () => void\n /** The round note drawn floating over the list, while its view is mounted. */\n setFloatingNote: (messageId: string | number | null) => void\n getFloatingNote: () => string | number | null\n subscribeFloatingNote: (listener: () => void) => () => void\n /** Round note players, which outlive their rows while the note is current. */\n notePlayers: NotePlayerCache\n}\n\n/** What the \"now playing\" bar shows and controls. */\nexport interface NowPlayingEntry {\n messageId: string | number\n kind: 'voice' | 'round'\n isPlaying: boolean\n toggle: () => void\n stop: () => void\n /** A round note's expo-video player, so the floating note shows the same video. */\n player?: unknown\n}\n\nconst isPlayableNote = (message: PlaylistMessage) =>\n !!message.audio || (!!message.video && !!message.videoNote)\n\nexport const createMediaPlaybackController = (): MediaPlaybackController => {\n let messages: readonly PlaylistMessage[] = []\n let isInverted = true\n let options: MediaPlaybackOptions = { isAutoPlayNextEnabled: true, isRoundVideoAutoplayEnabled: false }\n const entries = new Map<string | number, PlaylistEntry>()\n const nearEarListeners = new Set<() => void>()\n let grownNote: string | number | null = null\n let grownTimeShift = 0\n const grownListeners = new Set<() => void>()\n let scroller: ((messageId: string | number) => void) | null = null\n let nowPlaying: NowPlayingEntry | null = null\n const nowPlayingListeners = new Set<() => void>()\n const notifyNowPlaying = () => nowPlayingListeners.forEach(listener => listener())\n let viewable: Set<string | number> | null = null\n const viewableListeners = new Set<() => void>()\n let floatingNote: string | number | null = null\n const floatingListeners = new Set<() => void>()\n const notePlayers = createNotePlayerCache()\n\n return {\n notePlayers,\n setViewableMessages (messageIds) {\n const next = new Set(messageIds)\n if (viewable && viewable.size === next.size && [...next].every(id => viewable!.has(id)))\n return\n viewable = next\n viewableListeners.forEach(listener => listener())\n },\n isMessageViewable (messageId) {\n return viewable ? viewable.has(messageId) : undefined\n },\n subscribeViewable (listener) {\n viewableListeners.add(listener)\n return () => {\n viewableListeners.delete(listener)\n }\n },\n setFloatingNote (messageId) {\n if (floatingNote === messageId)\n return\n floatingNote = messageId\n floatingListeners.forEach(listener => listener())\n },\n getFloatingNote () {\n return floatingNote\n },\n subscribeFloatingNote (listener) {\n floatingListeners.add(listener)\n return () => {\n floatingListeners.delete(listener)\n }\n },\n setNowPlaying (entry) {\n nowPlaying = entry\n notifyNowPlaying()\n },\n clearNowPlaying (messageId) {\n if (nowPlaying?.messageId !== messageId)\n return\n nowPlaying = null\n notifyNowPlaying()\n },\n getNowPlaying () {\n return nowPlaying\n },\n subscribeNowPlaying (listener) {\n nowPlayingListeners.add(listener)\n return () => {\n nowPlayingListeners.delete(listener)\n }\n },\n getMessage (messageId) {\n return messages.find(message => message._id === messageId)\n },\n setScroller (next) {\n scroller = next\n },\n scrollToMessage (messageId) {\n scroller?.(messageId)\n },\n setGrownNote (messageId, timeShift = 0) {\n if (grownNote === messageId && grownTimeShift === timeShift)\n return\n grownTimeShift = messageId == null ? 0 : timeShift\n grownNote = messageId\n grownListeners.forEach(listener => listener())\n },\n getGrownTimeShift () {\n return grownTimeShift\n },\n getGrownNote () {\n return grownNote\n },\n subscribeGrownNote (listener) {\n grownListeners.add(listener)\n return () => {\n grownListeners.delete(listener)\n }\n },\n setMessages (next, inverted) {\n messages = next\n isInverted = inverted\n },\n setOptions (next) {\n const wasNearEar = !!options.isNearEar\n options = next\n // Rows do not re-render when the chat's options change, so the sensor\n // reaches players through a subscription.\n if (wasNearEar !== !!next.isNearEar)\n nearEarListeners.forEach(listener => listener())\n },\n subscribeNearEar (listener) {\n nearEarListeners.add(listener)\n return () => {\n nearEarListeners.delete(listener)\n }\n },\n getOptions () {\n return options\n },\n markRead (messageId) {\n const message = messages.find(m => m._id === messageId)\n if (message?.isMediaUnread)\n options.onMediaRead?.(message)\n },\n register (messageId, entry) {\n entries.set(messageId, entry)\n return () => {\n if (entries.get(messageId) === entry)\n entries.delete(messageId)\n }\n },\n onEnded (messageId) {\n if (!options.isAutoPlayNextEnabled)\n return\n\n const index = messages.findIndex(message => message._id === messageId)\n if (index < 0)\n return\n\n // An inverted list keeps the newest message first, so \"newer\" walks\n // towards index 0; a non-inverted one walks the other way.\n const step = isInverted ? -1 : 1\n for (let i = index + step; i >= 0 && i < messages.length; i += step) {\n const message = messages[i]\n if (!isPlayableNote(message))\n continue\n\n entries.get(message._id)?.play()\n return\n }\n },\n }\n}\n\nexport const MediaPlaybackContext = createContext<MediaPlaybackController | null>(null)\n\n/**\n * Inside the long-press copy of a message: the chat's playback, to show (never drive). The copy\n * sits over its hidden original while the menu is open; its media mirrors what the original is\n * playing, as Telegram's lifted message does, instead of starting a player of its own.\n */\nexport const LiftedPlaybackContext = createContext<MediaPlaybackController | null>(null)\n\n/**\n * The horizontal shift of each grown round note, by its player key, so a lifted copy of it sits\n * exactly over the original.\n */\nexport const noteGrowShifts = new Map<string, number>()\n\n// Media a lifted copy is showing, by player key. On Android a player draws into one view at a\n// time, so the hidden original lets go of it while the copy holds it, and takes it back after.\nconst liftedMedia = new Set<string>()\nconst liftedListeners = new Set<() => void>()\nconst subscribeLifted = (listener: () => void) => {\n liftedListeners.add(listener)\n return () => {\n liftedListeners.delete(listener)\n }\n}\n\n/** A lifted copy started (or stopped) showing the media under `key`. */\nexport const setMediaLifted = (key: string, isLifted: boolean) => {\n if (isLifted)\n liftedMedia.add(key)\n else\n liftedMedia.delete(key)\n liftedListeners.forEach(listener => listener())\n}\n\n/** Whether a lifted copy is showing the media under `key`. */\nexport const useIsMediaLifted = (key: string) => useSyncExternalStore(\n subscribeLifted,\n () => liftedMedia.has(key),\n () => false\n)\n\n/** The chat's controller, or, inside a lifted copy, the one it mirrors. Read-only uses only. */\nconst useReadablePlayback = () => {\n const controller = useContext(MediaPlaybackContext)\n const lifted = useContext(LiftedPlaybackContext)\n return controller ?? lifted\n}\n\n/**\n * Registers a player for auto-play-next and returns the `onEnded` callback it\n * should fire when its note finishes on its own. A no-op outside a `Chat`, or\n * when the message id is unknown.\n */\nexport const usePlaylistEntry = (messageId: string | number | undefined, play: () => void) => {\n const controller = useContext(MediaPlaybackContext)\n const playRef = useRef(play)\n useLayoutEffect(() => {\n playRef.current = play\n })\n\n useEffect(() => {\n if (!controller || messageId == null)\n return\n\n return controller.register(messageId, { play: () => playRef.current() })\n }, [controller, messageId])\n\n const onEndedRef = useRef(() => {})\n useLayoutEffect(() => {\n onEndedRef.current = () => {\n if (controller && messageId != null)\n controller.onEnded(messageId)\n }\n })\n\n return onEndedRef\n}\n\n/**\n * Whether round notes loop silently in the list, and a callback that reports\n * an incoming unread note as read. Both are no-ops outside a `Chat`.\n */\nexport const useNotePlaybackOptions = (messageId: string | number | undefined) => {\n const controller = useContext(MediaPlaybackContext)\n const markReadRef = useRef(() => {})\n useLayoutEffect(() => {\n markReadRef.current = () => {\n if (controller && messageId != null)\n controller.markRead(messageId)\n }\n })\n\n const options = controller?.getOptions()\n return {\n isRoundVideoAutoplayEnabled: options?.isRoundVideoAutoplayEnabled ?? false,\n isNearEar: options?.isNearEar ?? false,\n onTranscribe: options?.onTranscribe,\n onViewOnceEnd: options?.onViewOnceEnd,\n markReadRef,\n }\n}\n\nconst noSubscription = () => () => {}\n\n/** Whether this message's round note is grown to play; false outside a `Chat`. */\nexport const useIsNoteGrown = (messageId: string | number | undefined) => {\n const controller = useReadablePlayback()\n return useSyncExternalStore(\n controller?.subscribeGrownNote ?? noSubscription,\n () => messageId != null && controller?.getGrownNote() === messageId,\n () => false\n )\n}\n\n/** Reports this note growing or shrinking back, so its row can hide the avatar. */\nexport const useReportNoteGrown = (messageId: string | number | undefined, isGrown: boolean, timeShift = 0) => {\n const controller = useContext(MediaPlaybackContext)\n useEffect(() => {\n if (!controller || messageId == null || !isGrown)\n return\n\n controller.setGrownNote(messageId, timeShift)\n }, [controller, messageId, isGrown, timeShift])\n\n useEffect(() => {\n if (!controller || messageId == null || !isGrown)\n return\n\n return () => {\n if (controller.getGrownNote() === messageId)\n controller.setGrownNote(null)\n }\n }, [controller, messageId, isGrown])\n}\n\n/** How far this message's grown round note moved its right edge; 0 at rest. */\nexport const useNoteTimeShift = (messageId: string | number | undefined) => {\n const controller = useReadablePlayback()\n return useSyncExternalStore(\n controller?.subscribeGrownNote ?? noSubscription,\n () => messageId != null && controller?.getGrownNote() === messageId ? controller.getGrownTimeShift() : 0,\n () => 0\n )\n}\n\n/**\n * Puts this note in the \"now playing\" bar while it owns playback, playing or\n * paused, and takes it out when it stops, is replaced or unmounts.\n */\nexport const useReportNowPlaying = (\n messageId: string | number | undefined,\n kind: 'voice' | 'round',\n isCurrent: boolean,\n isPlaying: boolean,\n toggle: () => void,\n stop: () => void,\n player?: unknown\n) => {\n const controller = useContext(MediaPlaybackContext)\n const actionsRef = useRef({ toggle, stop })\n useLayoutEffect(() => {\n actionsRef.current = { toggle, stop }\n })\n\n useEffect(() => {\n if (!controller || messageId == null || !isCurrent)\n return\n\n controller.setNowPlaying({\n messageId,\n kind,\n isPlaying,\n toggle: () => actionsRef.current.toggle(),\n stop: () => actionsRef.current.stop(),\n player,\n })\n }, [controller, messageId, kind, isCurrent, isPlaying, player])\n\n useEffect(() => {\n if (!controller || messageId == null || !isCurrent)\n return\n\n return () => controller.clearNowPlaying(messageId)\n }, [controller, messageId, isCurrent])\n}\n\n/** Centres a message in the chat's list; a no-op outside a `Chat`. */\nexport const useScrollToMessage = () => {\n const controller = useContext(MediaPlaybackContext)\n return (messageId: string | number | undefined) => {\n if (controller && messageId != null)\n controller.scrollToMessage(messageId)\n }\n}\n\n/** The note in the \"now playing\" bar, or null; null outside a `Chat`. */\nexport const useNowPlaying = () => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeNowPlaying ?? noSubscription,\n () => controller?.getNowPlaying() ?? null,\n () => null\n )\n}\n\n/** The phone is held to the ear (raise to listen); false outside a `Chat`. */\nexport const useIsNearEar = () => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeNearEar ?? noSubscription,\n () => !!controller?.getOptions().isNearEar,\n () => false\n )\n}\n\n/**\n * Whether a message's row is on screen: `undefined` outside a `Chat` or before\n * the list has reported, so callers can tell \"scrolled away\" from \"unknown\".\n */\nexport const useIsMessageViewable = (messageId: string | number | undefined) => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeViewable ?? noSubscription,\n () => (controller && messageId != null ? controller.isMessageViewable(messageId) : undefined),\n () => undefined\n )\n}\n\n/** Whether this message's round note is currently drawn floating over the list. */\nexport const useIsNoteFloating = (messageId: string | number | undefined) => {\n const controller = useContext(MediaPlaybackContext)\n return useSyncExternalStore(\n controller?.subscribeFloatingNote ?? noSubscription,\n () => messageId != null && controller?.getFloatingNote() === messageId,\n () => false\n )\n}\n\n// Round notes rendered outside a `Chat` still borrow their players from a\n// cache, so React's strict effects (unmount, mount again) do not release a\n// player that is still on screen.\nconst sharedNotePlayers = createNotePlayerCache()\n\n/** The chat's round note players, or a shared cache outside a `Chat`. */\nexport const useNotePlayerCache = () => {\n const controller = useContext(MediaPlaybackContext)\n return controller?.notePlayers ?? sharedNotePlayers\n}\n\n/**\n * Hands a current round note whose row is unmounting over to a detached\n * session, so it keeps playing (and floating) until it ends, another note\n * starts, or its row mounts again and takes it back. Without a `Chat`, or\n * while the chat itself is going away, the note just stops.\n */\nexport const detachRoundNoteFromRow = (\n controller: MediaPlaybackController | null,\n cache: NotePlayerCache,\n cacheKey: string | number,\n messageId: string | number | undefined,\n player: NotePlayer,\n isPlaying: boolean,\n /** False for a note that must not outlive its row (a view-once one). */\n canFloat = true\n) => {\n if (\n !canFloat ||\n !controller ||\n messageId == null ||\n !cache.isActive() ||\n controller.getOptions().isFloatingRoundNoteEnabled === false\n ) {\n try {\n player.pause()\n } catch {\n // already torn down\n }\n cache.keep(cacheKey, false)\n return\n }\n\n detachRoundNote(cacheKey, player, isPlaying, {\n cache,\n claim: claimPlayback,\n unclaim: releasePlayback,\n getRate: getPlaybackRate,\n subscribeRate: subscribePlaybackRate,\n report: state => {\n if (state)\n controller.setNowPlaying({ messageId, kind: 'round', player, ...state })\n else\n controller.clearNowPlaying(messageId)\n },\n onEnded: () => controller.onEnded(messageId),\n })\n}\n\n/** The chat's playback controller, or `null` outside a `Chat`. */\nexport const useMediaPlaybackController = () => useContext(MediaPlaybackContext)\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import { IMessage, MediaTransferProps } from '../Models';
2
+ /**
3
+ * The app's download and cancel handlers, read at press time so a new handler
4
+ * on every render of `Chat` never re-renders a bubble.
5
+ */
6
+ export interface MediaTransferController {
7
+ get: () => MediaTransferProps | undefined;
8
+ }
9
+ export declare const createMediaTransferController: () => {
10
+ get: () => MediaTransferProps | undefined;
11
+ set: (next: MediaTransferProps | undefined) => void;
12
+ };
13
+ export declare const MediaTransferContext: import("react").Context<MediaTransferController | null>;
14
+ /** The handlers `Chat` was given; empty outside a `Chat`. */
15
+ export declare const useMediaTransfer: () => {
16
+ onDownload: (message: IMessage) => void | undefined;
17
+ onCancel: (message: IMessage) => void | undefined;
18
+ hasDownloadHandler: () => boolean;
19
+ };
20
+ /** What a media button shows for a message's `transfer` / `isDownloadRequired`. */
21
+ export declare const transferState: (message: IMessage | undefined) => {
22
+ icon: "cancel";
23
+ progress: number;
24
+ } | {
25
+ icon: "download";
26
+ progress: number;
27
+ } | null;
28
+ export declare const clampProgress: (value: number | undefined) => number;
29
+ //# sourceMappingURL=mediaTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaTransfer.d.ts","sourceRoot":"","sources":["../../src/components/mediaTransfer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAExD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAA;CAC1C;AAED,eAAO,MAAM,6BAA6B;;gBAI1B,kBAAkB,GAAG,SAAS;CAI7C,CAAA;AAED,eAAO,MAAM,oBAAoB,yDAAsD,CAAA;AAEvF,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB;0BAGH,QAAQ;wBACV,QAAQ;;CAG/B,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,aAAa,GAAI,SAAS,QAAQ,GAAG,SAAS;;;;;;QAM1D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,GAAG,SAAS,WACyB,CAAA"}
@@ -0,0 +1,52 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { createContext, useContext } from 'react';
3
+
4
+ /**
5
+ * The app's download and cancel handlers, read at press time so a new handler
6
+ * on every render of `Chat` never re-renders a bubble.
7
+ */
8
+
9
+ export const createMediaTransferController = () => {
10
+ let props;
11
+ return {
12
+ get: () => props,
13
+ set: next => {
14
+ props = next;
15
+ }
16
+ };
17
+ };
18
+ export const MediaTransferContext = createContext(null);
19
+
20
+ /** The handlers `Chat` was given; empty outside a `Chat`. */
21
+ export const useMediaTransfer = () => {
22
+ const $ = _c(2);
23
+ const controller = useContext(MediaTransferContext);
24
+ let t0;
25
+ if ($[0] !== controller) {
26
+ t0 = {
27
+ onDownload: message => controller?.get()?.onDownload?.(message),
28
+ onCancel: message_0 => controller?.get()?.onCancel?.(message_0),
29
+ hasDownloadHandler: () => !!controller?.get()?.onDownload
30
+ };
31
+ $[0] = controller;
32
+ $[1] = t0;
33
+ } else {
34
+ t0 = $[1];
35
+ }
36
+ return t0;
37
+ };
38
+
39
+ /** What a media button shows for a message's `transfer` / `isDownloadRequired`. */
40
+ export const transferState = message => {
41
+ if (message?.transfer) return {
42
+ icon: 'cancel',
43
+ progress: clampProgress(message.transfer.progress)
44
+ };
45
+ if (message?.isDownloadRequired) return {
46
+ icon: 'download',
47
+ progress: 0
48
+ };
49
+ return null;
50
+ };
51
+ export const clampProgress = value => value == null || !Number.isFinite(value) ? 0 : Math.max(0, Math.min(1, value));
52
+ //# sourceMappingURL=mediaTransfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaTransfer.js","names":["createContext","useContext","createMediaTransferController","props","get","set","next","MediaTransferContext","useMediaTransfer","$","_c","controller","t0","onDownload","message","onCancel","message_0","hasDownloadHandler","transferState","transfer","icon","progress","clampProgress","isDownloadRequired","value","Number","isFinite","Math","max","min"],"sources":["../../src/components/mediaTransfer.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport { IMessage, MediaTransferProps } from '../Models'\n\n/**\n * The app's download and cancel handlers, read at press time so a new handler\n * on every render of `Chat` never re-renders a bubble.\n */\nexport interface MediaTransferController {\n get: () => MediaTransferProps | undefined\n}\n\nexport const createMediaTransferController = () => {\n let props: MediaTransferProps | undefined\n return {\n get: () => props,\n set: (next: MediaTransferProps | undefined) => {\n props = next\n },\n }\n}\n\nexport const MediaTransferContext = createContext<MediaTransferController | null>(null)\n\n/** The handlers `Chat` was given; empty outside a `Chat`. */\nexport const useMediaTransfer = () => {\n const controller = useContext(MediaTransferContext)\n return {\n onDownload: (message: IMessage) => controller?.get()?.onDownload?.(message),\n onCancel: (message: IMessage) => controller?.get()?.onCancel?.(message),\n hasDownloadHandler: () => !!controller?.get()?.onDownload,\n }\n}\n\n/** What a media button shows for a message's `transfer` / `isDownloadRequired`. */\nexport const transferState = (message: IMessage | undefined) => {\n if (message?.transfer)\n return { icon: 'cancel' as const, progress: clampProgress(message.transfer.progress) }\n if (message?.isDownloadRequired)\n return { icon: 'download' as const, progress: 0 }\n return null\n}\n\nexport const clampProgress = (value: number | undefined) =>\n value == null || !Number.isFinite(value) ? 0 : Math.max(0, Math.min(1, value))\n"],"mappings":";AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAIjD;AACA;AACA;AACA;;AAKA,OAAO,MAAMC,6BAA6B,GAAGA,CAAA,KAAM;EACjD,IAAIC,KAAqC;EACzC,OAAO;IACLC,GAAG,EAAEA,CAAA,KAAMD,KAAK;IAChBE,GAAG,EAAGC,IAAoC,IAAK;MAC7CH,KAAK,GAAGG,IAAI;IACd;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGP,aAAa,CAAiC,IAAI,CAAC;;AAEvF;AACA,OAAO,MAAMQ,gBAAgB,GAAGA,CAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAC9B,MAAAC,UAAA,GAAmBV,UAAU,CAACM,oBAAoB,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAAH,CAAA,QAAAE,UAAA;IAC5CC,EAAA;MAAAC,UAAA,EACOC,OAAA,IAAuBH,UAAU,EAAAP,GAAO,CAAW,CAAC,EAAAS,UAAW,GAARC,OAAO,CAAC;MAAAC,QAAA,EACjEC,SAAA,IAAuBL,UAAU,EAAAP,GAAO,CAAS,CAAC,EAAAW,QAAW,GAARD,SAAO,CAAC;MAAAG,kBAAA,EACnDA,CAAA,KAAM,CAAC,CAACN,UAAU,EAAAP,GAAO,CAAW,CAAC,EAAAS;IAC3D,CAAC;IAAAJ,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,OAJMG,EAIN;AAAA,CACF;;AAED;AACA,OAAO,MAAMM,aAAa,GAAIJ,OAA6B,IAAK;EAC9D,IAAIA,OAAO,EAAEK,QAAQ,EACnB,OAAO;IAAEC,IAAI,EAAE,QAAiB;IAAEC,QAAQ,EAAEC,aAAa,CAACR,OAAO,CAACK,QAAQ,CAACE,QAAQ;EAAE,CAAC;EACxF,IAAIP,OAAO,EAAES,kBAAkB,EAC7B,OAAO;IAAEH,IAAI,EAAE,UAAmB;IAAEC,QAAQ,EAAE;EAAE,CAAC;EACnD,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMC,aAAa,GAAIE,KAAyB,IACrDA,KAAK,IAAI,IAAI,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,GAAG,CAAC,GAAGG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEL,KAAK,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ImageProps } from 'react-native';
3
+ import { IMessage } from '../../Models';
4
+ export interface MediaViewerProps {
5
+ /** The photos to page through, oldest first. */
6
+ items: IMessage[];
7
+ initialIndex: number;
8
+ imageProps?: Partial<ImageProps>;
9
+ onClose: () => void;
10
+ }
11
+ /**
12
+ * The full-screen photo viewer: every photo in the chat, side by side, swiped through as in
13
+ * Telegram (left for newer, right for older), pinch and double tap to zoom, and a drag up or
14
+ * down to put it away.
15
+ */
16
+ export declare function MediaViewer({ items, initialIndex, imageProps, onClose }: MediaViewerProps): React.JSX.Element;
17
+ //# sourceMappingURL=MediaViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaViewer.d.ts","sourceRoot":"","sources":["../../../src/components/mediaViewer/MediaViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,EAAe,UAAU,EAAuF,MAAM,cAAc,CAAA;AAM3I,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAevC,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,gBAAgB,qBA+H1F"}
@@ -0,0 +1,347 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { BackHandler, StatusBar, StyleSheet, useWindowDimensions } from 'react-native';
4
+ import { FlatList, GestureDetector, GestureHandlerRootView, usePanGesture } from 'react-native-gesture-handler';
5
+ import { OverKeyboardView } from 'react-native-keyboard-controller';
6
+ import Animated, { runOnJS, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
7
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
8
+ import { DECELERATE, EASE_OUT_QUINT } from '../../motion';
9
+ import { MediaViewerChrome } from './MediaViewerChrome';
10
+ import { MediaViewerPage } from './MediaViewerPage';
11
+
12
+ // Telegram's viewer keeps 15dp between neighbouring photos, and a release past a third of the
13
+ // screen or faster than 650dp/s turns the page (`PhotoViewer.onTouchEvent`); a native paging
14
+ // list gives the same feel and the platform's own fling.
15
+ const PAGE_GAP = 15;
16
+ const OPEN = {
17
+ duration: 250,
18
+ easing: EASE_OUT_QUINT
19
+ };
20
+ const CLOSE = {
21
+ duration: 200,
22
+ easing: DECELERATE
23
+ };
24
+ // Dragged this share of the screen down (or flung), the photo is let go.
25
+ const DISMISS_SHARE = 0.15;
26
+ const DISMISS_VELOCITY = 1000;
27
+ /**
28
+ * The full-screen photo viewer: every photo in the chat, side by side, swiped through as in
29
+ * Telegram (left for newer, right for older), pinch and double tap to zoom, and a drag up or
30
+ * down to put it away.
31
+ */
32
+ export function MediaViewer(t0) {
33
+ const $ = _c(68);
34
+ const {
35
+ items,
36
+ initialIndex,
37
+ imageProps,
38
+ onClose
39
+ } = t0;
40
+ const {
41
+ width,
42
+ height
43
+ } = useWindowDimensions();
44
+ const pageWidth = width + PAGE_GAP;
45
+ const listRef = useRef(null);
46
+ const [index, setIndex] = useState(initialIndex);
47
+ const [zoomedIndex, setZoomedIndex] = useState(null);
48
+ const isZoomed = zoomedIndex === index;
49
+ const progress = useSharedValue(0);
50
+ const dragY = useSharedValue(0);
51
+ const [isClosing, setIsClosing] = useState(false);
52
+ let t1;
53
+ let t2;
54
+ if ($[0] !== progress) {
55
+ t1 = () => {
56
+ progress.set(withTiming(1, OPEN));
57
+ };
58
+ t2 = [progress];
59
+ $[0] = progress;
60
+ $[1] = t1;
61
+ $[2] = t2;
62
+ } else {
63
+ t1 = $[1];
64
+ t2 = $[2];
65
+ }
66
+ useEffect(t1, t2);
67
+ let t3;
68
+ if ($[3] !== isClosing || $[4] !== onClose || $[5] !== progress) {
69
+ t3 = () => {
70
+ if (isClosing) {
71
+ return;
72
+ }
73
+ setIsClosing(true);
74
+ progress.set(withTiming(0, CLOSE, isFinished => {
75
+ if (isFinished) {
76
+ runOnJS(onClose)();
77
+ }
78
+ }));
79
+ };
80
+ $[3] = isClosing;
81
+ $[4] = onClose;
82
+ $[5] = progress;
83
+ $[6] = t3;
84
+ } else {
85
+ t3 = $[6];
86
+ }
87
+ const close = t3;
88
+ let t4;
89
+ let t5;
90
+ if ($[7] !== close) {
91
+ t4 = () => {
92
+ const subscription = BackHandler.addEventListener("hardwareBackPress", () => {
93
+ close();
94
+ return true;
95
+ });
96
+ return () => subscription.remove();
97
+ };
98
+ t5 = [close];
99
+ $[7] = close;
100
+ $[8] = t4;
101
+ $[9] = t5;
102
+ } else {
103
+ t4 = $[8];
104
+ t5 = $[9];
105
+ }
106
+ useEffect(t4, t5);
107
+ let t6;
108
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
109
+ t6 = (pageIndex, isPageZoomed) => {
110
+ setZoomedIndex(current => isPageZoomed ? pageIndex : current === pageIndex ? null : current);
111
+ };
112
+ $[10] = t6;
113
+ } else {
114
+ t6 = $[10];
115
+ }
116
+ const onZoomStateChange = t6;
117
+ let t7;
118
+ if ($[11] !== items.length || $[12] !== pageWidth) {
119
+ t7 = event => {
120
+ const next = Math.round(event.nativeEvent.contentOffset.x / pageWidth);
121
+ setIndex(Math.max(0, Math.min(items.length - 1, next)));
122
+ };
123
+ $[11] = items.length;
124
+ $[12] = pageWidth;
125
+ $[13] = t7;
126
+ } else {
127
+ t7 = $[13];
128
+ }
129
+ const onMomentumScrollEnd = t7;
130
+ const t8 = !isZoomed && !isClosing;
131
+ let t10;
132
+ let t9;
133
+ if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
134
+ t9 = [-12, 12];
135
+ t10 = [-12, 12];
136
+ $[14] = t10;
137
+ $[15] = t9;
138
+ } else {
139
+ t10 = $[14];
140
+ t9 = $[15];
141
+ }
142
+ let t11;
143
+ if ($[16] !== dragY) {
144
+ t11 = event_0 => {
145
+ dragY.set(event_0.translationY);
146
+ };
147
+ $[16] = dragY;
148
+ $[17] = t11;
149
+ } else {
150
+ t11 = $[17];
151
+ }
152
+ let t12;
153
+ if ($[18] !== close || $[19] !== dragY || $[20] !== height) {
154
+ t12 = event_1 => {
155
+ const y = dragY.get();
156
+ if (Math.abs(y) > height * DISMISS_SHARE || Math.abs(event_1.velocityY) > DISMISS_VELOCITY) {
157
+ dragY.set(withTiming(Math.sign(y || event_1.velocityY) * height, CLOSE));
158
+ runOnJS(close)();
159
+ } else {
160
+ dragY.set(withTiming(0, OPEN));
161
+ }
162
+ };
163
+ $[18] = close;
164
+ $[19] = dragY;
165
+ $[20] = height;
166
+ $[21] = t12;
167
+ } else {
168
+ t12 = $[21];
169
+ }
170
+ let t13;
171
+ if ($[22] !== t11 || $[23] !== t12 || $[24] !== t8) {
172
+ t13 = {
173
+ enabled: t8,
174
+ activeOffsetY: t9,
175
+ failOffsetX: t10,
176
+ onUpdate: t11,
177
+ onDeactivate: t12
178
+ };
179
+ $[22] = t11;
180
+ $[23] = t12;
181
+ $[24] = t8;
182
+ $[25] = t13;
183
+ } else {
184
+ t13 = $[25];
185
+ }
186
+ const dismissPan = usePanGesture(t13);
187
+ const backdropStyle = useAnimatedStyle(() => ({
188
+ opacity: progress.get() * (1 - Math.min(1, Math.abs(dragY.get()) / (height / 2)))
189
+ }));
190
+ const contentStyle = useAnimatedStyle(() => ({
191
+ opacity: progress.get(),
192
+ transform: [{
193
+ translateY: dragY.get()
194
+ }, {
195
+ scale: 0.9 + 0.1 * progress.get()
196
+ }]
197
+ }));
198
+ const chromeStyle = useAnimatedStyle(() => ({
199
+ opacity: progress.get() * (dragY.get() === 0 ? 1 : 0)
200
+ }));
201
+ let t14;
202
+ if ($[26] !== height || $[27] !== imageProps || $[28] !== pageWidth || $[29] !== width) {
203
+ t14 = t15 => {
204
+ const {
205
+ item,
206
+ index: pageIndex_0
207
+ } = t15;
208
+ return <MediaViewerPage message={item} index={pageIndex_0} width={width} height={height} pageWidth={pageWidth} listRef={listRef} imageProps={imageProps} onZoomStateChange={onZoomStateChange} />;
209
+ };
210
+ $[26] = height;
211
+ $[27] = imageProps;
212
+ $[28] = pageWidth;
213
+ $[29] = width;
214
+ $[30] = t14;
215
+ } else {
216
+ t14 = $[30];
217
+ }
218
+ const renderItem = t14;
219
+ let t15;
220
+ if ($[31] !== pageWidth) {
221
+ t15 = (_, itemIndex) => ({
222
+ length: pageWidth,
223
+ offset: pageWidth * itemIndex,
224
+ index: itemIndex
225
+ });
226
+ $[31] = pageWidth;
227
+ $[32] = t15;
228
+ } else {
229
+ t15 = $[32];
230
+ }
231
+ const getItemLayout = t15;
232
+ let t16;
233
+ if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
234
+ t16 = <StatusBar animated={true} barStyle="light-content" />;
235
+ $[33] = t16;
236
+ } else {
237
+ t16 = $[33];
238
+ }
239
+ let t17;
240
+ if ($[34] !== backdropStyle) {
241
+ t17 = <Animated.View style={[StyleSheet.absoluteFill, styles.backdrop, backdropStyle]} />;
242
+ $[34] = backdropStyle;
243
+ $[35] = t17;
244
+ } else {
245
+ t17 = $[35];
246
+ }
247
+ let t18;
248
+ if ($[36] !== contentStyle) {
249
+ t18 = [StyleSheet.absoluteFill, contentStyle];
250
+ $[36] = contentStyle;
251
+ $[37] = t18;
252
+ } else {
253
+ t18 = $[37];
254
+ }
255
+ const t19 = !isZoomed;
256
+ let t20;
257
+ if ($[38] !== pageWidth) {
258
+ t20 = {
259
+ width: pageWidth
260
+ };
261
+ $[38] = pageWidth;
262
+ $[39] = t20;
263
+ } else {
264
+ t20 = $[39];
265
+ }
266
+ let t21;
267
+ if ($[40] !== getItemLayout || $[41] !== initialIndex || $[42] !== items || $[43] !== onMomentumScrollEnd || $[44] !== renderItem || $[45] !== t19 || $[46] !== t20) {
268
+ t21 = <FlatList ref={listRef} testID="media-viewer-pager" data={items} keyExtractor={_temp} renderItem={renderItem} getItemLayout={getItemLayout} initialScrollIndex={initialIndex} horizontal={true} pagingEnabled={true} scrollEnabled={t19} showsHorizontalScrollIndicator={false} onMomentumScrollEnd={onMomentumScrollEnd} initialNumToRender={1} maxToRenderPerBatch={2} windowSize={3} style={t20} />;
269
+ $[40] = getItemLayout;
270
+ $[41] = initialIndex;
271
+ $[42] = items;
272
+ $[43] = onMomentumScrollEnd;
273
+ $[44] = renderItem;
274
+ $[45] = t19;
275
+ $[46] = t20;
276
+ $[47] = t21;
277
+ } else {
278
+ t21 = $[47];
279
+ }
280
+ let t22;
281
+ if ($[48] !== t18 || $[49] !== t21) {
282
+ t22 = <Animated.View style={t18}>{t21}</Animated.View>;
283
+ $[48] = t18;
284
+ $[49] = t21;
285
+ $[50] = t22;
286
+ } else {
287
+ t22 = $[50];
288
+ }
289
+ let t23;
290
+ if ($[51] !== dismissPan || $[52] !== t22) {
291
+ t23 = <GestureDetector gesture={dismissPan}>{t22}</GestureDetector>;
292
+ $[51] = dismissPan;
293
+ $[52] = t22;
294
+ $[53] = t23;
295
+ } else {
296
+ t23 = $[53];
297
+ }
298
+ let t24;
299
+ if ($[54] !== chromeStyle) {
300
+ t24 = [StyleSheet.absoluteFill, chromeStyle];
301
+ $[54] = chromeStyle;
302
+ $[55] = t24;
303
+ } else {
304
+ t24 = $[55];
305
+ }
306
+ const t25 = items[index];
307
+ let t26;
308
+ if ($[56] !== close || $[57] !== index || $[58] !== items.length || $[59] !== t25) {
309
+ t26 = <MediaViewerChrome message={t25} index={index} count={items.length} onClose={close} />;
310
+ $[56] = close;
311
+ $[57] = index;
312
+ $[58] = items.length;
313
+ $[59] = t25;
314
+ $[60] = t26;
315
+ } else {
316
+ t26 = $[60];
317
+ }
318
+ let t27;
319
+ if ($[61] !== t24 || $[62] !== t26) {
320
+ t27 = <Animated.View style={t24} pointerEvents="box-none">{t26}</Animated.View>;
321
+ $[61] = t24;
322
+ $[62] = t26;
323
+ $[63] = t27;
324
+ } else {
325
+ t27 = $[63];
326
+ }
327
+ let t28;
328
+ if ($[64] !== t17 || $[65] !== t23 || $[66] !== t27) {
329
+ t28 = <OverKeyboardView visible={true}><SafeAreaProvider>{t16}<GestureHandlerRootView style={StyleSheet.absoluteFill}>{t17}{t23}{t27}</GestureHandlerRootView></SafeAreaProvider></OverKeyboardView>;
330
+ $[64] = t17;
331
+ $[65] = t23;
332
+ $[66] = t27;
333
+ $[67] = t28;
334
+ } else {
335
+ t28 = $[67];
336
+ }
337
+ return t28;
338
+ }
339
+ function _temp(item_0) {
340
+ return String(item_0._id);
341
+ }
342
+ const styles = StyleSheet.create({
343
+ backdrop: {
344
+ backgroundColor: '#000000'
345
+ }
346
+ });
347
+ //# sourceMappingURL=MediaViewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaViewer.js","names":["React","useCallback","useEffect","useRef","useState","BackHandler","StatusBar","StyleSheet","useWindowDimensions","FlatList","GestureDetector","GestureHandlerRootView","usePanGesture","OverKeyboardView","Animated","runOnJS","useAnimatedStyle","useSharedValue","withTiming","SafeAreaProvider","DECELERATE","EASE_OUT_QUINT","MediaViewerChrome","MediaViewerPage","PAGE_GAP","OPEN","duration","easing","CLOSE","DISMISS_SHARE","DISMISS_VELOCITY","MediaViewer","t0","$","_c","items","initialIndex","imageProps","onClose","width","height","pageWidth","listRef","index","setIndex","zoomedIndex","setZoomedIndex","isZoomed","progress","dragY","isClosing","setIsClosing","t1","t2","set","t3","isFinished","close","t4","t5","subscription","addEventListener","remove","t6","Symbol","for","pageIndex","isPageZoomed","current","onZoomStateChange","t7","length","event","next","Math","round","nativeEvent","contentOffset","x","max","min","onMomentumScrollEnd","t8","t10","t9","t11","event_0","translationY","t12","event_1","y","get","abs","velocityY","sign","t13","enabled","activeOffsetY","failOffsetX","onUpdate","onDeactivate","dismissPan","backdropStyle","opacity","contentStyle","transform","translateY","scale","chromeStyle","t14","t15","item","pageIndex_0","renderItem","_","itemIndex","offset","getItemLayout","t16","t17","absoluteFill","styles","backdrop","t18","t19","t20","t21","_temp","t22","t23","t24","t25","t26","t27","t28","item_0","String","_id","create","backgroundColor"],"sources":["../../../src/components/mediaViewer/MediaViewer.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { BackHandler, ImageProps, NativeScrollEvent, NativeSyntheticEvent, StatusBar, StyleSheet, useWindowDimensions } from 'react-native'\nimport { FlatList, GestureDetector, GestureHandlerRootView, usePanGesture } from 'react-native-gesture-handler'\nimport { OverKeyboardView } from 'react-native-keyboard-controller'\nimport Animated, { runOnJS, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated'\nimport { SafeAreaProvider } from 'react-native-safe-area-context'\n\nimport { IMessage } from '../../Models'\nimport { DECELERATE, EASE_OUT_QUINT } from '../../motion'\nimport { MediaViewerChrome } from './MediaViewerChrome'\nimport { MediaViewerPage } from './MediaViewerPage'\n\n// Telegram's viewer keeps 15dp between neighbouring photos, and a release past a third of the\n// screen or faster than 650dp/s turns the page (`PhotoViewer.onTouchEvent`); a native paging\n// list gives the same feel and the platform's own fling.\nconst PAGE_GAP = 15\nconst OPEN = { duration: 250, easing: EASE_OUT_QUINT }\nconst CLOSE = { duration: 200, easing: DECELERATE }\n// Dragged this share of the screen down (or flung), the photo is let go.\nconst DISMISS_SHARE = 0.15\nconst DISMISS_VELOCITY = 1000\n\nexport interface MediaViewerProps {\n /** The photos to page through, oldest first. */\n items: IMessage[]\n initialIndex: number\n imageProps?: Partial<ImageProps>\n onClose: () => void\n}\n\n/**\n * The full-screen photo viewer: every photo in the chat, side by side, swiped through as in\n * Telegram (left for newer, right for older), pinch and double tap to zoom, and a drag up or\n * down to put it away.\n */\nexport function MediaViewer ({ items, initialIndex, imageProps, onClose }: MediaViewerProps) {\n const { width, height } = useWindowDimensions()\n const pageWidth = width + PAGE_GAP\n const listRef = useRef<React.ComponentRef<typeof FlatList<IMessage>>>(null)\n const [index, setIndex] = useState(initialIndex)\n const [zoomedIndex, setZoomedIndex] = useState<number | null>(null)\n const isZoomed = zoomedIndex === index\n\n const progress = useSharedValue(0)\n const dragY = useSharedValue(0)\n const [isClosing, setIsClosing] = useState(false)\n\n useEffect(() => {\n progress.set(withTiming(1, OPEN))\n }, [progress])\n\n const close = useCallback(() => {\n if (isClosing)\n return\n setIsClosing(true)\n progress.set(withTiming(0, CLOSE, isFinished => {\n if (isFinished)\n runOnJS(onClose)()\n }))\n }, [isClosing, progress, onClose])\n\n useEffect(() => {\n const subscription = BackHandler.addEventListener('hardwareBackPress', () => {\n close()\n return true\n })\n return () => subscription.remove()\n }, [close])\n\n const onZoomStateChange = useCallback((pageIndex: number, isPageZoomed: boolean) => {\n setZoomedIndex(current => (isPageZoomed ? pageIndex : current === pageIndex ? null : current))\n }, [])\n\n // The counter and the bottom bar follow the page once it has settled, as Telegram's do.\n const onMomentumScrollEnd = useCallback((event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const next = Math.round(event.nativeEvent.contentOffset.x / pageWidth)\n setIndex(Math.max(0, Math.min(items.length - 1, next)))\n }, [pageWidth, items.length])\n\n const dismissPan = usePanGesture({\n enabled: !isZoomed && !isClosing,\n activeOffsetY: [-12, 12],\n failOffsetX: [-12, 12],\n onUpdate: event => {\n dragY.set(event.translationY)\n },\n onDeactivate: event => {\n const y = dragY.get()\n if (Math.abs(y) > height * DISMISS_SHARE || Math.abs(event.velocityY) > DISMISS_VELOCITY) {\n // The photo carries on the way it was thrown while the backdrop fades.\n dragY.set(withTiming(Math.sign(y || event.velocityY) * height, CLOSE))\n runOnJS(close)()\n } else {\n dragY.set(withTiming(0, OPEN))\n }\n },\n })\n\n const backdropStyle = useAnimatedStyle(() => ({\n opacity: progress.get() * (1 - Math.min(1, Math.abs(dragY.get()) / (height / 2))),\n }))\n const contentStyle = useAnimatedStyle(() => ({\n opacity: progress.get(),\n transform: [{ translateY: dragY.get() }, { scale: 0.9 + 0.1 * progress.get() }],\n }))\n const chromeStyle = useAnimatedStyle(() => ({\n opacity: progress.get() * (dragY.get() === 0 ? 1 : 0),\n }))\n\n const renderItem = useCallback(({ item, index: pageIndex }: { item: IMessage, index: number }) => (\n <MediaViewerPage\n message={item}\n index={pageIndex}\n width={width}\n height={height}\n pageWidth={pageWidth}\n listRef={listRef}\n imageProps={imageProps}\n onZoomStateChange={onZoomStateChange}\n />\n ), [width, height, pageWidth, imageProps, onZoomStateChange])\n\n const getItemLayout = useCallback((_: unknown, itemIndex: number) => (\n { length: pageWidth, offset: pageWidth * itemIndex, index: itemIndex }\n ), [pageWidth])\n\n return (\n <OverKeyboardView visible>\n <SafeAreaProvider>\n {/* White on the black viewer, whatever the app's own bar style. */}\n <StatusBar animated barStyle='light-content' />\n <GestureHandlerRootView style={StyleSheet.absoluteFill}>\n <Animated.View style={[StyleSheet.absoluteFill, styles.backdrop, backdropStyle]} />\n <GestureDetector gesture={dismissPan}>\n <Animated.View style={[StyleSheet.absoluteFill, contentStyle]}>\n <FlatList\n ref={listRef}\n testID='media-viewer-pager'\n data={items}\n keyExtractor={item => String(item._id)}\n renderItem={renderItem}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialIndex}\n horizontal\n pagingEnabled\n scrollEnabled={!isZoomed}\n showsHorizontalScrollIndicator={false}\n onMomentumScrollEnd={onMomentumScrollEnd}\n initialNumToRender={1}\n maxToRenderPerBatch={2}\n windowSize={3}\n style={{ width: pageWidth }}\n />\n </Animated.View>\n </GestureDetector>\n <Animated.View style={[StyleSheet.absoluteFill, chromeStyle]} pointerEvents='box-none'>\n <MediaViewerChrome message={items[index]} index={index} count={items.length} onClose={close} />\n </Animated.View>\n </GestureHandlerRootView>\n </SafeAreaProvider>\n </OverKeyboardView>\n )\n}\n\nconst styles = StyleSheet.create({\n backdrop: {\n backgroundColor: '#000000',\n },\n})\n\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { IMessage } from '../../Models';
3
+ export interface MediaViewerChromeProps {
4
+ message: IMessage | undefined;
5
+ index: number;
6
+ count: number;
7
+ onClose: () => void;
8
+ }
9
+ /**
10
+ * The viewer's bars, as in Telegram's: a close button and "3 of 12" on top; the caption, the
11
+ * sender and when it was sent at the bottom, over a shade so they read on any photo.
12
+ */
13
+ export declare function MediaViewerChrome({ message, index, count, onClose }: MediaViewerChromeProps): React.JSX.Element;
14
+ //# sourceMappingURL=MediaViewerChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaViewerChrome.d.ts","sourceRoot":"","sources":["../../../src/components/mediaViewer/MediaViewerChrome.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAIvC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,sBAAsB,qBAoC5F"}