react-native-tvos 0.85.3-0 → 0.86.0-0rc2
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 +96 -91
- 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
|
@@ -20,6 +20,14 @@ import type {
|
|
|
20
20
|
|
|
21
21
|
const processColor = require('./processColor').default;
|
|
22
22
|
|
|
23
|
+
// Pre-compiled regex patterns for performance - avoids regex compilation on each call
|
|
24
|
+
const NEWLINE_REGEX = /\n/g;
|
|
25
|
+
const GRADIENT_REGEX = /^(linear|radial)-gradient\(((?:\([^)]*\)|[^()])*)\)/;
|
|
26
|
+
const COMMA_SPLIT_REGEX = /,(?![^(]*\))/;
|
|
27
|
+
const WHITESPACE_SPLIT_REGEX = /\s+/;
|
|
28
|
+
const COLOR_STOP_PARTS_REGEX = /\S+\([^)]*\)|\S+/g;
|
|
29
|
+
const WHITESPACE_NORMALIZE_REGEX = /\s+/g;
|
|
30
|
+
|
|
23
31
|
// Linear Gradient
|
|
24
32
|
const LINEAR_GRADIENT_DIRECTION_REGEX =
|
|
25
33
|
/^to\s+(?:top|bottom|left|right)(?:\s+(?:top|bottom|left|right))?/i;
|
|
@@ -81,7 +89,9 @@ export default function processBackgroundImage(
|
|
|
81
89
|
}
|
|
82
90
|
|
|
83
91
|
if (typeof backgroundImage === 'string') {
|
|
84
|
-
result = parseBackgroundImageCSSString(
|
|
92
|
+
result = parseBackgroundImageCSSString(
|
|
93
|
+
backgroundImage.replace(NEWLINE_REGEX, ' '),
|
|
94
|
+
);
|
|
85
95
|
} else if (Array.isArray(backgroundImage)) {
|
|
86
96
|
for (const bgImage of backgroundImage) {
|
|
87
97
|
const processedColorStops = processColorStops(bgImage);
|
|
@@ -255,9 +265,7 @@ function parseBackgroundImageCSSString(
|
|
|
255
265
|
|
|
256
266
|
for (const bgImageString of bgImageStrings) {
|
|
257
267
|
const bgImage = bgImageString.toLowerCase();
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
const match = gradientRegex.exec(bgImage);
|
|
268
|
+
const match = GRADIENT_REGEX.exec(bgImage);
|
|
261
269
|
if (match) {
|
|
262
270
|
const [, type, gradientContent] = match;
|
|
263
271
|
const isRadial = type.toLowerCase() === 'radial';
|
|
@@ -281,7 +289,7 @@ function parseRadialGradientCSSString(
|
|
|
281
289
|
let position: RadialGradientPosition = {...DEFAULT_RADIAL_POSITION};
|
|
282
290
|
|
|
283
291
|
// split the content by commas, but not if inside parentheses (for color values)
|
|
284
|
-
const parts = gradientContent.split(
|
|
292
|
+
const parts = gradientContent.split(COMMA_SPLIT_REGEX);
|
|
285
293
|
// first part may contain shape, size, and position
|
|
286
294
|
// [ <radial-shape> || <radial-size> ]? [ at <position> ]?
|
|
287
295
|
const firstPartStr = parts[0].trim();
|
|
@@ -289,7 +297,7 @@ function parseRadialGradientCSSString(
|
|
|
289
297
|
let hasShapeSizeOrPositionString = false;
|
|
290
298
|
let hasExplicitSingleSize = false;
|
|
291
299
|
let hasExplicitShape = false;
|
|
292
|
-
const firstPartTokens = firstPartStr.split(
|
|
300
|
+
const firstPartTokens = firstPartStr.split(WHITESPACE_SPLIT_REGEX);
|
|
293
301
|
|
|
294
302
|
// firstPartTokens is the shape, size, and position
|
|
295
303
|
while (firstPartTokens.length > 0) {
|
|
@@ -626,13 +634,13 @@ function parseColorStopsCSSString(parts: Array<string>): Array<{
|
|
|
626
634
|
position: ColorStopPosition,
|
|
627
635
|
}> = [];
|
|
628
636
|
// split by comma, but not if it's inside a parentheses. e.g. red, rgba(0, 0, 0, 0.5), green => ["red", "rgba(0, 0, 0, 0.5)", "green"]
|
|
629
|
-
const stops = colorStopsString.split(
|
|
637
|
+
const stops = colorStopsString.split(COMMA_SPLIT_REGEX);
|
|
630
638
|
let prevStop = null;
|
|
631
639
|
for (let i = 0; i < stops.length; i++) {
|
|
632
640
|
const stop = stops[i];
|
|
633
641
|
const trimmedStop = stop.trim().toLowerCase();
|
|
634
642
|
// Match function like pattern or single words
|
|
635
|
-
const colorStopParts = trimmedStop.match(
|
|
643
|
+
const colorStopParts = trimmedStop.match(COLOR_STOP_PARTS_REGEX);
|
|
636
644
|
if (colorStopParts == null) {
|
|
637
645
|
// If a color stop is invalid, return null and do not apply any gradient. Same as web.
|
|
638
646
|
return null;
|
|
@@ -726,7 +734,9 @@ function getDirectionForKeyword(direction?: string): ?LinearGradientDirection {
|
|
|
726
734
|
return null;
|
|
727
735
|
}
|
|
728
736
|
// Remove extra whitespace
|
|
729
|
-
const normalized = direction
|
|
737
|
+
const normalized = direction
|
|
738
|
+
.replace(WHITESPACE_NORMALIZE_REGEX, ' ')
|
|
739
|
+
.toLowerCase();
|
|
730
740
|
|
|
731
741
|
switch (normalized) {
|
|
732
742
|
case 'to top':
|
|
@@ -57,19 +57,14 @@ function parseBackgroundSizeCSSString(
|
|
|
57
57
|
return [];
|
|
58
58
|
}
|
|
59
59
|
} else if (parts.length === 1) {
|
|
60
|
-
const
|
|
61
|
-
if (
|
|
62
|
-
result.push(
|
|
60
|
+
const x = getValidLengthPercentageSizeOrNull(parts[0].toLowerCase());
|
|
61
|
+
if (x != null) {
|
|
62
|
+
result.push({
|
|
63
|
+
x,
|
|
64
|
+
y: 'auto',
|
|
65
|
+
});
|
|
63
66
|
} else {
|
|
64
|
-
|
|
65
|
-
if (x != null) {
|
|
66
|
-
result.push({
|
|
67
|
-
x,
|
|
68
|
-
y: 'auto',
|
|
69
|
-
});
|
|
70
|
-
} else {
|
|
71
|
-
return [];
|
|
72
|
-
}
|
|
67
|
+
return [];
|
|
73
68
|
}
|
|
74
69
|
}
|
|
75
70
|
}
|
|
@@ -11,10 +11,8 @@
|
|
|
11
11
|
import type {ProcessedColorValue} from './processColor';
|
|
12
12
|
import type {BoxShadowValue} from './StyleSheetTypes';
|
|
13
13
|
|
|
14
|
-
import {enableOptimizedBoxShadowParsing} from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
15
14
|
import processColor from './processColor';
|
|
16
15
|
|
|
17
|
-
// Pre-compiled regex patterns for performance - avoids regex compilation on each call
|
|
18
16
|
const COMMA_SPLIT_REGEX = /,(?![^()]*\))/;
|
|
19
17
|
const WHITESPACE_SPLIT_REGEX = /\s+(?![^(]*\))/;
|
|
20
18
|
const LENGTH_PARSE_REGEX = /^([+-]?\d*\.?\d+)(px)?$/;
|
|
@@ -39,12 +37,7 @@ export default function processBoxShadow(
|
|
|
39
37
|
|
|
40
38
|
const boxShadowList =
|
|
41
39
|
typeof rawBoxShadows === 'string'
|
|
42
|
-
? parseBoxShadowString(
|
|
43
|
-
rawBoxShadows.replace(
|
|
44
|
-
enableOptimizedBoxShadowParsing() ? NEWLINE_REGEX : /\n/g,
|
|
45
|
-
' ',
|
|
46
|
-
),
|
|
47
|
-
)
|
|
40
|
+
? parseBoxShadowString(rawBoxShadows.replace(NEWLINE_REGEX, ' '))
|
|
48
41
|
: rawBoxShadows;
|
|
49
42
|
|
|
50
43
|
for (const rawBoxShadow of boxShadowList) {
|
|
@@ -121,9 +114,7 @@ function parseBoxShadowString(rawBoxShadows: string): Array<BoxShadowValue> {
|
|
|
121
114
|
let result: Array<BoxShadowValue> = [];
|
|
122
115
|
|
|
123
116
|
for (const rawBoxShadow of rawBoxShadows
|
|
124
|
-
.split(
|
|
125
|
-
enableOptimizedBoxShadowParsing() ? COMMA_SPLIT_REGEX : /,(?![^()]*\))/,
|
|
126
|
-
) // split by comma that is not in parenthesis
|
|
117
|
+
.split(COMMA_SPLIT_REGEX)
|
|
127
118
|
.map(bS => bS.trim())
|
|
128
119
|
.filter(bS => bS !== '')) {
|
|
129
120
|
const boxShadow: BoxShadowValue = {
|
|
@@ -137,11 +128,7 @@ function parseBoxShadowString(rawBoxShadows: string): Array<BoxShadowValue> {
|
|
|
137
128
|
let lengthCount = 0;
|
|
138
129
|
|
|
139
130
|
// split rawBoxShadow string by all whitespaces that are not in parenthesis
|
|
140
|
-
const args = rawBoxShadow.split(
|
|
141
|
-
enableOptimizedBoxShadowParsing()
|
|
142
|
-
? WHITESPACE_SPLIT_REGEX
|
|
143
|
-
: /\s+(?![^(]*\))/,
|
|
144
|
-
);
|
|
131
|
+
const args = rawBoxShadow.split(WHITESPACE_SPLIT_REGEX);
|
|
145
132
|
for (const arg of args) {
|
|
146
133
|
const processedColor = processColor(arg);
|
|
147
134
|
if (processedColor != null) {
|
|
@@ -210,43 +197,18 @@ function parseBoxShadowString(rawBoxShadows: string): Array<BoxShadowValue> {
|
|
|
210
197
|
}
|
|
211
198
|
|
|
212
199
|
function parseLength(length: string): ?number {
|
|
213
|
-
|
|
214
|
-
// Use pre-compiled regex for performance
|
|
215
|
-
const match = LENGTH_PARSE_REGEX.exec(length);
|
|
200
|
+
const match = LENGTH_PARSE_REGEX.exec(length);
|
|
216
201
|
|
|
217
|
-
|
|
218
|
-
return null;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
const value = parseFloat(match[1]);
|
|
222
|
-
if (Number.isNaN(value)) {
|
|
223
|
-
return null;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// match[2] is 'px' or undefined
|
|
227
|
-
// If no unit and value is not 0, return null
|
|
228
|
-
if (match[2] == null && value !== 0) {
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
return value;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// matches on args with units like "1.5 5% -80deg"
|
|
236
|
-
const argsWithUnitsRegex = /([+-]?\d*(\.\d+)?)([\w\W]+)?/g;
|
|
237
|
-
const match = argsWithUnitsRegex.exec(length);
|
|
238
|
-
|
|
239
|
-
if (!match || Number.isNaN(match[1])) {
|
|
202
|
+
if (!match) {
|
|
240
203
|
return null;
|
|
241
204
|
}
|
|
242
205
|
|
|
243
|
-
|
|
244
|
-
return null;
|
|
245
|
-
}
|
|
206
|
+
const value = parseFloat(match[1]);
|
|
246
207
|
|
|
247
|
-
|
|
208
|
+
// If no unit (px) and value is not 0, reject it
|
|
209
|
+
if (match[2] == null && value !== 0) {
|
|
248
210
|
return null;
|
|
249
211
|
}
|
|
250
212
|
|
|
251
|
-
return
|
|
213
|
+
return value;
|
|
252
214
|
}
|
|
@@ -15,6 +15,14 @@ import type {DropShadowValue, FilterFunction} from './StyleSheetTypes';
|
|
|
15
15
|
|
|
16
16
|
import processColor from './processColor';
|
|
17
17
|
|
|
18
|
+
// Pre-compiled regex patterns for performance - avoids regex compilation on each call
|
|
19
|
+
const NEWLINE_REGEX = /\n/g;
|
|
20
|
+
const FILTER_FUNCTION_REGEX =
|
|
21
|
+
/([\w-]+)\(([^()]*|\([^()]*\)|[^()]*\([^()]*\)[^()]*)\)/g;
|
|
22
|
+
const ARGS_WITH_UNITS_REGEX = /([+-]?\d*(\.\d+)?)([a-zA-Z%]+)?/g;
|
|
23
|
+
const WHITESPACE_SPLIT_REGEX = /\s+(?![^(]*\))/;
|
|
24
|
+
const LENGTH_PARSE_REGEX = /([+-]?\d*(\.\d+)?)([\w\W]+)?/g;
|
|
25
|
+
|
|
18
26
|
type ParsedFilter =
|
|
19
27
|
| {brightness: number}
|
|
20
28
|
| {blur: number}
|
|
@@ -43,13 +51,13 @@ export default function processFilter(
|
|
|
43
51
|
}
|
|
44
52
|
|
|
45
53
|
if (typeof filter === 'string') {
|
|
46
|
-
filter = filter.replace(
|
|
54
|
+
filter = filter.replace(NEWLINE_REGEX, ' ');
|
|
47
55
|
|
|
48
56
|
// matches on functions with args and nested functions like "drop-shadow(10 10 10 rgba(0, 0, 0, 1))"
|
|
49
|
-
|
|
57
|
+
FILTER_FUNCTION_REGEX.lastIndex = 0;
|
|
50
58
|
let matches;
|
|
51
59
|
|
|
52
|
-
while ((matches =
|
|
60
|
+
while ((matches = FILTER_FUNCTION_REGEX.exec(filter))) {
|
|
53
61
|
let filterName = matches[1].toLowerCase();
|
|
54
62
|
if (filterName === 'drop-shadow') {
|
|
55
63
|
const dropShadow = parseDropShadow(matches[2]);
|
|
@@ -120,8 +128,8 @@ function _getFilterAmount(filterName: string, filterArgs: unknown): ?number {
|
|
|
120
128
|
let unit: string;
|
|
121
129
|
if (typeof filterArgs === 'string') {
|
|
122
130
|
// matches on args with units like "1.5 5% -80deg"
|
|
123
|
-
|
|
124
|
-
const match =
|
|
131
|
+
ARGS_WITH_UNITS_REGEX.lastIndex = 0;
|
|
132
|
+
const match = ARGS_WITH_UNITS_REGEX.exec(filterArgs);
|
|
125
133
|
|
|
126
134
|
if (!match || isNaN(Number(match[1]))) {
|
|
127
135
|
return undefined;
|
|
@@ -258,7 +266,7 @@ function parseDropShadowString(rawDropShadow: string): ?DropShadowValue {
|
|
|
258
266
|
let keywordDetectedAfterLength = false;
|
|
259
267
|
|
|
260
268
|
// split args by all whitespaces that are not in parenthesis
|
|
261
|
-
for (const arg of rawDropShadow.split(
|
|
269
|
+
for (const arg of rawDropShadow.split(WHITESPACE_SPLIT_REGEX)) {
|
|
262
270
|
const processedColor = processColor(arg);
|
|
263
271
|
if (processedColor != null) {
|
|
264
272
|
if (dropShadow.color != null) {
|
|
@@ -305,8 +313,8 @@ function parseDropShadowString(rawDropShadow: string): ?DropShadowValue {
|
|
|
305
313
|
|
|
306
314
|
function parseLength(length: string): ?number {
|
|
307
315
|
// matches on args with units like "1.5 5% -80deg"
|
|
308
|
-
|
|
309
|
-
const match =
|
|
316
|
+
LENGTH_PARSE_REGEX.lastIndex = 0;
|
|
317
|
+
const match = LENGTH_PARSE_REGEX.exec(length);
|
|
310
318
|
|
|
311
319
|
if (!match || Number.isNaN(match[1])) {
|
|
312
320
|
return null;
|
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
import invariant from 'invariant';
|
|
12
12
|
|
|
13
|
+
// Pre-compiled regex pattern for performance - avoids regex compilation on each call
|
|
14
|
+
const TRANSFORM_ORIGIN_REGEX = /(top|bottom|left|right|center|\d+(?:%|px)|0)/gi;
|
|
15
|
+
|
|
13
16
|
const INDEX_X = 0;
|
|
14
17
|
const INDEX_Y = 1;
|
|
15
18
|
const INDEX_Z = 2;
|
|
@@ -20,12 +23,14 @@ export default function processTransformOrigin(
|
|
|
20
23
|
): Array<string | number> {
|
|
21
24
|
if (typeof transformOrigin === 'string') {
|
|
22
25
|
const transformOriginString = transformOrigin;
|
|
23
|
-
|
|
26
|
+
TRANSFORM_ORIGIN_REGEX.lastIndex = 0;
|
|
24
27
|
const transformOriginArray: Array<string | number> = ['50%', '50%', 0];
|
|
25
28
|
|
|
26
29
|
let index = INDEX_X;
|
|
27
30
|
let matches;
|
|
28
|
-
outer: while (
|
|
31
|
+
outer: while (
|
|
32
|
+
(matches = TRANSFORM_ORIGIN_REGEX.exec(transformOriginString))
|
|
33
|
+
) {
|
|
29
34
|
let nextIndex = index + 1;
|
|
30
35
|
|
|
31
36
|
const value = matches[0];
|
|
@@ -53,7 +58,9 @@ export default function processTransformOrigin(
|
|
|
53
58
|
|
|
54
59
|
// Handle [[ center | left | right ] && [ center | top | bottom ]] <length>?
|
|
55
60
|
if (index === INDEX_X) {
|
|
56
|
-
const horizontal =
|
|
61
|
+
const horizontal = TRANSFORM_ORIGIN_REGEX.exec(
|
|
62
|
+
transformOriginString,
|
|
63
|
+
);
|
|
57
64
|
if (horizontal == null) {
|
|
58
65
|
break outer;
|
|
59
66
|
}
|
package/Libraries/Text/Text.js
CHANGED
|
@@ -190,20 +190,20 @@ const TextImpl: component(
|
|
|
190
190
|
if (processedStyle != null) {
|
|
191
191
|
let overrides: ?{...TextStyleInternal} = null;
|
|
192
192
|
if (typeof processedStyle.fontWeight === 'number') {
|
|
193
|
-
overrides = overrides || ({}
|
|
193
|
+
overrides = overrides || ({} as {...TextStyleInternal});
|
|
194
194
|
overrides.fontWeight =
|
|
195
195
|
// $FlowFixMe[incompatible-type]
|
|
196
|
-
|
|
196
|
+
String(processedStyle.fontWeight) as TextStyleInternal['fontWeight'];
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
if (processedStyle.userSelect != null) {
|
|
200
200
|
_selectable = userSelectToSelectableMap[processedStyle.userSelect];
|
|
201
|
-
overrides = overrides || ({}
|
|
201
|
+
overrides = overrides || ({} as {...TextStyleInternal});
|
|
202
202
|
overrides.userSelect = undefined;
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
if (processedStyle.verticalAlign != null) {
|
|
206
|
-
overrides = overrides || ({}
|
|
206
|
+
overrides = overrides || ({} as {...TextStyleInternal});
|
|
207
207
|
overrides.textAlignVertical =
|
|
208
208
|
verticalAlignToTextAlignVerticalMap[processedStyle.verticalAlign];
|
|
209
209
|
overrides.verticalAlign = undefined;
|
|
@@ -96,6 +96,15 @@ static void *TextFieldSelectionObservingContext = &TextFieldSelectionObservingCo
|
|
|
96
96
|
return YES;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
// Clamp the range to the current text length to avoid NSRangeException.
|
|
100
|
+
NSUInteger textLength = _backedTextInputView.attributedText.length;
|
|
101
|
+
if (range.location > textLength) {
|
|
102
|
+
return NO;
|
|
103
|
+
}
|
|
104
|
+
if (range.location + range.length > textLength) {
|
|
105
|
+
range = NSMakeRange(range.location, textLength - range.location);
|
|
106
|
+
}
|
|
107
|
+
|
|
99
108
|
NSMutableAttributedString *attributedString = [_backedTextInputView.attributedText mutableCopy];
|
|
100
109
|
[attributedString replaceCharactersInRange:range withString:newText];
|
|
101
110
|
[_backedTextInputView setAttributedText:[attributedString copy]];
|
|
@@ -292,8 +301,13 @@ static void *TextFieldSelectionObservingContext = &TextFieldSelectionObservingCo
|
|
|
292
301
|
return NO;
|
|
293
302
|
}
|
|
294
303
|
|
|
295
|
-
|
|
296
|
-
|
|
304
|
+
// Clamp the range to the current text length to avoid NSRangeException.
|
|
305
|
+
NSUInteger textLength = _backedTextInputView.attributedText.length;
|
|
306
|
+
if (range.location > textLength) {
|
|
307
|
+
return NO;
|
|
308
|
+
}
|
|
309
|
+
if (range.location + range.length > textLength) {
|
|
310
|
+
range = NSMakeRange(range.location, textLength - range.location);
|
|
297
311
|
} else if ([newText isEqualToString:text]) {
|
|
298
312
|
_textDidChangeIsComing = YES;
|
|
299
313
|
return YES;
|
|
@@ -77,16 +77,16 @@ const virtualTextViewConfig = {
|
|
|
77
77
|
// Additional note: Our long term plan is to reduce the overhead of the <Text>
|
|
78
78
|
// and <View> wrappers so that we no longer have any reason to export these APIs.
|
|
79
79
|
export const NativeText: HostComponent<NativeTextProps> =
|
|
80
|
-
|
|
80
|
+
createReactNativeComponentClass('RCTText', () =>
|
|
81
81
|
createViewConfig(textViewConfig),
|
|
82
|
-
)
|
|
82
|
+
) as any;
|
|
83
83
|
|
|
84
84
|
export const NativeVirtualText: HostComponent<NativeTextProps> =
|
|
85
85
|
!global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')
|
|
86
86
|
? NativeText
|
|
87
87
|
: (createReactNativeComponentClass('RCTVirtualText', () =>
|
|
88
88
|
createViewConfig(virtualTextViewConfig),
|
|
89
|
-
)
|
|
89
|
+
) as any);
|
|
90
90
|
|
|
91
91
|
export const NativeSelectableText: HostComponent<NativeTextProps> =
|
|
92
92
|
enablePreparedTextLayout()
|
|
@@ -95,5 +95,5 @@ export const NativeSelectableText: HostComponent<NativeTextProps> =
|
|
|
95
95
|
...textViewConfig,
|
|
96
96
|
uiViewClassName: 'RCTSelectableText',
|
|
97
97
|
}),
|
|
98
|
-
)
|
|
98
|
+
) as any)
|
|
99
99
|
: NativeText;
|
|
@@ -16,7 +16,7 @@ const NativeModules = require('../BatchedBridge/NativeModules').default;
|
|
|
16
16
|
|
|
17
17
|
const turboModuleProxy = global.__turboModuleProxy;
|
|
18
18
|
|
|
19
|
-
function requireModule<T
|
|
19
|
+
function requireModule<T extends TurboModule>(name: string): ?T {
|
|
20
20
|
if (turboModuleProxy != null) {
|
|
21
21
|
const module: ?T = turboModuleProxy(name);
|
|
22
22
|
if (module != null) {
|
|
@@ -32,11 +32,11 @@ function requireModule<T: TurboModule>(name: string): ?T {
|
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export function get<T
|
|
35
|
+
export function get<T extends TurboModule>(name: string): ?T {
|
|
36
36
|
return requireModule<T>(name);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
export function getEnforcing<T
|
|
39
|
+
export function getEnforcing<T extends TurboModule>(name: string): T {
|
|
40
40
|
const module = requireModule<T>(name);
|
|
41
41
|
invariant(
|
|
42
42
|
module != null,
|
|
@@ -18,11 +18,11 @@ import type {NativeSyntheticEvent} from './CoreEventTypes';
|
|
|
18
18
|
|
|
19
19
|
export type BubblingEventHandler<
|
|
20
20
|
T,
|
|
21
|
-
PaperName
|
|
21
|
+
PaperName extends string | empty = empty, // eslint-disable-line no-unused-vars
|
|
22
22
|
> = (event: NativeSyntheticEvent<T>) => void | Promise<void>;
|
|
23
23
|
export type DirectEventHandler<
|
|
24
24
|
T,
|
|
25
|
-
PaperName
|
|
25
|
+
PaperName extends string | empty = empty, // eslint-disable-line no-unused-vars
|
|
26
26
|
> = (event: NativeSyntheticEvent<T>) => void | Promise<void>;
|
|
27
27
|
|
|
28
28
|
// Prop types
|
|
@@ -40,8 +40,11 @@ type DefaultTypes = number | boolean | string | ReadonlyArray<string>;
|
|
|
40
40
|
// TODO: (rickhanlonii) T44881457 If a default is provided, it should always be optional
|
|
41
41
|
// but that is currently not supported in the codegen since we require a default
|
|
42
42
|
//
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
export type WithDefault<
|
|
44
|
+
Type extends DefaultTypes,
|
|
45
|
+
// eslint-disable-next-line no-unused-vars
|
|
46
|
+
Value extends ?Type | string,
|
|
47
|
+
> = ?Type;
|
|
45
48
|
|
|
46
49
|
export type EventEmitter<T> = (
|
|
47
50
|
handler: (T) => void | Promise<void>,
|
|
@@ -34,7 +34,7 @@ export type ReactDevToolsAgentEvents = {
|
|
|
34
34
|
export type ReactDevToolsAgent = {
|
|
35
35
|
selectNode(node: unknown): void,
|
|
36
36
|
stopInspectingNative(value: boolean): void,
|
|
37
|
-
addListener<Event
|
|
37
|
+
addListener<Event extends keyof ReactDevToolsAgentEvents>(
|
|
38
38
|
event: Event,
|
|
39
39
|
listener: (...ReactDevToolsAgentEvents[Event]) => void,
|
|
40
40
|
): void,
|
|
@@ -9,18 +9,26 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import NativeDeviceEventManager from '../../Libraries/NativeModules/specs/NativeDeviceEventManager';
|
|
12
|
+
import {setEventInitTimeStamp} from '../../src/private/webapis/dom/events/internals/EventInternals';
|
|
12
13
|
import RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';
|
|
14
|
+
import {HardwareBackPressEvent} from './HardwareBackPressEvent';
|
|
13
15
|
|
|
14
16
|
const DEVICE_BACK_EVENT = 'hardwareBackPress';
|
|
15
17
|
|
|
16
18
|
type BackPressEventName = 'backPress' | 'hardwareBackPress';
|
|
17
|
-
type BackPressHandler = () => ?boolean;
|
|
19
|
+
type BackPressHandler = (event: HardwareBackPressEvent) => ?boolean;
|
|
18
20
|
|
|
19
21
|
const _backPressSubscriptions: Array<BackPressHandler> = [];
|
|
20
22
|
|
|
21
|
-
RCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () {
|
|
23
|
+
RCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function (nativeEvent) {
|
|
24
|
+
const options = {};
|
|
25
|
+
const nativeTimestamp = nativeEvent?.timeStamp;
|
|
26
|
+
if (nativeTimestamp != null) {
|
|
27
|
+
setEventInitTimeStamp(options, nativeTimestamp);
|
|
28
|
+
}
|
|
29
|
+
const event = new HardwareBackPressEvent(options);
|
|
22
30
|
for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) {
|
|
23
|
-
if (_backPressSubscriptions[i]?.()) {
|
|
31
|
+
if (_backPressSubscriptions[i]?.(event)) {
|
|
24
32
|
return;
|
|
25
33
|
}
|
|
26
34
|
}
|
|
@@ -11,6 +11,16 @@ import {NativeEventSubscription} from '../EventEmitter/RCTNativeAppEventEmitter'
|
|
|
11
11
|
|
|
12
12
|
export type BackPressEventName = 'hardwareBackPress';
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Event dispatched when the hardware back button is pressed.
|
|
16
|
+
* The `timeStamp` property reflects the native timestamp captured
|
|
17
|
+
* when the back press was emitted.
|
|
18
|
+
*/
|
|
19
|
+
export interface HardwareBackPressEvent {
|
|
20
|
+
readonly type: string;
|
|
21
|
+
readonly timeStamp: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
14
24
|
/**
|
|
15
25
|
* Detect hardware back button presses, and programmatically invoke the
|
|
16
26
|
* default back button functionality to exit the app if there are no
|
|
@@ -26,7 +36,7 @@ export interface BackHandlerStatic {
|
|
|
26
36
|
exitApp(): void;
|
|
27
37
|
addEventListener(
|
|
28
38
|
eventName: BackPressEventName,
|
|
29
|
-
handler: () => boolean | null | undefined,
|
|
39
|
+
handler: (event: HardwareBackPressEvent) => boolean | null | undefined,
|
|
30
40
|
): NativeEventSubscription;
|
|
31
41
|
}
|
|
32
42
|
|
|
@@ -11,11 +11,13 @@
|
|
|
11
11
|
// On Apple TV, this implements back navigation using the TV remote's menu button.
|
|
12
12
|
// On iOS, this just implements a stub.
|
|
13
13
|
|
|
14
|
+
import type {HardwareBackPressEvent} from './HardwareBackPressEvent';
|
|
15
|
+
|
|
14
16
|
const TVEventHandler = require('../Components/TV/TVEventHandler').default;
|
|
15
17
|
const Platform = require('./Platform').default;
|
|
16
18
|
|
|
17
19
|
type BackPressEventName = 'backPress' | 'hardwareBackPress';
|
|
18
|
-
type BackPressHandler = () => ?boolean;
|
|
20
|
+
type BackPressHandler = (event: HardwareBackPressEvent) => ?boolean;
|
|
19
21
|
|
|
20
22
|
function emptyFunction(): void {}
|
|
21
23
|
|
|
@@ -12,11 +12,16 @@
|
|
|
12
12
|
|
|
13
13
|
export type BackPressEventName = 'backPress' | 'hardwareBackPress';
|
|
14
14
|
|
|
15
|
+
export interface HardwareBackPressEvent {
|
|
16
|
+
+type: string;
|
|
17
|
+
+timeStamp: number;
|
|
18
|
+
}
|
|
19
|
+
|
|
15
20
|
type TBackHandler = {
|
|
16
21
|
exitApp(): void,
|
|
17
22
|
addEventListener(
|
|
18
23
|
eventName: BackPressEventName,
|
|
19
|
-
handler: () => ?boolean,
|
|
24
|
+
handler: (event: HardwareBackPressEvent) => ?boolean,
|
|
20
25
|
): {remove: () => void, ...},
|
|
21
26
|
};
|
|
22
27
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {EventInit} from '../../src/private/webapis/dom/events/Event';
|
|
12
|
+
|
|
13
|
+
import Event from '../../src/private/webapis/dom/events/Event';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Event dispatched when the hardware back button is pressed on Android.
|
|
17
|
+
*/
|
|
18
|
+
export class HardwareBackPressEvent extends Event {
|
|
19
|
+
constructor(options?: ?EventInit) {
|
|
20
|
+
super('hardwareBackPress', options);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -106,14 +106,14 @@ function maximumDepthError(
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
function expectNoConsoleWarn() {
|
|
109
|
-
(jest
|
|
109
|
+
(jest as $FlowFixMe).spyOn(console, 'warn').mockImplementation((...args) => {
|
|
110
110
|
expect(args).toBeFalsy();
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
function expectNoConsoleError() {
|
|
115
115
|
let hasNotFailed = true;
|
|
116
|
-
(jest
|
|
116
|
+
(jest as $FlowFixMe).spyOn(console, 'error').mockImplementation((...args) => {
|
|
117
117
|
if (hasNotFailed) {
|
|
118
118
|
hasNotFailed = false; // set false to prevent infinite recursion
|
|
119
119
|
expect(args).toBeFalsy();
|
|
@@ -172,7 +172,7 @@ function renderWithStrictMode(element: React.Node): ReactTestRendererType {
|
|
|
172
172
|
const WorkAroundBugWithStrictModeInTestRenderer = (prps: {
|
|
173
173
|
children: React.Node,
|
|
174
174
|
}) => prps.children;
|
|
175
|
-
const StrictMode = (React
|
|
175
|
+
const StrictMode = (React as $FlowFixMe).StrictMode;
|
|
176
176
|
return ReactTestRenderer.create(
|
|
177
177
|
<WorkAroundBugWithStrictModeInTestRenderer>
|
|
178
178
|
<StrictMode>{element}</StrictMode>
|
|
@@ -217,7 +217,7 @@ function scrollToBottom(instance: ReactTestInstance) {
|
|
|
217
217
|
// To make error messages a little bit better, we attach a custom toString
|
|
218
218
|
// implementation to a predicate
|
|
219
219
|
function withMessage(fn: Predicate, message: string): Predicate {
|
|
220
|
-
(fn
|
|
220
|
+
(fn as any).toString = () => message;
|
|
221
221
|
return fn;
|
|
222
222
|
}
|
|
223
223
|
|
|
@@ -24,7 +24,7 @@ function binaryToBase64(data: ArrayBuffer | $ArrayBufferView): string {
|
|
|
24
24
|
throw new Error('data must be ArrayBuffer or typed array');
|
|
25
25
|
}
|
|
26
26
|
// Already checked that `data` is `DataView` in `ArrayBuffer.isView(data)`
|
|
27
|
-
const {buffer, byteOffset, byteLength}: DataView =
|
|
27
|
+
const {buffer, byteOffset, byteLength}: DataView = data as $FlowFixMe;
|
|
28
28
|
return base64.fromByteArray(new Uint8Array(buffer, byteOffset, byteLength));
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -14,7 +14,7 @@ type NativeCommandsOptions<T = string> = Readonly<{
|
|
|
14
14
|
supportedCommands: ReadonlyArray<T>,
|
|
15
15
|
}>;
|
|
16
16
|
|
|
17
|
-
function codegenNativeCommands<T
|
|
17
|
+
function codegenNativeCommands<T extends interface {}>(
|
|
18
18
|
options: NativeCommandsOptions<keyof T>,
|
|
19
19
|
): T {
|
|
20
20
|
const commandObj: {[keyof T]: (...ReadonlyArray<unknown>) => void} = {};
|
|
@@ -27,7 +27,7 @@ function codegenNativeCommands<T: interface {}>(
|
|
|
27
27
|
};
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
return
|
|
30
|
+
return commandObj as any as T;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export default codegenNativeCommands;
|