@niibase/uniwind 1.0.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/LICENSE +20 -0
- package/dist/common/components/index.js +314 -0
- package/dist/common/components/native/ActivityIndicator.js +21 -0
- package/dist/common/components/native/Button.js +18 -0
- package/dist/common/components/native/FlatList.js +30 -0
- package/dist/common/components/native/Image.js +21 -0
- package/dist/common/components/native/ImageBackground.js +23 -0
- package/dist/common/components/native/InputAccessoryView.js +21 -0
- package/dist/common/components/native/KeyboardAvoidingView.js +20 -0
- package/dist/common/components/native/Modal.js +21 -0
- package/dist/common/components/native/Pressable.js +29 -0
- package/dist/common/components/native/RefreshControl.js +27 -0
- package/dist/common/components/native/SafeAreaView.js +18 -0
- package/dist/common/components/native/ScrollView.js +23 -0
- package/dist/common/components/native/SectionList.js +27 -0
- package/dist/common/components/native/Switch.js +32 -0
- package/dist/common/components/native/Text.js +36 -0
- package/dist/common/components/native/TextInput.js +53 -0
- package/dist/common/components/native/TouchableHighlight.js +35 -0
- package/dist/common/components/native/TouchableNativeFeedback.js +32 -0
- package/dist/common/components/native/TouchableOpacity.js +32 -0
- package/dist/common/components/native/TouchableWithoutFeedback.js +32 -0
- package/dist/common/components/native/View.js +18 -0
- package/dist/common/components/native/VirtualizedList.js +27 -0
- package/dist/common/components/native/useStyle.js +29 -0
- package/dist/common/components/utils.js +18 -0
- package/dist/common/components/web/ActivityIndicator.js +20 -0
- package/dist/common/components/web/Button.js +18 -0
- package/dist/common/components/web/FlatList.js +22 -0
- package/dist/common/components/web/Image.js +20 -0
- package/dist/common/components/web/ImageBackground.js +21 -0
- package/dist/common/components/web/KeyboardAvoidingView.js +18 -0
- package/dist/common/components/web/Modal.js +17 -0
- package/dist/common/components/web/Pressable.js +17 -0
- package/dist/common/components/web/RefreshControl.js +17 -0
- package/dist/common/components/web/SafeAreaView.js +17 -0
- package/dist/common/components/web/ScrollView.js +18 -0
- package/dist/common/components/web/SectionList.js +20 -0
- package/dist/common/components/web/Switch.js +26 -0
- package/dist/common/components/web/Text.js +17 -0
- package/dist/common/components/web/TextInput.js +17 -0
- package/dist/common/components/web/TouchableHighlight.js +20 -0
- package/dist/common/components/web/TouchableNativeFeedback.js +13 -0
- package/dist/common/components/web/TouchableOpacity.js +17 -0
- package/dist/common/components/web/TouchableWithoutFeedback.js +17 -0
- package/dist/common/components/web/View.js +17 -0
- package/dist/common/components/web/VirtualizedList.js +20 -0
- package/dist/common/components/web/index.js +187 -0
- package/dist/common/components/web/metro-injected.js +1 -0
- package/dist/common/components/web/rnw.js +42 -0
- package/dist/common/core/config/config.common.js +80 -0
- package/dist/common/core/config/config.js +51 -0
- package/dist/common/core/config/config.native.js +67 -0
- package/dist/common/core/config/index.js +16 -0
- package/dist/common/core/index.js +16 -0
- package/dist/common/core/listener.js +51 -0
- package/dist/common/core/logger.js +18 -0
- package/dist/common/core/native/index.js +27 -0
- package/dist/common/core/native/native-utils.js +36 -0
- package/dist/common/core/native/parsers/boxShadow.js +10 -0
- package/dist/common/core/native/parsers/fontVariant.js +8 -0
- package/dist/common/core/native/parsers/gradient.js +31 -0
- package/dist/common/core/native/parsers/index.js +60 -0
- package/dist/common/core/native/parsers/textShadow.js +39 -0
- package/dist/common/core/native/parsers/transforms.js +44 -0
- package/dist/common/core/native/runtime.js +34 -0
- package/dist/common/core/native/store.js +181 -0
- package/dist/common/core/types.js +1 -0
- package/dist/common/core/web/cssListener.js +146 -0
- package/dist/common/core/web/formatColor.js +15 -0
- package/dist/common/core/web/getWebStyles.js +51 -0
- package/dist/common/core/web/index.js +49 -0
- package/dist/common/core/web/parseCSSValue.js +15 -0
- package/dist/common/css/index.js +26 -0
- package/dist/common/css/insets.js +64 -0
- package/dist/common/css/processFunctions.js +54 -0
- package/dist/common/css/themes.js +95 -0
- package/dist/common/css/variants.js +16 -0
- package/dist/common/hoc/index.js +16 -0
- package/dist/common/hoc/types.js +1 -0
- package/dist/common/hoc/withUniwind.js +95 -0
- package/dist/common/hoc/withUniwind.native.js +106 -0
- package/dist/common/hoc/withUniwindUtils.js +16 -0
- package/dist/common/hooks/index.js +49 -0
- package/dist/common/hooks/useCSSVariable/getVariableValue.js +19 -0
- package/dist/common/hooks/useCSSVariable/getVariableValue.native.js +9 -0
- package/dist/common/hooks/useCSSVariable/index.js +16 -0
- package/dist/common/hooks/useCSSVariable/useCSSVariable.js +58 -0
- package/dist/common/hooks/useResolveClassNames.js +22 -0
- package/dist/common/hooks/useResolveClassNames.native.js +29 -0
- package/dist/common/hooks/useUniwind.js +28 -0
- package/dist/common/hooks/useUniwindAccent.js +13 -0
- package/dist/common/hooks/useUniwindAccent.native.js +12 -0
- package/dist/common/index.js +38 -0
- package/dist/common/types.js +28 -0
- package/dist/common/utils/buildDtsFile.js +18 -0
- package/dist/common/utils/stringifyThemes.js +8 -0
- package/dist/common/vite/index.d.ts +9 -0
- package/dist/common/vite/index.js +16 -0
- package/dist/common/vite/vite.js +72 -0
- package/dist/metro/index.cjs +166 -0
- package/dist/metro/index.d.ts +15 -0
- package/dist/metro/index.mjs +158 -0
- package/dist/metro/metro-transformer.cjs +1565 -0
- package/dist/metro/metro-transformer.mjs +1558 -0
- package/dist/module/components/index.d.ts +0 -0
- package/dist/module/components/index.js +312 -0
- package/dist/module/components/native/ActivityIndicator.d.ts +3 -0
- package/dist/module/components/native/ActivityIndicator.js +18 -0
- package/dist/module/components/native/Button.d.ts +3 -0
- package/dist/module/components/native/Button.js +15 -0
- package/dist/module/components/native/FlatList.d.ts +3 -0
- package/dist/module/components/native/FlatList.js +27 -0
- package/dist/module/components/native/Image.d.ts +3 -0
- package/dist/module/components/native/Image.js +18 -0
- package/dist/module/components/native/ImageBackground.d.ts +3 -0
- package/dist/module/components/native/ImageBackground.js +20 -0
- package/dist/module/components/native/InputAccessoryView.d.ts +3 -0
- package/dist/module/components/native/InputAccessoryView.js +21 -0
- package/dist/module/components/native/KeyboardAvoidingView.d.ts +3 -0
- package/dist/module/components/native/KeyboardAvoidingView.js +17 -0
- package/dist/module/components/native/Modal.d.ts +3 -0
- package/dist/module/components/native/Modal.js +18 -0
- package/dist/module/components/native/Pressable.d.ts +3 -0
- package/dist/module/components/native/Pressable.js +29 -0
- package/dist/module/components/native/RefreshControl.d.ts +3 -0
- package/dist/module/components/native/RefreshControl.js +24 -0
- package/dist/module/components/native/SafeAreaView.d.ts +3 -0
- package/dist/module/components/native/SafeAreaView.js +15 -0
- package/dist/module/components/native/ScrollView.d.ts +3 -0
- package/dist/module/components/native/ScrollView.js +20 -0
- package/dist/module/components/native/SectionList.d.ts +3 -0
- package/dist/module/components/native/SectionList.js +24 -0
- package/dist/module/components/native/Switch.d.ts +3 -0
- package/dist/module/components/native/Switch.js +26 -0
- package/dist/module/components/native/Text.d.ts +3 -0
- package/dist/module/components/native/Text.js +33 -0
- package/dist/module/components/native/TextInput.d.ts +3 -0
- package/dist/module/components/native/TextInput.js +50 -0
- package/dist/module/components/native/TouchableHighlight.d.ts +3 -0
- package/dist/module/components/native/TouchableHighlight.js +32 -0
- package/dist/module/components/native/TouchableNativeFeedback.d.ts +3 -0
- package/dist/module/components/native/TouchableNativeFeedback.js +29 -0
- package/dist/module/components/native/TouchableOpacity.d.ts +3 -0
- package/dist/module/components/native/TouchableOpacity.js +29 -0
- package/dist/module/components/native/TouchableWithoutFeedback.d.ts +3 -0
- package/dist/module/components/native/TouchableWithoutFeedback.js +29 -0
- package/dist/module/components/native/View.d.ts +3 -0
- package/dist/module/components/native/View.js +15 -0
- package/dist/module/components/native/VirtualizedList.d.ts +3 -0
- package/dist/module/components/native/VirtualizedList.js +24 -0
- package/dist/module/components/native/useStyle.d.ts +2 -0
- package/dist/module/components/native/useStyle.js +22 -0
- package/dist/module/components/utils.d.ts +1 -0
- package/dist/module/components/utils.js +11 -0
- package/dist/module/components/web/ActivityIndicator.d.ts +3 -0
- package/dist/module/components/web/ActivityIndicator.js +17 -0
- package/dist/module/components/web/Button.d.ts +3 -0
- package/dist/module/components/web/Button.js +15 -0
- package/dist/module/components/web/FlatList.d.ts +3 -0
- package/dist/module/components/web/FlatList.js +19 -0
- package/dist/module/components/web/Image.d.ts +3 -0
- package/dist/module/components/web/Image.js +17 -0
- package/dist/module/components/web/ImageBackground.d.ts +3 -0
- package/dist/module/components/web/ImageBackground.js +18 -0
- package/dist/module/components/web/KeyboardAvoidingView.d.ts +3 -0
- package/dist/module/components/web/KeyboardAvoidingView.js +15 -0
- package/dist/module/components/web/Modal.d.ts +3 -0
- package/dist/module/components/web/Modal.js +14 -0
- package/dist/module/components/web/Pressable.d.ts +3 -0
- package/dist/module/components/web/Pressable.js +14 -0
- package/dist/module/components/web/RefreshControl.d.ts +3 -0
- package/dist/module/components/web/RefreshControl.js +14 -0
- package/dist/module/components/web/SafeAreaView.d.ts +3 -0
- package/dist/module/components/web/SafeAreaView.js +14 -0
- package/dist/module/components/web/ScrollView.d.ts +3 -0
- package/dist/module/components/web/ScrollView.js +15 -0
- package/dist/module/components/web/SectionList.d.ts +3 -0
- package/dist/module/components/web/SectionList.js +17 -0
- package/dist/module/components/web/Switch.d.ts +3 -0
- package/dist/module/components/web/Switch.js +20 -0
- package/dist/module/components/web/Text.d.ts +3 -0
- package/dist/module/components/web/Text.js +14 -0
- package/dist/module/components/web/TextInput.d.ts +3 -0
- package/dist/module/components/web/TextInput.js +14 -0
- package/dist/module/components/web/TouchableHighlight.d.ts +3 -0
- package/dist/module/components/web/TouchableHighlight.js +17 -0
- package/dist/module/components/web/TouchableNativeFeedback.d.ts +2 -0
- package/dist/module/components/web/TouchableNativeFeedback.js +2 -0
- package/dist/module/components/web/TouchableOpacity.d.ts +3 -0
- package/dist/module/components/web/TouchableOpacity.js +14 -0
- package/dist/module/components/web/TouchableWithoutFeedback.d.ts +3 -0
- package/dist/module/components/web/TouchableWithoutFeedback.js +14 -0
- package/dist/module/components/web/View.d.ts +3 -0
- package/dist/module/components/web/View.js +14 -0
- package/dist/module/components/web/VirtualizedList.d.ts +3 -0
- package/dist/module/components/web/VirtualizedList.js +17 -0
- package/dist/module/components/web/index.d.ts +22 -0
- package/dist/module/components/web/index.js +22 -0
- package/dist/module/components/web/metro-injected.d.ts +0 -0
- package/dist/module/components/web/metro-injected.js +0 -0
- package/dist/module/components/web/rnw.d.ts +2 -0
- package/dist/module/components/web/rnw.js +35 -0
- package/dist/module/core/config/config.common.d.ts +18 -0
- package/dist/module/core/config/config.common.js +74 -0
- package/dist/module/core/config/config.d.ts +11 -0
- package/dist/module/core/config/config.js +48 -0
- package/dist/module/core/config/config.native.d.ts +12 -0
- package/dist/module/core/config/config.native.js +61 -0
- package/dist/module/core/config/index.d.ts +1 -0
- package/dist/module/core/config/index.js +1 -0
- package/dist/module/core/index.d.ts +1 -0
- package/dist/module/core/index.js +1 -0
- package/dist/module/core/listener.d.ts +12 -0
- package/dist/module/core/listener.js +45 -0
- package/dist/module/core/logger.d.ts +5 -0
- package/dist/module/core/logger.js +11 -0
- package/dist/module/core/native/index.d.ts +2 -0
- package/dist/module/core/native/index.js +2 -0
- package/dist/module/core/native/native-utils.d.ts +4 -0
- package/dist/module/core/native/native-utils.js +27 -0
- package/dist/module/core/native/parsers/boxShadow.d.ts +1 -0
- package/dist/module/core/native/parsers/boxShadow.js +3 -0
- package/dist/module/core/native/parsers/fontVariant.d.ts +1 -0
- package/dist/module/core/native/parsers/fontVariant.js +1 -0
- package/dist/module/core/native/parsers/gradient.d.ts +8 -0
- package/dist/module/core/native/parsers/gradient.js +26 -0
- package/dist/module/core/native/parsers/index.d.ts +5 -0
- package/dist/module/core/native/parsers/index.js +5 -0
- package/dist/module/core/native/parsers/textShadow.d.ts +1 -0
- package/dist/module/core/native/parsers/textShadow.js +32 -0
- package/dist/module/core/native/parsers/transforms.d.ts +1 -0
- package/dist/module/core/native/parsers/transforms.js +48 -0
- package/dist/module/core/native/runtime.d.ts +2 -0
- package/dist/module/core/native/runtime.js +28 -0
- package/dist/module/core/native/store.d.ts +19 -0
- package/dist/module/core/native/store.js +172 -0
- package/dist/module/core/types.d.ts +73 -0
- package/dist/module/core/types.js +0 -0
- package/dist/module/core/web/cssListener.d.ts +19 -0
- package/dist/module/core/web/cssListener.js +137 -0
- package/dist/module/core/web/formatColor.d.ts +1 -0
- package/dist/module/core/web/formatColor.js +8 -0
- package/dist/module/core/web/getWebStyles.d.ts +2 -0
- package/dist/module/core/web/getWebStyles.js +49 -0
- package/dist/module/core/web/index.d.ts +4 -0
- package/dist/module/core/web/index.js +4 -0
- package/dist/module/core/web/parseCSSValue.d.ts +1 -0
- package/dist/module/core/web/parseCSSValue.js +8 -0
- package/dist/module/css/index.d.ts +1 -0
- package/dist/module/css/index.js +25 -0
- package/dist/module/css/insets.d.ts +1 -0
- package/dist/module/css/insets.js +63 -0
- package/dist/module/css/processFunctions.d.ts +2 -0
- package/dist/module/css/processFunctions.js +36 -0
- package/dist/module/css/themes.d.ts +1 -0
- package/dist/module/css/themes.js +97 -0
- package/dist/module/css/variants.d.ts +1 -0
- package/dist/module/css/variants.js +9 -0
- package/dist/module/hoc/index.d.ts +1 -0
- package/dist/module/hoc/index.js +1 -0
- package/dist/module/hoc/types.d.ts +27 -0
- package/dist/module/hoc/types.js +0 -0
- package/dist/module/hoc/withUniwind.d.ts +2 -0
- package/dist/module/hoc/withUniwind.js +76 -0
- package/dist/module/hoc/withUniwind.native.d.ts +2 -0
- package/dist/module/hoc/withUniwind.native.js +81 -0
- package/dist/module/hoc/withUniwindUtils.d.ts +5 -0
- package/dist/module/hoc/withUniwindUtils.js +5 -0
- package/dist/module/hooks/index.d.ts +4 -0
- package/dist/module/hooks/index.js +4 -0
- package/dist/module/hooks/useCSSVariable/getVariableValue.d.ts +1 -0
- package/dist/module/hooks/useCSSVariable/getVariableValue.js +12 -0
- package/dist/module/hooks/useCSSVariable/getVariableValue.native.d.ts +1 -0
- package/dist/module/hooks/useCSSVariable/getVariableValue.native.js +2 -0
- package/dist/module/hooks/useCSSVariable/index.d.ts +1 -0
- package/dist/module/hooks/useCSSVariable/index.js +1 -0
- package/dist/module/hooks/useCSSVariable/useCSSVariable.d.ts +13 -0
- package/dist/module/hooks/useCSSVariable/useCSSVariable.js +56 -0
- package/dist/module/hooks/useResolveClassNames.d.ts +2 -0
- package/dist/module/hooks/useResolveClassNames.js +18 -0
- package/dist/module/hooks/useResolveClassNames.native.d.ts +2 -0
- package/dist/module/hooks/useResolveClassNames.native.js +22 -0
- package/dist/module/hooks/useUniwind.d.ts +5 -0
- package/dist/module/hooks/useUniwind.js +21 -0
- package/dist/module/hooks/useUniwindAccent.d.ts +1 -0
- package/dist/module/hooks/useUniwindAccent.js +6 -0
- package/dist/module/hooks/useUniwindAccent.native.d.ts +2 -0
- package/dist/module/hooks/useUniwindAccent.native.js +5 -0
- package/dist/module/index.d.ts +5 -0
- package/dist/module/index.js +3 -0
- package/dist/module/types.d.ts +21 -0
- package/dist/module/types.js +22 -0
- package/dist/module/utils/buildDtsFile.d.ts +1 -0
- package/dist/module/utils/buildDtsFile.js +22 -0
- package/dist/module/utils/stringifyThemes.d.ts +1 -0
- package/dist/module/utils/stringifyThemes.js +1 -0
- package/dist/module/vite/index.d.ts +9 -0
- package/dist/module/vite/index.js +1 -0
- package/dist/module/vite/vite.d.ts +8 -0
- package/dist/module/vite/vite.js +73 -0
- package/dist/shared/uniwind.BZIuaszw.cjs +11 -0
- package/dist/shared/uniwind.BgZDHdUR.cjs +81 -0
- package/dist/shared/uniwind.Bt3kqZo6.mjs +290 -0
- package/dist/shared/uniwind.CyoRUwOj.mjs +9 -0
- package/dist/shared/uniwind.D3fvrgEG.mjs +68 -0
- package/dist/shared/uniwind.D_6s2EM-.cjs +301 -0
- package/dist/vite/index.cjs +80 -0
- package/dist/vite/index.d.ts +9 -0
- package/dist/vite/index.mjs +74 -0
- package/metro/package.json +3 -0
- package/package.json +106 -0
- package/readme.md +71 -0
- package/src/components/index.ts +313 -0
- package/src/components/native/ActivityIndicator.tsx +19 -0
- package/src/components/native/Button.tsx +16 -0
- package/src/components/native/FlatList.tsx +28 -0
- package/src/components/native/Image.tsx +19 -0
- package/src/components/native/ImageBackground.tsx +21 -0
- package/src/components/native/InputAccessoryView.tsx +23 -0
- package/src/components/native/KeyboardAvoidingView.tsx +18 -0
- package/src/components/native/Modal.tsx +19 -0
- package/src/components/native/Pressable.tsx +31 -0
- package/src/components/native/RefreshControl.tsx +25 -0
- package/src/components/native/SafeAreaView.tsx +16 -0
- package/src/components/native/ScrollView.tsx +21 -0
- package/src/components/native/SectionList.tsx +25 -0
- package/src/components/native/Switch.tsx +28 -0
- package/src/components/native/Text.tsx +39 -0
- package/src/components/native/TextInput.tsx +52 -0
- package/src/components/native/TouchableHighlight.tsx +34 -0
- package/src/components/native/TouchableNativeFeedback.tsx +31 -0
- package/src/components/native/TouchableOpacity.tsx +31 -0
- package/src/components/native/TouchableWithoutFeedback.tsx +31 -0
- package/src/components/native/View.tsx +16 -0
- package/src/components/native/VirtualizedList.tsx +25 -0
- package/src/components/native/useStyle.ts +33 -0
- package/src/components/utils.ts +16 -0
- package/src/components/web/ActivityIndicator.tsx +18 -0
- package/src/components/web/Button.tsx +16 -0
- package/src/components/web/FlatList.tsx +20 -0
- package/src/components/web/Image.tsx +18 -0
- package/src/components/web/ImageBackground.tsx +19 -0
- package/src/components/web/KeyboardAvoidingView.tsx +15 -0
- package/src/components/web/Modal.tsx +14 -0
- package/src/components/web/Pressable.tsx +14 -0
- package/src/components/web/RefreshControl.tsx +14 -0
- package/src/components/web/SafeAreaView.tsx +14 -0
- package/src/components/web/ScrollView.tsx +15 -0
- package/src/components/web/SectionList.tsx +17 -0
- package/src/components/web/Switch.tsx +21 -0
- package/src/components/web/Text.tsx +14 -0
- package/src/components/web/TextInput.tsx +14 -0
- package/src/components/web/TouchableHighlight.tsx +18 -0
- package/src/components/web/TouchableNativeFeedback.tsx +2 -0
- package/src/components/web/TouchableOpacity.tsx +14 -0
- package/src/components/web/TouchableWithoutFeedback.tsx +14 -0
- package/src/components/web/View.tsx +14 -0
- package/src/components/web/VirtualizedList.tsx +17 -0
- package/src/components/web/index.ts +22 -0
- package/src/components/web/metro-injected.ts +1 -0
- package/src/components/web/rnw.ts +52 -0
- package/src/core/config/config.common.ts +98 -0
- package/src/core/config/config.native.ts +79 -0
- package/src/core/config/config.ts +64 -0
- package/src/core/config/index.ts +1 -0
- package/src/core/index.ts +1 -0
- package/src/core/listener.ts +59 -0
- package/src/core/logger.ts +15 -0
- package/src/core/native/index.ts +2 -0
- package/src/core/native/native-utils.ts +41 -0
- package/src/core/native/parsers/boxShadow.ts +7 -0
- package/src/core/native/parsers/fontVariant.ts +3 -0
- package/src/core/native/parsers/gradient.ts +39 -0
- package/src/core/native/parsers/index.ts +5 -0
- package/src/core/native/parsers/textShadow.ts +37 -0
- package/src/core/native/parsers/transforms.ts +64 -0
- package/src/core/native/runtime.ts +32 -0
- package/src/core/native/store.ts +238 -0
- package/src/core/types.ts +92 -0
- package/src/core/web/cssListener.ts +185 -0
- package/src/core/web/formatColor.ts +13 -0
- package/src/core/web/getWebStyles.ts +76 -0
- package/src/core/web/index.ts +4 -0
- package/src/core/web/parseCSSValue.ts +10 -0
- package/src/css/index.ts +32 -0
- package/src/css/insets.ts +73 -0
- package/src/css/processFunctions.ts +39 -0
- package/src/css/themes.ts +130 -0
- package/src/css/variants.ts +11 -0
- package/src/hoc/index.ts +1 -0
- package/src/hoc/types.ts +45 -0
- package/src/hoc/withUniwind.native.tsx +118 -0
- package/src/hoc/withUniwind.tsx +115 -0
- package/src/hoc/withUniwindUtils.ts +10 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useCSSVariable/getVariableValue.native.ts +3 -0
- package/src/hooks/useCSSVariable/getVariableValue.ts +19 -0
- package/src/hooks/useCSSVariable/index.ts +1 -0
- package/src/hooks/useCSSVariable/useCSSVariable.ts +89 -0
- package/src/hooks/useResolveClassNames.native.ts +29 -0
- package/src/hooks/useResolveClassNames.ts +26 -0
- package/src/hooks/useUniwind.ts +26 -0
- package/src/hooks/useUniwindAccent.native.ts +8 -0
- package/src/hooks/useUniwindAccent.ts +10 -0
- package/src/index.ts +5 -0
- package/src/metro/addMetaToStylesTemplate.ts +152 -0
- package/src/metro/compileVirtual.ts +74 -0
- package/src/metro/index.d.ts +15 -0
- package/src/metro/index.ts +1 -0
- package/src/metro/injectThemes.ts +23 -0
- package/src/metro/logger.ts +44 -0
- package/src/metro/metro-css-patches.ts +57 -0
- package/src/metro/metro-transformer.ts +99 -0
- package/src/metro/polyfillWeb.ts +14 -0
- package/src/metro/processor/color.ts +76 -0
- package/src/metro/processor/css.ts +541 -0
- package/src/metro/processor/functions.ts +199 -0
- package/src/metro/processor/index.ts +1 -0
- package/src/metro/processor/mq.ts +82 -0
- package/src/metro/processor/processor.ts +249 -0
- package/src/metro/processor/rn.ts +277 -0
- package/src/metro/processor/units.ts +58 -0
- package/src/metro/processor/var.ts +18 -0
- package/src/metro/resolvers.ts +101 -0
- package/src/metro/types.ts +74 -0
- package/src/metro/utils/common.ts +103 -0
- package/src/metro/utils/index.ts +2 -0
- package/src/metro/utils/serialize.ts +116 -0
- package/src/metro/withUniwindConfig.ts +60 -0
- package/src/types.ts +24 -0
- package/src/utils/buildDtsFile.ts +27 -0
- package/src/utils/stringifyThemes.ts +1 -0
- package/src/vite/index.d.ts +9 -0
- package/src/vite/index.ts +1 -0
- package/src/vite/vite.ts +86 -0
- package/types.d.ts +109 -0
- package/uniwind.css +262 -0
- package/vite/package.json +3 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Switch as RNSwitch, SwitchProps } from 'react-native'
|
|
2
|
+
import { ComponentState } from '../../core/types'
|
|
3
|
+
import { useUniwindAccent } from '../../hooks/useUniwindAccent.native'
|
|
4
|
+
import { copyComponentProperties } from '../utils'
|
|
5
|
+
import { useStyle } from './useStyle'
|
|
6
|
+
|
|
7
|
+
export const Switch = copyComponentProperties(RNSwitch, (props: SwitchProps) => {
|
|
8
|
+
const state = {
|
|
9
|
+
isDisabled: Boolean(props.disabled),
|
|
10
|
+
} satisfies ComponentState
|
|
11
|
+
const style = useStyle(props.className, state)
|
|
12
|
+
const trackColorOn = useUniwindAccent(props.trackColorOnClassName, state)
|
|
13
|
+
const trackColorOff = useUniwindAccent(props.trackColorOffClassName, state)
|
|
14
|
+
const thumbColor = useUniwindAccent(props.thumbColorClassName, state)
|
|
15
|
+
const ios_backgroundColor = useUniwindAccent(props.ios_backgroundColorClassName, state)
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<RNSwitch
|
|
19
|
+
{...props}
|
|
20
|
+
style={[style, props.style]}
|
|
21
|
+
thumbColor={props.thumbColor ?? thumbColor}
|
|
22
|
+
trackColor={{ true: props.trackColor?.true ?? trackColorOn, false: props.trackColor?.false ?? trackColorOff }}
|
|
23
|
+
ios_backgroundColor={props.ios_backgroundColor ?? ios_backgroundColor}
|
|
24
|
+
/>
|
|
25
|
+
)
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
export default Switch
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { Text as RNText, TextProps } from 'react-native'
|
|
3
|
+
import { ComponentState } from '../../core/types'
|
|
4
|
+
import { useUniwindAccent } from '../../hooks/useUniwindAccent.native'
|
|
5
|
+
import { copyComponentProperties } from '../utils'
|
|
6
|
+
import { useStyle } from './useStyle'
|
|
7
|
+
|
|
8
|
+
type StyleWithWebkitLineClamp = {
|
|
9
|
+
WebkitLineClamp?: number
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const Text = copyComponentProperties(RNText, (props: TextProps) => {
|
|
13
|
+
const [isPressed, setIsPressed] = useState(false)
|
|
14
|
+
const state = {
|
|
15
|
+
isPressed,
|
|
16
|
+
isDisabled: Boolean(props.disabled),
|
|
17
|
+
} satisfies ComponentState
|
|
18
|
+
const style = useStyle(props.className, state)
|
|
19
|
+
const selectionColor = useUniwindAccent(props.selectionColorClassName, state)
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<RNText
|
|
23
|
+
{...props}
|
|
24
|
+
style={[style, props.style]}
|
|
25
|
+
selectionColor={props.selectionColor ?? selectionColor}
|
|
26
|
+
numberOfLines={(style as StyleWithWebkitLineClamp).WebkitLineClamp ?? props.numberOfLines}
|
|
27
|
+
onPressIn={event => {
|
|
28
|
+
setIsPressed(true)
|
|
29
|
+
props.onPressIn?.(event)
|
|
30
|
+
}}
|
|
31
|
+
onPressOut={event => {
|
|
32
|
+
setIsPressed(false)
|
|
33
|
+
props.onPressOut?.(event)
|
|
34
|
+
}}
|
|
35
|
+
/>
|
|
36
|
+
)
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
export default Text
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { TextInput as RNTextInput, TextInputProps } from 'react-native'
|
|
3
|
+
import { ComponentState } from '../../core/types'
|
|
4
|
+
import { useUniwindAccent } from '../../hooks/useUniwindAccent.native'
|
|
5
|
+
import { copyComponentProperties } from '../utils'
|
|
6
|
+
import { useStyle } from './useStyle'
|
|
7
|
+
|
|
8
|
+
export const TextInput = copyComponentProperties(RNTextInput, (props: TextInputProps) => {
|
|
9
|
+
const [isFocused, setIsFocused] = useState(false)
|
|
10
|
+
const [isPressed, setIsPressed] = useState(false)
|
|
11
|
+
const state = {
|
|
12
|
+
isDisabled: props.editable === false,
|
|
13
|
+
isFocused,
|
|
14
|
+
isPressed,
|
|
15
|
+
} satisfies ComponentState
|
|
16
|
+
const style = useStyle(props.className, state)
|
|
17
|
+
const cursorColor = useUniwindAccent(props.cursorColorClassName, state)
|
|
18
|
+
const selectionColor = useUniwindAccent(props.selectionColorClassName, state)
|
|
19
|
+
const placeholderTextColor = useUniwindAccent(props.placeholderTextColorClassName, state)
|
|
20
|
+
const selectionHandleColor = useUniwindAccent(props.selectionHandleColorClassName, state)
|
|
21
|
+
const underlineColorAndroid = useUniwindAccent(props.underlineColorAndroidClassName, state)
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<RNTextInput
|
|
25
|
+
{...props}
|
|
26
|
+
style={[style, props.style]}
|
|
27
|
+
cursorColor={props.cursorColor ?? cursorColor}
|
|
28
|
+
selectionColor={props.selectionColor ?? selectionColor}
|
|
29
|
+
placeholderTextColor={props.placeholderTextColor ?? placeholderTextColor}
|
|
30
|
+
selectionHandleColor={props.selectionHandleColor ?? selectionHandleColor}
|
|
31
|
+
underlineColorAndroid={props.underlineColorAndroid ?? underlineColorAndroid}
|
|
32
|
+
onFocus={event => {
|
|
33
|
+
setIsFocused(true)
|
|
34
|
+
props.onFocus?.(event)
|
|
35
|
+
}}
|
|
36
|
+
onBlur={event => {
|
|
37
|
+
setIsFocused(false)
|
|
38
|
+
props.onBlur?.(event)
|
|
39
|
+
}}
|
|
40
|
+
onPressIn={event => {
|
|
41
|
+
setIsPressed(true)
|
|
42
|
+
props.onPressIn?.(event)
|
|
43
|
+
}}
|
|
44
|
+
onPressOut={event => {
|
|
45
|
+
setIsPressed(false)
|
|
46
|
+
props.onPressOut?.(event)
|
|
47
|
+
}}
|
|
48
|
+
/>
|
|
49
|
+
)
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
export default TextInput
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { TouchableHighlight as RNTouchableHighlight, TouchableHighlightProps } from 'react-native'
|
|
3
|
+
import { ComponentState } from '../../core/types'
|
|
4
|
+
import { useUniwindAccent } from '../../hooks/useUniwindAccent.native'
|
|
5
|
+
import { copyComponentProperties } from '../utils'
|
|
6
|
+
import { useStyle } from './useStyle'
|
|
7
|
+
|
|
8
|
+
export const TouchableHighlight = copyComponentProperties(RNTouchableHighlight, (props: TouchableHighlightProps) => {
|
|
9
|
+
const [isPressed, setIsPressed] = useState(false)
|
|
10
|
+
const state = {
|
|
11
|
+
isDisabled: Boolean(props.disabled),
|
|
12
|
+
isPressed,
|
|
13
|
+
} satisfies ComponentState
|
|
14
|
+
const style = useStyle(props.className, state)
|
|
15
|
+
const underlayColor = useUniwindAccent(props.underlayColorClassName, state)
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<RNTouchableHighlight
|
|
19
|
+
{...props}
|
|
20
|
+
style={[style, props.style]}
|
|
21
|
+
underlayColor={props.underlayColor ?? underlayColor}
|
|
22
|
+
onPressIn={event => {
|
|
23
|
+
setIsPressed(true)
|
|
24
|
+
props.onPressIn?.(event)
|
|
25
|
+
}}
|
|
26
|
+
onPressOut={event => {
|
|
27
|
+
setIsPressed(false)
|
|
28
|
+
props.onPressOut?.(event)
|
|
29
|
+
}}
|
|
30
|
+
/>
|
|
31
|
+
)
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
export default TouchableHighlight
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { TouchableNativeFeedback as RNTouchableNativeFeedback, TouchableNativeFeedbackProps } from 'react-native'
|
|
3
|
+
import { ComponentState } from '../../core/types'
|
|
4
|
+
import { copyComponentProperties } from '../utils'
|
|
5
|
+
import { useStyle } from './useStyle'
|
|
6
|
+
|
|
7
|
+
export const TouchableNativeFeedback = copyComponentProperties(RNTouchableNativeFeedback, (props: TouchableNativeFeedbackProps) => {
|
|
8
|
+
const [isPressed, setIsPressed] = useState(false)
|
|
9
|
+
const state = {
|
|
10
|
+
isDisabled: Boolean(props.disabled),
|
|
11
|
+
isPressed,
|
|
12
|
+
} satisfies ComponentState
|
|
13
|
+
const style = useStyle(props.className, state)
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<RNTouchableNativeFeedback
|
|
17
|
+
{...props}
|
|
18
|
+
style={[style, props.style]}
|
|
19
|
+
onPressIn={event => {
|
|
20
|
+
setIsPressed(true)
|
|
21
|
+
props.onPressIn?.(event)
|
|
22
|
+
}}
|
|
23
|
+
onPressOut={event => {
|
|
24
|
+
setIsPressed(false)
|
|
25
|
+
props.onPressOut?.(event)
|
|
26
|
+
}}
|
|
27
|
+
/>
|
|
28
|
+
)
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
export default TouchableNativeFeedback
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { TouchableOpacity as RNTouchableOpacity, TouchableOpacityProps } from 'react-native'
|
|
3
|
+
import { ComponentState } from '../../core/types'
|
|
4
|
+
import { copyComponentProperties } from '../utils'
|
|
5
|
+
import { useStyle } from './useStyle'
|
|
6
|
+
|
|
7
|
+
export const TouchableOpacity = copyComponentProperties(RNTouchableOpacity, (props: TouchableOpacityProps) => {
|
|
8
|
+
const [isPressed, setIsPressed] = useState(false)
|
|
9
|
+
const state = {
|
|
10
|
+
isDisabled: Boolean(props.disabled),
|
|
11
|
+
isPressed,
|
|
12
|
+
} satisfies ComponentState
|
|
13
|
+
const style = useStyle(props.className, state)
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<RNTouchableOpacity
|
|
17
|
+
{...props}
|
|
18
|
+
style={[style, props.style]}
|
|
19
|
+
onPressIn={event => {
|
|
20
|
+
setIsPressed(true)
|
|
21
|
+
props.onPressIn?.(event)
|
|
22
|
+
}}
|
|
23
|
+
onPressOut={event => {
|
|
24
|
+
setIsPressed(false)
|
|
25
|
+
props.onPressOut?.(event)
|
|
26
|
+
}}
|
|
27
|
+
/>
|
|
28
|
+
)
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
export default TouchableOpacity
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { TouchableWithoutFeedback as RNTouchableWithoutFeedback, TouchableWithoutFeedbackProps } from 'react-native'
|
|
3
|
+
import { ComponentState } from '../../core/types'
|
|
4
|
+
import { copyComponentProperties } from '../utils'
|
|
5
|
+
import { useStyle } from './useStyle'
|
|
6
|
+
|
|
7
|
+
export const TouchableWithoutFeedback = copyComponentProperties(RNTouchableWithoutFeedback, (props: TouchableWithoutFeedbackProps) => {
|
|
8
|
+
const [isPressed, setIsPressed] = useState(false)
|
|
9
|
+
const state = {
|
|
10
|
+
isDisabled: Boolean(props.disabled),
|
|
11
|
+
isPressed,
|
|
12
|
+
} satisfies ComponentState
|
|
13
|
+
const style = useStyle(props.className, state)
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<RNTouchableWithoutFeedback
|
|
17
|
+
{...props}
|
|
18
|
+
style={[style, props.style]}
|
|
19
|
+
onPressIn={event => {
|
|
20
|
+
setIsPressed(true)
|
|
21
|
+
props.onPressIn?.(event)
|
|
22
|
+
}}
|
|
23
|
+
onPressOut={event => {
|
|
24
|
+
setIsPressed(false)
|
|
25
|
+
props.onPressOut?.(event)
|
|
26
|
+
}}
|
|
27
|
+
/>
|
|
28
|
+
)
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
export default TouchableWithoutFeedback
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { View as RNView, ViewProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { useStyle } from './useStyle'
|
|
4
|
+
|
|
5
|
+
export const View = copyComponentProperties(RNView, (props: ViewProps) => {
|
|
6
|
+
const style = useStyle(props.className)
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<RNView
|
|
10
|
+
{...props}
|
|
11
|
+
style={[style, props.style]}
|
|
12
|
+
/>
|
|
13
|
+
)
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
export default View
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { VirtualizedList as RNVirtualizedList, VirtualizedListProps } from 'react-native'
|
|
2
|
+
import { useUniwindAccent } from '../../hooks'
|
|
3
|
+
import { copyComponentProperties } from '../utils'
|
|
4
|
+
import { useStyle } from './useStyle'
|
|
5
|
+
|
|
6
|
+
export const VirtualizedList = copyComponentProperties(RNVirtualizedList, (props: VirtualizedListProps<unknown>) => {
|
|
7
|
+
const style = useStyle(props.className)
|
|
8
|
+
const contentContainerStyle = useStyle(props.contentContainerClassName)
|
|
9
|
+
const listFooterComponentStyle = useStyle(props.ListFooterComponentClassName)
|
|
10
|
+
const listHeaderComponentStyle = useStyle(props.ListHeaderComponentClassName)
|
|
11
|
+
const endFillColor = useUniwindAccent(props.endFillColorClassName)
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<RNVirtualizedList
|
|
15
|
+
{...props}
|
|
16
|
+
style={[style, props.style]}
|
|
17
|
+
contentContainerStyle={[contentContainerStyle, props.contentContainerStyle]}
|
|
18
|
+
ListFooterComponentStyle={[listFooterComponentStyle, props.ListFooterComponentStyle]}
|
|
19
|
+
ListHeaderComponentStyle={[listHeaderComponentStyle, props.ListHeaderComponentStyle]}
|
|
20
|
+
endFillColor={props.endFillColor ?? endFillColor}
|
|
21
|
+
/>
|
|
22
|
+
)
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
export default VirtualizedList
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/strict-boolean-expressions */
|
|
2
|
+
import { useEffect, useMemo, useReducer } from 'react'
|
|
3
|
+
import { UniwindListener } from '../../core/listener'
|
|
4
|
+
import { UniwindStore } from '../../core/native'
|
|
5
|
+
import { ComponentState, RNStyle } from '../../core/types'
|
|
6
|
+
import { StyleDependency } from '../../types'
|
|
7
|
+
|
|
8
|
+
const emptyState = { styles: {} as RNStyle, dependencies: [] as Array<StyleDependency> }
|
|
9
|
+
|
|
10
|
+
export const useStyle = (className?: string, state?: ComponentState) => {
|
|
11
|
+
const [_, rerender] = useReducer(() => ({}), {})
|
|
12
|
+
const styleState = useMemo(
|
|
13
|
+
() =>
|
|
14
|
+
className
|
|
15
|
+
? UniwindStore.getStyles(className, {
|
|
16
|
+
isDisabled: state?.isDisabled,
|
|
17
|
+
isFocused: state?.isFocused,
|
|
18
|
+
isPressed: state?.isPressed,
|
|
19
|
+
})
|
|
20
|
+
: emptyState,
|
|
21
|
+
[className, _, state?.isDisabled, state?.isFocused, state?.isPressed],
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (__DEV__ || styleState.dependencies.length > 0) {
|
|
26
|
+
const dispose = UniwindListener.subscribe(rerender, styleState.dependencies)
|
|
27
|
+
|
|
28
|
+
return dispose
|
|
29
|
+
}
|
|
30
|
+
}, [styleState])
|
|
31
|
+
|
|
32
|
+
return styleState.styles
|
|
33
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const copyComponentProperties = <T extends object>(Component: T, UniwindComponent: any): T => {
|
|
2
|
+
Object.entries(Component).forEach(([key, value]) => {
|
|
3
|
+
// Filter out the keys we don't want to copy
|
|
4
|
+
if (['$$typeof', 'render', 'contextType'].includes(key)) {
|
|
5
|
+
return
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
UniwindComponent[key] = value
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
// @ts-expect-error Hidden property
|
|
12
|
+
UniwindComponent.displayName = Component.displayName
|
|
13
|
+
UniwindComponent.prototype = Object.getPrototypeOf(Component)
|
|
14
|
+
|
|
15
|
+
return UniwindComponent
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ActivityIndicator as RNActivityIndicator, ActivityIndicatorProps } from 'react-native'
|
|
2
|
+
import { useUniwindAccent } from '../../hooks'
|
|
3
|
+
import { copyComponentProperties } from '../utils'
|
|
4
|
+
import { toRNWClassName } from './rnw'
|
|
5
|
+
|
|
6
|
+
export const ActivityIndicator = copyComponentProperties(RNActivityIndicator, (props: ActivityIndicatorProps) => {
|
|
7
|
+
const color = useUniwindAccent(props.colorClassName)
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<RNActivityIndicator
|
|
11
|
+
{...props}
|
|
12
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
13
|
+
color={props.color ?? color}
|
|
14
|
+
/>
|
|
15
|
+
)
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
export default ActivityIndicator
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Button as RNButton, ButtonProps } from 'react-native'
|
|
2
|
+
import { useUniwindAccent } from '../../hooks'
|
|
3
|
+
import { copyComponentProperties } from '../utils'
|
|
4
|
+
|
|
5
|
+
export const Button = copyComponentProperties(RNButton, (props: ButtonProps) => {
|
|
6
|
+
const color = useUniwindAccent(props.colorClassName)
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<RNButton
|
|
10
|
+
{...props}
|
|
11
|
+
color={props.color ?? color}
|
|
12
|
+
/>
|
|
13
|
+
)
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
export default Button
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FlatList as RNFlatList, FlatListProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const FlatList = copyComponentProperties(RNFlatList, (props: FlatListProps<unknown>) => {
|
|
6
|
+
const hasSingleColumn = !('numColumns' in props) || props.numColumns === 1
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<RNFlatList
|
|
10
|
+
{...props}
|
|
11
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
12
|
+
columnWrapperStyle={hasSingleColumn ? undefined : [toRNWClassName(props.columnWrapperClassName), props.columnWrapperStyle]}
|
|
13
|
+
contentContainerStyle={[toRNWClassName(props.contentContainerClassName), props.contentContainerStyle]}
|
|
14
|
+
ListFooterComponentStyle={[toRNWClassName(props.ListFooterComponentClassName), props.ListFooterComponentStyle]}
|
|
15
|
+
ListHeaderComponentStyle={[toRNWClassName(props.ListHeaderComponentClassName), props.ListHeaderComponentStyle]}
|
|
16
|
+
/>
|
|
17
|
+
)
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export default FlatList
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Image as RNImage, ImageProps } from 'react-native'
|
|
2
|
+
import { useUniwindAccent } from '../../hooks'
|
|
3
|
+
import { copyComponentProperties } from '../utils'
|
|
4
|
+
import { toRNWClassName } from './rnw'
|
|
5
|
+
|
|
6
|
+
export const Image = copyComponentProperties(RNImage, (props: ImageProps) => {
|
|
7
|
+
const tintColor = useUniwindAccent(props.tintColorClassName)
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<RNImage
|
|
11
|
+
{...props}
|
|
12
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
13
|
+
tintColor={props.tintColor ?? tintColor}
|
|
14
|
+
/>
|
|
15
|
+
)
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
export default Image
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ImageBackground as RNImageBackground, ImageBackgroundProps } from 'react-native'
|
|
2
|
+
import { useUniwindAccent } from '../../hooks'
|
|
3
|
+
import { copyComponentProperties } from '../utils'
|
|
4
|
+
import { toRNWClassName } from './rnw'
|
|
5
|
+
|
|
6
|
+
export const ImageBackground = copyComponentProperties(RNImageBackground, (props: ImageBackgroundProps) => {
|
|
7
|
+
const tintColor = useUniwindAccent(props.tintColorClassName)
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<RNImageBackground
|
|
11
|
+
{...props}
|
|
12
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
13
|
+
imageStyle={[toRNWClassName(props.imageClassName), props.imageStyle]}
|
|
14
|
+
tintColor={props.tintColor ?? tintColor}
|
|
15
|
+
/>
|
|
16
|
+
)
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
export default ImageBackground
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { KeyboardAvoidingView as RNKeyboardAvoidingView, KeyboardAvoidingViewProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const KeyboardAvoidingView = copyComponentProperties(RNKeyboardAvoidingView, (props: KeyboardAvoidingViewProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNKeyboardAvoidingView
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
contentContainerStyle={[toRNWClassName(props.contentContainerClassName), props.contentContainerStyle]}
|
|
11
|
+
/>
|
|
12
|
+
)
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export default KeyboardAvoidingView
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Modal as RNModal, ModalProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const Modal = copyComponentProperties(RNModal, (props: ModalProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNModal
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
/>
|
|
11
|
+
)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export default Modal
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Pressable as RNPressable, PressableProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const Pressable = copyComponentProperties(RNPressable, (props: PressableProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNPressable
|
|
8
|
+
{...props}
|
|
9
|
+
style={state => [toRNWClassName(props.className), typeof props.style === 'function' ? props.style(state) : props.style]}
|
|
10
|
+
/>
|
|
11
|
+
)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export default Pressable
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RefreshControl as RNRefreshControl, RefreshControlProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const RefreshControl = copyComponentProperties(RNRefreshControl, (props: RefreshControlProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNRefreshControl
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
/>
|
|
11
|
+
)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export default RefreshControl
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SafeAreaView as RNSafeAreaView, ViewProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const SafeAreaView = copyComponentProperties(RNSafeAreaView, (props: ViewProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNSafeAreaView
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
/>
|
|
11
|
+
)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export default SafeAreaView
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ScrollView as RNScrollView, ScrollViewProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const ScrollView = copyComponentProperties(RNScrollView, (props: ScrollViewProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNScrollView
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
contentContainerStyle={[toRNWClassName(props.contentContainerClassName), props.contentContainerStyle]}
|
|
11
|
+
/>
|
|
12
|
+
)
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export default ScrollView
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SectionList as RNSectionList, SectionListProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const SectionList = copyComponentProperties(RNSectionList, (props: SectionListProps<unknown, unknown>) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNSectionList
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
contentContainerStyle={[toRNWClassName(props.contentContainerClassName), props.contentContainerStyle]}
|
|
11
|
+
ListFooterComponentStyle={[toRNWClassName(props.ListFooterComponentClassName), props.ListFooterComponentStyle]}
|
|
12
|
+
ListHeaderComponentStyle={[toRNWClassName(props.ListHeaderComponentClassName), props.ListHeaderComponentStyle]}
|
|
13
|
+
/>
|
|
14
|
+
)
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
export default SectionList
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Switch as RNSwitch, SwitchProps } from 'react-native'
|
|
2
|
+
import { useUniwindAccent } from '../../hooks'
|
|
3
|
+
import { copyComponentProperties } from '../utils'
|
|
4
|
+
import { toRNWClassName } from './rnw'
|
|
5
|
+
|
|
6
|
+
export const Switch = copyComponentProperties(RNSwitch, (props: SwitchProps) => {
|
|
7
|
+
const trackColorOn = useUniwindAccent(props.trackColorOnClassName)
|
|
8
|
+
const trackColorOff = useUniwindAccent(props.trackColorOffClassName)
|
|
9
|
+
const thumbColor = useUniwindAccent(props.thumbColorClassName)
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<RNSwitch
|
|
13
|
+
{...props}
|
|
14
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
15
|
+
thumbColor={props.thumbColor ?? thumbColor}
|
|
16
|
+
trackColor={{ true: props.trackColor?.true ?? trackColorOn, false: props.trackColor?.false ?? trackColorOff }}
|
|
17
|
+
/>
|
|
18
|
+
)
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
export default Switch
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Text as RNText, TextProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const Text = copyComponentProperties(RNText, (props: TextProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNText
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
/>
|
|
11
|
+
)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export default Text
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TextInput as RNTextInput, TextInputProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const TextInput = copyComponentProperties(RNTextInput, (props: TextInputProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNTextInput
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
/>
|
|
11
|
+
)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export default TextInput
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TouchableHighlight as RNTouchableHighlight, TouchableHighlightProps } from 'react-native'
|
|
2
|
+
import { useUniwindAccent } from '../../hooks'
|
|
3
|
+
import { copyComponentProperties } from '../utils'
|
|
4
|
+
import { toRNWClassName } from './rnw'
|
|
5
|
+
|
|
6
|
+
export const TouchableHighlight = copyComponentProperties(RNTouchableHighlight, (props: TouchableHighlightProps) => {
|
|
7
|
+
const underlayColor = useUniwindAccent(props.underlayColorClassName)
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<RNTouchableHighlight
|
|
11
|
+
{...props}
|
|
12
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
13
|
+
underlayColor={props.underlayColor ?? underlayColor}
|
|
14
|
+
/>
|
|
15
|
+
)
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
export default TouchableHighlight
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TouchableOpacity as RNTouchableOpacity, TouchableOpacityProps } from 'react-native'
|
|
2
|
+
import { copyComponentProperties } from '../utils'
|
|
3
|
+
import { toRNWClassName } from './rnw'
|
|
4
|
+
|
|
5
|
+
export const TouchableOpacity = copyComponentProperties(RNTouchableOpacity, (props: TouchableOpacityProps) => {
|
|
6
|
+
return (
|
|
7
|
+
<RNTouchableOpacity
|
|
8
|
+
{...props}
|
|
9
|
+
style={[toRNWClassName(props.className), props.style]}
|
|
10
|
+
/>
|
|
11
|
+
)
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export default TouchableOpacity
|