@sendbird/uikit-react-native-foundation 2.4.1 → 2.5.0-rc.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/README.md +1 -1
- package/lib/commonjs/assets/bundle-icons.js +0 -3
- package/lib/commonjs/assets/bundle-icons.js.map +1 -1
- package/lib/commonjs/assets/icon/index.js.map +1 -1
- package/lib/commonjs/components/Box/index.js +0 -9
- package/lib/commonjs/components/Box/index.js.map +1 -1
- package/lib/commonjs/components/Divider/index.js +0 -7
- package/lib/commonjs/components/Divider/index.js.map +1 -1
- package/lib/commonjs/components/Icon/index.js +0 -9
- package/lib/commonjs/components/Icon/index.js.map +1 -1
- package/lib/commonjs/components/Image/Image.fastimage.js +8 -17
- package/lib/commonjs/components/Image/Image.fastimage.js.map +1 -1
- package/lib/commonjs/components/Image/Image.reactnative.js +0 -6
- package/lib/commonjs/components/Image/Image.reactnative.js.map +1 -1
- package/lib/commonjs/components/Image/index.js +0 -5
- package/lib/commonjs/components/Image/index.js.map +1 -1
- package/lib/commonjs/components/ImageWithPlaceholder/index.js +0 -15
- package/lib/commonjs/components/ImageWithPlaceholder/index.js.map +1 -1
- package/lib/commonjs/components/Modal/index.js +6 -24
- package/lib/commonjs/components/Modal/index.js.map +1 -1
- package/lib/commonjs/components/PressBox/index.js +0 -11
- package/lib/commonjs/components/PressBox/index.js.map +1 -1
- package/lib/commonjs/components/RegexText/index.js +2 -8
- package/lib/commonjs/components/RegexText/index.js.map +1 -1
- package/lib/commonjs/components/Switch/index.js +0 -14
- package/lib/commonjs/components/Switch/index.js.map +1 -1
- package/lib/commonjs/components/Text/index.js +0 -8
- package/lib/commonjs/components/Text/index.js.map +1 -1
- package/lib/commonjs/components/TextInput/index.js +0 -8
- package/lib/commonjs/components/TextInput/index.js.map +1 -1
- package/lib/commonjs/components/URLParsedText/index.js +0 -14
- package/lib/commonjs/components/URLParsedText/index.js.map +1 -1
- package/lib/commonjs/index.js +0 -49
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/styles/HeaderStyleContext.js +0 -9
- package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -1
- package/lib/commonjs/styles/createScaleFactor.js +0 -6
- package/lib/commonjs/styles/createScaleFactor.js.map +1 -1
- package/lib/commonjs/styles/createSelectByColorScheme.js +0 -2
- package/lib/commonjs/styles/createSelectByColorScheme.js.map +1 -1
- package/lib/commonjs/styles/createStyleSheet.js +1 -6
- package/lib/commonjs/styles/createStyleSheet.js.map +1 -1
- package/lib/commonjs/styles/createTypography.js +0 -3
- package/lib/commonjs/styles/createTypography.js.map +1 -1
- package/lib/commonjs/styles/getDefaultHeaderHeight.js +0 -2
- package/lib/commonjs/styles/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/styles/useHeaderStyle.js +0 -4
- package/lib/commonjs/styles/useHeaderStyle.js.map +1 -1
- package/lib/commonjs/theme/DarkUIKitTheme.js +0 -3
- package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/commonjs/theme/LightUIKitTheme.js +0 -3
- package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
- package/lib/commonjs/theme/Palette.js.map +1 -1
- package/lib/commonjs/theme/UIKitThemeContext.js +0 -4
- package/lib/commonjs/theme/UIKitThemeContext.js.map +1 -1
- package/lib/commonjs/theme/UIKitThemeProvider.js +0 -6
- package/lib/commonjs/theme/UIKitThemeProvider.js.map +1 -1
- package/lib/commonjs/theme/createTheme.js +0 -13
- package/lib/commonjs/theme/createTheme.js.map +1 -1
- package/lib/commonjs/theme/useUIKitTheme.js +0 -5
- package/lib/commonjs/theme/useUIKitTheme.js.map +1 -1
- package/lib/commonjs/ui/ActionMenu/index.js +2 -20
- package/lib/commonjs/ui/ActionMenu/index.js.map +1 -1
- package/lib/commonjs/ui/Alert/index.js +0 -12
- package/lib/commonjs/ui/Alert/index.js.map +1 -1
- package/lib/commonjs/ui/Avatar/AvatarGroup.js +0 -17
- package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/commonjs/ui/Avatar/AvatarIcon.js +0 -8
- package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +1 -1
- package/lib/commonjs/ui/Avatar/index.js +0 -15
- package/lib/commonjs/ui/Avatar/index.js.map +1 -1
- package/lib/commonjs/ui/Badge/index.js +0 -9
- package/lib/commonjs/ui/Badge/index.js.map +1 -1
- package/lib/commonjs/ui/BottomSheet/index.js +0 -10
- package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
- package/lib/commonjs/ui/Button/index.js +0 -11
- package/lib/commonjs/ui/Button/index.js.map +1 -1
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js +0 -8
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +1 -1
- package/lib/commonjs/ui/Dialog/DialogBox.js +0 -7
- package/lib/commonjs/ui/Dialog/DialogBox.js.map +1 -1
- package/lib/commonjs/ui/Dialog/DialogSheet.js +0 -10
- package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/commonjs/ui/Dialog/index.js +0 -30
- package/lib/commonjs/ui/Dialog/index.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelPreview/index.js +1 -13
- package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/commonjs/ui/Header/index.js +0 -24
- package/lib/commonjs/ui/Header/index.js.map +1 -1
- package/lib/commonjs/ui/LoadingSpinner/index.js +0 -12
- package/lib/commonjs/ui/LoadingSpinner/index.js.map +1 -1
- package/lib/commonjs/ui/MenuBar/index.js +0 -11
- package/lib/commonjs/ui/MenuBar/index.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.admin.js +0 -7
- package/lib/commonjs/ui/OpenChannelMessage/Message.admin.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.image.js +0 -10
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.image.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.js +0 -14
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js +0 -16
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.unknown.js +0 -10
- package/lib/commonjs/ui/OpenChannelMessage/Message.unknown.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.js +0 -14
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js +0 -17
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/MessageContainer.js +0 -21
- package/lib/commonjs/ui/OpenChannelMessage/MessageContainer.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/index.js +0 -9
- package/lib/commonjs/ui/OpenChannelMessage/index.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelPreview/index.js +0 -12
- package/lib/commonjs/ui/OpenChannelPreview/index.js.map +1 -1
- package/lib/commonjs/ui/OutlinedButton/index.js +0 -8
- package/lib/commonjs/ui/OutlinedButton/index.js.map +1 -1
- package/lib/commonjs/ui/Placeholder/index.js +2 -13
- package/lib/commonjs/ui/Placeholder/index.js.map +1 -1
- package/lib/commonjs/ui/ProfileCard/index.js +0 -10
- package/lib/commonjs/ui/ProfileCard/index.js.map +1 -1
- package/lib/commonjs/ui/Prompt/index.js +3 -20
- package/lib/commonjs/ui/Prompt/index.js.map +1 -1
- package/lib/commonjs/ui/Toast/index.js +2 -23
- package/lib/commonjs/ui/Toast/index.js.map +1 -1
- package/lib/module/assets/bundle-icons.js +0 -3
- package/lib/module/assets/bundle-icons.js.map +1 -1
- package/lib/module/assets/icon/index.js.map +1 -1
- package/lib/module/components/Box/index.js +0 -4
- package/lib/module/components/Box/index.js.map +1 -1
- package/lib/module/components/Divider/index.js +0 -2
- package/lib/module/components/Divider/index.js.map +1 -1
- package/lib/module/components/Icon/index.js +0 -2
- package/lib/module/components/Icon/index.js.map +1 -1
- package/lib/module/components/Image/Image.fastimage.js +8 -15
- package/lib/module/components/Image/Image.fastimage.js.map +1 -1
- package/lib/module/components/Image/Image.reactnative.js +0 -3
- package/lib/module/components/Image/Image.reactnative.js.map +1 -1
- package/lib/module/components/Image/index.js +0 -3
- package/lib/module/components/Image/index.js.map +1 -1
- package/lib/module/components/ImageWithPlaceholder/index.js +0 -4
- package/lib/module/components/ImageWithPlaceholder/index.js.map +1 -1
- package/lib/module/components/Modal/index.js +6 -16
- package/lib/module/components/Modal/index.js.map +1 -1
- package/lib/module/components/PressBox/index.js +0 -5
- package/lib/module/components/PressBox/index.js.map +1 -1
- package/lib/module/components/RegexText/index.js +2 -4
- package/lib/module/components/RegexText/index.js.map +1 -1
- package/lib/module/components/Switch/index.js +0 -6
- package/lib/module/components/Switch/index.js.map +1 -1
- package/lib/module/components/Text/index.js +0 -4
- package/lib/module/components/Text/index.js.map +1 -1
- package/lib/module/components/TextInput/index.js +0 -1
- package/lib/module/components/TextInput/index.js.map +1 -1
- package/lib/module/components/URLParsedText/index.js +0 -5
- package/lib/module/components/URLParsedText/index.js.map +1 -1
- package/lib/module/index.js +5 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/styles/HeaderStyleContext.js.map +1 -1
- package/lib/module/styles/createScaleFactor.js +0 -3
- package/lib/module/styles/createScaleFactor.js.map +1 -1
- package/lib/module/styles/createSelectByColorScheme.js +0 -1
- package/lib/module/styles/createSelectByColorScheme.js.map +1 -1
- package/lib/module/styles/createStyleSheet.js +1 -4
- package/lib/module/styles/createStyleSheet.js.map +1 -1
- package/lib/module/styles/createTypography.js +0 -2
- package/lib/module/styles/createTypography.js.map +1 -1
- package/lib/module/styles/getDefaultHeaderHeight.js +0 -2
- package/lib/module/styles/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/styles/useHeaderStyle.js +0 -2
- package/lib/module/styles/useHeaderStyle.js.map +1 -1
- package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/module/theme/LightUIKitTheme.js.map +1 -1
- package/lib/module/theme/Palette.js.map +1 -1
- package/lib/module/theme/UIKitThemeContext.js.map +1 -1
- package/lib/module/theme/UIKitThemeProvider.js +0 -2
- package/lib/module/theme/UIKitThemeProvider.js.map +1 -1
- package/lib/module/theme/createTheme.js +0 -9
- package/lib/module/theme/createTheme.js.map +1 -1
- package/lib/module/theme/useUIKitTheme.js +0 -2
- package/lib/module/theme/useUIKitTheme.js.map +1 -1
- package/lib/module/ui/ActionMenu/index.js +2 -7
- package/lib/module/ui/ActionMenu/index.js.map +1 -1
- package/lib/module/ui/Alert/index.js +0 -2
- package/lib/module/ui/Alert/index.js.map +1 -1
- package/lib/module/ui/Avatar/AvatarGroup.js +0 -12
- package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/module/ui/Avatar/AvatarIcon.js +0 -2
- package/lib/module/ui/Avatar/AvatarIcon.js.map +1 -1
- package/lib/module/ui/Avatar/index.js +0 -3
- package/lib/module/ui/Avatar/index.js.map +1 -1
- package/lib/module/ui/Badge/index.js +0 -2
- package/lib/module/ui/Badge/index.js.map +1 -1
- package/lib/module/ui/BottomSheet/index.js +0 -3
- package/lib/module/ui/BottomSheet/index.js.map +1 -1
- package/lib/module/ui/Button/index.js +0 -4
- package/lib/module/ui/Button/index.js.map +1 -1
- package/lib/module/ui/ChannelFrozenBanner/index.js +0 -2
- package/lib/module/ui/ChannelFrozenBanner/index.js.map +1 -1
- package/lib/module/ui/Dialog/DialogBox.js +0 -2
- package/lib/module/ui/Dialog/DialogBox.js.map +1 -1
- package/lib/module/ui/Dialog/DialogSheet.js +0 -3
- package/lib/module/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/module/ui/Dialog/index.js +0 -6
- package/lib/module/ui/Dialog/index.js.map +1 -1
- package/lib/module/ui/GroupChannelPreview/index.js +1 -3
- package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/module/ui/Header/index.js +0 -14
- package/lib/module/ui/Header/index.js.map +1 -1
- package/lib/module/ui/LoadingSpinner/index.js +0 -4
- package/lib/module/ui/LoadingSpinner/index.js.map +1 -1
- package/lib/module/ui/MenuBar/index.js +0 -2
- package/lib/module/ui/MenuBar/index.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.admin.js +0 -2
- package/lib/module/ui/OpenChannelMessage/Message.admin.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.image.js +0 -2
- package/lib/module/ui/OpenChannelMessage/Message.file.image.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.js +0 -3
- package/lib/module/ui/OpenChannelMessage/Message.file.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.video.js +0 -4
- package/lib/module/ui/OpenChannelMessage/Message.file.video.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.unknown.js +0 -4
- package/lib/module/ui/OpenChannelMessage/Message.unknown.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.user.js +0 -6
- package/lib/module/ui/OpenChannelMessage/Message.user.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.user.og.js +0 -6
- package/lib/module/ui/OpenChannelMessage/Message.user.og.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/MessageContainer.js +0 -9
- package/lib/module/ui/OpenChannelMessage/MessageContainer.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/index.js.map +1 -1
- package/lib/module/ui/OpenChannelPreview/index.js +0 -3
- package/lib/module/ui/OpenChannelPreview/index.js.map +1 -1
- package/lib/module/ui/OutlinedButton/index.js +0 -2
- package/lib/module/ui/OutlinedButton/index.js.map +1 -1
- package/lib/module/ui/Placeholder/index.js +2 -3
- package/lib/module/ui/Placeholder/index.js.map +1 -1
- package/lib/module/ui/ProfileCard/index.js +0 -2
- package/lib/module/ui/ProfileCard/index.js.map +1 -1
- package/lib/module/ui/Prompt/index.js +3 -6
- package/lib/module/ui/Prompt/index.js.map +1 -1
- package/lib/module/ui/Toast/index.js +2 -8
- package/lib/module/ui/Toast/index.js.map +1 -1
- package/lib/typescript/src/components/PressBox/index.d.ts +2 -1
- package/package.json +15 -9
- package/src/components/Image/Image.fastimage.tsx +17 -1
- package/src/components/PressBox/index.tsx +2 -1
- package/src/ui/GroupChannelPreview/index.tsx +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","Animated","Dimensions","KeyboardAvoidingView","PanResponder","Platform","Pressable","Modal","RNModal","StyleSheet","TouchableWithoutFeedback","useWindowDimensions","createStyleSheet","useHeaderStyle","useUIKitTheme","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","modalVisible","setModalVisible","showAction","hideAction","width","height","useOnDismiss","undefined","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","get","baseAnimBackground","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype 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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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","Animated","Dimensions","KeyboardAvoidingView","PanResponder","Platform","Pressable","Modal","RNModal","StyleSheet","TouchableWithoutFeedback","useWindowDimensions","createStyleSheet","useHeaderStyle","useUIKitTheme","_ref","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","modalVisible","setModalVisible","showAction","hideAction","width","height","useOnDismiss","createElement","_extends","transparent","hardwareAccelerated","onRequestClose","onShow","supportedOrientations","animationType","onPress","undefined","View","style","absoluteFill","opacity","backgroundColor","onBackgroundLight03","key","enabled","styles","background","behavior","select","ios","default","pointerEvents","keyboardVerticalOffset","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","create","onMoveShouldSetPanResponderCapture","_","_ref2","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","_ref3","setValue","onPanResponderRelease","_ref4","vy","current","initialY","get","baseAnimBackground","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype 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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"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
import * as React from 'react';
|
|
4
3
|
import { useState } from 'react';
|
|
5
4
|
import { Pressable, TouchableOpacity } from 'react-native';
|
|
6
5
|
import { isFunction } from '@sendbird/uikit-utils';
|
|
7
6
|
export const DEFAULT_LONG_PRESS_DELAY = 350;
|
|
8
|
-
|
|
9
7
|
const PressBox = props => {
|
|
10
8
|
if (props.activeOpacity && props.activeOpacity < 1) return /*#__PURE__*/React.createElement(PressBoxWithTouchableOpacity, props);
|
|
11
9
|
return /*#__PURE__*/React.createElement(PressBoxWithPressable, props);
|
|
12
10
|
};
|
|
13
|
-
|
|
14
11
|
const PressBoxWithPressable = _ref => {
|
|
15
12
|
let {
|
|
16
13
|
children,
|
|
@@ -21,7 +18,6 @@ const PressBoxWithPressable = _ref => {
|
|
|
21
18
|
delayLongPress: DEFAULT_LONG_PRESS_DELAY
|
|
22
19
|
}, props), state => isFunction(children) ? children(state) : children);
|
|
23
20
|
};
|
|
24
|
-
|
|
25
21
|
const PressBoxWithTouchableOpacity = _ref2 => {
|
|
26
22
|
let {
|
|
27
23
|
children,
|
|
@@ -40,6 +36,5 @@ const PressBoxWithTouchableOpacity = _ref2 => {
|
|
|
40
36
|
onPressOut: () => setPressed(false)
|
|
41
37
|
}, props), isFunction(children) ? children(state) : children);
|
|
42
38
|
};
|
|
43
|
-
|
|
44
39
|
export default PressBox;
|
|
45
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Pressable","TouchableOpacity","isFunction","DEFAULT_LONG_PRESS_DELAY","PressBox","props","activeOpacity","PressBoxWithPressable","children","onPress","onLongPress","state","
|
|
1
|
+
{"version":3,"names":["React","useState","Pressable","TouchableOpacity","isFunction","DEFAULT_LONG_PRESS_DELAY","PressBox","props","activeOpacity","createElement","PressBoxWithTouchableOpacity","PressBoxWithPressable","_ref","children","_extends","disabled","onPress","onLongPress","delayLongPress","state","_ref2","style","pressed","setPressed","onPressIn","onPressOut"],"sources":["index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\nimport type { GestureResponderEvent, StyleProp, ViewProps, ViewStyle } from 'react-native';\nimport { Pressable, TouchableOpacity } from 'react-native';\n\nimport { isFunction } from '@sendbird/uikit-utils';\n\ntype PressBoxStateParams = {\n pressed: boolean;\n};\n\ntype Props = {\n onPress?: (event: GestureResponderEvent) => void;\n onLongPress?: (event: GestureResponderEvent) => void;\n delayLongPress?: number;\n activeOpacity?: number;\n style?: StyleProp<ViewStyle> | ((state: PressBoxStateParams) => StyleProp<ViewStyle>);\n hitSlop?: ViewProps['hitSlop'];\n children?: React.ReactNode | ((params: PressBoxStateParams) => React.ReactNode);\n};\n\nexport const DEFAULT_LONG_PRESS_DELAY = 350;\n\nconst PressBox = (props: Props) => {\n if (props.activeOpacity && props.activeOpacity < 1) return <PressBoxWithTouchableOpacity {...props} />;\n return <PressBoxWithPressable {...props} />;\n};\n\nconst PressBoxWithPressable = ({ children, ...props }: Props) => {\n return (\n <Pressable disabled={!props.onPress && !props.onLongPress} delayLongPress={DEFAULT_LONG_PRESS_DELAY} {...props}>\n {(state) => (isFunction(children) ? children(state) : children)}\n </Pressable>\n );\n};\n\nconst PressBoxWithTouchableOpacity = ({ children, style, ...props }: Props) => {\n const [pressed, setPressed] = useState(false);\n const state: PressBoxStateParams = { pressed };\n return (\n <TouchableOpacity\n disabled={!props.onPress && !props.onLongPress}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n style={isFunction(style) ? style(state) : style}\n onPressIn={() => setPressed(true)}\n onPressOut={() => setPressed(false)}\n {...props}\n >\n {isFunction(children) ? children(state) : children}\n </TouchableOpacity>\n );\n};\n\nexport default PressBox;\n"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,OAAO;AAEhC,SAASC,SAAS,EAAEC,gBAAgB,QAAQ,cAAc;AAE1D,SAASC,UAAU,QAAQ,uBAAuB;AAgBlD,OAAO,MAAMC,wBAAwB,GAAG,GAAG;AAE3C,MAAMC,QAAQ,GAAIC,KAAY,IAAK;EACjC,IAAIA,KAAK,CAACC,aAAa,IAAID,KAAK,CAACC,aAAa,GAAG,CAAC,EAAE,oBAAOR,KAAA,CAAAS,aAAA,CAACC,4BAA4B,EAAKH,KAAK,CAAI;EACtG,oBAAOP,KAAA,CAAAS,aAAA,CAACE,qBAAqB,EAAKJ,KAAK,CAAI;AAC7C,CAAC;AAED,MAAMI,qBAAqB,GAAGC,IAAA,IAAmC;EAAA,IAAlC;IAAEC,QAAQ;IAAE,GAAGN;EAAa,CAAC,GAAAK,IAAA;EAC1D,oBACEZ,KAAA,CAAAS,aAAA,CAACP,SAAS,EAAAY,QAAA;IAACC,QAAQ,EAAE,CAACR,KAAK,CAACS,OAAO,IAAI,CAACT,KAAK,CAACU,WAAY;IAACC,cAAc,EAAEb;EAAyB,GAAKE,KAAK,GAC1GY,KAAK,IAAMf,UAAU,CAACS,QAAQ,CAAC,GAAGA,QAAQ,CAACM,KAAK,CAAC,GAAGN,QAAS,CACrD;AAEhB,CAAC;AAED,MAAMH,4BAA4B,GAAGU,KAAA,IAA0C;EAAA,IAAzC;IAAEP,QAAQ;IAAEQ,KAAK;IAAE,GAAGd;EAAa,CAAC,GAAAa,KAAA;EACxE,MAAM,CAACE,OAAO,EAAEC,UAAU,CAAC,GAAGtB,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAMkB,KAA0B,GAAG;IAAEG;EAAQ,CAAC;EAC9C,oBACEtB,KAAA,CAAAS,aAAA,CAACN,gBAAgB,EAAAW,QAAA;IACfC,QAAQ,EAAE,CAACR,KAAK,CAACS,OAAO,IAAI,CAACT,KAAK,CAACU,WAAY;IAC/CC,cAAc,EAAEb,wBAAyB;IACzCgB,KAAK,EAAEjB,UAAU,CAACiB,KAAK,CAAC,GAAGA,KAAK,CAACF,KAAK,CAAC,GAAGE,KAAM;IAChDG,SAAS,EAAEA,CAAA,KAAMD,UAAU,CAAC,IAAI,CAAE;IAClCE,UAAU,EAAEA,CAAA,KAAMF,UAAU,CAAC,KAAK;EAAE,GAChChB,KAAK,GAERH,UAAU,CAACS,QAAQ,CAAC,GAAGA,QAAQ,CAACM,KAAK,CAAC,GAAGN,QAAQ,CACjC;AAEvB,CAAC;AAED,eAAeP,QAAQ"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { replaceWithRegex } from '@sendbird/uikit-utils';
|
|
3
3
|
import Text from '../Text';
|
|
4
|
-
|
|
5
4
|
const RegexText = _ref => {
|
|
6
5
|
let {
|
|
7
6
|
children,
|
|
@@ -19,11 +18,11 @@ const RegexText = _ref => {
|
|
|
19
18
|
let offset = 0;
|
|
20
19
|
matchedTextsTemp.forEach((text, index) => {
|
|
21
20
|
if (typeof text === 'string' && text) {
|
|
22
|
-
const children = replaceWithRegex(text, regex, params => replacer({
|
|
21
|
+
const children = replaceWithRegex(text, regex, params => replacer({
|
|
22
|
+
...params,
|
|
23
23
|
parentProps: props,
|
|
24
24
|
keyPrefix: index + params.keyPrefix
|
|
25
25
|
}), String(patterIndex));
|
|
26
|
-
|
|
27
26
|
if (children.length > 1) {
|
|
28
27
|
matchedTexts.splice(index + offset, 1, ...children);
|
|
29
28
|
offset += children.length - 1;
|
|
@@ -33,6 +32,5 @@ const RegexText = _ref => {
|
|
|
33
32
|
});
|
|
34
33
|
return /*#__PURE__*/React.createElement(Text, props, matchedTexts);
|
|
35
34
|
};
|
|
36
|
-
|
|
37
35
|
export default RegexText;
|
|
38
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","replaceWithRegex","Text","RegexText","children","patterns","props","length","matchedTexts","forEach","patterIndex","regex","replacer","matchedTextsTemp","concat","offset","text","index","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,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","replaceWithRegex","Text","RegexText","_ref","children","patterns","props","length","createElement","Fragment","matchedTexts","forEach","_ref2","patterIndex","regex","replacer","matchedTextsTemp","concat","offset","text","index","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,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,OAAOC,IAAI,MAAqB,SAAS;AAezC,MAAMC,SAAS,GAAGC,IAAA,IAA6C;EAAA,IAA5C;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC;EAAa,CAAC,GAAAH,IAAA;EACxD,IAAIE,QAAQ,CAACE,MAAM,KAAK,CAAC,IAAI,OAAOH,QAAQ,KAAK,QAAQ,EAAE,oBAAOL,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAU,QAAA,QAAGL,QAAQ,CAAI;EAEjF,MAAMM,YAAyC,GAAG,CAACN,QAAQ,CAAC;EAE5DC,QAAQ,CAACM,OAAO,CAAC,CAAAC,KAAA,EAAsBC,WAAW,KAAK;IAAA,IAArC;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAAH,KAAA;IACnC,MAAMI,gBAAgB,GAAGN,YAAY,CAACO,MAAM,EAAE;IAC9C,IAAIC,MAAM,GAAG,CAAC;IACdF,gBAAgB,CAACL,OAAO,CAAC,CAACQ,IAAI,EAAEC,KAAK,KAAK;MACxC,IAAI,OAAOD,IAAI,KAAK,QAAQ,IAAIA,IAAI,EAAE;QACpC,MAAMf,QAAQ,GAAGJ,gBAAgB,CAC/BmB,IAAI,EACJL,KAAK,EACJO,MAAM,IAAKN,QAAQ,CAAC;UAAE,GAAGM,MAAM;UAAEC,WAAW,EAAEhB,KAAK;UAAEiB,SAAS,EAAEH,KAAK,GAAGC,MAAM,CAACE;QAAU,CAAC,CAAC,EAC5FC,MAAM,CAACX,WAAW,CAAC,CACpB;QAED,IAAIT,QAAQ,CAACG,MAAM,GAAG,CAAC,EAAE;UACvBG,YAAY,CAACe,MAAM,CAACL,KAAK,GAAGF,MAAM,EAAE,CAAC,EAAE,GAAGd,QAAQ,CAAC;UACnDc,MAAM,IAAId,QAAQ,CAACG,MAAM,GAAG,CAAC;QAC/B;MACF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,oBAAOR,KAAA,CAAAS,aAAA,CAACP,IAAI,EAAKK,KAAK,EAAGI,YAAY,CAAQ;AAC/C,CAAC;AAED,eAAeR,SAAS"}
|
|
@@ -2,7 +2,6 @@ import React, { useEffect, useRef } from 'react';
|
|
|
2
2
|
import { Animated, Platform, Pressable } from 'react-native';
|
|
3
3
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
4
4
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
5
|
-
|
|
6
5
|
const Switch = _ref => {
|
|
7
6
|
let {
|
|
8
7
|
value,
|
|
@@ -27,7 +26,6 @@ const Switch = _ref => {
|
|
|
27
26
|
animation.start();
|
|
28
27
|
return () => animation.stop();
|
|
29
28
|
}, [value]);
|
|
30
|
-
|
|
31
29
|
const createInterpolate = (offValue, onValue) => {
|
|
32
30
|
return position.interpolate({
|
|
33
31
|
inputRange: [styles.thumbOff.left, styles.thumbOn.left],
|
|
@@ -35,14 +33,11 @@ const Switch = _ref => {
|
|
|
35
33
|
extrapolate: 'clamp'
|
|
36
34
|
});
|
|
37
35
|
};
|
|
38
|
-
|
|
39
36
|
const _trackColor = createInterpolate(inactiveTrackColor ?? colors.onBackground04, trackColor ?? palette.primary200);
|
|
40
|
-
|
|
41
37
|
const _thumbColor = createInterpolate(inactiveThumbColor ?? palette.background300, thumbColor ?? select({
|
|
42
38
|
light: palette.primary400,
|
|
43
39
|
dark: palette.primary300
|
|
44
40
|
}));
|
|
45
|
-
|
|
46
41
|
return /*#__PURE__*/React.createElement(Pressable, {
|
|
47
42
|
onPress: () => onChangeValue(!value),
|
|
48
43
|
style: [styles.container]
|
|
@@ -59,7 +54,6 @@ const Switch = _ref => {
|
|
|
59
54
|
}]
|
|
60
55
|
}));
|
|
61
56
|
};
|
|
62
|
-
|
|
63
57
|
const OFFSET = {
|
|
64
58
|
W: 20,
|
|
65
59
|
H: 16
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","Animated","Platform","Pressable","createStyleSheet","useUIKitTheme","Switch","value","onChangeValue","inactiveThumbColor","inactiveTrackColor","trackColor","thumbColor","select","palette","colors","position","Value","current","animation","timing","toValue","styles","thumbOn","left","thumbOff","duration","useNativeDriver","start","stop","createInterpolate","offValue","onValue","interpolate","inputRange","outputRange","extrapolate","_trackColor","onBackground04","primary200","_thumbColor","background300","light","primary400","dark","primary300","container","track","backgroundColor","thumb","transform","translateX","OFFSET","W","H","width","height","alignItems","justifyContent","borderRadius","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","shadowOpacity"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Platform, Pressable } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype SwitchProps = React.PropsWithChildren<{\n trackColor?: string;\n thumbColor?: string;\n inactiveThumbColor?: string;\n inactiveTrackColor?: string;\n\n value: boolean;\n onChangeValue: (val: boolean) => void;\n}>;\nconst Switch = ({\n value,\n onChangeValue,\n inactiveThumbColor,\n inactiveTrackColor,\n trackColor,\n thumbColor,\n}: SwitchProps) => {\n const { select, palette, colors } = useUIKitTheme();\n const position = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n const animation = Animated.timing(position, {\n toValue: value ? styles.thumbOn.left : styles.thumbOff.left,\n duration: 150,\n useNativeDriver: false,\n });\n animation.start();\n return () => animation.stop();\n }, [value]);\n\n const createInterpolate = <T extends string>(offValue: T, onValue: T) => {\n return position.interpolate({\n inputRange: [styles.thumbOff.left, styles.thumbOn.left],\n outputRange: [offValue, onValue],\n extrapolate: 'clamp',\n });\n };\n const _trackColor = createInterpolate(inactiveTrackColor ?? colors.onBackground04, trackColor ?? palette.primary200);\n const _thumbColor = createInterpolate(\n inactiveThumbColor ?? palette.background300,\n thumbColor ?? select({ light: palette.primary400, dark: palette.primary300 }),\n );\n\n return (\n <Pressable onPress={() => onChangeValue(!value)} style={[styles.container]}>\n <Animated.View style={[styles.track, { backgroundColor: _trackColor }]} />\n <Animated.View style={[styles.thumb, { backgroundColor: _thumbColor, transform: [{ translateX: position }] }]} />\n </Pressable>\n );\n};\n\nconst OFFSET = { W: 20, H: 16 };\nconst styles = createStyleSheet({\n container: {\n width: OFFSET.W + OFFSET.H,\n height: OFFSET.H,\n alignItems: 'center',\n justifyContent: 'center',\n },\n track: {\n width: '100%',\n height: '100%',\n borderRadius: OFFSET.H / 2,\n position: 'absolute',\n },\n thumb: {\n width: OFFSET.W,\n height: OFFSET.W,\n borderRadius: OFFSET.W / 2,\n ...Platform.select({\n android: {\n elevation: 2,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 1,\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.4,\n },\n }),\n },\n thumbOn: {\n left: OFFSET.H / 2,\n },\n thumbOff: {\n left: -OFFSET.H / 2,\n },\n});\n\nexport default Switch;\n"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","Animated","Platform","Pressable","createStyleSheet","useUIKitTheme","Switch","_ref","value","onChangeValue","inactiveThumbColor","inactiveTrackColor","trackColor","thumbColor","select","palette","colors","position","Value","current","animation","timing","toValue","styles","thumbOn","left","thumbOff","duration","useNativeDriver","start","stop","createInterpolate","offValue","onValue","interpolate","inputRange","outputRange","extrapolate","_trackColor","onBackground04","primary200","_thumbColor","background300","light","primary400","dark","primary300","createElement","onPress","style","container","View","track","backgroundColor","thumb","transform","translateX","OFFSET","W","H","width","height","alignItems","justifyContent","borderRadius","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","shadowOpacity"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Platform, Pressable } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype SwitchProps = React.PropsWithChildren<{\n trackColor?: string;\n thumbColor?: string;\n inactiveThumbColor?: string;\n inactiveTrackColor?: string;\n\n value: boolean;\n onChangeValue: (val: boolean) => void;\n}>;\nconst Switch = ({\n value,\n onChangeValue,\n inactiveThumbColor,\n inactiveTrackColor,\n trackColor,\n thumbColor,\n}: SwitchProps) => {\n const { select, palette, colors } = useUIKitTheme();\n const position = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n const animation = Animated.timing(position, {\n toValue: value ? styles.thumbOn.left : styles.thumbOff.left,\n duration: 150,\n useNativeDriver: false,\n });\n animation.start();\n return () => animation.stop();\n }, [value]);\n\n const createInterpolate = <T extends string>(offValue: T, onValue: T) => {\n return position.interpolate({\n inputRange: [styles.thumbOff.left, styles.thumbOn.left],\n outputRange: [offValue, onValue],\n extrapolate: 'clamp',\n });\n };\n const _trackColor = createInterpolate(inactiveTrackColor ?? colors.onBackground04, trackColor ?? palette.primary200);\n const _thumbColor = createInterpolate(\n inactiveThumbColor ?? palette.background300,\n thumbColor ?? select({ light: palette.primary400, dark: palette.primary300 }),\n );\n\n return (\n <Pressable onPress={() => onChangeValue(!value)} style={[styles.container]}>\n <Animated.View style={[styles.track, { backgroundColor: _trackColor }]} />\n <Animated.View style={[styles.thumb, { backgroundColor: _thumbColor, transform: [{ translateX: position }] }]} />\n </Pressable>\n );\n};\n\nconst OFFSET = { W: 20, H: 16 };\nconst styles = createStyleSheet({\n container: {\n width: OFFSET.W + OFFSET.H,\n height: OFFSET.H,\n alignItems: 'center',\n justifyContent: 'center',\n },\n track: {\n width: '100%',\n height: '100%',\n borderRadius: OFFSET.H / 2,\n position: 'absolute',\n },\n thumb: {\n width: OFFSET.W,\n height: OFFSET.W,\n borderRadius: OFFSET.W / 2,\n ...Platform.select({\n android: {\n elevation: 2,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 1,\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.4,\n },\n }),\n },\n thumbOn: {\n left: OFFSET.H / 2,\n },\n thumbOff: {\n left: -OFFSET.H / 2,\n },\n});\n\nexport default Switch;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,cAAc;AAE5D,OAAOC,gBAAgB,MAAM,+BAA+B;AAC5D,OAAOC,aAAa,MAAM,2BAA2B;AAWrD,MAAMC,MAAM,GAAGC,IAAA,IAOI;EAAA,IAPH;IACdC,KAAK;IACLC,aAAa;IACbC,kBAAkB;IAClBC,kBAAkB;IAClBC,UAAU;IACVC;EACW,CAAC,GAAAN,IAAA;EACZ,MAAM;IAAEO,MAAM;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGX,aAAa,EAAE;EACnD,MAAMY,QAAQ,GAAGjB,MAAM,CAAC,IAAIC,QAAQ,CAACiB,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEtDpB,SAAS,CAAC,MAAM;IACd,MAAMqB,SAAS,GAAGnB,QAAQ,CAACoB,MAAM,CAACJ,QAAQ,EAAE;MAC1CK,OAAO,EAAEd,KAAK,GAAGe,MAAM,CAACC,OAAO,CAACC,IAAI,GAAGF,MAAM,CAACG,QAAQ,CAACD,IAAI;MAC3DE,QAAQ,EAAE,GAAG;MACbC,eAAe,EAAE;IACnB,CAAC,CAAC;IACFR,SAAS,CAACS,KAAK,EAAE;IACjB,OAAO,MAAMT,SAAS,CAACU,IAAI,EAAE;EAC/B,CAAC,EAAE,CAACtB,KAAK,CAAC,CAAC;EAEX,MAAMuB,iBAAiB,GAAGA,CAAmBC,QAAW,EAAEC,OAAU,KAAK;IACvE,OAAOhB,QAAQ,CAACiB,WAAW,CAAC;MAC1BC,UAAU,EAAE,CAACZ,MAAM,CAACG,QAAQ,CAACD,IAAI,EAAEF,MAAM,CAACC,OAAO,CAACC,IAAI,CAAC;MACvDW,WAAW,EAAE,CAACJ,QAAQ,EAAEC,OAAO,CAAC;MAChCI,WAAW,EAAE;IACf,CAAC,CAAC;EACJ,CAAC;EACD,MAAMC,WAAW,GAAGP,iBAAiB,CAACpB,kBAAkB,IAAIK,MAAM,CAACuB,cAAc,EAAE3B,UAAU,IAAIG,OAAO,CAACyB,UAAU,CAAC;EACpH,MAAMC,WAAW,GAAGV,iBAAiB,CACnCrB,kBAAkB,IAAIK,OAAO,CAAC2B,aAAa,EAC3C7B,UAAU,IAAIC,MAAM,CAAC;IAAE6B,KAAK,EAAE5B,OAAO,CAAC6B,UAAU;IAAEC,IAAI,EAAE9B,OAAO,CAAC+B;EAAW,CAAC,CAAC,CAC9E;EAED,oBACEhD,KAAA,CAAAiD,aAAA,CAAC5C,SAAS;IAAC6C,OAAO,EAAEA,CAAA,KAAMvC,aAAa,CAAC,CAACD,KAAK,CAAE;IAACyC,KAAK,EAAE,CAAC1B,MAAM,CAAC2B,SAAS;EAAE,gBACzEpD,KAAA,CAAAiD,aAAA,CAAC9C,QAAQ,CAACkD,IAAI;IAACF,KAAK,EAAE,CAAC1B,MAAM,CAAC6B,KAAK,EAAE;MAAEC,eAAe,EAAEf;IAAY,CAAC;EAAE,EAAG,eAC1ExC,KAAA,CAAAiD,aAAA,CAAC9C,QAAQ,CAACkD,IAAI;IAACF,KAAK,EAAE,CAAC1B,MAAM,CAAC+B,KAAK,EAAE;MAAED,eAAe,EAAEZ,WAAW;MAAEc,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEvC;MAAS,CAAC;IAAE,CAAC;EAAE,EAAG,CACvG;AAEhB,CAAC;AAED,MAAMwC,MAAM,GAAG;EAAEC,CAAC,EAAE,EAAE;EAAEC,CAAC,EAAE;AAAG,CAAC;AAC/B,MAAMpC,MAAM,GAAGnB,gBAAgB,CAAC;EAC9B8C,SAAS,EAAE;IACTU,KAAK,EAAEH,MAAM,CAACC,CAAC,GAAGD,MAAM,CAACE,CAAC;IAC1BE,MAAM,EAAEJ,MAAM,CAACE,CAAC;IAChBG,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDX,KAAK,EAAE;IACLQ,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdG,YAAY,EAAEP,MAAM,CAACE,CAAC,GAAG,CAAC;IAC1B1C,QAAQ,EAAE;EACZ,CAAC;EACDqC,KAAK,EAAE;IACLM,KAAK,EAAEH,MAAM,CAACC,CAAC;IACfG,MAAM,EAAEJ,MAAM,CAACC,CAAC;IAChBM,YAAY,EAAEP,MAAM,CAACC,CAAC,GAAG,CAAC;IAC1B,GAAGxD,QAAQ,CAACY,MAAM,CAAC;MACjBmD,OAAO,EAAE;QACPC,SAAS,EAAE;MACb,CAAC;MACDC,GAAG,EAAE;QACHC,WAAW,EAAE,OAAO;QACpBC,YAAY,EAAE,CAAC;QACfC,YAAY,EAAE;UAAEV,KAAK,EAAE,CAAC;UAAEC,MAAM,EAAE;QAAE,CAAC;QACrCU,aAAa,EAAE;MACjB;IACF,CAAC;EACH,CAAC;EACD/C,OAAO,EAAE;IACPC,IAAI,EAAEgC,MAAM,CAACE,CAAC,GAAG;EACnB,CAAC;EACDjC,QAAQ,EAAE;IACRD,IAAI,EAAE,CAACgC,MAAM,CAACE,CAAC,GAAG;EACpB;AACF,CAAC,CAAC;AAEF,eAAerD,MAAM"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { Text as RNText } from 'react-native';
|
|
5
4
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
6
|
-
|
|
7
5
|
const Text = _ref => {
|
|
8
6
|
let {
|
|
9
7
|
children,
|
|
@@ -21,7 +19,6 @@ const Text = _ref => {
|
|
|
21
19
|
}, typoStyle, style]
|
|
22
20
|
}, props), children);
|
|
23
21
|
};
|
|
24
|
-
|
|
25
22
|
const useTypographyFilter = _ref2 => {
|
|
26
23
|
let {
|
|
27
24
|
h1,
|
|
@@ -54,6 +51,5 @@ const useTypographyFilter = _ref2 => {
|
|
|
54
51
|
if (caption4) return typography.caption4;
|
|
55
52
|
return {};
|
|
56
53
|
};
|
|
57
|
-
|
|
58
54
|
export default Text;
|
|
59
55
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","RNText","useUIKitTheme","children","color","style","props","colors","typoStyle","useTypographyFilter","text","h1","h2","subtitle1","subtitle2","body1","body2","body3","button","caption1","caption2","caption3","caption4","typography"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Text as RNText, TextProps as RNTextProps } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { TypoName, UIKitTheme } from '../../types';\n\ntype TypographyProps = Partial<Record<TypoName, boolean>>;\nexport type TextProps = RNTextProps & TypographyProps & { color?: ((colors: UIKitTheme['colors']) => string) | string };\nconst Text = ({ children, color, style, ...props }: TextProps) => {\n const { colors } = useUIKitTheme();\n const typoStyle = useTypographyFilter(props);\n return (\n <RNText\n style={[{ color: typeof color === 'string' ? color : color?.(colors) ?? colors.text }, typoStyle, style]}\n {...props}\n >\n {children}\n </RNText>\n );\n};\n\nconst useTypographyFilter = ({\n h1,\n h2,\n subtitle1,\n subtitle2,\n body1,\n body2,\n body3,\n button,\n caption1,\n caption2,\n caption3,\n caption4,\n}: TypographyProps) => {\n const { typography } = useUIKitTheme();\n if (h1) return typography.h1;\n if (h2) return typography.h2;\n if (subtitle1) return typography.subtitle1;\n if (subtitle2) return typography.subtitle2;\n if (body1) return typography.body1;\n if (body2) return typography.body2;\n if (body3) return typography.body3;\n if (button) return typography.button;\n if (caption1) return typography.caption1;\n if (caption2) return typography.caption2;\n if (caption3) return typography.caption3;\n if (caption4) return typography.caption4;\n return {};\n};\n\nexport default Text;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["React","Text","RNText","useUIKitTheme","_ref","children","color","style","props","colors","typoStyle","useTypographyFilter","createElement","_extends","text","_ref2","h1","h2","subtitle1","subtitle2","body1","body2","body3","button","caption1","caption2","caption3","caption4","typography"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Text as RNText, TextProps as RNTextProps } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { TypoName, UIKitTheme } from '../../types';\n\ntype TypographyProps = Partial<Record<TypoName, boolean>>;\nexport type TextProps = RNTextProps & TypographyProps & { color?: ((colors: UIKitTheme['colors']) => string) | string };\nconst Text = ({ children, color, style, ...props }: TextProps) => {\n const { colors } = useUIKitTheme();\n const typoStyle = useTypographyFilter(props);\n return (\n <RNText\n style={[{ color: typeof color === 'string' ? color : color?.(colors) ?? colors.text }, typoStyle, style]}\n {...props}\n >\n {children}\n </RNText>\n );\n};\n\nconst useTypographyFilter = ({\n h1,\n h2,\n subtitle1,\n subtitle2,\n body1,\n body2,\n body3,\n button,\n caption1,\n caption2,\n caption3,\n caption4,\n}: TypographyProps) => {\n const { typography } = useUIKitTheme();\n if (h1) return typography.h1;\n if (h2) return typography.h2;\n if (subtitle1) return typography.subtitle1;\n if (subtitle2) return typography.subtitle2;\n if (body1) return typography.body1;\n if (body2) return typography.body2;\n if (body3) return typography.body3;\n if (button) return typography.button;\n if (caption1) return typography.caption1;\n if (caption2) return typography.caption2;\n if (caption3) return typography.caption3;\n if (caption4) return typography.caption4;\n return {};\n};\n\nexport default Text;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,IAAIC,MAAM,QAAkC,cAAc;AAEvE,OAAOC,aAAa,MAAM,2BAA2B;AAKrD,MAAMF,IAAI,GAAGG,IAAA,IAAqD;EAAA,IAApD;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,KAAK;IAAE,GAAGC;EAAiB,CAAC,GAAAJ,IAAA;EAC3D,MAAM;IAAEK;EAAO,CAAC,GAAGN,aAAa,EAAE;EAClC,MAAMO,SAAS,GAAGC,mBAAmB,CAACH,KAAK,CAAC;EAC5C,oBACER,KAAA,CAAAY,aAAA,CAACV,MAAM,EAAAW,QAAA;IACLN,KAAK,EAAE,CAAC;MAAED,KAAK,EAAE,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGG,MAAM,CAAC,KAAIA,MAAM,CAACK;IAAK,CAAC,EAAEJ,SAAS,EAAEH,KAAK;EAAE,GACrGC,KAAK,GAERH,QAAQ,CACF;AAEb,CAAC;AAED,MAAMM,mBAAmB,GAAGI,KAAA,IAaL;EAAA,IAbM;IAC3BC,EAAE;IACFC,EAAE;IACFC,SAAS;IACTC,SAAS;IACTC,KAAK;IACLC,KAAK;IACLC,KAAK;IACLC,MAAM;IACNC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC;EACe,CAAC,GAAAZ,KAAA;EAChB,MAAM;IAAEa;EAAW,CAAC,GAAGzB,aAAa,EAAE;EACtC,IAAIa,EAAE,EAAE,OAAOY,UAAU,CAACZ,EAAE;EAC5B,IAAIC,EAAE,EAAE,OAAOW,UAAU,CAACX,EAAE;EAC5B,IAAIC,SAAS,EAAE,OAAOU,UAAU,CAACV,SAAS;EAC1C,IAAIC,SAAS,EAAE,OAAOS,UAAU,CAACT,SAAS;EAC1C,IAAIC,KAAK,EAAE,OAAOQ,UAAU,CAACR,KAAK;EAClC,IAAIC,KAAK,EAAE,OAAOO,UAAU,CAACP,KAAK;EAClC,IAAIC,KAAK,EAAE,OAAOM,UAAU,CAACN,KAAK;EAClC,IAAIC,MAAM,EAAE,OAAOK,UAAU,CAACL,MAAM;EACpC,IAAIC,QAAQ,EAAE,OAAOI,UAAU,CAACJ,QAAQ;EACxC,IAAIC,QAAQ,EAAE,OAAOG,UAAU,CAACH,QAAQ;EACxC,IAAIC,QAAQ,EAAE,OAAOE,UAAU,CAACF,QAAQ;EACxC,IAAIC,QAAQ,EAAE,OAAOC,UAAU,CAACD,QAAQ;EACxC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,eAAe1B,IAAI"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { TextInput as RNTextInput } from 'react-native';
|
|
5
4
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","TextInput","RNTextInput","createStyleSheet","useUIKitTheme","forwardRef","ref","children","style","variant","editable","props","typography","colors","variantStyle","inputStyle","active","disabled","underlineStyle","borderBottomWidth","borderBottomColor","highlight","placeholder","body3","styles","input","color","text","backgroundColor","background","paddingVertical","paddingHorizontal"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TextInput as RNTextInput, TextInputProps } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { UIKitTheme } from '../../types';\n\ntype Props = { variant?: keyof UIKitTheme['colors']['ui']['input'] } & TextInputProps;\nconst TextInput = React.forwardRef<RNTextInput, Props>(function TextInput(\n { children, style, variant = 'default', editable = true, ...props },\n ref,\n) {\n const { typography, colors } = useUIKitTheme();\n\n const variantStyle = colors['ui']['input'][variant];\n const inputStyle = editable ? variantStyle.active : variantStyle.disabled;\n const underlineStyle = variant === 'underline' && { borderBottomWidth: 2, borderBottomColor: inputStyle.highlight };\n\n return (\n <RNTextInput\n ref={ref}\n editable={editable}\n selectionColor={inputStyle.highlight}\n placeholderTextColor={inputStyle.placeholder}\n style={[\n typography.body3,\n styles.input,\n { color: inputStyle.text, backgroundColor: inputStyle.background },\n underlineStyle,\n style,\n ]}\n {...props}\n >\n {children}\n </RNTextInput>\n );\n});\n\nconst styles = createStyleSheet({\n input: {\n paddingVertical: 8,\n paddingHorizontal: 16,\n },\n});\n\nexport default TextInput;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["React","TextInput","RNTextInput","createStyleSheet","useUIKitTheme","forwardRef","_ref","ref","children","style","variant","editable","props","typography","colors","variantStyle","inputStyle","active","disabled","underlineStyle","borderBottomWidth","borderBottomColor","highlight","createElement","_extends","selectionColor","placeholderTextColor","placeholder","body3","styles","input","color","text","backgroundColor","background","paddingVertical","paddingHorizontal"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TextInput as RNTextInput, TextInputProps } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { UIKitTheme } from '../../types';\n\ntype Props = { variant?: keyof UIKitTheme['colors']['ui']['input'] } & TextInputProps;\nconst TextInput = React.forwardRef<RNTextInput, Props>(function TextInput(\n { children, style, variant = 'default', editable = true, ...props },\n ref,\n) {\n const { typography, colors } = useUIKitTheme();\n\n const variantStyle = colors['ui']['input'][variant];\n const inputStyle = editable ? variantStyle.active : variantStyle.disabled;\n const underlineStyle = variant === 'underline' && { borderBottomWidth: 2, borderBottomColor: inputStyle.highlight };\n\n return (\n <RNTextInput\n ref={ref}\n editable={editable}\n selectionColor={inputStyle.highlight}\n placeholderTextColor={inputStyle.placeholder}\n style={[\n typography.body3,\n styles.input,\n { color: inputStyle.text, backgroundColor: inputStyle.background },\n underlineStyle,\n style,\n ]}\n {...props}\n >\n {children}\n </RNTextInput>\n );\n});\n\nconst styles = createStyleSheet({\n input: {\n paddingVertical: 8,\n paddingHorizontal: 16,\n },\n});\n\nexport default TextInput;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,IAAIC,WAAW,QAAwB,cAAc;AAEvE,OAAOC,gBAAgB,MAAM,+BAA+B;AAC5D,OAAOC,aAAa,MAAM,2BAA2B;AAIrD,MAAMH,SAAS,gBAAGD,KAAK,CAACK,UAAU,CAAqB,SAASJ,SAASA,CAAAK,IAAA,EAEvEC,GAAG,EACH;EAAA,IAFA;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,OAAO,GAAG,SAAS;IAAEC,QAAQ,GAAG,IAAI;IAAE,GAAGC;EAAM,CAAC,GAAAN,IAAA;EAGnE,MAAM;IAAEO,UAAU;IAAEC;EAAO,CAAC,GAAGV,aAAa,EAAE;EAE9C,MAAMW,YAAY,GAAGD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAACJ,OAAO,CAAC;EACnD,MAAMM,UAAU,GAAGL,QAAQ,GAAGI,YAAY,CAACE,MAAM,GAAGF,YAAY,CAACG,QAAQ;EACzE,MAAMC,cAAc,GAAGT,OAAO,KAAK,WAAW,IAAI;IAAEU,iBAAiB,EAAE,CAAC;IAAEC,iBAAiB,EAAEL,UAAU,CAACM;EAAU,CAAC;EAEnH,oBACEtB,KAAA,CAAAuB,aAAA,CAACrB,WAAW,EAAAsB,QAAA;IACVjB,GAAG,EAAEA,GAAI;IACTI,QAAQ,EAAEA,QAAS;IACnBc,cAAc,EAAET,UAAU,CAACM,SAAU;IACrCI,oBAAoB,EAAEV,UAAU,CAACW,WAAY;IAC7ClB,KAAK,EAAE,CACLI,UAAU,CAACe,KAAK,EAChBC,MAAM,CAACC,KAAK,EACZ;MAAEC,KAAK,EAAEf,UAAU,CAACgB,IAAI;MAAEC,eAAe,EAAEjB,UAAU,CAACkB;IAAW,CAAC,EAClEf,cAAc,EACdV,KAAK;EACL,GACEG,KAAK,GAERJ,QAAQ,CACG;AAElB,CAAC,CAAC;AAEF,MAAMqB,MAAM,GAAG1B,gBAAgB,CAAC;EAC9B2B,KAAK,EAAE;IACLK,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAEF,eAAenC,SAAS"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { Linking } from 'react-native';
|
|
5
4
|
import { Logger, replaceUrlAsComponents } from '@sendbird/uikit-utils';
|
|
6
5
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
7
6
|
import Text from '../Text';
|
|
8
|
-
|
|
9
7
|
const openUrl = (url, httpProtocol) => {
|
|
10
8
|
const targetUrl = httpProtocol ? url : 'https://' + url;
|
|
11
9
|
Linking.openURL(targetUrl).catch(err => Logger.warn('[URLParsedText]', 'Cannot open url', err));
|
|
12
10
|
};
|
|
13
|
-
|
|
14
11
|
const URLParsedText = _ref => {
|
|
15
12
|
let {
|
|
16
13
|
children,
|
|
@@ -28,12 +25,10 @@ const URLParsedText = _ref => {
|
|
|
28
25
|
}), url);
|
|
29
26
|
}, strict);
|
|
30
27
|
}
|
|
31
|
-
|
|
32
28
|
return child;
|
|
33
29
|
});
|
|
34
30
|
return /*#__PURE__*/React.createElement(Text, props, parsedChildren);
|
|
35
31
|
};
|
|
36
|
-
|
|
37
32
|
const styles = createStyleSheet({
|
|
38
33
|
url: {
|
|
39
34
|
textDecorationLine: 'underline'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Linking","Logger","replaceUrlAsComponents","createStyleSheet","Text","openUrl","url","httpProtocol","targetUrl","openURL","catch","err","warn","URLParsedText","children","onPressUrl","strict","props","parsedChildren","Children","map","toArray","child","startsWith","style","styles","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":"
|
|
1
|
+
{"version":3,"names":["React","Linking","Logger","replaceUrlAsComponents","createStyleSheet","Text","openUrl","url","httpProtocol","targetUrl","openURL","catch","err","warn","URLParsedText","_ref","children","onPressUrl","strict","props","parsedChildren","Children","map","toArray","child","createElement","_extends","suppressHighlighting","onPress","startsWith","style","styles","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,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,cAAc;AAEtC,SAASC,MAAM,EAAEC,sBAAsB,QAAQ,uBAAuB;AAEtE,OAAOC,gBAAgB,MAAM,+BAA+B;AAE5D,OAAOC,IAAI,MAAM,SAAS;AAI1B,MAAMC,OAAmB,GAAGA,CAACC,GAAG,EAAEC,YAAY,KAAK;EACjD,MAAMC,SAAS,GAAGD,YAAY,GAAGD,GAAG,GAAG,UAAU,GAAGA,GAAG;EACvDN,OAAO,CAACS,OAAO,CAACD,SAAS,CAAC,CAACE,KAAK,CAAEC,GAAG,IAAKV,MAAM,CAACW,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAED,GAAG,CAAC,CAAC;AACnG,CAAC;AAMD,MAAME,aAAa,GAAGC,IAAA,IAAiE;EAAA,IAAhE;IAAEC,QAAQ;IAAEC,UAAU,GAAGX,OAAO;IAAEY,MAAM;IAAE,GAAGC;EAAa,CAAC,GAAAJ,IAAA;EAChF,MAAMK,cAAc,GAAGpB,KAAK,CAACqB,QAAQ,CAACC,GAAG,CAACtB,KAAK,CAACqB,QAAQ,CAACE,OAAO,CAACP,QAAQ,CAAC,EAAGQ,KAAK,IAAK;IACrF,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOrB,sBAAsB,CAC3BqB,KAAK,EACJjB,GAAG,IAAK;QACP,oBACEP,KAAA,CAAAyB,aAAA,CAACpB,IAAI,EAAAqB,QAAA,KACCP,KAAK;UACTQ,oBAAoB;UACpBC,OAAO,EAAEA,CAAA,KAAMX,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGV,GAAG,EAAEA,GAAG,CAACsB,UAAU,CAAC,MAAM,CAAC,CAAE;UACzDC,KAAK,EAAE,CAACX,KAAK,CAACW,KAAK,EAAEC,MAAM,CAACxB,GAAG;QAAE,IAEhCA,GAAG,CACC;MAEX,CAAC,EACDW,MAAM,CACP;IACH;IAEA,OAAOM,KAAK;EACd,CAAC,CAAC;EAEF,oBAAOxB,KAAA,CAAAyB,aAAA,CAACpB,IAAI,EAAKc,KAAK,EAAGC,cAAc,CAAQ;AACjD,CAAC;AACD,MAAMW,MAAM,GAAG3B,gBAAgB,CAAC;EAC9BG,GAAG,EAAE;IAAEyB,kBAAkB,EAAE;EAAY;AACzC,CAAC,CAAC;AACF,eAAelB,aAAa"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Assets **/
|
|
2
2
|
export { default as IconAssets } from './assets/icon';
|
|
3
|
-
/** Component **/
|
|
4
3
|
|
|
4
|
+
/** Component **/
|
|
5
5
|
export { default as Box } from './components/Box';
|
|
6
6
|
export { default as Divider } from './components/Divider';
|
|
7
7
|
export { default as Icon } from './components/Icon';
|
|
@@ -14,8 +14,8 @@ export { default as Switch } from './components/Switch';
|
|
|
14
14
|
export { default as Text } from './components/Text';
|
|
15
15
|
export { default as TextInput } from './components/TextInput';
|
|
16
16
|
export { default as URLParsedText } from './components/URLParsedText';
|
|
17
|
-
/** UI **/
|
|
18
17
|
|
|
18
|
+
/** UI **/
|
|
19
19
|
export { default as ActionMenu } from './ui/ActionMenu';
|
|
20
20
|
export { default as Alert } from './ui/Alert';
|
|
21
21
|
export { default as Avatar } from './ui/Avatar';
|
|
@@ -35,8 +35,8 @@ export { default as Placeholder } from './ui/Placeholder';
|
|
|
35
35
|
export { default as ProfileCard } from './ui/ProfileCard';
|
|
36
36
|
export { default as Prompt } from './ui/Prompt';
|
|
37
37
|
export { default as Toast, useToast, ToastProvider } from './ui/Toast';
|
|
38
|
-
/** Styles **/
|
|
39
38
|
|
|
39
|
+
/** Styles **/
|
|
40
40
|
export { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';
|
|
41
41
|
export { default as createScaleFactor } from './styles/createScaleFactor';
|
|
42
42
|
export { default as createStyleSheet } from './styles/createStyleSheet';
|
|
@@ -44,8 +44,8 @@ export { default as createTypography } from './styles/createTypography';
|
|
|
44
44
|
export { default as getDefaultHeaderHeight } from './styles/getDefaultHeaderHeight';
|
|
45
45
|
export { HeaderStyleContext, HeaderStyleProvider } from './styles/HeaderStyleContext';
|
|
46
46
|
export { default as useHeaderStyle } from './styles/useHeaderStyle';
|
|
47
|
-
/** Theme **/
|
|
48
47
|
|
|
48
|
+
/** Theme **/
|
|
49
49
|
export { default as createTheme } from './theme/createTheme';
|
|
50
50
|
export { default as DarkUIKitTheme } from './theme/DarkUIKitTheme';
|
|
51
51
|
export { default as LightUIKitTheme } from './theme/LightUIKitTheme';
|
|
@@ -53,5 +53,6 @@ export { default as Palette } from './theme/Palette';
|
|
|
53
53
|
export { default as UIKitThemeContext } from './theme/UIKitThemeContext';
|
|
54
54
|
export { default as UIKitThemeProvider } from './theme/UIKitThemeProvider';
|
|
55
55
|
export { default as useUIKitTheme } from './theme/useUIKitTheme';
|
|
56
|
+
|
|
56
57
|
/** Types **/
|
|
57
58
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","IconAssets","Box","Divider","Icon","Image","ImageWithPlaceholder","Modal","PressBox","RegexText","Switch","Text","TextInput","URLParsedText","ActionMenu","Alert","Avatar","Badge","BottomSheet","Button","ChannelFrozenBanner","DialogProvider","useActionMenu","useAlert","usePrompt","useBottomSheet","GroupChannelPreview","Header","LoadingSpinner","MenuBar","OpenChannelMessage","OpenChannelPreview","OutlinedButton","Placeholder","ProfileCard","Prompt","Toast","useToast","ToastProvider","createSelectByColorScheme","createScaleFactor","createStyleSheet","createTypography","getDefaultHeaderHeight","HeaderStyleContext","HeaderStyleProvider","useHeaderStyle","createTheme","DarkUIKitTheme","LightUIKitTheme","Palette","UIKitThemeContext","UIKitThemeProvider","useUIKitTheme"],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Box } from './components/Box';\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as ImageWithPlaceholder } from './components/ImageWithPlaceholder';\nexport { default as Modal } from './components/Modal';\nexport { default as PressBox } from './components/PressBox';\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 } from './ui/MenuBar';\nexport type { MenuBarProps } from './ui/MenuBar';\nexport { default as OpenChannelMessage } from './ui/OpenChannelMessage';\nexport type { OpenChannelMessageProps } from './ui/OpenChannelMessage';\nexport { default as OpenChannelPreview } from './ui/OpenChannelPreview';\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":"AAAA;AACA,SAASA,OAAO,IAAIC,
|
|
1
|
+
{"version":3,"names":["default","IconAssets","Box","Divider","Icon","Image","ImageWithPlaceholder","Modal","PressBox","RegexText","Switch","Text","TextInput","URLParsedText","ActionMenu","Alert","Avatar","Badge","BottomSheet","Button","ChannelFrozenBanner","DialogProvider","useActionMenu","useAlert","usePrompt","useBottomSheet","GroupChannelPreview","Header","LoadingSpinner","MenuBar","OpenChannelMessage","OpenChannelPreview","OutlinedButton","Placeholder","ProfileCard","Prompt","Toast","useToast","ToastProvider","createSelectByColorScheme","createScaleFactor","createStyleSheet","createTypography","getDefaultHeaderHeight","HeaderStyleContext","HeaderStyleProvider","useHeaderStyle","createTheme","DarkUIKitTheme","LightUIKitTheme","Palette","UIKitThemeContext","UIKitThemeProvider","useUIKitTheme"],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Box } from './components/Box';\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as ImageWithPlaceholder } from './components/ImageWithPlaceholder';\nexport { default as Modal } from './components/Modal';\nexport { default as PressBox } from './components/PressBox';\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 } from './ui/MenuBar';\nexport type { MenuBarProps } from './ui/MenuBar';\nexport { default as OpenChannelMessage } from './ui/OpenChannelMessage';\nexport type { OpenChannelMessageProps } from './ui/OpenChannelMessage';\nexport { default as OpenChannelPreview } from './ui/OpenChannelPreview';\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":"AAAA;AACA,SAASA,OAAO,IAAIC,UAAU,QAAQ,eAAe;;AAErD;AACA,SAASD,OAAO,IAAIE,GAAG,QAAQ,kBAAkB;AACjD,SAASF,OAAO,IAAIG,OAAO,QAAQ,sBAAsB;AACzD,SAASH,OAAO,IAAII,IAAI,QAAQ,mBAAmB;AACnD,SAASJ,OAAO,IAAIK,KAAK,QAAQ,oBAAoB;AACrD,SAASL,OAAO,IAAIM,oBAAoB,QAAQ,mCAAmC;AACnF,SAASN,OAAO,IAAIO,KAAK,QAAQ,oBAAoB;AACrD,SAASP,OAAO,IAAIQ,QAAQ,QAAQ,uBAAuB;AAC3D,SAASR,OAAO,IAAIS,SAAS,QAAQ,wBAAwB;AAC7D,SAAST,OAAO,IAAIU,MAAM,QAAQ,qBAAqB;AACvD,SAASV,OAAO,IAAIW,IAAI,QAAQ,mBAAmB;AACnD,SAASX,OAAO,IAAIY,SAAS,QAAQ,wBAAwB;AAC7D,SAASZ,OAAO,IAAIa,aAAa,QAAQ,4BAA4B;;AAErE;AACA,SAASb,OAAO,IAAIc,UAAU,QAAQ,iBAAiB;AACvD,SAASd,OAAO,IAAIe,KAAK,QAAQ,YAAY;AAC7C,SAASf,OAAO,IAAIgB,MAAM,QAAQ,aAAa;AAC/C,SAAShB,OAAO,IAAIiB,KAAK,QAAQ,YAAY;AAC7C,SAASjB,OAAO,IAAIkB,WAAW,QAAQ,kBAAkB;AACzD,SAASlB,OAAO,IAAImB,MAAM,QAAQ,aAAa;AAC/C,SAASnB,OAAO,IAAIoB,mBAAmB,QAAQ,0BAA0B;AACzE,SAASC,cAAc,EAAEC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,cAAc,QAAQ,aAAa;AAChG,SAASzB,OAAO,IAAI0B,mBAAmB,QAAQ,0BAA0B;AACzE,SAAS1B,OAAO,IAAI2B,MAAM,QAAQ,aAAa;AAC/C,SAAS3B,OAAO,IAAI4B,cAAc,QAAQ,qBAAqB;AAC/D,SAAS5B,OAAO,IAAI6B,OAAO,QAAQ,cAAc;AAEjD,SAAS7B,OAAO,IAAI8B,kBAAkB,QAAQ,yBAAyB;AAEvE,SAAS9B,OAAO,IAAI+B,kBAAkB,QAAQ,yBAAyB;AACvE,SAAS/B,OAAO,IAAIgC,cAAc,QAAQ,qBAAqB;AAC/D,SAAShC,OAAO,IAAIiC,WAAW,QAAQ,kBAAkB;AACzD,SAASjC,OAAO,IAAIkC,WAAW,QAAQ,kBAAkB;AACzD,SAASlC,OAAO,IAAImC,MAAM,QAAQ,aAAa;AAC/C,SAASnC,OAAO,IAAIoC,KAAK,EAAEC,QAAQ,EAAEC,aAAa,QAAQ,YAAY;;AAEtE;AACA,SAAStC,OAAO,IAAIuC,yBAAyB,QAAQ,oCAAoC;AACzF,SAASvC,OAAO,IAAIwC,iBAAiB,QAAQ,4BAA4B;AACzE,SAASxC,OAAO,IAAIyC,gBAAgB,QAAQ,2BAA2B;AACvE,SAASzC,OAAO,IAAI0C,gBAAgB,QAAQ,2BAA2B;AACvE,SAAS1C,OAAO,IAAI2C,sBAAsB,QAAQ,iCAAiC;AACnF,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,6BAA6B;AACrF,SAAS7C,OAAO,IAAI8C,cAAc,QAAQ,yBAAyB;;AAEnE;AACA,SAAS9C,OAAO,IAAI+C,WAAW,QAAQ,qBAAqB;AAC5D,SAAS/C,OAAO,IAAIgD,cAAc,QAAQ,wBAAwB;AAClE,SAAShD,OAAO,IAAIiD,eAAe,QAAQ,yBAAyB;AACpE,SAASjD,OAAO,IAAIkD,OAAO,QAAQ,iBAAiB;AACpD,SAASlD,OAAO,IAAImD,iBAAiB,QAAQ,2BAA2B;AACxE,SAASnD,OAAO,IAAIoD,kBAAkB,QAAQ,4BAA4B;AAC1E,SAASpD,OAAO,IAAIqD,aAAa,QAAQ,uBAAuB;;AAEhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StatusBar","useWindowDimensions","useSafeAreaInsets","getDefaultHeaderHeight","HeaderStyleContext","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","currentHeight","defaultHeight","HeaderStyleProvider","children","top","width","height"],"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,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","StatusBar","useWindowDimensions","useSafeAreaInsets","getDefaultHeaderHeight","HeaderStyleContext","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","currentHeight","defaultHeight","HeaderStyleProvider","_ref","children","top","width","height","createElement","Provider","value"],"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,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,mBAAmB,QAAQ,cAAc;AAC7D,SAASC,iBAAiB,QAAQ,gCAAgC;AAGlE,OAAOC,sBAAsB,MAAM,0BAA0B;AAS7D,OAAO,MAAMC,kBAAkB,gBAAGL,KAAK,CAACM,aAAa,CAAyB;EAC5EC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,iBAAiB,EAAE,MAAM;EACzBC,oBAAoB,EAAE,IAAI;EAC1BC,QAAQ,EAAET,SAAS,CAACU,aAAa,IAAI,CAAC;EACtCC,aAAa,EAAER,sBAAsB,CAAC,KAAK;AAC7C,CAAC,CAAC;AAGF,OAAO,MAAMS,mBAAmB,GAAGC,IAAA,IAKG;EAAA,IALF;IAClCC,QAAQ;IACRR,eAAe,GAAGA,CAAA,KAAM,IAAI;IAC5BC,iBAAiB;IACjBC;EAC8B,CAAC,GAAAK,IAAA;EAC/B,MAAM;IAAEE;EAAI,CAAC,GAAGb,iBAAiB,EAAE;EACnC,MAAM;IAAEc,KAAK;IAAEC;EAAO,CAAC,GAAGhB,mBAAmB,EAAE;EAE/C,oBACEF,KAAA,CAAAmB,aAAA,CAACd,kBAAkB,CAACe,QAAQ;IAC1BC,KAAK,EAAE;MACLd,eAAe;MACfC,iBAAiB;MACjBC,oBAAoB;MACpBC,QAAQ,EAAED,oBAAoB,GAAGO,GAAG,GAAG,CAAC;MACxCJ,aAAa,EAAER,sBAAsB,CAACa,KAAK,GAAGC,MAAM;IACtD;EAAE,GAEDH,QAAQ,CACmB;AAElC,CAAC"}
|
|
@@ -4,18 +4,15 @@ const {
|
|
|
4
4
|
height
|
|
5
5
|
} = Dimensions.get('window');
|
|
6
6
|
const DESIGNED_DEVICE_WIDTH = 360;
|
|
7
|
-
|
|
8
7
|
const createScaleFactor = function () {
|
|
9
8
|
let deviceWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DESIGNED_DEVICE_WIDTH;
|
|
10
9
|
const ratio = Math.min(width, height) / deviceWidth;
|
|
11
10
|
const rangedRatio = Math.min(Math.max(0.85, ratio), 1.25);
|
|
12
11
|
return dp => PixelRatio.roundToNearestPixel(dp * rangedRatio);
|
|
13
12
|
};
|
|
14
|
-
|
|
15
13
|
createScaleFactor.updateScaleFactor = scaleFactor => {
|
|
16
14
|
DEFAULT_SCALE_FACTOR = scaleFactor;
|
|
17
15
|
};
|
|
18
|
-
|
|
19
16
|
export let DEFAULT_SCALE_FACTOR = createScaleFactor();
|
|
20
17
|
export default createScaleFactor;
|
|
21
18
|
//# sourceMappingURL=createScaleFactor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dimensions","PixelRatio","width","height","get","DESIGNED_DEVICE_WIDTH","createScaleFactor","deviceWidth","ratio","Math","min","rangedRatio","max","dp","roundToNearestPixel","updateScaleFactor","scaleFactor","DEFAULT_SCALE_FACTOR"],"sources":["createScaleFactor.ts"],"sourcesContent":["import { Dimensions, PixelRatio } from 'react-native';\n\nconst { width, height } = Dimensions.get('window');\n\nconst DESIGNED_DEVICE_WIDTH = 360;\n\nconst createScaleFactor = (deviceWidth = DESIGNED_DEVICE_WIDTH) => {\n const ratio = Math.min(width, height) / deviceWidth;\n const rangedRatio = Math.min(Math.max(0.85, ratio), 1.25);\n return (dp: number) => PixelRatio.roundToNearestPixel(dp * rangedRatio);\n};\n\ncreateScaleFactor.updateScaleFactor = (scaleFactor: (dp: number) => number) => {\n DEFAULT_SCALE_FACTOR = scaleFactor;\n};\n\nexport let DEFAULT_SCALE_FACTOR = createScaleFactor();\nexport default createScaleFactor;\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["Dimensions","PixelRatio","width","height","get","DESIGNED_DEVICE_WIDTH","createScaleFactor","deviceWidth","arguments","length","undefined","ratio","Math","min","rangedRatio","max","dp","roundToNearestPixel","updateScaleFactor","scaleFactor","DEFAULT_SCALE_FACTOR"],"sources":["createScaleFactor.ts"],"sourcesContent":["import { Dimensions, PixelRatio } from 'react-native';\n\nconst { width, height } = Dimensions.get('window');\n\nconst DESIGNED_DEVICE_WIDTH = 360;\n\nconst createScaleFactor = (deviceWidth = DESIGNED_DEVICE_WIDTH) => {\n const ratio = Math.min(width, height) / deviceWidth;\n const rangedRatio = Math.min(Math.max(0.85, ratio), 1.25);\n return (dp: number) => PixelRatio.roundToNearestPixel(dp * rangedRatio);\n};\n\ncreateScaleFactor.updateScaleFactor = (scaleFactor: (dp: number) => number) => {\n DEFAULT_SCALE_FACTOR = scaleFactor;\n};\n\nexport let DEFAULT_SCALE_FACTOR = createScaleFactor();\nexport default createScaleFactor;\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAErD,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAGH,UAAU,CAACI,GAAG,CAAC,QAAQ,CAAC;AAElD,MAAMC,qBAAqB,GAAG,GAAG;AAEjC,MAAMC,iBAAiB,GAAG,SAAAA,CAAA,EAAyC;EAAA,IAAxCC,WAAW,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGH,qBAAqB;EAC5D,MAAMM,KAAK,GAAGC,IAAI,CAACC,GAAG,CAACX,KAAK,EAAEC,MAAM,CAAC,GAAGI,WAAW;EACnD,MAAMO,WAAW,GAAGF,IAAI,CAACC,GAAG,CAACD,IAAI,CAACG,GAAG,CAAC,IAAI,EAAEJ,KAAK,CAAC,EAAE,IAAI,CAAC;EACzD,OAAQK,EAAU,IAAKf,UAAU,CAACgB,mBAAmB,CAACD,EAAE,GAAGF,WAAW,CAAC;AACzE,CAAC;AAEDR,iBAAiB,CAACY,iBAAiB,GAAIC,WAAmC,IAAK;EAC7EC,oBAAoB,GAAGD,WAAW;AACpC,CAAC;AAED,OAAO,IAAIC,oBAAoB,GAAGd,iBAAiB,EAAE;AACrD,eAAeA,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSelectByColorScheme","colorScheme","options","value","Error"],"sources":["createSelectByColorScheme.ts"],"sourcesContent":["import type { UIKitColorScheme, UIKitTheme } from '../types';\n\n/**\n * select method factory\n * Select method returns the most fitting value for the color scheme you are currently running on.\n * @param colorScheme\n * @returns Function\n * */\nconst createSelectByColorScheme = (colorScheme: UIKitColorScheme): UIKitTheme['select'] => {\n return (options) => {\n const value = options[colorScheme ?? 'default'] ?? options['light'] ?? options['dark'] ?? options['default'];\n if (!value) throw Error('Not provided any selectable color scheme values');\n return value;\n };\n};\n\nexport default createSelectByColorScheme;\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,yBAAyB,GAAIC,
|
|
1
|
+
{"version":3,"names":["createSelectByColorScheme","colorScheme","options","value","Error"],"sources":["createSelectByColorScheme.ts"],"sourcesContent":["import type { UIKitColorScheme, UIKitTheme } from '../types';\n\n/**\n * select method factory\n * Select method returns the most fitting value for the color scheme you are currently running on.\n * @param colorScheme\n * @returns Function\n * */\nconst createSelectByColorScheme = (colorScheme: UIKitColorScheme): UIKitTheme['select'] => {\n return (options) => {\n const value = options[colorScheme ?? 'default'] ?? options['light'] ?? options['dark'] ?? options['default'];\n if (!value) throw Error('Not provided any selectable color scheme values');\n return value;\n };\n};\n\nexport default createSelectByColorScheme;\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,yBAAyB,GAAIC,WAA6B,IAA2B;EACzF,OAAQC,OAAO,IAAK;IAClB,MAAMC,KAAK,GAAGD,OAAO,CAACD,WAAW,IAAI,SAAS,CAAC,IAAIC,OAAO,CAAC,OAAO,CAAC,IAAIA,OAAO,CAAC,MAAM,CAAC,IAAIA,OAAO,CAAC,SAAS,CAAC;IAC5G,IAAI,CAACC,KAAK,EAAE,MAAMC,KAAK,CAAC,iDAAiD,CAAC;IAC1E,OAAOD,KAAK;EACd,CAAC;AACH,CAAC;AAED,eAAeH,yBAAyB"}
|