react-native-tvos 0.85.3-1 → 0.86.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/Libraries/Animated/AnimatedImplementation.js +6 -6
- package/Libraries/Animated/NativeAnimatedAllowlist.js +21 -0
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedAddition.js +1 -1
- package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +1 -1
- package/Libraries/Animated/nodes/AnimatedDivision.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -24
- package/Libraries/Animated/nodes/AnimatedModulo.js +1 -1
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +1 -1
- package/Libraries/Animated/nodes/AnimatedStyle.js +2 -2
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +1 -1
- package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +2 -2
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +4 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.h +5 -5
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -2
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/RCTBlobCollector.h +1 -1
- package/Libraries/Blob/RCTBlobCollector.mm +14 -26
- package/Libraries/Blob/RCTBlobManager.mm +11 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +29 -23
- package/Libraries/Components/Keyboard/Keyboard.js +4 -2
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -27
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -0
- package/Libraries/Components/Pressable/Pressable.js +2 -2
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +7 -8
- package/Libraries/Components/ScrollView/ScrollView.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +2 -2
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
- package/Libraries/Components/Switch/Switch.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +25 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +2 -2
- package/Libraries/Components/TextInput/TextInput.d.ts +24 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +24 -0
- package/Libraries/Components/TextInput/TextInput.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +5 -5
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +5 -5
- package/Libraries/Components/Touchable/PooledClass.js +4 -4
- package/Libraries/Components/Touchable/Touchable.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -10
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +10 -2
- package/Libraries/Components/View/View.js +100 -95
- package/Libraries/Components/View/ViewPropTypes.js +3 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +8 -0
- package/Libraries/Core/ExceptionsManager.js +2 -8
- package/Libraries/Core/InitializeCore.js +0 -13
- package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +2 -2
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +9 -5
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +15 -35
- package/Libraries/Image/RCTImageLoader.mm +4 -2
- package/Libraries/Image/RelativeImageStub.js +2 -2
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -12
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -2
- package/Libraries/LogBox/LogBoxInspectorContainer.js +24 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +27 -4
- package/Libraries/LogBox/UI/LogBoxButton.js +47 -33
- package/Libraries/LogBox/UI/LogBoxInspector.js +61 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +3 -1
- package/Libraries/LogBox/UI/LogBoxNotification.js +2 -0
- package/Libraries/Modal/Modal.js +12 -7
- package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +0 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +15 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +17 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -2
- package/Libraries/NativeComponent/ViewConfigIgnore.js +4 -2
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.mm +1 -2
- package/Libraries/Network/XMLHttpRequest.js +29 -12
- package/Libraries/Pressability/Pressability.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +2 -3
- package/Libraries/ReactNative/AppContainer-prod.js +1 -2
- package/Libraries/ReactNative/AppContainer.js +0 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +16 -16
- package/Libraries/ReactNative/DeprecatedPerformanceLoggerStub.js +83 -0
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/{Utilities → ReactNative}/IPerformanceLogger.d.ts +8 -5
- package/Libraries/{Utilities/IPerformanceLogger.js → ReactNative/IPerformanceLogger.flow.js} +12 -9
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +14 -14
- package/Libraries/ReactNative/RendererImplementation.js +26 -143
- package/Libraries/ReactNative/RendererProxy.js +4 -15
- package/Libraries/ReactNative/renderApplication.js +33 -59
- package/Libraries/ReactNative/requireNativeComponent.js +3 -3
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -32
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +3 -3
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +2 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +6 -8
- package/Libraries/StyleSheet/StyleSheetTypes.js +11 -11
- package/Libraries/StyleSheet/flattenStyle.js +1 -1
- package/Libraries/StyleSheet/private/_TransformStyle.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +19 -9
- package/Libraries/StyleSheet/processBackgroundSize.js +7 -12
- package/Libraries/StyleSheet/processBoxShadow.js +9 -47
- package/Libraries/StyleSheet/processFilter.js +16 -8
- package/Libraries/StyleSheet/processTransformOrigin.js +10 -3
- package/Libraries/Text/Text.js +4 -4
- package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +16 -2
- package/Libraries/Text/TextNativeComponent.js +4 -4
- package/Libraries/TurboModule/RCTExport.js +1 -1
- package/Libraries/TurboModule/TurboModuleRegistry.js +3 -3
- package/Libraries/Types/CodegenTypes.js +7 -4
- package/Libraries/Types/ReactDevToolsTypes.js +1 -1
- package/Libraries/Utilities/BackHandler.android.js +11 -3
- package/Libraries/Utilities/BackHandler.d.ts +11 -1
- package/Libraries/Utilities/BackHandler.ios.js +3 -1
- package/Libraries/Utilities/BackHandler.js.flow +6 -1
- package/Libraries/Utilities/HardwareBackPressEvent.js +22 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +4 -4
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -2
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -2
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +27 -13
- package/React/Base/RCTBundleURLProvider.h +19 -1
- package/React/Base/RCTBundleURLProvider.mm +82 -0
- package/React/Base/RCTDefines.h +1 -1
- package/React/Base/RCTMultipartDataTask.h +1 -1
- package/React/Base/RCTMultipartDataTask.m +0 -3
- package/React/Base/RCTRootView.h +4 -0
- package/React/Base/RCTRootViewDelegate.h +5 -2
- package/React/Base/RCTVersion.m +3 -3
- package/React/Base/Surface/RCTSurface.h +3 -0
- package/React/Base/Surface/RCTSurfaceDelegate.h +7 -3
- package/React/Base/Surface/RCTSurfaceRootView.mm +1 -1
- package/React/Base/Surface/RCTSurfaceView.mm +2 -1
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +0 -3
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +3 -1
- package/React/CoreModules/RCTDevMenuConfigurationDecorator.h +2 -2
- package/React/CoreModules/RCTRedBox2AnsiParser.mm +1 -1
- package/React/CoreModules/RCTWebSocketModule.mm +45 -6
- package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -1
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +4 -0
- package/React/DevSupport/RCTPackagerConnection.mm +13 -11
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +108 -43
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.h +1 -0
- package/React/Fabric/Mounting/ComponentViews/RCTFabricComponentsPlugins.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +1 -1
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +2 -2
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +70 -8
- package/React/Fabric/RCTConversions.h +14 -0
- package/React/Fabric/RCTScheduler.mm +18 -0
- package/React/Fabric/RCTSurfacePointerHandler.mm +8 -2
- package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -0
- package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
- package/React/I18n/strings/pt.lproj/fbt_language_pack.bin +0 -0
- package/React/Modules/RCTUIManager.mm +1 -1
- package/React/Profiler/RCTProfile.h +5 -0
- package/React/Profiler/RCTProfile.m +2 -1
- package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-arm64.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-i386.S +1 -1
- package/React/Profiler/RCTProfileTrampoline-x86_64.S +1 -1
- package/React/Tests/Mounting/RCTViewComponentViewTests.mm +186 -0
- package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +5 -5
- package/React/Views/RCTLayout.m +4 -3
- package/React/Views/ScrollView/RCTScrollView.h +6 -2
- package/ReactAndroid/api/ReactAndroid.api +37 -27
- package/ReactAndroid/build.gradle.kts +28 -21
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/HermesSamplingProfiler.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +40 -110
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +32 -87
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +9 -99
- package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +7 -28
- package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +2 -19
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.kt +15 -23
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +36 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJNISoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNativeJniCommonSoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FpsView.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +15 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +9 -34
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +9 -10
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +15 -13
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.kt +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +139 -43
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +223 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +25 -8
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +34 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +104 -65
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +172 -36
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/ExtraWindowEventListener.kt +29 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +41 -29
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +71 -51
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +15 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +16 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +79 -57
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +15 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +5 -9
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/rewrite_feature_flag_defaults.py +76 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/tests/test_rewrite_feature_flag_defaults.py +63 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +10 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobProvider.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +21 -20
- package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.kt +63 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +59 -62
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +8 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +45 -36
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +18 -5
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +8 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +21 -19
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +77 -72
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +7 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactRootViewTagGenerator.kt +3 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewUtil.kt +17 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +20 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +18 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIConstantsProviderBinding.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +11 -71
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +10 -17
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +29 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundImageDrawable.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +12 -13
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/SynchronousEventReceiver.kt +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +9 -9
- package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.kt +1 -14
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.kt +1 -22
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +18 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +20 -21
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +19 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +14 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/FontMetricsUtil.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +5 -162
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +71 -97
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +7 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +40 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +59 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +84 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +41 -65
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +85 -13
- package/ReactAndroid/src/main/java/com/facebook/soloader/annotation/SoLoaderLibrary.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +5 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.kt +30 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +3 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +20 -12
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +101 -0
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +33 -0
- package/ReactAndroid/src/main/jni/CMakeLists.txt +10 -1
- package/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.cpp +26 -6
- package/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +3 -3
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +47 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +20 -6
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +24 -1
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +6 -0
- package/ReactAndroid/src/main/jni/react/fabric/FocusOrderingHelper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/fabric/SurfaceHandlerBinding.cpp +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.cpp +85 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/FabricMountingManagerTestHelper.h +46 -0
- package/ReactAndroid/src/main/jni/react/fabric/test_helper/OnLoad.cpp +16 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +97 -69
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +21 -15
- package/ReactAndroid/src/main/jni/react/hermes/instrumentation/HermesSamplingProfiler.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/OnLoad-common.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp +37 -30
- package/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.h +11 -8
- package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +2 -1
- package/ReactAndroid/src/main/jni/react/reactnativeblob/OnLoad.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +10 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +7 -0
- package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +28 -0
- package/ReactCommon/React-Fabric.podspec +7 -0
- package/ReactCommon/React-FabricComponents.podspec +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
- package/ReactCommon/jsc/JSCRuntime.cpp +9 -0
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -0
- package/ReactCommon/jserrorhandler/JsErrorHandler.h +1 -1
- package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -0
- package/ReactCommon/jsi/jsi/decorator.h +93 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +97 -68
- package/ReactCommon/jsi/jsi/jsi.cpp +208 -27
- package/ReactCommon/jsi/jsi/jsi.h +553 -224
- package/ReactCommon/jsi/jsi/test/testlib.cpp +453 -0
- package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +1 -1
- package/ReactCommon/jsinspector-modern/EmulationAgent.cpp +108 -0
- package/ReactCommon/jsinspector-modern/EmulationAgent.h +47 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -1
- package/ReactCommon/jsinspector-modern/HostTarget.h +25 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +6 -2
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +5 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +19 -2
- package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +3 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +10 -0
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +0 -1
- package/ReactCommon/logger/react_native_log.cpp +0 -1
- package/ReactCommon/react/bridging/Array.h +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +29 -21
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +35 -25
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +168 -132
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -14
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +28 -20
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +61 -43
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -7
- package/ReactCommon/react/featureflags/rewrite_feature_flag_defaults.py +111 -0
- package/ReactCommon/react/featureflags/tests/test_rewrite_feature_flag_defaults.py +60 -0
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +3 -9
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +0 -1
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +2 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +35 -25
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +15 -11
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -2
- package/ReactCommon/react/nativemodule/viewtransition/CMakeLists.txt +24 -0
- package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.cpp +92 -0
- package/ReactCommon/react/nativemodule/viewtransition/NativeViewTransition.h +37 -0
- package/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +58 -0
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +10 -1
- package/ReactCommon/react/networking/NetworkReporter.h +0 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +0 -1
- package/ReactCommon/react/performance/timeline/PerformanceEntry.h +1 -1
- package/ReactCommon/react/performance/timeline/tests/PerformanceEntryTest.cpp +62 -0
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +24 -12
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +3 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -3
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +4 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +1 -1
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +0 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +8 -3
- package/ReactCommon/react/renderer/animations/tests/MutationComparatorTest.cpp +273 -0
- package/ReactCommon/react/renderer/animations/utils.h +12 -1
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +1 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +104 -3
- package/ReactCommon/react/renderer/components/image/conversions.h +2 -3
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +0 -1
- package/ReactCommon/react/renderer/components/scrollview/conversions.h +0 -1
- package/ReactCommon/react/renderer/components/text/stateConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +531 -21
- package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +9 -0
- package/ReactCommon/react/renderer/components/view/BaseTouch.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -0
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +8 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.cpp +2 -0
- package/ReactCommon/react/renderer/components/view/PointerEvent.h +5 -0
- package/ReactCommon/react/renderer/components/view/TouchEvent.h +0 -2
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.cpp +23 -5
- package/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +1 -0
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +5 -0
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +33 -28
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +0 -1
- package/ReactCommon/react/renderer/components/view/conversions.h +44 -28
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +53 -5
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +47 -16
- package/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +2 -2
- package/ReactCommon/react/renderer/{graphics/DoubleConversions.h → components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h} +2 -4
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +14 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.cpp +38 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +29 -0
- package/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +30 -0
- package/ReactCommon/react/renderer/components/view/propsConversions.h +8 -2
- package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +86 -0
- package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +34 -0
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +67 -2
- package/ReactCommon/react/renderer/core/EventEmitter.h +25 -0
- package/ReactCommon/react/renderer/core/EventPipe.h +3 -1
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +18 -10
- package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -5
- package/ReactCommon/react/renderer/core/LayoutContext.h +9 -2
- package/ReactCommon/react/renderer/core/LayoutMetrics.cpp +5 -3
- package/ReactCommon/react/renderer/core/LayoutPrimitives.h +1 -0
- package/ReactCommon/react/renderer/core/Props.cpp +20 -0
- package/ReactCommon/react/renderer/core/RawEvent.cpp +4 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +6 -6
- package/ReactCommon/react/renderer/core/ShadowNode.h +2 -2
- package/ReactCommon/react/renderer/core/conversions.h +4 -0
- package/ReactCommon/react/renderer/core/graphicsConversions.h +4 -4
- package/ReactCommon/react/renderer/core/propsConversions.h +1 -1
- package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +52 -3
- package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +26 -0
- package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +1 -1
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.cpp +42 -26
- package/ReactCommon/react/renderer/debug/DebugStringConvertible.h +4 -2
- package/ReactCommon/react/renderer/debug/tests/DebugStringConvertibleTest.cpp +34 -3
- package/ReactCommon/react/renderer/graphics/BlendMode.h +5 -0
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/graphics/ColorStop.h +3 -0
- package/ReactCommon/react/renderer/graphics/LinearGradient.h +3 -0
- package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -0
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
- package/ReactCommon/react/renderer/graphics/ValueUnit.cpp +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +0 -5
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +2 -2
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +0 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +5 -1
- package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +12 -4
- package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +307 -4
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +27 -2
- package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +95 -0
- package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +212 -0
- package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +154 -0
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +314 -18
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +38 -20
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +20 -22
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +76 -3
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +12 -0
- package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +5 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +0 -7
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +2 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +16 -1
- package/ReactCommon/react/renderer/uimanager/UIManager.h +8 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +347 -5
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +5 -3
- package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +5 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h +82 -0
- package/ReactCommon/react/renderer/viewtransition/CMakeLists.txt +22 -0
- package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +520 -0
- package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +161 -0
- package/ReactCommon/react/runtime/TimerManager.cpp +4 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +37 -0
- package/ReactCommon/react/timing/PrivacyInfo.xcprivacy +21 -0
- package/ReactCommon/react/timing/React-timing.podspec +2 -0
- package/ReactCommon/react/timing/primitives.h +33 -1
- package/ReactCommon/yoga/yoga/YGEnums.cpp +32 -0
- package/ReactCommon/yoga/yoga/YGEnums.h +20 -4
- package/ReactCommon/yoga/yoga/YGMacros.h +2 -0
- package/ReactCommon/yoga/yoga/YGNode.h +1 -1
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +269 -0
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +93 -1
- package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +40 -9
- package/ReactCommon/yoga/yoga/algorithm/Align.h +12 -1
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +106 -14
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +22 -0
- package/ReactCommon/yoga/yoga/enums/Align.h +3 -1
- package/ReactCommon/yoga/yoga/enums/Display.h +2 -1
- package/ReactCommon/yoga/yoga/enums/ExperimentalFeature.h +2 -1
- package/ReactCommon/yoga/yoga/enums/GridTrackType.h +43 -0
- package/ReactCommon/yoga/yoga/enums/Justify.h +5 -1
- package/ReactCommon/yoga/yoga/event/event.cpp +2 -0
- package/ReactCommon/yoga/yoga/event/event.h +1 -0
- package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
- package/ReactCommon/yoga/yoga/node/Node.h +4 -4
- package/ReactCommon/yoga/yoga/style/GridLine.h +53 -0
- package/ReactCommon/yoga/yoga/style/GridTrack.h +63 -0
- package/ReactCommon/yoga/yoga/style/Style.h +261 -71
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -1
- package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +10 -0
- package/cli.js +1 -1
- package/flow/HermesInternalType.js +1 -1
- package/flow/bom.js.flow +95 -3
- package/flow/dom.js.flow +89 -89
- package/gradle/libs.versions.toml +3 -1
- package/index.js +30 -3
- package/index.js.flow +23 -1
- package/package.json +11 -11
- package/react-native.config.js +3 -3
- package/scripts/cocoapods/rncore.rb +65 -11
- package/scripts/cocoapods/rndependencies.rb +65 -11
- package/scripts/cocoapods/utils.rb +52 -0
- package/scripts/codegen/generate-artifacts-executor/generateCustomURLHandlers.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateNativeCode.js +13 -4
- package/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateReactCodegenPodspec.js +17 -6
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/generateUnstableModulesRequiringMainQueueSetupProvider.js +1 -1
- package/scripts/codegen/generate-artifacts-executor/index.js +2 -0
- package/scripts/codegen/generate-artifacts-executor/utils.js +1 -1
- package/scripts/codegen/generate-specs-cli-executor.js +1 -1
- package/scripts/generate-codegen-artifacts.js +20 -2
- package/scripts/generate-provider-cli.js +1 -1
- package/scripts/react_native_pods.rb +25 -2
- package/scripts/react_native_pods_utils/script_phases.rb +9 -3
- package/scripts/replace-rncore-version.js +20 -0
- package/scripts/xcode/with-environment.sh +7 -1
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-utils.rb +92 -5
- package/sdks/hermes-engine/version.properties +2 -2
- package/src/private/animated/NativeAnimatedValidation.js +1 -1
- package/src/private/animated/createAnimatedPropsHook.js +2 -2
- package/src/private/components/virtualcollection/FlingConstants.js +21 -0
- package/src/private/components/virtualcollection/Virtual.js +62 -0
- package/src/private/components/virtualcollection/VirtualCollectionView.js +238 -0
- package/src/private/components/virtualcollection/column/VirtualColumn.js +43 -0
- package/src/private/components/virtualcollection/column/VirtualColumnGenerator.js +72 -0
- package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +13 -0
- package/src/private/components/virtualcollection/dom/getScrollParent.js +43 -0
- package/src/private/components/virtualcollection/dom/isScrollableNode.js +22 -0
- package/src/private/components/virtualcollection/row/VirtualRow.js +43 -0
- package/src/private/components/virtualcollection/row/VirtualRowGenerator.js +72 -0
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +1 -1
- package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +1 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +41 -37
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -7
- package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -3
- package/src/private/renderer/events/LegacySyntheticEvent.js +90 -0
- package/src/private/renderer/events/ReactNativeEventTypeMapping.js +103 -0
- package/src/private/renderer/events/ReactNativeResponder.js +687 -0
- package/src/private/renderer/events/ResponderEvent.js +40 -0
- package/src/private/renderer/events/ResponderTouchHistoryStore.js +258 -0
- package/src/private/renderer/events/dispatchNativeEvent.js +83 -0
- package/src/private/setup/setUpDOM.js +20 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAppState.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +2 -2
- package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeTiming.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeVibration.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +2 -2
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/types/HostComponent.js +1 -1
- package/src/private/utilities/toExtendedError.js +1 -1
- package/src/private/viewtransition/specs/NativeViewTransition.js +33 -0
- package/src/private/webapis/dom/events/Event.js +10 -1
- package/src/private/webapis/dom/events/EventTarget.js +60 -18
- package/src/private/webapis/dom/events/internals/EventInternals.js +18 -1
- package/src/private/webapis/dom/events/internals/EventTargetInternals.js +12 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +24 -0
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +4 -6
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +70 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +10 -0
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +1 -1
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +5 -9
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -2
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +2 -2
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +2 -2
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +4 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +0 -19669
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +0 -11129
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +0 -12930
- package/Libraries/Renderer/shims/ReactNative.js +0 -27
- package/Libraries/Utilities/GlobalPerformanceLogger.js +0 -24
- package/Libraries/Utilities/PerformanceLoggerContext.js +0 -33
- package/Libraries/Utilities/createPerformanceLogger.js +0 -329
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +0 -442
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.kt +0 -31
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerLegacyView.kt +0 -47
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +0 -31
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.java +0 -35
- package/ReactCommon/react/renderer/graphics/DoubleConversions.cpp +0 -38
|
@@ -101,6 +101,7 @@ public class ReactScrollView extends ScrollView
|
|
|
101
101
|
private final VelocityHelper mVelocityHelper = new VelocityHelper();
|
|
102
102
|
private final Rect mTempRect = new Rect();
|
|
103
103
|
private final ValueAnimator DEFAULT_FLING_ANIMATOR = ObjectAnimator.ofInt(this, "scrollY", 0, 0);
|
|
104
|
+
private final @Nullable FpsListener mFpsListener;
|
|
104
105
|
|
|
105
106
|
private Rect mOverflowInset;
|
|
106
107
|
private @Nullable VirtualViewContainerState mVirtualViewContainerState;
|
|
@@ -113,7 +114,6 @@ public class ReactScrollView extends ScrollView
|
|
|
113
114
|
private boolean mRemoveClippedSubviews;
|
|
114
115
|
private boolean mScrollEnabled;
|
|
115
116
|
private boolean mSendMomentumEvents;
|
|
116
|
-
private @Nullable FpsListener mFpsListener;
|
|
117
117
|
private @Nullable String mScrollPerfTag;
|
|
118
118
|
private @Nullable Drawable mEndBackground;
|
|
119
119
|
private int mEndFillColor;
|
|
@@ -298,6 +298,7 @@ public class ReactScrollView extends ScrollView
|
|
|
298
298
|
mScrollEnabled = scrollEnabled;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
+
@Override
|
|
301
302
|
public boolean getScrollEnabled() {
|
|
302
303
|
return mScrollEnabled;
|
|
303
304
|
}
|
|
@@ -793,6 +794,7 @@ public class ReactScrollView extends ScrollView
|
|
|
793
794
|
float vScroll = ev.getAxisValue(MotionEvent.AXIS_VSCROLL);
|
|
794
795
|
if (vScroll != 0) {
|
|
795
796
|
// Perform the scroll
|
|
797
|
+
enableFpsListener();
|
|
796
798
|
boolean result = super.dispatchGenericMotionEvent(ev);
|
|
797
799
|
// Schedule snap alignment to run after scrolling stops
|
|
798
800
|
if (result
|
|
@@ -803,6 +805,7 @@ public class ReactScrollView extends ScrollView
|
|
|
803
805
|
// Cancel any pending post-touch runnable and reschedule
|
|
804
806
|
if (mPostTouchRunnable != null) {
|
|
805
807
|
removeCallbacks(mPostTouchRunnable);
|
|
808
|
+
mPostTouchRunnable = null;
|
|
806
809
|
}
|
|
807
810
|
mPostTouchRunnable =
|
|
808
811
|
new Runnable() {
|
|
@@ -816,9 +819,12 @@ public class ReactScrollView extends ScrollView
|
|
|
816
819
|
velocityY = 0;
|
|
817
820
|
}
|
|
818
821
|
flingAndSnap(velocityY);
|
|
822
|
+
handlePostTouchScrolling(0, velocityY);
|
|
819
823
|
}
|
|
820
824
|
};
|
|
821
825
|
postOnAnimationDelayed(mPostTouchRunnable, ReactScrollViewHelper.MOMENTUM_DELAY);
|
|
826
|
+
} else {
|
|
827
|
+
handlePostTouchScrolling(0, 0);
|
|
822
828
|
}
|
|
823
829
|
return result;
|
|
824
830
|
}
|
|
@@ -881,14 +887,6 @@ public class ReactScrollView extends ScrollView
|
|
|
881
887
|
}
|
|
882
888
|
}
|
|
883
889
|
|
|
884
|
-
@Override
|
|
885
|
-
public boolean getClipToPadding() {
|
|
886
|
-
if (ReactNativeFeatureFlags.syncAndroidClipToPaddingWithOverflow()) {
|
|
887
|
-
return mOverflow != Overflow.VISIBLE;
|
|
888
|
-
}
|
|
889
|
-
return super.getClipToPadding();
|
|
890
|
-
}
|
|
891
|
-
|
|
892
890
|
@Override
|
|
893
891
|
public void getClippingRect(Rect outClippingRect) {
|
|
894
892
|
outClippingRect.set(Assertions.assertNotNull(mClippingRect));
|
|
@@ -982,6 +980,7 @@ public class ReactScrollView extends ScrollView
|
|
|
982
980
|
}
|
|
983
981
|
|
|
984
982
|
@Nullable
|
|
983
|
+
@Override
|
|
985
984
|
public StateWrapper getStateWrapper() {
|
|
986
985
|
return mStateWrapper;
|
|
987
986
|
}
|
|
@@ -1447,6 +1446,7 @@ public class ReactScrollView extends ScrollView
|
|
|
1447
1446
|
* <p>`smoothScrollTo` changes `contentOffset` and we need to keep `contentOffset` in sync between
|
|
1448
1447
|
* scroll view and state. Calling raw `smoothScrollTo` doesn't update state.
|
|
1449
1448
|
*/
|
|
1449
|
+
@Override
|
|
1450
1450
|
public void reactSmoothScrollTo(int x, int y) {
|
|
1451
1451
|
if (mScrollAnimationEnabled || !UiModeUtils.isTVDevice(getContext())) {
|
|
1452
1452
|
ReactScrollViewHelper.smoothScrollTo(this, x, y);
|
|
@@ -1561,10 +1561,6 @@ public class ReactScrollView extends ScrollView
|
|
|
1561
1561
|
return;
|
|
1562
1562
|
}
|
|
1563
1563
|
|
|
1564
|
-
if (mMaintainVisibleContentPositionHelper != null) {
|
|
1565
|
-
mMaintainVisibleContentPositionHelper.updateScrollPosition();
|
|
1566
|
-
}
|
|
1567
|
-
|
|
1568
1564
|
if (isShown() && isContentReady()) {
|
|
1569
1565
|
int currentScrollY = getScrollY();
|
|
1570
1566
|
int maxScrollY = getMaxScrollY();
|
|
@@ -1622,11 +1618,12 @@ public class ReactScrollView extends ScrollView
|
|
|
1622
1618
|
* and that you are **not** overriding the ScrollView content view to pass in a `translateY`
|
|
1623
1619
|
* style. `translateY` must never be set from ReactJS while using this feature!
|
|
1624
1620
|
*/
|
|
1625
|
-
public void
|
|
1626
|
-
|
|
1621
|
+
public void setScrollAwayPaddingEnabledUnstable(int topPadding, int bottomPadding) {
|
|
1622
|
+
setScrollAwayPaddingEnabledUnstable(topPadding, bottomPadding, true);
|
|
1627
1623
|
}
|
|
1628
1624
|
|
|
1629
|
-
public void
|
|
1625
|
+
public void setScrollAwayPaddingEnabledUnstable(
|
|
1626
|
+
int topPadding, int bottomPadding, boolean updateState) {
|
|
1630
1627
|
int count = getChildCount();
|
|
1631
1628
|
|
|
1632
1629
|
Assertions.assertCondition(
|
|
@@ -1643,17 +1640,18 @@ public class ReactScrollView extends ScrollView
|
|
|
1643
1640
|
// Add the topPadding value as the bottom padding for the ScrollView.
|
|
1644
1641
|
// Otherwise, we'll push down the contents of the scroll view down too
|
|
1645
1642
|
// far off screen.
|
|
1646
|
-
setPadding(0, 0, 0, topPadding);
|
|
1643
|
+
setPadding(0, 0, 0, topPadding + bottomPadding);
|
|
1647
1644
|
}
|
|
1648
1645
|
|
|
1649
1646
|
if (updateState) {
|
|
1650
|
-
updateScrollAwayState(topPadding);
|
|
1647
|
+
updateScrollAwayState(topPadding, bottomPadding);
|
|
1651
1648
|
}
|
|
1652
1649
|
setRemoveClippedSubviews(mRemoveClippedSubviews);
|
|
1653
1650
|
}
|
|
1654
1651
|
|
|
1655
|
-
private void updateScrollAwayState(int scrollAwayPaddingTop) {
|
|
1652
|
+
private void updateScrollAwayState(int scrollAwayPaddingTop, int scrollAwayPaddingBottom) {
|
|
1656
1653
|
getReactScrollViewScrollState().setScrollAwayPaddingTop(scrollAwayPaddingTop);
|
|
1654
|
+
getReactScrollViewScrollState().setScrollAwayPaddingBottom(scrollAwayPaddingBottom);
|
|
1657
1655
|
ReactScrollViewHelper.forceUpdateState(this);
|
|
1658
1656
|
}
|
|
1659
1657
|
|
|
@@ -1662,7 +1660,8 @@ public class ReactScrollView extends ScrollView
|
|
|
1662
1660
|
mReactScrollViewScrollState = scrollState;
|
|
1663
1661
|
if (ReactNativeFeatureFlags.enableViewCulling()
|
|
1664
1662
|
|| ReactNativeFeatureFlags.useTraitHiddenOnAndroid()) {
|
|
1665
|
-
|
|
1663
|
+
setScrollAwayPaddingEnabledUnstable(
|
|
1664
|
+
scrollState.getScrollAwayPaddingTop(), scrollState.getScrollAwayPaddingBottom(), false);
|
|
1666
1665
|
|
|
1667
1666
|
Point scrollPosition = scrollState.getLastStateUpdateScroll();
|
|
1668
1667
|
scrollTo(scrollPosition.x, scrollPosition.y);
|
|
@@ -31,7 +31,6 @@ import com.facebook.react.uimanager.ReactClippingViewGroup
|
|
|
31
31
|
import com.facebook.react.uimanager.StateWrapper
|
|
32
32
|
import com.facebook.react.uimanager.UIManagerHelper
|
|
33
33
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
34
|
-
import com.facebook.react.uimanager.common.ViewUtil
|
|
35
34
|
import com.facebook.react.views.view.ReactViewGroup
|
|
36
35
|
import java.lang.ref.WeakReference
|
|
37
36
|
import java.util.concurrent.CopyOnWriteArrayList
|
|
@@ -46,6 +45,7 @@ public object ReactScrollViewHelper {
|
|
|
46
45
|
private const val CONTENT_OFFSET_LEFT = "contentOffsetLeft"
|
|
47
46
|
private const val CONTENT_OFFSET_TOP = "contentOffsetTop"
|
|
48
47
|
private const val SCROLL_AWAY_PADDING_TOP = "scrollAwayPaddingTop"
|
|
48
|
+
private const val SCROLL_AWAY_PADDING_BOTTOM = "scrollAwayPaddingBottom"
|
|
49
49
|
|
|
50
50
|
public const val MOMENTUM_DELAY: Long = 20
|
|
51
51
|
public const val OVER_SCROLL_ALWAYS: String = "always"
|
|
@@ -351,9 +351,6 @@ public object ReactScrollViewHelper {
|
|
|
351
351
|
scrollY,
|
|
352
352
|
)
|
|
353
353
|
}
|
|
354
|
-
if (ViewUtil.getUIManagerType(scrollView.id) == UIManagerType.LEGACY) {
|
|
355
|
-
return
|
|
356
|
-
}
|
|
357
354
|
// NOTE: if the state wrapper is null, we shouldn't even update
|
|
358
355
|
// the scroll state because there is a chance of going out of sync!
|
|
359
356
|
if (scrollView.stateWrapper == null) {
|
|
@@ -377,6 +374,7 @@ public object ReactScrollViewHelper {
|
|
|
377
374
|
where T : HasScrollState?, T : HasStateWrapper?, T : ViewGroup {
|
|
378
375
|
val scrollState = scrollView.reactScrollViewScrollState
|
|
379
376
|
val scrollAwayPaddingTop = scrollState.scrollAwayPaddingTop
|
|
377
|
+
val scrollAwayPaddingBottom = scrollState.scrollAwayPaddingBottom
|
|
380
378
|
val scrollPos = scrollState.lastStateUpdateScroll
|
|
381
379
|
val scrollX = scrollPos.x
|
|
382
380
|
val scrollY = scrollPos.y
|
|
@@ -398,6 +396,10 @@ public object ReactScrollViewHelper {
|
|
|
398
396
|
SCROLL_AWAY_PADDING_TOP,
|
|
399
397
|
toDIPFromPixel(scrollAwayPaddingTop.toFloat()).toDouble(),
|
|
400
398
|
)
|
|
399
|
+
newStateData.putDouble(
|
|
400
|
+
SCROLL_AWAY_PADDING_BOTTOM,
|
|
401
|
+
toDIPFromPixel(scrollAwayPaddingBottom.toFloat()).toDouble(),
|
|
402
|
+
)
|
|
401
403
|
stateWrapper.updateState(newStateData)
|
|
402
404
|
}
|
|
403
405
|
}
|
|
@@ -418,9 +420,14 @@ public object ReactScrollViewHelper {
|
|
|
418
420
|
val scrollX = toPixelFromDIP(stateData.getDouble(CONTENT_OFFSET_LEFT)).toInt()
|
|
419
421
|
val scrollY = toPixelFromDIP(stateData.getDouble(CONTENT_OFFSET_TOP)).toInt()
|
|
420
422
|
val scrollAwayPaddingTop = toPixelFromDIP(stateData.getDouble(SCROLL_AWAY_PADDING_TOP)).toInt()
|
|
423
|
+
val scrollAwayPaddingBottom =
|
|
424
|
+
toPixelFromDIP(stateData.getDouble(SCROLL_AWAY_PADDING_BOTTOM)).toInt()
|
|
421
425
|
|
|
422
426
|
val scrollState =
|
|
423
|
-
scrollView.reactScrollViewScrollState.copy(
|
|
427
|
+
scrollView.reactScrollViewScrollState.copy(
|
|
428
|
+
scrollAwayPaddingTop = scrollAwayPaddingTop,
|
|
429
|
+
scrollAwayPaddingBottom = scrollAwayPaddingBottom,
|
|
430
|
+
)
|
|
424
431
|
scrollState.setLastStateUpdateScroll(scrollX, scrollY)
|
|
425
432
|
scrollView.reactScrollViewScrollState = scrollState
|
|
426
433
|
}
|
|
@@ -731,6 +738,8 @@ public object ReactScrollViewHelper {
|
|
|
731
738
|
val finalAnimatedPositionScroll: Point = Point(),
|
|
732
739
|
/** Get the padding on the top for nav bar */
|
|
733
740
|
var scrollAwayPaddingTop: Int = 0,
|
|
741
|
+
/** Get the padding on the bottom for tab bar */
|
|
742
|
+
var scrollAwayPaddingBottom: Int = 0,
|
|
734
743
|
/** Get the Fabric state of last scroll position */
|
|
735
744
|
val lastStateUpdateScroll: Point = Point(-1, -1),
|
|
736
745
|
/** Get true if the previous animation was canceled */
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.views.text
|
|
9
9
|
|
|
10
|
-
import android.content.Context
|
|
11
10
|
import android.graphics.Rect
|
|
12
11
|
import android.text.Layout
|
|
13
12
|
import android.text.TextPaint
|
|
13
|
+
import android.util.DisplayMetrics
|
|
14
14
|
import com.facebook.react.bridge.Arguments
|
|
15
15
|
import com.facebook.react.bridge.WritableArray
|
|
16
16
|
import com.facebook.react.bridge.buildReadableMap
|
|
@@ -22,8 +22,7 @@ internal object FontMetricsUtil {
|
|
|
22
22
|
private const val AMPLIFICATION_FACTOR = 100f
|
|
23
23
|
|
|
24
24
|
@JvmStatic
|
|
25
|
-
fun getFontMetrics(text: CharSequence, layout: Layout,
|
|
26
|
-
val dm = context.resources.displayMetrics
|
|
25
|
+
fun getFontMetrics(text: CharSequence, layout: Layout, dm: DisplayMetrics): WritableArray {
|
|
27
26
|
val lines = Arguments.createArray()
|
|
28
27
|
|
|
29
28
|
// To calculate xHeight and capHeight we have to render an "x" and "T" and manually measure
|
|
@@ -26,37 +26,29 @@ import android.view.View;
|
|
|
26
26
|
import android.view.ViewGroup;
|
|
27
27
|
import androidx.annotation.Nullable;
|
|
28
28
|
import androidx.appcompat.widget.AppCompatTextView;
|
|
29
|
-
import androidx.appcompat.widget.TintContextWrapper;
|
|
30
29
|
import androidx.core.view.AccessibilityDelegateCompat;
|
|
31
30
|
import androidx.core.view.ViewCompat;
|
|
32
31
|
import androidx.customview.widget.ExploreByTouchHelper;
|
|
33
32
|
import com.facebook.react.views.common.UiModeUtils;
|
|
34
33
|
import com.facebook.common.logging.FLog;
|
|
35
|
-
import com.facebook.infer.annotation.Assertions;
|
|
36
34
|
import com.facebook.infer.annotation.Nullsafe;
|
|
37
35
|
import com.facebook.react.bridge.Arguments;
|
|
38
|
-
import com.facebook.react.bridge.ReactContext;
|
|
39
36
|
import com.facebook.react.bridge.WritableMap;
|
|
40
37
|
import com.facebook.react.common.ReactConstants;
|
|
41
38
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI;
|
|
42
|
-
import com.facebook.react.common.build.ReactBuildConfig;
|
|
43
39
|
import com.facebook.react.internal.SystraceSection;
|
|
44
40
|
import com.facebook.react.uimanager.BackgroundStyleApplicator;
|
|
45
41
|
import com.facebook.react.uimanager.LengthPercentage;
|
|
46
42
|
import com.facebook.react.uimanager.LengthPercentageType;
|
|
47
43
|
import com.facebook.react.uimanager.PixelUtil;
|
|
48
44
|
import com.facebook.react.uimanager.ReactCompoundView;
|
|
49
|
-
import com.facebook.react.uimanager.UIManagerModule;
|
|
50
45
|
import com.facebook.react.uimanager.ViewDefaults;
|
|
51
|
-
import com.facebook.react.uimanager.common.UIManagerType;
|
|
52
|
-
import com.facebook.react.uimanager.common.ViewUtil;
|
|
53
46
|
import com.facebook.react.uimanager.style.BorderRadiusProp;
|
|
54
47
|
import com.facebook.react.uimanager.style.BorderStyle;
|
|
55
48
|
import com.facebook.react.uimanager.style.LogicalEdge;
|
|
56
49
|
import com.facebook.react.uimanager.style.Overflow;
|
|
57
50
|
import com.facebook.react.views.text.internal.span.ReactFragmentIndexSpan;
|
|
58
51
|
import com.facebook.react.views.text.internal.span.ReactTagSpan;
|
|
59
|
-
import com.facebook.react.views.text.internal.span.TextInlineViewPlaceholderSpan;
|
|
60
52
|
import com.facebook.yoga.YogaMeasureMode;
|
|
61
53
|
|
|
62
54
|
@Nullsafe(Nullsafe.Mode.LOCAL)
|
|
@@ -206,164 +198,14 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
|
|
206
198
|
return json;
|
|
207
199
|
}
|
|
208
200
|
|
|
209
|
-
private ReactContext getReactContext() {
|
|
210
|
-
Context context = getContext();
|
|
211
|
-
return (context instanceof TintContextWrapper)
|
|
212
|
-
? (ReactContext) ((TintContextWrapper) context).getBaseContext()
|
|
213
|
-
: (ReactContext) context;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
201
|
@Override
|
|
217
202
|
protected void onLayout(
|
|
218
203
|
boolean changed, int textViewLeft, int textViewTop, int textViewRight, int textViewBottom) {
|
|
219
204
|
// TODO T62882314: Delete this method when Fabric is fully released in OSS
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* In general, {@link #setText} is called via {@link ReactTextViewManager#updateExtraData}
|
|
226
|
-
* before we are laid out. This ordering is a requirement because we utilize the data from
|
|
227
|
-
* setText in onLayout.
|
|
228
|
-
*
|
|
229
|
-
* <p>However, it's possible for us to get an extra layout before we've received our setText
|
|
230
|
-
* call. If this happens before the initial setText call, then getText() will have its default
|
|
231
|
-
* value which isn't a Spanned and we need to bail out. That's fine because we'll get a
|
|
232
|
-
* setText followed by a layout later.
|
|
233
|
-
*
|
|
234
|
-
* <p>The cause for the extra early layout is that an ancestor gets transitioned from a
|
|
235
|
-
* layout-only node to a non layout-only node.
|
|
236
|
-
*/
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
ReactContext reactContext = getReactContext();
|
|
241
|
-
UIManagerModule uiManager =
|
|
242
|
-
Assertions.assertNotNull(reactContext.getNativeModule(UIManagerModule.class));
|
|
243
|
-
|
|
244
|
-
Spanned text = (Spanned) getText();
|
|
245
|
-
Layout layout = getLayout();
|
|
246
|
-
if (layout == null) {
|
|
247
|
-
// Text layout is calculated during pre-draw phase, so in some cases it can be empty during
|
|
248
|
-
// layout phase, which usually happens before drawing.
|
|
249
|
-
// The text layout is created by private {@link assumeLayout} method, which we can try to
|
|
250
|
-
// invoke directly through reflection or indirectly through some methods that compute it
|
|
251
|
-
// (e.g. {@link getExtendedPaddingTop}).
|
|
252
|
-
// It is safer, however, to just early return here, as next measure/layout passes are way more
|
|
253
|
-
// likely to have the text layout computed.
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
TextInlineViewPlaceholderSpan[] placeholders =
|
|
258
|
-
text.getSpans(0, text.length(), TextInlineViewPlaceholderSpan.class);
|
|
259
|
-
int textViewWidth = textViewRight - textViewLeft;
|
|
260
|
-
int textViewHeight = textViewBottom - textViewTop;
|
|
261
|
-
|
|
262
|
-
for (TextInlineViewPlaceholderSpan placeholder : placeholders) {
|
|
263
|
-
View child = uiManager.resolveView(placeholder.getReactTag());
|
|
264
|
-
|
|
265
|
-
if (child == null) {
|
|
266
|
-
continue;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
int start = text.getSpanStart(placeholder);
|
|
270
|
-
int line = layout.getLineForOffset(start);
|
|
271
|
-
boolean isLineTruncated = layout.getEllipsisCount(line) > 0;
|
|
272
|
-
|
|
273
|
-
if ( // This truncation check works well on recent versions of Android (tested on 5.1.1 and
|
|
274
|
-
// 6.0.1) but not on Android 4.4.4. The reason is that getEllipsisCount is buggy on
|
|
275
|
-
// Android 4.4.4. Specifically, it incorrectly returns 0 if an inline view is the first
|
|
276
|
-
// thing to be truncated.
|
|
277
|
-
(isLineTruncated && start >= layout.getLineStart(line) + layout.getEllipsisStart(line))
|
|
278
|
-
||
|
|
279
|
-
|
|
280
|
-
// This truncation check works well on Android 4.4.4 but not on others (e.g. 6.0.1).
|
|
281
|
-
// On Android 4.4.4, getLineEnd returns the first truncated character whereas on 6.0.1,
|
|
282
|
-
// it appears to return the position after the last character on the line even if that
|
|
283
|
-
// character is truncated.
|
|
284
|
-
line >= mNumberOfLines
|
|
285
|
-
|| start >= layout.getLineEnd(line)) {
|
|
286
|
-
// On some versions of Android (e.g. 4.4.4, 5.1.1), getPrimaryHorizontal can infinite
|
|
287
|
-
// loop when called on a character that appears after the ellipsis. Avoid this bug by
|
|
288
|
-
// special casing the character truncation case.
|
|
289
|
-
child.setVisibility(View.GONE);
|
|
290
|
-
} else {
|
|
291
|
-
int width = placeholder.getWidth();
|
|
292
|
-
int height = placeholder.getHeight();
|
|
293
|
-
|
|
294
|
-
// Calculate if the direction of the placeholder character is Right-To-Left.
|
|
295
|
-
boolean isRtlChar = layout.isRtlCharAt(start);
|
|
296
|
-
|
|
297
|
-
boolean isRtlParagraph = layout.getParagraphDirection(line) == Layout.DIR_RIGHT_TO_LEFT;
|
|
298
|
-
|
|
299
|
-
int placeholderHorizontalPosition;
|
|
300
|
-
// There's a bug on Samsung devices where calling getPrimaryHorizontal on
|
|
301
|
-
// the last offset in the layout will result in an endless loop. Work around
|
|
302
|
-
// this bug by avoiding getPrimaryHorizontal in that case.
|
|
303
|
-
if (start == text.length() - 1) {
|
|
304
|
-
boolean endsWithNewLine =
|
|
305
|
-
text.length() > 0 && text.charAt(layout.getLineEnd(line) - 1) == '\n';
|
|
306
|
-
float lineWidth = endsWithNewLine ? layout.getLineMax(line) : layout.getLineWidth(line);
|
|
307
|
-
placeholderHorizontalPosition =
|
|
308
|
-
isRtlParagraph
|
|
309
|
-
// Equivalent to `layout.getLineLeft(line)` but `getLineLeft` returns incorrect
|
|
310
|
-
// values when the paragraph is RTL and `setSingleLine(true)`.
|
|
311
|
-
? textViewWidth - (int) lineWidth
|
|
312
|
-
: (int) layout.getLineRight(line) - width;
|
|
313
|
-
} else {
|
|
314
|
-
// The direction of the paragraph may not be exactly the direction the string is heading
|
|
315
|
-
// in at the
|
|
316
|
-
// position of the placeholder. So, if the direction of the character is the same as the
|
|
317
|
-
// paragraph
|
|
318
|
-
// use primary, secondary otherwise.
|
|
319
|
-
boolean characterAndParagraphDirectionMatch = isRtlParagraph == isRtlChar;
|
|
320
|
-
|
|
321
|
-
placeholderHorizontalPosition =
|
|
322
|
-
characterAndParagraphDirectionMatch
|
|
323
|
-
? (int) layout.getPrimaryHorizontal(start)
|
|
324
|
-
: (int) layout.getSecondaryHorizontal(start);
|
|
325
|
-
|
|
326
|
-
if (isRtlParagraph) {
|
|
327
|
-
// Adjust `placeholderHorizontalPosition` to work around an Android bug.
|
|
328
|
-
// The bug is when the paragraph is RTL and `setSingleLine(true)`, some layout
|
|
329
|
-
// methods such as `getPrimaryHorizontal`, `getSecondaryHorizontal`, and
|
|
330
|
-
// `getLineRight` return incorrect values. Their return values seem to be off
|
|
331
|
-
// by the same number of pixels so subtracting these values cancels out the error.
|
|
332
|
-
//
|
|
333
|
-
// The result is equivalent to bugless versions of
|
|
334
|
-
// `getPrimaryHorizontal`/`getSecondaryHorizontal`.
|
|
335
|
-
placeholderHorizontalPosition =
|
|
336
|
-
textViewWidth - ((int) layout.getLineRight(line) - placeholderHorizontalPosition);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
if (isRtlChar) {
|
|
340
|
-
placeholderHorizontalPosition -= width;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
int leftRelativeToTextView =
|
|
345
|
-
isRtlChar
|
|
346
|
-
? placeholderHorizontalPosition + getTotalPaddingRight()
|
|
347
|
-
: placeholderHorizontalPosition + getTotalPaddingLeft();
|
|
348
|
-
|
|
349
|
-
int left = textViewLeft + leftRelativeToTextView;
|
|
350
|
-
|
|
351
|
-
// Vertically align the inline view to the baseline of the line of text.
|
|
352
|
-
int topRelativeToTextView = getTotalPaddingTop() + layout.getLineBaseline(line) - height;
|
|
353
|
-
int top = textViewTop + topRelativeToTextView;
|
|
354
|
-
|
|
355
|
-
boolean isFullyClipped =
|
|
356
|
-
textViewWidth <= leftRelativeToTextView || textViewHeight <= topRelativeToTextView;
|
|
357
|
-
int layoutVisibility = isFullyClipped ? View.GONE : View.VISIBLE;
|
|
358
|
-
int layoutLeft = left;
|
|
359
|
-
int layoutTop = top;
|
|
360
|
-
int layoutRight = left + width;
|
|
361
|
-
int layoutBottom = top + height;
|
|
362
|
-
|
|
363
|
-
child.setVisibility(layoutVisibility);
|
|
364
|
-
child.layout(layoutLeft, layoutTop, layoutRight, layoutBottom);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
205
|
+
// In Fabric, setText is called via ReactTextViewManager#updateExtraData
|
|
206
|
+
// before we are laid out. This ordering is a requirement because we utilize the data from
|
|
207
|
+
// setText in onLayout. The early return here is safe because the text layout is handled
|
|
208
|
+
// correctly in Fabric.
|
|
367
209
|
}
|
|
368
210
|
|
|
369
211
|
@Override
|
|
@@ -604,6 +446,7 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
|
|
604
446
|
mShouldAdjustSpannableFontSize = true;
|
|
605
447
|
}
|
|
606
448
|
|
|
449
|
+
@Override
|
|
607
450
|
public void setLetterSpacing(float letterSpacing) {
|
|
608
451
|
if (Float.isNaN(letterSpacing)) {
|
|
609
452
|
return;
|
|
@@ -157,7 +157,7 @@ public constructor(
|
|
|
157
157
|
state.getMapBuffer(TX_STATE_KEY_PARAGRAPH_ATTRIBUTES.toInt())
|
|
158
158
|
val spanned: Spannable =
|
|
159
159
|
TextLayoutManager.getOrCreateSpannableForText(
|
|
160
|
-
view.context,
|
|
160
|
+
view.context.assets,
|
|
161
161
|
attributedString,
|
|
162
162
|
reactTextViewManagerCallback,
|
|
163
163
|
)
|