react-native-tvos 0.77.0-0rc5 → 0.78.0-0rc4

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.
Files changed (652) hide show
  1. package/Libraries/Animated/animations/Animation.js +22 -1
  2. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  3. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  4. package/Libraries/Animated/animations/TimingAnimation.js +1 -0
  5. package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
  6. package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
  7. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
  8. package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
  9. package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
  10. package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
  11. package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
  12. package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
  13. package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
  14. package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
  16. package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
  17. package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
  18. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
  19. package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
  20. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  21. package/Libraries/Animated/useAnimatedProps.js +14 -56
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
  24. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
  25. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
  26. package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
  27. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +263 -0
  28. package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
  29. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
  30. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
  31. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  32. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  33. package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
  34. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  35. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  36. package/Libraries/Components/TV/TVFocusGuideView.js +0 -1
  37. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  38. package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
  39. package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
  40. package/Libraries/Components/TextInput/TextInput.js +6 -0
  41. package/Libraries/Components/View/ViewPropTypes.d.ts +8 -7
  42. package/Libraries/Components/View/ViewPropTypes.js +0 -9
  43. package/Libraries/Core/ReactNativeVersion.js +2 -2
  44. package/Libraries/Core/setUpBatchedBridge.js +1 -16
  45. package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
  46. package/Libraries/Image/AssetSourceResolver.js +11 -0
  47. package/Libraries/Image/RCTImageLoader.mm +9 -1
  48. package/Libraries/Image/RCTImageView.mm +3 -3
  49. package/Libraries/Inspector/BorderBox.js +26 -14
  50. package/Libraries/Inspector/BoxInspector.js +60 -42
  51. package/Libraries/Inspector/ElementBox.js +55 -48
  52. package/Libraries/Inspector/StyleInspector.js +36 -30
  53. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  54. package/Libraries/Lists/FlatList.d.ts +1 -1
  55. package/Libraries/Modal/Modal.js +2 -0
  56. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
  57. package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
  58. package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
  59. package/Libraries/Network/RCTNetworking.android.js +24 -16
  60. package/Libraries/Network/RCTNetworking.ios.js +1 -46
  61. package/Libraries/Network/RCTNetworking.js.flow +1 -46
  62. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  63. package/Libraries/Pressability/Pressability.js +2 -2
  64. package/Libraries/ReactNative/UIManagerProperties.js +3 -1
  65. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
  66. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
  67. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
  68. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
  69. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
  70. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
  71. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
  72. package/Libraries/StyleSheet/processTransform.js +6 -0
  73. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
  74. package/Libraries/Text/Text.d.ts +6 -1
  75. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
  76. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
  77. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
  78. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +26 -1
  79. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
  80. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
  81. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
  82. package/Libraries/Text/TextProps.js +2 -2
  83. package/Libraries/Utilities/BackHandler.android.js +5 -4
  84. package/Libraries/Utilities/BackHandler.ios.js +3 -4
  85. package/README-core.md +2 -2
  86. package/React/Base/RCTConvert.mm +3 -1
  87. package/React/Base/RCTVersion.m +2 -2
  88. package/React/CoreModules/RCTDevSettings.h +0 -1
  89. package/React/CoreModules/RCTDeviceInfo.mm +4 -0
  90. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
  91. package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
  92. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
  93. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
  94. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
  95. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
  96. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
  97. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
  98. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
  99. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
  100. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +107 -34
  101. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
  102. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
  103. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -4
  104. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
  105. package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
  106. package/React/Fabric/RCTScheduler.mm +1 -1
  107. package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
  108. package/React/Modules/RCTUIManager.mm +1 -2
  109. package/React/React-RCTFBReactNativeSpec.podspec +1 -0
  110. package/React/React-RCTFabric.podspec +3 -2
  111. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
  112. package/React/Views/RCTComponentData.mm +1 -5
  113. package/React/Views/RCTLayout.m +3 -0
  114. package/React/Views/RCTShadowView.h +3 -3
  115. package/React/Views/RCTShadowView.m +52 -20
  116. package/React/Views/RCTTVView.m +5 -2
  117. package/React/Views/RCTView.m +6 -2
  118. package/React/Views/RCTViewManager.m +0 -7
  119. package/React/Views/ScrollView/RCTScrollView.m +109 -45
  120. package/React-Core.podspec +1 -1
  121. package/ReactAndroid/api/ReactAndroid.api +123 -227
  122. package/ReactAndroid/build.gradle.kts +8 -13
  123. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +13 -3
  124. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
  125. package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
  126. package/ReactAndroid/gradle.properties +3 -3
  127. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
  128. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
  129. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
  130. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
  131. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +8 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +37 -0
  133. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
  134. package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
  135. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
  136. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +1 -1
  137. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
  138. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
  140. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
  141. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
  142. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
  143. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
  146. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
  147. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
  148. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  149. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +39 -8
  156. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
  157. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
  158. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
  159. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
  160. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
  161. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
  162. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
  163. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
  164. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
  165. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
  166. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
  167. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
  168. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
  169. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
  176. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
  177. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  178. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
  179. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
  180. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
  181. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
  182. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
  197. package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
  198. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
  199. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
  200. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
  201. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
  202. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
  203. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
  211. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
  213. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
  215. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
  216. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
  217. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
  218. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +56 -3
  219. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
  220. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
  221. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
  225. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
  226. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
  227. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
  228. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +16 -2
  229. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
  230. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
  231. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
  232. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
  233. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
  234. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +90 -20
  235. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
  237. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
  238. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
  239. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
  240. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
  241. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
  242. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
  243. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
  244. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
  245. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
  246. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
  247. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  248. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
  249. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
  250. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
  251. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
  252. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
  253. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
  254. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  255. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
  256. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
  257. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
  258. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
  259. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
  260. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
  261. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  262. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
  263. package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
  264. package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
  265. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
  266. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
  267. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
  268. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
  269. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
  270. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
  271. package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
  272. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
  273. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
  274. package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
  275. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
  276. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
  277. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
  278. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
  279. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
  280. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
  281. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
  282. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
  283. package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
  284. package/ReactCommon/React-Fabric.podspec +8 -0
  285. package/ReactCommon/React-FabricComponents.podspec +2 -2
  286. package/ReactCommon/React-FabricImage.podspec +4 -1
  287. package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
  288. package/ReactCommon/cxxreact/Instance.cpp +6 -6
  289. package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
  290. package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
  291. package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
  292. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
  293. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  294. package/ReactCommon/cxxreact/SystraceSection.h +8 -141
  295. package/ReactCommon/cxxreact/TraceSection.h +181 -0
  296. package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
  297. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
  298. package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
  299. package/ReactCommon/jsc/React-jsc.podspec +1 -1
  300. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
  301. package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
  302. package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
  303. package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
  304. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
  305. package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
  306. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
  307. package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
  308. package/ReactCommon/jsi/jsi/decorator.h +61 -0
  309. package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
  310. package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
  311. package/ReactCommon/jsi/jsi/jsi.h +81 -0
  312. package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
  313. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
  314. package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
  315. package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
  316. package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
  317. package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
  318. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
  319. package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
  320. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
  321. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
  322. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
  323. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
  324. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
  325. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
  326. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
  327. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
  328. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
  329. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
  330. package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
  331. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
  332. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
  333. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
  334. package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
  335. package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
  336. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
  337. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
  338. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
  339. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
  340. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
  341. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
  342. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
  343. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
  344. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
  345. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
  346. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +13 -4
  347. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -0
  348. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +19 -11
  349. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
  350. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
  351. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
  352. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
  353. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
  354. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  355. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
  356. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
  357. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
  358. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
  359. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  360. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
  361. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
  362. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  363. package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
  364. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
  365. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
  366. package/ReactCommon/react/renderer/animations/primitives.h +1 -1
  367. package/ReactCommon/react/renderer/animations/utils.h +3 -4
  368. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
  369. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +85 -29
  370. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  371. package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
  372. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
  373. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
  374. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
  375. package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
  376. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
  377. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  378. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
  379. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
  380. package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
  381. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
  382. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
  383. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
  384. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
  385. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
  386. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
  387. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
  388. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
  389. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
  390. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
  391. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
  392. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +12 -0
  393. package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
  394. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
  395. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
  396. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
  397. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
  398. package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
  399. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
  400. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
  401. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
  402. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
  403. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
  404. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
  405. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
  406. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
  407. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
  408. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
  409. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
  410. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
  411. package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
  412. package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
  413. package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
  414. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
  415. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
  416. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
  417. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
  419. package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
  420. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
  421. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
  422. package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
  423. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
  424. package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
  425. package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
  426. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
  427. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
  428. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
  429. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
  430. package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
  431. package/ReactCommon/react/renderer/core/Props.cpp +16 -5
  432. package/ReactCommon/react/renderer/core/Props.h +11 -4
  433. package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
  434. package/ReactCommon/react/renderer/core/RawProps.h +10 -1
  435. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
  436. package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
  437. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
  438. package/ReactCommon/react/renderer/core/RawValue.h +315 -22
  439. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
  440. package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
  441. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
  442. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
  443. package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
  444. package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
  445. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
  446. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
  447. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
  448. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
  449. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
  450. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
  451. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
  452. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
  453. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  454. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
  455. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  456. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
  457. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
  458. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
  459. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
  460. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
  461. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
  462. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
  463. package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
  464. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
  465. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
  466. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
  467. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
  468. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
  469. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
  470. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
  471. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
  472. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
  473. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
  474. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
  475. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
  476. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
  477. package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
  478. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
  479. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
  480. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
  481. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
  482. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  483. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
  484. package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
  485. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
  486. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
  487. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
  488. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +11 -5
  489. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
  490. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
  491. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
  492. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
  493. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
  494. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
  495. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
  496. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
  497. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
  498. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
  499. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
  500. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
  501. package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
  502. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
  503. package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
  504. package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
  505. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
  506. package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
  507. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
  508. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
  509. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
  510. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
  511. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
  512. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
  513. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
  514. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
  515. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
  516. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
  517. package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
  518. package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
  519. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
  520. package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
  521. package/ReactCommon/yoga/yoga/YGValue.h +3 -0
  522. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
  523. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
  524. package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
  525. package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
  526. package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
  527. package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
  528. package/ReactCommon/yoga/yoga/node/Node.h +5 -5
  529. package/ReactCommon/yoga/yoga/style/Style.h +14 -12
  530. package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
  531. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
  532. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  533. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
  534. package/gradle/libs.versions.toml +6 -2
  535. package/index.js +5 -0
  536. package/package.json +12 -13
  537. package/react-native.config.js +6 -0
  538. package/scripts/cocoapods/codegen_utils.rb +4 -4
  539. package/scripts/cocoapods/new_architecture.rb +3 -3
  540. package/scripts/cocoapods/utils.rb +4 -3
  541. package/scripts/codegen/generate-artifacts-executor.js +8 -4
  542. package/scripts/generate-codegen-artifacts.js +6 -1
  543. package/scripts/react-native-xcode.sh +1 -1
  544. package/scripts/react_native_pods.rb +3 -3
  545. package/scripts/xcode/ccache-clang++.sh +1 -1
  546. package/scripts/xcode/ccache-clang.sh +1 -1
  547. package/sdks/.hermesversion +1 -1
  548. package/sdks/hermes-engine/hermes-utils.rb +2 -2
  549. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
  550. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  551. package/sdks/hermesc/osx-bin/hermes +0 -0
  552. package/sdks/hermesc/osx-bin/hermesc +0 -0
  553. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  554. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  555. package/src/private/featureflags/README.md +5 -0
  556. package/src/private/featureflags/ReactNativeFeatureFlags.js +32 -26
  557. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
  558. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
  559. package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
  560. package/src/private/specs/modules/NativeFantom.js +37 -0
  561. package/src/private/utilities/ensureInstance.js +21 -0
  562. package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
  563. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
  564. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
  565. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  566. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
  567. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  568. package/src/private/webapis/performance/Performance.js +0 -12
  569. package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
  570. package/types/index.d.ts +1 -0
  571. package/types/public/ReactNativeTVTypes.d.ts +49 -51
  572. package/Libraries/HeapCapture/HeapCapture.js +0 -29
  573. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
  574. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
  575. package/Libraries/Performance/SamplingProfiler.js +0 -39
  576. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
  577. package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
  578. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
  579. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
  580. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
  581. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
  582. package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
  583. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
  584. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
  585. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
  586. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
  587. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
  588. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
  589. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
  593. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
  594. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
  595. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
  597. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
  598. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
  599. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
  600. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
  601. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
  602. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
  603. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
  604. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
  605. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
  606. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
  607. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
  608. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
  609. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
  610. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
  611. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
  612. package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
  613. package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
  614. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
  615. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
  616. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
  617. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
  618. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
  619. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
  620. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
  621. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
  622. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
  623. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
  624. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
  625. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
  626. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
  627. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
  628. package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
  629. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
  630. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
  631. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
  632. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
  633. package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
  634. package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
  635. package/ReactCommon/React-nativeconfig.podspec +0 -36
  636. package/ReactCommon/cxxreact/tests/main.cpp +0 -15
  637. package/ReactCommon/react/config/CMakeLists.txt +0 -20
  638. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
  639. package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
  640. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
  641. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
  642. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
  643. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
  644. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
  645. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
  646. package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
  647. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
  648. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
  649. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
  650. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
  651. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
  652. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
@@ -8,6 +8,7 @@
8
8
  #pragma once
9
9
 
10
10
  #include <react/renderer/imagemanager/ImageRequest.h>
11
+ #include <react/renderer/imagemanager/ImageRequestParams.h>
11
12
  #include <react/renderer/imagemanager/primitives.h>
12
13
 
13
14
  #ifdef ANDROID
@@ -26,10 +27,10 @@ class ImageState final {
26
27
  ImageState(
27
28
  const ImageSource& imageSource,
28
29
  ImageRequest imageRequest,
29
- const Float blurRadius)
30
+ const ImageRequestParams& imageRequestParams)
30
31
  : imageSource_(imageSource),
31
32
  imageRequest_(std::make_shared<ImageRequest>(std::move(imageRequest))),
32
- blurRadius_(blurRadius){};
33
+ imageRequestParams_(imageRequestParams) {}
33
34
 
34
35
  /*
35
36
  * Returns stored ImageSource object.
@@ -42,11 +43,13 @@ class ImageState final {
42
43
  */
43
44
  const ImageRequest& getImageRequest() const;
44
45
 
45
- Float getBlurRadius() const;
46
-
46
+ /*
47
+ * Returns stored ImageRequestParams object.
48
+ */
49
+ const ImageRequestParams& getImageRequestParams() const;
47
50
  #ifdef ANDROID
48
51
  ImageState(const ImageState& previousState, folly::dynamic data)
49
- : blurRadius_{0} {};
52
+ : imageRequestParams_{} {};
50
53
 
51
54
  /*
52
55
  * Empty implementation for Android because it doesn't use this class.
@@ -59,7 +62,7 @@ class ImageState final {
59
62
  private:
60
63
  ImageSource imageSource_;
61
64
  std::shared_ptr<ImageRequest> imageRequest_;
62
- const Float blurRadius_;
65
+ ImageRequestParams imageRequestParams_;
63
66
  };
64
67
 
65
68
  } // namespace facebook::react
@@ -36,10 +36,6 @@ class AndroidProgressBarComponentDescriptor final
36
36
  // `AndroidProgressBarMeasurementsManager` to provide measurements to Yoga.
37
37
  androidProgressBarShadowNode.setAndroidProgressBarMeasurementsManager(
38
38
  measurementsManager_);
39
-
40
- // All `AndroidProgressBarShadowNode`s must have leaf Yoga nodes with
41
- // properly setup measure function.
42
- androidProgressBarShadowNode.enableMeasurement();
43
39
  }
44
40
 
45
41
  private:
@@ -26,6 +26,13 @@ class AndroidProgressBarShadowNode final : public ConcreteViewShadowNode<
26
26
  public:
27
27
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
28
28
 
29
+ static ShadowNodeTraits BaseTraits() {
30
+ auto traits = ConcreteViewShadowNode::BaseTraits();
31
+ traits.set(ShadowNodeTraits::Trait::LeafYogaNode);
32
+ traits.set(ShadowNodeTraits::Trait::MeasurableYogaNode);
33
+ return traits;
34
+ }
35
+
29
36
  // Associates a shared `AndroidProgressBarMeasurementsManager` with the node.
30
37
  void setAndroidProgressBarMeasurementsManager(
31
38
  const std::shared_ptr<AndroidProgressBarMeasurementsManager>&
@@ -7,7 +7,7 @@
7
7
 
8
8
  #include "RootShadowNode.h"
9
9
 
10
- #include <cxxreact/SystraceSection.h>
10
+ #include <cxxreact/TraceSection.h>
11
11
  #include <react/renderer/components/view/conversions.h>
12
12
 
13
13
  namespace facebook::react {
@@ -16,7 +16,7 @@ const char RootComponentName[] = "RootView";
16
16
 
17
17
  bool RootShadowNode::layoutIfNeeded(
18
18
  std::vector<const LayoutableShadowNode*>* affectedNodes) {
19
- SystraceSection s("RootShadowNode::layout");
19
+ TraceSection s("RootShadowNode::layout");
20
20
 
21
21
  if (getIsLayoutClean()) {
22
22
  return false;
@@ -14,10 +14,10 @@ add_compile_options(
14
14
  -Wpedantic
15
15
  -DLOG_TAG=\"Fabric\")
16
16
 
17
- file(GLOB rrc_scrollview_SRC CONFIGURE_DEPENDS *.cpp)
17
+ file(GLOB rrc_scrollview_SRC CONFIGURE_DEPENDS *.cpp platform/android/react/renderer/components/scrollview/*.cpp)
18
18
  add_library(rrc_scrollview STATIC ${rrc_scrollview_SRC})
19
19
 
20
- target_include_directories(rrc_scrollview PUBLIC ${REACT_COMMON_DIR})
20
+ target_include_directories(rrc_scrollview PUBLIC ${REACT_COMMON_DIR} . ${CMAKE_CURRENT_SOURCE_DIR}/platform/android/)
21
21
 
22
22
  target_link_libraries(rrc_scrollview
23
23
  glog
@@ -76,6 +76,39 @@ EventPayloadType ScrollEvent::getType() const {
76
76
  return EventPayloadType::ScrollEvent;
77
77
  }
78
78
 
79
+ jsi::Value ScrollEndDragEvent::asJSIValue(jsi::Runtime& runtime) const {
80
+ auto payload = ScrollEvent::asJSIValue(runtime).asObject(runtime);
81
+
82
+ {
83
+ auto targetContentOffsetObj = jsi::Object(runtime);
84
+ targetContentOffsetObj.setProperty(runtime, "x", targetContentOffset.x);
85
+ targetContentOffsetObj.setProperty(runtime, "y", targetContentOffset.y);
86
+ payload.setProperty(runtime, "targetContentOffset", targetContentOffsetObj);
87
+ }
88
+
89
+ {
90
+ auto velocityObj = jsi::Object(runtime);
91
+ velocityObj.setProperty(runtime, "x", velocity.x);
92
+ velocityObj.setProperty(runtime, "y", velocity.y);
93
+ payload.setProperty(runtime, "velocity", velocityObj);
94
+ }
95
+
96
+ return payload;
97
+ }
98
+
99
+ folly::dynamic ScrollEndDragEvent::asDynamic() const {
100
+ auto metrics = ScrollEvent::asDynamic();
101
+
102
+ auto targetContentOffsetObj = folly::dynamic::object(
103
+ "x", targetContentOffset.x)("y", targetContentOffset.y);
104
+ metrics["targetContentOffset"] = std::move(targetContentOffsetObj);
105
+
106
+ auto velocityObj = folly::dynamic::object("x", velocity.x)("y", velocity.y);
107
+ metrics["velocity"] = std::move(velocityObj);
108
+
109
+ return metrics;
110
+ };
111
+
79
112
  #if RN_DEBUG_STRING_CONVERTIBLE
80
113
 
81
114
  std::string getDebugName(const ScrollEvent& /*scrollEvent*/) {
@@ -37,6 +37,23 @@ struct ScrollEvent : public EventPayload {
37
37
  EventPayloadType getType() const override;
38
38
  };
39
39
 
40
+ struct ScrollEndDragEvent : public ScrollEvent {
41
+ Point targetContentOffset;
42
+ Point velocity;
43
+
44
+ ScrollEndDragEvent() = default;
45
+
46
+ ScrollEndDragEvent(const ScrollEvent& scrollEvent)
47
+ : ScrollEvent(scrollEvent), targetContentOffset({}), velocity({}) {}
48
+
49
+ folly::dynamic asDynamic() const;
50
+
51
+ /*
52
+ * EventPayload implementations
53
+ */
54
+ jsi::Value asJSIValue(jsi::Runtime& runtime) const override;
55
+ };
56
+
40
57
  #if RN_DEBUG_STRING_CONVERTIBLE
41
58
 
42
59
  std::string getDebugName(const ScrollEvent& scrollEvent);
@@ -25,8 +25,9 @@ void ScrollViewEventEmitter::onScrollBeginDrag(
25
25
  }
26
26
 
27
27
  void ScrollViewEventEmitter::onScrollEndDrag(
28
- const ScrollEvent& scrollEvent) const {
29
- dispatchScrollViewEvent("scrollEndDrag", scrollEvent);
28
+ const ScrollEndDragEvent& scrollEvent) const {
29
+ dispatchEvent(
30
+ "scrollEndDrag", std::make_shared<ScrollEndDragEvent>(scrollEvent));
30
31
  }
31
32
 
32
33
  void ScrollViewEventEmitter::onMomentumScrollBegin(
@@ -21,10 +21,11 @@ class ScrollViewEventEmitter : public ViewEventEmitter {
21
21
  using ViewEventEmitter::ViewEventEmitter;
22
22
 
23
23
  using Metrics = ScrollEvent;
24
+ using EndDragMetrics = ScrollEndDragEvent;
24
25
 
25
26
  void onScroll(const ScrollEvent& scrollEvent) const;
26
27
  void onScrollBeginDrag(const ScrollEvent& scrollEvent) const;
27
- void onScrollEndDrag(const ScrollEvent& scrollEvent) const;
28
+ void onScrollEndDrag(const ScrollEndDragEvent& scrollEvent) const;
28
29
  void onMomentumScrollBegin(const ScrollEvent& scrollEvent) const;
29
30
  void onMomentumScrollEnd(const ScrollEvent& scrollEvent) const;
30
31
  void onScrollToTop(const ScrollEvent& scrollEvent) const;
@@ -36,10 +36,6 @@ class AndroidSwitchComponentDescriptor final
36
36
  // provide measurements to Yoga.
37
37
  androidSwitchShadowNode.setAndroidSwitchMeasurementsManager(
38
38
  measurementsManager_);
39
-
40
- // All `AndroidSwitchShadowNode`s must have leaf Yoga nodes with properly
41
- // setup measure function.
42
- androidSwitchShadowNode.enableMeasurement();
43
39
  }
44
40
 
45
41
  private:
@@ -27,6 +27,13 @@ class AndroidSwitchShadowNode final : public ConcreteViewShadowNode<
27
27
  public:
28
28
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
29
29
 
30
+ static ShadowNodeTraits BaseTraits() {
31
+ auto traits = ConcreteViewShadowNode::BaseTraits();
32
+ traits.set(ShadowNodeTraits::Trait::LeafYogaNode);
33
+ traits.set(ShadowNodeTraits::Trait::MeasurableYogaNode);
34
+ return traits;
35
+ }
36
+
30
37
  // Associates a shared `AndroidSwitchMeasurementsManager` with the node.
31
38
  void setAndroidSwitchMeasurementsManager(
32
39
  const std::shared_ptr<AndroidSwitchMeasurementsManager>&
@@ -73,6 +73,12 @@ static TextAttributes convertRawProp(
73
73
  "allowFontScaling",
74
74
  sourceTextAttributes.allowFontScaling,
75
75
  defaultTextAttributes.allowFontScaling);
76
+ textAttributes.maxFontSizeMultiplier = convertRawProp(
77
+ context,
78
+ rawProps,
79
+ "maxFontSizeMultiplier",
80
+ sourceTextAttributes.maxFontSizeMultiplier,
81
+ defaultTextAttributes.maxFontSizeMultiplier);
76
82
  textAttributes.dynamicTypeRamp = convertRawProp(
77
83
  context,
78
84
  rawProps,
@@ -266,6 +272,12 @@ void BaseTextProps::setProp(
266
272
  defaults, value, textAttributes, fontVariant, "fontVariant");
267
273
  REBUILD_FIELD_SWITCH_CASE(
268
274
  defaults, value, textAttributes, allowFontScaling, "allowFontScaling");
275
+ REBUILD_FIELD_SWITCH_CASE(
276
+ defaults,
277
+ value,
278
+ textAttributes,
279
+ maxFontSizeMultiplier,
280
+ "maxFontSizeMultiplier");
269
281
  REBUILD_FIELD_SWITCH_CASE(
270
282
  defaults, value, textAttributes, letterSpacing, "letterSpacing");
271
283
  REBUILD_FIELD_SWITCH_CASE(
@@ -5,16 +5,10 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- #pragma once
9
-
10
- #include <jsi/jsi.h>
8
+ #include "ParagraphComponentDescriptor.h"
11
9
 
12
10
  namespace facebook::react {
13
11
 
14
- jsi::Value callMethodOfModule(
15
- jsi::Runtime& runtime,
16
- const std::string& moduleName,
17
- const std::string& methodName,
18
- std::initializer_list<jsi::Value> args);
12
+ extern const char TextLayoutManagerKey[] = "TextLayoutManager";
19
13
 
20
14
  } // namespace facebook::react
@@ -14,18 +14,20 @@
14
14
 
15
15
  namespace facebook::react {
16
16
 
17
+ extern const char TextLayoutManagerKey[];
18
+
17
19
  /*
18
20
  * Descriptor for <Paragraph> component.
19
21
  */
20
22
  class ParagraphComponentDescriptor final
21
23
  : public ConcreteComponentDescriptor<ParagraphShadowNode> {
22
24
  public:
23
- ParagraphComponentDescriptor(const ComponentDescriptorParameters& parameters)
24
- : ConcreteComponentDescriptor<ParagraphShadowNode>(parameters) {
25
- // Every single `ParagraphShadowNode` will have a reference to
26
- // a shared `TextLayoutManager`.
27
- textLayoutManager_ = std::make_shared<TextLayoutManager>(contextContainer_);
28
- }
25
+ explicit ParagraphComponentDescriptor(
26
+ const ComponentDescriptorParameters& parameters)
27
+ : ConcreteComponentDescriptor<ParagraphShadowNode>(parameters),
28
+ textLayoutManager_(getManagerByName<TextLayoutManager>(
29
+ contextContainer_,
30
+ TextLayoutManagerKey)) {}
29
31
 
30
32
  protected:
31
33
  void adopt(ShadowNode& shadowNode) const override {
@@ -39,7 +41,8 @@ class ParagraphComponentDescriptor final
39
41
  }
40
42
 
41
43
  private:
42
- std::shared_ptr<const TextLayoutManager> textLayoutManager_;
44
+ // Every `ParagraphShadowNode` has a reference to a shared `TextLayoutManager`
45
+ const std::shared_ptr<const TextLayoutManager> textLayoutManager_;
43
46
  };
44
47
 
45
48
  } // namespace facebook::react
@@ -126,6 +126,12 @@ BaseTextInputProps::BaseTextInputProps(
126
126
  rawProps,
127
127
  "multiline",
128
128
  sourceProps.multiline,
129
+ {false})),
130
+ disableKeyboardShortcuts(convertRawProp(
131
+ context,
132
+ rawProps,
133
+ "disableKeyboardShortcuts",
134
+ sourceProps.disableKeyboardShortcuts,
129
135
  {false})) {}
130
136
 
131
137
  void BaseTextInputProps::setProp(
@@ -208,9 +214,26 @@ void BaseTextInputProps::setProp(
208
214
  RAW_SET_PROP_SWITCH_CASE_BASIC(readOnly);
209
215
  RAW_SET_PROP_SWITCH_CASE_BASIC(submitBehavior);
210
216
  RAW_SET_PROP_SWITCH_CASE_BASIC(multiline);
217
+ RAW_SET_PROP_SWITCH_CASE_BASIC(disableKeyboardShortcuts);
211
218
  }
212
219
  }
213
220
 
221
+ TextAttributes BaseTextInputProps::getEffectiveTextAttributes(
222
+ Float fontSizeMultiplier) const {
223
+ auto result = TextAttributes::defaultTextAttributes();
224
+ result.fontSizeMultiplier = fontSizeMultiplier;
225
+ result.apply(textAttributes);
226
+
227
+ /*
228
+ * These props are applied to `View`, therefore they must not be a part of
229
+ * base text attributes.
230
+ */
231
+ result.backgroundColor = clearColor();
232
+ result.opacity = 1;
233
+
234
+ return result;
235
+ }
236
+
214
237
  SubmitBehavior BaseTextInputProps::getNonDefaultSubmitBehavior() const {
215
238
  if (submitBehavior == SubmitBehavior::Default) {
216
239
  return multiline ? SubmitBehavior::Newline : SubmitBehavior::BlurAndSubmit;
@@ -31,6 +31,13 @@ class BaseTextInputProps : public ViewProps, public BaseTextProps {
31
31
  const char* propName,
32
32
  const RawValue& value);
33
33
 
34
+ SubmitBehavior getNonDefaultSubmitBehavior() const;
35
+
36
+ /*
37
+ * Accessors
38
+ */
39
+ TextAttributes getEffectiveTextAttributes(Float fontSizeMultiplier) const;
40
+
34
41
  #pragma mark - Props
35
42
 
36
43
  /*
@@ -72,7 +79,7 @@ class BaseTextInputProps : public ViewProps, public BaseTextProps {
72
79
 
73
80
  bool multiline{false};
74
81
 
75
- SubmitBehavior getNonDefaultSubmitBehavior() const;
82
+ bool disableKeyboardShortcuts{false};
76
83
  };
77
84
 
78
85
  } // namespace facebook::react
@@ -0,0 +1,243 @@
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 <react/renderer/attributedstring/AttributedString.h>
11
+ #include <react/renderer/attributedstring/AttributedStringBox.h>
12
+ #include <react/renderer/components/text/BaseTextShadowNode.h>
13
+ #include <react/renderer/components/textinput/BaseTextInputProps.h>
14
+ #include <react/renderer/components/textinput/TextInputState.h>
15
+ #include <react/renderer/components/view/ConcreteViewShadowNode.h>
16
+ #include <react/renderer/components/view/YogaLayoutableShadowNode.h>
17
+ #include <react/renderer/core/LayoutConstraints.h>
18
+ #include <react/renderer/core/LayoutContext.h>
19
+ #include <react/renderer/textlayoutmanager/TextLayoutContext.h>
20
+ #include <react/renderer/textlayoutmanager/TextLayoutManager.h>
21
+ #include <react/utils/ContextContainer.h>
22
+
23
+ namespace facebook::react {
24
+
25
+ /*
26
+ * Base `ShadowNode` for <TextInput> component.
27
+ */
28
+ template <
29
+ const char* concreteComponentName,
30
+ typename ViewPropsT,
31
+ typename ViewEventEmitterT,
32
+ typename StateDataT,
33
+ bool usesMapBufferForStateData = false>
34
+ class BaseTextInputShadowNode : public ConcreteViewShadowNode<
35
+ concreteComponentName,
36
+ ViewPropsT,
37
+ ViewEventEmitterT,
38
+ StateDataT,
39
+ usesMapBufferForStateData>,
40
+ public BaseTextShadowNode {
41
+ public:
42
+ using BaseShadowNode = ConcreteViewShadowNode<
43
+ concreteComponentName,
44
+ ViewPropsT,
45
+ ViewEventEmitterT,
46
+ StateDataT,
47
+ usesMapBufferForStateData>;
48
+
49
+ using BaseShadowNode::ConcreteViewShadowNode;
50
+
51
+ static ShadowNodeTraits BaseTraits() {
52
+ auto traits = BaseShadowNode::BaseTraits();
53
+ traits.set(ShadowNodeTraits::Trait::LeafYogaNode);
54
+ traits.set(ShadowNodeTraits::Trait::MeasurableYogaNode);
55
+ traits.set(ShadowNodeTraits::Trait::BaselineYogaNode);
56
+ return traits;
57
+ }
58
+
59
+ /*
60
+ * Associates a shared `TextLayoutManager` with the node.
61
+ * `TextInputShadowNode` uses the manager to measure text content
62
+ * and construct `TextInputState` objects.
63
+ */
64
+ void setTextLayoutManager(
65
+ std::shared_ptr<const TextLayoutManager> textLayoutManager) {
66
+ Sealable::ensureUnsealed();
67
+ textLayoutManager_ = std::move(textLayoutManager);
68
+ }
69
+
70
+ protected:
71
+ Size measureContent(
72
+ const LayoutContext& layoutContext,
73
+ const LayoutConstraints& layoutConstraints) const override {
74
+ const auto& props = BaseShadowNode::getConcreteProps();
75
+ auto textConstraints = getTextConstraints(layoutConstraints);
76
+
77
+ TextLayoutContext textLayoutContext{
78
+ .pointScaleFactor = layoutContext.pointScaleFactor};
79
+ auto textSize = textLayoutManager_
80
+ ->measure(
81
+ attributedStringBoxToMeasure(layoutContext),
82
+ props.paragraphAttributes,
83
+ textLayoutContext,
84
+ textConstraints)
85
+ .size;
86
+
87
+ return layoutConstraints.clamp(textSize);
88
+ }
89
+
90
+ void layout(LayoutContext layoutContext) override {
91
+ updateStateIfNeeded(layoutContext);
92
+ BaseShadowNode::layout(layoutContext);
93
+ }
94
+
95
+ Float baseline(const LayoutContext& layoutContext, Size size) const override {
96
+ const auto& props = BaseShadowNode::getConcreteProps();
97
+ auto attributedString = getAttributedString(layoutContext);
98
+
99
+ if (attributedString.isEmpty()) {
100
+ attributedString = getPlaceholderAttributedString(layoutContext);
101
+ }
102
+
103
+ // Yoga expects a baseline relative to the Node's border-box edge instead of
104
+ // the content, so we need to adjust by the padding and border widths, which
105
+ // have already been set by the time of baseline alignment
106
+ auto top = YGNodeLayoutGetBorder(
107
+ &(YogaLayoutableShadowNode::yogaNode_), YGEdgeTop) +
108
+ YGNodeLayoutGetPadding(
109
+ &(YogaLayoutableShadowNode::yogaNode_), YGEdgeTop);
110
+
111
+ AttributedStringBox attributedStringBox{attributedString};
112
+ return textLayoutManager_->baseline(
113
+ attributedStringBox, props.paragraphAttributes, size) +
114
+ top;
115
+ }
116
+
117
+ /*
118
+ * Determines the constraints to use while measure the underlying text
119
+ */
120
+ LayoutConstraints getTextConstraints(
121
+ const LayoutConstraints& layoutConstraints) const {
122
+ if (BaseShadowNode::getConcreteProps().multiline) {
123
+ return layoutConstraints;
124
+ } else {
125
+ // A single line TextInput acts as a horizontal scroller of infinitely
126
+ // expandable text, so we want to measure the text as if it is allowed to
127
+ // infinitely expand horizontally, and later clamp to the constraints of
128
+ // the input.
129
+ return LayoutConstraints{
130
+ .minimumSize = layoutConstraints.minimumSize,
131
+ .maximumSize =
132
+ Size{
133
+ .width = std::numeric_limits<Float>::infinity(),
134
+ .height = layoutConstraints.maximumSize.height,
135
+ },
136
+ .layoutDirection = layoutConstraints.layoutDirection,
137
+ };
138
+ }
139
+ }
140
+
141
+ std::shared_ptr<const TextLayoutManager> textLayoutManager_;
142
+
143
+ private:
144
+ /*
145
+ * Creates a `State` object if needed.
146
+ */
147
+ void updateStateIfNeeded(const LayoutContext& layoutContext) {
148
+ Sealable::ensureUnsealed();
149
+ const auto& stateData = BaseShadowNode::getStateData();
150
+ const auto& reactTreeAttributedString = getAttributedString(layoutContext);
151
+
152
+ react_native_assert(textLayoutManager_);
153
+ if (stateData.reactTreeAttributedString.isContentEqual(
154
+ reactTreeAttributedString)) {
155
+ return;
156
+ }
157
+
158
+ const auto& props = BaseShadowNode::getConcreteProps();
159
+ TextInputState newState(
160
+ AttributedStringBox{reactTreeAttributedString},
161
+ reactTreeAttributedString,
162
+ props.paragraphAttributes,
163
+ props.mostRecentEventCount);
164
+ BaseShadowNode::setStateData(std::move(newState));
165
+ }
166
+
167
+ /*
168
+ * Returns a `AttributedString` which represents text content of the node.
169
+ */
170
+ AttributedString getAttributedString(
171
+ const LayoutContext& layoutContext) const {
172
+ const auto& props = BaseShadowNode::getConcreteProps();
173
+ const auto textAttributes =
174
+ props.getEffectiveTextAttributes(layoutContext.fontSizeMultiplier);
175
+
176
+ AttributedString attributedString;
177
+ attributedString.appendFragment(AttributedString::Fragment{
178
+ .string = props.text,
179
+ .textAttributes = textAttributes,
180
+ .parentShadowView = ShadowView(*this)});
181
+
182
+ auto attachments = BaseTextShadowNode::Attachments{};
183
+ BaseTextShadowNode::buildAttributedString(
184
+ textAttributes, *this, attributedString, attachments);
185
+ attributedString.setBaseTextAttributes(textAttributes);
186
+ return attributedString;
187
+ }
188
+
189
+ /*
190
+ * Returns an `AttributedStringBox` which represents text content that should
191
+ * be used for measuring purposes. It might contain actual text value,
192
+ * placeholder value or some character that represents the size of the font.
193
+ */
194
+ AttributedStringBox attributedStringBoxToMeasure(
195
+ const LayoutContext& layoutContext) const {
196
+ bool meaningfulState = BaseShadowNode::getState() &&
197
+ BaseShadowNode::getState()->getRevision() !=
198
+ State::initialRevisionValue;
199
+ if (meaningfulState) {
200
+ const auto& stateData = BaseShadowNode::getStateData();
201
+ auto attributedStringBox = stateData.attributedStringBox;
202
+ if (attributedStringBox.getMode() ==
203
+ AttributedStringBox::Mode::OpaquePointer ||
204
+ !attributedStringBox.getValue().isEmpty()) {
205
+ return stateData.attributedStringBox;
206
+ }
207
+ }
208
+
209
+ auto attributedString = meaningfulState
210
+ ? AttributedString{}
211
+ : getAttributedString(layoutContext);
212
+
213
+ if (attributedString.isEmpty()) {
214
+ attributedString = getPlaceholderAttributedString(layoutContext);
215
+ }
216
+ return AttributedStringBox{attributedString};
217
+ }
218
+
219
+ // For measurement purposes, we want to make sure that there's at least a
220
+ // single character in the string so that the measured height is greater
221
+ // than zero. Otherwise, empty TextInputs with no placeholder don't
222
+ // display at all.
223
+ // TODO T67606511: We will redefine the measurement of empty strings as part
224
+ // of T67606511
225
+ AttributedString getPlaceholderAttributedString(
226
+ const LayoutContext& layoutContext) const {
227
+ const auto& props = BaseShadowNode::getConcreteProps();
228
+
229
+ AttributedString attributedString;
230
+ auto placeholderString = !props.placeholder.empty()
231
+ ? props.placeholder
232
+ : BaseTextShadowNode::getEmptyPlaceholder();
233
+ auto textAttributes =
234
+ props.getEffectiveTextAttributes(layoutContext.fontSizeMultiplier);
235
+ attributedString.appendFragment(
236
+ {.string = std::move(placeholderString),
237
+ .textAttributes = textAttributes,
238
+ .parentShadowView = {}});
239
+ return attributedString;
240
+ }
241
+ };
242
+
243
+ } // namespace facebook::react