@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.
- package/LICENSE +21 -0
- package/README.md +15 -0
- package/lib/commonjs/assets/bundle-icons.js +33 -0
- package/lib/commonjs/assets/bundle-icons.js.map +1 -0
- package/lib/commonjs/assets/icon/ic-chat-hide.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-hide@2x.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-hide@3x.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-show.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-show@2x.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-show@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-add.png +0 -0
- package/lib/commonjs/assets/icon/icon-add@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-add@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-archive.png +0 -0
- package/lib/commonjs/assets/icon/icon-archive@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-archive@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-arrow-left.png +0 -0
- package/lib/commonjs/assets/icon/icon-arrow-left@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-arrow-left@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-ban.png +0 -0
- package/lib/commonjs/assets/icon/icon-ban@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-ban@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-broadcast.png +0 -0
- package/lib/commonjs/assets/icon/icon-broadcast@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-broadcast@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-camera.png +0 -0
- package/lib/commonjs/assets/icon/icon-camera@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-camera@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-channels.png +0 -0
- package/lib/commonjs/assets/icon/icon-channels@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-channels@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-off.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-off@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-off@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-on.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-on@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-on@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-down.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-down@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-down@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-right.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-right@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-right@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-close.png +0 -0
- package/lib/commonjs/assets/icon/icon-close@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-close@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-copy.png +0 -0
- package/lib/commonjs/assets/icon/icon-copy@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-copy@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-create.png +0 -0
- package/lib/commonjs/assets/icon/icon-create@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-create@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-delete.png +0 -0
- package/lib/commonjs/assets/icon/icon-delete@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-delete@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-document.png +0 -0
- package/lib/commonjs/assets/icon/icon-document@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-document@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done-all.png +0 -0
- package/lib/commonjs/assets/icon/icon-done-all@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done-all@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done.png +0 -0
- package/lib/commonjs/assets/icon/icon-done@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-download.png +0 -0
- package/lib/commonjs/assets/icon/icon-download@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-download@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-edit.png +0 -0
- package/lib/commonjs/assets/icon/icon-edit@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-edit@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-emoji-more.png +0 -0
- package/lib/commonjs/assets/icon/icon-emoji-more@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-emoji-more@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-error.png +0 -0
- package/lib/commonjs/assets/icon/icon-error@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-error@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-audio.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-audio@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-audio@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-document.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-document@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-document@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-freeze.png +0 -0
- package/lib/commonjs/assets/icon/icon-freeze@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-freeze@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-gif.png +0 -0
- package/lib/commonjs/assets/icon/icon-gif@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-gif@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-info.png +0 -0
- package/lib/commonjs/assets/icon/icon-info@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-info@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-leave.png +0 -0
- package/lib/commonjs/assets/icon/icon-leave@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-leave@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-members.png +0 -0
- package/lib/commonjs/assets/icon/icon-members@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-members@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-message.png +0 -0
- package/lib/commonjs/assets/icon/icon-message@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-message@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-moderations.png +0 -0
- package/lib/commonjs/assets/icon/icon-moderations@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-moderations@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-more.png +0 -0
- package/lib/commonjs/assets/icon/icon-more@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-more@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-mute.png +0 -0
- package/lib/commonjs/assets/icon/icon-mute@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-mute@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-off-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-off-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-off-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-operator.png +0 -0
- package/lib/commonjs/assets/icon/icon-operator@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-operator@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-photo.png +0 -0
- package/lib/commonjs/assets/icon/icon-photo@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-photo@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-play.png +0 -0
- package/lib/commonjs/assets/icon/icon-play@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-play@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-plus.png +0 -0
- package/lib/commonjs/assets/icon/icon-plus@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-plus@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-question.png +0 -0
- package/lib/commonjs/assets/icon/icon-question@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-question@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-refresh.png +0 -0
- package/lib/commonjs/assets/icon/icon-refresh@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-refresh@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-remove.png +0 -0
- package/lib/commonjs/assets/icon/icon-remove@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-remove@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-search.png +0 -0
- package/lib/commonjs/assets/icon/icon-search@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-search@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-send.png +0 -0
- package/lib/commonjs/assets/icon/icon-send@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-send@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-settings-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-settings-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-settings-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-spinner.png +0 -0
- package/lib/commonjs/assets/icon/icon-spinner@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-spinner@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-streaming.png +0 -0
- package/lib/commonjs/assets/icon/icon-streaming@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-streaming@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-supergroup.png +0 -0
- package/lib/commonjs/assets/icon/icon-supergroup@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-supergroup@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-theme.png +0 -0
- package/lib/commonjs/assets/icon/icon-theme@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-theme@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-thumbnail-none.png +0 -0
- package/lib/commonjs/assets/icon/icon-thumbnail-none@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-thumbnail-none@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-unarchive.png +0 -0
- package/lib/commonjs/assets/icon/icon-unarchive@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-unarchive@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-user.png +0 -0
- package/lib/commonjs/assets/icon/icon-user@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-user@3x.png +0 -0
- package/lib/commonjs/assets/icon/index.js +70 -0
- package/lib/commonjs/assets/icon/index.js.map +1 -0
- package/lib/commonjs/components/Image/Image.fastimage.js +85 -0
- package/lib/commonjs/components/Image/Image.fastimage.js.map +1 -0
- package/lib/commonjs/components/Image/Image.reactnative.js +35 -0
- package/lib/commonjs/components/Image/Image.reactnative.js.map +1 -0
- package/lib/commonjs/components/Image/index.js +29 -0
- package/lib/commonjs/components/Image/index.js.map +1 -0
- package/lib/commonjs/index.js +388 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/styles/HeaderStyleContext.js +46 -0
- package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -0
- package/lib/commonjs/styles/createScaleFactor.js +31 -0
- package/lib/commonjs/styles/createScaleFactor.js.map +1 -0
- package/lib/commonjs/styles/createSelectByColorScheme.js +24 -0
- package/lib/commonjs/styles/createSelectByColorScheme.js.map +1 -0
- package/lib/commonjs/styles/createStyleSheet.js +62 -0
- package/lib/commonjs/styles/createStyleSheet.js.map +1 -0
- package/lib/commonjs/styles/createTypography.js +106 -0
- package/lib/commonjs/styles/createTypography.js.map +1 -0
- package/lib/commonjs/styles/getDefaultHeaderHeight.js +17 -0
- package/lib/commonjs/styles/getDefaultHeaderHeight.js.map +1 -0
- package/lib/commonjs/styles/useHeaderStyle.js +18 -0
- package/lib/commonjs/styles/useHeaderStyle.js.map +1 -0
- package/lib/commonjs/theme/DarkUIKitTheme.js +186 -0
- package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -0
- package/lib/commonjs/theme/LightUIKitTheme.js +186 -0
- package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -0
- package/lib/commonjs/theme/Palette.js +47 -0
- package/lib/commonjs/theme/Palette.js.map +1 -0
- package/lib/commonjs/theme/UIKitThemeContext.js +16 -0
- package/lib/commonjs/theme/UIKitThemeContext.js.map +1 -0
- package/lib/commonjs/theme/UIKitThemeProvider.js +28 -0
- package/lib/commonjs/theme/UIKitThemeProvider.js.map +1 -0
- package/lib/commonjs/theme/createTheme.js +58 -0
- package/lib/commonjs/theme/createTheme.js.map +1 -0
- package/lib/commonjs/theme/useUIKitTheme.js +22 -0
- package/lib/commonjs/theme/useUIKitTheme.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/ui/ActionMenu/index.js +131 -0
- package/lib/commonjs/ui/ActionMenu/index.js.map +1 -0
- package/lib/commonjs/ui/Alert/index.js +122 -0
- package/lib/commonjs/ui/Alert/index.js.map +1 -0
- package/lib/commonjs/ui/Avatar/AvatarGroup.js +119 -0
- package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -0
- package/lib/commonjs/ui/Avatar/AvatarIcon.js +54 -0
- package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +1 -0
- package/lib/commonjs/ui/Avatar/index.js +100 -0
- package/lib/commonjs/ui/Avatar/index.js.map +1 -0
- package/lib/commonjs/ui/Badge/index.js +77 -0
- package/lib/commonjs/ui/Badge/index.js.map +1 -0
- package/lib/commonjs/ui/BottomSheet/index.js +80 -0
- package/lib/commonjs/ui/BottomSheet/index.js.map +1 -0
- package/lib/commonjs/ui/Button/index.js +90 -0
- package/lib/commonjs/ui/Button/index.js.map +1 -0
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js +51 -0
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +1 -0
- package/lib/commonjs/ui/Dialog/DialogBox.js +41 -0
- package/lib/commonjs/ui/Dialog/DialogBox.js.map +1 -0
- package/lib/commonjs/ui/Dialog/DialogSheet.js +86 -0
- package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -0
- package/lib/commonjs/ui/Dialog/index.js +182 -0
- package/lib/commonjs/ui/Dialog/index.js.map +1 -0
- package/lib/commonjs/ui/Divider/index.js +49 -0
- package/lib/commonjs/ui/Divider/index.js.map +1 -0
- package/lib/commonjs/ui/GroupChannelPreview/index.js +210 -0
- package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -0
- package/lib/commonjs/ui/Header/index.js +237 -0
- package/lib/commonjs/ui/Header/index.js.map +1 -0
- package/lib/commonjs/ui/Icon/index.js +78 -0
- package/lib/commonjs/ui/Icon/index.js.map +1 -0
- package/lib/commonjs/ui/LoadingSpinner/index.js +82 -0
- package/lib/commonjs/ui/LoadingSpinner/index.js.map +1 -0
- package/lib/commonjs/ui/MenuBar/index.js +88 -0
- package/lib/commonjs/ui/MenuBar/index.js.map +1 -0
- package/lib/commonjs/ui/Modal/index.js +214 -0
- package/lib/commonjs/ui/Modal/index.js.map +1 -0
- package/lib/commonjs/ui/Placeholder/index.js +82 -0
- package/lib/commonjs/ui/Placeholder/index.js.map +1 -0
- package/lib/commonjs/ui/Prompt/index.js +175 -0
- package/lib/commonjs/ui/Prompt/index.js.map +1 -0
- package/lib/commonjs/ui/Switch/index.js +125 -0
- package/lib/commonjs/ui/Switch/index.js.map +1 -0
- package/lib/commonjs/ui/Text/index.js +71 -0
- package/lib/commonjs/ui/Text/index.js.map +1 -0
- package/lib/commonjs/ui/TextInput/index.js +58 -0
- package/lib/commonjs/ui/TextInput/index.js.map +1 -0
- package/lib/commonjs/ui/Toast/index.js +183 -0
- package/lib/commonjs/ui/Toast/index.js.map +1 -0
- package/lib/commonjs/ui/URLParsedText/index.js +64 -0
- package/lib/commonjs/ui/URLParsedText/index.js.map +1 -0
- package/lib/module/assets/bundle-icons.js +31 -0
- package/lib/module/assets/bundle-icons.js.map +1 -0
- package/lib/module/assets/icon/ic-chat-hide.png +0 -0
- package/lib/module/assets/icon/ic-chat-hide@2x.png +0 -0
- package/lib/module/assets/icon/ic-chat-hide@3x.png +0 -0
- package/lib/module/assets/icon/ic-chat-show.png +0 -0
- package/lib/module/assets/icon/ic-chat-show@2x.png +0 -0
- package/lib/module/assets/icon/ic-chat-show@3x.png +0 -0
- package/lib/module/assets/icon/icon-add.png +0 -0
- package/lib/module/assets/icon/icon-add@2x.png +0 -0
- package/lib/module/assets/icon/icon-add@3x.png +0 -0
- package/lib/module/assets/icon/icon-archive.png +0 -0
- package/lib/module/assets/icon/icon-archive@2x.png +0 -0
- package/lib/module/assets/icon/icon-archive@3x.png +0 -0
- package/lib/module/assets/icon/icon-arrow-left.png +0 -0
- package/lib/module/assets/icon/icon-arrow-left@2x.png +0 -0
- package/lib/module/assets/icon/icon-arrow-left@3x.png +0 -0
- package/lib/module/assets/icon/icon-ban.png +0 -0
- package/lib/module/assets/icon/icon-ban@2x.png +0 -0
- package/lib/module/assets/icon/icon-ban@3x.png +0 -0
- package/lib/module/assets/icon/icon-broadcast.png +0 -0
- package/lib/module/assets/icon/icon-broadcast@2x.png +0 -0
- package/lib/module/assets/icon/icon-broadcast@3x.png +0 -0
- package/lib/module/assets/icon/icon-camera.png +0 -0
- package/lib/module/assets/icon/icon-camera@2x.png +0 -0
- package/lib/module/assets/icon/icon-camera@3x.png +0 -0
- package/lib/module/assets/icon/icon-channels.png +0 -0
- package/lib/module/assets/icon/icon-channels@2x.png +0 -0
- package/lib/module/assets/icon/icon-channels@3x.png +0 -0
- package/lib/module/assets/icon/icon-chat-filled.png +0 -0
- package/lib/module/assets/icon/icon-chat-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-chat-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-chat.png +0 -0
- package/lib/module/assets/icon/icon-chat@2x.png +0 -0
- package/lib/module/assets/icon/icon-chat@3x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-off.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-off@2x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-off@3x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-on.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-on@2x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-on@3x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-down.png +0 -0
- package/lib/module/assets/icon/icon-chevron-down@2x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-down@3x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-right.png +0 -0
- package/lib/module/assets/icon/icon-chevron-right@2x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-right@3x.png +0 -0
- package/lib/module/assets/icon/icon-close.png +0 -0
- package/lib/module/assets/icon/icon-close@2x.png +0 -0
- package/lib/module/assets/icon/icon-close@3x.png +0 -0
- package/lib/module/assets/icon/icon-copy.png +0 -0
- package/lib/module/assets/icon/icon-copy@2x.png +0 -0
- package/lib/module/assets/icon/icon-copy@3x.png +0 -0
- package/lib/module/assets/icon/icon-create.png +0 -0
- package/lib/module/assets/icon/icon-create@2x.png +0 -0
- package/lib/module/assets/icon/icon-create@3x.png +0 -0
- package/lib/module/assets/icon/icon-delete.png +0 -0
- package/lib/module/assets/icon/icon-delete@2x.png +0 -0
- package/lib/module/assets/icon/icon-delete@3x.png +0 -0
- package/lib/module/assets/icon/icon-document.png +0 -0
- package/lib/module/assets/icon/icon-document@2x.png +0 -0
- package/lib/module/assets/icon/icon-document@3x.png +0 -0
- package/lib/module/assets/icon/icon-done-all.png +0 -0
- package/lib/module/assets/icon/icon-done-all@2x.png +0 -0
- package/lib/module/assets/icon/icon-done-all@3x.png +0 -0
- package/lib/module/assets/icon/icon-done.png +0 -0
- package/lib/module/assets/icon/icon-done@2x.png +0 -0
- package/lib/module/assets/icon/icon-done@3x.png +0 -0
- package/lib/module/assets/icon/icon-download.png +0 -0
- package/lib/module/assets/icon/icon-download@2x.png +0 -0
- package/lib/module/assets/icon/icon-download@3x.png +0 -0
- package/lib/module/assets/icon/icon-edit.png +0 -0
- package/lib/module/assets/icon/icon-edit@2x.png +0 -0
- package/lib/module/assets/icon/icon-edit@3x.png +0 -0
- package/lib/module/assets/icon/icon-emoji-more.png +0 -0
- package/lib/module/assets/icon/icon-emoji-more@2x.png +0 -0
- package/lib/module/assets/icon/icon-emoji-more@3x.png +0 -0
- package/lib/module/assets/icon/icon-error.png +0 -0
- package/lib/module/assets/icon/icon-error@2x.png +0 -0
- package/lib/module/assets/icon/icon-error@3x.png +0 -0
- package/lib/module/assets/icon/icon-file-audio.png +0 -0
- package/lib/module/assets/icon/icon-file-audio@2x.png +0 -0
- package/lib/module/assets/icon/icon-file-audio@3x.png +0 -0
- package/lib/module/assets/icon/icon-file-document.png +0 -0
- package/lib/module/assets/icon/icon-file-document@2x.png +0 -0
- package/lib/module/assets/icon/icon-file-document@3x.png +0 -0
- package/lib/module/assets/icon/icon-freeze.png +0 -0
- package/lib/module/assets/icon/icon-freeze@2x.png +0 -0
- package/lib/module/assets/icon/icon-freeze@3x.png +0 -0
- package/lib/module/assets/icon/icon-gif.png +0 -0
- package/lib/module/assets/icon/icon-gif@2x.png +0 -0
- package/lib/module/assets/icon/icon-gif@3x.png +0 -0
- package/lib/module/assets/icon/icon-info.png +0 -0
- package/lib/module/assets/icon/icon-info@2x.png +0 -0
- package/lib/module/assets/icon/icon-info@3x.png +0 -0
- package/lib/module/assets/icon/icon-leave.png +0 -0
- package/lib/module/assets/icon/icon-leave@2x.png +0 -0
- package/lib/module/assets/icon/icon-leave@3x.png +0 -0
- package/lib/module/assets/icon/icon-members.png +0 -0
- package/lib/module/assets/icon/icon-members@2x.png +0 -0
- package/lib/module/assets/icon/icon-members@3x.png +0 -0
- package/lib/module/assets/icon/icon-message.png +0 -0
- package/lib/module/assets/icon/icon-message@2x.png +0 -0
- package/lib/module/assets/icon/icon-message@3x.png +0 -0
- package/lib/module/assets/icon/icon-moderations.png +0 -0
- package/lib/module/assets/icon/icon-moderations@2x.png +0 -0
- package/lib/module/assets/icon/icon-moderations@3x.png +0 -0
- package/lib/module/assets/icon/icon-more.png +0 -0
- package/lib/module/assets/icon/icon-more@2x.png +0 -0
- package/lib/module/assets/icon/icon-more@3x.png +0 -0
- package/lib/module/assets/icon/icon-mute.png +0 -0
- package/lib/module/assets/icon/icon-mute@2x.png +0 -0
- package/lib/module/assets/icon/icon-mute@3x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-filled.png +0 -0
- package/lib/module/assets/icon/icon-notifications-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-off-filled.png +0 -0
- package/lib/module/assets/icon/icon-notifications-off-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-off-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-notifications.png +0 -0
- package/lib/module/assets/icon/icon-notifications@2x.png +0 -0
- package/lib/module/assets/icon/icon-notifications@3x.png +0 -0
- package/lib/module/assets/icon/icon-operator.png +0 -0
- package/lib/module/assets/icon/icon-operator@2x.png +0 -0
- package/lib/module/assets/icon/icon-operator@3x.png +0 -0
- package/lib/module/assets/icon/icon-photo.png +0 -0
- package/lib/module/assets/icon/icon-photo@2x.png +0 -0
- package/lib/module/assets/icon/icon-photo@3x.png +0 -0
- package/lib/module/assets/icon/icon-play.png +0 -0
- package/lib/module/assets/icon/icon-play@2x.png +0 -0
- package/lib/module/assets/icon/icon-play@3x.png +0 -0
- package/lib/module/assets/icon/icon-plus.png +0 -0
- package/lib/module/assets/icon/icon-plus@2x.png +0 -0
- package/lib/module/assets/icon/icon-plus@3x.png +0 -0
- package/lib/module/assets/icon/icon-question.png +0 -0
- package/lib/module/assets/icon/icon-question@2x.png +0 -0
- package/lib/module/assets/icon/icon-question@3x.png +0 -0
- package/lib/module/assets/icon/icon-refresh.png +0 -0
- package/lib/module/assets/icon/icon-refresh@2x.png +0 -0
- package/lib/module/assets/icon/icon-refresh@3x.png +0 -0
- package/lib/module/assets/icon/icon-remove.png +0 -0
- package/lib/module/assets/icon/icon-remove@2x.png +0 -0
- package/lib/module/assets/icon/icon-remove@3x.png +0 -0
- package/lib/module/assets/icon/icon-reply-filled.png +0 -0
- package/lib/module/assets/icon/icon-reply-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-reply-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-reply.png +0 -0
- package/lib/module/assets/icon/icon-reply@2x.png +0 -0
- package/lib/module/assets/icon/icon-reply@3x.png +0 -0
- package/lib/module/assets/icon/icon-search.png +0 -0
- package/lib/module/assets/icon/icon-search@2x.png +0 -0
- package/lib/module/assets/icon/icon-search@3x.png +0 -0
- package/lib/module/assets/icon/icon-send.png +0 -0
- package/lib/module/assets/icon/icon-send@2x.png +0 -0
- package/lib/module/assets/icon/icon-send@3x.png +0 -0
- package/lib/module/assets/icon/icon-settings-filled.png +0 -0
- package/lib/module/assets/icon/icon-settings-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-settings-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-spinner.png +0 -0
- package/lib/module/assets/icon/icon-spinner@2x.png +0 -0
- package/lib/module/assets/icon/icon-spinner@3x.png +0 -0
- package/lib/module/assets/icon/icon-streaming.png +0 -0
- package/lib/module/assets/icon/icon-streaming@2x.png +0 -0
- package/lib/module/assets/icon/icon-streaming@3x.png +0 -0
- package/lib/module/assets/icon/icon-supergroup.png +0 -0
- package/lib/module/assets/icon/icon-supergroup@2x.png +0 -0
- package/lib/module/assets/icon/icon-supergroup@3x.png +0 -0
- package/lib/module/assets/icon/icon-theme.png +0 -0
- package/lib/module/assets/icon/icon-theme@2x.png +0 -0
- package/lib/module/assets/icon/icon-theme@3x.png +0 -0
- package/lib/module/assets/icon/icon-thumbnail-none.png +0 -0
- package/lib/module/assets/icon/icon-thumbnail-none@2x.png +0 -0
- package/lib/module/assets/icon/icon-thumbnail-none@3x.png +0 -0
- package/lib/module/assets/icon/icon-unarchive.png +0 -0
- package/lib/module/assets/icon/icon-unarchive@2x.png +0 -0
- package/lib/module/assets/icon/icon-unarchive@3x.png +0 -0
- package/lib/module/assets/icon/icon-user.png +0 -0
- package/lib/module/assets/icon/icon-user@2x.png +0 -0
- package/lib/module/assets/icon/icon-user@3x.png +0 -0
- package/lib/module/assets/icon/index.js +63 -0
- package/lib/module/assets/icon/index.js.map +1 -0
- package/lib/module/components/Image/Image.fastimage.js +74 -0
- package/lib/module/components/Image/Image.fastimage.js.map +1 -0
- package/lib/module/components/Image/Image.reactnative.js +24 -0
- package/lib/module/components/Image/Image.reactnative.js.map +1 -0
- package/lib/module/components/Image/index.js +20 -0
- package/lib/module/components/Image/index.js.map +1 -0
- package/lib/module/index.js +49 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/styles/HeaderStyleContext.js +29 -0
- package/lib/module/styles/HeaderStyleContext.js.map +1 -0
- package/lib/module/styles/createScaleFactor.js +20 -0
- package/lib/module/styles/createScaleFactor.js.map +1 -0
- package/lib/module/styles/createSelectByColorScheme.js +16 -0
- package/lib/module/styles/createSelectByColorScheme.js.map +1 -0
- package/lib/module/styles/createStyleSheet.js +53 -0
- package/lib/module/styles/createStyleSheet.js.map +1 -0
- package/lib/module/styles/createTypography.js +98 -0
- package/lib/module/styles/createTypography.js.map +1 -0
- package/lib/module/styles/getDefaultHeaderHeight.js +10 -0
- package/lib/module/styles/getDefaultHeaderHeight.js.map +1 -0
- package/lib/module/styles/useHeaderStyle.js +9 -0
- package/lib/module/styles/useHeaderStyle.js.map +1 -0
- package/lib/module/theme/DarkUIKitTheme.js +175 -0
- package/lib/module/theme/DarkUIKitTheme.js.map +1 -0
- package/lib/module/theme/LightUIKitTheme.js +175 -0
- package/lib/module/theme/LightUIKitTheme.js.map +1 -0
- package/lib/module/theme/Palette.js +40 -0
- package/lib/module/theme/Palette.js.map +1 -0
- package/lib/module/theme/UIKitThemeContext.js +4 -0
- package/lib/module/theme/UIKitThemeContext.js.map +1 -0
- package/lib/module/theme/UIKitThemeProvider.js +16 -0
- package/lib/module/theme/UIKitThemeProvider.js.map +1 -0
- package/lib/module/theme/createTheme.js +46 -0
- package/lib/module/theme/createTheme.js.map +1 -0
- package/lib/module/theme/useUIKitTheme.js +11 -0
- package/lib/module/theme/useUIKitTheme.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/ui/ActionMenu/index.js +108 -0
- package/lib/module/ui/ActionMenu/index.js.map +1 -0
- package/lib/module/ui/Alert/index.js +104 -0
- package/lib/module/ui/Alert/index.js.map +1 -0
- package/lib/module/ui/Avatar/AvatarGroup.js +104 -0
- package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -0
- package/lib/module/ui/Avatar/AvatarIcon.js +40 -0
- package/lib/module/ui/Avatar/AvatarIcon.js.map +1 -0
- package/lib/module/ui/Avatar/index.js +78 -0
- package/lib/module/ui/Avatar/index.js.map +1 -0
- package/lib/module/ui/Badge/index.js +62 -0
- package/lib/module/ui/Badge/index.js.map +1 -0
- package/lib/module/ui/BottomSheet/index.js +65 -0
- package/lib/module/ui/BottomSheet/index.js.map +1 -0
- package/lib/module/ui/Button/index.js +75 -0
- package/lib/module/ui/Button/index.js.map +1 -0
- package/lib/module/ui/ChannelFrozenBanner/index.js +37 -0
- package/lib/module/ui/ChannelFrozenBanner/index.js.map +1 -0
- package/lib/module/ui/Dialog/DialogBox.js +28 -0
- package/lib/module/ui/Dialog/DialogBox.js.map +1 -0
- package/lib/module/ui/Dialog/DialogSheet.js +71 -0
- package/lib/module/ui/Dialog/DialogSheet.js.map +1 -0
- package/lib/module/ui/Dialog/index.js +144 -0
- package/lib/module/ui/Dialog/index.js.map +1 -0
- package/lib/module/ui/Divider/index.js +36 -0
- package/lib/module/ui/Divider/index.js.map +1 -0
- package/lib/module/ui/GroupChannelPreview/index.js +190 -0
- package/lib/module/ui/GroupChannelPreview/index.js.map +1 -0
- package/lib/module/ui/Header/index.js +218 -0
- package/lib/module/ui/Header/index.js.map +1 -0
- package/lib/module/ui/Icon/index.js +63 -0
- package/lib/module/ui/Icon/index.js.map +1 -0
- package/lib/module/ui/LoadingSpinner/index.js +64 -0
- package/lib/module/ui/LoadingSpinner/index.js.map +1 -0
- package/lib/module/ui/MenuBar/index.js +71 -0
- package/lib/module/ui/MenuBar/index.js.map +1 -0
- package/lib/module/ui/Modal/index.js +196 -0
- package/lib/module/ui/Modal/index.js.map +1 -0
- package/lib/module/ui/Placeholder/index.js +64 -0
- package/lib/module/ui/Placeholder/index.js.map +1 -0
- package/lib/module/ui/Prompt/index.js +151 -0
- package/lib/module/ui/Prompt/index.js.map +1 -0
- package/lib/module/ui/Switch/index.js +107 -0
- package/lib/module/ui/Switch/index.js.map +1 -0
- package/lib/module/ui/Text/index.js +59 -0
- package/lib/module/ui/Text/index.js.map +1 -0
- package/lib/module/ui/TextInput/index.js +43 -0
- package/lib/module/ui/TextInput/index.js.map +1 -0
- package/lib/module/ui/Toast/index.js +156 -0
- package/lib/module/ui/Toast/index.js.map +1 -0
- package/lib/module/ui/URLParsedText/index.js +45 -0
- package/lib/module/ui/URLParsedText/index.js.map +1 -0
- package/lib/typescript/src/assets/icon/index.d.ts +62 -0
- package/lib/typescript/src/components/Image/Image.fastimage.d.ts +3 -0
- package/lib/typescript/src/components/Image/Image.reactnative.d.ts +3 -0
- package/lib/typescript/src/components/Image/index.d.ts +15 -0
- package/lib/typescript/src/index.d.ts +45 -0
- package/lib/typescript/src/styles/HeaderStyleContext.d.ts +20 -0
- package/lib/typescript/src/styles/createScaleFactor.d.ts +6 -0
- package/lib/typescript/src/styles/createSelectByColorScheme.d.ts +9 -0
- package/lib/typescript/src/styles/createStyleSheet.d.ts +9 -0
- package/lib/typescript/src/styles/createTypography.d.ts +6 -0
- package/lib/typescript/src/styles/getDefaultHeaderHeight.d.ts +2 -0
- package/lib/typescript/src/styles/useHeaderStyle.d.ts +2 -0
- package/lib/typescript/src/theme/DarkUIKitTheme.d.ts +2 -0
- package/lib/typescript/src/theme/LightUIKitTheme.d.ts +2 -0
- package/lib/typescript/src/theme/Palette.d.ts +3 -0
- package/lib/typescript/src/theme/UIKitThemeContext.d.ts +4 -0
- package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +7 -0
- package/lib/typescript/src/theme/createTheme.d.ts +10 -0
- package/lib/typescript/src/theme/useUIKitTheme.d.ts +3 -0
- package/lib/typescript/src/types.d.ts +167 -0
- package/lib/typescript/src/ui/ActionMenu/index.d.ts +17 -0
- package/lib/typescript/src/ui/Alert/index.d.ts +14 -0
- package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +8 -0
- package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +11 -0
- package/lib/typescript/src/ui/Avatar/index.d.ts +17 -0
- package/lib/typescript/src/ui/Badge/index.d.ts +12 -0
- package/lib/typescript/src/ui/BottomSheet/index.d.ts +19 -0
- package/lib/typescript/src/ui/Button/index.d.ts +14 -0
- package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +10 -0
- package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +7 -0
- package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +17 -0
- package/lib/typescript/src/ui/Dialog/index.d.ts +46 -0
- package/lib/typescript/src/ui/Divider/index.d.ts +8 -0
- package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +17 -0
- package/lib/typescript/src/ui/Header/index.d.ts +29 -0
- package/lib/typescript/src/ui/Icon/index.d.ts +15 -0
- package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +9 -0
- package/lib/typescript/src/ui/MenuBar/index.d.ts +15 -0
- package/lib/typescript/src/ui/Modal/index.d.ts +18 -0
- package/lib/typescript/src/ui/Placeholder/index.d.ts +11 -0
- package/lib/typescript/src/ui/Prompt/index.d.ts +18 -0
- package/lib/typescript/src/ui/Switch/index.d.ts +11 -0
- package/lib/typescript/src/ui/Text/index.d.ts +9 -0
- package/lib/typescript/src/ui/TextInput/index.d.ts +6 -0
- package/lib/typescript/src/ui/Toast/index.d.ts +18 -0
- package/lib/typescript/src/ui/URLParsedText/index.d.ts +9 -0
- package/package.json +84 -0
- package/src/assets/bundle-icons.js +37 -0
- package/src/assets/icon/ic-chat-hide.png +0 -0
- package/src/assets/icon/ic-chat-hide@2x.png +0 -0
- package/src/assets/icon/ic-chat-hide@3x.png +0 -0
- package/src/assets/icon/ic-chat-show.png +0 -0
- package/src/assets/icon/ic-chat-show@2x.png +0 -0
- package/src/assets/icon/ic-chat-show@3x.png +0 -0
- package/src/assets/icon/icon-add.png +0 -0
- package/src/assets/icon/icon-add@2x.png +0 -0
- package/src/assets/icon/icon-add@3x.png +0 -0
- package/src/assets/icon/icon-archive.png +0 -0
- package/src/assets/icon/icon-archive@2x.png +0 -0
- package/src/assets/icon/icon-archive@3x.png +0 -0
- package/src/assets/icon/icon-arrow-left.png +0 -0
- package/src/assets/icon/icon-arrow-left@2x.png +0 -0
- package/src/assets/icon/icon-arrow-left@3x.png +0 -0
- package/src/assets/icon/icon-ban.png +0 -0
- package/src/assets/icon/icon-ban@2x.png +0 -0
- package/src/assets/icon/icon-ban@3x.png +0 -0
- package/src/assets/icon/icon-broadcast.png +0 -0
- package/src/assets/icon/icon-broadcast@2x.png +0 -0
- package/src/assets/icon/icon-broadcast@3x.png +0 -0
- package/src/assets/icon/icon-camera.png +0 -0
- package/src/assets/icon/icon-camera@2x.png +0 -0
- package/src/assets/icon/icon-camera@3x.png +0 -0
- package/src/assets/icon/icon-channels.png +0 -0
- package/src/assets/icon/icon-channels@2x.png +0 -0
- package/src/assets/icon/icon-channels@3x.png +0 -0
- package/src/assets/icon/icon-chat-filled.png +0 -0
- package/src/assets/icon/icon-chat-filled@2x.png +0 -0
- package/src/assets/icon/icon-chat-filled@3x.png +0 -0
- package/src/assets/icon/icon-chat.png +0 -0
- package/src/assets/icon/icon-chat@2x.png +0 -0
- package/src/assets/icon/icon-chat@3x.png +0 -0
- package/src/assets/icon/icon-checkbox-off.png +0 -0
- package/src/assets/icon/icon-checkbox-off@2x.png +0 -0
- package/src/assets/icon/icon-checkbox-off@3x.png +0 -0
- package/src/assets/icon/icon-checkbox-on.png +0 -0
- package/src/assets/icon/icon-checkbox-on@2x.png +0 -0
- package/src/assets/icon/icon-checkbox-on@3x.png +0 -0
- package/src/assets/icon/icon-chevron-down.png +0 -0
- package/src/assets/icon/icon-chevron-down@2x.png +0 -0
- package/src/assets/icon/icon-chevron-down@3x.png +0 -0
- package/src/assets/icon/icon-chevron-right.png +0 -0
- package/src/assets/icon/icon-chevron-right@2x.png +0 -0
- package/src/assets/icon/icon-chevron-right@3x.png +0 -0
- package/src/assets/icon/icon-close.png +0 -0
- package/src/assets/icon/icon-close@2x.png +0 -0
- package/src/assets/icon/icon-close@3x.png +0 -0
- package/src/assets/icon/icon-copy.png +0 -0
- package/src/assets/icon/icon-copy@2x.png +0 -0
- package/src/assets/icon/icon-copy@3x.png +0 -0
- package/src/assets/icon/icon-create.png +0 -0
- package/src/assets/icon/icon-create@2x.png +0 -0
- package/src/assets/icon/icon-create@3x.png +0 -0
- package/src/assets/icon/icon-delete.png +0 -0
- package/src/assets/icon/icon-delete@2x.png +0 -0
- package/src/assets/icon/icon-delete@3x.png +0 -0
- package/src/assets/icon/icon-document.png +0 -0
- package/src/assets/icon/icon-document@2x.png +0 -0
- package/src/assets/icon/icon-document@3x.png +0 -0
- package/src/assets/icon/icon-done-all.png +0 -0
- package/src/assets/icon/icon-done-all@2x.png +0 -0
- package/src/assets/icon/icon-done-all@3x.png +0 -0
- package/src/assets/icon/icon-done.png +0 -0
- package/src/assets/icon/icon-done@2x.png +0 -0
- package/src/assets/icon/icon-done@3x.png +0 -0
- package/src/assets/icon/icon-download.png +0 -0
- package/src/assets/icon/icon-download@2x.png +0 -0
- package/src/assets/icon/icon-download@3x.png +0 -0
- package/src/assets/icon/icon-edit.png +0 -0
- package/src/assets/icon/icon-edit@2x.png +0 -0
- package/src/assets/icon/icon-edit@3x.png +0 -0
- package/src/assets/icon/icon-emoji-more.png +0 -0
- package/src/assets/icon/icon-emoji-more@2x.png +0 -0
- package/src/assets/icon/icon-emoji-more@3x.png +0 -0
- package/src/assets/icon/icon-error.png +0 -0
- package/src/assets/icon/icon-error@2x.png +0 -0
- package/src/assets/icon/icon-error@3x.png +0 -0
- package/src/assets/icon/icon-file-audio.png +0 -0
- package/src/assets/icon/icon-file-audio@2x.png +0 -0
- package/src/assets/icon/icon-file-audio@3x.png +0 -0
- package/src/assets/icon/icon-file-document.png +0 -0
- package/src/assets/icon/icon-file-document@2x.png +0 -0
- package/src/assets/icon/icon-file-document@3x.png +0 -0
- package/src/assets/icon/icon-freeze.png +0 -0
- package/src/assets/icon/icon-freeze@2x.png +0 -0
- package/src/assets/icon/icon-freeze@3x.png +0 -0
- package/src/assets/icon/icon-gif.png +0 -0
- package/src/assets/icon/icon-gif@2x.png +0 -0
- package/src/assets/icon/icon-gif@3x.png +0 -0
- package/src/assets/icon/icon-info.png +0 -0
- package/src/assets/icon/icon-info@2x.png +0 -0
- package/src/assets/icon/icon-info@3x.png +0 -0
- package/src/assets/icon/icon-leave.png +0 -0
- package/src/assets/icon/icon-leave@2x.png +0 -0
- package/src/assets/icon/icon-leave@3x.png +0 -0
- package/src/assets/icon/icon-members.png +0 -0
- package/src/assets/icon/icon-members@2x.png +0 -0
- package/src/assets/icon/icon-members@3x.png +0 -0
- package/src/assets/icon/icon-message.png +0 -0
- package/src/assets/icon/icon-message@2x.png +0 -0
- package/src/assets/icon/icon-message@3x.png +0 -0
- package/src/assets/icon/icon-moderations.png +0 -0
- package/src/assets/icon/icon-moderations@2x.png +0 -0
- package/src/assets/icon/icon-moderations@3x.png +0 -0
- package/src/assets/icon/icon-more.png +0 -0
- package/src/assets/icon/icon-more@2x.png +0 -0
- package/src/assets/icon/icon-more@3x.png +0 -0
- package/src/assets/icon/icon-mute.png +0 -0
- package/src/assets/icon/icon-mute@2x.png +0 -0
- package/src/assets/icon/icon-mute@3x.png +0 -0
- package/src/assets/icon/icon-notifications-filled.png +0 -0
- package/src/assets/icon/icon-notifications-filled@2x.png +0 -0
- package/src/assets/icon/icon-notifications-filled@3x.png +0 -0
- package/src/assets/icon/icon-notifications-off-filled.png +0 -0
- package/src/assets/icon/icon-notifications-off-filled@2x.png +0 -0
- package/src/assets/icon/icon-notifications-off-filled@3x.png +0 -0
- package/src/assets/icon/icon-notifications.png +0 -0
- package/src/assets/icon/icon-notifications@2x.png +0 -0
- package/src/assets/icon/icon-notifications@3x.png +0 -0
- package/src/assets/icon/icon-operator.png +0 -0
- package/src/assets/icon/icon-operator@2x.png +0 -0
- package/src/assets/icon/icon-operator@3x.png +0 -0
- package/src/assets/icon/icon-photo.png +0 -0
- package/src/assets/icon/icon-photo@2x.png +0 -0
- package/src/assets/icon/icon-photo@3x.png +0 -0
- package/src/assets/icon/icon-play.png +0 -0
- package/src/assets/icon/icon-play@2x.png +0 -0
- package/src/assets/icon/icon-play@3x.png +0 -0
- package/src/assets/icon/icon-plus.png +0 -0
- package/src/assets/icon/icon-plus@2x.png +0 -0
- package/src/assets/icon/icon-plus@3x.png +0 -0
- package/src/assets/icon/icon-question.png +0 -0
- package/src/assets/icon/icon-question@2x.png +0 -0
- package/src/assets/icon/icon-question@3x.png +0 -0
- package/src/assets/icon/icon-refresh.png +0 -0
- package/src/assets/icon/icon-refresh@2x.png +0 -0
- package/src/assets/icon/icon-refresh@3x.png +0 -0
- package/src/assets/icon/icon-remove.png +0 -0
- package/src/assets/icon/icon-remove@2x.png +0 -0
- package/src/assets/icon/icon-remove@3x.png +0 -0
- package/src/assets/icon/icon-reply-filled.png +0 -0
- package/src/assets/icon/icon-reply-filled@2x.png +0 -0
- package/src/assets/icon/icon-reply-filled@3x.png +0 -0
- package/src/assets/icon/icon-reply.png +0 -0
- package/src/assets/icon/icon-reply@2x.png +0 -0
- package/src/assets/icon/icon-reply@3x.png +0 -0
- package/src/assets/icon/icon-search.png +0 -0
- package/src/assets/icon/icon-search@2x.png +0 -0
- package/src/assets/icon/icon-search@3x.png +0 -0
- package/src/assets/icon/icon-send.png +0 -0
- package/src/assets/icon/icon-send@2x.png +0 -0
- package/src/assets/icon/icon-send@3x.png +0 -0
- package/src/assets/icon/icon-settings-filled.png +0 -0
- package/src/assets/icon/icon-settings-filled@2x.png +0 -0
- package/src/assets/icon/icon-settings-filled@3x.png +0 -0
- package/src/assets/icon/icon-spinner.png +0 -0
- package/src/assets/icon/icon-spinner@2x.png +0 -0
- package/src/assets/icon/icon-spinner@3x.png +0 -0
- package/src/assets/icon/icon-streaming.png +0 -0
- package/src/assets/icon/icon-streaming@2x.png +0 -0
- package/src/assets/icon/icon-streaming@3x.png +0 -0
- package/src/assets/icon/icon-supergroup.png +0 -0
- package/src/assets/icon/icon-supergroup@2x.png +0 -0
- package/src/assets/icon/icon-supergroup@3x.png +0 -0
- package/src/assets/icon/icon-theme.png +0 -0
- package/src/assets/icon/icon-theme@2x.png +0 -0
- package/src/assets/icon/icon-theme@3x.png +0 -0
- package/src/assets/icon/icon-thumbnail-none.png +0 -0
- package/src/assets/icon/icon-thumbnail-none@2x.png +0 -0
- package/src/assets/icon/icon-thumbnail-none@3x.png +0 -0
- package/src/assets/icon/icon-unarchive.png +0 -0
- package/src/assets/icon/icon-unarchive@2x.png +0 -0
- package/src/assets/icon/icon-unarchive@3x.png +0 -0
- package/src/assets/icon/icon-user.png +0 -0
- package/src/assets/icon/icon-user@2x.png +0 -0
- package/src/assets/icon/icon-user@3x.png +0 -0
- package/src/assets/icon/index.ts +62 -0
- package/src/components/Image/Image.fastimage.tsx +64 -0
- package/src/components/Image/Image.reactnative.tsx +17 -0
- package/src/components/Image/index.ts +27 -0
- package/src/index.ts +64 -0
- package/src/styles/HeaderStyleContext.tsx +52 -0
- package/src/styles/createScaleFactor.ts +17 -0
- package/src/styles/createSelectByColorScheme.ts +17 -0
- package/src/styles/createStyleSheet.ts +59 -0
- package/src/styles/createTypography.ts +103 -0
- package/src/styles/getDefaultHeaderHeight.ts +9 -0
- package/src/styles/useHeaderStyle.ts +9 -0
- package/src/theme/DarkUIKitTheme.ts +176 -0
- package/src/theme/LightUIKitTheme.ts +176 -0
- package/src/theme/Palette.ts +49 -0
- package/src/theme/UIKitThemeContext.tsx +7 -0
- package/src/theme/UIKitThemeProvider.tsx +12 -0
- package/src/theme/createTheme.ts +42 -0
- package/src/theme/useUIKitTheme.ts +12 -0
- package/src/types.ts +202 -0
- package/src/ui/ActionMenu/index.tsx +115 -0
- package/src/ui/Alert/index.tsx +119 -0
- package/src/ui/Avatar/AvatarGroup.tsx +86 -0
- package/src/ui/Avatar/AvatarIcon.tsx +40 -0
- package/src/ui/Avatar/index.tsx +70 -0
- package/src/ui/Badge/index.tsx +63 -0
- package/src/ui/BottomSheet/index.tsx +59 -0
- package/src/ui/Button/index.tsx +76 -0
- package/src/ui/ChannelFrozenBanner/index.tsx +39 -0
- package/src/ui/Dialog/DialogBox.tsx +26 -0
- package/src/ui/Dialog/DialogSheet.tsx +72 -0
- package/src/ui/Dialog/index.tsx +185 -0
- package/src/ui/Divider/index.tsx +32 -0
- package/src/ui/GroupChannelPreview/index.tsx +193 -0
- package/src/ui/Header/index.tsx +188 -0
- package/src/ui/Icon/index.tsx +64 -0
- package/src/ui/LoadingSpinner/index.tsx +46 -0
- package/src/ui/MenuBar/index.tsx +94 -0
- package/src/ui/Modal/index.tsx +195 -0
- package/src/ui/Placeholder/index.tsx +80 -0
- package/src/ui/Prompt/index.tsx +158 -0
- package/src/ui/Switch/index.tsx +96 -0
- package/src/ui/Text/index.tsx +52 -0
- package/src/ui/TextInput/index.tsx +46 -0
- package/src/ui/Toast/index.tsx +122 -0
- package/src/ui/URLParsedText/index.tsx +52 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { TouchableOpacity, View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { Logger } from '@sendbird/uikit-utils';
|
|
5
|
+
|
|
6
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
7
|
+
import useHeaderStyle from '../../styles/useHeaderStyle';
|
|
8
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
9
|
+
import DialogBox from '../Dialog/DialogBox';
|
|
10
|
+
import LoadingSpinner from '../LoadingSpinner';
|
|
11
|
+
import Modal from '../Modal';
|
|
12
|
+
import Text from '../Text';
|
|
13
|
+
|
|
14
|
+
export type ActionMenuItem = {
|
|
15
|
+
title?: string;
|
|
16
|
+
menuItems: {
|
|
17
|
+
title: string;
|
|
18
|
+
onPress?: (() => Promise<void>) | (() => void);
|
|
19
|
+
onError?: () => void;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type Props = {
|
|
24
|
+
visible: boolean;
|
|
25
|
+
onHide: () => void;
|
|
26
|
+
onError?: (error: unknown) => void;
|
|
27
|
+
onDismiss?: () => void;
|
|
28
|
+
} & ActionMenuItem;
|
|
29
|
+
const ActionMenu: React.FC<Props> = ({ visible, onHide, onError, onDismiss, title, menuItems }) => {
|
|
30
|
+
const { statusBarTranslucent } = useHeaderStyle();
|
|
31
|
+
const { colors } = useUIKitTheme();
|
|
32
|
+
const [pending, setPending] = useState(false);
|
|
33
|
+
const _onHide = () => {
|
|
34
|
+
if (!pending) onHide();
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<Modal
|
|
39
|
+
onClose={_onHide}
|
|
40
|
+
onDismiss={onDismiss}
|
|
41
|
+
statusBarTranslucent={statusBarTranslucent}
|
|
42
|
+
visible={visible}
|
|
43
|
+
backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}
|
|
44
|
+
>
|
|
45
|
+
<DialogBox>
|
|
46
|
+
<View style={styles.title}>
|
|
47
|
+
<Text
|
|
48
|
+
h1
|
|
49
|
+
color={colors.ui.dialog.default.none.text}
|
|
50
|
+
numberOfLines={1}
|
|
51
|
+
// style={{ flex: 1 }}
|
|
52
|
+
style={{ maxWidth: pending ? '86%' : '100%' }}
|
|
53
|
+
>
|
|
54
|
+
{title}
|
|
55
|
+
</Text>
|
|
56
|
+
{pending && (
|
|
57
|
+
<LoadingSpinner
|
|
58
|
+
size={20}
|
|
59
|
+
color={colors.ui.dialog.default.none.highlight}
|
|
60
|
+
style={{ width: '10%', marginLeft: '4%' }}
|
|
61
|
+
/>
|
|
62
|
+
)}
|
|
63
|
+
</View>
|
|
64
|
+
<View style={styles.buttonContainer}>
|
|
65
|
+
{menuItems.map((item, index) => {
|
|
66
|
+
return (
|
|
67
|
+
<TouchableOpacity
|
|
68
|
+
activeOpacity={0.75}
|
|
69
|
+
key={item.title + index}
|
|
70
|
+
style={styles.button}
|
|
71
|
+
disabled={pending}
|
|
72
|
+
onPress={async () => {
|
|
73
|
+
setPending(true);
|
|
74
|
+
try {
|
|
75
|
+
await item.onPress?.();
|
|
76
|
+
} catch (e: unknown) {
|
|
77
|
+
const errorHandler = onError ?? item.onError;
|
|
78
|
+
errorHandler?.(e);
|
|
79
|
+
if (!errorHandler) Logger.error('ActionMenu onPress error', e);
|
|
80
|
+
} finally {
|
|
81
|
+
onHide();
|
|
82
|
+
setPending(false);
|
|
83
|
+
}
|
|
84
|
+
}}
|
|
85
|
+
>
|
|
86
|
+
<Text subtitle2 color={colors.ui.dialog.default.none.text} numberOfLines={1}>
|
|
87
|
+
{item.title}
|
|
88
|
+
</Text>
|
|
89
|
+
</TouchableOpacity>
|
|
90
|
+
);
|
|
91
|
+
})}
|
|
92
|
+
</View>
|
|
93
|
+
</DialogBox>
|
|
94
|
+
</Modal>
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const styles = createStyleSheet({
|
|
99
|
+
title: {
|
|
100
|
+
flexDirection: 'row',
|
|
101
|
+
paddingHorizontal: 24,
|
|
102
|
+
paddingVertical: 20,
|
|
103
|
+
alignItems: 'center',
|
|
104
|
+
},
|
|
105
|
+
buttonContainer: {
|
|
106
|
+
marginTop: 4,
|
|
107
|
+
marginBottom: 8,
|
|
108
|
+
},
|
|
109
|
+
button: {
|
|
110
|
+
paddingHorizontal: 24,
|
|
111
|
+
paddingVertical: 12,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
export default ActionMenu;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AlertButton, View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
+
import useHeaderStyle from '../../styles/useHeaderStyle';
|
|
6
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
7
|
+
import Button from '../Button';
|
|
8
|
+
import DialogBox from '../Dialog/DialogBox';
|
|
9
|
+
import Modal from '../Modal';
|
|
10
|
+
import Text from '../Text';
|
|
11
|
+
|
|
12
|
+
export type AlertItem = {
|
|
13
|
+
title?: string;
|
|
14
|
+
message?: string;
|
|
15
|
+
buttons?: AlertButton[];
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
type Props = {
|
|
19
|
+
visible: boolean;
|
|
20
|
+
onHide: () => void;
|
|
21
|
+
onDismiss?: () => void;
|
|
22
|
+
} & AlertItem;
|
|
23
|
+
const Alert: React.FC<Props> = ({
|
|
24
|
+
onDismiss,
|
|
25
|
+
visible,
|
|
26
|
+
onHide,
|
|
27
|
+
title = '',
|
|
28
|
+
message = '',
|
|
29
|
+
buttons = [{ text: 'OK' }],
|
|
30
|
+
}) => {
|
|
31
|
+
const { statusBarTranslucent } = useHeaderStyle();
|
|
32
|
+
const { colors } = useUIKitTheme();
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<Modal
|
|
36
|
+
onClose={onHide}
|
|
37
|
+
onDismiss={onDismiss}
|
|
38
|
+
statusBarTranslucent={statusBarTranslucent}
|
|
39
|
+
visible={visible}
|
|
40
|
+
backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}
|
|
41
|
+
>
|
|
42
|
+
<DialogBox style={styles.container}>
|
|
43
|
+
{Boolean(title) && (
|
|
44
|
+
<View style={styles.titleContainer}>
|
|
45
|
+
<Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>
|
|
46
|
+
{title}
|
|
47
|
+
</Text>
|
|
48
|
+
</View>
|
|
49
|
+
)}
|
|
50
|
+
|
|
51
|
+
<View style={styles.messageContainer}>
|
|
52
|
+
{Boolean(message) && (
|
|
53
|
+
<Text
|
|
54
|
+
subtitle2={!title}
|
|
55
|
+
body3={Boolean(title)}
|
|
56
|
+
color={!title ? colors.ui.dialog.default.none.text : colors.ui.dialog.default.none.message}
|
|
57
|
+
numberOfLines={3}
|
|
58
|
+
>
|
|
59
|
+
{message}
|
|
60
|
+
</Text>
|
|
61
|
+
)}
|
|
62
|
+
</View>
|
|
63
|
+
|
|
64
|
+
<View style={styles.buttonContainer}>
|
|
65
|
+
{buttons.map(({ text = 'OK', style = 'default', onPress }, index) => {
|
|
66
|
+
return (
|
|
67
|
+
<Button
|
|
68
|
+
key={text + index}
|
|
69
|
+
variant={'text'}
|
|
70
|
+
style={styles.button}
|
|
71
|
+
onPress={async () => {
|
|
72
|
+
try {
|
|
73
|
+
onPress?.();
|
|
74
|
+
} finally {
|
|
75
|
+
onHide();
|
|
76
|
+
}
|
|
77
|
+
}}
|
|
78
|
+
contentColor={
|
|
79
|
+
style === 'destructive'
|
|
80
|
+
? colors.ui.dialog.default.none.destructive
|
|
81
|
+
: colors.ui.dialog.default.none.highlight
|
|
82
|
+
}
|
|
83
|
+
>
|
|
84
|
+
{text}
|
|
85
|
+
</Button>
|
|
86
|
+
);
|
|
87
|
+
})}
|
|
88
|
+
</View>
|
|
89
|
+
</DialogBox>
|
|
90
|
+
</Modal>
|
|
91
|
+
);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const styles = createStyleSheet({
|
|
95
|
+
container: {
|
|
96
|
+
paddingTop: 20,
|
|
97
|
+
},
|
|
98
|
+
titleContainer: {
|
|
99
|
+
paddingBottom: 16,
|
|
100
|
+
paddingHorizontal: 24,
|
|
101
|
+
flexDirection: 'row',
|
|
102
|
+
alignItems: 'center',
|
|
103
|
+
},
|
|
104
|
+
messageContainer: {
|
|
105
|
+
paddingHorizontal: 24,
|
|
106
|
+
marginBottom: 12,
|
|
107
|
+
},
|
|
108
|
+
button: {
|
|
109
|
+
marginLeft: 8,
|
|
110
|
+
},
|
|
111
|
+
buttonContainer: {
|
|
112
|
+
flexDirection: 'row',
|
|
113
|
+
alignItems: 'center',
|
|
114
|
+
justifyContent: 'flex-end',
|
|
115
|
+
padding: 12,
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export default Alert;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { StyleProp, View, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
const MAX = 4;
|
|
5
|
+
|
|
6
|
+
type Props = { size?: number; containerStyle?: StyleProp<ViewStyle> };
|
|
7
|
+
const AvatarGroup: React.FC<Props> = ({ children, containerStyle, size = 56 }) => {
|
|
8
|
+
const childAmount = React.Children.count(children);
|
|
9
|
+
|
|
10
|
+
if (childAmount === 0) {
|
|
11
|
+
return (
|
|
12
|
+
<View
|
|
13
|
+
style={[
|
|
14
|
+
containerStyle,
|
|
15
|
+
{
|
|
16
|
+
overflow: 'hidden',
|
|
17
|
+
width: size,
|
|
18
|
+
height: size,
|
|
19
|
+
borderRadius: size,
|
|
20
|
+
backgroundColor: 'rgba(120,120,120,0.2)',
|
|
21
|
+
},
|
|
22
|
+
]}
|
|
23
|
+
/>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const avatars = useMemo(() => {
|
|
28
|
+
return (
|
|
29
|
+
React.Children.map(children, (child, index) => {
|
|
30
|
+
if (index + 1 > MAX) return child;
|
|
31
|
+
if (!React.isValidElement(child)) return child;
|
|
32
|
+
|
|
33
|
+
if (childAmount === 1) return React.cloneElement(child, { size, containerStyle });
|
|
34
|
+
|
|
35
|
+
const top = getTopPoint(index, childAmount) * size;
|
|
36
|
+
const left = getLeftPoint(index) * size;
|
|
37
|
+
const width = getWidthPoint(index, childAmount) * size;
|
|
38
|
+
const height = getHeightPoint(index, childAmount) * size;
|
|
39
|
+
const innerLeft = -getInnerLeft(index, childAmount) * size;
|
|
40
|
+
const innerTop = -getInnerTop(childAmount) * size;
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<View style={{ overflow: 'hidden', position: 'absolute', top, left, width, height }}>
|
|
44
|
+
{React.cloneElement(child, { size, square: true, containerStyle: { left: innerLeft, top: innerTop } })}
|
|
45
|
+
</View>
|
|
46
|
+
);
|
|
47
|
+
})?.slice(0, 4) ?? []
|
|
48
|
+
);
|
|
49
|
+
}, [children]);
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<View style={[containerStyle, { overflow: 'hidden', width: size, height: size, borderRadius: size }]}>
|
|
53
|
+
{avatars}
|
|
54
|
+
</View>
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const getHeightPoint = (_: number, total: number) => {
|
|
59
|
+
if (total === 2) return 1;
|
|
60
|
+
return 0.5;
|
|
61
|
+
};
|
|
62
|
+
const getWidthPoint = (idx: number, total: number) => {
|
|
63
|
+
if (total === 3 && idx === 0) return 1;
|
|
64
|
+
return 0.5;
|
|
65
|
+
};
|
|
66
|
+
const getTopPoint = (idx: number, total: number) => {
|
|
67
|
+
if (total === 2) return -0.025;
|
|
68
|
+
if (total === 3 && idx === 0) return -0.025;
|
|
69
|
+
if (total === 3 && idx !== 0) return 0.525;
|
|
70
|
+
if (idx === 0 || idx === 1) return -0.025;
|
|
71
|
+
return 0.525;
|
|
72
|
+
};
|
|
73
|
+
const getLeftPoint = (idx: number) => {
|
|
74
|
+
if (idx === 0 || idx === 2) return -0.025;
|
|
75
|
+
return 0.525;
|
|
76
|
+
};
|
|
77
|
+
const getInnerLeft = (idx: number, total: number) => {
|
|
78
|
+
if (total === 3 && idx === 0) return 0;
|
|
79
|
+
return 0.25;
|
|
80
|
+
};
|
|
81
|
+
const getInnerTop = (total: number) => {
|
|
82
|
+
if (total === 2) return 0;
|
|
83
|
+
return 0.25;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export default AvatarGroup;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleProp, View, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
6
|
+
import Icon from '../Icon';
|
|
7
|
+
|
|
8
|
+
type Props = {
|
|
9
|
+
icon: keyof typeof Icon.Assets;
|
|
10
|
+
size?: number;
|
|
11
|
+
backgroundColor?: string;
|
|
12
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
13
|
+
};
|
|
14
|
+
const AvatarIcon: React.FC<Props> = ({ size = 56, icon, containerStyle, backgroundColor }) => {
|
|
15
|
+
const { colors, palette } = useUIKitTheme();
|
|
16
|
+
return (
|
|
17
|
+
<View
|
|
18
|
+
style={[
|
|
19
|
+
styles.container,
|
|
20
|
+
{
|
|
21
|
+
width: size,
|
|
22
|
+
height: size,
|
|
23
|
+
borderRadius: size / 2,
|
|
24
|
+
backgroundColor: backgroundColor ?? palette.background300,
|
|
25
|
+
},
|
|
26
|
+
containerStyle,
|
|
27
|
+
]}
|
|
28
|
+
>
|
|
29
|
+
<Icon icon={icon} size={size / 2} color={colors.onBackgroundReverse01} />
|
|
30
|
+
</View>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
const styles = createStyleSheet({
|
|
34
|
+
container: {
|
|
35
|
+
overflow: 'hidden',
|
|
36
|
+
alignItems: 'center',
|
|
37
|
+
justifyContent: 'center',
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
export default AvatarIcon;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { conditionChaining } from '@sendbird/uikit-utils';
|
|
5
|
+
|
|
6
|
+
import Image from '../../components/Image';
|
|
7
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
8
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
9
|
+
import Icon from '../Icon';
|
|
10
|
+
import AvatarGroup from './AvatarGroup';
|
|
11
|
+
import AvatarIcon from './AvatarIcon';
|
|
12
|
+
|
|
13
|
+
type SubComponents = { Group: typeof AvatarGroup; Icon: typeof AvatarIcon };
|
|
14
|
+
type Props = {
|
|
15
|
+
uri?: string;
|
|
16
|
+
size?: number;
|
|
17
|
+
square?: boolean;
|
|
18
|
+
muted?: boolean;
|
|
19
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
20
|
+
};
|
|
21
|
+
const Avatar: React.FC<Props> & SubComponents = ({ uri, square, muted = false, size = 56, containerStyle }) => {
|
|
22
|
+
const { colors, palette } = useUIKitTheme();
|
|
23
|
+
const [loadFailure, setLoadFailure] = useState(false);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<View
|
|
27
|
+
style={[
|
|
28
|
+
styles.container,
|
|
29
|
+
{ width: size, height: size, borderRadius: square ? 0 : size / 2, backgroundColor: palette.background300 },
|
|
30
|
+
containerStyle,
|
|
31
|
+
]}
|
|
32
|
+
>
|
|
33
|
+
{conditionChaining(
|
|
34
|
+
[Boolean(uri) && !loadFailure],
|
|
35
|
+
[
|
|
36
|
+
<Image
|
|
37
|
+
onError={() => setLoadFailure(true)}
|
|
38
|
+
source={{ uri }}
|
|
39
|
+
resizeMode={'cover'}
|
|
40
|
+
style={StyleSheet.absoluteFill}
|
|
41
|
+
/>,
|
|
42
|
+
<Icon icon={'user'} size={size / 2} color={colors.onBackgroundReverse01} />,
|
|
43
|
+
],
|
|
44
|
+
)}
|
|
45
|
+
{muted && <MutedOverlay size={size} />}
|
|
46
|
+
</View>
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const MutedOverlay: React.FC<{ size: number }> = ({ size }) => {
|
|
51
|
+
const { palette } = useUIKitTheme();
|
|
52
|
+
return (
|
|
53
|
+
<View style={[styles.container, StyleSheet.absoluteFill]}>
|
|
54
|
+
<View style={[StyleSheet.absoluteFill, { backgroundColor: palette.primary300, opacity: 0.5 }]} />
|
|
55
|
+
<Icon color={palette.onBackgroundDark01} icon={'mute'} size={size * 0.72} />
|
|
56
|
+
</View>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const styles = createStyleSheet({
|
|
61
|
+
container: {
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
justifyContent: 'center',
|
|
64
|
+
overflow: 'hidden',
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
Avatar.Group = AvatarGroup;
|
|
69
|
+
Avatar.Icon = AvatarIcon;
|
|
70
|
+
export default Avatar;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Platform, StyleProp, View, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { truncatedBadgeCount } from '@sendbird/uikit-utils';
|
|
5
|
+
|
|
6
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
7
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
8
|
+
import Text from '../Text';
|
|
9
|
+
|
|
10
|
+
type Props = {
|
|
11
|
+
count: number;
|
|
12
|
+
maxCount?: number;
|
|
13
|
+
badgeColor?: string;
|
|
14
|
+
textColor?: string;
|
|
15
|
+
style?: StyleProp<ViewStyle>;
|
|
16
|
+
size?: 'small' | 'default';
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const Badge: React.FC<Props> = ({ count, maxCount, badgeColor, textColor, style, size = 'default' }) => {
|
|
20
|
+
const { colors } = useUIKitTheme();
|
|
21
|
+
const isSmall = size === 'small';
|
|
22
|
+
return (
|
|
23
|
+
<View
|
|
24
|
+
style={[
|
|
25
|
+
isSmall ? styles.badgeSmall : styles.badgeDefault,
|
|
26
|
+
{ backgroundColor: badgeColor ?? colors.ui.badge.default.none.background },
|
|
27
|
+
count >= 10 && (isSmall ? styles.badgeSmallPadding : styles.badgeDefaultPadding),
|
|
28
|
+
style,
|
|
29
|
+
]}
|
|
30
|
+
>
|
|
31
|
+
<Text caption1 color={textColor ?? colors.ui.badge.default.none.text}>
|
|
32
|
+
{truncatedBadgeCount(count, maxCount)}
|
|
33
|
+
</Text>
|
|
34
|
+
</View>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const styles = createStyleSheet({
|
|
39
|
+
badgeDefault: {
|
|
40
|
+
paddingTop: Platform.select({ ios: 2, android: 2 }),
|
|
41
|
+
minWidth: 20,
|
|
42
|
+
minHeight: 20,
|
|
43
|
+
borderRadius: 99,
|
|
44
|
+
alignItems: 'center',
|
|
45
|
+
justifyContent: 'center',
|
|
46
|
+
},
|
|
47
|
+
badgeDefaultPadding: {
|
|
48
|
+
paddingHorizontal: 8,
|
|
49
|
+
},
|
|
50
|
+
badgeSmall: {
|
|
51
|
+
paddingTop: Platform.select({ ios: 3, android: 2 }),
|
|
52
|
+
minWidth: 16,
|
|
53
|
+
minHeight: 16,
|
|
54
|
+
borderRadius: 99,
|
|
55
|
+
alignItems: 'center',
|
|
56
|
+
justifyContent: 'center',
|
|
57
|
+
},
|
|
58
|
+
badgeSmallPadding: {
|
|
59
|
+
paddingHorizontal: 4,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
export default Badge;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TouchableOpacity, useWindowDimensions } from 'react-native';
|
|
3
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
4
|
+
|
|
5
|
+
import useHeaderStyle from '../../styles/useHeaderStyle';
|
|
6
|
+
import DialogSheet from '../Dialog/DialogSheet';
|
|
7
|
+
import type Icon from '../Icon';
|
|
8
|
+
import Modal from '../Modal';
|
|
9
|
+
|
|
10
|
+
export type BottomSheetItem = {
|
|
11
|
+
sheetItems: {
|
|
12
|
+
icon?: keyof typeof Icon.Assets;
|
|
13
|
+
iconColor?: string;
|
|
14
|
+
title: string;
|
|
15
|
+
titleColor?: string;
|
|
16
|
+
onPress: () => void;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
type Props = {
|
|
20
|
+
visible: boolean;
|
|
21
|
+
onHide: () => Promise<void>;
|
|
22
|
+
onError?: (error: unknown) => void;
|
|
23
|
+
onDismiss?: () => void;
|
|
24
|
+
} & BottomSheetItem;
|
|
25
|
+
const BottomSheet: React.FC<Props> = ({ onDismiss, onHide, visible, sheetItems }) => {
|
|
26
|
+
const { statusBarTranslucent } = useHeaderStyle();
|
|
27
|
+
const { width } = useWindowDimensions();
|
|
28
|
+
const { bottom, left, right } = useSafeAreaInsets();
|
|
29
|
+
return (
|
|
30
|
+
<Modal
|
|
31
|
+
type={'slide'}
|
|
32
|
+
onClose={onHide}
|
|
33
|
+
onDismiss={onDismiss}
|
|
34
|
+
statusBarTranslucent={statusBarTranslucent}
|
|
35
|
+
visible={visible}
|
|
36
|
+
backgroundStyle={{ alignItems: 'center', justifyContent: 'flex-end' }}
|
|
37
|
+
>
|
|
38
|
+
<DialogSheet style={{ width, paddingBottom: bottom }}>
|
|
39
|
+
{sheetItems.map(({ onPress, ...props }, idx) => (
|
|
40
|
+
<TouchableOpacity
|
|
41
|
+
activeOpacity={0.75}
|
|
42
|
+
key={props.title + idx}
|
|
43
|
+
style={{ paddingLeft: left, paddingRight: right }}
|
|
44
|
+
onPress={async () => {
|
|
45
|
+
await onHide();
|
|
46
|
+
try {
|
|
47
|
+
onPress();
|
|
48
|
+
} catch {}
|
|
49
|
+
}}
|
|
50
|
+
>
|
|
51
|
+
<DialogSheet.Item {...props} />
|
|
52
|
+
</TouchableOpacity>
|
|
53
|
+
))}
|
|
54
|
+
</DialogSheet>
|
|
55
|
+
</Modal>
|
|
56
|
+
);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export default BottomSheet;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Pressable, StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
6
|
+
import Icon from '../Icon';
|
|
7
|
+
import Text from '../Text';
|
|
8
|
+
|
|
9
|
+
type Props = {
|
|
10
|
+
style?: StyleProp<ViewStyle>;
|
|
11
|
+
icon?: keyof typeof Icon.Assets;
|
|
12
|
+
variant?: 'contained' | 'text';
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
onPress?: () => void;
|
|
15
|
+
buttonColor?: string;
|
|
16
|
+
contentColor?: string;
|
|
17
|
+
};
|
|
18
|
+
const Button: React.FC<Props> = ({
|
|
19
|
+
icon,
|
|
20
|
+
variant = 'contained',
|
|
21
|
+
buttonColor,
|
|
22
|
+
contentColor,
|
|
23
|
+
disabled,
|
|
24
|
+
onPress,
|
|
25
|
+
style,
|
|
26
|
+
children,
|
|
27
|
+
}) => {
|
|
28
|
+
const { colors } = useUIKitTheme();
|
|
29
|
+
|
|
30
|
+
const getStateColor = (pressed: boolean, disabled?: boolean) => {
|
|
31
|
+
const stateColors = colors.ui.button[variant];
|
|
32
|
+
if (disabled) return stateColors.disabled;
|
|
33
|
+
if (pressed) return stateColors.pressed;
|
|
34
|
+
return stateColors.enabled;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<Pressable
|
|
39
|
+
disabled={disabled}
|
|
40
|
+
onPress={onPress}
|
|
41
|
+
style={({ pressed }) => {
|
|
42
|
+
const stateColor = getStateColor(pressed, disabled);
|
|
43
|
+
return [{ backgroundColor: buttonColor ?? stateColor.background }, styles.container, style];
|
|
44
|
+
}}
|
|
45
|
+
>
|
|
46
|
+
{({ pressed }) => {
|
|
47
|
+
const stateColor = getStateColor(pressed, disabled);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<>
|
|
51
|
+
{icon && (
|
|
52
|
+
<Icon size={24} icon={icon} color={contentColor ?? stateColor.content} containerStyle={styles.icon} />
|
|
53
|
+
)}
|
|
54
|
+
<Text button color={contentColor ?? stateColor.content} style={styles.text}>
|
|
55
|
+
{children}
|
|
56
|
+
</Text>
|
|
57
|
+
</>
|
|
58
|
+
);
|
|
59
|
+
}}
|
|
60
|
+
</Pressable>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const styles = createStyleSheet({
|
|
65
|
+
container: {
|
|
66
|
+
flexDirection: 'row',
|
|
67
|
+
padding: 8,
|
|
68
|
+
borderRadius: 4,
|
|
69
|
+
alignItems: 'center',
|
|
70
|
+
justifyContent: 'center',
|
|
71
|
+
},
|
|
72
|
+
icon: { marginVertical: -4, marginRight: 8 },
|
|
73
|
+
text: {},
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
export default Button;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleProp, View, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
6
|
+
import Text from '../Text';
|
|
7
|
+
|
|
8
|
+
type Props = {
|
|
9
|
+
style?: StyleProp<ViewStyle>;
|
|
10
|
+
text?: string;
|
|
11
|
+
textColor?: string;
|
|
12
|
+
backgroundColor?: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const ChannelFrozenBanner: React.FC<Props> = ({ text = 'Channel is frozen', backgroundColor, textColor, style }) => {
|
|
16
|
+
const { palette } = useUIKitTheme();
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<View
|
|
20
|
+
pointerEvents={'none'}
|
|
21
|
+
style={[styles.container, { backgroundColor: backgroundColor ?? palette.information }, style]}
|
|
22
|
+
>
|
|
23
|
+
<Text caption2 color={textColor ?? palette.onBackgroundLight01}>
|
|
24
|
+
{text}
|
|
25
|
+
</Text>
|
|
26
|
+
</View>
|
|
27
|
+
);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const styles = createStyleSheet({
|
|
31
|
+
container: {
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
justifyContent: 'center',
|
|
34
|
+
paddingVertical: 6,
|
|
35
|
+
borderRadius: 4,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export default ChannelFrozenBanner;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleProp, View, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
+
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
6
|
+
|
|
7
|
+
type Props = {
|
|
8
|
+
style?: StyleProp<ViewStyle>;
|
|
9
|
+
};
|
|
10
|
+
const DialogBox: React.FC<Props> = ({ style, children }) => {
|
|
11
|
+
const { colors } = useUIKitTheme();
|
|
12
|
+
return (
|
|
13
|
+
<View style={[styles.container, { backgroundColor: colors.ui.dialog.default.none.background }, style]}>
|
|
14
|
+
{children}
|
|
15
|
+
</View>
|
|
16
|
+
);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const styles = createStyleSheet({
|
|
20
|
+
container: {
|
|
21
|
+
width: 280,
|
|
22
|
+
borderRadius: 4,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export default DialogBox;
|