@sendbird/uikit-react-native-foundation 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (815) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/lib/commonjs/assets/bundle-icons.js +33 -0
  4. package/lib/commonjs/assets/bundle-icons.js.map +1 -0
  5. package/lib/commonjs/assets/icon/ic-chat-hide.png +0 -0
  6. package/lib/commonjs/assets/icon/ic-chat-hide@2x.png +0 -0
  7. package/lib/commonjs/assets/icon/ic-chat-hide@3x.png +0 -0
  8. package/lib/commonjs/assets/icon/ic-chat-show.png +0 -0
  9. package/lib/commonjs/assets/icon/ic-chat-show@2x.png +0 -0
  10. package/lib/commonjs/assets/icon/ic-chat-show@3x.png +0 -0
  11. package/lib/commonjs/assets/icon/icon-add.png +0 -0
  12. package/lib/commonjs/assets/icon/icon-add@2x.png +0 -0
  13. package/lib/commonjs/assets/icon/icon-add@3x.png +0 -0
  14. package/lib/commonjs/assets/icon/icon-archive.png +0 -0
  15. package/lib/commonjs/assets/icon/icon-archive@2x.png +0 -0
  16. package/lib/commonjs/assets/icon/icon-archive@3x.png +0 -0
  17. package/lib/commonjs/assets/icon/icon-arrow-left.png +0 -0
  18. package/lib/commonjs/assets/icon/icon-arrow-left@2x.png +0 -0
  19. package/lib/commonjs/assets/icon/icon-arrow-left@3x.png +0 -0
  20. package/lib/commonjs/assets/icon/icon-ban.png +0 -0
  21. package/lib/commonjs/assets/icon/icon-ban@2x.png +0 -0
  22. package/lib/commonjs/assets/icon/icon-ban@3x.png +0 -0
  23. package/lib/commonjs/assets/icon/icon-broadcast.png +0 -0
  24. package/lib/commonjs/assets/icon/icon-broadcast@2x.png +0 -0
  25. package/lib/commonjs/assets/icon/icon-broadcast@3x.png +0 -0
  26. package/lib/commonjs/assets/icon/icon-camera.png +0 -0
  27. package/lib/commonjs/assets/icon/icon-camera@2x.png +0 -0
  28. package/lib/commonjs/assets/icon/icon-camera@3x.png +0 -0
  29. package/lib/commonjs/assets/icon/icon-channels.png +0 -0
  30. package/lib/commonjs/assets/icon/icon-channels@2x.png +0 -0
  31. package/lib/commonjs/assets/icon/icon-channels@3x.png +0 -0
  32. package/lib/commonjs/assets/icon/icon-chat-filled.png +0 -0
  33. package/lib/commonjs/assets/icon/icon-chat-filled@2x.png +0 -0
  34. package/lib/commonjs/assets/icon/icon-chat-filled@3x.png +0 -0
  35. package/lib/commonjs/assets/icon/icon-chat.png +0 -0
  36. package/lib/commonjs/assets/icon/icon-chat@2x.png +0 -0
  37. package/lib/commonjs/assets/icon/icon-chat@3x.png +0 -0
  38. package/lib/commonjs/assets/icon/icon-checkbox-off.png +0 -0
  39. package/lib/commonjs/assets/icon/icon-checkbox-off@2x.png +0 -0
  40. package/lib/commonjs/assets/icon/icon-checkbox-off@3x.png +0 -0
  41. package/lib/commonjs/assets/icon/icon-checkbox-on.png +0 -0
  42. package/lib/commonjs/assets/icon/icon-checkbox-on@2x.png +0 -0
  43. package/lib/commonjs/assets/icon/icon-checkbox-on@3x.png +0 -0
  44. package/lib/commonjs/assets/icon/icon-chevron-down.png +0 -0
  45. package/lib/commonjs/assets/icon/icon-chevron-down@2x.png +0 -0
  46. package/lib/commonjs/assets/icon/icon-chevron-down@3x.png +0 -0
  47. package/lib/commonjs/assets/icon/icon-chevron-right.png +0 -0
  48. package/lib/commonjs/assets/icon/icon-chevron-right@2x.png +0 -0
  49. package/lib/commonjs/assets/icon/icon-chevron-right@3x.png +0 -0
  50. package/lib/commonjs/assets/icon/icon-close.png +0 -0
  51. package/lib/commonjs/assets/icon/icon-close@2x.png +0 -0
  52. package/lib/commonjs/assets/icon/icon-close@3x.png +0 -0
  53. package/lib/commonjs/assets/icon/icon-copy.png +0 -0
  54. package/lib/commonjs/assets/icon/icon-copy@2x.png +0 -0
  55. package/lib/commonjs/assets/icon/icon-copy@3x.png +0 -0
  56. package/lib/commonjs/assets/icon/icon-create.png +0 -0
  57. package/lib/commonjs/assets/icon/icon-create@2x.png +0 -0
  58. package/lib/commonjs/assets/icon/icon-create@3x.png +0 -0
  59. package/lib/commonjs/assets/icon/icon-delete.png +0 -0
  60. package/lib/commonjs/assets/icon/icon-delete@2x.png +0 -0
  61. package/lib/commonjs/assets/icon/icon-delete@3x.png +0 -0
  62. package/lib/commonjs/assets/icon/icon-document.png +0 -0
  63. package/lib/commonjs/assets/icon/icon-document@2x.png +0 -0
  64. package/lib/commonjs/assets/icon/icon-document@3x.png +0 -0
  65. package/lib/commonjs/assets/icon/icon-done-all.png +0 -0
  66. package/lib/commonjs/assets/icon/icon-done-all@2x.png +0 -0
  67. package/lib/commonjs/assets/icon/icon-done-all@3x.png +0 -0
  68. package/lib/commonjs/assets/icon/icon-done.png +0 -0
  69. package/lib/commonjs/assets/icon/icon-done@2x.png +0 -0
  70. package/lib/commonjs/assets/icon/icon-done@3x.png +0 -0
  71. package/lib/commonjs/assets/icon/icon-download.png +0 -0
  72. package/lib/commonjs/assets/icon/icon-download@2x.png +0 -0
  73. package/lib/commonjs/assets/icon/icon-download@3x.png +0 -0
  74. package/lib/commonjs/assets/icon/icon-edit.png +0 -0
  75. package/lib/commonjs/assets/icon/icon-edit@2x.png +0 -0
  76. package/lib/commonjs/assets/icon/icon-edit@3x.png +0 -0
  77. package/lib/commonjs/assets/icon/icon-emoji-more.png +0 -0
  78. package/lib/commonjs/assets/icon/icon-emoji-more@2x.png +0 -0
  79. package/lib/commonjs/assets/icon/icon-emoji-more@3x.png +0 -0
  80. package/lib/commonjs/assets/icon/icon-error.png +0 -0
  81. package/lib/commonjs/assets/icon/icon-error@2x.png +0 -0
  82. package/lib/commonjs/assets/icon/icon-error@3x.png +0 -0
  83. package/lib/commonjs/assets/icon/icon-file-audio.png +0 -0
  84. package/lib/commonjs/assets/icon/icon-file-audio@2x.png +0 -0
  85. package/lib/commonjs/assets/icon/icon-file-audio@3x.png +0 -0
  86. package/lib/commonjs/assets/icon/icon-file-document.png +0 -0
  87. package/lib/commonjs/assets/icon/icon-file-document@2x.png +0 -0
  88. package/lib/commonjs/assets/icon/icon-file-document@3x.png +0 -0
  89. package/lib/commonjs/assets/icon/icon-freeze.png +0 -0
  90. package/lib/commonjs/assets/icon/icon-freeze@2x.png +0 -0
  91. package/lib/commonjs/assets/icon/icon-freeze@3x.png +0 -0
  92. package/lib/commonjs/assets/icon/icon-gif.png +0 -0
  93. package/lib/commonjs/assets/icon/icon-gif@2x.png +0 -0
  94. package/lib/commonjs/assets/icon/icon-gif@3x.png +0 -0
  95. package/lib/commonjs/assets/icon/icon-info.png +0 -0
  96. package/lib/commonjs/assets/icon/icon-info@2x.png +0 -0
  97. package/lib/commonjs/assets/icon/icon-info@3x.png +0 -0
  98. package/lib/commonjs/assets/icon/icon-leave.png +0 -0
  99. package/lib/commonjs/assets/icon/icon-leave@2x.png +0 -0
  100. package/lib/commonjs/assets/icon/icon-leave@3x.png +0 -0
  101. package/lib/commonjs/assets/icon/icon-members.png +0 -0
  102. package/lib/commonjs/assets/icon/icon-members@2x.png +0 -0
  103. package/lib/commonjs/assets/icon/icon-members@3x.png +0 -0
  104. package/lib/commonjs/assets/icon/icon-message.png +0 -0
  105. package/lib/commonjs/assets/icon/icon-message@2x.png +0 -0
  106. package/lib/commonjs/assets/icon/icon-message@3x.png +0 -0
  107. package/lib/commonjs/assets/icon/icon-moderations.png +0 -0
  108. package/lib/commonjs/assets/icon/icon-moderations@2x.png +0 -0
  109. package/lib/commonjs/assets/icon/icon-moderations@3x.png +0 -0
  110. package/lib/commonjs/assets/icon/icon-more.png +0 -0
  111. package/lib/commonjs/assets/icon/icon-more@2x.png +0 -0
  112. package/lib/commonjs/assets/icon/icon-more@3x.png +0 -0
  113. package/lib/commonjs/assets/icon/icon-mute.png +0 -0
  114. package/lib/commonjs/assets/icon/icon-mute@2x.png +0 -0
  115. package/lib/commonjs/assets/icon/icon-mute@3x.png +0 -0
  116. package/lib/commonjs/assets/icon/icon-notifications-filled.png +0 -0
  117. package/lib/commonjs/assets/icon/icon-notifications-filled@2x.png +0 -0
  118. package/lib/commonjs/assets/icon/icon-notifications-filled@3x.png +0 -0
  119. package/lib/commonjs/assets/icon/icon-notifications-off-filled.png +0 -0
  120. package/lib/commonjs/assets/icon/icon-notifications-off-filled@2x.png +0 -0
  121. package/lib/commonjs/assets/icon/icon-notifications-off-filled@3x.png +0 -0
  122. package/lib/commonjs/assets/icon/icon-notifications.png +0 -0
  123. package/lib/commonjs/assets/icon/icon-notifications@2x.png +0 -0
  124. package/lib/commonjs/assets/icon/icon-notifications@3x.png +0 -0
  125. package/lib/commonjs/assets/icon/icon-operator.png +0 -0
  126. package/lib/commonjs/assets/icon/icon-operator@2x.png +0 -0
  127. package/lib/commonjs/assets/icon/icon-operator@3x.png +0 -0
  128. package/lib/commonjs/assets/icon/icon-photo.png +0 -0
  129. package/lib/commonjs/assets/icon/icon-photo@2x.png +0 -0
  130. package/lib/commonjs/assets/icon/icon-photo@3x.png +0 -0
  131. package/lib/commonjs/assets/icon/icon-play.png +0 -0
  132. package/lib/commonjs/assets/icon/icon-play@2x.png +0 -0
  133. package/lib/commonjs/assets/icon/icon-play@3x.png +0 -0
  134. package/lib/commonjs/assets/icon/icon-plus.png +0 -0
  135. package/lib/commonjs/assets/icon/icon-plus@2x.png +0 -0
  136. package/lib/commonjs/assets/icon/icon-plus@3x.png +0 -0
  137. package/lib/commonjs/assets/icon/icon-question.png +0 -0
  138. package/lib/commonjs/assets/icon/icon-question@2x.png +0 -0
  139. package/lib/commonjs/assets/icon/icon-question@3x.png +0 -0
  140. package/lib/commonjs/assets/icon/icon-refresh.png +0 -0
  141. package/lib/commonjs/assets/icon/icon-refresh@2x.png +0 -0
  142. package/lib/commonjs/assets/icon/icon-refresh@3x.png +0 -0
  143. package/lib/commonjs/assets/icon/icon-remove.png +0 -0
  144. package/lib/commonjs/assets/icon/icon-remove@2x.png +0 -0
  145. package/lib/commonjs/assets/icon/icon-remove@3x.png +0 -0
  146. package/lib/commonjs/assets/icon/icon-reply-filled.png +0 -0
  147. package/lib/commonjs/assets/icon/icon-reply-filled@2x.png +0 -0
  148. package/lib/commonjs/assets/icon/icon-reply-filled@3x.png +0 -0
  149. package/lib/commonjs/assets/icon/icon-reply.png +0 -0
  150. package/lib/commonjs/assets/icon/icon-reply@2x.png +0 -0
  151. package/lib/commonjs/assets/icon/icon-reply@3x.png +0 -0
  152. package/lib/commonjs/assets/icon/icon-search.png +0 -0
  153. package/lib/commonjs/assets/icon/icon-search@2x.png +0 -0
  154. package/lib/commonjs/assets/icon/icon-search@3x.png +0 -0
  155. package/lib/commonjs/assets/icon/icon-send.png +0 -0
  156. package/lib/commonjs/assets/icon/icon-send@2x.png +0 -0
  157. package/lib/commonjs/assets/icon/icon-send@3x.png +0 -0
  158. package/lib/commonjs/assets/icon/icon-settings-filled.png +0 -0
  159. package/lib/commonjs/assets/icon/icon-settings-filled@2x.png +0 -0
  160. package/lib/commonjs/assets/icon/icon-settings-filled@3x.png +0 -0
  161. package/lib/commonjs/assets/icon/icon-spinner.png +0 -0
  162. package/lib/commonjs/assets/icon/icon-spinner@2x.png +0 -0
  163. package/lib/commonjs/assets/icon/icon-spinner@3x.png +0 -0
  164. package/lib/commonjs/assets/icon/icon-streaming.png +0 -0
  165. package/lib/commonjs/assets/icon/icon-streaming@2x.png +0 -0
  166. package/lib/commonjs/assets/icon/icon-streaming@3x.png +0 -0
  167. package/lib/commonjs/assets/icon/icon-supergroup.png +0 -0
  168. package/lib/commonjs/assets/icon/icon-supergroup@2x.png +0 -0
  169. package/lib/commonjs/assets/icon/icon-supergroup@3x.png +0 -0
  170. package/lib/commonjs/assets/icon/icon-theme.png +0 -0
  171. package/lib/commonjs/assets/icon/icon-theme@2x.png +0 -0
  172. package/lib/commonjs/assets/icon/icon-theme@3x.png +0 -0
  173. package/lib/commonjs/assets/icon/icon-thumbnail-none.png +0 -0
  174. package/lib/commonjs/assets/icon/icon-thumbnail-none@2x.png +0 -0
  175. package/lib/commonjs/assets/icon/icon-thumbnail-none@3x.png +0 -0
  176. package/lib/commonjs/assets/icon/icon-unarchive.png +0 -0
  177. package/lib/commonjs/assets/icon/icon-unarchive@2x.png +0 -0
  178. package/lib/commonjs/assets/icon/icon-unarchive@3x.png +0 -0
  179. package/lib/commonjs/assets/icon/icon-user.png +0 -0
  180. package/lib/commonjs/assets/icon/icon-user@2x.png +0 -0
  181. package/lib/commonjs/assets/icon/icon-user@3x.png +0 -0
  182. package/lib/commonjs/assets/icon/index.js +70 -0
  183. package/lib/commonjs/assets/icon/index.js.map +1 -0
  184. package/lib/commonjs/components/Image/Image.fastimage.js +85 -0
  185. package/lib/commonjs/components/Image/Image.fastimage.js.map +1 -0
  186. package/lib/commonjs/components/Image/Image.reactnative.js +35 -0
  187. package/lib/commonjs/components/Image/Image.reactnative.js.map +1 -0
  188. package/lib/commonjs/components/Image/index.js +29 -0
  189. package/lib/commonjs/components/Image/index.js.map +1 -0
  190. package/lib/commonjs/index.js +388 -0
  191. package/lib/commonjs/index.js.map +1 -0
  192. package/lib/commonjs/styles/HeaderStyleContext.js +46 -0
  193. package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -0
  194. package/lib/commonjs/styles/createScaleFactor.js +31 -0
  195. package/lib/commonjs/styles/createScaleFactor.js.map +1 -0
  196. package/lib/commonjs/styles/createSelectByColorScheme.js +24 -0
  197. package/lib/commonjs/styles/createSelectByColorScheme.js.map +1 -0
  198. package/lib/commonjs/styles/createStyleSheet.js +62 -0
  199. package/lib/commonjs/styles/createStyleSheet.js.map +1 -0
  200. package/lib/commonjs/styles/createTypography.js +106 -0
  201. package/lib/commonjs/styles/createTypography.js.map +1 -0
  202. package/lib/commonjs/styles/getDefaultHeaderHeight.js +17 -0
  203. package/lib/commonjs/styles/getDefaultHeaderHeight.js.map +1 -0
  204. package/lib/commonjs/styles/useHeaderStyle.js +18 -0
  205. package/lib/commonjs/styles/useHeaderStyle.js.map +1 -0
  206. package/lib/commonjs/theme/DarkUIKitTheme.js +186 -0
  207. package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -0
  208. package/lib/commonjs/theme/LightUIKitTheme.js +186 -0
  209. package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -0
  210. package/lib/commonjs/theme/Palette.js +47 -0
  211. package/lib/commonjs/theme/Palette.js.map +1 -0
  212. package/lib/commonjs/theme/UIKitThemeContext.js +16 -0
  213. package/lib/commonjs/theme/UIKitThemeContext.js.map +1 -0
  214. package/lib/commonjs/theme/UIKitThemeProvider.js +28 -0
  215. package/lib/commonjs/theme/UIKitThemeProvider.js.map +1 -0
  216. package/lib/commonjs/theme/createTheme.js +58 -0
  217. package/lib/commonjs/theme/createTheme.js.map +1 -0
  218. package/lib/commonjs/theme/useUIKitTheme.js +22 -0
  219. package/lib/commonjs/theme/useUIKitTheme.js.map +1 -0
  220. package/lib/commonjs/types.js +6 -0
  221. package/lib/commonjs/types.js.map +1 -0
  222. package/lib/commonjs/ui/ActionMenu/index.js +131 -0
  223. package/lib/commonjs/ui/ActionMenu/index.js.map +1 -0
  224. package/lib/commonjs/ui/Alert/index.js +122 -0
  225. package/lib/commonjs/ui/Alert/index.js.map +1 -0
  226. package/lib/commonjs/ui/Avatar/AvatarGroup.js +119 -0
  227. package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -0
  228. package/lib/commonjs/ui/Avatar/AvatarIcon.js +54 -0
  229. package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +1 -0
  230. package/lib/commonjs/ui/Avatar/index.js +100 -0
  231. package/lib/commonjs/ui/Avatar/index.js.map +1 -0
  232. package/lib/commonjs/ui/Badge/index.js +77 -0
  233. package/lib/commonjs/ui/Badge/index.js.map +1 -0
  234. package/lib/commonjs/ui/BottomSheet/index.js +80 -0
  235. package/lib/commonjs/ui/BottomSheet/index.js.map +1 -0
  236. package/lib/commonjs/ui/Button/index.js +90 -0
  237. package/lib/commonjs/ui/Button/index.js.map +1 -0
  238. package/lib/commonjs/ui/ChannelFrozenBanner/index.js +51 -0
  239. package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +1 -0
  240. package/lib/commonjs/ui/Dialog/DialogBox.js +41 -0
  241. package/lib/commonjs/ui/Dialog/DialogBox.js.map +1 -0
  242. package/lib/commonjs/ui/Dialog/DialogSheet.js +86 -0
  243. package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -0
  244. package/lib/commonjs/ui/Dialog/index.js +182 -0
  245. package/lib/commonjs/ui/Dialog/index.js.map +1 -0
  246. package/lib/commonjs/ui/Divider/index.js +49 -0
  247. package/lib/commonjs/ui/Divider/index.js.map +1 -0
  248. package/lib/commonjs/ui/GroupChannelPreview/index.js +210 -0
  249. package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -0
  250. package/lib/commonjs/ui/Header/index.js +237 -0
  251. package/lib/commonjs/ui/Header/index.js.map +1 -0
  252. package/lib/commonjs/ui/Icon/index.js +78 -0
  253. package/lib/commonjs/ui/Icon/index.js.map +1 -0
  254. package/lib/commonjs/ui/LoadingSpinner/index.js +82 -0
  255. package/lib/commonjs/ui/LoadingSpinner/index.js.map +1 -0
  256. package/lib/commonjs/ui/MenuBar/index.js +88 -0
  257. package/lib/commonjs/ui/MenuBar/index.js.map +1 -0
  258. package/lib/commonjs/ui/Modal/index.js +214 -0
  259. package/lib/commonjs/ui/Modal/index.js.map +1 -0
  260. package/lib/commonjs/ui/Placeholder/index.js +82 -0
  261. package/lib/commonjs/ui/Placeholder/index.js.map +1 -0
  262. package/lib/commonjs/ui/Prompt/index.js +175 -0
  263. package/lib/commonjs/ui/Prompt/index.js.map +1 -0
  264. package/lib/commonjs/ui/Switch/index.js +125 -0
  265. package/lib/commonjs/ui/Switch/index.js.map +1 -0
  266. package/lib/commonjs/ui/Text/index.js +71 -0
  267. package/lib/commonjs/ui/Text/index.js.map +1 -0
  268. package/lib/commonjs/ui/TextInput/index.js +58 -0
  269. package/lib/commonjs/ui/TextInput/index.js.map +1 -0
  270. package/lib/commonjs/ui/Toast/index.js +183 -0
  271. package/lib/commonjs/ui/Toast/index.js.map +1 -0
  272. package/lib/commonjs/ui/URLParsedText/index.js +64 -0
  273. package/lib/commonjs/ui/URLParsedText/index.js.map +1 -0
  274. package/lib/module/assets/bundle-icons.js +31 -0
  275. package/lib/module/assets/bundle-icons.js.map +1 -0
  276. package/lib/module/assets/icon/ic-chat-hide.png +0 -0
  277. package/lib/module/assets/icon/ic-chat-hide@2x.png +0 -0
  278. package/lib/module/assets/icon/ic-chat-hide@3x.png +0 -0
  279. package/lib/module/assets/icon/ic-chat-show.png +0 -0
  280. package/lib/module/assets/icon/ic-chat-show@2x.png +0 -0
  281. package/lib/module/assets/icon/ic-chat-show@3x.png +0 -0
  282. package/lib/module/assets/icon/icon-add.png +0 -0
  283. package/lib/module/assets/icon/icon-add@2x.png +0 -0
  284. package/lib/module/assets/icon/icon-add@3x.png +0 -0
  285. package/lib/module/assets/icon/icon-archive.png +0 -0
  286. package/lib/module/assets/icon/icon-archive@2x.png +0 -0
  287. package/lib/module/assets/icon/icon-archive@3x.png +0 -0
  288. package/lib/module/assets/icon/icon-arrow-left.png +0 -0
  289. package/lib/module/assets/icon/icon-arrow-left@2x.png +0 -0
  290. package/lib/module/assets/icon/icon-arrow-left@3x.png +0 -0
  291. package/lib/module/assets/icon/icon-ban.png +0 -0
  292. package/lib/module/assets/icon/icon-ban@2x.png +0 -0
  293. package/lib/module/assets/icon/icon-ban@3x.png +0 -0
  294. package/lib/module/assets/icon/icon-broadcast.png +0 -0
  295. package/lib/module/assets/icon/icon-broadcast@2x.png +0 -0
  296. package/lib/module/assets/icon/icon-broadcast@3x.png +0 -0
  297. package/lib/module/assets/icon/icon-camera.png +0 -0
  298. package/lib/module/assets/icon/icon-camera@2x.png +0 -0
  299. package/lib/module/assets/icon/icon-camera@3x.png +0 -0
  300. package/lib/module/assets/icon/icon-channels.png +0 -0
  301. package/lib/module/assets/icon/icon-channels@2x.png +0 -0
  302. package/lib/module/assets/icon/icon-channels@3x.png +0 -0
  303. package/lib/module/assets/icon/icon-chat-filled.png +0 -0
  304. package/lib/module/assets/icon/icon-chat-filled@2x.png +0 -0
  305. package/lib/module/assets/icon/icon-chat-filled@3x.png +0 -0
  306. package/lib/module/assets/icon/icon-chat.png +0 -0
  307. package/lib/module/assets/icon/icon-chat@2x.png +0 -0
  308. package/lib/module/assets/icon/icon-chat@3x.png +0 -0
  309. package/lib/module/assets/icon/icon-checkbox-off.png +0 -0
  310. package/lib/module/assets/icon/icon-checkbox-off@2x.png +0 -0
  311. package/lib/module/assets/icon/icon-checkbox-off@3x.png +0 -0
  312. package/lib/module/assets/icon/icon-checkbox-on.png +0 -0
  313. package/lib/module/assets/icon/icon-checkbox-on@2x.png +0 -0
  314. package/lib/module/assets/icon/icon-checkbox-on@3x.png +0 -0
  315. package/lib/module/assets/icon/icon-chevron-down.png +0 -0
  316. package/lib/module/assets/icon/icon-chevron-down@2x.png +0 -0
  317. package/lib/module/assets/icon/icon-chevron-down@3x.png +0 -0
  318. package/lib/module/assets/icon/icon-chevron-right.png +0 -0
  319. package/lib/module/assets/icon/icon-chevron-right@2x.png +0 -0
  320. package/lib/module/assets/icon/icon-chevron-right@3x.png +0 -0
  321. package/lib/module/assets/icon/icon-close.png +0 -0
  322. package/lib/module/assets/icon/icon-close@2x.png +0 -0
  323. package/lib/module/assets/icon/icon-close@3x.png +0 -0
  324. package/lib/module/assets/icon/icon-copy.png +0 -0
  325. package/lib/module/assets/icon/icon-copy@2x.png +0 -0
  326. package/lib/module/assets/icon/icon-copy@3x.png +0 -0
  327. package/lib/module/assets/icon/icon-create.png +0 -0
  328. package/lib/module/assets/icon/icon-create@2x.png +0 -0
  329. package/lib/module/assets/icon/icon-create@3x.png +0 -0
  330. package/lib/module/assets/icon/icon-delete.png +0 -0
  331. package/lib/module/assets/icon/icon-delete@2x.png +0 -0
  332. package/lib/module/assets/icon/icon-delete@3x.png +0 -0
  333. package/lib/module/assets/icon/icon-document.png +0 -0
  334. package/lib/module/assets/icon/icon-document@2x.png +0 -0
  335. package/lib/module/assets/icon/icon-document@3x.png +0 -0
  336. package/lib/module/assets/icon/icon-done-all.png +0 -0
  337. package/lib/module/assets/icon/icon-done-all@2x.png +0 -0
  338. package/lib/module/assets/icon/icon-done-all@3x.png +0 -0
  339. package/lib/module/assets/icon/icon-done.png +0 -0
  340. package/lib/module/assets/icon/icon-done@2x.png +0 -0
  341. package/lib/module/assets/icon/icon-done@3x.png +0 -0
  342. package/lib/module/assets/icon/icon-download.png +0 -0
  343. package/lib/module/assets/icon/icon-download@2x.png +0 -0
  344. package/lib/module/assets/icon/icon-download@3x.png +0 -0
  345. package/lib/module/assets/icon/icon-edit.png +0 -0
  346. package/lib/module/assets/icon/icon-edit@2x.png +0 -0
  347. package/lib/module/assets/icon/icon-edit@3x.png +0 -0
  348. package/lib/module/assets/icon/icon-emoji-more.png +0 -0
  349. package/lib/module/assets/icon/icon-emoji-more@2x.png +0 -0
  350. package/lib/module/assets/icon/icon-emoji-more@3x.png +0 -0
  351. package/lib/module/assets/icon/icon-error.png +0 -0
  352. package/lib/module/assets/icon/icon-error@2x.png +0 -0
  353. package/lib/module/assets/icon/icon-error@3x.png +0 -0
  354. package/lib/module/assets/icon/icon-file-audio.png +0 -0
  355. package/lib/module/assets/icon/icon-file-audio@2x.png +0 -0
  356. package/lib/module/assets/icon/icon-file-audio@3x.png +0 -0
  357. package/lib/module/assets/icon/icon-file-document.png +0 -0
  358. package/lib/module/assets/icon/icon-file-document@2x.png +0 -0
  359. package/lib/module/assets/icon/icon-file-document@3x.png +0 -0
  360. package/lib/module/assets/icon/icon-freeze.png +0 -0
  361. package/lib/module/assets/icon/icon-freeze@2x.png +0 -0
  362. package/lib/module/assets/icon/icon-freeze@3x.png +0 -0
  363. package/lib/module/assets/icon/icon-gif.png +0 -0
  364. package/lib/module/assets/icon/icon-gif@2x.png +0 -0
  365. package/lib/module/assets/icon/icon-gif@3x.png +0 -0
  366. package/lib/module/assets/icon/icon-info.png +0 -0
  367. package/lib/module/assets/icon/icon-info@2x.png +0 -0
  368. package/lib/module/assets/icon/icon-info@3x.png +0 -0
  369. package/lib/module/assets/icon/icon-leave.png +0 -0
  370. package/lib/module/assets/icon/icon-leave@2x.png +0 -0
  371. package/lib/module/assets/icon/icon-leave@3x.png +0 -0
  372. package/lib/module/assets/icon/icon-members.png +0 -0
  373. package/lib/module/assets/icon/icon-members@2x.png +0 -0
  374. package/lib/module/assets/icon/icon-members@3x.png +0 -0
  375. package/lib/module/assets/icon/icon-message.png +0 -0
  376. package/lib/module/assets/icon/icon-message@2x.png +0 -0
  377. package/lib/module/assets/icon/icon-message@3x.png +0 -0
  378. package/lib/module/assets/icon/icon-moderations.png +0 -0
  379. package/lib/module/assets/icon/icon-moderations@2x.png +0 -0
  380. package/lib/module/assets/icon/icon-moderations@3x.png +0 -0
  381. package/lib/module/assets/icon/icon-more.png +0 -0
  382. package/lib/module/assets/icon/icon-more@2x.png +0 -0
  383. package/lib/module/assets/icon/icon-more@3x.png +0 -0
  384. package/lib/module/assets/icon/icon-mute.png +0 -0
  385. package/lib/module/assets/icon/icon-mute@2x.png +0 -0
  386. package/lib/module/assets/icon/icon-mute@3x.png +0 -0
  387. package/lib/module/assets/icon/icon-notifications-filled.png +0 -0
  388. package/lib/module/assets/icon/icon-notifications-filled@2x.png +0 -0
  389. package/lib/module/assets/icon/icon-notifications-filled@3x.png +0 -0
  390. package/lib/module/assets/icon/icon-notifications-off-filled.png +0 -0
  391. package/lib/module/assets/icon/icon-notifications-off-filled@2x.png +0 -0
  392. package/lib/module/assets/icon/icon-notifications-off-filled@3x.png +0 -0
  393. package/lib/module/assets/icon/icon-notifications.png +0 -0
  394. package/lib/module/assets/icon/icon-notifications@2x.png +0 -0
  395. package/lib/module/assets/icon/icon-notifications@3x.png +0 -0
  396. package/lib/module/assets/icon/icon-operator.png +0 -0
  397. package/lib/module/assets/icon/icon-operator@2x.png +0 -0
  398. package/lib/module/assets/icon/icon-operator@3x.png +0 -0
  399. package/lib/module/assets/icon/icon-photo.png +0 -0
  400. package/lib/module/assets/icon/icon-photo@2x.png +0 -0
  401. package/lib/module/assets/icon/icon-photo@3x.png +0 -0
  402. package/lib/module/assets/icon/icon-play.png +0 -0
  403. package/lib/module/assets/icon/icon-play@2x.png +0 -0
  404. package/lib/module/assets/icon/icon-play@3x.png +0 -0
  405. package/lib/module/assets/icon/icon-plus.png +0 -0
  406. package/lib/module/assets/icon/icon-plus@2x.png +0 -0
  407. package/lib/module/assets/icon/icon-plus@3x.png +0 -0
  408. package/lib/module/assets/icon/icon-question.png +0 -0
  409. package/lib/module/assets/icon/icon-question@2x.png +0 -0
  410. package/lib/module/assets/icon/icon-question@3x.png +0 -0
  411. package/lib/module/assets/icon/icon-refresh.png +0 -0
  412. package/lib/module/assets/icon/icon-refresh@2x.png +0 -0
  413. package/lib/module/assets/icon/icon-refresh@3x.png +0 -0
  414. package/lib/module/assets/icon/icon-remove.png +0 -0
  415. package/lib/module/assets/icon/icon-remove@2x.png +0 -0
  416. package/lib/module/assets/icon/icon-remove@3x.png +0 -0
  417. package/lib/module/assets/icon/icon-reply-filled.png +0 -0
  418. package/lib/module/assets/icon/icon-reply-filled@2x.png +0 -0
  419. package/lib/module/assets/icon/icon-reply-filled@3x.png +0 -0
  420. package/lib/module/assets/icon/icon-reply.png +0 -0
  421. package/lib/module/assets/icon/icon-reply@2x.png +0 -0
  422. package/lib/module/assets/icon/icon-reply@3x.png +0 -0
  423. package/lib/module/assets/icon/icon-search.png +0 -0
  424. package/lib/module/assets/icon/icon-search@2x.png +0 -0
  425. package/lib/module/assets/icon/icon-search@3x.png +0 -0
  426. package/lib/module/assets/icon/icon-send.png +0 -0
  427. package/lib/module/assets/icon/icon-send@2x.png +0 -0
  428. package/lib/module/assets/icon/icon-send@3x.png +0 -0
  429. package/lib/module/assets/icon/icon-settings-filled.png +0 -0
  430. package/lib/module/assets/icon/icon-settings-filled@2x.png +0 -0
  431. package/lib/module/assets/icon/icon-settings-filled@3x.png +0 -0
  432. package/lib/module/assets/icon/icon-spinner.png +0 -0
  433. package/lib/module/assets/icon/icon-spinner@2x.png +0 -0
  434. package/lib/module/assets/icon/icon-spinner@3x.png +0 -0
  435. package/lib/module/assets/icon/icon-streaming.png +0 -0
  436. package/lib/module/assets/icon/icon-streaming@2x.png +0 -0
  437. package/lib/module/assets/icon/icon-streaming@3x.png +0 -0
  438. package/lib/module/assets/icon/icon-supergroup.png +0 -0
  439. package/lib/module/assets/icon/icon-supergroup@2x.png +0 -0
  440. package/lib/module/assets/icon/icon-supergroup@3x.png +0 -0
  441. package/lib/module/assets/icon/icon-theme.png +0 -0
  442. package/lib/module/assets/icon/icon-theme@2x.png +0 -0
  443. package/lib/module/assets/icon/icon-theme@3x.png +0 -0
  444. package/lib/module/assets/icon/icon-thumbnail-none.png +0 -0
  445. package/lib/module/assets/icon/icon-thumbnail-none@2x.png +0 -0
  446. package/lib/module/assets/icon/icon-thumbnail-none@3x.png +0 -0
  447. package/lib/module/assets/icon/icon-unarchive.png +0 -0
  448. package/lib/module/assets/icon/icon-unarchive@2x.png +0 -0
  449. package/lib/module/assets/icon/icon-unarchive@3x.png +0 -0
  450. package/lib/module/assets/icon/icon-user.png +0 -0
  451. package/lib/module/assets/icon/icon-user@2x.png +0 -0
  452. package/lib/module/assets/icon/icon-user@3x.png +0 -0
  453. package/lib/module/assets/icon/index.js +63 -0
  454. package/lib/module/assets/icon/index.js.map +1 -0
  455. package/lib/module/components/Image/Image.fastimage.js +74 -0
  456. package/lib/module/components/Image/Image.fastimage.js.map +1 -0
  457. package/lib/module/components/Image/Image.reactnative.js +24 -0
  458. package/lib/module/components/Image/Image.reactnative.js.map +1 -0
  459. package/lib/module/components/Image/index.js +20 -0
  460. package/lib/module/components/Image/index.js.map +1 -0
  461. package/lib/module/index.js +49 -0
  462. package/lib/module/index.js.map +1 -0
  463. package/lib/module/styles/HeaderStyleContext.js +29 -0
  464. package/lib/module/styles/HeaderStyleContext.js.map +1 -0
  465. package/lib/module/styles/createScaleFactor.js +20 -0
  466. package/lib/module/styles/createScaleFactor.js.map +1 -0
  467. package/lib/module/styles/createSelectByColorScheme.js +16 -0
  468. package/lib/module/styles/createSelectByColorScheme.js.map +1 -0
  469. package/lib/module/styles/createStyleSheet.js +53 -0
  470. package/lib/module/styles/createStyleSheet.js.map +1 -0
  471. package/lib/module/styles/createTypography.js +98 -0
  472. package/lib/module/styles/createTypography.js.map +1 -0
  473. package/lib/module/styles/getDefaultHeaderHeight.js +10 -0
  474. package/lib/module/styles/getDefaultHeaderHeight.js.map +1 -0
  475. package/lib/module/styles/useHeaderStyle.js +9 -0
  476. package/lib/module/styles/useHeaderStyle.js.map +1 -0
  477. package/lib/module/theme/DarkUIKitTheme.js +175 -0
  478. package/lib/module/theme/DarkUIKitTheme.js.map +1 -0
  479. package/lib/module/theme/LightUIKitTheme.js +175 -0
  480. package/lib/module/theme/LightUIKitTheme.js.map +1 -0
  481. package/lib/module/theme/Palette.js +40 -0
  482. package/lib/module/theme/Palette.js.map +1 -0
  483. package/lib/module/theme/UIKitThemeContext.js +4 -0
  484. package/lib/module/theme/UIKitThemeContext.js.map +1 -0
  485. package/lib/module/theme/UIKitThemeProvider.js +16 -0
  486. package/lib/module/theme/UIKitThemeProvider.js.map +1 -0
  487. package/lib/module/theme/createTheme.js +46 -0
  488. package/lib/module/theme/createTheme.js.map +1 -0
  489. package/lib/module/theme/useUIKitTheme.js +11 -0
  490. package/lib/module/theme/useUIKitTheme.js.map +1 -0
  491. package/lib/module/types.js +2 -0
  492. package/lib/module/types.js.map +1 -0
  493. package/lib/module/ui/ActionMenu/index.js +108 -0
  494. package/lib/module/ui/ActionMenu/index.js.map +1 -0
  495. package/lib/module/ui/Alert/index.js +104 -0
  496. package/lib/module/ui/Alert/index.js.map +1 -0
  497. package/lib/module/ui/Avatar/AvatarGroup.js +104 -0
  498. package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -0
  499. package/lib/module/ui/Avatar/AvatarIcon.js +40 -0
  500. package/lib/module/ui/Avatar/AvatarIcon.js.map +1 -0
  501. package/lib/module/ui/Avatar/index.js +78 -0
  502. package/lib/module/ui/Avatar/index.js.map +1 -0
  503. package/lib/module/ui/Badge/index.js +62 -0
  504. package/lib/module/ui/Badge/index.js.map +1 -0
  505. package/lib/module/ui/BottomSheet/index.js +65 -0
  506. package/lib/module/ui/BottomSheet/index.js.map +1 -0
  507. package/lib/module/ui/Button/index.js +75 -0
  508. package/lib/module/ui/Button/index.js.map +1 -0
  509. package/lib/module/ui/ChannelFrozenBanner/index.js +37 -0
  510. package/lib/module/ui/ChannelFrozenBanner/index.js.map +1 -0
  511. package/lib/module/ui/Dialog/DialogBox.js +28 -0
  512. package/lib/module/ui/Dialog/DialogBox.js.map +1 -0
  513. package/lib/module/ui/Dialog/DialogSheet.js +71 -0
  514. package/lib/module/ui/Dialog/DialogSheet.js.map +1 -0
  515. package/lib/module/ui/Dialog/index.js +144 -0
  516. package/lib/module/ui/Dialog/index.js.map +1 -0
  517. package/lib/module/ui/Divider/index.js +36 -0
  518. package/lib/module/ui/Divider/index.js.map +1 -0
  519. package/lib/module/ui/GroupChannelPreview/index.js +190 -0
  520. package/lib/module/ui/GroupChannelPreview/index.js.map +1 -0
  521. package/lib/module/ui/Header/index.js +218 -0
  522. package/lib/module/ui/Header/index.js.map +1 -0
  523. package/lib/module/ui/Icon/index.js +63 -0
  524. package/lib/module/ui/Icon/index.js.map +1 -0
  525. package/lib/module/ui/LoadingSpinner/index.js +64 -0
  526. package/lib/module/ui/LoadingSpinner/index.js.map +1 -0
  527. package/lib/module/ui/MenuBar/index.js +71 -0
  528. package/lib/module/ui/MenuBar/index.js.map +1 -0
  529. package/lib/module/ui/Modal/index.js +196 -0
  530. package/lib/module/ui/Modal/index.js.map +1 -0
  531. package/lib/module/ui/Placeholder/index.js +64 -0
  532. package/lib/module/ui/Placeholder/index.js.map +1 -0
  533. package/lib/module/ui/Prompt/index.js +151 -0
  534. package/lib/module/ui/Prompt/index.js.map +1 -0
  535. package/lib/module/ui/Switch/index.js +107 -0
  536. package/lib/module/ui/Switch/index.js.map +1 -0
  537. package/lib/module/ui/Text/index.js +59 -0
  538. package/lib/module/ui/Text/index.js.map +1 -0
  539. package/lib/module/ui/TextInput/index.js +43 -0
  540. package/lib/module/ui/TextInput/index.js.map +1 -0
  541. package/lib/module/ui/Toast/index.js +156 -0
  542. package/lib/module/ui/Toast/index.js.map +1 -0
  543. package/lib/module/ui/URLParsedText/index.js +45 -0
  544. package/lib/module/ui/URLParsedText/index.js.map +1 -0
  545. package/lib/typescript/src/assets/icon/index.d.ts +62 -0
  546. package/lib/typescript/src/components/Image/Image.fastimage.d.ts +3 -0
  547. package/lib/typescript/src/components/Image/Image.reactnative.d.ts +3 -0
  548. package/lib/typescript/src/components/Image/index.d.ts +15 -0
  549. package/lib/typescript/src/index.d.ts +45 -0
  550. package/lib/typescript/src/styles/HeaderStyleContext.d.ts +20 -0
  551. package/lib/typescript/src/styles/createScaleFactor.d.ts +6 -0
  552. package/lib/typescript/src/styles/createSelectByColorScheme.d.ts +9 -0
  553. package/lib/typescript/src/styles/createStyleSheet.d.ts +9 -0
  554. package/lib/typescript/src/styles/createTypography.d.ts +6 -0
  555. package/lib/typescript/src/styles/getDefaultHeaderHeight.d.ts +2 -0
  556. package/lib/typescript/src/styles/useHeaderStyle.d.ts +2 -0
  557. package/lib/typescript/src/theme/DarkUIKitTheme.d.ts +2 -0
  558. package/lib/typescript/src/theme/LightUIKitTheme.d.ts +2 -0
  559. package/lib/typescript/src/theme/Palette.d.ts +3 -0
  560. package/lib/typescript/src/theme/UIKitThemeContext.d.ts +4 -0
  561. package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +7 -0
  562. package/lib/typescript/src/theme/createTheme.d.ts +10 -0
  563. package/lib/typescript/src/theme/useUIKitTheme.d.ts +3 -0
  564. package/lib/typescript/src/types.d.ts +167 -0
  565. package/lib/typescript/src/ui/ActionMenu/index.d.ts +17 -0
  566. package/lib/typescript/src/ui/Alert/index.d.ts +14 -0
  567. package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +8 -0
  568. package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +11 -0
  569. package/lib/typescript/src/ui/Avatar/index.d.ts +17 -0
  570. package/lib/typescript/src/ui/Badge/index.d.ts +12 -0
  571. package/lib/typescript/src/ui/BottomSheet/index.d.ts +19 -0
  572. package/lib/typescript/src/ui/Button/index.d.ts +14 -0
  573. package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +10 -0
  574. package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +7 -0
  575. package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +17 -0
  576. package/lib/typescript/src/ui/Dialog/index.d.ts +46 -0
  577. package/lib/typescript/src/ui/Divider/index.d.ts +8 -0
  578. package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +17 -0
  579. package/lib/typescript/src/ui/Header/index.d.ts +29 -0
  580. package/lib/typescript/src/ui/Icon/index.d.ts +15 -0
  581. package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +9 -0
  582. package/lib/typescript/src/ui/MenuBar/index.d.ts +15 -0
  583. package/lib/typescript/src/ui/Modal/index.d.ts +18 -0
  584. package/lib/typescript/src/ui/Placeholder/index.d.ts +11 -0
  585. package/lib/typescript/src/ui/Prompt/index.d.ts +18 -0
  586. package/lib/typescript/src/ui/Switch/index.d.ts +11 -0
  587. package/lib/typescript/src/ui/Text/index.d.ts +9 -0
  588. package/lib/typescript/src/ui/TextInput/index.d.ts +6 -0
  589. package/lib/typescript/src/ui/Toast/index.d.ts +18 -0
  590. package/lib/typescript/src/ui/URLParsedText/index.d.ts +9 -0
  591. package/package.json +84 -0
  592. package/src/assets/bundle-icons.js +37 -0
  593. package/src/assets/icon/ic-chat-hide.png +0 -0
  594. package/src/assets/icon/ic-chat-hide@2x.png +0 -0
  595. package/src/assets/icon/ic-chat-hide@3x.png +0 -0
  596. package/src/assets/icon/ic-chat-show.png +0 -0
  597. package/src/assets/icon/ic-chat-show@2x.png +0 -0
  598. package/src/assets/icon/ic-chat-show@3x.png +0 -0
  599. package/src/assets/icon/icon-add.png +0 -0
  600. package/src/assets/icon/icon-add@2x.png +0 -0
  601. package/src/assets/icon/icon-add@3x.png +0 -0
  602. package/src/assets/icon/icon-archive.png +0 -0
  603. package/src/assets/icon/icon-archive@2x.png +0 -0
  604. package/src/assets/icon/icon-archive@3x.png +0 -0
  605. package/src/assets/icon/icon-arrow-left.png +0 -0
  606. package/src/assets/icon/icon-arrow-left@2x.png +0 -0
  607. package/src/assets/icon/icon-arrow-left@3x.png +0 -0
  608. package/src/assets/icon/icon-ban.png +0 -0
  609. package/src/assets/icon/icon-ban@2x.png +0 -0
  610. package/src/assets/icon/icon-ban@3x.png +0 -0
  611. package/src/assets/icon/icon-broadcast.png +0 -0
  612. package/src/assets/icon/icon-broadcast@2x.png +0 -0
  613. package/src/assets/icon/icon-broadcast@3x.png +0 -0
  614. package/src/assets/icon/icon-camera.png +0 -0
  615. package/src/assets/icon/icon-camera@2x.png +0 -0
  616. package/src/assets/icon/icon-camera@3x.png +0 -0
  617. package/src/assets/icon/icon-channels.png +0 -0
  618. package/src/assets/icon/icon-channels@2x.png +0 -0
  619. package/src/assets/icon/icon-channels@3x.png +0 -0
  620. package/src/assets/icon/icon-chat-filled.png +0 -0
  621. package/src/assets/icon/icon-chat-filled@2x.png +0 -0
  622. package/src/assets/icon/icon-chat-filled@3x.png +0 -0
  623. package/src/assets/icon/icon-chat.png +0 -0
  624. package/src/assets/icon/icon-chat@2x.png +0 -0
  625. package/src/assets/icon/icon-chat@3x.png +0 -0
  626. package/src/assets/icon/icon-checkbox-off.png +0 -0
  627. package/src/assets/icon/icon-checkbox-off@2x.png +0 -0
  628. package/src/assets/icon/icon-checkbox-off@3x.png +0 -0
  629. package/src/assets/icon/icon-checkbox-on.png +0 -0
  630. package/src/assets/icon/icon-checkbox-on@2x.png +0 -0
  631. package/src/assets/icon/icon-checkbox-on@3x.png +0 -0
  632. package/src/assets/icon/icon-chevron-down.png +0 -0
  633. package/src/assets/icon/icon-chevron-down@2x.png +0 -0
  634. package/src/assets/icon/icon-chevron-down@3x.png +0 -0
  635. package/src/assets/icon/icon-chevron-right.png +0 -0
  636. package/src/assets/icon/icon-chevron-right@2x.png +0 -0
  637. package/src/assets/icon/icon-chevron-right@3x.png +0 -0
  638. package/src/assets/icon/icon-close.png +0 -0
  639. package/src/assets/icon/icon-close@2x.png +0 -0
  640. package/src/assets/icon/icon-close@3x.png +0 -0
  641. package/src/assets/icon/icon-copy.png +0 -0
  642. package/src/assets/icon/icon-copy@2x.png +0 -0
  643. package/src/assets/icon/icon-copy@3x.png +0 -0
  644. package/src/assets/icon/icon-create.png +0 -0
  645. package/src/assets/icon/icon-create@2x.png +0 -0
  646. package/src/assets/icon/icon-create@3x.png +0 -0
  647. package/src/assets/icon/icon-delete.png +0 -0
  648. package/src/assets/icon/icon-delete@2x.png +0 -0
  649. package/src/assets/icon/icon-delete@3x.png +0 -0
  650. package/src/assets/icon/icon-document.png +0 -0
  651. package/src/assets/icon/icon-document@2x.png +0 -0
  652. package/src/assets/icon/icon-document@3x.png +0 -0
  653. package/src/assets/icon/icon-done-all.png +0 -0
  654. package/src/assets/icon/icon-done-all@2x.png +0 -0
  655. package/src/assets/icon/icon-done-all@3x.png +0 -0
  656. package/src/assets/icon/icon-done.png +0 -0
  657. package/src/assets/icon/icon-done@2x.png +0 -0
  658. package/src/assets/icon/icon-done@3x.png +0 -0
  659. package/src/assets/icon/icon-download.png +0 -0
  660. package/src/assets/icon/icon-download@2x.png +0 -0
  661. package/src/assets/icon/icon-download@3x.png +0 -0
  662. package/src/assets/icon/icon-edit.png +0 -0
  663. package/src/assets/icon/icon-edit@2x.png +0 -0
  664. package/src/assets/icon/icon-edit@3x.png +0 -0
  665. package/src/assets/icon/icon-emoji-more.png +0 -0
  666. package/src/assets/icon/icon-emoji-more@2x.png +0 -0
  667. package/src/assets/icon/icon-emoji-more@3x.png +0 -0
  668. package/src/assets/icon/icon-error.png +0 -0
  669. package/src/assets/icon/icon-error@2x.png +0 -0
  670. package/src/assets/icon/icon-error@3x.png +0 -0
  671. package/src/assets/icon/icon-file-audio.png +0 -0
  672. package/src/assets/icon/icon-file-audio@2x.png +0 -0
  673. package/src/assets/icon/icon-file-audio@3x.png +0 -0
  674. package/src/assets/icon/icon-file-document.png +0 -0
  675. package/src/assets/icon/icon-file-document@2x.png +0 -0
  676. package/src/assets/icon/icon-file-document@3x.png +0 -0
  677. package/src/assets/icon/icon-freeze.png +0 -0
  678. package/src/assets/icon/icon-freeze@2x.png +0 -0
  679. package/src/assets/icon/icon-freeze@3x.png +0 -0
  680. package/src/assets/icon/icon-gif.png +0 -0
  681. package/src/assets/icon/icon-gif@2x.png +0 -0
  682. package/src/assets/icon/icon-gif@3x.png +0 -0
  683. package/src/assets/icon/icon-info.png +0 -0
  684. package/src/assets/icon/icon-info@2x.png +0 -0
  685. package/src/assets/icon/icon-info@3x.png +0 -0
  686. package/src/assets/icon/icon-leave.png +0 -0
  687. package/src/assets/icon/icon-leave@2x.png +0 -0
  688. package/src/assets/icon/icon-leave@3x.png +0 -0
  689. package/src/assets/icon/icon-members.png +0 -0
  690. package/src/assets/icon/icon-members@2x.png +0 -0
  691. package/src/assets/icon/icon-members@3x.png +0 -0
  692. package/src/assets/icon/icon-message.png +0 -0
  693. package/src/assets/icon/icon-message@2x.png +0 -0
  694. package/src/assets/icon/icon-message@3x.png +0 -0
  695. package/src/assets/icon/icon-moderations.png +0 -0
  696. package/src/assets/icon/icon-moderations@2x.png +0 -0
  697. package/src/assets/icon/icon-moderations@3x.png +0 -0
  698. package/src/assets/icon/icon-more.png +0 -0
  699. package/src/assets/icon/icon-more@2x.png +0 -0
  700. package/src/assets/icon/icon-more@3x.png +0 -0
  701. package/src/assets/icon/icon-mute.png +0 -0
  702. package/src/assets/icon/icon-mute@2x.png +0 -0
  703. package/src/assets/icon/icon-mute@3x.png +0 -0
  704. package/src/assets/icon/icon-notifications-filled.png +0 -0
  705. package/src/assets/icon/icon-notifications-filled@2x.png +0 -0
  706. package/src/assets/icon/icon-notifications-filled@3x.png +0 -0
  707. package/src/assets/icon/icon-notifications-off-filled.png +0 -0
  708. package/src/assets/icon/icon-notifications-off-filled@2x.png +0 -0
  709. package/src/assets/icon/icon-notifications-off-filled@3x.png +0 -0
  710. package/src/assets/icon/icon-notifications.png +0 -0
  711. package/src/assets/icon/icon-notifications@2x.png +0 -0
  712. package/src/assets/icon/icon-notifications@3x.png +0 -0
  713. package/src/assets/icon/icon-operator.png +0 -0
  714. package/src/assets/icon/icon-operator@2x.png +0 -0
  715. package/src/assets/icon/icon-operator@3x.png +0 -0
  716. package/src/assets/icon/icon-photo.png +0 -0
  717. package/src/assets/icon/icon-photo@2x.png +0 -0
  718. package/src/assets/icon/icon-photo@3x.png +0 -0
  719. package/src/assets/icon/icon-play.png +0 -0
  720. package/src/assets/icon/icon-play@2x.png +0 -0
  721. package/src/assets/icon/icon-play@3x.png +0 -0
  722. package/src/assets/icon/icon-plus.png +0 -0
  723. package/src/assets/icon/icon-plus@2x.png +0 -0
  724. package/src/assets/icon/icon-plus@3x.png +0 -0
  725. package/src/assets/icon/icon-question.png +0 -0
  726. package/src/assets/icon/icon-question@2x.png +0 -0
  727. package/src/assets/icon/icon-question@3x.png +0 -0
  728. package/src/assets/icon/icon-refresh.png +0 -0
  729. package/src/assets/icon/icon-refresh@2x.png +0 -0
  730. package/src/assets/icon/icon-refresh@3x.png +0 -0
  731. package/src/assets/icon/icon-remove.png +0 -0
  732. package/src/assets/icon/icon-remove@2x.png +0 -0
  733. package/src/assets/icon/icon-remove@3x.png +0 -0
  734. package/src/assets/icon/icon-reply-filled.png +0 -0
  735. package/src/assets/icon/icon-reply-filled@2x.png +0 -0
  736. package/src/assets/icon/icon-reply-filled@3x.png +0 -0
  737. package/src/assets/icon/icon-reply.png +0 -0
  738. package/src/assets/icon/icon-reply@2x.png +0 -0
  739. package/src/assets/icon/icon-reply@3x.png +0 -0
  740. package/src/assets/icon/icon-search.png +0 -0
  741. package/src/assets/icon/icon-search@2x.png +0 -0
  742. package/src/assets/icon/icon-search@3x.png +0 -0
  743. package/src/assets/icon/icon-send.png +0 -0
  744. package/src/assets/icon/icon-send@2x.png +0 -0
  745. package/src/assets/icon/icon-send@3x.png +0 -0
  746. package/src/assets/icon/icon-settings-filled.png +0 -0
  747. package/src/assets/icon/icon-settings-filled@2x.png +0 -0
  748. package/src/assets/icon/icon-settings-filled@3x.png +0 -0
  749. package/src/assets/icon/icon-spinner.png +0 -0
  750. package/src/assets/icon/icon-spinner@2x.png +0 -0
  751. package/src/assets/icon/icon-spinner@3x.png +0 -0
  752. package/src/assets/icon/icon-streaming.png +0 -0
  753. package/src/assets/icon/icon-streaming@2x.png +0 -0
  754. package/src/assets/icon/icon-streaming@3x.png +0 -0
  755. package/src/assets/icon/icon-supergroup.png +0 -0
  756. package/src/assets/icon/icon-supergroup@2x.png +0 -0
  757. package/src/assets/icon/icon-supergroup@3x.png +0 -0
  758. package/src/assets/icon/icon-theme.png +0 -0
  759. package/src/assets/icon/icon-theme@2x.png +0 -0
  760. package/src/assets/icon/icon-theme@3x.png +0 -0
  761. package/src/assets/icon/icon-thumbnail-none.png +0 -0
  762. package/src/assets/icon/icon-thumbnail-none@2x.png +0 -0
  763. package/src/assets/icon/icon-thumbnail-none@3x.png +0 -0
  764. package/src/assets/icon/icon-unarchive.png +0 -0
  765. package/src/assets/icon/icon-unarchive@2x.png +0 -0
  766. package/src/assets/icon/icon-unarchive@3x.png +0 -0
  767. package/src/assets/icon/icon-user.png +0 -0
  768. package/src/assets/icon/icon-user@2x.png +0 -0
  769. package/src/assets/icon/icon-user@3x.png +0 -0
  770. package/src/assets/icon/index.ts +62 -0
  771. package/src/components/Image/Image.fastimage.tsx +64 -0
  772. package/src/components/Image/Image.reactnative.tsx +17 -0
  773. package/src/components/Image/index.ts +27 -0
  774. package/src/index.ts +64 -0
  775. package/src/styles/HeaderStyleContext.tsx +52 -0
  776. package/src/styles/createScaleFactor.ts +17 -0
  777. package/src/styles/createSelectByColorScheme.ts +17 -0
  778. package/src/styles/createStyleSheet.ts +59 -0
  779. package/src/styles/createTypography.ts +103 -0
  780. package/src/styles/getDefaultHeaderHeight.ts +9 -0
  781. package/src/styles/useHeaderStyle.ts +9 -0
  782. package/src/theme/DarkUIKitTheme.ts +176 -0
  783. package/src/theme/LightUIKitTheme.ts +176 -0
  784. package/src/theme/Palette.ts +49 -0
  785. package/src/theme/UIKitThemeContext.tsx +7 -0
  786. package/src/theme/UIKitThemeProvider.tsx +12 -0
  787. package/src/theme/createTheme.ts +42 -0
  788. package/src/theme/useUIKitTheme.ts +12 -0
  789. package/src/types.ts +202 -0
  790. package/src/ui/ActionMenu/index.tsx +115 -0
  791. package/src/ui/Alert/index.tsx +119 -0
  792. package/src/ui/Avatar/AvatarGroup.tsx +86 -0
  793. package/src/ui/Avatar/AvatarIcon.tsx +40 -0
  794. package/src/ui/Avatar/index.tsx +70 -0
  795. package/src/ui/Badge/index.tsx +63 -0
  796. package/src/ui/BottomSheet/index.tsx +59 -0
  797. package/src/ui/Button/index.tsx +76 -0
  798. package/src/ui/ChannelFrozenBanner/index.tsx +39 -0
  799. package/src/ui/Dialog/DialogBox.tsx +26 -0
  800. package/src/ui/Dialog/DialogSheet.tsx +72 -0
  801. package/src/ui/Dialog/index.tsx +185 -0
  802. package/src/ui/Divider/index.tsx +32 -0
  803. package/src/ui/GroupChannelPreview/index.tsx +193 -0
  804. package/src/ui/Header/index.tsx +188 -0
  805. package/src/ui/Icon/index.tsx +64 -0
  806. package/src/ui/LoadingSpinner/index.tsx +46 -0
  807. package/src/ui/MenuBar/index.tsx +94 -0
  808. package/src/ui/Modal/index.tsx +195 -0
  809. package/src/ui/Placeholder/index.tsx +80 -0
  810. package/src/ui/Prompt/index.tsx +158 -0
  811. package/src/ui/Switch/index.tsx +96 -0
  812. package/src/ui/Text/index.tsx +52 -0
  813. package/src/ui/TextInput/index.tsx +46 -0
  814. package/src/ui/Toast/index.tsx +122 -0
  815. package/src/ui/URLParsedText/index.tsx +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","TouchableOpacity","View","useWindowDimensions","useSafeAreaInsets","conditionChaining","createStyleSheet","getDefaultHeaderHeight","useHeaderStyle","useUIKitTheme","Text","AlignMapper","left","center","right","Header","children","titleAlign","title","onPressLeft","onPressRight","clearTitleMargin","topInset","defaultTitleAlign","width","height","colors","paddingLeft","paddingRight","actualTitleAlign","paddingTop","backgroundColor","ui","header","nav","none","background","styles","container","paddingHorizontal","borderBottomColor","borderBottom","marginHorizontal","justifyContent","LeftSide","RightSide","HeaderTitle","style","props","HeaderSubtitle","onBackground03","HeaderButton","disabled","onPress","color","button","e","borderBottomWidth","flexDirection","flex","alignItems","minWidth","marginRight","marginLeft","padding","Button","Title","Subtitle"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, TouchableOpacityProps, View, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport getDefaultHeaderHeight from '../../styles/getDefaultHeaderHeight';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text, { TextProps } from '../Text';\n\ntype HeaderElement = string | React.ReactElement | null;\ntype HeaderProps = BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n { clearTitleMargin?: boolean }\n>;\n\nconst AlignMapper = { left: 'flex-start', center: 'center', right: 'flex-end' } as const;\nconst Header: React.FC<HeaderProps> & {\n Button: typeof HeaderButton;\n Title: typeof HeaderTitle;\n Subtitle: typeof HeaderSubtitle;\n} = ({\n children,\n titleAlign,\n title = null,\n left = null,\n right = null,\n onPressLeft,\n onPressRight,\n clearTitleMargin = false,\n}) => {\n const { topInset, defaultTitleAlign } = useHeaderStyle();\n const { width, height } = useWindowDimensions();\n const { colors } = useUIKitTheme();\n const { left: paddingLeft, right: paddingRight } = useSafeAreaInsets();\n\n const actualTitleAlign = titleAlign ?? defaultTitleAlign;\n\n if (!title && !left && !right) {\n return (\n <View style={{ paddingTop: topInset, backgroundColor: colors.ui.header.nav.none.background }}>{children}</View>\n );\n }\n\n return (\n <View\n style={[\n styles.container,\n {\n paddingLeft: paddingLeft + styles.container.paddingHorizontal,\n paddingRight: paddingRight + styles.container.paddingHorizontal,\n paddingTop: topInset,\n backgroundColor: colors.ui.header.nav.none.background,\n borderBottomColor: colors.ui.header.nav.none.borderBottom,\n },\n ]}\n >\n <View style={[styles.header, { height: getDefaultHeaderHeight(width > height) }]}>\n <LeftSide titleAlign={actualTitleAlign} left={left} onPressLeft={onPressLeft} />\n <View\n style={[\n styles.title,\n clearTitleMargin && { marginHorizontal: 0 },\n { justifyContent: AlignMapper[actualTitleAlign] },\n ]}\n >\n {typeof title === 'string' ? <HeaderTitle>{title}</HeaderTitle> : title}\n </View>\n <RightSide titleAlign={actualTitleAlign} right={right} onPressRight={onPressRight} />\n </View>\n {children}\n </View>\n );\n};\n\nconst LeftSide: React.FC<HeaderProps> = ({ titleAlign, onPressLeft, left }) => {\n if (titleAlign === 'center') {\n return <View style={styles.left}>{left && <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>}</View>;\n }\n if (!left) return null;\n return (\n <View style={styles.left}>\n <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>\n </View>\n );\n};\n\nconst RightSide: React.FC<HeaderProps> = ({ titleAlign, onPressRight, right }) => {\n if (titleAlign === 'center') {\n return <View style={styles.right}>{right && <HeaderButton onPress={onPressRight}>{right}</HeaderButton>}</View>;\n }\n if (!right) return null;\n return (\n <View style={styles.right}>\n <HeaderButton onPress={onPressRight}>{right}</HeaderButton>\n </View>\n );\n};\n\nconst HeaderTitle: React.FC<{ children: string } & TextProps> = ({ children, style, ...props }) => {\n return (\n <Text {...props} h1 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderSubtitle: React.FC<{ children: string } & TextProps> = ({ children, style, ...props }) => {\n const { colors } = useUIKitTheme();\n return (\n <Text color={colors.onBackground03} {...props} caption2 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderButton: React.FC<TouchableOpacityProps & { color?: string }> = ({\n children,\n disabled,\n onPress,\n color,\n ...props\n}) => {\n return (\n <TouchableOpacity\n style={styles.button}\n {...props}\n disabled={!onPress || disabled}\n onPress={(e) => onPress?.(e)}\n activeOpacity={0.7}\n >\n {conditionChaining(\n [typeof children === 'string' || typeof children === 'number'],\n [\n <Text button numberOfLines={1} color={color}>\n {children}\n </Text>,\n children,\n ],\n )}\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n borderBottomWidth: 1,\n },\n header: {\n flexDirection: 'row',\n },\n title: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n marginHorizontal: 12,\n },\n left: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 12,\n },\n right: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 12,\n },\n button: {\n padding: 4,\n },\n});\n\nHeader.Button = HeaderButton;\nHeader.Title = HeaderTitle;\nHeader.Subtitle = HeaderSubtitle;\nexport default Header;\n"],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import React from 'react';
2
+ import { Image, StyleSheet, View } from 'react-native';
3
+ import IconAssets from '../../assets/icon';
4
+ import createStyleSheet from '../../styles/createStyleSheet';
5
+ import useUIKitTheme from '../../theme/useUIKitTheme';
6
+
7
+ const Icon = _ref => {
8
+ let {
9
+ icon,
10
+ color,
11
+ size = 24,
12
+ containerStyle,
13
+ style
14
+ } = _ref;
15
+ const sizeStyle = sizeStyles[size] ?? {
16
+ width: size,
17
+ height: size
18
+ };
19
+ const {
20
+ colors
21
+ } = useUIKitTheme();
22
+ return /*#__PURE__*/React.createElement(View, {
23
+ style: [containerStyle, containerStyles.container]
24
+ }, /*#__PURE__*/React.createElement(Image, {
25
+ resizeMode: 'contain',
26
+ source: IconAssets[icon],
27
+ style: [{
28
+ tintColor: color ?? colors.primary
29
+ }, sizeStyle, style]
30
+ }));
31
+ };
32
+
33
+ const containerStyles = StyleSheet.create({
34
+ container: {
35
+ alignItems: 'center',
36
+ justifyContent: 'center'
37
+ }
38
+ });
39
+ const sizeStyles = createStyleSheet({
40
+ 16: {
41
+ width: 16,
42
+ height: 16
43
+ },
44
+ 20: {
45
+ width: 20,
46
+ height: 20
47
+ },
48
+ 24: {
49
+ width: 24,
50
+ height: 24
51
+ },
52
+ 28: {
53
+ width: 28,
54
+ height: 28
55
+ },
56
+ 32: {
57
+ width: 32,
58
+ height: 32
59
+ }
60
+ });
61
+ Icon.Assets = IconAssets;
62
+ export default Icon;
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Image","StyleSheet","View","IconAssets","createStyleSheet","useUIKitTheme","Icon","icon","color","size","containerStyle","style","sizeStyle","sizeStyles","width","height","colors","containerStyles","container","tintColor","primary","create","alignItems","justifyContent","Assets"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Image, ImageStyle, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport IconAssets from '../../assets/icon';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype IconNames = keyof typeof IconAssets;\ntype SizeFactor = keyof typeof sizeStyles;\n\ntype Props = {\n icon: IconNames;\n color?: string;\n size?: number;\n style?: StyleProp<ImageStyle>;\n containerStyle?: StyleProp<ViewStyle>;\n};\n\nconst Icon: React.FC<Props> & { Assets: typeof IconAssets } = ({ icon, color, size = 24, containerStyle, style }) => {\n const sizeStyle = sizeStyles[size as SizeFactor] ?? { width: size, height: size };\n const { colors } = useUIKitTheme();\n return (\n <View style={[containerStyle, containerStyles.container]}>\n <Image\n resizeMode={'contain'}\n source={IconAssets[icon]}\n style={[{ tintColor: color ?? colors.primary }, sizeStyle, style]}\n />\n </View>\n );\n};\n\nconst containerStyles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst sizeStyles = createStyleSheet({\n 16: {\n width: 16,\n height: 16,\n },\n 20: {\n width: 20,\n height: 20,\n },\n 24: {\n width: 24,\n height: 24,\n },\n 28: {\n width: 28,\n height: 28,\n },\n 32: {\n width: 32,\n height: 32,\n },\n});\n\nIcon.Assets = IconAssets;\nexport default Icon;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAT,EAAuCC,UAAvC,EAAmDC,IAAnD,QAA0E,cAA1E;AAEA,OAAOC,UAAP,MAAuB,mBAAvB;AACA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;;AAaA,MAAMC,IAAqD,GAAG,QAAuD;EAAA,IAAtD;IAAEC,IAAF;IAAQC,KAAR;IAAeC,IAAI,GAAG,EAAtB;IAA0BC,cAA1B;IAA0CC;EAA1C,CAAsD;EACnH,MAAMC,SAAS,GAAGC,UAAU,CAACJ,IAAD,CAAV,IAAkC;IAAEK,KAAK,EAAEL,IAAT;IAAeM,MAAM,EAAEN;EAAvB,CAApD;EACA,MAAM;IAAEO;EAAF,IAAaX,aAAa,EAAhC;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACK,cAAD,EAAiBO,eAAe,CAACC,SAAjC;EAAb,gBACE,oBAAC,KAAD;IACE,UAAU,EAAE,SADd;IAEE,MAAM,EAAEf,UAAU,CAACI,IAAD,CAFpB;IAGE,KAAK,EAAE,CAAC;MAAEY,SAAS,EAAEX,KAAK,IAAIQ,MAAM,CAACI;IAA7B,CAAD,EAAyCR,SAAzC,EAAoDD,KAApD;EAHT,EADF,CADF;AASD,CAZD;;AAcA,MAAMM,eAAe,GAAGhB,UAAU,CAACoB,MAAX,CAAkB;EACxCH,SAAS,EAAE;IACTI,UAAU,EAAE,QADH;IAETC,cAAc,EAAE;EAFP;AAD6B,CAAlB,CAAxB;AAOA,MAAMV,UAAU,GAAGT,gBAAgB,CAAC;EAClC,IAAI;IACFU,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAD8B;EAKlC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAL8B;EASlC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAT8B;EAalC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAb8B;EAiBlC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN;AAjB8B,CAAD,CAAnC;AAuBAT,IAAI,CAACkB,MAAL,GAAcrB,UAAd;AACA,eAAeG,IAAf"}
@@ -0,0 +1,64 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { Animated, Easing } from 'react-native';
3
+ import useUIKitTheme from '../../theme/useUIKitTheme';
4
+ import Icon from '../Icon';
5
+
6
+ const LoadingSpinner = _ref => {
7
+ let {
8
+ size = 24,
9
+ color,
10
+ style
11
+ } = _ref;
12
+ const {
13
+ colors
14
+ } = useUIKitTheme();
15
+ return /*#__PURE__*/React.createElement(Rotate, {
16
+ style: style
17
+ }, /*#__PURE__*/React.createElement(Icon, {
18
+ icon: 'spinner',
19
+ size: size,
20
+ color: color ?? colors.primary
21
+ }));
22
+ };
23
+
24
+ const useLoopAnimated = function (duration) {
25
+ let useNativeDriver = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
26
+ const animated = useRef(new Animated.Value(0)).current;
27
+ useEffect(() => {
28
+ Animated.loop(Animated.timing(animated, {
29
+ toValue: 1,
30
+ duration,
31
+ useNativeDriver,
32
+ easing: Easing.inOut(Easing.linear)
33
+ }), {
34
+ resetBeforeIteration: true
35
+ }).start();
36
+ return () => {
37
+ animated.stopAnimation();
38
+ animated.setValue(0);
39
+ };
40
+ }, []);
41
+ return animated;
42
+ };
43
+
44
+ const Rotate = _ref2 => {
45
+ let {
46
+ children,
47
+ style
48
+ } = _ref2;
49
+ const loop = useLoopAnimated(1000);
50
+ const rotate = loop.interpolate({
51
+ inputRange: [0, 1],
52
+ outputRange: ['0deg', '360deg']
53
+ });
54
+ return /*#__PURE__*/React.createElement(Animated.View, {
55
+ style: [style, {
56
+ transform: [{
57
+ rotate
58
+ }]
59
+ }]
60
+ }, children);
61
+ };
62
+
63
+ export default LoadingSpinner;
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","Animated","Easing","useUIKitTheme","Icon","LoadingSpinner","size","color","style","colors","primary","useLoopAnimated","duration","useNativeDriver","animated","Value","current","loop","timing","toValue","easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","Rotate","children","rotate","interpolate","inputRange","outputRange","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing, StyleProp, ViewStyle } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\n\ntype Props = {\n size?: number;\n color?: string;\n style?: StyleProp<ViewStyle>;\n};\n\nconst LoadingSpinner: React.FC<Props> = ({ size = 24, color, style }) => {\n const { colors } = useUIKitTheme();\n return (\n <Rotate style={style}>\n <Icon icon={'spinner'} size={size} color={color ?? colors.primary} />\n </Rotate>\n );\n};\n\nconst useLoopAnimated = (duration: number, useNativeDriver = true) => {\n const animated = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(animated, { toValue: 1, duration, useNativeDriver, easing: Easing.inOut(Easing.linear) }),\n { resetBeforeIteration: true },\n ).start();\n\n return () => {\n animated.stopAnimation();\n animated.setValue(0);\n };\n }, []);\n\n return animated;\n};\n\nconst Rotate: React.FC<{ style: StyleProp<ViewStyle> }> = ({ children, style }) => {\n const loop = useLoopAnimated(1000);\n const rotate = loop.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });\n return <Animated.View style={[style, { transform: [{ rotate }] }]}>{children}</Animated.View>;\n};\n\nexport default LoadingSpinner;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,MAA3B,QAAyC,OAAzC;AACA,SAASC,QAAT,EAAmBC,MAAnB,QAAuD,cAAvD;AAEA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAQA,MAAMC,cAA+B,GAAG,QAAiC;EAAA,IAAhC;IAAEC,IAAI,GAAG,EAAT;IAAaC,KAAb;IAAoBC;EAApB,CAAgC;EACvE,MAAM;IAAEC;EAAF,IAAaN,aAAa,EAAhC;EACA,oBACE,oBAAC,MAAD;IAAQ,KAAK,EAAEK;EAAf,gBACE,oBAAC,IAAD;IAAM,IAAI,EAAE,SAAZ;IAAuB,IAAI,EAAEF,IAA7B;IAAmC,KAAK,EAAEC,KAAK,IAAIE,MAAM,CAACC;EAA1D,EADF,CADF;AAKD,CAPD;;AASA,MAAMC,eAAe,GAAG,UAACC,QAAD,EAA8C;EAAA,IAA3BC,eAA2B,uEAAT,IAAS;EACpE,MAAMC,QAAQ,GAAGd,MAAM,CAAC,IAAIC,QAAQ,CAACc,KAAb,CAAmB,CAAnB,CAAD,CAAN,CAA8BC,OAA/C;EAEAjB,SAAS,CAAC,MAAM;IACdE,QAAQ,CAACgB,IAAT,CACEhB,QAAQ,CAACiB,MAAT,CAAgBJ,QAAhB,EAA0B;MAAEK,OAAO,EAAE,CAAX;MAAcP,QAAd;MAAwBC,eAAxB;MAAyCO,MAAM,EAAElB,MAAM,CAACmB,KAAP,CAAanB,MAAM,CAACoB,MAApB;IAAjD,CAA1B,CADF,EAEE;MAAEC,oBAAoB,EAAE;IAAxB,CAFF,EAGEC,KAHF;IAKA,OAAO,MAAM;MACXV,QAAQ,CAACW,aAAT;MACAX,QAAQ,CAACY,QAAT,CAAkB,CAAlB;IACD,CAHD;EAID,CAVQ,EAUN,EAVM,CAAT;EAYA,OAAOZ,QAAP;AACD,CAhBD;;AAkBA,MAAMa,MAAiD,GAAG,SAAyB;EAAA,IAAxB;IAAEC,QAAF;IAAYpB;EAAZ,CAAwB;EACjF,MAAMS,IAAI,GAAGN,eAAe,CAAC,IAAD,CAA5B;EACA,MAAMkB,MAAM,GAAGZ,IAAI,CAACa,WAAL,CAAiB;IAAEC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAd;IAAsBC,WAAW,EAAE,CAAC,MAAD,EAAS,QAAT;EAAnC,CAAjB,CAAf;EACA,oBAAO,oBAAC,QAAD,CAAU,IAAV;IAAe,KAAK,EAAE,CAACxB,KAAD,EAAQ;MAAEyB,SAAS,EAAE,CAAC;QAAEJ;MAAF,CAAD;IAAb,CAAR;EAAtB,GAA6DD,QAA7D,CAAP;AACD,CAJD;;AAMA,eAAevB,cAAf"}
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import { Pressable, View } from 'react-native';
3
+ import { conditionChaining } from '@sendbird/uikit-utils';
4
+ import createStyleSheet from '../../styles/createStyleSheet';
5
+ import useUIKitTheme from '../../theme/useUIKitTheme';
6
+ import Divider from '../Divider';
7
+ import Icon from '../Icon';
8
+ import Text from '../Text';
9
+
10
+ const MenuBar = _ref => {
11
+ let {
12
+ variant = 'default',
13
+ disabled,
14
+ onPress,
15
+ name,
16
+ icon,
17
+ iconColor,
18
+ iconBackgroundColor,
19
+ actionLabel,
20
+ actionItem = null
21
+ } = _ref;
22
+ const {
23
+ palette,
24
+ colors
25
+ } = useUIKitTheme();
26
+ return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Pressable, {
27
+ disabled: disabled,
28
+ onPress: onPress,
29
+ style: styles.container
30
+ }, icon && /*#__PURE__*/React.createElement(Icon, {
31
+ icon: icon,
32
+ size: variant === 'contained' ? 16 : 24,
33
+ color: conditionChaining([variant === 'contained', iconColor], [palette.background50, iconColor, colors.primary]),
34
+ containerStyle: [styles.icon, variant === 'contained' && styles.containedIcon, variant === 'contained' && {
35
+ backgroundColor: iconBackgroundColor ?? palette.background400
36
+ }]
37
+ }), /*#__PURE__*/React.createElement(Text, {
38
+ subtitle2: true,
39
+ numberOfLines: 1,
40
+ style: styles.name
41
+ }, name), Boolean(actionLabel) && /*#__PURE__*/React.createElement(Text, {
42
+ subtitle2: true,
43
+ numberOfLines: 1,
44
+ color: colors.onBackground02,
45
+ style: styles.actionLabel
46
+ }, actionLabel), actionItem), /*#__PURE__*/React.createElement(Divider, null));
47
+ };
48
+
49
+ const styles = createStyleSheet({
50
+ container: {
51
+ paddingVertical: 16,
52
+ flexDirection: 'row',
53
+ alignItems: 'center'
54
+ },
55
+ name: {
56
+ flex: 1,
57
+ marginRight: 8
58
+ },
59
+ icon: {
60
+ marginRight: 16
61
+ },
62
+ containedIcon: {
63
+ borderRadius: 24,
64
+ padding: 4
65
+ },
66
+ actionLabel: {
67
+ marginRight: 4
68
+ }
69
+ });
70
+ export default MenuBar;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","View","conditionChaining","createStyleSheet","useUIKitTheme","Divider","Icon","Text","MenuBar","variant","disabled","onPress","name","icon","iconColor","iconBackgroundColor","actionLabel","actionItem","palette","colors","styles","container","background50","primary","containedIcon","backgroundColor","background400","Boolean","onBackground02","paddingVertical","flexDirection","alignItems","flex","marginRight","borderRadius","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Divider from '../Divider';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\nexport type MenuBarProps = {\n variant?: 'default' | 'contained';\n\n onPress: () => void;\n disabled?: boolean;\n\n icon: keyof typeof Icon.Assets;\n iconColor?: string;\n iconBackgroundColor?: string;\n name: string;\n\n actionLabel?: string;\n actionItem?: React.ReactNode;\n};\nconst MenuBar: React.FC<MenuBarProps> = ({\n variant = 'default',\n disabled,\n onPress,\n name,\n icon,\n iconColor,\n iconBackgroundColor,\n actionLabel,\n actionItem = null,\n}) => {\n const { palette, colors } = useUIKitTheme();\n\n return (\n <View>\n <Pressable disabled={disabled} onPress={onPress} style={styles.container}>\n {icon && (\n <Icon\n icon={icon}\n size={variant === 'contained' ? 16 : 24}\n color={conditionChaining(\n [variant === 'contained', iconColor],\n [palette.background50, iconColor, colors.primary],\n )}\n containerStyle={[\n styles.icon,\n variant === 'contained' && styles.containedIcon,\n variant === 'contained' && { backgroundColor: iconBackgroundColor ?? palette.background400 },\n ]}\n />\n )}\n <Text subtitle2 numberOfLines={1} style={styles.name}>\n {name}\n </Text>\n {Boolean(actionLabel) && (\n <Text subtitle2 numberOfLines={1} color={colors.onBackground02} style={styles.actionLabel}>\n {actionLabel}\n </Text>\n )}\n {actionItem}\n </Pressable>\n <Divider />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingVertical: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n icon: {\n marginRight: 16,\n },\n containedIcon: {\n borderRadius: 24,\n padding: 4,\n },\n actionLabel: {\n marginRight: 4,\n },\n});\n\nexport default MenuBar;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,EAAoBC,IAApB,QAAgC,cAAhC;AAEA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAgBA,MAAMC,OAA+B,GAAG,QAUlC;EAAA,IAVmC;IACvCC,OAAO,GAAG,SAD6B;IAEvCC,QAFuC;IAGvCC,OAHuC;IAIvCC,IAJuC;IAKvCC,IALuC;IAMvCC,SANuC;IAOvCC,mBAPuC;IAQvCC,WARuC;IASvCC,UAAU,GAAG;EAT0B,CAUnC;EACJ,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAsBf,aAAa,EAAzC;EAEA,oBACE,oBAAC,IAAD,qBACE,oBAAC,SAAD;IAAW,QAAQ,EAAEM,QAArB;IAA+B,OAAO,EAAEC,OAAxC;IAAiD,KAAK,EAAES,MAAM,CAACC;EAA/D,GACGR,IAAI,iBACH,oBAAC,IAAD;IACE,IAAI,EAAEA,IADR;IAEE,IAAI,EAAEJ,OAAO,KAAK,WAAZ,GAA0B,EAA1B,GAA+B,EAFvC;IAGE,KAAK,EAAEP,iBAAiB,CACtB,CAACO,OAAO,KAAK,WAAb,EAA0BK,SAA1B,CADsB,EAEtB,CAACI,OAAO,CAACI,YAAT,EAAuBR,SAAvB,EAAkCK,MAAM,CAACI,OAAzC,CAFsB,CAH1B;IAOE,cAAc,EAAE,CACdH,MAAM,CAACP,IADO,EAEdJ,OAAO,KAAK,WAAZ,IAA2BW,MAAM,CAACI,aAFpB,EAGdf,OAAO,KAAK,WAAZ,IAA2B;MAAEgB,eAAe,EAAEV,mBAAmB,IAAIG,OAAO,CAACQ;IAAlD,CAHb;EAPlB,EAFJ,eAgBE,oBAAC,IAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEN,MAAM,CAACR;EAAhD,GACGA,IADH,CAhBF,EAmBGe,OAAO,CAACX,WAAD,CAAP,iBACC,oBAAC,IAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEG,MAAM,CAACS,cAAhD;IAAgE,KAAK,EAAER,MAAM,CAACJ;EAA9E,GACGA,WADH,CApBJ,EAwBGC,UAxBH,CADF,eA2BE,oBAAC,OAAD,OA3BF,CADF;AA+BD,CA5CD;;AA8CA,MAAMG,MAAM,GAAGjB,gBAAgB,CAAC;EAC9BkB,SAAS,EAAE;IACTQ,eAAe,EAAE,EADR;IAETC,aAAa,EAAE,KAFN;IAGTC,UAAU,EAAE;EAHH,CADmB;EAM9BnB,IAAI,EAAE;IACJoB,IAAI,EAAE,CADF;IAEJC,WAAW,EAAE;EAFT,CANwB;EAU9BpB,IAAI,EAAE;IACJoB,WAAW,EAAE;EADT,CAVwB;EAa9BT,aAAa,EAAE;IACbU,YAAY,EAAE,EADD;IAEbC,OAAO,EAAE;EAFI,CAbe;EAiB9BnB,WAAW,EAAE;IACXiB,WAAW,EAAE;EADF;AAjBiB,CAAD,CAA/B;AAsBA,eAAezB,OAAf"}
@@ -0,0 +1,196 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React, { useEffect, useRef, useState } from 'react';
4
+ import { Animated, Dimensions, KeyboardAvoidingView, PanResponder, Platform, Pressable, Modal as RNModal, StyleSheet, TouchableWithoutFeedback, useWindowDimensions } from 'react-native';
5
+ import createStyleSheet from '../../styles/createStyleSheet';
6
+ import useHeaderStyle from '../../styles/useHeaderStyle';
7
+ import useUIKitTheme from '../../theme/useUIKitTheme';
8
+
9
+ /**
10
+ * Modal Open: Triggered by Modal.props.visible state changed to true
11
+ * - visible true -> modalVisible true -> animation start
12
+ *
13
+ * Modal Close: Triggered by Modal.props.onClose() call
14
+ * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false
15
+ * */
16
+ const Modal = _ref => {
17
+ let {
18
+ children,
19
+ onClose,
20
+ backgroundStyle,
21
+ onDismiss,
22
+ type = 'fade',
23
+ visible = false,
24
+ disableBackgroundClose = false,
25
+ enableKeyboardAvoid = false,
26
+ statusBarTranslucent,
27
+ ...props
28
+ } = _ref;
29
+ const {
30
+ palette
31
+ } = useUIKitTheme();
32
+ const {
33
+ content,
34
+ backdrop,
35
+ showTransition,
36
+ hideTransition
37
+ } = useModalAnimation(type);
38
+ const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);
39
+ const {
40
+ topInset
41
+ } = useHeaderStyle();
42
+ const [modalVisible, setModalVisible] = useState(false);
43
+
44
+ const showAction = () => setModalVisible(true);
45
+
46
+ const hideAction = () => hideTransition(() => setModalVisible(false));
47
+
48
+ const {
49
+ width,
50
+ height
51
+ } = useWindowDimensions();
52
+ useEffect(() => {
53
+ if (visible) showAction();else hideAction();
54
+ }, [visible]);
55
+ useOnDismiss(modalVisible, onDismiss);
56
+ return /*#__PURE__*/React.createElement(RNModal, _extends({
57
+ transparent: true,
58
+ hardwareAccelerated: true,
59
+ visible: modalVisible,
60
+ onRequestClose: onClose,
61
+ onShow: () => showTransition(),
62
+ onDismiss: onDismiss,
63
+ supportedOrientations: ['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right'],
64
+ animationType: 'none'
65
+ }, props), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
66
+ onPress: disableBackgroundClose ? undefined : onClose
67
+ }, /*#__PURE__*/React.createElement(Animated.View, {
68
+ style: [StyleSheet.absoluteFill, {
69
+ opacity: backdrop.opacity,
70
+ backgroundColor: palette.onBackgroundLight03
71
+ }]
72
+ })), /*#__PURE__*/React.createElement(KeyboardAvoidingView // NOTE: This is trick for Android.
73
+ // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.
74
+ , {
75
+ key: `${width}-${height}`,
76
+ enabled: enableKeyboardAvoid,
77
+ style: styles.background,
78
+ behavior: Platform.select({
79
+ ios: 'padding',
80
+ default: 'height'
81
+ }),
82
+ pointerEvents: 'box-none',
83
+ keyboardVerticalOffset: enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0
84
+ }, /*#__PURE__*/React.createElement(Animated.View, _extends({
85
+ style: [styles.background, backgroundStyle, {
86
+ opacity: content.opacity,
87
+ transform: [{
88
+ translateY: content.translateY
89
+ }]
90
+ }],
91
+ pointerEvents: 'box-none'
92
+ }, panResponder.panHandlers), /*#__PURE__*/React.createElement(Pressable // NOTE: https://github.com/facebook/react-native/issues/14295
93
+ // Due to 'Pressable', the width of the children must be explicitly specified as a number.
94
+ , null, children))));
95
+ };
96
+
97
+ const isHideGesture = (distanceY, velocityY) => {
98
+ return distanceY > 125 || distanceY > 0 && velocityY > 0.1;
99
+ };
100
+
101
+ const useModalPanResponder = (type, translateY, show, hide) => {
102
+ if (type === 'fade') return {
103
+ panHandlers: {}
104
+ };
105
+ return React.useRef(PanResponder.create({
106
+ onMoveShouldSetPanResponderCapture: (_, _ref2) => {
107
+ let {
108
+ dy
109
+ } = _ref2;
110
+ return dy > 8;
111
+ },
112
+ // @ts-ignore
113
+ onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),
114
+ onPanResponderMove: (_, _ref3) => {
115
+ let {
116
+ dy
117
+ } = _ref3;
118
+ return dy >= 0 && translateY.setValue(dy);
119
+ },
120
+ // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),
121
+ onPanResponderRelease: (_, _ref4) => {
122
+ let {
123
+ dy,
124
+ vy
125
+ } = _ref4;
126
+ if (isHideGesture(dy, vy)) hide();else show();
127
+ }
128
+ })).current;
129
+ };
130
+
131
+ const useModalAnimation = type => {
132
+ const initialY = type === 'slide' ? Dimensions.get('window').height : 0;
133
+ const baseAnimBackground = useRef(new Animated.Value(0)).current;
134
+ const baseAnimContent = useRef(new Animated.Value(initialY)).current;
135
+ const content = {
136
+ opacity: baseAnimBackground.interpolate({
137
+ inputRange: [0, 1],
138
+ outputRange: [type === 'slide' ? 1 : 0, 1]
139
+ }),
140
+ translateY: baseAnimContent
141
+ };
142
+ const backdrop = {
143
+ opacity: baseAnimBackground.interpolate({
144
+ inputRange: [0, 1],
145
+ outputRange: [0, 1]
146
+ })
147
+ };
148
+
149
+ const createTransition = toValue => {
150
+ const config = {
151
+ duration: 250,
152
+ useNativeDriver: false
153
+ };
154
+ return Animated.parallel([Animated.timing(baseAnimBackground, {
155
+ toValue,
156
+ ...config
157
+ }), Animated.timing(baseAnimContent, {
158
+ toValue: toValue === 0 ? initialY : 0,
159
+ ...config
160
+ })]).start;
161
+ };
162
+
163
+ return {
164
+ content,
165
+ backdrop,
166
+ showTransition: createTransition(1),
167
+ hideTransition: createTransition(0)
168
+ };
169
+ }; // NOTE: onDismiss is supports iOS only
170
+
171
+
172
+ const useOnDismiss = (visible, onDismiss) => {
173
+ const prevVisible = usePrevProp(visible);
174
+ useEffect(() => {
175
+ if (Platform.OS === 'ios') return;
176
+ if (prevVisible && !visible) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
177
+ }, [prevVisible, visible]);
178
+ };
179
+
180
+ const usePrevProp = prop => {
181
+ const prev = useRef(prop);
182
+ const curr = useRef(prop);
183
+ useEffect(() => {
184
+ prev.current = curr.current;
185
+ curr.current = prop;
186
+ });
187
+ return prev.current;
188
+ };
189
+
190
+ const styles = createStyleSheet({
191
+ background: {
192
+ flex: 1
193
+ }
194
+ });
195
+ export default Modal;
196
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","useState","Animated","Dimensions","KeyboardAvoidingView","PanResponder","Platform","Pressable","Modal","RNModal","StyleSheet","TouchableWithoutFeedback","useWindowDimensions","createStyleSheet","useHeaderStyle","useUIKitTheme","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","modalVisible","setModalVisible","showAction","hideAction","width","height","useOnDismiss","undefined","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","get","baseAnimBackground","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n type?: 'slide' | 'fade';\n onClose: () => void;\n backgroundStyle?: StyleProp<ViewStyle>;\n disableBackgroundClose?: boolean;\n enableKeyboardAvoid?: boolean;\n} & Omit<ModalProps, 'animationType' | 'onRequestClose'>;\n\n/**\n * Modal Open: Triggered by Modal.props.visible state changed to true\n * - visible true -> modalVisible true -> animation start\n *\n * Modal Close: Triggered by Modal.props.onClose() call\n * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false\n * */\nconst Modal: React.FC<Props> = ({\n children,\n onClose,\n backgroundStyle,\n onDismiss,\n type = 'fade',\n visible = false,\n disableBackgroundClose = false,\n enableKeyboardAvoid = false,\n statusBarTranslucent,\n ...props\n}) => {\n const { palette } = useUIKitTheme();\n const { content, backdrop, showTransition, hideTransition } = useModalAnimation(type);\n const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);\n const { topInset } = useHeaderStyle();\n\n const [modalVisible, setModalVisible] = useState(false);\n const showAction = () => setModalVisible(true);\n const hideAction = () => hideTransition(() => setModalVisible(false));\n\n const { width, height } = useWindowDimensions();\n\n useEffect(() => {\n if (visible) showAction();\n else hideAction();\n }, [visible]);\n\n useOnDismiss(modalVisible, onDismiss);\n\n return (\n <RNModal\n transparent\n hardwareAccelerated\n visible={modalVisible}\n onRequestClose={onClose}\n onShow={() => showTransition()}\n onDismiss={onDismiss}\n supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}\n animationType={'none'}\n {...props}\n >\n <TouchableWithoutFeedback onPress={disableBackgroundClose ? undefined : onClose}>\n <Animated.View\n style={[StyleSheet.absoluteFill, { opacity: backdrop.opacity, backgroundColor: palette.onBackgroundLight03 }]}\n />\n </TouchableWithoutFeedback>\n <KeyboardAvoidingView\n // NOTE: This is trick for Android.\n // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.\n key={`${width}-${height}`}\n enabled={enableKeyboardAvoid}\n style={styles.background}\n behavior={Platform.select({ ios: 'padding', default: 'height' })}\n pointerEvents={'box-none'}\n keyboardVerticalOffset={enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0}\n >\n <Animated.View\n style={[\n styles.background,\n backgroundStyle,\n { opacity: content.opacity, transform: [{ translateY: content.translateY }] },\n ]}\n pointerEvents={'box-none'}\n {...panResponder.panHandlers}\n >\n <Pressable\n // NOTE: https://github.com/facebook/react-native/issues/14295\n // Due to 'Pressable', the width of the children must be explicitly specified as a number.\n >\n {children}\n </Pressable>\n </Animated.View>\n </KeyboardAvoidingView>\n </RNModal>\n );\n};\n\nconst isHideGesture = (distanceY: number, velocityY: number) => {\n return distanceY > 125 || (distanceY > 0 && velocityY > 0.1);\n};\nconst useModalPanResponder = (\n type: 'slide' | 'fade',\n translateY: Animated.Value,\n show: () => void,\n hide: () => void,\n) => {\n if (type === 'fade') return { panHandlers: {} };\n return React.useRef(\n PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, { dy }) => dy > 8,\n // @ts-ignore\n onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),\n onPanResponderMove: (_, { dy }) => dy >= 0 && translateY.setValue(dy), // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),\n onPanResponderRelease: (_, { dy, vy }) => {\n if (isHideGesture(dy, vy)) hide();\n else show();\n },\n }),\n ).current;\n};\n\nconst useModalAnimation = (type: 'slide' | 'fade') => {\n const initialY = type === 'slide' ? Dimensions.get('window').height : 0;\n const baseAnimBackground = useRef(new Animated.Value(0)).current;\n const baseAnimContent = useRef(new Animated.Value(initialY)).current;\n\n const content = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [type === 'slide' ? 1 : 0, 1],\n }),\n translateY: baseAnimContent,\n };\n const backdrop = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n }),\n };\n const createTransition = (toValue: 0 | 1) => {\n const config = { duration: 250, useNativeDriver: false };\n return Animated.parallel([\n Animated.timing(baseAnimBackground, { toValue, ...config }),\n Animated.timing(baseAnimContent, { toValue: toValue === 0 ? initialY : 0, ...config }),\n ]).start;\n };\n return {\n content,\n backdrop,\n showTransition: createTransition(1),\n hideTransition: createTransition(0),\n };\n};\n\n// NOTE: onDismiss is supports iOS only\nconst useOnDismiss = (visible: boolean, onDismiss?: () => void) => {\n const prevVisible = usePrevProp(visible);\n useEffect(() => {\n if (Platform.OS === 'ios') return;\n if (prevVisible && !visible) onDismiss?.();\n }, [prevVisible, visible]);\n};\n\nconst usePrevProp = <T,>(prop: T) => {\n const prev = useRef(prop);\n const curr = useRef(prop);\n useEffect(() => {\n prev.current = curr.current;\n curr.current = prop;\n });\n return prev.current;\n};\n\nconst styles = createStyleSheet({\n background: { flex: 1 },\n});\n\nexport default Modal;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,MAA3B,EAAmCC,QAAnC,QAAmD,OAAnD;AACA,SACEC,QADF,EAEEC,UAFF,EAGEC,oBAHF,EAKEC,YALF,EAMEC,QANF,EAOEC,SAPF,EAQEC,KAAK,IAAIC,OARX,EAUEC,UAVF,EAWEC,wBAXF,EAaEC,mBAbF,QAcO,cAdP;AAgBA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,cAAP,MAA2B,6BAA3B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMP,KAAsB,GAAG,QAWzB;EAAA,IAX0B;IAC9BQ,QAD8B;IAE9BC,OAF8B;IAG9BC,eAH8B;IAI9BC,SAJ8B;IAK9BC,IAAI,GAAG,MALuB;IAM9BC,OAAO,GAAG,KANoB;IAO9BC,sBAAsB,GAAG,KAPK;IAQ9BC,mBAAmB,GAAG,KARQ;IAS9BC,oBAT8B;IAU9B,GAAGC;EAV2B,CAW1B;EACJ,MAAM;IAAEC;EAAF,IAAcX,aAAa,EAAjC;EACA,MAAM;IAAEY,OAAF;IAAWC,QAAX;IAAqBC,cAArB;IAAqCC;EAArC,IAAwDC,iBAAiB,CAACX,IAAD,CAA/E;EACA,MAAMY,YAAY,GAAGC,oBAAoB,CAACb,IAAD,EAAOO,OAAO,CAACO,UAAf,EAA2BL,cAA3B,EAA2CZ,OAA3C,CAAzC;EACA,MAAM;IAAEkB;EAAF,IAAerB,cAAc,EAAnC;EAEA,MAAM,CAACsB,YAAD,EAAeC,eAAf,IAAkCpC,QAAQ,CAAC,KAAD,CAAhD;;EACA,MAAMqC,UAAU,GAAG,MAAMD,eAAe,CAAC,IAAD,CAAxC;;EACA,MAAME,UAAU,GAAG,MAAMT,cAAc,CAAC,MAAMO,eAAe,CAAC,KAAD,CAAtB,CAAvC;;EAEA,MAAM;IAAEG,KAAF;IAASC;EAAT,IAAoB7B,mBAAmB,EAA7C;EAEAb,SAAS,CAAC,MAAM;IACd,IAAIsB,OAAJ,EAAaiB,UAAU,GAAvB,KACKC,UAAU;EAChB,CAHQ,EAGN,CAAClB,OAAD,CAHM,CAAT;EAKAqB,YAAY,CAACN,YAAD,EAAejB,SAAf,CAAZ;EAEA,oBACE,oBAAC,OAAD;IACE,WAAW,MADb;IAEE,mBAAmB,MAFrB;IAGE,OAAO,EAAEiB,YAHX;IAIE,cAAc,EAAEnB,OAJlB;IAKE,MAAM,EAAE,MAAMY,cAAc,EAL9B;IAME,SAAS,EAAEV,SANb;IAOE,qBAAqB,EAAE,CAAC,UAAD,EAAa,sBAAb,EAAqC,WAArC,EAAkD,gBAAlD,EAAoE,iBAApE,CAPzB;IAQE,aAAa,EAAE;EARjB,GASMM,KATN,gBAWE,oBAAC,wBAAD;IAA0B,OAAO,EAAEH,sBAAsB,GAAGqB,SAAH,GAAe1B;EAAxE,gBACE,oBAAC,QAAD,CAAU,IAAV;IACE,KAAK,EAAE,CAACP,UAAU,CAACkC,YAAZ,EAA0B;MAAEC,OAAO,EAAEjB,QAAQ,CAACiB,OAApB;MAA6BC,eAAe,EAAEpB,OAAO,CAACqB;IAAtD,CAA1B;EADT,EADF,CAXF,eAgBE,oBAAC,oBAAD,CACE;EACA;EAFF;IAGE,GAAG,EAAG,GAAEP,KAAM,IAAGC,MAAO,EAH1B;IAIE,OAAO,EAAElB,mBAJX;IAKE,KAAK,EAAEyB,MAAM,CAACC,UALhB;IAME,QAAQ,EAAE3C,QAAQ,CAAC4C,MAAT,CAAgB;MAAEC,GAAG,EAAE,SAAP;MAAkBC,OAAO,EAAE;IAA3B,CAAhB,CANZ;IAOE,aAAa,EAAE,UAPjB;IAQE,sBAAsB,EAAE7B,mBAAmB,IAAIC,oBAAvB,GAA8C,CAACW,QAA/C,GAA0D;EARpF,gBAUE,oBAAC,QAAD,CAAU,IAAV;IACE,KAAK,EAAE,CACLa,MAAM,CAACC,UADF,EAEL/B,eAFK,EAGL;MAAE2B,OAAO,EAAElB,OAAO,CAACkB,OAAnB;MAA4BQ,SAAS,EAAE,CAAC;QAAEnB,UAAU,EAAEP,OAAO,CAACO;MAAtB,CAAD;IAAvC,CAHK,CADT;IAME,aAAa,EAAE;EANjB,GAOMF,YAAY,CAACsB,WAPnB,gBASE,oBAAC,SAAD,CACA;EACA;EAFA,QAIGtC,QAJH,CATF,CAVF,CAhBF,CADF;AA8CD,CA5ED;;AA8EA,MAAMuC,aAAa,GAAG,CAACC,SAAD,EAAoBC,SAApB,KAA0C;EAC9D,OAAOD,SAAS,GAAG,GAAZ,IAAoBA,SAAS,GAAG,CAAZ,IAAiBC,SAAS,GAAG,GAAxD;AACD,CAFD;;AAGA,MAAMxB,oBAAoB,GAAG,CAC3Bb,IAD2B,EAE3Bc,UAF2B,EAG3BwB,IAH2B,EAI3BC,IAJ2B,KAKxB;EACH,IAAIvC,IAAI,KAAK,MAAb,EAAqB,OAAO;IAAEkC,WAAW,EAAE;EAAf,CAAP;EACrB,OAAOxD,KAAK,CAACE,MAAN,CACLK,YAAY,CAACuD,MAAb,CAAoB;IAClBC,kCAAkC,EAAE,CAACC,CAAD;MAAA,IAAI;QAAEC;MAAF,CAAJ;MAAA,OAAeA,EAAE,GAAG,CAApB;IAAA,CADlB;IAElB;IACAC,mBAAmB,EAAE,MAAM9B,UAAU,CAAC+B,SAAX,CAAqB/B,UAAU,CAACgC,UAAX,EAArB,CAHT;IAIlBC,kBAAkB,EAAE,CAACL,CAAD;MAAA,IAAI;QAAEC;MAAF,CAAJ;MAAA,OAAeA,EAAE,IAAI,CAAN,IAAW7B,UAAU,CAACkC,QAAX,CAAoBL,EAApB,CAA1B;IAAA,CAJF;IAIqD;IACvEM,qBAAqB,EAAE,CAACP,CAAD,YAAmB;MAAA,IAAf;QAAEC,EAAF;QAAMO;MAAN,CAAe;MACxC,IAAIf,aAAa,CAACQ,EAAD,EAAKO,EAAL,CAAjB,EAA2BX,IAAI,GAA/B,KACKD,IAAI;IACV;EARiB,CAApB,CADK,EAWLa,OAXF;AAYD,CAnBD;;AAqBA,MAAMxC,iBAAiB,GAAIX,IAAD,IAA4B;EACpD,MAAMoD,QAAQ,GAAGpD,IAAI,KAAK,OAAT,GAAmBjB,UAAU,CAACsE,GAAX,CAAe,QAAf,EAAyBhC,MAA5C,GAAqD,CAAtE;EACA,MAAMiC,kBAAkB,GAAG1E,MAAM,CAAC,IAAIE,QAAQ,CAACyE,KAAb,CAAmB,CAAnB,CAAD,CAAN,CAA8BJ,OAAzD;EACA,MAAMK,eAAe,GAAG5E,MAAM,CAAC,IAAIE,QAAQ,CAACyE,KAAb,CAAmBH,QAAnB,CAAD,CAAN,CAAqCD,OAA7D;EAEA,MAAM5C,OAAO,GAAG;IACdkB,OAAO,EAAE6B,kBAAkB,CAACG,WAAnB,CAA+B;MACtCC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD0B;MAEtCC,WAAW,EAAE,CAAC3D,IAAI,KAAK,OAAT,GAAmB,CAAnB,GAAuB,CAAxB,EAA2B,CAA3B;IAFyB,CAA/B,CADK;IAKdc,UAAU,EAAE0C;EALE,CAAhB;EAOA,MAAMhD,QAAQ,GAAG;IACfiB,OAAO,EAAE6B,kBAAkB,CAACG,WAAnB,CAA+B;MACtCC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD0B;MAEtCC,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ;IAFyB,CAA/B;EADM,CAAjB;;EAMA,MAAMC,gBAAgB,GAAIC,OAAD,IAAoB;IAC3C,MAAMC,MAAM,GAAG;MAAEC,QAAQ,EAAE,GAAZ;MAAiBC,eAAe,EAAE;IAAlC,CAAf;IACA,OAAOlF,QAAQ,CAACmF,QAAT,CAAkB,CACvBnF,QAAQ,CAACoF,MAAT,CAAgBZ,kBAAhB,EAAoC;MAAEO,OAAF;MAAW,GAAGC;IAAd,CAApC,CADuB,EAEvBhF,QAAQ,CAACoF,MAAT,CAAgBV,eAAhB,EAAiC;MAAEK,OAAO,EAAEA,OAAO,KAAK,CAAZ,GAAgBT,QAAhB,GAA2B,CAAtC;MAAyC,GAAGU;IAA5C,CAAjC,CAFuB,CAAlB,EAGJK,KAHH;EAID,CAND;;EAOA,OAAO;IACL5D,OADK;IAELC,QAFK;IAGLC,cAAc,EAAEmD,gBAAgB,CAAC,CAAD,CAH3B;IAILlD,cAAc,EAAEkD,gBAAgB,CAAC,CAAD;EAJ3B,CAAP;AAMD,CA/BD,C,CAiCA;;;AACA,MAAMtC,YAAY,GAAG,CAACrB,OAAD,EAAmBF,SAAnB,KAA8C;EACjE,MAAMqE,WAAW,GAAGC,WAAW,CAACpE,OAAD,CAA/B;EACAtB,SAAS,CAAC,MAAM;IACd,IAAIO,QAAQ,CAACoF,EAAT,KAAgB,KAApB,EAA2B;IAC3B,IAAIF,WAAW,IAAI,CAACnE,OAApB,EAA6BF,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS;EACvC,CAHQ,EAGN,CAACqE,WAAD,EAAcnE,OAAd,CAHM,CAAT;AAID,CAND;;AAQA,MAAMoE,WAAW,GAAQE,IAAL,IAAiB;EACnC,MAAMC,IAAI,GAAG5F,MAAM,CAAC2F,IAAD,CAAnB;EACA,MAAME,IAAI,GAAG7F,MAAM,CAAC2F,IAAD,CAAnB;EACA5F,SAAS,CAAC,MAAM;IACd6F,IAAI,CAACrB,OAAL,GAAesB,IAAI,CAACtB,OAApB;IACAsB,IAAI,CAACtB,OAAL,GAAeoB,IAAf;EACD,CAHQ,CAAT;EAIA,OAAOC,IAAI,CAACrB,OAAZ;AACD,CARD;;AAUA,MAAMvB,MAAM,GAAGnC,gBAAgB,CAAC;EAC9BoC,UAAU,EAAE;IAAE6C,IAAI,EAAE;EAAR;AADkB,CAAD,CAA/B;AAIA,eAAetF,KAAf"}
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { conditionChaining } from '@sendbird/uikit-utils';
4
+ import createStyleSheet from '../../styles/createStyleSheet';
5
+ import useUIKitTheme from '../../theme/useUIKitTheme';
6
+ import Button from '../Button';
7
+ import Icon from '../Icon';
8
+ import LoadingSpinner from '../LoadingSpinner';
9
+ import Text from '../Text';
10
+
11
+ const Placeholder = _ref => {
12
+ let {
13
+ icon,
14
+ loading = false,
15
+ message = '',
16
+ errorRetryLabel,
17
+ onPressRetry
18
+ } = _ref;
19
+ const {
20
+ colors
21
+ } = useUIKitTheme(); // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container
22
+
23
+ return /*#__PURE__*/React.createElement(View, {
24
+ style: conditionChaining([loading, errorRetryLabel], [styles.containerLoading, styles.containerError, styles.container])
25
+ }, conditionChaining([loading], [/*#__PURE__*/React.createElement(LoadingSpinner, {
26
+ size: 64,
27
+ color: colors.ui.placeholder.default.none.highlight
28
+ }), /*#__PURE__*/React.createElement(Icon, {
29
+ icon: icon,
30
+ size: 64,
31
+ color: colors.ui.placeholder.default.none.content
32
+ })]), Boolean(message) && !loading && /*#__PURE__*/React.createElement(Text, {
33
+ body3: true,
34
+ color: colors.ui.placeholder.default.none.content
35
+ }, message), Boolean(errorRetryLabel) && !loading && /*#__PURE__*/React.createElement(Button, {
36
+ variant: 'text',
37
+ onPress: onPressRetry,
38
+ contentColor: colors.ui.placeholder.default.none.highlight,
39
+ icon: 'refresh'
40
+ }, errorRetryLabel));
41
+ };
42
+
43
+ const styles = createStyleSheet({
44
+ container: {
45
+ width: 200,
46
+ height: 100,
47
+ alignItems: 'center',
48
+ justifyContent: 'space-between'
49
+ },
50
+ containerError: {
51
+ width: 200,
52
+ height: 148,
53
+ alignItems: 'center',
54
+ justifyContent: 'space-between'
55
+ },
56
+ containerLoading: {
57
+ width: 200,
58
+ height: 100,
59
+ alignItems: 'center',
60
+ justifyContent: 'center'
61
+ }
62
+ });
63
+ export default Placeholder;
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","conditionChaining","createStyleSheet","useUIKitTheme","Button","Icon","LoadingSpinner","Text","Placeholder","icon","loading","message","errorRetryLabel","onPressRetry","colors","styles","containerLoading","containerError","container","ui","placeholder","default","none","highlight","content","Boolean","width","height","alignItems","justifyContent"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Text from '../Text';\n\ntype Props = {\n loading?: boolean;\n\n icon: keyof typeof Icon.Assets;\n message?: string;\n errorRetryLabel?: string;\n onPressRetry?: () => void;\n};\n\nconst Placeholder: React.FC<Props> = ({ icon, loading = false, message = '', errorRetryLabel, onPressRetry }) => {\n const { colors } = useUIKitTheme();\n\n // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container\n return (\n <View\n style={conditionChaining(\n [loading, errorRetryLabel],\n [styles.containerLoading, styles.containerError, styles.container],\n )}\n >\n {conditionChaining(\n [loading],\n [\n <LoadingSpinner size={64} color={colors.ui.placeholder.default.none.highlight} />,\n <Icon icon={icon} size={64} color={colors.ui.placeholder.default.none.content} />,\n ],\n )}\n {Boolean(message) && !loading && (\n <Text body3 color={colors.ui.placeholder.default.none.content}>\n {message}\n </Text>\n )}\n {Boolean(errorRetryLabel) && !loading && (\n <Button\n variant={'text'}\n onPress={onPressRetry}\n contentColor={colors.ui.placeholder.default.none.highlight}\n icon={'refresh'}\n >\n {errorRetryLabel}\n </Button>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerError: {\n width: 200,\n height: 148,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerLoading: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default Placeholder;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,cAAP,MAA2B,mBAA3B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAWA,MAAMC,WAA4B,GAAG,QAA4E;EAAA,IAA3E;IAAEC,IAAF;IAAQC,OAAO,GAAG,KAAlB;IAAyBC,OAAO,GAAG,EAAnC;IAAuCC,eAAvC;IAAwDC;EAAxD,CAA2E;EAC/G,MAAM;IAAEC;EAAF,IAAaX,aAAa,EAAhC,CAD+G,CAG/G;;EACA,oBACE,oBAAC,IAAD;IACE,KAAK,EAAEF,iBAAiB,CACtB,CAACS,OAAD,EAAUE,eAAV,CADsB,EAEtB,CAACG,MAAM,CAACC,gBAAR,EAA0BD,MAAM,CAACE,cAAjC,EAAiDF,MAAM,CAACG,SAAxD,CAFsB;EAD1B,GAMGjB,iBAAiB,CAChB,CAACS,OAAD,CADgB,EAEhB,cACE,oBAAC,cAAD;IAAgB,IAAI,EAAE,EAAtB;IAA0B,KAAK,EAAEI,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC;EAApE,EADF,eAEE,oBAAC,IAAD;IAAM,IAAI,EAAEd,IAAZ;IAAkB,IAAI,EAAE,EAAxB;IAA4B,KAAK,EAAEK,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtE,EAFF,CAFgB,CANpB,EAaGC,OAAO,CAACd,OAAD,CAAP,IAAoB,CAACD,OAArB,iBACC,oBAAC,IAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEI,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtD,GACGb,OADH,CAdJ,EAkBGc,OAAO,CAACb,eAAD,CAAP,IAA4B,CAACF,OAA7B,iBACC,oBAAC,MAAD;IACE,OAAO,EAAE,MADX;IAEE,OAAO,EAAEG,YAFX;IAGE,YAAY,EAAEC,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC,SAHnD;IAIE,IAAI,EAAE;EAJR,GAMGX,eANH,CAnBJ,CADF;AA+BD,CAnCD;;AAqCA,MAAMG,MAAM,GAAGb,gBAAgB,CAAC;EAC9BgB,SAAS,EAAE;IACTQ,KAAK,EAAE,GADE;IAETC,MAAM,EAAE,GAFC;IAGTC,UAAU,EAAE,QAHH;IAITC,cAAc,EAAE;EAJP,CADmB;EAO9BZ,cAAc,EAAE;IACdS,KAAK,EAAE,GADO;IAEdC,MAAM,EAAE,GAFM;IAGdC,UAAU,EAAE,QAHE;IAIdC,cAAc,EAAE;EAJF,CAPc;EAa9Bb,gBAAgB,EAAE;IAChBU,KAAK,EAAE,GADS;IAEhBC,MAAM,EAAE,GAFQ;IAGhBC,UAAU,EAAE,QAHI;IAIhBC,cAAc,EAAE;EAJA;AAbY,CAAD,CAA/B;AAqBA,eAAerB,WAAf"}