@sendbird/uikit-react-native-foundation 1.0.1 → 1.0.2

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 (589) hide show
  1. package/lib/commonjs/assets/bundle-icons.js +33 -0
  2. package/lib/commonjs/assets/bundle-icons.js.map +1 -0
  3. package/lib/commonjs/assets/icon/ic-chat-hide.png +0 -0
  4. package/lib/commonjs/assets/icon/ic-chat-hide@2x.png +0 -0
  5. package/lib/commonjs/assets/icon/ic-chat-hide@3x.png +0 -0
  6. package/lib/commonjs/assets/icon/ic-chat-show.png +0 -0
  7. package/lib/commonjs/assets/icon/ic-chat-show@2x.png +0 -0
  8. package/lib/commonjs/assets/icon/ic-chat-show@3x.png +0 -0
  9. package/lib/commonjs/assets/icon/icon-add.png +0 -0
  10. package/lib/commonjs/assets/icon/icon-add@2x.png +0 -0
  11. package/lib/commonjs/assets/icon/icon-add@3x.png +0 -0
  12. package/lib/commonjs/assets/icon/icon-archive.png +0 -0
  13. package/lib/commonjs/assets/icon/icon-archive@2x.png +0 -0
  14. package/lib/commonjs/assets/icon/icon-archive@3x.png +0 -0
  15. package/lib/commonjs/assets/icon/icon-arrow-left.png +0 -0
  16. package/lib/commonjs/assets/icon/icon-arrow-left@2x.png +0 -0
  17. package/lib/commonjs/assets/icon/icon-arrow-left@3x.png +0 -0
  18. package/lib/commonjs/assets/icon/icon-ban.png +0 -0
  19. package/lib/commonjs/assets/icon/icon-ban@2x.png +0 -0
  20. package/lib/commonjs/assets/icon/icon-ban@3x.png +0 -0
  21. package/lib/commonjs/assets/icon/icon-broadcast.png +0 -0
  22. package/lib/commonjs/assets/icon/icon-broadcast@2x.png +0 -0
  23. package/lib/commonjs/assets/icon/icon-broadcast@3x.png +0 -0
  24. package/lib/commonjs/assets/icon/icon-camera.png +0 -0
  25. package/lib/commonjs/assets/icon/icon-camera@2x.png +0 -0
  26. package/lib/commonjs/assets/icon/icon-camera@3x.png +0 -0
  27. package/lib/commonjs/assets/icon/icon-channels.png +0 -0
  28. package/lib/commonjs/assets/icon/icon-channels@2x.png +0 -0
  29. package/lib/commonjs/assets/icon/icon-channels@3x.png +0 -0
  30. package/lib/commonjs/assets/icon/icon-chat-filled.png +0 -0
  31. package/lib/commonjs/assets/icon/icon-chat-filled@2x.png +0 -0
  32. package/lib/commonjs/assets/icon/icon-chat-filled@3x.png +0 -0
  33. package/lib/commonjs/assets/icon/icon-chat.png +0 -0
  34. package/lib/commonjs/assets/icon/icon-chat@2x.png +0 -0
  35. package/lib/commonjs/assets/icon/icon-chat@3x.png +0 -0
  36. package/lib/commonjs/assets/icon/icon-checkbox-off.png +0 -0
  37. package/lib/commonjs/assets/icon/icon-checkbox-off@2x.png +0 -0
  38. package/lib/commonjs/assets/icon/icon-checkbox-off@3x.png +0 -0
  39. package/lib/commonjs/assets/icon/icon-checkbox-on.png +0 -0
  40. package/lib/commonjs/assets/icon/icon-checkbox-on@2x.png +0 -0
  41. package/lib/commonjs/assets/icon/icon-checkbox-on@3x.png +0 -0
  42. package/lib/commonjs/assets/icon/icon-chevron-down.png +0 -0
  43. package/lib/commonjs/assets/icon/icon-chevron-down@2x.png +0 -0
  44. package/lib/commonjs/assets/icon/icon-chevron-down@3x.png +0 -0
  45. package/lib/commonjs/assets/icon/icon-chevron-right.png +0 -0
  46. package/lib/commonjs/assets/icon/icon-chevron-right@2x.png +0 -0
  47. package/lib/commonjs/assets/icon/icon-chevron-right@3x.png +0 -0
  48. package/lib/commonjs/assets/icon/icon-close.png +0 -0
  49. package/lib/commonjs/assets/icon/icon-close@2x.png +0 -0
  50. package/lib/commonjs/assets/icon/icon-close@3x.png +0 -0
  51. package/lib/commonjs/assets/icon/icon-copy.png +0 -0
  52. package/lib/commonjs/assets/icon/icon-copy@2x.png +0 -0
  53. package/lib/commonjs/assets/icon/icon-copy@3x.png +0 -0
  54. package/lib/commonjs/assets/icon/icon-create.png +0 -0
  55. package/lib/commonjs/assets/icon/icon-create@2x.png +0 -0
  56. package/lib/commonjs/assets/icon/icon-create@3x.png +0 -0
  57. package/lib/commonjs/assets/icon/icon-delete.png +0 -0
  58. package/lib/commonjs/assets/icon/icon-delete@2x.png +0 -0
  59. package/lib/commonjs/assets/icon/icon-delete@3x.png +0 -0
  60. package/lib/commonjs/assets/icon/icon-document.png +0 -0
  61. package/lib/commonjs/assets/icon/icon-document@2x.png +0 -0
  62. package/lib/commonjs/assets/icon/icon-document@3x.png +0 -0
  63. package/lib/commonjs/assets/icon/icon-done-all.png +0 -0
  64. package/lib/commonjs/assets/icon/icon-done-all@2x.png +0 -0
  65. package/lib/commonjs/assets/icon/icon-done-all@3x.png +0 -0
  66. package/lib/commonjs/assets/icon/icon-done.png +0 -0
  67. package/lib/commonjs/assets/icon/icon-done@2x.png +0 -0
  68. package/lib/commonjs/assets/icon/icon-done@3x.png +0 -0
  69. package/lib/commonjs/assets/icon/icon-download.png +0 -0
  70. package/lib/commonjs/assets/icon/icon-download@2x.png +0 -0
  71. package/lib/commonjs/assets/icon/icon-download@3x.png +0 -0
  72. package/lib/commonjs/assets/icon/icon-edit.png +0 -0
  73. package/lib/commonjs/assets/icon/icon-edit@2x.png +0 -0
  74. package/lib/commonjs/assets/icon/icon-edit@3x.png +0 -0
  75. package/lib/commonjs/assets/icon/icon-emoji-more.png +0 -0
  76. package/lib/commonjs/assets/icon/icon-emoji-more@2x.png +0 -0
  77. package/lib/commonjs/assets/icon/icon-emoji-more@3x.png +0 -0
  78. package/lib/commonjs/assets/icon/icon-error.png +0 -0
  79. package/lib/commonjs/assets/icon/icon-error@2x.png +0 -0
  80. package/lib/commonjs/assets/icon/icon-error@3x.png +0 -0
  81. package/lib/commonjs/assets/icon/icon-file-audio.png +0 -0
  82. package/lib/commonjs/assets/icon/icon-file-audio@2x.png +0 -0
  83. package/lib/commonjs/assets/icon/icon-file-audio@3x.png +0 -0
  84. package/lib/commonjs/assets/icon/icon-file-document.png +0 -0
  85. package/lib/commonjs/assets/icon/icon-file-document@2x.png +0 -0
  86. package/lib/commonjs/assets/icon/icon-file-document@3x.png +0 -0
  87. package/lib/commonjs/assets/icon/icon-freeze.png +0 -0
  88. package/lib/commonjs/assets/icon/icon-freeze@2x.png +0 -0
  89. package/lib/commonjs/assets/icon/icon-freeze@3x.png +0 -0
  90. package/lib/commonjs/assets/icon/icon-gif.png +0 -0
  91. package/lib/commonjs/assets/icon/icon-gif@2x.png +0 -0
  92. package/lib/commonjs/assets/icon/icon-gif@3x.png +0 -0
  93. package/lib/commonjs/assets/icon/icon-info.png +0 -0
  94. package/lib/commonjs/assets/icon/icon-info@2x.png +0 -0
  95. package/lib/commonjs/assets/icon/icon-info@3x.png +0 -0
  96. package/lib/commonjs/assets/icon/icon-leave.png +0 -0
  97. package/lib/commonjs/assets/icon/icon-leave@2x.png +0 -0
  98. package/lib/commonjs/assets/icon/icon-leave@3x.png +0 -0
  99. package/lib/commonjs/assets/icon/icon-members.png +0 -0
  100. package/lib/commonjs/assets/icon/icon-members@2x.png +0 -0
  101. package/lib/commonjs/assets/icon/icon-members@3x.png +0 -0
  102. package/lib/commonjs/assets/icon/icon-message.png +0 -0
  103. package/lib/commonjs/assets/icon/icon-message@2x.png +0 -0
  104. package/lib/commonjs/assets/icon/icon-message@3x.png +0 -0
  105. package/lib/commonjs/assets/icon/icon-moderations.png +0 -0
  106. package/lib/commonjs/assets/icon/icon-moderations@2x.png +0 -0
  107. package/lib/commonjs/assets/icon/icon-moderations@3x.png +0 -0
  108. package/lib/commonjs/assets/icon/icon-more.png +0 -0
  109. package/lib/commonjs/assets/icon/icon-more@2x.png +0 -0
  110. package/lib/commonjs/assets/icon/icon-more@3x.png +0 -0
  111. package/lib/commonjs/assets/icon/icon-mute.png +0 -0
  112. package/lib/commonjs/assets/icon/icon-mute@2x.png +0 -0
  113. package/lib/commonjs/assets/icon/icon-mute@3x.png +0 -0
  114. package/lib/commonjs/assets/icon/icon-notifications-filled.png +0 -0
  115. package/lib/commonjs/assets/icon/icon-notifications-filled@2x.png +0 -0
  116. package/lib/commonjs/assets/icon/icon-notifications-filled@3x.png +0 -0
  117. package/lib/commonjs/assets/icon/icon-notifications-off-filled.png +0 -0
  118. package/lib/commonjs/assets/icon/icon-notifications-off-filled@2x.png +0 -0
  119. package/lib/commonjs/assets/icon/icon-notifications-off-filled@3x.png +0 -0
  120. package/lib/commonjs/assets/icon/icon-notifications.png +0 -0
  121. package/lib/commonjs/assets/icon/icon-notifications@2x.png +0 -0
  122. package/lib/commonjs/assets/icon/icon-notifications@3x.png +0 -0
  123. package/lib/commonjs/assets/icon/icon-operator.png +0 -0
  124. package/lib/commonjs/assets/icon/icon-operator@2x.png +0 -0
  125. package/lib/commonjs/assets/icon/icon-operator@3x.png +0 -0
  126. package/lib/commonjs/assets/icon/icon-photo.png +0 -0
  127. package/lib/commonjs/assets/icon/icon-photo@2x.png +0 -0
  128. package/lib/commonjs/assets/icon/icon-photo@3x.png +0 -0
  129. package/lib/commonjs/assets/icon/icon-play.png +0 -0
  130. package/lib/commonjs/assets/icon/icon-play@2x.png +0 -0
  131. package/lib/commonjs/assets/icon/icon-play@3x.png +0 -0
  132. package/lib/commonjs/assets/icon/icon-plus.png +0 -0
  133. package/lib/commonjs/assets/icon/icon-plus@2x.png +0 -0
  134. package/lib/commonjs/assets/icon/icon-plus@3x.png +0 -0
  135. package/lib/commonjs/assets/icon/icon-question.png +0 -0
  136. package/lib/commonjs/assets/icon/icon-question@2x.png +0 -0
  137. package/lib/commonjs/assets/icon/icon-question@3x.png +0 -0
  138. package/lib/commonjs/assets/icon/icon-refresh.png +0 -0
  139. package/lib/commonjs/assets/icon/icon-refresh@2x.png +0 -0
  140. package/lib/commonjs/assets/icon/icon-refresh@3x.png +0 -0
  141. package/lib/commonjs/assets/icon/icon-remove.png +0 -0
  142. package/lib/commonjs/assets/icon/icon-remove@2x.png +0 -0
  143. package/lib/commonjs/assets/icon/icon-remove@3x.png +0 -0
  144. package/lib/commonjs/assets/icon/icon-reply-filled.png +0 -0
  145. package/lib/commonjs/assets/icon/icon-reply-filled@2x.png +0 -0
  146. package/lib/commonjs/assets/icon/icon-reply-filled@3x.png +0 -0
  147. package/lib/commonjs/assets/icon/icon-reply.png +0 -0
  148. package/lib/commonjs/assets/icon/icon-reply@2x.png +0 -0
  149. package/lib/commonjs/assets/icon/icon-reply@3x.png +0 -0
  150. package/lib/commonjs/assets/icon/icon-search.png +0 -0
  151. package/lib/commonjs/assets/icon/icon-search@2x.png +0 -0
  152. package/lib/commonjs/assets/icon/icon-search@3x.png +0 -0
  153. package/lib/commonjs/assets/icon/icon-send.png +0 -0
  154. package/lib/commonjs/assets/icon/icon-send@2x.png +0 -0
  155. package/lib/commonjs/assets/icon/icon-send@3x.png +0 -0
  156. package/lib/commonjs/assets/icon/icon-settings-filled.png +0 -0
  157. package/lib/commonjs/assets/icon/icon-settings-filled@2x.png +0 -0
  158. package/lib/commonjs/assets/icon/icon-settings-filled@3x.png +0 -0
  159. package/lib/commonjs/assets/icon/icon-spinner.png +0 -0
  160. package/lib/commonjs/assets/icon/icon-spinner@2x.png +0 -0
  161. package/lib/commonjs/assets/icon/icon-spinner@3x.png +0 -0
  162. package/lib/commonjs/assets/icon/icon-streaming.png +0 -0
  163. package/lib/commonjs/assets/icon/icon-streaming@2x.png +0 -0
  164. package/lib/commonjs/assets/icon/icon-streaming@3x.png +0 -0
  165. package/lib/commonjs/assets/icon/icon-supergroup.png +0 -0
  166. package/lib/commonjs/assets/icon/icon-supergroup@2x.png +0 -0
  167. package/lib/commonjs/assets/icon/icon-supergroup@3x.png +0 -0
  168. package/lib/commonjs/assets/icon/icon-theme.png +0 -0
  169. package/lib/commonjs/assets/icon/icon-theme@2x.png +0 -0
  170. package/lib/commonjs/assets/icon/icon-theme@3x.png +0 -0
  171. package/lib/commonjs/assets/icon/icon-thumbnail-none.png +0 -0
  172. package/lib/commonjs/assets/icon/icon-thumbnail-none@2x.png +0 -0
  173. package/lib/commonjs/assets/icon/icon-thumbnail-none@3x.png +0 -0
  174. package/lib/commonjs/assets/icon/icon-unarchive.png +0 -0
  175. package/lib/commonjs/assets/icon/icon-unarchive@2x.png +0 -0
  176. package/lib/commonjs/assets/icon/icon-unarchive@3x.png +0 -0
  177. package/lib/commonjs/assets/icon/icon-user.png +0 -0
  178. package/lib/commonjs/assets/icon/icon-user@2x.png +0 -0
  179. package/lib/commonjs/assets/icon/icon-user@3x.png +0 -0
  180. package/lib/commonjs/assets/icon/index.js +70 -0
  181. package/lib/commonjs/assets/icon/index.js.map +1 -0
  182. package/lib/commonjs/components/Image/Image.fastimage.js +87 -0
  183. package/lib/commonjs/components/Image/Image.fastimage.js.map +1 -0
  184. package/lib/commonjs/components/Image/Image.reactnative.js +35 -0
  185. package/lib/commonjs/components/Image/Image.reactnative.js.map +1 -0
  186. package/lib/commonjs/components/Image/index.js +27 -0
  187. package/lib/commonjs/components/Image/index.js.map +1 -0
  188. package/lib/commonjs/index.js +388 -0
  189. package/lib/commonjs/index.js.map +1 -0
  190. package/lib/commonjs/styles/HeaderStyleContext.js +46 -0
  191. package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -0
  192. package/lib/commonjs/styles/createScaleFactor.js +31 -0
  193. package/lib/commonjs/styles/createScaleFactor.js.map +1 -0
  194. package/lib/commonjs/styles/createSelectByColorScheme.js +24 -0
  195. package/lib/commonjs/styles/createSelectByColorScheme.js.map +1 -0
  196. package/lib/commonjs/styles/createStyleSheet.js +62 -0
  197. package/lib/commonjs/styles/createStyleSheet.js.map +1 -0
  198. package/lib/commonjs/styles/createTypography.js +106 -0
  199. package/lib/commonjs/styles/createTypography.js.map +1 -0
  200. package/lib/commonjs/styles/getDefaultHeaderHeight.js +17 -0
  201. package/lib/commonjs/styles/getDefaultHeaderHeight.js.map +1 -0
  202. package/lib/commonjs/styles/useHeaderStyle.js +18 -0
  203. package/lib/commonjs/styles/useHeaderStyle.js.map +1 -0
  204. package/lib/commonjs/theme/DarkUIKitTheme.js +186 -0
  205. package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -0
  206. package/lib/commonjs/theme/LightUIKitTheme.js +186 -0
  207. package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -0
  208. package/lib/commonjs/theme/Palette.js +47 -0
  209. package/lib/commonjs/theme/Palette.js.map +1 -0
  210. package/lib/commonjs/theme/UIKitThemeContext.js +16 -0
  211. package/lib/commonjs/theme/UIKitThemeContext.js.map +1 -0
  212. package/lib/commonjs/theme/UIKitThemeProvider.js +28 -0
  213. package/lib/commonjs/theme/UIKitThemeProvider.js.map +1 -0
  214. package/lib/commonjs/theme/createTheme.js +58 -0
  215. package/lib/commonjs/theme/createTheme.js.map +1 -0
  216. package/lib/commonjs/theme/useUIKitTheme.js +22 -0
  217. package/lib/commonjs/theme/useUIKitTheme.js.map +1 -0
  218. package/lib/commonjs/types.js +6 -0
  219. package/lib/commonjs/types.js.map +1 -0
  220. package/lib/commonjs/ui/ActionMenu/index.js +131 -0
  221. package/lib/commonjs/ui/ActionMenu/index.js.map +1 -0
  222. package/lib/commonjs/ui/Alert/index.js +122 -0
  223. package/lib/commonjs/ui/Alert/index.js.map +1 -0
  224. package/lib/commonjs/ui/Avatar/AvatarGroup.js +119 -0
  225. package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -0
  226. package/lib/commonjs/ui/Avatar/AvatarIcon.js +54 -0
  227. package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +1 -0
  228. package/lib/commonjs/ui/Avatar/index.js +100 -0
  229. package/lib/commonjs/ui/Avatar/index.js.map +1 -0
  230. package/lib/commonjs/ui/Badge/index.js +77 -0
  231. package/lib/commonjs/ui/Badge/index.js.map +1 -0
  232. package/lib/commonjs/ui/BottomSheet/index.js +80 -0
  233. package/lib/commonjs/ui/BottomSheet/index.js.map +1 -0
  234. package/lib/commonjs/ui/Button/index.js +90 -0
  235. package/lib/commonjs/ui/Button/index.js.map +1 -0
  236. package/lib/commonjs/ui/ChannelFrozenBanner/index.js +51 -0
  237. package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +1 -0
  238. package/lib/commonjs/ui/Dialog/DialogBox.js +41 -0
  239. package/lib/commonjs/ui/Dialog/DialogBox.js.map +1 -0
  240. package/lib/commonjs/ui/Dialog/DialogSheet.js +86 -0
  241. package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -0
  242. package/lib/commonjs/ui/Dialog/index.js +182 -0
  243. package/lib/commonjs/ui/Dialog/index.js.map +1 -0
  244. package/lib/commonjs/ui/Divider/index.js +49 -0
  245. package/lib/commonjs/ui/Divider/index.js.map +1 -0
  246. package/lib/commonjs/ui/GroupChannelPreview/index.js +210 -0
  247. package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -0
  248. package/lib/commonjs/ui/Header/index.js +237 -0
  249. package/lib/commonjs/ui/Header/index.js.map +1 -0
  250. package/lib/commonjs/ui/Icon/index.js +78 -0
  251. package/lib/commonjs/ui/Icon/index.js.map +1 -0
  252. package/lib/commonjs/ui/LoadingSpinner/index.js +82 -0
  253. package/lib/commonjs/ui/LoadingSpinner/index.js.map +1 -0
  254. package/lib/commonjs/ui/MenuBar/index.js +88 -0
  255. package/lib/commonjs/ui/MenuBar/index.js.map +1 -0
  256. package/lib/commonjs/ui/Modal/index.js +214 -0
  257. package/lib/commonjs/ui/Modal/index.js.map +1 -0
  258. package/lib/commonjs/ui/Placeholder/index.js +82 -0
  259. package/lib/commonjs/ui/Placeholder/index.js.map +1 -0
  260. package/lib/commonjs/ui/Prompt/index.js +175 -0
  261. package/lib/commonjs/ui/Prompt/index.js.map +1 -0
  262. package/lib/commonjs/ui/Switch/index.js +125 -0
  263. package/lib/commonjs/ui/Switch/index.js.map +1 -0
  264. package/lib/commonjs/ui/Text/index.js +71 -0
  265. package/lib/commonjs/ui/Text/index.js.map +1 -0
  266. package/lib/commonjs/ui/TextInput/index.js +58 -0
  267. package/lib/commonjs/ui/TextInput/index.js.map +1 -0
  268. package/lib/commonjs/ui/Toast/index.js +183 -0
  269. package/lib/commonjs/ui/Toast/index.js.map +1 -0
  270. package/lib/commonjs/ui/URLParsedText/index.js +64 -0
  271. package/lib/commonjs/ui/URLParsedText/index.js.map +1 -0
  272. package/lib/module/assets/bundle-icons.js +31 -0
  273. package/lib/module/assets/bundle-icons.js.map +1 -0
  274. package/lib/module/assets/icon/ic-chat-hide.png +0 -0
  275. package/lib/module/assets/icon/ic-chat-hide@2x.png +0 -0
  276. package/lib/module/assets/icon/ic-chat-hide@3x.png +0 -0
  277. package/lib/module/assets/icon/ic-chat-show.png +0 -0
  278. package/lib/module/assets/icon/ic-chat-show@2x.png +0 -0
  279. package/lib/module/assets/icon/ic-chat-show@3x.png +0 -0
  280. package/lib/module/assets/icon/icon-add.png +0 -0
  281. package/lib/module/assets/icon/icon-add@2x.png +0 -0
  282. package/lib/module/assets/icon/icon-add@3x.png +0 -0
  283. package/lib/module/assets/icon/icon-archive.png +0 -0
  284. package/lib/module/assets/icon/icon-archive@2x.png +0 -0
  285. package/lib/module/assets/icon/icon-archive@3x.png +0 -0
  286. package/lib/module/assets/icon/icon-arrow-left.png +0 -0
  287. package/lib/module/assets/icon/icon-arrow-left@2x.png +0 -0
  288. package/lib/module/assets/icon/icon-arrow-left@3x.png +0 -0
  289. package/lib/module/assets/icon/icon-ban.png +0 -0
  290. package/lib/module/assets/icon/icon-ban@2x.png +0 -0
  291. package/lib/module/assets/icon/icon-ban@3x.png +0 -0
  292. package/lib/module/assets/icon/icon-broadcast.png +0 -0
  293. package/lib/module/assets/icon/icon-broadcast@2x.png +0 -0
  294. package/lib/module/assets/icon/icon-broadcast@3x.png +0 -0
  295. package/lib/module/assets/icon/icon-camera.png +0 -0
  296. package/lib/module/assets/icon/icon-camera@2x.png +0 -0
  297. package/lib/module/assets/icon/icon-camera@3x.png +0 -0
  298. package/lib/module/assets/icon/icon-channels.png +0 -0
  299. package/lib/module/assets/icon/icon-channels@2x.png +0 -0
  300. package/lib/module/assets/icon/icon-channels@3x.png +0 -0
  301. package/lib/module/assets/icon/icon-chat-filled.png +0 -0
  302. package/lib/module/assets/icon/icon-chat-filled@2x.png +0 -0
  303. package/lib/module/assets/icon/icon-chat-filled@3x.png +0 -0
  304. package/lib/module/assets/icon/icon-chat.png +0 -0
  305. package/lib/module/assets/icon/icon-chat@2x.png +0 -0
  306. package/lib/module/assets/icon/icon-chat@3x.png +0 -0
  307. package/lib/module/assets/icon/icon-checkbox-off.png +0 -0
  308. package/lib/module/assets/icon/icon-checkbox-off@2x.png +0 -0
  309. package/lib/module/assets/icon/icon-checkbox-off@3x.png +0 -0
  310. package/lib/module/assets/icon/icon-checkbox-on.png +0 -0
  311. package/lib/module/assets/icon/icon-checkbox-on@2x.png +0 -0
  312. package/lib/module/assets/icon/icon-checkbox-on@3x.png +0 -0
  313. package/lib/module/assets/icon/icon-chevron-down.png +0 -0
  314. package/lib/module/assets/icon/icon-chevron-down@2x.png +0 -0
  315. package/lib/module/assets/icon/icon-chevron-down@3x.png +0 -0
  316. package/lib/module/assets/icon/icon-chevron-right.png +0 -0
  317. package/lib/module/assets/icon/icon-chevron-right@2x.png +0 -0
  318. package/lib/module/assets/icon/icon-chevron-right@3x.png +0 -0
  319. package/lib/module/assets/icon/icon-close.png +0 -0
  320. package/lib/module/assets/icon/icon-close@2x.png +0 -0
  321. package/lib/module/assets/icon/icon-close@3x.png +0 -0
  322. package/lib/module/assets/icon/icon-copy.png +0 -0
  323. package/lib/module/assets/icon/icon-copy@2x.png +0 -0
  324. package/lib/module/assets/icon/icon-copy@3x.png +0 -0
  325. package/lib/module/assets/icon/icon-create.png +0 -0
  326. package/lib/module/assets/icon/icon-create@2x.png +0 -0
  327. package/lib/module/assets/icon/icon-create@3x.png +0 -0
  328. package/lib/module/assets/icon/icon-delete.png +0 -0
  329. package/lib/module/assets/icon/icon-delete@2x.png +0 -0
  330. package/lib/module/assets/icon/icon-delete@3x.png +0 -0
  331. package/lib/module/assets/icon/icon-document.png +0 -0
  332. package/lib/module/assets/icon/icon-document@2x.png +0 -0
  333. package/lib/module/assets/icon/icon-document@3x.png +0 -0
  334. package/lib/module/assets/icon/icon-done-all.png +0 -0
  335. package/lib/module/assets/icon/icon-done-all@2x.png +0 -0
  336. package/lib/module/assets/icon/icon-done-all@3x.png +0 -0
  337. package/lib/module/assets/icon/icon-done.png +0 -0
  338. package/lib/module/assets/icon/icon-done@2x.png +0 -0
  339. package/lib/module/assets/icon/icon-done@3x.png +0 -0
  340. package/lib/module/assets/icon/icon-download.png +0 -0
  341. package/lib/module/assets/icon/icon-download@2x.png +0 -0
  342. package/lib/module/assets/icon/icon-download@3x.png +0 -0
  343. package/lib/module/assets/icon/icon-edit.png +0 -0
  344. package/lib/module/assets/icon/icon-edit@2x.png +0 -0
  345. package/lib/module/assets/icon/icon-edit@3x.png +0 -0
  346. package/lib/module/assets/icon/icon-emoji-more.png +0 -0
  347. package/lib/module/assets/icon/icon-emoji-more@2x.png +0 -0
  348. package/lib/module/assets/icon/icon-emoji-more@3x.png +0 -0
  349. package/lib/module/assets/icon/icon-error.png +0 -0
  350. package/lib/module/assets/icon/icon-error@2x.png +0 -0
  351. package/lib/module/assets/icon/icon-error@3x.png +0 -0
  352. package/lib/module/assets/icon/icon-file-audio.png +0 -0
  353. package/lib/module/assets/icon/icon-file-audio@2x.png +0 -0
  354. package/lib/module/assets/icon/icon-file-audio@3x.png +0 -0
  355. package/lib/module/assets/icon/icon-file-document.png +0 -0
  356. package/lib/module/assets/icon/icon-file-document@2x.png +0 -0
  357. package/lib/module/assets/icon/icon-file-document@3x.png +0 -0
  358. package/lib/module/assets/icon/icon-freeze.png +0 -0
  359. package/lib/module/assets/icon/icon-freeze@2x.png +0 -0
  360. package/lib/module/assets/icon/icon-freeze@3x.png +0 -0
  361. package/lib/module/assets/icon/icon-gif.png +0 -0
  362. package/lib/module/assets/icon/icon-gif@2x.png +0 -0
  363. package/lib/module/assets/icon/icon-gif@3x.png +0 -0
  364. package/lib/module/assets/icon/icon-info.png +0 -0
  365. package/lib/module/assets/icon/icon-info@2x.png +0 -0
  366. package/lib/module/assets/icon/icon-info@3x.png +0 -0
  367. package/lib/module/assets/icon/icon-leave.png +0 -0
  368. package/lib/module/assets/icon/icon-leave@2x.png +0 -0
  369. package/lib/module/assets/icon/icon-leave@3x.png +0 -0
  370. package/lib/module/assets/icon/icon-members.png +0 -0
  371. package/lib/module/assets/icon/icon-members@2x.png +0 -0
  372. package/lib/module/assets/icon/icon-members@3x.png +0 -0
  373. package/lib/module/assets/icon/icon-message.png +0 -0
  374. package/lib/module/assets/icon/icon-message@2x.png +0 -0
  375. package/lib/module/assets/icon/icon-message@3x.png +0 -0
  376. package/lib/module/assets/icon/icon-moderations.png +0 -0
  377. package/lib/module/assets/icon/icon-moderations@2x.png +0 -0
  378. package/lib/module/assets/icon/icon-moderations@3x.png +0 -0
  379. package/lib/module/assets/icon/icon-more.png +0 -0
  380. package/lib/module/assets/icon/icon-more@2x.png +0 -0
  381. package/lib/module/assets/icon/icon-more@3x.png +0 -0
  382. package/lib/module/assets/icon/icon-mute.png +0 -0
  383. package/lib/module/assets/icon/icon-mute@2x.png +0 -0
  384. package/lib/module/assets/icon/icon-mute@3x.png +0 -0
  385. package/lib/module/assets/icon/icon-notifications-filled.png +0 -0
  386. package/lib/module/assets/icon/icon-notifications-filled@2x.png +0 -0
  387. package/lib/module/assets/icon/icon-notifications-filled@3x.png +0 -0
  388. package/lib/module/assets/icon/icon-notifications-off-filled.png +0 -0
  389. package/lib/module/assets/icon/icon-notifications-off-filled@2x.png +0 -0
  390. package/lib/module/assets/icon/icon-notifications-off-filled@3x.png +0 -0
  391. package/lib/module/assets/icon/icon-notifications.png +0 -0
  392. package/lib/module/assets/icon/icon-notifications@2x.png +0 -0
  393. package/lib/module/assets/icon/icon-notifications@3x.png +0 -0
  394. package/lib/module/assets/icon/icon-operator.png +0 -0
  395. package/lib/module/assets/icon/icon-operator@2x.png +0 -0
  396. package/lib/module/assets/icon/icon-operator@3x.png +0 -0
  397. package/lib/module/assets/icon/icon-photo.png +0 -0
  398. package/lib/module/assets/icon/icon-photo@2x.png +0 -0
  399. package/lib/module/assets/icon/icon-photo@3x.png +0 -0
  400. package/lib/module/assets/icon/icon-play.png +0 -0
  401. package/lib/module/assets/icon/icon-play@2x.png +0 -0
  402. package/lib/module/assets/icon/icon-play@3x.png +0 -0
  403. package/lib/module/assets/icon/icon-plus.png +0 -0
  404. package/lib/module/assets/icon/icon-plus@2x.png +0 -0
  405. package/lib/module/assets/icon/icon-plus@3x.png +0 -0
  406. package/lib/module/assets/icon/icon-question.png +0 -0
  407. package/lib/module/assets/icon/icon-question@2x.png +0 -0
  408. package/lib/module/assets/icon/icon-question@3x.png +0 -0
  409. package/lib/module/assets/icon/icon-refresh.png +0 -0
  410. package/lib/module/assets/icon/icon-refresh@2x.png +0 -0
  411. package/lib/module/assets/icon/icon-refresh@3x.png +0 -0
  412. package/lib/module/assets/icon/icon-remove.png +0 -0
  413. package/lib/module/assets/icon/icon-remove@2x.png +0 -0
  414. package/lib/module/assets/icon/icon-remove@3x.png +0 -0
  415. package/lib/module/assets/icon/icon-reply-filled.png +0 -0
  416. package/lib/module/assets/icon/icon-reply-filled@2x.png +0 -0
  417. package/lib/module/assets/icon/icon-reply-filled@3x.png +0 -0
  418. package/lib/module/assets/icon/icon-reply.png +0 -0
  419. package/lib/module/assets/icon/icon-reply@2x.png +0 -0
  420. package/lib/module/assets/icon/icon-reply@3x.png +0 -0
  421. package/lib/module/assets/icon/icon-search.png +0 -0
  422. package/lib/module/assets/icon/icon-search@2x.png +0 -0
  423. package/lib/module/assets/icon/icon-search@3x.png +0 -0
  424. package/lib/module/assets/icon/icon-send.png +0 -0
  425. package/lib/module/assets/icon/icon-send@2x.png +0 -0
  426. package/lib/module/assets/icon/icon-send@3x.png +0 -0
  427. package/lib/module/assets/icon/icon-settings-filled.png +0 -0
  428. package/lib/module/assets/icon/icon-settings-filled@2x.png +0 -0
  429. package/lib/module/assets/icon/icon-settings-filled@3x.png +0 -0
  430. package/lib/module/assets/icon/icon-spinner.png +0 -0
  431. package/lib/module/assets/icon/icon-spinner@2x.png +0 -0
  432. package/lib/module/assets/icon/icon-spinner@3x.png +0 -0
  433. package/lib/module/assets/icon/icon-streaming.png +0 -0
  434. package/lib/module/assets/icon/icon-streaming@2x.png +0 -0
  435. package/lib/module/assets/icon/icon-streaming@3x.png +0 -0
  436. package/lib/module/assets/icon/icon-supergroup.png +0 -0
  437. package/lib/module/assets/icon/icon-supergroup@2x.png +0 -0
  438. package/lib/module/assets/icon/icon-supergroup@3x.png +0 -0
  439. package/lib/module/assets/icon/icon-theme.png +0 -0
  440. package/lib/module/assets/icon/icon-theme@2x.png +0 -0
  441. package/lib/module/assets/icon/icon-theme@3x.png +0 -0
  442. package/lib/module/assets/icon/icon-thumbnail-none.png +0 -0
  443. package/lib/module/assets/icon/icon-thumbnail-none@2x.png +0 -0
  444. package/lib/module/assets/icon/icon-thumbnail-none@3x.png +0 -0
  445. package/lib/module/assets/icon/icon-unarchive.png +0 -0
  446. package/lib/module/assets/icon/icon-unarchive@2x.png +0 -0
  447. package/lib/module/assets/icon/icon-unarchive@3x.png +0 -0
  448. package/lib/module/assets/icon/icon-user.png +0 -0
  449. package/lib/module/assets/icon/icon-user@2x.png +0 -0
  450. package/lib/module/assets/icon/icon-user@3x.png +0 -0
  451. package/lib/module/assets/icon/index.js +63 -0
  452. package/lib/module/assets/icon/index.js.map +1 -0
  453. package/lib/module/components/Image/Image.fastimage.js +77 -0
  454. package/lib/module/components/Image/Image.fastimage.js.map +1 -0
  455. package/lib/module/components/Image/Image.reactnative.js +24 -0
  456. package/lib/module/components/Image/Image.reactnative.js.map +1 -0
  457. package/lib/module/components/Image/index.js +18 -0
  458. package/lib/module/components/Image/index.js.map +1 -0
  459. package/lib/module/index.js +49 -0
  460. package/lib/module/index.js.map +1 -0
  461. package/lib/module/styles/HeaderStyleContext.js +29 -0
  462. package/lib/module/styles/HeaderStyleContext.js.map +1 -0
  463. package/lib/module/styles/createScaleFactor.js +20 -0
  464. package/lib/module/styles/createScaleFactor.js.map +1 -0
  465. package/lib/module/styles/createSelectByColorScheme.js +16 -0
  466. package/lib/module/styles/createSelectByColorScheme.js.map +1 -0
  467. package/lib/module/styles/createStyleSheet.js +53 -0
  468. package/lib/module/styles/createStyleSheet.js.map +1 -0
  469. package/lib/module/styles/createTypography.js +98 -0
  470. package/lib/module/styles/createTypography.js.map +1 -0
  471. package/lib/module/styles/getDefaultHeaderHeight.js +10 -0
  472. package/lib/module/styles/getDefaultHeaderHeight.js.map +1 -0
  473. package/lib/module/styles/useHeaderStyle.js +9 -0
  474. package/lib/module/styles/useHeaderStyle.js.map +1 -0
  475. package/lib/module/theme/DarkUIKitTheme.js +175 -0
  476. package/lib/module/theme/DarkUIKitTheme.js.map +1 -0
  477. package/lib/module/theme/LightUIKitTheme.js +175 -0
  478. package/lib/module/theme/LightUIKitTheme.js.map +1 -0
  479. package/lib/module/theme/Palette.js +40 -0
  480. package/lib/module/theme/Palette.js.map +1 -0
  481. package/lib/module/theme/UIKitThemeContext.js +4 -0
  482. package/lib/module/theme/UIKitThemeContext.js.map +1 -0
  483. package/lib/module/theme/UIKitThemeProvider.js +16 -0
  484. package/lib/module/theme/UIKitThemeProvider.js.map +1 -0
  485. package/lib/module/theme/createTheme.js +46 -0
  486. package/lib/module/theme/createTheme.js.map +1 -0
  487. package/lib/module/theme/useUIKitTheme.js +11 -0
  488. package/lib/module/theme/useUIKitTheme.js.map +1 -0
  489. package/lib/module/types.js +2 -0
  490. package/lib/module/types.js.map +1 -0
  491. package/lib/module/ui/ActionMenu/index.js +108 -0
  492. package/lib/module/ui/ActionMenu/index.js.map +1 -0
  493. package/lib/module/ui/Alert/index.js +104 -0
  494. package/lib/module/ui/Alert/index.js.map +1 -0
  495. package/lib/module/ui/Avatar/AvatarGroup.js +104 -0
  496. package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -0
  497. package/lib/module/ui/Avatar/AvatarIcon.js +40 -0
  498. package/lib/module/ui/Avatar/AvatarIcon.js.map +1 -0
  499. package/lib/module/ui/Avatar/index.js +78 -0
  500. package/lib/module/ui/Avatar/index.js.map +1 -0
  501. package/lib/module/ui/Badge/index.js +62 -0
  502. package/lib/module/ui/Badge/index.js.map +1 -0
  503. package/lib/module/ui/BottomSheet/index.js +65 -0
  504. package/lib/module/ui/BottomSheet/index.js.map +1 -0
  505. package/lib/module/ui/Button/index.js +75 -0
  506. package/lib/module/ui/Button/index.js.map +1 -0
  507. package/lib/module/ui/ChannelFrozenBanner/index.js +37 -0
  508. package/lib/module/ui/ChannelFrozenBanner/index.js.map +1 -0
  509. package/lib/module/ui/Dialog/DialogBox.js +28 -0
  510. package/lib/module/ui/Dialog/DialogBox.js.map +1 -0
  511. package/lib/module/ui/Dialog/DialogSheet.js +71 -0
  512. package/lib/module/ui/Dialog/DialogSheet.js.map +1 -0
  513. package/lib/module/ui/Dialog/index.js +144 -0
  514. package/lib/module/ui/Dialog/index.js.map +1 -0
  515. package/lib/module/ui/Divider/index.js +36 -0
  516. package/lib/module/ui/Divider/index.js.map +1 -0
  517. package/lib/module/ui/GroupChannelPreview/index.js +190 -0
  518. package/lib/module/ui/GroupChannelPreview/index.js.map +1 -0
  519. package/lib/module/ui/Header/index.js +218 -0
  520. package/lib/module/ui/Header/index.js.map +1 -0
  521. package/lib/module/ui/Icon/index.js +63 -0
  522. package/lib/module/ui/Icon/index.js.map +1 -0
  523. package/lib/module/ui/LoadingSpinner/index.js +64 -0
  524. package/lib/module/ui/LoadingSpinner/index.js.map +1 -0
  525. package/lib/module/ui/MenuBar/index.js +71 -0
  526. package/lib/module/ui/MenuBar/index.js.map +1 -0
  527. package/lib/module/ui/Modal/index.js +196 -0
  528. package/lib/module/ui/Modal/index.js.map +1 -0
  529. package/lib/module/ui/Placeholder/index.js +64 -0
  530. package/lib/module/ui/Placeholder/index.js.map +1 -0
  531. package/lib/module/ui/Prompt/index.js +151 -0
  532. package/lib/module/ui/Prompt/index.js.map +1 -0
  533. package/lib/module/ui/Switch/index.js +107 -0
  534. package/lib/module/ui/Switch/index.js.map +1 -0
  535. package/lib/module/ui/Text/index.js +59 -0
  536. package/lib/module/ui/Text/index.js.map +1 -0
  537. package/lib/module/ui/TextInput/index.js +43 -0
  538. package/lib/module/ui/TextInput/index.js.map +1 -0
  539. package/lib/module/ui/Toast/index.js +156 -0
  540. package/lib/module/ui/Toast/index.js.map +1 -0
  541. package/lib/module/ui/URLParsedText/index.js +45 -0
  542. package/lib/module/ui/URLParsedText/index.js.map +1 -0
  543. package/lib/typescript/src/assets/icon/index.d.ts +62 -0
  544. package/lib/typescript/src/components/Image/Image.fastimage.d.ts +3 -0
  545. package/lib/typescript/src/components/Image/Image.reactnative.d.ts +3 -0
  546. package/lib/typescript/src/components/Image/index.d.ts +14 -0
  547. package/lib/typescript/src/index.d.ts +45 -0
  548. package/lib/typescript/src/styles/HeaderStyleContext.d.ts +20 -0
  549. package/lib/typescript/src/styles/createScaleFactor.d.ts +6 -0
  550. package/lib/typescript/src/styles/createSelectByColorScheme.d.ts +9 -0
  551. package/lib/typescript/src/styles/createStyleSheet.d.ts +9 -0
  552. package/lib/typescript/src/styles/createTypography.d.ts +6 -0
  553. package/lib/typescript/src/styles/getDefaultHeaderHeight.d.ts +2 -0
  554. package/lib/typescript/src/styles/useHeaderStyle.d.ts +2 -0
  555. package/lib/typescript/src/theme/DarkUIKitTheme.d.ts +2 -0
  556. package/lib/typescript/src/theme/LightUIKitTheme.d.ts +2 -0
  557. package/lib/typescript/src/theme/Palette.d.ts +3 -0
  558. package/lib/typescript/src/theme/UIKitThemeContext.d.ts +4 -0
  559. package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +7 -0
  560. package/lib/typescript/src/theme/createTheme.d.ts +10 -0
  561. package/lib/typescript/src/theme/useUIKitTheme.d.ts +3 -0
  562. package/lib/typescript/src/types.d.ts +167 -0
  563. package/lib/typescript/src/ui/ActionMenu/index.d.ts +16 -0
  564. package/lib/typescript/src/ui/Alert/index.d.ts +13 -0
  565. package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +8 -0
  566. package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +10 -0
  567. package/lib/typescript/src/ui/Avatar/index.d.ts +16 -0
  568. package/lib/typescript/src/ui/Badge/index.d.ts +11 -0
  569. package/lib/typescript/src/ui/BottomSheet/index.d.ts +18 -0
  570. package/lib/typescript/src/ui/Button/index.d.ts +14 -0
  571. package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +9 -0
  572. package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +7 -0
  573. package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +17 -0
  574. package/lib/typescript/src/ui/Dialog/index.d.ts +46 -0
  575. package/lib/typescript/src/ui/Divider/index.d.ts +7 -0
  576. package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +17 -0
  577. package/lib/typescript/src/ui/Header/index.d.ts +25 -0
  578. package/lib/typescript/src/ui/Icon/index.d.ts +14 -0
  579. package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +8 -0
  580. package/lib/typescript/src/ui/MenuBar/index.d.ts +15 -0
  581. package/lib/typescript/src/ui/Modal/index.d.ts +17 -0
  582. package/lib/typescript/src/ui/Placeholder/index.d.ts +10 -0
  583. package/lib/typescript/src/ui/Prompt/index.d.ts +17 -0
  584. package/lib/typescript/src/ui/Switch/index.d.ts +11 -0
  585. package/lib/typescript/src/ui/Text/index.d.ts +8 -0
  586. package/lib/typescript/src/ui/TextInput/index.d.ts +6 -0
  587. package/lib/typescript/src/ui/Toast/index.d.ts +18 -0
  588. package/lib/typescript/src/ui/URLParsedText/index.d.ts +8 -0
  589. package/package.json +3 -3
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
13
+
14
+ var _useHeaderStyle = _interopRequireDefault(require("../../styles/useHeaderStyle"));
15
+
16
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ 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); }
25
+
26
+ /**
27
+ * Modal Open: Triggered by Modal.props.visible state changed to true
28
+ * - visible true -> modalVisible true -> animation start
29
+ *
30
+ * Modal Close: Triggered by Modal.props.onClose() call
31
+ * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false
32
+ * */
33
+ const Modal = _ref => {
34
+ let {
35
+ children,
36
+ onClose,
37
+ backgroundStyle,
38
+ onDismiss,
39
+ type = 'fade',
40
+ visible = false,
41
+ disableBackgroundClose = false,
42
+ enableKeyboardAvoid = false,
43
+ statusBarTranslucent,
44
+ ...props
45
+ } = _ref;
46
+ const {
47
+ palette
48
+ } = (0, _useUIKitTheme.default)();
49
+ const {
50
+ content,
51
+ backdrop,
52
+ showTransition,
53
+ hideTransition
54
+ } = useModalAnimation(type);
55
+ const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);
56
+ const {
57
+ topInset
58
+ } = (0, _useHeaderStyle.default)();
59
+ const [modalVisible, setModalVisible] = (0, _react.useState)(false);
60
+
61
+ const showAction = () => setModalVisible(true);
62
+
63
+ const hideAction = () => hideTransition(() => setModalVisible(false));
64
+
65
+ const {
66
+ width,
67
+ height
68
+ } = (0, _reactNative.useWindowDimensions)();
69
+ (0, _react.useEffect)(() => {
70
+ if (visible) showAction();else hideAction();
71
+ }, [visible]);
72
+ useOnDismiss(modalVisible, onDismiss);
73
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, _extends({
74
+ transparent: true,
75
+ hardwareAccelerated: true,
76
+ visible: modalVisible,
77
+ onRequestClose: onClose,
78
+ onShow: () => showTransition(),
79
+ onDismiss: onDismiss,
80
+ supportedOrientations: ['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right'],
81
+ animationType: 'none'
82
+ }, props), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableWithoutFeedback, {
83
+ onPress: disableBackgroundClose ? undefined : onClose
84
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
85
+ style: [_reactNative.StyleSheet.absoluteFill, {
86
+ opacity: backdrop.opacity,
87
+ backgroundColor: palette.onBackgroundLight03
88
+ }]
89
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.KeyboardAvoidingView // NOTE: This is trick for Android.
90
+ // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.
91
+ , {
92
+ key: `${width}-${height}`,
93
+ enabled: enableKeyboardAvoid,
94
+ style: styles.background,
95
+ behavior: _reactNative.Platform.select({
96
+ ios: 'padding',
97
+ default: 'height'
98
+ }),
99
+ pointerEvents: 'box-none',
100
+ keyboardVerticalOffset: enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0
101
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, _extends({
102
+ style: [styles.background, backgroundStyle, {
103
+ opacity: content.opacity,
104
+ transform: [{
105
+ translateY: content.translateY
106
+ }]
107
+ }],
108
+ pointerEvents: 'box-none'
109
+ }, panResponder.panHandlers), /*#__PURE__*/_react.default.createElement(_reactNative.Pressable // NOTE: https://github.com/facebook/react-native/issues/14295
110
+ // Due to 'Pressable', the width of the children must be explicitly specified as a number.
111
+ , null, children))));
112
+ };
113
+
114
+ const isHideGesture = (distanceY, velocityY) => {
115
+ return distanceY > 125 || distanceY > 0 && velocityY > 0.1;
116
+ };
117
+
118
+ const useModalPanResponder = (type, translateY, show, hide) => {
119
+ if (type === 'fade') return {
120
+ panHandlers: {}
121
+ };
122
+ return _react.default.useRef(_reactNative.PanResponder.create({
123
+ onMoveShouldSetPanResponderCapture: (_, _ref2) => {
124
+ let {
125
+ dy
126
+ } = _ref2;
127
+ return dy > 8;
128
+ },
129
+ // @ts-ignore
130
+ onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),
131
+ onPanResponderMove: (_, _ref3) => {
132
+ let {
133
+ dy
134
+ } = _ref3;
135
+ return dy >= 0 && translateY.setValue(dy);
136
+ },
137
+ // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),
138
+ onPanResponderRelease: (_, _ref4) => {
139
+ let {
140
+ dy,
141
+ vy
142
+ } = _ref4;
143
+ if (isHideGesture(dy, vy)) hide();else show();
144
+ }
145
+ })).current;
146
+ };
147
+
148
+ const useModalAnimation = type => {
149
+ const initialY = type === 'slide' ? _reactNative.Dimensions.get('window').height : 0;
150
+ const baseAnimBackground = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
151
+ const baseAnimContent = (0, _react.useRef)(new _reactNative.Animated.Value(initialY)).current;
152
+ const content = {
153
+ opacity: baseAnimBackground.interpolate({
154
+ inputRange: [0, 1],
155
+ outputRange: [type === 'slide' ? 1 : 0, 1]
156
+ }),
157
+ translateY: baseAnimContent
158
+ };
159
+ const backdrop = {
160
+ opacity: baseAnimBackground.interpolate({
161
+ inputRange: [0, 1],
162
+ outputRange: [0, 1]
163
+ })
164
+ };
165
+
166
+ const createTransition = toValue => {
167
+ const config = {
168
+ duration: 250,
169
+ useNativeDriver: false
170
+ };
171
+ return _reactNative.Animated.parallel([_reactNative.Animated.timing(baseAnimBackground, {
172
+ toValue,
173
+ ...config
174
+ }), _reactNative.Animated.timing(baseAnimContent, {
175
+ toValue: toValue === 0 ? initialY : 0,
176
+ ...config
177
+ })]).start;
178
+ };
179
+
180
+ return {
181
+ content,
182
+ backdrop,
183
+ showTransition: createTransition(1),
184
+ hideTransition: createTransition(0)
185
+ };
186
+ }; // NOTE: onDismiss is supports iOS only
187
+
188
+
189
+ const useOnDismiss = (visible, onDismiss) => {
190
+ const prevVisible = usePrevProp(visible);
191
+ (0, _react.useEffect)(() => {
192
+ if (_reactNative.Platform.OS === 'ios') return;
193
+ if (prevVisible && !visible) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
194
+ }, [prevVisible, visible]);
195
+ };
196
+
197
+ const usePrevProp = prop => {
198
+ const prev = (0, _react.useRef)(prop);
199
+ const curr = (0, _react.useRef)(prop);
200
+ (0, _react.useEffect)(() => {
201
+ prev.current = curr.current;
202
+ curr.current = prop;
203
+ });
204
+ return prev.current;
205
+ };
206
+
207
+ const styles = (0, _createStyleSheet.default)({
208
+ background: {
209
+ flex: 1
210
+ }
211
+ });
212
+ var _default = Modal;
213
+ exports.default = _default;
214
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Modal","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","useUIKitTheme","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","useHeaderStyle","modalVisible","setModalVisible","useState","showAction","hideAction","width","height","useWindowDimensions","useEffect","useOnDismiss","undefined","StyleSheet","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","Platform","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","React","useRef","PanResponder","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","Dimensions","get","baseAnimBackground","Animated","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","createStyleSheet","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 = ({\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}: Props) => {\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":"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"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _uikitUtils = require("@sendbird/uikit-utils");
13
+
14
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
15
+
16
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
17
+
18
+ var _Button = _interopRequireDefault(require("../Button"));
19
+
20
+ var _Icon = _interopRequireDefault(require("../Icon"));
21
+
22
+ var _LoadingSpinner = _interopRequireDefault(require("../LoadingSpinner"));
23
+
24
+ var _Text = _interopRequireDefault(require("../Text"));
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ const Placeholder = _ref => {
29
+ let {
30
+ icon,
31
+ loading = false,
32
+ message = '',
33
+ errorRetryLabel,
34
+ onPressRetry
35
+ } = _ref;
36
+ const {
37
+ colors
38
+ } = (0, _useUIKitTheme.default)(); // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container
39
+
40
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
41
+ style: (0, _uikitUtils.conditionChaining)([loading, errorRetryLabel], [styles.containerLoading, styles.containerError, styles.container])
42
+ }, (0, _uikitUtils.conditionChaining)([loading], [/*#__PURE__*/_react.default.createElement(_LoadingSpinner.default, {
43
+ size: 64,
44
+ color: colors.ui.placeholder.default.none.highlight
45
+ }), /*#__PURE__*/_react.default.createElement(_Icon.default, {
46
+ icon: icon,
47
+ size: 64,
48
+ color: colors.ui.placeholder.default.none.content
49
+ })]), Boolean(message) && !loading && /*#__PURE__*/_react.default.createElement(_Text.default, {
50
+ body3: true,
51
+ color: colors.ui.placeholder.default.none.content
52
+ }, message), Boolean(errorRetryLabel) && !loading && /*#__PURE__*/_react.default.createElement(_Button.default, {
53
+ variant: 'text',
54
+ onPress: onPressRetry,
55
+ contentColor: colors.ui.placeholder.default.none.highlight,
56
+ icon: 'refresh'
57
+ }, errorRetryLabel));
58
+ };
59
+
60
+ const styles = (0, _createStyleSheet.default)({
61
+ container: {
62
+ width: 200,
63
+ height: 100,
64
+ alignItems: 'center',
65
+ justifyContent: 'space-between'
66
+ },
67
+ containerError: {
68
+ width: 200,
69
+ height: 148,
70
+ alignItems: 'center',
71
+ justifyContent: 'space-between'
72
+ },
73
+ containerLoading: {
74
+ width: 200,
75
+ height: 100,
76
+ alignItems: 'center',
77
+ justifyContent: 'center'
78
+ }
79
+ });
80
+ var _default = Placeholder;
81
+ exports.default = _default;
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Placeholder","icon","loading","message","errorRetryLabel","onPressRetry","colors","useUIKitTheme","conditionChaining","styles","containerLoading","containerError","container","ui","placeholder","default","none","highlight","content","Boolean","createStyleSheet","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 = ({ icon, loading = false, message = '', errorRetryLabel, onPressRetry }: Props) => {\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;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAWA,MAAMA,WAAW,GAAG,QAAmF;EAAA,IAAlF;IAAEC,IAAF;IAAQC,OAAO,GAAG,KAAlB;IAAyBC,OAAO,GAAG,EAAnC;IAAuCC,eAAvC;IAAwDC;EAAxD,CAAkF;EACrG,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB,CADqG,CAGrG;;EACA,oBACE,6BAAC,iBAAD;IACE,KAAK,EAAE,IAAAC,6BAAA,EACL,CAACN,OAAD,EAAUE,eAAV,CADK,EAEL,CAACK,MAAM,CAACC,gBAAR,EAA0BD,MAAM,CAACE,cAAjC,EAAiDF,MAAM,CAACG,SAAxD,CAFK;EADT,GAMG,IAAAJ,6BAAA,EACC,CAACN,OAAD,CADD,EAEC,cACE,6BAAC,uBAAD;IAAgB,IAAI,EAAE,EAAtB;IAA0B,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC;EAApE,EADF,eAEE,6BAAC,aAAD;IAAM,IAAI,EAAEhB,IAAZ;IAAkB,IAAI,EAAE,EAAxB;IAA4B,KAAK,EAAEK,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtE,EAFF,CAFD,CANH,EAaGC,OAAO,CAAChB,OAAD,CAAP,IAAoB,CAACD,OAArB,iBACC,6BAAC,aAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtD,GACGf,OADH,CAdJ,EAkBGgB,OAAO,CAACf,eAAD,CAAP,IAA4B,CAACF,OAA7B,iBACC,6BAAC,eAAD;IACE,OAAO,EAAE,MADX;IAEE,OAAO,EAAEG,YAFX;IAGE,YAAY,EAAEC,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC,SAHnD;IAIE,IAAI,EAAE;EAJR,GAMGb,eANH,CAnBJ,CADF;AA+BD,CAnCD;;AAqCA,MAAMK,MAAM,GAAG,IAAAW,yBAAA,EAAiB;EAC9BR,SAAS,EAAE;IACTS,KAAK,EAAE,GADE;IAETC,MAAM,EAAE,GAFC;IAGTC,UAAU,EAAE,QAHH;IAITC,cAAc,EAAE;EAJP,CADmB;EAO9Bb,cAAc,EAAE;IACdU,KAAK,EAAE,GADO;IAEdC,MAAM,EAAE,GAFM;IAGdC,UAAU,EAAE,QAHE;IAIdC,cAAc,EAAE;EAJF,CAPc;EAa9Bd,gBAAgB,EAAE;IAChBW,KAAK,EAAE,GADS;IAEhBC,MAAM,EAAE,GAFQ;IAGhBC,UAAU,EAAE,QAHI;IAIhBC,cAAc,EAAE;EAJA;AAbY,CAAjB,CAAf;eAqBexB,W"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _uikitUtils = require("@sendbird/uikit-utils");
13
+
14
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
15
+
16
+ var _useHeaderStyle = _interopRequireDefault(require("../../styles/useHeaderStyle"));
17
+
18
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
19
+
20
+ var _Button = _interopRequireDefault(require("../Button"));
21
+
22
+ var _DialogBox = _interopRequireDefault(require("../Dialog/DialogBox"));
23
+
24
+ var _Modal = _interopRequireDefault(require("../Modal"));
25
+
26
+ var _Text = _interopRequireDefault(require("../Text"));
27
+
28
+ var _TextInput = _interopRequireDefault(require("../TextInput"));
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ const Prompt = _ref => {
37
+ let {
38
+ onDismiss,
39
+ visible,
40
+ onHide,
41
+ autoFocus = true,
42
+ title,
43
+ defaultValue = '',
44
+ placeholder = 'Enter',
45
+ onSubmit = _uikitUtils.NOOP,
46
+ onCancel = _uikitUtils.NOOP,
47
+ submitLabel = 'Submit',
48
+ cancelLabel = 'Cancel'
49
+ } = _ref;
50
+ const {
51
+ statusBarTranslucent
52
+ } = (0, _useHeaderStyle.default)();
53
+ const {
54
+ colors
55
+ } = (0, _useUIKitTheme.default)();
56
+ const inputRef = (0, _react.useRef)(null);
57
+ const {
58
+ width,
59
+ height
60
+ } = (0, _reactNative.useWindowDimensions)();
61
+ const buttons = [{
62
+ text: cancelLabel,
63
+ onPress: onCancel
64
+ }, {
65
+ text: submitLabel,
66
+ onPress: () => onSubmit(text)
67
+ }];
68
+ const [text, setText] = (0, _react.useState)(defaultValue); // FIXME: autoFocus trick with modal
69
+ // Android
70
+ // - InputProps.autoFocus is not trigger keyboard appearing.
71
+ // - InputRef.focus() is trigger keyboard appearing, but position of keyboard selection is always the start of text.
72
+ // iOS
73
+ // - InputProps.autoFocus is trigger weird UI behavior on landscape mode.
74
+
75
+ (0, _react.useEffect)(() => {
76
+ if (autoFocus && visible) {
77
+ setTimeout(() => {
78
+ var _inputRef$current, _inputRef$current2;
79
+
80
+ if (_reactNative.Platform.OS === 'android') (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
81
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
82
+ }, 250);
83
+ }
84
+ }, [autoFocus, visible, `${width}-${height}`]);
85
+ return /*#__PURE__*/_react.default.createElement(_Modal.default, {
86
+ enableKeyboardAvoid: true,
87
+ disableBackgroundClose: true,
88
+ onClose: onHide,
89
+ onDismiss: () => {
90
+ setText('');
91
+ onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
92
+ },
93
+ statusBarTranslucent: statusBarTranslucent,
94
+ visible: visible,
95
+ backgroundStyle: {
96
+ alignItems: 'center',
97
+ justifyContent: 'center'
98
+ }
99
+ }, /*#__PURE__*/_react.default.createElement(_DialogBox.default, {
100
+ style: styles.container
101
+ }, Boolean(title) && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
102
+ style: styles.titleContainer
103
+ }, /*#__PURE__*/_react.default.createElement(_Text.default, {
104
+ h1: true,
105
+ color: colors.ui.dialog.default.none.text,
106
+ numberOfLines: 1,
107
+ style: {
108
+ flex: 1
109
+ }
110
+ }, title)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
111
+ style: styles.inputContainer
112
+ }, /*#__PURE__*/_react.default.createElement(_TextInput.default, {
113
+ autoFocus: autoFocus && _reactNative.Platform.OS === 'android',
114
+ ref: inputRef,
115
+ placeholder: placeholder,
116
+ variant: 'underline',
117
+ value: text,
118
+ onChangeText: setText,
119
+ style: {
120
+ paddingHorizontal: 0,
121
+ paddingVertical: 10
122
+ }
123
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
124
+ style: styles.buttonContainer
125
+ }, buttons.map((_ref2, index) => {
126
+ let {
127
+ text,
128
+ onPress
129
+ } = _ref2;
130
+ return /*#__PURE__*/_react.default.createElement(_Button.default, {
131
+ key: text + index,
132
+ variant: 'text',
133
+ style: styles.button,
134
+ contentColor: colors.ui.dialog.default.none.highlight,
135
+ onPress: () => {
136
+ _reactNative.Keyboard.dismiss();
137
+
138
+ try {
139
+ onPress === null || onPress === void 0 ? void 0 : onPress();
140
+ } finally {
141
+ onHide();
142
+ }
143
+ }
144
+ }, text);
145
+ }))));
146
+ };
147
+
148
+ const styles = (0, _createStyleSheet.default)({
149
+ container: {
150
+ paddingTop: 8
151
+ },
152
+ titleContainer: {
153
+ marginBottom: 12,
154
+ paddingVertical: 12,
155
+ paddingHorizontal: 24,
156
+ flexDirection: 'row',
157
+ alignItems: 'center'
158
+ },
159
+ inputContainer: {
160
+ paddingHorizontal: 24,
161
+ marginBottom: 12
162
+ },
163
+ buttonContainer: {
164
+ flexDirection: 'row',
165
+ alignItems: 'center',
166
+ justifyContent: 'flex-end',
167
+ padding: 12
168
+ },
169
+ button: {
170
+ marginLeft: 8
171
+ }
172
+ });
173
+ var _default = Prompt;
174
+ exports.default = _default;
175
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Prompt","onDismiss","visible","onHide","autoFocus","title","defaultValue","placeholder","onSubmit","NOOP","onCancel","submitLabel","cancelLabel","statusBarTranslucent","useHeaderStyle","colors","useUIKitTheme","inputRef","useRef","width","height","useWindowDimensions","buttons","text","onPress","setText","useState","useEffect","setTimeout","Platform","OS","current","blur","focus","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","inputContainer","paddingHorizontal","paddingVertical","buttonContainer","map","index","button","highlight","Keyboard","dismiss","createStyleSheet","paddingTop","marginBottom","flexDirection","padding","marginLeft"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Keyboard, Platform, TextInput as RNTextInput, View, useWindowDimensions } from 'react-native';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\nimport TextInput from '../TextInput';\n\nexport type PromptItem = {\n title: string;\n placeholder?: string;\n defaultValue?: string;\n onSubmit?: (text: string) => void;\n submitLabel?: string;\n onCancel?: () => void;\n cancelLabel?: string;\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n autoFocus?: boolean;\n} & PromptItem;\nconst Prompt = ({\n onDismiss,\n visible,\n onHide,\n autoFocus = true,\n title,\n defaultValue = '',\n placeholder = 'Enter',\n onSubmit = NOOP,\n onCancel = NOOP,\n submitLabel = 'Submit',\n cancelLabel = 'Cancel',\n}: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const inputRef = useRef<RNTextInput>(null);\n const { width, height } = useWindowDimensions();\n\n const buttons = [\n { text: cancelLabel, onPress: onCancel },\n { text: submitLabel, onPress: () => onSubmit(text) },\n ];\n\n const [text, setText] = useState(defaultValue);\n\n // FIXME: autoFocus trick with modal\n // Android\n // - InputProps.autoFocus is not trigger keyboard appearing.\n // - InputRef.focus() is trigger keyboard appearing, but position of keyboard selection is always the start of text.\n // iOS\n // - InputProps.autoFocus is trigger weird UI behavior on landscape mode.\n useEffect(() => {\n if (autoFocus && visible) {\n setTimeout(() => {\n if (Platform.OS === 'android') inputRef.current?.blur();\n inputRef.current?.focus();\n }, 250);\n }\n }, [autoFocus, visible, `${width}-${height}`]);\n\n return (\n <Modal\n enableKeyboardAvoid\n disableBackgroundClose\n onClose={onHide}\n onDismiss={() => {\n setText('');\n onDismiss?.();\n }}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.inputContainer}>\n <TextInput\n autoFocus={autoFocus && Platform.OS === 'android'}\n ref={inputRef}\n placeholder={placeholder}\n variant={'underline'}\n value={text}\n onChangeText={setText}\n style={{ paddingHorizontal: 0, paddingVertical: 10 }}\n />\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text, onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n contentColor={colors.ui.dialog.default.none.highlight}\n onPress={() => {\n Keyboard.dismiss();\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 8,\n },\n titleContainer: {\n marginBottom: 12,\n paddingVertical: 12,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n inputContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n button: {\n marginLeft: 8,\n },\n});\n\nexport default Prompt;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAkBA,MAAMA,MAAM,GAAG,QAYF;EAAA,IAZG;IACdC,SADc;IAEdC,OAFc;IAGdC,MAHc;IAIdC,SAAS,GAAG,IAJE;IAKdC,KALc;IAMdC,YAAY,GAAG,EAND;IAOdC,WAAW,GAAG,OAPA;IAQdC,QAAQ,GAAGC,gBARG;IASdC,QAAQ,GAAGD,gBATG;IAUdE,WAAW,GAAG,QAVA;IAWdC,WAAW,GAAG;EAXA,CAYH;EACX,MAAM;IAAEC;EAAF,IAA2B,IAAAC,uBAAA,GAAjC;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB;EACA,MAAMC,QAAQ,GAAG,IAAAC,aAAA,EAAoB,IAApB,CAAjB;EACA,MAAM;IAAEC,KAAF;IAASC;EAAT,IAAoB,IAAAC,gCAAA,GAA1B;EAEA,MAAMC,OAAO,GAAG,CACd;IAAEC,IAAI,EAAEX,WAAR;IAAqBY,OAAO,EAAEd;EAA9B,CADc,EAEd;IAAEa,IAAI,EAAEZ,WAAR;IAAqBa,OAAO,EAAE,MAAMhB,QAAQ,CAACe,IAAD;EAA5C,CAFc,CAAhB;EAKA,MAAM,CAACA,IAAD,EAAOE,OAAP,IAAkB,IAAAC,eAAA,EAASpB,YAAT,CAAxB,CAXW,CAaX;EACA;EACA;EACA;EACA;EACA;;EACA,IAAAqB,gBAAA,EAAU,MAAM;IACd,IAAIvB,SAAS,IAAIF,OAAjB,EAA0B;MACxB0B,UAAU,CAAC,MAAM;QAAA;;QACf,IAAIC,qBAAA,CAASC,EAAT,KAAgB,SAApB,EAA+B,qBAAAb,QAAQ,CAACc,OAAT,wEAAkBC,IAAlB;QAC/B,sBAAAf,QAAQ,CAACc,OAAT,0EAAkBE,KAAlB;MACD,CAHS,EAGP,GAHO,CAAV;IAID;EACF,CAPD,EAOG,CAAC7B,SAAD,EAAYF,OAAZ,EAAsB,GAAEiB,KAAM,IAAGC,MAAO,EAAxC,CAPH;EASA,oBACE,6BAAC,cAAD;IACE,mBAAmB,MADrB;IAEE,sBAAsB,MAFxB;IAGE,OAAO,EAAEjB,MAHX;IAIE,SAAS,EAAE,MAAM;MACfsB,OAAO,CAAC,EAAD,CAAP;MACAxB,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS;IACV,CAPH;IAQE,oBAAoB,EAAEY,oBARxB;IASE,OAAO,EAAEX,OATX;IAUE,eAAe,EAAE;MAAEgC,UAAU,EAAE,QAAd;MAAwBC,cAAc,EAAE;IAAxC;EAVnB,gBAYE,6BAAC,kBAAD;IAAW,KAAK,EAAEC,MAAM,CAACC;EAAzB,GACGC,OAAO,CAACjC,KAAD,CAAP,iBACC,6BAAC,iBAAD;IAAM,KAAK,EAAE+B,MAAM,CAACG;EAApB,gBACE,6BAAC,aAAD;IAAM,EAAE,MAAR;IAAS,KAAK,EAAExB,MAAM,CAACyB,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BpB,IAA9C;IAAoD,aAAa,EAAE,CAAnE;IAAsE,KAAK,EAAE;MAAEqB,IAAI,EAAE;IAAR;EAA7E,GACGvC,KADH,CADF,CAFJ,eASE,6BAAC,iBAAD;IAAM,KAAK,EAAE+B,MAAM,CAACS;EAApB,gBACE,6BAAC,kBAAD;IACE,SAAS,EAAEzC,SAAS,IAAIyB,qBAAA,CAASC,EAAT,KAAgB,SAD1C;IAEE,GAAG,EAAEb,QAFP;IAGE,WAAW,EAAEV,WAHf;IAIE,OAAO,EAAE,WAJX;IAKE,KAAK,EAAEgB,IALT;IAME,YAAY,EAAEE,OANhB;IAOE,KAAK,EAAE;MAAEqB,iBAAiB,EAAE,CAArB;MAAwBC,eAAe,EAAE;IAAzC;EAPT,EADF,CATF,eAqBE,6BAAC,iBAAD;IAAM,KAAK,EAAEX,MAAM,CAACY;EAApB,GACG1B,OAAO,CAAC2B,GAAR,CAAY,QAAoBC,KAApB,KAA8B;IAAA,IAA7B;MAAE3B,IAAF;MAAQC;IAAR,CAA6B;IACzC,oBACE,6BAAC,eAAD;MACE,GAAG,EAAED,IAAI,GAAG2B,KADd;MAEE,OAAO,EAAE,MAFX;MAGE,KAAK,EAAEd,MAAM,CAACe,MAHhB;MAIE,YAAY,EAAEpC,MAAM,CAACyB,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BS,SAJ9C;MAKE,OAAO,EAAE,MAAM;QACbC,qBAAA,CAASC,OAAT;;QACA,IAAI;UACF9B,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO;QACR,CAFD,SAEU;UACRrB,MAAM;QACP;MACF;IAZH,GAcGoB,IAdH,CADF;EAkBD,CAnBA,CADH,CArBF,CAZF,CADF;AA2DD,CAnGD;;AAqGA,MAAMa,MAAM,GAAG,IAAAmB,yBAAA,EAAiB;EAC9BlB,SAAS,EAAE;IACTmB,UAAU,EAAE;EADH,CADmB;EAI9BjB,cAAc,EAAE;IACdkB,YAAY,EAAE,EADA;IAEdV,eAAe,EAAE,EAFH;IAGdD,iBAAiB,EAAE,EAHL;IAIdY,aAAa,EAAE,KAJD;IAKdxB,UAAU,EAAE;EALE,CAJc;EAW9BW,cAAc,EAAE;IACdC,iBAAiB,EAAE,EADL;IAEdW,YAAY,EAAE;EAFA,CAXc;EAe9BT,eAAe,EAAE;IACfU,aAAa,EAAE,KADA;IAEfxB,UAAU,EAAE,QAFG;IAGfC,cAAc,EAAE,UAHD;IAIfwB,OAAO,EAAE;EAJM,CAfa;EAqB9BR,MAAM,EAAE;IACNS,UAAU,EAAE;EADN;AArBsB,CAAjB,CAAf;eA0Be5D,M"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
13
+
14
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ const Switch = _ref => {
23
+ let {
24
+ value,
25
+ onChangeValue,
26
+ inactiveThumbColor,
27
+ inactiveTrackColor,
28
+ trackColor,
29
+ thumbColor
30
+ } = _ref;
31
+ const {
32
+ select,
33
+ palette,
34
+ colors
35
+ } = (0, _useUIKitTheme.default)();
36
+ const position = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
37
+ (0, _react.useEffect)(() => {
38
+ const animation = _reactNative.Animated.timing(position, {
39
+ toValue: value ? styles.thumbOn.left : styles.thumbOff.left,
40
+ duration: 150,
41
+ useNativeDriver: false
42
+ });
43
+
44
+ animation.start();
45
+ return () => animation.stop();
46
+ }, [value]);
47
+
48
+ const createInterpolate = (offValue, onValue) => {
49
+ return position.interpolate({
50
+ inputRange: [styles.thumbOff.left, styles.thumbOn.left],
51
+ outputRange: [offValue, onValue],
52
+ extrapolate: 'clamp'
53
+ });
54
+ };
55
+
56
+ const _trackColor = createInterpolate(inactiveTrackColor ?? colors.onBackground04, trackColor ?? palette.primary200);
57
+
58
+ const _thumbColor = createInterpolate(inactiveThumbColor ?? palette.background300, thumbColor ?? select({
59
+ light: palette.primary400,
60
+ dark: palette.primary300
61
+ }));
62
+
63
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
64
+ onPress: () => onChangeValue(!value),
65
+ style: [styles.container]
66
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
67
+ style: [styles.track, {
68
+ backgroundColor: _trackColor
69
+ }]
70
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
71
+ style: [styles.thumb, {
72
+ backgroundColor: _thumbColor,
73
+ transform: [{
74
+ translateX: position
75
+ }]
76
+ }]
77
+ }));
78
+ };
79
+
80
+ const OFFSET = {
81
+ W: 20,
82
+ H: 16
83
+ };
84
+ const styles = (0, _createStyleSheet.default)({
85
+ container: {
86
+ width: OFFSET.W + OFFSET.H,
87
+ height: OFFSET.H,
88
+ alignItems: 'center',
89
+ justifyContent: 'center'
90
+ },
91
+ track: {
92
+ width: '100%',
93
+ height: '100%',
94
+ borderRadius: OFFSET.H / 2,
95
+ position: 'absolute'
96
+ },
97
+ thumb: {
98
+ width: OFFSET.W,
99
+ height: OFFSET.W,
100
+ borderRadius: OFFSET.W / 2,
101
+ ..._reactNative.Platform.select({
102
+ android: {
103
+ elevation: 2
104
+ },
105
+ ios: {
106
+ shadowColor: 'black',
107
+ shadowRadius: 1,
108
+ shadowOffset: {
109
+ width: 0,
110
+ height: 2
111
+ },
112
+ shadowOpacity: 0.4
113
+ }
114
+ })
115
+ },
116
+ thumbOn: {
117
+ left: OFFSET.H / 2
118
+ },
119
+ thumbOff: {
120
+ left: -OFFSET.H / 2
121
+ }
122
+ });
123
+ var _default = Switch;
124
+ exports.default = _default;
125
+ //# sourceMappingURL=index.js.map