@sendbird/uikit-react 3.15.4 → 3.15.5

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 (910) hide show
  1. package/App.js +80 -79
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +11 -0
  4. package/Channel/components/ChannelHeader.js +34 -34
  5. package/Channel/components/ChannelUI.js +66 -65
  6. package/Channel/components/ChannelUI.js.map +1 -1
  7. package/Channel/components/FileViewer.js +31 -31
  8. package/Channel/components/FrozenNotification.js +5 -5
  9. package/Channel/components/Message.js +55 -55
  10. package/Channel/components/MessageInput.js +43 -43
  11. package/Channel/components/MessageInputWrapper.js +43 -43
  12. package/Channel/components/MessageList.js +61 -60
  13. package/Channel/components/MessageList.js.map +1 -1
  14. package/Channel/components/RemoveMessageModal.js +30 -30
  15. package/Channel/components/SuggestedMentionList.js +32 -32
  16. package/Channel/components/TypingIndicator.js +5 -5
  17. package/Channel/components/UnreadCount.js +7 -7
  18. package/Channel/context.js +28 -28
  19. package/Channel/hooks/useHandleUploadFiles.js +16 -16
  20. package/Channel/hooks/useInitialMessagesFetch.js +8 -8
  21. package/Channel/utils/compareMessagesForGrouping.js +8 -7
  22. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  23. package/Channel/utils/getMessagePartsInfo.js +9 -8
  24. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  25. package/Channel.js +66 -65
  26. package/Channel.js.map +1 -1
  27. package/ChannelList/components/AddChannel.js +22 -22
  28. package/ChannelList/components/ChannelListHeader.js +9 -9
  29. package/ChannelList/components/ChannelListUI.js +37 -37
  30. package/ChannelList/components/ChannelPreview.js +30 -30
  31. package/ChannelList/components/ChannelPreviewAction.js +14 -14
  32. package/ChannelList/context.js +18 -18
  33. package/ChannelList.js +37 -37
  34. package/ChannelSettings/components/ChannelProfile.js +20 -20
  35. package/ChannelSettings/components/ChannelSettingMenuList.js +17 -17
  36. package/ChannelSettings/components/ChannelSettingsHeader.js +7 -7
  37. package/ChannelSettings/components/ChannelSettingsMenuItem.js +2 -2
  38. package/ChannelSettings/components/ChannelSettingsUI.js +27 -27
  39. package/ChannelSettings/components/EditDetailsModal.js +20 -20
  40. package/ChannelSettings/components/LeaveChannel.js +17 -17
  41. package/ChannelSettings/components/ModerationPanel.js +25 -25
  42. package/ChannelSettings/components/UserListItem.js +18 -18
  43. package/ChannelSettings/components/UserPanel.js +24 -24
  44. package/ChannelSettings/context.js +16 -16
  45. package/ChannelSettings/hooks/useMenuList.js +25 -25
  46. package/ChannelSettings.js +27 -27
  47. package/CreateChannel/components/CreateChannelUI.js +19 -19
  48. package/CreateChannel/components/InviteUsers.js +19 -19
  49. package/CreateChannel/components/SelectChannelType.js +16 -16
  50. package/CreateChannel/context.js +4 -4
  51. package/CreateChannel.js +19 -19
  52. package/CreateOpenChannel/components/CreateOpenChannelUI.js +17 -17
  53. package/CreateOpenChannel/context.js +1 -1
  54. package/CreateOpenChannel.js +17 -17
  55. package/EditUserProfile/components/EditUserProfileUI.js +18 -18
  56. package/EditUserProfile/context.js +1 -1
  57. package/EditUserProfile.js +18 -18
  58. package/GroupChannel/components/FileViewer.js +26 -26
  59. package/GroupChannel/components/FrozenNotification.js +5 -5
  60. package/GroupChannel/components/GroupChannelHeader.js +29 -29
  61. package/GroupChannel/components/GroupChannelUI.js +59 -58
  62. package/GroupChannel/components/GroupChannelUI.js.map +1 -1
  63. package/GroupChannel/components/Message.js +50 -50
  64. package/GroupChannel/components/MessageInputWrapper.js +38 -38
  65. package/GroupChannel/components/MessageList.js +52 -51
  66. package/GroupChannel/components/MessageList.js.map +1 -1
  67. package/GroupChannel/components/RemoveMessageModal.js +25 -25
  68. package/GroupChannel/components/SuggestedMentionList.js +11 -11
  69. package/GroupChannel/components/TypingIndicator.js +5 -5
  70. package/GroupChannel/components/UnreadCount.js +7 -7
  71. package/GroupChannel/context.js +23 -23
  72. package/GroupChannel.js +59 -58
  73. package/GroupChannel.js.map +1 -1
  74. package/GroupChannelList/components/AddGroupChannel.js +21 -21
  75. package/GroupChannelList/components/GroupChannelListHeader.js +9 -9
  76. package/GroupChannelList/components/GroupChannelListItem.js +28 -28
  77. package/GroupChannelList/components/GroupChannelListUI.js +36 -36
  78. package/GroupChannelList/components/GroupChannelPreviewAction.js +14 -14
  79. package/GroupChannelList/context.js +16 -16
  80. package/GroupChannelList.js +36 -36
  81. package/MessageSearch/components/MessageSearchUI.js +15 -14
  82. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  83. package/MessageSearch/context.js +1 -1
  84. package/MessageSearch.js +17 -16
  85. package/MessageSearch.js.map +1 -1
  86. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  87. package/OpenChannel/components/OpenChannelHeader.js +21 -21
  88. package/OpenChannel/components/OpenChannelInput.js +27 -27
  89. package/OpenChannel/components/OpenChannelMessage.js +36 -36
  90. package/OpenChannel/components/OpenChannelMessageList.js +40 -40
  91. package/OpenChannel/components/OpenChannelUI.js +40 -40
  92. package/OpenChannel/context.js +20 -20
  93. package/OpenChannel.js +40 -40
  94. package/OpenChannelList/components/OpenChannelListUI.js +19 -19
  95. package/OpenChannelList/components/OpenChannelPreview.js +6 -6
  96. package/OpenChannelList/context.js +3 -3
  97. package/OpenChannelList.js +19 -19
  98. package/OpenChannelSettings/components/EditDetailsModal.js +20 -20
  99. package/OpenChannelSettings/components/OpenChannelProfile.js +20 -20
  100. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +21 -21
  101. package/OpenChannelSettings/components/OperatorUI.js +21 -21
  102. package/OpenChannelSettings/components/ParticipantUI.js +19 -19
  103. package/OpenChannelSettings/context.js +15 -15
  104. package/OpenChannelSettings.js +21 -21
  105. package/SendbirdProvider.js +20 -20
  106. package/Thread/components/ParentMessageInfo.js +45 -45
  107. package/Thread/components/ParentMessageInfoItem.js +30 -30
  108. package/Thread/components/ThreadHeader.js +7 -7
  109. package/Thread/components/ThreadList.js +52 -52
  110. package/Thread/components/ThreadListItem.js +52 -52
  111. package/Thread/components/ThreadMessageInput.js +43 -43
  112. package/Thread/components/ThreadUI.js +58 -58
  113. package/Thread/context.js +21 -21
  114. package/Thread.js +58 -58
  115. package/VoicePlayer/context.js +4 -4
  116. package/VoicePlayer/useVoicePlayer.js +14 -14
  117. package/VoiceRecorder/context.js +14 -14
  118. package/VoiceRecorder/useVoiceRecorder.js +14 -14
  119. package/chunks/{bundle-BAce4maL.js → bundle--FsN6ZvY.js} +1 -1
  120. package/chunks/bundle--FsN6ZvY.js.map +1 -0
  121. package/chunks/{bundle-B8FD5WDF.js → bundle--PhH_XFy.js} +3 -3
  122. package/chunks/{bundle-B8FD5WDF.js.map → bundle--PhH_XFy.js.map} +1 -1
  123. package/chunks/{bundle-Cdoy9-UG.js → bundle-52W7LREX.js} +4 -4
  124. package/chunks/bundle-52W7LREX.js.map +1 -0
  125. package/chunks/{bundle-C3oeRQke.js → bundle-B2NeDUAs.js} +1 -1
  126. package/chunks/bundle-B2NeDUAs.js.map +1 -0
  127. package/chunks/{bundle-DVOn95Bl.js → bundle-B5OWYHQO.js} +1 -1
  128. package/chunks/bundle-B5OWYHQO.js.map +1 -0
  129. package/chunks/{bundle-CsHJ18W0.js → bundle-B8L7dGsu.js} +2 -2
  130. package/chunks/bundle-B8L7dGsu.js.map +1 -0
  131. package/chunks/{bundle-B9HB3GJk.js → bundle-B9c-G9oD.js} +6 -6
  132. package/chunks/{bundle-B9HB3GJk.js.map → bundle-B9c-G9oD.js.map} +1 -1
  133. package/chunks/{bundle-BpEd5_0o.js → bundle-BAXCq_Wt.js} +2 -2
  134. package/chunks/{bundle-BpEd5_0o.js.map → bundle-BAXCq_Wt.js.map} +1 -1
  135. package/chunks/{bundle-f-kJq0yY.js → bundle-BApwq9D9.js} +1 -1
  136. package/chunks/bundle-BApwq9D9.js.map +1 -0
  137. package/chunks/{bundle-D3WudT0B.js → bundle-BFQnMRhA.js} +3 -3
  138. package/chunks/{bundle-D3WudT0B.js.map → bundle-BFQnMRhA.js.map} +1 -1
  139. package/chunks/{bundle-D8l9-enQ.js → bundle-BHC96gO0.js} +1 -1
  140. package/chunks/bundle-BHC96gO0.js.map +1 -0
  141. package/chunks/{bundle-DOVBsMiS.js → bundle-BHNcTHkg.js} +6 -6
  142. package/chunks/bundle-BHNcTHkg.js.map +1 -0
  143. package/chunks/{bundle-CiwJHy6g.js → bundle-BKwxWorE.js} +1 -1
  144. package/chunks/bundle-BKwxWorE.js.map +1 -0
  145. package/chunks/{bundle-1AhxUDPU.js → bundle-BL3yUpTV.js} +1 -1
  146. package/chunks/bundle-BL3yUpTV.js.map +1 -0
  147. package/chunks/{bundle-CZxcoh5B.js → bundle-BMJP8SSM.js} +4 -4
  148. package/chunks/bundle-BMJP8SSM.js.map +1 -0
  149. package/chunks/{bundle-DSgx0Ssa.js → bundle-BOn8npYv.js} +1 -1
  150. package/chunks/{bundle-DSgx0Ssa.js.map → bundle-BOn8npYv.js.map} +1 -1
  151. package/chunks/{bundle-BtoO5ttX.js → bundle-BPcbf_pM.js} +1 -1
  152. package/chunks/{bundle-BtoO5ttX.js.map → bundle-BPcbf_pM.js.map} +1 -1
  153. package/chunks/{bundle-BJ63dG1P.js → bundle-BRWtuT59.js} +3 -3
  154. package/chunks/{bundle-BJ63dG1P.js.map → bundle-BRWtuT59.js.map} +1 -1
  155. package/chunks/{bundle-CkDGUIvh.js → bundle-BX_znRDF.js} +8 -8
  156. package/chunks/bundle-BX_znRDF.js.map +1 -0
  157. package/chunks/bundle-BY9N9Qg0.js +8 -0
  158. package/chunks/bundle-BY9N9Qg0.js.map +1 -0
  159. package/chunks/{bundle-kAnCqJ1s.js → bundle-BaMsxnN_.js} +2 -2
  160. package/chunks/bundle-BaMsxnN_.js.map +1 -0
  161. package/chunks/{bundle-Ch7HVLiB.js → bundle-BbVJcZ9w.js} +2 -2
  162. package/chunks/bundle-BbVJcZ9w.js.map +1 -0
  163. package/chunks/{bundle-DbVGPg9d.js → bundle-BdZX50Kw.js} +1 -1
  164. package/chunks/bundle-BdZX50Kw.js.map +1 -0
  165. package/chunks/{bundle-D48t2vTo.js → bundle-BdwvjJsK.js} +1 -1
  166. package/chunks/bundle-BdwvjJsK.js.map +1 -0
  167. package/chunks/{bundle-C_9aMSZU.js → bundle-Bj90BL0E.js} +4 -4
  168. package/chunks/bundle-Bj90BL0E.js.map +1 -0
  169. package/chunks/{bundle-Dw_-sD_V.js → bundle-BkDHtL7_.js} +6 -6
  170. package/chunks/bundle-BkDHtL7_.js.map +1 -0
  171. package/chunks/{bundle-BdMFvS48.js → bundle-BmCCzxjb.js} +1 -1
  172. package/chunks/bundle-BmCCzxjb.js.map +1 -0
  173. package/chunks/{bundle-D5bkstmZ.js → bundle-BmHwyA9G.js} +1 -1
  174. package/chunks/bundle-BmHwyA9G.js.map +1 -0
  175. package/chunks/{bundle-DyKHaG_F.js → bundle-BpNhTt2R.js} +6 -6
  176. package/chunks/bundle-BpNhTt2R.js.map +1 -0
  177. package/chunks/{bundle-DPIvYZBS.js → bundle-Bq93DTET.js} +1 -1
  178. package/chunks/bundle-Bq93DTET.js.map +1 -0
  179. package/chunks/{bundle-fSCONSew.js → bundle-Bv8KtnvF.js} +9 -9
  180. package/chunks/bundle-Bv8KtnvF.js.map +1 -0
  181. package/chunks/{bundle-Cl-vRzDr.js → bundle-BzaTQdTK.js} +1 -1
  182. package/chunks/bundle-BzaTQdTK.js.map +1 -0
  183. package/chunks/{bundle-C8gQKppc.js → bundle-C6DfLTJj.js} +1 -1
  184. package/chunks/bundle-C6DfLTJj.js.map +1 -0
  185. package/chunks/{bundle-KBGS7iEb.js → bundle-CCJRc28C.js} +5 -5
  186. package/chunks/{bundle-KBGS7iEb.js.map → bundle-CCJRc28C.js.map} +1 -1
  187. package/chunks/{bundle-BauMJKnf.js → bundle-CDvkkTNs.js} +5 -5
  188. package/chunks/{bundle-BauMJKnf.js.map → bundle-CDvkkTNs.js.map} +1 -1
  189. package/chunks/{bundle-C49aAsth.js → bundle-CJirTNRH.js} +11 -11
  190. package/chunks/{bundle-C49aAsth.js.map → bundle-CJirTNRH.js.map} +1 -1
  191. package/chunks/{bundle-WBTZOgwR.js → bundle-CLczesce.js} +3 -3
  192. package/chunks/bundle-CLczesce.js.map +1 -0
  193. package/chunks/{bundle-DEIDkSEG.js → bundle-CLlCJbe7.js} +1 -1
  194. package/chunks/bundle-CLlCJbe7.js.map +1 -0
  195. package/chunks/{bundle-CCC-fCd1.js → bundle-CN0VQnSS.js} +2 -2
  196. package/chunks/bundle-CN0VQnSS.js.map +1 -0
  197. package/chunks/{bundle-4FX6gpGw.js → bundle-CU6kTo_I.js} +1 -1
  198. package/chunks/bundle-CU6kTo_I.js.map +1 -0
  199. package/chunks/{bundle-C_lEOEUK.js → bundle-CUxTGz0r.js} +9 -9
  200. package/chunks/{bundle-C_lEOEUK.js.map → bundle-CUxTGz0r.js.map} +1 -1
  201. package/chunks/{bundle-CJW-g_-k.js → bundle-CXPOT202.js} +3 -3
  202. package/chunks/bundle-CXPOT202.js.map +1 -0
  203. package/chunks/{bundle-02mU_mdQ.js → bundle-CXiD3Is4.js} +1 -1
  204. package/chunks/bundle-CXiD3Is4.js.map +1 -0
  205. package/chunks/{bundle-Bv0CLKmK.js → bundle-C_v0tgQ0.js} +5 -5
  206. package/chunks/bundle-C_v0tgQ0.js.map +1 -0
  207. package/chunks/{bundle-DGc-w_0Y.js → bundle-CcuSHuDt.js} +1 -1
  208. package/chunks/bundle-CcuSHuDt.js.map +1 -0
  209. package/chunks/{bundle-BQ1z_avv.js → bundle-CfaZQwKj.js} +6 -6
  210. package/chunks/{bundle-BQ1z_avv.js.map → bundle-CfaZQwKj.js.map} +1 -1
  211. package/chunks/{bundle-BR3hUG8u.js → bundle-CgymNuYl.js} +2 -2
  212. package/chunks/bundle-CgymNuYl.js.map +1 -0
  213. package/chunks/{bundle-CAKtTn_6.js → bundle-Ck3AoOzP.js} +2 -2
  214. package/chunks/{bundle-CAKtTn_6.js.map → bundle-Ck3AoOzP.js.map} +1 -1
  215. package/chunks/{bundle-CgXWgHrU.js → bundle-CmKxC8hb.js} +4 -4
  216. package/chunks/{bundle-CgXWgHrU.js.map → bundle-CmKxC8hb.js.map} +1 -1
  217. package/chunks/{bundle-CM8k_MAe.js → bundle-CruP9bVM.js} +3 -3
  218. package/chunks/bundle-CruP9bVM.js.map +1 -0
  219. package/chunks/{bundle-DZ92KGoS.js → bundle-CtcQd9Ql.js} +3 -3
  220. package/chunks/bundle-CtcQd9Ql.js.map +1 -0
  221. package/chunks/{bundle-Dy0AI0rz.js → bundle-CxKIQVXi.js} +4 -4
  222. package/chunks/bundle-CxKIQVXi.js.map +1 -0
  223. package/chunks/{bundle-CtFDB6uM.js → bundle-D40MS86F.js} +3 -3
  224. package/{cjs/chunks/bundle-BpwAPpI9.js.map → chunks/bundle-D40MS86F.js.map} +1 -1
  225. package/chunks/{bundle-ub1P3ZHF.js → bundle-D634UqaM.js} +1 -1
  226. package/chunks/bundle-D634UqaM.js.map +1 -0
  227. package/chunks/{bundle-BHGFStnL.js → bundle-D7JevDoE.js} +2 -2
  228. package/chunks/{bundle-BHGFStnL.js.map → bundle-D7JevDoE.js.map} +1 -1
  229. package/chunks/{bundle-BoeyQYjc.js → bundle-DABR6HKW.js} +3 -2
  230. package/chunks/bundle-DABR6HKW.js.map +1 -0
  231. package/chunks/{bundle-CCOya1C2.js → bundle-DBeNFit6.js} +5 -5
  232. package/chunks/{bundle-CCOya1C2.js.map → bundle-DBeNFit6.js.map} +1 -1
  233. package/chunks/{bundle-piJ_EqHo.js → bundle-DKPIYAYp.js} +8 -8
  234. package/chunks/bundle-DKPIYAYp.js.map +1 -0
  235. package/chunks/{bundle-kMS1-vHn.js → bundle-DKR-710v.js} +1 -1
  236. package/chunks/bundle-DKR-710v.js.map +1 -0
  237. package/chunks/{bundle-zuweEiOJ.js → bundle-DN92WwJg.js} +8 -8
  238. package/chunks/{bundle-zuweEiOJ.js.map → bundle-DN92WwJg.js.map} +1 -1
  239. package/chunks/{bundle-B9UrPiWj.js → bundle-DNUUqUmN.js} +3 -3
  240. package/chunks/{bundle-B9UrPiWj.js.map → bundle-DNUUqUmN.js.map} +1 -1
  241. package/chunks/{bundle-DsRjGWKb.js → bundle-DNqbvQvb.js} +3 -3
  242. package/chunks/{bundle-DsRjGWKb.js.map → bundle-DNqbvQvb.js.map} +1 -1
  243. package/chunks/{bundle-Dw-CkW5p.js → bundle-DRlnZqdp.js} +1 -1
  244. package/chunks/bundle-DRlnZqdp.js.map +1 -0
  245. package/chunks/{bundle-Qa-OShfm.js → bundle-DX03rGyh.js} +12 -12
  246. package/chunks/bundle-DX03rGyh.js.map +1 -0
  247. package/chunks/{bundle-DFkvUVw1.js → bundle-DYrU3olW.js} +1 -1
  248. package/chunks/bundle-DYrU3olW.js.map +1 -0
  249. package/chunks/{bundle-t_NHXb8k.js → bundle-D_-9RmNe.js} +18 -45
  250. package/chunks/bundle-D_-9RmNe.js.map +1 -0
  251. package/chunks/{bundle-ZwPNoncU.js → bundle-DaJasFqz.js} +1 -1
  252. package/chunks/bundle-DaJasFqz.js.map +1 -0
  253. package/chunks/{bundle-BafPumSi.js → bundle-Dil0V6Tg.js} +11 -11
  254. package/chunks/{bundle-BafPumSi.js.map → bundle-Dil0V6Tg.js.map} +1 -1
  255. package/chunks/{bundle-C_xDLLUt.js → bundle-DjfGQ-DS.js} +4 -4
  256. package/chunks/bundle-DjfGQ-DS.js.map +1 -0
  257. package/chunks/{bundle-CUQ997bd.js → bundle-DnMqBZ_F.js} +9 -9
  258. package/chunks/{bundle-CUQ997bd.js.map → bundle-DnMqBZ_F.js.map} +1 -1
  259. package/chunks/{bundle-S77tFmNz.js → bundle-DnujA9kt.js} +1 -1
  260. package/chunks/{bundle-S77tFmNz.js.map → bundle-DnujA9kt.js.map} +1 -1
  261. package/chunks/{bundle-BqdQUkyf.js → bundle-KDJ0EkHX.js} +27 -15
  262. package/chunks/{bundle-BqdQUkyf.js.map → bundle-KDJ0EkHX.js.map} +1 -1
  263. package/chunks/{bundle-zxooGkqM.js → bundle-KNrNIKZQ.js} +585 -398
  264. package/chunks/bundle-KNrNIKZQ.js.map +1 -0
  265. package/chunks/{bundle-v3c-9N0A.js → bundle-NL8iE1lF.js} +12 -12
  266. package/chunks/{bundle-v3c-9N0A.js.map → bundle-NL8iE1lF.js.map} +1 -1
  267. package/chunks/{bundle-BE89xaRV.js → bundle-QTCuDZTl.js} +3 -3
  268. package/chunks/{bundle-BE89xaRV.js.map → bundle-QTCuDZTl.js.map} +1 -1
  269. package/chunks/{bundle-DZK4rg_Y.js → bundle-R3uJ_0BB.js} +1 -1
  270. package/chunks/bundle-R3uJ_0BB.js.map +1 -0
  271. package/chunks/{bundle-C8mlxyec.js → bundle-SyLbPukg.js} +13 -13
  272. package/chunks/{bundle-C8mlxyec.js.map → bundle-SyLbPukg.js.map} +1 -1
  273. package/chunks/{bundle-CYvEzbcv.js → bundle-XQWyv823.js} +1 -1
  274. package/chunks/{bundle-CYvEzbcv.js.map → bundle-XQWyv823.js.map} +1 -1
  275. package/chunks/{bundle-D4Oav06e.js → bundle-ZTcZWLri.js} +11 -11
  276. package/chunks/bundle-ZTcZWLri.js.map +1 -0
  277. package/chunks/{bundle-g4f6DqPZ.js → bundle-eZsqrPY3.js} +1 -1
  278. package/chunks/bundle-eZsqrPY3.js.map +1 -0
  279. package/chunks/{bundle-xPkUUY0y.js → bundle-ixnsp7Bg.js} +3 -3
  280. package/chunks/bundle-ixnsp7Bg.js.map +1 -0
  281. package/chunks/{bundle-BcUjwXyv.js → bundle-lJZ9BTB_.js} +1 -1
  282. package/chunks/bundle-lJZ9BTB_.js.map +1 -0
  283. package/chunks/{bundle-BtnCB-7T.js → bundle-ml-PByBw.js} +7 -7
  284. package/chunks/{bundle-BtnCB-7T.js.map → bundle-ml-PByBw.js.map} +1 -1
  285. package/chunks/{bundle-07bGaKDM.js → bundle-oZLTNsQY.js} +2 -2
  286. package/chunks/bundle-oZLTNsQY.js.map +1 -0
  287. package/chunks/{bundle-Ddg2e7WW.js → bundle-tC4B8MXx.js} +7 -7
  288. package/chunks/{bundle-Ddg2e7WW.js.map → bundle-tC4B8MXx.js.map} +1 -1
  289. package/chunks/{bundle-DzFqlsbR.js → bundle-vS1u8K1w.js} +1 -1
  290. package/chunks/bundle-vS1u8K1w.js.map +1 -0
  291. package/cjs/App.js +80 -79
  292. package/cjs/App.js.map +1 -1
  293. package/cjs/Channel/components/ChannelHeader.js +34 -34
  294. package/cjs/Channel/components/ChannelUI.js +66 -65
  295. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  296. package/cjs/Channel/components/FileViewer.js +31 -31
  297. package/cjs/Channel/components/FrozenNotification.js +5 -5
  298. package/cjs/Channel/components/Message.js +55 -55
  299. package/cjs/Channel/components/MessageInput.js +43 -43
  300. package/cjs/Channel/components/MessageInputWrapper.js +43 -43
  301. package/cjs/Channel/components/MessageList.js +62 -61
  302. package/cjs/Channel/components/MessageList.js.map +1 -1
  303. package/cjs/Channel/components/RemoveMessageModal.js +30 -30
  304. package/cjs/Channel/components/SuggestedMentionList.js +32 -32
  305. package/cjs/Channel/components/TypingIndicator.js +5 -5
  306. package/cjs/Channel/components/UnreadCount.js +7 -7
  307. package/cjs/Channel/context.js +28 -28
  308. package/cjs/Channel/hooks/useHandleUploadFiles.js +16 -16
  309. package/cjs/Channel/hooks/useInitialMessagesFetch.js +8 -8
  310. package/cjs/Channel/utils/compareMessagesForGrouping.js +8 -7
  311. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  312. package/cjs/Channel/utils/getMessagePartsInfo.js +9 -8
  313. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  314. package/cjs/Channel.js +66 -65
  315. package/cjs/Channel.js.map +1 -1
  316. package/cjs/ChannelList/components/AddChannel.js +22 -22
  317. package/cjs/ChannelList/components/ChannelListHeader.js +9 -9
  318. package/cjs/ChannelList/components/ChannelListUI.js +37 -37
  319. package/cjs/ChannelList/components/ChannelPreview.js +30 -30
  320. package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
  321. package/cjs/ChannelList/context.js +18 -18
  322. package/cjs/ChannelList.js +37 -37
  323. package/cjs/ChannelSettings/components/ChannelProfile.js +20 -20
  324. package/cjs/ChannelSettings/components/ChannelSettingMenuList.js +17 -17
  325. package/cjs/ChannelSettings/components/ChannelSettingsHeader.js +7 -7
  326. package/cjs/ChannelSettings/components/ChannelSettingsMenuItem.js +2 -2
  327. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +27 -27
  328. package/cjs/ChannelSettings/components/EditDetailsModal.js +20 -20
  329. package/cjs/ChannelSettings/components/LeaveChannel.js +17 -17
  330. package/cjs/ChannelSettings/components/ModerationPanel.js +25 -25
  331. package/cjs/ChannelSettings/components/UserListItem.js +18 -18
  332. package/cjs/ChannelSettings/components/UserPanel.js +24 -24
  333. package/cjs/ChannelSettings/context.js +16 -16
  334. package/cjs/ChannelSettings/hooks/useMenuList.js +25 -25
  335. package/cjs/ChannelSettings.js +27 -27
  336. package/cjs/CreateChannel/components/CreateChannelUI.js +19 -19
  337. package/cjs/CreateChannel/components/InviteUsers.js +19 -19
  338. package/cjs/CreateChannel/components/SelectChannelType.js +16 -16
  339. package/cjs/CreateChannel/context.js +4 -4
  340. package/cjs/CreateChannel.js +19 -19
  341. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +17 -17
  342. package/cjs/CreateOpenChannel/context.js +1 -1
  343. package/cjs/CreateOpenChannel.js +17 -17
  344. package/cjs/EditUserProfile/components/EditUserProfileUI.js +18 -18
  345. package/cjs/EditUserProfile/context.js +1 -1
  346. package/cjs/EditUserProfile.js +18 -18
  347. package/cjs/GroupChannel/components/FileViewer.js +26 -26
  348. package/cjs/GroupChannel/components/FrozenNotification.js +5 -5
  349. package/cjs/GroupChannel/components/GroupChannelHeader.js +29 -29
  350. package/cjs/GroupChannel/components/GroupChannelUI.js +59 -58
  351. package/cjs/GroupChannel/components/GroupChannelUI.js.map +1 -1
  352. package/cjs/GroupChannel/components/Message.js +50 -50
  353. package/cjs/GroupChannel/components/MessageInputWrapper.js +37 -37
  354. package/cjs/GroupChannel/components/MessageList.js +53 -52
  355. package/cjs/GroupChannel/components/MessageList.js.map +1 -1
  356. package/cjs/GroupChannel/components/RemoveMessageModal.js +25 -25
  357. package/cjs/GroupChannel/components/SuggestedMentionList.js +11 -11
  358. package/cjs/GroupChannel/components/TypingIndicator.js +5 -5
  359. package/cjs/GroupChannel/components/UnreadCount.js +7 -7
  360. package/cjs/GroupChannel/context.js +23 -23
  361. package/cjs/GroupChannel.js +59 -58
  362. package/cjs/GroupChannel.js.map +1 -1
  363. package/cjs/GroupChannelList/components/AddGroupChannel.js +21 -21
  364. package/cjs/GroupChannelList/components/GroupChannelListHeader.js +9 -9
  365. package/cjs/GroupChannelList/components/GroupChannelListItem.js +28 -28
  366. package/cjs/GroupChannelList/components/GroupChannelListUI.js +36 -36
  367. package/cjs/GroupChannelList/components/GroupChannelPreviewAction.js +14 -14
  368. package/cjs/GroupChannelList/context.js +16 -16
  369. package/cjs/GroupChannelList.js +36 -36
  370. package/cjs/MessageSearch/components/MessageSearchUI.js +15 -14
  371. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  372. package/cjs/MessageSearch/context.js +1 -1
  373. package/cjs/MessageSearch.js +17 -16
  374. package/cjs/MessageSearch.js.map +1 -1
  375. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  376. package/cjs/OpenChannel/components/OpenChannelHeader.js +21 -21
  377. package/cjs/OpenChannel/components/OpenChannelInput.js +27 -27
  378. package/cjs/OpenChannel/components/OpenChannelMessage.js +36 -36
  379. package/cjs/OpenChannel/components/OpenChannelMessageList.js +40 -40
  380. package/cjs/OpenChannel/components/OpenChannelUI.js +40 -40
  381. package/cjs/OpenChannel/context.js +20 -20
  382. package/cjs/OpenChannel.js +40 -40
  383. package/cjs/OpenChannelList/components/OpenChannelListUI.js +19 -19
  384. package/cjs/OpenChannelList/components/OpenChannelPreview.js +6 -6
  385. package/cjs/OpenChannelList/context.js +3 -3
  386. package/cjs/OpenChannelList.js +19 -19
  387. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +20 -20
  388. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +20 -20
  389. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +21 -21
  390. package/cjs/OpenChannelSettings/components/OperatorUI.js +21 -21
  391. package/cjs/OpenChannelSettings/components/ParticipantUI.js +19 -19
  392. package/cjs/OpenChannelSettings/context.js +15 -15
  393. package/cjs/OpenChannelSettings.js +21 -21
  394. package/cjs/SendbirdProvider.js +20 -20
  395. package/cjs/Thread/components/ParentMessageInfo.js +45 -45
  396. package/cjs/Thread/components/ParentMessageInfoItem.js +30 -30
  397. package/cjs/Thread/components/ThreadHeader.js +7 -7
  398. package/cjs/Thread/components/ThreadList.js +52 -52
  399. package/cjs/Thread/components/ThreadListItem.js +52 -52
  400. package/cjs/Thread/components/ThreadMessageInput.js +43 -43
  401. package/cjs/Thread/components/ThreadUI.js +58 -58
  402. package/cjs/Thread/context.js +21 -21
  403. package/cjs/Thread.js +58 -58
  404. package/cjs/VoicePlayer/context.js +4 -4
  405. package/cjs/VoicePlayer/useVoicePlayer.js +14 -14
  406. package/cjs/VoiceRecorder/context.js +14 -14
  407. package/cjs/VoiceRecorder/useVoiceRecorder.js +14 -14
  408. package/cjs/chunks/{bundle-Bc9wvPCN.js → bundle-0rM-5V9V.js} +1 -1
  409. package/cjs/chunks/bundle-0rM-5V9V.js.map +1 -0
  410. package/cjs/chunks/{bundle-Q8pO_OyW.js → bundle-6-44ULzs.js} +3 -3
  411. package/cjs/chunks/bundle-6-44ULzs.js.map +1 -0
  412. package/cjs/chunks/{bundle-lqC_6gBR.js → bundle-9320UW-k.js} +13 -13
  413. package/cjs/chunks/bundle-9320UW-k.js.map +1 -0
  414. package/cjs/chunks/{bundle-UrfGgm28.js → bundle-B0_1JTh1.js} +3 -3
  415. package/cjs/chunks/{bundle-UrfGgm28.js.map → bundle-B0_1JTh1.js.map} +1 -1
  416. package/cjs/chunks/{bundle-By1Sf00B.js → bundle-B2MmAE_J.js} +1 -1
  417. package/cjs/chunks/bundle-B2MmAE_J.js.map +1 -0
  418. package/cjs/chunks/{bundle-CeLmQMmo.js → bundle-BEJP-RCX.js} +1 -1
  419. package/cjs/chunks/bundle-BEJP-RCX.js.map +1 -0
  420. package/cjs/chunks/{bundle-Ev0IfN_G.js → bundle-BK7vNHTc.js} +1 -1
  421. package/cjs/chunks/bundle-BK7vNHTc.js.map +1 -0
  422. package/cjs/chunks/{bundle-B-Lh9WrT.js → bundle-BKGMWgjB.js} +2 -2
  423. package/cjs/chunks/{bundle-B-Lh9WrT.js.map → bundle-BKGMWgjB.js.map} +1 -1
  424. package/cjs/chunks/{bundle-CYpPCSbs.js → bundle-BLAuFwlg.js} +2 -2
  425. package/cjs/chunks/bundle-BLAuFwlg.js.map +1 -0
  426. package/cjs/chunks/{bundle-DFT3H9MM.js → bundle-BO87Z-u8.js} +1 -1
  427. package/cjs/chunks/bundle-BO87Z-u8.js.map +1 -0
  428. package/cjs/chunks/{bundle-DJx1xhzu.js → bundle-BScZ5ohZ.js} +3 -3
  429. package/cjs/chunks/{bundle-DJx1xhzu.js.map → bundle-BScZ5ohZ.js.map} +1 -1
  430. package/cjs/chunks/{bundle-BdkNokVA.js → bundle-Bc-DjgOv.js} +1 -1
  431. package/cjs/chunks/bundle-Bc-DjgOv.js.map +1 -0
  432. package/cjs/chunks/{bundle-Bqw9YOBI.js → bundle-BekF9PeY.js} +1 -1
  433. package/cjs/chunks/{bundle-Bqw9YOBI.js.map → bundle-BekF9PeY.js.map} +1 -1
  434. package/cjs/chunks/{bundle-CfZTR4zC.js → bundle-Bf-dAh88.js} +1 -1
  435. package/cjs/chunks/bundle-Bf-dAh88.js.map +1 -0
  436. package/cjs/chunks/{bundle-Vbr70dS-.js → bundle-BfK-6uMB.js} +6 -6
  437. package/cjs/chunks/bundle-BfK-6uMB.js.map +1 -0
  438. package/cjs/chunks/{bundle-DweV15BE.js → bundle-BhPMFHRn.js} +1 -1
  439. package/cjs/chunks/bundle-BhPMFHRn.js.map +1 -0
  440. package/cjs/chunks/{bundle-DU96Nzq-.js → bundle-BjL-fbex.js} +27 -15
  441. package/cjs/chunks/bundle-BjL-fbex.js.map +1 -0
  442. package/cjs/chunks/{bundle-BJ0h7G0c.js → bundle-BkcVGDjn.js} +4 -4
  443. package/cjs/chunks/bundle-BkcVGDjn.js.map +1 -0
  444. package/cjs/chunks/{bundle-ByanPeD0.js → bundle-Bl3MWz31.js} +4 -4
  445. package/cjs/chunks/{bundle-ByanPeD0.js.map → bundle-Bl3MWz31.js.map} +1 -1
  446. package/cjs/chunks/{bundle-BWbn8TYb.js → bundle-BlT-csJI.js} +8 -8
  447. package/cjs/chunks/bundle-BlT-csJI.js.map +1 -0
  448. package/cjs/chunks/{bundle-DfojQg99.js → bundle-BlrvNW84.js} +3 -3
  449. package/cjs/chunks/bundle-BlrvNW84.js.map +1 -0
  450. package/cjs/chunks/{bundle-1hFPx8T-.js → bundle-BrZukI3D.js} +1 -1
  451. package/cjs/chunks/bundle-BrZukI3D.js.map +1 -0
  452. package/cjs/chunks/{bundle-D24hyvZV.js → bundle-BsZ9e1OW.js} +3 -3
  453. package/cjs/chunks/{bundle-D24hyvZV.js.map → bundle-BsZ9e1OW.js.map} +1 -1
  454. package/cjs/chunks/{bundle-DncXV6Zi.js → bundle-BzLL-qrn.js} +2 -2
  455. package/cjs/chunks/bundle-BzLL-qrn.js.map +1 -0
  456. package/cjs/chunks/{bundle-CIZAIkTO.js → bundle-C2B8Wwc4.js} +1 -1
  457. package/cjs/chunks/bundle-C2B8Wwc4.js.map +1 -0
  458. package/cjs/chunks/{bundle-DrfEImqs.js → bundle-C4B5pKWU.js} +3 -3
  459. package/cjs/chunks/bundle-C4B5pKWU.js.map +1 -0
  460. package/cjs/chunks/{bundle-BBJTtQpB.js → bundle-C4zhnJmB.js} +12 -12
  461. package/cjs/chunks/{bundle-BBJTtQpB.js.map → bundle-C4zhnJmB.js.map} +1 -1
  462. package/cjs/chunks/{bundle-BCxrXYI3.js → bundle-C5MmL5yU.js} +9 -9
  463. package/cjs/chunks/bundle-C5MmL5yU.js.map +1 -0
  464. package/cjs/chunks/{bundle-BlctoPRq.js → bundle-C9UhSess.js} +7 -7
  465. package/cjs/chunks/{bundle-BlctoPRq.js.map → bundle-C9UhSess.js.map} +1 -1
  466. package/cjs/chunks/{bundle-D_lF37ye.js → bundle-C9dUt1j_.js} +1 -1
  467. package/cjs/chunks/bundle-C9dUt1j_.js.map +1 -0
  468. package/cjs/chunks/{bundle-ClyzMwDC.js → bundle-CAq16sKH.js} +1 -1
  469. package/cjs/chunks/bundle-CAq16sKH.js.map +1 -0
  470. package/cjs/chunks/{bundle-BgLxFRQk.js → bundle-CBJPjOKK.js} +3 -3
  471. package/cjs/chunks/bundle-CBJPjOKK.js.map +1 -0
  472. package/cjs/chunks/{bundle-BrQ2ZPGR.js → bundle-CCfEEGZT.js} +1 -1
  473. package/cjs/chunks/bundle-CCfEEGZT.js.map +1 -0
  474. package/cjs/chunks/{bundle-DikxzL_d.js → bundle-CHG_eoB7.js} +2 -2
  475. package/cjs/chunks/{bundle-DikxzL_d.js.map → bundle-CHG_eoB7.js.map} +1 -1
  476. package/cjs/chunks/{bundle-B1BFXAIQ.js → bundle-CJMDrgfZ.js} +1 -1
  477. package/cjs/chunks/bundle-CJMDrgfZ.js.map +1 -0
  478. package/cjs/chunks/{bundle-C5eIOPz0.js → bundle-CNjp2Nuj.js} +6 -6
  479. package/cjs/chunks/bundle-CNjp2Nuj.js.map +1 -0
  480. package/cjs/chunks/{bundle-CM9WiyJr.js → bundle-CU_OwtY7.js} +2 -2
  481. package/cjs/chunks/bundle-CU_OwtY7.js.map +1 -0
  482. package/cjs/chunks/{bundle-Db8YvH3q.js → bundle-CXzY5rVA.js} +1 -1
  483. package/cjs/chunks/bundle-CXzY5rVA.js.map +1 -0
  484. package/cjs/chunks/{bundle-B3vWGR_K.js → bundle-CcyYm2By.js} +9 -9
  485. package/cjs/chunks/{bundle-B3vWGR_K.js.map → bundle-CcyYm2By.js.map} +1 -1
  486. package/cjs/chunks/{bundle-Blch0kG8.js → bundle-Ce1AhZRK.js} +2 -2
  487. package/cjs/chunks/bundle-Ce1AhZRK.js.map +1 -0
  488. package/cjs/chunks/{bundle-BH4jo8Br.js → bundle-CfZq5vEi.js} +1 -1
  489. package/cjs/chunks/bundle-CfZq5vEi.js.map +1 -0
  490. package/cjs/chunks/{bundle-CsB_i6B0.js → bundle-CjaUQyuT.js} +1 -1
  491. package/cjs/chunks/bundle-CjaUQyuT.js.map +1 -0
  492. package/cjs/chunks/{bundle-2h0tunYE.js → bundle-CpNphatI.js} +4 -4
  493. package/cjs/chunks/bundle-CpNphatI.js.map +1 -0
  494. package/cjs/chunks/{bundle-7CPMX_TT.js → bundle-CpqLJPov.js} +1 -1
  495. package/cjs/chunks/bundle-CpqLJPov.js.map +1 -0
  496. package/cjs/chunks/{bundle-D2P6gVxf.js → bundle-Cpuh_hmr.js} +1 -1
  497. package/cjs/chunks/bundle-Cpuh_hmr.js.map +1 -0
  498. package/cjs/chunks/{bundle-BMhYApRu.js → bundle-Cs90VeJL.js} +1 -1
  499. package/cjs/chunks/bundle-Cs90VeJL.js.map +1 -0
  500. package/cjs/chunks/{bundle-et2uTovT.js → bundle-Cx_AtXvu.js} +6 -6
  501. package/cjs/chunks/bundle-Cx_AtXvu.js.map +1 -0
  502. package/cjs/chunks/{bundle-tY97PA7n.js → bundle-D0xdvRCq.js} +9 -9
  503. package/cjs/chunks/{bundle-C9ZOR9xa.js.map → bundle-D0xdvRCq.js.map} +1 -1
  504. package/cjs/chunks/{bundle-DtmJbh2k.js → bundle-D1Qp9dPv.js} +1 -1
  505. package/cjs/chunks/bundle-D1Qp9dPv.js.map +1 -0
  506. package/cjs/chunks/{bundle-CuaaEAz6.js → bundle-D4y5iRWL.js} +583 -396
  507. package/cjs/chunks/bundle-D4y5iRWL.js.map +1 -0
  508. package/cjs/chunks/{bundle-5IKXZjCM.js → bundle-D6csOw30.js} +3 -3
  509. package/cjs/chunks/bundle-D6csOw30.js.map +1 -0
  510. package/cjs/chunks/{bundle-CX437C0t.js → bundle-D7lzZHvD.js} +3 -3
  511. package/cjs/chunks/bundle-D7lzZHvD.js.map +1 -0
  512. package/cjs/chunks/{bundle-BZ7JTELl.js → bundle-D8lzfXkZ.js} +1 -1
  513. package/cjs/chunks/bundle-D8lzfXkZ.js.map +1 -0
  514. package/cjs/chunks/{bundle-DYmapMAd.js → bundle-D9TPG-dw.js} +4 -4
  515. package/cjs/chunks/{bundle-DYmapMAd.js.map → bundle-D9TPG-dw.js.map} +1 -1
  516. package/cjs/chunks/{bundle-pph4vfaO.js → bundle-DA96gYzD.js} +2 -2
  517. package/cjs/chunks/bundle-DA96gYzD.js.map +1 -0
  518. package/cjs/chunks/{bundle-DNMXfsO0.js → bundle-DARZfJEP.js} +8 -8
  519. package/cjs/chunks/{bundle-DNMXfsO0.js.map → bundle-DARZfJEP.js.map} +1 -1
  520. package/cjs/chunks/{bundle-BuKwTuVv.js → bundle-DAkNTCba.js} +1 -1
  521. package/cjs/chunks/bundle-DAkNTCba.js.map +1 -0
  522. package/cjs/chunks/{bundle-Bpkxxjt3.js → bundle-DDLep1fi.js} +5 -5
  523. package/cjs/chunks/{bundle-Bpkxxjt3.js.map → bundle-DDLep1fi.js.map} +1 -1
  524. package/cjs/chunks/{bundle-D7z1mmDp.js → bundle-DQTt3t1y.js} +3 -3
  525. package/cjs/chunks/bundle-DQTt3t1y.js.map +1 -0
  526. package/cjs/chunks/{bundle-BwE__yQ0.js → bundle-DWHg78Gy.js} +3 -3
  527. package/cjs/chunks/{bundle-BwE__yQ0.js.map → bundle-DWHg78Gy.js.map} +1 -1
  528. package/cjs/chunks/{bundle-BIO_eBe4.js → bundle-D_IGJ-UU.js} +3 -1
  529. package/cjs/chunks/bundle-D_IGJ-UU.js.map +1 -0
  530. package/cjs/chunks/{bundle-B_WxxAei.js → bundle-D_aAITb2.js} +12 -12
  531. package/cjs/chunks/{bundle-B_WxxAei.js.map → bundle-D_aAITb2.js.map} +1 -1
  532. package/cjs/chunks/{bundle-B4yvC9Hz.js → bundle-DkexSD0g.js} +1 -1
  533. package/cjs/chunks/bundle-DkexSD0g.js.map +1 -0
  534. package/cjs/chunks/{bundle-DRtpyy_k.js → bundle-Dnb4Q1BO.js} +6 -6
  535. package/cjs/chunks/{bundle-DRtpyy_k.js.map → bundle-Dnb4Q1BO.js.map} +1 -1
  536. package/cjs/chunks/{bundle-BQUV_WAU.js → bundle-Dp4e-XxD.js} +5 -5
  537. package/cjs/chunks/bundle-Dp4e-XxD.js.map +1 -0
  538. package/cjs/chunks/{bundle-COihomAk.js → bundle-DvvSnKiJ.js} +1 -1
  539. package/cjs/chunks/bundle-DvvSnKiJ.js.map +1 -0
  540. package/cjs/chunks/{bundle-BpwAPpI9.js → bundle-Dwmcdofc.js} +11 -11
  541. package/{chunks/bundle-CtFDB6uM.js.map → cjs/chunks/bundle-Dwmcdofc.js.map} +1 -1
  542. package/cjs/chunks/{bundle-CfM5CrA0.js → bundle-DxJ2jUl9.js} +1 -1
  543. package/cjs/chunks/bundle-DxJ2jUl9.js.map +1 -0
  544. package/cjs/chunks/{bundle-DC7D5Jct.js → bundle-FZr6OOZI.js} +6 -6
  545. package/cjs/chunks/bundle-FZr6OOZI.js.map +1 -0
  546. package/cjs/chunks/{bundle-Dn0-m4mJ.js → bundle-H155IRcw.js} +2 -2
  547. package/cjs/chunks/bundle-H155IRcw.js.map +1 -0
  548. package/cjs/chunks/{bundle-BwhU8sVU.js → bundle-HekRAZ-p.js} +1 -1
  549. package/cjs/chunks/bundle-HekRAZ-p.js.map +1 -0
  550. package/cjs/chunks/{bundle-Ctcafl75.js → bundle-K-9BJXVz.js} +1 -1
  551. package/cjs/chunks/bundle-K-9BJXVz.js.map +1 -0
  552. package/cjs/chunks/bundle-NcNHnfKv.js +8 -0
  553. package/cjs/chunks/bundle-NcNHnfKv.js.map +1 -0
  554. package/cjs/chunks/{bundle-C9ZOR9xa.js → bundle-Nk4N9epV.js} +5 -5
  555. package/cjs/chunks/{bundle-tY97PA7n.js.map → bundle-Nk4N9epV.js.map} +1 -1
  556. package/cjs/chunks/{bundle-BXPOAoB6.js → bundle-QL_tq1Vi.js} +19 -47
  557. package/cjs/chunks/bundle-QL_tq1Vi.js.map +1 -0
  558. package/cjs/chunks/{bundle-DZ7PcPyb.js → bundle-R4srl1Nb.js} +11 -11
  559. package/cjs/chunks/{bundle-DZ7PcPyb.js.map → bundle-R4srl1Nb.js.map} +1 -1
  560. package/cjs/chunks/{bundle-CW2Ejtnv.js → bundle-RILZXa8u.js} +8 -8
  561. package/cjs/chunks/bundle-RILZXa8u.js.map +1 -0
  562. package/cjs/chunks/{bundle-Bz09H9J_.js → bundle-SEtzg2pM.js} +4 -4
  563. package/cjs/chunks/bundle-SEtzg2pM.js.map +1 -0
  564. package/cjs/chunks/{bundle-BCChjjwq.js → bundle-TwlKYkkB.js} +2 -2
  565. package/cjs/chunks/bundle-TwlKYkkB.js.map +1 -0
  566. package/cjs/chunks/{bundle-CASJD9zh.js → bundle-YzeVNWrq.js} +11 -11
  567. package/cjs/chunks/{bundle-CASJD9zh.js.map → bundle-YzeVNWrq.js.map} +1 -1
  568. package/cjs/chunks/{bundle-LL9X-ZFA.js → bundle-dRqURxfP.js} +7 -7
  569. package/cjs/chunks/bundle-dRqURxfP.js.map +1 -0
  570. package/cjs/chunks/{bundle-DnC1jVeG.js → bundle-gx2fBRsp.js} +5 -5
  571. package/cjs/chunks/bundle-gx2fBRsp.js.map +1 -0
  572. package/cjs/chunks/{bundle-Omd3faBY.js → bundle-i5nnNpsV.js} +1 -1
  573. package/cjs/chunks/bundle-i5nnNpsV.js.map +1 -0
  574. package/cjs/chunks/{bundle-Ezzvgnkr.js → bundle-tNp8xMbX.js} +4 -4
  575. package/cjs/chunks/bundle-tNp8xMbX.js.map +1 -0
  576. package/cjs/chunks/{bundle-CF2nS6c6.js → bundle-uQxUka-j.js} +4 -4
  577. package/cjs/chunks/bundle-uQxUka-j.js.map +1 -0
  578. package/cjs/chunks/{bundle-ZOmsvW3a.js → bundle-v_4wu87G.js} +1 -1
  579. package/cjs/chunks/bundle-v_4wu87G.js.map +1 -0
  580. package/cjs/hooks/useModal.js +14 -14
  581. package/cjs/index.js +87 -86
  582. package/cjs/index.js.map +1 -1
  583. package/cjs/pubSub/topics.js +1 -1
  584. package/cjs/sendbirdSelectors.js +2 -2
  585. package/cjs/ui/Accordion.js +2 -2
  586. package/cjs/ui/AccordionGroup.js +1 -1
  587. package/cjs/ui/AdminMessage.js +3 -3
  588. package/cjs/ui/Avatar.js +4 -4
  589. package/cjs/ui/Badge.js +4 -4
  590. package/cjs/ui/BottomSheet.js +14 -14
  591. package/cjs/ui/Button.js +3 -3
  592. package/cjs/ui/ChannelAvatar.js +5 -5
  593. package/cjs/ui/ConnectionStatus.js +5 -5
  594. package/cjs/ui/ContextMenu.js +11 -10
  595. package/cjs/ui/ContextMenu.js.map +1 -1
  596. package/cjs/ui/DateSeparator.js +4 -4
  597. package/cjs/ui/EmojiReactions.js +20 -20
  598. package/cjs/ui/FallbackTemplateMessageItemBody.tsx.js +8 -7
  599. package/cjs/ui/FallbackTemplateMessageItemBody.tsx.js.map +1 -1
  600. package/cjs/ui/FileMessageItemBody.js +10 -9
  601. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  602. package/cjs/ui/FileViewer.js +17 -17
  603. package/cjs/ui/Header.js +6 -6
  604. package/cjs/ui/Icon.js +2 -2
  605. package/cjs/ui/IconButton.js +1 -1
  606. package/cjs/ui/ImageRenderer.js +27 -21
  607. package/cjs/ui/ImageRenderer.js.map +1 -1
  608. package/cjs/ui/Input.js +3 -3
  609. package/cjs/ui/Label.js +3 -3
  610. package/cjs/ui/LinkLabel.js +4 -4
  611. package/cjs/ui/Loader.js +2 -2
  612. package/cjs/ui/LoadingTemplateMessageItemBody.tsx.js +2 -2
  613. package/cjs/ui/MentionLabel.js +18 -18
  614. package/cjs/ui/MentionUserLabel.js +2 -2
  615. package/cjs/ui/MessageContent.js +101 -84
  616. package/cjs/ui/MessageContent.js.map +1 -1
  617. package/cjs/ui/MessageFeedbackFailedModal.js +15 -15
  618. package/cjs/ui/MessageFeedbackModal.js +15 -15
  619. package/cjs/ui/MessageInput/hooks/usePaste.js +7 -7
  620. package/cjs/ui/MessageInput.js +16 -15
  621. package/cjs/ui/MessageInput.js.map +1 -1
  622. package/cjs/ui/MessageItemMenu.js +12 -11
  623. package/cjs/ui/MessageItemMenu.js.map +1 -1
  624. package/cjs/ui/MessageItemReactionMenu.js +13 -12
  625. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  626. package/cjs/ui/MessageMenu.js +12 -11
  627. package/cjs/ui/MessageMenu.js.map +1 -1
  628. package/cjs/ui/MessageSearchFileItem.js +15 -14
  629. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  630. package/cjs/ui/MessageSearchItem.js +11 -11
  631. package/cjs/ui/MessageStatus.js +13 -12
  632. package/cjs/ui/MessageStatus.js.map +1 -1
  633. package/cjs/ui/MessageTemplate.js +1 -1
  634. package/cjs/ui/MobileFeedbackMenu.js +14 -14
  635. package/cjs/ui/MobileMenu.js +15 -15
  636. package/cjs/ui/Modal.js +14 -14
  637. package/cjs/ui/MutedAvatarOverlay.js +2 -2
  638. package/cjs/ui/OGMessageItemBody.js +21 -21
  639. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  640. package/cjs/ui/OpenChannelAvatar.js +7 -7
  641. package/cjs/ui/OpenchannelConversationHeader.js +7 -7
  642. package/cjs/ui/OpenchannelFileMessage.js +22 -22
  643. package/cjs/ui/OpenchannelOGMessage.js +24 -24
  644. package/cjs/ui/OpenchannelThumbnailMessage.js +21 -21
  645. package/cjs/ui/OpenchannelUserMessage.js +22 -22
  646. package/cjs/ui/PlaceHolder.js +5 -5
  647. package/cjs/ui/PlaybackTime.js +3 -3
  648. package/cjs/ui/ProgressBar.js +1 -1
  649. package/cjs/ui/QuoteMessage.js +10 -9
  650. package/cjs/ui/QuoteMessage.js.map +1 -1
  651. package/cjs/ui/QuoteMessageInput.js +10 -9
  652. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  653. package/cjs/ui/ReactionBadge.js +3 -3
  654. package/cjs/ui/ReactionButton.js +4 -4
  655. package/cjs/ui/SortByRow.js +2 -2
  656. package/cjs/ui/TemplateMessageItemBody.js +134 -252
  657. package/cjs/ui/TemplateMessageItemBody.js.map +1 -1
  658. package/cjs/ui/TextButton.js +2 -2
  659. package/cjs/ui/TextMessageItemBody.js +21 -21
  660. package/cjs/ui/ThreadReplies.js +7 -7
  661. package/cjs/ui/ThumbnailMessageItemBody.js +9 -8
  662. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  663. package/cjs/ui/Toggle.js +1 -1
  664. package/cjs/ui/Tooltip.js +3 -3
  665. package/cjs/ui/TooltipWrapper.js +1 -1
  666. package/cjs/ui/TypingIndicatorBubble.js +4 -4
  667. package/cjs/ui/UnknownMessageItemBody.js +8 -7
  668. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  669. package/cjs/ui/UserListItem.js +18 -18
  670. package/cjs/ui/UserListItemMenu.js +12 -11
  671. package/cjs/ui/UserListItemMenu.js.map +1 -1
  672. package/cjs/ui/UserProfile.js +18 -18
  673. package/cjs/ui/VoiceMessageInput.js +8 -8
  674. package/cjs/ui/VoiceMessageItemBody.js +14 -14
  675. package/cjs/ui/Word.js +18 -18
  676. package/cjs/useSendbirdStateContext.js +1 -1
  677. package/cjs/utils/message/isVoiceMessage.js +5 -4
  678. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  679. package/cjs/withSendbird.js +1 -1
  680. package/dist/index.css +48 -56
  681. package/hooks/useModal.js +14 -14
  682. package/index.js +86 -85
  683. package/index.js.map +1 -1
  684. package/package.json +3 -3
  685. package/pubSub/topics.js +1 -1
  686. package/sendbirdSelectors.js +2 -2
  687. package/types/modules/Channel/components/Message/hooks/useIsElementInViewport.d.ts +1 -1
  688. package/types/modules/Channel/components/Message/hooks/useLazyImageLoader.d.ts +2 -2
  689. package/types/types.d.ts +0 -4
  690. package/types/ui/MessageContent/MessageBody/index.d.ts +0 -2
  691. package/types/ui/MessageContent/MessageContentForTemplateMessage.d.ts +15 -0
  692. package/types/ui/MessageTemplate/messageTemplateErrorBoundary.d.ts +0 -3
  693. package/types/ui/TemplateMessageItemBody/index.d.ts +15 -3
  694. package/types/ui/TemplateMessageItemBody/types.d.ts +8 -6
  695. package/types/utils/consts.d.ts +1 -0
  696. package/types/utils/index.d.ts +6 -9
  697. package/ui/Accordion.js +2 -2
  698. package/ui/AccordionGroup.js +1 -1
  699. package/ui/AdminMessage.js +3 -3
  700. package/ui/Avatar.js +4 -4
  701. package/ui/Badge.js +4 -4
  702. package/ui/BottomSheet.js +14 -14
  703. package/ui/Button.js +3 -3
  704. package/ui/ChannelAvatar.js +5 -5
  705. package/ui/ConnectionStatus.js +5 -5
  706. package/ui/ContextMenu.js +11 -10
  707. package/ui/ContextMenu.js.map +1 -1
  708. package/ui/DateSeparator.js +4 -4
  709. package/ui/EmojiReactions.js +20 -20
  710. package/ui/FallbackTemplateMessageItemBody.tsx.js +8 -7
  711. package/ui/FallbackTemplateMessageItemBody.tsx.js.map +1 -1
  712. package/ui/FileMessageItemBody.js +10 -9
  713. package/ui/FileMessageItemBody.js.map +1 -1
  714. package/ui/FileViewer.js +17 -17
  715. package/ui/Header.js +6 -6
  716. package/ui/Icon.js +2 -2
  717. package/ui/IconButton.js +1 -1
  718. package/ui/ImageRenderer.js +28 -22
  719. package/ui/ImageRenderer.js.map +1 -1
  720. package/ui/Input.js +3 -3
  721. package/ui/Label.js +3 -3
  722. package/ui/LinkLabel.js +4 -4
  723. package/ui/Loader.js +2 -2
  724. package/ui/LoadingTemplateMessageItemBody.tsx.js +2 -2
  725. package/ui/MentionLabel.js +18 -18
  726. package/ui/MentionUserLabel.js +2 -2
  727. package/ui/MessageContent.js +101 -84
  728. package/ui/MessageContent.js.map +1 -1
  729. package/ui/MessageFeedbackFailedModal.js +15 -15
  730. package/ui/MessageFeedbackModal.js +15 -15
  731. package/ui/MessageInput/hooks/usePaste.js +7 -7
  732. package/ui/MessageInput.js +16 -15
  733. package/ui/MessageInput.js.map +1 -1
  734. package/ui/MessageItemMenu.js +12 -11
  735. package/ui/MessageItemMenu.js.map +1 -1
  736. package/ui/MessageItemReactionMenu.js +13 -12
  737. package/ui/MessageItemReactionMenu.js.map +1 -1
  738. package/ui/MessageMenu.js +12 -11
  739. package/ui/MessageMenu.js.map +1 -1
  740. package/ui/MessageSearchFileItem.js +15 -14
  741. package/ui/MessageSearchFileItem.js.map +1 -1
  742. package/ui/MessageSearchItem.js +11 -11
  743. package/ui/MessageStatus.js +13 -12
  744. package/ui/MessageStatus.js.map +1 -1
  745. package/ui/MessageTemplate.js +1 -1
  746. package/ui/MobileFeedbackMenu.js +14 -14
  747. package/ui/MobileMenu.js +15 -15
  748. package/ui/Modal.js +14 -14
  749. package/ui/MutedAvatarOverlay.js +2 -2
  750. package/ui/OGMessageItemBody.js +21 -21
  751. package/ui/OpenChannelAdminMessage.js +3 -3
  752. package/ui/OpenChannelAvatar.js +7 -7
  753. package/ui/OpenchannelConversationHeader.js +7 -7
  754. package/ui/OpenchannelFileMessage.js +22 -22
  755. package/ui/OpenchannelOGMessage.js +24 -24
  756. package/ui/OpenchannelThumbnailMessage.js +21 -21
  757. package/ui/OpenchannelUserMessage.js +22 -22
  758. package/ui/PlaceHolder.js +5 -5
  759. package/ui/PlaybackTime.js +3 -3
  760. package/ui/ProgressBar.js +1 -1
  761. package/ui/QuoteMessage.js +10 -9
  762. package/ui/QuoteMessage.js.map +1 -1
  763. package/ui/QuoteMessageInput.js +10 -9
  764. package/ui/QuoteMessageInput.js.map +1 -1
  765. package/ui/ReactionBadge.js +3 -3
  766. package/ui/ReactionButton.js +4 -4
  767. package/ui/SortByRow.js +2 -2
  768. package/ui/TemplateMessageItemBody.js +134 -253
  769. package/ui/TemplateMessageItemBody.js.map +1 -1
  770. package/ui/TextButton.js +2 -2
  771. package/ui/TextMessageItemBody.js +21 -21
  772. package/ui/ThreadReplies.js +7 -7
  773. package/ui/ThumbnailMessageItemBody.js +9 -8
  774. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  775. package/ui/Toggle.js +1 -1
  776. package/ui/Tooltip.js +3 -3
  777. package/ui/TooltipWrapper.js +1 -1
  778. package/ui/TypingIndicatorBubble.js +4 -4
  779. package/ui/UnknownMessageItemBody.js +8 -7
  780. package/ui/UnknownMessageItemBody.js.map +1 -1
  781. package/ui/UserListItem.js +18 -18
  782. package/ui/UserListItemMenu.js +13 -12
  783. package/ui/UserListItemMenu.js.map +1 -1
  784. package/ui/UserProfile.js +18 -18
  785. package/ui/VoiceMessageInput.js +8 -8
  786. package/ui/VoiceMessageItemBody.js +14 -14
  787. package/ui/Word.js +18 -18
  788. package/useSendbirdStateContext.js +1 -1
  789. package/utils/message/isVoiceMessage.js +5 -4
  790. package/utils/message/isVoiceMessage.js.map +1 -1
  791. package/withSendbird.js +1 -1
  792. package/chunks/bundle-02mU_mdQ.js.map +0 -1
  793. package/chunks/bundle-07bGaKDM.js.map +0 -1
  794. package/chunks/bundle-1AhxUDPU.js.map +0 -1
  795. package/chunks/bundle-4FX6gpGw.js.map +0 -1
  796. package/chunks/bundle-BAce4maL.js.map +0 -1
  797. package/chunks/bundle-BR3hUG8u.js.map +0 -1
  798. package/chunks/bundle-BcUjwXyv.js.map +0 -1
  799. package/chunks/bundle-BdMFvS48.js.map +0 -1
  800. package/chunks/bundle-BoeyQYjc.js.map +0 -1
  801. package/chunks/bundle-Bv0CLKmK.js.map +0 -1
  802. package/chunks/bundle-C3oeRQke.js.map +0 -1
  803. package/chunks/bundle-C8gQKppc.js.map +0 -1
  804. package/chunks/bundle-CCC-fCd1.js.map +0 -1
  805. package/chunks/bundle-CJW-g_-k.js.map +0 -1
  806. package/chunks/bundle-CM8k_MAe.js.map +0 -1
  807. package/chunks/bundle-CZxcoh5B.js.map +0 -1
  808. package/chunks/bundle-C_9aMSZU.js.map +0 -1
  809. package/chunks/bundle-C_xDLLUt.js.map +0 -1
  810. package/chunks/bundle-Cdoy9-UG.js.map +0 -1
  811. package/chunks/bundle-Ch7HVLiB.js.map +0 -1
  812. package/chunks/bundle-CiwJHy6g.js.map +0 -1
  813. package/chunks/bundle-CkDGUIvh.js.map +0 -1
  814. package/chunks/bundle-Cl-vRzDr.js.map +0 -1
  815. package/chunks/bundle-CsHJ18W0.js.map +0 -1
  816. package/chunks/bundle-D48t2vTo.js.map +0 -1
  817. package/chunks/bundle-D4Oav06e.js.map +0 -1
  818. package/chunks/bundle-D5bkstmZ.js.map +0 -1
  819. package/chunks/bundle-D8l9-enQ.js.map +0 -1
  820. package/chunks/bundle-DEIDkSEG.js.map +0 -1
  821. package/chunks/bundle-DFkvUVw1.js.map +0 -1
  822. package/chunks/bundle-DGc-w_0Y.js.map +0 -1
  823. package/chunks/bundle-DOVBsMiS.js.map +0 -1
  824. package/chunks/bundle-DPIvYZBS.js.map +0 -1
  825. package/chunks/bundle-DVOn95Bl.js.map +0 -1
  826. package/chunks/bundle-DZ92KGoS.js.map +0 -1
  827. package/chunks/bundle-DZK4rg_Y.js.map +0 -1
  828. package/chunks/bundle-DbVGPg9d.js.map +0 -1
  829. package/chunks/bundle-Dw-CkW5p.js.map +0 -1
  830. package/chunks/bundle-Dw_-sD_V.js.map +0 -1
  831. package/chunks/bundle-Dy0AI0rz.js.map +0 -1
  832. package/chunks/bundle-DyKHaG_F.js.map +0 -1
  833. package/chunks/bundle-DzFqlsbR.js.map +0 -1
  834. package/chunks/bundle-Qa-OShfm.js.map +0 -1
  835. package/chunks/bundle-WBTZOgwR.js.map +0 -1
  836. package/chunks/bundle-ZwPNoncU.js.map +0 -1
  837. package/chunks/bundle-f-kJq0yY.js.map +0 -1
  838. package/chunks/bundle-fSCONSew.js.map +0 -1
  839. package/chunks/bundle-g4f6DqPZ.js.map +0 -1
  840. package/chunks/bundle-kAnCqJ1s.js.map +0 -1
  841. package/chunks/bundle-kMS1-vHn.js.map +0 -1
  842. package/chunks/bundle-piJ_EqHo.js.map +0 -1
  843. package/chunks/bundle-t_NHXb8k.js.map +0 -1
  844. package/chunks/bundle-ub1P3ZHF.js.map +0 -1
  845. package/chunks/bundle-xPkUUY0y.js.map +0 -1
  846. package/chunks/bundle-zxooGkqM.js.map +0 -1
  847. package/cjs/chunks/bundle-1hFPx8T-.js.map +0 -1
  848. package/cjs/chunks/bundle-2h0tunYE.js.map +0 -1
  849. package/cjs/chunks/bundle-5IKXZjCM.js.map +0 -1
  850. package/cjs/chunks/bundle-7CPMX_TT.js.map +0 -1
  851. package/cjs/chunks/bundle-B1BFXAIQ.js.map +0 -1
  852. package/cjs/chunks/bundle-B4yvC9Hz.js.map +0 -1
  853. package/cjs/chunks/bundle-BCChjjwq.js.map +0 -1
  854. package/cjs/chunks/bundle-BCxrXYI3.js.map +0 -1
  855. package/cjs/chunks/bundle-BH4jo8Br.js.map +0 -1
  856. package/cjs/chunks/bundle-BIO_eBe4.js.map +0 -1
  857. package/cjs/chunks/bundle-BJ0h7G0c.js.map +0 -1
  858. package/cjs/chunks/bundle-BMhYApRu.js.map +0 -1
  859. package/cjs/chunks/bundle-BQUV_WAU.js.map +0 -1
  860. package/cjs/chunks/bundle-BWbn8TYb.js.map +0 -1
  861. package/cjs/chunks/bundle-BXPOAoB6.js.map +0 -1
  862. package/cjs/chunks/bundle-BZ7JTELl.js.map +0 -1
  863. package/cjs/chunks/bundle-Bc9wvPCN.js.map +0 -1
  864. package/cjs/chunks/bundle-BdkNokVA.js.map +0 -1
  865. package/cjs/chunks/bundle-BgLxFRQk.js.map +0 -1
  866. package/cjs/chunks/bundle-Blch0kG8.js.map +0 -1
  867. package/cjs/chunks/bundle-BrQ2ZPGR.js.map +0 -1
  868. package/cjs/chunks/bundle-BuKwTuVv.js.map +0 -1
  869. package/cjs/chunks/bundle-BwhU8sVU.js.map +0 -1
  870. package/cjs/chunks/bundle-By1Sf00B.js.map +0 -1
  871. package/cjs/chunks/bundle-Bz09H9J_.js.map +0 -1
  872. package/cjs/chunks/bundle-C5eIOPz0.js.map +0 -1
  873. package/cjs/chunks/bundle-CF2nS6c6.js.map +0 -1
  874. package/cjs/chunks/bundle-CIZAIkTO.js.map +0 -1
  875. package/cjs/chunks/bundle-CM9WiyJr.js.map +0 -1
  876. package/cjs/chunks/bundle-COihomAk.js.map +0 -1
  877. package/cjs/chunks/bundle-CW2Ejtnv.js.map +0 -1
  878. package/cjs/chunks/bundle-CX437C0t.js.map +0 -1
  879. package/cjs/chunks/bundle-CYpPCSbs.js.map +0 -1
  880. package/cjs/chunks/bundle-CeLmQMmo.js.map +0 -1
  881. package/cjs/chunks/bundle-CfM5CrA0.js.map +0 -1
  882. package/cjs/chunks/bundle-CfZTR4zC.js.map +0 -1
  883. package/cjs/chunks/bundle-ClyzMwDC.js.map +0 -1
  884. package/cjs/chunks/bundle-CsB_i6B0.js.map +0 -1
  885. package/cjs/chunks/bundle-Ctcafl75.js.map +0 -1
  886. package/cjs/chunks/bundle-CuaaEAz6.js.map +0 -1
  887. package/cjs/chunks/bundle-D2P6gVxf.js.map +0 -1
  888. package/cjs/chunks/bundle-D7z1mmDp.js.map +0 -1
  889. package/cjs/chunks/bundle-DC7D5Jct.js.map +0 -1
  890. package/cjs/chunks/bundle-DFT3H9MM.js.map +0 -1
  891. package/cjs/chunks/bundle-DU96Nzq-.js.map +0 -1
  892. package/cjs/chunks/bundle-D_lF37ye.js.map +0 -1
  893. package/cjs/chunks/bundle-Db8YvH3q.js.map +0 -1
  894. package/cjs/chunks/bundle-DfojQg99.js.map +0 -1
  895. package/cjs/chunks/bundle-Dn0-m4mJ.js.map +0 -1
  896. package/cjs/chunks/bundle-DnC1jVeG.js.map +0 -1
  897. package/cjs/chunks/bundle-DncXV6Zi.js.map +0 -1
  898. package/cjs/chunks/bundle-DrfEImqs.js.map +0 -1
  899. package/cjs/chunks/bundle-DtmJbh2k.js.map +0 -1
  900. package/cjs/chunks/bundle-DweV15BE.js.map +0 -1
  901. package/cjs/chunks/bundle-Ev0IfN_G.js.map +0 -1
  902. package/cjs/chunks/bundle-Ezzvgnkr.js.map +0 -1
  903. package/cjs/chunks/bundle-LL9X-ZFA.js.map +0 -1
  904. package/cjs/chunks/bundle-Omd3faBY.js.map +0 -1
  905. package/cjs/chunks/bundle-Q8pO_OyW.js.map +0 -1
  906. package/cjs/chunks/bundle-Vbr70dS-.js.map +0 -1
  907. package/cjs/chunks/bundle-ZOmsvW3a.js.map +0 -1
  908. package/cjs/chunks/bundle-et2uTovT.js.map +0 -1
  909. package/cjs/chunks/bundle-lqC_6gBR.js.map +0 -1
  910. package/cjs/chunks/bundle-pph4vfaO.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import React__default, { createContext, useState, useCallback, useContext, useRef, useMemo, useEffect } from 'react';
1
+ import React__default, { createContext, useState, useCallback, useContext, useRef, useMemo, useLayoutEffect, useEffect } from 'react';
2
2
 
3
3
  var ComponentType;
4
4
  (function (ComponentType) {
@@ -7,15 +7,156 @@ var ComponentType;
7
7
  ComponentType["Image"] = "image";
8
8
  ComponentType["TextButton"] = "textButton";
9
9
  ComponentType["ImageButton"] = "imageButton";
10
+ ComponentType["Carousel"] = "carouselView";
10
11
  })(ComponentType || (ComponentType = {}));
11
- var CompositeComponentType;
12
- (function (CompositeComponentType) {
13
- CompositeComponentType["Carousel"] = "carouselView";
14
- })(CompositeComponentType || (CompositeComponentType = {}));
12
+
13
+ const outSingle$1 = (key, obj) => {
14
+ if (typeof obj[key] !== 'string')
15
+ return {};
16
+ return { [key]: argbToRgba(obj[key]) };
17
+ };
18
+ function argbToRgba(string) {
19
+ if (!string.startsWith('#')) {
20
+ return string;
21
+ }
22
+ if (string.length === 9) {
23
+ return `#${string.slice(3)}${string[1]}${string[2]}`;
24
+ }
25
+ if (string.length === 5) {
26
+ return `#${string.slice(2)}${string[1]}`;
27
+ }
28
+ return string;
29
+ }
30
+ const outViewStyle$1 = (viewStyle) => {
31
+ if (!viewStyle)
32
+ return {};
33
+ return {
34
+ viewStyle: Object.assign(Object.assign(Object.assign({}, viewStyle), outSingle$1('backgroundColor', viewStyle)), outSingle$1('borderColor', viewStyle)),
35
+ };
36
+ };
37
+ const outTextStyle$1 = (textStyle) => {
38
+ if (!textStyle)
39
+ return {};
40
+ return {
41
+ textStyle: Object.assign(Object.assign({}, textStyle), outSingle$1('color', textStyle)),
42
+ };
43
+ };
44
+ const outImageStyle = (imageStyle) => {
45
+ if (!imageStyle)
46
+ return {};
47
+ return {
48
+ imageStyle: Object.assign(Object.assign({}, imageStyle), outSingle$1('tintColor', imageStyle)),
49
+ };
50
+ };
51
+ const colorTransform = {
52
+ run(prop) {
53
+ if (prop.type === ComponentType.Text || prop.type === ComponentType.TextButton) {
54
+ return Object.assign(Object.assign(Object.assign({}, prop), outViewStyle$1(prop.viewStyle)), outTextStyle$1(prop.textStyle));
55
+ }
56
+ if (prop.type === ComponentType.ImageButton || prop.type === ComponentType.Image) {
57
+ return Object.assign(Object.assign(Object.assign({}, prop), outViewStyle$1(prop.viewStyle)), outImageStyle(prop.imageStyle));
58
+ }
59
+ return Object.assign(Object.assign({}, prop), outViewStyle$1(prop.viewStyle));
60
+ },
61
+ };
62
+
63
+ const isNumber = (val) => {
64
+ if (typeof val === 'string') {
65
+ return !Number.isNaN(Number(val));
66
+ }
67
+ return typeof val === 'number' && !Number.isNaN(val);
68
+ };
69
+ const outSingle = (key, obj) => {
70
+ if (obj[key] === undefined || obj[key] === null)
71
+ return {};
72
+ return isNumber(obj[key]) ? { [key]: Number(obj[key]) } : {};
73
+ };
74
+ const outSpacing = (key, spacing) => {
75
+ if (!spacing)
76
+ return {};
77
+ return {
78
+ [key]: {
79
+ left: isNumber(spacing.left) ? Number(spacing.left) : spacing.left,
80
+ right: isNumber(spacing.right) ? Number(spacing.right) : spacing.right,
81
+ top: isNumber(spacing.top) ? Number(spacing.top) : spacing.top,
82
+ bottom: isNumber(spacing.bottom) ? Number(spacing.bottom) : spacing.bottom,
83
+ },
84
+ };
85
+ };
86
+ const outSize = (key, size) => {
87
+ if (!size)
88
+ return {};
89
+ return {
90
+ [key]: {
91
+ type: size.type,
92
+ value: isNumber(size.value) ? Number(size.value) : size.value,
93
+ },
94
+ };
95
+ };
96
+ const outMetadata = (metaData) => {
97
+ if (!metaData)
98
+ return {};
99
+ return {
100
+ metaData: {
101
+ pixelWidth: isNumber(metaData.pixelWidth) ? Number(metaData.pixelWidth) : metaData.pixelWidth,
102
+ pixelHeight: isNumber(metaData.pixelHeight) ? Number(metaData.pixelHeight) : metaData.pixelHeight,
103
+ },
104
+ };
105
+ };
106
+ const outViewStyle = (viewStyle) => {
107
+ if (!viewStyle)
108
+ return {};
109
+ return {
110
+ viewStyle: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, viewStyle), outSingle('borderWidth', viewStyle)), outSingle('radius', viewStyle)), outSpacing('margin', viewStyle.margin)), outSpacing('padding', viewStyle.padding)),
111
+ };
112
+ };
113
+ const outTextStyle = (textStyle) => {
114
+ if (!textStyle)
115
+ return {};
116
+ return {
117
+ textStyle: Object.assign(Object.assign(Object.assign({}, textStyle), outSingle('size', textStyle)), outSingle('weight', textStyle)),
118
+ };
119
+ };
120
+ const outCarouselStyle = (carouselstyle) => {
121
+ if (!carouselstyle)
122
+ return {};
123
+ return {
124
+ carouselStyle: Object.assign(Object.assign({}, carouselstyle), outSingle('spacing', carouselstyle)),
125
+ };
126
+ };
127
+ const outViewProps = (view) => {
128
+ return Object.assign(Object.assign(Object.assign({}, outSize('width', view.width)), outSize('height', view.height)), outViewStyle(view.viewStyle));
129
+ };
130
+ const outTextProps = (text) => {
131
+ return Object.assign(Object.assign(Object.assign({}, outViewProps(text)), outTextStyle(text.textStyle)), outSingle('maxTextLines', text));
132
+ };
133
+ const outImageProps = (image) => {
134
+ return Object.assign(Object.assign({}, outViewProps(image)), outMetadata(image.metaData));
135
+ };
136
+ const outCarouselProps = (carousel) => {
137
+ return Object.assign(Object.assign(Object.assign({}, outViewProps(carousel)), outCarouselStyle(carousel.carouselStyle)), {
138
+ // Convert only top-level items to find has fill width values.
139
+ items: carousel.items.map((item) => (Object.assign(Object.assign({}, item), { body: Object.assign(Object.assign({}, item.body), { items: item.body.items.map((it) => numberTransform.run(it)) }) }))) });
140
+ };
141
+ const numberTransform = {
142
+ run(prop) {
143
+ if (prop.type === ComponentType.Text || prop.type === ComponentType.TextButton) {
144
+ return Object.assign(Object.assign({}, prop), outTextProps(prop));
145
+ }
146
+ if (prop.type === ComponentType.ImageButton || prop.type === ComponentType.Image) {
147
+ return Object.assign(Object.assign({}, prop), outImageProps(prop));
148
+ }
149
+ if (prop.type === ComponentType.Carousel) {
150
+ return Object.assign(Object.assign({}, prop), outCarouselProps(prop));
151
+ }
152
+ return Object.assign(Object.assign({}, prop), outViewProps(prop));
153
+ },
154
+ };
15
155
 
16
156
  // -------- Set property mapper
17
157
  const MAPPER = () => undefined;
18
158
  const createParser = (params) => {
159
+ var _a;
19
160
  const defaultMapper = (params === null || params === void 0 ? void 0 : params.defaultMapper) || MAPPER;
20
161
  const mapper = {
21
162
  defaultMapper,
@@ -26,31 +167,51 @@ const createParser = (params) => {
26
167
  mapImageButtonProps: (params === null || params === void 0 ? void 0 : params.mapImageButtonProps) || defaultMapper,
27
168
  mapCarouselProps: (params === null || params === void 0 ? void 0 : params.mapCarouselProps) || defaultMapper,
28
169
  };
29
- const transforms = (params === null || params === void 0 ? void 0 : params.transforms) || [];
170
+ const transforms = [colorTransform, numberTransform, ...((_a = params === null || params === void 0 ? void 0 : params.transforms) !== null && _a !== void 0 ? _a : [])];
171
+ const transformDirty = new Set();
30
172
  return {
173
+ setTransforms(newTransforms) {
174
+ transforms.length = 0;
175
+ transforms.push(...newTransforms);
176
+ transformDirty.clear();
177
+ },
178
+ addTransforms(newTransforms) {
179
+ transforms.push(...newTransforms);
180
+ },
31
181
  parse(rawItem, options) {
32
- const item = transforms.reduce((it, transform) => transform(it), rawItem);
182
+ // Note: it is for mutable transforms
183
+ // const uniqId =
184
+ // typeof options.depth === 'number' && typeof options.elemIdx === 'number'
185
+ // ? `id-${options.depth}-${options.elemIdx}`
186
+ // : rawItem.id ?? rawItem.elementId ?? JSON.stringify(rawItem);
187
+ //
188
+ // let item = rawItem;
189
+ // if (!transformDirty.has(uniqId)) {
190
+ // item = transforms.reduce((it, transform) => transform(it), rawItem);
191
+ // transformDirty.add(uniqId);
192
+ // }
193
+ const item = transforms.reduce((it, transform) => transform.run(it), rawItem);
33
194
  switch (item.type) {
34
195
  case ComponentType.Box: {
35
- return { properties: mapper.mapBoxProps(item, options) };
196
+ return { transformed: item, properties: mapper.mapBoxProps(item, options) };
36
197
  }
37
198
  case ComponentType.Text: {
38
- return { properties: mapper.mapTextProps(item, options) };
199
+ return { transformed: item, properties: mapper.mapTextProps(item, options) };
39
200
  }
40
201
  case ComponentType.Image: {
41
- return { properties: mapper.mapImageProps(item, options) };
202
+ return { transformed: item, properties: mapper.mapImageProps(item, options) };
42
203
  }
43
204
  case ComponentType.TextButton: {
44
- return { properties: mapper.mapTextButtonProps(item, options) };
205
+ return { transformed: item, properties: mapper.mapTextButtonProps(item, options) };
45
206
  }
46
207
  case ComponentType.ImageButton: {
47
- return { properties: mapper.mapImageButtonProps(item, options) };
208
+ return { transformed: item, properties: mapper.mapImageButtonProps(item, options) };
48
209
  }
49
- case CompositeComponentType.Carousel: {
50
- return { properties: mapper.mapCarouselProps(item, options) };
210
+ case ComponentType.Carousel: {
211
+ return { transformed: item, properties: mapper.mapCarouselProps(item, options) };
51
212
  }
52
213
  default:
53
- return { properties: undefined };
214
+ return { transformed: item, properties: undefined };
54
215
  }
55
216
  },
56
217
  };
@@ -69,7 +230,7 @@ function createRenderer(params) {
69
230
  };
70
231
  }
71
232
 
72
- var __rest$4 = (undefined && undefined.__rest) || function (s, e) {
233
+ var __rest$5 = (undefined && undefined.__rest) || function (s, e) {
73
234
  var t = {};
74
235
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
75
236
  t[p] = s[p];
@@ -87,7 +248,7 @@ const SizeContext = createContext({
87
248
  const SizeContextProvider = ({ children }) => {
88
249
  const [sizes, setSizes] = useState({});
89
250
  const updateSize = useCallback((_a) => {
90
- var { id } = _a, rest = __rest$4(_a, ["id"]);
251
+ var { id } = _a, rest = __rest$5(_a, ["id"]);
91
252
  if (id) {
92
253
  setSizes((prevSizes) => (Object.assign(Object.assign({}, prevSizes), { [id]: rest })));
93
254
  }
@@ -151,7 +312,7 @@ const alignInFlex = (align) => {
151
312
  const isTemplateVersionSupported = (templateVersion) => {
152
313
  if (!templateVersion)
153
314
  return true;
154
- return SUPPORTED_TEMPLATE_VERSIONS.includes(templateVersion);
315
+ return SUPPORTED_TEMPLATE_VERSIONS.includes(Number(templateVersion));
155
316
  };
156
317
 
157
318
  const memoize = (fn) => {
@@ -195,6 +356,15 @@ const defaultProperties = {
195
356
  layout: Layout.Row,
196
357
  align: { vertical: AlignValue.Top, horizontal: AlignValue.Left },
197
358
  },
359
+ textButton: {
360
+ maxTextLines: 1,
361
+ },
362
+ carousel: {
363
+ style: {
364
+ spacing: 10,
365
+ maxChildWidth: 240,
366
+ },
367
+ },
198
368
  };
199
369
 
200
370
  const createMessageTemplate = (opts) => {
@@ -202,42 +372,41 @@ const createMessageTemplate = (opts) => {
202
372
  const UnknownMessage = opts.UnknownMessage || (() => null);
203
373
  const parser = opts.parser || createParser();
204
374
  const renderer = opts.renderer || createRenderer();
205
- const MessageTemplateBase = ({ templateItems, parentLayout = defaultProperties.box.layout, isRoot = false, }) => {
206
- const renderItems = templateItems;
207
- return (React__default.createElement(React__default.Fragment, null, renderItems.map((item, index, siblings) => {
208
- const { properties } = parser.parse(item, { parentLayout, elemIdx: index, siblings });
209
- const props = {
375
+ const MessageTemplateBase = ({ templateItems, templateVersion, parentLayout = defaultProperties.box.layout, depth = 0, }) => {
376
+ if (!isTemplateVersionSupported(templateVersion)) {
377
+ throw new Error(`Cannot parse template item due to unsupported template version: ${templateVersion}, ${SUPPORTED_TEMPLATE_VERSIONS}`);
378
+ }
379
+ return (React__default.createElement(React__default.Fragment, null, templateItems.map((rawItem, index, siblings) => {
380
+ const result = parser.parse(rawItem, { parentLayout, depth, elemIdx: index, siblings });
381
+ const item = result.transformed;
382
+ const rendererProps = {
210
383
  key: index,
211
- parentLayout,
212
- parsedProperties: properties,
213
384
  siblings,
385
+ parentLayout,
386
+ parsedProperties: result.properties,
214
387
  };
215
388
  switch (item.type) {
216
- // CompositeComponent should be top level component
217
- case CompositeComponentType.Carousel: {
218
- if (!isRoot) {
219
- throw new Error('Cannot parse template item as Carousel if the template item is not the root.');
220
- }
221
- if (!item.items || !Array.isArray(item.items) || item.items.length === 0) {
389
+ case ComponentType.Carousel: {
390
+ if (!Array.isArray(item.items) || item.items.length === 0) {
222
391
  throw new Error('Cannot parse template item as Carousel if carousel has no items.');
223
392
  }
224
- return (React__default.createElement(renderer.carouselView, Object.assign({}, item, props), item.items.map((items, index) => (React__default.createElement(MessageTemplateBase, { key: index, templateItems: items || [], parentLayout: parentLayout })))));
393
+ return (React__default.createElement(renderer.carouselView, Object.assign({}, item, rendererProps), item.items.map((template, index) => (React__default.createElement(MessageTemplateBase, { key: index, templateItems: template.body.items || [], depth: depth + 1, templateVersion: template.version })))));
225
394
  }
226
395
  case ComponentType.Box: {
227
- return (React__default.createElement(renderer.box, Object.assign({}, item, props),
228
- React__default.createElement(MessageTemplateBase, { templateItems: item.items || [], parentLayout: item.layout })));
396
+ return (React__default.createElement(renderer.box, Object.assign({}, item, rendererProps),
397
+ React__default.createElement(MessageTemplateBase, { templateItems: item.items || [], parentLayout: item.layout, depth: depth + 1, templateVersion: templateVersion })));
229
398
  }
230
399
  case ComponentType.Text: {
231
- return React__default.createElement(renderer.text, Object.assign({}, item, props));
400
+ return React__default.createElement(renderer.text, Object.assign({}, item, rendererProps));
232
401
  }
233
402
  case ComponentType.Image: {
234
- return React__default.createElement(renderer.image, Object.assign({}, item, props));
403
+ return React__default.createElement(renderer.image, Object.assign({}, item, rendererProps));
235
404
  }
236
405
  case ComponentType.TextButton: {
237
- return React__default.createElement(renderer.textButton, Object.assign({}, item, props));
406
+ return React__default.createElement(renderer.textButton, Object.assign({}, item, rendererProps));
238
407
  }
239
408
  case ComponentType.ImageButton: {
240
- return React__default.createElement(renderer.imageButton, Object.assign({}, item, props));
409
+ return React__default.createElement(renderer.imageButton, Object.assign({}, item, rendererProps));
241
410
  }
242
411
  default: {
243
412
  // or throw new Error('Cannot parse template item')
@@ -247,21 +416,11 @@ const createMessageTemplate = (opts) => {
247
416
  })));
248
417
  };
249
418
  return {
250
- MessageTemplate: ({ parentLayout = defaultProperties.rootLayout, templateVersion, templateItems, }) => {
419
+ MessageTemplate: ({ templateVersion, templateItems, parentLayout = defaultProperties.rootLayout, }) => {
251
420
  const items = setTemplateItemId(templateItems);
252
- if (!isTemplateVersionSupported(templateVersion)) {
253
- /**
254
- * I choose to throw instead of returning UnknownMessage because UnknownMessage syntax (required prop: item) is not what UIKit wants.
255
- */
256
- throw new Error(`Cannot parse template item due to unsupported template version: ${templateVersion}, ${SUPPORTED_TEMPLATE_VERSIONS}`);
257
- }
258
- let isCarousel = false;
259
- if (Array.isArray(items) && items.length > 0) {
260
- isCarousel = items[0].type === CompositeComponentType.Carousel;
261
- }
262
421
  return (React__default.createElement(SizeContextProvider, null,
263
- React__default.createElement(Container, { className: isCarousel ? 'sb-message-template__parent_for_carousel' : '' },
264
- React__default.createElement(MessageTemplateBase, { parentLayout: parentLayout, templateItems: items, isRoot: true }))));
422
+ React__default.createElement(Container, null,
423
+ React__default.createElement(MessageTemplateBase, { isRoot: true, parentLayout: parentLayout, templateItems: items, templateVersion: templateVersion }))));
265
424
  },
266
425
  MessageTemplateBase,
267
426
  };
@@ -1125,67 +1284,102 @@ var ActionType;
1125
1284
  },
1126
1285
  });
1127
1286
 
1128
- const PADDING_WIDTH = 24;
1129
- const CONTENT_LEFT_WIDTH = 40;
1130
- const SWIPE_THRESHOLD = 15;
1131
- const GAP_DEFAULT = 8;
1132
- /**
1133
- * fixed sized template items should use its child width.
1134
- * Whereas flex sized template items should use its parent's width.
1135
- * @param item
1136
- */
1137
- function shouldRenderAsFixed(item) {
1138
- var _a;
1139
- return ((_a = item.props.templateItems[0].width) === null || _a === void 0 ? void 0 : _a.type) === 'fixed';
1140
- }
1141
- function CarouselItem({ item, defaultWidth, marginRight }) {
1142
- const style = shouldRenderAsFixed(item)
1143
- ? { width: 'fit-content' }
1144
- : { minWidth: defaultWidth, width: '100%' };
1145
- if (marginRight) {
1146
- style['marginRight'] = marginRight;
1147
- }
1148
- return React__default.createElement("div", { style: style }, item);
1149
- }
1150
- const Carousel = React__default.memo(({ children, gap = GAP_DEFAULT }) => {
1151
- var _a, _b;
1287
+ const SWIPE_THRESHOLD = 24;
1288
+ function useCarousel({ spacing, childrenLength, paddingInlineStart, paddingInlineEnd }) {
1289
+ // TODO: RTL support
1290
+ const paddingStart = paddingInlineStart;
1291
+ const paddingEnd = paddingInlineEnd;
1152
1292
  const carouselRef = useRef(null);
1153
- const screenWidth = window.innerWidth;
1154
- const defaultItemWidth = (_b = (_a = carouselRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : 0;
1155
- const itemWidths = children.map((item) => {
1156
- var _a;
1157
- if (shouldRenderAsFixed(item)) {
1158
- return Number((_a = item.props.templateItems[0].width) === null || _a === void 0 ? void 0 : _a.value);
1159
- }
1160
- return defaultItemWidth;
1161
- });
1162
- const itemPositions = getEachItemPositions();
1163
- const [draggingInfo, setDraggingInfo] = useState({
1164
- scrolling: false,
1165
- dragging: false,
1166
- startPos: null,
1293
+ const childrenRefs = useRef(Array.from({ length: childrenLength }, () => React__default.createRef()));
1294
+ const isDragging = useRef(false);
1295
+ const isScrolling = useRef(false);
1296
+ const animationFrame = useRef(null);
1297
+ const drag = useRef({
1298
+ sx: null,
1299
+ sy: null,
1167
1300
  offset: 0,
1168
1301
  translateX: 0,
1169
1302
  currentIndex: 0,
1170
1303
  });
1171
- const handleMouseDown = (event) => {
1172
- setDraggingInfo((props) => (Object.assign(Object.assign({}, props), { scrolling: false, dragging: true, startPos: {
1173
- x: event.clientX,
1174
- y: event.clientY,
1175
- }, offset: 0 })));
1176
- };
1177
- const handleMouseMove = (event) => {
1178
- if (!draggingInfo.dragging || !draggingInfo.startPos)
1304
+ const [childWidths, setChildWidths] = useState(() => childrenRefs.current.map(() => 0));
1305
+ const itemPositions = useMemo(() => {
1306
+ let currentPosition = paddingStart;
1307
+ return childWidths.map((width, i) => {
1308
+ const start = currentPosition - (i > 0 ? spacing : 0);
1309
+ const end = start - width;
1310
+ currentPosition = end;
1311
+ return { start, end };
1312
+ });
1313
+ }, [childWidths, spacing, paddingStart]);
1314
+ const totalContentWidth = useMemo(() => {
1315
+ const totalItemWidth = childWidths.reduce((acc, width) => acc + width, 0);
1316
+ const totalSpacing = spacing * (childrenLength - 1);
1317
+ return totalItemWidth + totalSpacing;
1318
+ }, [childWidths, spacing, childrenLength]);
1319
+ useLayoutEffect(() => {
1320
+ setChildWidths(childrenRefs.current.map((ref) => { var _a, _b; return (_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : 0; }));
1321
+ }, [childrenLength]);
1322
+ useLayoutEffect(() => {
1323
+ if (itemPositions.length > 0) {
1324
+ drag.current.translateX = itemPositions[0].start;
1325
+ animate();
1326
+ }
1327
+ }, [itemPositions]);
1328
+ const dragStart = () => {
1329
+ if (!carouselRef.current)
1179
1330
  return;
1180
- const currentX = event.clientX;
1181
- const newOffset = currentX - draggingInfo.startPos.x;
1182
- setDraggingInfo(Object.assign(Object.assign({}, draggingInfo), { offset: newOffset }));
1331
+ isDragging.current = true;
1332
+ carouselRef.current.style.cursor = 'grabbing';
1333
+ carouselRef.current.style.transition = 'none';
1334
+ animationFrame.current = requestAnimationFrame(animate);
1183
1335
  };
1184
- const handleMouseUp = () => {
1185
- if (!draggingInfo.dragging)
1336
+ const dragStop = () => {
1337
+ if (!carouselRef.current)
1186
1338
  return;
1187
- handleDragEnd();
1188
- unblockScroll();
1339
+ isDragging.current = false;
1340
+ carouselRef.current.style.cursor = 'grab';
1341
+ carouselRef.current.style.transition = 'transform 0.5s ease';
1342
+ if (animationFrame.current) {
1343
+ cancelAnimationFrame(animationFrame.current);
1344
+ animationFrame.current = null;
1345
+ }
1346
+ };
1347
+ const dragRelease = () => {
1348
+ const { offset, currentIndex } = drag.current;
1349
+ const thresholdExceeded = Math.abs(offset) >= SWIPE_THRESHOLD;
1350
+ const swipeToNext = offset < 0 && currentIndex < childrenLength - 1;
1351
+ const swipeToPrev = offset > 0 && currentIndex > 0;
1352
+ let newIndex = currentIndex;
1353
+ if (thresholdExceeded && swipeToNext) {
1354
+ newIndex = currentIndex + 1;
1355
+ }
1356
+ else if (thresholdExceeded && swipeToPrev) {
1357
+ newIndex = currentIndex - 1;
1358
+ }
1359
+ function clampTranslateX(translateX) {
1360
+ var _a, _b;
1361
+ const containerWidth = (_b = (_a = carouselRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : 0;
1362
+ const start = paddingStart;
1363
+ const end = Math.min(0, containerWidth - totalContentWidth) - paddingEnd;
1364
+ return Math.min(start, Math.max(end, translateX));
1365
+ }
1366
+ drag.current.currentIndex = newIndex;
1367
+ drag.current.translateX = clampTranslateX(itemPositions[newIndex].start);
1368
+ drag.current.offset = 0;
1369
+ };
1370
+ const scrollStart = () => {
1371
+ isScrolling.current = true;
1372
+ };
1373
+ const scrollStop = () => {
1374
+ isScrolling.current = false;
1375
+ };
1376
+ const animate = () => {
1377
+ if (carouselRef.current) {
1378
+ carouselRef.current.style.transform = `translateX(${drag.current.translateX + drag.current.offset}px)`;
1379
+ }
1380
+ if (animationFrame.current) {
1381
+ animationFrame.current = requestAnimationFrame(animate);
1382
+ }
1189
1383
  };
1190
1384
  const blockScroll = () => {
1191
1385
  if (carouselRef.current) {
@@ -1197,115 +1391,116 @@ const Carousel = React__default.memo(({ children, gap = GAP_DEFAULT }) => {
1197
1391
  carouselRef.current.style.touchAction = 'pan-y';
1198
1392
  }
1199
1393
  };
1200
- const handleTouchStart = (event) => {
1201
- setDraggingInfo((props) => (Object.assign(Object.assign({}, props), { scrolling: false, dragging: false, startPos: {
1202
- x: event.touches[0].clientX,
1203
- y: event.touches[0].clientY,
1204
- }, offset: 0 })));
1394
+ const onMouseDown = (event) => {
1395
+ dragStart();
1396
+ scrollStop();
1397
+ drag.current.sx = event.clientX;
1398
+ drag.current.sy = event.clientY;
1399
+ drag.current.offset = 0;
1400
+ animationFrame.current = requestAnimationFrame(animate);
1205
1401
  };
1206
- const handleTouchMove = (event) => {
1207
- if (!draggingInfo.startPos || draggingInfo.scrolling)
1402
+ const onMouseMove = (event) => {
1403
+ if (!isDragging.current || drag.current.sx === null)
1208
1404
  return;
1209
- const startPos = draggingInfo.startPos;
1210
- const [touchMoveX, touchMoveY] = [event.touches[0].clientX, event.touches[0].clientY];
1211
- const [deltaX, deltaY] = [Math.abs(touchMoveX - startPos.x), Math.abs(touchMoveY - startPos.y)];
1212
- const newOffset = touchMoveX - startPos.x;
1213
- if (draggingInfo.dragging) {
1214
- if (newOffset === draggingInfo.offset)
1215
- return;
1216
- setDraggingInfo((props) => (Object.assign(Object.assign({}, props), { offset: newOffset })));
1405
+ drag.current.offset = event.clientX - drag.current.sx;
1406
+ };
1407
+ const onMouseUp = () => {
1408
+ if (!isDragging.current)
1217
1409
  return;
1218
- }
1219
- if (deltaY > deltaX) {
1220
- setDraggingInfo((props) => (Object.assign(Object.assign({}, props), { scrolling: true })));
1221
- }
1222
- else {
1223
- blockScroll();
1224
- setDraggingInfo((props) => (Object.assign(Object.assign({}, props), { dragging: true, offset: newOffset })));
1225
- }
1410
+ scrollStop();
1411
+ dragRelease();
1412
+ dragStop();
1226
1413
  };
1227
- const handleTouchEnd = () => {
1228
- if (!draggingInfo.dragging)
1414
+ const onMouseLeave = () => {
1415
+ if (!isDragging.current)
1229
1416
  return;
1230
- handleDragEnd();
1231
- unblockScroll();
1417
+ scrollStop();
1418
+ dragRelease();
1419
+ dragStop();
1232
1420
  };
1233
- const getNewDraggingInfo = ({ translateX, currentIndex, newTranslateX, nextIndex, }) => {
1234
- return {
1235
- scrolling: false,
1236
- dragging: false,
1237
- startPos: null,
1238
- offset: 0,
1239
- translateX: newTranslateX !== null && newTranslateX !== void 0 ? newTranslateX : translateX,
1240
- currentIndex: nextIndex !== null && nextIndex !== void 0 ? nextIndex : currentIndex,
1241
- };
1421
+ const onTouchStart = (event) => {
1422
+ scrollStop();
1423
+ dragStop();
1424
+ const touch = event.touches[0];
1425
+ drag.current.sx = touch.clientX;
1426
+ drag.current.sy = touch.clientY;
1427
+ drag.current.offset = 0;
1428
+ animationFrame.current = requestAnimationFrame(animate);
1242
1429
  };
1243
- const handleDragEnd = () => {
1244
- const { offset, currentIndex } = draggingInfo;
1245
- const absOffset = Math.abs(offset);
1246
- if (absOffset < SWIPE_THRESHOLD) {
1247
- setDraggingInfo((props) => getNewDraggingInfo(props));
1430
+ const onTouchMove = (event) => {
1431
+ if (drag.current.sx === null || drag.current.sy === null || isScrolling.current)
1432
+ return;
1433
+ const { clientX, clientY } = event.touches[0];
1434
+ const { sx, sy } = drag.current;
1435
+ if (isDragging.current) {
1436
+ drag.current.offset = clientX - sx;
1248
1437
  return;
1249
1438
  }
1250
- // If dragged to left, next index should be to the right
1251
- if (offset < 0 && currentIndex < children.length - 1) {
1252
- if (isLastItemFitsScreen(currentIndex)) {
1253
- setDraggingInfo((props) => getNewDraggingInfo(props));
1254
- return;
1255
- }
1256
- const nextIndex = currentIndex + 1;
1257
- /**
1258
- * This is special logic for "더 보기" button for Socar use-case.
1259
- * The button will have a small width (less than 50px).
1260
- * We want to include this button in the view and snap to right padding wall IFF !isLastTwoItemsFitScreen.
1261
- */
1262
- if (nextIndex === children.length - 1 || isLastItemFitsScreen(nextIndex)) {
1263
- setDraggingInfo((props) => getNewDraggingInfo(Object.assign(Object.assign({}, props), { newTranslateX: itemPositions[children.length - 1].end - PADDING_WIDTH - CONTENT_LEFT_WIDTH + screenWidth, nextIndex: children.length - 1 })));
1264
- }
1265
- else {
1266
- setDraggingInfo((props) => getNewDraggingInfo(Object.assign(Object.assign({}, props), { newTranslateX: itemPositions[nextIndex].start, nextIndex })));
1267
- }
1268
- // If dragged to right, next index should be to the left
1269
- }
1270
- else if (offset > 0 && currentIndex > 0) {
1271
- let nextIndex = currentIndex - 1;
1272
- while (draggingInfo.translateX >= itemPositions[nextIndex].start) {
1273
- nextIndex--;
1274
- }
1275
- setDraggingInfo((props) => getNewDraggingInfo(Object.assign(Object.assign({}, props), { newTranslateX: itemPositions[nextIndex].start, nextIndex })));
1439
+ const isVerticalScroll = Math.abs(clientY - sy) > Math.abs(clientX - sx);
1440
+ if (isVerticalScroll) {
1441
+ scrollStart();
1276
1442
  }
1277
1443
  else {
1278
- setDraggingInfo((props) => getNewDraggingInfo(props));
1444
+ drag.current.offset = clientX - sx;
1445
+ blockScroll();
1446
+ dragStart();
1279
1447
  }
1280
1448
  };
1281
- function getCurrentTranslateX() {
1282
- return draggingInfo.translateX + draggingInfo.offset;
1283
- }
1284
- function isLastItemFitsScreen(nextIndex) {
1285
- const restItemsWidth = itemWidths.slice(nextIndex).reduce((prev, curr) => prev + gap + curr);
1286
- const restTotalWidth = PADDING_WIDTH + CONTENT_LEFT_WIDTH + restItemsWidth;
1287
- return restTotalWidth <= screenWidth;
1288
- }
1289
- function getEachItemPositions() {
1290
- let accumulator = 0;
1291
- return itemWidths.map((itemWidth, i) => {
1292
- if (i > 0) {
1293
- accumulator -= gap;
1294
- }
1295
- const itemPosition = {
1296
- start: accumulator,
1297
- end: accumulator - itemWidth,
1298
- };
1299
- accumulator -= itemWidth;
1300
- return itemPosition;
1301
- });
1302
- }
1303
- return (React__default.createElement("div", { ref: carouselRef, onMouseDown: handleMouseDown, onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, onMouseLeave: handleMouseUp, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, className: "sb-message-template__carousel", style: {
1304
- cursor: draggingInfo.dragging ? 'grabbing' : 'grab',
1305
- transition: draggingInfo.dragging ? 'none' : 'transform 0.5s ease',
1306
- transform: `translateX(${getCurrentTranslateX()}px)`,
1307
- } }, children.map((item, index) => (React__default.createElement(CarouselItem, { key: index + '', item: item, defaultWidth: defaultItemWidth + 'px', marginRight: index < children.length - 1 ? gap : undefined })))));
1449
+ const onTouchEnd = () => {
1450
+ unblockScroll();
1451
+ scrollStop();
1452
+ dragRelease();
1453
+ dragStop();
1454
+ };
1455
+ return {
1456
+ carouselRef,
1457
+ childrenRefs,
1458
+ handlers: {
1459
+ onMouseDown,
1460
+ onMouseMove,
1461
+ onMouseUp,
1462
+ onMouseLeave,
1463
+ onTouchStart,
1464
+ onTouchMove,
1465
+ onTouchEnd,
1466
+ },
1467
+ };
1468
+ }
1469
+
1470
+ var __rest$4 = (undefined && undefined.__rest) || function (s, e) {
1471
+ var t = {};
1472
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1473
+ t[p] = s[p];
1474
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
1475
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1476
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1477
+ t[p[i]] = s[p[i]];
1478
+ }
1479
+ return t;
1480
+ };
1481
+ const Carousel = ({ children, style, spacing = defaultProperties.carousel.style.spacing, maxChildWidth = defaultProperties.carousel.style.maxChildWidth, }) => {
1482
+ const _a = style !== null && style !== void 0 ? style : {}, { paddingInlineStart = 0, paddingInlineEnd = 0 } = _a, restStyle = __rest$4(_a, ["paddingInlineStart", "paddingInlineEnd"]);
1483
+ const { carouselRef, childrenRefs, handlers } = useCarousel({
1484
+ spacing,
1485
+ childrenLength: children.length,
1486
+ paddingInlineStart: Number(paddingInlineStart),
1487
+ paddingInlineEnd: Number(paddingInlineEnd),
1488
+ });
1489
+ return (React__default.createElement("div", Object.assign({}, handlers, { ref: carouselRef, className: 'sb-message-template__carousel', style: Object.assign(Object.assign({}, restStyle), { gap: spacing, width: '100%', overflow: 'visible' }) }), children.map((item, index) => (React__default.createElement(CarouselChild, { ref: childrenRefs.current[index], key: index, maxChildWidth: maxChildWidth }, item)))));
1490
+ };
1491
+ const CarouselChild = React__default.forwardRef(function CarouselChild({ maxChildWidth, children }, ref) {
1492
+ const maxWidth = shouldSetMaxChildWidth(children.props, maxChildWidth) ? maxChildWidth : 'fit-content';
1493
+ return (React__default.createElement("div", { ref: ref, style: { maxWidth, width: '100%', flexShrink: 0, overflow: 'hidden', userSelect: 'none' } }, children));
1308
1494
  });
1495
+ // Note: Set the maxChildWidth because it's impossible to determine the maximum width of items in the Carousel Child template when they have FillParent
1496
+ function shouldSetMaxChildWidth(props, maxChildWidth) {
1497
+ return !!props.templateItems.find((it) => {
1498
+ var _a, _b, _c, _d;
1499
+ const hasFillWidth = ((_a = it.width) === null || _a === void 0 ? void 0 : _a.type) === 'flex' && ((_b = it.width) === null || _b === void 0 ? void 0 : _b.value) === FlexSizeSpecValue.FillParent;
1500
+ const overMaxChildWidth = ((_c = it.width) === null || _c === void 0 ? void 0 : _c.type) === 'fixed' && ((_d = it.width) === null || _d === void 0 ? void 0 : _d.value) >= maxChildWidth;
1501
+ return hasFillWidth || overMaxChildWidth;
1502
+ });
1503
+ }
1309
1504
 
1310
1505
  function isWrappedText(view) {
1311
1506
  var _a;
@@ -1328,12 +1523,6 @@ const isGif = (url) => {
1328
1523
  const extension = (_a = url.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
1329
1524
  return extension === 'gif';
1330
1525
  };
1331
- const isNumber = (val) => {
1332
- if (typeof val === 'string') {
1333
- return !Number.isNaN(Number(val));
1334
- }
1335
- return typeof val === 'number' && !Number.isNaN(val);
1336
- };
1337
1526
 
1338
1527
  var __rest$3 = (undefined && undefined.__rest) || function (s, e) {
1339
1528
  var t = {};
@@ -1457,6 +1646,151 @@ const useImageLoadError = (source) => {
1457
1646
  };
1458
1647
  };
1459
1648
 
1649
+ function getDefaultStyles(overrides) {
1650
+ return Object.assign({ display: 'flex', overflow: 'hidden', boxSizing: 'border-box' }, overrides);
1651
+ }
1652
+ function setViewProps(styles, props, options) {
1653
+ setViewSize(styles, props, options);
1654
+ setViewStyle(styles, props);
1655
+ }
1656
+ function setBorderStyle(styles, borderWidth, borderColor, radius) {
1657
+ if (borderWidth) {
1658
+ styles['--border-width'] = `${borderWidth}px`;
1659
+ styles['--border-color'] = borderColor || 'transparent';
1660
+ }
1661
+ if (radius) {
1662
+ styles['borderRadius'] = radius;
1663
+ styles['--border-radius'] = `${radius}px`;
1664
+ }
1665
+ }
1666
+ function setViewStyle(styles, props) {
1667
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1668
+ const { viewStyle } = props;
1669
+ styles['marginBlockStart'] = (_a = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _a === void 0 ? void 0 : _a.top;
1670
+ styles['marginBlockEnd'] = (_b = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _b === void 0 ? void 0 : _b.bottom;
1671
+ styles['marginInlineStart'] = (_c = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _c === void 0 ? void 0 : _c.left;
1672
+ styles['marginInlineEnd'] = (_d = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _d === void 0 ? void 0 : _d.right;
1673
+ const marginHorizontal = ((_f = (_e = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _e === void 0 ? void 0 : _e.left) !== null && _f !== void 0 ? _f : 0) + ((_h = (_g = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _g === void 0 ? void 0 : _g.right) !== null && _h !== void 0 ? _h : 0);
1674
+ if (marginHorizontal > 0 && styles.width === '100%')
1675
+ styles.width = `calc(100% - ${marginHorizontal}px)`;
1676
+ if (viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.backgroundColor)
1677
+ styles['backgroundColor'] = viewStyle.backgroundColor;
1678
+ // use JSON.stringify to escape special characters in image URL
1679
+ if (viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.backgroundImageUrl) {
1680
+ styles['backgroundImage'] = `url(${JSON.stringify(viewStyle.backgroundImageUrl)})`;
1681
+ styles['backgroundSize'] = '100% 100%';
1682
+ styles['backgroundPosition'] = 'center';
1683
+ }
1684
+ setBorderStyle(styles, viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.borderWidth, viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.borderColor, viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.radius);
1685
+ }
1686
+ function getViewSizeStyle(width, height, parentLayout) {
1687
+ const style = {};
1688
+ if (width.type === 'flex' && width.value == FlexSizeSpecValue.FillParent) {
1689
+ style['width'] = '100%';
1690
+ if (parentLayout === Layout.Row) {
1691
+ style['flex'] = 1;
1692
+ }
1693
+ }
1694
+ else if (width.type === 'fixed' && width.value >= 0) {
1695
+ style['width'] = width.value;
1696
+ }
1697
+ if (height.type === 'flex' && height.value == FlexSizeSpecValue.FillParent) {
1698
+ style['height'] = '100%';
1699
+ if (parentLayout === Layout.Column) {
1700
+ style['flex'] = 1;
1701
+ }
1702
+ }
1703
+ else if (height.type === 'fixed' && height.value >= 0) {
1704
+ style['height'] = height.value;
1705
+ }
1706
+ return style;
1707
+ }
1708
+ function setViewSize(styles, props, options) {
1709
+ var _a, _b;
1710
+ const { width: defaultWidth, height: defaultHeight } = defaultProperties.view.size;
1711
+ const { parentLayout } = options;
1712
+ const sizeStyle = getViewSizeStyle((_a = props.width) !== null && _a !== void 0 ? _a : defaultWidth, (_b = props.height) !== null && _b !== void 0 ? _b : defaultHeight, parentLayout);
1713
+ Object.assign(styles, sizeStyle);
1714
+ }
1715
+ function setAlign(styles, layout = defaultProperties.box.layout, align = defaultProperties.box.align) {
1716
+ if (layout === Layout.Row) {
1717
+ styles['flexDirection'] = 'row';
1718
+ styles['alignItems'] = alignInFlex(align.vertical);
1719
+ styles['justifyContent'] = alignInFlex(align.horizontal);
1720
+ }
1721
+ if (layout === Layout.Column) {
1722
+ styles['flexDirection'] = 'column';
1723
+ styles['alignItems'] = alignInFlex(align.horizontal);
1724
+ styles['justifyContent'] = alignInFlex(align.vertical);
1725
+ }
1726
+ }
1727
+ function setTextAlign(styles, align = defaultProperties.box.align.horizontal) {
1728
+ styles.textAlign = align;
1729
+ }
1730
+ function setImageStyle(styles, imageStyle) {
1731
+ const { contentMode = MediaContentMode.AspectFit } = imageStyle || {};
1732
+ if (contentMode) {
1733
+ switch (contentMode) {
1734
+ case MediaContentMode.AspectFill:
1735
+ styles['objectFit'] = 'cover';
1736
+ break;
1737
+ case MediaContentMode.AspectFit:
1738
+ styles['objectFit'] = 'contain';
1739
+ break;
1740
+ case MediaContentMode.ScalesToFill:
1741
+ styles['objectFit'] = 'fill';
1742
+ break;
1743
+ }
1744
+ }
1745
+ }
1746
+ // uses image meta-data to render images that doesn't break the UI
1747
+ // https://sendbird.atlassian.net/wiki/spaces/UK/pages/2008220608/Message+template+-+Image+policy
1748
+ function setImageAspectRatio(styles, props) {
1749
+ var _a, _b, _c, _d;
1750
+ const imageMetaData = props === null || props === void 0 ? void 0 : props.metaData;
1751
+ if (!(imageMetaData === null || imageMetaData === void 0 ? void 0 : imageMetaData.pixelHeight) || !(imageMetaData === null || imageMetaData === void 0 ? void 0 : imageMetaData.pixelWidth)) {
1752
+ return;
1753
+ }
1754
+ if (((_a = props === null || props === void 0 ? void 0 : props.width) === null || _a === void 0 ? void 0 : _a.type) === 'fixed' || ((_b = props === null || props === void 0 ? void 0 : props.height) === null || _b === void 0 ? void 0 : _b.type) === 'fixed') {
1755
+ return;
1756
+ }
1757
+ styles['aspectRatio'] = `${(_c = props === null || props === void 0 ? void 0 : props.metaData) === null || _c === void 0 ? void 0 : _c.pixelWidth} / ${(_d = props === null || props === void 0 ? void 0 : props.metaData) === null || _d === void 0 ? void 0 : _d.pixelHeight}`;
1758
+ }
1759
+ function webkitLineClampStyles(numberOfLines) {
1760
+ return {
1761
+ WebkitLineClamp: numberOfLines,
1762
+ WebkitBoxOrient: 'vertical',
1763
+ display: '-webkit-box',
1764
+ overflow: 'hidden',
1765
+ overflowWrap: 'anywhere',
1766
+ flex: 1,
1767
+ };
1768
+ }
1769
+ function setTextStyle(styles, props, options) {
1770
+ const { textStyle, width } = props;
1771
+ // TODO: Change default as design
1772
+ const { size, color, weight } = textStyle || {};
1773
+ if (size)
1774
+ styles['fontSize'] = size;
1775
+ if (color)
1776
+ styles['color'] = color;
1777
+ if (weight)
1778
+ styles['fontWeight'] = weight;
1779
+ if ((width === null || width === void 0 ? void 0 : width.type) === 'flex' && (width === null || width === void 0 ? void 0 : width.value) == FlexSizeSpecValue.WrapContent) {
1780
+ styles['width'] = 'fit-content';
1781
+ styles['maxWidth'] = '100%';
1782
+ }
1783
+ if (props.type === ComponentType.Text) {
1784
+ const { siblings, elemIdx } = options;
1785
+ // To push out any subsequent components from the container,
1786
+ // if a prior one is long enough to occupy an entire line
1787
+ // @link https://sendbird.atlassian.net/browse/NOTI-709
1788
+ if (siblings != null && siblings.length >= 2 && siblings.every(isWrappedText)) {
1789
+ styles.flexShrink = siblings.length - 1 === elemIdx ? 1 : 0;
1790
+ }
1791
+ }
1792
+ }
1793
+
1460
1794
  // create a context provider for MessageComponent
1461
1795
  // - this is a wrapper for MessageComponent
1462
1796
  const MessageContext = React__default.createContext(null);
@@ -1470,7 +1804,13 @@ const MessageProvider = (props) => {
1470
1804
  }), [message === null || message === void 0 ? void 0 : message.updatedAt]);
1471
1805
  return React__default.createElement(MessageContext.Provider, { value: value }, children);
1472
1806
  };
1473
- const useMessageContext = () => React__default.useContext(MessageContext);
1807
+ const useMessageContext = () => {
1808
+ const context = React__default.useContext(MessageContext);
1809
+ if (!context) {
1810
+ throw new Error('useMessageContext must be used within a MessageProvider');
1811
+ }
1812
+ return context;
1813
+ };
1474
1814
 
1475
1815
  /**
1476
1816
  * Preserves a reference to the given callback function as an argument while the component is mounted.
@@ -1666,167 +2006,6 @@ function useRecalculateWidth(params) {
1666
2006
  return { recalculatedStyle: currentStyle, elemRef };
1667
2007
  }
1668
2008
 
1669
- function getDefaultStyles(overrides) {
1670
- return Object.assign({ display: 'flex', overflow: 'hidden', boxSizing: 'border-box' }, overrides);
1671
- }
1672
- function setViewProps(styles, props, options) {
1673
- var _a;
1674
- setViewSize(styles, props, options);
1675
- setViewStyle(styles, props);
1676
- // [Padding] Just parse the values as numbers; the actual value has been set in the ActionHandler.
1677
- if ((_a = props.viewStyle) === null || _a === void 0 ? void 0 : _a.padding) {
1678
- const padding = props.viewStyle.padding;
1679
- if (isNumber(padding.top))
1680
- padding.top = Number(padding.top);
1681
- if (isNumber(padding.bottom))
1682
- padding.bottom = Number(padding.bottom);
1683
- if (isNumber(padding.left))
1684
- padding.left = Number(padding.left);
1685
- if (isNumber(padding.right))
1686
- padding.right = Number(padding.right);
1687
- }
1688
- }
1689
- function setBorderStyle(styles, borderWidth, borderColor, radius) {
1690
- if (borderWidth) {
1691
- styles['--border-width'] = `${borderWidth}px`;
1692
- styles['--border-color'] = borderColor || 'transparent';
1693
- }
1694
- if (radius) {
1695
- styles['borderRadius'] = Number(radius);
1696
- styles['--border-radius'] = `${radius}px`;
1697
- }
1698
- }
1699
- function setViewStyle(styles, props) {
1700
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1701
- const { viewStyle } = props;
1702
- if (isNumber((_a = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _a === void 0 ? void 0 : _a.top))
1703
- styles['marginTop'] = Number((_b = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _b === void 0 ? void 0 : _b.top);
1704
- if (isNumber((_c = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _c === void 0 ? void 0 : _c.bottom))
1705
- styles['marginBottom'] = Number((_d = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _d === void 0 ? void 0 : _d.bottom);
1706
- if (isNumber((_e = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _e === void 0 ? void 0 : _e.left))
1707
- styles['marginLeft'] = Number((_f = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _f === void 0 ? void 0 : _f.left);
1708
- if (isNumber((_g = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _g === void 0 ? void 0 : _g.right))
1709
- styles['marginRight'] = Number((_h = viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.margin) === null || _h === void 0 ? void 0 : _h.right);
1710
- const marginHorizontal = Number((_j = styles.marginLeft) !== null && _j !== void 0 ? _j : '0') + Number((_k = styles.marginRight) !== null && _k !== void 0 ? _k : '0');
1711
- if (marginHorizontal > 0 && styles.width === '100%')
1712
- styles.width = `calc(100% - ${marginHorizontal}px)`;
1713
- if (viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.backgroundColor)
1714
- styles['backgroundColor'] = viewStyle.backgroundColor;
1715
- // use JSON.stringify to escape special characters in image URL
1716
- if (viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.backgroundImageUrl) {
1717
- styles['backgroundImage'] = `url(${JSON.stringify(viewStyle.backgroundImageUrl)})`;
1718
- styles['backgroundSize'] = '100%';
1719
- styles['backgroundPosition'] = 'center';
1720
- }
1721
- setBorderStyle(styles, viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.borderWidth, viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.borderColor, viewStyle === null || viewStyle === void 0 ? void 0 : viewStyle.radius);
1722
- }
1723
- function getViewSizeStyle(width, height, parentLayout) {
1724
- const style = {};
1725
- if (width.type === 'flex' && width.value == FlexSizeSpecValue.FillParent) {
1726
- style['width'] = '100%';
1727
- if (parentLayout === Layout.Row) {
1728
- style['flex'] = 1;
1729
- }
1730
- }
1731
- else if (width.type === 'fixed' && width.value >= 0) {
1732
- style['width'] = Number(width.value);
1733
- }
1734
- if (height.type === 'flex' && height.value == FlexSizeSpecValue.FillParent) {
1735
- style['height'] = '100%';
1736
- if (parentLayout === Layout.Column) {
1737
- style['flex'] = 1;
1738
- }
1739
- }
1740
- else if (height.type === 'fixed' && height.value >= 0) {
1741
- style['height'] = Number(height.value);
1742
- }
1743
- return style;
1744
- }
1745
- function setViewSize(styles, props, options) {
1746
- var _a, _b;
1747
- const { width: defaultWidth, height: defaultHeight } = defaultProperties.view.size;
1748
- const { parentLayout } = options;
1749
- const sizeStyle = getViewSizeStyle((_a = props.width) !== null && _a !== void 0 ? _a : defaultWidth, (_b = props.height) !== null && _b !== void 0 ? _b : defaultHeight, parentLayout);
1750
- Object.assign(styles, sizeStyle);
1751
- }
1752
- function setAlign(styles, layout = defaultProperties.box.layout, align = defaultProperties.box.align) {
1753
- if (layout === Layout.Row) {
1754
- styles['flexDirection'] = 'row';
1755
- styles['alignItems'] = alignInFlex(align.vertical);
1756
- styles['justifyContent'] = alignInFlex(align.horizontal);
1757
- }
1758
- if (layout === Layout.Column) {
1759
- styles['flexDirection'] = 'column';
1760
- styles['alignItems'] = alignInFlex(align.horizontal);
1761
- styles['justifyContent'] = alignInFlex(align.vertical);
1762
- }
1763
- }
1764
- function setTextAlign(styles, align = defaultProperties.box.align.horizontal) {
1765
- styles.textAlign = align;
1766
- }
1767
- function setImageStyle(styles, imageStyle) {
1768
- const { contentMode = MediaContentMode.AspectFit } = imageStyle || {};
1769
- if (contentMode) {
1770
- switch (contentMode) {
1771
- case MediaContentMode.AspectFill:
1772
- styles['objectFit'] = 'cover';
1773
- break;
1774
- case MediaContentMode.AspectFit:
1775
- styles['objectFit'] = 'contain';
1776
- break;
1777
- case MediaContentMode.ScalesToFill:
1778
- styles['objectFit'] = 'fill';
1779
- break;
1780
- }
1781
- }
1782
- }
1783
- // uses image meta-data to render images that doesn't break the UI
1784
- // https://sendbird.atlassian.net/wiki/spaces/UK/pages/2008220608/Message+template+-+Image+policy
1785
- function setImageAspectRatio(styles, props) {
1786
- var _a, _b, _c, _d;
1787
- const imageMetaData = props === null || props === void 0 ? void 0 : props.metaData;
1788
- if (!(imageMetaData === null || imageMetaData === void 0 ? void 0 : imageMetaData.pixelHeight) || !(imageMetaData === null || imageMetaData === void 0 ? void 0 : imageMetaData.pixelWidth)) {
1789
- return;
1790
- }
1791
- if (((_a = props === null || props === void 0 ? void 0 : props.width) === null || _a === void 0 ? void 0 : _a.type) === 'fixed' || ((_b = props === null || props === void 0 ? void 0 : props.height) === null || _b === void 0 ? void 0 : _b.type) === 'fixed') {
1792
- return;
1793
- }
1794
- styles['aspectRatio'] = `${(_c = props === null || props === void 0 ? void 0 : props.metaData) === null || _c === void 0 ? void 0 : _c.pixelWidth} / ${(_d = props === null || props === void 0 ? void 0 : props.metaData) === null || _d === void 0 ? void 0 : _d.pixelHeight}`;
1795
- }
1796
- function webkitLineClampStyles(numberOfLines) {
1797
- return {
1798
- WebkitLineClamp: numberOfLines,
1799
- WebkitBoxOrient: 'vertical',
1800
- display: '-webkit-box',
1801
- overflow: 'hidden',
1802
- overflowWrap: 'anywhere',
1803
- flex: 1,
1804
- };
1805
- }
1806
- function setTextStyle(styles, props, options) {
1807
- const { textStyle, width } = props;
1808
- // TODO: Change default as design
1809
- const { size, color, weight = 'normal' } = textStyle || {};
1810
- if (size)
1811
- styles['fontSize'] = Number(size);
1812
- if (color)
1813
- styles['color'] = color;
1814
- if (weight)
1815
- styles['fontWeight'] = weight;
1816
- if ((width === null || width === void 0 ? void 0 : width.value) == FlexSizeSpecValue.WrapContent) {
1817
- styles['maxWidth'] = '100%';
1818
- }
1819
- if (props.type === ComponentType.Text) {
1820
- const { siblings, elemIdx } = options;
1821
- // To push out any subsequent components from the container,
1822
- // if a prior one is long enough to occupy an entire line
1823
- // @link https://sendbird.atlassian.net/browse/NOTI-709
1824
- if (siblings != null && siblings.length >= 2 && siblings.every(isWrappedText)) {
1825
- styles.flexShrink = siblings.length - 1 === elemIdx ? 1 : 0;
1826
- }
1827
- }
1828
- }
1829
-
1830
2009
  var __rest = (undefined && undefined.__rest) || function (s, e) {
1831
2010
  var t = {};
1832
2011
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -1855,13 +2034,20 @@ const returnUrl = (url = '') => {
1855
2034
  return `https://${url}`;
1856
2035
  };
1857
2036
  // todo: semantic html here is not perfect, need to revisit. Same for Button
1858
- const ActionHandler = ({ className = '', style, children, props }) => {
1859
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
2037
+ const ActionHandler = ({ children, props, className, style }) => {
2038
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1860
2039
  const { recalculatedStyle, elemRef } = useRecalculateWidth({ style, props });
1861
2040
  const { message, handleWebAction, handleCustomAction, handlePredefinedAction } = useMessageContext();
2041
+ const borderClass = ((_a = props.viewStyle) === null || _a === void 0 ? void 0 : _a.borderWidth) ? 'sb-message-template__border' : '';
2042
+ const paddingStyles = {
2043
+ paddingBlockStart: (_c = (_b = props.viewStyle) === null || _b === void 0 ? void 0 : _b.padding) === null || _c === void 0 ? void 0 : _c.top,
2044
+ paddingBlockEnd: (_e = (_d = props.viewStyle) === null || _d === void 0 ? void 0 : _d.padding) === null || _e === void 0 ? void 0 : _e.bottom,
2045
+ paddingInlineStart: (_g = (_f = props.viewStyle) === null || _f === void 0 ? void 0 : _f.padding) === null || _g === void 0 ? void 0 : _g.left,
2046
+ paddingInlineEnd: (_j = (_h = props.viewStyle) === null || _h === void 0 ? void 0 : _h.padding) === null || _j === void 0 ? void 0 : _j.right,
2047
+ };
1862
2048
  const onClick = (e) => {
1863
2049
  var _a, _b, _c, _d, _e, _f, _g;
1864
- if (((_a = props === null || props === void 0 ? void 0 : props.action) === null || _a === void 0 ? void 0 : _a.type) === 'web') {
2050
+ if (((_a = props.action) === null || _a === void 0 ? void 0 : _a.type) === 'web') {
1865
2051
  if (handleWebAction) {
1866
2052
  handleWebAction(e, props.action, message);
1867
2053
  }
@@ -1869,7 +2055,7 @@ const ActionHandler = ({ className = '', style, children, props }) => {
1869
2055
  (_c = window === null || window === void 0 ? void 0 : window.open(returnUrl((_b = props === null || props === void 0 ? void 0 : props.action) === null || _b === void 0 ? void 0 : _b.data), '_blank', 'noopener noreferrer')) === null || _c === void 0 ? void 0 : _c.focus();
1870
2056
  }
1871
2057
  }
1872
- if (((_d = props === null || props === void 0 ? void 0 : props.action) === null || _d === void 0 ? void 0 : _d.type) === 'custom') {
2058
+ else if (((_d = props.action) === null || _d === void 0 ? void 0 : _d.type) === 'custom') {
1873
2059
  if (handleCustomAction) {
1874
2060
  handleCustomAction(e, props.action, message);
1875
2061
  }
@@ -1877,30 +2063,25 @@ const ActionHandler = ({ className = '', style, children, props }) => {
1877
2063
  (_f = window === null || window === void 0 ? void 0 : window.open(returnUrl((_e = props === null || props === void 0 ? void 0 : props.action) === null || _e === void 0 ? void 0 : _e.data), '_blank', 'noopener noreferrer')) === null || _f === void 0 ? void 0 : _f.focus();
1878
2064
  }
1879
2065
  }
1880
- if (((_g = props === null || props === void 0 ? void 0 : props.action) === null || _g === void 0 ? void 0 : _g.type) === 'uikit') {
2066
+ else if (((_g = props.action) === null || _g === void 0 ? void 0 : _g.type) === 'uikit') {
1881
2067
  handlePredefinedAction === null || handlePredefinedAction === void 0 ? void 0 : handlePredefinedAction(e, props.action, message);
1882
2068
  }
1883
2069
  };
1884
- const borderClass = ((_a = props.viewStyle) === null || _a === void 0 ? void 0 : _a.borderWidth) ? ' sb-message-template__border' : '';
1885
- if (className === 'sb-message-template__text-button') {
1886
- return (React__default.createElement("button", { className: `${className}${borderClass}`, "data-sb-template-id": props.elementId, style: Object.assign(Object.assign({}, style), { paddingTop: (_c = (_b = props.viewStyle) === null || _b === void 0 ? void 0 : _b.padding) === null || _c === void 0 ? void 0 : _c.top, paddingRight: (_e = (_d = props.viewStyle) === null || _d === void 0 ? void 0 : _d.padding) === null || _e === void 0 ? void 0 : _e.right, paddingBottom: (_g = (_f = props.viewStyle) === null || _f === void 0 ? void 0 : _f.padding) === null || _g === void 0 ? void 0 : _g.bottom, paddingLeft: (_j = (_h = props.viewStyle) === null || _h === void 0 ? void 0 : _h.padding) === null || _j === void 0 ? void 0 : _j.left }), onClick: onClick }, children));
2070
+ if (props.type === ComponentType.TextButton) {
2071
+ return (React__default.createElement("button", { className: clx(className, borderClass), "data-sb-template-id": props.elementId, style: Object.assign(Object.assign({}, style), paddingStyles), onClick: onClick }, children));
1887
2072
  }
1888
2073
  const { display, flexDirection, justifyContent, alignItems, objectFit } = recalculatedStyle, wrapperStyles = __rest(recalculatedStyle, ["display", "flexDirection", "justifyContent", "alignItems", "objectFit"]);
1889
- return (React__default.createElement("div", { ref: elemRef, className: `${className}${borderClass} ${(props === null || props === void 0 ? void 0 : props.action) ? 'sb-message-template__action' : ''}`, "data-sb-template-id": props.elementId, style: wrapperStyles, onClick: onClick },
1890
- React__default.createElement("div", { style: {
1891
- display,
2074
+ return (React__default.createElement("div", { ref: elemRef, className: clx(className, borderClass, props.action && 'sb-message-template__action'), "data-sb-template-id": props.elementId, style: wrapperStyles, onClick: onClick },
2075
+ React__default.createElement("div", { style: Object.assign({ display,
1892
2076
  flexDirection,
1893
2077
  justifyContent,
1894
2078
  alignItems,
1895
- objectFit,
1896
- width: '100%',
1897
- height: '100%',
1898
- paddingTop: (_l = (_k = props.viewStyle) === null || _k === void 0 ? void 0 : _k.padding) === null || _l === void 0 ? void 0 : _l.top,
1899
- paddingRight: (_o = (_m = props.viewStyle) === null || _m === void 0 ? void 0 : _m.padding) === null || _o === void 0 ? void 0 : _o.right,
1900
- paddingBottom: (_q = (_p = props.viewStyle) === null || _p === void 0 ? void 0 : _p.padding) === null || _q === void 0 ? void 0 : _q.bottom,
1901
- paddingLeft: (_s = (_r = props.viewStyle) === null || _r === void 0 ? void 0 : _r.padding) === null || _s === void 0 ? void 0 : _s.left,
1902
- } }, children)));
2079
+ objectFit, width: '100%', height: '100%' }, paddingStyles) }, children)));
1903
2080
  };
2081
+ function clx(...names) {
2082
+ return names.filter((it) => !!it).join(' ');
2083
+ }
2084
+
1904
2085
  /**
1905
2086
  * Text that is fixed or fill parent should be wrapped in a div with max-width: 100% and max-height: 100%
1906
2087
  * This is to prevent text from overflowing the padding of the container
@@ -1922,13 +2103,13 @@ function convertNewlinesToBr(text) {
1922
2103
  function renderText(view) {
1923
2104
  const { text, maxTextLines } = view;
1924
2105
  const isToBeWrapped = isFixedOrFill(view);
1925
- const isMultiLine = maxTextLines != null && maxTextLines > 0;
2106
+ const hasMaxLines = typeof maxTextLines === 'number' && maxTextLines > 0;
1926
2107
  const convertedText = convertNewlinesToBr(text);
1927
- if (isMultiLine || isToBeWrapped) {
1928
- const wrapperStyling = Object.assign(Object.assign({}, ((isMultiLine || isToBeWrapped) && { maxWidth: '100%' })), (isToBeWrapped && { maxHeight: '100%', overflow: 'hidden' }));
1929
- return (React__default.createElement("div", { style: wrapperStyling }, isMultiLine ? React__default.createElement("div", { style: webkitLineClampStyles(maxTextLines) }, convertedText) : convertedText));
2108
+ if (hasMaxLines || isToBeWrapped) {
2109
+ const wrapperStyling = Object.assign(Object.assign({}, ((hasMaxLines || isToBeWrapped) && { maxWidth: '100%' })), (isToBeWrapped && { maxHeight: '100%', overflow: 'hidden' }));
2110
+ return (React__default.createElement("div", { style: wrapperStyling }, hasMaxLines ? React__default.createElement("div", { style: webkitLineClampStyles(maxTextLines) }, convertedText) : convertedText));
1930
2111
  }
1931
- return isMultiLine ? React__default.createElement("div", { style: webkitLineClampStyles(maxTextLines) }, convertedText) : convertedText;
2112
+ return hasMaxLines ? React__default.createElement("div", { style: webkitLineClampStyles(maxTextLines) }, convertedText) : convertedText;
1932
2113
  }
1933
2114
  const renderer = createRenderer({
1934
2115
  views: {
@@ -1945,7 +2126,7 @@ const renderer = createRenderer({
1945
2126
  React__default.createElement(ReactMessageTemplateImage, { className: "sb-message-template__image", alt: "image", src: props.imageUrl, style: { width: '100%', height: '100%', aspectRatio: 'inherit', objectFit: 'inherit' }, tintColor: (_a = props.imageStyle) === null || _a === void 0 ? void 0 : _a.tintColor, metaData: props.metaData })));
1946
2127
  },
1947
2128
  textButton(props) {
1948
- return (React__default.createElement(ActionHandler, { className: "sb-message-template__text-button", elementId: props.elementId, style: props.parsedProperties, props: props }, renderText(Object.assign({ maxTextLines: 1 }, props))));
2129
+ return (React__default.createElement(ActionHandler, { className: "sb-message-template__text-button", elementId: props.elementId, style: props.parsedProperties, props: props }, renderText(Object.assign({ maxTextLines: defaultProperties.textButton.maxTextLines }, props))));
1949
2130
  },
1950
2131
  imageButton(props) {
1951
2132
  var _a;
@@ -1953,7 +2134,8 @@ const renderer = createRenderer({
1953
2134
  React__default.createElement(ReactMessageTemplateImage, { className: "sb-message-template__image", alt: "image-button", src: props.imageUrl, style: { width: '100%', height: '100%', aspectRatio: 'inherit', objectFit: 'inherit' }, tintColor: (_a = props.imageStyle) === null || _a === void 0 ? void 0 : _a.tintColor, metaData: props.metaData })));
1954
2135
  },
1955
2136
  carouselView(props) {
1956
- return React__default.createElement(Carousel, { gap: props.spacing }, props.children);
2137
+ var _a, _b;
2138
+ return (React__default.createElement(Carousel, { maxChildWidth: (_a = props.carouselStyle) === null || _a === void 0 ? void 0 : _a.maxChildWidth, spacing: (_b = props.carouselStyle) === null || _b === void 0 ? void 0 : _b.spacing, style: props.parsedProperties }, props.children));
1957
2139
  },
1958
2140
  },
1959
2141
  });
@@ -1966,7 +2148,7 @@ const parser = createParser({
1966
2148
  },
1967
2149
  mapTextProps(props, options) {
1968
2150
  var _a;
1969
- const styles = getDefaultStyles({ whiteSpace: 'pre-line' });
2151
+ const styles = getDefaultStyles({ whiteSpace: 'pre-line', wordBreak: 'break-word' });
1970
2152
  // Better not set flex 1 to text
1971
2153
  setViewProps(styles, props, options);
1972
2154
  setTextStyle(styles, props, options);
@@ -1984,7 +2166,7 @@ const parser = createParser({
1984
2166
  mapTextButtonProps(props, options) {
1985
2167
  const styles = getDefaultStyles({ whiteSpace: 'pre-line', alignItems: 'center', justifyContent: 'center' });
1986
2168
  setViewProps(styles, props, options);
1987
- setTextStyle(styles, Object.assign(Object.assign({}, props), { textStyle: Object.assign({ weight: 500 }, props.textStyle) }), options);
2169
+ setTextStyle(styles, props, options);
1988
2170
  return styles;
1989
2171
  },
1990
2172
  mapImageButtonProps(props, options) {
@@ -1995,8 +2177,13 @@ const parser = createParser({
1995
2177
  return styles;
1996
2178
  },
1997
2179
  mapCarouselProps(props, options) {
2180
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1998
2181
  const styles = getDefaultStyles();
1999
2182
  setViewProps(styles, props, options);
2183
+ styles['paddingBlockStart'] = (_b = (_a = props.viewStyle) === null || _a === void 0 ? void 0 : _a.padding) === null || _b === void 0 ? void 0 : _b.top;
2184
+ styles['paddingBlockEnd'] = (_d = (_c = props.viewStyle) === null || _c === void 0 ? void 0 : _c.padding) === null || _d === void 0 ? void 0 : _d.bottom;
2185
+ styles['paddingInlineStart'] = (_f = (_e = props.viewStyle) === null || _e === void 0 ? void 0 : _e.padding) === null || _f === void 0 ? void 0 : _f.left;
2186
+ styles['paddingInlineEnd'] = (_h = (_g = props.viewStyle) === null || _g === void 0 ? void 0 : _g.padding) === null || _h === void 0 ? void 0 : _h.right;
2000
2187
  return styles;
2001
2188
  },
2002
2189
  });
@@ -2008,7 +2195,7 @@ createMessageTemplate({
2008
2195
  display: 'flex',
2009
2196
  flexDirection: 'column',
2010
2197
  maxWidth: 400,
2011
- marginBottom: 24,
2198
+ marginBlockEnd: 24,
2012
2199
  } }, children));
2013
2200
  },
2014
2201
  });
@@ -2029,5 +2216,5 @@ function MessageTemplate(_a) {
2029
2216
  return React__default.createElement(CustomTemplate, { templateItems: templateItems, templateVersion: templateVersion });
2030
2217
  }
2031
2218
 
2032
- export { CompositeComponentType as C, MessageProvider as M, MessageTemplate as a };
2033
- //# sourceMappingURL=bundle-zxooGkqM.js.map
2219
+ export { MessageProvider as M, MessageTemplate as a };
2220
+ //# sourceMappingURL=bundle-KNrNIKZQ.js.map