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
|
@@ -23,7 +23,11 @@ static inline void setFlexStartLayoutPosition(
|
|
|
23
23
|
axis, direction, containingBlockWidth) +
|
|
24
24
|
parent->getLayout().border(flexStartEdge(axis));
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
// https://www.w3.org/TR/css-grid-1/#abspos
|
|
27
|
+
// absolute positioned grid items are positioned relative to the padding edge
|
|
28
|
+
// of the grid container
|
|
29
|
+
if (!child->hasErrata(Errata::AbsolutePositionWithoutInsetsExcludesPadding) &&
|
|
30
|
+
parent->style().display() != Display::Grid) {
|
|
27
31
|
position += parent->getLayout().padding(flexStartEdge(axis));
|
|
28
32
|
}
|
|
29
33
|
|
|
@@ -40,7 +44,11 @@ static inline void setFlexEndLayoutPosition(
|
|
|
40
44
|
child->style().computeFlexEndMargin(
|
|
41
45
|
axis, direction, containingBlockWidth);
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
// https://www.w3.org/TR/css-grid-1/#abspos
|
|
48
|
+
// absolute positioned grid items are positioned relative to the padding edge
|
|
49
|
+
// of the grid container
|
|
50
|
+
if (!child->hasErrata(Errata::AbsolutePositionWithoutInsetsExcludesPadding) &&
|
|
51
|
+
parent->style().display() != Display::Grid) {
|
|
44
52
|
flexEndPosition += parent->getLayout().padding(flexEndEdge(axis));
|
|
45
53
|
}
|
|
46
54
|
|
|
@@ -60,7 +68,11 @@ static inline void setCenterLayoutPosition(
|
|
|
60
68
|
parent->getLayout().border(flexStartEdge(axis)) -
|
|
61
69
|
parent->getLayout().border(flexEndEdge(axis));
|
|
62
70
|
|
|
63
|
-
|
|
71
|
+
// https://www.w3.org/TR/css-grid-1/#abspos
|
|
72
|
+
// absolute positioned grid items are positioned relative to the padding edge
|
|
73
|
+
// of the grid container
|
|
74
|
+
if (!child->hasErrata(Errata::AbsolutePositionWithoutInsetsExcludesPadding) &&
|
|
75
|
+
parent->style().display() != Display::Grid) {
|
|
64
76
|
parentContentBoxSize -= parent->getLayout().padding(flexStartEdge(axis));
|
|
65
77
|
parentContentBoxSize -= parent->getLayout().padding(flexEndEdge(axis));
|
|
66
78
|
}
|
|
@@ -74,7 +86,11 @@ static inline void setCenterLayoutPosition(
|
|
|
74
86
|
child->style().computeFlexStartMargin(
|
|
75
87
|
axis, direction, containingBlockWidth);
|
|
76
88
|
|
|
77
|
-
|
|
89
|
+
// https://www.w3.org/TR/css-grid-1/#abspos
|
|
90
|
+
// absolute positioned grid items are positioned relative to the padding edge
|
|
91
|
+
// of the grid container
|
|
92
|
+
if (!child->hasErrata(Errata::AbsolutePositionWithoutInsetsExcludesPadding) &&
|
|
93
|
+
parent->style().display() != Display::Grid) {
|
|
78
94
|
position += parent->getLayout().padding(flexStartEdge(axis));
|
|
79
95
|
}
|
|
80
96
|
|
|
@@ -87,13 +103,19 @@ static void justifyAbsoluteChild(
|
|
|
87
103
|
const Direction direction,
|
|
88
104
|
const FlexDirection mainAxis,
|
|
89
105
|
const float containingBlockWidth) {
|
|
90
|
-
const Justify
|
|
91
|
-
|
|
106
|
+
const Justify justify = parent->style().display() == Display::Grid
|
|
107
|
+
? resolveChildJustification(parent, child)
|
|
108
|
+
: parent->style().justifyContent();
|
|
109
|
+
switch (justify) {
|
|
110
|
+
case Justify::Start:
|
|
111
|
+
case Justify::Auto:
|
|
112
|
+
case Justify::Stretch:
|
|
92
113
|
case Justify::FlexStart:
|
|
93
114
|
case Justify::SpaceBetween:
|
|
94
115
|
setFlexStartLayoutPosition(
|
|
95
116
|
parent, child, direction, mainAxis, containingBlockWidth);
|
|
96
117
|
break;
|
|
118
|
+
case Justify::End:
|
|
97
119
|
case Justify::FlexEnd:
|
|
98
120
|
setFlexEndLayoutPosition(
|
|
99
121
|
parent, child, direction, mainAxis, containingBlockWidth);
|
|
@@ -124,6 +146,7 @@ static void alignAbsoluteChild(
|
|
|
124
146
|
}
|
|
125
147
|
|
|
126
148
|
switch (itemAlign) {
|
|
149
|
+
case Align::Start:
|
|
127
150
|
case Align::Auto:
|
|
128
151
|
case Align::FlexStart:
|
|
129
152
|
case Align::Baseline:
|
|
@@ -134,6 +157,7 @@ static void alignAbsoluteChild(
|
|
|
134
157
|
setFlexStartLayoutPosition(
|
|
135
158
|
parent, child, direction, crossAxis, containingBlockWidth);
|
|
136
159
|
break;
|
|
160
|
+
case Align::End:
|
|
137
161
|
case Align::FlexEnd:
|
|
138
162
|
setFlexEndLayoutPosition(
|
|
139
163
|
parent, child, direction, crossAxis, containingBlockWidth);
|
|
@@ -234,9 +258,15 @@ void layoutAbsoluteChild(
|
|
|
234
258
|
LayoutData& layoutMarkerData,
|
|
235
259
|
const uint32_t depth,
|
|
236
260
|
const uint32_t generationCount) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
261
|
+
// For grid containers, use inline (Row) and block (Column) axes for
|
|
262
|
+
// positioning, since grid alignment properties (justify-self, align-self)
|
|
263
|
+
// operate on inline/block axes, not main/cross axes based on flex-direction.
|
|
264
|
+
const FlexDirection mainAxis = node->style().display() == Display::Grid
|
|
265
|
+
? resolveDirection(FlexDirection::Row, direction)
|
|
266
|
+
: resolveDirection(node->style().flexDirection(), direction);
|
|
267
|
+
const FlexDirection crossAxis = node->style().display() == Display::Grid
|
|
268
|
+
? FlexDirection::Column
|
|
269
|
+
: resolveCrossDirection(mainAxis, direction);
|
|
240
270
|
const bool isMainAxisRow = isRow(mainAxis);
|
|
241
271
|
|
|
242
272
|
float childWidth = YGUndefined;
|
|
@@ -528,6 +558,7 @@ bool layoutAbsoluteDescendants(
|
|
|
528
558
|
// we need to mutate these descendents. Make sure the path of
|
|
529
559
|
// nodes to them is mutable before positioning.
|
|
530
560
|
child->cloneChildrenIfNeeded();
|
|
561
|
+
cleanupContentsNodesRecursively(child);
|
|
531
562
|
const Direction childDirection =
|
|
532
563
|
child->resolveDirection(currentNodeDirection);
|
|
533
564
|
// By now all descendants of the containing block that are not absolute
|
|
@@ -20,12 +20,23 @@ inline Align resolveChildAlignment(
|
|
|
20
20
|
const Align align = child->style().alignSelf() == Align::Auto
|
|
21
21
|
? node->style().alignItems()
|
|
22
22
|
: child->style().alignSelf();
|
|
23
|
-
|
|
23
|
+
|
|
24
|
+
if (node->style().display() == Display::Flex && align == Align::Baseline &&
|
|
25
|
+
isColumn(node->style().flexDirection())) {
|
|
24
26
|
return Align::FlexStart;
|
|
25
27
|
}
|
|
28
|
+
|
|
26
29
|
return align;
|
|
27
30
|
}
|
|
28
31
|
|
|
32
|
+
inline Justify resolveChildJustification(
|
|
33
|
+
const yoga::Node* node,
|
|
34
|
+
const yoga::Node* child) {
|
|
35
|
+
return child->style().justifySelf() == Justify::Auto
|
|
36
|
+
? node->style().justifyItems()
|
|
37
|
+
: child->style().justifySelf();
|
|
38
|
+
}
|
|
39
|
+
|
|
29
40
|
/**
|
|
30
41
|
* Fallback alignment to use on overflow
|
|
31
42
|
* https://www.w3.org/TR/css-align-3/#distribution-values
|
|
@@ -35,7 +35,7 @@ namespace facebook::yoga {
|
|
|
35
35
|
|
|
36
36
|
std::atomic<uint32_t> gCurrentGenerationCount(0);
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
void constrainMaxSizeForMode(
|
|
39
39
|
const yoga::Node* node,
|
|
40
40
|
Direction direction,
|
|
41
41
|
FlexDirection axis,
|
|
@@ -94,7 +94,18 @@ static void computeFlexBasisForChild(
|
|
|
94
94
|
const bool isColumnStyleDimDefined =
|
|
95
95
|
child->hasDefiniteLength(Dimension::Height, ownerHeight);
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
const bool fixFlexBasisFitContent =
|
|
98
|
+
node->getConfig()->isExperimentalFeatureEnabled(
|
|
99
|
+
ExperimentalFeature::FixFlexBasisFitContent);
|
|
100
|
+
|
|
101
|
+
bool useResolvedFlexBasis =
|
|
102
|
+
resolvedFlexBasis.isDefined() && yoga::isDefined(mainAxisSize);
|
|
103
|
+
if (fixFlexBasisFitContent && resolvedFlexBasis.isDefined() &&
|
|
104
|
+
resolvedFlexBasis.unwrap() > 0) {
|
|
105
|
+
useResolvedFlexBasis = true;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (useResolvedFlexBasis) {
|
|
98
109
|
if (child->getLayout().computedFlexBasis.isUndefined() ||
|
|
99
110
|
(child->getConfig()->isExperimentalFeatureEnabled(
|
|
100
111
|
ExperimentalFeature::WebFlexBasis) &&
|
|
@@ -164,12 +175,27 @@ static void computeFlexBasisForChild(
|
|
|
164
175
|
}
|
|
165
176
|
}
|
|
166
177
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
178
|
+
// For height in the main axis (column direction): when the
|
|
179
|
+
// FixFlexBasisFitContent feature is enabled, skip FitContent for
|
|
180
|
+
// non-measure container children. This makes the flex basis independent
|
|
181
|
+
// of the parent's content-determined height, preventing unnecessary
|
|
182
|
+
// re-measurement cascades when a sibling changes size in a ScrollView.
|
|
183
|
+
//
|
|
184
|
+
// We only optimize the height (column) axis because text wrapping depends
|
|
185
|
+
// on width constraints propagating through container nodes. Removing
|
|
186
|
+
// FitContent from the width axis would cause text inside nested
|
|
187
|
+
// containers to stop wrapping.
|
|
188
|
+
bool applyHeightFitContent =
|
|
189
|
+
isMainAxisRow || node->style().overflow() != Overflow::Scroll;
|
|
190
|
+
if (fixFlexBasisFitContent) {
|
|
191
|
+
applyHeightFitContent = isMainAxisRow ||
|
|
192
|
+
(child->hasMeasureFunc() &&
|
|
193
|
+
node->style().overflow() != Overflow::Scroll);
|
|
194
|
+
}
|
|
195
|
+
if (applyHeightFitContent && yoga::isUndefined(childHeight) &&
|
|
196
|
+
yoga::isDefined(height)) {
|
|
197
|
+
childHeight = height;
|
|
198
|
+
childHeightSizingMode = SizingMode::FitContent;
|
|
173
199
|
}
|
|
174
200
|
|
|
175
201
|
const auto& childStyle = child->style();
|
|
@@ -468,7 +494,7 @@ static bool measureNodeWithFixedSize(
|
|
|
468
494
|
return false;
|
|
469
495
|
}
|
|
470
496
|
|
|
471
|
-
|
|
497
|
+
void zeroOutLayoutRecursively(yoga::Node* const node) {
|
|
472
498
|
node->getLayout() = {};
|
|
473
499
|
node->setLayoutDimension(0, Dimension::Width);
|
|
474
500
|
node->setLayoutDimension(0, Dimension::Height);
|
|
@@ -480,7 +506,7 @@ static void zeroOutLayoutRecursively(yoga::Node* const node) {
|
|
|
480
506
|
}
|
|
481
507
|
}
|
|
482
508
|
|
|
483
|
-
|
|
509
|
+
void cleanupContentsNodesRecursively(yoga::Node* const node) {
|
|
484
510
|
if (node->hasContentsChildren()) [[unlikely]] {
|
|
485
511
|
node->cloneContentsChildrenIfNeeded();
|
|
486
512
|
for (auto child : node->getChildren()) {
|
|
@@ -498,7 +524,7 @@ static void cleanupContentsNodesRecursively(yoga::Node* const node) {
|
|
|
498
524
|
}
|
|
499
525
|
}
|
|
500
526
|
|
|
501
|
-
|
|
527
|
+
float calculateAvailableInnerDimension(
|
|
502
528
|
const yoga::Node* const node,
|
|
503
529
|
const Direction direction,
|
|
504
530
|
const Dimension dimension,
|
|
@@ -537,6 +563,8 @@ static float computeFlexBasisForChildren(
|
|
|
537
563
|
yoga::Node* const node,
|
|
538
564
|
const float availableInnerWidth,
|
|
539
565
|
const float availableInnerHeight,
|
|
566
|
+
const float ownerWidth,
|
|
567
|
+
const float ownerHeight,
|
|
540
568
|
SizingMode widthSizingMode,
|
|
541
569
|
SizingMode heightSizingMode,
|
|
542
570
|
Direction direction,
|
|
@@ -598,8 +626,8 @@ static float computeFlexBasisForChildren(
|
|
|
598
626
|
availableInnerWidth,
|
|
599
627
|
widthSizingMode,
|
|
600
628
|
availableInnerHeight,
|
|
601
|
-
|
|
602
|
-
|
|
629
|
+
ownerWidth,
|
|
630
|
+
ownerHeight,
|
|
603
631
|
heightSizingMode,
|
|
604
632
|
direction,
|
|
605
633
|
layoutMarkerData,
|
|
@@ -1046,6 +1074,14 @@ static void justifyMainAxis(
|
|
|
1046
1074
|
|
|
1047
1075
|
if (flexLine.numberOfAutoMargins == 0) {
|
|
1048
1076
|
switch (justifyContent) {
|
|
1077
|
+
case Justify::Start:
|
|
1078
|
+
case Justify::End:
|
|
1079
|
+
case Justify::Auto:
|
|
1080
|
+
// No-Op
|
|
1081
|
+
break;
|
|
1082
|
+
case Justify::Stretch:
|
|
1083
|
+
// No-Op
|
|
1084
|
+
break;
|
|
1049
1085
|
case Justify::Center:
|
|
1050
1086
|
leadingMainDim = flexLine.layout.remainingFreeSpace / 2;
|
|
1051
1087
|
break;
|
|
@@ -1113,7 +1149,14 @@ static void justifyMainAxis(
|
|
|
1113
1149
|
// dimensionWithMargin.
|
|
1114
1150
|
flexLine.layout.mainDim +=
|
|
1115
1151
|
child->style().computeMarginForAxis(mainAxis, availableInnerWidth) +
|
|
1116
|
-
|
|
1152
|
+
boundAxisWithinMinAndMax(
|
|
1153
|
+
child,
|
|
1154
|
+
direction,
|
|
1155
|
+
mainAxis,
|
|
1156
|
+
childLayout.computedFlexBasis,
|
|
1157
|
+
mainAxisOwnerSize,
|
|
1158
|
+
ownerWidth)
|
|
1159
|
+
.unwrap();
|
|
1117
1160
|
flexLine.layout.crossDim = availableInnerCrossDim;
|
|
1118
1161
|
} else {
|
|
1119
1162
|
// The main dimension is the sum of all the elements dimension plus
|
|
@@ -1421,12 +1464,53 @@ static void calculateLayoutImpl(
|
|
|
1421
1464
|
|
|
1422
1465
|
// STEP 3: DETERMINE FLEX BASIS FOR EACH ITEM
|
|
1423
1466
|
|
|
1467
|
+
// When this node is measured with MaxContent (FixFlexBasisFitContent
|
|
1468
|
+
// behavior), availableInnerHeight is NaN.
|
|
1469
|
+
// To preserve percentage resolution for descendants, derive a definite
|
|
1470
|
+
// owner-size from the parent-provided ownerHeight.
|
|
1471
|
+
float ownerWidthForChildren = availableInnerWidth;
|
|
1472
|
+
float ownerHeightForChildren = availableInnerHeight;
|
|
1473
|
+
|
|
1474
|
+
if (node->getConfig()->isExperimentalFeatureEnabled(
|
|
1475
|
+
ExperimentalFeature::FixFlexBasisFitContent)) {
|
|
1476
|
+
const auto* owner = node->getOwner();
|
|
1477
|
+
const bool isChildOfScrollContainer =
|
|
1478
|
+
owner != nullptr && owner->style().overflow() == Overflow::Scroll;
|
|
1479
|
+
|
|
1480
|
+
if (!isChildOfScrollContainer) {
|
|
1481
|
+
if (yoga::isUndefined(ownerWidthForChildren) &&
|
|
1482
|
+
yoga::isDefined(ownerWidth)) {
|
|
1483
|
+
ownerWidthForChildren = calculateAvailableInnerDimension(
|
|
1484
|
+
node,
|
|
1485
|
+
direction,
|
|
1486
|
+
Dimension::Width,
|
|
1487
|
+
ownerWidth - marginAxisRow,
|
|
1488
|
+
paddingAndBorderAxisRow,
|
|
1489
|
+
ownerWidth,
|
|
1490
|
+
ownerWidth);
|
|
1491
|
+
}
|
|
1492
|
+
if (yoga::isUndefined(ownerHeightForChildren) &&
|
|
1493
|
+
yoga::isDefined(ownerHeight)) {
|
|
1494
|
+
ownerHeightForChildren = calculateAvailableInnerDimension(
|
|
1495
|
+
node,
|
|
1496
|
+
direction,
|
|
1497
|
+
Dimension::Height,
|
|
1498
|
+
ownerHeight - marginAxisColumn,
|
|
1499
|
+
paddingAndBorderAxisColumn,
|
|
1500
|
+
ownerHeight,
|
|
1501
|
+
ownerWidth);
|
|
1502
|
+
}
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
|
+
|
|
1424
1506
|
// Computed basis + margins + gap
|
|
1425
1507
|
float totalMainDim = 0;
|
|
1426
1508
|
totalMainDim += computeFlexBasisForChildren(
|
|
1427
1509
|
node,
|
|
1428
1510
|
availableInnerWidth,
|
|
1429
1511
|
availableInnerHeight,
|
|
1512
|
+
ownerWidthForChildren,
|
|
1513
|
+
ownerHeightForChildren,
|
|
1430
1514
|
widthSizingMode,
|
|
1431
1515
|
heightSizingMode,
|
|
1432
1516
|
direction,
|
|
@@ -1799,6 +1883,10 @@ static void calculateLayoutImpl(
|
|
|
1799
1883
|
: fallbackAlignment(node->style().alignContent());
|
|
1800
1884
|
|
|
1801
1885
|
switch (alignContent) {
|
|
1886
|
+
case Align::Start:
|
|
1887
|
+
case Align::End:
|
|
1888
|
+
// No-Op
|
|
1889
|
+
break;
|
|
1802
1890
|
case Align::FlexEnd:
|
|
1803
1891
|
currentLead += remainingAlignContentDim;
|
|
1804
1892
|
break;
|
|
@@ -1886,6 +1974,10 @@ static void calculateLayoutImpl(
|
|
|
1886
1974
|
}
|
|
1887
1975
|
if (child->style().positionType() != PositionType::Absolute) {
|
|
1888
1976
|
switch (resolveChildAlignment(node, child)) {
|
|
1977
|
+
case Align::Start:
|
|
1978
|
+
case Align::End:
|
|
1979
|
+
// Not yet implemented
|
|
1980
|
+
break;
|
|
1889
1981
|
case Align::FlexStart: {
|
|
1890
1982
|
child->setLayoutPosition(
|
|
1891
1983
|
currentLead +
|
|
@@ -35,4 +35,26 @@ bool calculateLayoutInternal(
|
|
|
35
35
|
uint32_t depth,
|
|
36
36
|
uint32_t generationCount);
|
|
37
37
|
|
|
38
|
+
void constrainMaxSizeForMode(
|
|
39
|
+
const yoga::Node* node,
|
|
40
|
+
Direction direction,
|
|
41
|
+
FlexDirection axis,
|
|
42
|
+
float ownerAxisSize,
|
|
43
|
+
float ownerWidth,
|
|
44
|
+
/*in_out*/ SizingMode* mode,
|
|
45
|
+
/*in_out*/ float* size);
|
|
46
|
+
|
|
47
|
+
float calculateAvailableInnerDimension(
|
|
48
|
+
const yoga::Node* const node,
|
|
49
|
+
const Direction direction,
|
|
50
|
+
const Dimension dimension,
|
|
51
|
+
const float availableDim,
|
|
52
|
+
float paddingAndBorder,
|
|
53
|
+
const float ownerDim,
|
|
54
|
+
const float ownerWidth);
|
|
55
|
+
|
|
56
|
+
void zeroOutLayoutRecursively(yoga::Node* const node);
|
|
57
|
+
|
|
58
|
+
void cleanupContentsNodesRecursively(yoga::Node* const node);
|
|
59
|
+
|
|
38
60
|
} // namespace facebook::yoga
|
|
@@ -25,11 +25,13 @@ enum class Align : uint8_t {
|
|
|
25
25
|
SpaceBetween = YGAlignSpaceBetween,
|
|
26
26
|
SpaceAround = YGAlignSpaceAround,
|
|
27
27
|
SpaceEvenly = YGAlignSpaceEvenly,
|
|
28
|
+
Start = YGAlignStart,
|
|
29
|
+
End = YGAlignEnd,
|
|
28
30
|
};
|
|
29
31
|
|
|
30
32
|
template <>
|
|
31
33
|
constexpr int32_t ordinalCount<Align>() {
|
|
32
|
-
return
|
|
34
|
+
return 11;
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
constexpr Align scopedEnum(YGAlign unscoped) {
|
|
@@ -19,11 +19,12 @@ enum class Display : uint8_t {
|
|
|
19
19
|
Flex = YGDisplayFlex,
|
|
20
20
|
None = YGDisplayNone,
|
|
21
21
|
Contents = YGDisplayContents,
|
|
22
|
+
Grid = YGDisplayGrid,
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
template <>
|
|
25
26
|
constexpr int32_t ordinalCount<Display>() {
|
|
26
|
-
return
|
|
27
|
+
return 4;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
constexpr Display scopedEnum(YGDisplay unscoped) {
|
|
@@ -17,11 +17,12 @@ namespace facebook::yoga {
|
|
|
17
17
|
|
|
18
18
|
enum class ExperimentalFeature : uint8_t {
|
|
19
19
|
WebFlexBasis = YGExperimentalFeatureWebFlexBasis,
|
|
20
|
+
FixFlexBasisFitContent = YGExperimentalFeatureFixFlexBasisFitContent,
|
|
20
21
|
};
|
|
21
22
|
|
|
22
23
|
template <>
|
|
23
24
|
constexpr int32_t ordinalCount<ExperimentalFeature>() {
|
|
24
|
-
return
|
|
25
|
+
return 2;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
constexpr ExperimentalFeature scopedEnum(YGExperimentalFeature unscoped) {
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
|
|
8
|
+
// @generated by enums.py
|
|
9
|
+
// clang-format off
|
|
10
|
+
#pragma once
|
|
11
|
+
|
|
12
|
+
#include <cstdint>
|
|
13
|
+
#include <yoga/YGEnums.h>
|
|
14
|
+
#include <yoga/enums/YogaEnums.h>
|
|
15
|
+
|
|
16
|
+
namespace facebook::yoga {
|
|
17
|
+
|
|
18
|
+
enum class GridTrackType : uint8_t {
|
|
19
|
+
Auto = YGGridTrackTypeAuto,
|
|
20
|
+
Points = YGGridTrackTypePoints,
|
|
21
|
+
Percent = YGGridTrackTypePercent,
|
|
22
|
+
Fr = YGGridTrackTypeFr,
|
|
23
|
+
Minmax = YGGridTrackTypeMinmax,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
template <>
|
|
27
|
+
constexpr int32_t ordinalCount<GridTrackType>() {
|
|
28
|
+
return 5;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
constexpr GridTrackType scopedEnum(YGGridTrackType unscoped) {
|
|
32
|
+
return static_cast<GridTrackType>(unscoped);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
constexpr YGGridTrackType unscopedEnum(GridTrackType scoped) {
|
|
36
|
+
return static_cast<YGGridTrackType>(scoped);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
inline const char* toString(GridTrackType e) {
|
|
40
|
+
return YGGridTrackTypeToString(unscopedEnum(e));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
} // namespace facebook::yoga
|
|
@@ -16,17 +16,21 @@
|
|
|
16
16
|
namespace facebook::yoga {
|
|
17
17
|
|
|
18
18
|
enum class Justify : uint8_t {
|
|
19
|
+
Auto = YGJustifyAuto,
|
|
19
20
|
FlexStart = YGJustifyFlexStart,
|
|
20
21
|
Center = YGJustifyCenter,
|
|
21
22
|
FlexEnd = YGJustifyFlexEnd,
|
|
22
23
|
SpaceBetween = YGJustifySpaceBetween,
|
|
23
24
|
SpaceAround = YGJustifySpaceAround,
|
|
24
25
|
SpaceEvenly = YGJustifySpaceEvenly,
|
|
26
|
+
Stretch = YGJustifyStretch,
|
|
27
|
+
Start = YGJustifyStart,
|
|
28
|
+
End = YGJustifyEnd,
|
|
25
29
|
};
|
|
26
30
|
|
|
27
31
|
template <>
|
|
28
32
|
constexpr int32_t ordinalCount<Justify>() {
|
|
29
|
-
return
|
|
33
|
+
return 10;
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
constexpr Justify scopedEnum(YGJustify unscoped) {
|
|
@@ -29,6 +29,8 @@ const char* LayoutPassReasonToString(const LayoutPassReason value) {
|
|
|
29
29
|
return "abs_measure";
|
|
30
30
|
case LayoutPassReason::kFlexMeasure:
|
|
31
31
|
return "flex_measure";
|
|
32
|
+
case LayoutPassReason::kGridLayout:
|
|
33
|
+
return "grid_layout";
|
|
32
34
|
default:
|
|
33
35
|
return "unknown";
|
|
34
36
|
}
|
|
@@ -392,7 +392,12 @@ void Node::cloneChildrenIfNeeded() {
|
|
|
392
392
|
child = resolveRef(config_->cloneNode(child, this, i));
|
|
393
393
|
child->setOwner(this);
|
|
394
394
|
|
|
395
|
-
if (child->
|
|
395
|
+
if (child->style().display() == Display::Contents) [[unlikely]] {
|
|
396
|
+
// The contents node's children are treated as children of the
|
|
397
|
+
// contents node's parent for layout purposes, so they need
|
|
398
|
+
// to be cloned as well.
|
|
399
|
+
child->cloneChildrenIfNeeded();
|
|
400
|
+
} else if (child->hasContentsChildren()) [[unlikely]] {
|
|
396
401
|
child->cloneContentsChildrenIfNeeded();
|
|
397
402
|
}
|
|
398
403
|
}
|
|
@@ -294,15 +294,15 @@ class YG_EXPORT Node : public ::YGNode {
|
|
|
294
294
|
bool isNodeFlexible();
|
|
295
295
|
void reset();
|
|
296
296
|
|
|
297
|
-
private:
|
|
298
|
-
// Used to allow resetting the node
|
|
299
|
-
Node& operator=(Node&&) noexcept = default;
|
|
300
|
-
|
|
301
297
|
float relativePosition(
|
|
302
298
|
FlexDirection axis,
|
|
303
299
|
Direction direction,
|
|
304
300
|
float axisSize) const;
|
|
305
301
|
|
|
302
|
+
private:
|
|
303
|
+
// Used to allow resetting the node
|
|
304
|
+
Node& operator=(Node&&) noexcept = default;
|
|
305
|
+
|
|
306
306
|
void useWebDefaults() {
|
|
307
307
|
style_.setFlexDirection(FlexDirection::Row);
|
|
308
308
|
style_.setAlignContent(Align::Stretch);
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <cstdint>
|
|
11
|
+
|
|
12
|
+
namespace facebook::yoga {
|
|
13
|
+
|
|
14
|
+
// https://www.w3.org/TR/css-grid-1/#typedef-grid-row-start-grid-line
|
|
15
|
+
enum class GridLineType : uint8_t {
|
|
16
|
+
Auto,
|
|
17
|
+
Integer,
|
|
18
|
+
Span,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
struct GridLine {
|
|
22
|
+
GridLineType type{};
|
|
23
|
+
// Line position (1, 2, -1, -2, etc)
|
|
24
|
+
int32_t integer{};
|
|
25
|
+
|
|
26
|
+
constexpr static GridLine auto_() {
|
|
27
|
+
return GridLine{.type = GridLineType::Auto, .integer = 0};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
constexpr static GridLine fromInteger(int32_t value) {
|
|
31
|
+
return GridLine{.type = GridLineType::Integer, .integer = value};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
constexpr static GridLine span(int32_t value) {
|
|
35
|
+
return GridLine{.type = GridLineType::Span, .integer = value};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
constexpr bool isAuto() const {
|
|
39
|
+
return type == GridLineType::Auto;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
constexpr bool isInteger() const {
|
|
43
|
+
return type == GridLineType::Integer;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
constexpr bool isSpan() const {
|
|
47
|
+
return type == GridLineType::Span;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
bool operator==(const GridLine& other) const = default;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
} // namespace facebook::yoga
|
|
@@ -0,0 +1,63 @@
|
|
|
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
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <yoga/style/StyleSizeLength.h>
|
|
11
|
+
#include <vector>
|
|
12
|
+
|
|
13
|
+
namespace facebook::yoga {
|
|
14
|
+
// https://www.w3.org/TR/css-grid-1/#typedef-track-size
|
|
15
|
+
struct GridTrackSize {
|
|
16
|
+
StyleSizeLength minSizingFunction;
|
|
17
|
+
StyleSizeLength maxSizingFunction;
|
|
18
|
+
|
|
19
|
+
// These are used in the grid layout algorithm when distributing spaces among
|
|
20
|
+
// tracks
|
|
21
|
+
// TODO: maybe move them to TrackSizing since these are track states
|
|
22
|
+
float baseSize = 0.0f;
|
|
23
|
+
float growthLimit = 0.0f;
|
|
24
|
+
bool infinitelyGrowable = false;
|
|
25
|
+
|
|
26
|
+
// Static factory methods for common cases
|
|
27
|
+
constexpr static GridTrackSize auto_() {
|
|
28
|
+
return GridTrackSize{
|
|
29
|
+
.minSizingFunction = StyleSizeLength::ofAuto(),
|
|
30
|
+
.maxSizingFunction = StyleSizeLength::ofAuto()};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
constexpr static GridTrackSize length(float points) {
|
|
34
|
+
auto len = StyleSizeLength::points(points);
|
|
35
|
+
return GridTrackSize{.minSizingFunction = len, .maxSizingFunction = len};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
constexpr static GridTrackSize fr(float fraction) {
|
|
39
|
+
// Flex sizing function is always a max sizing function
|
|
40
|
+
return GridTrackSize{
|
|
41
|
+
.minSizingFunction = StyleSizeLength::ofAuto(),
|
|
42
|
+
.maxSizingFunction = StyleSizeLength::stretch(fraction)};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
constexpr static GridTrackSize percent(float percentage) {
|
|
46
|
+
return GridTrackSize{
|
|
47
|
+
.minSizingFunction = StyleSizeLength::percent(percentage),
|
|
48
|
+
.maxSizingFunction = StyleSizeLength::percent(percentage)};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
constexpr static GridTrackSize minmax(
|
|
52
|
+
StyleSizeLength min,
|
|
53
|
+
StyleSizeLength max) {
|
|
54
|
+
return GridTrackSize{.minSizingFunction = min, .maxSizingFunction = max};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
bool operator==(const GridTrackSize& other) const = default;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// Grid track list for grid-template-rows/columns properties
|
|
61
|
+
using GridTrackList = std::vector<GridTrackSize>;
|
|
62
|
+
|
|
63
|
+
} // namespace facebook::yoga
|