react-native-unistyles 3.5.3 → 3.7.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 +6 -8
- package/android/build.gradle +42 -0
- package/android/src/legacy/java/com/unistyles/NativePlatform+extraWindows.kt +16 -0
- package/android/src/main/cxx/NativeUnistylesModule.cpp +5 -11
- package/android/src/main/cxx/NativeUnistylesModule.h +0 -4
- package/android/src/main/java/com/unistyles/NativePlatform+android.kt +82 -39
- package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +73 -0
- package/android/src/main/java/com/unistyles/UnistylesModule.kt +2 -13
- package/android/src/rn86/java/com/unistyles/NativePlatform+extraWindows.kt +28 -0
- package/cxx/common/PerformanceTracing.h +85 -0
- package/cxx/converters/BackgroundImageConverter.cpp +198 -11
- package/cxx/converters/BackgroundImageConverter.h +1 -0
- package/cxx/converters/BackgroundLayerConverter.cpp +523 -0
- package/cxx/converters/BackgroundLayerConverter.h +14 -0
- package/cxx/converters/FontVariationSettingsConverter.cpp +104 -0
- package/cxx/converters/FontVariationSettingsConverter.h +17 -0
- package/cxx/core/HostUnistyle.cpp +6 -0
- package/cxx/core/UnistyleWrapper.h +16 -1
- package/cxx/hybridObjects/HybridShadowRegistry.cpp +13 -0
- package/cxx/hybridObjects/HybridStyleSheet.cpp +11 -0
- package/cxx/hybridObjects/HybridStyleSheet.h +1 -0
- package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +10 -30
- package/cxx/hybridObjects/HybridUnistylesRuntime.h +2 -2
- package/cxx/parser/Parser.cpp +92 -5
- package/cxx/shadowTree/ShadowTreeDiagnostics.cpp +74 -0
- package/cxx/shadowTree/ShadowTreeManager.cpp +3 -0
- package/ios/NativePlatform+ios.swift +22 -11
- package/ios/NativePlatformListener+ios.swift +9 -0
- package/lib/commonjs/components/NamedTheme.js +4 -4
- package/lib/commonjs/components/NamedTheme.js.map +1 -1
- package/lib/commonjs/components/ScopedThemeContext.js +3 -1
- package/lib/commonjs/components/ScopedThemeContext.js.map +1 -1
- package/lib/commonjs/components/native/deep/ActivityIndicator.js +19 -0
- package/lib/commonjs/components/native/deep/ActivityIndicator.js.map +1 -0
- package/lib/commonjs/components/native/deep/Animated.js +19 -0
- package/lib/commonjs/components/native/deep/Animated.js.map +1 -0
- package/lib/commonjs/components/native/deep/FlatList.js +19 -0
- package/lib/commonjs/components/native/deep/FlatList.js.map +1 -0
- package/lib/commonjs/components/native/deep/Image.js +19 -0
- package/lib/commonjs/components/native/deep/Image.js.map +1 -0
- package/lib/commonjs/components/native/deep/ImageBackground.js +19 -0
- package/lib/commonjs/components/native/deep/ImageBackground.js.map +1 -0
- package/lib/commonjs/components/native/deep/KeyboardAvoidingView.js +19 -0
- package/lib/commonjs/components/native/deep/KeyboardAvoidingView.js.map +1 -0
- package/lib/commonjs/components/native/deep/Pressable.js +19 -0
- package/lib/commonjs/components/native/deep/Pressable.js.map +1 -0
- package/lib/commonjs/components/native/deep/RefreshControl.js +19 -0
- package/lib/commonjs/components/native/deep/RefreshControl.js.map +1 -0
- package/lib/commonjs/components/native/deep/SafeAreaView.js +19 -0
- package/lib/commonjs/components/native/deep/SafeAreaView.js.map +1 -0
- package/lib/commonjs/components/native/deep/ScrollView.js +19 -0
- package/lib/commonjs/components/native/deep/ScrollView.js.map +1 -0
- package/lib/commonjs/components/native/deep/SectionList.js +19 -0
- package/lib/commonjs/components/native/deep/SectionList.js.map +1 -0
- package/lib/commonjs/components/native/deep/Switch.js +19 -0
- package/lib/commonjs/components/native/deep/Switch.js.map +1 -0
- package/lib/commonjs/components/native/deep/Text.js +19 -0
- package/lib/commonjs/components/native/deep/Text.js.map +1 -0
- package/lib/commonjs/components/native/deep/TextInput.js +19 -0
- package/lib/commonjs/components/native/deep/TextInput.js.map +1 -0
- package/lib/commonjs/components/native/deep/TextNativeComponent.js +28 -0
- package/lib/commonjs/components/native/deep/TextNativeComponent.js.map +1 -0
- package/lib/commonjs/components/native/deep/TouchableHighlight.js +19 -0
- package/lib/commonjs/components/native/deep/TouchableHighlight.js.map +1 -0
- package/lib/commonjs/components/native/deep/TouchableOpacity.js +19 -0
- package/lib/commonjs/components/native/deep/TouchableOpacity.js.map +1 -0
- package/lib/commonjs/components/native/deep/View.js +19 -0
- package/lib/commonjs/components/native/deep/View.js.map +1 -0
- package/lib/commonjs/components/native/deep/ViewNativeComponent.js +26 -0
- package/lib/commonjs/components/native/deep/ViewNativeComponent.js.map +1 -0
- package/lib/commonjs/components/native/deep/VirtualizedList.js +19 -0
- package/lib/commonjs/components/native/deep/VirtualizedList.js.map +1 -0
- package/lib/commonjs/components/native/index.js +43 -0
- package/lib/commonjs/components/native/index.js.map +1 -0
- package/lib/commonjs/core/createUnistylesActivityIndicator.js +13 -3
- package/lib/commonjs/core/createUnistylesActivityIndicator.js.map +1 -1
- package/lib/commonjs/core/createUnistylesElement.native.js +6 -0
- package/lib/commonjs/core/createUnistylesElement.native.js.map +1 -1
- package/lib/commonjs/core/createUnistylesImageBackground.js +26 -19
- package/lib/commonjs/core/createUnistylesImageBackground.js.map +1 -1
- package/lib/commonjs/core/createUnistylesTouchableHighlight.js +6 -0
- package/lib/commonjs/core/createUnistylesTouchableHighlight.js.map +1 -1
- package/lib/commonjs/core/getClassname.js +15 -0
- package/lib/commonjs/core/getClassname.js.map +1 -1
- package/lib/commonjs/core/hasUnistyles.js +26 -0
- package/lib/commonjs/core/hasUnistyles.js.map +1 -0
- package/lib/commonjs/core/withUnistyles/withUnistyles.js +10 -7
- package/lib/commonjs/core/withUnistyles/withUnistyles.js.map +1 -1
- package/lib/commonjs/core/withUnistyles/withUnistyles.native.js +22 -3
- package/lib/commonjs/core/withUnistyles/withUnistyles.native.js.map +1 -1
- package/lib/commonjs/mocks.js +27 -3
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/index.js +69 -76
- package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/commonjs/specs/ShadowRegistry/styleSource.js +65 -0
- package/lib/commonjs/specs/ShadowRegistry/styleSource.js.map +1 -0
- package/lib/commonjs/specs/ShadowRegistry/tracing.js +26 -0
- package/lib/commonjs/specs/ShadowRegistry/tracing.js.map +1 -0
- package/lib/commonjs/unifiber/src/adapters/reanimated.js +157 -0
- package/lib/commonjs/unifiber/src/adapters/reanimated.js.map +1 -0
- package/lib/commonjs/unifiber/src/adapters/registry.js +67 -0
- package/lib/commonjs/unifiber/src/adapters/registry.js.map +1 -0
- package/lib/commonjs/unifiber/src/diagnostics.js +59 -0
- package/lib/commonjs/unifiber/src/diagnostics.js.map +1 -0
- package/lib/commonjs/unifiber/src/fiber.js +199 -0
- package/lib/commonjs/unifiber/src/fiber.js.map +1 -0
- package/lib/commonjs/unifiber/src/host.js +214 -0
- package/lib/commonjs/unifiber/src/host.js.map +1 -0
- package/lib/commonjs/unifiber/src/index.js +38 -0
- package/lib/commonjs/unifiber/src/index.js.map +1 -0
- package/lib/commonjs/utils.js +52 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/convert/index.js +19 -1
- package/lib/commonjs/web/convert/index.js.map +1 -1
- package/lib/commonjs/web/convert/module.d.ts +3 -0
- package/lib/commonjs/web/convert/object/backgroundLayers.js +30 -0
- package/lib/commonjs/web/convert/object/backgroundLayers.js.map +1 -0
- package/lib/commonjs/web/convert/object/fontVariationSettings.js +12 -0
- package/lib/commonjs/web/convert/object/fontVariationSettings.js.map +1 -0
- package/lib/commonjs/web/convert/object/index.js +22 -0
- package/lib/commonjs/web/convert/object/index.js.map +1 -1
- package/lib/commonjs/web/convert/utils.js +7 -1
- package/lib/commonjs/web/convert/utils.js.map +1 -1
- package/lib/commonjs/web/registry.js +6 -4
- package/lib/commonjs/web/registry.js.map +1 -1
- package/lib/commonjs/web/runtime.js +9 -6
- package/lib/commonjs/web/runtime.js.map +1 -1
- package/lib/commonjs/web/utils/unistyle.js +9 -3
- package/lib/commonjs/web/utils/unistyle.js.map +1 -1
- package/lib/module/components/NamedTheme.js +4 -4
- package/lib/module/components/NamedTheme.js.map +1 -1
- package/lib/module/components/ScopedThemeContext.js +3 -1
- package/lib/module/components/ScopedThemeContext.js.map +1 -1
- package/lib/module/components/native/deep/ActivityIndicator.js +5 -0
- package/lib/module/components/native/deep/ActivityIndicator.js.map +1 -0
- package/lib/module/components/native/deep/Animated.js +5 -0
- package/lib/module/components/native/deep/Animated.js.map +1 -0
- package/lib/module/components/native/deep/FlatList.js +5 -0
- package/lib/module/components/native/deep/FlatList.js.map +1 -0
- package/lib/module/components/native/deep/Image.js +5 -0
- package/lib/module/components/native/deep/Image.js.map +1 -0
- package/lib/module/components/native/deep/ImageBackground.js +5 -0
- package/lib/module/components/native/deep/ImageBackground.js.map +1 -0
- package/lib/module/components/native/deep/KeyboardAvoidingView.js +5 -0
- package/lib/module/components/native/deep/KeyboardAvoidingView.js.map +1 -0
- package/lib/module/components/native/deep/Pressable.js +5 -0
- package/lib/module/components/native/deep/Pressable.js.map +1 -0
- package/lib/module/components/native/deep/RefreshControl.js +5 -0
- package/lib/module/components/native/deep/RefreshControl.js.map +1 -0
- package/lib/module/components/native/deep/SafeAreaView.js +5 -0
- package/lib/module/components/native/deep/SafeAreaView.js.map +1 -0
- package/lib/module/components/native/deep/ScrollView.js +5 -0
- package/lib/module/components/native/deep/ScrollView.js.map +1 -0
- package/lib/module/components/native/deep/SectionList.js +5 -0
- package/lib/module/components/native/deep/SectionList.js.map +1 -0
- package/lib/module/components/native/deep/Switch.js +5 -0
- package/lib/module/components/native/deep/Switch.js.map +1 -0
- package/lib/module/components/native/deep/Text.js +5 -0
- package/lib/module/components/native/deep/Text.js.map +1 -0
- package/lib/module/components/native/deep/TextInput.js +5 -0
- package/lib/module/components/native/deep/TextInput.js.map +1 -0
- package/lib/module/components/native/deep/TextNativeComponent.js +8 -0
- package/lib/module/components/native/deep/TextNativeComponent.js.map +1 -0
- package/lib/module/components/native/deep/TouchableHighlight.js +5 -0
- package/lib/module/components/native/deep/TouchableHighlight.js.map +1 -0
- package/lib/module/components/native/deep/TouchableOpacity.js +5 -0
- package/lib/module/components/native/deep/TouchableOpacity.js.map +1 -0
- package/lib/module/components/native/deep/View.js +5 -0
- package/lib/module/components/native/deep/View.js.map +1 -0
- package/lib/module/components/native/deep/ViewNativeComponent.js +8 -0
- package/lib/module/components/native/deep/ViewNativeComponent.js.map +1 -0
- package/lib/module/components/native/deep/VirtualizedList.js +5 -0
- package/lib/module/components/native/deep/VirtualizedList.js.map +1 -0
- package/lib/module/components/native/index.js +43 -0
- package/lib/module/components/native/index.js.map +1 -0
- package/lib/module/core/createUnistylesActivityIndicator.js +13 -3
- package/lib/module/core/createUnistylesActivityIndicator.js.map +1 -1
- package/lib/module/core/createUnistylesElement.native.js +6 -0
- package/lib/module/core/createUnistylesElement.native.js.map +1 -1
- package/lib/module/core/createUnistylesImageBackground.js +26 -19
- package/lib/module/core/createUnistylesImageBackground.js.map +1 -1
- package/lib/module/core/createUnistylesTouchableHighlight.js +6 -0
- package/lib/module/core/createUnistylesTouchableHighlight.js.map +1 -1
- package/lib/module/core/getClassname.js +16 -1
- package/lib/module/core/getClassname.js.map +1 -1
- package/lib/module/core/hasUnistyles.js +21 -0
- package/lib/module/core/hasUnistyles.js.map +1 -0
- package/lib/module/core/withUnistyles/withUnistyles.js +9 -6
- package/lib/module/core/withUnistyles/withUnistyles.js.map +1 -1
- package/lib/module/core/withUnistyles/withUnistyles.native.js +24 -5
- package/lib/module/core/withUnistyles/withUnistyles.native.js.map +1 -1
- package/lib/module/mocks.js +27 -3
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/index.js +69 -76
- package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
- package/lib/module/specs/ShadowRegistry/styleSource.js +60 -0
- package/lib/module/specs/ShadowRegistry/styleSource.js.map +1 -0
- package/lib/module/specs/ShadowRegistry/tracing.js +21 -0
- package/lib/module/specs/ShadowRegistry/tracing.js.map +1 -0
- package/lib/module/unifiber/src/adapters/reanimated.js +152 -0
- package/lib/module/unifiber/src/adapters/reanimated.js.map +1 -0
- package/lib/module/unifiber/src/adapters/registry.js +62 -0
- package/lib/module/unifiber/src/adapters/registry.js.map +1 -0
- package/lib/module/unifiber/src/diagnostics.js +52 -0
- package/lib/module/unifiber/src/diagnostics.js.map +1 -0
- package/lib/module/unifiber/src/fiber.js +183 -0
- package/lib/module/unifiber/src/fiber.js.map +1 -0
- package/lib/module/unifiber/src/host.js +191 -0
- package/lib/module/unifiber/src/host.js.map +1 -0
- package/lib/module/unifiber/src/index.js +33 -0
- package/lib/module/unifiber/src/index.js.map +1 -0
- package/lib/module/utils.js +50 -0
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/convert/index.js +22 -3
- package/lib/module/web/convert/index.js.map +1 -1
- package/lib/module/web/convert/module.d.ts +3 -0
- package/lib/module/web/convert/object/backgroundLayers.js +25 -0
- package/lib/module/web/convert/object/backgroundLayers.js.map +1 -0
- package/lib/module/web/convert/object/fontVariationSettings.js +7 -0
- package/lib/module/web/convert/object/fontVariationSettings.js.map +1 -0
- package/lib/module/web/convert/object/index.js +2 -0
- package/lib/module/web/convert/object/index.js.map +1 -1
- package/lib/module/web/convert/utils.js +4 -0
- package/lib/module/web/convert/utils.js.map +1 -1
- package/lib/module/web/registry.js +6 -4
- package/lib/module/web/registry.js.map +1 -1
- package/lib/module/web/runtime.js +9 -6
- package/lib/module/web/runtime.js.map +1 -1
- package/lib/module/web/utils/unistyle.js +10 -4
- package/lib/module/web/utils/unistyle.js.map +1 -1
- package/lib/typescript/src/components/ScopedThemeContext.d.ts +2 -1
- package/lib/typescript/src/components/ScopedThemeContext.d.ts.map +1 -1
- package/lib/typescript/src/components/native/deep/ActivityIndicator.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/ActivityIndicator.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/Animated.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/Animated.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/FlatList.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/FlatList.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/Image.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/Image.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/ImageBackground.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/ImageBackground.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/KeyboardAvoidingView.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/KeyboardAvoidingView.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/Pressable.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/Pressable.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/RefreshControl.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/RefreshControl.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/SafeAreaView.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/SafeAreaView.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/ScrollView.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/ScrollView.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/SectionList.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/SectionList.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/Switch.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/Switch.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/Text.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/Text.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/TextInput.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/TextInput.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/TextNativeComponent.d.ts +3 -0
- package/lib/typescript/src/components/native/deep/TextNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/TouchableHighlight.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/TouchableHighlight.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/TouchableOpacity.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/TouchableOpacity.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/View.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/View.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/ViewNativeComponent.d.ts +3 -0
- package/lib/typescript/src/components/native/deep/ViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/components/native/deep/VirtualizedList.d.ts +2 -0
- package/lib/typescript/src/components/native/deep/VirtualizedList.d.ts.map +1 -0
- package/lib/typescript/src/components/native/index.d.ts +4 -0
- package/lib/typescript/src/components/native/index.d.ts.map +1 -0
- package/lib/typescript/src/components/scopeChildren.d.ts +1 -1
- package/lib/typescript/src/core/createUnistylesActivityIndicator.d.ts.map +1 -1
- package/lib/typescript/src/core/createUnistylesElement.native.d.ts.map +1 -1
- package/lib/typescript/src/core/createUnistylesImageBackground.d.ts.map +1 -1
- package/lib/typescript/src/core/createUnistylesTouchableHighlight.d.ts.map +1 -1
- package/lib/typescript/src/core/getClassname.d.ts.map +1 -1
- package/lib/typescript/src/core/hasUnistyles.d.ts +2 -0
- package/lib/typescript/src/core/hasUnistyles.d.ts.map +1 -0
- package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts +6 -3
- package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts.map +1 -1
- package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts +7 -4
- package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/ShadowRegistry/styleSource.d.ts +11 -0
- package/lib/typescript/src/specs/ShadowRegistry/styleSource.d.ts.map +1 -0
- package/lib/typescript/src/specs/ShadowRegistry/tracing.d.ts +2 -0
- package/lib/typescript/src/specs/ShadowRegistry/tracing.d.ts.map +1 -0
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +4 -41
- package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
- package/lib/typescript/src/unifiber/src/adapters/reanimated.d.ts +17 -0
- package/lib/typescript/src/unifiber/src/adapters/reanimated.d.ts.map +1 -0
- package/lib/typescript/src/unifiber/src/adapters/registry.d.ts +23 -0
- package/lib/typescript/src/unifiber/src/adapters/registry.d.ts.map +1 -0
- package/lib/typescript/src/unifiber/src/diagnostics.d.ts +10 -0
- package/lib/typescript/src/unifiber/src/diagnostics.d.ts.map +1 -0
- package/lib/typescript/src/unifiber/src/fiber.d.ts +48 -0
- package/lib/typescript/src/unifiber/src/fiber.d.ts.map +1 -0
- package/lib/typescript/src/unifiber/src/host.d.ts +32 -0
- package/lib/typescript/src/unifiber/src/host.d.ts.map +1 -0
- package/lib/typescript/src/unifiber/src/index.d.ts +49 -0
- package/lib/typescript/src/unifiber/src/index.d.ts.map +1 -0
- package/lib/typescript/src/utils.d.ts +1 -0
- package/lib/typescript/src/utils.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/index.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/object/backgroundLayers.d.ts +4 -0
- package/lib/typescript/src/web/convert/object/backgroundLayers.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/fontVariationSettings.d.ts +4 -0
- package/lib/typescript/src/web/convert/object/fontVariationSettings.d.ts.map +1 -0
- package/lib/typescript/src/web/convert/object/index.d.ts +2 -0
- package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -1
- package/lib/typescript/src/web/convert/utils.d.ts +2 -0
- package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
- package/lib/typescript/src/web/registry.d.ts.map +1 -1
- package/lib/typescript/src/web/runtime.d.ts +1 -0
- package/lib/typescript/src/web/runtime.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -1
- package/metro/babel-transformer.js +1102 -0
- package/metro/index.d.ts +31 -0
- package/metro/index.js +170 -0
- package/package.json +50 -32
- package/plugin/index.d.ts +7 -0
- package/plugin/index.js +115 -33
- package/src/components/NamedTheme.tsx +5 -5
- package/src/components/ScopedThemeContext.ts +6 -2
- package/src/components/native/deep/ActivityIndicator.ts +2 -0
- package/src/components/native/deep/Animated.ts +2 -0
- package/src/components/native/deep/FlatList.ts +2 -0
- package/src/components/native/deep/Image.ts +2 -0
- package/src/components/native/deep/ImageBackground.ts +2 -0
- package/src/components/native/deep/KeyboardAvoidingView.ts +2 -0
- package/src/components/native/deep/Pressable.ts +2 -0
- package/src/components/native/deep/RefreshControl.ts +2 -0
- package/src/components/native/deep/SafeAreaView.ts +2 -0
- package/src/components/native/deep/ScrollView.ts +2 -0
- package/src/components/native/deep/SectionList.ts +2 -0
- package/src/components/native/deep/Switch.ts +2 -0
- package/src/components/native/deep/Text.ts +2 -0
- package/src/components/native/deep/TextInput.ts +2 -0
- package/src/components/native/deep/TextNativeComponent.ts +5 -0
- package/src/components/native/deep/TouchableHighlight.ts +2 -0
- package/src/components/native/deep/TouchableOpacity.ts +2 -0
- package/src/components/native/deep/View.ts +2 -0
- package/src/components/native/deep/ViewNativeComponent.ts +5 -0
- package/src/components/native/deep/VirtualizedList.ts +2 -0
- package/src/components/native/index.ts +41 -0
- package/src/core/createUnistylesActivityIndicator.tsx +11 -4
- package/src/core/createUnistylesElement.native.tsx +5 -0
- package/src/core/createUnistylesImageBackground.tsx +33 -25
- package/src/core/createUnistylesTouchableHighlight.tsx +5 -0
- package/src/core/getClassname.ts +10 -1
- package/src/core/hasUnistyles.ts +20 -0
- package/src/core/withUnistyles/withUnistyles.native.tsx +28 -6
- package/src/core/withUnistyles/withUnistyles.tsx +6 -6
- package/src/mocks.ts +14 -5
- package/src/specs/ShadowRegistry/index.ts +62 -103
- package/src/specs/ShadowRegistry/styleSource.ts +78 -0
- package/src/specs/ShadowRegistry/tracing.ts +23 -0
- package/src/specs/ShadowRegistry/types.ts +3 -43
- package/src/unifiber/LICENSE +21 -0
- package/src/unifiber/README.md +92 -0
- package/src/unifiber/src/adapters/reanimated.ts +204 -0
- package/src/unifiber/src/adapters/registry.ts +102 -0
- package/src/unifiber/src/diagnostics.ts +55 -0
- package/src/unifiber/src/fiber.ts +262 -0
- package/src/unifiber/src/host.ts +236 -0
- package/src/unifiber/src/index.ts +43 -0
- package/src/utils.ts +51 -0
- package/src/web/convert/index.ts +39 -3
- package/src/web/convert/object/backgroundLayers.ts +33 -0
- package/src/web/convert/object/fontVariationSettings.ts +7 -0
- package/src/web/convert/object/index.ts +2 -0
- package/src/web/convert/utils.ts +11 -0
- package/src/web/registry.ts +7 -8
- package/src/web/runtime.ts +7 -7
- package/src/web/utils/unistyle.ts +11 -4
- package/lib/commonjs/web/convert/module.d.js +0 -2
- package/lib/commonjs/web/convert/module.d.js.map +0 -1
- package/lib/module/web/convert/module.d.js +0 -2
- package/lib/module/web/convert/module.d.js.map +0 -1
- package/lib/typescript/src/__tests__/mocks.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/mocks.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/passForwardRef.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/passForwardRef.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/scoped-theme.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/scoped-theme.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/shadow-registry.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/shadow-registry.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/web-child-selector.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/web-child-selector.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/web-listener.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/web-listener.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/web-pointer-events.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/web-pointer-events.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/web-runtime.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/web-runtime.spec.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/withUnistyles.spec.d.ts +0 -2
- package/lib/typescript/src/__tests__/withUnistyles.spec.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fiber","contextReaderFor","CLASS_COMPONENT","Tag","ClassComponent","STATE","Symbol","for","hasCSSConfig","cssStyle","key","startsWith","registersOnUpdate","value","Array","isArray","selector","MAX_OWNER_DEPTH","animatedComponentOf","host","memoizedProps","collapsable","publicInstance","stateNode","canonical","current","return","depth","tag","_componentRef","isAnimatedComponent","owner","_updateStyles","shouldComponentUpdate","_cssStyle","updateStylesThroughSource","props","state","original","call","epoch","source","read","rendering","contexts","contextChanged","i","length","context","contextKey","contextKeys","styleProp","style","fresh","resolve","shouldUpdateMarkingRender","args","originalShouldUpdate","apply","reanimatedCSSAdapter","name","gate","claim","attach","undefined","refresh","_CSSManager","update","_willUnmount"],"sourceRoot":"../../../../../src","sources":["unifiber/src/adapters/reanimated.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// An adapter that throws is disabled for the session and reported once
|
|
4
|
+
export const createOwnerRegistry = (source, adapters, onAdapterError) => {
|
|
5
|
+
const disabledAdapters = new Set();
|
|
6
|
+
const disable = (adapter, error) => {
|
|
7
|
+
disabledAdapters.add(adapter);
|
|
8
|
+
onAdapterError?.(`adapter ${adapter.name} failed: ${String(error)}`);
|
|
9
|
+
};
|
|
10
|
+
// Not inline closures: a closure in link() makes Hermes allocate its environment on every call
|
|
11
|
+
const attachOwner = (adapter, host) => {
|
|
12
|
+
try {
|
|
13
|
+
const owner = adapter.claim(host);
|
|
14
|
+
if (owner) {
|
|
15
|
+
adapter.attach(owner, source);
|
|
16
|
+
}
|
|
17
|
+
} catch (error) {
|
|
18
|
+
disable(adapter, error);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const refreshOwner = (adapter, host, seen) => {
|
|
22
|
+
try {
|
|
23
|
+
const owner = adapter.claim(host);
|
|
24
|
+
if (owner && !seen.has(owner)) {
|
|
25
|
+
seen.add(owner);
|
|
26
|
+
adapter.attach(owner, source);
|
|
27
|
+
adapter.refresh(owner, source);
|
|
28
|
+
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
disable(adapter, error);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
link(host) {
|
|
35
|
+
if (!host) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
for (let i = 0; i < adapters.length; i++) {
|
|
39
|
+
const adapter = adapters[i];
|
|
40
|
+
if (adapter.gate(host) && !disabledAdapters.has(adapter)) {
|
|
41
|
+
attachOwner(adapter, host);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
refresh(hosts) {
|
|
46
|
+
const seen = new Set();
|
|
47
|
+
for (let h = 0; h < hosts.length; h++) {
|
|
48
|
+
const host = hosts[h];
|
|
49
|
+
if (!host) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
for (let i = 0; i < adapters.length; i++) {
|
|
53
|
+
const adapter = adapters[i];
|
|
54
|
+
if (adapter.gate(host) && !disabledAdapters.has(adapter)) {
|
|
55
|
+
refreshOwner(adapter, host, seen);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createOwnerRegistry","source","adapters","onAdapterError","disabledAdapters","Set","disable","adapter","error","add","name","String","attachOwner","host","owner","claim","attach","refreshOwner","seen","has","refresh","link","i","length","gate","hosts","h"],"sourceRoot":"../../../../../src","sources":["unifiber/src/adapters/registry.ts"],"mappings":";;AA8BA;AACA,OAAO,MAAMA,mBAAmB,GAAGA,CAC/BC,MAAmB,EACnBC,QAA0C,EAC1CC,cAAyC,KACzB;EAChB,MAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAAe,CAAC;EAChD,MAAMC,OAAO,GAAGA,CAACC,OAAqB,EAAEC,KAAc,KAAK;IACvDJ,gBAAgB,CAACK,GAAG,CAACF,OAAO,CAAC;IAC7BJ,cAAc,GAAG,WAAWI,OAAO,CAACG,IAAI,YAAYC,MAAM,CAACH,KAAK,CAAC,EAAE,CAAC;EACxE,CAAC;EACD;EACA,MAAMI,WAAW,GAAGA,CAACL,OAAqB,EAAEM,IAAU,KAAK;IACvD,IAAI;MACA,MAAMC,KAAK,GAAGP,OAAO,CAACQ,KAAK,CAACF,IAAI,CAAC;MAEjC,IAAIC,KAAK,EAAE;QACPP,OAAO,CAACS,MAAM,CAACF,KAAK,EAAEb,MAAM,CAAC;MACjC;IACJ,CAAC,CAAC,OAAOO,KAAK,EAAE;MACZF,OAAO,CAACC,OAAO,EAAEC,KAAK,CAAC;IAC3B;EACJ,CAAC;EACD,MAAMS,YAAY,GAAGA,CAACV,OAAqB,EAAEM,IAAU,EAAEK,IAAiB,KAAK;IAC3E,IAAI;MACA,MAAMJ,KAAK,GAAGP,OAAO,CAACQ,KAAK,CAACF,IAAI,CAAC;MAEjC,IAAIC,KAAK,IAAI,CAACI,IAAI,CAACC,GAAG,CAACL,KAAK,CAAC,EAAE;QAC3BI,IAAI,CAACT,GAAG,CAACK,KAAK,CAAC;QACfP,OAAO,CAACS,MAAM,CAACF,KAAK,EAAEb,MAAM,CAAC;QAC7BM,OAAO,CAACa,OAAO,CAACN,KAAK,EAAEb,MAAM,CAAC;MAClC;IACJ,CAAC,CAAC,OAAOO,KAAK,EAAE;MACZF,OAAO,CAACC,OAAO,EAAEC,KAAK,CAAC;IAC3B;EACJ,CAAC;EAED,OAAO;IACHa,IAAIA,CAACR,IAAI,EAAE;MACP,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MAEA,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpB,QAAQ,CAACqB,MAAM,EAAED,CAAC,EAAE,EAAE;QACtC,MAAMf,OAAO,GAAGL,QAAQ,CAACoB,CAAC,CAAE;QAE5B,IAAIf,OAAO,CAACiB,IAAI,CAACX,IAAI,CAAC,IAAI,CAACT,gBAAgB,CAACe,GAAG,CAACZ,OAAO,CAAC,EAAE;UACtDK,WAAW,CAACL,OAAO,EAAEM,IAAI,CAAC;QAC9B;MACJ;IACJ,CAAC;IACDO,OAAOA,CAACK,KAAK,EAAE;MACX,MAAMP,IAAI,GAAG,IAAIb,GAAG,CAAS,CAAC;MAE9B,KAAK,IAAIqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACF,MAAM,EAAEG,CAAC,EAAE,EAAE;QACnC,MAAMb,IAAI,GAAGY,KAAK,CAACC,CAAC,CAAC;QAErB,IAAI,CAACb,IAAI,EAAE;UACP;QACJ;QAEA,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpB,QAAQ,CAACqB,MAAM,EAAED,CAAC,EAAE,EAAE;UACtC,MAAMf,OAAO,GAAGL,QAAQ,CAACoB,CAAC,CAAE;UAE5B,IAAIf,OAAO,CAACiB,IAAI,CAACX,IAAI,CAAC,IAAI,CAACT,gBAAgB,CAACe,GAAG,CAACZ,OAAO,CAAC,EAAE;YACtDU,YAAY,CAACV,OAAO,EAAEM,IAAI,EAAEK,IAAI,CAAC;UACrC;QACJ;MACJ;IACJ;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as host from './host';
|
|
4
|
+
|
|
5
|
+
// Bound once: Metro's inline requires
|
|
6
|
+
const {
|
|
7
|
+
committedHalf,
|
|
8
|
+
fiberOf
|
|
9
|
+
} = host;
|
|
10
|
+
const styleDiffers = (a, b) => a.memoizedProps?.style !== b.memoizedProps?.style;
|
|
11
|
+
const flattenInto = (style, out) => {
|
|
12
|
+
if (Array.isArray(style)) {
|
|
13
|
+
for (let i = 0; i < style.length; i++) {
|
|
14
|
+
flattenInto(style[i], out);
|
|
15
|
+
}
|
|
16
|
+
} else if (style && typeof style === 'object') {
|
|
17
|
+
Object.assign(out, style);
|
|
18
|
+
}
|
|
19
|
+
return out;
|
|
20
|
+
};
|
|
21
|
+
// Keys that differ from React's committed props: React re-sends them on the view's next render
|
|
22
|
+
export const verify = (host, expected) => {
|
|
23
|
+
const baseline = committedHalf(fiberOf(host), styleDiffers) ?? fiberOf(host);
|
|
24
|
+
const react = flattenInto(baseline.memoizedProps?.style, {});
|
|
25
|
+
const drift = [];
|
|
26
|
+
for (const key in expected) {
|
|
27
|
+
if (react[key] !== expected[key]) {
|
|
28
|
+
drift.push({
|
|
29
|
+
key,
|
|
30
|
+
react: react[key],
|
|
31
|
+
expected: expected[key]
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return drift;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// Development builds only
|
|
39
|
+
export const getOwners = (host, max = 8) => {
|
|
40
|
+
const owners = [];
|
|
41
|
+
for (let owner = fiberOf(host)._debugOwner; owner && owners.length < max; owner = owner._debugOwner ?? owner.owner) {
|
|
42
|
+
const name = owner.name ?? owner.type?.displayName ?? owner.type?.name ?? owner.type?.render?.name;
|
|
43
|
+
if (name) {
|
|
44
|
+
owners.push(name);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return owners;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// Development builds only
|
|
51
|
+
export const getCreationStack = host => fiberOf(host)._debugStack?.stack;
|
|
52
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["host","committedHalf","fiberOf","styleDiffers","a","b","memoizedProps","style","flattenInto","out","Array","isArray","i","length","Object","assign","verify","expected","baseline","react","drift","key","push","getOwners","max","owners","owner","_debugOwner","name","type","displayName","render","getCreationStack","_debugStack","stack"],"sourceRoot":"../../../../src","sources":["unifiber/src/diagnostics.ts"],"mappings":";;AAEA,OAAO,KAAKA,IAAI,MAAM,QAAQ;;AAE9B;AACA,MAAM;EAAEC,aAAa;EAAEC;AAAQ,CAAC,GAAGF,IAAI;AAEvC,MAAMG,YAAY,GAAGA,CAACC,CAAW,EAAEC,CAAW,KAAKD,CAAC,CAACE,aAAa,EAAEC,KAAK,KAAKF,CAAC,CAACC,aAAa,EAAEC,KAAK;AAEpG,MAAMC,WAAW,GAAGA,CAACD,KAAc,EAAEE,GAA4B,KAAK;EAClE,IAAIC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IACtB,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;MACnCJ,WAAW,CAACD,KAAK,CAACK,CAAC,CAAC,EAAEH,GAAG,CAAC;IAC9B;EACJ,CAAC,MAAM,IAAIF,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3CO,MAAM,CAACC,MAAM,CAACN,GAAG,EAAEF,KAAK,CAAC;EAC7B;EAEA,OAAOE,GAAG;AACd,CAAC;AAID;AACA,OAAO,MAAMO,MAAM,GAAGA,CAAChB,IAAU,EAAEiB,QAAiC,KAAmB;EACnF,MAAMC,QAAQ,GAAGjB,aAAa,CAACC,OAAO,CAACF,IAAI,CAAC,EAAEG,YAAY,CAAC,IAAID,OAAO,CAACF,IAAI,CAAC;EAC5E,MAAMmB,KAAK,GAAGX,WAAW,CAACU,QAAQ,CAACZ,aAAa,EAAEC,KAAK,EAAE,CAAC,CAAC,CAAC;EAC5D,MAAMa,KAAmB,GAAG,EAAE;EAE9B,KAAK,MAAMC,GAAG,IAAIJ,QAAQ,EAAE;IACxB,IAAIE,KAAK,CAACE,GAAG,CAAC,KAAKJ,QAAQ,CAACI,GAAG,CAAC,EAAE;MAC9BD,KAAK,CAACE,IAAI,CAAC;QAAED,GAAG;QAAEF,KAAK,EAAEA,KAAK,CAACE,GAAG,CAAC;QAAEJ,QAAQ,EAAEA,QAAQ,CAACI,GAAG;MAAE,CAAC,CAAC;IACnE;EACJ;EAEA,OAAOD,KAAK;AAChB,CAAC;;AAED;AACA,OAAO,MAAMG,SAAS,GAAGA,CAACvB,IAAU,EAAEwB,GAAG,GAAG,CAAC,KAAoB;EAC7D,MAAMC,MAAqB,GAAG,EAAE;EAEhC,KAAK,IAAIC,KAAK,GAAGxB,OAAO,CAACF,IAAI,CAAC,CAAC2B,WAAW,EAAED,KAAK,IAAID,MAAM,CAACZ,MAAM,GAAGW,GAAG,EAAEE,KAAK,GAAGA,KAAK,CAACC,WAAW,IAAID,KAAK,CAACA,KAAK,EAAE;IAChH,MAAME,IAAI,GAAGF,KAAK,CAACE,IAAI,IAAIF,KAAK,CAACG,IAAI,EAAEC,WAAW,IAAIJ,KAAK,CAACG,IAAI,EAAED,IAAI,IAAIF,KAAK,CAACG,IAAI,EAAEE,MAAM,EAAEH,IAAI;IAElG,IAAIA,IAAI,EAAE;MACNH,MAAM,CAACH,IAAI,CAACM,IAAI,CAAC;IACrB;EACJ;EAEA,OAAOH,MAAM;AACjB,CAAC;;AAED;AACA,OAAO,MAAMO,gBAAgB,GAAIhC,IAAU,IAAyBE,OAAO,CAACF,IAAI,CAAC,CAACiC,WAAW,EAAEC,KAAK","ignoreList":[]}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// The only module that reads React's fiber fields. A missing field gives undefined / null for that call, never a throw.
|
|
4
|
+
|
|
5
|
+
// ReactWorkTags, React 19
|
|
6
|
+
export const Tag = {
|
|
7
|
+
ClassComponent: 1,
|
|
8
|
+
HostRoot: 3,
|
|
9
|
+
HostComponent: 5,
|
|
10
|
+
ContextProvider: 10,
|
|
11
|
+
Suspense: 13,
|
|
12
|
+
Offscreen: 22,
|
|
13
|
+
Activity: 31
|
|
14
|
+
};
|
|
15
|
+
export const raw = fiber => fiber;
|
|
16
|
+
export const hostFiberOf = instance => instance?.__internalInstanceHandle ?? null;
|
|
17
|
+
|
|
18
|
+
// RN composites that keep their host behind a ref of their own, most common first
|
|
19
|
+
const compositeHostRefs = [handle => handle?.getScrollResponder?.()?.getNativeScrollRef?.(),
|
|
20
|
+
// FlatList, SectionList, VirtualizedList
|
|
21
|
+
handle => handle?.getNativeScrollRef?.(),
|
|
22
|
+
// ScrollView
|
|
23
|
+
handle => handle?._viewRef,
|
|
24
|
+
// ImageBackground
|
|
25
|
+
handle => handle?.viewRef?.current,
|
|
26
|
+
// KeyboardAvoidingView
|
|
27
|
+
handle => handle?._nativeRef // RefreshControl
|
|
28
|
+
];
|
|
29
|
+
export const resolveHostFiber = handle => {
|
|
30
|
+
const direct = hostFiberOf(handle);
|
|
31
|
+
if (direct || !handle) {
|
|
32
|
+
return direct;
|
|
33
|
+
}
|
|
34
|
+
for (let i = 0; i < compositeHostRefs.length; i++) {
|
|
35
|
+
const fiber = hostFiberOf(compositeHostRefs[i](handle));
|
|
36
|
+
if (fiber) {
|
|
37
|
+
return fiber;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
};
|
|
42
|
+
export const fiberOfInstance = instance => instance?._reactInternals ?? null;
|
|
43
|
+
export const firstHostBelow = fiber => {
|
|
44
|
+
let current = raw(fiber);
|
|
45
|
+
while (current && current.tag !== Tag.HostComponent) {
|
|
46
|
+
current = current.child;
|
|
47
|
+
}
|
|
48
|
+
return current ?? null;
|
|
49
|
+
};
|
|
50
|
+
export const hostAncestor = (fiber, levels = 1) => {
|
|
51
|
+
let current = raw(fiber)?.return;
|
|
52
|
+
while (current) {
|
|
53
|
+
if (current.tag === Tag.HostComponent && --levels === 0) {
|
|
54
|
+
return current;
|
|
55
|
+
}
|
|
56
|
+
current = current.return;
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
};
|
|
60
|
+
export const shadowNodesOf = (fiber, out) => {
|
|
61
|
+
const current = raw(fiber);
|
|
62
|
+
const node = current?.stateNode?.node;
|
|
63
|
+
const alternateNode = current?.alternate?.stateNode?.node;
|
|
64
|
+
if (node) {
|
|
65
|
+
out.push(node);
|
|
66
|
+
}
|
|
67
|
+
if (alternateNode && alternateNode !== node) {
|
|
68
|
+
out.push(alternateNode);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const childOfParent = (parent, a, b) => {
|
|
72
|
+
for (let child = parent.child; child; child = child.sibling) {
|
|
73
|
+
if (child === a || child === b) {
|
|
74
|
+
return child;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// React 19.2 findCurrentFiberUsingSlowPath, returning null where React throws
|
|
81
|
+
export const committedOf = fiber => {
|
|
82
|
+
const self = raw(fiber);
|
|
83
|
+
if (!self) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
const alternate = self.alternate;
|
|
87
|
+
if (!alternate) {
|
|
88
|
+
let root = self;
|
|
89
|
+
while (root.return) {
|
|
90
|
+
root = root.return;
|
|
91
|
+
}
|
|
92
|
+
return root.tag === Tag.HostRoot ? fiber : null;
|
|
93
|
+
}
|
|
94
|
+
let a = self;
|
|
95
|
+
let b = alternate;
|
|
96
|
+
while (true) {
|
|
97
|
+
const parentA = a.return;
|
|
98
|
+
if (!parentA) {
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
const parentB = parentA.alternate;
|
|
102
|
+
if (!parentB) {
|
|
103
|
+
const next = parentA.return;
|
|
104
|
+
if (next) {
|
|
105
|
+
a = next;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
if (parentA.child === parentB.child) {
|
|
111
|
+
const found = childOfParent(parentA, a, b);
|
|
112
|
+
return found === a ? fiber : found === b ? alternate : null;
|
|
113
|
+
}
|
|
114
|
+
if (a.return !== b.return) {
|
|
115
|
+
a = parentA;
|
|
116
|
+
b = parentB;
|
|
117
|
+
} else {
|
|
118
|
+
const inA = childOfParent(parentA, a, b);
|
|
119
|
+
const inB = inA ? null : childOfParent(parentB, a, b);
|
|
120
|
+
if (!inA && !inB) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
const aUnderA = inA ? inA === a : inB !== a;
|
|
124
|
+
a = aUnderA ? parentA : parentB;
|
|
125
|
+
b = aUnderA ? parentB : parentA;
|
|
126
|
+
}
|
|
127
|
+
if (a.alternate !== b) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (a.tag !== Tag.HostRoot) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
return a.stateNode?.current === a ? fiber : alternate;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// a provider's other half can hold its previous value
|
|
138
|
+
const committedProviderValue = provider => {
|
|
139
|
+
const alternate = provider.alternate;
|
|
140
|
+
if (!alternate || alternate.memoizedProps?.value === provider.memoizedProps?.value) {
|
|
141
|
+
return provider.memoizedProps?.value;
|
|
142
|
+
}
|
|
143
|
+
return (raw(committedOf(provider)) ?? provider).memoizedProps?.value;
|
|
144
|
+
};
|
|
145
|
+
export const readContext = (fiber, context, fallback) => {
|
|
146
|
+
for (let current = raw(fiber)?.return; current; current = current.return) {
|
|
147
|
+
if (current.tag === Tag.ContextProvider && (current.type === context || current.type?._context === context)) {
|
|
148
|
+
return committedProviderValue(current);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return fallback;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// Fabric is a secondary renderer: its context stack is `_currentValue2`. Only valid during render.
|
|
155
|
+
export const readContextDuringRender = context => context?._currentValue2;
|
|
156
|
+
export const contextReaderFor = (instance, rendering) => rendering ? readContextDuringRender : context => readCommittedContext(instance, context);
|
|
157
|
+
const NO_PROVIDER = Symbol('no provider');
|
|
158
|
+
const readCommittedContext = (instance, context) => {
|
|
159
|
+
const value = readContext(committedOf(fiberOfInstance(instance)), context, NO_PROVIDER);
|
|
160
|
+
return value === NO_PROVIDER ? readContextDuringRender(context) : value;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
// pendingProps too, so React still bails out. Replaced, not mutated: props are frozen in dev.
|
|
164
|
+
export const patchRenderedProps = (fiber, patch) => {
|
|
165
|
+
const self = raw(fiber);
|
|
166
|
+
if (!self) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
const patchedSelf = replaceProps(self, patch);
|
|
170
|
+
const patchedAlternate = self.alternate ? replaceProps(self.alternate, patch) : false;
|
|
171
|
+
return patchedSelf || patchedAlternate;
|
|
172
|
+
};
|
|
173
|
+
const replaceProps = (target, patch) => {
|
|
174
|
+
const props = target.memoizedProps;
|
|
175
|
+
const next = props ? patch(props) : undefined;
|
|
176
|
+
if (!next) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
target.memoizedProps = next;
|
|
180
|
+
target.pendingProps = next;
|
|
181
|
+
return true;
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=fiber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Tag","ClassComponent","HostRoot","HostComponent","ContextProvider","Suspense","Offscreen","Activity","raw","fiber","hostFiberOf","instance","__internalInstanceHandle","compositeHostRefs","handle","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","current","_nativeRef","resolveHostFiber","direct","i","length","fiberOfInstance","_reactInternals","firstHostBelow","tag","child","hostAncestor","levels","return","shadowNodesOf","out","node","stateNode","alternateNode","alternate","push","childOfParent","parent","a","b","sibling","committedOf","self","root","parentA","parentB","next","found","inA","inB","aUnderA","committedProviderValue","provider","memoizedProps","value","readContext","context","fallback","type","_context","readContextDuringRender","_currentValue2","contextReaderFor","rendering","readCommittedContext","NO_PROVIDER","Symbol","patchRenderedProps","patch","patchedSelf","replaceProps","patchedAlternate","target","props","undefined","pendingProps"],"sourceRoot":"../../../../src","sources":["unifiber/src/fiber.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// A Host is the view's creation fiber behind an opaque type: no allocation, and stable identity (=== / WeakMap keys).
|
|
4
|
+
|
|
5
|
+
import * as fiber from './fiber';
|
|
6
|
+
|
|
7
|
+
// Bound once: Metro's inline requires would turn each imported name used in a function into a require per call
|
|
8
|
+
const {
|
|
9
|
+
committedOf,
|
|
10
|
+
fiberOfInstance,
|
|
11
|
+
firstHostBelow,
|
|
12
|
+
hostAncestor,
|
|
13
|
+
patchRenderedProps: patchFiberProps,
|
|
14
|
+
raw,
|
|
15
|
+
resolveHostFiber,
|
|
16
|
+
shadowNodesOf
|
|
17
|
+
} = fiber;
|
|
18
|
+
const {
|
|
19
|
+
HostComponent: HOST_COMPONENT,
|
|
20
|
+
Offscreen: OFFSCREEN,
|
|
21
|
+
Suspense: SUSPENSE,
|
|
22
|
+
Activity: ACTIVITY
|
|
23
|
+
} = fiber.Tag;
|
|
24
|
+
export const fiberOf = host => host;
|
|
25
|
+
export const toHost = fiber => fiber?.stateNode?.canonical?.internalInstanceHandle ?? undefined;
|
|
26
|
+
const resolveRefSlowly = ref => raw(resolveHostFiber(ref)) ?? toHost(firstHostBelow(fiberOfInstance(ref)));
|
|
27
|
+
|
|
28
|
+
// The fast path is inlined: legacy Hermes doesn't inline calls
|
|
29
|
+
export const getHostFor = ref => {
|
|
30
|
+
const fiber = ref?.__internalInstanceHandle;
|
|
31
|
+
if (fiber !== undefined) {
|
|
32
|
+
return fiber;
|
|
33
|
+
}
|
|
34
|
+
return resolveRefSlowly(ref);
|
|
35
|
+
};
|
|
36
|
+
export const getShadowNodeFor = ref => {
|
|
37
|
+
const fiber = ref?.__internalInstanceHandle;
|
|
38
|
+
if (fiber !== undefined) {
|
|
39
|
+
return fiber.stateNode?.node;
|
|
40
|
+
}
|
|
41
|
+
return resolveRefSlowly(ref)?.stateNode?.node;
|
|
42
|
+
};
|
|
43
|
+
export const getHostForInstanceHandle = handle => toHost(handle);
|
|
44
|
+
|
|
45
|
+
// Not the first host below the scroll view: on iOS a refreshControl comes first
|
|
46
|
+
export const getContentContainerFor = ref => {
|
|
47
|
+
const scroll = ref?.getInnerViewRef ? ref : ref?.getNativeScrollRef?.() ?? ref?.getScrollResponder?.();
|
|
48
|
+
return getHostFor(scroll?.getInnerViewRef?.());
|
|
49
|
+
};
|
|
50
|
+
export const getShadowNode = host => fiberOf(host).stateNode?.node;
|
|
51
|
+
|
|
52
|
+
// Two nodes only while a render is in flight; after a commit both halves share one
|
|
53
|
+
export const getShadowNodes = (host, out = []) => {
|
|
54
|
+
shadowNodesOf(host, out);
|
|
55
|
+
return out;
|
|
56
|
+
};
|
|
57
|
+
export const getNativeTag = host => fiberOf(host).stateNode?.canonical?.nativeTag;
|
|
58
|
+
export const getParentHost = host => toHost(hostAncestor(host));
|
|
59
|
+
export const patchRenderedProps = (host, patch) => patchFiberProps(host, patch);
|
|
60
|
+
export const HiddenBy = {
|
|
61
|
+
None: 0,
|
|
62
|
+
Suspense: 1,
|
|
63
|
+
Freeze: 2,
|
|
64
|
+
Activity: 4
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// `return` can point into either half of a pair; ask which half is committed only when they disagree
|
|
68
|
+
export const committedHalf = (fiber, differs) => {
|
|
69
|
+
const alternate = fiber.alternate;
|
|
70
|
+
if (!alternate || !differs(fiber, alternate)) {
|
|
71
|
+
return fiber;
|
|
72
|
+
}
|
|
73
|
+
return raw(committedOf(fiber)) ?? null;
|
|
74
|
+
};
|
|
75
|
+
const hiddenStateDiffers = (a, b) => a.memoizedState === null !== (b.memoizedState === null);
|
|
76
|
+
|
|
77
|
+
// React's own visibility bit on the Offscreen instance: shared by both halves and flipped in the commit before refs
|
|
78
|
+
// detach, so it also holds inside a ref cleanup, where the committed half is still the old tree
|
|
79
|
+
const OFFSCREEN_VISIBLE = 1;
|
|
80
|
+
const isOffscreenHidden = offscreen => {
|
|
81
|
+
const visibility = offscreen.stateNode?._visibility;
|
|
82
|
+
if (typeof visibility === 'number') {
|
|
83
|
+
return (visibility & OFFSCREEN_VISIBLE) === 0;
|
|
84
|
+
}
|
|
85
|
+
return committedHalf(offscreen, hiddenStateDiffers)?.memoizedState != null;
|
|
86
|
+
};
|
|
87
|
+
const freezeDiffers = (a, b) => a.memoizedProps?.freeze !== b.memoizedProps?.freeze;
|
|
88
|
+
|
|
89
|
+
// react-freeze: Freeze > Suspense > Suspender. The Suspender keeps stale props because it throws, so read Freeze's.
|
|
90
|
+
const isFrozenBoundary = suspense => committedHalf(suspense.return, freezeDiffers)?.memoizedProps?.freeze === true;
|
|
91
|
+
|
|
92
|
+
// Every hidden subtree sits under an Offscreen fiber with memoizedState set
|
|
93
|
+
export const getHiddenReasons = host => {
|
|
94
|
+
let reasons = 0;
|
|
95
|
+
for (let current = fiberOf(host).return; current; current = current.return) {
|
|
96
|
+
if (current.tag !== OFFSCREEN || !isOffscreenHidden(current)) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const boundary = current.return;
|
|
100
|
+
if (boundary?.tag === ACTIVITY) {
|
|
101
|
+
reasons |= HiddenBy.Activity;
|
|
102
|
+
} else if (boundary?.tag === SUSPENSE) {
|
|
103
|
+
reasons |= isFrozenBoundary(boundary) ? HiddenBy.Freeze : HiddenBy.Suspense;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return reasons;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
// Any hidden Offscreen, as in collectVisibleAncestors. Stops at the first: the reason isn't needed
|
|
110
|
+
export const isHidden = host => {
|
|
111
|
+
for (let current = fiberOf(host).return; current; current = current.return) {
|
|
112
|
+
if (current.tag === OFFSCREEN && isOffscreenHidden(current)) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
117
|
+
};
|
|
118
|
+
export const isSuspended = host => (getHiddenReasons(host) & HiddenBy.Suspense) !== 0;
|
|
119
|
+
export const isFrozen = host => (getHiddenReasons(host) & HiddenBy.Freeze) !== 0;
|
|
120
|
+
export const isInHiddenActivity = host => (getHiddenReasons(host) & HiddenBy.Activity) !== 0;
|
|
121
|
+
const isHiddenOffscreen = (offscreen, boundaries) => {
|
|
122
|
+
let hidden = boundaries.get(offscreen);
|
|
123
|
+
if (hidden === undefined) {
|
|
124
|
+
hidden = isOffscreenHidden(offscreen);
|
|
125
|
+
boundaries.set(offscreen, hidden);
|
|
126
|
+
if (offscreen.alternate) {
|
|
127
|
+
boundaries.set(offscreen.alternate, hidden);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return hidden;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
// Hot loops below: indexed loops and writes, explicit null checks, no helper calls (legacy Hermes)
|
|
134
|
+
export const collectVisibleAncestors = (hosts, visit) => {
|
|
135
|
+
const visibleByTag = new Map();
|
|
136
|
+
const boundaries = new Map();
|
|
137
|
+
const pending = [];
|
|
138
|
+
for (let h = 0; h < hosts.length; h++) {
|
|
139
|
+
let visible = true;
|
|
140
|
+
let count = 0;
|
|
141
|
+
for (let current = hosts[h]; current != null; current = current.return) {
|
|
142
|
+
if (current.tag === HOST_COMPONENT) {
|
|
143
|
+
const stateNode = current.stateNode;
|
|
144
|
+
if (stateNode == null || stateNode.canonical == null) {
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
const answer = visibleByTag.get(stateNode.canonical.nativeTag);
|
|
148
|
+
if (answer !== undefined) {
|
|
149
|
+
visible = answer;
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
pending[count++] = current;
|
|
153
|
+
} else if (current.tag === OFFSCREEN && isHiddenOffscreen(current, boundaries)) {
|
|
154
|
+
visible = false;
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
for (let i = 0; i < count; i++) {
|
|
159
|
+
const canonical = pending[i].stateNode.canonical;
|
|
160
|
+
visibleByTag.set(canonical.nativeTag, visible);
|
|
161
|
+
if (visible && canonical.internalInstanceHandle != null) {
|
|
162
|
+
visit(canonical.internalInstanceHandle);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// Hidden hosts included
|
|
169
|
+
export const collectAncestors = (hosts, visit) => {
|
|
170
|
+
const visitedByTag = new Set();
|
|
171
|
+
for (let h = 0; h < hosts.length; h++) {
|
|
172
|
+
for (let current = hosts[h]; current != null; current = current.return) {
|
|
173
|
+
if (current.tag !== HOST_COMPONENT) {
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
const stateNode = current.stateNode;
|
|
177
|
+
if (stateNode == null || stateNode.canonical == null) {
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
const canonical = stateNode.canonical;
|
|
181
|
+
if (visitedByTag.has(canonical.nativeTag)) {
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
visitedByTag.add(canonical.nativeTag);
|
|
185
|
+
if (canonical.internalInstanceHandle != null) {
|
|
186
|
+
visit(canonical.internalInstanceHandle);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fiber","committedOf","fiberOfInstance","firstHostBelow","hostAncestor","patchRenderedProps","patchFiberProps","raw","resolveHostFiber","shadowNodesOf","HostComponent","HOST_COMPONENT","Offscreen","OFFSCREEN","Suspense","SUSPENSE","Activity","ACTIVITY","Tag","fiberOf","host","toHost","stateNode","canonical","internalInstanceHandle","undefined","resolveRefSlowly","ref","getHostFor","__internalInstanceHandle","getShadowNodeFor","node","getHostForInstanceHandle","handle","getContentContainerFor","scroll","getInnerViewRef","getNativeScrollRef","getScrollResponder","getShadowNode","getShadowNodes","out","getNativeTag","nativeTag","getParentHost","patch","HiddenBy","None","Freeze","committedHalf","differs","alternate","hiddenStateDiffers","a","b","memoizedState","OFFSCREEN_VISIBLE","isOffscreenHidden","offscreen","visibility","_visibility","freezeDiffers","memoizedProps","freeze","isFrozenBoundary","suspense","return","getHiddenReasons","reasons","current","tag","boundary","isHidden","isSuspended","isFrozen","isInHiddenActivity","isHiddenOffscreen","boundaries","hidden","get","set","collectVisibleAncestors","hosts","visit","visibleByTag","Map","pending","h","length","visible","count","answer","i","collectAncestors","visitedByTag","Set","has","add"],"sourceRoot":"../../../../src","sources":["unifiber/src/host.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createOwnerRegistry } from './adapters/registry';
|
|
4
|
+
import { animatedComponentOf, reanimatedCSSAdapter } from './adapters/reanimated';
|
|
5
|
+
import { getCreationStack, getOwners, verify } from './diagnostics';
|
|
6
|
+
import * as HostApi from './host';
|
|
7
|
+
// Object literals, not classes: static methods on a Babel-transpiled class are slower on Hermes
|
|
8
|
+
export const Fiber = {
|
|
9
|
+
getHostFor: HostApi.getHostFor,
|
|
10
|
+
getShadowNodeFor: HostApi.getShadowNodeFor,
|
|
11
|
+
getHostForInstanceHandle: HostApi.getHostForInstanceHandle,
|
|
12
|
+
getContentContainerFor: HostApi.getContentContainerFor,
|
|
13
|
+
getShadowNode: HostApi.getShadowNode,
|
|
14
|
+
getShadowNodes: HostApi.getShadowNodes,
|
|
15
|
+
getNativeTag: HostApi.getNativeTag,
|
|
16
|
+
getParentHost: HostApi.getParentHost,
|
|
17
|
+
isHidden: HostApi.isHidden,
|
|
18
|
+
isSuspended: HostApi.isSuspended,
|
|
19
|
+
isFrozen: HostApi.isFrozen,
|
|
20
|
+
isInHiddenActivity: HostApi.isInHiddenActivity,
|
|
21
|
+
collectVisibleAncestors: HostApi.collectVisibleAncestors,
|
|
22
|
+
collectAncestors: HostApi.collectAncestors,
|
|
23
|
+
patchRenderedProps: HostApi.patchRenderedProps,
|
|
24
|
+
verify,
|
|
25
|
+
getOwners,
|
|
26
|
+
getCreationStack,
|
|
27
|
+
createOwnerRegistry
|
|
28
|
+
};
|
|
29
|
+
export const Reanimated = {
|
|
30
|
+
animatedComponentOf,
|
|
31
|
+
cssAdapter: reanimatedCSSAdapter
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createOwnerRegistry","animatedComponentOf","reanimatedCSSAdapter","getCreationStack","getOwners","verify","HostApi","Fiber","getHostFor","getShadowNodeFor","getHostForInstanceHandle","getContentContainerFor","getShadowNode","getShadowNodes","getNativeTag","getParentHost","isHidden","isSuspended","isFrozen","isInHiddenActivity","collectVisibleAncestors","collectAncestors","patchRenderedProps","Reanimated","cssAdapter"],"sourceRoot":"../../../../src","sources":["unifiber/src/index.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,qBAAqB;AACzD,SAASC,mBAAmB,EAAEC,oBAAoB,QAAQ,uBAAuB;AACjF,SAASC,gBAAgB,EAAEC,SAAS,EAAEC,MAAM,QAAQ,eAAe;AACnE,OAAO,KAAKC,OAAO,MAAM,QAAQ;AAOjC;AACA,OAAO,MAAMC,KAAK,GAAG;EACjBC,UAAU,EAAEF,OAAO,CAACE,UAAU;EAC9BC,gBAAgB,EAAEH,OAAO,CAACG,gBAAgB;EAC1CC,wBAAwB,EAAEJ,OAAO,CAACI,wBAAwB;EAC1DC,sBAAsB,EAAEL,OAAO,CAACK,sBAAsB;EAEtDC,aAAa,EAAEN,OAAO,CAACM,aAAa;EACpCC,cAAc,EAAEP,OAAO,CAACO,cAAc;EACtCC,YAAY,EAAER,OAAO,CAACQ,YAAY;EAClCC,aAAa,EAAET,OAAO,CAACS,aAAa;EAEpCC,QAAQ,EAAEV,OAAO,CAACU,QAAQ;EAC1BC,WAAW,EAAEX,OAAO,CAACW,WAAW;EAChCC,QAAQ,EAAEZ,OAAO,CAACY,QAAQ;EAC1BC,kBAAkB,EAAEb,OAAO,CAACa,kBAAkB;EAE9CC,uBAAuB,EAAEd,OAAO,CAACc,uBAAuB;EACxDC,gBAAgB,EAAEf,OAAO,CAACe,gBAAgB;EAE1CC,kBAAkB,EAAEhB,OAAO,CAACgB,kBAAkB;EAE9CjB,MAAM;EACND,SAAS;EACTD,gBAAgB;EAEhBH;AACJ,CAAC;AAED,OAAO,MAAMuB,UAAU,GAAG;EACtBtB,mBAAmB;EACnBuB,UAAU,EAAEtB;AAChB,CAAC","ignoreList":[]}
|
package/lib/module/utils.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export const isDefined = value => value !== undefined && value !== null;
|
|
4
|
+
|
|
5
|
+
// Reanimated useAnimatedStyle handle, it's a plain object, not an Animated.Node
|
|
6
|
+
// styleUpdaterContainer was added in Reanimated 4.1, so check only the keys every version has
|
|
7
|
+
export const isAnimatedStyleHandle = value => typeof value === 'object' && value !== null && 'viewDescriptors' in value && 'initial' in value;
|
|
4
8
|
export const deepMergeObjects = (...sources) => {
|
|
5
9
|
const target = {};
|
|
6
10
|
sources.filter(isDefined).forEach(source => {
|
|
@@ -19,7 +23,53 @@ export const deepMergeObjects = (...sources) => {
|
|
|
19
23
|
});
|
|
20
24
|
return target;
|
|
21
25
|
};
|
|
26
|
+
|
|
27
|
+
// React tells a class component from a function component by these keys
|
|
28
|
+
const CLASS_PROTOTYPE_KEYS = ['isReactComponent', 'render'];
|
|
29
|
+
const CLASS_STATIC_KEYS = ['contextType', 'contextTypes', 'childContextTypes', 'getDerivedStateFromProps'];
|
|
30
|
+
|
|
31
|
+
// owner doesn't have the key, objects that inherit from owner read it from source
|
|
32
|
+
const hideFromOwner = (owner, source, key) => {
|
|
33
|
+
Object.defineProperty(owner, key, {
|
|
34
|
+
configurable: true,
|
|
35
|
+
get() {
|
|
36
|
+
return this === owner ? undefined : Reflect.get(source, key, this);
|
|
37
|
+
},
|
|
38
|
+
set(value) {
|
|
39
|
+
Object.defineProperty(this, key, {
|
|
40
|
+
value,
|
|
41
|
+
writable: true,
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
const inheritNativeClass = (Component, UnistylesComponent) => {
|
|
49
|
+
function UnistylesClassComponent(...args) {
|
|
50
|
+
if (this instanceof UnistylesClassComponent) {
|
|
51
|
+
return Reflect.construct(Component, args, new.target ?? this.constructor);
|
|
52
|
+
}
|
|
53
|
+
return UnistylesComponent(args[0]);
|
|
54
|
+
}
|
|
55
|
+
Object.setPrototypeOf(UnistylesClassComponent, Component);
|
|
56
|
+
UnistylesClassComponent.prototype = Object.create(Component.prototype, {
|
|
57
|
+
constructor: {
|
|
58
|
+
value: UnistylesClassComponent,
|
|
59
|
+
writable: true,
|
|
60
|
+
configurable: true
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
// only the keys of the class, eg. React warns about a subclass with a `contextType` key that isn't a context
|
|
64
|
+
CLASS_PROTOTYPE_KEYS.filter(key => key in Component.prototype).forEach(key => hideFromOwner(UnistylesClassComponent.prototype, Component.prototype, key));
|
|
65
|
+
CLASS_STATIC_KEYS.filter(key => key in Component).forEach(key => hideFromOwner(UnistylesClassComponent, Component, key));
|
|
66
|
+
return UnistylesClassComponent;
|
|
67
|
+
};
|
|
22
68
|
export const copyComponentProperties = (Component, UnistylesComponent) => {
|
|
69
|
+
// static properties (eg. displayName) are inherited from the class
|
|
70
|
+
if (Component?.prototype?.isReactComponent && typeof UnistylesComponent === 'function') {
|
|
71
|
+
return inheritNativeClass(Component, UnistylesComponent);
|
|
72
|
+
}
|
|
23
73
|
Object.entries(Component).forEach(([key, value]) => {
|
|
24
74
|
// Filter out the keys we don't want to copy
|
|
25
75
|
if (['$$typeof', 'render', 'contextType'].includes(key)) {
|