@sendbird/uikit-react-native-foundation 2.0.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/assets/icon/{icon-moderations.png → icon-moderation.png} +0 -0
- package/lib/commonjs/assets/icon/{icon-moderations@2x.png → icon-moderation@2x.png} +0 -0
- package/lib/commonjs/assets/icon/{icon-moderations@3x.png → icon-moderation@3x.png} +0 -0
- package/lib/commonjs/assets/icon/icon-radio-off.png +0 -0
- package/lib/commonjs/assets/icon/icon-radio-off@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-radio-off@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-radio-on.png +0 -0
- package/lib/commonjs/assets/icon/icon-radio-on@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-radio-on@3x.png +0 -0
- package/lib/commonjs/assets/icon/index.js +3 -1
- package/lib/commonjs/assets/icon/index.js.map +1 -1
- package/lib/commonjs/components/Modal/index.js +4 -3
- package/lib/commonjs/components/Modal/index.js.map +1 -1
- package/lib/commonjs/components/RegexText/index.js +50 -0
- package/lib/commonjs/components/RegexText/index.js.map +1 -0
- package/lib/commonjs/components/URLParsedText/index.js +15 -19
- package/lib/commonjs/components/URLParsedText/index.js.map +1 -1
- package/lib/commonjs/index.js +27 -27
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -1
- package/lib/commonjs/styles/createStyleSheet.js +2 -0
- package/lib/commonjs/styles/createStyleSheet.js.map +1 -1
- package/lib/commonjs/theme/DarkUIKitTheme.js +32 -0
- package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/commonjs/theme/LightUIKitTheme.js +32 -0
- package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/ui/ActionMenu/index.js +1 -1
- package/lib/commonjs/ui/ActionMenu/index.js.map +1 -1
- package/lib/commonjs/ui/Avatar/AvatarGroup.js +6 -7
- package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/commonjs/ui/Badge/index.js +1 -1
- package/lib/commonjs/ui/Badge/index.js.map +1 -1
- package/lib/commonjs/ui/BottomSheet/index.js +5 -2
- package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
- package/lib/commonjs/ui/Dialog/index.js +2 -1
- package/lib/commonjs/ui/Dialog/index.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelPreview/index.js +26 -9
- package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/commonjs/ui/Header/index.js +3 -2
- package/lib/commonjs/ui/Header/index.js.map +1 -1
- package/lib/commonjs/ui/MenuBar/index.js +2 -0
- package/lib/commonjs/ui/MenuBar/index.js.map +1 -1
- package/lib/commonjs/ui/OutlinedButton/index.js +57 -0
- package/lib/commonjs/ui/OutlinedButton/index.js.map +1 -0
- package/lib/commonjs/ui/ProfileCard/index.js +94 -0
- package/lib/commonjs/ui/ProfileCard/index.js.map +1 -0
- package/lib/module/assets/icon/{icon-moderations.png → icon-moderation.png} +0 -0
- package/lib/module/assets/icon/{icon-moderations@2x.png → icon-moderation@2x.png} +0 -0
- package/lib/module/assets/icon/{icon-moderations@3x.png → icon-moderation@3x.png} +0 -0
- package/lib/module/assets/icon/icon-radio-off.png +0 -0
- package/lib/module/assets/icon/icon-radio-off@2x.png +0 -0
- package/lib/module/assets/icon/icon-radio-off@3x.png +0 -0
- package/lib/module/assets/icon/icon-radio-on.png +0 -0
- package/lib/module/assets/icon/icon-radio-on@2x.png +0 -0
- package/lib/module/assets/icon/icon-radio-on@3x.png +0 -0
- package/lib/module/assets/icon/index.js +3 -1
- package/lib/module/assets/icon/index.js.map +1 -1
- package/lib/module/components/Modal/index.js +4 -3
- package/lib/module/components/Modal/index.js.map +1 -1
- package/lib/module/components/RegexText/index.js +38 -0
- package/lib/module/components/RegexText/index.js.map +1 -0
- package/lib/module/components/URLParsedText/index.js +13 -15
- package/lib/module/components/URLParsedText/index.js.map +1 -1
- package/lib/module/index.js +7 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/styles/HeaderStyleContext.js.map +1 -1
- package/lib/module/styles/createStyleSheet.js +2 -0
- package/lib/module/styles/createStyleSheet.js.map +1 -1
- package/lib/module/theme/DarkUIKitTheme.js +32 -0
- package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/module/theme/LightUIKitTheme.js +32 -0
- package/lib/module/theme/LightUIKitTheme.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/ui/ActionMenu/index.js +1 -1
- package/lib/module/ui/ActionMenu/index.js.map +1 -1
- package/lib/module/ui/Avatar/AvatarGroup.js +5 -4
- package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/module/ui/Badge/index.js +2 -2
- package/lib/module/ui/Badge/index.js.map +1 -1
- package/lib/module/ui/BottomSheet/index.js +5 -2
- package/lib/module/ui/BottomSheet/index.js.map +1 -1
- package/lib/module/ui/Dialog/index.js +2 -1
- package/lib/module/ui/Dialog/index.js.map +1 -1
- package/lib/module/ui/GroupChannelPreview/index.js +26 -9
- package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/module/ui/Header/index.js +3 -2
- package/lib/module/ui/Header/index.js.map +1 -1
- package/lib/module/ui/MenuBar/index.js +2 -0
- package/lib/module/ui/MenuBar/index.js.map +1 -1
- package/lib/module/ui/OutlinedButton/index.js +43 -0
- package/lib/module/ui/OutlinedButton/index.js.map +1 -0
- package/lib/module/ui/ProfileCard/index.js +78 -0
- package/lib/module/ui/ProfileCard/index.js.map +1 -0
- package/lib/typescript/src/assets/icon/index.d.ts +3 -1
- package/lib/typescript/src/components/Divider/index.d.ts +1 -1
- package/lib/typescript/src/components/Icon/index.d.ts +2 -2
- package/lib/typescript/src/components/Image/index.d.ts +1 -1
- package/lib/typescript/src/components/Modal/index.d.ts +3 -2
- package/lib/typescript/src/components/RegexText/index.d.ts +16 -0
- package/lib/typescript/src/components/Switch/index.d.ts +1 -1
- package/lib/typescript/src/components/Text/index.d.ts +2 -2
- package/lib/typescript/src/components/URLParsedText/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts +11 -4
- package/lib/typescript/src/styles/HeaderStyleContext.d.ts +4 -12
- package/lib/typescript/src/styles/createTypography.d.ts +1 -1
- package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +1 -1
- package/lib/typescript/src/theme/createTheme.d.ts +1 -1
- package/lib/typescript/src/types.d.ts +18 -10
- package/lib/typescript/src/ui/ActionMenu/index.d.ts +3 -2
- package/lib/typescript/src/ui/Alert/index.d.ts +2 -2
- package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +1 -1
- package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +1 -1
- package/lib/typescript/src/ui/Avatar/index.d.ts +2 -2
- package/lib/typescript/src/ui/Badge/index.d.ts +1 -1
- package/lib/typescript/src/ui/BottomSheet/index.d.ts +7 -3
- package/lib/typescript/src/ui/Button/index.d.ts +1 -1
- package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +1 -1
- package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +1 -1
- package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +2 -2
- package/lib/typescript/src/ui/Dialog/index.d.ts +4 -4
- package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +5 -2
- package/lib/typescript/src/ui/Header/index.d.ts +3 -2
- package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +1 -1
- package/lib/typescript/src/ui/MenuBar/index.d.ts +3 -2
- package/lib/typescript/src/ui/OutlinedButton/index.d.ts +8 -0
- package/lib/typescript/src/ui/Placeholder/index.d.ts +1 -1
- package/lib/typescript/src/ui/ProfileCard/index.d.ts +11 -0
- package/lib/typescript/src/ui/Prompt/index.d.ts +2 -2
- package/lib/typescript/src/ui/Toast/index.d.ts +3 -3
- package/package.json +6 -5
- package/src/assets/icon/{icon-moderations.png → icon-moderation.png} +0 -0
- package/src/assets/icon/{icon-moderations@2x.png → icon-moderation@2x.png} +0 -0
- package/src/assets/icon/{icon-moderations@3x.png → icon-moderation@3x.png} +0 -0
- package/src/assets/icon/icon-radio-off.png +0 -0
- package/src/assets/icon/icon-radio-off@2x.png +0 -0
- package/src/assets/icon/icon-radio-off@3x.png +0 -0
- package/src/assets/icon/icon-radio-on.png +0 -0
- package/src/assets/icon/icon-radio-on@2x.png +0 -0
- package/src/assets/icon/icon-radio-on@3x.png +0 -0
- package/src/assets/icon/index.ts +3 -1
- package/src/components/Modal/index.tsx +8 -6
- package/src/components/RegexText/index.tsx +48 -0
- package/src/components/URLParsedText/index.tsx +22 -24
- package/src/index.ts +11 -4
- package/src/styles/HeaderStyleContext.tsx +2 -13
- package/src/styles/createStyleSheet.ts +2 -0
- package/src/theme/DarkUIKitTheme.ts +32 -0
- package/src/theme/LightUIKitTheme.ts +32 -0
- package/src/types.ts +12 -1
- package/src/ui/ActionMenu/index.tsx +10 -1
- package/src/ui/Avatar/AvatarGroup.tsx +10 -6
- package/src/ui/Badge/index.tsx +2 -2
- package/src/ui/BottomSheet/index.tsx +4 -1
- package/src/ui/Dialog/index.tsx +1 -0
- package/src/ui/GroupChannelPreview/index.tsx +31 -7
- package/src/ui/Header/index.tsx +8 -3
- package/src/ui/MenuBar/index.tsx +4 -0
- package/src/ui/OutlinedButton/index.tsx +42 -0
- package/src/ui/ProfileCard/index.tsx +73 -0
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -39,7 +39,7 @@ const IconAssets = {
|
|
|
39
39
|
'leave': require('./icon-leave.png'),
|
|
40
40
|
'members': require('./icon-members.png'),
|
|
41
41
|
'message': require('./icon-message.png'),
|
|
42
|
-
'
|
|
42
|
+
'moderation': require('./icon-moderation.png'),
|
|
43
43
|
'more': require('./icon-more.png'),
|
|
44
44
|
'mute': require('./icon-mute.png'),
|
|
45
45
|
'notifications-filled': require('./icon-notifications-filled.png'),
|
|
@@ -50,6 +50,8 @@ const IconAssets = {
|
|
|
50
50
|
'play': require('./icon-play.png'),
|
|
51
51
|
'plus': require('./icon-plus.png'),
|
|
52
52
|
'question': require('./icon-question.png'),
|
|
53
|
+
'radio-off': require('./icon-radio-off.png'),
|
|
54
|
+
'radio-on': require('./icon-radio-on.png'),
|
|
53
55
|
'refresh': require('./icon-refresh.png'),
|
|
54
56
|
'remove': require('./icon-remove.png'),
|
|
55
57
|
'reply-filled': require('./icon-reply-filled.png'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IconAssets","require"],"sources":["index.ts"],"sourcesContent":["const IconAssets = {\n 'chat-hide': require('./ic-chat-hide.png'),\n 'chat-show': require('./ic-chat-show.png'),\n 'add': require('./icon-add.png'),\n 'archive': require('./icon-archive.png'),\n 'arrow-left': require('./icon-arrow-left.png'),\n 'ban': require('./icon-ban.png'),\n 'broadcast': require('./icon-broadcast.png'),\n 'camera': require('./icon-camera.png'),\n 'channels': require('./icon-channels.png'),\n 'chat-filled': require('./icon-chat-filled.png'),\n 'chat': require('./icon-chat.png'),\n 'checkbox-off': require('./icon-checkbox-off.png'),\n 'checkbox-on': require('./icon-checkbox-on.png'),\n 'chevron-down': require('./icon-chevron-down.png'),\n 'chevron-right': require('./icon-chevron-right.png'),\n 'close': require('./icon-close.png'),\n 'copy': require('./icon-copy.png'),\n 'create': require('./icon-create.png'),\n 'delete': require('./icon-delete.png'),\n 'document': require('./icon-document.png'),\n 'done-all': require('./icon-done-all.png'),\n 'done': require('./icon-done.png'),\n 'download': require('./icon-download.png'),\n 'edit': require('./icon-edit.png'),\n 'emoji-more': require('./icon-emoji-more.png'),\n 'error': require('./icon-error.png'),\n 'file-audio': require('./icon-file-audio.png'),\n 'file-document': require('./icon-file-document.png'),\n 'freeze': require('./icon-freeze.png'),\n 'gif': require('./icon-gif.png'),\n 'info': require('./icon-info.png'),\n 'leave': require('./icon-leave.png'),\n 'members': require('./icon-members.png'),\n 'message': require('./icon-message.png'),\n '
|
|
1
|
+
{"version":3,"names":["IconAssets","require"],"sources":["index.ts"],"sourcesContent":["const IconAssets = {\n 'chat-hide': require('./ic-chat-hide.png'),\n 'chat-show': require('./ic-chat-show.png'),\n 'add': require('./icon-add.png'),\n 'archive': require('./icon-archive.png'),\n 'arrow-left': require('./icon-arrow-left.png'),\n 'ban': require('./icon-ban.png'),\n 'broadcast': require('./icon-broadcast.png'),\n 'camera': require('./icon-camera.png'),\n 'channels': require('./icon-channels.png'),\n 'chat-filled': require('./icon-chat-filled.png'),\n 'chat': require('./icon-chat.png'),\n 'checkbox-off': require('./icon-checkbox-off.png'),\n 'checkbox-on': require('./icon-checkbox-on.png'),\n 'chevron-down': require('./icon-chevron-down.png'),\n 'chevron-right': require('./icon-chevron-right.png'),\n 'close': require('./icon-close.png'),\n 'copy': require('./icon-copy.png'),\n 'create': require('./icon-create.png'),\n 'delete': require('./icon-delete.png'),\n 'document': require('./icon-document.png'),\n 'done-all': require('./icon-done-all.png'),\n 'done': require('./icon-done.png'),\n 'download': require('./icon-download.png'),\n 'edit': require('./icon-edit.png'),\n 'emoji-more': require('./icon-emoji-more.png'),\n 'error': require('./icon-error.png'),\n 'file-audio': require('./icon-file-audio.png'),\n 'file-document': require('./icon-file-document.png'),\n 'freeze': require('./icon-freeze.png'),\n 'gif': require('./icon-gif.png'),\n 'info': require('./icon-info.png'),\n 'leave': require('./icon-leave.png'),\n 'members': require('./icon-members.png'),\n 'message': require('./icon-message.png'),\n 'moderation': require('./icon-moderation.png'),\n 'more': require('./icon-more.png'),\n 'mute': require('./icon-mute.png'),\n 'notifications-filled': require('./icon-notifications-filled.png'),\n 'notifications-off-filled': require('./icon-notifications-off-filled.png'),\n 'notifications': require('./icon-notifications.png'),\n 'operator': require('./icon-operator.png'),\n 'photo': require('./icon-photo.png'),\n 'play': require('./icon-play.png'),\n 'plus': require('./icon-plus.png'),\n 'question': require('./icon-question.png'),\n 'radio-off': require('./icon-radio-off.png'),\n 'radio-on': require('./icon-radio-on.png'),\n 'refresh': require('./icon-refresh.png'),\n 'remove': require('./icon-remove.png'),\n 'reply-filled': require('./icon-reply-filled.png'),\n 'reply': require('./icon-reply.png'),\n 'search': require('./icon-search.png'),\n 'send': require('./icon-send.png'),\n 'settings-filled': require('./icon-settings-filled.png'),\n 'spinner': require('./icon-spinner.png'),\n 'streaming': require('./icon-streaming.png'),\n 'supergroup': require('./icon-supergroup.png'),\n 'theme': require('./icon-theme.png'),\n 'thumbnail-none': require('./icon-thumbnail-none.png'),\n 'unarchive': require('./icon-unarchive.png'),\n 'user': require('./icon-user.png'),\n};\nexport default IconAssets;\n"],"mappings":"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"}
|
|
@@ -71,6 +71,7 @@ const Modal = _ref => {
|
|
|
71
71
|
}, [visible]);
|
|
72
72
|
useOnDismiss(modalVisible, onDismiss);
|
|
73
73
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, _extends({
|
|
74
|
+
statusBarTranslucent: statusBarTranslucent,
|
|
74
75
|
transparent: true,
|
|
75
76
|
hardwareAccelerated: true,
|
|
76
77
|
visible: modalVisible,
|
|
@@ -116,7 +117,7 @@ const isHideGesture = (distanceY, velocityY) => {
|
|
|
116
117
|
};
|
|
117
118
|
|
|
118
119
|
const useModalPanResponder = (type, translateY, show, hide) => {
|
|
119
|
-
if (type === 'fade') return {
|
|
120
|
+
if (type === 'fade' || type === 'slide-no-gesture') return {
|
|
120
121
|
panHandlers: {}
|
|
121
122
|
};
|
|
122
123
|
return _react.default.useRef(_reactNative.PanResponder.create({
|
|
@@ -146,13 +147,13 @@ const useModalPanResponder = (type, translateY, show, hide) => {
|
|
|
146
147
|
};
|
|
147
148
|
|
|
148
149
|
const useModalAnimation = type => {
|
|
149
|
-
const initialY = type === '
|
|
150
|
+
const initialY = type === 'fade' ? 0 : _reactNative.Dimensions.get('window').height;
|
|
150
151
|
const baseAnimBackground = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
151
152
|
const baseAnimContent = (0, _react.useRef)(new _reactNative.Animated.Value(initialY)).current;
|
|
152
153
|
const content = {
|
|
153
154
|
opacity: baseAnimBackground.interpolate({
|
|
154
155
|
inputRange: [0, 1],
|
|
155
|
-
outputRange: [type === '
|
|
156
|
+
outputRange: [type === 'fade' ? 0 : 1, 1]
|
|
156
157
|
}),
|
|
157
158
|
translateY: baseAnimContent
|
|
158
159
|
};
|
|
@@ -1 +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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"}
|
|
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 ModalAnimationType = 'slide' | 'slide-no-gesture' | 'fade';\ntype Props = {\n type?: ModalAnimationType;\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 statusBarTranslucent={statusBarTranslucent}\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: ModalAnimationType,\n translateY: Animated.Value,\n show: () => void,\n hide: () => void,\n) => {\n if (type === 'fade' || type === 'slide-no-gesture') 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: ModalAnimationType) => {\n const initialY = type === 'fade' ? 0 : Dimensions.get('window').height;\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 === 'fade' ? 0 : 1, 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,50 @@
|
|
|
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 _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
var _Text = _interopRequireDefault(require("../Text"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
const RegexText = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
children,
|
|
19
|
+
patterns,
|
|
20
|
+
...props
|
|
21
|
+
} = _ref;
|
|
22
|
+
if (patterns.length === 0 || typeof children !== 'string') return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
23
|
+
const matchedTexts = [children];
|
|
24
|
+
patterns.forEach((_ref2, patterIndex) => {
|
|
25
|
+
let {
|
|
26
|
+
regex,
|
|
27
|
+
replacer
|
|
28
|
+
} = _ref2;
|
|
29
|
+
const matchedTextsTemp = matchedTexts.concat();
|
|
30
|
+
let offset = 0;
|
|
31
|
+
matchedTextsTemp.forEach((text, index) => {
|
|
32
|
+
if (typeof text === 'string' && text) {
|
|
33
|
+
const children = (0, _uikitUtils.replaceWithRegex)(text, regex, params => replacer({ ...params,
|
|
34
|
+
parentProps: props,
|
|
35
|
+
keyPrefix: index + params.keyPrefix
|
|
36
|
+
}), String(patterIndex));
|
|
37
|
+
|
|
38
|
+
if (children.length > 1) {
|
|
39
|
+
matchedTexts.splice(index + offset, 1, ...children);
|
|
40
|
+
offset += children.length - 1;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(_Text.default, props, matchedTexts);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var _default = RegexText;
|
|
49
|
+
exports.default = _default;
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RegexText","children","patterns","props","length","matchedTexts","forEach","patterIndex","regex","replacer","matchedTextsTemp","concat","offset","text","index","replaceWithRegex","params","parentProps","keyPrefix","String","splice"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { replaceWithRegex } from '@sendbird/uikit-utils';\n\nimport Text, { TextProps } from '../Text';\n\ninterface Pattern {\n regex: RegExp;\n replacer(params: {\n match: string;\n groups: string[];\n index: number;\n keyPrefix: string;\n parentProps?: TextProps;\n }): string | JSX.Element;\n}\n\ntype Props = { patterns: Pattern[] } & TextProps;\n\nconst RegexText = ({ children, patterns, ...props }: Props) => {\n if (patterns.length === 0 || typeof children !== 'string') return <>{children}</>;\n\n const matchedTexts: Array<string | JSX.Element> = [children];\n\n patterns.forEach(({ regex, replacer }, patterIndex) => {\n const matchedTextsTemp = matchedTexts.concat();\n let offset = 0;\n matchedTextsTemp.forEach((text, index) => {\n if (typeof text === 'string' && text) {\n const children = replaceWithRegex(\n text,\n regex,\n (params) => replacer({ ...params, parentProps: props, keyPrefix: index + params.keyPrefix }),\n String(patterIndex),\n );\n\n if (children.length > 1) {\n matchedTexts.splice(index + offset, 1, ...children);\n offset += children.length - 1;\n }\n }\n });\n });\n\n return <Text {...props}>{matchedTexts}</Text>;\n};\n\nexport default RegexText;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;;;AAeA,MAAMA,SAAS,GAAG,QAA6C;EAAA,IAA5C;IAAEC,QAAF;IAAYC,QAAZ;IAAsB,GAAGC;EAAzB,CAA4C;EAC7D,IAAID,QAAQ,CAACE,MAAT,KAAoB,CAApB,IAAyB,OAAOH,QAAP,KAAoB,QAAjD,EAA2D,oBAAO,4DAAGA,QAAH,CAAP;EAE3D,MAAMI,YAAyC,GAAG,CAACJ,QAAD,CAAlD;EAEAC,QAAQ,CAACI,OAAT,CAAiB,QAAsBC,WAAtB,KAAsC;IAAA,IAArC;MAAEC,KAAF;MAASC;IAAT,CAAqC;IACrD,MAAMC,gBAAgB,GAAGL,YAAY,CAACM,MAAb,EAAzB;IACA,IAAIC,MAAM,GAAG,CAAb;IACAF,gBAAgB,CAACJ,OAAjB,CAAyB,CAACO,IAAD,EAAOC,KAAP,KAAiB;MACxC,IAAI,OAAOD,IAAP,KAAgB,QAAhB,IAA4BA,IAAhC,EAAsC;QACpC,MAAMZ,QAAQ,GAAG,IAAAc,4BAAA,EACfF,IADe,EAEfL,KAFe,EAGdQ,MAAD,IAAYP,QAAQ,CAAC,EAAE,GAAGO,MAAL;UAAaC,WAAW,EAAEd,KAA1B;UAAiCe,SAAS,EAAEJ,KAAK,GAAGE,MAAM,CAACE;QAA3D,CAAD,CAHL,EAIfC,MAAM,CAACZ,WAAD,CAJS,CAAjB;;QAOA,IAAIN,QAAQ,CAACG,MAAT,GAAkB,CAAtB,EAAyB;UACvBC,YAAY,CAACe,MAAb,CAAoBN,KAAK,GAAGF,MAA5B,EAAoC,CAApC,EAAuC,GAAGX,QAA1C;UACAW,MAAM,IAAIX,QAAQ,CAACG,MAAT,GAAkB,CAA5B;QACD;MACF;IACF,CAdD;EAeD,CAlBD;EAoBA,oBAAO,6BAAC,aAAD,EAAUD,KAAV,EAAkBE,YAAlB,CAAP;AACD,CA1BD;;eA4BeL,S"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
|
|
@@ -17,10 +17,6 @@ var _Text = _interopRequireDefault(require("../Text"));
|
|
|
17
17
|
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
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
20
|
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
21
|
|
|
26
22
|
const openUrl = (url, httpProtocol) => {
|
|
@@ -36,21 +32,21 @@ const URLParsedText = _ref => {
|
|
|
36
32
|
strict,
|
|
37
33
|
...props
|
|
38
34
|
} = _ref;
|
|
39
|
-
const parsedChildren = (0, _react.useMemo)(() => {
|
|
40
|
-
return _react.default.Children.map(_react.default.Children.toArray(children), child => {
|
|
41
|
-
if (typeof child === 'string') {
|
|
42
|
-
return (0, _uikitUtils.replaceUrlAsComponents)(child, url => {
|
|
43
|
-
return /*#__PURE__*/_react.default.createElement(_Text.default, _extends({}, props, {
|
|
44
|
-
suppressHighlighting: true,
|
|
45
|
-
onPress: () => onPressUrl === null || onPressUrl === void 0 ? void 0 : onPressUrl(url, url.startsWith('http')),
|
|
46
|
-
style: [props.style, styles.url]
|
|
47
|
-
}), url);
|
|
48
|
-
}, strict);
|
|
49
|
-
}
|
|
50
35
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
const parsedChildren = _react.default.Children.map(_react.default.Children.toArray(children), child => {
|
|
37
|
+
if (typeof child === 'string') {
|
|
38
|
+
return (0, _uikitUtils.replaceUrlAsComponents)(child, url => {
|
|
39
|
+
return /*#__PURE__*/_react.default.createElement(_Text.default, _extends({}, props, {
|
|
40
|
+
suppressHighlighting: true,
|
|
41
|
+
onPress: () => onPressUrl === null || onPressUrl === void 0 ? void 0 : onPressUrl(url, url.startsWith('http')),
|
|
42
|
+
style: [props.style, styles.url]
|
|
43
|
+
}), url);
|
|
44
|
+
}, strict);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return child;
|
|
48
|
+
});
|
|
49
|
+
|
|
54
50
|
return /*#__PURE__*/_react.default.createElement(_Text.default, props, parsedChildren);
|
|
55
51
|
};
|
|
56
52
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["openUrl","url","httpProtocol","targetUrl","Linking","openURL","catch","err","Logger","warn","URLParsedText","children","onPressUrl","strict","props","parsedChildren","
|
|
1
|
+
{"version":3,"names":["openUrl","url","httpProtocol","targetUrl","Linking","openURL","catch","err","Logger","warn","URLParsedText","children","onPressUrl","strict","props","parsedChildren","React","Children","map","toArray","child","replaceUrlAsComponents","startsWith","style","styles","createStyleSheet","textDecorationLine"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Linking } from 'react-native';\n\nimport { Logger, replaceUrlAsComponents } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport type { TextProps } from '../Text';\nimport Text from '../Text';\n\ntype OnPressUrl = (url: string, httpProtocol: boolean) => void;\n\nconst openUrl: OnPressUrl = (url, httpProtocol) => {\n const targetUrl = httpProtocol ? url : 'https://' + url;\n Linking.openURL(targetUrl).catch((err) => Logger.warn('[URLParsedText]', 'Cannot open url', err));\n};\n\ntype Props = TextProps & {\n onPressUrl?: OnPressUrl;\n strict?: boolean;\n};\nconst URLParsedText = ({ children, onPressUrl = openUrl, strict, ...props }: Props) => {\n const parsedChildren = React.Children.map(React.Children.toArray(children), (child) => {\n if (typeof child === 'string') {\n return replaceUrlAsComponents(\n child,\n (url) => {\n return (\n <Text\n {...props}\n suppressHighlighting\n onPress={() => onPressUrl?.(url, url.startsWith('http'))}\n style={[props.style, styles.url]}\n >\n {url}\n </Text>\n );\n },\n strict,\n );\n }\n\n return child;\n });\n\n return <Text {...props}>{parsedChildren}</Text>;\n};\nconst styles = createStyleSheet({\n url: { textDecorationLine: 'underline' },\n});\nexport default URLParsedText;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AAEA;;;;;;AAIA,MAAMA,OAAmB,GAAG,CAACC,GAAD,EAAMC,YAAN,KAAuB;EACjD,MAAMC,SAAS,GAAGD,YAAY,GAAGD,GAAH,GAAS,aAAaA,GAApD;;EACAG,oBAAA,CAAQC,OAAR,CAAgBF,SAAhB,EAA2BG,KAA3B,CAAkCC,GAAD,IAASC,kBAAA,CAAOC,IAAP,CAAY,iBAAZ,EAA+B,iBAA/B,EAAkDF,GAAlD,CAA1C;AACD,CAHD;;AASA,MAAMG,aAAa,GAAG,QAAiE;EAAA,IAAhE;IAAEC,QAAF;IAAYC,UAAU,GAAGZ,OAAzB;IAAkCa,MAAlC;IAA0C,GAAGC;EAA7C,CAAgE;;EACrF,MAAMC,cAAc,GAAGC,cAAA,CAAMC,QAAN,CAAeC,GAAf,CAAmBF,cAAA,CAAMC,QAAN,CAAeE,OAAf,CAAuBR,QAAvB,CAAnB,EAAsDS,KAAD,IAAW;IACrF,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC7B,OAAO,IAAAC,kCAAA,EACLD,KADK,EAEJnB,GAAD,IAAS;QACP,oBACE,6BAAC,aAAD,eACMa,KADN;UAEE,oBAAoB,MAFtB;UAGE,OAAO,EAAE,MAAMF,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAGX,GAAH,EAAQA,GAAG,CAACqB,UAAJ,CAAe,MAAf,CAAR,CAH3B;UAIE,KAAK,EAAE,CAACR,KAAK,CAACS,KAAP,EAAcC,MAAM,CAACvB,GAArB;QAJT,IAMGA,GANH,CADF;MAUD,CAbI,EAcLY,MAdK,CAAP;IAgBD;;IAED,OAAOO,KAAP;EACD,CArBsB,CAAvB;;EAuBA,oBAAO,6BAAC,aAAD,EAAUN,KAAV,EAAkBC,cAAlB,CAAP;AACD,CAzBD;;AA0BA,MAAMS,MAAM,GAAG,IAAAC,yBAAA,EAAiB;EAC9BxB,GAAG,EAAE;IAAEyB,kBAAkB,EAAE;EAAtB;AADyB,CAAjB,CAAf;eAGehB,a"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -9,12 +9,6 @@ Object.defineProperty(exports, "ActionMenu", {
|
|
|
9
9
|
return _ActionMenu.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "ActionMenuItem", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _ActionMenu.ActionMenuItem;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
12
|
Object.defineProperty(exports, "Alert", {
|
|
19
13
|
enumerable: true,
|
|
20
14
|
get: function () {
|
|
@@ -39,12 +33,6 @@ Object.defineProperty(exports, "BottomSheet", {
|
|
|
39
33
|
return _BottomSheet.default;
|
|
40
34
|
}
|
|
41
35
|
});
|
|
42
|
-
Object.defineProperty(exports, "BottomSheetItem", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
get: function () {
|
|
45
|
-
return _BottomSheet.BottomSheetItem;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
36
|
Object.defineProperty(exports, "Button", {
|
|
49
37
|
enumerable: true,
|
|
50
38
|
get: function () {
|
|
@@ -93,12 +81,6 @@ Object.defineProperty(exports, "HeaderStyleContext", {
|
|
|
93
81
|
return _HeaderStyleContext.HeaderStyleContext;
|
|
94
82
|
}
|
|
95
83
|
});
|
|
96
|
-
Object.defineProperty(exports, "HeaderStyleContextType", {
|
|
97
|
-
enumerable: true,
|
|
98
|
-
get: function () {
|
|
99
|
-
return _HeaderStyleContext.HeaderStyleContextType;
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
84
|
Object.defineProperty(exports, "HeaderStyleProvider", {
|
|
103
85
|
enumerable: true,
|
|
104
86
|
get: function () {
|
|
@@ -153,6 +135,12 @@ Object.defineProperty(exports, "Modal", {
|
|
|
153
135
|
return _Modal.default;
|
|
154
136
|
}
|
|
155
137
|
});
|
|
138
|
+
Object.defineProperty(exports, "OutlinedButton", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
get: function () {
|
|
141
|
+
return _OutlinedButton.default;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
156
144
|
Object.defineProperty(exports, "Palette", {
|
|
157
145
|
enumerable: true,
|
|
158
146
|
get: function () {
|
|
@@ -165,12 +153,24 @@ Object.defineProperty(exports, "Placeholder", {
|
|
|
165
153
|
return _Placeholder.default;
|
|
166
154
|
}
|
|
167
155
|
});
|
|
156
|
+
Object.defineProperty(exports, "ProfileCard", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function () {
|
|
159
|
+
return _ProfileCard.default;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
168
162
|
Object.defineProperty(exports, "Prompt", {
|
|
169
163
|
enumerable: true,
|
|
170
164
|
get: function () {
|
|
171
165
|
return _Prompt.default;
|
|
172
166
|
}
|
|
173
167
|
});
|
|
168
|
+
Object.defineProperty(exports, "RegexText", {
|
|
169
|
+
enumerable: true,
|
|
170
|
+
get: function () {
|
|
171
|
+
return _RegexText.default;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
174
|
Object.defineProperty(exports, "Switch", {
|
|
175
175
|
enumerable: true,
|
|
176
176
|
get: function () {
|
|
@@ -213,12 +213,6 @@ Object.defineProperty(exports, "UIKitThemeProvider", {
|
|
|
213
213
|
return _UIKitThemeProvider.default;
|
|
214
214
|
}
|
|
215
215
|
});
|
|
216
|
-
Object.defineProperty(exports, "UIKitTypographyOverrides", {
|
|
217
|
-
enumerable: true,
|
|
218
|
-
get: function () {
|
|
219
|
-
return _createTypography.UIKitTypographyOverrides;
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
216
|
Object.defineProperty(exports, "URLParsedText", {
|
|
223
217
|
enumerable: true,
|
|
224
218
|
get: function () {
|
|
@@ -314,6 +308,8 @@ var _Image = _interopRequireDefault(require("./components/Image"));
|
|
|
314
308
|
|
|
315
309
|
var _Modal = _interopRequireDefault(require("./components/Modal"));
|
|
316
310
|
|
|
311
|
+
var _RegexText = _interopRequireDefault(require("./components/RegexText"));
|
|
312
|
+
|
|
317
313
|
var _Switch = _interopRequireDefault(require("./components/Switch"));
|
|
318
314
|
|
|
319
315
|
var _Text = _interopRequireDefault(require("./components/Text"));
|
|
@@ -322,7 +318,7 @@ var _TextInput = _interopRequireDefault(require("./components/TextInput"));
|
|
|
322
318
|
|
|
323
319
|
var _URLParsedText = _interopRequireDefault(require("./components/URLParsedText"));
|
|
324
320
|
|
|
325
|
-
var _ActionMenu =
|
|
321
|
+
var _ActionMenu = _interopRequireDefault(require("./ui/ActionMenu"));
|
|
326
322
|
|
|
327
323
|
var _Alert = _interopRequireDefault(require("./ui/Alert"));
|
|
328
324
|
|
|
@@ -330,7 +326,7 @@ var _Avatar = _interopRequireDefault(require("./ui/Avatar"));
|
|
|
330
326
|
|
|
331
327
|
var _Badge = _interopRequireDefault(require("./ui/Badge"));
|
|
332
328
|
|
|
333
|
-
var _BottomSheet =
|
|
329
|
+
var _BottomSheet = _interopRequireDefault(require("./ui/BottomSheet"));
|
|
334
330
|
|
|
335
331
|
var _Button = _interopRequireDefault(require("./ui/Button"));
|
|
336
332
|
|
|
@@ -346,8 +342,12 @@ var _LoadingSpinner = _interopRequireDefault(require("./ui/LoadingSpinner"));
|
|
|
346
342
|
|
|
347
343
|
var _MenuBar = _interopRequireWildcard(require("./ui/MenuBar"));
|
|
348
344
|
|
|
345
|
+
var _OutlinedButton = _interopRequireDefault(require("./ui/OutlinedButton"));
|
|
346
|
+
|
|
349
347
|
var _Placeholder = _interopRequireDefault(require("./ui/Placeholder"));
|
|
350
348
|
|
|
349
|
+
var _ProfileCard = _interopRequireDefault(require("./ui/ProfileCard"));
|
|
350
|
+
|
|
351
351
|
var _Prompt = _interopRequireDefault(require("./ui/Prompt"));
|
|
352
352
|
|
|
353
353
|
var _Toast = _interopRequireWildcard(require("./ui/Toast"));
|
|
@@ -358,7 +358,7 @@ var _createScaleFactor = _interopRequireDefault(require("./styles/createScaleFac
|
|
|
358
358
|
|
|
359
359
|
var _createStyleSheet = _interopRequireDefault(require("./styles/createStyleSheet"));
|
|
360
360
|
|
|
361
|
-
var _createTypography =
|
|
361
|
+
var _createTypography = _interopRequireDefault(require("./styles/createTypography"));
|
|
362
362
|
|
|
363
363
|
var _getDefaultHeaderHeight = _interopRequireDefault(require("./styles/getDefaultHeaderHeight"));
|
|
364
364
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as Modal } from './components/Modal';\nexport { default as Switch } from './components/Switch';\nexport { default as Text } from './components/Text';\nexport { default as TextInput } from './components/TextInput';\nexport { default as URLParsedText } from './components/URLParsedText';\n\n/** UI **/\nexport { default as ActionMenu
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as Modal } from './components/Modal';\nexport { default as RegexText } from './components/RegexText';\nexport { default as Switch } from './components/Switch';\nexport { default as Text } from './components/Text';\nexport { default as TextInput } from './components/TextInput';\nexport { default as URLParsedText } from './components/URLParsedText';\n\n/** UI **/\nexport { default as ActionMenu } from './ui/ActionMenu';\nexport { default as Alert } from './ui/Alert';\nexport { default as Avatar } from './ui/Avatar';\nexport { default as Badge } from './ui/Badge';\nexport { default as BottomSheet } from './ui/BottomSheet';\nexport { default as Button } from './ui/Button';\nexport { default as ChannelFrozenBanner } from './ui/ChannelFrozenBanner';\nexport { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } from './ui/Dialog';\nexport { default as GroupChannelPreview } from './ui/GroupChannelPreview';\nexport { default as Header } from './ui/Header';\nexport { default as LoadingSpinner } from './ui/LoadingSpinner';\nexport { default as MenuBar, MenuBarProps } from './ui/MenuBar';\nexport { default as OutlinedButton } from './ui/OutlinedButton';\nexport { default as Placeholder } from './ui/Placeholder';\nexport { default as ProfileCard } from './ui/ProfileCard';\nexport { default as Prompt } from './ui/Prompt';\nexport { default as Toast, useToast, ToastProvider } from './ui/Toast';\n\n/** Styles **/\nexport { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';\nexport { default as createScaleFactor } from './styles/createScaleFactor';\nexport { default as createStyleSheet } from './styles/createStyleSheet';\nexport { default as createTypography } from './styles/createTypography';\nexport { default as getDefaultHeaderHeight } from './styles/getDefaultHeaderHeight';\nexport { HeaderStyleContext, HeaderStyleProvider } from './styles/HeaderStyleContext';\nexport { default as useHeaderStyle } from './styles/useHeaderStyle';\n\n/** Theme **/\nexport { default as createTheme } from './theme/createTheme';\nexport { default as DarkUIKitTheme } from './theme/DarkUIKitTheme';\nexport { default as LightUIKitTheme } from './theme/LightUIKitTheme';\nexport { default as Palette } from './theme/Palette';\nexport { default as UIKitThemeContext } from './theme/UIKitThemeContext';\nexport { default as UIKitThemeProvider } from './theme/UIKitThemeProvider';\nexport { default as useUIKitTheme } from './theme/useUIKitTheme';\n\n/** Types **/\nexport type {\n TypoName,\n UIKitTheme,\n UIKitTypography,\n FontAttributes,\n BaseHeaderProps,\n UIKitColorScheme,\n UIKitColors,\n ComponentColorTree,\n UIKitPalette,\n HeaderElement,\n HeaderPartProps,\n ComponentColors,\n Component,\n GetColorTree,\n} from './types';\nexport type { ActionMenuItem } from './ui/ActionMenu';\nexport type { BottomSheetItem } from './ui/BottomSheet';\nexport type { UIKitTypographyOverrides } from './styles/createTypography';\nexport type { HeaderStyleContextType } from './styles/HeaderStyleContext';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HeaderStyleContext","React","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","StatusBar","currentHeight","defaultHeight","getDefaultHeaderHeight","HeaderStyleProvider","children","top","useSafeAreaInsets","width","height","useWindowDimensions"],"sources":["HeaderStyleContext.tsx"],"sourcesContent":["import React from 'react';\nimport { StatusBar, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type {
|
|
1
|
+
{"version":3,"names":["HeaderStyleContext","React","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","StatusBar","currentHeight","defaultHeight","getDefaultHeaderHeight","HeaderStyleProvider","children","top","useSafeAreaInsets","width","height","useWindowDimensions"],"sources":["HeaderStyleContext.tsx"],"sourcesContent":["import React from 'react';\nimport { StatusBar, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { HeaderProps } from '../ui/Header';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\n\nexport type HeaderStyleContextType = {\n HeaderComponent: (props: HeaderProps) => React.ReactElement | null;\n defaultTitleAlign: 'left' | 'center';\n statusBarTranslucent: boolean;\n topInset: number;\n defaultHeight: number;\n};\nexport const HeaderStyleContext = React.createContext<HeaderStyleContextType>({\n HeaderComponent: () => null,\n defaultTitleAlign: 'left',\n statusBarTranslucent: true,\n topInset: StatusBar.currentHeight ?? 0,\n defaultHeight: getDefaultHeaderHeight(false),\n});\n\ntype Props = Pick<HeaderStyleContextType, 'statusBarTranslucent' | 'defaultTitleAlign' | 'HeaderComponent'>;\nexport const HeaderStyleProvider = ({\n children,\n HeaderComponent = () => null,\n defaultTitleAlign,\n statusBarTranslucent,\n}: React.PropsWithChildren<Props>) => {\n const { top } = useSafeAreaInsets();\n const { width, height } = useWindowDimensions();\n\n return (\n <HeaderStyleContext.Provider\n value={{\n HeaderComponent,\n defaultTitleAlign,\n statusBarTranslucent,\n topInset: statusBarTranslucent ? top : 0,\n defaultHeight: getDefaultHeaderHeight(width > height),\n }}\n >\n {children}\n </HeaderStyleContext.Provider>\n );\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAGA;;;;AASO,MAAMA,kBAAkB,gBAAGC,cAAA,CAAMC,aAAN,CAA4C;EAC5EC,eAAe,EAAE,MAAM,IADqD;EAE5EC,iBAAiB,EAAE,MAFyD;EAG5EC,oBAAoB,EAAE,IAHsD;EAI5EC,QAAQ,EAAEC,sBAAA,CAAUC,aAAV,IAA2B,CAJuC;EAK5EC,aAAa,EAAE,IAAAC,+BAAA,EAAuB,KAAvB;AAL6D,CAA5C,CAA3B;;;;AASA,MAAMC,mBAAmB,GAAG,QAKG;EAAA,IALF;IAClCC,QADkC;IAElCT,eAAe,GAAG,MAAM,IAFU;IAGlCC,iBAHkC;IAIlCC;EAJkC,CAKE;EACpC,MAAM;IAAEQ;EAAF,IAAU,IAAAC,6CAAA,GAAhB;EACA,MAAM;IAAEC,KAAF;IAASC;EAAT,IAAoB,IAAAC,gCAAA,GAA1B;EAEA,oBACE,6BAAC,kBAAD,CAAoB,QAApB;IACE,KAAK,EAAE;MACLd,eADK;MAELC,iBAFK;MAGLC,oBAHK;MAILC,QAAQ,EAAED,oBAAoB,GAAGQ,GAAH,GAAS,CAJlC;MAKLJ,aAAa,EAAE,IAAAC,+BAAA,EAAuBK,KAAK,GAAGC,MAA/B;IALV;EADT,GASGJ,QATH,CADF;AAaD,CAtBM"}
|
|
@@ -16,7 +16,9 @@ const preProcessor = {
|
|
|
16
16
|
'lineHeight': _createScaleFactor.DEFAULT_SCALE_FACTOR,
|
|
17
17
|
'borderRadius': _createScaleFactor.DEFAULT_SCALE_FACTOR,
|
|
18
18
|
'minWidth': SCALE_FACTOR_WITH_STR,
|
|
19
|
+
'maxWidth': SCALE_FACTOR_WITH_STR,
|
|
19
20
|
'minHeight': SCALE_FACTOR_WITH_STR,
|
|
21
|
+
'maxHeight': SCALE_FACTOR_WITH_STR,
|
|
20
22
|
'height': SCALE_FACTOR_WITH_STR,
|
|
21
23
|
'width': SCALE_FACTOR_WITH_STR,
|
|
22
24
|
'padding': SCALE_FACTOR_WITH_STR,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SCALE_FACTOR_WITH_STR","val","DEFAULT_SCALE_FACTOR","preProcessor","preProcessorKeys","Object","keys","preProcessorLen","length","createStyleSheet","styles","values","forEach","style","styleKeys","styleLen","key","StyleSheet","create"],"sources":["createStyleSheet.ts"],"sourcesContent":["import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\n\nimport { DEFAULT_SCALE_FACTOR } from './createScaleFactor';\n\ntype Styles = ViewStyle | TextStyle | ImageStyle;\ntype StylePreprocessor<T extends Styles = Styles> = { [key in keyof T]: (val: NonNullable<T[key]>) => typeof val };\n\nconst SCALE_FACTOR_WITH_STR = (val: string | number) => (typeof val === 'string' ? val : DEFAULT_SCALE_FACTOR(val));\n\nconst preProcessor: Partial<StylePreprocessor> = {\n 'fontSize': DEFAULT_SCALE_FACTOR,\n 'lineHeight': DEFAULT_SCALE_FACTOR,\n 'borderRadius': DEFAULT_SCALE_FACTOR,\n 'minWidth': SCALE_FACTOR_WITH_STR,\n 'minHeight': SCALE_FACTOR_WITH_STR,\n 'height': SCALE_FACTOR_WITH_STR,\n 'width': SCALE_FACTOR_WITH_STR,\n 'padding': SCALE_FACTOR_WITH_STR,\n 'paddingTop': SCALE_FACTOR_WITH_STR,\n 'paddingBottom': SCALE_FACTOR_WITH_STR,\n 'paddingLeft': SCALE_FACTOR_WITH_STR,\n 'paddingRight': SCALE_FACTOR_WITH_STR,\n 'margin': SCALE_FACTOR_WITH_STR,\n 'marginTop': SCALE_FACTOR_WITH_STR,\n 'marginBottom': SCALE_FACTOR_WITH_STR,\n 'marginLeft': SCALE_FACTOR_WITH_STR,\n 'marginRight': SCALE_FACTOR_WITH_STR,\n 'left': SCALE_FACTOR_WITH_STR,\n 'right': SCALE_FACTOR_WITH_STR,\n 'top': SCALE_FACTOR_WITH_STR,\n 'bottom': SCALE_FACTOR_WITH_STR,\n};\n\nconst preProcessorKeys = Object.keys(preProcessor);\nconst preProcessorLen = preProcessorKeys.length;\n\n/**\n * Create StyleSheet with customized pre-processor\n * Return a StyleSheet that pre-processed\n * @param styles\n * @returns StyleSheet\n * */\nconst createStyleSheet = <T extends StyleSheet.NamedStyles<T>>(styles: T | StyleSheet.NamedStyles<T>): T => {\n Object.values(styles).forEach((style) => {\n // @ts-ignore\n const styleKeys = Object.keys(style);\n const styleLen = styleKeys.length;\n\n const keys = styleLen < preProcessorLen ? styleKeys : preProcessorKeys;\n keys.forEach((key) => {\n // @ts-ignore\n if (preProcessor[key] && typeof style[key] !== 'undefined') style[key] = preProcessor[key](style[key]);\n });\n });\n\n return StyleSheet.create<T>(styles);\n};\n\nexport default createStyleSheet;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAKA,MAAMA,qBAAqB,GAAIC,GAAD,IAA2B,OAAOA,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgC,IAAAC,uCAAA,EAAqBD,GAArB,CAAzF;;AAEA,MAAME,YAAwC,GAAG;EAC/C,YAAYD,uCADmC;EAE/C,cAAcA,uCAFiC;EAG/C,gBAAgBA,uCAH+B;EAI/C,YAAYF,qBAJmC;EAK/C,
|
|
1
|
+
{"version":3,"names":["SCALE_FACTOR_WITH_STR","val","DEFAULT_SCALE_FACTOR","preProcessor","preProcessorKeys","Object","keys","preProcessorLen","length","createStyleSheet","styles","values","forEach","style","styleKeys","styleLen","key","StyleSheet","create"],"sources":["createStyleSheet.ts"],"sourcesContent":["import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\n\nimport { DEFAULT_SCALE_FACTOR } from './createScaleFactor';\n\ntype Styles = ViewStyle | TextStyle | ImageStyle;\ntype StylePreprocessor<T extends Styles = Styles> = { [key in keyof T]: (val: NonNullable<T[key]>) => typeof val };\n\nconst SCALE_FACTOR_WITH_STR = (val: string | number) => (typeof val === 'string' ? val : DEFAULT_SCALE_FACTOR(val));\n\nconst preProcessor: Partial<StylePreprocessor> = {\n 'fontSize': DEFAULT_SCALE_FACTOR,\n 'lineHeight': DEFAULT_SCALE_FACTOR,\n 'borderRadius': DEFAULT_SCALE_FACTOR,\n 'minWidth': SCALE_FACTOR_WITH_STR,\n 'maxWidth': SCALE_FACTOR_WITH_STR,\n 'minHeight': SCALE_FACTOR_WITH_STR,\n 'maxHeight': SCALE_FACTOR_WITH_STR,\n 'height': SCALE_FACTOR_WITH_STR,\n 'width': SCALE_FACTOR_WITH_STR,\n 'padding': SCALE_FACTOR_WITH_STR,\n 'paddingTop': SCALE_FACTOR_WITH_STR,\n 'paddingBottom': SCALE_FACTOR_WITH_STR,\n 'paddingLeft': SCALE_FACTOR_WITH_STR,\n 'paddingRight': SCALE_FACTOR_WITH_STR,\n 'margin': SCALE_FACTOR_WITH_STR,\n 'marginTop': SCALE_FACTOR_WITH_STR,\n 'marginBottom': SCALE_FACTOR_WITH_STR,\n 'marginLeft': SCALE_FACTOR_WITH_STR,\n 'marginRight': SCALE_FACTOR_WITH_STR,\n 'left': SCALE_FACTOR_WITH_STR,\n 'right': SCALE_FACTOR_WITH_STR,\n 'top': SCALE_FACTOR_WITH_STR,\n 'bottom': SCALE_FACTOR_WITH_STR,\n};\n\nconst preProcessorKeys = Object.keys(preProcessor);\nconst preProcessorLen = preProcessorKeys.length;\n\n/**\n * Create StyleSheet with customized pre-processor\n * Return a StyleSheet that pre-processed\n * @param styles\n * @returns StyleSheet\n * */\nconst createStyleSheet = <T extends StyleSheet.NamedStyles<T>>(styles: T | StyleSheet.NamedStyles<T>): T => {\n Object.values(styles).forEach((style) => {\n // @ts-ignore\n const styleKeys = Object.keys(style);\n const styleLen = styleKeys.length;\n\n const keys = styleLen < preProcessorLen ? styleKeys : preProcessorKeys;\n keys.forEach((key) => {\n // @ts-ignore\n if (preProcessor[key] && typeof style[key] !== 'undefined') style[key] = preProcessor[key](style[key]);\n });\n });\n\n return StyleSheet.create<T>(styles);\n};\n\nexport default createStyleSheet;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAKA,MAAMA,qBAAqB,GAAIC,GAAD,IAA2B,OAAOA,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgC,IAAAC,uCAAA,EAAqBD,GAArB,CAAzF;;AAEA,MAAME,YAAwC,GAAG;EAC/C,YAAYD,uCADmC;EAE/C,cAAcA,uCAFiC;EAG/C,gBAAgBA,uCAH+B;EAI/C,YAAYF,qBAJmC;EAK/C,YAAYA,qBALmC;EAM/C,aAAaA,qBANkC;EAO/C,aAAaA,qBAPkC;EAQ/C,UAAUA,qBARqC;EAS/C,SAASA,qBATsC;EAU/C,WAAWA,qBAVoC;EAW/C,cAAcA,qBAXiC;EAY/C,iBAAiBA,qBAZ8B;EAa/C,eAAeA,qBAbgC;EAc/C,gBAAgBA,qBAd+B;EAe/C,UAAUA,qBAfqC;EAgB/C,aAAaA,qBAhBkC;EAiB/C,gBAAgBA,qBAjB+B;EAkB/C,cAAcA,qBAlBiC;EAmB/C,eAAeA,qBAnBgC;EAoB/C,QAAQA,qBApBuC;EAqB/C,SAASA,qBArBsC;EAsB/C,OAAOA,qBAtBwC;EAuB/C,UAAUA;AAvBqC,CAAjD;AA0BA,MAAMI,gBAAgB,GAAGC,MAAM,CAACC,IAAP,CAAYH,YAAZ,CAAzB;AACA,MAAMI,eAAe,GAAGH,gBAAgB,CAACI,MAAzC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAyCC,MAAtC,IAAmF;EAC1GL,MAAM,CAACM,MAAP,CAAcD,MAAd,EAAsBE,OAAtB,CAA+BC,KAAD,IAAW;IACvC;IACA,MAAMC,SAAS,GAAGT,MAAM,CAACC,IAAP,CAAYO,KAAZ,CAAlB;IACA,MAAME,QAAQ,GAAGD,SAAS,CAACN,MAA3B;IAEA,MAAMF,IAAI,GAAGS,QAAQ,GAAGR,eAAX,GAA6BO,SAA7B,GAAyCV,gBAAtD;IACAE,IAAI,CAACM,OAAL,CAAcI,GAAD,IAAS;MACpB;MACA,IAAIb,YAAY,CAACa,GAAD,CAAZ,IAAqB,OAAOH,KAAK,CAACG,GAAD,CAAZ,KAAsB,WAA/C,EAA4DH,KAAK,CAACG,GAAD,CAAL,GAAab,YAAY,CAACa,GAAD,CAAZ,CAAkBH,KAAK,CAACG,GAAD,CAAvB,CAAb;IAC7D,CAHD;EAID,CAVD;EAYA,OAAOC,uBAAA,CAAWC,MAAX,CAAqBR,MAArB,CAAP;AACD,CAdD;;eAgBeD,gB"}
|
|
@@ -177,6 +177,38 @@ const DarkUIKitTheme = (0, _createTheme.default)({
|
|
|
177
177
|
separator: palette.onBackgroundDark04
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
+
},
|
|
181
|
+
profileCard: {
|
|
182
|
+
default: {
|
|
183
|
+
none: {
|
|
184
|
+
textUsername: palette.onBackgroundDark01,
|
|
185
|
+
textBodyLabel: palette.onBackgroundDark02,
|
|
186
|
+
textBody: palette.onBackgroundDark01,
|
|
187
|
+
background: palette.background500
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
reaction: {
|
|
192
|
+
default: {
|
|
193
|
+
enabled: {
|
|
194
|
+
background: palette.transparent,
|
|
195
|
+
highlight: palette.onBackgroundDark03
|
|
196
|
+
},
|
|
197
|
+
selected: {
|
|
198
|
+
background: palette.primary500,
|
|
199
|
+
highlight: palette.primary200
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
rounded: {
|
|
203
|
+
enabled: {
|
|
204
|
+
background: palette.background400,
|
|
205
|
+
highlight: palette.transparent
|
|
206
|
+
},
|
|
207
|
+
selected: {
|
|
208
|
+
background: palette.primary500,
|
|
209
|
+
highlight: palette.transparent
|
|
210
|
+
}
|
|
211
|
+
}
|
|
180
212
|
}
|
|
181
213
|
}
|
|
182
214
|
})
|